Author Archives: Kelson

Mobile Firefox Frustrations

I’ve been using Firefox for Android as my main mobile browser for a few weeks now. There are a lot of things I like about it. It works well overall. Unlike Chrome, it supports extensions, so I can install (for instance) Privacy Badger and HTTPS Everywhere. The share menu option includes the two most recent apps instead of just one. Things like that.

But there are a few things that I find incredibly frustrating:

  • PWAs aren’t as stable as Chrome.
  • Auto-fill is inconsistent and interacts badly with scrolling.
  • It’s slower than Chrome, though I’ve found that turning off web fonts helps a lot.
  • Private mode UI differs only by the color of the search bar, so whenever I use it, I have to double-check whether I’m actually in private mode or not.

Plus I miss a few Chrome UI features that just streamline common actions:

  • When clicking on the search bar, if you have a URL in the clipboard, Chrome offers to load that URL. (This is particularly helpful for opening email links in private mode.)
  • Auto-fill an entire address form at once
  • Clear the last X minutes of history

On the PWA front: These are packaged web applications that can be “installed” locally and used offline, powered by whichever web browser you used to install them. When I switched browsers, I also reinstalled the PWAs I was using on my phone and tablet, switching them from Chrome-powered to Firefox-powered. These amount to a couple of Mastodon instances and Twitter. (I don’t want to install the full Twitter app on my phone so I’ll be less tempted to get caught in infinite scroll.)

On Firefox, Mastodon’s PWA frequently logs me out. Every other day at least. Sometimes it stops being able to load any new statuses, and I have to close the app entirely and re-open it to get back to normal. (Fortunately that’s fast.) Twitter…well, it worked for a couple of days, then it got into a redirect loop where it kept switching between the regular UI and the login screen. I considered reinstalling it through Chrome, but finally decided I was better off without Twitter on my phone anyway.

Despite these issues, I’m going to stick with mobile Firefox for now. We’re entering another period of near-monopoly in web browser engines, and it’s important to keep a viable alternative going to ensure that the future of the web isn’t built on a single stakeholder’s goals.

Dreariest Circumhorizon Arc Ever

Smudgy clouds, colors enhanced to bring out a straight rainbow effect.

I could barely see any colors in the cloud at all without my polarized sunglasses, and when I took a photo through them, I still had to bump up the saturation.

Thin clouds and contrails cross the sky. A bright rainbow-like ring circles a spot just out of view above the frame. A fainter rainbow-like line runs across the sky below it.I’ve seen several of these over the years. The brightest one was nine years ago, while the longest was just last year. It’s a solar halo caused by reflections inside ice crystals (near ground level or higher up in the atmosphere) that in theory could circle the entire sky parallel to the horizon. In practice, it’s rare for ice crystals of the right shape and orientation to cover more than a small area from any given viewpoint, so mostly people see fragments of them.

Verizon is Already Trying to Sell Tumblr

Wow, that shoe dropped sooner than I expected. Verizon is already shopping around to sell Tumblr. I figured it would be toward the end of the year, not the middle.

After Tumblr’s ham-handed ban on adult content last fall purged a bunch of accounts, sparked a lack of confidence, and triggered an wave of users leaving in digust, it became clear that Verizon had no idea what to do with Tumblr (not that Yahoo! had much more). If they hadn’t already started the death spiral, they’d at least knocked it out of orbit.

I’ve never been super-active on Tumblr, but I interact with a few people, and I used to occasionally post things there that weren’t reposts from my blog, or Flickr, or Instagram, or wherever. So, just in case, I backed up a full archive, imported some of the original posts, and pared down all the old duplicates and outdated signal boosts so that when Verizon inevitably gave up monetizing the site, it would be easier to find the pieces I wanted to keep.

Honestly, I’d rather Verizon sell it than shutter it and sell off the data (you think Verizon wouldn’t?). But it depends on who buys it. If anyone wants it.

Here’s hoping Tumblr finds a suitable buyer who understands what they’re getting and is willing to invest in the community, not someone who just wants to squeeze out the last few drops of cash before sending it to join GeoCities in the great Internet Archive in the Sky.

How to get Grails to use a reserved word with Microsoft SQL

If you’re building a Grails application using a Microsoft SQL database, and you want to have a property on an object that’s a reserved word in MSSQL, like RULE, you’ll probably end up with a SQL syntax error because Grails, Gorm and Hibernate don’t know what words are reserved in MSSQL.

You can just use another name. Does the property need to be called MyObject.rule? You might want to call it something more specific anyway. Problem avoided!

But if you want to keep the name, or if you can’t change it in the DB (say, because you’re connecting to a legacy database), you can get it to work!

Use a custom mapping. Grails lets you map a domain object’s properties to a column that doesn’t fit the usual camelCase → snake_case pattern, and you can use the same mechanism to add the delimiters that MSSQL needs to use the reserved word as a column name. Problem solved!

static mapping = {
    rule column: '[rule]'
}

Now Gorm/Hibernate will use the right delimiters on the back-end, and you can keep accessing myObject.rule, MyObject.findByRule() and so on.