Doesn't Not Compute

My log of experiences with GNU/Linux and computers in general.

Category Archives: Pointing out helpful info

Funky Fonts Flocking, Free From … Foundry Fog? Eh, I Give Up

Or: So, You Installed NoScript, and Now You’re Getting Boxes with Numbers In Them

Or: I’m Not Even Using NoScript! These Kids’ Unicode Emojis Just Have Garbage Characters In Them!

Yeah, kinda hard to find a good Alliterative Appeal-ing title for this one. 😛 Do note that this post is GNU/Linux-specific. Maybe you’ll find something that gives you an insight into doing the same on Mac OS X or Windows, maybe you won’t.

Today, I reinstalled Arch Linux.  Judging from the date on a Deus Ex savefile, I had been successfully upgrading the same installation since February, 2013!  Really, I could’ve just rsync’d the existing data straight to my shiny new 1TB/32MB-cache drive and continued using it, but I was bored. >:D

What Are Those Boxes With Letters and Numbers In Them, Anyway?

This gives me the opportunity to hunt down and document what font packages I need if I want to avoid seeing boxes with numbers in them everywhere — ones like this:

U+F105


That’s U+F105, and it’s not in the more commonly-installed fonts of my systems.

That’s a code point from one of Unicode’s Private Use Areas (PUA), and as such, doesn’t have a standard glyph like ‘A’ or ┳ do.  Anybody can just slobber whatever characters they want all over the place, and no font can cover every variation, meaning that whatever character from the range you use isn’t necessarily — or even likely — what some random person viewing the file on their own computer is going to see.

So, How Come These Worked Without NoScript?

Enter @font-face and font libraries like TypeKit, Font Squirrel, and Google Web Fonts. These allow web developers to make webpages even more heavyweight by needing to contact and then load more data from a third-party server and not worry so much about whether the end-user has the perfect font for their perfectly elegant site installed on their system already. Great, huh? Yes, as long as you’re using a CSS3-compatible browser — and more specifically, on such as

  • Firefox 3.6+
  • Chrome/Chromium 4+
  • Safari 3+
  • Opera 10
  • Internet Explorer 9+

So, to support the obsolete browsers that took forever to get their act together (*cough*Internet Explorer*cough*), developers use Javascript and Adobe Flash(!) to make sure the external font gets loaded and used. This works well enough…as long as the browser is capable or allowed to run it.

NoScript to the Antirescue

Problem with these methods is that Firefox’s NoScript addon blocks @font-face embedding by default — for some pretty good reasons, assuming the concerns discussed in that link are still valid 5 years later — and thus prevents the fonts from being used. The result: sites that use fonts covering these Unicode Private Use Area datapoints, such as to have display resolution-independent symbols, become a sea of boxes with letters and numbers in them.

A Probably Bad Idea™ Solution

If you don’t want to shuffle through NoScript’s list, trying to figure out which linked site’s Javascripting is supposed to load a missing @font-face, you can simply determine what font family is being called for by the page’s style sheet.

In Firefox, for example, simply right-click the offending numberbox and choose “Inspect Element”. Then use the Inspector to view the page’s rules, and search for “font-family”. An example is below:

Inspector mode, then on the right side scrolling area under "Rules".
Screenshot taken of https://prism-break.org/en/projects/ixquick/

Now, you cant search your distro’s software repositories for the font. If you’re lucky, you’ll find it already packaged. In this case, I found it in Arch Linux’s User Repositories under the name aur/ttf-font-awesome
. Install it as usual, and enjoy having your browser load actual characters instead of numberboxes!

Whoa, Wait a Minute, What Do You Mean By “Bad Idea”?

Let’s re-read the last part of Why NoScript Blocks Web Fonts, specifically the excerpt quoting from Mike Perry of Torbutton fame, shall we? Go on, I’ll wait — I’d just print it here, but I can’t find a copyright license anywhere.

Think about it for a moment. Now, instead of loading an untrusted font from whatever remote server, you have it locally, on your own machine. It’s still being interpreted by the font libraries, and can still be crafted to trigger some known/unknown bug for malicious purposes.  The differences are only that:

  • Hopefully, the package maintainer reviewed it first and is familiar with the current security status of the font and font library,  Not exactly guaranteed in the Arch User Repository (AUR). There’s a reason you get a flashing message saying, “( Unsupported package: Potentially dangerous ! )”.
  • You can analyze it before installing and using it, assuming you know what you’re doing.

Security always involves tradeoffs, and is a much more complex topic than I am qualified to discuss in any detail.  Do your own research!

What About Those Unicode-Character Emojis?

Ah yes, those. (May not all be SFW). I doubt I’ve seen every one on the Internet, but that link has a wide enough variety for testing purposes. 🙂

What Fonts Do I Need Installed?

I currently have the following font packages installed, and don’t have any missing characters appearing yet. Some are just my desktop usage fonts (such as ttf-dejavu) or terminal font (like ttf-anonymous-pro), but they are included for completeness.

ttf-anonymous-pro
ttf-code2000
ttf-dejavu
ttf-font-awesome
ttf-gentium
ttf-jomolhari
ttf-kannada-font
ttf-liberation
ttf-opensans
ttf-symbola
ttf-urdufonts

I’ll try to update this list as I find more site with missing characters.

IceWM 1.3.7 Released

Most IceWM development has been in a state of deep freeze for years now — mostly new language translations and bugfixes, from what I can see. The long-time stable version (1.2.37) has been in distribution repositories for a very long time now, as it was released in January 2009. Two years ago. 😯

Meanwhile, the last marked-stable version of the “experimental” branch (1.3.6) was released in Januray 2010. I haven’t used that version, but sometime since it was branched from the stable series a bug was introduced. This caused IceWM to crash, and if it had been started with icewm-session it would try to restart, but have taskbar issues. It seems to be this bug on the IceWM bugtracker, which has been closed.

Other than this odd bug, I found very little difference between IceWM 1.2.37 and 1.3.7p2 when I last tried them — the only one I noticed was the battery charge monitor. In 1.2.37 a number was displayed, while in 1.3.7p2 a vertical bar represented the remaining charge.

In anycase, download IceWM 1.3.7 and try it out. ^_^ Meanwhile, I’ll be trying to figure out where to host the ancient, circa 2001 themes I found and downloaded that now are no longer publically available at the ONE place on the entire search-engine-indexed Internet. 😈

PCLinuxOS 2010 and i8kutils

PCLinuxOSBrief helpful info time: after quite a bit of searching, I haven’t found a way to control fan speed in Dell Latitude laptops in PCLinuxOS 2010. In other distros I’ve tried, such as Debian, Ubuntu, Linux Mint, and Arch Linux, all that was necessary was to install the “i8kutils” package and enter

i8kfan 1 1

to force the fan(s) to medium speed or

i8kfan 2 2

to force them to high speed. (This was on both a Dell Latitude C600 and C800.) But i8kutils is nowhere to be found in PCLinuxOS’s repositories, and the only result returned when searching for “i8k” is the gnome-sensor-applet, which merely monitors information made available by the i8k kernel module — it’s incapable of setting the fan speed.

So, game over, right? Ha. No, sorry, I’m a little too stubborn for that. :mrgreen: I went looking for the upstream source of i8kutils . . . didn’t find it, so I went to Debian’s Sid repository and downloaded the the .deb package, extracted the data.tar.gz archive inside, and extracted the /usr/bin directory from that.

I don’t even need to properly copy the files into place — simply running

./i8kfan 2 2

(including the ./ at the beginning) from where the files are extracted is sufficient to set the fans to high speed.

P.S.: Yes, I’ve been playing with a new GNU/Linux distro. PCLinuxOS 2010 GNOME edition, to be precise. 🙂

Dejavu All Over Again, Big Brother Google-Style

Once again, Google has removed the interface the scraper-engine Scroogle.org utilized to provide its users with Google-search results.

The announcement that appears after one tries to use the search function:

July 1, 2010: Here we go again…

We regret to announce that our Google scraper may have to be permanently retired, thanks to a change at Google. It depends on whether Google is willing to restore the simple interface that we’ve been scraping since Scroogle started five years ago. Actually, we’ve been using that interface for scraping since Google-Watch.org began in 2002.

This interface (here’s a sample from years ago) was remarkably stable all that time. During those eight years there were only about five changes that required some programming adjustments. Also, this interface was available at every Google data center in exactly the same form, which allowed us to use 700 IP addresses for Google.

That interface was at www.google.com/ie but on May 10, 2010 they took it down and inserted a redirect to /toolbar/ie8/sidebar.html. It used to have a search box, and the results it showed were generic during that entire time. It didn’t show the snippets unless you moused-over the links it produced (they were there for our program, so that was okay), and it has never had any ads. Our impression was that these results were from Google’s basic algorithms, and that extra features and ads were added on top of these generic results. Three years ago Google launched “Universal Search,” which meant that they added results from other Google services on their pages. But this simple interface we were using was not affected at all.

It is not possible to continue Scroogle unless we have a simple interface that is stable. Google’s main consumer-oriented interface that they want everyone to use is too complex, too bloated, and changes too frequently, to make our scraping operation possible.

After a lot of suggestions from Scroogle users, and a fair amount of publicity, we found a fix and Scroogle was back in 24 hours. This fix was to insert an extra parameter, &output=ie, into the search terms that were relayed to Google. The extra parameter recovered the same interface that we thought was gone forever.

Now it seems like it actually might be gone forever. Late on June 30, 2010, the results produced while using this parameter began to shift to the usual busy Google interface with ads and a left-margin sidebar. Scroogle users saw a Scroogle page that said, “Google returned no results for this search,” when in fact Google returned results but our scraper was unable to deal with them. Over the next few days we will attempt to contact Google and determine whether the old interface is gone as a matter of policy at Google, or if they simply have it hidden somewhere and will tell us where it is so that we can continue to use it.

Thank you for your support during these past five years. Check back in a week or so; if we don’t hear from Google by next week, I think we can all assume that Google would rather have no Scroogle, and no privacy for searchers.

— Daniel Brandt, Public Information Research, scroogle AT lavabit.com

This is not the first time that Google has removed interfaces which were originally designed for Internet Explorer 6, and tapped by Scroogle. And I suspect that, if Scroogle somehow finds a way to scrape the results again, Google will again remove or change it.

Alternatives

Ixquick/Startpage

As I’ve used it some in the past, before finding Scroogle, I recommend using Ixquick , which scrapes multiple search engines and directories and does not record your IP address (unless you abuse it with an automatic tool of some kind).

You can read their privacy policy here (United States version). They also have translations in UK English, Danish, German, Spanish, French, Italian, Dutch, Norwegian, Polish, Portuguese, Finnish, Swedish, Turkish, Korean, Japanese, and both Traditional and Simplified Chinese.

Furthermore, Ixquick also has a SSL-encrypted version, for further privacy, and an alternate, easier-to-remember URL: startpage.com

DuckDuckGo

Alternatively, DuckDuckGo appears to be an equally useful option which also has an SSL-encrypted version, but doesn’t appear to have any international options.

Like Google’s search page, the DuckDuckGo search page is very spare and clean. It also has options (which I haven’t tried) to search specifically for information or on shopping sites, and a “I’m Feeling Ducky” option which works the same as Google’s “I’m Feeling Lucky” button —  a clever and humorous option.

Both have options on their front page to add themselves to your browser, if you like using search boxes in your browser. (I don’t, usually.)

Google SSL

For those of you who (unwisely) don’t care if Google knows everything you search about, only that whoever is in charge of your local network (boss, ISP, etc.) doesn’t, Google currently has an encrypted connection to their engine in Beta testing. Google provides information about this on their site here.

Alphabet Soup, Anybody?

Well, after that little rant yesterday, how about we actually learn something? I found this post on rojtberg.net about the the changes being done to the open-source graphics system.

Now that DRI2 was removed from the Xorg7.4 release, there is a lot of whining around why it was not released as is so that we have at least something working.

The first thing one has to understand, is that the current Xserver rendering architecture is horribly outdated; there was no work done to keep it up to date during the Xfree days and even when Xorg started, the primary goal was to uncouple the different parts to allow asynchronous releases.

So currently there is not one field where construction done but several. These are 2D Acceleration, Memory Management, 3D Acceleration and 2D Modesetting. And they are all being worked on at the same time to speed things up.

But the problem is that more or less all of these depend on proper Memory Management, which is also the hardest thing to get right.

Now lets look at how Xorg works today; every Xorg driver implements its own way of memory management and provides the DRI1 functionality when it comes to 3D. Furthermore it is . . .

Read this very helpful summary in full here.