Practical Coding

Recently, in a meeting, someone stated that I had never been a professional programmer. At the time I agreed, however after some thinking (aka: L’esprit_de_l’escalier) disagreed with that assesment. So, time to write some of the projects I have completed during many years in this industry.

To note: many of these systems lasted months through to years, and used tools at hand. The essence of Practical Programming. All of these are written by myself, based on toolkits, SDKs and IDEs. Many no longer exist.

School sports day scoring system 1985. Mid 1985, written in Microsoft Basic for the Mac; this system recorded the winners and score for the annual sports day. I recall spending about a week of after-school hours until 3am or so writing this. I remember this as the first production system I wrote, that if it failed, I would look really silly. It worked on the day, and generated the correct printed results.

Bespoke locked down museum display system: written in late 1986, written in Microsoft Basic 2.0 on the Macintosh using floppy disk/text data files as source. Was locked down environment permitting users to select a country they originated from, and detailed the history of migration from that country to South Australia. Was still operational in the South Australian Migration Museum 3 years later.

Bespoke, locked down competition system: written in early 1987, written in C on the Macintosh using a B-tree engine. Was locked down environment permitting competition entrants to type in their name and phone number. The data was stored to disk. Competition winner picked randomly.

Chauffeur: written during late 1987, using Hypercard and C-written external functions for serial port access: a visual front-end to CompuServe email and forums. Written for “Tricks of the HyperTalk Masters” (Waite Group, 1988). I cannot recall the total number of lines of code; it was essentially a clever state-based system that screen-scraped data from a serial connection. Data was presented visually in Hypercard’s UI. I miss HyperTalk (Hypercard’s language)

Various Proof of Concepts: in 1990-1992, Apple promoted HyperCard as a visual front end for complex data. Using Apple’s DAL (Data Access Language) to Tandem, DEC and other SQL data sources. These PoC’s assisted Apple in winning enterprise customers in Australia. I installed an alpha of Apple’s A/UX DAL connecting to an Ingres database. This base system was used to demonstrate data-querying from a data-warehouse along with Mike Seyfang. This is the birth of the Munge Brothers.

Unix-based, SNMP AppleTalk monitor: in 1992: based on a collection of complex bsh scripts, cron tasks and open source commandline IETF SNMP tools. Does Anyone remember ASN.1? At one stage I was sure I was the only one in South Australia who actually read and used ASN.1 as SNMP was a reasonably new protocol. Executing on a SunOS workstation, this system was used to monitor AppleTalk routers at a large customer, as a part of a migration of their infrastructure. Also monitored via TFTP booting/reboots for uptime management. Email of outages and reports for network management.

Sherlock: in late 1993: Unix-based, 3-tier, Front-end to an Oracle ERP. I was the primary person managing a single user to SunOS/Oracle/multi-user ERP. Using VICOM Pro, I created a front-end that communicated via Telnet protocols to SQL-Plus scripts on the server. Displayed invoices, orders, pricing and other details. Create “alerts” on stock orders/shipments, plus permitted barcode scanning of inventory. Cron tasks for the management of management reporting. SQL-Plus Profit & Loss and Balance Sheet generation (the inbuilt tools sucked, so I wrote my own). Used in production for at least 2 years. At the same time, Adam Steinhardt wrote Bedrock in FileMaker: quoting and contact management system that was the basis for NextByte. Created export tools for integration. I miss VICOM’s language and development tools. Hello Brian Morris and Darko Roje!

Network Monitoring Tools: in 1994, various customers were wanting to measure end-user network performance of terminal based systems. Wrote a front end in VICOM Pro to measure screen-refresh times. Application was distributed around the network and reported back to a central server response times. Was used to contract compliance in large tenders, and to track down application performance bottlenecks. Also created front ends for login systems for customers such as Comcare in Canberra using VICOM Pro.

Web Publishing System: in 1996, for Fairfax@Atlanta web site. Userland Frontier based, with FileMaker backend. Running on MacOS, getting data via FTP from Fairfax’s editorial system. Frontier created static pages from dynamic content. Data editing multiple user in FileMaker. Static pages FTP’d to web server. 300,000 pages views a day in 1996.

sidenote: During 1998, I trained as a WebObjects developer in Cupertino under the former NeXT trainers. This involved formally learning Java; and an introduction to the Enterprise Objects Framework. EOF is an early example of a relational-object mapper. Beauty before its time.

Adobe/Scripting Proof of Concepts: from 1999 to 2004, using a variety of tools from Visual Basic, to AppleScript and Adobe InDesign and XMP toolkits to generate content management and automation scenarios. Used in selling “concepts” and ultimately selling products. Scripting improvements in InDesign 1.5 and later from customer and my input direct to product team. Still love InDesign. PoC’s are tough as they have to work a handful of times but in a critical demonstration.

A part of this bundle of code Included a database to SVG rendering system deployed in 2001 to demonstrate SVG. Before it was HTML5/Web cool. Adobe and the W3C really dropped the SVG ball in an attempt to out-run Macromedia’s Flash on mobile devices. What a waste of good resources and talent.

Mungenetengine: 2000-2006: PHP, MySQL content management system; about 3000 lines of code. Written/Tested on Windows and deployed on Linux. Based on the Fairfax@Atlanta experience, but using open source tools and public deployment. Created various connection points (XML-RPC and SOAP) with visual interfaces in Python amongst others. Whilst the backend was for personal use and not published, the code executed at least 3 million times whilst live. Parts of this engine still exist to redirect queries from old search engine results into WordPress. Also created a small WordPress plugin that assisted in transition.

The unerlying framework was used as the basis of 3 internal systems created for Adobe. One of which was the basis of an MBA paper.

During the family’s trip to Europe in 2004, I used a WxPython – SOAP based application to upload text and images to the mungenetengine.

Random Neil Finn Lyric Server: 2002-now, based on PHP, MySQL and SOAP. A very early, non-stock quote SOAP service on the internet and therefore used in many places. Image manipulation, and twitter-bots feed of the underlying system

Adobe-Internal Sales Reporting/CRM: 2004-2005: during my days as a Sales Manager, I could not resist the temptation to cut some code. Two systems were generated: one in Microsoft Excel, SAP Business Warehouse and Macros to create a one-page KPI sheet. Used daily as management tool for 3 years. Added to this a CRM system that detailed partner revenue, contacts and email list/communication. This system was written in Python; specifically TurboGears framework connected to FileMaker, with some later additions coded in Coldfusion. This latter system used a web front end.

In summary, this account at least 13 systems that ran in production coded and tested by me. Now I have documented them, I am ready armed for the next meeting where experience is called out. You have been warned.

I think it’s time for more, right?