Home

Search Posts:

Archives

Login

June 2007

S M T W H F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

I've been trying to enhance my mobile lifestyle lately. Or something.

Basically, as much as I love my MacBook Pro (oh yeah, guess I didn't blog that yet), I've really been hoping for something more portable that I could keep on my person at all times - you know, to handle any trouble that comes up whilst on call. That's the excuse, anyway - I also wanted a device that had a real web browser, a real mail client, GPS, wifi, and good media playback capabilities...

I was really, REALLY hoping that the "something" would be a phone, so I could ditch my existing unit and just replace it with a single device. The Nokia N95 comes really damn close, but its price tag is astronomical. Not only that, but it lacks compatibility with American 3G networks, which I really, really want in my next phone device (since we actually have 3G here...).

So, I went a different route - keep my aging W600i (which is a nice device, but old technology - at least it does EDGE) and "compliment" it with another gizmo for my mobile computing needs. Then, I'll pick up a cheap 3G phone (when such a thing exists) and ultimately plan on re-converging back to a single gadget that meets all my needs (once such a thing comes to exist).

The main advantage in this plan is that I'm now dealing with separate, less expensive components that I won't care as much about when they break or become obsolete to be replaced by my dream device.

Anyway, the N800 - it's pretty sweet. Packing a 300-ish Mhz ARM processor and a gorgeous display, it pegs media playback. Sure, I have to transcode stuff to a format that it's happy with, but that's fairly trivial with mencoder and once I've done so it works like a champ.

The browser is nice, too. It's got Opera - real Opera, not some crappy mini opera - and some oldish version of Flash. It can play stuff on youtube, even (if a bit choppily).

Wifi works great - good range, good speed. It's got bluetooth, and you can use your phone for connectivity in a pinch (and that EDGE connection, as much as it sucks, can be a really nice thing if you're desperate).

Where the n800 really wins, though, is hackability.

The device, and the Nokia 770 before it, runs a customized version of Debian and a slick Nokia-designed UI. Together, the platform is known as "Maemo," and it has all of the goodies you'd hope for from a real Linux device. Tons of applications have been ported to it, including xterm (a must), ssh (another must), openvpn (REALLY nice to have!), minimo (stripped down Mozilla browser), and... well, a crapload of other stuff.

There are also several apps unique to the device which specifically extend its functionality. There's this thing called maemo Mapper, which lets you use google maps in conjunction with a bluetooth GPS device to get live navigation. There's an FM radio app, there's an RSS reader, there's a weather app...

Basically, the N800 out of the box is exactly what it says it is - a web browsing appliance. But once you start tacking on the extra software, it becomes a full fledged mobile Linux computer. At about the size of a PDA (but with a MUCH nicer display), it's almost exactly what I was looking for.

Oh - and if you plan to ssh from the device, you can even hook up a portable bluetooth keyboard and make it a fully functional terminal. Sexy, huh?

Last time I described managing RAID pools with ZFS. This time, I'm going to describe what volume management is - and what it's like on Linux - as a way to compare a traditional model to that of ZFS (coming in part 2!).

Historically, with most operating systems, the notion of a "volume" was tied to the partition layout of a physical disk or RAID device. For example, an administrator could create 4 partitions on a single drive, and allocate different amounts of storage to each partition based on its potential use. He would then typically create a filesystem on each partition and determine a logical representation for that filesystem (in UNIX or Linux, this would be a location in the filesystem hierarchy - in DOS this would be an additional "drive letter").

If he wanted to have RAID configured, he could either use RAID on the entire drive (common with hardware RAID) and partition the resulting device (which commonly appears to the OS as a single, unpartitioned drive), or he could partition the drives and then configure RAID across the partitions (common with software RAID).

Partitioning is clearly useful, but it has some severe limitations. Once created, a partition scheme is generally difficult to modify. Growing and shrinking partitions (and their associated filesystems) is usually cumbersome, as is adding additional partitions to an existing layout. You could typically never have a filesystem that was larger than a single physical disk or RAID group. Basically, if you didn't accurately predict your needs initially, you could have a lot of work to do later.

Enter the volume manager. Most modern operating systems include tools that allow the administrator to add an additional abstraction layer on top of the partitioning scheme. Linux's LVM, for example, takes one or more block devices (in LVM terms these are "physical volumes" which generally equate to RAID devices, partitions, or entire drives) and allows the administrator to create "volume groups" which contain them. These volume groups can then be subdivided into "logical volumes" in whatever configuration an administrator desires, and on those logical volumes the administrator can create filesystems. To the administrator, these resulting logical volumes are functionally equivalent to partitions.

Volume managers, however, transcend many of the limitations of partitioning - they allow multiple devices to logically appear as a single large device, thus allowing filesystems to expand across physical boundaries; they allow for greater flexibility in resizing existing volumes on the fly; they allow additional devices to be added to an existing configuration on the fly; and they provide a mechanism by which other "useful things" can happen (such as snapshotting, encryption, or compression). However, there are still limitations - for example, LVM does not actually control the filesystem itself, only the logical volume on which it is placed. So, if you resize a logical volume, you still have to resize the filesystem that resides upon it, which may still require a reboot depending on the filesystem.

Now, if you want to combine all of this in Linux (to achieve RAID/LVM backed storage), you would essentially do the following:

1) Install physical disks
2) Partition these disks (fdisk)
3) Add these partitions to md RAID groups (mdadm)
4) Add those md RAID groups to volume groups using LVM tools (pvcreate, vgcreate)
5) Subdivide those volume groups into logical volumes using LVM tools (lvcreate)
6) Create a filesystem on each of those logical volumes (mkfs)
7) Map these filesystems to locations on the filesystem hierarchy (modify /etc/fstab and run mount)

Should he need to increase the size of a filesystem later, he must:

1) Modify the size of the logical volume (lvextend)
2) Modify the size of the filesystem (resize2fs)

To add a new filesystem, he must:

1) Create a new logical volume (lvcreate)
2) Create the new filesystem (mkfs)
3) Add the appropriate mount point (/etc/fstab and run mount)

Does this stuff work? Sure, and it works pretty well. However, from my perspective, it's all a bit cumbersome. But in't there a better way to administer storage?

Of course there is - and that way is ZFS. Next time, I'll tell you why.

So, you know, this game has been getting a lot of hype lately. I dismissed it out of hand a long time ago due to the horrific late-90's era graphics and the general consensus that it was a flaming pile, but having mostly burned out on WoW and not finding much else that runs on my Mac I decided to be fair and give it a shot.

First thoughts - the graphics look vaguely EQ-ish, and the performance is atrocious. Character models have a bit more detail than the environment, but are still crap by today's standards.

I can forgive some of this, though, given the nature of the product. Second Life is more of a framework than an actual game - it's basically a way to create, script, and interact with virtual objects.

From a technological standpoint, the backend is intriguing - the world runs on a cluster of Debian boxes, and supposedly they're planning to move to mono. The client is open source and cross platform (which is pretty much the only reason I even tried the game), and the protocol is documented (if not originally openly documented by Linden, it was reverse engineered).

In some ways I do want to like this project, and it's unfortunate then that I really can't. Despite the interesting design philosophy, when it comes to actual interaction with the world two thoughts come to mind - the fist being that all you can do in SL is explore user generated content, and the second being that user generated content sucks.

At the end of the day, SL feels like a pale clone of Stephenson's Metaverse, but unlike that fictional virtual world SL seems to exist just because it can exist, and not because it brings anything of value with it.

Stephenson's vision represents a future where the virtual world has as much to offer as the real world, where you could really lose yourself in an alternate reality that feels as real as your own but allows you far more freedom than you could ever really have. Above and beyond that, though, the Metaverse was the legitimate medium by which information was exchanged in useful ways, allowing you to experience knowledge visually - it is not only a virtual playground, but it's also a tool.

In contrast, SL may give you the freedom to create whatever you want, but it'll invariably suck due to the limitations of the engine, and it'll have no value over its real world or web counterparts which are either much more engaging or much easier to use. There's nothing to even do in Second Life, unless you like to fly around in a low poly universe with furries and cross dressers, and then click on a ball to start performing some action. It doesn't even have a legitimate reason for existing, like the Metaverse does - we don't even have tools to create content like what Stephenson envisioned, and what we do have (generally video, audio, text, and images) is just not suited for a free-form 3d environment.

So while SL is an interesting experiment, it's not really a game, and it doesn't have any real value as a way of sharing knowledge. Sorry guys - I guess the Metaverse will just have to wait.