Only driven from time to time

Image for post
Image for post

DeLoreans for sale, week of November 23th, 2020. Updated every Monday (or so).

I am not responsible for the content, accuracy, etc of the sales. Contact the sellers for more information.

Scam warning

Occasional for posts may be scams. Too good to be true prices, too short descriptions or obvious mismatch plates with locations are all red flags, and the buyer should be cautious.


Remember that a cheap DeLorean is usually a myth. The less you pay for the car, the (much) more you will have to pay later. It’s usually better to pay for the best car you can afford.

United States



Image for post
Image for post

Back in 1995 (or thereabouts, perhaps it was a little earlier), Java hit the scene, and it was the hottest thing in programming. This was a time when Pascal was still seriously taught in College (or at least, it was in mine). C++ was widely used, but perhaps not the powerhouse it was today — it was yet to get all the enhancements it has today.

And so, what did we get taught? Java? No, Modula 2. The language was a creation of the famous Niklaus Wirth — a kind of bastard child of Pascal and quasi object-oriented ideas that didn’t really pan out (remember that both Smalltalk and C++ had been around for more than a decade already). …

Note: I am not a doctor or nutritionist, just someone who does a lot of research. You should do your own.

All cholesterol in food comes from animals — and by all accounts, way too much of it. Put differently, if you’re vegan like I am, then you get precisely none in your diet, your body has to manufacture it all.

There’s ton of pages out there explaining about “good” and “bad” cholesterol, for example this one:

Plus many not so great sources, but they point out that excess in our diet is really bad for us. That’s been known for a long time. Not so much what happens with vegans, where the intake is zero. So first, some numbers. When you get your blood tests for physicals, there are many things doctors look at, but headline numbers include blood pressure and your cholesterol numbers (also called a lipid panel). As usual, there are recommend values for these. Measurements are in milligrams per deciliter (mg/dl). …

Image for post
Image for post
Will it fall over?

Never underestimate the role of luck in correct software operation

Yes, I made that up, and yes you can quote me.

There’s a dirty secret in software development — much of it’s made with shortcuts, assumptions, incomplete testing and bad design. With time and effort, all that can be polished, but new software can do weird things. There’s a reason we have prototypes — to test ideas.

And as usual, prototypes rapidly become the real software. Or least, begin the journey towards real software. Along the way are demos, reworks, design mistake fixes or work arounds, etc, etc.

Did I mention it was a prototype? That means that the software tends to work in a very specific way, with a good wind behind it, and a good deal of luck. Prototypes have a way of working perfectly the very first time they are tried, and then quickly hitting the real world. …

Image for post
Image for post

“Perfection is the enemy of good”

“Optimize later”

“It’ll be OK” / “It’s good enough”

“It’ll never happen in the field”

Every hear any of these phrases? I’m sure you have. Every hear of them in reference to software? Perhaps. But if there were talking about embedded or systems software, whoever said them was gravely wrong.

Why? There are lots of reasons that embedded software has to be (near) perfect, but there’s some simple and obvious ones. …

Image for post
Image for post
Which numbers to choose?

You’ve seen version numbers in software. 1.0, 2.1, 1.1.0 and sometimes much more complex schemes. Sometimes they get confusing — is 1.1.10 newer than 1.1.2? Yes. Is 4.1a newer than 4.1? It depends.

Usually though, schemes make sense within the context of the software itself, with approximately increasing versions.

Back to the 1990s

Most of you will at least remember some of the tech from the 1990s — apart from being the start of the modern internet as we know it now, software companies sometimes liked at the time to name their software after years, or otherwise play one-up games. This is why it’s called “Windows 95”, for 1995 (duh!) and Windows 98, Windows 2000, etc. …

Image for post
Image for post

Computer systems sometimes need to be upgraded in part or in whole. To fix bugs, plug security holes or add features. You’ve all seen this.

On embedded systems, the approach is to often upgrade the entire system — all the software running at once. There are countless ways this can be done, and too many to detail here, so I’ll just focus on a couple of simplistic approaches for the sake of this story.

A computer system doing its own upgrade can be a little tricky. The phrase sometimes used is “changing your underpants whilst running”. For a very constrained system, the new software image (or just “image”) needs to be downloaded into memory, then all unimportant systems shut down. The new image needs to replace the filesystem on permanent storage somehow, and then a reboot or restart into the new system needs to take place. …

Every developer who starts with threading soon learns about the necessity of locking structures. The reason is pretty simple — if your program has two threads of execution, and there’s any chance at all one of them will alter the structure, then you need to lock between them.

Image for post
Image for post

The exact way you do this varies a bit by language, but the old school way of doing this in C and C++ is with a boring mutex, which you claim before you access the structure and then release after.

Without such locking, there’s a chance that one of threads can alter the structure whilst the other is part way through reading — if that’s pointer, or there’s assumptions about the atomicity of the values, well, bad news if you can’t control the sequencing. Even if it’s “incredibly rare”, or “one in a million” or whatever you want to tell yourself, it’s probably going to happen, and the consequences and likely crash are going to be unpredictable. …

“It doesn’t work”, and other ineffective bug reporting techniques in an age of agile development.

Image for post
Image for post

When I started my software career in the late 1990s, the ideas of bug reporting weren’t new, but in the 20 years since, much has changed with agile development, newer software systems and ideas about tracking software and tasks.

In particular, there was the following seminal classic by Simon Tatham back in 1999:

Even now, (or perhaps, especially now), Simon’s comments remain relevant, and this has always been the article that I’ve referred people to. However, after years of software development, and working closely with QA engineers, and with reference to newer reporting systems, it’s time to make my own version, especially since I haven’t been able to find anything that is as comprehensive as what I want to articulate here. …

And stupid answers.

Vegans get asked the same questions over and over (and over). People are finally starting to get it, and of course I could do a serious article here, but there’s already too many of those. So here’s my version.

Why are you vegan?

You haven’t figured this out yet? Animals, health, science. Oh, and the biggest issue for the next few hundred years! Climate change.

Isn’t it difficult?

Yes, but mostly thanks to people who ask that very question.

Where do you get your protein?

Please, first slap yourself. Second, my food.

But how do you get enough?

I just do. Let me know what protein deficiency looks like. …


Peter Naulls

Vegan, IoT, Coffee, Lego and DeLoreans

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store