In Defense of Not-Invented-Here Syndrome (2001)
Time for a pop quiz. 1. Code Reuse is: a) Goodb) Bad 2. Reinventing the Wheel is: a) Goodb) Bad 3. The Not-Invented-Here Syndrome is: a) Goodb) Bad Of course, everybody knows that you should always…
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,544 posts.
Time for a pop quiz. 1. Code Reuse is: a) Goodb) Bad 2. Reinventing the Wheel is: a) Goodb) Bad 3. The Not-Invented-Here Syndrome is: a) Goodb) Bad Of course, everybody knows that you should always…
Wasm GC is a wonderful thing that is now available in all major web browsers since slowpoke Safari/WebKit finally shipped it in December. It provides a hierarchy of heap allocated reference types and a set of instructions to operate on them. Wasm GC enables managed memory languages to take advantage of the advanced…
Ah, C. The best lingua franca we have… because we have no other lingua francas. Linguae franca. Surgeons general? C is fairly old — 44 years, now! — and comes from a time when there were possibly more architectures than programming languages. It works well for what it is, and what it is is a relatively simple layer of…
For some reason many people discuss the problem of estimating software development timeframes without properly understanding the issue. There is a famous answer on Quora that exemplifies this. Lots of people like that story, even though it’s inaccurate and misguided. “Software development” is such a huge endeavor that…
The jury got a taste of code review as they examined a falsified "insurance fund" and the infamous FTX → Alameda Research "backdoor".
Never heard of Unicode normalization? You’re not alone. But it will save you a lot of trouble.
https://www.youtube.com/watch?v=kCJmAyUr1j4 This is the video recording of my talk with this title, done at February 4, 2024 10:00 in the K1.105 room at FOSDEM 2024. The room can hold some 800 people but there were a few hundred seats still unoccupied. Several people I met up with later have insisted that 10 am on a ……
The other day, someone asked about the status of the GWT Mavenization, saying he loves Maven and would like to help. I replied that “I used to really like it” but wasn't “so sure nowadays.” It obviously was followed by “I know it could cause issues if not used in the proper way […] Do you mind telling me why you don't…
The goal of Project Valhalla is to bring more flexible flattened data types to JVM-based languages, to bring the programming model back in line with the performance characteristics of modern hardware. The core feature is inline classes (known previously as value types ), but such a fundamental perturbation of the JVM…
Cramming may get a candidate a job. But they won’t succeed at the job if they don’t have the skills and experience needed.
Designing APIs is hard. Designing good APIs that future people will not instantly classify as "total crap" is even harder. There are typical...
I touched "every" OS so you don't have to
From the highly eclectic blog of Mark Dominus
Bridge the gap between structured logging and errors in Go
(Image of "Four-Armed Chuck" programming a PDP-11 is from my giant write-up of Forth .)
As an exercise, I translated Peter Norvig’s Sudoku solver from Python to Clojure. There have been a couple other attempts before, but they both leaned on Clojure’s reference types as a …
Lessons learned about moving fast and shipping products
We all know the XOR operation. It’s the cousin of NOT, AND and OR. Like AND and OR, it is a binary boolean function. Unlike them, most programming languages ...
So what is ASP.NET vNext ? Microsoft have recently released a preview of the next iteration of their ASP.NET platform. I’m not going to go into …
A year or two ago, I wrote a parser for an undocumented file format as part of a larger project. This was somewhat challenging and I wanted to share my approach because I thought it was a neat idea that worked well.
We investigate how the data cache influences the performance of your program, talk about ways for you to write faster programs by better leveraging the data cache.
I explain how SeaHash works.