> On that last point, this technology is horrific for attention. It's a thermonuclear ADHD amplifier and I have seen the same effect in every single one of my adult friends. Folk running 3 screens simultaneously working on totally unrelated "projects" they have little hope of maintaining, and such little commitment to the outcome that the time is obviously wasted.
This part reminded me of a recent article and it’s interesting that he brings up ADHD because that’s probably the bigger issue then. Because what I got from the article and the related conversation, specifically the top comment:
> > Sometimes, tools don’t move the needle because there’s no needle to move.
> It reminds me of something my old CS mentor, now elderly, had said about LLMs a few months ago: "it's a force multiplier, but there has to be some force to multiply."
The fact that it turned out that “Human Bottlenecks” post was written by the same person who wrote “Notes on Managing ADHD” which I had printed and studied for tips not that long ago made sense.
So, to connect the dots, the fact he made all of those things without them being part of a bigger plan is, I think, the problem. In the framework of the above quote, there’s no needle there, nothing to multiply.
I’ve been trying to think more about whether what I’m doing is going somewhere, or if I can skip it and simplify things.
It doesn’t. I posted a reply to the same comment before I saw your question. Even the books I mentioned didn’t really get into it. I tried a search for some that did and ran across Constructing a Microprogrammed Computer by O.J. Mengali which looks interesting. It says it has you implement the microcode for 4 different architectures. I’m going to check it out.
Ah that's a shame. I had a computer systems course at uni where we were playing around with the microcode from the MIC-1 created by Tanenbaum. I sort of figured that Nand2Tetris just had that in it.
I did nand2tetris a couple times, but it emphasizes simplicity in every level of abstraction. That in itself is an amazing lesson and has been an inspiration, but that also means it skips things like microcode. In college (in the 1990s) I took a EE class as part of my CS degree that went through how an 8086-like[0] CPU is made, a lot like nand2tetris but without necessarily making each part an assignment. It did cover how microcode worked where there was an internal program counter that stepped through a table of control words whose bits directly orchestrated each controllable piece of the CPU. We each got an instruction to implement on a simulator that the teacher had made previously. (I got DEC, decrement.)
In a way I guess the instructions in nand2tetris are the microcode. The bits of the instructions directly control the hardware with the first bit choosing 2 instruction types, so there’s only 1 step of code per instruction, unlike with microcode where an instruction can have any number of microcode steps.
In Ben Eater’s series of videos building an 8-bit CPU on breadboards he has ROMs that are indexed by the opcode (4 bits of the instruction) + a step counter to determine the control word. The ROM stands in for what could be done with sufficiently complicated logic gates. I like it as a next step on the hardware side as you get hands on experience with electronics and having to troubleshoot it.
It’s disappointing how it only has 16 bytes of RAM so you can’t really build higher levels of abstraction like you can with nand2tetris. But at that point you could (I should) either redo it with a better design (and put it on PCBs) or move on to the 6502 project, and then since that puts together a timer, CPU, ROM, RAM, I/O, UART, etc. mentally group those together and move on to microcontrollers that already have them together.
Anyone interested in reading about how a CPU could be made out of logic gates could also read Code by Charles Petzold (moves slower, recently updated) and/or Pattern on the Stone by Danny Hillis (moves faster).
Edit: I just checked Code (2nd edition) and that uses a 4 bit cycle counter and hard logic gates to determine what to do each cycle. But then it uses an array of diodes for part of the logic. Would that be considered microcode?
[0] there were classes that covered more advanced (pipelined) CPUs in another CS class but not at quite a low level where you felt like you could make one yourself
I might upload Tristam Island (Z-Machine v3 game, like Zork and infocom games they already have the interpreter) among the feelies in ASCII format. Yes, dfrotz runs snappier than the vi clone they have. And more stable than their ed implementation.
Microcode in modern CPUs isn't anything like classic microcode - except for certain instructions like CPUID and WRMSR, where the CPU really does interpret a microcode subroutine.
It's become a generic term for patching parts of a CPU at startup time instead. Most of microcode is things like code for the Management Engine, chicken bits to disable features, routines for CPUID/etc, and yes, a small number of patch registers that can intercept execution of ordinary instructions and run microcode instead, but not enough to override all instructions accessing ah-dh.
But evolution doesn't make those developments improbable or coincidental. I recently read a book called Time's Second Arrow about how selection, when present in systems that can create many combinations, naturally evolve more functional information, which is the number of bits it takes to identify specific combinations that are (in a certain contexts) more functional. (log base 2 of the number of possible combinations divided by the number of combinations that "work" for a given function). They argue that the number of functional bits has been increasing since the big bang and is basically a law of nature in itself.
Hopefully I stated that correctly. You sound like you'd be interesting in this type of book too, but here's a shorter article about it I randomly searched for and read to make sure it was a good representation of the book (ignore the clickbait title of the article): https://nextbigideaclub.com/magazine/new-theory-upends-150-y... But I think the book itself is even better, even just the first chapter that has a quick history and summary about the discovery of the known laws of nature we have so far.
Very interesting book/idea! Adding it to my "to read" list. The more I think about it, there is kind of a two-step process here; entropy creates chaos/disorder, but chaos/disorder creates an environment ripe for kinds of natural selection/complexity build-up. It's almost like an echo or interference pattern or eddy of entropy.
And I think with regards to my initial principle, I think the value is that it came to exist to this extent in one system. That given countless currents/eddies of entropy, a "sand spiral" built up to be miles upon miles tall, where most spirals only made it to a few centimetres before an entropy wave brought them crashing down. Because the "functional bits" in the universe increasing doesn't mean a single sand spiral will get that tall necessarily (unless we assume infinite time?). And if we assume finite time, then that makes this occurrence even more valuable and important to defend, since it's unclear if left to the randomness of entropy/time's arrows if such a buildup of complexity/"functional bits" would occur again before time ends.
Not too sure, those are my initial thoughts, but need to sit with it longer. Thank you for sharing!
"But evolution doesn't make those developments improbable or coincidental." (not sure what you are on about with respect "Time's Second Arrow")
So, why are you not enslaved by your lizard overlords? 8) Homo is a bit of a johnny come lately and yet has managed to travel to the moon and back.
We only have a single extant example of hom sap to work with. We can work backwards, within reason, and still not manage to come up with a completely satisfying origin story. There is no way you can "derive" hom sap from first principles.
We(mammals) kind of were enslaved by those lizard overlords. Mammals evolved around 225 million years ago and by the time dinosaurs went extinct (through no fault of their own!) 160 million years later, mammals were, at best, small nocturnal mouse-sized creatures. Anything bigger was stomped out by the dinosaurs before it could leave a trace.
Some terminal software would use a function key that would be labelled "Execute". You'd usually have a template to put over the function keys to tell you what does what.
I remember the book saying something like "a person's name is the most beautiful sound in the world to them." The book may say to say their name back to them (I don't remember right now), but that's not what I took away from it. It reminded me of when people would make fun of my name (first and/or last) or bring up someone famous who has the same first ("Donald Duck") or last name ("are you related Joan Rivers?"), or someone famous who sounds like my first and last name put together (Doc Rivers), and I never thought it was funny. When I see people make fun of other people's names, the recipient never seemed to enjoy it either.
You’re for sure right about the name thing. It’s so hard to resist commenting on names for a lot of people, I think, due to the extreme asymmetry of novelty. When you meet someone named Michael Jackson, that’s such novel information to you: “there’s a guy right here in front of me who is named the same thing as a famous musician!” Meanwhile, from Michael’s perspective, they’ve been named Michael Jackson and getting comments and jokes about it near-daily for 35 years - and it’s really a boring non-story - they’re named after their grandfather, their parents didn’t care about the other Michael Jackson one way or the other, and they themselves also neither like or hate MJ.
This is like when you're working retail and the scanner glitches or the barcode isn't registered and the customer says "I guess that one's free then!" and you have to say "ha ha, very droll sir" as if you didn't hear that same joke yesterday.
I had a friend named Michael Jackson who went by a different first name. I didn't even know until several years later when he showed a group of us his drivers license and accidentally outed himself.
My full first name is Joshua, but when I was a kid everyone would just call me Josh. That was until 5th grade, when another Josh joined my class, and whose last name just happened to come right before mine in the roll call. I loathed that he "stole" my name and (in my head) made me sound like the repeat, so from that point on I decided that I would be Joshua because it sounded "fancier" to me. Years later, my choir teacher would sing that old "Joshua fought the battle of Jericho" song whenever he passed me in the hallways, which always made me laugh.
I've got a life long friend who's full first name is Josh, derived from the Japanese name Yosh. People often try to call him Joshua and it annoys the hell out of him.
> "I remember the book saying something like "a person's name is the most beautiful sound in the world to them.""
Nobody made fun of my name particularly, it's not like anyone famous, I just don't like it very much. I don't call myself by my name in my head, or on the internet. For most of my life my friends and coworkers had nicknames for me and I prefered that. I associate my name with official paperwork, formal situations, negative situations, aquaintances, and salespeople.
Perhaps because of this I have a bit of fixation on names (people, places, and products) and judging them to sound good or bad. Some names sound great or fine and it's no surprise to me if 'Robert' likes his name and likes hearing it. But I struggle to imagine that people called 'Helpless' or 'Abuse-not'[1] thinking those are the most beautiful sound in the world.
Yeah, you also have to remember that someone has heard every possible joke about their name and their appearance a million times.
I do think Dale Carnegie overemphasizes the importance of saying people's names, and in fact saying people's names in conversation often sounds forced and manipulative, but maybe that's just a cultural shift over the past century.
I've got the same last name as a sitcom character from the 1980s. I used to get so tired of people pointing that out. Luckily nobody really remembers the show anymore, let alone the character.
But, yeah, it usually sets off my spidey sense when somebody keeps using my first name in conversation. It's just seems weirdly unnecessary, so it makes me wonder why they're doing it.
I don’t have any problem with my name, and it feels manipulative and overfamiliar and I assume someone’s trying to Carnegie me into something if they use it.
> one by one I put each book back 20 minutes before it closed
If your library is like mine, it makes more sense to put it on a "to be shelved" cart, because they often track circulation even by the ones that didn't get checked out.
I've been going the library most weekends, and one thing I love about it is the random discovery of things that isn't driven by a personally-customized algorithm.
(I suppose I just contradicted myself a little bit. They'll keep the books that statistics show people are interested in, although I assume that is not the only criterion. But it's still not customized to me specifically.)
> I don't wanna read about [...] Marcus Aurelius!
One of the books I ran across and checked out was a graphic novel (book length comic book) about Marcus Aurelius.
> Apple’s gray on slightly-lighter-gray UI standards
It's a tangential point, but I turned on System Settings -> Accessibility -> Display -> Increase Contrast (the on/off option, not Display Contrast) and now at least the windows are outlined sharply.
A lot of people who think of themselves as able-bodied never think to poke around in the Accessibility sections of their settings menus. But it turns out that accessibility options are for everyone; people should really think of and evaluate them as first class tools more often
Of course it is. What should a button on a screen look like, after all, it has absolutely nothing to do with a large mechanical button from the 80s the old designs tried to emulate. In fact, such buttons are becoming rare even in the physical world, the younger generation is more and more accustomed to touch buttons for operating all kinds of machinery around them. So "like a button" is very much an age thing
Nah, one of the things I found in Discord's accessibility settings is an ability to turn off or reduce animations and other visual effects by default, which is wonderful no matter your ability.
Possibly a factor, but I also think these issues are becoming much more widespread, leaving us less able to tolerate them than when they were less common.
These things are like a sidewalk having a ramp that was originally made for wheelchairs but then suddenly everyone uses it because it’s just a nicer experience with less chance of tripping and falling flat on your face.
Similarly, I still have my HP-42s but I usually use Free42[0] on my phone and tablet. They also have it for desktops. It's great if you like RPN calculators. Or if anyone wants to learn about them, you can use that program and follow along with the original manual(s)[1]. It's nice to be able to handle the order of operations without parentheses.
> Recently a Clojure documentary came out and the approach of Rich Hickey was seemingly the opposite: Deep research of prior art, papers, other languages over a long period of time.
That was also on my mind thanks to the documentary. Then I followed up with "Easy made Simple" and "Hammock Driven Development", and it makes me want to learn Clojure.
It's a really good language that is worth learning. If you like you can join the slack that is linked on clojure.org. Beginners are very welcome in my experience and there are a ton of great people around there.
This part reminded me of a recent article and it’s interesting that he brings up ADHD because that’s probably the bigger issue then. Because what I got from the article and the related conversation, specifically the top comment:
> > Sometimes, tools don’t move the needle because there’s no needle to move.
> It reminds me of something my old CS mentor, now elderly, had said about LLMs a few months ago: "it's a force multiplier, but there has to be some force to multiply."
From: https://news.ycombinator.com/item?id=48254336
The fact that it turned out that “Human Bottlenecks” post was written by the same person who wrote “Notes on Managing ADHD” which I had printed and studied for tips not that long ago made sense.
So, to connect the dots, the fact he made all of those things without them being part of a bigger plan is, I think, the problem. In the framework of the above quote, there’s no needle there, nothing to multiply.
I’ve been trying to think more about whether what I’m doing is going somewhere, or if I can skip it and simplify things.
reply