Ko-fi

Wednesday, 27 March 2019

Is your code eco-friendly?

Do you realise that poorly written software is a contributor to global warming?

Although I have absolutely no data to base this on, please, read on... I assure you that you will not only conclude that this is a true statement; if you code, you may even feel compelled to write better code. If that's not enough of a hook, I will introduce to and encourage you to use, this hashtag in your code reviews:


#cowfart

Let me set the scene...


There's a lot of software out there, running on billions of devices across the globe, and sadly, a lot of that code is not optimised.

Back in the day when we wrote in assembler on tiny 8-bit computers we would count clock cycles (honestly; it wasn't just me!) and refactor, refactor, refactor... until we got the best oomph out of the CPU that we could.

As if by magic, computers started popping up everywhere and hardware started to get really fast. And cheap. Suddenly, it was not about clock cycles. It was all about time-to-market. Get the code cut fast, get it released, and if it didn't run very well, upgrade the hardware!

It really was that simple for a long time; certainly for most business software anyway. Games, well that's different because if you have lag... you suck. Well, your game does, and it won't sell. In business software, having things take a while isn't necessarily a problem... more time at the water cooler, more time to do all the admin things.

Sidenote: I would encourage every budding programmer, and even seasoned programmers, who have only worked in business application development, to do some games programming. The techniques you will learn in order to survive out there are transformational.

Technology has moved along at a rapid pace. Astonishingly fast, and astonishingly cheap. And the world, largely, depends on it being that way.

The plot thickens...


Thing is, we've got big problems out there.

With climate.

Okay, not just with climate; other big problems are available.

You don't have to just believe in it anymore either; it's fact, evidenced in the starkest possible ways.

We take a tangent...


Before we get back to my main point, I did promise you a cool hashtag to use in code reviews.


#cowfart

Why? Well, because it is believed that cows are a significant contributor to global warming because there are a lot of cows out there. And they fart. Quite a lot actually. There are many articles and research studies about it.



Okay, okay... cows fart, hardware got better, people stopped counting clock cycles, and released products faster... get to the point already!

So, here's the thing...


If you write sloppy code that does not perform as well as it could, it will take longer to execute. If it takes longer to execute, or if it requires additional processing power just to make it run, you are using more hardware, more electricity, and creating more heat. On a single PC, meh... what's the difference, right? Time to hit the water cooler.

If you scale that up to run on billions of devices across the planet, well... that's a staggering amount of electricity, time, and heat being wasted by your code.

Although your code might not get to be in the next kernel of Linux, Windows, Android, or some other place like Facebook, where it might be executed trillions of times, that's not a good reason to write sloppy code.

Always write the best code you can, and educate yourself on performance tuning.

The end is nigh...


And so, without further ado, next time you review some code or give yourself a TODO:, and see code that you know the could be better performing...

do the polar bears a solid...
keep some habitat for the bees...
think of the children...

Won't somebody please think of the children?

And, as a fun way to say "Hey, this bit of code you wrote. It sucks. It might work, it might even read like a poem. Thing is, it could perform much better. So sort it out."... just put #cowfart in there.

Because the planet's worth it.

Fin.

Thursday, 21 February 2019

Robotic Chimney Sweep

Cast your mind back... way back... okay, no, not that far, put the dinosaurs away and bring your mind forward a little... and... there we go.

We're in 1666. To be precise, it's September 6th, 1666. And it's Monday. Oh, and London stopped burning down yesterday.

In a bid to prevent that happening again things need to change, and one of those things was to start cleaning out chimneys on a regular basis. With children. Because they fit. And it turns out they are very cheap and will work long hours.

Bring your mind forward some 209 years. It's now September 1875. I don't know the precise date, nor the day. What I do know, is the Chimney Sweepers' Act of 1875 just got passed and now, at least throughout England, you're not allowed to go stuffing small children up chimney's to keep them clean.

What to do!?

Brushes. Brushes on a long stick. A very long extendable stick. That works, and with the dawn of the vacuum cleaner nearing, things are about to get a lot cleaner.

Well, that's been about it. Some improvements on the fuels being burned help improve the reduction of waste, smoke, tar build-up, and all manner of bad things; though fundamentally, there's a lot of cleaning that still needs to be done.

So it's about time for some innovation in chimney sweeping!

Roll up, roll up... here comes the robotic chimney sweeper.

I have a couple of concepts in mind:

Chimney Drone:
A drone-like bot that stays suspended in the chimney with extended rods that keep it positioned in the chimney and the drone moves up and down the chimney monitoring and cleaning as necessary; staying out of the way of the heat.

Chimney Bug:
A bug-like bot that sticks to the chimney wall and travels around the chimney continually monitoring and cleaning.

Both will monitor airflow and temperatures, toxin build-up, and have lights and cameras for monitoring the internal structure of the chimneys.

Concept (c) 2019 letsbuildathing.com

Wednesday, 20 February 2019

Data folding... yet another compression method

Recently, I wrote about a compression technique I've called "Iteratively Sequenced Data Compression" making magnificent claims about the level of compression it could attain.

I have another compression technique using [spoiler alert!] folded data structures. I'll explain what I mean by that shortly.

For this technique I won't bore you with a back-history of how I got involved in data compression, nor will I make claim to impressive compression ratios because this, currently, is a little more theoretical.

It's important to remember that when it comes to data compression, we don't really care about the data itself. The data itself can go in the trashcan because it's probably too big - after all, that's why we're looking to compress it right?! All we need is to remember is how to reconstruct the data once we're done forgetting about it. That bit is really important. So important in fact, it deserves a line of its own.

Forget the data; just remember how to reconstruct it.

So, with that in mind, what do I mean by folded data structures?



Imagine you have your data in one nice long strip. Easy enough.

Now imagine you start wrapping that data into rows, essentially like word-wrap on your fave text editor. Also easy.

Okay, so now imagine you had that data printed out on a piece of paper. Also not difficult to imagine.

Hold tight folks, here's where it starts to get a little more tricky.

Now look for a way of folding that piece of paper such that you align common values and drive a skewer through the paper to hold all those matched values in one place.

Let's further imagine you tried folding that piece of paper many different ways until you landed on the optimal folds to get the maximum continuous strip of values on your skewer.

Remember the value you skewered and the folding pattern. That's your first folded data item.

You can forget about that chunk of data now, so go ahead and erase all the data you just skewered from your piece of paper.

Go ahead and repeat this process of finding the optimal fold; remember the value and the folding pattern. That's your second folded data item. Forget the data you just skewered from the page.

Do it again. That's your third. Keep repeating this until you have skewered all your data.

You will find that as you reduce the data by skewering it off the page, your folding patterns become easier to spot, and less complex, so the process becomes faster the more you work through the page.

Once you've got all your folded data items, simply concatenate them and pop them in a small file.

Easy!

All you've had to remember is the skewered value and the folding pattern; which can then be unfolded back out all the way back out to that continuous stream of data that you started with.

So what this technique effectively does is allow you to do run-length-encoding across a landscape of data that, as a continuous strip, could not make the best use of high run lengths; which is therefore sub-optimal. By folding (or crinkling) the data in the right way, you can maximise your run-lengths to get highly effective compression.

Hypothesis:

  • Compression will be intensive and slow, whereas decompression will be fast.
  • Splicing byte values to enable layering of data prior to folding would improve compression and performance.
  • The compression method could be iterative to produce progressively smaller content.
Concept (c) 2019 letsbuildathing.com

Tuesday, 19 February 2019

When you need "big" and infinity is "too big"

Today I came across a lazy calculator. I asked it a simple enough question, and in response, I was informed that the answer was "infinite"... and that is a wrong answer.

It is not infinite. It is just big. Really big. Some would even say mind-bogglingly big.

The fact is, the calculator was lazy and just could not be bothered to work it out. The thing is, I use calculators to get accurate answers fast. I don't expect my digital buddies to be workshy.

I would have preferred it display the shrugging emoji than an infinite symbol because that would have at least been truthful, and amusing.

Therefore, we need a new symbol for "not as big as infinite, just mind-bogglingly big, so big we won't even work it out, so let's just look at this snazzy symbol instead, kinda big"... you know, for when the shrugging emoji guy just won't cut it.

To which, I have come up with this:

The Less Than Infinity Symbol

Besides, I really need the answer to not be infinite because I'm writing some code and need to reserve a chunk of memory and my calculation was to tell me precisely how much memory I need, and well, I suspect asking to reserve an infinite amount of memory will not have a favourable outcome.

>Hey, computer: Remember all the stuff

Nope.
>_

Friday, 15 February 2019

Iteratively Sequenced Data Compression

I first came across data compression back in the 1980s, some 5 or 6 years after first being awestruck by this thing called a computer.

At the time I was very young, and these computer things were new - and, by all accounts, a pretty big deal. I was fortunate enough to have one at home that I shared with my brother. It was a BBC Micro Model-B from Acorn Computers. Go Acorn!

It was awesome.

This thing was competing with a trusty BMX, He-Man, haunted house exploring, and lots of shenanigans. So it really did have to be awesome to get a look in.

It had 8K of memory. Eight freaking K. An unimaginably large number of transistors that you couldn't dream of filling! Right? Well, no. It turns out that you run out of 8K memory pretty fast... even back in the day.

Back then I was writing 6502 assembly language, dabbling in the 8-bit games industry, designing graphics on graph paper with a pencil (until I wrote a frickin' nifty sprite editor), and maps, because dammit, I was a games programmer! High school and night classes at college were just a necessary pastime. Game programming. That was going to be my life.

And then in 1988 Superior Software brought out an amazing new game called Exile. It was literally a game changer - no pun intended. It was a great game, with many hours and fond memories with buddies spent trying to get to the end of it. I believe it was the first, or one of the first games, that sported an early physics engine... gravity and inertia at least. It was amazing. The graphics were, by 8-bit 8-colour standards, intricate and plentiful. The map was huge. It broke so many rules of what was possible.

All of that was, of course, fascinating and made for a great game.

Only I like to learn and tinker. So tinker and learn I did.

One of the claims that this game made was around the size of the graphics, the size of the sound, and the map. The numbers were staggering - significantly more than 8K!

Whoa!?

How does that work, I thought. It won't fit.


I pondered.

I reached out to friends.

We pondered together.

It did not make sense.

Back then, there was no Internet. There was not an endless amount of resources, or of people doing this stuff to reach out to, especially not outside of universities.

So I took to doing what I would always do in these scenarios. Take it apart. Take a look. Figure out what the hell was going on.

I was pretty resourceful when it came to getting into computers and code, and by this time I was a dab hand at reading machine code; not just assembly language, I mean actual hexadecimal compiled code and understanding exactly what it was up to - often printed out on reams of dot matrix printer paper that I would read travelling about in the back of my parents awesome Rover 2600. Pretty geeky. To be fair, 6502 machine code was a hell of a lot more simple compared to today's machine code, and you had to know it back then to figure out clock cycles and see where you could save the odd millisecond.

Anyway, the point is, Superior Software got all of this content that was bigger than the thing it was going in to by using compression. I genuinely agonized for some time how a bit would get smaller than a one or a zero, came to the conclusion it couldn't, so went to the byte level, and I was still stuck. So then I did some tinkering. You may choose to call it hacking. Whatevs. That, along with talking it through with a buddy, came up with the realisation of what is now known as RLE; run-length encoding.

It's a very basic compression technique whereby you don't store the data itself, rather, you store the pattern of data.

Mindblown.

You don't store the data.

Mind. Blown.

These days it's unbelievably obvious of course and a very basic algo.

Data is quite often a series of the same value, particularly in graphics, maps, and sound. So for example, instead of storing 28 zero's for a strip of black in your image, you store the number 28, followed by the number 0. Then your code decompresses it by reading the 28, 0, and expands it back out to 28 occurrences of 0. The thing is, you only stored two bytes (the 28 and the 0) instead of 28 bytes (28 consecutive 0's). So if you do that across your entire set of graphics, sound, and map data, you get something big into a smaller space.

Easy.

Or rather, easy when you know how.

So... that's a very long intro to a possible new compression technique that, I hasten to add, would make a pretty neat TED talk intro. The important part to take away is this...

You don't store the data.

So I've concluded that if we don't care about the data, and we're never truly going to store the data, and we want lossless compression, well then, let's not even go down that path. Let's not figure out clever algorithms to look at data in different ways - for example looking in cubic data not strips of data; losing quality by deciding on a loss factor and figuring out if the value is "close enough" for the loss, or breaking graphical data into meaningful slices, e.g. filter the red component of the RGB values, compress, then do green, and so on and so forth... there are many techniques.

Here's the thing...

All we need is an established public library of bit sequences.

I've long held the belief that every image, and indeed every sound, can be generated through tedious incremental change; therefore all the patterns of data already exist.

To that point; all data that will exist already exists.

Don't dwell on that, just run with it and maybe I will write about that some other time.

To record massive data sets as single sequences would be borderline silly because of the indexing time required. So we break the full data set into sensible, optimised, chunks. Then we simply index them against our established public sequence library. We do not store the sequence library itself because they are established public sequences, and remember; we do not store the data.

Then you repeat the process on your newly generated sequence because there will be a public library sequence for that too. You continue to repeat the process until you have an incredibly tiny amount of metadata where all you need to store is the iteration depth and the sequence numbers starting with the seed sequence. Decompression would be the reverse process.

The resulting compressed data only ever consists of metadata to describe what the data was when it did exist.

The public sequence library would contain multiple sequence lengths, so you would check your data size, compare it to the library length that best fits, and as you iterate and compress you step back to the next smallest size until you run out of practical compression.

So depending upon the chunk size for the sequences, a multi-gigabyte file could easily be compressed to a few kilobytes at most, possibly even bytes.

Imagine being able to download an entire UHD film in mere seconds over the crappiest of narrow bandwidth, and saving a decade's worth of images on a tiny drive.

That would be awesome.




Concept (c) 2019 letsbuildathing.com

Tuesday, 12 February 2019

Digitally Synthesised Telepathy

Telepathy has long been debated and routinely unproven and proven, and has oft been a subject of ridicule; left to sci-fi and the paranormal to explain.

I think it's a very simple concept to comprehend without getting all weirded up.

Ansonlobo [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0)], from Wikimedia Commons

Telepathy is the ability to communicate between two or more minds without written or oral communication; mind-to-mind communication. The dictionary definition refers to "known senses".

A typical telepathy test would consist of two subjects purporting to be telepathic and an observer. The subjects are not able to see, hear, or "knowingly sense" each other. "Subject A" looks at a randomly selected card with a shape on it. They communicate what they see telepathically to "Subject B", and "Subject B" describes the shape. The observer, well, they observe. They see the card that "Subject A" saw and they validate that "Subject B" describes it accurately. A 100% consistent pass rate over multiple repetitions means that it's possible. Goof it up and it's not possible.

Some argue it's possible. Others argue it's not. Both cohorts will be able to prove their agenda.

Here's the thing...

When people talk about telepathy, what they really mean is "organic-telepathy". The ability of two organic beasties to communicate together. Doesn't have to be humans.

That's the same definition, only I added "organic" to the mix... so you know what's coming up next, right?

Let's talk about "digital-telepathy" for a moment.

Whoa! What!? Digital telepathy!? Pfft.

Okay, okay, wild, I know... wait up though... let's talk about, radio. Let's talk about WiFi. How about Bluetooth? The list goes on.

Yeah, yeah, I hear you definition-sticklers out there... there's no "magic" in this supposed "digital-telepathy" because it's "known" senses. It's clever stuff that has taken a lot of clever minds to master and get to the point we're at now with digital communication.

So if it's not hard to comprehend digital devices communicating without any physical contact potentially across millions of miles (think space stuff floating around out there talking back to Earth) without a problem, then why is it so hard to comprehend that this is not possible to do organically?

Fact: We know there is a lot about our bodies that we don't fully understand yet.

Fact: We know we have body parts that we can't really explain the purpose of (the appendix for example).

Fact: We even have new organs being discovered that we've so far missed (the interstitium for example... for real!)

Fact: We know some people have different physical attributes than others... we're all very similar; we're not the same though, and that's one of the things that makes us all interesting and beautiful in our own ways.

So, how hard is it to imagine that some people may possess the ability to communicate thoughts (data) through a similar method to those that our digital creations already can?

Imagine some people have a "thing" in their body that allows telepathy that others don't. Imagine that we all do, only we don't know that they're there. Imagine that some us know how to use the "thing" and others don't.

It's not that far fetched.

Based on the facts above we could legitimately come to the conclusion it would be nonsense to suggest that it is simply not possible.

Now here's where it can get really interesting...

Imagine that organic-telepathy is possible between species. In a digital-telepathy world, a smartphone happily communicates with a TV or a sound system, or even a printer (really people?! printers... still!?) not just other smartphones.

Imagine an augmented-telepathy world where we've not really mastered or realised organic-telepathy so we augment our bodies with a digital capability to provide digitally-synthesised-telepathy.

Stop! Let's take a moment to marvel at the name "digitally-synthesised-telepathy". Okay, move along...

Shock horror... we're almost there folks! The smart devices that are emerging today are not too distant from digitally-synthesised-telepathy. We can control digital devices through thought - controlling a mouse cursor on a screen through thought alone is practically old hat now. We can communicate through an array of digital technologies. That's so old it's almost dull. We have digitally enhanced experiences all around us. So really, what I'm suggesting, is that we just need to glue a few clever things together and digitally-synthesised-telepathy will be a thing.

Still got an appetite for something even more interesting to ponder over?

Imagine a world where digitally-synthesised-telepathy is here... okay, here goes...

How do we retain our right to privacy?

How do we ensure our thoughts are not hacked?

How do we differentiate between thought and communication? The voice in your head when you read... that's a thing... would digitally-synthesised-telepathy know the difference?

How do we legislate?

How do we avoid pop-up-thoughts becoming a thing, like the pop-up-ads of today?

How do we avoid DDoS (Distributed Denial of Service) style attacks on our inbound comms? Imagine the noise that would create in your mind. Are people suffering from particular mental illnesses actually organic-telepaths that are experiencing a form of organic-telepathy hacking? Those unexplained head-voices might just be a filter-door swinging on the hinges, or being forced open.

It all sounds so very useful and exciting until you start asking the tricky questions.

Concept (c) 2019 letsbuildathing.com

Sunday, 3 February 2019

I am not a feminist, and here's why...

I am a guy. I am a dad. I am a son. I've also had the privilege of being a husband.

A dad with daughters. A son to a mum. And a husband to a wife.

For the women in my life, I should be a feminist.

I'm not.

Why?

Because I'm also white. I'm also straight. I am English speaking. I am educated (some may argue otherwise). I am in very little danger of starving (nobody would argue otherwise). I am not in a warzone (yet). I have a home. I'm a little bit Bhudist. I have opportunities.

So because I am all these things as well, I cannot be a feminist.

I am an equalist.

Think. Share. Fix. Change the icons. Repeat.

A world without borders does not mean you give up your heritage. A world without poverty does not mean you give up your wealth. A world with an abundance of food and shelter does not mean you will starve and have to surrender your home. A world with mixed language, ethnicity, and belief systems, is just a world with more expression, feelings, and empathy - nobody is forcing you to subscribe to anything different. A world where people are free to love who they love does not make you gay. A world where everybody has the opportunity to receive an education does not make you stupid. A world without war does not make you a peace-lovin' hippie.

Here's the thing...

I want my daughters to grow into themselves, in this world, unconstrained by 'isms that have no place.

I want everybody in my life to. Even those people I don't necessarily get on with, because if they too were living in an unconstrained world, well, perhaps we'd get on better.

So I propose we build a world without 'isms.

This isn't remotely close to a new idea, so maybe we just need to figure out what the problem is and take it from there.

One step at a time.

Because the only way to fail is to not start... and pretending to do something; well, that's not starting.

Monday, 28 January 2019

Oh, sugar! (an open apology to my kids)

As I was causally swooshing around the Internet, as one does from time to time, a video grabbed my attention as something that would be funny to watch.

Here it is...


...and my initial reaction as I started watching it, was to chuckle to myself. Some of the reactions are pretty funny.

Spoiler Alert: You're possibly about to stop reading and say something like "Oh shut up, stop being so dramatic, it's just some frickin' soda." And that's okay because I believe in free will, choice, open thinking, freedom of speech, freedom to choose, and all that good stuff. So... if you're about to go on a rant about my reaction, m'kay. Comments are around here somewhere, feel free to react - just try to avoid reacting without thought #lifelesson

Then it hit me.

Not long after it started I immediately started watching it differently. More in the manner of "what the actual f...!?"

Here's the thing...

Replace the soda (pop) with cocaine. Or heroin.

"Do you remember your child's first hit?
Oh, how we laughed!"

Not funny, right? Right.

Now don't get me wrong, there are levels here... I get that. It's somewhat different to compare giving your kid a sip of Coke, Pepsi, or whatever than to inject them with class A narcotics.

Your child's brain doesn't think so though. That addictive, habit-forming, needy bit. That doesn't care that it's a perfectly normal legal sugar rush that everybody is doing.

For transparency, I drink a lot of soda. A lot. Far too much. And I know it. I know what it does to me, and I know what it does to my body, my emotional state, and have done cold-turkey soda-free stints from time to time. As I write this, I know I have some Pepsi keeping cool in the fridge. I am a self-confessed and self-aware soda and coffee, addict.

Fortunately, it's not heroin, so I can take it or leave it.

Not everybody can though. For some, and especially for children who don't get to chose what's bought or given to them, it's not as easy as simply deciding not to have it. Personally, and again I get that this is not on the scale of class-A drug addiction, I have been very aware of being really unhappy when I've not had ready access to soda as-and-when I want it. And I know I've been very unpleasant to be around as a result. That's pretty shocking on reflection.

I'm not a preacher, and I'm not going to tell you what you should or shouldn't do if you have kids or are in a position where you are essentially in control of what somebody else consumes.

I would like you to think about it though.

Whether it's alcohol, drugs, nicotine, caffeine, or simply sugar... simply sugar... an addiction is never a great gift for your children.

So if I had a second chance of raising my kids again, I'd like to think I would do some things a little different. I wouldn't have started giving them soda so young because I do believe it would have been better for their health.


So... to my kids...

Sorry. I know more now than I did then, and I wish I knew more then than I did. Now go and eat & drink some wholesome, healthy, organic, and sustainable stuff... we did a fair bit of that too, mixed in with the bad stuff... do more of the good stuff. - Dad x

Tuesday, 22 January 2019

Sliced bread, and the "best" measurement system

How many times have you heard, and probably used the phrase "Blah blah blah is the best thing since sliced bread"?

Ack! This is such a floored way of measuring how "best" something is.

It's a measurement that's now been in use for almost a century. Did you know that the sliced bread machine was invented back in 1928? Technically it was invented 16 years prior to that, only it got in a fire and nobody had the good sense to claim that they'd just invented the sliced toast maker instead. Pfft.

So I got beef with this measurement system.

Why?

Well. Here's the thing...

If it was such an incredible breakthrough that we've cheerfully used "sliced bread" as a measurement of innovation, why on Earth did it take 16 years to re-invent it!? Surely we'd be all over that thing!

Suspicious (-_-)

In the past 90 or so years, we've seen incredible inventions and innovations happen. Arguably better than sliced bread. Moreover, just one year before, in 1927, the TV made an appearance, way earlier than that in 1876, the telephone.

Sliced bread trumped the telephone and the TV.

Suspicious (-_-)

I am utterly convinced that I would not be able to email, text, WhatsApp, and whatnot, without the telephone and TV having been invented. And yet, I reckon, with just a little faffing, I could still have the occasional sandwich though - y'know, without sliced bread being a thing.

So I maintain my suspicious musing (-_-)

Other notable inventions since sliced bread that appear not to have made a mark include the programmable computer, 1936-38. In the 1960s the beginnings of the modern day Internet started being kicked about. Still not better than sliced bread.

Hella suspicious (-_-)

The first time we stuffed a human into space? 1961. Not. Even. Close.

Very suspicious indeed (-_-)

Lasers... 1960. MRI scanners... 1970s. The list of things that I, for one, would say have a "best" rating above sliced bread goes on and on longer than a 1980s Ariston advert.

It is all very suspicious (-_-)

Now, one might be inclined to say "Wait up... the saying, as you pointed out at the beginning is 'Blah blah blah is the best thing since sliced bread'". So by that very nature, should somebody incantate those magical words, in that very moment, the "blah blah blah" in context here, IS better than sliced bread!

Whoop!

So lasers, MRIs, all those other wonderful things that should surely be more "best" than sliced bread... they might just be better than sliced bread after all.

Really though?

It's just...

Well...

If they truly were better than sliced bread, why did we not stop saying it when lasers came along? I mean, "Space cat videos on YouTube are the best thing since lasers", is just not a phrase we hear.

At what point did "Sliced bread is the best thing since TV" become a thing?

Who rated the "best"ness of these things anyway?! Whoever made the unmeasured and opinionated observation is who.

So I propose we have an official new measurement of how "best" something is, and it will be a fuzzy, stringy, spaghettified, measurement system because it's going to be a social-driven measurement system and will have a purely relative scale - we could, if we really wanted, use sliced bread as our "absolute zero" from which all other things will have a continually adjusting negative or positive "bestness from sliced bread" scale. Social trends, fashions, and economics will drive the "blah blah blah" up and down the scale over time so it will be hard to really pin anything down.

To that point, given how much of an unhealthy allergy bomb sliced bread actually is... is it really all that?

So very, very, suspicious (-_-)

Is RPA the next Y2K?

RPA.

It's a big deal.

For the unaware, the tech industry has created another acronym (because it's our speciality), and this one means "Robotic Process Automation".

What a fabulous name! Sadly it's not as exciting as it sounds. It has nothing to do with interesting devices running around being really helpful, making things, picking things up over here and putting them back down again over there for us, bringing coffee, and generally keeping humanity amused, lazy, or unemployed... or, better still, out of actual danger, doing things we perhaps don't want to do, or shouldn't do, or just can't do safely. Such as vacuuming. That ticks enough of the boxes.

No. This RPA stuff is usually all about providing a life support system to tech that's been around an awfully long time and wrapping it in products and services, almost as a life hack. It's essentially about glueing legacy systems together or hooking them up to contemporary systems, and automating tasks such as data movement between them, simulating system usage, and, well, removing the tedium of an operator which carries the benefit or reducing human error (now you can blame the machine) and doing it much faster and more efficiently than was possible before (now when it screws up, it does it at unprecedented speeds), and generally speaking, license fees tend to be cheaper than salaries. This is not an exhaustive list of reasons businesses are looking to RPA to gain competitive advantage; just some of the key ones.

So there's a lot going for it. Really, there is. And I do advocate using RPA in the right place. What business doesn't want to do more, do it faster, and do it cheaper? Outside of public transport businesses anyway (wait, did I write that out loud?!)



Here's the thing...

It's a timebomb waiting to happen.



Wait, what!? That's a strong statement.

Yeah. Perhaps.

Remember Y2K? Remember how the world was going to end because of all the systems that didn't know how to calculate 1 + 99 = 2000? It was apocalyptic scale mass hysteria. For real. To us human types, 1 + 99 = 2000 was unbelievably obvious.

There was an awful lot of checking, patching, and subsequent testing needed to refactor lots of systems to persuade them that 1 + 99, was, in fact, 2000, and not 100. Or 0. Or 1. That would just be silly.

As a result, there were an awful lot of people coming out of retirement to hit the contract market in programming languages, operating systems, and systems, where there simply wasn't the knowledge in the contemporary workforce to deal with the situation. Why? Because the world moved on. And the systems didn't. It's pretty much that simple.

So RPA is, to all intents and purposes, an enabler for forming exactly this situation. A permission slip at least; because the root causes of the problems that your RPA projects are looking to get around likely aren't getting fixed.

Rewind a moment... I used a really important word back there - refactor. So important in fact, I rather fancied using bold italics this time around.

That's the right way of fixing whatever problem you're trying to overcome by using RPA. Most people will associate "refactoring" purely with coding; altering your code to be better and evolve it as better design patterns emerge, or a more performant way of doing a thing is figured out, or new language constructs are developed. In this context though, it's also your business processes, and beyond, that likely need refactoring.

So go ahead, use RPA. Absolutely. I give it a thumbs up.

Don't do just RPA though. If you do that you are building up your technical debt (and all debts become due sooner or later!) and also your process debt; stifling the very business you're trying to improve.

So if you're employing the use of RPA, you need to look at the core reason you're using it and refactor your business model, your business processes, the technical architecture it's all built upon, your data, your interactions... everything.

Whatever you're trying to hide away or ignore with RPA, bring it out. Look at it. Examine it. Understand it. Diligently.

Get a continuous improvement team together to own what good looks like. Empower them to pull in key stakeholders, and to go do all the right things - not just the cheap things.

Your business will thank you for it, your employees will thank you for it, and crucially, your customers will thank you for it. And so will your balance sheet.

So don't let your RPA become your BAU or you'll create your own Y2K and become RIP.

And that, frankly, is just too many acronyms.

Sunday, 20 January 2019

Intelligent drivers license and revocation

It's a fact that people get banned from driving.

It's a fact that some people lose their drivers license for health reasons.

It's a fact that some people lose their drivers license because they're too old, and the law says "no".

It's also a fact that many people that, for whatever reason, drive without a valid license.

We can help prevent this from happening by using digital identification to prevent a car being started and moved without being in possession of a valid drivers license. Sure, go ahead and start the engine, get the heater warming up the car, listen to the radio, clear the windows. Just don't drive. You're not allowed. Use geofencing to permit recreational driving on private land where the law permits.

Imagine your driver's license is the car key. Using this technology would also allow remote banning or revocation of a drivers license, which could be useful in a variety of situations; not turning up to routine health checks to determine capacity to drive, not turning up to a court appearance for a potential driving ban, automatic banning for driving under the influence of drink or drugs, absconding from bail or prison.

Also, tie valid insurance to your license.

Invalid licence, no driving. Invalid insurance, no driving.

Using technology for prevention is better than using technology for a cure... and you can't cure death caused by a driver that should not have been driving. You can take steps to prevent it from happening though.

Concept (c) 2019 Let's build a thing

Saturday, 19 January 2019

Why I stopped writing LinkedIn articles

Last year I started writing LinkedIn articles.

I'm not really sure why I hadn't started years ago, because I like to write. Well, I say that; really I think what I like, is sharing my thoughts with anybody that will listen. Or read.

I managed the grand total of maybe three or four articles before stopping. Which, let's face it, is not very impressive. Almost tragic even! Not almost. It is tragic.

There are a few reasons I stopped, and here they are in no particular order of importance...

  • I was hugely disappointed by the way an article got significantly less traffic than a regular post... to be fair, it could just be that nobody was interested in my articles - and that's okay. I did a little digging, and it seemed I wasn't alone - so yeah, that bugged me.


  • The fact that there are "articles" and "posts" is a little silly. I fully understand the difference, and the intended use of each. Nevertheless, just have "posts", like every other platform. Some will be one-liners or re-posts, others will be full-fledged ramblings. I don't start my car with one key to do a short journey, and another to do a long journey - that would be an absurd customer experience don't you think? What happens if I use the short journey key, and as I go down the road, realise I want to do a long journey. I've got to pull over, change keys, and go again... that's even more absurd.


  • You can spend a long time researching, writing, editing, and all that jazz, and there is no way to monetize your efforts. Being able to would be nice. Personally, it's not why I write. It would, of course, be a happy outcome though, even if it wasn't raw cash and took the form of credits towards a "Freemium" account. If monetization is a thing... well, it's well hidden, and if it is a well-hidden secret, or an opportunity open to a select few, well, that's nonsense in itself.


  • I get annoyed with the annoying number of clicks it takes to get to the article writing bits. I can write a "post" very easily, and yet getting to my draft articles is just that bit more annoying than it ought to be because it should not be annoying in any way whatsoever.


So there we have it, I no longer write LinkedIn articles.

I do however continue to digitise my thoughts and do my bit to fill the Internet with stuff and nonsense, and the occasional very professional view of the world. I just choose to do it in something else, where I will, as the fancy takes me, share on LinkedIn... as a post.

Symbiotic Reality

On the one hand, we have augmented reality, which is all about living in the real world with a digital overlay.

On the other, we have virtual reality, which is all about being anywhere and nowhere all at once - a fully immersive digital world capable of breaking the laws of physics.

Both offer a digitally enhanced life experience.

Which is pretty cool.

Thing is, in a world now capable of alternate digital realities, I feel compelled to have three hands.

So, on my newly formed third hand, we're having Symbiotic Reality!

Symbiotic Reality is all about embracing the capability of augmented and virtual reality, blended together, to create new social constructs and experiences.

You have augmented reality experience creators that are fully immersed in a digitally enhanced world who are able to interact with real-time digital experience consumers, and that's where the virtual reality comes in.

For example, somebody goes to an event and interacts real-time with whatever the event is, which could be a gig, the Olympics, a war zone, or skating around Central Park - they could be an active participant, or the main event themselves. When they look around they will be able to see their audience, their followers if you will (Sound familiar? If not, check out my earlier posts), have interactive dialogue with the people that are virtually there, and the digital consumers are, to all intents and purposes, right there with the creator; able to see, hear, and interact as if they were there. Only they're a little safer from the war zone issues.

Imagine the empathic effect of a live news story as a tragedy unfolds, and you, as a digital consumer, are right there, real-time, as it happens. It would be revolutionary.

On a less dramatic scale, you could be in a virtual yoga class, fully immersed and able to solicit feedback real-time in a group environment, only the studio is miles away, inconvenient to get to, and you're an introvert or suffer from agoraphobia.

The possibilities that Symbiotic Reality opens up are endless.

Unashamedly Relevant Promo Op: Check out Fake Me There, a start-up all about making use of Symbiotic Reality.

Concept (c) 2019 Let's build a thing

Augmented Reality Followers

Inspired by the recent post about augmented reality stalking prevention, this is almost the polar opposite.

Imagine being an influencer, and through the powers of augmented reality, you're able to have your followers around you all the time. Hoards of them! Well, if you're really popular anyway. I mean, if you have just one follower, well, you've probably just got yourself a stalker.

Anyway, you could go do your stuff and invite people along - you have the augmented reality view of the world where you're doing your thing in the real world and can see your followers around and about you, and your followers can use virtual reality to be there with you.

M'kay... roll on the next post - I've had an idea.

Concept (c) 2019 Let's build a thing

Digital Stalking Prevention Solution

Now this one is a little controversial because it's walking the tightrope line between prevention and enablement. Nevertheless, let's run with it... some of the best ideas have a sense of controversy about them.

Using augmented reality and virtual reality create a system that allows you to virtually stalk your favourite celebrities and/or a regular joe so that you don't really have to get all creepy up in their lives for real.

Those stories that hit the press from time to time where some creeper has broken into a celebs apartment and got weird could be a thing of the past because they could virtually stalk them from the comfort of their own home, and the celebrity wouldn't find themselves confronted with a stranger that knows everything about them offering to run them a bath and make a coffee in their own home.

Instead, they would be more akin to super fans. You want followers? Okay... you got them... and at a nice safe distance.

You could even monetize your ability to be stalked. And it's not just for the famous - in reality, many people are stalked by people infatuated with them that really are the girl or guy next door.

So you can see why it's a little controversial because it allows people to get their virtual creep on, and at the same time could be a preventative measure to real creepdom. If you don't see it as at least a little controversial, well, sorry to point this out - you're probably a stalker and maybe don't know it yet.

Thought for the day... is everybody a stalker and those that aren't just haven't bumped into their victim yet? Are love and marriage the ultimate stalking franchise?

Concept (c) 2019 Let's build a thing

Heated Scarves

A scarf that is heated via either a discreet lightweight rechargeable battery or a chemical reaction to make the scarf stay warm so that it can actively heat your neck rather than just passively. Not like the next warmers and pillows that you pop in the microwave though because they would be too heavy and bulky for casual wearing.

Thursday, 17 January 2019

Augmented Reality De-Extinction

Whilst de-extinction is somewhat currently beyond the realms of possibility, augmented reality is, no pun intended, very real. And extraordinarily compelling and believable.

I am utterly convinced that in years to come augmented reality will be as casual as a cell phone, where the ones not using the technology in their everyday lives become the minority. The near-endless possibilities of enhancing lives make it inevitable in my opinion.

So imagine wandering around and a dodo walks by, minding its own business. Or looking up to the sky and seeing a pterodactyl... safe in the knowledge that it's not about to peck your head off. Or like the scenes out of Jurassic Park where there's a big opening in the landscape and there are herds of all manner of long-extinct creatures taking a stroll.

Deliver content via 4dfs and anybody in the local area would have a shared experience too; which only serves to make it more real. Conversely, you could opt out of critters that you just don't like.

It doesn't fix the problem of animals going extinct.

It doesn't bring anything back.

Dammit though, I want to see a woolly rhino casually trotting through the hills, whilst watching the sun go down.

Concept (c) 2019 Let's build a thing

Augmented Reality Prison

Imagine somebody has committed murder or genocide, or somehow maliciously and purposely caused death. Attach an immovable augmented reality headset and have the corpses of the deceased following the offender around forevermore - or at least until their sentence is complete.

Every waking moment they will have to deal with the consequences of their actions beyond sitting around in a secure environment with most freedoms removed.

Definitely an element of mental and emotional turmoil likely to be created - probably nothing on the scale of the mental and emotional turmoil the families and friends of the deceased would endure. The difference is accountability and the offender doesn't get the peace that time would ultimately provide in the healing process for the family and friends of the victims.

Care would need to be taken that it's not used on certain people with the appropriate level of psychotic or sociopathic tendencies that would get a kick out of it and use the AR representations as a representation of achievement and potentially look to add to their collection.

I suppose it's an extreme version of that thing where the victims and offenders (for things like burglary and assault) meet up to assist the victim's healing process and bring a level of accountability of the crime and humanisation of the victim to the offender; only the ultimate victim is no longer there to get that healing underway, so it's all about accountability and facing the consequences of your actions.

Sound Lasers

I dunno, maybe this is a thing already and has a more appropriate name because using the word "laser" doesn't really work outside of light-based applications, what with the "L" part of "laser" meaning "light".

Anyway, I was thinking that it would be useful to have an ultra-directional sound device so that I could listen to music without worrying about the sound leaking out into the world around me, potentially and inadvertently cultivating angry neighbours. Particularly if I'd like to hear it at a socially unacceptable volume late at night.

The immediate solution is of course to use headphones. I don't always want to wear headphones though, irrespective of in-ear/over-ear design. Sometimes you just want your ears to be free.

So, sound lasers. They need to be a thing. A speaker system that creates a highly-directional and narrow sound that is directed directly into the ears, and cannot be heard elsewhere. Sounds are, after all, a bit leaky.

There's an added personal benefit here too, that others would also get immense value from. I have a weird hearing thing where I can't always separate sounds, and in particular, voices, out properly in noisy places; and by that, I don't necessarily mean loud - just noisy. I forget what it's called, other than "highly annoying", which, to be fair is more of a description than a name. I digress... the point is, using this technology would allow that problem to be overcome too.

You could also use them to talk to somebody across a loud crowded space without hassle. A near-range phone... without a phone.

Concept (c) 2019 Let's build a thing...

Tabs vs Spaces is so yesteryear... here's where it's at for real

I've been coding for many-and-a-bit years and throughout my career, I've been pulled in to the debate over tabs versus spaces so many times it's like hearing the same joke for the 42nd time... it's just not as fun now. It's still valuable, and it's still invariably an excitable debate, it's just not cool anymore.

Here's the thing...

First off, let's not have tabs and spaces, let's just invent a new thing. We can call it the codent, short for "coding-indent". We can save it away as an ASCII character or whatever, and let's even just be so bold as to invent a new number for it, let's say ASCII "32.9", or "9.32", both if we're saving Unicode okay. Oh, and if you don't understand my numbering system there, get off the thread, you shouldn't be forming opinions on tabs vs spaces :) ...stay with me here though because I want you to start using the codent because I'm becoming increasingly fond of the word since making it up a moment ago. The codent will work like this... it will save as a single character (shush Unicode), yet it will be displayed in the manner that suits your personal preferences. This is technically no different to the magical interpretation of some IDE's where you set how big a tab should be represented in spaces, and the point-of-save does some nifty conversion, and equally, the point of load. Thing is, that really depends on the IDE's capability, and some goofball out there is gonna be using some wacky number-of-spaces preference that screws with everybody else's.

The codent is consistent in use and fixes the storage over versatility and alignment stuff along the way. If the codent was a thing from the dawn of high-level languages then the countless hours wasted on this topic, arguments had, relationships ruined... and this post itself, would never have happened and we would all have some time back, and be happier with it... and think of the global economic and ecological impact of several decades of wasted storage because of this issue. It's actually possible as bad as cow farts for the environment. So go think about that.

Anyway, here's where it's really at... as the subject states, tabs vs spaces is so yesteryear... what I really care about is understanding ?! vs !? at the end of an excited puzzling written question. Which is it?! Huh!?


PS: If we can agree to make codent a real thing and bring it into common vernacular, my spellcheck stuff will be happy too - and so will yours, and seriously, who doesn't want a happy spellchecker?

Body Modification Mirrors

A mirror that simulates body modifications that you are considering having done to allow you to adjust to the reality of a potential severe change in appearance - think of it as a cooling off period for body modification - and a cool way to faff with the idea that from day to day you might want to have a full face tattoo, embedded steel for a full-on reptilian appearance, or a simple discreet nose piercing.

Concept (c) 2019 Let's build a thing

Fuel Pump Nozzles (and other things that have sucky designs)

Ever put diesel in a petrol car, or vice-versa? That's an expensive thing to fix if it ever happens to you, and yet the fix is extremely simple. So simple, this should never have been a thing that ever needed fixing.

It tends to happen if you are distracted, switched vehicles recently with a different fuel type, hired a vehicle and followed your normal routine without thinking, or simply had a brain fart.

The reason it happens is quite simply down to bad design... the design lets it happen. A sticker saying "Hey, this is unleaded" or "Oh, this is diesel y'know" is a hack solution that, whilst encourages prevention, and educates, does not fix the problem.

Fixing the problem is as simple as having different shaped nozzles.

Put simply: DO NOT ALLOW THE PROBLEM TO HAPPEN.

That is a very simple design principle. Yet so many people that design things appear to miss out or blatantly disregard this principle.

Incidentally, that methodology works for everything. If you design a thing that allows misuse, it will be misused. If you design a thing, be it a device, system, piece of software, or process, that simply does not allow misuse, well, guess what... there is a significantly higher chance the problem will not happen.

I'm sure some things are designed with this principle brushed aside purposely as a way to create new revenue streams where the value is in fixing the problem that the design caused. I mean, there's a whole industry built around fixing fuel type mixups that really should never have been needed. Almost feels like a justifiable way to explain corporate extortion.

Do you know any particularly sucky things that allow, or even worse, encourage, misuse?

Concept (c) 2019 Let's build a thing

Portable Home Pod

To combat homelessness, and also to provide a cost-effective, no hassle, recreational overnight capability; imagine a weatherproof sleeping bag that folds into its own backpack, has inflatable ribbing to form a tubular structure around the sleeping bag, and an in-built inflatable mattress. It would have flexible solar panels on the exterior that are exposed as the mechanism is folded into the backpack and also when inflated for use, with a low capacity battery that can subsequently be used to charge low powered devices. The battery would also provide a power source for an ultra-low consumption LED light within the interior of the tube. The lining of the sleeping bag would include heat retaining material and foil sheet.

Concept (c) 2019 Let's build a thing

Rainbow Makers

A projector to produce rainbows at will, because everybody likes a rainbow. Depending upon the implementation it could also be possible to actually arrive at the end (or start?!) of a rainbow and find a digital pot of gold.

Concept (c) 2019 Let's build a thing

Digital Hallucinogenic

In a world where there's a vast community of recreational drug users risking harm by frequently using drugs for purposeful hallucinogenic experiences, the in-trip danger, side-effects, and longer-term health effects could be removed by using augmented reality to provide simulated hallucinogenic experiences where the notion of "a bad trip" could be entirely removed, and the experience could be tailored for the individual and be combined with artificial intelligence to monitor mood and stress indicators to help shape the experience real-time.

Concept (c) 2019 Let's build a thing

Tuesday, 15 January 2019

Welcome To My Mind

For anybody that knows me in the real world and has had the misfortune, or as I would prefer to say, delight, of sitting around when I start talking stuff and nonsense, you're prepared for what's likely to happen throughout the life of this blog.

For anybody that doesn't, well, hello; and welcome to my mind.

I talk stuff and nonsense.

A lot.

If something passes through my mind and I find it mildly curious, amusing, baffling, awe-inspiring, complete tosh, or worthy of a group ponder, then I tend to say it. Or more often than not email it at some strange hour of the night to any email boxes I feel may be willing recipients of such toot.

And it's fair to say such delights drift across my cortex, and all the squishy bits that hang around there, on a fairly regular basis.

Who am I? I'm an Oxford comma kinda guy inhabiting a world a little left of centre, surfing somewhere along "the spectrum", with an array of interesting and mildly peculiar OCD tendencies that can range from amusing to annoying, with some other fun things going on to keep myself amused.

Over the years people have asked me if I have a blog or write on social media, and if I did, well, then they would surely follow me to stay abreast of the latest toot falling out of my mind.

Much of the toot comes in the form of inventions and innovations ranging from bizarre nonsense with absolutely no real value or chance of coming to life (maggot bags), to billionaire-making world-scale game-changers, such as a virtual reality controller before the film Lawnmower Man was a thing, a mobile social media platform before MySpace was even a thing running on contemporary handsets that had funky names like "Nokia", a Just Eat thing before any of those things were things, an Air B'n'B thing before that was a thing (cool joint venture on that one), and the list goes on.

Key lessons learnt over the years include: just start, time-to-market is critical to success, and lack of funding and/or time will kill even the best of ideas.

So anyway, for the invention-hungry toot listeners, and folk that might want to hear about tech and product building, with the occasional thoughts on mindfulness, meditation, and Buddhism, or just check out the occasional doodle, rant, or musings of a left-of-center mind... I started a blog. And here it is.

Let's build a thing...


Legal Disclaimer: If I write something on here, no matter how bizarre or real it is, I do consider it my intellectual property (IP), and if you'd like to make it real, get in touch. Let's talk. I rarely check if something I think up is already a thing. It takes the fun out of it. Although if I'm going to pursue something then I will slip into professional mode and do all the good stuff I do as a professional in the innovative tech space to bring ideas to life.