This site I have set up to post source code and programming tips for the C# programming language. Background From 1960 - 2009 My first exposure to programming was during the 1960’s when I learned some of the basics in Cobol and Fortran but I never used any of this as computers then were vacuum tube and punch card devices. In the 1980’s I became involved with computers due to my interest in photography. The Amiga was the first computer that could do primitive photography and I became involved with that community of users.
While attending a convention of Amiga users I met one of the prime developers of the Amiga, Jay Minor. During a discussion with him about my dislikes in software he suggested that I should learn to program. He said it’s easier to program than to be constantly learning other peoples programs. This advice turned out to be prophetic and to this day I try to largely use my own programs. The primary advantage of this is that if I don’t like how it works I can change it.
The dedicated languages for the Amiga were “Assembly” and “C” so I began learning “C” which is a lot easier than “Assembly”. In 1990 the hand writing was on the wall and the demise of the Amiga was immenent. I had a friend who was in the Home Inspection business and he wanted a program to do inspections with on a laptop so I purchased a copy of Borlandc and embarked on my first adventure writing code for the MS platform.
The MS platform at that time had only limited ability to do graphics and since I had come out of the Amiga community I had some experience with relatively advanced graphics programs. I had written the basic interface for a mushroom identifier on the Amiga and my friend Dick who is a botanist wanted to create a identifier for ferns on the MS platform. We wanted to use images but MS at that time did not have tools sufficient to create the graphics so we used the Amiga to develop the graphics and wrote a program in “C” to do the search, logic, and used a display device called VPIC by Bob Montgomery to display the graphics.
We started on this project in 1992 and did not complete it until 1998. During this time technology changed vastly. MS Win became SVGA compatible and the MS platform for the first time could do real photography. We started using a graphics library written in assembly by Dan Sill called SVGACC.lib. This library had a large volume of example source code written by Steven Baulkum. Steve’s source code is piece of real art. Clear, concise, well commented, and very instructive I learned “C” programming from this more that anywhere else.
Using the SVGACC.lib to do display of .PCX 256 color images allowed me to write programs with graphic displays and I wrote a paint program, an animation display program and integrated this display into the fern program.
At the same time I had become interested in doing sound on the computer. The Sound Blaster was the primary sound device in the beginning and Creative offered free source code to developers. After a short time I was able to do picture displays with SVGACC.lib accompanied by sound “WAV” files from my own source code.
During the late 1990’s after the introduction of Windows XP my Borlandc compiler became outdated and I migrated to Linux operating system. This was primarily motivated by the high cost of the MS compiler as Linux offered a free GNU compiler which used the “C plus, C plus plus ” programming languages. During that period open source code in the Linux environment provided the opportunity to develop picture display devices and a MP3 player. MP3 was a newly emerging technology which I felt was going to revolutionize the way we listen to music. I started encoding my Jazz collection to MP3 and this has become an ongoing activity, which continues to this day.
Programming C#
In the fall of 2004 the NYS Museum made a request of me to update the NE Fern Program for the new versions of Windows and my son who is also a programmer convinced me that I should set up a machine with Windows XP and the Studio .NET compiler. I had resisted this because of the costs involved in both hardware and software but I finally gave in buying a new machine, XP, and a compiler. I wrote a few command line programs with the compiler but soon discovered that to derive maximum benefit from this new system it would be necessary to adopt the C# programming language.
C# is a language dedicated to the Windows operating system and it greatly simplifies writing programs to do multi-media. The
first project was a rewrite of the "Fern Identification Program".
Now in the past five years I have written over 100 programs in C# many
of which are for display and processing of images, video, and sound. That effort continues to date.
I have now written many pieces of software in C# including the following:
NE Fern Identifier George’s Perennial Guide – over 100 perennials with culture notes and photos MIplayer.exe – mp3 player with list and export facilities and associated picture display. MHcdcopy – Copy CD’s to WAV MHcompress - Compress WAV or Flack file to MP3 MHrecord – Analog audio recording to many formats including WAV and MP3 BUS2k06 – The newest version of Business Utilities System FLAGCALC.exe – A calculator for packaging Flag Stone, Palette #, sq.ft.,$ AE.exe – a simple ASCII editor MHclock – a C#alarm clock MHimage - Image processing crop, re size, convert, color correct, etc. MHpicpan - The "Ken Burns Effect" pan and zoom a still image MHanimpan - Similar to above but pan and zoom on an animation sequence. MIanimfade - Does progressive cross fade between animations. MHconvert.exe- Batch convert BMP TIF JPG GIF PNG wit re size for internet photos Log Media.exe – A log for CD’s, MOVIES and MUSIC with CD cover creation Log URL.exe - Stores lists of URL addresses and automatically connects using selected browser MHplay.exe – A small media player FLAC, WAV, MP3, AVI, MPG, multitasks well MHprint.exe – Print ASCII and picture files - great for CD covers MFslide.exe – A slide show utility MHview.exe – Picture viewer for use from .BAT files or programs numerous modes of operation from parent programs Search.exe – A search engine for ASCII files. MIplayTV - Software to display multimedia on Media center entertainment system with HDTV MHdownloader - download and display camera chips including .mts and .mod video
|