CTO · Composer · Triathlete
Assume less. Build more. Break through.
Essays and observations on technology, endurance sports, and the architecture of modern systems—written with care.

Scroll to explore
Latest Writing
View all →Is DSRC dead? Vehicle to vehicle mobility network interoperability with LISP
Managing Consumer Products: A Lesson from Redesigning the Yahoo Homepage
The Sustainable Use of Big Data and AI at Nexar: Our Ethical Pledge
Introducing BDD100K: The World’s Largest Driving Dataset
Explore by Topic
All Posts
- IoT Needs Edge Compute, and More Than You May Think
- Is DSRC dead? Vehicle to vehicle mobility network interoperability with LISP
- Managing Consumer Products: A Lesson from Redesigning the Yahoo Homepage
- The Sustainable Use of Big Data and AI at Nexar: Our Ethical Pledge
- Introducing BDD100K: The World’s Largest Driving Dataset
- Time Restricted Feeding for the Endurance Athlete
- Sharing My Fitness Recipe
- The Case for Continuous Deep Learning at The Edge
- It’s All Corner Cases: Teaching Computers to Drive Safely
- Sports, Sleep and Startups
- The Marathon of Work and Life
- CooSpo H6 ANT+ and Bluetooh Heart Rate Monitor
- The Curious Case of the Elite Turbo Muin and Misuro B+
- WaterRower vs Concept2 - A Power Study
- The benefits of rowing for runners and cyclists
- Autonomous Navigation
- Sayonara Linux Desktop
- The Challenging Case of Training at Threshold
- Are lighter riders faster on Zwift?
- The Harsh Realities of Self-Driving Cognition Development
- Linux Desktop on a Dell XPS 13
- 2016 Hever Castle Triathlon Race Report
- Rowing with the WaterRower in Zwift
- Nifty Minidrive Storage Hack
- Zwift - A Virtual Reality Cycling Game
- Wahoo KICKR and CycleOps VirtualTraining
- The Datastream Marketplace
- The User Data Marketplace
- Training and Pleurisy
- A Long Run in Marrakech
- Golden Cheetah on OS X Mavericks
- Much Improvement Required in the UK Startup Ecosystem
- Convert Mailbox from Mail.app to Microsoft Outlook 2011 in Lion
- Failing to Scale Out Push Web Services
- The NodeJS Innovation Advantage
- The Cloud Search Open Source Landscape
- My Home Backup Strategy
- The Praxis of Event Loops
- Markdown, An Open Document Workflow
- Railroad Diagrams from EBNF
- Ahead with Node.JS and Google V8
- Answering Jason on V8 governance and impact to NodeJS
- NodeJS: To V8 or not to V8
- Java AIO (NIO.2) vs NodeJS
- Quick benchmark checkpoint on Java and NodeJS
- Facebook BigPipe in an Async Servlet
- On Scaling node.js to Multiple Cores
- Nodes and Jetties
- Why node.js Matters
- Autonomy, Mastery, Purpose
- The Linked-Atom Web
- Android Solves Rubik in 24 Seconds
- Brilliant Tech Video Ad
- On Apple, Flash and Java
- Relocating to the US
- Out of the Eclipse to Netbeans
- Making XMPP Work for the Mobile Environment
- Composable and Concurrent
- On Language Polyglotism
- Heads or Tails
- A Web Linked by Atoms
- Painfully HTTP Java
- Snow blocks railway company websites
- pywbxml revisited
- Getting libwbxml on MacPorts
- Twisted Web IMPS Echo Client
- Twisted Virtual Environment Goodness
- Will XMPP be the messaging middleware for the REST Web?
- Wireless Village Headed to the Deadpool
- Could the financial downturn be the end of Darwinism
- Can search be entertaining?
- Why Video-On-Demand Streaming in Airlines Sucks
- Enterprisey Architects
- what the iPhone is that Symbian isn't
- Why facebook is just a game
- Want to colonize Mars?
- AOL Opens Up AIM
- Are Java web frameworks ready for building frontends?
- Bad technology choices will chase you
- Andrea Ayuso Morillo, Au Pair Vanished in Thin Air
- We are here to stay
- Moving Blog to Home Server
- Will Nokia change Trolltech's Qt GPL licensing?
- Oops, Trying out Yahoo!'s OpenID V2
- Sun Microsystems set to buy MySQL
- Being Phileas Fogg, Day 5
- Being Phileas Fogg, Day 4
- Being Phileas Fogg, Day 3
- Being Phileas Fogg, Day 2
- Being Phileas Fogg, Day 1
- Day Off, Installing a Satellite Dish
- SUNW becomes JAVA
- Stall by Incremental Releases
- Open LinkedIn Platform Should Focus on Privacy
- Why Trolltech's Qt GPL license is hurting the Linux desktop
- Three Weeks of KDE, Too Much Configuration
- Measuring time spent at a site rather than hits
- Posh-Wannabes: Wannabe-A-Fly?
- Google News Limited Comments, Not Cool, Not Evil, Just Careless
- Yahoo! ROBO: Research Online, Buy Offline
- NatWest Online Banking: Card Reader
- Make your code obvious, or remove it
- A week of KDE (killall evolution-data-server)
- Memory-lean nginx on a VPS
- The Semantic Desktop, The Semantic OS
- Gnome Hack Idea: FreeMind, Tomboy and EDS
- Silence
- To SaaS or not to SaaS, a Utility-Based Decision
- Increased Transparency Shows Value of YPN
- Open APIs Attract Postini and Avaya to Google Apps
- Extremely Aggresive Pricing Makes Google Apps Premier Edition Sexy to Small and Medium Sized Businesses
- On Levying ISPs for DRM-Free Content
- Rails, Django, CodeIgniter, Symfony Performance Compared
- Microsoft's Guidance on SaaS
- Corporate Technologities: Keep the Power On!
- Locked out of Yahoo! Instant Messenger
- Failure and Success of Enterprise Architecture
- smart2go Free Mobile Maps Service Competes with Tom-Tom
- Feed aggregator: Pipes at Yahoo!
- Skype, Ebay and Google
- Apple Cool and Insecure
- Moved to hosted Wordpress
- The B2B of Mashups: Mashboards
- The future of hosted software
- Web 2.0, The New Old?
- Transport and Housing: Chicken and the Egg?
- Pricing Models for Web 2.0 Software as Services
- Taking the Rails to Django
- Enterprise Architecture: The Ends Don't Justify the Means
- Java EE 5, still too complex
- Wicket and EJB3
- Globus, something is not right
- One thousand paintings
- Transactions in Rails
- SOA, can it scale?
- Ruby on Rails and J2EE
- AJAX Performance
- SOAP and RMI
- First Entry