What's new in CPUs since the 80s?
https://danluu.com/new-cpu-features/ [danluu.com]
2022-04-19 17:10
tags:
article
concurrency
cpu
perf
programming
systems
Everything below refers to x86 and linux, unless otherwise indicated. History has a tendency to repeat itself, and a lot of things that were new to x86 were old hat to supercomputing, mainframe, and workstation folks.
x86 chips have picked up a lot of new features and whiz-bang gadgets.
Overall, a pretty good introduction to modern CPUs, performance, and concurrency.
Against essential and accidental complexity
https://danluu.com/essential-complexity/ [danluu.com]
2020-12-30 02:13
tags:
development
perf
programming
In the classic 1986 essay, No Silver Bullet, Fred Brooks argued that there is, in some sense, not that much that can be done to improve programmer productivity. His line of reasoning is that programming tasks contain a core of essential/conceptual1 complexity that’s fundamentally not amenable to attack by any potential advances in technology (such as languages or tooling). He then uses an Ahmdahl’s law argument, saying that because 1/X of complexity is essential, it’s impossible to ever get more than a factor of X improvement via technological improvements.
To summarize, Brooks states a bound on how much programmer productivity can improve. But, in practice, to state this bound correctly, one would have to be able to conceive of problems that no one would reasonably attempt to solve due to the amount of friction involved in solving the problem with current technologies.
source: L
Finding the Story
https://danluu.com/voyager-story/ [danluu.com]
2020-06-22 21:03
tags:
fiction
tv
I see that Star Trek: Voyager has added a new character, a Borg. (From the photos, I also see that they’re still breeding women for breast size in the 24th century.) What ticked me off was the producer’s comment (I’m paraphrasing), “The addition of Seven of Nine will give us limitless story possibilities.”
I would watch dan luu trek.
95%-ile isn't that good
https://danluu.com/p95-skill/ [danluu.com]
2020-02-12 00:12
tags:
development
essay
life
Reaching 95%-ile isn’t very impressive because it’s not that hard to do. I think this is one of my most ridiculable ideas. It doesn’t help that, when stated nakedly, that sounds elitist. But I think it’s just the opposite: most people can become (relatively) good at most things.
There are several sections here. Every time I thought I was nearing the end, more content showed up.
source: danluu
Deconstruct files
https://danluu.com/deconstruct-files/ [danluu.com]
2019-07-13 16:55
tags:
best
factcheck
fs
hardware
linux
programming
storage
systems
turtles
unix
Let’s talk about files! Most developers seem to think that files are easy.
In this talk, we’re going to look at how file systems differ from each other and other issues we might encounter when writing to files. We’re going to look at the file “stack”, starting at the top with the file API, moving down to the filesystem, and then moving down to disk.
source: danluu
How I learned to program
https://danluu.com/learning-to-program/ [danluu.com]
2017-12-30 18:48
tags:
development
life
Programming was unnatural for me, and didn’t make any sense at all for years. If you believe in the common “you either have it or you don’t” narrative about programmers, I definitely don’t have it. And yet, I now make a living programming, and people seem to be pretty happy with the work I do.
source: L
Normalization of deviance in software: how broken practices become standard
https://danluu.com/wat/ [danluu.com]
2017-12-03 17:23
tags:
development
Is there data on the quality of management decisions?
https://danluu.com/bad-decisions/ [danluu.com]
2017-11-22 19:06
tags:
ideas
math
sports
valley
Unfortunately, arguments like this are difficult to settle because, even in retrospect, it’s usually not possible to get enough information to determine the precise “value” of a decision. Even in cases where the decision led to an unambiguous success or failure, there are so many factors that led to the result that it’s difficult to figure out precisely why something happened.
Are we right or wrong? Tune in next decade to see what’s changed.
source: danluu
UI backwards compatibility
http://danluu.com/ui-compatibility/ [danluu.com]
2017-11-09 21:57
tags:
development
ux
About once a month, an app that I regularly use will change its UI in a way that breaks muscle memory, basically tricking the user into doing things they don’t want.
source: L
Filesystem error handling
https://danluu.com/filesystem-errors/ [danluu.com]
2017-10-23 19:59
tags:
fs
linux
paper
storage
systems
Prabhakaran et al. injected errors at the block device level (just underneath the filesystem) and found that ext3, resierfs, ntfs, and jfs mostly handled read errors reasonbly but ext3, ntfs, and jfs mostly ignored write errors. While the paper is interesting, someone installing Linux on a system today is much more likely to use ext4 than any of the now-dated filesystems tested by Prahbhakaran et al. We’ll try to reproduce some of the basic results from the paper on more modern filesystems like ext4 and btrfs, some legacy filesystems like exfat, ext3, and jfs, as well as on overlayfs.
source: danluu
A history of branch prediction from 1500000 BC to 1995
https://danluu.com/branch-prediction/ [danluu.com]
2017-08-23 18:29
tags:
cpu
hardware
perf
programming
retro
We’ll start with the most naive things someone might do and work our way up to something better.
source: danluu
Why does Sattolo's algorithm produce a permutation with exactly one cycle?
https://danluu.com/sattolo/ [danluu.com]
2017-08-12 04:13
tags:
compsci
math
I recently had a problem where part of the solution was to do a series of pointer accesses that would walk around a chunk of memory in pseudo-random order. Sattolo’s algorithm provides a solution to this because it produces a permutation of a list with exactly one cycle, which guarantees that we will reach every element of the list even though we’re traversing it in random order
source: danluu
Terminal and shell performance
https://danluu.com/term-latency/ [danluu.com]
2017-07-18 19:50
tags:
benchmark
development
perf
swtools
tty
ux
Most terminals have enough latency that the user experience could be improved if the terminals concentrated more on latency and less on other features or other aspects of performance. However, when I search for terminal benchmarks, I find that terminal authors, if they benchmark anything, benchmark the speed of sinking stdout or memory usage at startup. This is unfortunate because most “low performance” terminals can already sink stdout many orders of magnitude faster than humans can keep up with, so further optimizing stdout sink speed has a relatively small impact on actual user experience for most users.
source: danluu
Options vs. cash
https://danluu.com/startup-options/ [danluu.com]
2017-06-07 18:42
tags:
business
finance
life
valley
If these startups are making a true claim about the value of their options, there should be a trade here that makes all parties better off.
source: danluu
A large fraction of the web is unusable for people on slow connections
https://danluu.com/web-bloat/ [danluu.com]
2017-02-09 12:59
tags:
article
development
html
networking
perf
web
Complaining that people don’t care about performance like they used to and that we’re letting bloat slow things down for no good reason is “old man yells at cloud” territory
Unfortunately, I think despite making many great points, this article does fall into that category. Yes, yes, all those other sites should trim the bloat, but *my* site has critical business functions that require megabytes of javascript.
File crash consistency and filesystems are hard
https://danluu.com/file-consistency/ [danluu.com]
2016-12-29 04:45
tags:
concurrency
paper
programming
storage
systems
unix
Files are hard. Butler Lampson has remarked that when they came up with threads, locks, and condition variables at PARC, they thought that they were creating a programming model that anyone could use, but that there’s now decades of evidence that they were wrong. We’ve accumulated a lot of evidence that humans are very bad at reasoning about these kinds of problems, which are very similar to the problems you have when writing correct code to interact with current filesystems.
Notes on concurrency bugs
https://danluu.com/concurrency-bugs/ [danluu.com]
2016-11-03 17:40
tags:
compsci
concurrency
programming
swtools
Lots of links here to some good observations.