~/Postroll

Brandon Rozek

Photo of Brandon Rozek

PhD Student @ RPI, Writer of Tidbits, and Linux Enthusiast

Inspired by Jedda’s Postroll, here is an incomplete list of blog posts that I’ve read and enjoyed in the last 3 months. This list refreshes daily.

If you find any of these posts interesting, I suggest that you give them a follow!

Homomorphically Encrypting CRDTs by Jake Lazaroff

Great introduction to Homomorphic encryption and how it can be applied to CRDTs for collaborative software. Unfortunately at this current state, it seems more efficient to send an encrypted copy of the entire program state than handle the key sizes necessary to propagate homomorphically encrypted changes.

Added: June 20, 2025


How language servers work by Pierce Freeman

Language servers are highly useful with some spotting potential mistakes before you execute your code. It feels weird to program in an IDE without one. This post provides a high-level overview on how they work.

Added: June 20, 2025


TRMNL Metro Transit plugin by Benji Encalada Mora

There’s been a few blog posts like this one where people share cool applications they’re building for the TRMNL E-ink display. In this one, Benji essentially replicated one of those signs you see in a metro station!

Honestly, it looks great and I’m tempted to buy one for myself.

Added: June 20, 2025


Visualizing the Internet (2025) by Kevin McDonald

Insanely cool interactive visualization showing the undersea cables to create what we call the Internet. It even has data going all the way back to 1989!

Added: June 20, 2025


Blog Questions Challenge by Jason

I don’t quite recall what superpower I wanted as a kid, but Jason’s wish to slow down time is cool! Even if other people and object’s don’t live in the same relative time, we can still use this power to get our full night’s sleep in less than a second :)

Added: June 15, 2025


Minimal CSS-only blurry image placeholders by Lean Rada

Very cool blog post on how to downsample an image down to 20 bits for use within CSS! A great alternative to the JavaScript based BlurHash.

Added: June 13, 2025


Never to connect phone numbers: A project by Gregory Hammond

If you live in Austrailia, United Kingdom, or North America, Gregory shows us that there is a batch of phone numbers that will never be assigned to anybody. It’s good to have at least one memorized in case someone is pestering you for a number and you don’t want to give it to them.

Added: June 12, 2025


the algebra of dependent types by Tony Finch

The notation for dependent type theory is initially confusing. Tony does a great job here showing how it’s more intuitive when you view it from the perspective of the number of inhabitants of a given type.

Added: June 2, 2025


Exploring the new Bluesky verification system by Gavin Anderegg

The first iteration of user verification on Bluesky required users to verify by domain name. While this makes sense for major organizations who have an established web precense, it made less sense for the average person. Also, like Gavin describes in this post, it allowed malicious actors to pretend they’re another person by registering a domain name that is similar.

The lateset attempt at user verification on Bluesky, attempts to distribute verification authority to “trusted verifiers”. Gavin wrote a cool tool which he links in the post that shows all the users a trusted verifier has verified.

Though I wonder, when one organization like The Wired verifies an account. What measures did they perform to verify one’s identity? Does another organization like the New York Times take those same measures? I’m curious to see how this all plays out.

Added: May 27, 2025


Use semaphores to limit processing by Gabriel Augendre

I’ve heard of semaphores before, but I don’t recall hearing of its weighted variant. Given a finite resource, this technique seems like a great idea to ensure that the resource isn’t oversubscribed. Particularly, I like the idea that Gabriel describes in this post of using weighted semaphores to limit the memory usage of a process within a data processing pipeline.

Added: May 27, 2025


You probably don't need a DI framework by Redowan Delowar

While an opinionated piece concerning dependency injection (DI) frameworks, this post does a great job at explaining what DI is, how it’s beneficial for testing, and techniques to go about using that technique.

Added: May 27, 2025


Evolution of Rust compiler errors by Kobzol

Sweet interactive blog post showing the evolution of Rust compiler errors. It’s clear that a lot of time and attention has been put into making these errors useful for developers.

Added: May 22, 2025


Standard Libraries and their Discontents by Alex Gaynor

This post talks about the benefits and downsides to standard libraries within programming languages. One that I didn’t consider, but makes total sense, is how data types in a standard library (like Date) often becomes a common interface for external packages.

Added: May 22, 2025


You Can Choose Tools That Make You Happy by Fernando Borretti

In this post, Fernando talks about how we don’t have to rationalize all of our decisions. If we do, at times that leads us to lie to ourselves and to others. He gives examples of people using specific technologies like Emacs or SNOBOL.

I agree, and let me rationalize on why. Competition is good. If we all decided to only use C/C++, then C++ wouldn’t have ever adopted features from functional programming. We need people who decide to use different technologies even at this specific point of time it isn’t “rational” to do so.

Added: May 22, 2025


Hiking The Oregon Coast Trail, Day 5: High Tide & Sneaker Waves by Jason Evangelho

This is a fun blog post series following Jason along his journey hiking the Oregon Coast Trail. I’ve never been to Oregon or Washington state and I really want to some day. It’s beautiful out there.

Also while nature is absolutely stunning, this specific post outlines why we should be prepared as well.

Added: May 10, 2025


Lying to your Research Subjects, and other avoidable ethical pitfalls by Hendrik Erz

It’s crazy how some researchers delude themselves into thinking that the ends justify the means. Just because a research question is genuinely interesting, does not grant someone permission to disrespect people, cause harm, or do other shady practices to get the results they seek.

This post goes into two recent high-profile examples where researchers have gone wrong. One involving the subreddit r/ChangeMyView and the other involving Linux kernel development. Hendrik also discusses ethical principles researchers should keep in mind. A lot of this boils down to empathy. Here’s a small list of questions from his post to help exercise it:

What would I think if I were a research subject in my own study?

Would you be fine with defending your research in front of your own subjects?

Would you be fine with having to defend it in court?

Added: May 10, 2025


A flash of light in the darkness by Alex Chan

This is a great public service announcement to make sure that your dark mode implementation does not flash white first for slow connections.

I didn’t expect to see this on my own website. It turns out that if you have a separate stylesheet for dark mode, then it shows a white background while it downloads the CSS file.

Therefore, instead I include a bit of CSS in the head of my HTML document using <style> to set the background color depending on user preference.

:root {
  --bg-color: #faf9f6;
  --text-color: #020101;
}
body { 
  background-color: var(--bg-color);
  color: var(--text-color);
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: #0e0e0e;
    --text-color: #8f8f8f;
  }
}

Added: May 3, 2025


Notes from the Graz Plasma sprint by Nate

There’s decent overlap between the privacy and open-source communities, so there’s generally a lot of pushback when it comes to telemetry. However, how are developers supposed to make rational decisions on what features to focus on? Without telemetry, they will either just follow their own interests or pay attention to the vocal minority.

KDE has decided to collect telemetry in the same style as the Steam Hardware Survey. A popup dialog will ask if a person is willing to participate in the survey. If the they says yes, then before the data gets sent off, it will be presented clearly to them for review.

This I feel, addresses one of the core reasons people don’t like telemetry in the first place. In most proprietary applications, we just don’t know what’s being sent along! However, if we can see that the information provided has no identifying information, that can help put us at ease while still being useful to developers.

Added: May 3, 2025


Takamatsu & Awaji Island by Lucas

Seeing monkeys casually living their lives in the Awaji Monkey Center is so cool! Definitely check out the awesome photos included in this post.

Added: May 3, 2025


A Fun Zig Program by Alex Kladov

Emulating dependent-types is fun indeed! I haven’t played with Zig, but it’s super interesting how you can do work in comptime before the rest of the compilation and type checking procedures kick in.

Added: April 21, 2025


I'm Garbage At Email by Mike Stone

I try not to think about the permanance of my writing. It’s true that anyone can see my blog posts from 10 years ago. Even the ones that frankly aren’t well written. It’s also easier to write mainly technical blog posts since those age better than opinions.

Though at the same time, we should accept that we are not static as humans. Just because I wrote something a year ago doesn’t mean I still hold those opinions today.

Added: April 21, 2025


Two hours faster by Derek Kedziora

I agree that for continental flights, going through security and navigating the airport takes a good chunk of time. Currently I’m spoiled because I live by a small regional airport where I can go through security in 20 minutes.

Unfortunately, I don’t think an airplane manufacturer can fix this issue. Back in 2023, I went through customs at JFK. After waiting 45 minutes in line, I was graced with a 15 second interaction with the officer where he checked my passport.

Could this process be faster? Probably, but don’t ask me how.

Added: April 21, 2025


Why 'alias' is my last resort for aliases by Evan Hahn

Some people have large dotfile repositories. I am unfortunately not one of them. Generally, I keep my configurations to a minimum. However, I do have some custom scripts I like to use. I keep these in ~/.local/bin.

I like the idea of using scripts instead of aliases. It makes it easier to extend in the future as well.

Added: April 21, 2025


Paper by Dynomight

I think a LOT through paper. Whenever I’m pondering a new research idea or working through a mathematical proof, I’m using paper. Not to say that I haven’t tried using other mediums. However…

  • I don’t like the brainstorming experience on my iPad.
  • If I’m working collaboratively, then I prefer using a whiteboard. Though when it comes to thinking by myself, I always gravitate back towards using paper.

This post mentions how paper does not work well as a means of information storage. I agree so much with this notion, that I often don’t keep paper for longer than a few days. If I want to store the information, then I will take the time to digitize it.

Added: April 13, 2025


Silence as a tactic by Mijndert

Don’t fear silence in a conversation. In fact, this post shows us how it can be a useful tactic during hard conversations. Personally, I agree. You shouldn’t feel pressured to come up with quick responses to fill the air. Additionally, don’t feel afraid to call a time-out. It’s better to have time to collect your thoughts than to say something you’ll regret later.

Added: April 13, 2025


tl;dr I ran a marathon at the weekend and it was hard by Matt Webb

I don’t commonly run and I don’t currently dream of doing a marathon, however, this was a very insightful read! Running 26 miles on average burns more calories than a typical human consumes in a day. No wonder one has to train for months to do this! It’s a test of how efficient your body is at storing and exchanging energy.

If you’re thinking about training for a marathon, definitely check this post out.

Added: April 13, 2025


Avoiding (smart)phones by Ruben Schade

Ruben made two points that I resonated with: turning off notifications (which he previously wrote about) and decoupling functionality from his smart phone.

Personally, I disable most notifications when it comes to social media, RSS feeds, and email. I don’t like getting notified in general, and opt to instead check those manually a couple times a day.

In terms of decoupling, a big one for me is that I don’t have the wallet feature enabled on my phone. Is this inconvinient for me? Not really, most of the time. Except for last summer, when I lived in San Jose, California.

In the bay area for a summer internship, I decided that I would get to work via public transit. It was a decision for sure. It took me an hour and two bus rides to get to the office. For comparison, driving took only 11 minutes, and walking would’ve taken 3 hours.

Though I’m not here to complain about my life decisions, I’m here to complain about the Clipper system. Keep in mind, that this is a point in time complaint. For all I know they’ve improved since I left. For likely historical reasons, the San Francisco Bay Area has more than one transit system. There’s the BART, Caltrain, MUNI, VTA, SMART, AC Transit, and I’m sure more that I’m not remembering (See Wikipedia article). Instead of maintaining accounts for each of these, the idea is that you have a Clipper account, and they will manage paying out all the individual travel agencies for you.

In order to get a physical card, I had to visit a physical travel office. Okay, that’s fine. Now the bigger question is, how do I refill the card? What I’ve learned after trial and error is that I can pay online, visit a physical MTA office, a select few train stations, or Walgreens. I’m not against filling up the card online, so I decided to first try that out.

Imagine, you’re low on your card. You primarily rely on the public transit to get around, so you would expect the money to be available immediately right? Haha no, actually it took about three days for the money to get loaded. To make things worse, during those three days they’ll email you every hour saying that they’re processing your order.

Ultimately scarred by that experience, I decided to pay for the monthly VTA pass. Keep in mind that this only gave me unlimited rides for the VTA. I decided to go this route since the two busses I used to get to and from work was under that system. For the other ones, I had to keep track of my balance and opportunistically fill it up whenever I happen to be by an area where I can do that.

All that to say, they heavily promoted the mobile Clipper experience. Maybe life would’ve been easier if I accepted that. However, I couldn’t have both a physical Clipper card and a mobile one. What happens if your phone dies? Walk three hours home?

Added: April 6, 2025


The Fifth Kind of Optimisation by Laurence Tratt

I like Laurence’s five kinds of optimizations. I wonder if he has any advice on the order we should pursue these in. For example, try a different data structure before adapting the algorithm, and try to adapt the algorithm before rewriting it in parallel.

It’s definitely more difficult to write good multiprocessing code. Even when working with a high-level abstraction like Python, I have to think about how a multiprocessing pool behaves differently depending on the operating system. On the side, I’m rewriting how one of my tools handles parallelism. Luckily, this blog post reminds me that conditional variables exist! Time to remove the busy-waiting loop.

Added: April 6, 2025


The case against conversational interfaces by Julian

This is a thought piece on the role of conversational interfaces. It’s fun to recall the days where voice assistants were the hot craze. I used an Alexa device for about a year, I also tried using Google Assistant. However at the end of the day, I mostly only used them to set timers on my phone.

Nowadays, I don’t even do that. Whenever I do laundry, I pull out my phone, navigate to the clock app, and hit one of the preset timers I have ready to go. That doesn’t mean that these technologies are useless, just that these aren’t the right use cases for me.

I agree with this post that LLMs thrive in exploratory work. They help get past the blank screen problem where the ideas start flowing. I currently don’t see them as meta-assistants for me anytime soon. Not because I don’t think they’ll be easily integrated into different web services, but because I find this a hard sell from a privacy perspective. While part of me thinks it’s cool to have a computer assistant that knows all about you, at some point these companies will need to start monetizing these technologies…

Added: March 30, 2025


We Won't Save the Planet by Shrinking by Alex MacCaw

Every day comes with its high and lows. Especially if you keep up with the news. However, I try to keep an optimistic view of the long term. This post talks about how as humans we don’t just consume resources, but we solve problems. I agree! Even though our newer technologies require more power currently, we’ve been finding ways to make generation and consumption more efficient.

Added: March 30, 2025


Why developers question everything by Tim HÄrek Andreassen

Building software comes with a lot of tradeoffs. I feel like we have to question the intention behind it to make the right calls. I’ve never done a bathroom renovation before, but I feel like there are fewer variables that a customer wants to tweak and the use cases behind a bathroom stay largely the same. If I asked to move my toilet to inside the tub, I would sure hope that I get some pushback as to why.

Though why do software developers question everything? Go and read the post to find out :)

Added: March 30, 2025