Doesn't Not Compute

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

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.

Yeeloong 8089B: Some Performance Tweaks

Some time ago, I purchased a Lemote Yeeloong 8089B from Tekmote Electronics. It’s not exactly a powerful device, even for a netbook — extremely weak graphics chipset, a single-core Loongson 2F CPU clocked at a maximum of 797MHz (despite the description’s claim of 900MHz), and a battery rated to last barely 2 hours. But, it has the advantage of not requiring any nonfree software. As most people who would buy one and search for “performance tweaks” for it would already know. ๐Ÿ˜€

I bought it hoping to run gNewSense‘s mipsel port on it, but found it to be lacking many packages I wanted to run on it. Most of these were frivolous anyway, so don’t let that stop you from trying it. ๐Ÿ˜‰ I currently run Debian Wheezy’s mipsel port quite happily on it . . . but it took a little work to get the “happily” part. Read more of this post

Xbox Tweaking: Jedi Academy

Today’s post will be pretty useless for anybody that doesn’t have a modified Xbox that is NOT a 360, a copy of Star Wars Jedi Knight: Jedi Academy for the Xbox, and said game backed-up to the hard drive of that Xbox. I won’t be describing how to modify the Xbox, as Xbox-scene can describe it quite thoroughly. ๐Ÿ˜‰

Some games that were released for the Xbox have configuration files, even though the final product was intended to be placed on non-changeable discs. :mrgreen: Since these games were also released for a certain computer operating system, and have known tweaks that can be done there, it seems logical that at least some of those tweaks can be used in the Xbox version.

And today I decided to try digging around in the configuration of Star Wars Jedi Knight: Jedi Academy.ย  This game uses the Quake III: Team Arena engine, so theoretically it can use any of the tweaks the engine recognizes, right?

Well, not on the Xbox.ย  It seems that some things work, such as enabling the Frames Per Second display; others do not, such as trying to force the rendering mode to a less intensive method. I suppose those are hard-coded in the executable (default.xbe), and override the configuration file (base/default.cfg). ๐Ÿ˜ฆ

The rest of this post containsย  what tweaks I’ve attempted alongside whether they worked or not. Expect this post to be updated from time to time, and don’t expect me to try anything that has to do with multiplayer ping and such. ๐Ÿ˜€

Read more of this post

Trying To Deal With Compressed SWF

We all know Flash is a major pain — from Adobe’s own Flash player’s lack of performance to the security problems and nonfree status of said plugin. Not to mention the often-poor compatiblity of the free players, such as Gnash and Swfdec. So I won’t be discussing that right now. Nor will I be discussing the somewhat well-known process of using MPlayer to play Flash video files (.flv).

Today’s note is on dealing with those pesky .SWF Flash animations. While Swfdec-gnome is relatively decent at decoding the few I deal with, I’d like to convert these animations to a video format, such as OGG Vorbis or WebM. Why? Because unlike with Flash videos (.flv files) such as found on YouTube, .SWF files are almost always compressed — and FFMPEG can’t deal with compressed .SWF files. The result being, MPlayer can’t play them.

I really don’t expect it to, anyway — MPlayer is an audio and video player, NOT an animation decoder and player. But I’m very tired of needing a Flash decoder just to watch the animations of MSPA‘s Homestuck adventure comic, when it would be better for people with slower computers and a dislike of nonfree software to serve videos.

So, during a couple breaks from my efforts on Project Permafrost, I’ve been trying to find a way to convert these SWF animations. I’ve had very little luck so far — while there is some software for the job, it’s virtually all for a certain operating system from a company in Redmond, WA, USA. Most of this software works by taking the displayed output from a Flash plugin and converting it to a video — a very CPU-intensive and hacky solution. Video files were created, but they were composed only of empty, black frames with no audio.

Since the only converter I could find for my operating system was useless, I next turned to the tools for creating and modifying the SWF animation itself, and thus to the swftools and flasm packages.

Swftools is a collection of tools for working with Adobe Flash files, as you may have guessed. Flasm is for disassembling and modifying the Flash Actionscript bytecode, and supports SWFs produced by Flash 8 and earlier. Sounds complicated? Yeah, seems that way to me too, and sadly I don’t have time to investigate them deeply right now.

What I did find, by reading the help text for both the swfextract tool (found in the swftools package) and Flasm, was two options that inspired some hope. From swfextract:


Sound extraction:
-m , –mp3 Extract main mp3 stream

And Flasm:


-x Decompress SWF

These suggest three courses of action. In each case, “file.swf” should be replaced with the name of the SWF file you’re working with, of course. ๐Ÿ˜‰

The first is simply copying out the audio directly from the SWF animation.

swfextract -m file.swf

This produces a file named “output.mp3” in the same directory you run the command from.

The second course of action is to decompress the SWF file, so MPlayer can work with it.

flasm -x file.swf

This will, obviously, decompress the SWF file. The original is saved with a “$wf” extension. MPlayer can play the resulting uncompressed SWF file, but (in my case, at least) can only play the audio.

The third option, of course, is to ask the author(s) to release a video format conversion themselves. :mrgreen: They may be hesistant to do so, of course — they may wish for people to HAVE to come to their site to view the animation, instead of someone uploading the video to YouTube or someplace similar. This could be slowed by requiring people to pay for the video, I suppose, but also partially defeats the purpose of the entire endeavor — the goal of which was to be able to easily watch the animation on a computer without needing Flash or putting the CPU under maximum load for the several minutes of the animation.

It’s progress, I guess. If one can call only being able to listen to the animation “progress”. ๐Ÿ˜ฆ I’m getting back to work now. ๐Ÿ™‚

Project Permafrost

Finally, after two months of work, the first part of my latest project is out in the wild for all to help with.

Project Permafrost is my attempt to create a central community for users of the Ice Window Manager to interact. I’ve set up a forum at http://icewm-themes.sourceforge.net/ where we can:

  • Post new themes for review and critiquing
  • Share configurations
  • Create up-to-date documentation that’s a bit less hapazard than the current official manual and how-tos
  • Socialize (in the “Oort Cloud” forum, requires being logged into a Sourceforge account to even see)
  • Make as many ice-related puns as possible. ๐Ÿ˜ˆ

There are, of course, some rules for this new community. A few of the most important ones are listed below.

  1. No themes that don’t have a clear license. It can be GPLv2/3/later, LGPLv2/3/later, a BSD-like license, or any of the Creative Commons licenses, but IT MUST HAVE A CLEAR COPYRIGHT LICENSE SPECIFIED AND IN THE ARCHIVE.
  2. No themes that violate someone’s trademark. Sorry, but your super-slick theme that looks just like the latest Redmond OS interface? No Start Button logos.
  3. Don’t be a pain.
  4. No discussions of how to do illegal things. Debate of whether the thing should be legal or not? Maybe in the off-topic “Oort Cloud” forum, we’ll see how that goes.

The spreadsheet I linked before is hosted in the Project Permafrost files section, along with all of the currently redistributable themes from the motherlode mirror (under “TundraThaw”).

As mentioned before, the forums are here.

And there are plenty more ice puns available, don’t worry. ๐Ÿ˜‰

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. ๐Ÿ˜ˆ