The artistic instrument that enables the ultimate art: coding, See also: Section "The art of programming".
Much more useful than instruments used in inferior arts, such as pianos or paintbrushes.
Unlike other humans, computers are mindless slaves that do exactly what they are told to, except for occasional cosmic ray bit flips. Until they take over the world that is.
Video 1. A computer is the equivalent of a bicycle for our minds by Steve Jobs (1980) Source. Likely an excerpt from an interview done for a documentary in 1980. TODO exact source.
Video 2. Steve Jobs talking about the Internet (1995) Source.
The web is incredibly exciting, because it is the fulfillment of a lot of our dreams, that the computer would ultimately primarily not be a device for computation, but [sic] metamorphisize into a device for communication.
Secondly it exciting because Microsoft doesn't own it, and therefore there is a tremendous amount of innovation happening.
then he talks about the impending role for online sales. Amazon incoming.
Computers basically have two applications:
  • computation
  • communication. Notably, computers through the Internet allow for modes of communication where:
    • both people don't have to be on the same phone line at the exact same time, a server can relay your information to other people
    • anyone can broadcast information easily and for almost free, again due to servers being so good at handling that
Generally, the smaller a computer, the more it gets used for communication rather than computing.
The early computers were large and expensive, and basically only used for computing. E.g. ENIAC was used for calculating ballistic tables.
Communication only came later, and it was not obvious to people at first how incredibly important that role would be.
This is also well illustrated in the documentary Glory of the Geeks. Full interview at: It is apparently known as the "Lost Interview" and it was by Cringely himself: for his Triumph of the Nerds documentary.
A computer is a highly layered system, and so you have to decide which layers you are the most interested in studying.
Although the layer are somewhat independent, they also sometimes interact, and when that happens it usually hurts your brain. E.g., if compilers were perfect, no one optimizing software would have to know anything about microarchitecture. But if you want to go hardcore enough, you might have to learn some lower layer.
It must also be said that like in any industry, certain layers are hidden in commercial secrecy mysteries making it harder to actually learn them. In computing, the lower level you go, the more closed source things tend to become.
But as you climb down into the abyss of low level hardcoreness, don't forget that making usefulness is more important than being hardcore: Figure 1. "xkcd 378: Real Programmers".
First, the most important thing you should know about this subject:
Here's a summary from low-level to high-level:
Figure 1. xkcd 378: Real Programmers. Source.
Video 1. How low can you go video by Ciro Santilli (2017) Source. In this infamous video Ciro has summarized the computer hierarchy.
This is a general principle of software/hardware design that Ciro feels holds wide applicability.
The most extreme case of this is of course the integrated circuit itself, in which it is essentially impossible (?) to observe the specific value of some indidual wire at some point.
Somewhat on the other extreme, we have high level programming languages running on top of an operating system: at this point, you can just GDB step debug your program, print the value of any variable/memory location, and fully understand anything that you want. Provided that you manage to easily reach that point of interest.
And for anything in between we have various intermediate levels of complication. The most notable perhaps being developing the operating system itself. At this level, you can't so easily step debug (although techniques do exist). For early boot or bootloaders for example, you might want to use JTAG for example on real hardware.
In parallel to this, there is also another very important pair of closely linked tradeoffs:
  • the lower level at which something is implemented, the faster it runs
  • emulation gives you observability back, at the cost of slower runtime
Emulation also has another potential downside: unless you are very careful at implementing things correctly, your model might not be representative of the real thing. Also, there may be important tradeoffs between how much the model looks like the real thing, and how fast it runs. For example, QEMU's use of binary translation allows it to run orders of magnitude faster than gem5. However, you are unable to make any predictions about system performance with QEMU, since you are not modelling key elements like the cache or CPU pipeline.
Instrumentation is another technique that has can be considered to achieve greater observability.
Instrumentation basically means adding loggers/print statements to certain points of interest of your hardware/software.
Instrumentation tends to slow execution down a bit, but way less than emulation.
The downside is that if the instrumentation does not provide you the data you need to debug, there's not much you can do, you will need to modify it, i.e. you don't get full visibility from instrumention.
This is unlike emulation that provides full observability.
The term loosely refers to certain layers of the computer abstraction layers hierarchy, usually high level hardware internals like CPU pipeline, caching and the memory system. Basically exactly what gem5 models.
Some of the earlier computers of the 20th centure were analog computers, not digital.
At some point analog died however, and "computer" basically by default started meaning just "digital computer".
As of the 2010's and forward, with the limit of Moore's law and the rise of machine learning, people have started looking again into analog computing as a possile way forward. A key insight is that huge floating point precision is not that crucial in many deep learning applications, e.g. many new digital designs have tried 16-bit floating point as opposed to the more traditional 32-bit minium. Some papers are even looking into 8-bit:
As an example, the Lightmatter company was trying to implement silicon photonics-based matrix multiplication.
A general intuition behind this type of development is that the human brain, the holy grail of machine learning, is itself an analog computer.
Unsurprisingly the term "computer" became a synonym for this from the 1960s onwards!
The interface is a bit annoying, but the tool is really cool.
100 cycles of matrixprod:
stress-ng -c1 --cpu-ops 100 --cpu-method matrixprod
man stress-ng gives the list of possible --cpu-method. It documents matrixprod as:
matrix product of two 128 × 128 matrices of double floats. Testing on 64 bit x86 hardware shows that this is provides a good mix of memory, cache and floating point operations and is probably the best CPU method to use to make a CPU run hot.
If you don't specify the --cpu-method it apparently loops through every method one by one.
Limit time to 1s instead of limiting cycles:
stress-ng -c1 -t1 --cpu-method matrixprod
This section is about companies that were primarily started as computer makers.
For companies that make integrated circuits, see also: Section "Semiconductor company".
Video 1. The Mapple Store and Steve Mobs from The Simpsons. Source.
Of course, this only made sense when Apple was more of an underdog to IBM, and Ciro Santilli greatly admires their defiance of the norm.
As of 2020 however, Apple is kind of on the top of the mobile world, and Think different simply makes no sense anymore, notably because it relies on closed source offline software used by millions.
This is a trap every company that prides itself on it's "alternative culture" sets for itself. If they succeed, they could become the norm.
Figure 2. 1976 Think different. 2011 Think mainstream. Cropped from
Video 1. 1984 Macintosh advertisement by Apple (1984) Source. This ad suggests that Apple was the new thinker that would destroy IBM, as Steve Jobs said it himself when introducing the ad: And then Apple became IBM in the 2000's starting with the launch of the iPod and then leading up to the iPhone.
Because the people who are crazy enough to think they can change the world are the ones who do.
Was a direct tech predecessor to the iPhone.
Nice looking and expensive operating system by Apple. Ciro Santilli believes that:
  • if you want to be ripped off, just use Microsoft Windows which has more software available
  • or if you want to attain Enlightenment, just use Linux, which is free and open source
The story of how OS X was ported to x86 from PowerPC with large initial work up to boot by a single man in the year 2000, John Kullmann, is really worth reading: on Quora, see also:
Video 1. The Sad Story of Apple's Third Co-Founder by ColdFusion (2022) Source.
Co-founder of Apple.
Is Jobs evil? Is he interesting? Undoubtedly.
Good quotes:
Evil deeds:
This idea also comes up in other sources of course.
TODO clear attribution source:
Some people say, "Give the customers what they want." But that's not my approach. Our job is to figure out what they're going to want before they do. I think Henry Ford once said, "If I'd asked customers what they wanted, they would have told me, 'A faster horse!'" People don't know what they want until you show it to them. That's why I never rely on market research. Our task is to read things that are not yet on the page.
Ciro Santilli likes Magic: The Gathering and he was pleased when he learned that Steve Wozniak does too, and has an expensive collection:
Some have actually been preserved:
The japanese name literally means:
  • 富士 fushi, from Mount Fuji, which itself has unknown origin
  • 通 tong: telecommunications
They died so completely, Googling "ICL" now has higher hits such as Imperial College London.
Video 1. Why the UK's IBM Failed by Asianometry (2022) Source. Main lesson perhaps: don't put national money to fight already established markets. You have to fight for what is coming up next. E.g. that is part of the reason for TSMC's success.
As of the 2020's, a slumbering giant.
But the pre-Internet impact of IBM was insane! Including notably:
This is a family of computers. It was a big success. It appears that this was a big unification project of previous architectures. And it also gave software portability guarantees with future systems, since writing software was starting to become as expensive as the hardware itself.
This was the first major commercial computer hit. Stlil vacuum tube-based.
Video 1. Learning how to program on the IBM 650 Donald Knuth interview by Web of Stories (2006) Source. It was decimal!
Video 1. The IBM 1401 compiles and runs Fortran II by CuriousMarc (2018) Source.
Initial chapters put good clarity on the formation of the military-industrial complex. Being backed by the military, especially just after World War II, was in itself enough credibility to start and foster a company.
It is funny to see how the first computers were very artisanal, made on a one-off basis.
Amazing how Control Data Corporation raised capital IPO style as a startup without a product. The dude was selling shares at dinner parties in his home.
Very interesting mention on page 70 of how Israel bought CDC's UNIVAC 1103 which Cray contributed greatly to design, and everyone knew that it was to make thermonuclear weapons, since that was what the big American labs like this mention should be added to: but that's Extended Protected... the horrors of Wikipedia.
Another interesting insight is how "unintegrated" computers were back then. They were literally building computers out of individual vacuum tubes, then individual semiconducting transistors, a gate at a time. Then things got more and more integrated as time went. That is why the now outdated word "microprocessor" existed. When processors start to fit into a single integrated circuit, they were truly micro compared to the monstrosities that existed previously.
Also, because integration was so weak initially, it was important to more manually consider the length of wire signals had to travel, and try to put components closer together to reduce the critical path to be able to increase clock speeds. These constraints are also of course present in modern computer design, but they were just so much more visible in those days.
The book does unfortunately not give much detail in Crays personal life as mentioned on this book review: His childhood section is brief, and his wedding is described in one paragraph, and divorce in one sentence. Part of this is because he was very private about his family most likely note how Wikipedia had missed his first wedding, and likely misattribute children to the second wedding; section "Weddings and Children".
Crays work philosophy is is highlighted many times in the book, and it is something worthy to have in mind:
  • if a design is not working, start from scratch
  • don't be the very first pioneer of a technology, let others work out the problems for you first, and then come second and win
Cray's final downfall was when he opted to try to use a promising but hard to work with material gallium arsenide instead of silicon as his way to try and speed up computers, see also: gallium arsenide vs silicon. Also, he went against the extremely current of the late 80's early 90's pointing rather towards using massively parallel systems based on silicon off-the-shelf Intel processors, a current that had DARPA support, and which by far the path that won very dramatically as of 2020, see: Intel supercomputer market share.
A good project to see UARTs at work in all their beauty is to connect two Raspberry Pis via UART, and then:
Part of the beauty of this is that you can just connect both boards directly manually with a few wire-to-wire connections with simple jump wire. Its simplicity is just quite refreshing. Sure, you could do something like that for any physical layer link presumably...
Remember that you can only have one GNU screen connected at a time or else they will mess each other up:
On Ubuntu 22.04 you can screen without sudo by adding yourself to the dialout group with:
sudo usermod -a -G dialout $USER
The frequency range of Wi-Fi, which falls in the microwave range, is likely chosen to allow faster data transfer than say, FM broadcasting, while still being relatively transparent to walls (though not as much).
Video 1. Are YOU Ready for the INTERNET? by BBC (1994) Source.
Hardcoded and unique network addresses for every single device on Earth.
Started with 48 bits (6 bytes), usually given as 01:23:45:67:89:AB but people now encouraged to use 64-bit ones.
How they are assigned: Basically IEEE gives out the 3 first bytes to device manufacturers that register, this is called the organizationally unique identifier, and then each manufacturer keeps their own devices unique.
Video 1. The Internet Protocol by Ben Eater (2014) Source.
As of 2023, working with DNS data is just going through a mish-mash of closed datasets/expensive APIs.
We really need some open data in that area.
Some cool ones:
As of 2021, Ciro Santilli feels strongly that Amazon originals are so much sillier compared to Netflix ones in average.
Of course, everything pales in comparison to The Criterion Collection.
Jeff has spoken a lot in public about Amazon, perhaps even more than other comparable founder, see e.g. history of Amazon. Kudos for that.
Video 1. Has the laugh of Jeff Bezos changed as he got rich? by Barış Aktaş (2020) Source.
Her neck is huge! She also redid her teeth at some point apparently. Some good photos at:
MacKenzie Bezos' new husband after she divorced Bezos.
Science teacher at the Lakeside School in Seattle.
MacKenzie Bezos went on to marry a science teacher who taught their children.
The contrast with Bezos's girlfriend is simply comical. MacKenzie married the idealistic morally upright science teacher, while Bezos went for a silly sex bomb. Ah, bruta flor, do querer!
MacKenzie Bezos's charity instrument. MacKenzie Scott: How the former Mrs Bezos became a philanthropist like no other (2020) has some good mentions:
But as Scott's fame for giving away money has grown, so too has the deluge of appeals for gifts from strangers and old friends alike. That clamour may have driven Scott's already discreet operation further underground, with recent philanthropic announcements akin to sudden lightning bolts for unsuspecting recipients.
The name of the organization is a reference to the old man lost his horse.
I wonder where the spray painted sign went: As mentioned at and elsewhere, Jeff did all he could to save money, e.g. he made the desks himself from pieces of wood. Mentioned e.g. at from Video 4. "Jeff Bezos presentation at MIT (2002)".
Video 1. report by Computer Chronicles (1996) Source. Contains some good footage of their early storehouse.
Video 2. Jeff Bezos interview by Chuck Films (1997) Source. On the street, with a lot of car noise. CC BY-SA, nice.
Video 4. Jeff Bezos presentation at MIT (2002) Source. Good talk:
Video 5. Jeff Bezos Revealed by Bloomberg (2015) Source.
Video 6. cosine by Jeff Bezos (2018) Source.
PDE mention in another video from 2009:
Full original video from The Economic Club of Washington, D.C. (2018):
Bezos also told PDE stuff in interviews as early as 1999:
  • This is what it was like to work at Amazon 20 years ago (2015). Good annecdotes from the first offices.

Discussion (0)

Sign up or sign in create discussions.

There are no discussions about this article yet.