Wallops 1.0 Released

As teased on Twitter, the first release of my Wallops IRC client is now available:

  • wallops-1.0.sit (StuffIt 3 archive, includes source code and THINK C 5 project file)
    SHA256: 459421124a43787259e76dd54ac1cd010348ca7f6cdf429ae3f950bb6f858496
    SHA1: 36de58842fc6376fab4ada0f3a4287ac22fac9ae

A future update will support multiple channels but for now it only supports one channel at a time.

Amend 3.2 Released

Amend 3.2 has been released:

  • amend-3.2.sit (StuffIt 3 archive, includes source code and THINK C 5 project file)
    SHA256: 8daec2d4bed7d3b7910b2a6899b390a55c16d840b99df081fa52d3d47582a691
    SHA1: b4c0bbade81028b3a66ceeaf3cb2314ef32ee19b

Changes in this version:

  • When filtering out already-added files, also filter out the open repo file itself
  • Fix a possible crash after committing
  • Stop occasionally displaying a cursor on read-only text boxes such as diffs

Video: C Programming on System 6 - A New On-Disk Database Format

It's a new year and my old computer is still old.

A bug in Amend caused it to crash during a commit, which corrupted the repo beyond repair. I quickly came to realize that using resource files as a database for Amend and my new BBS was a bad idea. I NIH'd the problem and created my own file format that will be a bit more resilient to crashes and partial writes.

Continue reading 236 words...

Video: C Programming on System 6 - Adding a GUI to diff(1)

In the previous episode I quickly ported OpenBSD's diff(1) but there wasn't any interface to select files or scroll through the output. I've since added a proper GUI with the ability to select files or folders, and in this episode I walk through the GUI and filesystem code and then add a proper Edit menu. I also make a formal release of the code and binary available for download.

Continue reading 156 words...

Video: C Programming on System 6 - Porting OpenBSD's diff(1)

I've wanted a simple revision control system on my Mac since starting development of my IMAP client. Porting a large system like Git or even CVS would be overkill (and very slow), but maybe something small like OpenBSD's RCS implementation would suffice. For now, just having a diff utility would be helpful so in this video I port the guts of OpenBSD's diff(1) and show it generating a unified diff between revisions of a C file.

Continue reading 203 words...

Video: C Programming on System 6 - Parsing RFC822 Dates

I wrote a utility function to parse RFC822 dates/times sent by the IMAP server, which then converts them to a UTC time. In this video, I hook it into the IMAP parser and add a resource string for the local timezone offset setting, so these UTC times can then be converted to a local time and displayed in the message list.

Continue reading 134 words...