“You get paid for the seven and a half hours a day you put in here, but you get your raises and promotions on what you do in the other sixteen and a half hours.” - Mervin Kelly, Bell Labs
Is everything a graph, actually?
Whereupon I find a hammer and every problem starts looking like a nail.
I accidentally got obsessed with graph databases this week. See, what had happened was… I was sitting around trying to come up with a good way to model DNS data in postgres, and I realized that every solution I came up with would either require a lot of joins to answer questions I wanted to answer, or result in very sparse tables. I wondered if there was another tool for the job, and I remembered that neo4j was pretty cool, but I didn’t really know anything about how to use graph databases.
The results, after several days of playing, is that I still don’t really understand them, but I have some code that will insert or update nodes that already exist for DNS names, insert or update nodes for new TXT records and IP addresses discovered, and map record types via relationships. It’s a long way from what I have in mind, but it’s very cool to play with and uncover interesting little patterns.
Changing my MacOS experience
I don’t know what caused it, but this past week I decided I was tired of the chaos that was my MacOS user experience on my work laptop. I wanted to switch things up so that I could have a more consistent experience between my work macbook and my personal macbook, while having many of the benefits I like of using hyprland on my framework laptop.
Enter Aerospace. It’s an i3-like tiling window manager for macOS. You may have already heard of other tiling window managers for macOS, like yabai or Amethyst. I ultimately went with Aerospace because I saw a video about it on youtube where someone walked through setting up their config and it just made sense to me. I also like that it is implemented entirely with its own implementation of virtual workspaces, since the macOS spaces feature kinda sucks. I don’t have any interest waiting that long to switch windows just so you can look pretty.
It’s not without it’s quirks, though. Periodically I will unlock my laptop and a bunch of my windows will get jumbled up onto different workspaces than I left them on. I’m not sure why this happens, but it’s usually not longer than a couple seconds to sort them out. It also only applies to the windows that I don’t have window bind rules setup for. E.g. I have chrome bound to B, for browser, and slack bound to S for, well, Slack. I have WezTerm bound to T for terminal, and Pycharm bound to P. It’s really just the random other windows I open but don’t use every day that seem to get jumbled up occasionally, which is mildly annoying but not the end of the world.
In addition to this, I spent some time switching to WezTerm, away from iTerm2. I have used iTerm2 since I started on macOS back in 2018, but I haven’t really felt like I liked it in many years. It was just there because it was familiar and because it was better than the built in terminal. WezTerm has been great so far, though the configuration has taken a little getting used to. Ultimately I think I want to move away from relying on the terminal emulator itself to do pane splitting and get myself a tmux or zellij configuration that I like. But for now, WezTerm was a pretty chill replacement for iTerm2.
All these changes didn’t feel radical enough, so I also added Vimium to Chrome at work, and have been forcing myself to learn vim motions and commands. It’s slow going, but I’ll be damned if I don’t feel like a wizard when I do something cool. I’m also spending notably less time with my hand on the mouse, which I like. I’m probably only a few weeks away from being insufferable about using vim.
Speaking of vim… it’s kind of insane to me that the arrow keys are hjkl instead of jkl;. Does vim predate the standard qwerty keyboard home row positionining or something? Having to move my hands off their resting space to shift one over to use arrows is weird. But I’m told that once I get good, I won’t rely on the arrow keys as much. So maybe it’s fine.
I’m writing and editing this article in VS Code with the vim extension, so I guess you could say things are getting pretty serious.
Interesting Links
- How did places like Bell Labs know how to ask the right questions? - I got absolutely nerd sniped by this article (essay? maybe?) about Bell Labs yesterday and spent hours reading it and other related stories about Bell Labs. there was one quote that i really liked by Mervin Kelly, which I included at the top of this article.
- Jeff Geerling’s Youtube repo - I love this idea. Jeff uses this repo to talk about sponsorships, equipment he uses, his philosophy and process on making videos. It’s so delightfully transparent.
- Kill Your Feeds - A reminder that algorithmic feeds are designed to drip feed our attention, keeping us coming back for more, one drip at a time. Skip the feeds, go to the source.
- xmox - An all-in-one mailserver. I don’t need another mailserver, and I don’t know if I love or hate the idea of a single project basically attempting to do everything needed to run a mailserver today. But I’m interested to see it’s development.
- A Scrappy Complement to Focused Research Organizations - As part of my fall into Bell Labs reading yesterday, I also read this article by the same author about BBN-model orgs, named after Bolt, Beranek, and Newman. It’s an interesting idea that I hadn’t really considered, but then again I haven’t spent a lot of time considering research organizations in general.
- Why you shouldn’t nest your code - I discovered this channel this week, and it’s incredible. He only has 8 videos, has amassed over 400k subscribers, and his content is well written and well presented. I recommend this one and The Flaws of Inheritance. I’m an inheritance hater, and I will preach against it every chance I get, but now I can just link this video instead.
Upcoming Projects
- Defcon Call for Music/Tracks - I’m still working on this track, I wrote a verse but am revisiting whether I like the approach I took.