April 2006


ZFS is a next generation file system developed by Sun Microsystems. The file system is open source and as a result, available for other systems to impliment.

The ZFS file system is pretty cool. It is a full 128-bit file system with the ability to store files that are 16 exabytes in size (an exabyte is 1 billion gigabytes (1.3 million of the largest hard drives currently avaiable - the 750GB Seagate)) and 2^48 number of files (this equates to creating 1,000 files per second for 9,000 years).

So while it has the capacity to be the end-all of file systems, it goes well beyond this.

It offers the ability to create snapshots of a file system for backup purposes (only data that changes will be rewritten to the disk, saving storage space). It can span over multiple disks.. so you can simply add additional disks and let your volumes (pools in ZFS lingo) expand/contract accordingly. In addition, it provides file system level disk quotas, compression and various tweaks to optimize throughput.

Needless to say, it is REALLY cool. How cool? Well the DragonFlyBSD OS has stated support for porting ZFS to BSD. Apple’s Chris Emura, Filesystem Development Manager is working on porting it to Mac OS X. Sun Microsystems has already stated intentions on porting it to Linux.

There is a demo at OpenSolaris.org that shows how easy it is to tap into some of the advance features of this new file system.

Sun ZFS Feature Page

I ran across MusicPD (mpd for short). Mpd is an interesting client/server based playlist based music player. Unlike traditional music players such as iTunes, WinAmp, Amarok, etc, Mpd is build with the intention of being a network daemon/service for playing music.

It has a standard network interface that allows a myriad of front-end applications to take control of the system. For example, I am currently running it with mpc, a command line based music player. It provides the capability to quickly create playlists and access all functions via typed commands. Needless to say, what can be typed in the command line can easily be scripted so in theory, it could be tied to other sources of input ..

Some thoughts:
1. Web based interface .. allow people to view my music library and stream back songs..
2. Tie in the playlist function with perhaps a CD burning application (burncd).. select songs via a web interface or whatever, and have it assemble the songs and queue to be burned to CD. Double brownie points for interfacing with Lightscribe so the contents are “printed” on the CD along with who requested the CD.
3. Remote, massive MP3 Jukebox .. build out the “client” as a remote control or perhaps a in-dash car stereo.. who knows.
4. Tie it in with other applications as audible notification .. new email, monitoring issues, etc.. have it trigger certain mp3’s when these events occur
5. Get uber complex.. have the system read the playlist, go out find the lyrics and assemble a lyric database for all the songs.. then tie it in with current events (ie news.google.com) and play back songs based on keywords .. “mood” music. hehe..
6. Along the same lines .. predefine certain playlists for different weather conditions (stormy weather! summertime! Heres’ that rainy day, etc..) and get the current weather report via an online feed and play music accordingly.

I’m particularly interested in #4 .. I’ve always wanted audible alerts at my desk when my service monitor gets a triggered event .. however, given the nature of virtually all music players (graphical), it was difficult to script (especially when I was logged out of my account). However, with a music daemon running in the background, it would be simple to send a network command and have it trigger a notification song/etc. Excellent. :)

I came across this site that lists prices for hard disk going back 20 years.

Today, one average sized hard disk - 160GB cost $120 (generally much less after rebates, sales, etc..). In 1986, this amount of storage would have required 2,286 of the largest hard drives available at a cost of $8,211,312. Of course, hooking up 2,286 hard drives is a LOT more difficult and expensive than one hard drive. In 1996 (just 10 years ago), that amount of storage would have required 77 drives and cost $39,270. Of course, that is *only* 160GB .. Seagate just announced a 750GB hard disk. :)

After hearing a lot about XGL from Novell, I finally got around to checking it out. :)

For those of you who do not know, XGL is a 3D graphic accelerated desktop for X-Windows (Linux, BSD, etc..). Kororaa Linux has a live-cd available where you can test out XGL using the Gnome and KDE graphical interfaces (along with a nice selection of software). Unlike the upcoming Windows Vista which requires an extensive hardware upgrade, XGL powered Linux ran just fine from my old, slow CD-ROM drive in a modest Athlon XP 2200+ with an old GeForce 2 MX 400 video card (needless to say, quite low end by todays standards). I believe you need a Pentium 3 or better processor (SSE support) and a 3D graphics card (there is a full list.. if you have ATI or NVidia you should be a-ok).

So what does XGL do? In its current version, XGL provides me the following functions:

Transparent Windows - by simply scrolling my mouse wheel and pressing the ALT key, I can change the opacity of my active window. Pretty cool if your going between two windows.. I can keep the foreground window about 25-50% transparent so I can read the text underneath.

Mac OS X Expose-ish feature - Pressing F12 will reorganize my windows as smaller windows so I can select the one I want in the foreground. All windows stay active (meaning, if I watch a video, it is still playing in small mode).

Virtual Desktop Cube - Pressing Ctrl-Alt and clicking on my desktop (or using left and right arrow keys), I can pull my desktop left or right and it turns into a cube so my other virtual desktops are accessible. There are two modes — an external cube and internal cube.

Zoom - I can Option-Right Click and zoom in (or Option-Mouse Scroll to zoom in really close) .. allows me to zoom into a particular part of the screen (defaults to centering where the mouse cursor is located). Might be quite handy when a quick visual verification is needed of something small or if there is really small text on the screen that is difficult to read. :)

Program Selector - Doing an Alt-Tab has (like in Windows) provided a list of icons of currently running programs. KDE enhanced this to provide the window title .. with XGL, it provides a scrolling display of mini versions of the windows. As I tab through the interface, the actual window will adjust transparency so it is more visible behind the selection screen.

Eye-Candy - Wobbly windows when you move them, windows the scale down and get transparent when you minimize, 3d effects when accessing menus (slight bounce, fade out), drop shadows on windows, curved window edges (alpha transparency), etc.. I’m sure there will be a LOT of additions and variations of these and other eye-candy elements over the next few months.

Overlay - There is a script in Kororaa that runs the three-dimensional Matrix screensaver on top of the running desktop. While not particularly useful, it does show off the overlay and realtime compositing abilities of XGL which might be put to good use in the near future.

I’m impressed. I saw quite a few online video demos of this technology late last year, early this year but it wasn’t until I tried it that I realized that this technology is definitely here and ready to be used (instead of a half-baked developer demo). The fact it runs very well on my GeForce 2 MX (Released Summer 2001) is quite amazing.

According to Wikipedia, XGL is comparable (in capability) to Apple’s Quartz 2D Extreme. Mac OS 10.4, released in April 2005, was the first version to have Quartz 2D Extreme, however, it is currently disabled by default. So _technically_ Linux and other X-Window based systems are leading (or atleast neck and neck with Apple) in 3D Accelerated desktop technology. Granted, I am not going to shout too loudly as Mac OS X obviously has much more of its applications taking advantage of graphics acceleration/features.

Screen shots are available at Tuxmachines Gallery.