The Coder

Sometimes I may be a bit slow, but I had a revelation in early 2022.

Looking back over my life, I realised that I’ve been ‘coding’ for over 40 years. It doesn’t seem like yesterday that the young me spent hours every evening and early nighttime hunched over a Sinclair ZX81, typing in ‘code’ from a computer magazine.

ZX81 with 16K RAM PACK

That’s how it all began, I guess. I was always intrigued by ‘programming’ (what we old folk used to call what the young folk now call ‘coding’).

This was before the days that home computers properly took hold. Before the likes of Microsoft and Apple created products that we never knew we needed.

Computer magazines were not filled with ‘apps’ and mobile devices. They advertised an array of home computers like the Spectrum, the Vic-20, the Commodore 64.

At school, our computer room was more like a broom closet with the oddest collection of computers you could ever hope to see.

Acorn Atom
Sinclair ZX-80
Commodore Pet

From a lowly Texas Instruments programmable calculator, through the Acorn Atom (before the ‘Atom’ became a barely competent Intel CPU), onto the space-aged looking Commodore Pet.

Sinclair ZX Spectrum

I believe they even had the original ZX80 in there, if my memory serves me well.

I remember too well that, just prior to me selecting which ‘O’ Levels I wanted to do, the school got an I.T. grant – some scheme the government were doing to encourage schools to teach more computing. All of a sudden the broom closet was gone, and we had a dedicated room full of BBC Micro computers (mostly model B, but a couple of model A’s as well). That made Computer Studies more interesting.

I remember spending many a long lunch hour seeing what those computers could do. Long before the days of affordable inkjet or laser printing, the only available printers were “dot matrix” and “daisywheel”. The joy a young mind could have when manipulating how the “dot matrix” printers printed characters to create ‘Bold’ and ‘Italic’ and ‘Double-Wide’ typefaces. We take these things for granted now, but having to effectively “trick” the printer into doing something it wasn’t designed to do empowered my creative mind enormously.

As mentioned, at home my father bought a ZX81, over which I spent many hours hunched when I should have been out learning social skills. Programming in BASIC, typing in lots of incomprehensible hexadecimal from magazines, PEEK and POKE all over the place, getting the dreaded 4/- error. Those were the fun days of having my eyes opened to a whole new world of imaginings. I knew that I wanted my future to include computers somehow.

‘Elite’ on the Acorn Electron

I recall two school friends, one of whom had a ZX Spectrum with one of those ‘thermal’ printers that printed on what looked like tin foil. A computer that not only displayed graphics, but colour graphics! And it had sound that didn’t require tricky manipulation of scratchy beeps through the TV (oh, the memories the ZX81 beings back).

The other school friend had an Acorn Electron, on which we often played Elite. That appealed not only to the computer side of my mind, but also to the imaginative side which had always enjoyed stories of science fiction and space adventures. The Acorn Electron was the “little brother” to the BBC Micro, and had limitations when it came to graphics and screen ‘modes’ (that brings back memories I’d forgotten, too), but it’s amazing how much fun you could have with wireframed graphics.

Before leaving school, I was able to get a temporary job, followed by an evening job, working at a local factory. No computers, almost Victorian in its working standards, and a lot of mind-numbing jobs for hours upon hours. Not something my eager-to-learn creative mind appreciated.

AutoCAD R12

At home, my brother had bought an Acorn Electron which, given the above, was something that really inspired me.

As the years grew on, and I stuck with the job because adults must pay bills, and eventually my patience was rewarded. The factory’s M.D. recognised my talents as I worked through all departments in the factory. He had a vision to migrate the old-fashioned hand-drawn pencil drawings of components and electric motors (for that’s what the factory manufactured) onto a computer/CAD system.

After moving me into the office to work with the drawing Engineer, he sent my on my first (and, thus far, ONLY) course – a three day CAD course to learn AutoCAD LT version 12. That was the DOS version.

By the time the factory actually had a computer for me to use, Windows had come along and what I’d learned on the course was already old hat. However, having done the course using mostly the keyboard for commands, I found that I had naturally adopted a ‘menu-free’ approach to drawings. One hand on the keyboard to type commands and the other on the mouse to draw proved to be an efficient and quick method of CAD work.

Lotus SmartSuite (CD)

My creativity and desire to learn hadn’t abandoned me, and I quickly came up with new and ingenious uses for the computer. I forget what the specifications of that computer were – although I recall that it came with the first version of Windows 95 (still crippled by 8.3 filename conventions) – but it had installed a free version of Lotus Smart Suite. Smart Suite was an alternative to Microsoft Office (which we didn’t have – the factory was notorious for not spending a penny more than it needed to).

Lotus Smart Suite had a database system called Lotus Approach – something that I ended up teaching myself, the first in a long line of “teach myself what I need to know” methodologies. The factory, in its old-school nature, didn’t allow me the time I needed to learn Lotus Approach. They forever wanted “results” and results “as quickly as possible”. The concept of investing time today for a better future tomorrow wasn’t something that entered their radar.

Nevertheless, my unending unswerving need to learn meant that I spent many extra hours working on that computer to learn Lotus Approach. It wasn’t quite up to the complex relational database system that I needed for the sake of the factory’s ‘Parts List’ (a mostly text document that brought together common components for the finished product, plus the drawing of the finished product), but I managed to work around many of its limitations. Given time, which I wasn’t, it could have become quite the program for what we needed.

Microsoft Windows 95

Prior to embracing the world of ‘PCs’ at home, I had many a delighted session on our Amiga 1200 – a surprisingly advanced computer that should have done far better in life, had it been marketed properly before Microsoft & Intel took a commanding leading.

My brother and I next invested in an “proper” computer – a local computer shop (called ‘Photron’, if memory serves) had advertised a “PC” in the local paper and we went there to investigate. I recall it came with am AMD-K5 processor running at 75MHz, during the time that AMD processors were sold with the old ‘it’s better than Intel at that speed’ mantra. The computer was being sold with Windows 3.1 (which I had zero experience with) but, just becoming aware of Windows as I was, I insisted on it having Windows 95 installed. It came with 24MB of RAM and I believe the hard drive was 1.7GB. But it was a real computer.

I had the desire to fiddle about with the hardware in that PC, but I was so afraid of damaging it that it took me a long time to get up the courage to install just a second printer port. No more daisy-chaining that scanner to the printer for me! Yes, we used to daisy-chain scanners, Zip drives, video capture devices, and printer, all to the same parallel port. The fudge we had to do before the days of USB.

Once I finally got up the nerve to open up the case of that PC, there was no stopping me. We later upgraded to a computer from Mesh Computers – that had an Intel Pentium CPU (looked like a Mars bar attached to the motherboard). That was a nice machine, but I eventually transitioned to Dell.

Microsoft Access

When computers became laptops, the requirement to get my sleeves rolled up and get stuck into the guts of the machine diminished. My desire to work out what computers were capable of, however, never did.

The years moved on and the company I worked for eventually decided that they needed a database system to bring the ‘Parts Lists’ and CAD drawings into something that everyone could access – the very thing I’d been working on in my spare time. However, their reluctance to allow the time required for me to properly develop my system meant that what I had to hand wasn’t compatible with the other systems they were using.

Also, as Windows evolved, Lotus Smart Suite fell by the wayside, forgotten and gradually less functional with newer versions of Windows. In their wisdom, the company chose to outsource the database work to an external company – and they chose to develop a system using Microsoft Access.

My experience of the limitations of using proprietary software, and the extra cost to licence Microsoft Access for all relevant personnel, made me voice my concerns against this approach. My voice was a small one, and they went down the Microsoft Access path regardless. Lots of money spent, and it never was able to do what my version had been doing for years.

Content Management System (Joomla)

Knowing that I had more to offer, I ultimately moved away from the factory in order to make my own way, whilst still maintaining ties and remaining staunchly loyal to the company that had employed me for so long. With my old Lotus Smart Suite system no longer being viable, and the Microsoft Access version simple being incapable, I sought other solutions.

For expediency, I first adapted a common CMS (Content Management System) to tie PDF files that I created remotely on the old Lotus & AutoCAD system. Using a propriety CMS didn’t sit well with me and so, in my own time, I developed my own web-based system that would work through any common internet browser, Teaching myself PHP and MySQL, I developed a very successful system.

PHP & MySQL

This new system used MySQL to hold all Bill of Material data for all components, with PHP used to create component parts lists. The web browser system had both a creation (administration) area and read-only (via user log-in) features that tied together PDF files and SVG drawings with the BOM.

The web system was created in a rush due to expediency (nothing changes), and my need to ‘teach myself’ meant that the code behind-the-scenes wasn’t as efficient as it could be. Lack of available time and under appreciated by those at the factory meant that it would be some years before I could revisit the code.

As my system didn’t rely of proprietary software, I was able to alter, update, and patch it over those years. Everything evolves, and modern versions of PHP forced a need for a proper upgrade. Back when I’d started with the CMS, we’d been using PHP 4 and that old system wouldn’t run on anything higher than PHP 5.6.

I rewrote my code from scratch for PHP 7 & MariaDB and, whilst doing so, PHP 8.0 came out and I incorporated changes to accommodate the latest PHP. With an eye to efficiency, I separated out much of the code into individual function modules. My desire to learn resurfaced and I spent many hours of my own time on this significant upgrade.

PHP 8.1 released

Once complete, and having learned more about the newest PHP and the modern way of coding (using OOP), I knew that I could do better. So I started a new modern version of the web based system, using Classes, Methods, and Properties, and the work I’d done enabled me to update the new script for PHP 8.1 that had just been released.

Sadly, despite spending many more hours on the modern system, it wasn’t to be completed. Early in 2022, the factory ceased to require my services. Loyalty, late nights, hundreds of hours not billed, and it meant nothing in the end. And so, without even limited income, I couldn’t continue working on the upgrade and it had to be abandoned as a job half-done

Despite the overwhelming disappointment of the realisation that endless unpaid hours may have been for nothing in the end, it had reawakened my ‘need to learn’. If I have one talent that I find myself recognising, it’s that I have what it takes to “learn what I need” in order to develop a project.

On pondering my options for the future, I knew that I didn’t want to waste my talent for learning. I could have dwelled on web coding, building on my PHP experience and learning other web languages, but I decided that the future most probably belonged to apps. So I set my eyes on App Development.

For forty years, every thing I’ve learned in relation to ‘how computers work’ has been self-taught and it’s kind of in keeping with this that I find myself taking time out from the necessities of life to ‘teach myself’ App Development.

‘App Development’ for Apple devices, such as iPad and iPhone necessitates using Apple’s IDE – Xcode. This, in turn, necessitates access to an Apple Mac of some fashion. Although I dabble with Linux (mostly on my web servers), I’m very much a ‘Windows’ guy – I have more Windows machines amassed from over the years than I can count, plus a good few older versions of Windows running as virtual machines.

Mac mini

As good fortune would have it, a selfless act of kindness and generosity by a running buddy of mine meant that I did have access to a Mac. It’s an old Mac – a Late-2014 Mac mini, to be precise – but it has good specifications, and it’s still gets MacOS updates in 2022.

It may not be the fastest thing in the world (like its owner), and it is a touch long-in-the-tooth (just like its owner), but it’s capable of doing what’s necessary in its slow and dogged manner until the day comes that I can afford something modern.

I find it somewhat in keeping with my coding journey that my first computer some four decades ago was like a “brick” that required connecting to a screen and my current coding device is like a “brick” that requires connecting to a screen. The wheel turns, and it feels like we’re back where we started.

At first, developing apps looks like a mountain too high to climb – especially now that I’m not as young as I was those many decades ago when first discovering BASIC on the ZX-81. For this reason, I’m breaking myself into App Development via the courses from CodeWithChris.

And so, my need to LearnNewStuff has set me on this path. My hope is that it’ll lead me to a bright new future before my finances run dry. I’m keeping that hope alive for as long as I can.


Coding

%d bloggers like this: