Good points. I'm leaning towards keeping it original. For example, I recently got an 8-bit VGA card for it and did some VGA assembly code on it, but then I put the original CGA card back in, even though I have to use a couple external converter boards to actually view the CGA output on a VGA monitor. Having a 90s/2000s era MS-DOS computer for that would be better.
HN user
drivers99
All good points. One caveat is that this PC only has a full height 5.25" (double sided, double density, 360K) floppy drive. When I got a 486 (Gateway 2000) in 1993, I had them add a 5.25" (as drive B:) to it so I could still at least read floppies from the PC.
Well, this computer is too old for IDE (but see below). :) Looks like it's something called MFM, driven by an entire expansion card that hooks up to the hard drive. But I get what you mean. My oldest tower is running Windows 2000 (since it has a serial port on the motherboard, it comes in handy... for transferring files to/from the IBM PC.) and that has IDE so I could use that for MS-DOS as well (and would be able to run 90s DOS games etc), I'm sure, but with a ~20 year jump in technology (or about half way between the original IBM PC and today).
Interestingly, https://www.lo-tech.co.uk/wiki/Lo-tech_8-bit_IDE_Adapter_rev... or better yet https://www.lo-tech.co.uk/wiki/Lo-tech_ISA_CompactFlash_Adap... looks like it would work if needed, and then using a CF to IDE adapter like you mentioned.
I have my IBM PC set up (to go through a Peter Norton assembly language book again) but I got a file read error for the first time recently on the 20 MB (Seagate ST-225) hard drive and parity errors from the RAM (again). I have chips (pretty cheap, industry standard chips) I can swap out to fix it hopefully. Anyway, I could just be emulating it instead (lol).
Cool, they have Exploring the IBM PC. It was a bootable disk with a tutorial to teach you how to use the computer (like what the scroll lock button was meant to do, and all the other keys on the original keyboard). I loaded up the CGA version on the CGA IBM PC emulator, which also plays music. The sound was cutting out though. In a later part (the Fun Writer) when you can turn on the "radio", the music seems to be missing the rests. I guess it's not perfect. The program always struck me as doing strange things with the hardware, so that might be why. (I'll have to look into some local emulators to try out. I really only need DOS for what I'm doing. I also have a MisterFPGA...)
I do it one type of pointer or another for tracking my reading position continuously. I even highlighted some words in your comment while I read it. In a book, I typically put my finger (or the corner of my bookmark) under the 3 words or so I'm currently reading, or I'll put my thumb next to the line I'm currently reading. I don't usually think about it, but being on that web page and being prevented from highlighting made me back away quickly. If I'm not highlighting, then I'll also scroll so the top of the page marks where I am. (Whenever a page has a menu that changes relative position/size or pops up to cover the content when you change scrolling directions, that's an annoyance.) I think I use something to keep track of the current line like that more often than highlighting. Now that I think about it, if my mouse pointer were more noticeable, I assume I might simply point to where I am. Then again, the highlighted words are independent of the pointer, so it lets you have both.
Why? Maybe my eyes move away from the page while I think about what I'm reading. Otherwise you'd have to keep a visual lock on your reading position continuously right? Or you'd have to scan the text to figure out where you left off.
It's a weird coincidence to me I just remembered Henry Darger again today, within the last hour actually. I had watched "In the Realms of the Unreal" (2004 documentary) in the theater when it came out. (I know it's only a coincidence because it's something I'm interested in thinking about, but it feels meaningful anyway.)
Does that not lead you to situations where you have to guess the last letter on each round? Or do you choose words to avoid getting trapped in that situation in the first place?
Even then. During a recent storm, they went off erroneously in Denver. (Looks like the other two erroneous alerts were via phone though.)
Denver emergency officials say they are working to rebuild public trust after a mistaken tornado siren activation Monday became the third improper emergency alert issued in the city this year.
https://www.cbsnews.com/colorado/news/denver-tornado-alarms-...
Looks like "PHY layer" means physical layer.
Jef Raskin called those "quasimodes" in The Humane Interface (2000) and was in favor of them.
https://en.wikipedia.org/wiki/Mode_(user_interface)#Quasimod...
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."
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.
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.
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
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.
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.
That's an interesting idea: if you're thinking of having an accessibility option, consider just making it the default.
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.
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.
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.
[0] https://thomasokken.com/free42/ I should send them a donation.
[1] https://literature.hpcalc.org/community/hp42s-om-en.pdf followed by https://literature.hpcalc.org/community/hp42s-prog-en.pdf
Oh that does look awesome!
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.
Clojure documentary on CultRepo channel: https://www.youtube.com/watch?v=Y24vK_QDLFg
Simple Made Easy: https://www.youtube.com/watch?v=SxdOUGdseq4
Hammock Driven Development: https://www.youtube.com/watch?v=f84n5oFoZBc
See Technology Connections' video about Brown: https://www.youtube.com/watch?v=wh4aWZRtTwU
He says brown is perceived when you see an orange-wavelength light that is significantly darker than its surroundings, providing the necessary context for your brain to interpret it as brown.
I'm not smart enough to intuit NAND from transistors. I'm also not sure I will be alone in that. It's such a weird difficulty wall.
I agree with you, because I feel like I only got that one because I happened to get curious about CMOS (PMOS + NMOS) logic earlier this year, and remembered the general idea from before. Otherwise, I don't think I would have figured that out either. Google image search for CMOS NAND basically shows the solution, but the game doesn't tell you that's what it is until after you beat the level. I think seeing the answer, then immediate trying to reproduce it from memory is a good way to learn. Then if you try again the next day/week/month and are still able to remember it, then you've learned it.
I also looked up a solution for the full adder since I couldn't quite remember how it worked.
Tangentially, I've gone through similar material over time repeatedly in the games nandgame and Turing Complete, going through the Nand 2 Tetris course (on Coursera), building Ben Eater's breadboard 8-bit computer, reading "Code" by Charles Petzold and "The Pattern on the Stone" by Danny Hillis and "Digital Computer Electronics" by Malvino since that was what Ben Eater partly based his computer design on, and going over digital logic in CS-related EE courses up through how a CPU is made. But most of those barely cover anything below the logic gate level and I don't think any of them covered CMOS/NMOS/PMOS specifically which is why I got curious about them this year.
It's pretty fun though (my type of fun anyway), and I'm really curious to see how the rest of it goes since it's building a GPU instead of a CPU for a change.
They had the longest reaction shot of some people filming it with their phones (maybe they got a good shot) and when they switched back to after the booster separation I said at the time, “that would have been cool to see.”
Amazing seeing this here. I hung out with him a few times back then, and I was just thinking about this again just a few days ago. It was really great spending some time with such a smart person. He showed me how he would write little notes and mind maps in the margins of books, and the peg system of mnemonics. One of the times I was there, he was teaching python lessons to someone. I tried to make sense of his notebook system, and to this day I still use color coding, and things like a triangle for pieces of data in my notes. Somewhere, I have or had a copy of this with a lot of writing in the margins trying to make some linear sense of it.
Lately, I've been keeping an "engineering" notebook, using similar technique to the original poster's technique: dated entries and a place for a table of contents (that I need to update).
I wish Mac had the same ability natively
Hover over the green button in the top left of the window. I recently found out about that menu for moving a window between screens, which is also an option it has. (I also just found them in the Window menu if you prefer that. I dont; the options take an extra level of hovering to get to.)
Thanks for mentioning that. I have one hearing aid so I've had to take it out so I can wear both AirPods when I want noise cancellation at all with AirPods. (I can also stream to the hearing aid but it is very tinny, completely lacking bass.)
I detest the trackpad on my Windows (Linux soon) laptop, so I have to use an external mouse with it, but I use the "magic trackpad" on my personal and work macbooks including external ones without issues (except if I have to drag something very far; this three finger drag seems to make it nicer although it wouldn't work if I needed to make sure not to let go like when dragging files around). Just wanted to point out that there's a big difference.
Why? Because those individuals tend to spin something up, tell everyone about it (online, and offline) and then stop doing it few days later.
That's definitely me (most recent ones: using engineering notebook techniques but for my own life, and WOOP method), but I recognize that feeling like I've found THE solution when I'm only a few days into it, so I tend to wait and see, or if I tell someone I say "...but ask me again in a week or a month if I'm still doing it." (At least with the engineering notebook, I can still go back and use it to remember what steps and settings I used in KiCad or use WOOP on a new goal at any time. So it's not a total loss.)
I will say one thing that I have stuck with and is pretty useful is a morning checking and an evening checklist. I'm currently using a paper version with the days of March in the columns and the checklists in the rows, and X them off as I go. A slash for the one I'm doing now/next and X when it's done. Leave it blank (or write N) if I choose to skip it. As a back-up, when I can't get around to make a paper version (I'm planning to type in the steps in a spreadsheet so I can just revise and print it each month) I keep the lists in two Google Keep checklists. Those are great because you can reset the checklist each day for reuse, and you can drag to reorder it as you edit it, and you can indent one level to organize it a bit. The disadvantage is I might get distracted by notifications and stuff on my phone.