I was hoping this article would conclude with, “and the C language spec in K&R says THIS which is the correct answer”. Apparently not. So the appendix in K&R is ambiguous? And yet we use ++ so often! I can see people crawling the Linux source tree using LLM-bots looking for bad uses of ++ …
At Redmond, there was also the Patterns & Practices group (P&P) that tried to make sense of the dev products, and built extra libraries “to show customers how to use them”. They followed the bouncing ball of the frameworks releases from the main development teams. It suggests that it wasn’t clear exactly how you’d use the main products: so P&P said, ‘try it like this.’
I also think the article didn’t say much about MS in the web era. The company survived webdev IMO, but it definitely wasn’t the leader
I’d like to know the memory profile of this. The bottleneck is obviously sort which buffers everything in memory. So if we replace this with awk using a hash map to keep count of unique words, then it’s a much smaller data set in memory:
tr -s '[:space:]' '\n' < file.txt | awk '{c[$0]++} END{for(w in c) print c[w], w}' | sort -rn
> I’d like to know the memory profile of this. The bottleneck is obviously sort which buffers everything in memory.
That's not obvious to me. I checked the manuals for sort(1) in GNU and FreeBSD, and neither of them buffer everything in memory by default. Instead they read chunks to an in-memory buffer, sort each chunk, and (if there are multiple chunks) use the filesystem as temporary storage for an external mergesort.
This sorting program was originally developed with memory-starved computers in mind, and the legacy shows.
gnu sort can spill to disk. it has a --buffer-size option if you want to manually control the RAM buffer size, and a --temporary-directory option for instructing it where to spill data to disk during sort if need be.
Isn't using bash effectively saying, I have a bunch of functions already written in say C which I'll use but would not count those towards the lines of code? You could do the same in C and C++ itself too.
In other words, I am not sure if the comparison you are making is a fundamental one.
Does not render correctly on iOS (mobile Safari)? It’s a fixed Desktop view and you can’t pinch to zoom as needed. It takes effort to prevent mobile users like this! Do others get this experience?
Once you were familiar with occam you could see deadlocks in code very quickly. It was a productive way to build scaled concurrent systems. At the time we laughed at the idea of using C for the same task
I spreadsheeted out how many T424 die per Apple M2 (TSMC 3nm process) - that's 400,000 CPUs (about a 600x600 grid) at say 1GIPs each - so 400 PIPS per M2 die size. Thats for 32 bit integer math - Inmos also had a 16 bit datapath, but these days you would probably up the RAM per CPU (8k, 16k?) and stick with 32-bit datapath, but add 8-,16-bit FP support. Happy to help with any VC pitches!
David May and his various PhD students over the years have retried this pitch repeatedly. And Graphcore had a related architecture. Unfortunately, while it’s great in theory, in practice the performance overall is miles off existing systems running existing code. There is no commercially feasible way that we’ve yet found to build a software ecosystem where all-new code has to be written just for this special theoretically-better processor. As a result, the business proposal dies before it even gets off the ground.
(I was one of David’s students; and I’ve founded/run a processor design startup raised £4m in 2023 and went bust last year based on a different idea with a much stronger software story.)
Yes David is the man and afaict has made a decent fist of Xmos (from afar). My current wild-assed hope for this to come to some kind of fruition would be on NVidia realising this opportunity (threat?), making a set of CUDA libraries and the CUDA boys going to town with Occam-like abstractions at the system level and just their regular AI workloads as the application. No doubt he has tried to pitch this to Jensen and Keller.
Very interesting. Reading this made me think of occam on the transputer: concurrent lightweight processes, message passing, dedicated memory! I spent some happy years in that world. Perhaps I should look at BEAM and see what work comes along?
I’m surprised by how may don’t have a dark mode though. I decided to do it for my blog despite not really using it myself, and ended up sticking with it on. Still getting blasted in the face by eggshell white everywhere I click.
Mobile Safari only does this for sites that implement dark themes (and when you have dark mode enabled in iOS). But many sites don’t have these themes. The Noir extension seems to fix the problem for now. There is a reader mode that can go dark but it’s manual, per article
I see. Not a Safari user myself. On Firefox & Chrome Dark Reader can force its own dark theme even if the site doesn't provide one. Like Noir does on mobile Safari.
What I've read about the GDR is that money was rarely the problem. You couldn't spend the money if what you wanted to buy was simply not available (except maybe in "Intershops" where you needed to pay in Western currency, that was in fact very expensive). It really was a different system.
Read a memoir by a KGB agent who arrested a man in Moscow who was passing info to the CIA. Had been doing so for years. The CIA had the typical western attitude towards money so they kept giving him stacks of rubles. Thinking they were being generous. The man (a professor, I think) had nothing to spend it on so he stacked cash up in a closet. Had around 1 million stored when he was caught. He probably would have been better off just burning it as the money was used as evidence in his trial.
Had a chance to ask a Russian / Soviet historian how one could spend a million rubles in the late 70s, early 80s. He just shrugged and laughed about it. Almost no way to spend that much. Nothing cost very much and there wasn't much of it.
Yes the movie Night Crossing also shows very well that there was a lot of suspicion, for example they had to buy the fabric from lots of different places and this a slipup actually caused them to be ratted out (not sure if this particular part of the story happened to these people in real life too but it was really a thing)
Yes, was noticing the same. It was easy for them to sell the car and get a new one, so this meant a lot of connections and underground "jobs" for the extra revenue.
Anyways, fantastic story. First time reading despite living relatively close.