De Phazz - Natural Fake

After a little more than a week of owning De Phazz's new album Natural Fake, I'm not as excited as I was at first. Maybe that has to do with how much I listened to it. But altogether, I have noticed that many songs are much more repetitive than their previous work. And repetitive = boring. The CD has been fairly successful at putting me to sleep on several occasions, which may have some merit. :) But listening to it today right before listening to some songs by Cargo Cult reminded me that there's sometimes more to a good song than what Natural Fake delivers. Hear you me, the album doesn't suck. I like it. It's just a bit short of the mark that was set by, say, Death by Chocolate.

Anyway--keep on rockin'. 8) ;)

When I grow up, ...

... I want to be just like him.

Photo trip through Ulm

Josie and I went on a brief end-of-winter-walk through Ulm on Sunday, and even though it was pretty cold, we got a hold of a few shots. Enjoy.

I, for one, am glad that spring has finally sprung in Germany. Just imagine. I was out in a T-Shirt today. And I officially opened my inline skating season. Wow. ;)

It feels good...

...to have a door again.

That will be all.

The Battery Rant

No matter what you do, do not ever buy the 2000 mAh rechargeables from Hama. They seem to have a pretty high defect rate. Today I finally got a refund for my set of four, which I had exchanged no less than twice before. Each time I came home with a new shiny set, I put it in my charger (also from Hama), only to find out that at least one of the batteries was broken. (Broken as in zero voltage between the ports.) At least the refund from Saturn was fairly painless.

Saturn, however, attempts to trick you when you buy stuff. They have two separate battery shelves at different locations in the store, one overpriced and no-name, the other reputable-brand and reasonably-priced. Inexplicably, the section with the reasonably-priced batteries says "Inkjet paper" at the top. It makes you feel like they don't want you to find that stuff. This is true at least of the branch in Karlsruhe. (Note that my batteries came from the reasonably-priced shelf. :P)

The State of 802.11g Wireless Networking in Linux

This entry describes my way to wireless LAN in Linux. It is an update of an earlier article. All I wanted was an 802.11g-compatible PCMCIA card with a reasonably open and functional Linux driver. I find it ok if the card's firmware is not open source, but I hate dealing with binary-only blobs in kernel modules. NDISWrapper is (IMHO) a cute hack, but even uglier than binary blobs and consequently not an option. Under these constraints, there weren't many choices in terms of the chipsets that I might use:

  • The RaLink RT2[45]00 chips have GPL drivers released for them by the manufacturer. My new WLAN card, a Conceptronic C54RC, has this chipset. There are a ton of others that have it, too. The rt2500 driver, checked out from CVS as of 2005-03-07, works for me, even though it takes a while until the card associates with an AP. The drivers' web site could also stand some improvement, but I hear that this is being worked on. Also, the card is supposed to be tad slow, probably because of a bottleneck in the current driver. But overall, I'm pretty happy with my purchase.

  • The Intersil PrismGT was a hopeful contender, until the card manufacturers discovered that they can save a few cents on each card if they stick the MAC-layer processing into the host driver instead of the card's firmware. (This cheaper type of card is called SoftMAC and will make the prism54 driver complain about "no 'reset complete' IRQ seen - retrying" and "prism54: Your card/socket may be faulty, or IRQ line too busy"). The driver is complete, functional and open, but it doesn't support the SoftMAC cards, and the earlier hardware versions that aren't SoftMAC are nowhere to be found, not even on ebay. I find it a shame that a good piece of software is ruined by the manufacturers' greed. Honestly, I'd gladly pay more for a card that just works with an open driver, and I believe that I'm not alone. What's worse: There is no sure-fire way to tell the bad cards from the good ones. In some instances (like the Netgear WG511, which I bought and returned), both types are almost indistinguishable visually. (In fact, for the Netgear cards, the label MADE IN CHINA is the only feature that seems to suggest unsupportedness.)

  • Atheros-based cards seem to be an ok (but partly non-open) choice. It seems that there is no (or very little) on-card processing power, no firmware, but a binary blob called "HAL" (as in Hardware Abstraction Layer). This HAL shields the card's apparently sensitive and protection-worthy programming interface from the prying eyes of evil source code readers. (Not that the whole thing hasn't been reverse-engineered yet.) It seems that the restriction is partly the FCC's fault, which doesn't allow freely programmable software radios like the Atheros chipset in a consumer's unqualified fingers. Since there is so little on-card processing power, the driver needs to reimplement nearly all of 802.11. This implementation is, apparently, fairly complete and was ported from OpenBSD, but I've heard that it lacks a properly working Ad-hoc mode, which is no big deal to me.

  • Intel's ipw2200 (aka Centrino) looks good, but is not available in PCMCIA form factor.

  • TI's ACX100 is a relatively new contender driver-wise, and, according to its developer, it basically works, is currently maintained, but doesn't do WEP reliably. TI is also notorious for not giving out hardware specifications to open source developers.

If you are a wireless card manufacturer reading this, please try to follow these guidelines:

  • If you change the chipset, change the name of the card. I hate nothing more than thinking that I'm buying something that's supported, when, really, the hardware has changed and I'm buying an expensive paperweight.

  • If there's a working open-source driver, don't stop selling the card. If it's causing cost trouble, up the price. I'll gladly pay for something if I know that it'll work.

  • Release full-GPL Linux drivers, or at least release hardware specifications (possibly under NDA) and allow the development of GPL drivers.

If you are a customer looking for a card and reading this, consider not buying from manufacturers that do not follow these guidelines. At this point, this includes D-Link and Netgear, among others. Instead, consider buying RaLink-based cards. They're inexpensive, and they have full-GPL drivers that work (minus a few bugs, which I assume will be ironed out).

For more information, see the exhaustive NDISWrapper card list and Jean Tourrilhes' Wireless HOWTO. I have tried to combine its information content with driver-specific bits'n'pieces I scavenged for my own purchasing decision. I hope this helps somebody.

I won't believe it until I see it with my own eyes, but...

Good news, everyone! :D My parents just got a letter from Brown University stating my admission to the PhD program in the Division of Applied Mathematics there. Yeeeee-haw!!!! :D 8) Oh, yeah, there's plenty of financial aid to go around, as well, including a fellowship for the first year. How cool is that? :D I guess I'll have to have a party some time soon...

Update: Here are some pictures of what it's supposed to be like. :)

Update 2: I've decided to stop talking about matters of grad school admissions on this site until I know where I will be going, since it has come to my attention that at least one person involved has actually read what I wrote. I'd find it poor style if I just kept blabbing. I've also removed the link from tiker.net to this site.

Back from Snowboarding

I'm back from snowboarding! It was great. :D Snowboarding rocks. Even the one ski person we had on the trip had to admit that. }:) We had seriously great weather. Sun during the day, snow during the night, fairly warm, good snow conditions. I don't know what could've been better. 8)

We were at Reiteralm, which is part of a group of four mountains, all of which we could use on our lift ticket. We didn't even have enough time to explore the area in its entirety. :P There were great spots for boarding through pristine powder, enough forest to go around, a good mixture of runs, with the black (i.e. "difficult") ones typically being best. Our accomodation was excellent, too, as you can see from the photos. We spent most (but not all) of our nights roleplaying on Kiki's adventure. My character, Lenelun Lender Le Lenwed (a gnome paladin) almost got killed twice, but he also caused enough damage to have been worth the trouble it took to create him. :)

I made an online photo gallery.

Digital Camera Kung-Fu

Since the beginning of this month, I'm the proud owner of a Canon PowerShot A95 digital camera. (Note that the new category "Digital Photography" has sprung up on this site.) I'm very excited about the camera. The battery life is just incredible. The only hair in the soup is that the tripod mount is plastic. But if it lasts, I guess I don't care.

In order to protect this investment (gift, actually), I've thought of a somewhat creative use of the MyCamera(tm) feature of this camera, which allows you to show a custom picture during power-up. This is what I put in:

camera-ownership-startup.png

If you want to do this, too, I've attached the Inkscape NOT FOUND: camera-ownership-startup.svg=SVG template. (Oops. Now you know my phone number and email. Oh well.)

To get the best possible use out of the pictures you take, I can whole-heartedly recommend DigiKam, which is the best picture archival/viewer program for KDE that I've encountered until now. It's been dealing well with my 2000+ pictures.

You may now spend the coming week in awe awaiting tons of snowboarding pictures week after next. }:)

Eat that, C++!

You didn't know that Python can actually have custom infix operators, like vector1 |cross_product| vector2, did you? From where I'm sitting, I can see C++ turning green with envy. :) Of course, this is a hack, but it's actually not so horrible that it wouldn't be usable in day-to-day code. The operators obey module/package qualifications, too.

How neat is that? :jawdrop:

Update: Very little actual thinking reveals that the same thing is possible in C++ as well. It remains as a last consolation that pulling it off takes about three times as much effort as in Python. :)