Jul 13, 2017

For those who read the prior post about the Adventures in Unicode, you may have come away thinking that Firestorm was the clear winner in extended character sets with everyone else falling short.

After all, it appeared that way from our end as well.

That is, until we ran one last test and brought over Tonya Souther, (one of the Firestorm devs who originally implemented the Noto font and Unicode for Firestorm), over to the workshop to click on the ONYX radio.

There may have been a very large explosion involved…

The following are screenshots provided courtesy of Tonya:

Firestorm Linux

Firestorm OSX

Firestorm Windows 7

Revenge of the Tofu

It would seem the Unicode implementation for Firestorm is not consistent across operating systems!

At first glance this looks bad – after all, this means using Unicode in the menus for content is an entirely hit or miss situation now. However, upon further inspection, there has to be a reason why the Unicode shows up sometimes while failing in other situations.

Overall, this is a shared experience issue. If you were to listen to Linden Lab over the past number of years, then shared experience is a number one priority. The user experience should be consistent for all in-world users, and now that the Unicode inconsistency has been identified, we know this is not the case.

While Windows 10 machines will show the full menu icons via Unicode, Windows 7 machines are missing two, while Linux and OSX Firestorm installs will get a bunch of Tofu altogether. According to Tonya, this shouldn’t be the case at all if Noto is packed into every Firestorm version. If anything, the Noto font bundle with Firestorm should make the Unicode display consistently across viewers and operating systems.

But this isn’t the current case, as demonstrated by the ONYX radio menu at the Andromeda Media Group workshop.

The entire purpose of Noto as a font is “No To(fu)”.

What Happens Now?

Under normal circumstances, this would be the end of the line. However, because it was Tonya Souther (one of the devs who implemented Noto for Unicode compatibility in Firestorm) who found the glaring issue, she insisted on fixing it as well.

This is, after all, a Major Bug in Firestorm that breaks the shared experience.

After I filed the JIRA for this, Tonya jumped in and personally assigned herself to the cause – taking up the crusade against Tofu for the benefit of everyone in Second Life.

This sort of dedication is what makes the Firestorm team so awesome. I could have filed the JIRA and then have the devs just say “Yeah, whatever…”, but in this case the Firestorm dev was right there in person, helped document the glaring flaw, and owned it like a boss.

Why This Matters

For years, one of my biggest gripes about Second Life is the inconsistency for supporting Unicode characters. You are probably just as keen on this issue as well, since there are plenty of times you’ve seen people with “fancy text” names or some sort of decoration characters in their profile or chat which showed up as a bunch of [] characters instead.

Because these characters show up for some but not all, I would call this a major break in “shared experience” protocol touted by Linden Lab. The “simple” solution to fix this would be something along the lines of -

1. Extend the Noto font for Firestorm to support a large number of common icons and glyphs, but not “everything” like all the foreign languages. By focusing on the icons/emoji/glyphs of Unicode as a fallback font, and then making sure all versions of Firestorm use it, we ensure a consistent display of characters in Second Life.

2. Unifying the Font.XML file for Windows, Linux and OSX to make sure they all point to and properly use the extended Noto font for the Unicode compatibility, regardless of your operating system.

Because this is a “shared experience” issue, fixing it should be a priority. Therefore, if/when Firestorm team makes the Unicode implementation consistent among their own viewers, the code and fix is open source and can/should be included in the Default Second Life Viewer (I’m looking at you Oz Linden), and also other 3rd Party Viewers.

However – in order for Linden Lab to include such a fix in the Default viewer, they would have to probably bring back the font.xml implementation that seems to have been taken away (for unknown reasons). This would likely be true for other 3rd party developers as well.

By making the Unicode implementation consistent and reasonably up to date, we can see better use in local chat, menus on products in-world (accessibility), and more. Fixing this would have sweeping changes in the entire Metaverse in how we see various menus, information text in chat, and more displayed – with glyphs and icons now being more universal we can all expect a consistent experience for the same characters being displayed.

I applaud the fact that Tonya Souther was so quick to assign herself to fixing the glaring issue, and look forward to seeing a unified Unicode implementation in the near future.

Jul 10, 2017

On June 20th, 2017 the Unicode foundation updated the international standard for universal character mapping to version 10. Unicode 10.0 adds 8,518 characters, for a total of 136,690 characters. These additions include 4 new scripts, for a total of 139 scripts, as well as 56 new emoji characters.

If you are a regular user of Second Life, then you’ve very likely seen these Unicode characters in use for things like announcements, custom names, and various decoration and fancy text for profiles.

But there is a bit of a problem.

While the Unicode standard is now up to version 10.0.0, a majority of Second Life viewers (including the default viewer) doesn’t really support a majority of the Unicode standard characters. So much for that “shared experience”, right?

The Unicode set comes in quite handy when you want to add a visual element to your displays. For instance, there are a number of Unicode characters for icons and emojis that, while useful in a frivolous manner for text decoration, are very useful as universal symbols to denote common tasks.

For instance, if you wanted to use the age-old icon for “Save”, you’d use the floppy disk icon, right?

What if you wanted an icon for “Favorite”? Well, the obvious symbol would be an icon of a heart, like this: ❤

If all you saw with those two characters was [] for each, then you’re out of date for your font and/or Operating System. As far as I can tell, most modern operating systems and programs can see more recent Unicode characters by default.

The problem is that with Second Life, the Unicode support is all over the map at best. The default viewer (and most third party viewers) simply do not support a wide range of Unicode characters. That diskette icon from before would show up as a tofu – which is the name of the empty block symbol “[]” you see whenever the font you are using doesn’t have the symbol being used.

You’ve probably seen a lot of those “tofu” blocks in Second Life as you wander around and see people’s custom names, gestures and whatever. This is your viewer failing to support a wider range of Unicode characters which are standard internationally. More importantly, it’s your viewer not including fonts that support those Unicode characters.

The default viewer for Second Life comes with a few fonts installed, and they all fail the wider scope of Unicode support. Third party viewers like Singularity use Dejavu in a reduced format as the default font set, and doesn’t support a lot of Unicode characters up to version 7, which is actually from 2010 (7 years old!).

I won’t even get into the recently released Unicode 10 standard. That’s probably out of the question entirely, but it isn’t too much to ask for consistent support for a four year old Unicode character set.

Comparative Testing

While a majority of the Second Life viewers more or less fail a more comprehensive Unicode character test, the one viewer that actually fares better than all of them (including the default viewer) happens to be Firestorm.

As a test, the ONYX Stereo Receiver in Second Life uses Unicode icons on the menus in order to better differentiate. Keeping in mind that we didn’t use any Unicode past version 7 to be “safe” – we assumed characters that have been around for 4 years would be supported without a problem by now.

Unfortunately, this isn’t the case.

Here’s the visual comparison -

Default SL Viewer

One thing you’ll notice among the viewers that fail the Unicode test is that they all effectively crap out around Unicode 3 or 4 support in their included font(s). With Second Life Default viewer, you’d think Linden Lab would have the foresight to support a much wider set of characters in their included font.

Singularity Viewer

Next on the list for testing was Singularity Viewer, the third party viewer that I recall being the staple for Phoenix and older viewer style holdouts. Here, again, you see it fails the Unicode test on the ONYX menu.

Further research finds that Singularity uses Dejavu (much like Firestorm) but nothing else… or whatever else it has in the Fonts folder still doesn’t support a newer Unicode standard, so there are no fallbacks.

Black Dragon Viewer

So maybe I’m choosing “crappy” third party viewers, then? The low end of the spectrum, and that’s why they don’t handle Unicode so well? I wish that were the case, really… as below, you’ll see that even Black Dragon viewer fails the Unicode test.

Firestorm Viewer

And then there is Firestorm.

Notice anything different? Well, what do ya know… all the Unicode characters in the menu show up fine in Firestorm.

What’s Different?

When you look inside the Firestorm Fonts folder, you notice that there are more fonts in there than you’d find in Singularity or the Default Viewer, and while Singularity and the Default viewer also uses the Dejavu Sans font like Firestorm, all this tells us is that DejaVu isn’t the solution.

So what font is responsible for adding extensive Unicode support in the Firestorm viewer?

It is a free font and (from what I can see) doesn’t include any real restrictions for bundling it in your applications, and is actually encouraged. Which is probably why it shows up as part of Firestorm, in turn enabling all Firestorm users to see extended Unicode characters by default.

Specifically included in the Firestorm Fonts folder are:

NotoMono-Regular.ttf

NotoSans-Bold.ttf

NotoSans-BoldItalic.ttf

NotoSansCombined-Regular.ttf

NotoSans-Italic.ttf

The way that the viewers work in the XML files which declare the fonts in use is – you name a main font, and then you name off some “fallback” fonts when the main font doesn’t have a particular character to display (like with Unicode or foreign languages). So when the main font “fails” to find a character, it goes to the other fallback fonts listed to see if the character is in there. At least that’s how they used to work… and now (apparently) only Firestorm kept that ability.

As far as I can tell – Only Firestorm seems to have included Noto (and a few others) in their Font folder, and therefore can render much more Unicode than everyone else. Of course, they declared Noto in the XML file as a fallback font.

Which begs the question:

If it’s really this simple to update Unicode support for Second Life viewers, then why is Firestorm the only viewer that seems to have done so?

I’m actually quite surprised that I haven’t seen any of the other third party viewers do this, nor even Linden Lab with the “official” viewer. This has got to be (hands down) the quickest “shared experience” fix they can all do.

Just include Noto in your viewers.

Until then, we’re stuck answering a design question when creating items in Second Life:

Do I use Unicode icon characters in my text and menus, do I omit the Unicode characters, do I include a toggle button to show/hide them, or do I say “To hell with it…” and just build with Unicode characters knowing a majority of people use Firestorm?

This will be the question until everyone catches up and includes better Unicode font support in their next viewer releases, catching up to Firestorm.

Until then, I’m probably just going to use the Unicode characters in menus whether you can see them or not. It’s a simple fix, and you (the users) should get on your respective viewer developers to include better support for it ASAP.

Yes… even Linden Lab.

Addendum

After a bit of tinkering/testing, I had the idea that maybe one could simply copy/paste the Firestorm Fonts folder to the other viewer Fonts folder, XML files and all for the fallbacks… but it seems the other viewers just ignore it all.

This is curious to me as there was a time when the Default viewer used the XML setup to declare the fonts and fallbacks. As a result, I believe two things are going on:

The Default viewer (and other 3rd party Viewers) no longer have the XML functionality built in, or it’s disabled hard coded.

Firestorm kept the original XML functionality and put it to good use.

Which now begs the question:

If the third party viewers are open source, including Firestorm, then why is this functionality only in Firestorm? Even more, why would a function that was in the older Default viewers be taken out, if it allowed for such an obvious standards and compatibility fix with little effort?

This is quite possibly one of the easiest “Shared Experience” fixes to include, and (before Linden Lab thinks of it), no that doesn’t mean make Firestorm remove the functionality. That would be the most bone-headed thing Linden Lab could do.

As a result of the other viewers ignoring the XML files, this means that (unfortunately) you will have to petition your favorite viewer developer to put the functionality back in and include the same font set as Firestorm to fix the Unicode compatibility for your particular viewer of choice (including Linden Lab).

Because apparently, they’d all have to include the XML function back into their viewers and include the fonts in the folders of their own accord.

My recommendation, then, is the following:

If you’re not using Firestorm, go to your respective viewer JIRA and file it as a feature request. In the year 2017, there is little reason a modern application shouldn’t be up to date with Unicode compatibility. We should all be raising a little bit of hell over this one…

Jul 1, 2017

In this blog post, I’d like to discuss some simple tricks you can apply to your web browser to speed up common tasks above and beyond the stock browser offerings. The following “hacks” will let you skip a lot of the clicks involved with doing everyday tasks and cut right to the chase. These are tweaks that I have done personally with my own web browsers (Chrome and Opera) but should also work with Firefox if you’re using that particular web browser. If you’re using Microsoft Edge, then there is a special place in hell just for you.

The main question we’re answering here is:

In the course of our everyday web browsing, we find ourselves doing a lot of repetitive tasks to get to what we want. For instance, searching your favorite sites for content, using the Speed Dial, and so forth. So let’s speed this up a little bit and make our lives easier.

Search Operators

There is nothing scary here, and this trick is quite simple once you get the hang of it. Essentially, all browsers allow you to add custom search operators aside from the built-in options like Google, DuckDuckGo, etc. But how can we “hack” this feature to our advantage?

Well, let’s say you routinely search Youtube for videos.

Normally, you have to type in youtube.com, wait for it to load, and then click in the search box to do your search. If you’re a speed demon like me, then you want to skip all those steps in between for your favorite sites and just cut right to the chase.

The first step to this is right-clicking the address bar.

On that resulting menu, you’ll see something like the picture above. “Edit search engines…”

Very likely you’ll see a list under the main list that says “Other search engines”

By clicking on the “Add new search” you’ll be presented with another pop-up to define your new search keyword.

For instance, let’s look at adding a custom Youtube keyword.

Obviously we name it in the first box – in this case “Youtube”. In the second field, we choose the keyword to use in the address bar as the shortcut. For this example, I’ve chosen “youtube”. The last is the address to use for this search keyword.

This is where it gets a bit tricky. In order to get the search string for this, simply do a normal search on the site you want to set up a keyword for. In the results address at the top, copy and paste it here in this field when setting up the keyword with one change:

Whatever the string was for the thing you searched for (Let’s say you searched for Rick and Morty"), you replace that with %S as a wildcard.

Then hit Save on this dialog and you’re done. Whenever you type Youtube into the address bar, you can follow it with the search criteria directly and hit enter to skip right to the youtube search results for what you just typed.

In your address bar, you can type Youtube [space] [Search String] and it’ll skip right to the search results.

What else is this useful for? Well, let’s say you want to keyword something like Wikiwand to search for articles. The same process applies, but the address is something like:

www.wikiwand.com/en/%S

And you can set the keyword to be “wiki”.

Pretty much, you can do this on most sites that have a search option. I’ve set it up for Youtube, Wikiwand, Torrent, Freesound.org, Porn (why not?), Discogs (album info search), and yes even Google Play Music, where typing “play” and the search criteria in the address bar will jump right to the search results in my Google Music Library.

Author’s Note:Wikiwand is a much cleaner and modernized version of Wikipedia. I highly recommend using it over the standard Wikipedia site.

This is such a useful trick that I feel gimped whenever I set up a new browser install and can’t use these custom search operators. Trust me, once you set yours up, you’ll feel the same after a short time and wonder how you managed without this for so long.

It goes without saying that this trick can be used for single word tweaks for your favorite sites. For instance, if you use Google Drive a lot, but don’t want to type in drive.google.com all the time, just set up a keyword named “drive” with the address normally, and from there simply typing “drive” in your address bar will take you there.

Log In and Synchronize

This one is optional, but can save you a ton of time when setting up a new browser install. In your browser settings there is the option to log in and synchronize all of your settings. I highly recommend setting this up. In Google Chrome and Opera (Chromium based browsers), it’ll backup all of your bookmarks, extensions, themes, keywords, etc. When you set up a new browser install, and log in, the browser will “magically” set itself up the way you had it before – installing all of your themes, extensions, bookmarks, keywords and other settings automatically.

No manual import needed here – just sit back and watch it all work automatically.

This is such an awesome time saver that we at Andromeda Media Group are incorporating it into the ONYX land radio system by default. Because who the hell has time to keep messing with notecards and settings every time you rez a radio in Second Life?

Extensions

This is where the suggestions begin to get subjective, but I’ve found the following extensions incredibly useful for management, themes, and ease of use in Chrome, Opera and Firefox.

For the remainder of this post, we’ll be using our respective extension stores for the corresponding web browser -

The first out of the gate is FVD Speed Dial. While the built-in speed dials for Chrome and Opera are pretty good, FVD Speed Dial takes it to a whole new level with customization, organizing your speed dial bookmarks via tabs, and more.

Once you set up FVD Speed Dial, and get your dials organized, it’ll be a quick and easy task to open your most used sites.

LastPass

I don’t know about you, but I hate remembering and typing in passwords and repetitive information to fill out forms. With LastPass as an extension, it’s a one and done deal with a master password or auto-fill option.

Tampermonkey

When it comes to websites and how they look/feel/operate, sometimes the designers just don’t get it. Or maybe you just don’t like how things are laid out to your liking? With Tampermonkey as an extension, you can use scripts which will alter how those sites look, feel or operate (and sometimes adding new functionality altogether).

Installing Tampermonkey isn’t complicated, and it’s mostly a hands-off operation. What makes it powerful though is not just that it is the backbone of scripts to alter sites but when paired with script repositories, such as Greasy Fork, you can customize your favorite sites till the cows come home.

A side note – Tampermonkey is mainly for the OCD power user that wants new features or more control over things, and the mileage will vary for each script in use.

When the scripts work, however… it opens up a whole new world of possibilities for your favorite sites and customization.

Stylish

What is Stylish you might ask? Well, it’s an extension that works a lot like Tampermonkey but mostly for the purpose of applying themes to your favorite sites. Want Google with a dark theme? Facebook with greyscale? There’s thousands of custom themes for popular sites. With Stylish, it’s also pretty simple to find, apply and change them.

Download Chrome Extension for Opera

For this next one, if you’re using Opera, then installing this extension will let you install and use (most) Chrome extensions in Opera by default. With this, you’ll be able to go through the Chrome Store as well as the Opera Store to get your extensions.

Mileage may vary, as some extensions use API specific things not supported cross browser. In which case, you can usually find the browser specific version in the corresponding store.

And there you have it – some simple extensions and tweaks to make using your internet browser much faster for common tasks. These are all tested and used by myself, and most I couldn’t really do without.

Have any tweaks or extensions of your own you’d like to add? Feel free to leave them in the comments below.