“There are only two hard things in computer science: convincing your team you don’t need Kubernetes and naming things.”

In this post, I am going to be ranking various technologies or languages or whatever I feel like ranking by the most important metric there is. The one metric that has stood the test of centuries, the thing that matters more than cycle count, memory usage, memory safety, and developer efficiency combined. The one metric that has seen the fall of empires, the rise of sea levels, the undoing of Adam Sandler’s sanity. The one metric to rule them all. Names.


Yet another security vulnerability has been disclosed in the Linux kernel, this one dealing with gaining root access from a user land program. The root cause is a size_t argument being passed as a (signed) int. This has people maligning C for being unsafe, unstable, and unreliable, all of which are true. But I feel compelled to defend the elderly in all things, especially when they are programming languages, and so I will do so here. Your logic may vary.

The way I see it, a parameter named “buflen” should never, ever, ever have a signed type. You hear that…

Your app won’t fix the loneliness epidemic.

The Internet has a loneliness epidemic. Our existing so-called social media apps are leaving us lonelier than ever. [TODO: Insert statistic about millennial friendships.] That’s why we made Souply, the soup-based social media app to make real connections. Fuck your Facebook feed. Fuck loneliness for good. We use ~your likes~, ~your music taste~, ~your location~, a giant cartoon spin wheel enchanted by Baba Yaga inside AWS US west 2 to help you make the IRL friends you just couldn’t before.

It seems like every year or so, I see some new social media app with its guns out for the…

You’ve been there before. You’re reading the documentation of some programming language or a library. There is an example. The example looks like this:

class Foo {
int m_foo;
class Bar: public Foo {
int m_bar;
Bar bar;

This is supposed to be helpful. The generic and completely meaningless “foo” and “bar” (and their less popular sibling “baz”) are the anonymous superstars of the computing community. Sometimes you see their Frankenstein amalgam “foobar.” It’s baffling to think how many papers and tutorials and tests and documentation and presentations use them as their examples.

Given that they…

It’s the little things.

Like countless others this July 9th, I was waiting in anticipation for Marvel’s Black Widow. Instead of planning a trip to the local theater, however, I was reaching for the remote, ready to order “premier access” to the latest MCU update. I say this as a die-hard lover of theaters ever since childhood: they need to innovate. Seriously, I love theaters more than practically any other local venue. I practically ran to the theater to watch A Quiet Place Part II and when I walked out of that dark room, I walked away with a new disdain for something I…

Bag holders seldom make good history

My grandparents migrated to California from Oklahoma after the Dust Bowl. They are honest and simple people, with a deep respect for authenticity (if they did not use so many words). They believe televangelists are preaching for God’s sake, not their credit line’s. They settle for nothing less than a good deal and could never understand why people would pay for “brand.” The elaborate and invisible rules of “class” are not just ridiculous, but also offensive artifice. Why are you acting like you’re better than us and what are you up to anyway? In a way, it’s a very Protestant…

And why you don’t want to have one of many.

Photo by Sammy Williams on Unsplash

I’m gonna get heat for this. And that’s ok, but someone needs to say it:

No more operating systems as portfolios.

I get it, I do. I mean, I really do. My first portfolio was not the ever-popular Windows 98, nor the sleek indie pick MacOS. Oh no, my first portfolio operating system was IBM’s 1988 GEOS.

By starting your first dog grooming business

Photo by Joel Muniz on Unsplash

In case you missed it, AWS announced today that they are releasing the very first alpha launch of the forthcoming AWS Rust SDK. This is a huge step forward in showing that AWS really was serious in their initial support for Rust having actual input from the core Rust team. Now, keep in mind this is an alpha release so I cannot guarantee the quality or correctness of this post in two months time, much less two years, but I will duly try and come back and update any changes.

Without further ado, let’s get started building the database for…

Don’t be such a square!

Photo by Paul Einerhand on Unsplash

Reading back over traits in “The Book” of Rust (that has a biblical feel, doesn’t it?), I realized something that was totally impossible in Go: implementing traits for non-local types i.e. types that you did not create yourself. To see what I mean concretely, let’s say that we wanted to define a square method for floating-point numbers. Sure, it’s actually far fewer keystrokes to just multiply the value by itself, but let’s say we wanna be extra explicit (as things are often better that way). …

With tests! And plenty of apples.

Photo by Priscilla Du Preez on Unsplash

I have been scratching my head lately trying to think of something to do with Go. It’s a perfectly simple, easy-to-use language with a lot of boxes ticked and yet I have been unable to think of anything. Finally, the inspiration struck me: a thread-safe cache with tests. Now, since Go is a relatively high-level language, the actual implementation of this (extremely simple) cache is only wrapper functions around the map data structure. However, it is a good project to get familiar with writing tests and some good Go-isms.

Let’s start my getting our project structure ready. For me, this…


Coder, writer, dreamer, memer, and former Webizen.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store