5 August 2024

41 links · Monday

Solving Super Six

Super Six (a.k.a Rio and plenty of other names) is not a good game, it’s repetitive, heavily luck dependent, and repetitive. Nevertheless, it has two major qualities - it’s short and simple. These qualities translate into a much more interesting one - it’s sol…

The Network Time Protocol: What Times Are It?

An exploration of the Network Time Protocol (NTP) message format, the interpretation of each of its data fields, and the underlying variables that time servers track to keep their clocks accurate.

Scrolling like it’s 2008

Back in 2008 when Abe and I were working on our first iPhone app Stanza, there was a very influential blog post by Loren Brichter, the developer of a popular Twitter client app (back when such things were not only permitted, but encouraged), titled: ”Fast Scro…

Scheduling Model in LLVM - Part I

Instruction scheduling is essential to modern compilers. It tries to hide latencies and increases the throughput of a straight line code by reordering the enclosing instructions. In order to do that, compilers have to know a whole bunch of information, ranging…

Just Build Websites

Writing about the big beautiful mess that is making things for the world wide web.

Print Debugging and Print Profiling

Print debugging is the technique of debugging by inserting print statements into code and watching their output. For example, if my program seems to be getting stuck somewhere, I might put in some print statements like this:

Back to Personal Website

<p>I was on paternity leave for the last couple of weeks, and in between diaper changes, I finally managed to redo my personal website.</p>

Andy Warhol's lost Amiga art found

Images he created when demonstrating an Amiga in 1985 surfaced in 2024

WebGPU Unleashed: A Practical Tutorial

WebGPU Unleashed, your ticket to the dynamic world of graphics programming. Dive in and discover the magic of creating stunning visuals from scratch, mastering the art of real-time graphics, and unlocking the power of WebGPU - all in one captivating tutorial.

Using your Kindle as an e-ink monitor

Using your Kindle as an e-ink monitor. GitHub Gist: instantly share code, notes, and snippets.

Starting hospice. The end

I’m entering hospice. It’s time, and realistically past time. The squamous cell carcinoma tumors are growing, and the two doses of spot radiation I got on June 10 and 12 have utterly destroyed what…

Praise my GitHub profile!

Use your GitHub profile as a way to get personalized messages of praise and encouragement.

Create your own DIY Password Manager with Vim and Syncthing

Password management is a hassle, but worse is using the same password or a very similar one across all accounts. Eventually, regrets come when we fall victim to hacking. Unfortunately, my trust in password managers like LastPass or 1Password is zero. Just reme…

Reducing folium map sizes

Recently for a crimede-coder project I have been building out a custom library to make nice leaflet maps using the python folium library. See the example I have posted on my website. Below is a scr…

You Can't Spell WebRTC without RCE - Part 1

Injecting and Exploiting Synthetic Remote Vulnerabilities to explore Signal-iOS and WebRTC It’s another average Friday morning and my iPhone shows 705 unread Signal messages. Signal has not completely supplanted my use of iMessage, but it does dominate commun…

why It’s good to reflect on boycotts – Daniel Frank

One of the recurring themes on this blog is the exploration of small, often overlooked actions that can significantly improve one’s own life, the world or enhance the lives of those around us with minimal effort.

I'm back, Ruby on Rails

Last year, I wrote a blog post called Goodbye, Ruby on Rails. One year later, after creating my own business, I decided to be back to Ruby on Rails. I’m withdrawing my previous statements on DHH and Rails. Though I still have some concerns about the directions…

How I Cured My Procrastination - Learn How To Learn

I went from a C student to an A engineering student while enjoying work more and having 100x more freedom TLDR (because I also hate digging through articles for the thing I clicked for): When I went to college I did extremely poorly sophomore year for numerous…

Don't use LIMIT OFFSET for pagination in PostgreSQL

Introduction LIMIT / OFFSET pagination is one of the most common ways to implement pagination in your service. You can find countless tutorials online describing the method and its even the default in the popular web framework Django1. While it gets the job do…

Writing a system call tracer using eBPF

Pre-RequisitesSystem calls, eBPF, C, basics of low-level programming. IntroductioneBPF (Extended Berkeley Packet Filter) is a technology that allows users to run custom programs within the kernel. BPF

The birth of ILC

I don’t think I am the only one who creates a lot of ad-hoc Bash scripts and programs. Whether it be for work or for ourselves, they become part of our perso...

Building software brick by brick & New Internet

I think most of software engineering today has been reduced to building it brick by brick like how a mason would build walls. In the name of MVPs, we have pr...