Friday, July 27, 2007

Vista Guinea Pig

I just bought myself a Lenovo desktop machine for my home office, and it came with Vista Business. This is the first time I've submitted myself to being a guinea pig for a new, pre-service-pack OS. Here are a few reactions, gripes and maybe even some left-handed praises.


It started out of the box okay, after answering all the usual first-time-start questions of name, timezone, etc. Early on, I started transferring files from one of my USB drive to the new disk, and I was appalled how slow it was going. Despite being a 7200 rpm disk drive, the time it took for the file transfer seemed about four times longer than it would have been on my Toshiba laptop, which is a 5400 rpm drive. Eventually I figured out that indexing was turned on for optimizing search and the disk was churning constantly. Since turning it off, file transfers copies are must more reasonable, although I have yet to try a side-by-side comparison. You can find instructions on disabling indexing on the web.

In the course of loading up my customary developer software, I had to use the Explorer a lot, set environment variables, etc. (Note that whenever I say 'Explorer' I always mean the file browsing app 'Windows Explorer', not the web browser 'Internet Explorer.') The customary alienation that one gets trying do to routine things in a new OS's GUI was running pretty high for me. Like every MS-Windows incarnation before it, if you don't want to blindly follow Microsoft's vision of where your files should be (i.e. "My Documents"), you have to work a lot harder. After a few evening's work, I know how to get around, in the course of which I learned two disappointments about Vista.

Disappointment 1: Vista is just a big shiny wrapper around MS Windows XP. Once you've dug deep enough, you find that the Explorer does little more than it did before, and all the Control Panel applets offer all the same functionality as before.

Disappointment 2: I'm guessing that the motivation for the Shiny Wrapper came out of a need to "keep up with the Jobses" :-) and give Windows a glassy, 3-d look like the Mac. But the imitation is so shallow and naive. I get the impression that it was designed by people who don't actually "get" the Mac. It's like they made decisions like "the Mac uses shiny red buttons in the lower corners, let's do that and then they'll like us too"...but the end result is an incoherent mess. With the clever GUIs that Apple makes for iPods, Macs, iPhones and the like, you immerse, understand and say Wow. The Vista folks wanted Wow, but all they're going to get is, "Sigh. Why?"

Okay, having gotten that gripe out of the way, I've noticed a few good things. I'm having no trouble loading open source and developer software on the machine. I've got Tomcat 6 with JDK 1.5 running. Ant, Vim, Cygwin, Gimp and Intellij IDEA are fine. I installed all of Office 2003 and so far Word, Excel and Outlook run correctly. But I've had some problems too. My cheap-o Visioneer scanner won't load. A favorite convenience app of mine, Shortcuts Map, will load and run, but I can't close the app without using the task manager.

My user 'home' directory are now c:\Users\greg instead of the old, space-character plagued c:\Documents and Settings\greg. As far as names go, I can see actually using that as my 'home' directory, except that it is filled with the usual junk that is unrelated to what I actually use my computer for: 'My Documents', 'My Music', etc. And not surprisingly, Microsoft still presents it in Explorer as though its a special entity, like Desktop and My Computer, and not just an ordinary folder, which it is.

Another good thing is that Explorer is now remembing recently used locations. It makes it much faster to get to your stuff that way. Nice to know that Microsoft finally found a way to do something the Mac has been doing for 20 years already.

Back to what I wrote about at the top, the indexing that slowed down the hard drive by a factor of four...I guess Microsoft, showing its usual insecurity over competitor's innovations, figured they needed to make Vista like Google, i.e. searchable. And they bet the farm on it to the point that they hoped that users wouldn't mind if the first 7 hours of their Vista experience with a disk drive constantly churning and taking away productivity. Can they really be so clueless? Indexing, whether for a 160 gigabyte drive, or a giant corporate website, should be done in the early morning hours, when noone is at work, or at least on dedicated machines. Oh, they could have included some instructions to this effect: "After you finish using your new PC for the day, we suggest that you run Index Manager (tm) and leave your machine on overnight. The next time you use your machine you will find that you can search the entire computer quickly and easily." But I don't think that fits in with Microsoft's estimation of their user base's intelligence.

The conventional wisdom I've read on the net about Vista, and which I now agree is: don't be a guinea pig, stick with XP until Vista's first service pack comes out. But if you're buying a new machine, and Vista is forced upon you, and you can afford a few days to re-tool, Vista is fine. You'll just be that much more on top of things when the first service pack comes out and you'll be wanting to switch...because presumably Vista has a bunch of features that we'll be wanting. As I discover what they are, I'll write another blog entry about it.

Tuesday, July 24, 2007

"Zappa Plays Zappa" in Chicago 2007-07-20

Friday night I went to hear Dweezil Zappa's show, "Zappa Plays Zappa" at the Civic Opera House in Chicago (the home of the Lyric Opera).

The concert opened with no announcement other than a simple "hello" from Dweezil, and they launched into "Echinda's Arf", an energetic, progressive, hard rocking and difficult ensemble piece that ranks in the top five of my Zappa favorites. It was a pretty remarkable replication of the album, they had all the necessary personnel...which was true of most of what they did...while understandably lacking some of the soul and edge of the original recording.

Dweezil appeared to be handling all the guitar parts of the ensemble and looked pretty loose doing it...another thing that was true throughout the concert. This created a big impression on me because although I knew that Dweezil had accomplished much in capturing his father's lead-guitar solo style, I hadn't known he gained such high musical chops in general.

Echidna's ended bluntly right where it would have gone into "Don't You Ever Wash That Thing?" on the 'Roxy and Elsewhere' album. Dweezil's words to the audience were brief and very non-scripted. He gave some props to the people who had been at previous Chicago shows and other shows in general and then "well, shall we play some more?" That was as detailed as the audience dialog got the entire evening...no reminisces, nothing about what an honor, or great responsibility, etc. it was to play Frank's music. Simple, and natural.

I was expecting more, and perhaps many more might have felt more like the old days if we'd gotten a reminder of Zappa's barbs and wit. Or a reminder of his challenging insults...as I remember from a Bongo Fury concert where he suggested that we were a bunch of stooges and should just leave...or the the beyond-raunchy humor, as I remember from a concert from the Flo & Eddie period. But I'm grateful that Dweezil didn't try to recapture any of it, and I think many others were too. Even with the genetic privileges, no one is Frank but Frank; imitating his raunchy or satirical style would have fallen flat. And if Dweezil made no "pay respects" speeches, well, maybe he couldn't find a way to do it that didn't sound insincere, compulsory or scripted. So hats off to Dweezil for showing class, keeping the mood relaxed and showing best respect he could have paid...doing kick-ass music with a top notch band.

I didn't write down the set list but I got the following from this web site:

1) Echnida's Arf
2) My Guitar Wants To Kill Your Mama
3) Dirty Love
4) Black Napkins (w/FZ video)
5) Suzy Creamcheese
6) Brown Shoes Don't Make It
7) America Drinks & Goes Home
8) City Of Tiny Lights (Ray White joins band onstage, and remains for duration)
9) Pygmy Twylyte
10) Montana (w/FZ video)
11) Cheepnis
12) Advance Romance
13) Carolina Hardcore Ecstasy
14) Dumb All Over (w/FZ video)
15) What's New In Baltimore
16) Dupree's Paradise (40 minutes long, featuring individual solos by each band member);
17) Uncle Remus
18) Willie The Pimp
19) Joe's Garage
20) Wind Up Workin' In The Gas Station
21) San Berdino
22) IL Enema Bandit
23) Wild Love
24) Yo' Mama
25) Cosmik Debris (w/FZ video)
26) (1st Encore) Muffin Man (w/FZ video)
27) (2d Encore) G-Spot Tornado

"My Guitar Wants To Kill Your Mama" mimicked the "Weasles Ripped My Flesh" version mostly. Dweezil's voice was leaden and off-pitch on this, but I think it must have been performance jitters because it was much better for the rest of the concert. He doesn't sound much like Frank, although at times he may have been trying to.

The five songs with Zappa video were brilliantly done. If it contained a solo, the audio of the video was cued out and the band played the music, with Dweezil performing a note-perfect re-performance of what Frank was playing on the screen. If it had Frank singing, the original vocal track was used, with the band handling the back up. Not that I'm an expert on Zappa video clips, but they seemed to be less-well-known clips...selected I suspect, because the audio available was pre-mixed and allowed for the isolation of the vocal track. I think everyone in the audience found the videos and synchronized performance very gratifying. The labor of love it must have taken Dweezil to learn those solos was the greatest tribute he could have paid.

Which got the crowd pumped, of course. The crowd was a real trip. Age 45-55, male, and eternally young is how I would have described the typical member. And there were the requisite number of "rock ladies" of a similar age group, but carrying off their role in style nonetheless. For these fans, this was their night. Even though the majority of them probably came from the burbs via the Ogilvy train station, that didn't stop them from standing, playing air guitar, shouting "Chicago-ooooo", and pumping their fists whenever Dweezil's solos got loud and fast. And there was the familiar fragrance in the air that was a pleasant reminder of the rock concerts I haven't been going to for many a year. I can't wait until I'm at the Lyric later this year for Strauss' Die Frau ohne Schatten and see if some of the fragrance is still in the air.

I was the most impressed with the medley of songs from "Absolutely Free", which Dweezil announced was new for this show, and "for those of you who go WAY back". 'Suzy Creamcheese' was fun, and 'America Drinks and Goes Home' was played with the appropriate piano playing and lounge sleeziness (with a word-for-word replication of the lounge singer's patter...including the beloved 'Caravan with a drum sola?'), but who dares take on the mini-opera "Brown Shoes Don't Make It" without risking utter failure? At the end of "Little House I Used to Live In" on "Burnt Weeney Sandwich", Frank acknowledges how hard it is to play. But play it they did, with nothing left out and as note perfect as you could expect that ensemble could do, in that performance space. Wow. Wow not just for the stellar performance, but for the guts to take on an item in the catalog that is a pretty distant memory in even the staunchest of fans.

The only period of Frank's output that I thought lacking in the performance was from the "Flo and Eddie" period. Like Frank, noone can be Mark Volman and Howard Kaylan, but they certainly had capable singers to handle the high falsettos and the gritty rock singing. I wonder who else finds this an obvious omission, because few among Zappa fandom place their era among the top three greatest Zappa bands ever, as I do. In fact, to my amazement, many are willing to put them in the bottom three. But besides loving the music and humor of that period, I will never forget watching Frank at Bridges Auditorium (Pomona, CA) while they performed the premeire of 'Billy the Mountain', lounging against the procenium arch with a cigarette in hand and Gibson SG around his neck, unguardedly laughing and being tickled pink by Flo & Eddie's carryings-on.

Ray White was the only guest from the actual Zappa past that appeared for this show, and he performed songs typical of his era. This is where I got schooled by Dweezil on some music I should really get to know. Like most Zappa fans, I've got my preferences and I'm far from an expert on the entire corpus of Frank's works. But I realize now that I've really got to get to know "Carolina Hard Core Ecstacy," "What's New in Baltimore?" and "Dupree's Paradise" a little better.

A performer who was a real standout is the multi-instrumentalist Scheila Gonzalez, who amazingly handled several woodwinds, including the important Napoleon Murphy Brock sax parts, keyboard and lead vocals. She also dressed up like a waitress to "serve drinks" to the band during the playing of "America Drinks and Goes Home."

My wife Carol Ann, who came with me, played her role of a typical male Zappa fan's 'old lady' quite well, asking me playfully every few minutes if I was "getting goosebumps". I'll admit to that happening twice: once when the first Zappa videos came on the screen, and again after the concert, when I found a picture of Dweezil playing what is probably one of his Dad's old Gibson SG's, its vintage easily recognizable from the beat-up humbuckers and ancient-looking tremelo-bar hardware, and very possibly the very instrument I saw back at Bridges Auditorium.

Bottom line: did I enjoy it? I'd give it a 3 out of 5. Why such an average score? Playing note-perfect transcriptions has its down side...it's one thing when a group blows your mind in ten other ways, and for one of their songs, blows you away with their accuracy on imitating one song...but a whole evening? You get the picture. I think maybe also the feeling was in the air that we were all wanting to feel like we were back in the day, listening to Frank live...but for me at least, the intenseness of those concerts and albums are best as a memory and revived by the original recordings.

On a personal note, the tickets I got were a present for my recent birthday, and we closed off the evening in style by eating at Rosal's on Taylor.

Friday, July 13, 2007

Maven2 Introduction part 1: the Coordinate System

Maven is gaining traction as the premiere form of Java code organization and managing builds. The entire world won't convert overnight, but adoption is likely to steadily increase once more people get over the learning curve and conceptual difference with ant scripts, the previous prevailing model of build management. In this article I'm going to try to take a bit of the steepness off of the learning curve for you.

The big sell for Maven is the dependency management and the coherence it brings to both your individual projects, and your code development overall. And by dependency management, I mostly mean where and which jar files you use. For ant users reading this, this is a way more than what the "depends" attribute of an ant target gets you. It's a way of:


  • Avoiding confusion between different versions of the same jars

  • Maintaining only one copy of the same jar on your computer (instead of having one copy for each of your projects that use it)

  • Having a mechanism that retrieves jars (and making sure it is the right version as well) from the internet for you without you having to think about where it should be stored



Maven does this my having a highly structured approach to dependencies, and importantly, the adherence to this framework by the community who uses Maven. In this part of the article I'll start by covering the cornerstone of the Maven approach, the "Coordinate System," then we'll move on to Maven repositories.

The Coordinate System: groupId, artifactId and version


At the core of Maven 2 is its method of identifying resources (mostly jar files) by a strictly followed practice of file and directory naming. The goal is similar to that of XML namespaces and the java packaging conventions: to define items as distinct points in space according to a unversally followed set of conventions. It's simply these four identifiers:


  • groupId: usually a reversed domain name such as com.lowagie.

  • artifactId: a common name for the resource, such as itext.

  • version: a version indicator such as 1.4. Numbers and decimals are typical, but not required, values for the version.

  • packaging: the type of end product which could be ear or war, but is most often jar (and therefore the default, so packaging need not be specified)



(A side note about the groupId: there are many jars out there that do not use their organization's reverse domain name. In fact, they comprise some of the most widely used jars out there: log4j, jdom, ant, and xalan to name a few. All they use for their groupId is their simple well-known name (log4j, jdom, ant, and xalan for the examples just mentioned), and their artifactId is the same. These famous jars just happen to have been on the scene during an earlier version of Maven before the convention of using reversed domain names took hold; they held on to their old coordinate locations instead of updating.)


  1. Here is the location of a jar file named itest-1.4.jar in a proper Maven repository. The initial part is chosen by the individual user (c:/.m2/repository) but everything following that is dictated by the coordinate system:

    c:/.m2/repository/com/lowagie/itext/1.4/itext-1.4.jar

  2. In the same directory as itest-1.4.jar, you will find the file itest-1.4.pom. This is an XML file containing the following:


    <project >

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lowagie</groupId>

    <artifactId>itext</artifactId>

    <packaging>jar</packaging>

    <version>1.4</version>

    </project>




  3. In the project's root directory, you will find a file called pom.xml, and that file will contain the same lines as above, but wrapped inside a <dependency> element:


    <dependency >

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lowagie</groupId>

    <artifactId>itext</artifactId>

    <packaging>jar</packaging>

    <version>1.4</version>

    </dependency>




  4. Retrieval of resources over the internet is integral to maven. A jar can be referred to by its URL on a known repository. The first part of the URL is specific to the repository, whereas the rest follows the file structure of the coordinate system. Here is a URL for the location of a jar at the well-known repository ibiblio:
    http://mirrors.ibiblio.org/pub/mirrors/maven2/com/lowagie/itext/1.4/itext-1.4.jar

  5. Now here is a Maven command line statement. It's purpose is to install a jar in a repository, but don't worry about that right now; just notice how the coordinate system manifests itself on a typical command line statement.


    mvn install:install-file -DgroupId=com.lowagie \

    -DartifactId=itext \

    -Dversion=1.4 \

    -Dpackaging=jar \

    -Dfile=itext-1.4.jar


  6. Occasionally a point in space is referenced with a single line of text, using the format

    groupId:artifactId:packaging:version, as in:

    com.lowagie:itext:jar:1.4


These 5 situations show you most of the ways in which jars are referenced in the Maven world. There is a maddening consistency and pervasiveness to the Coordinate System throughout Maven. The more you learn about Maven, the more you discover you've already learned it.