### Let's Write a Genetic Algorithm

I’ll be assuming that you know what these terms mean:

### Yet Another Example of Linear Functions Being Special Snowflakes

Finding the rank of a matrix (a.k.a a linear function) can be done in polynomial time ($O(n^3)$).

### Question Words

In Hindi and English, question words both have repetitive structure.

### 2 Years Without Soap Or Shampoo: An Update

In December 2014, I stopped using soap and shampoo. 2 and a half years later, I can confirm that it was a good decision, as my skin has cleared up, my hair is much shinier, and I don’t feel oily at all. Plus, it’s one less thing to pack.

### One Use For Quotients

If a function almost has some nice property, you can quotient out by that property to make that nice property true.

### Levels of Showing Off

Showing that you’re better than your perceived peers is hard work.

### Reverse Polish Notation Calculator

I just wrote a Reverse Polish Notation calculator. It’s beautiful. Extending a Forth compiler with new words must be a dream.

### Avoid Distraction

I find it hard to resist temptation. So I don’t.

### My LASIK Experience

1 month ago, I got LASIK. Not a lot of people seem to write about it, so here’s one to offset that a bit.

### The First Virtue of a Programmer

This Garfield strip has a lesson in it.

## Planning

### When Are Regexes Appropriate?

Regular expressions are useful enough that they’re built in to the syntax of the shell. But they’re not always the right tool. Here’s my off-the-cuff heuristics for when to use them.

### From Semigroup To Group, Through Power Notation

If we consider the exponential notation used in abstract algebra, we get a nice mnemonic for semigroups, monoids, and groups: