I like to make software that is fun and good looking.

May 17, 2011

Backbone Gotchas

If you’re using Backbone and reusing the same div for all of your views (in a single-page iphone app for example), make sure you call .unbind() on the div when you call destroy the view, backbone doesn’t do it for you, and if you don’t unbind the div, you’ll end up with a whole bunch of events (which are using delegate so they hang around) being trigger at strange and inopportune times.

May 16, 2011

Designing without thinking

When you’re working on a hard project where the functionality is spread across several files and modules, and you need to do some rearchitecture. I’ll often sit down, work out how I want it to work, then zone out and just refactor without reading the code on the page. Old-school lispers are famous for this, they can work out when to refactor and where the code is unbalanced by looking at the shape of the code, due to all the parentheses. I do a similair thing, relying on syntax highlighting and compile-on-save to point out when I’ve broken something.

April 28, 2011

Proof of work in Javascript

Proof of work is the idea of getting a client to do some computational work that is expensive to perform, but cheap to verify.

April 21, 2011

Capt 0.5.3

I’ve just pushed capt 0.5.3. Code generation works properly now generate controller and generate model, and the capt watch and capt server commands actually work (I was a bit premature announcing on Tuesday). I’m using this on two projects now and it has been a really nice toolchain.

April 21, 2011

Wanted - A local startup

I’ve worked on “local” for a really long time, it’s something that’s got under my skin. Whether it’s creating mapping engines, url hierarchy for places or analyzing aggregate user trends, I just really love it. I started a startup in 2006 doing local. We almost got hire-acquired up by Google, but didn’t, long story.

April 20, 2011

There comes a time in every project...

There comes a time in every project - after days of prototyping, design, tweaking, rigorous speccing and bdd, after several deployments to staging and a/b testing with beta users, after polls and roundtables and whiteboarding - that you have to admit that the project isn’t any fun to use.

April 20, 2011

Channel Activity

It’s hard to discover new activity in Buddycloud, time to fix that.

April 19, 2011

Diaspora-x ui work

I’ve been doing some work on buddycloud / diaspora-x user interface. Screenshots follow:

April 18, 2011

Capt is in npm

I’ve resumed work on capt, since my diaspora-x codebase relies on capt, and although I expect brunch or cinco will take over as the build tool of choice for coffeescript / backbone apps - capt works for me now.

April 15, 2011

Coffeescript supersedes Rails

This is a bit of a contentious post (that commit is comedy gold) but I think people talking about rails using coffeescript as the new default client-side language are missing the point that coffeescript doesn’t complement rails, it supersedes it.

April 14, 2011

Planning in the open

I’ve been designing today. The current Buddycloud site needs a refresh - so I busted out Jekyll (the tool I use to generate bennolan.com), some css3 and the blueprint css framework.

April 13, 2011

Localstorage for speed

The Buddycloud web client is available on github. I started with the Diaspora-x codebase, and have been backporting in features from the codebase that was started by Stefan Maka (another Buddycloud contributor).

April 12, 2011

Distributed Social Networking

Normally when a client rings up and wants you to build a replacement for Facebook, you smile politely and say that you’re full up for the next 18 months.

April 11, 2011

A* in coffeescript

I put together this astar solver in coffeescript. It expects that nodes have a key() function that generates a unique id for the node, and an getAdjacentNodes() function that returns valid adjacent nodes.

April 09, 2011

Against me nervous energies sessions

For future reference, the against me nervous energies sessions are linked in this post.

April 08, 2011

Native maps speed in Javascript

Whenever I use OpenLayers or even Tile5, it annoys me that no matter how much you optimize your javascript code, your html5 map will never be as smooth and fluid as the native iphone maps app. I decided to try and fix that today.

April 06, 2011

Smallest turing complete language

I was wondering what the smallest set of opcodes would be for a turing complete language.

April 05, 2011

AI smallest program

I’ve been thinking about AI a bit lately, and a question I’ve had, is what is the smallest non trivial programming loop you could make? What number of opcodes would it be? I guess it’d have to be a program that took evolving inputs and iterated to approach an optimal solution.

April 04, 2011

Simple English

Simple english has only 800 words, and I’ve found an english -> basic english translator. I think it’s a good vocabulary for a chatbot.

March 23, 2011

Brunch

I’ve stopped developing capt, my javascript build tool. I’m instead contributing to brunch, a tool built by Jan and Thomas. It’s still early stages, but it is already ahead of where capt was. My todo list for brunch is: