*
 

Programming

Ever since I got my teeth into programming for unix systems while in Canada in 1998-1999, I have been really interested in programming CGI scripts/applications.

I can currently program in Perl, PHP, shell scripts in bash and tcsh and some C. I have knowledge of MySQL, Image::Magick and other cool support tools for unix programming. I haven't done windows yet because I don't have a suitable development platform for it. I believe I have a strong grasp of general programming concepts and could program in anything given 24 hours and a good book on the subject. In the past I have programmed in Ada, Pascal, Basic, VisualBasic, Java, Javascript and AppleScript. With the exception of Javascript, I have not recently used any of these languages.

My first real CGI scripts were to maintain a database for the Undernet Channel Service. This "database" (I use the term loosely for the first incarnation) was written entirely using bash scripts use cut, sed, printf, grep and awk, over two weeks in 1998 (plus one short C program for formatting date strings/deltas. time_t is cool). Surprisingly it worked really well.

Over christmas 1998, I got out a book on Perl, and learnt Perl. Then I rewrote the same set of database CGIs entirely in Perl (except again for the C program ;) It has since been running almost unchanged since early 1999.

Also for Undernet Channel Service, I wrote a suite of programs in Perl to process applications for the use of our service for channels on the Undernet IRC network. For security reasons, I choose not to go into detail here about what they do exactly, but basically they perform data agreegation and analysis on the text on channel application forms submitted by users.

The scripts for the Undernet channel service were all written on a voluntary basis, as the organisation is all volunteer run. It was estimated that these two suites of applications saved a total 100 work-hours per week for the volunteers of the organisation, and saved a significant amount of hardware resources for the organisation.

I have been writing computer programs since I was 10, but this was the first time that any of my programs had been used by anyone other than me. It was a most rewarding experiance to hear that these programs had helped so many people, which I think is one of the most rewarding things about writing CGI scripts for public or semi-public deployment.

Through my contact with The New Media Lab (don't ask me when it will stop being "new" :), I have written a number of web applications for them on a contract basis. Most of the work on these projects has been done at night, or after work and university during the day.

My first project with the medialab was the creation of an online database of multi-agent property listings for a publishing group based in the USA. It has password protected administration page, which allows a master user to add/delete agents, and allows individual agents to add/modify/delete their listings. It also provides an online search engine for members of the public to look for a home. The final layout of the returned listings for the members of the public is still undergoing a final design iteration, but is available at YourNewhome. At this date, this listings database has over US$100 000 000 in property listed.

Also for the medialab, I created an online inventory for a truck sales company at ClassicShowTrucks. This inventory worked similarly to the property listings database, but was single users. It also has the added ability to produce thumbnails of images of the trucks, and add descriptive overlays to pictures of the vehicles.

Both of these projects used a MySQL backend database for storing data. Using MySQL for the database provided for a simple interface, and the wealth of pre-written functions for accessing data stored in it.

Also for the medialab's client, classicshowtrucks, I wrote a CGI script which accepts credit applications for truck purchasers over HTTPS using SSL and merged them into spreadsheets which are downloaded by the company from a secure area, printed out, then faxed to credit reporting agencies for approval.

Other projects in the pipeline for The Medialab include a single user property listing database for resale and easy installation, a listings database engine for a car dealership, a banner advert server, an online shop and parts listing for a car dealership and a number of other projects.

In my day to day work, I now do a fair amount of programming, mainly in shell script and PHP, which takes away much of my desire for programming out of hours

Hardcore^H^H^H^Hware Geek

I'm always impressed by good quality computer hardware. I love recent Apple hardware. It looks nice, it's very robust physically, and is easy to work on. PC hardware varies. Several years ago, I bought a Pentium 200 for a sort of home network thingy. I've since added 192MB of RAM into it, and rounded IDE and floppy cables, and it's really nice inside. It has two nice Intel PRO/100 Ethernet cards and routes my internal network to my DMZ, which then routes it to my ADSL modem. I have a DLink 8 port 100MB Switch for my home network. Computers currently in use at my house. So do I reaaaaallly need all those computers? Yes. Well, mostly :)
I also have a Palm Tunsgten|T (but covet a |C), a webcam running off a SGI Indy, a Canon G2, a 2400 dpi scanner, and a printer. Do I really need all this stuff? Well I did at the time I bought them.

I'm not a geek, really!

Some may debate this, but I try to pride myself on being able to have a conversation which doesn't involve computers in some way and to eb able to go without touching a computer for several days. Of course, I hear people talking about ICQ on the bus every few days, so I think in this modern age, the borderline of what is and isn't a geek is getting more an more blurred. Which I think it good. Why be stigmatised because you have a passion for something which didn't exist 30 years ago? I'm normal. Honest...