ooh, I think I know the answer to this one

Via Orange Site, we have “Questions“. Specifically, this one:

Will end-user applications ever be truly programmable? If so, how?

Emacs, Smalltalk, Genera, and VBA embody a vision of malleable end-user computing: if the application doesn’t do what you want, it’s easy to tweak or augment it to suit your purposes. Today, however, end-user software increasingly operates behind bulletproof glass. This is especially true in the growth areas: mobile and web apps. Furthermore, not only is it getting harder to manipulate the application logic itself, but it’s also becoming harder to directly manipulate your data. With Visual Basic, you can readily write a quick script to calculate some calendar analytics with Outlook. To do the same with Google Calendar is a very laborious chore.

End-user computing is becoming less a bicycle and more a monorail for the mind.

As a consequence, we need ever more domain-specific software. Rather than use universal tools for handling charts and for manipulating data, we tend to use separate analytics packages for every conceivable application. This is not all bad. Domain-specific tools can maximize ease-of-use and help amortize the cost of complex, specialized functionality. Sublime’s built-in ⌘-T works better than every third-party Emacs package. Still, despite these benefits, the popularity of macros and browser plugins strongly suggest that users are smart and want more control.

Should we just give up on our earlier visions of empowered users or is a better equilibrium possible?

And I think I have at least one possible answer, so here goes.

Continue reading “ooh, I think I know the answer to this one”

iOS remains a cesspool of annoyance, but I can’t leave

I’ve been using iPhones since the very first one; I had one in my hot little hands a mere 2 weeks after it debuted. So I’ve seen nearly every shitshow come and go. I have an extremely high confidence that most egregious problems will be resolved, because they always have been, and it remains in Apple’s best interest to continue to fix the big problems.

The small problems, however, remain from release to release. I’m not sure they’ll get around to fixing them. Or, possibly, I’m “lucky” and the only person in the world with these problems.

Continue reading “iOS remains a cesspool of annoyance, but I can’t leave”

A brief, painful attempt to understand JSA

JSA is “JavaScript for Automation”, aka Apples attempt to embed JavaScriptCore into their Apple Event model.

The use case here is, roughly, “I know JavaScript and [love|like|tolerate] it, but I cannot under any circumstances be arsed to do anything useful in AppleScript, because AppleScript is easily one of the worst software platforms ever created by man”.

Seriously, AppleScript is extremely bad. I have in my life encountered a few people who loved it; and nearly 100% of them are not work-a-day programmers. AppleScript is purpose-built to confuse, annoy, and frustrate people who can chew through languages like Swift with little effort.

(I’m not trying to start a “you’re not a real programmer” thing; if you write a program – any program – you’re a real programmer! I’m just saying that the norms AppleScript adheres to are typically diametrically opposed the stuff we work-a-day programmers have deeply, deeply internalized as “normal”.)

Anyway! I decided rather than replace a bunch of light switches my wife has decided are no logner aesthetically pleasing, I thought I’d spend the morning trying to hack on some JSA. After all: how hard can it be? It’s JavaScript and I know JavaScript, and I have once or twice managed to fumble around with AppleScript until I accomplished something useful.

I can sum up the morning with the phrase, “Oh, for fuck’s sake”.

Continue reading “A brief, painful attempt to understand JSA”

vt100 development

With the exception of the web browser, every single piece of my job could be accomplished with a vt100.

I don’t want to go into too many details, but suffice it to say that we are running on a very specific platform, with extremely specific hardware and software requirements. Historically, developers were not provided with machines that could easily run lots of local VMs, preferring instead to build a server farm that resembled production and eventually parcelling out VMs to devs from that. There are also other reasons to eschew the “just run it all in Vagrant+Virtualbox” mode, involving database resources and other considerations.

I discuss (and overshare!) this here, if you’re curious. At the time – for the first year and change I have worked at $SALT_MINE, I’ve been strugging with this mode of remote mounts, sync, SFTP, etc.

In short, it sucks. I have managed to get a couple of Vim configs that work, and now I run basically 2 programs: iTerm 2 and a web browser.

All that hardware – we get nearly top-of-the-line Macbooks – is used to run 2 programs. I could do my job on a vt100, and I hate that.

As I’ve said elsewhere, this has almost always been the case, too! At $LASTJOB the core work required an actual goddamn computer, you couldn’t even use a VM (don’t ask, it was complicated). At the job before that, there was no reasonable way to run one of our products on anything but a real computer of a very specific make, model, and OS (although in fairness that involved licenses as much as bytes).

Every now and then I look at companies like JetBrains and wonder, who actually gets to use those tools? Who gets to do, I dunno, some sort of Java or .NET dev with a fancy IDE that pushes to the cloud, or something? Who gets to use fancy database admin tools? We have to hide our production DBs behind 100 layers of security (a very fancy logging proxy, among other things).

I have managed to get a working Linux config that does the same thing without any distractions: it’s just OpenBox and Terminator. There’s not much else. I’m missing a few nice tools – LaunchBar and TextExpander are the most strongly felt, but I’m sure there’s replacements.

I’m still using a glorified vt100 to this day. I hate it. Is this all there is?

The lock-in we choose

Hackernews had a link to a piece about someone moving to a password locker called Bitwarden.

It’s interesting because it illustrates the weird state we’re in with platforms today.

First, this bit:

Meanwhile, AgileBits, the 80-person company developing 1Password, has been pushing their new hosted, subscription-based model for 1Password going forward. Instead of users being in control of their data files, 1Password will store them on AgileBits’ servers and users pay a monthly subscription fee for the privilege, forever.

I fail to see how the staff size of AgileBits has anything to do with anything. It feels ad-hom; how DARE they not be a scrappy little 2-man startup! How dare they have a support staff, enough junior sysadmins to have 24/7 coverage for their new web service, a full-time graphics and design team to cover all the platforms they support, and whatever else it takes to run their company the way their principals want.

Anyway, yes, the subscription-and-stored-on-our-servers model was, and is, very concerning. I am still using iCloud sync, because it has worked very well for me and I did not want to be an early adopter of stuff with my passwords.

What gets me, though, is this:

… there is an issue of lock-in and now having to make my OpenBSD hacks work …

My dude.

AgileBits was, as I recall, founded as a company whose primary platform was the Mac. They don’t even mention Knox or other apps anymore. For a long time, even Android was a second-class citizen; I haven’t used Android in a while but when I last did, it didn’t even have proper 1Password support; it had some read-only nonsense.

Think about that: Android installs outnumber iPhone by rather a large margin and they didn’t bother with it.

In short, my dude, you chose to drive a car that needs leaded gas and you’re mad Pep Boys isn’t going to sell you the right additive.

They are a Mac software company, who also makes a port to Windows; they are an iPhone app company who ported their app to Android. They give 0 fucks about OpenBSD on the desktop, because supporting all 9 OpenBSD desktop users will not help pay their mortgages.

The point, here, is that we all chose a kind of lock-in. Every choice we make in software and hardware platforms ties us to an ecosystem. There is this pervasive myth that F/OSS will free us from lock-in.

Bullshit. It frees us from the woes of decisions made in boardrooms based on spreadsheet calculations for 3 fiscal quarters from now; but it locks us into the whims of hobby projects, volunteer support, trends, and more. Just about everyone in a Mac uses 1Password, but with my office as a small sample set (plus the Hackernews comment section) all the F/OSS community gets is the paradox of choice.

 

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.