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!

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 logo and Opera Unite logoThe Opera web browser has introduced a lot of cutting-edge features* over the years, many of which have since become standard in other browsers like Firefox, Chrome, IE and Safari. But they’ve also introduced features that didn’t catch on. With Opera 12, released yesterday, they’ve taken the first step toward removing Opera Unite and Widgets.

Opera Unite was a fantastic idea to move beyond the standard client-server model that dominates most internet activity and take peer-to-peer communication to the next level. Instead of relying on central servers like Facebook or MSN or Gmail, you could run a chat room, photo gallery or other application directly from your computer.

It never really caught on. If I were to guess why, I’d say that the big reasons were security concerns (turning your computer into a server!), the rise of easy-to-use cloud services, and the increasing move toward mobile computing. It’s one thing to let friends remotely browse a photo gallery from your home desktop that you leave on all the time. It’s another to have them view that gallery data from your iPad over your sketchy and bandwidth-capped cell connection.

As for widgets, they were sort of an odd thing to begin with: not quite applets, not quite extensions, and in competition with native widgets on both Windows and Mac OS that didn’t depend on having a browser open. (Though these days, when don’t you have a browser open?) Honestly, I’m still somewhat mystified as to why Opera created them in the first place.

Opera 11 introduced an extension system, and they’ve released a reference on converting widgets to extensions.

Widgets and Unite are still present in Opera 12, but turned off by default for new installations, and will be removed from a future release “before the end of this year.”

*I still disagree on the issue of tabs, on the basis that a tabbed interface is distinct from MDI.