Oh hi, Iʼm Ben.
Iʼm an Engineering Manager at Meta.
I like to make things.
 2025
2016
2015
2014
- Generate JSON Index Of Images With awk and identify
 - Type-check Your JavaScript With TypeScript
 - “Bubble” Lines Up And Down Like Sublime Text In Vim
 - Vim Auto-closers Compared
 
2013
- At Christmas 1994 the NME carried a mixtape from the Chemical Brothers (still known as the Dust Brothers at that point). I lost my copy ages ago, but it was probably warped to shit from all the times I played it. This track was the highlight. I don’t think I’ve heard it since then. It’s insane to think that was almost 20 years ago. O.M.G. I’m practically dead now. Edit: Lo and behold, somebody’s kindly posted the entire NME Xmas Dust Up mixtape to Mixcloud. Enjoy!
 - Should You Move Away From Heroku To Protect Your Users?
 - Quantified Self
 - Serve HTTPS From Elastic Beanstalk Application Instances
 - Mock To Mobile In Minutes With Codiqa, Trigger.io And TestFlight
 
2012
- If you had an API for your email, what would you do with it?
 - Lean Startup Resources
 - Small Data: Processing CSV In Unix
 - Personal Finance Dashboards For UK Customers
 - Play 2.0 And Scalate Step-By-Step
 - Authentication workflow for gitlab, gitolite and AD
 - The Specious Notion That Everybody Has To Earn A Living
 
2010
- Moving to HTML5
 - Towards testing OpenRasta views (OR 2.0.3, .NET 4, VS 2010)
 - Hack your life with Remember The Milk
 
2009
- Mixcloud is a great site for sharing mixes
 - How I work
 - Clojure: a stateless dynamically-typed Lisp on the JVM
 - Software development advice for startups
 - Django, Drupal, Webmachine: Different frameworks for different projects
 - Python syntax highlighting with Chili
 - Use SSH public key authentication with Fabric
 - Working from Bali, working from London
 - Client-side MVC is maturing
 - Announcing aftnn.org version 2.0
 - 5 tips for professional site themes on WordPress.com
 - Reading "Architectural Styles and the Design of Network-based Software Architectures"
 - Haskell web frameworks reinvent too much
 - Nginx+Django+FastCGI
 - Followize - A trimmed down, fast and efficient web app for reading tweets
 - Building a Twitter client
 
2008
- Erlang summary
 - BrightKite/GMaps auto-mashup
 - In search of Silicon Valley, post-mortem
 - In search of Silicon Valley: day 1, part 2
 - In search of Silicon Valley: day 1
 - Developers and Startups Match Making
 - Go to an unconference: meet smart, friendly people with big ideas
 - A List Apart Web Design Survey, 2008
 - Spread Firefox, make a world record
 - Moving my blog to Django
 - Just Friends FriendFeed
 - No more link splicing
 
2007
- MySpace Marketing 1-2-3
 - Back
 - Google Maps widgets
 - Recruitment drive
 - Advertising in social networks
 - Capturing time zone with JavaScript
 - Facebook Platform: some thoughts on what I've learned so far
 - Too young to start a business
 - The joy of pdb.set_trace()
 - The A List Apart Web Design Survey
 - Coloured grepping
 - NO2ID ID-Day, 26th March 2007
 - Inspecting CSS in Python with cssutils
 - On Chiho Aoshima at Gloucester Road
 - Open source success
 - Meeting Scott Keiller, head of Corporate Social Responsibility for Starbucks UK
 - Starbucks, Oxfam and freelance campaigning
 - I R Media-Whore
 
2006
- Cycle Cambodia photos now up
 - Cycle Cambodia route data
 - Back from cycling Cambodia
 - Strip tags in a Vim buffer
 - Plotting server performance
 - Djangoogle
 - Kraftwerk
 - Simple hands free
 - Pétrus
 - The social web
 - Make It Minimal
 - MobMart items of the day, prizes to be won!
 - Regularity is a symptom of bad code
 - Chemistry on the mind
 - X_ORANGE_ID
 - html2textile
 - Introducing MobMart, my employer
 - TA capitulate
 - Keeping hold of digital memories
 - A Vim in TextMate clothing
 - The Death of TextAmerica
 - Sleeptracker
 - Leave the walled garden, increase ARPU
 - Amazon Mechanical Turk
 - London 2.0
 - Concurrent functional programming
 - Ad-supported telephony
 - The Haskell Highway
 - Global challenge: Cambodia
 - Aggregate operations in shell
 - Doctests vs unit tests
 - Testing Django apps
 - Web 2.0 logo jam
 - Syncasting
 - The 11th lie of the entrpreneur
 - Moblog Valentine's competition!
 - Give your customers free data
 - Burn the feed at both ends
 - Words of advice for impetuous business people
 - Technorati: Let me in!
 - First impressions count
 - Mobile web: the 1% of functionality we use all the time
 - Mobile Opportunities
 - Citizen journalism?
 - Data vampires
 - Hijax
 - From hacker to businessman: Changing views
 - Google is my dawg
 - Monetised moblogs
 
2005
- Tour Eiffel success
 - Afternoon vs. Technokitten
 - Trying stuff on for size
 - Wow!
 - All Tomorrow's Parties
 - Django get-go
 - Web 2.0: emergent information organisation
 - Required Google Analytics post
 - The business of blogging
 - Thoughts on Django
 - Web Frameworks Night and the attack of the alpha geeks
 - The $100 laptop
 - DE9 | Transitions
 - Keys
 - Diggin' in the crates
 - Open source audio editing
 - Generative art matures
 - New photography
 - Live reaktions
 - Venezuela madness
 - "He may be a sonofabitch, but he's our sonofabitch."
 - Basayev in the light
 - Restaurant Gordon Ramsay
 - London Terror Bombs; City not on fire
 - Pledgin'
 - Creative commons
 - Watch out!
 - Plone test drive
 - Content versioning
 - Zope 3: A new frontier
 - Confusion Management Systems
 - Bike auction
 - Humph
 - The opera
 - Reply from my MP about ID cards
 - I don't want to work any more
 
2004
- InfoCMS update
 - NO2ID
 - Loan records
 - MultiInfoCMS
 - phphierarchy.py
 - China economic
 - Iraq politic
 - Prague to Krakow, Afternoon style
 - Python wrapper to take the pain out of the units command
 - Ahhhh ha hahaha!
 - ISP fun
 - Chocks in no way away
 - Reason Max
 - Don't send to sender, Unix-style
 - Tiger thoughts
 - More Foundy squeeky afternoon action
 - chkconfig
 - NotGeorge
 - A new CMS is born
 - Chuck it, rude boy!
 - The Liberal Democrat force
 - Safari Form Values
 - Shapeshifter broke my Mac!
 - Voting tomorrow
 - Political Adjunct
 - More NotCon
 - NotCon '04
 - Fabric boss!
 - SQL Queries Considered Sportier Than Expected
 - Conversation volume
 - V&A
 - Hello Pixelsurgeons!
 - London blog meet
 - Permanent logins with PHP sessions
 - Milestone 6
 - Milestone 5 complete
 - Social Software and Sociopaths
 - Milestone 4 and much of 5
 - Master and Commander
 - Schmocial Schmoftware
 - DnD relaxation
 - Another Hype progress update
 - Cycling in London rocks
 - Hypothetical 2 progress
 - Shirky's rules of group behaviour
 - Monster
 - Thought
 - Old design = boring
 - Mmm, rsync
 - Weddings and that
 - More XSLT: functional style
 - Vim colours
 - Prog2a
 - The Passion Of Christ
 - Continuations
 - Extreme programming, kind of
 - Kenya, finally
 - phpCollab
 - Cluster
 - Build process
 - irssi
 - Bye bye www-style
 - No blogging, no Webmonkey
 - text-shadow
 - This is your brain on Brainfuck
 - Home again, home again
 - See you in two...
 - 24
 - gf
 - Oh yeah...
 - Close proximity
 - Lost In Translation
 - What the future holds
 - WorldPay sucks
 - My first JNI function
 - I believe
 - Encode project knowledge in XML
 
2003
- Xmas lard
 - There's always time for XSLT
 - Caution
 - Metaaaaal!
 - Friends page
 - Vim Regular Expressions
 - Proce55ing
 - Site-specific stylesheets
 - Partay!
 - Mac OS X Panther Mail.app Junk Mail bug and workaround
 - PHP 5
 - More IA stuff
 - George Soros and American Supremacy
 - UIE
 - Vim Tip
 - Card sorting
 - "Best tip of all"
 - :filetype indent plugin on
 - Autocommands
 - ]p
 - SUPER YAY!
 - More Vim hacks
 - Vi iMproved usage improved
 - Patterns
 - I like
 - It's EFF Banner Day!
 - Certified!
 - Public Discussion
 - Hypercapitalisation
 - Blaargh
 - Web writing style guide
 - The Cast Of Musical Elephants
 - SJCP revision 2
 - Gaming, Doom style
 - CSS Hacks
 - Kill Sound Before Sound Kills You by kid606
 - Leslie Godfrey, RIP
 - IE doesn't like floats inside position:relative; blocks
 - Tests and hacks
 - Windows on a Mac
 - Some more basic synthesis
 - New book
 - More Panthery bits
 - Panther
 - A slightly bigger Lisp program
 - It's my birthday
 - Kill Bill
 - Paypal's solution to the multiple submissions problem
 - Still trying to get it
 - Music and computers
 - Synthesis
 - Dorkbot
 - IT people
 - "And as we all know from experiments conducted during the Korean War, Diane, sleep deprivation is a one-way ticket to temporary psychosis"
 - Cunting work
 - Javadoc
 - The Roses
 - London Bloggers Tube Map
 - Tempura, Web Apps
 - Scheme and stuff
 - Dividends
 - Raspberry
 - SCJP revision
 - London: 1
 - I found the API docs
 - mod_perl
 - Hype version 2 redux
 - The last day of september
 - VPNs on OS X
 - Rewarding
 - Italy photos up
 - Posts per month since I began
 - Tax return
 - Finding Nemo and many records!
 - Programming with frames
 - The Hours
 - Resucitation by Adult.
 - Patents, more Lisp
 - MySQL configuration files
 - Italia
 - Baby I'm a Lisp coder now
 - Language fascism etc
 - BoyInDaCorner by Dizzee Rascal
 - My mum is 50!
 - Ark
 - Week In, Week Out
 - Appletalk forwarding over SSH
 - Working Holiday
 - Achievement
 - Project managers
 - wwWebflow 2.0.3 ships
 - Rapid response from the Green Party MEP
 - Stop EU software patents
 - Have DSL, able to breathe freely again
 - I've really lost it this time
 - Tom Yum
 - Blog Birthday
 - Carnivale!
 - Winning the battle, and the war
 - Credit, employment, shopping
 - Mille Plateaux
 - New series of Six Feet Under hits UK cable
 - Accenture first round phone interview
 - Am back
 - Holiday
 - Highly recommended
 - Installation ain't bad
 - We're all going to the zoo, the zoo...
 - Shoot the Moon
 - Busy Universe
 - Am I too obsessive?
 - On Electroclash
 - New sunglasses, electroclash
 - Hulk
 - Apple, why Sendmail?
 - New glasses
 - Mozilla pushed forward?
 - Will everybody just stop shooting browsers
 - Mo Hype, mo money
 - Hype version 2
 - Toad in the hole
 - Weekend gladness
 - Blueteeth
 - Ack!
 - W3C unresponsive
 - MID action
 - ben2 style
 - Giving and taking
 - OmniGraffle is great
 - More Live arranger
 - Live arranger view
 - My first .com
 - application/rss+xml
 - Arguing day, 2003, draws to a close
 - Food glorious food
 - 606660606
 - I hate spammers
 - IE is dead
 - Networking Party postmortem
 - Photos
 - Blog entry
 - I M Poweruser
 - New laptop!
 - The stew was well good
 - Week in the rear view mirror
 - Annoying behaviour
 - IE Hack
 - Matrix Reloaded
 - Donnie Darko
 - The Good Girl
 - I'm at peace
 - Exhausted
 - Rounds by Four Tet
 - More details
 - OMFG!
 - Powerbook
 - Post dearth
 - Oh my gosh!
 - Never too many Amen tunes
 - Hoorah!
 - Aaaaarrgghghghhhhh
 - Meetup
 - CSS suxxors revisited
 - On Google's fabled blog tab
 - Russian Ark
 - Garden
 - Coarse Ground Sea Salt
 - Windfall
 - Elephant by The White Stripes
 - Fuck!
 - Awwww
 - The Elusive CSS footer
 - HTTP Redirects
 - Curt Cloninger
 - Work of Meta-Art in the Age of Generative Reproduction
 - Questions
 - iTunes 4
 - Good point from Martwine
 - Zeldman!
 - BBC News and some example grid syntax
 - Need to read
 - Urge to kill... rising...
 - An interesting suggestion
 - Ah ha!
 - 16:49. Restate my assumptions
 - XML prolog puts IE 6 into quirks mode
 - Bugger
 - More discussion
 - Hixie weighs in
 - More feedback
 - Some support!
 - Another problem layout
 - CSS Interface Design
 - Teeth, Muscles, Shares
 - Bottom-clenchingly simple hierarchical Javascript menus
 - Exercise
 - Flash in Safari Beta 2
 - More boating
 - Google-tastic
 - Safari issue
 - The gallery is finished!
 - Boating in the park
 - Perhaps I'm just too old
 - Mental note
 - Now that's what I call gun control
 - Exif/BS
 - A lovely weekend in the country
 - Estimates
 - More going with the flow
 - Definition
 - When should you go with a flow you don't like?
 - Router fun
 - Things are looking up
 - Life of Pi
 - Sigh
 - Loneliness
 - Second large failure
 - New York, New York!
 - If you want to go far whilst sitting down
 - New York looms...
 - No!
 - Illness
 - Interview debrief
 - The stupid fluctuating world of freelance.
 - I want your sexiness!
 - FOAF
 - Adaptation
 - New Mood
 - A couple of ideas
 - And, on a similar note
 - Blank MIME emails
 - New design redux
 - New design
 - Harrington Photography goes live
 - Stop that war!
 - Why Hacking Web Pages With Unix Rules
 - Human Greybar Land
 - Tai Chi, Manga, Guests
 - Arena4 complete
 - Tai Chi Lineage
 - Bastards!
 - New stuff
 
2002
- Woo-oooo-oo-ooo
 - He Shoots, He Invoices!
 - Craxy World of Noon
 - Doh!
 - More Mouse Things
 - BIRTHDAY!!!!
 - Activities
 - A nice sunny Sunday
 - Well, the day has gone, but still
 - They think it's all over...
 - Draws Nearer...
 - The Big Day
 - Ha ha!
 - New background
 - It works!
 - Coding time down at the farm
 - More, more, more!
 - l33t payments
 - Plus de objet d'code
 - Mrs Marsh hired him to fix the Jagwar
 - Blogger API
 - *Another* project finished
 - Another project completed, late
 - JavaScript Magic
 - upd
 - Fixed ADSL!
 - Mo Uploads
 - CV
 - Ain't no stoppin'
 - Hypothetical Objects
 - Tonight's Major Hacking Feat
 - Blanket
 - Search term highlighting
 - Journal code "finished"
 - Helicopters
 - Aftnn.org coming along
 - New logging gizmo
 - Mmm
 - These guys suck!
 - AFTNN.ORG!
 - Mo Stencils
 - King of the Beats
 - Finding Food in China
 - Lucid dreaming
 - Window size arses
 - Werk at lurst
 - Now today I'm depressed
 - Smart moves
 - More on download times
 - Browser recognition etc
 - Jakob says...
 - Testing 1 2 3
 - Paging
 - Stencil Graffiti
 - Another web site finished!
 - PEAR r0x0rz
 - Today Hypothetical was one year old
 - Hypothetical help system
 - Old improvements list
 - So cunning etc etc
 - Well, since there are people reading...
 - Handling of Robots
 - Double-entry!!! Har har!
 - Testing of sites
 - PHP masked file downloads
 - A Quickplace function
 - Javascript yes/no
 - Hypothetical Remote
 - Alt tags on buttons
 - Karting and stuff
 - Ideas from Greymatter
 - You've been sued!
 - POP3 Mail app
 
2001
- More of Mat's hypotheses
 - User validation
 - Notes from the living room
 - iBook and hack-em-ups
 - Hype 2 Accessibility
 - v0.2 speeling
 - I love HTML
 - Stealing from Oracle
 - Webthought 2222
 - Louise's birthday
 - More solid PHP know-how
 - Default values in PHP
 - Is this what a working flash detect javascript looks like?
 - Button generation refinements.
 - Mat said...
 - Need for a new db
 - Hypothetical 2 proceeding quite well
 - Hypothetical 2 on route
 - Hype suggestions
 - drawFrame
 - BODMAS
 - Textmap - an old idea
 - Comments ON
 - News serialisation
 - Mo Hype2
 - Hype2 notes
 - Case sensitivity
 - Portlet/theme enhancements
 - It's wierd (2)
 - It's wierd
 - Mail page is a bit abrupt
 - ADSL + Linux + iptables
 - Brass Eye related Government communication!
 - Commas!
 - These tunes rock...
 - Autolinks notes
 - Afternoon Known Issue
 - Handy script for floppies
 - Hypo trouble
 - ADSL is _REALLY_ **EXCITING**
 - It's a long road to Psion
 - Psion World
 - Autolinksss
 - Green theme IE/4.5/Mac fuck-UP
 - Emus + Extensions
 - Today I got...
 - Look, it's started...
 - Auto-links refinements
 - Another blogdex inspired idea
 - Eh oh
 - I made this
 - Customisable image colours for hypo
 - Arsecandle
 - Admin page SUX0Rz, WAP site also
 - Well
 - Log now part of cityroad.org.uk
 - User services
 - Known Issues from a-new-hope.txt (legacy notes file)
 - Is that really why you made a weblog?
 - Wilkommen!