Author Archives: Graham

About Graham

I make it faster and easier for you to create high-quality code.

Mature Optimization

This comment on why NetNewsWire is fast brings up one of the famous tropes of computer science: The line between [performance considerations pervading software design] and premature optimization isn’t clearly defined. If only someone had written a whole paper about … Continue reading

Posted in performance | Tagged | 1 Comment

Video podcast: Hisoft C for the ZX Spectrum

Episode 6 of the SICPers podcast is over on Youtube. I introduce a C compiler for the Sinclair ZX Spectrum. For American readers, that’s the Timex Sinclair TS2068.

Posted in podcast | Leave a comment

SICPers podcast episode 5

It lives! Kinda. Amiga-Smalltalk now runs on Amiga. Along the way I review The K&R book as a tutorial for C programming, mentioning my previous comparison to the Brad Cox and Bjarne Stroustrup books. I also find out how little … Continue reading

Posted in Amiga, podcast | Leave a comment

SICPers podcast episode 4

We’re back to Amiga-Smalltalk today, as the moment when it runs on a real Amiga inches closer. Listen here. Aminet has git, but only for MorphOS. MEmacs is the only text editor you need. HiSOFT, makers of HiSOFT C++ SAS … Continue reading

Posted in Amiga, podcast | Leave a comment

SICPers Podcast Episode 3

The latest episode of SICPers, in which I muse on what programming 1980s microcomputers taught me about reading code, is now live. Here’s the podcast RSS feed. It is practically impossible to teach good programming to students that have had … Continue reading

Posted in podcast | Leave a comment

SICPers Podcast episode two

Episode 2 is live! The only link I promised this week is to the BCHS web application stack. Short for BSD, C, httpd, sqlite, it’s a minimalist approach to making web applications. As ever, your feedback is welcome, here or … Continue reading

Posted in podcast | Leave a comment

SICPers podcast episode one

I made a podcast! Full show notes here due to the character limit at podbean. Amiga-Smalltalk project on GitHub Free books on Smalltalk: the three Addison-Wesley books “Smalltalk-80: The Interactive Programming Environment”, “Smalltalk-80: The Language and its Implementation” and “Smalltalk-80: … Continue reading

Posted in podcast | Leave a comment

Stay on target…

I introduce the kind of customer who needs the Labrary’s advice with the following description: Your software team was a sight to behold, when it started out. You very quickly got to an MVP, validated its fit with early successes, … Continue reading

Posted in agile, process, team | Leave a comment

On the tyranny of autoincrementing integer primary keys

In designing a relational database schema, many people will automatically create a column id integer primary key for every table, using their database’s automatic increment feature to assign a new value to each row they insert. My assertion is that … Continue reading

Posted in design | Leave a comment

First, Consider no Harmful.

Yesterday, we observed that the goal of considering the go to statement harmful was so that a programmer could write a correct program and have done with it. We noticed that this is never how computering works: many programs are … Continue reading

Posted in code-level | Tagged | Leave a comment