148 karma · joined October 16, 2020
There’s some story I heard at Build or another conference about them implementing sockets on Windows NT. I think maybe it was Larry Osterman who had to implement them. His boss told him to do it without another ***ing driver and tried but couldn’t do it. So the driver implementing sockets was AFD.SYS
I think that’s well behaved with respect to WriteFile, ReadFile etc. One thing they did get right is using sockets with IO completion ports. That was a great design.
Later when PCs with an ISA bus became less common we developed a USB interface to the device. Still needed to source the C011 transceiver chips but we got those free issue from the instrument manufacturer.
I’m ok with the cost since it’s effectively half for me and really $3K six or seven years would be fine considering the quality of life improvement. Being in large group meetings with multiple teams discussing project planning could be painful for me. And it helps with your relationship. When there’s a background noise source like road noise or AC or a running faucet your brain will fill in based on the frequencies it can hear and you will hear completely different words.
Similar to this: http://www.vldb.org/pvldb/vol11/p1702-jonathan.pdf
My dad took the day off work to take me to the PC show at Earls Court in I think 1988. I spent my hard earned paper round money on the assembler and it massively improved my productivity.
I figured out how to do multiplies and divides on the Z80 while doing my paper round. In retrospect it was just long division but it wasn’t obvious to me at the time!
There were lots of other little math tricks that having a slow processor taught you. If you tried to draw circles by calculating sine and cosine it was too slow. Instead you rotated each point by a fixed angle and then used reflections to use that to plot eight points at a time.
All this stuff is still super useful. I drop down to look at the disassembly of x64 code all the time. Large code bases don’t scare me. You have source code! I had to disassemble games and ROMs to figure out how they worked - printing out fragments and then annotating them. The disassembler took 5KB of space so you’d have to load it in at different addresses to get at all the code.
There was some magical feeling back then that I think is hard to capture now. The manuals were really good for teaching you - I learned sine and cosine from the diagrams in the manual years before we covered them in maths. The memory layout and system variables were documented, as were all the Z80 opcodes. The first time I used LDIR to transfer data to screen from off screen memory was magical.
You really could master the whole machine and I feel that the limitations actually helped. I would spend summers writing large assembly language programs. Before I had an assembler (HiSoft DevPac) I would hand assemble programs by writing them out on paper and then figuring out the opcodes and calculate the jump relative offsets.