Programming (3 blogmarks)
← BlogmarksRob Pike's 5 Rules of Programming
https://www.cs.unc.edu/~stotts/COMP590-059-f24/robsrules.htmlThe general theme here is "less is more". Don't write anticipatory code for potential bottlenecks, you need to measure and identify them first. Start with simpler algorithms. Start with simpler data structures.
Rule 1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is.
Rule 2. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest.
Rule 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)
Rule 4. Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures.
Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
This last bit of Rule 5 is particularly interesting: "Data structures, not algorithms, are central to programming."
It is so much easier to reason about and build a flow of logic when you've modeled the problem well and gotten the data structure right.
The Best Line Length
https://blog.glyph.im/2025/08/the-best-line-length.htmlEntertaining and informative read on why even today with ultrawide screens it is important and useful to have a line length of something like 88 characters.
There has been a surprising amount of scientific research around this issue, but in brief, there’s a reason here rooted in human physiology: when you read a block of text, you are not consciously moving your eyes from word to word like you’re dragging a mouse cursor, repositioning continuously. Human eyes reading text move in quick bursts of rotation called “saccades”. In order to quickly and accurately move from one line of text to another, the start of the next line needs to be clearly visible in the reader’s peripheral vision in order for them to accurately target it.
Plus I learned about the term “saccade”.
From hours to 360ms: over-engineering a puzzle solution
https://blog.danielh.cc/blog/puzzleI thought this was going to be a sudoku thing at first, but it appears to be a problem with a bigger problem space that you have solve exhaustively because you need to find every solution in order to guarantee that you've found the largest GCD.
The code/solutions presented by the author are in Rust.