Cora — A new way to learn how to program

I’ve been working on Cora, a new way to learn how to program. It consists of a new programming language, optimized for learning, and a hand-crafted interactive learning environment together with lessons and challenges.


Announcing NameQL

I just released NameQL, a tool to help you find a great name for your next product or company. NameQL considers thousands of potential names in milliseconds and shows you the best, and only the ones where [name].com is available. Did I mention that...


A SaaS Pricing Story

It was April 4th, 2016, and our bootstrapped SaaS company, Mealime, was doing just fine, thank you very much. At $6,600 MRR and near-0 costs, it earned enough for its 3 founders, Jeff, Maria and me, to live off of. Sure, it was no monumental success. My “salary” was barely a 5th of what I would earn as a developer for another company. But that modest success meant something big to us: if the slow growth continued, we would never have to “work” again. In short, we had something to lose.



How I hacked Hacker News: 1.3 million stories tell a tale

Hacker News is a news aggregator where visitors vote on stories. When your story gets a lot of votes it is a big deal: it can increase your audience by orders of magnitude. I analyzed 1.3 million Hacker News stories and found that when a story is submitted makes a big difference.



Split Testing for Geniuses

You are sitting at a slot machine with two levers, labeled A and B. When you pull a lever, sometimes a dollar comes out of the slot and sometimes not. The casino tells you that each lever has a fixed chance of giving you a dollar (its success rate) but, of course, they don’t tell you what it is. Since you don’t have any way of distinguishing them to start, you pull lever A and a dollar comes out (Yipee!). What do you do next?


Learn Data Science the Hard Way

So you want to be a Data Scientist? The good news is that there are tons of great resources out there to learn from. The bad? None is comprehensive, and choosing the best can be completely overwhelming. I created this list to help you stay focused on learning what’s important, the easiest way possible.


Form Extensions: A Form Object's skinny little brother

You have a form who’s fields don’t match up to a model. What do you do? Ask any web developer, and they will confidently defend one of three patterns: fat controllers, callbacks, or form objects. It’s an on-going, heated, debate. I would like to propose a fourth pattern, form extensions, which I will argue is often the most pragmatic approach. It is probably not a new idea, but it certainly doesn’t get the lip-service it should. It deserves a name, and a first-class position in a web-developer’s toolbelt.


Roleable roles for Ruby on Rails

I was searching for just the right roles system to go with my cancan authorized, ActiveRecord-backed Rails app, and didn’t find anything I liked. There are at least a dozen gems out there, but they were all either too simple, too complex, or too ugly...


The 10 Most Underused ActiveRecord::Relation Methods

Knee-deep in ActiveRecord::Relation code yesterday, I was reminded of some interesting nuggets that I’ve seen used far too rarely. Here, I’ve gathered my top ten most underused relation methods from that list for your reading delight.


Soulmate.js—A jQuery front-end to the soulmate auto- suggestion gem

Soulmate is an excellent auto-suggestion gem built for speed on sinatra and redis. I recently switched a project’s auto-suggestion engine to it from sphinx, and saw 200ms average response times drop to 10ms. Aside from speed, another huge boon was being able to completely separate the auto-suggestion engine from the main app. This allows it to get overwhelmed with a huge number of requests without significantly affecting the user’s experience. (Decoupling is good!).


Easy Rails debugging in IE with a Mac and VirtualBox

Internet Explorer is still more than 60% of my traffic, and I need to do a lot of feature testing on it. A lot of folks push up to a staging server then point a virtual machine to that server. This is too slow for me. Especially when I’m hunting down and fixing particularly pernicious css bugs, there is a lot of tweaking involved, and re-deploying for each test just doesn’t cut it.


Rubynu—A scaffold generator for ruby projects

Creating my preferred scaffolding for new ruby projects by hand has gotten old. Sure, there are tools out there like bundler’s bundle gem to do this for you, but they aren’t flexible enough to meet everybody’s preferences. I want something as flexible as my tastes are fickle, something I can change the template to on a whim.


Paranoid - A backup script for when the world's out to get you

When I’ve put a ton of effort into a personal project, I tend to get paranoid that I’ll somehow find a way to toast it. I know, I know, git, github, and time machine already have my back. Sometimes that’s just not enough, though, and I find myself...