Category Archives: Computers

Sony: Pigfuckers

Mark Russinovich, one of the more badass ninjas of low-level Windows programming and the co-maintainer of the excellent Sysinternals website, recently discovered, while testing his rootkit detector, that Something Unwholesome had made its way onto a system that should by rights have been clean.

Upon investigation, he discovered that he’d inadertently installed it himself when listening to a DRM-encumbered CD, the ironically-titled Get Right With The Man.

This discovery has led to a media furor and very visible tug-of-war, chronicled on Russinovich’s blog, with Sony and Sony’s purveyor of DRM technology, First 4 Internet. First 4 Internet’s programmers clearly don’t understand the nuts and bolts of deep-down Windows programming nearly so well as Russinovich, leading to their advancement of some blatantly false assertions which Russinovich has proceeded to casually blow out of the water. It’d be amusing if the stakes — to wit, users’ right to use media they own on computers they own without worrying that one is going to try subverting the other — weren’t so high.

Russinovich is one of my heroes; his autoruns is on my very short list of absolutely essential Windows utilities. And yet there’s a certain irony lurking just under the surface here. Free-software advocates have argued, sometimes stridently, that proprietary systems are to be avoided because they tilt the balance of power away from ordinary users and towards the Powers That Be. This episode would seem to offer evidence that even extraordinary users like Russinovich are at risk of being bent over the barrel for as long as they choose to be serfs in someone else’s kingdom. Live by the sword, die by the sword, I guess. I suspect it’s too much to hope that the experience will lead him to focus his considerable skills upon free software, but it sure would be nice.

Tim suggested that I make T-shirts declaring “SONY ARE PIGFUCKERS” as an alternative to having the phrase tattoed across my chest. I replied that I could probably cover my costs by selling a few. I’m not sure about an exact design, though.

vesafb

During one of my recent visits to Chez Dirk, I got to see Linux’s VESA framebuffer console, something I’d previously encountered only in the context of the Gentoo installer, running on a regular system, and I found myself liking what I saw. The higher resolution is gentle on the eyes, and having a viewport of more than 80 columns by 25 lines makes the text-mode experience a lot easier to stomach.

It also happens that I’m in the last throes of yielding to the inevitable, and replacing my 19″ CRT with a 20″ flat-panel: the thought of seeing the VGA text mode, at 640×480, interpolated up to the 1600×1200 native to the monitor is enough to make my eyes hurt in anticipation.

So I spent some time last weekend trying to get vesafb working on one of my boxen as a proof-of-concept. In the end, I succeeded, but… Jeebus. The process highlighted everything that can be other-than-fun about the Linux experience. While it was not quite enough to propel me into the rarefied stratosphere of bitterness currently home to Jamie (“Fuck the skull of ALSA“) Zawinski, it was definitely irksome. Pieces of canonical reference material on the subject were at least one major stable kernel version out of date; others seemed flat-out at odds with reality. There was a bit there where I found myself muttering “VESA: it’s everywhere you can’t quite get to.” I’m better now.

In the deluded but psychologically vital belief that this will somehow help the next poor schmuck down the pike, here’s what I learned in the process of getting vesafb working on a system running Linux kernel 2.6:

  1. In order to even be presented the VESA VGA framebuffer option, you’ve got to build framebuffer support into the kernel. Building it as module won’t do: vesafb is a builtin-only option, so if its parent is modularized, it will be silently hidden from you. Navigate your way into Device drivers -> Graphics support, in the kernel configurator, and enable (with ‘y’, not ‘m’) “Support for frame buffer devices” and “VESA VGA graphics support”. Then dig down another level, into Console display driver support, and enable both “Video mode selection support” and “Framebuffer Console support”. (Again, modules are an inadvisable selection here, given that all of this stuff runs near the very beginning of the boot process, before even the loading of any hypothetical initrd.)
  2. Several of the docs indicate that once you’ve built the framebuffer into your kernel, you can add the option vga=ask to your kernel invocation in LILO or GRUB, reboot, and then enter the number of a graphical mode at the prompt. As far as I can tell, this is a big stinkin’ lie. Let me emphasize that. Big! And stinky! While it’s true that you can specify an assortment of text modes at that prompt, anything that would require a switch to framebuffer mode gets rejected out of hand as invalid. I’m not sure why that is. Casual perusal of vesafb.c suggests that the switch from text to graphics mode must happen while the processor’s still in real mode; presumably by the time the kernel is prompting interactively, we’re already in protected mode, and it’s too late.
  3. You will find, in the Framebuffer HOWTO and various other bits of documentation, a table listing the allegedly-canonical VESA mode numbers. This table, based on the VESA BIOS Extensions 2.0 specification, may or may not correspond to your hardware’s capabilities, especially if the latter’s compatible with VBE 3.0. The best way to find out what your card can actually do is to boot into GRUB, call up a command prompt, and invoke the vbeprobe command, which will spit out a list of mode numers, along with their associated resolutions and color depths. (If’ you’re not running GRUB, I’m very sorry for you. Consider upgrading at your earliest convenience. Seriously.)
  4. Armed with a mode number emitted by vbeprobe, and a little bit of extra arcana from the Framebuffer HOWTO and its ilk, you are now almost ready to get down to business. Add 200 hexadecimal to your desired mode number, convert the result to decimal, and use that value to as the parameter to the vga= argument your bootloader passes to the kernel. (You might be able to get away with skipping the hex-to-decimal conversion, but this varies by bootloader flavor and version; if you’re not in a violently-disinclined-to-fuck-around frame of mind by this point in the process, you haven’t been playing long or hard enough.)

    Here’s a table of values that have worked for me. You are strongly encouraged to determine your own. No guarantee is expressed or implied, not responsible for items lost or stolen, etcetera, etcetera. That having been said, the first of these should be safe enough, since it’s what the Gentoo installer defaults to.

    Decimal value Mode
    791 1024×768, 16 bpp
    792 1024×768, 32 bpp
    794 1280×1024, 16 bpp
    838 1600×1200, 16 bpp

With all this done, you should be able to boot into a high-resolution framebuffer console.

This isn’t needed for the proof-of-concept boot, but you will likely want to pass a few extra options to the vesafb driver once you have things up and running. vesafb tends to be CPU-intensive, since it involves a lot of unassisted memory movement. Compiling support for Memory Type Range Registers (MTRRs) into your kernel, and telling vesafb to use that support, will help mitigate the hit. Back in the kernel configurator, under Processor type and features, make sure that “MTRR (Memory Type Range Register) support” is enabled. Then add video=vesafb:mtrr to your set of bootloader kernel arguments. Actually, depending upon your particular card’s degree of brain damage, you will probably also want to request one of the video-memory-based scrolling modes, either ypan or ywrap. See Documentation/fb/vesafb.txt for details.

To re-summarize the required kernel options, here they are in their raw form, the one native to .config (or /proc/config, if you’re reading them out of a suitably-configured live kernel):

CONFIG_MTRR=y
CONFIG_FB=y
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
CONFIG_FRAMEBUFFER_CONSOLE=y

Enjoy. If the preceding text either helps you, or conspicuously fails to help you, in getting vesafb mode working on your system, I’d be interested in hearing about it.

iTunes Gift Certificates

There are two ways to purchase an electronic iTunes Music Store gift certificate: through the Apple Store, and through the iTunes application itself. Never, ever, do it through the Apple Store.

If an e-mailed gift certificate you purchased through iTunes is accidentally deleted, inadvertently tagged as spam, or otherwise lost, voiding and re-issuing it through the iTunes application is trivial. If the same thing happens to a gift certificate you purchased through the Apple Store you are, not to put too fine a point on it, shit out of luck. You will have to contact Customer Service by e-mail and detail your woes, after which they will credit your account with the amount spent and you can try again.

I have to admit that I expected better — much, much better — from a company which has made usability a cornerstone of its brand.

Jakob Nielsen would bitch-slap me

… if only he could be bothered. Last week he published “Weblog Usability: The Top Ten Design Mistakes“; reading it, I found myself thinking, “Check. Check. Check.” I suspect myself to be guilty of violations on every count save the last, “Having a Domain Name Owned by a Weblog Service”.

To Nielsen’s list I would add, “Using Your Blogging Software’s Default Theme Unmodified”, thus ensuring that your site will be a completely unmemorable, cookie-cutter affair, indistinguishable from a slew of others. I’m guilty of that one, too. I hope to do at least some customization in the near future.

Memo to Self

I don’t care how studly you think your I/O subsystem or networking capabilities are — you may be able to get away with mastering a CD using an ISO resident on a shared volume, but trying to pull the same stunt with a DVD turns out to definitely be pushing it.

“It Is A Licence To Print Money!”

On Friday two weeks ago, Frank, Meghan, and I paid a visit to the Valley Fair Apple Store to see if the new iPod nanos had arrived. Just to, you know, look.

Because I am terminally lazy, I am simply going to shamelessly crib what I wrote elsewhere.

Important Safety Tip: Do not pick one of these up unless you are prepared to buy it. Once it is in your hand, you will not want to let it go. It’s like The One Ring of portable audio players. Touch its ensorcelled metal, and you instantly covet the Precious.

It’s not just that it’s small, although it is ridiculously so. Plenty of other portable players occupy roughly the same volume. But they don’t have the deceptively-simple perfection of proportion. The nano isn’t just compact: it’s a thin, flat slab that lies lightly on your fingers, with all the controls situated exactly under your thumb, in a way that strongly suggests that nothing else has any business being there again, ever.

Also, it’s not a stripped-down player with two buttons and possibly a small numeric monochrome LCD. It’s a full-bore iPod, with a bright, high-resolution color display, the full UI, and the scroll wheel that’s such an absolute delight to use.

I’ve been using technology long enough that I’d thought I’d gotten completely jaded about the notion that next year’s model will be half the size of last year’s, and do twice as much, but holding the nano, I feel like someone in Scheduling screwed up, and let the future arrive well before it was supposed to.

I almost feel sorry for everyone else making portable music players. It’s like a bunch of Shriners got together one fine Sunday morning to race their little go-carts, and some bastard pulled up to the starting line in a Ferrari. Doom.

Apple is going to be Hoovering up design awards for this one in the year to come the way I vacuum up spilled cat litter. They’re also, assuming they can meet consumer demand, going to want an extra shipment of leaf bags for all the cash they’ll be raking in. Apparently the black 4 GB model is so popular that Apple is already having to retool production to crank out enough of the things.

Hail the New Brick

“The war is over. We lost.” So said Laura Roslin in the pilot for the new Battlestar Galactica, as she tried to convince Commander Adama that discretion was the better part of valor, or at least survival.

The same might be said of the digital audio wars. I have pretty much limitless respect for the folks at Xiphophorous; I think that Ogg Vorbis is a textbook example of how a media format should be designed and implemented for the public good. Unfortunately, a solid file format alone does not guarantee victory in the marketplace, and it’s pretty clear at this point that Apple, with the iPod and iTunes music store, has won dominance over the digital-music hill through a combination of first-class product design and spot-on execution.

Having grown increasingly frstrated with the design flaws of my trusty iHP-120, and seeing that at least one artist I care about is now releasing iTunes exclusives, I decided that the time had come to take the plunge. So I followed my friend Greg’s lead and picked up the current top-of-the-line, 60-gigabyte, color-display iPod.

My initial impression: “Wow, this thing is everything it’s cracked up to be.”

To elaborate a bit: the device’s superficial appearance is minimalist and elegant, but that’s the least of it. Clean, refined design goes all the way to the core of the thing, from the intuitive controls to the user interface — and that doesn’t even begin to touch upon its seamless integration with iTunes.

Pros:

  • It powers up instantly. (Failure to do so was one of my biggest gripes about the iHP-120, which seemed to spend half a minute or so spinning up.)
  • Music is organized intelligently and intuitively. (The iHP-120 hewed strictly to the organization of underlying filesystem.)
  • The iPod doesn’t suffer amnesia every time it talks to the mothership, but remembers exactly where it was and what it was doing before it was plugged into a host computer. (The iHP-120 would revert to the same song after being detached.)
  • The scrollwheel — more a scrollpad, really, since it uses a solid-state touch-sensitive surface — is the way every portable player should implement its interface. (Yes, I’m aware that Apple probably has the thing patented out the wazoo. That does, unfortunately, not change the facts. The iHP-120’s stubby little joystick got maddening after a while.)
  • Apple’s designers devised the dock connector on the bottom of the iPod to handle everything: power, data, and a copy of the analog audio signal. Once upon a time I might have dinged them for using a proprietary connector instead of a series of standard ones, but that was before I grew tired of plugging multiple cables into different parts of the iHP-120 on a daily basis.
  • The iPod is able to sense when something is plugged into, or unplugged from, the headphone jack. It starts up in the former instance, and pauses in the latter. (This almost seems like frippery until you consider that I ran the battery on the iHP-120 down more than once by unplugging it and then forgetting to stop it.)

Cons:

  • iTunes, on Windows at least, seems to have some kind of seizure when you first plug the iPod into the USB port. It spends a few seconds thinking about something to the exclusion of all user input before proceeding with business as usual. Annoying, but tolerable.
  • iTunes appears to want its affiliation with a given iPod to be exclusive. In other words, if you’re in the habit of plugging your iPod into machine A, you should always plug it into machine A — plug it into machine B and the first thing the latter will offer to do is wipe the iPod clean of your music and playlists. This wouldn’t be so irritating if Palm hadn’t solved this problem a decade ago, but again, it’s tolerable.

    To be honest, I haven’t investigated this aggressively — since I have a laptop now, and carry it with me everywhere, I’ve just made that the sync machine and don’t mind. I could see this getting on my nerves in a serious way, though, if I wanted to keep music collections synchronized between a work and home desktop.

Looking at the above list, it would seem that all of my complaints are with iTunes, rather than the iPod itself. Even that’s not really an accurate picture, since there’s more about iTunes to like than dislike. Its mechanics for assembling and managing playlists, for example, are everything WinAmp’s aren’t, despite Nullsoft’s having a half-decade head start in which to get it at least approximately right. You just drag and drop to your heart’s content, and never see a playlist you spent days carefully tweaking obliterated because you accidentally chose to “Play” rather than “Enqueue” some random file. I’d praise iTunes’ mechanism for syncing those playlists down to the iPod, but it almost feels like there’s nothing to praise: as with the music itself, it Just Happens.

And then there’s the iTunes Music Store. I think that this one gets counted as a “Pro”, but I won’t be sure until I have a chance to see how much damage I do the bank account with music purchases over the next few months. iTMS is simultaneously the most gratifying and terrifying e-commerce experience I’ve ever had in my life. Gratifying, because the interval between thinking “I’d like that song” and actually having it in your posession is measured in terms of a single mouse click and a matter of seconds. Terrifying, because the whole thing is so unbelievably streamlined that you could very easily lose sight of the fact that you’re spending real money every time you click “Buy”.