Driverless cars, routing around damage, peer to peer communication, and unexpected vulnerabilities

Geof responds to my previous post. He generally agrees, but goes on to say this:

Take, for instance, a self-driving car. One of the assumptions we have is that allowing computers to drive cars will allow a lot more cars to be on the road, since computers are better drivers than humans (a fact I don’t want to dispute). But imagine we do fit 30% more cars on the road. Imagine a traffic disruption. There will surely be far fewer traffic disruptions because computers are better drivers than humans. But when they do occur, they will cause massively more congestion than now, because the system will have been optimised that much further.

A driverless car will be best implemented when it communicates with its peers in a networked way that mimics the old CB network band: “Get off at Exit 351 and take US 31 north; I-65 is a parking lot.” But there’s fragility, of course: not all cars will have humans out of the loop, not everyone will have a car that communicates in the same way, there will be network outages, etc. That’s why peer-to-peer on open technologies will make that work.

See, my technological bias is showing. But I will also admit my own bias against driverless cars: I’d rather drive, and if not, I’d rather take mass transit to have it be worthwhile.

I thought a bit about this when I was writing the original post. This is very true. If we allow cars to function like nodes on a network (the internet model) and route around damage to the network, we can probably mitigate a lot of the potential problems of driverless cars that operate in a vacuum, informationally sealed from the surrounding vehicles. Basically we start treating cars like packets.

I see a couple problems. Even assuming that all cars on the road are driverless (there are no pesky humans behind the wheel ever), we’re always designing our transportation system for peak loads. One of the points of driverless cars is to distribute peak load more evenly, and therefore optimize drive time by taking different routes that make sense depending on the situation. However, if the system is optimised so that peak load and a problem co-incide, there might not be anywhere to go to route around damage. That is to say, if the network is fully optimised, at peak loads, there’s a fine line between completely fine and completely chaotic. And building new roads makes laying fibre look like playing with LEGO.

The other thing I’ve though about is how focused we are on designing for and controlling a certain set of parameters. For instance, we might optimise for peak load, for shortest travel time, etc, and in order to do that we might have to network cars and let them talk to each other. And we’ve seen what that looks like with PCs. What happens when you take previously un-networked things and connect them to a network? It’s a hard thing to do. If we do network driverless cars, it’s likely that a lot of the damage to the network will suddenly take on a very much more sinister aspect: Hacking. We’d do well to consider the example of casinos: They design for and control their gains and losses so that the house always wins. Except when losses come from directions they simply can’t control for. Fire, earthquake, employees suing their bosses, catastrophic losses of life, etc. I worry that we might design for and attempt to control the variables of traffic without considering the very real possibility of damage that come from a direction we weren’t expecting.

Maybe we’ll find something even more exotic when we’re done making the perfect car. What I actually hope is that we rediscover the train. We may find that once we have the perfect driverless car, gas is too expensive to actually run a car. But that would mean we’d have to reconfigure our entire way of live. And that’s a lot less likely to happen.

My technology assumptions & biases

I have a few. I’m part of a generation or a class of people that grew up using technology to facilitate their lives in a way the previous generation never imagined, but I’m not so fully integrated into tech that I can’t live apart from it. It’s not yet part of the air I breathe, if you will. I see an upcoming generation raised on smartphones and tablets, and I don’t think they’ll have these techno-biases simply because they’re not living on the bleeding edge and don’t need to make any assumptions about their technology. My generation on the other hand seems obsessed with using tech to solving Big Problems, as if we somehow need to justify the existence of all these things. Of course we don’t. So without further ado, the list:

Today’s technology is better than yesterday’s technology.

This is part techno-utopianism, part confirmation bias. Lots of crappy technologies exist today that won’t exist tomorrow. A few crappy technologies persist into the future. But very few crappy technologies persist from very far in the past into the future. There’s a process of winnowing out. Thus an old technology is probably a good technology. The older it is the longer it has persisted and the longer it is likely to persist. I’m sure you can come up with a few examples. Today’s technologies may seem better only because they’re novel: Older technologies tend to be invisible until they’re replaced.

Technology is going to solve a lot of Big Problems.

This may be true. It may not. It may be that technology actually causes a lot of Big Problems, or that people trying to solve Big Problems with new technologies actually cause more Big Problems than they solve. (Take, for instance, the car; it solved a lot of huge problems like an overabundance of dead horses and horse shit in the streets, but contributes massively to climate change.) The assumption that technology will solve Big Problems isn’t an assumption that has been borne out, at least not yet. And we don’t really understand what might happen if we do solve these problems using technology.

Take, for instance, a self-driving car. One of the assumptions we have is that allowing computers to drive cars will allow a lot more cars to be on the road, since computers are better drivers than humans (a fact I don’t want to dispute). But imagine we do fit 30% more cars on the road. Imagine a traffic disruption. There will surely be far fewer traffic disruptions because computers are better drivers than humans. But when they do occur, they will cause massively more congestion than now, because the system will have been optimised that much further. What if we put this infrastructure in place only to find that commute time remains the same or gets worse, maybe even much worse? We’ll have to console ourselves with the fact that we can now do something other than driving (I would much rather read a book than drive, for instance), and purposefully forget about that other, older technology that already solves the same problem: the train.

Or take the internet. It hasn’t really solved a whole lot of Big Problems, though it has solved a lot of smaller ones that we forget about. For instance jobs like the travel agent, the journalist, and (hopefully soon) the real estate agent. Which leads me to my next point.

Technology makes us all richer or at least better off.

A lot of people have been taking stabs at why we seem to keep getting better gadgets while we get poorer. There are names for this, like The Great Stagnation. We wonder why the internet hasn’t created a whole lot of jobs like the last big technological revolution, the car, did. Instead of creating jobs, the internet has massively optimised our economy. And there seem to be less jobs to go around as machines start doing all the things that well-meaning but rather dull people used to do.

We assume that the internet (for one example) will make us richer, though there’s really no evidence for that. It has certainly made a few people very rich, but unlike the industrial revolution, the information revolution has very much concentrated wealth in the hands of a very few (inventors and the PHD holders they hire). There’s very little halo effect there. Where Rockefeller could become massively wealthy and also lift the standard of living for the millions in his employ, the headcount of Google and Apple together is something close to 125,000. That’s it. Consider Samsung Electronics (not even the entire Samsung Group), which has similar revenues to Apple but actually makes physical things and has almost three times the headcount. It’s not at all obvious that the world would be better off with more Apples and Googles than with more Samsungs.

I need the newest thing.

This is one of my personal failings. I feel like a poor person because I have a 3-year-old phone. It still works in its own way. But it feels like a dinosaur. I also have a laptop, a desktop, two tablets, and an e-reader. And yet without fail, each of those electronic devices seems old and decrepit roughly six months after I’ve bought it.

Yet every time I buy a new device I find something new to hate about that device. I become used the foibles of my old devices. And that takes a while.

But comparing the newest thing with other newest things isn’t particularly obvious. It makes more sense to compare, say, an e-reader to the thing it’s trying to replace (the book) rather than other e-readers. And it’s not patently obvious that e-readers are better than books. On an individual level they’re almost certainly not. A book with its sights, smells, and tactile sensations is an experience, and a pleasant one. It never runs out of battery, can be read at any viewing angle, and can be easily marked up (which is more important than you think!). An e-reader on the other hand fails at all these things. However on a meta level and e-reader can hold all my books, is searchable, and connects to the internet. Are these features enough to make the switch? Well, it depends on who you are and what your use case is. The answer to that question isn’t as obvious as Amazon might hope.

Or take a tablet. They’re wonderful devices for a lot of things, except when it comes to replacing really old technology. This all ties into the concept of a “paperless office”, which we’ve all been trying and failing to do for decades now. It turns out that writing on paper is one of the most useful and basic technologies around. While the tablet may (and should) kill the MP3 player, the laptop for certain uses, the CD player, the desktop for certain uses, and other things like that, it turns out that it absolutely blows at replacing really basic technologies like writing. Writing on a tablet isn’t easy. Again, it’s not obvious that if we replaced all paper in the world with a boatload of tablets we’d be better off for the substitution.

So these are my technology biases. I’m sure I have more. What are yours?

Brace yourselves: ASIC rigs are coming…

ASICMINER

So just in case you were thinking about throwing some GPUs in your home computer and mining Bitcoins, I wouldn’t bother. Not only will you barely break even based on current electricity rates, the amount of Bitcoin you can mine with your GPU is likely to radically decrease soon.

What’s happening is dedicated hardware is coming online. ASIC (or spplication-specific integrated circuit) rigs are starting to be built and bought and, though some thought they might never be, shipped.

This means that a massive amount of dedicated computing power is suddenly going to be pointed at the Bitcoin network, which means that the difficulty of mining new Bitcoins is going to rise.

Right now, the only way a person with a off-the-shelf GPU can mine and get anything at all is by joining a pool. The days of individual miners actually mining Bitcoins on their lonesome is absolutely over.

When this new ASIC hardware starts coming online, as I believe it already has, the difficulty will increase again and GPU mining will be (essentially) done.

Use your GPUs to render desktops and games again, folks. That is, after all, what they were made for.

Game of Thrones breaks a record

GOT1

…but apparently not the kind you want to break. It broke the record for the most simultaneous peers ever via Bittorrent.

This will probably lead to some sort of anti-piracy moaning (the usual reaction to these sorts of things). And, well, let’s be fair. It should. HBO spends tens of millions of dollars per episode making this show. It’s a tent-pole for the network, the sort of thing that draws subscribers. Subscribers are how HBO makes money. But not just HBO! You can’t just phone up your cable supplier and order HBO. It comes bundled with some other stuff, stuff you may or may not want, or ever watch. So HBO’s parent company makes a whole lot more money off HBO subscribers than you might think, as people subscribe to the package when they really just want HBO.

There’s no other way to get HBO. And yet there is clearly massive demand to get HBO another way.

See, what we have here is 160,000 or so opportunities to sell this content to other people. I hope somebody at HBO is watching and understands this. I hope somebody understands what a massive, untapped potential market is out there.

Either way, it’s a win for consumers. The massive piracy is a signal that they want their serial epic fantasy a certain way (hint: a bunch of people aren’t using a TV). It’s a signal you ignore at your peril.

The problem is that HBO is in a bind. If they wanted to release the content on demand, they can’t sell the rest of the bundled channels with it. In fact, they can’t sell any channels at all. They can’t really have tent-pole shows anymore. Every show has to be a tent-pole show. There are no loveable losers.

So maybe in the raw new world of on-demand entertainment, maybe HBO (or at least their parent company) loses a bit. And maybe those few people who like those other HBO shows, you know, the quirky ones that no-one seems to watch, lose a bit.

I’m not a techno-utopian. I’m not here to pretend that when everyone has Game of Thrones on their tablets on the bus at 5am (or wherever, whenever) that everyone is going to be better off for it. But you can’t ignore or suppress the signal. The people want what they want, and the losers fall where they may.

Living on the bleeding edge…

…sucks.

I used to do it. I used to try new technologies early and often. I watched them fail early and often.

I used Firefox before it was called Firefox. Before it was called Firebird, even. And even before it was called Phoenix, I used the Mozilla Suite. I bought first-run electronics, new products, pre-ordered books, music, and games… all that stuff.

I don’t do that anymore. Because it sucked.

There’s a thrill to living on the bleeding edge, a sort of adventurism without any real adventure. If you live connected to the internet and connected to the communities that grok this kind of stuff, you can really feel like part of an elite few that understand the zeitgeist before the normals really get it.

It’s a good feeling, to be part of that exclusive group. But it’s also hearbreaking and expensive.

If you’ve been there, you know what it’s like. The first run of anything is invariably rough, even for companies that are experienced in developing and releasing products. And you know how expensive it is. Buy a first-run Apple product and you’ll get the idea. It almost feels like a kind of sophisticated robbery. You want to be first to the gate? Well, we’ll take your money and we’ll take a little bit of your dignity.

The problem is that for every product that sucks, there’s a product that almost doesn’t suck, and for every five products that almost don’t suck, there’s that one jewel that absolutely blows your mind.

When you discover that jewel, it feels awesome.

The rest of the time it still sucks.

At least for me. I get it. There will always be a group of people that absolutely must have the latest and greatest. I get that. They are the beta testers of the world, who iron out the wrinkles for all those who follow. They are they advance guard of the techno-elite, the neophiles.

A market has sprung up to take advantage of these people, especially in the software market. Where we used to expect products to be released in some sort of state of semi-completion, now companies are rushing things to market that, frankly, should not be out on the market. And the neophiles pay the price.

I will give you an example. When I first got SimCity 4, I didn’t pre-order it, but I bought it on release day. No questions asked. I had no doubt, based on the pedigree of Maxis and the people involved, that it would be a great game. And it was. In fact, when it was released, it was a fully-formed, functional product. I played the crap out of it for years. I still do, in fact.

So you can understand how excited I was for the release of SimCity 5, which is actually just called SimCity (rather confusingly; people on the internet are calling it SC5 or SC2013 to distinguish it).

Except that a few things have changed since I bought SimCity 4 on release day. I have a life now. I have a wife, a house, a child, 2 dogs, competing interests on my time, lots of hobbies, and not a lot of disposable income. Or at least not as much as I had when I was a bachelor.

My outlook on purchases has changed. Whether this is because of my newfound obligations or because I’ve been burned too many times or because I’m older and wiser… I don’t know. But when it came time to pre-order the new SimCity, I took a long, hard look at what I was buying.

But I’m not the only thing that’s changed in 10 years. The release model for these new games has, at least for some developers, changed as well. I’m seeing more and more releases of games that are nowhere close to finished, and sometimes barely even playable, on release. They are shot out into the world and the people that pre-ordered, or the people that bought on release are, frankly, beta-testers. They go through the confusing and painful process of troubleshooting the game for developers, who then furiously as the case may be roll out patches. 6 months down the line, the game is in better shape, but in my opinion the damage is already done. Diablo 3 is a great example of a release done badly. But there are many, many more.

I was disturbed by what I saw when I did my research. I won’t get into the nitty-gritty details of the decisions made by Maxis and EA, but since the release of The Sims, they’ve realised how much money is to be made selling downloadable content (DLC), not just the original game. Basically aftermarket parts for your game. That combined with the growing trend of social gaming, made Maxis and EA decide to adapt SimCity to these purposes.

Throw in the anti-pirating always-on internet connection, and you have a very different game from what you had in the past.

These were the warning signs that I saw. So I didn’t pre-order. I wanted to. But something inside me told me to hold back. And I did.

Then came launch day, and the severs were overwhelmed. People literally couldn’t play the game they had paid their $60 for. Then when the servers were back up, it turned out the game has all kinds of problems. Town-sized cities. Abysmal pathfinding. Graphical glitches. Region limitations. Functions disabled. No local game play. No mods.

There has been an outpouring of both rage and grief over this game on the internet. The people that bought it expecting it to exist in the grand tradition of SimCity are understandably upset. The people who bought it to play a cool game are also understandably upset.

And I’m upset because I wanted to buy this game, but now I never will. But I’m not as upset as I would be if I had bought the game on faith.

I have another example. I purchased a Nexus 7 out of the gate last year. I’m not sure why I was sucker for this one, but I was. There were a lot of problems with the first run of these devices. Squishiness on the frame, flickering on low light levels, and when it came to update time, and update that bogged the system down and made it run like an overloaded donkey.

I’m sure all these things have been fixed on the second and third generations of these devices. But they have been fixed on the backs of others, like me, who were first to the gate.

This is why I no longer live on the bleeding edge. I have an interconnected network of computers full of people more than willing to beta-test all these things for me. I’m not going to buy the new device, the new game, the new album, until someone else has heard it, played it, or used it, and not for a few days. More like six months.

There’s an endemic problem with review sites, especially for games and devices. The reviewers don’t generally have enough time to learn the tics and bad habits of what they’re reviewing. They drive-by review and move on.

The people that really understand how something works and whether or not they want to continue using it are the people who have lived with it for some time.

But I don’t want to be one of those people anymore. I want to learn from my experiences, and learn from their experiences.

No more bleeding edge for me.

Apple vs Android, Us vs Other, etc.

So the ever-interesting Waxy.org pointed out an article by Marco.org that specifically talks about anti-Apple anger, saying this:

Marco Arment on anti-Apple anger — I thought such a balanced essay wouldn’t inspire anger itself, but HN quickly proved me wrong.

I don’t really want to talk about the articles and discussion in question. They’re not really interesting. Apple fans trying to paint Android fans as angry fanatics trying to paint Microsoft fans as angry fanatics… Well, it’s turtles all the way down. Personally I think Marco and Andy are both displaying a remarkable myopia and confirmation bias. But what do I know?

What’s a lot more interesting is the binary with-us-or-against-us fanboy logic that happens in all these camps. For a certain class of people that love these companies and their devices, this is a battle and the other side is the enemy.

We do this all the time. All of us. We define the other as many things, people, attitudes, on an on. We dehumanise them, vilify them, mock them, fight them, whatever we must to keep our position outside of the other.

This is the root of violence. Maybe just the violence of hasty, nasty words on the internet. But still violence. In your electronics you see a microcosm which explains every outbreak of war, every genocide.

Maybe that seems a bit dramatic. Okay.

But I think it’s true. I’m willing to be persuaded otherwise, but for the moment I think it’s true.

Thankfully it doesn’t have to be like this. Especially when it comes to gadgets. I know a lot of people are absolutely enthralled by and passionate about technology (it is, after all, the practical witchcraft of this age). But we can try to remember that in order to be part of this group, I do not have to diminish another group.

It also helps to remember that these are companies. They don’t care about you; they care about your money. Why in the world would you declare strong allegiance to a platform or a product made by a company? It seems to me as if you’ve dehumanised yourself in some way with that act of allegiance. Leaving aside the dehumanisation and denigration of the other, how about the dehumanisation and denigration of the self?

House, where are my glasses?

Please, someone be working on this. See, my phone is pretty smart, but my house is dumb and I’m pretty dumb. So I’d like to ask my house to find my keys or my wife’s glasses or whatever. Or at least ask my phone to have my house tell me.

It’s an expensive way to find your keys or whatever, but still.

Someone get on this, mmmmkay?

Some thoughts about voting machines.

I don’t like voting machines. I don’t like electronic voting in general, at least as it’s implemented now.

Now, normally people who don’t like voting machines don’t like them because of Diebold, or their lackluster security, or their lack of a verifiable paper trail.

I don’t care much for those arguments. Diebold may indeed be trying to make a quick buck at the expense of the taxpayer with crappy machines that offer little security, can’t be audited, and don’t have a paper trail. Voting machines could indeed be improved in many ways to decrease the chance of tampering.

All those things could be fixed and the problem would remain. Electronic voting is centralised. It is efficient. And that’s the problem. Voting is one of the things in this world that we should absolutely not optimise.

Voting must be massively inefficient.

This is one of those times where efficiency should not be our first priority. Efficiency in voting introduces fragility into the system in the form of easy tampering. Contrast that with paper voting, which is fairly tamper-proof because it’s so gosh darn parallelised and inefficient.

It’s hard to mass tamper with paper ballots because of that lack of centralisation and the very real paper-trail.

It’s easy to mass tamper with electronic ballots. It’s just 0’s and 1’s.

I’m getting too old for this shit.

I got into IT by tinkering with things. I would take the digital things apart and then try to put them back together. I enjoyed the challenge of it, definitely and the feeling that came with really understanding something.

And I used to have a lot more time.

These days I spend my time working on my job, my house, my dogs, my wife, my child, and all the things that come along with that. I’ve become a lot less patient with things that don’t work.

All that wonderful tinkering now seems to me like unnecessary work getting in the way of me doing actual work. So where I used to at least try to compile my own Linux kernel, upgrade my servers with each 6-month Ubuntu release, roll my own RAID, roll my own media server, roll my own backup solution with rsync, etc.

Now I just want things that work.

Don’t worry, this isn’t going to be a post about me switching to a Mac. That’s my wife’s business, and all the Apple hardware she’s had has broken down after 1 year or less so far. I use PCs and don’t have these problems. I’m sure we’ll regress to the mean at some point, but that’s for a post in the far future.

I just want things that work.

So. I’m running Windows 7 at home. It’s a fairly decent OS, except that it’s over-decorated with Aero Glass, and suffers from the typical Microsoft hodge-podge approach to writing software. But it works. As far as I’m concerned, Windows 7 could be feature frozen at the moment and work for the next 10 years just fine.

I’m running Android on my phone. I am running Cyanogen Mod, but that was so easy to install it’s just bonkers. I’m still rocking an HTC Desire, and it’s a remarkably solid phone despite the abuse I’ve poured on it.

I’m running Ubuntu LTS releases on my servers. I also research a lot to see what will break even before I do an upgrade on my test box. This has been an incredible amount of stress lifted from my shoulders. Also my uptime has improved radically. Fewer patches, fewer reboots.

I’m running Boxee as my media server. And not some grey box Boxee. The actual Boxee Box. It’s pretty ugly and frankly just a bad device from the ground up, but it plays every kind of video I throw at it and it has HDMI and optical outputs, so it does what I need it to. I might upgrade to a slightly fancier Google TV box when we get a second TV for the upstairs library, but I don’t know much about Google TV and all that jazz.

I have a Drobo in my basement. It’s not fantastic. I’ve written a post about this before, but it’s a big glob of storage, and I like that. At some point in the future I’ll upgrade to something better and faster, but having a Drobo really does take care of 99% of my use case.

This is a bit of a change in my philosophy of technology consumption. I mean, I can still do all those things. I can still roll my own RAID, etc. But I don’t really want to. I think it’s great if more people know how their stuff works by trying to build stuff, but for me, that’s really not my bag anymore.

More to the point, I get annoyed when other geeks aren’t annoyed by this stuff. Here comes the real meat and potatoes of this post, by the way, so hang on.

I hate it when there’s a huge and obvious bug with something, whether that be something that isn’t feature complete, or something that isn’t happening that should, or something that’s just plain missing.

This is why I don’t like using Linux on the desktop. I don’t like dropping to a terminal to do anything useful. It’s fine sometimes, and I even do it on Windows occasionally. But having that culture has really hindered Linux from developing useful GUIs which are often a lot more friendly and useful.

I don’t like being told “Oh well you’re not doing that properly, drop into a terminal window and we’ll help you edit a text file.” No. You’re not doing it properly.

This is why I hate a lot of technical Wikipedia articles. I don’t want to have to understand the totality of mathematics before I can get a rough idea about a mathematical concept. I don’t want to have to be an expert in the field–you’re an expert in the field and that’s why you’re writing the article, not me.

I don’t like being told “Oh well you’re not reading that properly with the right amount of background.” Nope. You haven’t written the article properly.

This is why I hate buying extra printer cables to stash around the office so when I buy a Brother printer I don’t have to buy one from the printer vendor at 9000% markup.

I don’t want to be told “Oh well who doesn’t have printer cables stashed around? Also use a network cable or wireless network.” I, of course, have printer cables because I know this shit happens. But USB is still the primary connectivity solution, and it makes sense, especially in a place that isn’t wired with a lot of ethernet cable.

This is why I hate Ubuntu changing its interface every two years. I have to literally change my entire workflow with this. This is why I don’t like Windows 8 already. I don’t want to be a victim of Microsoft’s desire to sell phones and tablets. I don’t want to have to alter my workflow and retrain 10 people to alter theirs. I’m still running XP on half of my workstations, dammit, and it’s going to probably stay that way till they die. I want unnecessary change, sometimes even when it brings some benefit. I like incremental change.

I don’t like being told that I need to configure a mod, or flash custom firmware, or compile something, or edit my fstab, or stash extra cables of every type like some kind of IT squirrel, or download some gewgaw, or solder x to y, or download the schematic, or whatever.

If it doesn’t do it out of the box and do it at least competently, I don’t want it.

Like I said. I’m getting too old for this shit.

It’s hard not to pick sides.

It makes sense that I care about the Android ecosystem. I own several Android devices (3 at the moment). I have bought media from the Play Store (books and apps).

It’s good for me if Android does well. I don’t want to see the platform go the way of Blackberry or Nortel.

But it’s not good for me to start cheerleading. It’s not good to see Apple or Microsoft as the enemy. It’s not good to develop a me-vs-them complex.

It’s not good because these are just things, just companies, and they will, like everything, pass away. They are not my ticket to a better future. They are, in that sense, not my hope.

This is what geek sports is all about, isn’t it? We don’t have football teams or hockey teams, but we have platforms and programming styles and on and on. Things are are, in the grand scheme of things, little more important than sports.