On the modern web, everything must be encrypted.
Unencrypted websites are treated as relics of the past with browsers declaring
them toxic waste not to be touched (or
even looked at)
and search engines de-prioritizing their content.
While this push for security is good for protecting modern communication, there
is a whole web full of information and services that don't need to be secured
and those trying to access them from older vintage computers or even through
modern embedded devices are increasingly being left behind.
Continue reading 1,675 words...
Fifteen years ago, NetBSD's Bluetooth audio stack was
imported
into OpenBSD.
From what I remember using it back then, it worked sufficiently well but its
configuration was cumbersome.
It supported Bluetooth HID keyboards and mice, audio, and serial devices.
Six years ago, however, it was
tedu'd
due to conflicts with how it integrated into our kernel.
While we still have no Bluetooth support today, it is possible to play audio on
Bluetooth headphones using a small hardware dongle.
Continue reading 1,503 words...
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.
Continue reading 138 words...
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...
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...
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.
Continue reading 100 words...
Today, I implement plaintext message viewing and hook it up to the message list.
I also review a cleanup of int
variables to make them either short
or long
throughout the project.
Continue reading 125 words...
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...
I recently read about using a jump instruction as an LDEF
resource to allow
keeping the list definition function in the main program executable/project, so
in this video I implement the technique for the message list.
Continue reading 155 words...
In this video, I get the list of messages displaying again and fix a bug that
occurred when closing a mailbox.
I provide a quick summary of creating LDEF
procedures in THINK C for drawing
custom list cells, which I will expand upon on in a future video.
Continue reading 161 words...
In this episode, I fix the off-by-one error in the IMAP envelope parser noted
in the previous episode, then improve the tracking of a malloc
ed buffer that
gets shifted around during parsing.
Continue reading 96 words...
Returning to the development of my IMAP client, in this video I add
functionality to fetch the default mailbox name from the resource file (later to
be moved to a preferences window) and then eventually locate a crash in the IMAP
protocol parser from a bogus memmove
.
Continue reading 191 words...
In this video, I create a new GUI application from scratch, create a resource
file and add an image to it, and then display that image in a window.
I also cover using THINK C's debugger to inspect a struct.
Then, my Mac dies.
Continue reading 472 words...
I've been writing an IMAP client for and on my
Mac 512Ke
over the past many weeks.
Taking inspiration from
Andreas Kling's
excellent YouTube videos documenting his development of the Serenity operating
system, I thought I'd start screencasting some of my work.
This video is the first of hopefully many and presents a quick introduction to
System 6, HFS resource forks, THINK C 5.0, and a look at some of the progress
of my IMAP client so far.
Continue reading 320 words...
Now that my Mac 512Ke is able to use
PPP
for native TCP/IP, I wanted an easy way to do PPP between it and an OpenBSD
server on my network.
I initially did this with a physical serial cable, but was later able to do it
over TCP so I could retain the use of my
WiFi232.
Continue reading 1,196 words...