Rails was unfairly called out this week, and DHH responded. This goes well with an article from last week by Tomas Valent on Is Rails Still Relevant in 2018? The orange site had a great discussion on the subject as well. tl;dr -- Rails is relevant, it pays well, and you should pick the right tool for the project.
The article "Elm 0.19 Broke Us" has been making the rounds (orange site). It’s a story of how a company repeatedly used a private API that Elm warned them not to use and then complained when it was removed. To top it off, the removal of Native code in Elm is crucial to the bundle size improvements provided by 0.19 as far as I can tell -- which was the biggest feature that the community wanted. Combine that with people claiming that breaking changes between 0.18 and 0.19 isn’t valid semver (it explicitly is) and it’s a recipe for me wasting too much time on the internet arguing this week.
Matt Klein argues that OSS foundations should step up and start funding maintainers of important projects in The (broken) economics of OSS. It’s a lengthy piece, summarizing a variety of interesting points. Why is OSS made and who pays for it? Hobbyists, Internet mega-corps as a byproduct, and infrastructure startups looking for mind-share. How do OSS projects make money? Open Core, SaaS, Consulting/Support. Read on for an analysis of the problems with open core and potential workable business models.
Future proofing your software can break you. George suggests you should stop doing that. The primary point is that life is hard enough just building the stuff that you need today, and adding complexity for what might happen in the future will hamstring you. Additionally, he argues that we should spend our time designing for flexibility and embracing the imperfect. It’s a good reminder, as it’s all too easy to get into the weeds to play with the new hotness and not focus on delivering business value quickly. Don’t fix imaginary problems while the real problems are still floating around.
W**ebsites are too big**, and full of crap. See the reasoning in The Bullshit Web and in the Reddit discussion. Nick Heer talks through how the space is being used, and what is done with the code being pushed to browsers. Nick shows that most code is tracking data, bad interactions, and generally things people don’t want.
Chrome DevTools now allows you to pin live expressions
Daniel Prilik dives into how he built WideNES: "a novel technique to automatically and interactively map-out NES games, in real time." It’s an algorithm for extracting level graphics from running NES games, in order to build a persistent map. Read the whole thing to learn how he used perceptual hashes, heuristics, and detailed knowledge of the machine to pull it off. If you have a fondness for emulators or are interested in the work that goes into them, you’ll enjoy it.
Ex-Google Tech Lead Patric Shyu talks through the top algorithms in coding interviews. He discusses not just the algorithms themselves, but what interviewers are looking for in their discussions of them.