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…
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…
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…
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…
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.
“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…
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…
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…
“It doesn’t work”, and other ineffective bug reporting techniques in an age of agile development.
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…