I’ve written about my… rather intense feelings about flash cards… before. Actually, many times, but that post has links to all the other times. Anki drains me, and things like Duolingo or Memrise waste my time – the flash cards per minute on those are dismally low. Part of that is they don’t trust you to be honest about whether you remembered something. Part of it is a lot of blocking animations, celebrating the smallest success and beating you over the head with failures.

Anki is much more efficient, but it almost provides too much insight. I have the cards I should do today, and I know exactly how much time I’ve spent and I get focused in on that false sense of completion. Because there is no completing what I use flash cards for: learning. But Anki thinks there is. If I miss a day or just don’t review as much as I’d like, it haunts me. The next day, I have even more to do, and keeping it from spiralling out of control is nearly impossible. There are so many charts. All of them will remember my temporary failures forever.

But my app won’t. It hardly remembers anything.

I used to do 60 minutes of 1-card-every-1.4-seconds flash cards, and it would suck the soul right out of me. It created this really strange sense of deja vu (although not quite an illusion – I’d seen those cards before, frequently the previous day, which is a design flaw I’m not the first to fix). I was an automaton, in those moments, as much good as it’s done me. Truly an unpleasant experience.

So I’ve removed some of the sign-posts, added some positive feedback, and made the keyboard shortcuts more comfortable and less confusing. I also made sure re-importing works well so you can export to a CSV, open it up and monkey around with the data in Excel, and drop it back in.

I imagine I’ll be monkeying around with this in the days to come – there are lots of ways to make something like this comfortable. But all the basics are there. Enjoy!



I have really strong childhood memories of substitution ciphers – a cryptic block of letters, where every A was swapped for a T and every B was swapped for an X, all the way through the alphabet. But after googling this recently, it turns out this is a mostly forgotten diversion.

Of course, I was never any good at them, not that I remember, at least. Certainly, as an adult who tried very recently, I struggled. I thought my knowledge of the most common English letters would help, but it wasn’t nearly enough. So I started building a tool to help me.

This is perhaps a good time to point out that, if you can’t do something manually, teaching a computer how to do it can be pretty challenging. My first idea was to look at the short words and find potential matches there, and then use words with only a couple letters left to index into these massive dictionaries I’d made. This was a garbage approach. The smallest words all look alike, “XHA” and “KLU” look the same when you don’t know anything about the solution. So I’d never be able to get to where I have a bunch of words only one or two letters away. My clever pre-indexing system wasn’t clever enough to ever even be used.

It took quite a bit of floundering before it struck me, just before falling asleep last night. I want to look for long words with repeated letters. I can use the locations of the repeats to index into a standard English dictionary and work down to smaller words with fewer repeats. “SUBSTITUTION” is easy, because it looks like “ABCADEDBDEFG” (all those repeated letters narrow it down a lot), but “CAT” looks like “ABC”, and is almost totally generic until you solve some of the letters.

This turns out to be enough that the multi-stage solutions, or even keeping the old hinting interfaces, is superfluous. It’s not at the point where I think the computer could solve all of them on autopilot quickly (because you’d want to have a pretty exhaustive dictionary for that, so you’d know when to abandon a potential solution), but it’s pretty close. For human solvers, since you can’t see all the possibilities the computer can, it can still take a bit of cleverness to get going. It’s not just data entry, it’s just a much easier puzzle.



A couple of days ago, on Imgur, someone described a game as Ultimate Tic-Tac-Toe, with a rule set I’ve not been able to explain without visual aids. But the rules are very simple (see the Imgur link), and I figured I’d make it.

It’s a surprisingly challenging game to think about. I’ll be playing it until I feel I’ve got a good sense, and I hope to see you guys in the lobby.

[Update] After having played this a lot, I can confirm the computer is pretty crafty. If you can beat it consistently, send me a message. It’s a deep game, and the computer never looks more than two moves ahead, but it can still be hard to beat.



This is such a silly idea.

It’s a chat room that works more like real life (I highly recommend real life). It only shows the last thing someone said. That way, if you want to follow what’s happening, you need to pay attention, which is important, I think. It’s a synchronous chat app. No async messaging is possible, really.

It also uses color as the only way to distinguish people, so there isn’t some mostly-ignorable-but-important identity component, username registration, or anything like that. Just like normal conversation, you’re looking directly at their identity. You can, of course, introduce yourself.

There are different rooms. You can send people links to rooms.

Have fun.


Cashflow Pipeline

As best I can tell, used to be a discussion forum for people making small, self-funded software businesses. That’s essentially what my ancient browser bookmark said, and googling around gets more than a few confirmations.

At some point, likely due to the cost of hosting a discourse server – hundreds of dollars a month in many cases – it was shut down and the domain name was sold or lapsed.

And it seems to have fallen into good hands. It’s currently run by a developer out of the UK named Darren Stuart, and he’s putting in an actual effort towards making it a valuable resource for people who want to begin or operate these small software businesses.

But his own project was not achieving the traction he wanted. He abandoned the project, after several months. This seemed… deeply sad, to me, in some sense. Not that I thought it was secretly a great investment. I trust his judgment on that. But, like all people on the internet making things (especially those with both enough seriousness to consider how to get money from it, and the creativity to imagine something new), I wanted him to succeed.

Now, I’m not a business that would be helped by this project – I am, as you might have guessed, a human. My cashflow is much too boring to require a tool to track. But I can make websites[1], so I figured I could make it for him. Months into a project and no MVP? That’s not the bootstrappers’ way!

I ended up putting my own English on it, quite heavily, actually. I thought it would be good to have estimates for how valuable leads, scheduled work, and invoiced work is. Obviously invoiced work should be pretty valuable, but unless someone has never had a client not pay, I think having a tool like this would be good. At the very least it lets you do much more accurate accounting, if you so choose. I also chose a name that reflects the sales pipeline tracking I built into it, and removes the confusion over Japanese supply chain engineering.

In the end, with meticulous time tracking, I know I built, not only what was in the mockup, but the estimations, a decent mobile view, shared accounts w/ locally cached saving, etc. – basically everything you need for a solid MVP, in exactly 8 hours and 32 minutes.

I reached out to him (and hope to hear back), but in the meantime, here it is:

Cashflow Pipeline


There were only a few games I remember really enjoying in college. My university had giant games of Capture the Flag every week. Sadly, there isn’t a good way of capturing that on the web, not even with amazingly realistic graphics.

But another was Wizard, a trick taking game that solved the most annoying part of all trick taking games: that whether or not you had a good hand ended up mattering a lot.

Over time, of course, it could even out. But we weren’t keeping good records, there’s no way to even notice being good at many trick taking games. It could all just be luck.

But Wizard is played where you “bid” for how many tricks you think you can win this hand. Your score is determined by how often you get the bid correct, even if the bid is low, or even zero!

I knew some guys who were very good. It takes a bit of getting used to. But I thought I’d share a little web-version of my note-taking / scoring / dealing system so you guys could play it too.


P.S. I normally do not talk about how I build things on this blog. But in this case, I wrote about how I made it, at least in part, on the sister-blog FoxCrisis. Those posts have to do with the flexible ephemeral store backend that I want to use, at least, for all future games. I think that description is enough for you to figure out if it’s intolerably boring or interesting.


I use timers and stopwatches. I don’t think this is unusual.

When I’m cooking, I’ll use my phone, but if I’m at my computer (a not uncommon situation), I’ll just Google “timer”. Google has one of those built in things.

But they also show me the search results.

And, inexplicably, two thirds of the time they show me a sidebar about this seemingly banal high-concept romantic comedy.

Now, part of me is concerned that I’m being brainwashed. I resisted the temptation to read about the movie for several months. But eventually, my curiosity overcame my instinctual hatred and fear of manipulation. I absolutely refuse to see the movie, though. That is my line in the sand.

Now Chrome can auto-complete my app instead of that oddly inconsistent results page.

Don’t worry, I’m working on larger projects that will make their way to the blog. I just didn’t want to miss an opportunity to help people avoid the Googleplex.



My best friend in (I believe) 4th grade had a quite pronounced speech impediment. Not too long after we met, he began a new therapy where he would click a physical counter every time he misspoke or stuttered, and keep track of the number of times he stuttered (and noticed it) over time.

It took me a while to find someone online discussing this technique (it turns out the keyword here is ‘tally counter’). As discussed here, the practice “strengthens […] self-monitoring skills across contexts”. Obviously, this has some appeal to me, despite not having a speech impediment. I love cross contextual skill strengthening – although of course I’m extremely skeptical of that website, which also claims these are “fun”.

So I made a little widget for this. Not too original or distinct, but it meets the needs of this task exactly. I’ll be using it to monitor one bad habit I have in particular, and see if it helps. I’m pretty optimistic, and hopefully this will help other kids with speech impediments save, not just the couple bucks it would take to try this therapy (the clickers are pretty cheap), but the access to a credit card, which many kids don’t have.



Sebastian Marshall is the business-person I want to be.

The man’s a beast. I’d never heard of someone working over 50 straight hours on challenging creative work until I heard about him. I’ve been following his blog for years, have purchased and read many of his books, and appreciated them all.

In particular, I recall reading Roguelike in a public park in Hong Kong. It changed the way I look at how to have fun. Not just the overt message of the book (which is interesting and well-developed), but the in-the-bones level of understanding that, the surveys and studies aren’t wrong: work is actually fun. Challenges, overcoming them, having real stakes, having real uncertainty about whether you can do something… games are most fun when you have those but they can only mimic these features. Real business has them, in spades, when you are working on the most important and challenging work you can find.

I could say MANY more nice things about Sebastian Marshall, like how his explanation of the difference between Polite and Friendly helped me focus on much higher quality friends. Or how he’s been a really positive example of Superb Business Ethics to the point where I wonder, if not for his (unknowing) influence, would I have been complicit in fraud or been defrauded myself? I suspect the answer is yes for both. Despite him never having heard of me, I feel I owe him a lot.

And at the risk of making a gesture that appears to be taking rather than giving, I’ve made manifest an idea of his he calls Ultraworking. Right now he’s relying on what looks to be google spreadsheets for tracking his private mastermind group’s ability to focus on what matters – eating right, sleeping right, exercise, planning the important work for the day and then jamming on it. Since there are shared charts and structure to it, I felt I might be able to make something a bit more boutique.


Smaller Tasks

I read Twitter. I don’t follow people, per se, I just occasionally go to their Twitter page and catch up. The form factor doesn’t make a slow web reading as easy as it could be, but it’s not terrible.

One of the people worth occasionally checking in with is Amy Hoy, a savvy product maker and business-person. One of the things she advocates is listening to customers and solving their actual problems. And watching them complain to each other is a great way to know what they care about. Then, fix the problems they care about.

So, in the spirit of service, I’ve solved a problem located directly in Amy Hoy’s twitter discussions. Another reader of Hoy’s complained about To-Do lists not letting you break down a task into smaller steps.

I’ve previously come at this in a different way, thinking that making increasingly minute outlines for your work was merely a way to delay actually doing the work. But I don’t think that’s always true – while I do enjoy the use of “tagging your To-Do List” as a synecdoche for all distraction-labor, this is a much more useful and much less prescriptive tool. And I’m actually using and enjoying it. Hopefully, others (including you) find the same.

Smaller Tasks