Technology in General
Back Home Up


Software Testing Safety Net
US FDA 2004 eRecords
SQL Keys and Joins
SQL Server 2000 Notes
PHP Synopsis
PHP Code Organization
PHP First Code Sample
HTML Post and Get

This is an extremely large subject, and a few web links may be the most useful to people browsing the Internet.  All the web links in the main body of the text below leave this website.

 

Windows Software

Microsoft is moving to what is known as the .NET platform.  At the time of this writing in 2004, companies are still mainly unaware that all future software for Windows will have to eventually run in a .NET Framework environment, which is free with the purchase of the operating system.  Microsoft has been developing a variety of server products to handle general business needs for several years, for example, Active Directory should be enabled in a Domain environment with software update patches from Microsoft managed by the Systems Management Server (SMS) and server health monitored via the Operations Manager (MOM).  Keeping the company's computers running smoothly is usually the first order of business.  SMS and MOM are two out of twenty types of MS server offerings at my last count in 2004 that can control, update, and monitor thousands of desktops worldwide in less than an hour.

My first Microsoft product was a CP/M, Control Program for Microprocessors, a hardware board for the Apple II+ computer mentioned earlier.  Later, I obtained a DOS, Disk Operating System, bundled with an Intel 286 computer.  Microsoft became famous selling a version of DOS bundled with IBM PCs, or personal computers.  IBM no longer makes personal computers or typewriters, and Microsoft has vastly expanded their product line but no longer recommends the use of DOS in new computers.  Windows initially was an environment built on top of DOS, and was a joint effort between Microsoft and IBM, but Windows is now a stand-alone operating system only produced by Microsoft, and usually bundled with other MS products.  Of course, an unbundled Windows OS will become available if the European Union has its way.

Here are a few of my software selections based upon a couple of different categories.  
Operating System:  Windows XP Professional.  The professional edition has a personal web server which is needed for the new web services programming paradigm.  Note, the software designed for Linux can have a Windows version.
Office Tools:  Microsoft Office.  The current version is 2003.
Relational Database:  Microsoft SQL Server.
XML Database:  Software AG Tamino.  There are a variety of NXDs or Native XML Databases, and expect to see more in the future.
Statistics:  SPSS.
3D Graphical Arts:  Maya.  Note, 3D Studio Max is owned by Autodesk.  Softimage is owned by Avid.  The rendering of a sequence of final images on hundreds of computers can be disassociated from the 3D object creation, hence the notion of using a different rendering package than what came with the original software.  If 3D manufacturing is the goal, then one needs software like Inventor, SolidWorks, or Wildfire.
Web Server:  Microsoft IIS.  This product is included with Microsoft Server 2003.
Server-side Web Preprocessor:  ASP.NET.
Text Editor:  This is a deeply personal decision, and everybody will have their own personal favorite.  TextPad is one example, but everybody has their own preferences, and I have used the PC version of SPF, Brief, my own creation, and Notepad.  XEmacs is based upon the GNU EMACS, and if one installs this product, try the native Windows installation option as opposed to using Cygwin.
IDE:  Microsoft Visual Studio.
J2EE Server:  IBM WebSphere Application Server.  Java is very popular.  Obviously in this case, the development environment should also be a WebSphere Studio version from IBM.

 

Linux Software

I consider Linux to be a type of UNIX, which happens to be less costly in terms of initial price.  Free software does not have to be open-source software and vice versa.  Software that is free does little to stem the costs of manpower requirements to support or write programming extensions.  Now and for the foreseeable future, there is a legal storm cloud hanging over Linux and a lot of free open-source projects on the internet.  That said, there are a variety of open projects, with new ones seemingly starting every month, which may be appealing for home or business use.  

My very brief Linux software selection is not meant to consist of user-friendly software, but may be of interest to the technically-inclined person.  The Apache Software Foundation, SourceForge .Net and GNU are good places to browse.  Over time I may change this listing and preferences.
Operating System:  Solaris 10.  I know this is a standard UNIX system, however it is one advertised to allow Linux programs to run, and Sun will protect it's customers from lawsuits arising out of usage.  SuSE is my second choice -- they have been bought by Novell.  Debian has to be mentioned because of their link to GNU.  There are a variety of different Linux versions.  SCO, the Santa Cruz Operation, is the company trying to capture the Linux marketplace by claiming ownership of the intellectual property rights to UNIX.
Office Tools:  OpenOffice.  This is the free version of StarOffice offered by Sun.
Relational Database:  Firebird.  The AMD 64-bit version is codenamed Vulcan.
XML Database:  Xindice.
Statistics:  R.  Do you see the correlation between the name and statistics?  ;-)  Supposedly, R as a language was chosen as being similar to S, another language.  The add-on packages make the product extensible as a statistical tool, but the command line interface can be difficult for the causal user to master.
3D Graphical Arts:  Blender.
Web Server:  Apache.
Server-side Web Preprocessor:  PHP.  
Text Editor:  EMACS.
IDE:  NetBeans for Java development.  IDE stands for Integrated Development Environment.  My second IDE choice goes to Eclipse originally provided by IBM.
J2EE Server:  Geronimo.  There is no fixed release date yet.

 

Abstract Software

Computer hardware and software have historically been related, although a general goal of computer science is simulation, which is not related to a particular hardware platform.  Data and rules make simulation both possible and meaningful.  These terms, simulation, data, and rules, are mentioned here in the abstract sense.

My first home computer was an Apple II+.  This is an early model, which has to be mentioned because in 2003 I spoke to an Apple Computer sales representative who was unaware such a model had ever existed.  Its computer Disk Operating System limited variables to only two characters and programming was done in upper case only to save memory, by reducing the total number of possible letters.  These and other issues were taken for granted because nobody ever talks about how or why products are limited until at least there is a solution or an improved product on the market.  My first computer program graphically displayed a sailboat on a calm sea surrounded by a border of net-like lines.  I remember thinking that such software could last forever, if properly replicated before storage media became unreadable.  This was and is still not practical although it would be possible to implement.  

In Japan, one of the lessons learned from the 5th generation computer project was that the lowest computer interface should be a full-blown, generic programming environment.  Without a strong foundation, how can can any 'skyscraper' software be built?  This is a deeply ingrained philosophy also prevalent in the Japanese construction industry as in all their arts.  Whether making pottery or Samurai swords, if the molecules are not 'aligned' correctly, the quality of the finished product will be inferior, hence the need to fold and refold the clay or metal material before shaping it into a final form.  Cultural or not, I am predicting the day will come when programmers will not deal with assembly language when writing new hardware drivers. 

In the abstract sense, what is happening when two numbers are added inside a computer?  Describing the physical details and logic behind binary addition are valid answers, but the abstract result I am looking for is a simulation that will combine two quantities.  Usually people think of simulations only applying to more complex topics, such as molecular protein modeling.   The order of the data describing proteins in three-dimensional space is required for the rules to figure out how a protein may fold and interact with other proteins.  Obviously, the atoms cannot be told to stop interacting and the rules either have to approximate actual behavior or artificially calculate similar results with a man-made algorithm.

 

Software Regulation in the 21st Century, a 2003 Perspective

Quality control over software used in mission-critical applications that can effect the lives of the average citizens has a good chance of being controlled through government regulations.  This outcome could be rendered unnecessary if quality control were initiated by industry.  In Canada, a separate control initiative is being considered to prevent non-government licensed software developers from working.  This type of regulation could be applied by the government of any country in the world.  Regulations about how software is made and the documentation requirements could be satisfied by businesses operating on a global scale, while developing a Professional Engineer certified training program and licensing practitioners is better suited to local, national software development efforts. 

A suggestion on how to program has been created by the U.S. Requirements and Technical Concepts for Aviation committee.  The committee name is specialized, but the suggestions are broad, such as testing for requirements compliance or linking code to a description.  The European version is currently called ED-12B, and the next iteration would most likely be called ED-12C.  VeroTrace is an example of a tool for the embedded industry to help developers / managers meet the requirements of these emerging programming / documentation suggestions.  The shift of software development jobs overseas will accelerate the need to ensure a certain level of acceptable quality especially for public works projects.

The falling prices of computers creates the notion these machines are simple office commodities, but the trend of lower prices could become reversed should currency exchange rates reverse direction.  Like any trade, the practitioners should be aware of certain practices to ensure the finished product is safe for public consumption.  This approach ignores instability created by the operating system, differences in computer languages and rapidly changing technologies for different tasks, and completely ignores the fact that humans can still make mistakes.  In order to obtain the official training, students would spend a significant amount in terms of money and time.  Employers would be legally forced to recognize the certification credential, and thereby ensure a certain number of software jobs in the country.

 

Building Upon Previous Results

Very often in science, positive results are considered more desirable than negative results.  Yet a negative result is still a result and is just as valid as a positive result.  This has more of an application in the sciences, however, just keeping track of known technology to build better systems in the future is an extremely important objective.  The software industry calls this "code reusability", but what I am talking about is knowledge reuse.  A narrow focus on the merits of intellectual property tends to relate more to creating a legal competitive advantage in the world of business, which should be secondary to the long term benefits of passing along concepts and increasing the collective technical abilities of a society over time.  What software do people use on a regular basis to take advantage of previously developed technology?  Millions of chemical tests done in the laboratory?  Coding solutions to specific problems?  There are a growing number of online databases and code repositories.  Books are an acceptable medium for passing along information, especially if written in an easy to understand manner.  In order to advance farther and faster than we have ever done before, the mechanisms for knowledge transfer need to be improved through computerized information technology.

 

Questions or problems regarding this web site should be directed to hahn@acm.org.
Copyright © 2002-2004 by Theodore  E. Hahn. All rights reserved.  See Disclaimer page in main area.
Last updated: February 10, 2005.