More ZX81 Thoughts
I've already described the first personal computer that I owned, the Sinclair ZX81, but I had some more memories to go with that post.
The amount of memory (RAM) that the computer had was 1K, that's 1,024 bytes of memory. Take out just over 100 bytes for system usage and you ended up with around 900 bytes of memory for your program and its data. My current desktop computer is about a million times more powerful than the ZX81 with its 24 Gb of memory but back then the few home computers available came with only a small amount of memory.
An additional memory pack was available for the ZX81. It was known as the Ram Pack and it brought the memory capacity up to 16K of RAM. Unfortunately, its connector was not very well designed and it literally just plugged straight into the edge of the circuit board inside the ZX81. The result was that it would wobble if you bumped the computer and would cause the computer to crash. Owners of Ram Packs tried many different ways to keep their computers from crashing. I had the most success with resting my computer on a small book to keep the Ram Pack in the air and prevent it flexing on the surface of my desk.
Without a disk drive, the way that you got programs into the computer was either by typing them in through the flat membrane keyboard or by playing recorded programs into its audio interface via a jack plug from a tape player. If you've ever heard the sounds a modem makes, that's what the programs sounded like. The programs were quite short, so it quickly became possible to buy C15 cassette tapes, that were just 15 minutes of total recording time, seven and a half minutes each side. I used to reuse the program tapes to record songs off of the radio during the chart countdown show on Sunday afternoons so I could listen to them during the week. Sometimes I would listen to the songs while going to bed and it was not unusual to be jolted at the end of a song by the screeching sound of a program that was on the tape before I recorded a song onto it.
Continue reading →My First Computer - Sinclair ZX81
Image from Wikipedia page for ZX81
Back when I was a lad, I started learning about computers at school. There was no official computer curriculum, but one of the physics teachers started a computer club, brought in a couple of his home computers and started teaching interested students how to program in BASIC. I was one of those students and I fell hard for the subject of computer programming and started spending many of my lunch breaks at the physics lab working my way through the manuals that the computers came with back then.
The computers that our teacher brought in were a Sinclair ZX80 (the forerunner to the ZX81) and the Acorn Atom. The ZX80 had 1K of memory, while the Atom rocked a massive 2K. Both computers had their own version of the BASIC programming language built into the computer. Home computers, at that time, did not have floppy disk drives, so the provided programming language was invariably burned into Read Only Memory, known as ROM, so that it was available as soon as the computer was turned on.
Continue reading →Quicksort With Hungarian Folk Dance
Sometimes the Interwebs are truly as awesome as we all hoped they'd be back at the start of the millennium.
For your edification today we have the classic computer science algorithm for Quicksort presented flawlessly through Hungarian Folk Dance.
If this outstanding (and world class) geekiness has gripped you tight, fear not, there are other videos using other music styles to demonstrate other algorithms.
Continue reading →Testing Rant
(It looks like I wrote most of this back in 2015. I've dusted it off and present it for your edutainment.)
It's time to rant about a technology issue close to my heart. I realize that the gold standard for technology rants has been set by Steve of Stevey's Drunken Blog Rants and the incomparable Zed Shaw. This means I should either swear often or only write after consuming significant quantities of alcoholic beverages. Ever the rebel, I'm going to dispense with both of these requirements and enjoy a nice cup of tea instead.
At Benevolent Employer, they are trying really hard to fix things. As is often the case with large companies which have been around for many decades, there is much to fix. I wholeheartedly endorse fixing stuff. The problem is that they are trying to fix testing, particularly unit testing, as if it was a standalone thing that they could upgrade by creating enough PowerPoint slides and new policies. What they need to fix first is their understanding of what testing is and then they can proceed on to the step of testing better.
Companies with I.S. divisions generally have a department within I.S. called Quality Assurance. Interestingly, they usually never speak the full name, referring to them instead as QA. Thus testing is seen as a QA thing. This is unfortunate because if they called them by their full name, they might realize that the department is wrongly named. It is my careful observation that QA departments perform no Quality Assurance. Rather, they are acting as Quality Control and there is a significant difference. Quality Control is something that manufacturing companies use. Quality Control is the department that ensures the company's manufactured product meets all of its stated specifications. That the product is the correct size or weight within tolerances and that it operates in the correct manner before it leaves the factory and is shipped to customers. This is the exact role that most QA department fulfill, that last ditch effort to catch bad code or wrong system functionalities before they are delivered to the users. Don't get me wrong here, a certain amount of Quality Control is appropriate, as it helps to catch issues in the manufacturing process and the production line can be halted and all machines and tooling can be inspected to bring them back within tolerances. But Quality Control is not, and will never be, the same thing as Quality Assurance.
Continue reading →Drinking Tea And Surfing The Web
Updated: 28th October 2020
It's an interesting life being a Technical Lead as I discovered when I became one in an IT department. I simultaneously discovered that it is both a vitally important role and an oft mis-understood one.
At the instance of Benevolent Employer where I first made my discovery, the role of Technical Lead had absolutely no definition outside of a few required documents that you were supposed to create. Fortunately, it was realized informally within the company, that the role was where an experienced developer could bring their knowledge, experience and wisdom to a project. That they could positively influence every technical aspect from the architecture to the day to day activities of the individual programmers. It was this aspect of the role that I most loved.
I see two distinctly different, opposite yet inter-woven, aspects to the role of Technical Lead. Jocko Willink, of Echelon Front, would call this a dichotomy. If it wasn't too blindingly obvious, I would call these aspects Being Technical and Being a Leader. Instead, with a little British understatement, I'll call them Drinking Tea and Surfing the Web.
Continue reading →