Category Archives: Technology

Video Game Consoles

I’m thinking of getting a video game console system. Trouble is, I haven’t really followed the market since the days of the original Nintendo. I do own a N64, but I didn’t really research it before I bought it, and it looks pretty bad on our HDTV.

So I’m hoping someone out there can give me some advice, or some links to sites that could give me some advice. I have no idea at all where to start.

My criteria to begin with are:

  • Support for HDTV systems. Are there any widescreen (16:9) game systems or games out there? That would be ideal.
  • Not about to be end-of-lifed. I want it to be able to play new releases for awhile yet.

Hello, ext3. Goodbye, reiser4.

So I’ve been trying out various filesystems over the past few months, by converting a few machines to them and using them on a daily basis.

I’ve found that reiser3, JFS, and XFS are all risky and actually corrupt data on crashes. JFS also has a few weird bugs that make the kernel oops, and sometimes cause filesystem corruption. All of the above also have starvation issues, where one IO-intensive process can dramatically slow down everything on the system (by a factor of 100 or more).

Reiser4 has proven better — only one small issue that I can recall. But it’s got a huge problem: no ability to resize a Reiser4 partition. That is rather ridiculous these days, and really reduces the utility of LVM. (Hans says he’ll make it resizable when someone pays.)

So I’ve tried out ext3 again, for the first time in a few years. I’m using data=ordered,commit=300 (or 600 on some machines), which still makes it safer than the other journaled filesystems.

And I must say that it is impressive. The old bottlenecks that I was used to were gone. The thing is reliable and fast, and scales well. I’m going to move everything back to ext3.

So why do Hans’s benchmarks show reiser4 being better? For one thing, most benchmarks measure throughput, not response time, so things like starvation don’t cause black marks in them. Most of them don’t even use multiple processes to simulate real-world activity anyway. Plus, ext3’s default mount options (commit=5, for instance) are much more conservatve than other filesystem’s. To get a fair test, one should increase that commit= number on ext3.

Here’s another discussion about ext3.

Some nice code: libarchive

Yesterday, while looking for information on the format of tar files, I discovered libarchive, which is part of FreeBSD. libarchive and read about 5 different tar formats, 4 different cpio formats, zip, and ISO images, and supports gzip and bzip2. It can also write 2 different tar formats plus cpio and shar. Very nice.

Oh, and its tar.5 is the best reference on the tar format I’ve seen.

I’ve packaged up libarchive and bsdtar (the default tar on FreeBSD, which is built using libarchive) for Debian.

The Linux Link Tech Show

Probably the most unexpected result of purchasing a Motorola v551 phone is finding out about The Linux Link Tech Show. (One of the people involved had e-mailed me asking about bluetooth under Linux on that phone.)

I’ve listened to about 2 hours of back episodes now. It’s great. I can’t believe it’s been 2 years that they’ve been doing this and I just now learn of it.

They’ve invited me to be a guest on the show next Wednesday evening, September 21. I think it’ll be a lot of fun.

Plus, they’ve got an Asterisk setup. Always like the opportunity to do something cool with Asterisk.

Perl, Powered By Haskell

Autrijus Tang is well-known for developing the first working Perl 6 interpreter, Pugs. Pugs is written in Haskell, my new favorite language. Perl.com has an interview with Autrijus, and page 2 of that interview gets particularly interesting. Here are some quotes from Autrijus:

Haskell . . . is faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP.

(If it has nothing in common with PHP, it must be great, right?)

Haskell is a pure functional language optimised for conciseness and clarity. It handles infinite data structures natively, and offers rich types and function abstractions that give Haskell programs a strong declarative flavor–the entire Pugs compiler and runtime is under 3000 lines of code.

Most languages require you to pay a “language tax”: code that does nothing with the main algorithm, placed there only to make the computer happy. [Java, anyone? — jgoerzen]

On the other end of spectrum, we often shy away from abstracting huge legacy code because we are afraid of breaking the complex interplay of flow control and global and mutable variables. Besides, the paths leading to common targets of refactoring–those Design Patterns–are often non-obvious.

Because Haskell makes all side effects explicit, code can be refactored in a safe and automatic way. Indeed, you can ask a bot on to turn programs to its most abstracted form for you.

Go check out the interview (page 2) for more, including a demo program that Autrijus wrote to show off Haskell.

Thanks to metaperl for the link.

Digikam

Back when I first got my digital camera (a Canon Digial Rebel), I knew I had to find some sort of program to keep track of my photos. I looked at many different programs on Linux, but none of them really did what I wanted. I’ve used some iView software on the Mac some times. While it can do what I want, its database is proprietary, which annoys me. It means, among other things, I can’t write my own programs to pull data from that database.

Lately I’ve been checking out the Linux photo management scene again, and I’ve got to say that digiKam is quite the impressive piece of work.

It has a versatile database, nice interface, and loads of features. Its database uses sqlite, so writing my own programs to work with it will be a snap. I’ve been using version 0.7.x, and it looks like the 0.8.x beta will address all of my few remaining complaints.

I’m moving everything over to digiKam.

Kudos to the digiKam deveopers.