I never thought I’d see Microsoft throw in the towel on their browser engine. Or that, by the time it happened, I’d see that as a bad thing.

But it’s true: like Opera did a few years ago, Microsoft is dropping not only the old Internet Explorer engine, but the newer Edge engine, and will be building Edge on Chromium going forward. That means Edge, Chrome, Opera and Safari are all built on the same codebase. (Chromium split from Apple’s WebKit a while back, but they still have a lot in common.)

Monoculture is still a problem, no matter who runs it. We’re already at the point where webdevs are treating Chrome like the defacto standard, the way they did IE6 back in the day.

Firefox is going to be even more important in the future, ensuring that the web continues to be built on interoperable standards instead of one stakeholder’s goals.

Mozilla is a non-profit organization, and like many, they’re running a year-end donation drive. Now is a good time to contribute to their mission to keep the internet and the web open. (I’ve already made my annual donation to them.)

I think I may want to finally shut down or retool that old Alternative Browser Alliance site I ran during the Second Browser War. The last time I made a significant update to it, Chrome was the new upstart.

Back when I was comparing social media archives, I considered resurrecting my old LOLspam project as a Mastodon bot. I never quite got around to it, partly because I was able to do most of what I wanted to automate using IFTTT, so I stopped investigating that last 5%.

Last night, I threw together a quick and dirty bot to post a random item from a text file in about 20 minutes.

Then I spent three hours going through the Twitter archive for @LOL_Spam, pulling out jokes that are too dated or cringeworthy. (I hope I didn’t miss any. It was midnight by the time I finished, and I was really tired!)

This morning I modified the script to take a second file as a queue for new items.

  • I can add new items to the queue file as I find them.
  • It’ll post from the queue on a schedule (using cron).
  • When it uses up the queue, it returns to posting random posts from the archive.

If you’re interested in funny/odd spam subjects (and you’re OK with swearing and occasional lewdness), check out @LOLspam@BotsIn.Space. You can follow from any Mastodon or other Fediverse account.

The script itself is called fedbotrandom. I wrote it in Perl, using text files, so I could just put it in cron on any *nix box instead of worrying about language/database support or installing a runtime or DB engine. I’ve made it really simple on purpose, and while I do plan on writing some better error handling when I have time, It’s already more complex than I wanted it to be!

You can find me on Mastodon at @KelsonV@Wandering.shop.

I’ve been using Pocket lately to offload “Hey, this looks interesting” articles from times when I really should be doing something else to times when I have, well, time.

  • It syncs a copy of the article to each mobile device, which means I can see something in the morning, save it to Pocket, then read it on my tablet at lunch.
  • Feedly talks to it easily. I’ve even linked it up with IFTTT so that tapping “Save for Later” on the tablet will add an article to Pocket.
  • Speaking of IFTTT, I’ve also set it up so that saving an article as a favorite in Pocket also adds it to Delicious.
  • The Android app will accept shares even if there’s no network connection, then sync up when it’s online. That means I can look over a newsletter in Gmail at lunch, save the links that look interesting, and archive the email. Then I can read the article at work or at home…or the next time I’m out somewhere, after it’s synced.

I’ve also started using the text-to-speech feature to listen to articles in the car while driving to and from work. The voice is fairly decent despite the usual flat tones and lack of natural rhythms, but there are a few oddities that take getting used to.

  • # is always read as “hash.” This makes it really odd for comics articles, which frequently talk about issue numbers. “Batman Hash 123” just sounds wrong.
  • Italics are…always…emphasis, and presented by…pausing…rather than changing tone. This makes it…awkward…for anything involving lots of titles.
  • It parses words, rather than using a dictionary, and can’t always figure out whether initials should be read individually or pronounced as a word. This usually works fine, but occasionally leads to phrases like “tah-kay-down notice,” (takedown) “link-uh-din” (who knew LinkedIn rhymed with Vicodin?) or “pohs terminal” (POS as in Point-Of-Sale) On the other hand, it figured out “I-triple-E,” so I imagine it’s got a dictionary for special cases.

Yesterday, my phone suddenly started downloading something called “Facebook build (somethingorother).” It didn’t show any progress, wouldn’t go away, and I worried that maybe it was a piece of malware or something buggy. A quick search turned up nothing. A later search found other people asking what this was. Late last night, there were articles about “Hey, why is Facebook updating itself!”

It turns out that yes, Facebook is now downloading its own updates on Android phones and tablets instead of just pushing them out through the relevant app stores (Google Play and Amazon, mainly). I’m sure they thought it was a great idea — web browsers like Firefox and Chrome have been doing this for several years on the desktop.

The problem is that it violates expectations of what the app will do, and where your software is coming from.

Imagine your car’s manufacturer issues a recall. Now imagine three scenarios:

Scenario 1: You receive a notice of the recall, asking you to make an appointment to bring the car in for maintenance. (For those of you who don’t drive, this is how it normally works.)

Scenario 2: You receive a notice offering to send a technician out to do the repairs at your home or workplace. (This would be awesome, but impractical.)

Scenario 3: You’re sitting in the living room when you hear a noise from the garage. You go out to investigate and find someone messing with your car.

That’s what this feels like.

It’s one thing to offer software through third-party channels. The fact that it’s possible is one of the reasons I prefer Android to iOS. In that case, notifying me of updates, maybe even simplifying the download would be very convenient — if I know ahead of time that it’s going to happen. And if they’re not switching channels on me. A download coming from some new location, but claiming to be a familiar piece of software, and a notice telling you to install it? That’s how trojans work.

In short, it’s a violation of trust…and if there’s one thing we’ve learned about Facebook over the last few years, it’s that the social network has enough problems with trust.

Opera IconIt still feels like an April Fool’s joke, but Opera is in fact switching to WebKit and discontinuing their own engine, Presto.

I can sort of understand. They can stop worrying about the long-running headaches of browser-sniffing websites that assume Opera can’t do things that it can. They can focus their efforts on the features they want to add or enhance, instead of maintaining their own separate codebase.

But here’s the thing: Throughout its history, Opera has served as a check against monoculture, against a single engine dominating the web too thoroughly. And now, it’s embracing the engine that dominates the fast-growing mobile web.

Remember the bad old days when people just wrote for Internet Explorer, and there was basically no innovation in web browser capabilities? It took Firefox’s success to turn the tide, but Opera was there, needling the industry with things like the “Bork edition” which turned the tables on browser-sniffing websites. Opera was a constant reminder that no, the web isn’t just Internet Explorer and Firefox, or just Internet Explorer and Webkit, or just two flavors of WebKit. That it was worth building technologies to leverage cross-browser web standards instead of picking the current 800-pound gorilla and feeding it even more.

There’s a real value in having different engines approaching the web in different ways, because it prevents stagnation. And there’s real value in having different engines use different code, even when implementing the same capabilities, because that means when a security flaw is found in one browser, it doesn’t apply to all of them. I go into this in a lot more detail in the old, but IMO still relevant article, Why do we need alternative web browsers?

The problem, of course, is that as much as I appreciate that role for Opera, it’s never really been their goal. Opera’s purpose is to sell web browser-related services. In the past, an open web was necessary to do that. Now, they’re throwing in their lot with the front-runner instead.

That leaves Mozilla, whose mission actually is to promote an open web, to go it alone. Apple and Microsoft certainly don’t care. And Google only really cares to the extent that their services are available as widely as possible. And when you get onto mobile, all three prioritize getting you into their particular silo.

Webkit browsers are a dime a dozen. The only ones that really matter are Chrome and Safari, and Safari is a lot more important on iOS. Opera will soon be just like Dolphin, Rockmelt and others that I have to rack my brains to remember. Maybe it’ll be enough for the company to survive, but it won’t be enough to keep them relevant.