
Rails boot up time really starts to drag when you’re working in a TDD or BDD style. There’s projects out there that create long running distributed processes to ease this, but it’s interesting to look at exactly why Rails might boot up slowly.
I have a project that isn’t massively complicated, but it has suffered from “just add” culture. I’ve been told to “just add” Excel support, PDF generation, and a lot more features that require complex libraries. This naturally increases the memory footprint of my application, and it also increases boot time.
Before I started my analysis, the boot…
I wrote a series last year called “Rapid Rails”. It was all about making your Rails app and development process faster. I’ve been analysing the performance of some mature Rails projects recently, so rapid rails is back.
If I’m tasked with improving an application’s performance, the first thing I look at is indexes. Indexes are something you’re told are important when you learn about relational databases, but the effort of domain modeling usually makes most people forget all about them. That means you’ll often come across a slow project that can be improved just by adding indexes.
Rail…
I had a few glitches in the Helipad iPhone app when 3.0 rolled around. I’ve put the solution here to help those of you searching for the error message.
Helipad syncs to our web app and displays a syncing progress screen. I open this view in a new view controller like this:
SyncController *sync = [[SyncController alloc] initWithNibName:@”SyncController”
bundle:nil];
The parent view displays a UIWebView, and the controller runs the sync process on anothe…

Note: If you want to read about JsChat have a look at the JsChat blog.
I’ve always dabbled with open source (Linux got me through university), but it’s only since GitHub that I’ve released a lot of stuff: GitHub.com/alexyoung—I only had weird experiments on my site before, and I released some stuff through work too (code.helicoid.net). Nothing much drew any major attention until I publicly announced JsChat.
JsChat is a simple prot…
I’ve read a lot of game reviews where the intuitiveness of a game is described: the control scheme and menu system can be rated by how intuitive they feel. Intuition is a useful concept, and means more than “easy to use”—it imparts a sense of instinct; mental processes found in the subconscious.
Code can be intuitive too. Not intuitive to write, but to read. If this seems confusing just think about pseudo-code: beginners are immediately comfortable with pseudo-code but put off by the arcane constructs and symbols of a real programming language. Some languages appear more like pseu…
I almost survived Future of Web Design unscathed. I say almost because I still have a slightly dull head, thanks to the after party and free drinks. I can’t quite remember why, but at one point I thought ordering a load of sambuca shots would be a great idea.
Carsonified’s events have so far been a rare chance for me to meet up with fellow web designers and developers. This FOWD had a particularly friendly atmosphere, and I met lots of interesting people. The Carsonified team were professional and friendly, keeping the …
I went to the Ryan Singer Carsonified workshop yesterday. The title of the workshop was “How to design amazing web app user interfaces”. Ryan discussed his influences and processes behind 37signal’s interfaces.
Ryan’s workshop covered:
As a web application developer and designer who uses Rails, I found his insights fascinating. Here are my notes from the workshop. I haven’t managed to capture everything we talked…

Deadline is a reminder web app I made. It sends out alerts through SMS, email and IM, and now it works with Mac OS too. I spent this weekend building a Mac cocoa app for it that integrates with Growl. You can download it here: DeadlineGrowl
Deadline also works with GitHub: Deadline: Notification API and GitHub support. It uses post-receive h…

I use Secure Trading for Helicoid’s payment processing. I wrote a payment processor plugin for our apps about two years ago, and it’s been in production since then. A few people have asked me to open source the code, so here it is: securetrading-rails.
I’d like to integrate it with ActiveMerchant because I like their API, but I haven’t had time so far.
Out of all the payment…
I’m starting a new series on Quite Useful called beautiful algorithms. I’m going to talk about the algorithms behind graphical effects, especially those from the demo scene back in the 90s.

I’ve posted some examples to my GitHub account if you want to check out what I’ve been researching so far. They use Ruby Processing, which is a pretty accessible way to try out ideas.
I just finished wrapping up a 5 part tutorial on building Snake in Ruby and Shoes. It looks like this:

I went to GitLondon last week, a git training event organised by the developers at Codebase and GitHub. Scott Chacon from GitHub did the main presentation and workshop, which lasted from 9:30am until around 4pm, with Adam Cooke from Cobebase explaining how to set up Git on your own server.
Scott’s presentation covered everything from basic git commands to advanced commands and even the internals. He originally started using git several years ago when it was in its infancy, and built a system that required rsync…
I’ve been doing a lot of work with maps lately. Mainly Google Maps. Apparently, Google’s ToS isn’t as straightforward as I thought, and certain very reasonable situations render usage outside Google’s terms.
I’m not saying I don’t like Google Maps though, I’ve come back to it many times for dozens of projects over the years; it’s indispensable. However, there are open alternatives. I researched the open alternatives for a series of Quite Useful posts (my other blog):
By Tube I mean the London Underground. I just finished writing this over at Quite Useful: Hack the Tube
The article features Ruby and JavaScript examples of using Tube Updates by Ben Dodson to get Tube status updates.
I’ve been working on Deadline iPhone, and I got stuck trying to figure out how to create grouped form-like UI elements. Apple’s applications use them a lot, so I thought I’d be able to create them in Interface Builder.
Here’s what I wanted:

I figured out I needed to use a UITableView with UITableViewStyleGrouped, with a view controller set to be the delegate and dataSource for the table view. I seemed to do a lot of table view programming in Helipad iPhone, so I was familiar with the conce…
I went to the Rewired State event yesterday to contribute to contribute code based on hacking government data sources and APIs. My project was called StateAware, and it aimed to collect, combine and enrich data through APIs and screen scraping.
I wanted StateAware to achieve two things:
The project I worked hard on the project at the event, but it’s not even at the proof of concept stage yet. It was too ambitious for a one-day ev…

I just published Getting Started with iPhone Development over at Quite Useful. It covers the basics and should help you decide if you really want to take the plunge:
Around Christmas I was watching TV with the family and messing around with my netbook. It’s got Linux and Ruby on it, so I can actually work on that tiny thing. I came up with a script called lovehate.rb: it downloads matches of love and hate on search.twitter.com, then calculates the frequency for each term and presents a “winner”.
For some reason this script fascinated me: love almost always won, and I really wanted to find out what trends affected this. I made the script more generic and used it to compare other terms; eventually TweetFu.com...

I get a lot of hits to my blog from people looking for Vim resources, probably due to Vim for TextMate fans. I think Vim might be getting a resurgence from developers using Linux on netbooks and the refreshing speed and efficiency of Vim.
Here are some of my recent discoveries and tips for Vim.
Macvim is works really well for me: it retains Mac-friendly keyboard shortcuts. I use gvim in Linux which is good, but macvim seems to get the blend of nati…
Alan Bradburne, a fellow Rails and iPhone developer who I’ve worked with, has released his first iPhone app: MoloPix. It takes multiple photos and combines them into one image, and has an integrated website so you can share them straight from the iPhone.
I wrote a review for it on Quite Useful.