Ode to Used Book Stores
3 Aug 2021
When I get a little money I buy books; and if any is left I buy food and clothes.
— Erasmus of Rotterdam
Used bookstores are my arch nemesis.
...When I get a little money I buy books; and if any is left I buy food and clothes.
— Erasmus of Rotterdam
Used bookstores are my arch nemesis.
...Control-Flow Analysis is a popular technique for performing static analysis of many different kinds of programming languages. It’s most often needed in cases where you have some kind of dynamic dispatch: either where you have first-class functions or when you have objects and you call one of their methods.
...For one of my classes I am required to take a short weekly exam via Proctorio. There’s been some controversy surrounding this software. Although it claims it’s trustworthy, it’s not open-source, so no one can verify their claims. So naturally, I was reluctant to install it on my primary machine. Enter: the spare raspberry pi I have sitting around.
...This is the story of how I managed to get FreeBSD running on a Raspberry Pi 4 with 4GB of RAM, though I think the setup story is pretty similar for those with 2GB and 8GB.1
I also managed to get Rust built from source, (kind of) which is nice because the default Rust installer doesn’t seem to work for FreeBSD running on a Raspberry Pi.
...I noticed that my Internet was acting strangely: whenever I visited a web page, my browser would hang for a good second or two before it started loading anything. Zoom calls worked without a problem for school, so this tipped me off that something was wrong with the DNS lookup or the handshake.
Sure enough, I popped open my Pi-Hole admin console, and was greeted with this:
I am an avid Emacs user. I’m using it right now to compose this post. I use it every single day for everything from work to school to personal notes. Most of my activity on GitHub comes from me tweaking little things in my configuration files. I now have an editor that perfectly fits my hands. Emacs is a big part of my life.
I’m afraid it’s dying.
...I just finished watching The Social Dilemma, and here’s my hot take: The Social Dilemma is an emotive, accessible introduction to problems that, without exaggeration, pose an existential threat to life as we know it. If you can, watch it.
...I’ve been thinking about programming languages a lot recently. A question I asked myself was: why do we work on, refine, and create new programming languages?
I thought of several reasons, but they seemed to boil down into two broader reasons:
Better abstractions and more automation: some languages automate and ease some tedious tasks like memory management, concurrency, or type annotations. Almost all languages give you some ways of creating abstractions that let you reason with concepts in your problem domain, but different languages do this in different ways.
...I went on an adventure today. I left behind the stable comforts of the terminal and compiled bleeding-edge Emacs that uses a native window system.
This is a big deal for me. As long as I can remember, I’ve used Emacs from within a terminal. I’ve decided to give the GUI’d Emacs a whirl.
I’m running macOS Catalina (10.15.5). Originally I tried using the pre-built packages via brew (brew cask install emacs
) and those available at Emacs for Mac OS X. However, all these pre-built binaries crashed on Catalina. I guess it’s a problem with Catalina. 🙄
An analogy occurred to me this evening as I was thinking about programming language design:
Choosing good keywords and function names is like picking a good font; the ideas conveyed may be the same, but a change can drastically impact legibility and enjoyment of use.
PHP does a spectacular job of providing a bad example. It’s like the Comic Sans of programming languages. Now there are many reasons why PHP is not a good language—I’d like to investigate this particular aspect of its design here briefly.
...