A few folks suggested I try lazy enumerables to make my extremely chained style practical. I was curious about the actual costs of my style, so it’s time for lies and microbenchmarks! Turns out naively chaining a bunch of maps together isn’t very costly, so go with that to start.
Lazy came in much slower than consolidating the logic in one loop or chaining them without lazy. I thought, I must not have used lazy properly. Turns out, I’m probably showing that laziness isn’t well suited to iterating over collections without an early termination clause (e.g. a take, first, or find) and that for small collections (like an 87-line /etc/passwd), the cost of the lazy plumbing can noticeably outweigh the work done inside the loops. Thanks to Rein Heinrich for talking me to the bottom line!
Programming is easier when you know how to stop solving 100 problems with 1 fancy thing and solve 100 problems with 20 plain things.
I’m always thinking about Greg Borenstein’s words when it comes to technology churn:
The constant churn of web technologies hobbles the creation of timeless learning materials and continuity of knowledge across generations.
We should try harder on this.
Things I’ve noticed San Franciscans deeply despise:
- housing prices
- nearby events that aren’t actually held in San Francisco (e.g. the Super Bowl)
What if large open source projects appointed a community manager to handle things like codes of conduct and social spaces? Anecdotally, those who make large projects are often the worst at actually running a community. Even volunteer projects need management. Flat organizations will always be dominated by ad-hoc in-group politics. The internet we’ve created thus far is allowing terrible people to outpace good people by a long shot.
Things you might hear in commercials/promotions for software and beer:
“The first 96-calorie Pilsner”
“Invented the smooth-pour top”
“Next-generation build system”
“The database that beats the CAP theorem”
American software and beer, much innovation, many hands waving. Solutioneering!
I’m going to Vegas this weekend with my wife on a real vacation where we’re going to do as little as possible. Not run around Disney World all day, not drive up and down the southern California coast. Based on this little bit of research, I can’t wait.
Someone make me a thing that plays horn samples as my test suite runs. Every time a test or assertion finishes, toot the horn sample. A fast suite would sound like Phil Spector’s Wall of Sound (i.e. awesome), a slow one would sound like a grade school marching band (i.e. kill it with fire).
A pet peeve, in writing and thinking: introducing a false antagonist to create tension in a story. This is rampant in tech writing. Apple vs. Google, Ive vs. Forestall, Rails vs. Django, Ember vs. Angular, etc. But there’s no there, there. It’s only filling space.
I would love to have Ernest Hemingway weigh in on introducing a bad guy where one isn’t needed. I suspect there would be a lot of cursing involved.