James Mead by James Mead

Week 530 - Interesting links

Rails Trace

Chris Zetter built this site to help people visualise how Rails responds to HTTP requests. The trace of the execution path of a single HTTP request through all the various libraries is fascinating. Chris has also written an excellent blog post on how he built the visualisation including the discovery of an interesting bug in Ruby. JM


This is actually something we first mentioned back in week 470. For a long time we’ve been using our own Chrome extension to help us explain transactions in FreeAgent correctly and consistently. However, since we started making sales from mission-patch.com, we’ve needed to handle payouts from Stripe which are made up of payments from multiple customers and deductions for processing fees.

We looked at and tried a few different options, but we’ve settled on DoubleAgent which does this automatically. Andrew was really helpful in making some changes to support our Stripe use case and so far it’s all working really well. And as a bonus we’ve started setting up DoubleAgent rules to replace the functionality provided by our Chrome extension. JM

Building Git

James Coglan has written a book which walks you through building git from scratch in Ruby. I haven’t had a chance to look at it yet, but I’m sure it’s full of useful explanations of programming concepts. JM

Acoustic metamaterials that cancel sound

Earlier in my career I researched noise cancelling technology for aircraft engines, and I still enjoy reading about recent developments. My Dad sent me this recent article from Boston University (see also the Physics Review paper) which describes a new way of manufacturing materials that can be tuned to remove specific frequencies of sound while still allowing light and air to pass through. It’ll be interesting to see if the results hold up when used in aircraft engine models and also whether the technology will make it into things like roadside noise barriers or office sound-proofing. CL

Deconstructing the Monolith

Kirsten Westeinde has written an interesting article about how Shopify is going about modularizing its giant Rails monolith without resorting to extracting microservices:

We wanted a solution that increased modularity without increasing the number of deployment units, allowing us to get the advantages of both monoliths and microservices without so many of the downsides.

She references Dan Manges’ article from last year, The Modular Monolith: Rails Architecture. I find it encouraging that people are talking about this as a more sensible step rather than just jumping on the microservices band-wagon. JM

The Ruby Toolbox - News

It’s good to see new life being breathed into The Ruby Toolbox by Christoph Olszowka’s recent work funded by Ruby Together. Although I find graphs like this one of Mocha downloads slightly terrifying! JM

Why are .coop domains so expensive?

I enjoyed learning a bit of the history of .coop TLDs from some of the CoTech members that were involved at the time. CR

Remixing my Christmas interview on Radio 4

I appreciate the effort that’s gone into transcribing this interview, and into the additional commentary that attempts to give some background behind the answers. CR

Paying tribute to the web with View Source

Additional, Rails 6 just committed to shipping source maps by default in production, also thanks to Webpack. You’ll be able to turn that feature off, but I hope you won’t. The web is a better place when we allow others to learn from our work.

This is great! I’m all for making it as easy as possible for people to see how the things we build work under the hood. CR

If you have any feedback on this article, please get in touch!

Historical comments can be found here.