It wouldn’t be a proper Thanksgiving (with apologies to those outside the United States) without a good debate. To that end, I’ve assembled my observations from watching the DeLorean market for the last 18 months or so, as well as my record keeping starting this summer.
To come of these conclusions there are necessary assumptions that have to be made that might never be resolved. First let me state that there’s an awful lot of opinions about where the market is going. I’ve variously heard that the market is going to take a tank (no), it’s really going up (not really) or prices are the same they were some years ago (aka “that car is too expensive”) — also no. …
This is very much a work in progress. This was originally posted to DeLorean Fanatics Facebook group.
I’ve been asked by a few people recently how to sell a DeLorean. I’ve never done this personally, but I have looked at an awful lot of DeLorean ads, so I have an idea of what works and what doesn’t.
First off, if you aren’t ready to sell your car because you’re still attached to it, then do us all a favor — don’t sell it! I know there’s a lot of emotional attachment, so if you aren’t sure, then it can wait. You’ll just be wasting everyone’s time and causing yourself grief. …
DeLoreans for sale, week of January 25th, 2021. Updated every Monday (or so).
I am not responsible for the content, accuracy, etc of the sales. Contact the sellers for more information.
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.
DMC locations often have cars with unlisted prices. …
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). …
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. …
“Perfection is the enemy of good”
“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. …
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.
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. …
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.
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. …