### New Vocabulary For New Ideas

Michael Spivak once said that the definitions in math should be hard and the theorems should be easy. This is because the definitions are benchmarks for different levels of abstraction. Theorems are essentially chaining definitions together to get new definitions.

### One Year of Programming

It’s been a year since I started learning programming. In that time, I went from not knowing what HTML was to doing machine learning and learning type theory and burning too many hours getting my mail to work in the terminal.

### Where Programmers Beat Mathematicians At Their Own Game

I recently read this debate on StackExchange.

### The Power of a Certain Counting Argument

The reason that bijective functions between sets imply that those sets are of the same size is because of a generalized version of a counting argument. If a function is injective, its target must be at least as big as its source, or else there isn’t enough “room” for points to map uniquely (google “Pigeonhole Principle”). For surjectivity, the target must be smaller or equal to the source because otherwise the function can’t fully cover the target since the target is too big. Each point in the source can only cover one point in the target. So if a function is to meet both, the sets must be less than or equal to in size as well as greater than or equal to in size. this means that they’re of the same size.

### Surprisingly effective writing autocomplete in vim

It bugged me that vim’s autocomplete was giving me useless autocomplete while I was writing the draft to another blog post. So I decided to fix it, which turned out to be pretty trivial.

### The Origin Of The Word "Thing"

It comes from the Old English word for a meeting place, and the Icelandic Parliament is called the Althing (literally: ‘all-thing’), and it’s been around over a 1000 years, which is pretty incredible.

### Quote About Finding Flaws In Arguments

“As ever, if you want to find the weak point in an argument, look out for words and phrases such as”clearly”,”obviously”, or”it is easy to see that”. Often they indicate the place that the writer is not quite 100% sure about.”

### Thoughts On The Future of Many Jobs

This post only says things that are pretty well covered elsewhere, so I’ll just give my thoughts and let you look for evidence/justifications.

### A Niche For The iPad Pro

The iPad Pro has been marketed as a laptop replacement. I don’t know anyone who thinks it can do that, at least not yet.

### A List Of Books I've Read So Far

These are all the books in my calibre library tagged as “read”. Thankfully, calibre makes it easy to get this information out of my library in a computer-friendly format.

### Programming languages as a hobby

It’s odd to say this, but recently I’ve started reading programming language papers as a hobby. It’s actually rather depressing as it’s only reinforced the massive disconnect between engineering in practice and current computer science research. Isn’t it frustrating to see loads of good ideas just ignored for a variety of reasons, from opaqueness to poor marketing?

### What Wikipedia Means To Me

Wikipedia 15 wouldn’t allow me to post a long story, so here it is

### Woes Of The Power User

Being a power user is almost always synonymous with saying you’re hard to please. Which isn’t necessarily wrong. I use mutt not because I like it, but because it sucks less than everything else I’ve used.

### Sounding Smart

Sounding smart is really easy. Being smart, as far as I can tell, is the result of a hell of a lot of mental discipline.

### Alok's Theory of Crabs

No human has ever gotten a full mouthful of crab in one single bite. No one has ever had the pleasure of cracking a crab to only find delicious meat inside. Crab is designed so that no matter how you bite it, there is always at least one inedible bit in your mouth at any given time.

### Extending An Existing Theory WAY Too Far

([-!#-'*+/-9=?A-Z^-~]+(\.[-!#-'*+/-9=?A-Z^-~]+)*|"([]!#-[^-~ \t]|([\t -~]))+")@[0-9A-Za-z]([0-9A-Za-z-]{0,61}[0-9A-Za-z])?(\.[0-9A-Za-z]([0-9A-Za-z-]{0,61}[0-9A-Za-z])?)+