Showing posts with label tech. Show all posts
Showing posts with label tech. Show all posts

Monday, June 01, 2026

link dump #14

I follow a lot of RSS feeds to make it easier to find interesting articles without having to regularly visit my entire list of interesting blogs which aren't updated often.  As you can see, I find a dizzying array of topics interesting.  For example today while taking the dog outside over my lunch break, looking up treated me to this interesting halo around the sun.  Apparently it's caused by ice crystals interacting with the sun's rays.


Ronny Chieng, who you might know from The Daily Show or movies, gave one of the more amusing commencement speeches I've seen recently.  It was better received than the speech Eric Schmidt gave where he got booed for his comments about AI.  There have been a number of other recent commencement speakers telling graduates that they'll have a hard time finding employment thanks to so many CEO's obsession with AI.  I think that shows how out of touch these speakers, often members of upper management of various companies, are with their workers or potential employees.
https://www.complex.com/pop-culture/a/tracewilliamcowen/ronny-chieng-ai-speech-harvard

Apparently some of the Tesla staff members charged with reviewing video footage of their "Full Self Driving" feature in order to improve its performance don't trust Tesla's self driving technology.  I can't say I blame them.
https://www.reuters.com/investigations/why-teslas-ai-trainers-dont-trust-its-self-driving-tech-or-its-safety-stats-2026-05-28/

I love cool cars so I found this story about how hot rodders are using 3-D printing to help build parts for their cars interesting.  I've heard people are doing the same thing to restore old computers.
https://www.thedrive.com/news/old-school-hot-rodders-are-using-high-tech-3d-scanners-to-make-custom-parts

This proposed Lego kit for building a model of the CROCUS reactor looks very cool.  The instructions and parts are already available if you'd like to build it yourself.
https://beta.ideas.lego.com/product-ideas/e235fbd0-8ab8-4575-bd1c-37a25625f118

I found this article about the history of Digital Research's DR DOS interesting.  I used DR DOS in the late late 1980s when it was first released.  I even submitted a bug report to Digital Research when I found a program which didn't behave properly under DR DOS.  The bug was caused by a system call which behaved differently than the same system call on MS-DOS did when passed a string containing wildcards instead of an actual filename.  I even included a TSR (terminate and stay resident) program to work around the bug.
https://dfarq.homeip.net/dr-dos-revenge-of-cp-m/

This article about how people discovered someone they knew was super intelligent was interesting.  I used to work for a boss down at the Washington Navy Yard who would type long assembly language source files on the old CRT terminals we were stuck with on mainframes back in the late 1980s.  You could even ask him questions while he was typing and he would answer you with only a minor slowdown in his typing.  After typing these long programs, he would use the assemble and run option and his programs worked.  I was amazed that he could remember variable names he had used several pages of source code ago.  He was also amazingly effective with his explanations.  He's start out explaining at his level of understanding and if he saw you weren't understanding him, he'd adjust his explanation until you understood him and did it so you didn't feel insulted by the simpler explanation.
https://pleated-jeans.com/2026/05/22/people-share-the-moment-they-knew-they-were-in-the-presence-of-a-truly-massive-intellect/

Some of you may have build kits from Heathkit in the past.  I built two computer kits, an H-89 which ran CP/M and an H-151 which ran MS-DOS.  I also built one of their dot matrix printer kits.  Here's a video tour of their factory back in the day.
https://hackaday.com/2026/05/15/inside-the-heathkit-factory/

I found the news that plants react to anesthetics in a similar fashion to humans both fascinating and a little disturbing.
https://pmc.ncbi.nlm.nih.gov/articles/PMC11586303/

If you've never seen the TV series Halt and Catch Fire, it's definitely worth watching.  It focuses on the early days of personal computing which sounds as if it would be boring but this show manages to keep it entertaining.  The title refers to the mythical HCF op code which causes the CPU to catch fire.
https://unstack.io/halt-and-catch-fire

Reading about Crouching Tiger, Hidden Dragon reminds me of how much I enjoyed watching it the couple times I've seen it.  I think I may be due to watch it again.
https://yusufaytas.com/why-crouching-tiger-hidden-dragon-is-a-masterpiece

If you've heard this story which Kurt Vonnegut told a few times, it illustrates why I like him so much as an author.  I think I would have enjoyed meeting him as well.  His books will both entertain you and lead you in directions you would have never expected when you started reading it.
https://chrisglass.com/2024/11/01/kurt-vonnegut-buys-an-envleope/ 

Before I became a father, I would have been skeptical about how much the experience changes someone.  When I held my daughter for the first time, it completely changed me.  Those changes were for the better although I would have doubted that a few years before.
https://www.sciencealert.com/fatherhood-dramatically-rewires-your-brain-scans-reveal

I've managed to clear out some of my backlog of interesting links with this link dump.  I hope you find something in here to inform or entertain you. 

Friday, May 29, 2026

A favorite beer

Tonight I'm celebrating the end of the work week with a Firestone Walker Paraboloid.  This beer isn't readily available on the east coast so I have to order it directly from Firestone Walker in California.  This brewer was founded by a couple guys with experience in wine making.  They make some amazing beers with all the complexity of a fine wine.

Sipping on the Paraboloid made me remember the first time I had its little brother, a beer called Parabola, about 11 years ago at a restaurant in Leesburg called Leesburg Public House.  LPH had been opened by a friend and quickly became one of our favorite weekly happy hour venues.  I had been reading about this legendary beer for a few years but had never seen it available nearby.  Jay, one of the servers at LPH, was very knowledgeable about craft beer and had a few connections in the beer world.  He was able to get a few highly rated beers such as Parabola to sell at the restaurant.

When we arrived at LPH that night, Jay told us that they had just received the Parabola.  I managed to convince Dave, a friend I had worked with at 5 different companies, to split a bottle with me.  Jay brought us the Parabola and served it with the flourish fitting such a special beer as you can see in the photo below.  Dave loved the beer as much as I did but he never let me forget that it was me who got him hooked on more expensive beers.  Each year when it was released we'd compare notes on where to find it in nearby stores.

 

This rambling train of thought caused me to remember that it's almost the 1 year anniversary of my buddy Dave's untimely death.  It would be difficult to express how much I miss him.  One of the things I miss most about Dave is how we both enjoyed talking about low level programming.  If he were still around I'd be telling him about the pointer math I had to do in a C program today.   I was doing that to solve the problem of a device at work occasionally misplacing its timestamp from the usual location at the start of a buffer to somewhere in the middle of the buffer.  Knowing where the timestamp ended up could provide clues about what's causing the problem.  This timestamp takes the form of a 64-bit integer.  This wouldn't normally be a problem to find that given the fact that the upper 16 bits of the timestamp contain an easily identifiable value but on ARM CPUs, 64-int integers are stored in little endian format.  So having found the correct 16 bits somewhere within the buffer, it was necessary to back up by 6 bytes to get the entire timestamp before the timestamp could be displayed in all its glory.  Pointer math is always fun.

Well, my celebratory beer is nearly gone now and that low level programming tired me out.  I think I'll sign off for now. 

 

 

Sunday, May 24, 2026

link dump #13

 

I follow a lot of RSS feeds which makes it easier for me to discover interesting web pages without having to visit my entire list of interesting blogs which aren't updated often.  As you can see, I find a lot of topics interesting.

It's difficult for experts to fully explain the innate knowledge which makes them so good in their fields.  Experience can be impossible to pass long when trying to create new experts.  I think this may make it impossible to train AI systems to replace experts.
https://cekrem.github.io/posts/the-tacit-dimension/

I'm generally not keen on AI use but if you can hide prompts to force LinkedIn recruiter bots to entertain you with their unwanted spam, it seems like a win to me.
https://www.tomshardware.com/tech-industry/artificial-intelligence/linkedin-recruitment-spam-becomes-olde-english-prose-after-user-hides-ai-prompt-injection-in-bio-bots-also-also-manipulated-to-address-user-as-my-lord

When I first switched from Windows PCs to Macs 25 years ago, I found that I loved Mac OS X.  It reminded me of the software environment I enjoyed on the Sun 3/80 Workstation I had on my desk while working at Sprint International (the division which developed the computer networking hardware and software for Sprint's packet switching network) in 1990.  That Sun was the machine which caused me to love Unix.  The combination of Unix, X Windows, and that fast Sun hardware was the most productive environment for software development I had seen at that time and I still have fond memories of it.  Lately Apple's software seems much buggier than it used to which frustrates me at time.  It's reassuring to see that I'm not the only one who has noticed this steady decline in software quality.
https://taoofmac.com/space/blog/2026/05/18/1320

Someone has created an animated version of Vincent van Gogh's painting The Starry Night and I found it entertaining to interact with various parts of the painting.
https://stillnight.joshua-garcia.com/

A study has found that playing the didgeridoo can help counteract the daytime sleepiness caused by sleep apnea.  I can't imagine many offices would be open to this type of therapy to treat affected employees.
https://pmc.ncbi.nlm.nih.gov/articles/PMC1360393/

Finally there's  evidence for why the T-Rex had such tiny arms.  Sometimes evolution plays cruel tricks...
https://nautil.us/we-finally-have-the-answer-for-t-rexs-tiny-arms-1280997

There's no way I would agree to join a mission commanded by a billionaire rather than a fully trained astronaut/pilot.  Making an insane amount of money doesn't imply the ability to solve problems in stressful situations like a long space flight.  I'm curious to see how the radiation affects humans on this longer mission as it will be hard to shield the crew capsule adequately.  Shielding materials are heavy and extra weight is always hard to justify.
https://gizmodo.com/spacex-taps-crypto-billionaire-to-lead-first-crewed-mission-to-mars-2000762451

The Super El NiƱo predicted to form by winter could have devastating effects on both the world economy as well as our ability to keep the world's population fed.
https://respublicamgz.substack.com/p/a-super-el-nino-is-coming-the-last

It strikes me as horribly inefficient to have unique terms for groups of birds of different species.  Things like this make the English language both rich and difficult to master.
https://www.themarginalian.org/2024/01/04/brian-wildsmith-birds-company-terms/

Tuesday, May 05, 2026

link dump #11

 


I follow a lot of RSS feeds which makes it easier for me to discover interesting web pages without having to visit my list of interesting blogs which aren't updated often.  I hate to send these interesting links via email since it feels too much like a teacher giving homework... here, go read all of these web pages and report back to me.  Instead I think collecting them in a blog post is a friendlier way to pass links along.

In case you're curious about why I'm posting on my blog more often recently, it's because I'm counting down to starting my retirement.  According to my spreadsheet, today I'm down to 158 more days of work.

I have fond memories of playing some of the old Infocom games.  There's a new web based version of Zork which actually shows you the code which is running as you play the game.  That appeals to both the techie and gamer in me.
https://en.wikipedia.org/wiki/Infocom

NASA has shut down an instrument on the 49 year old Voyager 1 probe to extend its mission even longer.  This adds more evidence for my opinion that NASA does some of the finest engineering ever done.
https://www.sciencedaily.com/releases/2026/05/260504023835.htm

There's a new theory about a possible way to cut travel time to Mars.  This will be critical for continued missions.
https://www.livescience.com/space/mars/i-was-not-looking-for-this-scientist-accidentally-finds-shortcut-to-mars-that-could-slash-travel-time-in-half

This new brake by wire system sounds interesting but I'll avoid cars which feature it until it has much more testing.
https://www.thedrive.com/news/the-first-modern-car-without-hydraulic-brakes-is-headed-to-production

Richard Dawkins is being mocked for his questioning of whether LLM systems such as Claude pass all current tests for consciousness.  Since a few people working on AI systems have made similar claims, it seems ridiculous to mock a well respected scientist who has no special expertise in the subject.  Since these systems have been trained on massive amounts of output from talented authors, it doesn't surprise me that they can string together sentences which sound convincing.
https://garymarcus.substack.com/p/richard-dawkins-and-the-claude-delusion

If you got the idea that I'm an AI skeptic, you'd be right.  Here's one of the many reasons I avoid them at every opportunity.  I wonder whether the engineer who was working with the AI agent which did this got reprimanded or fired.
https://www.msn.com/en-us/news/technology/ai-agent-deletes-company-s-entire-database-in-seconds/ar-AA21UbLU 

Even though I have strong doubts about whether we'll create actual conscious machine models anytime soon, I do believe that octopuses are intelligent despite having brains which are very different from ours.
https://www.nature.com/articles/d41586-026-01302-4

Denis Leary has long been one of my favorite comedians and he seems to be a great human being as well.  I know he's been doing fund raising for firefighters since he starred in Rescue Me and he's managed to step up the support through this innovative plan.
https://abcnews.com/Business/wireStory/denis-learys-crazy-idea-puts-civilians-fdny-training-132625577

I'm happy to hear that there are more bookstores now than there were six years ago.  Literate people would probably help prevent many of the problems we currently have.
https://news.slashdot.org/story/26/04/27/052242/america-now-has-70-more-bookstores-than-in-2020-says-bookshoporg-founder

The mention of Kurt Vonnegut's novel Cat's Cradle is initially what caught my eye about this story but it's interesting on its own merit.  Who knew there were 20 crystalline forms of ice?
https://boingboing.net/2026/04/29/scientists-found-ice-with-a-304-molecule-repeating-pattern.html

Hopefully you don't drive one of these cars with soy-based wiring since they attract rodents which can lead to expensive repairs.
https://www.box-kat.com/blogs/box-kat-blog/full-list-of-cars-with-soy-based-wiring-2025-update

Monday, April 27, 2026

link dump #10

 


I follow a lot of RSS feeds which makes it easier for me to discover interesting web pages without having to visit my list of interesting blogs which aren't updated often.  I hate to send these interesting links via email since it feels too much like a teacher giving homework... here, go read all of these web pages and report back to me.  Instead I think collecting them in a blog post is a friendlier way to pass links along.

A fair number of chefs seem to like American cheese for its ability to melt smoothly on burgers.  I'd much rather have a cheese with more flavor such as a medium sharp cheddar even though it's not as attractive when it melts.  Swiss and Blue cheese are also better choices for me than American cheese.
https://www.seriouseats.com/whats-really-in-american-cheese

One of the books I'm currently reading is Alas Babylon.  I've been on a post-apocalyptic kick lately, having recently finished Earth Abides, which like Alas Babylon, I probably hadn't read in 40 years or more. I've also enjoyed The Postman and On the Beach (my personal favorite in this sub-genre).
https://grubstreethack.wordpress.com/2019/12/07/book-review-alas-babylon/

I just read about a company called Elite Obsolete Electronics which is upgrading classic Apple iPods with modern storage devices and better batteries.  I've got a first generation iPod Classic with the click wheel which I've considered doing an upgrade like this but the fact that it has a Firewire interface raises the complexity of synchronizing music to the device.  There's  also the issue of trying to convince Apple Music to sync to such an old device.  Given those issues, I'm probably better off going with a Tangara which is a crowd funded device created with all modern technology.

It makes me sad to read about technology like Stinger missiles which we've forgotten how to produce.  I fear AI is just making this worse.  It's cool that they were able to call engineers in their 70s to come back to teach younger engineers how.  Since I'm retiring early next year, I'm hoping there's no reason that some company tries to lure me back to the workforce.  I always thought the year 2038 date problem would be the reason I'd get pressured, but it looks like there might be more reasons than that.

Drunk engineers often have good advice.  I don't agree with all of it but there are some gems in this list.
https://luminousmen.substack.com/p/drunk-post-things-ive-learned-as

I worry about young people who are losing the powers of concentration required to watch a movie or read a book.  I wonder how many people still want to watch a longer classic movie like Lawrence of Arabia (one of my favorites).
https://tywkiwdbi.blogspot.com/2026/01/attention-span-problems-viewing-movies.html

The idea of starting a country where crocs and reply-all emails are banned appeals to me in a strange sort of way,  I also like their idea of selling titles for people to boost their LinkedIn profiles.  In case you can't tell, I'm definitely not a fan of LinkedIn
https://www.bbc.com/travel/article/20260330-slowjamastan-the-worlds-newest-nation-youve-never-heard-of

Often it's hard to people's minds but no one should have to suffer like the doctor who helped proved that washing hands could save lives.
https://boingboing.net/2026/04/07/the-doctor-who-proved-handwashing-saves-lives-was-locked-in-an-asylum-for-it.html

Even though I've got no where to put it, I kind of want this Lego Star Trek TNG Bridge.
https://rebrickable.com/mocs/MOC-256838/Menapian/star-trek-tng-enterprise-d-bridge-diorama/#details

If LED lights can damage paintings, I wonder what effect they have on people?
https://www.vrt.be/vrtnws/en/2013/01/04/led_bulbs_can_damagepaintings-1-1518123/

Tuesday, April 14, 2026

link dump #8

 


I follow a lot of RSS feeds which makes it easier for me to discover interesting web pages without having to visit my list of interesting blogs which aren't updated often.  I hate to send these interesting links via email since it feels too much like a teacher giving homework... here, go read all of these web pages and report back to me.  Instead I think collecting them in a blog post is a friendlier way to pass links along.

Here's an interesting look at how NASA engineered a fault-tolerant computer for the Artemis II mission.  It is able to handle bit flips due to cosmic rays which apparently aren't uncommon in space travel.
https://cacm.acm.org/news/how-nasa-built-artemis-iis-fault-tolerant-computer/

I'm an avid follower of space technology and was interested to hear that a new memory device which could withstand the exceptionally high temperatures on Venus has been invented.  I wonder whether a CPU to function in such a hostile environment can be created and whether there's a way to connect them.
https://www.sciencealert.com/a-new-computer-chip-could-finally-withstand-the-hellscape-of-venus

Apparently rich techies are paying to get on a waiting list to have their brains digitized.  The process is 100% fatal.  There seems to be a ridiculous leap of faith required to take advantage of this technology.
https://www.thesun.co.uk/tech/science/5809555/sam-altman-nectome-brain-computer/

This essay echoes many of my feelings about using Apple devices these days.  I still like their hardware but their software continues evolving in ways I don't find particularly useful and occasionally I find myself wondering what the hell they're thinking customers want.
https://taoofmac.com/space/blog/2026/04/12/1330

Physicists have managed to entangle two helium atoms which has interesting possibilities.
https://www.livescience.com/physics-mathematics/quantum-physics/really-really-weird-physicists-entangle-two-moving-atoms-for-the-first-time-validating-spooky-quantum-theory

NASA has a Daily Moon Guide which might be useful.
https://science.nasa.gov/moon/daily-moon-guide/

This poll which indicates that print books still dominate American reading habits surprised me.  The convenience of e-books and e-audiobooks had made print books a last resort for me.  I only use them for books not available in electronic form.
https://www.pewresearch.org/short-reads/2026/04/09/americans-still-opt-for-print-books-over-digital-or-audio-versions-few-are-in-book-clubs/ 

For a while, Scotland seemed to dominate original thinking.  It's amazing how many fields they excelled at - economics, engineering, medicine, etc.
https://www.ageofinvention.xyz/p/age-of-invention-why-scotland-succeeded

I've read a number of books about the early days of hacking which included phone phreaking but I don't recall reading about a blind hacker who called himself "Joybubbles".  Apparently his exploits inspired other phone hackers.
https://www.inverse.com/entertainment/joybubbles-documentary-rachael-morrison-interview

 

 

 

 

 

 


 

Monday, April 06, 2026

link dump #7


I follow a lot of RSS feeds which makes it easier for me to discover interesting web pages without having to visit my list of interesting blogs which aren't updated often.  I hate to send these interesting links via email since it feels too much like a teacher giving homework... here, go read all of these web pages and report back to me.  Instead I think collecting them in a blog post is a friendlier way to pass links along.

Given the fact that Microsoft is warning people that their CoPilot AI assistant is for entertainment purposes only and should not be trusted, this study showing people blindly trust AI results is disturbing.  I believe the results from this study since so many people fall for phishing emails which contain painfully obvious errors.
https://futurism.com/artificial-intelligence/study-do-what-chatgpt-tells-us

Speaking of absurd beliefs, apparently some people think that blood banks maintain separate supplies from donors who have never been vaccinated.  I've been donating blood for over 50 years and have seen no evidence that separate blood supplies exist.
https://www.cidrap.umn.edu/covid-19/more-people-requesting-unvaccinated-blood-themselves-or-their-children

This article about the memory devices used in the AGC (Apollo Guidance Computer) also contains detailed descriptions of other memory devices used during that time which were considered.  I remember these older technologies since I'm older than dirt.
https://2earth.github.io/website/20260304.html

I'm not surprised that repeated clonings from different generations of the same line of cloned mice has caused problems.  Entropy is a cruel mistress.
https://www.popularmechanics.com/science/animals/a70861443/scientists-cloned-a-mouse-for-58-generations-the-results-were-catastrophic/

Recently a magnetic tape containing source code for UNIX v4 was discovered.  I found the procedure used to extract the data from that old tape fascinating.  Stories about magnetic tape make me nostalgic for large computer rooms.  A row of tape drives constantly seeking and reading is a visual indication of a busy computer.  Tape drives were always my favorite peripheral devices to maintain.
https://irreal.org/blog/?p=13661

I'm not sure I would trust any Internet connection sufficiently to try using it to install directly from it to an SD card to boot Linux.  That being said, the technique is quite interesting.
https://astrid.tech/2026/03/24/0/curl-to-dev-sda/

Here's an account of the role which the Parkes Observatory in Australia played in monitoring the Apollo 11 mission.
https://www.parkes.atnf.csiro.au/news_events/apollo11/

Too often people focus on negative stereotypes of people on the autism spectrum while ignoring their creativity and other gifts.
https://www.psychologytoday.com/us/blog/positively-different/202601/what-the-world-got-wrong-about-autistic-people

It makes me happy to know that John Fogerty has regained control over his music catalog.  His songs are in many of my favorite playlists I have on my phone.  This NPR Tiny Desk Concert shows what I love about his music.
https://laughingsquid.com/john-fogerty-npr-tiny-desk/ 

Sunday, March 22, 2026

link dump #5


I follow a lot of RSS feeds which makes it easier for me to discover interesting web pages without having to visit my list of interesting blogs which aren't updated often.  I hate to send these interesting links via email since it feels too much like a teacher giving homework... here, go read all of these web pages and report back to me.  Instead I think collecting them in a blog post is a friendlier way to pass links along.

For a while, Turbo Pascal was my favorite programming language.  The IDE it used was fast and made me more productive than other compilers available in the mid 1980s by showing me the cause of any compilation errors immediately.  This web page shows how small it was which seems weird in an age of phone applications are quite large.  It was also much, much faster than other compilers of that time.
https://prog21.dadgum.com/116.html

Somone has used AI to disassemble Turbo Pascal to better understand how it achieved such a small size.
https://simonwillison.net/2026/Mar/20/turbo-pascal/

Apparently it can dangerous to fill your SSD devices too full.  I knew this was the case on some of the low level flash memory devices used on embedded systems but thought SSD controllers would be able to handle this more gracefully.
https://www.makeuseof.com/why-never-fill-ssd-past-80-and-you-shouldnt-either/

This research into how fireflies stay in sync is fascinating.  I wonder whether this is similar to how starling murmurations work?
https://arstechnica.com/science/2026/03/the-science-of-how-fireflies-stay-in-sync/

MIT has a study which suggests that the use of AI may lead to cognitive decline.  This rings true to me.  I know anytime I've had a break from programming, it's hard to jump back in and be nearly as productive as I am when I do it regularly.  The same thing happens to software developers who move into management and completely leave programming behind.  An extreme case of this was a CEO at a small company where I used to work.  He liked to ingratiate himself to engineers by telling us about having started out as an ALGOL programmer.  From his performance as a CEO, it was not obvious he had ever possessed any technical skills.
https://publichealthpolicyjournal.com/mit-study-finds-artificial-intelligence-use-reprograms-the-brain-leading-to-cognitive-decline/ 

A number of bloggers are bemoaning the changes heralded by widespread use of AI in software development.  I'm glad I'll be retiring before management tries to force me to use it.  Programming and debugging are like solving puzzles for me and I'd hate to give that up.
https://nolanlawson.com/2026/02/07/we-mourn-our-craft/ 

Sunday, March 15, 2026

link dump #4


I follow a lot of RSS feeds which makes it easier for me to discover interesting web pages without visiting a lot of favorite blogs which haven't been updated.  I hate to send these interesting links via email since it feels too much like a teacher giving homework... here, go read all of these web pages and report back to me.  Instead collecting them in a blog post seems like a friendlier way to pass links along.

I watched Star Trek II: The Wrath of Khan again a few nights ago.  I had forgotten that they used old maintenance panels from a GE-635 mainframe computer to serve as controls for one of the Enterprise's systems.  I recognize panels from Honeywell and GE computers since I serviced both as a field engineer nearly 50 years ago.  It's not uncommon to see old maintenance panels used in this capacity since they usually have lots of lights and switches.  Here's a few other movies and TV shows which have used parts of the GE-635.
https://www.starringthecomputer.com/computer.html?c=427 

Apparently RAM kits are now being sold with one real RAM stick and a fake one due to the RAM shortage created by AI datacenters.
https://www.tomshardware.com/pc-components/ram/fake-ram-bundled-with-real-ram-to-create-a-performance-illusion-for-amd-users-1-1-value-pack-offers-desperate-psychological-relief-as-the-memory-shortage-worsens

Here's an interesting article about how how Lego goes about creating a new set.
https://www.theverge.com/c/23991049/lego-ideas-polaroid-onestep-behind-the-scenes-price

This article about how snakes manage to get up to 70% of their body length into the air is interesting but I found the picture a bit disturbing.
https://nautil.us/heres-how-snakes-defy-gravity-to-stand-up-1278914 

Scientists have figured out how to revive frozen mouse brains.  This might be a step towards allowing longer spaceflights.
https://www.nature.com/articles/d41586-026-00756-w

Iranian physicists have estimated that technological civilizations probably only last 5,000 years at most.  This could explain why we haven't encountered aliens yet.
https://boingboing.net/2026/03/03/iranian-physicists-estimate-advanced-civilizations-last-5000-years-or-less.html

Swiss watchmakers continue fighting back against accurate clocks from Japan.  It's got to be hard competing against both cheap accurate models and smart watches like the Apple Watch which can offer more features.
https://worksinprogress.co/issue/watch-men/

This article about how taxing the use of AI can be on users' brains makes me glad that I'll be retiring before being forced to use it at work.
https://www.the-independent.com/tech/ai-brain-fry-artificial-intelligence-b2934903.html

Tuesday, March 10, 2026

C versus C++


Last week at work, I was helping a colleague with some low level code.  That's because I'm the firmware guy responsible for the bootloader, OS, device drivers, and other low level code.  I wrote a couple functions for him to access capabilities he needed to use.  Since I've been writing C for over 40 years, I write in the classic (or perhaps archaic) style of the first edition of the K&R book.  This involves always returning an integer value (where appropriate) to indicate success or failure and using pointers to return any values which need to be returned.  The next day, he asked if I could help him figure out why it was crashing.  It turns out he didn't understand pointers very well.  To be fair, this engineer is much better at C++ than I am and pointers are a kind of a holdover from the days when C was more like a portable assembly language.  He's also a top notch signal processing engineer.  I ended up fixing his code to access my functions for him because my explanation of pointers didn't click with him.

About 6 months ago I had experienced something similar with another younger engineer.  To be fair, what I call the younger engineers in my group are mostly in their 40s and are all extremely competent.  Anyway, I had written a device driver for him to control the 2 LEDs we have on one of our devices.  Since I come from the days when storage was precious, I had compressed the parameter to control both LEDs and their blink rate (if not solid on or off) into a single 32-bit word.  Doing so involved bit shifting and masking which is second nature to me as I had been trained in simplifying Boolean expressions many years ago.  Engineer #2 didn't understand this code and wanted to reverse it to read what state the LEDs were currently in.  Our company has been pushing an internal version of GPT so he gave it my code and asked for code to reverse my operations to compress all that information into a single word.  It crashed his GPT session and which apparently took several days to clear up.

I think both problems stem from the fact that C++ is heavily object oriented but manages to fool old-timers like me into thinking it's just a fancier version of C.  The problem is being slowly solved as more of the greybeards like me end up retiring which I'm most definitely looking forward to.

Sunday, March 08, 2026

link dump #3


I follow a lot of RSS feeds which makes it easier for me to discover interesting web pages without visiting a lot of favorite blogs which haven't been updated.  I hate to send these interesting links via email since it feels too much like a teacher giving homework... here, go read all of these web pages and report back to me.  Instead collecting them in a blog post seems like a friendlier way to pass links along.

Nathan Fillion has been dropping hints lately which make are making fans suspect that some type of Firefly sequel might be in the works.  If I had the power to bring back a single show, it would definitely be Firefly.
https://www.ign.com/articles/nathan-fillion-is-getting-firefly-fans-all-sorts-of-excited-over-20-years-after-the-show-was-canceled 

I find a lot of anti-AI sentiment among techies and artistic types in various places.  I've lost the link, but I recently saw a CTO complaining that he got the axe because his company was replacing some executives with AI.  There's a company I definitely wouldn't want to work for or to reply upon as a customer.  I'm lucky because I'm very close to retirement with more than enough work to keep me busy until I pull the ripcord.  I feel sorry for younger engineers who have to deal with the instability AI is causing.
https://www.scottsmitelli.com/articles/you-dont-have-to/

NASA's DART (Double Asteroid Redirection Test) just managed to nudge a binary asteroid system.  There may be hope if we manage to detect a killer asteroid early enough to launch a mission.
https://arstechnica.com/science/2026/03/nasas-dart-mission-shifted-the-orbits-of-two-asteroids/

The news that younger males are clinging harder to outdated gender roles than older generations do depresses me.  One can only hope that they alienate partners before managing to reproduce.
https://www.theguardian.com/world/2026/mar/05/gen-z-men-baby-boomers-wives-should-obey-husbands

Videos of launching small cars via trebuchet are entertaining but I really wish they has stuck to launching Yugos or other worthless cars.  A classic Austin Mini seems too valuable to waste this way.
https://www.jalopnik.com/2117130/watch-cars-launched-by-trebuchet/

Sunday, March 01, 2026

link dump #2


I follow a lot of RSS feeds which allows me to find a lot of interesting web pages.  I hate to send them via email since it feels too much like a teacher giving homework... here, go read all of these web pages and report back to me.  Instead collecting them in a blog post seems like a friendlier way to pass links along.

When I was a kid, my favorite cartoon by far was The Rocky and Bullwinkle Show, which started airing as repeats when I was 7 years old.  I found it refreshing because unlike other cartoons of the time, it never talked down to kids.  I knew some of the humor escaped me but that made me love it all the more.  Thanks to the more sophisticated humor, I continue to love it even now.
https://www.smithsonianmag.com/innovation/how-bullwinkle-taught-kids-sophisticated-political-satire-180964803/

Who knew that deaths due to car crashes spike around the release of pop albums?  Seeing the way some people drive on my 40 mile commute, it doesn't surprise me as much as it should.
https://www.theregister.com/2026/02/23/pop_album_fatal_car_accidents/

I've enjoyed Jason Lee's acting in Kevin Smith's movies as well as My Name is Earl.  Here's an interesting interview with him which he was not happy with.  I can see his point since it appears the interviewer misrepresented what type of questions would be asked.
https://defector.com/a-complimentary-profile-of-jason-lee-that-was-surprisingly-difficult-to-publish 

Cory Doctorow gave a speech 15 years ago about the coming war on general computation which looks increasingly plausible given what AI companies have been doing lately.  If you enjoy realistic near future SciFi which is both entertaining and a bit frightening in its likely accuracy, check out his website craphound.com.
https://en.wikisource.org/wiki/The_Coming_War_on_General_Computation

I was surprised to read that tire pressure sensors have enough range to be considered a privacy risk.
https://boingboing.net/2026/02/27/tire-pressure-sensors-are-a-huge-privacy-risk.html

An asteroid passed pretty close to Earth and apparently we didn't see it until it had already passed by.
https://boingboing.net/2026/02/24/an-asteroid-passed-428-km-from-earth-and-no-one-saw-it-coming.html

A computer formed of chips containing 800k human neurons has been taught to play Doom.  I find this disturbing on a lot of levels.
https://boingboing.net/2026/02/26/living-human-brain-cells-are-now-playing-doom.html

This article about the steady loss of deep knowledge is something which worries me.
https://fireborn.mataroa.blog/blog/the-slow-death-of-the-power-user/

Sunday, January 04, 2026

Computing setup, software focused

Windows

My company gives software/firmware developers a very capable Windows laptop.  It's got 32 cores, 64 GB of memory, and a 500 GB SSD to which I was able to add another 2 TB SSD.  There are a couple downsides to this machine -- it's kind of heavy and the corporate IT team has this laptop very locked down.  All software installed on it must be on the approved software list which I understand.  It makes it harder to use my corporate laptop as a good development environment though.  I compensate by using Linux machines for the actual development work and relegating the Windows machine to acting as a terminal plus using it for web browsing and corporate communications tasks such as email, Teams, and Slack.  I was able to install VMware which allows me to use the laptop to run Ubuntu Linux VMs which are used for occasional software builds and to host some FPGA development tools to program the firmware I develop onto the embedded hardware it targets.

  • Vim - I've been using Vi/Vim as my editor of choice since I took a job which gave me a Sun workstation on my desk.  I've got friends who love various editors such as Emacs, Visual Studio, Notepad+, Atom, and a few others.  I've occasionally experimented with other editors but it's really hard to overcome the muscle memory which comes from using Vi for 35 years.  The benefit is I'm still using a few macros I created that long ago.  I prefer GVim, the GUI version of Vim for its ability to resize windows.
  • Putty - I've got Putty profiles for all the Linux machines which I connect to regularly.  Each includes X11 forwarding which gives me the ability to launch X11 apps on any of the Linux hosts I access.  I know that Wayland is more modern but most of the Linux machines I'm accessing run old enough versions of Linux to make Wayland too much trouble to try to use.  Putty supports both SCP and serial connections, making it a handy way to connect to serial console ports.
  • WinScp -  This is a great little network file transfer program which supports the SFTP and SCP protocols.  I often use one Linux host to build my software and another to install it so being able to easily transfer files is a necessity.
  • VcXsrv -  Since so many of the tools I use require an X11 connection, I need to run a X11 server on Windows.  I actually petitioned our IT group to add this to the approved software list.  It can be a little buggy at times but getting free software approved is always much easier than asking for commercial software be added to the budget.
  • TeraTerm -  Believe it or not, sometimes I need to transfer files to an embedded machine which only offers a serial connection.  TeraTerm supports ZMODEM transfers which makes exchanging binary files much easier in that case.
  • Kdiff3 -  Capable free GUI file/directory comparison tool and one of the few allowed on my work laptop.
  • Microsoft Outlook - Outlook seems to work adequately for basic email and scheduling needs.  It has a terrible search feature which makes it difficult for me to find past emails I need to reference.
  • Microsoft Teams - I have never cared for Teams but it's a necessity to allow me to join meetings while working from home.
  • Slack - Most of the time this is okay but it's very quirky.  It's a necessity to allow easy connections to people while I'm working from home. 
  • Google Chrome - It's the browser chosen by our corporate IT team.  I guess it's a necessity since it's captured the majority of the browser market but I must admit that I've never really cared for its UI. 
  • Windows Calculator -  Having a calculator capable of hexadecimal and binary operation is a necessity at times.

 Linux

All of the embedded devices I work with run some version of Linux.  Some actually have multiple copies running on different CPUs.

  • Vim - Vim comes preinstalled on all the Linux machines I need to access.  I do often still install Gvim to make it easier to edit files over an X11 connection.
  • Putty - I manually install Putty on Linux machines.  It makes it easy to connect to devices on the Linux machine which use a serial port.  It's also handy to do that via an X11 connection.
  • GNU Screen - Screen makes it very easy to maintain a persistent connection to a machine which is necessary as some of the firmware builds take over an hour and network hiccups used to kill the build before it was done.  Screen allows me to reconnect after the network issue and see the build continuing as if no interruption had occurred.
  • Exuberant Ctags - I've been using ctags to make navigation through unfamiliar code easier for 30+ years now.
  • Ack - Ack allows me to do a recursive search for files which contain some string and to limit that search to source files or some other category such as Bitbake files.  I use the ack executable which is implemented as a single perl module which makes it trivially easy to install on Linux machines.  I know there are faster source search tools available but this one is easy to use and works well for me.
  • Kdiff3 -  Capable free GUI file/directory comparison tool.
  • xxd -  Sometimes I need to examine binary files and this tool is readily available on Linux machines.  It can also help transfer binary files in a pinch by converting a file to its hexadecimal ASCII equivalent, transferring it, and using xxd to convert it back to binary.
  • bash - I rely on the bash shell along with awk, sed, grep, find, and other standard GNU Linux tools for the vast majority of my scripting and interactive use needs.  I rely heavily upon bash scripts to help automate much of my development process.

Apps for both Mac & iOS

Here are the apps I run on both the Mac and iOS.

  • Music - Sometimes I like to have background music playing to help mask out distracting sounds while I'm working from home.  I have a few playlists which work well for this purpose.  I buy most of my music in MP3 form from Amazon or Bandcamp and import the MP3 files into the Music app.
  • Apple Mail -  It's free on Apple devices and does a reasonably good job of keeping my mail accounts in sync between my Mac and my phone.
  • Apple Numbers -  Even though this is a spreadsheet, it can also function as a lightweight database app.  I use it to keep track of audio books and e-books I own and which I've read.  I have quite a few of these lightweight databases.  I used to use a great database app called Bento made by FileMaker which had versions for Mac and iOS.  It was discontinued in 2013 and I haven't found a replacement I like better than Numbers although I do occasional search still. 
  • Google Calendar - I like it because it seems to be the most flexible in scheduling recurring events.  For example, you can choose the 3rd Saturday of each month or the 21st day of each month.
  • Microsoft To Do -  A reasonably good cross platform to do app.

Mac 

My old Intel Mac Mini is getting long in the tooth but still manages to support some of my work and all of my personal computing needs.  Here are some of the apps I run on it.

  • ChronoSync -  I've been using ChronoSync for backups for quite a while now and I've very happy with it.
  • Little Snitch - I insist on running a top notch firewall program and Little Snitch fills the bill nicely.
  • GnuCash - Since I pay most bills electronically, GnuCash lets me keep track of my checking account easily.  I really like its ability to change the sorting from ascending to descending dates since that makes it much easier to compare with my bank's statements.
  • Waterfox browser -  I've always liked the Firefox browser for how easily its UI can be customized and for the rich set up plugins which allow safer browsing.  Firefox lost me as a user when they started on their quest to shove AI in every aspect of the browser.  Waterfox is a reasonable fork of Firefox which does not include the unwanted AI features.  I use this for all my general purpose browsing.  I also use the Chrome, Safari, and Vivaldi browsers each for a special purpose.  It limits having to worry about whether cookies from financial or social media accounts are being seen by other websites.
  • Vim - The command line version of Vim comes preinstalled on Mac machines.  I still install MacVim to make it easier to edit files and to be able resize windows.

iOS

I use the cheapest iPhone available whenever I need to replace my phone as my personal device.  I've got iOS software I depend upon to make life easier.

  • iTunes Remote - This allows me to easily select the playlist from the Mac's Music app.  I used to also use it for pausing music when I had an incoming call but now I rely upon an Anavi Macropad 10 for that purpose which allows me to pause songs without fumbling to bring up an app on my phone.
  • PCalc -  Having a calculator capable of hexadecimal and binary operation is a necessity at times and I'm not always near my Windows laptop.
  • Overcast - This is my favorite podcast app.  It has the best UI of any iOS app I can think of.
  • Audible - Listening to audio books keeps me sane when commuting to work or in warmer weather when I'm doing 3-4 hours of yard work. 
  • Libby - App which makes it easy to borrow library books.  Mostly e-books but they also have audiobooks.
  • Hoopla -  App which makes it easy to borrow library books.  This seems to have more audiobooks and graphic novels than Libby does.  They also let you borrow and stream digital movies and tv content.
  • Two factor authentication apps -  I enable two factor authentication for any website which supports it and apps such as Authy, Google Authenticator, and others make that possible.

Thursday, January 01, 2026

Computing setup, hardware focused

Since I work from home the majority of the time and my job involves writing software and firmware for multiple small embedded ARM based devices, my computing setup tends to be a bit more complicated than normal.  I'm also cheap so I've gotten almost everything on sale.

 

The picture above shows some of the equipment at home which makes it easier for me to switch between the many devices I need to use both for work and my personal computing needs.  The red surface everything rests upon is a grounded anti-static mat which is a necessity as I often need to use bare circuit boards for easy access to JTAG connectors.

  • Philips 4k monitor.  I often have ssh sessions with anywhere between 2 and 5 Linux systems simultaneously.  That many terminal windows take up a lot of screen space so the fact that a 4k monitor has 4 times as many pixels as the HD monitor I'm stuck using at the office has made working so much easier.  I got this at a good price thanks to a Black Friday sale 3 years ago.
  • IOGear KVM switch.  I usually switch between my work laptop, my Mac Mini which is mostly for home use, and a Raspberry Pi 5.  Since this is a 4 port KVM switch, that leaves an extra set of cables to connect to other devices as needed.  I had a cheaper KVM but the move to a 4k monitor forced me to upgrade to one which supported the higher resolution.
  • Mechanical keyboard.  I opted for a cheap mechanical gaming keyboard with a PC key layout and which uses Outemu Blue switches (Cherry MX Blue clone).  I find it much easier to use a PC style keyboard on a Mac than the other way around.  Since I often connect to Linux and Windows machines, it just makes more sense for me.
  • Technical Pro rack mount power supply.  This allows me to easily power on or off any individual device in my setup as needed. 
  • Raspberry Pi 5.  This is a great development device as there are much better free development tools available for Linux than there are for Mac or Windows.  That provides me with a lot of flexibility in my development and debugging tasks.  It's my favorite computer to work with.
  • Anavi Macropad 10.  This device comes with CircuitPython installed which makes it very easy to configure the key codes it can to send to my Mac.  I like this one because it's also got a rotary encoder (which can be used to easily change the volume) with a button on top to pause the music.  I often use my Mac Mini to play background music while I'm working.  Being able to pause music playback, skip to the next song in the playlist, rewind to the previous song, or adjust the volume on the Mac while my keyboard and monitor are switched to my work laptop via the KVM is very handy.  The situation which this keypad helps with most is when I get a call from someone at work and need to quickly pause the music in order to take the call.
  • Canon PIXMA G6020 All-in-One Megatank Printer - It's affordable, reasonably fast at printing, doesn't use proprietary ink cartridges, and has copying and scanning capabilities as well.  We've had it a year and are still on the original ink bottles supplied with the printer.  I think we've been through about 6 reams of paper during that time, most of it double-sided.

 

The picture above is an EDID (Extended Display Identification Data) HDMI adapter.  It causes the computer which it's plugged into to continue thinking that the 4k monitor is still plugged into the computer when it's actually switched to another computer via the KVM switch.  The EDID HDMI adapter shown above is connected to my work laptop.  I've got another one plugged into my Mac Mini.  This prevents the windows on whichever machine from being rearranged when the monitor configuration changes via the KVM switch.  More expensive KVM switches sometimes include this capability without requiring an external adapter like this.

 

 

Saturday, November 15, 2025

Whiteboard coding during interviews

I recently responded to a writer I follow on Mastodon and Bluesky who was looking for input for an article she was planning to write about interviews for embedded systems positions.  Since I enjoy her writing and I have loads of experience with embedded systems, I responded to her request.

The act of recalling various interview questions I had been asked or had posed to others made me remember some questions which I disliked intensely.  The type of question I dislike most is being asked to write code on a whiteboard to solve some problem.  I generally enjoy coding and the problems are often interesting but coding on a whiteboard is so different from writing code on computer using a good editor that I've grown to hate it.  I'd almost rather go back to the bad old days of using a keypunch to generate punched cards as source for my program.  When programming I like to start with an outline of the program and fill it in as ideas occur to me which is nearly impossible when stuck with a more linear coding environment such as whiteboard or a sheet of paper.

I've had two memorable experiences responding to requests to code on a whiteboard.  The first was the most absurd question I believe I have ever been asked in a job interview.  Apparently the company I was interviewing with had guidelines for technical interviews and the engineer asking the questions was hellbent on sticking to these guidelines.  He asked me to write an assembly language program for him.  I asked which assembly languages he was familiar with since I was comfortable with about 5 at the time.  Once I discovered that we had no assemblers in common, I pointed out that it made little sense for me to write a program in a language he wasn't familiar with but he insisted on me completing this task so he could check it off on his interview form.  In addition to it being ridiculous to write a program which cannot be evaluated, it's also frustrating trying to write a meaningful assembly language program on the tiny whiteboards available in cubicles since assembly programs tend to be much longer than those written in higher level languages.  Apparently I passed muster as I ended up getting the job.

The second whiteboard coding experience which came to mind ended far more positively.  I was asked to solve a problem in C but ended up needing to keep adding lines which is no problem on a computer but presents a huge obstacle when stuck using a whiteboard and marker.  I managed to come up with an incomplete and messy solution before they called time on me.  Once I got home from the interview, I was still bothered by my performance.  I was able to quickly code up the solution on my computer at home and emailed a working program to the VP of Engineering I had been interviewing with at the time.  He was so impressed that I had followed through with solving the problem that I was offered the job and ended up staying at that company for 9.5 years.  I still hated the initial request for whiteboard coding but was pleased that it resulted in me getting the job.

I'm hoping that the days of being asked to code on whiteboards are relegated to the past.  To tell the truth, since I'm at my last job before retirement. it won't have a huge impact on my life either way but I hate the thought of others being subjected to this absurd practice.

Friday, September 05, 2025

The benefits of a varied technical background

This week I helped a colleague solve a strange problem which he had encountered.  He was modifying some application level code which needed to read from and write to a device driver I had created to control two LEDs on our device.  Previously the application code had only written to the driver but the decision was made to control the two LEDs independently which required reading the old state from the driver prior to updating the LED state.  Fortunately I had included the ability to read the LED status since it improved my ability to debug the device driver.

The problem was caused by the need to interleave reads and writes to the device driver which under Linux gets treated as a file.  Unbeknownst to my colleague, any read or write to a file stream affects the file pointer which keeps track of the location within the file which will be accessed next.  A simple device driver has no need of the file pointer concept but since Linux treats devices as files, the standard library code which enables accesses to devices and files keeps track of the supposed file pointer even if it doesn't need to do so.  In a standard file access, I should have been able to do a fseek (file seek) to the current position between the read and write calls to fix this issue.  Unfortunately, since my device driver is very bare bones, I suspect there was extra call within the device driver needed to handle fseek calls.  I used a brute force fix of closing the device driver and re-opening it within the application code.

Somehow this makes me think of the common wisdom from early in my career which suggested one shouldn't change jobs too often lest one be labeled a "job hopper".  It turns out that job hopping has given me a very diverse background which has improved my chances of finding jobs.  Changing jobs more frequently has helped me escape from jobs where the work was boring or which placed me under managers which were difficult to deal with.

Friday, August 08, 2025

More machine language fun

When I first starting working as a Senior System Analyst at GEISCO (GE Information Systems) in the mid-1980s, they had us logging into mini and mainframe computers via terminals.  Several of the commands we had to use needed elevated privileges which required us to enter a password of the day.  In order to get this special password, they gave us a small script which retrieved this password and most people put a call to this script as part of their network login to automatically show the password of the day.  Being a curious sort, I wanted to know how the script to display the password worked.  Most people found it cryptic since it consisted of several groups of 12 digit numbers and none of the digits were larger than 7.  I knew this likely meant that these digits were octal numbers which require 3 bits each to represent.  Couple that with the fact that the groupings of numbers were 12 digits long told me that they represented 36 bit words.  Since I knew GE made heavy use of Honeywell mainframe computers at the time, I concluded that the script was some type of interpreted machine language program.  So I dug out my old Honeywell assembly language documentation and discovered that the script was a simple little program to issue a system call (MME - Master Mode Entry) and then print out the results.  To test my theory further, I modified the program to shift the characters of the master password so they would print out backwards.  It basically served to entertain me each time I logged in.  It's amazing the little challenges which I find amusing, huh?

While I was working at GE, a project was launched to upgrade the storage device on the CC (Central Concentrator) network node.  One of the tasks performed by the CC was to load software on the other, smaller network nodes and its original 2 MB device was deemed too small to handle network expansion.  Believe it or not, that 2 MB storage device was a magnetic drum from Vermont Research.  I had signed up for this project because the replacement storage device was originally specified as a 10 MB hard drive similar to those used on higher end PCs of that time.  I was anxious to get experience on these disk devices which were cutting edge technology at the time and writing a device driver from scratch sounded like fun.  Somehow Vermont Research found out about the project and submitted a lower bid for an upgrade to a 10 MB drum device.  So my dreams of writing a device driver became the much less interesting task of updating the old device driver to extend the addressing to accommodate the extra storage.  The only challenging part of the project was that the diagnostic program also needed to be updated and somehow the source code for the diagnostic had been lost.  So I was forced to read the punched card deck into the mainframe in order to print out the binary data the deck contained so I could disassemble it.  Then I had to figure out how to write a patch for the diagnostic program.  And finally, I had to figure out how to get the mainframe's card punch to reproduce the same punch card format used by the diagnostic.  For a few days the computer operators for the mainframe got used to me making multiple daily attempts to convert the binary file containing my patches into a format which could be punched in the same format as the diagnostic deck.  They told me that they hadn't seen anyone use the card punch in many years.  Each attempt required me to tweak my program to convert the diagnostic's binary data into a slightly different format.  It wasn't as much fun as I had hoped for but it did prove pretty challenging.

Thursday, July 31, 2025

The joys of machine language programming

When I started my career as a field engineer for Honeywell mainframe computers in the late 1970s, I worked a lot of swing and midnight shifts.  While day shift was always pretty busy, the night shifts were often boring.  To entertain myself, I read the CPU manuals with the goal of being able to modify the diagnostic programs used to test the computers.  Occasionally it proved handy to load one of the diagnostics and then to patch them in memory to loop through operations which were failing.  This allowed using an oscilloscope to trace signals of interest though the 80 wire-wrap boards which made up the CPU.

Eventually writing these machine language programs became my favorite pastime on slow nights.  Part of the draw was the maintenance panel switches which made it easy to read and write memory locations.  There was a definite thrill to getting a program working and watching its progress via the flashing lights on the maintenance panel.

For those who aren't familiar with low level programming, machine language programming involves directly entering the binary encoded instructions into memory locations for later execution.  More people are familiar with assembly language programming which replaced the binary programming with mnemonic names for the instructions and any modifiers.  For example, a Honeywell mainframe had an instruction called LDA which loaded the A (or accumulator) register with some value.  In machine language programming, that LDA instruction had the opcode of octal 235.  Older mainframes often used octal encoding instead of the hexadecimal encoding which is more often used today.  The other convenience offered by using assembly language over machine language is that the assembler would calculate the addresses automatically rather than forcing you to manually calculate the address offsets by hand which was painful.

My second job was as a field engineer for DEC PDP-11 minicomputers.  These smaller machines were so much less complex than the mainframes that fixing the hardware wasn't much of a challenge.  The saving grace was the PDP-11 instruction set was simple enough to allow me to quickly come up to speed on its machine language.  When I was in Boston for training, I wrote a machine language program to determine which terminal connected to the PDP-11 had had data entered on its keyboard.  Apparently the way I approached programming was different than most people's because the instructors had trouble figuring out how my program worked.

Believe it or not, the ability to decipher machine language is still useful when I have to use gdb to debug a program.

Tuesday, February 25, 2025

Configuring Windows/Mac/Linux for embedded development

A few days ago Scott Hanselman posted an interesting question on Bluesky.  He asked how much stuff people needed to add to Windows to make it useful for day to day work.  He also asked a similar question of Mac users.

Admittedly, my use case differs from that of most people.  I do embedded firmware development.  For me, my company Windows laptop mostly acts as a way to connect with the Linux build machines and target machines I use.  It's really little more than a glorified terminal except for running Outlook, Office, and Slack.

Windows

Having made the switch to a Mac at home 24 years ago, I only use Windows at work now.  On any new Windows machine, I first install the following software.  It's all free software as most companies I've worked for make it so difficult to justify the purchase of commercial software, that it's not worth the effort.

  • Gvim - I occasionally need to do some local editing on Windows and for that a graphical version of vi is an absolute necessity for me.  I've been using some version of vi for 35+ years and while I've had occasionally dalliances with other programming editors, I've always returned to vi.
  • VcXsrv - Being able to launch graphical applications remotely makes my life much easier.  That means using an X11 server.  I know there's pressure to move to Wayland but it strikes me as more effort than it's worth at this point.  It's the same feeling I have when I hear someone suggest that I try writing a device driver in Rust.  I just want to get work done, not spend time blazing a trail.
  • Putty - I need to connect via SSH or serial communications to a number of Linux machines (build servers, target systems, etc) and Putty is my hands down favorite way of accomplishing this.  I make sure to enable X11 forwarding on Putty SSH sessions because this allows me to launch GUI programs and have them display on my Windows laptop.
  • WinSCP - This allows me to easily copy files back and forth between Linux machines and my Windows laptop.  It also enables easy remote editing of files which reduces the pain of editing a file on a remote machine over a slow Internet link.

Mac

When I first started using a Mac at home, I loved the development environment which the combination of Mac OS X, Xcode, and the Quartz X11 server provided.  It was the best development platform I had seen since my days last using a Sun workstation in 1996.  Over time and Apple's push to combine features of iOS and Mac OS, it's become much harder for me to set up a reasonable development environment on the Intel Mac Mini which serves as my desktop machine at home these days.  Since most of my embedded development is done for work, that's not a deal breaker.

  • MacVim - As mentioned above in the Gvim section, I need to edit files locally on my Mac.  MacVim gives me a version tailored for use on Macs.
  • Homebrew - Unfortunately, many of the tools I've come to rely upon are only available through an alternate install path.  Homebrew gives me access to a number of development tools not available through the Mac AppStore.
  • XQuartz - This X11 server used to be available in the Xcode tools but now the best version seems to require being installed via Homebrew.
  • Unfortunately I have not found a free GUI SCP application for Mac I like yet so I resort to using the standard Mac Terminal app and the command line scp tool.

 Linux

I use a Raspberry Pi 5 at home since Linux is orders of magnitude better at interfacing with a variety of small embedded machines than either Windows or Mac are.  I typically use a pared down Linux distribution because I don't need the typical blend of applications like Open Office.  I've been using Debian Bookwork with the Xfce desktop environment.  

It's easy to install X11 apps, Gvim, and Putty on Linux.  The IT group at work has our Windows laptops very locked down so installing new software such as the GUI software for a USB protocol analyzer sometimes requires getting it approved which can take a few days.  Mac has gotten harder to run third party application software as well, much like the iOS app store which is very locked down.  Development goes so much faster when I can install any software I need without facing roadblocks.

Linux is also good at doing compiles for the firmware and application software I create for the newest embedded ARM device at work which is also an ARM 64-bit processor.  It has better USB support too.  Windows often requires the installation of device drivers for various USB serial devices which can be hard to do when using a laptop with limited admin rights.