Technical Blog

Unix As a Tool Forge

7 Nov 2022

Wikipedia cites a few different sources on what “Unix Philosophy” is. Peter Salus summarizes it as:

  • Write programs that do one thing and do it well.
  • Write programs to work together.
  • Write programs to handle text streams, because that is a universal interface.

That second bullet point is my favorite: making composable programs rather than monolithic systems. In this way, Unix is designed to be a forge for easily building new tools. The first rule—writing programs that do one thing well—is largely a means to the second. When you have building blocks that take simple shapes, you can compose them easily like Lego pieces.

...

Yet another blog revamp

26 Oct 2022

Yes, it’s time to redo my blog again.

This time I found an ultra light-weight blog theme. This page here is under 100KB!

I wanted to make something that acts more like a homepage for my research, rather than a blog. I still have all my blog posts, but now the focus will be on a more professional presentation of my work.

This theme is really what I’ve wanted all along: a home page with a max-width for the text, table of contents, and built-in local search!

...

Email, Getting Work Done, and Corporations, Or: Outlook Considered Harmful

28 Aug 2022

It’s hard to overstate how important email is in our modern world. Even as hip new platforms like Slack &co. gain traction in the workplace, so much communication takes place in a crusty old medium that’s outlived every purported “email killer”. Where does it get its staying power from?

Email predates much of the Internet as we know it today. Its current incarnation first emerged in the early 80s, though it has roots in earlier forms of digital messaging from as far back as the 60s. “Email” is roughly three related protocols: SMTP, “Simple Mail Transfer Protocol”, which deals with the sending of mail; IMAP, or “Internet Message Access Protocol”, which allows mail clients to fetch mail; and POP3, or “Post Office Protocol”, an older mail fetching protocol largely superseded by IMAP.

...

Adding a Clock to the Tab-Bar in Emacs 28

20 Jul 2022

Today I figured out how to add a tab-bar to Emacs. I didn’t like having it in the mode-line: it gets duplicated for every window and my mode-line space is precious. In contrast, the right side of the tab-bar was always blank.

Rules for Social Media

17 Jul 2022

I’m not on many social media platforms these days. I like it like that. I mostly follow some academics and people who post interesting stuff. I post only occasionally, usually to show off my recent hiking exploits. I’ve come up with some rules for myself (all subject to change) about what I post.

A post must meet all the following criteria:

  • It must be positive and uplifting.

    There’s enough that’s negative on the internet. Don’t add to it.

    ...

microKanren Reading

4 Jul 2022

μKanren (“micro-Kanren”) is a tiny, embeddable logic programming language. It’s easy to understand and implement in almost any language. It’s a great case study of an embedded language: unlike other common “embedded” languages like SQL or regex, which normally are represented as just plain-old strings, μKanren takes more advantage of the host language’s features.

I recommend reading the original paper: it’s short, well-written, and easy to understand.

I did a write-up which you can read on Codeberg. The README is my set of notes that I made while walking through the implementation of the paper, and the repository contains an implementation in Racket. I’ve included some fun use cases like a type checker/inference engine that takes up only 37 lines of code!

...

Blog update

2 Jul 2022

Brief update on the blog: I had been running a custom fork of the Anatole theme; it diverged pretty heavily, and I found a nice way to customize the CSS. Behold! The new-and-improved blog.

Some of the new extensions to Anatole include the ability to set a static page as your profile; I’ll do this and include links to lists of publications and whatnot. This should make my blog a better place for my professional/academic life.

...

Mastodon