Category: Technology
-
Offloading fast operations in Ruby by data structure
Noteflakes: A Compositional Approach to Optimizing the Performance of Ruby Apps — the idea is to offload “inner-loop”-type operations from Ruby to C-extensions. The clever twist is this happens via data-structure-as-language. Ruby being Ruby, you can wrap a DSL around the data structure generation to reduce the context switch from Ruby to offloaded operations. There’s […]
-
Code minutiae, October 23, 2017
For some reason, identifier schemes that are global unique, coordination-free, somewhat humanely-representable, and efficiently indexed by databases are a thing I really like. Universally Unique Lexicographically Sortable Identifier (ulid, for humans) is one of those things. Implementations available for dozens of languages! They look like this: 01ARZ3NDEKTSV4RRFFQ69G5FAV. Paul Ford’s website is twenty years old. For […]
-
You must be this tall to ride the services
If I were trying to convince myself to extract a (micro)service, today, I’d do it like this. First I’d have a conversation with myself: you are making tactical changes slightly easier at the expense of making strategic changes quite hard; is that really the trade-off you’re after? you must have the operational acumen to provision […]
-
How methodical and quality might keep up with fast and loose
I’ve previously thought that a developer moving fast and coding loose will always outpace a developer moving methodically and intentionally. Cynically stated, someone making a mess will always make more mess than someone else can clean up or produce offsetting code of The Quality. I’ve recently had luck changing my mindset to “make The Quality […]
-
One step closer to a good pipeline operator for Ruby
I’ve previously yearned for something like Elm and Elixir’s |> operator in Ruby. Turns out, this clever bit of concision is in Ruby 2.5: object.yield_self {|x| block } → an_object # Yields self to the block and returns the result of the block. class Object def yield_self yield(self) end end I would prefer then or […]
-
Strange Loop 2017
I was lucky enough to attend Strange Loop this year. I described the conference to friends as a gathering of minds interested in programming esoterica. The talks I attended were appropriately varied: from very academic slides to illustrated hero’s journeys, from using decomposed mushrooms to create materials to programming GPUs, from JavaScript to Ruby. Gotcha, […]
-
exa in 30 seconds
What is it? exa is ls reimagined for modern times, in Rust. And more colorfully. It is nifty, but not life-changing. I mostly still use ls, because muscle memory is strong and its basically the only mildly friendly thing about Unix. How do I do boring old ls things? Spoiler alert: basically the same. ls […]
-
Generalization and specialization: more of column A, a little less of column B
Now, I attempt to write in the style of a tweetstorm. But about code. For my website. Not for tweets. For a long time, we have been embracing specialization. It’s taken for granted even more than capitalism. But maybe not as much as the sun rising in the morning From specialization comes modularization, inheritance, microservices, […]
-
The loungification of luxury cars
High-end luxury cars are starting to resemble first-class airport lounges and it’s bothering me. The Porsche Panamera has a dang tray table. Just about every German luxury car has the option to put an LCD screen on the back of the front seats, for entertainment. Who puts $100k+ down on a car so that someone […]
-
Categorizing and understanding magical code
Sometimes, programmers like to disparage “magical code”. They say magical code is causing their bugs, magical code is offensive to use, magical code is harder to understand, we should try to write “less magical” code. “Wait, what’s magic?”, I hear you say. That’s what I’m here to talk about! (Warning: this post contains an above-average […]