To provide advanced software development services and products to technology-oriented companies, enabling them to compete more effectively.
I like to leave my mission statement on this page as well. It reminds me that my primary goal is to serve my clients. The services that I offer and the skills that I have exist only for the enhancement of my clients functionality or efficiency.
First, a note. I have been programming for almost as long as I can remember. I began programming many years ago on a small TRS-80, model II computer. Tape drives, TV interface and a whopping 8 K of system memory. I did not learn computing at the hands of an instructor (Although many fine professors have imparted the wisdom of coding theory and system architecture to me.), but at the keyboard of a small and limited machine. That initial experience follows me forward to this day, when the systems that I write are compact, efficient and simple to operate. I did not learn to write programs on big machines, assuming that enough processing power would cover up any sloppy code that I wrote. Such systems are slow, cumbersome, and nightmares to maintain and enhance.
I present here a list of the system styles, programming languages, operating systems and tools that I am familiar with. Please do not assume that this is a complete list, there are more languages that I know, tools I have experienced, and system styles that I have written. Some I don't want to do again, others have fallen out of favor and I don't list them because I don't want to appear a relic of the past.
- Web Applications - For the public Internet or a private Intranet, web applications are usually CGI programs written in .NET, ASP, PHP or Perl or they can be client side applications written in Java for the interaction between multiple users on the network. Collaboration, automated surveys, chats, remote data entry, the list goes on and on.
- Executive Information Systems (EIS) - Usually a client-server database with a graphical front end for providing a convenient user interface, complex data display and interactive data editing. Usually these would use some 4GL language like Visual Basic, Delphi, or Power Builder to implement the front end. More often I am seeing Web-enabled EISs with Perl or Java providing the engine and Java and HTML providing the interface. Using a Web or Intranet solution gives the ultimate in flexibility and deployability with the minimum in maintenance and administration. All at approximately the same cost.
- Commercial Applications - Applications written to be packaged for the general public and distributed. While no single class of application fits this profile, these applications require rock-solid code, intuitive interfaces, good documentation, excellent installation routines, and a small distribution footprint. I consider these applications the most difficult to write, and Code Gurus is proud of their proven track record writing commercial applications that have made their owners money.<
- Relational Databases - Sometimes the database IS the system. A good database design is usually the most important factor in determining the long-term deployment of a system. Good database design allows for easy maintenance, expandability, increased transaction speed and reduced storage requirements.
The programming languages I am comfortable with my mastery of, the versions that I am familiar with, and approximately how many years I have been working with them. I learn new programming languages all the time, so please ask if you have a requirement for a particular language. I will pull from all of these languages, if required, to custom fit the exact solution you need.
- Microsoft .NET, Active Server Pages .NET (ASP.NET)
ASP.NET is the web application framework for Microsoft's .NET programming structure. Well segmented between design and programming, .NET combines the benefits of a well structured language with the ease of a compile-on-demand web application. Thought through with good security and exception handling, programming in .NET is world-class.
- Active Server Pages (ASP)
Active Server Pages leverage Visual Basic knowledge for writing dynamic web pages on an NT IIS web server. With access to all of the ActiveX objects that VB can use as well as many special objects just for web servers, ASP is powerful and easy to write. (Not the most efficient language in the world, but you can't have it all.)
- Visual Basic - Versions 2, 3, 4, 5, 6. 6+ years. I have been working in VB since day 1. I have used it to write everything from compression utilities to EIS systems. Profoundly suited to working with large data sources and excellent at graphical visualization tasks, VB has taken on the burden of being a 'real' language. Microsoft's extension of VB into VB for Applications and ActiveX has enhanced the functionality, giving real low-level control over powerful Microsoft applications and across the Internet.
- Perl / CGI- Versions 4 and 5. 3+ years. Perl 5 is such a departure from version 4 that I was almost tempted to list it as a separate language. I am comfortable with the Object Oriented nature of Perl 5, dramatically increasing the power of the language. This is the language for web servers. Apache with mod_perl is an alternative to CGI, but it requires that you be an excellent programmer, and have a good idea of what your final application will do. (I don't work any other way...)
- C++ - Microsoft Versions 4 and 5. 3+ years of experience. I have used C++ for writing DLLs, VBXs, database access drivers and MFC windowing programs to act as the interface. What I love most about C++ is the compact, fast code that the compiler generates. It satisfies my need for efficiency.
- Java - Version 1.0 and 1.1. 1+ year. I have been playing with Java since it was released, and have written a number of smaller systems and applets, and a driving simulator in Java in the last year, and look forward to the expansion of this language as it matures. Swing and some of the Beans developers out there are making Java easier to look at and program in, but making it even slower than before. I am am member of the Sun Java Developer Connection and Sun Internet Associate Program.
- Delphi -Version 2.0. 2+ years. I loved Delphi when it came out. It is tragic that it does not get the support that it should have. Small and fast, the executables were easy to distribute. The programming environment was well laid out, enhancing productivity. Another great language for database access and user interfaces, but without the built-in slowness that interpreted VB has.
- C - ANSI C, 3 years of total experience. Most of my C programming has been in ANSI C running on UNIX platforms. I have used it to implement a number of numerically intensive routines for digital image processing and encryption, and found it ideally suited for managing large amounts of well defined data.
- dBase, Foxpro - Major applications for analyzing budget data, cost analysis, staffing levels and other database driven functions that required the manipulation of large amounts of existing (legacy) data that was already in an xBase format, or was already partially implemented in the language. I have replaced this type of programming with SQL programming in relational databases.
- Oracle (Versions 7.x and 8.x) - Industrial strength. I have worked on applications that use Oracle as a relational database as well as administered the creation and repair of tables, automated data loading, as well as PL/SQL coding. I like Oracle as long as I dont have to pay for it. (It can be expensive...)
- mySQL - mySQL is the most used open source database. A good combination of features with one outstanding property: Speed. Faster than even SQL Server and Oracle for simple database operations, mySQL can be used for millions of rows of data without spending much money.
- Microsoft SQL Server (Versions 7.0, 2000 and 2005) - A good relational database server, SQL Server is 100 times easier to manage and understand than Oracle, cheaper to use for small and medium projects and almost as fast. I like them both, but you have to be sure that you are using the right one for the right task.
- PostgeSQL - Another open source database, but built to be more industrial strength. The side effect is more administration and setup tasks but PostgreSQL has support for triggers, better data distribution and better caching.
- Microsoft Access - Naturally. Can't not know Access if you do the kinds of programming that is my bread and butter.
- IDEF 1.X - Data modeling for relational databases. Really helps with large database design, when remembering the function and format of a hundred tables gives you headaches.
- CASE Tools - A number of programming enhancement tools for assisting
in writing database applications. I don't list these by name because I have found most of them to be similar, and none to be exceptional.