You are here

Benjamin's Personal Blog

Benjamin's Personal Blog
Checked: 2 hours 28 min ago
Updated: 1 year 7 months ago
Update every: 2 hours

A software development blog
Subscribe to Benjamin's Personal Blog

A connection machine in your pocket

Benjamin's Personal Blog - Mon, 30/03/2015 - 1:56am
In the 90's I read the paper "Evolution as a Theme in Artificial Life: The Genesys System" in which  the researchers evolved an ant program which would allow an ant to traverse a winding broken trail they dubbed their The John Muir Trail.  As the ant walked the trail it had to first figure out how to turn and then step over gaps in the trail that grew wider the longer the ant walked.

So you want to build a Git server?

Benjamin's Personal Blog - Fri, 03/10/2014 - 2:20am
So I heard you are thinking about creating a Git server.  Try to cash in on the massive rise of Git perhaps?  Maybe it will be online only like Github or perhaps it will be for customers to install like Gitorious or perhaps it will be mobile only!  You of course have a reason why your Git server is going to be better and take the market by storm.  Having been messing around with Git servers for almost almost sever years I have installed many different types many times and even started working on one myself called GitHaven many years ago that I had to abandon.

Evil Hangman and functional helper functions

Benjamin's Personal Blog - Tue, 01/07/2014 - 1:26am
Evil hangman is what looks to be an ordinary game of hangman, but even if you cheat by knowing all of the possible words available it can still be a challenge. Try out your skill right now at

How to stop leaking your internal sites to Gravatar, while still use them.

Benjamin's Personal Blog - Fri, 07/03/2014 - 3:45am
Gravatar provides the ability for users to link an avatar to one or more email addresses and any website that wants to display user avatars can use Gravatar. This include not just public websites, but internal corporate websites and other private websites. When viewing a private website even when using ssl the browser will send a request to Gravatar that includes a referer headers which can leak information to Gravatar.

Ben's Law

Benjamin's Personal Blog - Fri, 24/01/2014 - 4:10am
When every developer in a company is committing to the same branch the odds that a commit will break the build increases as more developers are hired.

Large Git repositories

Benjamin's Personal Blog - Sun, 15/12/2013 - 7:48pm
A little while back on the Git mailinglist Facebook started a discussion about performance issue when using a large repository. The devs were a little vague on specifics, but it was pretty clear that the problem stems from the fact that every Facebook project is currently in one repository and all of the projects are interdependent at the moment.

Tragedy of the commons in software

Benjamin's Personal Blog - Sun, 15/12/2013 - 7:46pm
Unowned resources that are shared in software seem to inevitably end up disorganized.

A few instances of this I have seen include:

  • Shared revision control repositories
  • Shared libraries
  • Shared database
  • Shared folders

Code analysis reporting tools don't work

Benjamin's Personal Blog - Thu, 04/04/2013 - 12:00am
Code analysis tools are good at highlighting code defects and technical debt, but it is when the issues are presented to the developer that determines how effective the tool will be at making the code better.  Tools that only generate reports nightly will be magnitudes less effective than tools that inform developers of errors before a change is put into the repository.

The minimal amount of data needed to lock in users

Benjamin's Personal Blog - Thu, 23/08/2012 - 12:36am

I recently upgraded to OS X Mountain Lion only to find that RSS support wasn't just moved out of Mail, but out of Safari too.  RSS bookmarks were the only reason I was still using Safari on a daily basis so this removal is forcing me to migrate them somewhere else and in the process stopping my daily usage of Safari.

When publishing onto two platforms one will end up being the "lesser" of the two.

Benjamin's Personal Blog - Thu, 24/05/2012 - 1:54am

When a company produces a product for multiple platform invariably one of the platform is the primary platform. This can take on a number of forms such as:

  •  Releasing to one platform first.
  •  Releasing updates only to one platform.
  •  Releasing a reduced feature set for the later platforms.
  •  Releasing a product for a later platform that while works doesn't fit in or follow that platforms UI guidelines.
  •  The primary platform is stable while the secondary ones have bugs/crash.

Some big examples:

Patches with more than one fix will no longer be tolerated

Benjamin's Personal Blog - Wed, 11/04/2012 - 3:18am
Patches with more than one fix in them are a bad development practice and need to be stopped.

parallelizing sequential work in amdahl's law

Benjamin's Personal Blog - Sat, 21/01/2012 - 9:36am
The speedup of a program using multiple processors in parallel computing is limited by the time needed for the sequential fraction of the program.When a sequential fraction of the program is the act of splitting up the data you can remove this sequential work by parallelizing the splitting and pseudo randomly picking split points, later tossing out duplicates in the join step.In this senario you trade the requirement of extra computing power for faster results.

Using collaborative diffusion rather than path finding for the Google AI ant challenge.

Benjamin's Personal Blog - Thu, 03/11/2011 - 12:15am
For the 2011 Google Ants AI Challenge rather than doing the typical solution of choosing direction for each ant based upon the shortest path to some goal I used a diffusion based approach which was simpler, faster to code and resulted in some nice emergent behavior with very little work.

Qt on Blackberry

Benjamin's Personal Blog - Tue, 18/10/2011 - 10:58pm

Today it was announced that Qt will be included in the BlackBerry native SDK so you can put your Qt apps on BlackBerry devices.

The coming IT revolution

Benjamin's Personal Blog - Mon, 17/10/2011 - 3:37am
Corporate IT departments will soon fail to exists as we know them today.  Any useful service that can exist on the internet will eventually be moved there.  IT departments that cling to systems that they maintain and will only be harming their company.  Companies that provide services on the internet that IT departments provide today will grow and prosper.


Benjamin's Personal Blog - Mon, 10/10/2011 - 2:13am
I am pleased to finally announce GitHaven which is a web interface for managing Git repositories.

GitHaven was created out of the need to be installed behind a firewall inside a corporate intranet or for personal use at home. GitHaven is packaged as a Debian package so it is extremely easy to install and keep updated.

Programming tool: The whiteboard marker

Benjamin's Personal Blog - Mon, 11/04/2011 - 12:00pm
All through my programming career I have had a whiteboard, but beyond simply making sure I had one I have never thought much more about it. Recently I picked up a set of whiteboard markers that surprisingly made me more productive.

Tablet TV Games

Benjamin's Personal Blog - Thu, 17/03/2011 - 10:44pm
1) A lot of people have smart phone and some have tablets.
2) A lot of people today can browse the web on their TV. This is done via an internet enabled TV, an attached box like a Wii, XBox, boxee, or something else.

Both of the above will only be increasing as time goes by. What major unique situations does this present that has not been seen before and how can it be taken advantage of?

1) Each user has a screen that can be private while still being in the same room.
2) Not locked into only 2 or 4 players on split screen, how about 20 or 400 people?

Playboy for my birthday

Benjamin's Personal Blog - Mon, 17/01/2011 - 11:33pm
This year for my birthday one of the presents from my wife was my first issue of Playboy. Not just any issue, but the November 1972 issue which contains the Lenna Sjööblom centerfold. A small portion of this centerfold is a very well known image in computer science.

Evolving "Hello World!"

Benjamin's Personal Blog - Tue, 14/12/2010 - 5:14am
puremango has put together a nice little writeup on using genetic algorithms to generate the classic "Hello World!" He has an attached webpage that lets you play with the parameters and generate a nice graph.

Git SSD Speed comparison

Benjamin's Personal Blog - Mon, 13/12/2010 - 6:27pm
SSD's provide significant improvement in disk IO. How well does that translate over when using Git? A lot.

After watching prices drop all year long during black friday I picked up a OCZ-Vertex2 120G SSD. I installed it in my current MacBook Pro (2.66 GHz i7 with and 4GB of ram) using a MCE OptiBay to replacing the DVD drive so I can have both a HD and a SSD installed at the same time.

Our first House

Benjamin's Personal Blog - Sat, 30/10/2010 - 2:11am
After years of saving, months spend looking at more than fifty houses and weeks of paperwork, today we closed on our very first house.

We are happy, excited and can't wait to move in.


Benjamin's Personal Blog - Thu, 28/10/2010 - 11:36pm
This week I went to California this week and and attended GitTogether10 that was hosted at Google. It was a small conference all about Git. From hearing how companies are using it to discussing how to make Git better the discussions were varied. I got to meet a bunch of very cool developers and hear some very neat work that is going on such as bup a backup tool using git that can continuously backup huge files such as vm images without taking up huge quantities of space.


Subscribe to Benjamin's Personal Blog