All posts by Wayne

Interview with Sean Moss-Pultz, CEO of OpenMoko – Ninjas *ARE* Better Than Pirates

Sean Moss-Pultz was kind enough to answer a few questions with fsckin w/ linux. He’s got some pretty interesting answers to questions plaguing geeks and non-geeks alike, such as the eternal debate on which is better – Ninjas or Pirates? Keep reading for some candid responses from the CEO of the company behind the Dash Express GPS device and the in-development OpenMoko phone. Dash was recently named one of the top 10 startup companies to watch in 2008 by Wired Magazine.

0. How did the name “OpenMoko” come about, and does it have a meaning behind it similar to the Neo1973?

“Moko” is short for Mobile Kommunikations. Think of the “K”’s as a tribute to all hackers around the world that build software that drives our platform forward.

“Open” is obvious. But what we mean by “open” perhaps is not. We’re not just talking about software. It’s really the entire business model of our company. For example, this coming week we will release the full mechanical CAD drawings of our Neo’s case. We want people to remix our work. We want to be open from the iron to the eyeballs.

OpenMoko started as a project inside FIC (Taiwan) and has recently been turned into it’s own company. So, we’ve had to build a open software stack, build a team, build a product, plan a future, and build a company, while everyone gets to watch.

Most of the challenges, I would say, are philosophical in nature. Not technical.

In an closed company you go through various stages of hardware development. These stages are hidden from the general public. Prototype hardware is built and passed out to a few select internal developers. Later, more hardware is built. In a pilot run. This is distributed internally to more engineers in the company. Finally, it’s presented to the public like it just came out of the oven.

OpenMoko is inside out. Our prototype are shared with developers around the world. Why? because our engineers are outside the company as well as inside.

In some ways we are like a reality TV show. Showing how one builds a gadget of the future. It’s like a cross of Survivor, Dirty Jobs, and Ice Road Truckers.

1. What is your favorite brain-food? Favorite beverage?

Not sure if nachos are brain-food…but I love them! As for drinks, I would say nothing is more refreshing than water. I like things that can blend in to any environment.

2. Awhile back you said “failure is not an option.” Would you expand on that statement and explain who ultimately looses if you fail?

Hehe…perhaps I was caught up in the passion of my own thoughts. Working every breathing second of the day on something for more than year will do that to you 😉 The point that I was trying to make is that we (collectively) need the phone to be freed. It’s the only way major change will occur in this mobile industry.

3. In a philosophical sense, which is better: Ninjas or Pirates?

Oh ninjas all the way. They were artists using their art to ensure their survival in a time of violent political turmoil. Their strategies were cultural opposites of the conventional ruling Japanese Samurai class. But they lived in harmony with nature. And always kept an eye to where the future was heading.

OpenMoko has an internal ninja. You’re hear more from him later this year.

4. Due to the touch screen and lack of buttons, comparisons are inevitably made between your product to the iPhone. Two questions in one: Why is being compared to the iPhone a good thing? Why is it bad?

It’s a good thing because it brought us lots of press. It’s a bad thing because most of the press talked about us as an iPhone killer. That’s not at all what we’re trying to do.

End user freedom is our passion. Apple gives you an incredibly polished experience. Exactly how you they want you to have it. But the end user really has no freedom. They cannot change the device if they don’t like the way Apple choose to make things.

All these comparisons, unfortunately, caused a lot of confusion. But in the end it was all good. We were forced to refine our message.

5. How much can you bench press?

Not sure anymore…but I can still bench my weight. And I’m gaining weight here in Taiwan (too much good food) 😉

6. Your device seems to pull the opposite direction in where carriers seem to be headed. Revenue streams such as ringtone purchases and other paid-for customizations would obviously be impacted by your project. Have carriers in general expressed any interest in OpenMoko despite the drawbacks?

Carriers are extremely interested. But their reasons vary as much as their responses. So I think it will be a while before see us packaged with 2-year contracts.
Right now we’re focusing on being fast and flexible. So we can react to what our customers want. This is a huge challenge because of the scope of our efforts. Most companies choose either software, hardware, or manufacturing. We’re doing all three. I’m convinced this is the only way it’s possible to making a completely open phone.

7. Is OpenMoko affected by the Year 2038 Bug?

Probably. But we’ve got a heck of a lot more serious Year 2008 bugs.

Anybody want to help? :-)

8. (As far as I know) OpenMoko hasn’t adopted GPLv3, instead opting to utilize the GPLv2 and LGPL. What are the reasons for using licenses other than GPLv3, and is the GPLv3 compatable with “doing business” in 2008?

I am not a lawyer so I only feel comfortable replying on a personal level. I really the message behind GPLv3. The loopholes it tries to close are real and destructive to the spirit of the original message. In short we will use it. But I cannot make a sweeping statement and say we will use it for everything. Besides, technically that’s just not possible. We make products and a software distribution. This forces us to work with many different licenses.

To deal with these kind of problems we have come up with something we (informally) call our “Software Freedom Requirements”. These are still being refined, but let me just state what we have now:

1) Libraries cannot be GPL — The idea is that libraries are what you use to build your house, your private space that you can control in any way you like. Our preference is LGPL, BSD/MIT less so, but still acceptable. GPL is not acceptable.
2) Everything but libraries should be GPL — The idea is that this is the shared public good, democracy. LGPL and even less so BSD/MIT would be acceptable, but not be loved. We think that those licenses defend the rights of developers, but not the rights of the end user.
3) Contributions must be welcomed back — A company that wants to work with us has to accept valuable contributions back into their mainline, without transfer of copyright, based on technical rather than political merit. This makes dual-licensing impossible. If the company has a program of buying back contributions including transfer of copyright that is also acceptable, as long as valuable contributions will indeed get bought back.

We also have “Hardware Freedom Requirements”. Equally as important, because, as Wolfgang Spraul once said, “Software is what makes hardware dangerous.” 😉

Listed in order of priority:

1) Fully and publicly disclose datasheets, [or]
2) Fully disclose datasheets to OpenMoko and allow us to use that documentation to write a documented GPL driver, [or]
3) Fully release an existing driver under the GPL.

We’ve worked with those for almost a year now. So things are extremely concise. Hopefully we can simplify our message in the Software Freedom Requirements over time.

OpenMoko is, and will always try to be, the most progressive mobile distribution available. Like Moglen, we want to “Resist the resistance!”

9. What’s the progress on your AE86 restoration? Got any pictures yet?

Since OpenMoko started just about everything else in my life has stopped — my AE86 is no exception. Here’s a picture — about 75% done.
Sean Moss-Pultz’s AE86

10. The Dash Express was recently announced and uses almost the same hardware that the OpenMoko does. I would assume that there was some significant collaboration with their teams. How much work was able to be directly integrated back into the OpenMoko project?

Yeah lots of collaboration — we’re all the same team 😉

This was our first OpenMoko-based device that will ship in high-volume to the consumer. So naturally we’re thrilled with results.

Look for more great stuff in 2008. We’re just getting warmed up.

I’d like to personally thank Sean for spending the time to answer these questions. I for one am eagerly looking forward to progress OpenMoko makes towards launching a mass-market open source phone. You can count on at least one person (me) to ditch their locked down, proprietary iPhone when OpenMoko’s device is ready for prime-time.

HowTo: Setup and Benchmark Encrypted Partitions in Ubuntu

In a previous article, I talked about using shred to securely delete files. Now we’ll delve into using encrypted volumes in Linux to secure our data in the first place, so that we don’t need to use programs like shred. Along the way, we’ll benchmark the raw performance of an encrypted volume and compare the results to an unencrypted volume and see just what kind of real world compromises we see.

To start out we need free space on a drive that isn’t partitioned, or enough patience to resize an existing one. Just about everything here needs root privileges, since we’re working with filesystems. It would be easiest to start a root terminal withsudo su, then enter your password.

First, we install the tools to get the encrypted partition going:
apt-get install cryptsetup hashalot gparted

Next, we use gparted to create a 20GB partition at the end of my disk. It’s a dead simple drag n’ drop application similar in function to Partition Magic or other GUI partition editors… hopefully you don’t need instructions. Make sure to record the name of the new partition! Everything here that says /dev/sda2 is going to change based on your hardware and partitioning scheme.

After that completes (which can take some time if any resizing or moving of an existing partition happens), we need to set a password.
cryptsetup --verbose --verify-passphrase luksFormat /dev/sda2

This command will create a device called /dev/mapper/sda2 and give us access to the encrypted volume after verifying the password:
cryptsetup luksOpen /dev/sda2 sda2

By now we’re knee deep in waist-high water. I’m not quite sure what that means… I just made it up. Say it out loud… rolls off the tongue. Sorry… where was I? Ah right. I’ll try to explain where we’re at right now, for my benefit as well as yours.

At this moment, we have a partition called /dev/sda2. That raw partition now has an encrypted container inside, located at /dev/mapper/sda2. The last step is to actually format the encrypted volume so we can actually put some files on there. This can also be done in gparted if you want to split things up into multiple partitions, use the drive dropdown box to find the mapper.
/sbin/mkfs.ext3 -j -m 1 -O dir_index,filetype,sparse_super /dev/mapper/sda2

Next, we’ll make a directory to mount the encrypted volume and then actually mount it:
mkdir /mnt/test
mount /dev/mapper/sda2 /mnt/test

Now we can copy files into /mnt/test and every file located there will be encrypted. Sweet!
To unmount the volume, use the following commands:
umount /mnt/test
cryptsetup luksClose sda2

I bet you’re asking the question we all are… How fast is it? Good question. The answer is a pain in the ass to be honest. This almost ended up being two separate articles because the benchmarking was not going very well… but here we go… how to benchmark hard drives in Linux with FOUR different tools:

The first plan I had was to perform two separate clean installs on an entire disk, run several benchmarks and quote some articles on how hard it would be to crack into the encrypted disk. Those results followed the expected trend of a significant (approximately 10%) degradation in read, write, and seek times on the encrypted volume. However, those results could be tainted, because they were run in a graphical environment that had lots going on in the background. I decided to throw those out. More accurate results tied directly to actual performance can be achieved by installing a text-mode only system, and using a separate partition at the end of the disk. By using failsafe text mode, we’ll limit the number of extra services/daemons/etc running.

Processor: Intel E6400 Core2Duo 3.2 GHz
Hard Drive: Western Digital 150GB RaptorX 10,000 RPM
RAM: 4GB, no swap partition used.

Benchmarks Used:
Bonnie++ 1.03
Options: bonnie -s 14176 -d /mnt/test
Bonnie++ is a benchmark suite that is aimed at performing a number of simple tests of hard drive and file system performance. The -s 14176 option sets the program to use is four times the amount of memory available on our testbed, which is the recommended setting. This is to make sure the OS is not doing any sort of caching in RAM to skew results. -d /mnt/test sets the program to use /mnt/test as the location to save the temporary file. Bonnie is a nice benchmark, but it’s got a problem. The results are nearly indecipherable to read by someone unfamiliar with the output, and this page helped me read them.


Options: set size 10000 10000000 (10KB - 10MB pseudo-randomly sized files)
set number 2000 (2000 generated files)
set transactions 2500 (2500 read/write/etc actions made on those files)

PostMark is a benchmark for servers. We can use it and gain some additional insight into how a server would function if it were working on 10KB to 10MB sized files… it’s a benchmark that would need to be customized for the application desired to gain any direct correlations from the results.


IOZone3 3.279
Options used:
sudo iozone -a -R -g 10g -R -f /mnt/test/iozone
Iozone is useful for determining a filesystem performance. The benchmark tests file I/O performance for the following operations: Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read/write, pread/pwrite variants. The options setup the following variables: Auto Mode, Excel/CSV formatted results, create a 10GB test file on /mnt/test called iozone.

IOZone outputs a TON of data, and they have lots of pretty graphs on their website, but there’s more than enough analysis already for this article. Here are the two Excel (???) formatted files for your pleasure. No graphs by are included in the output by default – shame really, since their graphs look great.

Easy-Bake Tar-Gzip-Gunzip-Untar Oven Benchmark Test
For the last test, we’ll use a home-grown benchmark using tar to archive 3.5GB of highly compressed HD videos, gzip the archive, then unzip and untar the compressed tar.gz file into the current directory, forcibly overwriting the existing files. This constitutes a “real-world” scenario more than the above benchmarks with reads, writes, re-writes and plenty of seeking. We can easily count how long each operation takes to complete and get a really quick, dirty and simple comparison with time counted for each operation. The fact that we’re working with the same data four times… do the math – at least 3.5GB of data traversing to and fro across the subsystems of the testbed 8 times (input/output cycles for each action) for around 28GB of data flying about. The unencrypted data manipulation test completed 42 seconds faster, for a 6% lead over the encrypted filesystem.

time tar -cf archive.tar *.MTS && time gzip archive.tar && time gunzip archive.tar.gz -f && time tar xvf archive.tar --overwrite

Not shabby at all for something I pulled out of my rear Easy Bake Oven, eh?

Here’s graphs of the results:

When attempting to benchmark a filesystem, there’s so much choice out there. We know there should be a performance hit when running an encrypted filesystem, and we can look at all the graphs we want, but in the end, you’ll see a 5-10% degradation in speed when running an encrypted drive.

That’s it for now, I’ve got an interview lined up with Sean Moss-Pultz, CEO of OpenMoko later this week… Did I mention now is a good time to subscribe to my RSS feed? Let’s get that ol’ counter on the side a notch over 1k, shall we?

State of Affairs: The Linux Girlfriend Project – Two Months In The Trenches

About 2 months ago, I convinced my girlfriend to try out Linux for a month after a really nasty bit of spyware infected her computer. This isn’t a bash on Microsoft, but it happened twice in about a month.

Unfortunately, a roommate who pays a portion of the internet bill (and thus welcome to use the computer, which is located in the living room) likes to browse nefarious websites, I’ll let you speculate what type of websites he visits. Browsing those kind of sites by itself is completely fine by me, as long as it doesn’t fsck up the computer. The spyware/adware/etcware attracting behaviors of the roommate got some nasty sh!t on the computer – TWICE in a month. I tried to get everyone in the house to use Firefox, and that went over well.

Even if the shady websites are surfed upon using Firefox, if you install software from said websites, it’s all over anyways. I can’t help stupid user syndrome. Quite simply, I had enough at that point, I’m sure as hell not going to backup, fdisk, format and reinstall Windows every two weeks. Plus, I really don’t want to have that uncomfortable conversation with the roommate about his online behaviors, to be honest.

Push came to shove, and my girlfriend let me install the operating system of my choosing, since I would be the one supporting it.

We tried out Puppy Linux because it has good performance on older computers. That didn’t go so well. Getting wireless to work with ndiswrapper was a real pain in the neck in Puppy.

Eventually, I ended up settling on Linux Mint, and a few customizations later, the computer had an uncanny resemblance of the Windows XP operating system it replaced – “Start Menu,” Bliss background and everything. It was good enough to fool both roommates… they’ve NEVER mentioned a peep about any problems at all. As a test, I asked one of them (who were unaware of the switch) if they noticed any problems with the computer since I had been working on it.

“No problems at all, it’s been great. Ever since you changed it to Firefox it runs faster once it’s loaded up.”

I don’t even think they know they’re using Linux, to be honest.

There have been a few issues that presented themselves over the past two months after the switch, but they were minor cases of vendor lock in – both Blackberry and the iPhone don’t happily sync or upgrade firmware easily on Linux. Technically, it is possible to get them working. Are those righteous hacks usable by a mere mortal? No way in hell! So we ended up settling on a dual-boot scenario.

There have been a few issues other than the phone synchronizing, such as an Adobe Flash or “IE Only Website” render problem here and there, but other than those, nothing notable has come up in quite some time.

Overall, I’d say it’s been a success. These .exe files keep popping up on the desktop every once in awhile… but as the saying goes… No harm, no foul.

Addendum: She loves The GIMP, and has spent many hours playing klickety, which is an addictive bejeweled-ish color matching to clear the board game. Also, there seems to be a graphical driver issue where the computer seems a little bit sluggish. I think a video card change would fix that up nicely.

Using Shred to Wipe Hard Drives – DoD Uses It – You Should Too!

Hard drive encryption (and to a lesser extent, secure hard drive erasing) has been in the news regarding child pornography crossing the US border, government officials around the world erasing incriminating emails and other nefarious headlines.

The one that caught my eye was of a person crossing the border from Canada into the United States.

His laptop was searched in customs. Border Agents found all kinds of pornography on the computer (including child pornography) and arrested the owner of the laptop. Later on, when the computer-savvy investigators went to collect evidence on the computer, they were presented with an interesting prompt when they attempted to access the Z: drive.

Enter your PGP passphrase:

PGP is short for “pretty good privacy.” PGP is so good, in fact even the government can’t break into the files on the computer. The investigators couldn’t collect any evidence.

When a grand jury instructed the man to provide the passphrase, the judge cited the 5th Amendment and agreed with the defense that he cannot be compelled to divulge the passphrase. According to the 5th Amendment, he cannot be obligated to testify to his own detriment. In court, the man said he “wasn’t sure” if child porn was on the computer. He admitted to downloading lots of pornography, and if he found kiddie porn, he deleted it.

Sensational stories like these tend to cast a negative light on tools like encryption and permanently erasing files. If you’ve got nothing to hide, you wouldn’t use these tools… right?


The more paranoid folks among us would immediately be able to name a dozen or more reasons. I’ll just name a few real-life senarios that happen every day to people all over the world, often times due to unfortunate events such as a company or government laptop going missing, hell… even a 1.44MB floppy disc contained a hundred thousand records of some government employees in the UK.

Here are the bigger ones…

1. Identity theft.
2. That “home video” you promised to destroy.
3. Selling a hard drive or other rewritable storage device.

That said, GNU shred which is part of coreutils is a great tool to delete those sorts of files we all probably use at one time or another.

Here’s a snippet of the manual:

shred – overwrite a file to hide its contents, and optionally delete it

shred [OPTIONS] FILE […]

Overwrite the specified FILE(s) repeatedly, in order to make it harder
for even very expensive hardware probing to recover the data.

Mandatory arguments to long options are mandatory for short options

-f, –force
change permissions to allow writing if necessary

-n, –iterations=N
Overwrite N times instead of the default (25)

-s, –size=N
shred this many bytes (suffixes like K, M, G accepted)

-u, –remove
truncate and remove file after overwriting

-v, –verbose
show progress

-x, –exact
do not round file sizes up to the next full block;

this is the default for non-regular files

-z, –zero
add a final overwrite with zeros to hide shredding

And the comments from shred.c, written by Colin Plumb:

* Do a more secure overwrite of given files or devices, to make it harder
* for even very expensive hardware probing to recover the data.
* Although this process is also known as "wiping", I prefer the longer
* name both because I think it is more evocative of what is happening and
* because a longer name conveys a more appropriate sense of deliberateness.
* For the theory behind this, see "Secure Deletion of Data from Magnetic
* and Solid-State Memory", on line at
* Just for the record, reversing one or two passes of disk overwrite
* is not terribly difficult with hardware help. Hook up a good-quality
* digitizing oscilloscope to the output of the head preamplifier and copy
* the high-res digitized data to a computer for some off-line analysis.
* Read the "current" data and average all the pulses together to get an
* "average" pulse on the disk. Subtract this average pulse from all of
* the actual pulses and you can clearly see the "echo" of the previous
* data on the disk.

* Real hard drives have to balance the cost of the media, the head,
* and the read circuitry. They use better-quality media than absolutely
* necessary to limit the cost of the read circuitry. By throwing that
* assumption out, and the assumption that you want the data processed
* as fast as the hard drive can spin, you can do better.

Oh, the things you can find in source code header comments…. that’s fantastic commentary from someone who knows about the topic.

I ran a 6-pass random wipe (followed by a round of zeros) on a 160GB hard drive as well as a 2GB flash drive that were laying around the house. I’m sure there was all sorts of personal information on those. The 160GB drive took about 7 hours to finish and the 2GB thumb drive took about 26 minutes to complete.

I’ll be writing an article on using PGP to encrypt a hard drive in Linux in the near future, but in the mean time, enjoy the video of my 2GB flash drive loosing another 7 write cycles off it’s rewrite capacity. :)

Transcoding MTS/M2TS AVCHD Video Into AVI Files with Free Software

dscn1233.JPGThis holiday season, I was an extremely lucky recipient of a Sony HDR-SR5 video camera with a whopping 40GB hard drive inside.

When I opened it, the first question in my head was not atypical of a Linux users’ train of thought:

“Is it compatible with Linux?”

The answer was a tiny bit more complicated than I imagined, and immersed me into the otherwise unknown world of video transcoding, which is something millions of people do every day but probably never think about it. The best example is on YouTube, where it happens behind the scenes in the Google computing cloud, and everything “just works.”

I’ve read a few things about the format the camera uses, called AVCHD. Even in Windows (or OSX for that matter) many people have headaches with the AVCHD format, so I figure that Linux users are probably going to be having a helluva time trying to get it to work.

The files the camera generates are compressed at an incredible 15:1 ratio. I’ve seen it mentioned that a Standard Definition compressed clip of is actually larger in file size than an HD clip in AVCHD format.

The compression is where a majority of the AVCHD format complaints come originate from, since there is not much out there in terms of being able to edit video stored in the format without uncompressing it first. It takes some rather respectable computing horsepower to actually convert the files into an uncompressed format that can be played with in a video editing software package. Using the method detailed here, it takes about 5-6 minutes to uncompress and transcode a minute of video, on an Intel Core2Duo running at 3.2GHz with 4GB of RAM and a 10,000RPM hard drive – OUCH!

When plugging in the Sony HDR-SR5, it functions as a USB Mass Storage Device. Copying files from the camera to the computer is a simple drag n’ drop affair. This would be a familiar process to anyone who has used a digital camera and imports pictures to their computer.

It would certainly be faster to playback the videos in real-time and capture them using the component outputs from the camera… but that wouldn’t be a challenge. I’ve never actually installed the software that came with the Sony Handycam, so I’m not sure what I’m missing out on, but it doesn’t seem like all that much, to be honest. I wouldn’t be surprised if it was the typical Sony software suite that is about as useless as the media it is distributed on.

Let’s get down to the meaty bits, shall we?

The first thing I searched for was “AVCHD Linux” and found a post over at AVS Forum. On a side note, my Google-Fu is really spot on lately.

That post is a gold mine. It literally contains everything we need to transcode the video into formats of our choosing that are usable in non-linear video editing programs such as Avidemux or Cinelerra.

m2tstoavi is the best information I have found (so far!) to uncompress the AVCHD video files on my camcorder and convert them into a .AVI file in Linux.

Installation is very simple, all it requires in Ubuntu is a quick apt-get install:

sudo apt-get install mplayer ffmpeg x264 faad2 faac a52dec mencoder faad libfaad2-0 libfaad2-dev subversion csh

Then edit the install script as noted in the README to grab the newest version of ldecod. Everything else is completely automated – nice job Axel!

I did need to modify the settings a tiny bit to actually get audio synchronized as well as fix a possible issue with the script itself. I had problems until I commented out the echo ffmpeg yadda yadda part. When modified, it runs the following commands:

xporthdmv -hn $file 1 1 1 && mv bits0001.mpa $audiofile
ldecod -i bits0001.mpv -o $videofifo &
ffmpeg -r 29.97 -s 1440x1080 -i $videofifo -i $audiofile -vcodec mpeg4 -sameq -acodec copy -aspect 16:9 -b 15000k

I’m using the m2tstoavi.fifo script that uses named pipes (denoted above with dollar signs) to stream the output of one command into another. It is efficient with disk space and does not fill up the drive as the regular m2tstoavi script does, not sure why the fifo version is not the default. Ah well, nothing is perfect.

Once installed, I just run this command to convert every MTS video in the current directory to .AVI files:

./m2tstoavi.fifo *

It turns this proprietary format mess:


Into precious memories:


All in all, I’m glad I don’t need proprietary software for this conversion. I really wish it were faster – but here’s the point of this exercise:

I never used Windows software, so I don’t know what I’m missing. I’m happy with the solution I have, and if 20 people comment on this post and say they can edit HD video in realtime, good for them.

If they do, then I would have a better reason to upgrade to a quad-core CPU.

Here’s a (VERY unpolished!) video talking about the process in a little bit more detail, and showing the actual encoding process and the finished result. I’m not responsible for anybody tripping out at the end on my extremely crazily bad camera skills in the rendered video.

Oh yeah, and for those of you who were wondering, I also received quite possibly one of the best books I’ve read in a long time… it’s all about how cool Eric S. Raymond is ninjas are.


Top Linux Headlines of 2007 – A Year In Review

Looking back at 2007 and seeing this website as a fruit of the cesspool that we affectionately call Vista really warms my heart.

I started using Linux as a full-time operating system in September, because I was really fed up with Microsoft.  As an experiment, this website was launched simultaneously to document my adventures in Linux.

If you told me that when I started this blog that this site would see a half-million visitors in four months and be featured on sites like Lifehacker, TechCrunch, TechMeme, Linux Journal, Linux Today, OSNews, LXer, Webb Alert, etc, etc…. and have near every social news media website feature on their respective front pages…  I wouldn’t believe you.

When the Metapixel article became popular this website used 60GB of bandwidth in a day (Note to Self: DON’T post gigantic image hyperlinks on website in future).  The original article was Dugg, then hours later, Lifehacker’s article linking back to me was Dugg as well!

It is a miracle Dreamhost (bless their heart) hasn’t terminated my account. I contacted their support about some unrelated issue, and in their response they mentioned reading the Orange Box / Team Fortress 2 article, which helped them get the game running under WINE. Perhaps the fact that my hosting company actually reads my content helps out a little bit.

Let’s just say that fsckin w/ linux is the kind of accident that turns out not being bad at all, kinda like my little brother. 😉

I hope you all had a great chrismahanukwanzakah and enjoy the New Year.  Meanwhile, back at the ranch, let’s take a look back at some of the headlines this year.

Novell sues SCO for $26 Million Dollars!
OpenMoko Struts It’s Mobile Linux Stuff
Linux Foundation Formed
Microsoft FAT Patent Upheld
Fluendo Snatches Hard-Earned Cash with Proprietary Format Licensing
Adobe Exposes Naughty Bits with Flash Player 9 for Linux
Microsoft Tries to Pay For Edits to Wikipedia ODF/OOXML
Nokida N800 Internet Tablet is Bigger Hit Than Moses’ Tablets
Install Debian From Inside Windows
Windows Vista Released to Unwashed Masses

SCO Tries to subpoena Pamela Jones of Groklawballmer.jpg
Nominations for Debian Project Leader
Steve Ballmer Blows Smoke Up Collective Asses Regarding Software Patents
Dell Gets Hint About Linux
NTFS-3g version 1.0 Released
Sweaty Steve Ballmer Rents Smoke Generator and Mirrors
Show Us The Code Brings IR Goggles To Ballmer’s Party
Dell Listens to Linux Consumers
Shuttleworth: Ubuntu is NOT a Charity

Linux is Desktop Ready?
Free Software Foundation Asks Sun, HP and Dell to “Check Yes or No” after Vista is “Rejected”
Novell releases Office Open XML translator for
Xbox Live Patch for 360 Stops Linux Installations
Hans Reiser Will Goto Trial For Alleged Murder of Ex-Wife
German Patent Federal Court Dismisses Microsoft’s FAT patent
Open asks Dell to Pre-Load Software on Their Computers
Dell Asks Which Gnu For You
Linus Torvalds Blasts the GPLv3
HP Exec: “Linux Desktop is nearing critical mass”
Robert Scoble, Microsoft Technology Evangelist says Nasty Things
Bruce Perens Doesn’t Care For Novell/Microsoft “Protection Racket”
Microsoft FoxPro goes Open-Source, Nobody Cares
Novell Spoofs “Get a Mac” Ads… Badly

Microsoft Sued for “Vista Capable” Marketing
Sam Hocevar is Next Debian Project Leader
Cnet Hints About “Web OS”, Foreshadows gOS
Tux500 Has Eye on Indy 500
Microsoft Admits Vista’s Horizon Cloudy
One Man, 250 Webcam Drivers, Insert Cam Whore Joke Here

Ubuntu & Dell Join Forces
Microsoft Siverlight For Linux by “End of Year”
Tux500 Grabs $10,000 in Donations!
Microsoft Patents “Sudo” Command (aka User Account Control)
Zimbra Runs on Linux
SUSE Asks 27,000 Linux Users To Share Porn Thoughts
Microsoft Coupons Have No Expiration Date
Digg Censors HD-DVD, BluRay Decryption Key Needed For Playback On Linux
Microsoft Still Pushing the Patent Button, Bloggers Push Back
Microsoft Wont Sue End Users of Linux
Try To Save A School District $$$ By Switching to Linux, Loose Your Job
Motorola Releases ROKR and RAZR2 Powered By Really Small Mice Linux
Creative Labs: Vista Drivers Really Hard To Figure Out… Linux Pushed to Back Burner
Microsoft Becomes “Linux Distributor”, Liable Under GPLv3
Shuttleworth Debunks Microsoft Patent Claim Threat
Sun CEO Will Use Their Patents To Help Linux
Groklaw Tells Us What We Already Know: Microsoft Cherry-picks Sponsored Survey Results
VA Software Becomes Sourceforge
Ironically The Tux500 Indy Car Crashes First

Google Has Microsoft In Half-Nelson, Puts Pressure on Desktop Search Functionality
GPLv3 Released via Carrier Pigeons
Xandros Joins the Dark Side With Microsoft Patent Protection
TiVo complains about GPLv3 “hurting business”
Emacs Version 22 Released, Six Years Since Last Update
Nero 3 Provides HD and Blu-Ray Disc Burning Capabilities to Linux Users
Parallels Ships Supporting Linux, Fake Steve Jobs Dies A Little Inside
LG Signs Patent Pact with Microsoft, Celebrates with Kool-Aid
AppleTV Runs Linux
Politics Plays Part in Google vs. Microsoft Antitrust Dealings Worm hits Linux, Mac OSX, Windows
Linus: Kernel Under GPLv3? Over My Dead Body! Or When OpenSolaris Pisses Me Off, Whichever Comes First
Microsoft Hires Director of Linux Interoperability
Microsoft Patent FUD Debacle
Linspire Signs Microsoft Patent Deal
Google Linux Released is a 9/11 Conspiracy
Motorola Expects 60% of Mobile Phones Will Use Linux
Ubuntu and Redhat Refuse Patent Deal with Microsoft, Kool-Aid Tastes Funny
Vista is Number 1 Reason For Emo Culture
Windows is “More Secure” Because Fewer Vulnerabilities Are Patched
Songbird Sings First Tune
Firefox, Google Team Up for Offline Applications
OpenMoko Promises “Mass Market” device by October
Redhat Talks Dirty With Microsoft for a Year

No Joy For Google Desktop Search vs. Microsoft
Nokia Gives Skype & Flash Lovin to N800 Internet Tablet, Biblical Moses Sues
Samba Moves to GPLv3
IBM Releases 150+ Upset Vista Users Patents Into Wild
Apple Buys CUPS Source Code, TUMBLER is Next
OOXML Format Slapped About With A Large Trout
Asus Eee PC Will Run Xandros
Walmart gOS PC Rumors
Skype Convicted of Violating GPL
Businesses Don’t Tango With Vista
Torvalds Sucker Punches Con Kolivas

Fewer Companies Planning Move to Vista, Nobody Surprised
Fake Steve Jobs Real Identity Revealed as Batman Forbes Journalist
SURPRISE! UNIX Belongs to Novell, Not SCO
SCOX Stock Plummetsscox.jpg
Best (Possibly NSFW) Bug Report Ever!
Novell Wont Sue Over UNIX
Google Pack Adds BitTorrent RSS Downloader StarOffice
Gnome Turns 10, Wants a Skateboard for Xmas
Richard Stallman: Reports of My Death Are Greatly Exaggerated
Convicted Pirate Forced to Use Windows by Court Order
Microsoft “Get The Facts” Campaign Isn’t Working
Windows Genuine Advantage Not So Advantageous
Microsoft Apologizes About Cheating on ISO for OOXML’s Approval
More Evidence of Microsoft Playing Games
Super-Duper New Improved ATI Drivers (Still Not as Good As nVidia)

Microsoft Looses ISO OOXML Vote, Ballmer Whines Like Little Baby
Eric Raymond May Reveal He Is a Ninja Loosing Patience with Microsoft Over OOXMLninja.jpg
Richard Stallman Taunts Torvalds Regarding GPLv3 Adoption
Linux Voids Laptop Warranty
SCO Files for Chapter 11 Bankrupcy
Creative X-Fi Soundcards Supported. In Other News, Hell Freezes Over
Donate Linux PCs, Get Investigated by California Government
Darl McBride Blames Imaginary Friend Linux For SCO Failure
Gnome 2.20 Released
First Ever GPL Lawsuit in USA
WSU Linux User Group Auctions Off Nerds
Microsoft Pushing Vista, Businesses Demand XP
First Ever GPL Lawsuit Settles, Pontius Pilate Upset!

Novell Thanks Microsoft for Patent Agreementqsol_com.jpg
Novell Uses Microsoft FUD as Marketing Material
Linux Journal Runs Offensive Blowjob Ads
Linus Torvalds Gets Pissed Off And Kills People About SMACK
Skype 1.4 Goes Gold
Linux Doubles Market Share
Ballmer Steamy About Patents (Again)
Ballmer Wants Redhat Users to Pay Up
IP Innovation Files Patent Suit Against Redhat & Novell
Mark Shuttleworth Fires Back. Ballmer Quoted as Saying, “You Sunk My Battleship!”
Nokia 810 Internet Porn Device Tablet Released
Oh SNAP! TurboLinux signs with Microsoft
Mandriva Club Isn’t A Champagne Room
Linux Loosing Market Share
Linux Not Really Loosing Market Share
NY Times Publishes Swimsuit Edition Opens Up Codebase
Microsoft Really Wants Windows on XO PC
Laptop Magazine Reviews Eee PC Laptop, 4/5 Stars

Turn Webapp Monster into gOSnigel_lold.jpg
Mandriva Upset with Microsoft/Nigeria 419 scam Classmate PC Linux Reversal
Microsoft Denies Involvement in 419 Scam
Say Hello to Chumby, the Linux Clock!
IBM & Novell Block Sale of SCO Assets
Google’s Android (aka gPhone) Gives Street Cred to Mobile Linux
Symbian CEO LOLs When He Heard About Google’s Android
Novell Sells Bunch More Microsoft Support Coupons
Six Floor Labs LLC Launches (Hoax?) Ransom Model for Linux Video Games
OMG! New Theme for Hardy Heron!
Only 600 UK Visitors to BBC Website
BBC Rethinks Linux Visitor Numbers
Mandriva Wins Back Nigerian Classmate PCs
OLPC Forgets Simple Math.. Buy Two One, Get One,
Walmart gPC Sells Out
Walmart Will Restock gPC at “Really Low Prices”
OpenMoko Pushes Mass Market Date Back
Obama Supports “Open” Document Format
Amazon’s Kindle Launches
Torvalds: Strength of Linux Lies in Contortionist Ability Flexibility
BusyBox Sues Xterasys and High-Gain Antennas
Asus Eee PC Laptop Violates GPL
One Year In, Vista Still Not Budging in the Business Market
Cheap Laptops Perfect Fit For Linux, Vista Miffed
Torvalds: Microsoft Can’t Stop Linux
One Laptop Per Child Sued for Patent Infringement
Asus Releases GPL Code
Lucky Fresno Kids Get Asus Eee PC Laptops

nVidia and ATI Users Green With Envy
KDE 4 Is Late To Dinner
Verizon Sucks Down GPL Lawsuit, Belches Loudlyburp.gif
MPAA University Toolkit Violates GPL
OLPC Does the Needful in India in a Browser
Bazaar Version Control System Released
Opera Thinks Microsoft Should Distribute Their Browser
Dell Offers Ubuntu with Legal DVD Playback
Xterasys Settles GPL Suit
BBC Website Compatible With Linux
Schestowitz Interviews StallmanMicrosoft Hands Over Protocol Documentation to Samba
Redhat CEO Removes Red Hat
Ex-Delta COO Has Redhat Flying High Again
350,000 Tiny Eee PC Laptops Sold This Year

How To: Run World Of Warcraft (WoW) in Linux Using Wine


World Of Warcraft is one of the most successful games in history, with 9.3 million subscribers and counting. Believe it or not, the beta test of World of Warcraft actually had a Linux client. It’s true! When the game shipped, support for Linux was dropped and the game never shipped with a Linux client.

What a shame! The good news is, there’s been some positive collaboration between members of the Linux developer community who work on and contribute code to projects like Wine, Cedega and CrossOver. Because of this, installation and configuration of World of Warcraft is a snap for those of you who are interested in getting rid of your Windows partitions lying around if WoW is your game of choice.

We have 8 steps to complete to play the game:
1. Configure 3D drivers with Envy.
2. Install WINE and fonts.
3. Configure WINE.
4. Download (or install from media) the actual game.
5. Edit
6. Create a Registry key
7. Install a Linux specific AddOn
8. Launch the game!

1. First, we need to check to see if we have correct and working video card drivers that will work with the game. Open a terminal and type in this command:
glxinfo | grep rendering

It should return with something like this:
direct rendering: Yes

If it says “no” then we have to install the right drivers.

If you have an ATI or nVidia card, the quickest way is to use Envy. Head on over to the website and snatch a copy of the script. Scroll about halfway down and you’ll see the link that ends in .deb – that’s what you want if you’re running Ubuntu or Debian.

Open up the Envy .deb file once it’s done downloading, and we should be prompted with an installer program, just hit the install button and follow the prompts. After it’s installed, we will need to start up the script by going into the Application Menu, then System Tools, then select Envy.


Select “Install the NVIDIA driver” (or ATI driver) and press Apply. This process takes about 5 minutes to complete, so go make a sandwich and reboot your computer when it prompts you to do so.

Don’t worry if it seems like it’s not making progress – just be patient. After rebooting, run the glxinfo | grep rendering command again, and this time it should respond “yes” this time.

2. Then, we are going to install two items before we can actually start installing the game.
a. WINE allows us to run Microsoft Windows executable files
b. To make things look pretty, we need to download two different font packs.

In Ubuntu 7.10, the following command will install all three items in short order. You can open a run dialog box by pressing Alt+F2 simultanously (or open a terminal), then paste in the following:

sudo apt-get install wine msttcorefonts ttf-xfree86-nonfree

Type in the password for your user account, and follow the prompts. After that command completes, we’re just about done preparing the system and can install the game *almost* as easily as in Windows.

3. Configuring Wine
By running the winecfg command, we can choose which sound driver to use (OSS or ALSA), and also switch compatibility modes – just like XP and Vista have done for quite some time, WINE allows us to switch between different operating systems to allow for better compatibility with various programs.

Some users have reported that switching WINE to use NT 4.0 compatibility, issues with patches or installations have been resolved. If you run into problems, you may want to try here first. I left it on Windows XP mode the entire time and had no problems, but your mileage may vary.

4. We need to download and/or install the game from media.

I personally have an old account that has been sitting dormant for approximately a year, and I’ve thrown away my installation media. The easiest way to install WoW and TBC is using the original CDs, but if you don’t have them, or have a pretty fat internet pipe, Blizzard helpfully provides online downloads via BitTorrent, so that’s the method I’ll document here today.

Since I’m showing how to install via download, here’s the two links you need. The first one is to download the original WoW game installation files, and the second link requires you to login to verify that you actually have The Burning Crusade expansion enabled on your account before you can get the BT download program for TBC from Blizzard.

Both of these files utilize BitTorrent technology to allow users to download the entire game, except for the latest patch. These files are updated pretty often, so you usually don’t need to install more than one patch after you’ve got the game installed.

To run them, just open them up just like you would on a Windows computer. They should automatically open up in WINE, and after you select a download destination, you’ll have a pretty familiar window staring you right in the mullet.



NOTE: Your internet bandwidth is going to be sucked up completely by the download client. If you need to browse the web or anything in the meantime while you download over 4GB of data, select the View menu in the download program and select preferences, then uncheck download from peers.

When these are done downloading and installing, we can go and get a few tweaks setup so that everything will run smoothly once the game is downloaded.

5. We need to setup the file inside your WoW folder, by default it is located in the ~/.wine/drive_c/Program\ Files/World\ of\ Warcraft/ directory. If it doesn’t exist, login to the game once, and just exit right out. The game will create a default one for you.

We need to append a few items to this file to use the OpenGL rendering engine (instead of DirectX or Software rendering) and make sure we have everything setup to run properly under WINE.

You can run this command to edit the file:
gedit ~/.wine/drive_c/Program\ Files/World\ of\ Warcraft/wtf/

Then paste these lines at the end:

SET gxApi "opengl"
SET ffxDeath "0"
SET ffxGlow "0"
SET SoundOutputSystem "1"
SET SoundBufferSize "150"

6. Next, we create a registry key and value.
The following instructions to modify the registry are taken directly from the Ubuntu wiki page and is licensed under CC-BY-SA.

a. Find this key HKEY_CURRENT_USER\Software\Wine\
b. Highlight the wine folder in the left hand pane by clicking left on it. The icon should change to an open folder
c. Right-click on the wine folder and select [NEW] then [KEY]
d. Replace the text New Key #1 with OpenGL
e. Right-click in the right hand pane and select [NEW] then [String Value]
f. Replace New Value #1 with DisabledExtensions (Notice it's case sensitive!)
g. Then double click anywhere on the line, a dialog box will open.
h. In the value field type GL_ARB_vertex_buffer_object

It should look like this:

7. Now we can install a Linux-specific AddOn for the game so that the graphics options are able to be modified in-game without crashing. Download this file and unzip it.

Copy the entire extracted ApplyToForehead-4 folder into the following location:
~/.wine/drive_c/Program\ Files/World\ of\ Warcraft/Interface/AddOns/

If the Interface or AddOns folder do not exist, go ahead and create them.

8. We can launch the game from the desktop shortcut, or create one pointing to the wow.exe file within the WoW folder.

You should end up with the launch executing flawlessly:

Now just hit the Play button and enjoy the most addicting game since slot machines. On the character selection screen, make sure to enable out of date AddOns so that ApplyToForehead is loaded properly.

That’s it! If you have problems with running the game, please leave a comment and I’ll attempt to answer it, or look for support channels via the following wikis:

Anything else:

And for your enjoyment, here’s a video. :)

Unreal Tournament 3 Linux Server Available… Finally!

About 30 days late, but judging from the response on the UT3 mailing list, everyone is really excited to finally have a Linux server for UT3.

From the mailing list:

Thanks for your patience, everyone.

The Linux server is now available for download. It is built from the 1.1
patch, and is network compatible with all retail UT3 clients.

We feel pretty good about this build, but it should be considered beta
for now, as it hasn’t had the full wrath of the Internet applied to it
yet. :)

Here is the news release:

I’ll even pitch in. Here’s my mirror:

File size:
1744621651 bytes (1.6 gigabytes!)

70149f802efc087455a87f92c1485982 UT3-linux-server-12172007.bin

So, who feels like comparing this to the original beta demo server for Linux and figure out who caused the delay – other than Epic.

Unreal Tournament 3 Linux Status

For those of you who are not subscribed to the mailing list, here’s the email verbaitim from Ryan Gordon, the man behind the curtain who is responsible for the Linux port of UT3 Linux server and client binary distribution… which still hasn’t happened yet – but they will be available “as soon as possible.”

The most interesting piece (in my opinion) is that he believes that it can be determined what the cause for delays in the final release of the Linux server by comparing the binaries. I better brush up on my assembly.

In other news, Tyler in chilly Wisconsin won my copy of UT3 Collector’s Edition. Congrats bud, it’s in the mail. :)

I’m going to answer a few emails here, but I haven’t got anything to
announce at the moment. I also haven’t read most of this mailing list in
the past week or so; I don’t need to be reminded that people are still
waiting for Linux binaries. You’ll get them as soon as possible, honest.

> Questions:

(I don’t speak for Epic, and have no real insight into why technical
decisions were made. But here are my best insights.)

> Why did Epic choose GameSpy this time?

My guesses would be a) because the master server was a huge pain from
ut2003 onward (and maybe as far back as Unreal 1), and b) GameSpy gives
them cross-platform tech roughly analogous to Xbox Live or Games For
Windows Live.

This is about more than just getting a list of servers. There’s a lot
more competition for a baseline feature set nowadays. The fact that
Valve added “achievements” to the Steam version of The Orange Box titles
suggests that this competition is only going to get more fierce. If I
were you, I’d go figure out who the major competitors are, and get the
login name you like on their services before someone else takes it. :)

> Why did Epic choose Bink for videos? (Even the load screens!)

Almost every game you’ll see on a console uses a prerendered movie for
load screens (including static copyright text, like ut3 does).

Partially because it’s quick to throw in contractually-obligated logos:
usually there’s a prebuilt movie from these companies they just have to
convert to Bink. Also, it’s probably easier to put a movie together in a
movie making tool, than make the equivalent set of pixels light up in
the engine…especially since, say, Intel Corporation doesn’t keep
people with UE3 mapmaking experience around to make logos.

Also, rendering a movie is dirt cheap from a CPU viewpoint; lots of
games show them because Sony/Microsoft/Nintendo won’t certify your game
if the load time is more than X seconds…but the stopwatch doesn’t
start until all the logos are displayed. Many games show the movies on
one thread, and then use this extra time to load the game on another. I
don’t know if UT3 does this, but lots and lots of Unreal licensees have
done just that.

Also, darn near every UE2 licensee tends to license Bink, and uses the
same piece of third-party code off the Unreal Developer Network to
integrate it, so it probably made sense to just do the integration in
the official UE3 codebase, since Epic would still get bug reports from
it anyhow.

> As for PhysX I won’t comment.

It’s amazing to me how much hatred there is towards Ageia…I wonder if
that’s just spillover from ut200x’s MathEngine contracts.

Then again, there’s a lot of hate towards every piece of middleware,
depending on what a given forum’s personal conspiracy theory is. Someone
posted a petition on this mailing list about removing GameSpy. You don’t
have to _like_ GameSpy, and I’ve certainly had my problems with them in
the past, but I don’t think it’s fair to play Kangaroo Court with them
when there’s really no actual evidence that they are the problem.

Likewise for Ageia.

Likewise for Bink.

> Lots of other routine middleware floating around in there too probably.

I have no doubt that people will compare the final binaries with the
beta demo server for differences. It’ll be interesting to see if the
incorrect parties will amend their petitions and apologize to those they


Thanks for the updates Ryan, you’re the man – behind the curtain.