Home

Well met and welcome! My name is Sam, and on this little corner of the internet, you can find the various programming projects I have put together in my spare time. For any questions or comments about them, the site, or Haskell jobs you may be looking to fill, please email me at ag@ (personal messages can be sent to sam@); otherwise, just enjoy your time here, and I hope that your day goes well for you!

Background

Iʼve always enjoyed finding my way around computers; from when I figured out the F11 key made Internet Explorer take up the entire screen by accidentally banging the keyboard, and then by deliberately banging on progressively smaller portions of the keyboard until I zeroed in on the proper key, to when I switched my Gentoo installation to build everything using Clang rather than GCC, and hacked together code patches and/or manually added compiler flags to get (almost) everything building again. I took a game development class in high school because I had started writing my own—using a more complex environment than the class provided—in my spare time in middle school. I specifically requested programming textbooks through the interlibrary loan system for a bit of light reading, even before I had the mathmatical knowledge to fully understand them.

And yet (or maybe because of that), my mother is able to joke about how technologically conservative I am. I might unthinkingly forward an email and leave the recipiant dealing with a plain‐text rendition of what was once a complex HTML document, complete with tracking links displayed in full over three lines of identifying characters. I have to admit to finding a certain delight in replying to peopleʼs offhanded comments about an app I should use or a new feature of an upcoming phone by pulling out my own and flipping open the 2½″ screen; I had a smartphone once. I switched back the first excuse I got. I am writing this in Vim, to be compiled from the terminal to static HTML files, and pushed to a server where the primary management is done via ssh.

I would describe it more as being aware of what I lose in the newer technologies, and not buying in to the slicker interface just because itʼs a bit fancier. I would talk about how having the internet in my pocket wound up being the only thing I would look at on breaks at work, to the detriment of writing the stories I had in my head, of the physical books I was reading, of walking the trail alongside the river. I would argue for the benefits of controling your own information on your own domain, and of having that information be accessible even to the most basic of clients. I would not have any good excuse for the overly‐basic email.

That is the mentality that underlies my programming: provide the user with a complete, comfortable experience, but give them control over their own data and system. Moreover, avoid complexity for complexity's sake, and—above all—keep in mind what unintended effects any seemingly simple ease‐of‐life feature might have on the quality of the rest of their life.