Video: C Programming on System 6 - Carl Update, Test Suite, Malloc Tracing
I've been working on Carl, my IMAP e-mail client, for the past few months.
I've been working on Carl, my IMAP e-mail client, for the past few months.
I attended the Vintage Computer Festival Midwest 18 and made some things.
I recently acquired a 3M Whisper Writer 1000 communications terminal circa 1983, and restored it to working order. This is a short session of it dialing into my Kludge BBS (hosted on a Macintosh Plus circa 1986) over its internal 300 bps modem.
I attended the Vintage Computer Festival Midwest 17 and wrote two new programs.
Introducing my Wallops IRC client, then returning to work on the BBS adding a serial module to join the console and telnet inputs to allow calls through a modem. I got stuck for a while trying to figure out why writes to the serial port would hang the machine.
I tweeted asking if anyone would be interested in a Q&A, and to my surprise, I got many Qs to A.
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.
Let's have a chat. Continuing feature development of my BBS software.
I review some recent commits covering user authentication and telnet negotiation, then write some ANSI output code and a broken function for returning a number's ordinal suffix.
I'm starting on a new project and I needed a cooperative threading mechanism which didn't exist in System 6, so I created one.
It's been almost a year since my last
confessional video.
A few weeks ago I started working on a small revision control system to handle
my C projects developed on my Mac and it's now at the point where I can at least
manage commits to the tool itself.
Returning to the development of my IMAP client, I add SOCKS5 support to be able to connect through a network proxy, particularly the one I made that is able to convert TLS-encrypted data from my real mailserver into plaintext that the Mac's slow CPU can support.
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.
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.
In this episode, I fetch the flags of each message and for unseen messages, make them appear in the list in bold. That introduces an off-by-one which I run out of time to fix while recording.