ree
We recently migrated Twitter from a custom Ruby 1.8.6 build to a Ruby Enterprise Edition release candidate, courtesy of Phusion. Our primary motivation was the integration of Brent’s MBARI patches,...
View Articlescribe client
I’ve released Scribe 0.1, a Ruby client for the Scribe remote log server. sudo gem install scribe Usage is simple: client = Scribe.new client.log("I'm lonely in a crowded room.", "Rails") Documentation...
View Articleobject allocations on the web
How many objects does a Rails request allocate? Here are Twitter’s numbers: API: 22,700 objects per request Website: 67,500 objects per request Daemons: 27,900 objects per action I want them to be...
View Articledistributed systems primer, updated
Well, it’s been a long time. But! I have five papers to add to my original distributed systems primer: coordination CRDTs: Consistency Without Concurrency Control, Mihai Letia, Nuno Preguiça, and Marc...
View Articleperformance engineering at twitter
A few weeks ago I gave a performance engineering talk at QCon Beijing/Tokyo. The abstract and slides are below. abstract Twitter has undergone exponential growth with very limited staff, hardware, and...
View Articlesimplicity
Maximizing simplicity is the only guaranteed way to minimize software maintenance. Other techniques exist, but are situational. No complex system will be cheaper to maintain than a simple one that...
View Articlememcached gem performance across VMs
Thanks to Evan Phoenix, memcached.gem 1.3.2 is compatible with Rubinius again. I have added Rubinius to the release QA, so it will stay this way. The master branch is compatible with JRuby, but a...
View Articleideal hdtv settings for xbox 360
My XBox 360 broke, and since my new one supported HDMI, I reworked the connection to the TV (a Samsung PN50A450 plasma). It’s tricky to get the best performance out of the combination so I wanted to...
View Articlehello heroku world
I’ve been investigating various platform-as-a-service providers, and did some basic benchmarking on Heroku. I deployed a number of HTTP hello-world apps on the Cedar stack and hammered them via...
View Articlea programmer’s guide to healing RSI
I am not a doctor. This blog is not intended to substitute for professional medical advice. See your general practitioner to discuss your symptoms and treatment, as well as an orthopedic specialist and...
View Articlestandalone sinatra jar with jruby
For Fauna, we needed to migrate the website (a Sinatra app) from Heroku to our own servers in AWS us-west-2. I wanted to get off MRI and bundle it up as a JAR as part of this process. dad, why We...
View Articlemcable gaming edition review
I got a Nintendo Switch and was very frustrated with the graphics quality. Aliasing and poor texture filtering abound in Zelda BOTW and Mario Kart 8. I think this is primarily an issue with the games,...
View ArticleFender Rumble 100 frequency response curves
I bought a Fender Rumble 100 bass amplifier and was curious about the frequency response. I couldn’t find anything online so I measured it myself with REW and a UMIK-1. Below are normal, vintage, and...
View Articleanbernic rg350m resources and review
I got into opensource handheld game consoles recently and bought an Anbernic RG350M to use with emulators. I was very frustrated by the poor quality of the stock software and menu system and actually...
View Articlebudget combination racing wheel and HOTAS setup
I put this together back in May during the lockdowns. Playseat Challenge seat ($235)Thrustmaster TMX wheel and pedals ($180)Ricmotech Hard-Mount Adapter for T150 and TMX ($25)Thrustmaster T.Flight...
View Article