To save Twitter, we must destroy it.

So many people had an experience like this. Twitter was fun, fast, easy to use; and brevity is the soul of wit. If you were a programmer, you’d often learn a new platform or language by writing a simple Twitter client; and tons of really smart people were writing interesting software that took advantage of all the new toys in our toy box, with Twitter as the base.

Fun times.

It got even better, for a while. Twitter replaced RSS, for many; a scan of your feed let you know where your friends were, what important software updates were released, and everything else you could want.

Yeah, there was the Fail Whale and porno bots but it wasn’t any worse than we’d seen already. And we had the Arab Spring! People got work by telling jokes on Twitter. We had Weird Twitter and Scottish Twitter and …

But then came GamerGate, followed shortly by their brothers in arms the Alt-Right, and Russian trolls, and now the dullard in the Oval Office.

Fuck Twitter.

The best thing to do to “fix” Twitter is to leave. It’s a white supremacist web site. It’s not getting better.

The solution is already there. RSS is still good, and usable. You can support independent media, like many good podcasts, instead of supporting a company that thinks that giving more characters for racist bile is the solution.

Everyone bitches and moans about walled gardens and “closed platforms” and “you are not the customer, you’re the product”. So take the air out of their sails. Stop “microblogging” and write real thoughts. Read long-form journalism. The internet has given us the tools. Use them.

Everything is horrible

I started reading comics again, so naturally I wanted to do so on my iPad. Thankfully Comixology existed; I immediately began diving back in. Time passes, and Amazon scoops them up. 

It’s a natural fit, and if there’s one thing Amazon does well it’s selling things. So I’m excited! Except, everything is horrible, and Amazon begins botching the acquisition immediately. They launch a new app, to disable IAP: can’t have 30% heading to AAPL! Despite having all my previous (iTunes Store) purchases showing in my account on the web site and the new app, I can now only read them in the old app; downloading some titles isn’t apparently allowed. There is no FAQ about this. Maybe one day it’ll return. Nonetheless, it is unpleasant as a user to see my once streamlined, rock-solid buying-and-reading experience turned into something awkward and clunky. I mean, it doesn’t even use Amazon’s payments! I have to keep a separate CC on file with them!

iTunes continues to disappoint at every turn. My library is essentially unusable. There is no “reset iCloud Match” command, or way to manually say “you somehow have your shit all fucked up for this one song”. So I have playlists and albums with dupes that are greyed out and constantly have the “attempting to download” squared-circle, ratings are useless (entire albums marked 5-star, that I don’t even listen to much), and more. 

Watching shows I’ve purchased on iTunes via my Apple TV is an exercise in frustration. The most common scenario now is that in order to watch a show, you must take a circuitous route through the various menus in order to find it. Just going to it via the “home page” doesn’t work. It sometimes takes 10+ clicks to get the TV to admit there’s a show to watch.

This is, of course, when my super-fast Verizon FIOS connection isn’t being throttled to the point of uselessness. I’ve stopped watching YouTube, because there’s no point in even trying any more. The odds VZ will let the bytes down the pipe at a reasonable rate – enough to watch an animal be moderately cute for 45 seconds – are increasingly slim. 

I could go on. Numerous apps I once relied on – 1Password chief among them – are utter shit. An app we use at work did a major rev with corresponding upgrade fees, to the tune of $150 per seat, and won’t be fixing any of the bugs we have outstanding in v4. “Upgrade to v5 and maybe we’ll fix them”, we are told. 

There are people who think that Microsoft EOL’d XP because they are greedy. These people are very, very stupid. Microsoft gave everyone years of warning that it was going to happen; so shut up

In the mean time, look at the very real software (and hardware!) situation going on around you. The entire thing is garbage. Real software we use today is horrible: user interfaces for line-of-business apps feature puzzle-solving as interaction. Software reliability is less than worthless. Everything takes more money than is reasonable to just get a shitty, bug-ridden blob of bytes out the door. “The Cloud” solved none of this; except to make even experienced professionals more unhappy.

Things are horrible and, like most of life, one imagines it’s going to get a lot worse before it gets better. 

 

The Agony and the Ecstacy of OpenStack: This is how you die

Spleen Merchant

I have a confession to make: I’m horribly stupid, or horribly unlucky, or perhaps (probably) both.

I went to http://openstack.redhat.com/Quickstart and after freshly installing the latest CentOS (and giving it a complete yum update) I started on the steps therein.

It’s effectively 3 commands! And at the end you’ll end up with your own little 1-computer “cloud”. Or so I thought.

I made it as far as step 4 in the Running an instance docs before things went Tango Uniform. But it’s no big deal: the docs are wrong in that they omit a number of necessary configuration options, but that’s OK.

Sure, the error message is completely byzantine and meaningless to anyone who is not intimately familiar with OpenStack internals; but this is the cloud. You have to understand the minute implementation details of literally every byte crossing the delicate silicon cores of your machine.

(If you’re curious, the answer is the Fedora image referenced in the docs has to be spun up w/ a size larger than m1/tiny.)

Anyway this is far better than what would have been here, had I written this blog entry 3 months ago: getting images to spin up took edits of tons of files. For fun, check the Wayback Machine entry. The docs are still wrong, but at least the underlying platform isn’t shipping completely broken.

Eight Times Over Miss October

So now we’re far, far ahead of where we were: VM images can be downloaded off the web and started with a single click! No more tedious editing: that was the equivalent of selling a car that defaulted to leaded gasoline then telling the hapless owner to take it immediately to the mechanic so it can be converted to unleaded.

Networking doesn’t work, of course. The default configuration (via the `packstack –allinone` command you ran earlier) doesn’t work. I’ve tried it with so many configurations I can’t even remember: I recently threw away a moleskine full of notes because they were all contradictory, confusing, and probably meaningless.

What I know is that nothing works, and it’s got me so angry I can’t see straight.

Oh, sure, there’s lots of people out there who have operating OpenStack clusters. At least I assume so: I mean, our company has one at one of our offices. As far as I know we aren’t using it in a production capacity – a way to make money delivering goods and services to our paying customers – but we have one that boots and starts VMs and so on.

I don’t know anyone that has that, other than Rackspace proper. I do know lots of people spending huge amounts of effort trying to get this working.

But the “quick start” doesn’t even work; but like I said, I’m not very lucky and definitely not very smart. I’m sure lots of people have gotten it to work out of the box. All those posts here and here from people who can’t get a basic installation spun up are probably just doing insane things.

I just took a machine I’ve run Linux (and virtualization!) on for years, and tried to run the 4 commands the vendor told me would work. It doesn’t work, but I’m not very smart.

Electric Worry

People who think “cloud” isn’t here to stay, or that virtualization and clustering platforms like AWS and OpenStack and VMWare are some sort of fad, are way more stupid than I am. Look, it’s a thing.

It’s hard to look at platforms like OpenStack and not immediately say “this is a load of fetid dingo kidneys”, because industry heavyweights like Amazon have made cloud and virtualization and so on so fucking effortless.

Also yeah I just said Amazon, the book store guys, are an “industry heavyweight”. We live in a strange world.

Anyway everyone’s living in the shadow of AWS and so it’s hard to remember how many people sweated bullets to get us here.

That said: I mean this page has 2 entirely different command sets to do something, provides no indication which command to use (no “Am I running on nova-network?” or an even a hint to figure out just what you are using), and in any event typing in those exact commands doesn’t work anyway. I know this because I set up a machine to exactly mimic the setup in the docs, assuming that I was stupid and couldn’t transpose my network details in the command. It doesn’t work, but that’s probably my fault. I’m pretty stupid.

Pure Rock Fury

Before you say “The RDO spin is horrible! Use Ubuntu!” let me make a quick point. We work in the government and military spheres, and the only Linux you can really use is Red Hat (or CentOS), period, full stop, end of discussion.

(If you’re not sure what “end of discussion” means, then you’re one of those people who post on Hacker News are are irredeemably more stupid than me. Go post there if you have theories and ideas, so I can most efficiently ignore them.)

Our customers have interest in cloud and virtualization, thus my interest in RDO and making it work.

Moreover, since I’m very unlucky and probably very stupid, I don’t want to be the sole Subject Matter Expert on the topic of OpenStack. So using the platform everyone in the building is familiar with – RHEL and CentOS – just about everyone can pitch in and contribute. Which is useful, because I’m unlucky and probably very stupid.

Mice and Gods

I just wish it worked, and I don’t understand how and why it doesn’t, and I’m running out of energy to keep fighting it. But I can’t ever stop: The Powers That Be want it, and like I said if you think this isn’t the future, you’re nuts. So I have to keep fighting despite any indication that any of this will ever work in the way we want to.

Thanks for listening.

BREAKING: No one cares about privacy

Via Hacker News, we have this headline: “Facebook reveals friends list even when it’s set to private”. It’s yet another example of Facebook (et al) leaking information that results in something of a privacy breach.

Does anyone really care?

The answer is simple: no. No one cares.

The world is easily segmented into two groups:

  1. A very tiny group of people who value their privacy and do all sorts of weird things to protect it, like not using Facebook or G+ or whatever. They use some strange 3rd-party email Tor reflector thing, use OpenGPG to encrypt all their cat pictures, etc.
  2. Literally everyone else.

I don’t know of a single person who left Gmail (or switched their default search, etc) as a result of the whole NSA thing. I don’t know a single person who has ever said, “Facebook is a massive time-sink/drama magnet whose purpose is to enrich the bank accounts of those who own Facebook stock, so there’s no reason for me to be there”. I don’t know a single person who has ever said, “The default search experience on Duck Duck Go is good enough that I don’t need Google”. I don’t know a single person who has ever said, “I don’t mind ads for Google products and services on my default new tab page in Chrome”. I don’t know a single person who has ever said, “I gain massive benefit from social networking, so these sorts of privacy breaches are unfortunately part of reaping said benefit”.

In other words, no one cares. Privacy breaches don’t matter until it hurts you directly.

(Addendum: I have seen people on Twitter remark that they’re switching to DDG; however I’m a veteran of the first great Linux On The Desktop war, and for every person who cast Windows aside and boldly embraced the Penguin, approximately 100% were back on Windows as soon as the newest CoD game was out. So I don’t even believe those who boldly Twitter-protested their switch: odds are they got annoyed at DDG and quietly switched back to Google.)

It’s not that security researchers shouldn’t continue to look for them; it’s that the tech press act like they remotely matter one bit. They don’t. No one cares. File it away in the giant list of ways Facebook sucks ass, and watch Facebook’s stock price soar.

Simpler, but vulgar

Allow me to make a stronger, simpler, and far more vulgar point than this post:

Hacker News is awful. The “community” is mostly bored shitheads posting from work, or massively self-important assholes who are bitter their TODO app didn’t get into YCombinator after 15 tries. 

Twitter accounts like Shit HN Says could be 10x as content-rich if they wanted to. Most of the things posted on HN are just truly awful, in terms of a community of ostensibly technical people. 

You can see craven, callow, shallow, mean, bitter, obnoxious, stupid … the entire range of awful human interactions. Honestly, when’s the last time a HN comment really improved anything? Really made a strong contribution to your job, your hobby? 

As a community-curated link site, Hacker News has good stuff most of the time. As a place for community discussion, Hacker News is just You Tube comments with better grammar.

Translating the “Rails is DEAD!” talk to plain (?) English

So apparently a bunch of people woke up this morning and decided Rails sucks.

Let me translate some of this for you.

I’m becoming more and more certain that this means that Rails-style MVC frameworks on the server-side are going to end up being phased out in favour of leaner and meaner frameworks that better address the new needs of thick-client architecture.

Uh, yeah.

What that means is:

Part of the reason we have these monstrous frameworks is because at some point all software is just one giant if/switch around the seemingly endless list of bugs stemming from one of (client OS, client hardware, client browser, client plugins, deranged and clearly pants-on-head-stupid client workflows, and the vagaries of quantum physics.

But, because programmers think code rusts, and we love to rewrite the HELL out of it, we come up with new and exciting ways to do just that.

Much of the OP‘s complaints can be easily and succintly explained by simple things: IE6 is now dead, most browser vendors have some sort of agreement to not put us all though the same old BS browser war we went through last time. JavaScript is now a “first class” language and not an annoyance for “know-nothing” Web designers or inflicted on the company “rock stars”. Enough JavaScript exists “in the wild” that we have stable platforms to use to build apps.

So! It’s the trifecta of awesome rewrite-your-app time:

“Everyone’s settled on non-blocking IO as the only way to scale.” “Client-side tempting is where it’s at these days.” “We’ll less trouble since it’s all the same language and platform everywhere!”

Time to rewrite those apps!

Fast-forward 2 years when “I’m becoming more and more certain that this means that Node.js-style single-threaded engines with client-side logic are going to end up being phased out in favor of leaner and meaner megathreading frameworks that better address the new needs of the quantum-core architecture”.

An example of why Applescript is utterly awful and must be replaced

A while ago, I attempted to resolve the problem in Safari’s Delibar extension, wherein it can’t do what the Chrome extension can: automatically put the selected text into the ‘notes’ field.

I failed.

In part I failed because of Safari, and the way it structures extensions. Briefly, Safari uses a sort of separation-of-concerns model, so what a particular piece of an extension can access varies. Getting the selection is really hard because you need to use proxying and messaging to communicate between the current page, the extension’s “page”, and any resources.

I gave up because it sucked and wasn’t fun.

I had another thought: use Applescript to get the selection and pass it to the Delibar app itself! GENIUS!

The tl;dr here is “Delibar isn’t scriptable” so none of this matters, anyway.

Safari’s Applescript dictionary doesn’t include the term “selection”. To the best of my knowledge, you cannot use Applescript to get the selection of the current tab. Oh ….. kay.

So, the next logical step is to use JavaScript, because I know it has the ability to get the selection AND I know that there is a ‘do JavaScript’ command in AppleScript for Safari. Now we’re cooking!

Here’s the relevant bits from the dictionary:

 

do JavaScript (verb) Applies a string of JavaScript code to a document.

 

and the example:

 

set theResult to do JavaScript unicode text ¬ in tab

 

Makes sense, right? Sure. So you’d pretty much imagine that it works just like this:

tell application "Safari"
    set selectedText to (do JavaScript “window.getSelection()” in current tab of window 1)
end tell

Always returned null. Always. I then tried hundreds of combinations of more-or-less JavaScript, including:

  • adding a return
  • wrapping it in an anonymous function
  • using document instead of window
  • banging my head against the desk and cursing myself for ever having these sorts of thoughts After lots of searching, I discovered the completely obvious answer:

    do JavaScript “(”+getSelection())”

That’s a double-quote, left paren, single quote, single quote, plus, then the function and a closing quote.

Of course. Completely obvious. Note that removing the single quotes and concatenation operator doesn’t work. So “(foo())” doesn’t work, but “(”+foo())” does. I found two places that say it does work, but I can’t make it happen in the latest Lion and Safari.

How the hell do you even arrive at that as a logical place. And how do you expect regular people, ostensibly the target market for Applescript, to arrive at that conclusion?

Applescript is goddamned awful.