Oh, Amazon… you so funny…

I use Amazon for everything.

Seriously, everything.

Well, except for certain food-stuffs.

So, anyway, I’ve observed that Amazon is placing a greater dependence on USPS to help with the package deliver. When it was FedEx or UPS handling delivery, the tracking info was spot-on.

If we were to go out to retrieve a delivered parcel, and find it’s not there, it means one of a few things: It wasn’t delivered. Or, it was delivered but snatched by porch-pirates. Or it was misdelivered.

But now with USPS is in the mix, the tracking info is, well, less than spot-on.

Now it says “Delivered” or perhaps “Your package was delivered and is ready for pick up” but neither of them mean that it was delivered at all. Now what it likely means is that the parcel was handed off to the USPS to handle the last-mile delivery to the consumer.

Delivered could well say, “Your order is somebody else’s problem now.”

So, we’ll return to the old-days of “we’ll get to it when we feel like it”. And don’t even think about the number of packages that will be eventually discovered in dumpsters or wastebins.

That’s Descriptive

Well, that’s descriptive/helpful/informative/useful. Not. Likely the result of multiple If/Thens but without the the significant but often ignored “what-if”… also called an Else.

Screen Shot 2019-02-02 at 12.11.51

Maybe you could give the user some hints to help resolve this descriptive “Something went wrong” error that occurs continuously.

Take some RISC

CPUs are insanely inefficient.

Fast, yes. They run at billions of calculations per second. But they also carry around a bit of bloat.

Bloat is one of the biggest tiny issues affecting tech today.

A CPU — Intel and AMD come to mind — have instruction sets that are rather large. It takes energy to cart all of those instructions around. Even when they aren’t used.

Without consideration of the concept of word-size*, we refer to them by an addressable bit-length: 4-bit, 8-bit… 64-bit. But let this sink in for a moment: a 4-bit instruction set is only 16 items (actually, a two-byte word)*. That actually represents a list of 16 (actually 256) possible instructions from which to draw. From those foundational instructions, we’ve managed to design and accomplish a great deal.

* yes, I know that it’s still dependent on word-size, linear, and physical address space. This is meant to be a rant and is a gross generalization

Consider the process of moving to a new memory point, reading a value, add it to a value at a separate location, putting the result into a new memory location… maybe 63 steps to do a particular ask.

And we want to do more. Decades ago, we observed that the way we were writing instructions was, in fact, insanely inefficient. The same process was repeated some number of times so we decided to expand the instruction set. So, rather than have compute cycles consumed by the common work of interpreting and reinterpreting our instructions, we could simply increase the number of instructions it could do and use a hard-coded function instead.

It’s identical capability, but it’s now a single instruction built right onto the chip. Instead of needing 372 of our steps to accomplish a particular task, it may actually need just three. It’s substantially more efficient.

And with the current swath of CPUs available, it’s ballooned to a 64-bit instruction set (actually 48-bits). Doing the math? That equates to an addressable set of millions of possible instructions. Of course, the list isn’t full — it still has necessary blank spots that literally do nothing at all. And there are so many hard-coded instructions available it’s unlikely anyone knows exactly what’s on the list.

But that one chip will still do anything one can currently conceive of.

Can’t select an instruction to do something? Write code that leverages the other instructions to do it. But you’re going to have a small performance hit. It’s so small, you won’t even notice it — the thing runs at 3-billion operations per second. How bad could it be?

For a price in either case (before or after hard-coding the process). It’ll also need to spend some time carting those instructions around. It’ll result in inefficiency and power consumption just keeping them at the ready… about 65 watts per chip package.

Unless you want to throw out those entirely-unneeded architectural instruction sets. You’ll be looking at designing a new chip with a reduced instruction set. Hmm, what if we call it a Reduced Instruction Set Computer?

Intel & AMD’s x86 architecture — where the x86/x86-64 is, in the current age, the family name and doesn’t refer directly to the instruction-set size — have onboard the entire possible set of addressable instructions.

But if you shift to a RISC-based system that includes in its instruction set most of what you want to accomplish, and isn’t taking up resources to keep uneeded capabilities alive, it’ll be more efficient.

So, what could consume a 65-watts per CPU package with AMD’s & Intel’s desktop-class packages (server-class is about twice the draw) and provide incredible capability, there are RISC packages that can outperform them while drawing only about 10-watts.

Take some RISC and move away from these monolithic architectures.