Beyond Naughty Processors.

meltdown-spectreThe world is abuzz with stuff about the Intel bugs – so much so that Meltdown and Spectre are explained by xkcd better to the masses than most technical articles. It’s as if the world woke up and saw a small bit of what can happen within computing systems and, unfortunately for Intel, gets branded with Intel.

Did I mention Intel? Oh, don’t worry, it’s not the only brand that is getting sucked into this. Apple’s vulnerability to Meltdown and Spectre has also been admitted.

The potential is serious. But then, having seen code over the years that allowed pretty much the same thing– clearly, I fixed it where I saw it – I’m not as disturbed as the people presently flailing their arms until the next thing comes along. People will forget soon.

I’m not a chip designer, but the overall problem is pretty close to the Software Engineering issues the world presently faces.

People, generally – I still think of them as users – don’t care too much about technology. I’d say the same about management, too, in most companies – in the early 90s I said, “Management doesn’t know there is a fire until the flames are licking their asses.” This held true in just about every company I worked with until 2016, when I opted to start early on other endeavors to mitigate the risk of being an X-gen Software Engineer in a market that wanted millenial code monkeys.

Here’s the dilemma: Writing good code costs more time and money than most companies want to dedicate because, cyclically, they need to show profit faster because of increased competition in the sector.

Code monkeys are appreciated for fixing the bugs that they created in the first place, Software Engineers aren’t appreciated for the bugs that they keep from being introduced. And so, HR is always looking for code monkeys instead of true software engineers.

Venture capitalists and financiers care more about the commodity of  Intellectual Property than the service of Intellectual property, mainly because people find it difficult to think of copyrighted or patented – or even company secrets – as a service. We live in an age where information and processes do not stand still; it’s not that there is Intellectual Property anymore that you can sit on – it’s that there is Intellectual Property that you have to build on.

But Intellectual Property as a commodity is how trading is done – like the statistics on a baseball card (for the Americans reading) of a living player that will be outdated the very next game. Copyrights, Patents, Trademarks, Trade Secrets – these are snapshots in time. They are not as fluid as what they represent. They are bureaucratic stop gaps to elicit profit, which has worked for a very long time because they were designed to. But what they were designed on is changing faster than this bureaucracy can accommodate.

So all of this leads to design flaws because the designs can’t possibly cover all permutations of how something can be used. It’s getting better, but by getting better it gives a false sense of security that makes the more elusive problems worse for our systems. As I wrote to someone querying about whether foreign processors would have the issue or other issues, I said, “Nothing is secure. Act like it.”

The world is changing more rapidly than the people changing it can keep up with.

Let that sink in.

And then, if you suffer some history, you’ll find it has always been this way. The future has a mind of it’s own.

The only way to mitigate things – the only true way – is for people to be more conscious of what they use. When I was growing up, because of how I grew up, I picked up the habit of understanding at least the basic functionality of everything I used. If it broke, back in the days before the Internet, in a ‘developing’ country, I had to fix it or throw it away.

Now, landfills are filled by slowed phones and antiquated technology. If I’m a dinosaur, I see the meteors and appreciate keeping things around a while when others are quick to buy the next new (untested) thing.

It’s a brave new world.

I’ll be in my garden.

Coding For Fun.

Here I am, waiting for the errant landlord to show up at 7 a.m. when it’s now 8 a.m. (where is he? Who knows), to fix a breaker issue, when… suddenly… I think of something to code – not that I was looking anymore, but probably exactly because I wasn’t looking anymore.

It’s an exercise, I suppose – an idea – and following it up in Python is probably going to be more interesting than anything else you can do when stuck at home. In Trinidad and Tobago, if you have human dependencies, you’re pretty much stuck waiting on someone who is waiting on someone who is – well, you get the point.

And so – Python on Windows reinstalling; Anaconda of course (because you found this entry, I fully expect you can find Anaconda and the installation documentation).

Now, here’s the thing. Unlike when I was running my own company, and unlike when I was working for other companies, there’s no race. There’s no need for me to worry about whether or not a competitor will get to it in time, and whether they can do it better, or what have you.

And oddly, it allows me to leverage some pre-existing code I’d been working on. You’ll note I didn’t say re-use – that code reuse thing is a trap, much as using code from Stack Overflow can be for plug and pray ‘coders’.

Anyway, back to a little coding fun again after about a year without, nose firmly thumbed at corporate coding.

The Age of Dune

The-Spice-Must-Flow-PosterWe’re in a strange age of Dune, metaphorically. If you haven’t read the books or, for the reading impaired, the movie, you won’t get the metaphor – you should go do either immediately and not return to the internet until you have.

If you’ll recall, the book was about Spice – and how the spice must flow. Last century, it was a metaphor for oil, and this century, it’s a metaphor for information.

I bring this all up because of the Russian submarines making NATO nervous because they’re prowling near underwater cables. The conversations around this speculated on them eavesdropping – relatively tinfoil hat – when a real threat is the severing off those cables. Remember how Mua’dib rose to power? Who can destroy the Spice controls the Spice, and who controls the Spice is the real power.

Factor in the death of network neutrality, which has been long dead in other ways while people have been discussing the imminent rigor mortis while poking it with a stick. It’s not as if Facebook has been deleting accounts at the requests of the U.S. and Israeli governments.  It’s not as if any despot of any sort hasn’t at least tried to control the information flow. The trouble is that most people don’t understand information and don’t understand data beyond the definitions in dictionaries and antiquated textbooks.

Information flows. In a battlefield somewhere, a severed submarine cable can mean chaos on the ground somewhere. In a world where cables connect markets, severed cables mean being unable to get access to those markets. It means isolation.

The spice must flow, the information must flow. And those who seek to destroy information, from burning books to limiting access for people to information is about isolating, about controlling, and about power. How will it end?

I’ll be in my garden, monitoring the situation. You kids play nice.

2018: Tech and Society

Brighter FutureOn the human meta level, it’s pretty clear that robotics and AI will continue making inroads into our societies in ways that we aren’t yet prepared for. Personally, it’s amusing when what got me into software engineering for a living as a young man increasingly becomes a reality 2 decades later. In fact, it’s the only reason I code these days, and coding itself as we know it is in it’s twilight.

While blue collar jobs have always been what has been worried about as far as ‘machines taking jobs’, there is a clear bias to deal with expense. Where technology can make things cheaper, it does, so those with high salaries and jobs that can be automated will be increasingly put on notice. This leaves us with the dilemma of how people will earn a living, a real problem in a world where bureaucracies have demonstrably been slow to react to these changes, where politics around the world has somehow become more palpably connected with fear, where people see things faster, and where our ability to use technology to communicate dwarfs our ability to do so.

Renewable energy has gone beyond being a novelty – even here in Trinidad and Tobago, when over a decade ago my father tried to sell the government on solar powered street lights, the local electricity company – state owned T&TEC – announced in late 2017 that they’ll be doing stuff with it. Technology lags in countries around the world, and 2018 will continue increasing that divide – but a nation’s ability to use technology does not define it’s advancement, as economic policies on a global scale have the developed world in for a redefinition. BRIC is a reality, and network power continues to make them powerhouses.

I think of my nieces in college, my nephews about to start college, and how their education can be made worthwhile by simply being relevant over the next few decades of their lives – but their lives will be redefined by things larger than the education systems that they will be indentured to. We are on the precipice of change that we cannot possibly understand the implications of until we’re on the other side of it.

And 2018 will be increasingly about that.

Google Chrome Update Allows Mute of Autoplay Videos – and More.

If you’re a human, you probably have more than one tab open in your browser right now – and that means that sometime in the past, you had to hunt through tabs to find out which tab hid the video that the over-exuberant marketers hid in one of your tabs. Fear no more. In the latest Chromium blog entry, many features are outlined in the new beta release of Chrome 64 that benefit website developers as well.

It means risking some bugs with the beta, but for many users it may be worth becoming a beta tester with a stronger pop-up blocker alone.

You can download the beta Chrome here.

Beyond Network Neutrality, and TATT

Net neutrality is repealed, and while the long battle over it seems over, there’s still some hope for it.

There’s been folly in conversations related to Network Neutrality and Over The Top Services (OTT). It limits the conversation to be about who owns the infrastructure and who uses the infrastructure – which is a good place to start, but is at least a decade outdated. Even the global conversation has fallen behind reality; the wheels of bureaucracy turn much slower than technology and technology use evolves.

We live in a world where the infrastructure, while important, isn’t the only thing that can be used to be unfair. Amazon and Google are presently in a content war with each other; the latest blow being Alexa being unable to pay YouTube videos. In an age of ‘IoT’, or ‘Internet of Things’, devices unable to use services isn’t being determined by who owns the infrastructure – it’s about who owns the services as well.

Right now, getting information from the browser you’re reading this in will tell what sort of browser you’re using, what operating system and what version – amongst other things. It doesn’t say anything about you, personally – Luddites, come back! But anyone with a website or a service can see what sort of software you’re using to connect to them – just so that they know how to change the content, if necessary. They can also tell where you are with a level of knowledge that can be a bit disconcerting – where your computer, phone or tablet – or internet enabled refrigerator, for that matter – is communicating from.

And they can decide what you can see and what you can’t. I’m sure I’m not the only one who has found YouTube videos that I couldn’t watch because, ‘content is unavailable in your country’. Here I am, an Amazon Prime user, and I can’t watch certain content because… ‘content is unavailable in your country’. There are reasons for the latter – I think they are bad reasons, but there are reasons related to broadcast rights. And yet, it shows that infrastructure isn’t the only thing that can be used to make services incompatible.

This is nothing new. The Browser Wars were the first real issue – and if you ask a web developer of worth, they will tell you that they persist, even when only a Cold War. When an app only works on Android or Apple device, it’s the same thing. Which brings up what can go into the Apple Store or the Google Store – and how it’s approved and whether they can pull it or simply decide that they don’t want to carry it because it competes with their own service.  

This is the larger conversation that is being missed by just about everyone. When Network Neutrality conversations first started, this issue hadn’t evolved – and despite it’s name, the overall concept has been specialized when, in fact, it should be generalized.

When it comes to the hardware and infrastructure alone, the Carterfone laid the groundwork in the United States that ISPs like Digicel are against: that devices could be connected to infrastructure owned by a corporation as long as they did not damage the infrastructure. Moving that forward, the same should apply to services. It’s that simple, but the waters are muddied based on the misconception that it’s their network. From a legal standing, this may be true – but from a business perspective, it’s not as true: Without customers, the network has no value, and therefore the customers also have control of the network – assuming that there is competition, and assuming that the ISPs will not coordinate to assure that Law makes it possible for all ISPs to throttle communications as they see fit. Bad assumptions, really, if we take a look around just about anywhere in the world.

And on top of all of that, we have the lack of network neutrality in services being provided across these same networks.

TATT needs to step back and understand the underlying philosophy and not get drawn into the weeds. Does TATT stand for corporations, or does TATT stand for the citizens of Trinidad and Tobago?

That answer will dictate their policy. I expect that they’ll tell us soon enough.

Understanding Frankensystems

Solar systemWhen I was just a software engineer in the eyes of managers, I usually got tossed into undocumented complex systems that nobody could figure out easily, largely because they were… undocumented. What overwhelmed and/or intimidated others was exciting for me – exploring something new, understanding how it worked. I’d developed a toolset for exactly that, finding and fixing memory leaks in things I’d never touched before, finding the circumstances that created specific bugs – but the real joy for me was in understanding systems. This transcended computing systems, but here I’ll write about computing systems.

My motto, adapted from something my paternal grandfather would mutter now and then, was, ‘Man made you, man will solve you.‘ I also tried to teach this to others. I recall telling one young intern, just spreading her wings on a GIS system, that I knew that she was smarter than the code she was looking at. I was right, she was – brilliant young woman handpicked from UCF – but she was one of the few; too often I said it and was wrong, probably inadvertently destroying someone’s confidence in what they did for a living. That was probably for the better, I hope – if you can’t hack it, you can’t hack it and you need to find something else to do that better suits you.

Not everyone can think on a systems level. There’s no shame in that. Not everyone can put the puzzle pieces together, even with well written documentation. Not everyone can eat elephants, particularly when they are afraid to get close to one. There’s a few of us that can. And it gets down to details, the moving parts of systems, understanding the principles of operation, understanding what and why things were done that way. It’s forensics, it’s imagination, and it’s also being able to understand the developers who wrote the code and their different styles or lack thereof.

When it comes to multiple software packages working together, the intrinsics of each interacting system are more important than people who create silos think; the more complex the system, the more personality it has for lack of a better word. Some software is plain grumpy, some is pretty and shallow, a reflection of the development cycle. If you’ve been around long enough, you can see something that was pushed out into production too early and abused over the years – scars of undocumented patches cover the code, each done differently as maintainers came and went, their lack of time afforded shown in how deep the scars run in the code. Frankensystems, held together by scar tissue. Let the healing begin.

Almost every time, this requires talking to people who have been around long enough and listening not just about the requirements of the system, and how things evolved from their perspective, but also understanding the developers involved. The brilliant developer who wrote undocumented code that never made sense to anyone else, who snuck things in when they could without others knowing. The plodder, who took their time and was always behind schedule. So many personalities, and all of that feeds into the Frankensystem in ways that defy management silos. How many times did I get in trouble with managers for talking to people outside of the development area to understand the system? Too many. I have references. But I always delivered, which probably boggled them.

There’s more to these systems than code, and the more complex the systems involved, the greater the interactions, the more one needs to see it from different angles. The metaphor of eating an elephant is scalar, from only one perspective, but to truly get into a system you need to eat that elephant from as many directions as you can.

Knowing only the code of a Frankensystem is failure. Sure, there will be landmarks, sprints, whatever – but those ‘successes’ are just small things created by people who just want their pain to go away and have been sold on the idea that these systems are solved that way. If you truly want to understand the systems, you have to mine all the data – from social engineering to code, from network diagnostics to documentation, and what is lacking you have to create.

The power of understanding is in the interactions, the intersections, and cannot be taught.