Goldberg Variations

I had the wonderful experience of watching Yukiko Takagi perform the Goldberg Variations this afternoon, before going to work. Yukiko and her husband Stephen Drury are absolutely amazing, and I am honored to know both of them.

I wouldn’t be able to write a very studied review of her performances, since I’m really not a live classical music critic (or Baroque music critic, though I may soon be a simple broke musician). All I can say is that I was mesmerized, transported someplace else, as Bach’s spiralling canonic lines snakes their way through my brain in to the deeper recesses. It was very much what my spirit needed to feel renewed in the face of the adversity I am confronted with at work.

Liferay and Tomcat – part 3

But wait – there’s more!

So, I crank up my newly-running Liferay – running in its happy little webapp world, not as the root context, and some funny things are going on.

First: The root context that should be there isn’t there. Instead of the warm, fuzzy Tomcat page with the geeky kittycat graphic, I get a blank page. Hmm.

Second: When I load the Liferay portal, I only get two portlets: “Sign In” and “Hello, World”.

So, I do some poking around as a user. My Tomcat manager webapp comes up OK, so that tells me that other webapps that I choose to install will probably work OK. (Note to self: something to consider trying.)

Next, I log in as test:test on the portal. Well, now, this is cool. I get more portlets. I decide to add an Admin page. I add adminny portlets to it. I decide to add a user. I find a way to add somebody, fill out their info, hit submit….

… and boom. Stack trace.

Here’s a little snippet of it:

Root cause:

java.lang.NoClassDefFoundError: javax/mail/internet/InternetAddress

I go home and sleep on this information. I also download a passel of Powerpoint presentations about installing and configuring Liferay. After reading a few of these, I decide to install the standalone version of Liferay, and play a little shell game of switching CATALINA_HOME environment variables.


I download and unpack liferay-portal-tomcat-jdk5-4.2.2, futz with my environment variables, and as is my usual habit, use Cygwin to run CATALINA_HOME/bin/ And ummm….

….boom. She no go. I got a honking database error, having to do with the hsql database.

So I try something unexpected for me, and follow the actual instructions and – in Windows – double-click on the “startup.bat” icon, and let a command shell bat file do the work. (This goes against my nature for a number of reasons I won’t get into here. Yet.) And ummmm…..

Yay, she works! Which just gets me more curious. And look – I see all the marketing stuff I expected to see on my little installation as a standalone webapp. Hmmmm…..

… I don’t see any portlets along the lines of “Hello, World”, but I do see a link where I can sign in. Who am I to argue? test:test, and life is good.

Now, for some mystical reason, I try rejiggering the variables around (in order to write this post), and now the Cygwin works. It didn’t when I tried it at home – I swear!

Let’s add a user…. no problemo!

Well, maybe I should leave well enough alone for now. I’ve got two instances running (although not simultaneously), both behaving differently, and the one I really torqued with is not behaving correctly.

I’ll post again on this topic once I’ve actually written a portlet.

Liferay and Tomcat – part 2

Here are some more detailed steps I took to get Liferay and Tomcat to work together. Then, I’ll share some more interesting data and observations.

For those hardware/OS minded folks, these experiments are being conducted on a Dell Latitude 620 2.33 GHZ Intel Centrino Duo running Windows XP SP 2, 2 GB of RAM.

So to recap, I settled on the technique of replacing Liferay’s suggested ROOT.xml file in conf/Catalina/localhost with an XML file named liferay.xml. I decided not to go with the technique of creating a context.xml file in webapps/liferay/META-INF. Note to reader: these path fragments are relative to what I’ve defined as CATALINA_HOME for this instance of Tomcat.

Well, the next thing that Liferay required that I didn’t have configured was the jaas.config file – it needed to live in the plain old conf directory.

Next step: JAVA_OPTS. It’s important to make sure that you crank the memory settings for Tomcat, and that you give Tomcat a clue as to the location of the jaas.config file.

Next, I followed an instruction I found in the Liferay forums that advised creating the file webapps/liferay/WEB-INF/classes/ with the following content:


I’m not certain if this indeed has the effect it’s supposed to, but it sounded like a reasonable thing to attempt.

Well, I was hopeful and tried cranking up Tomcat – but it died again. Basically, I did not have this line in conf/ configured correctly:


But once I fixed that, the portal tried to load – and the connection to the database blew up.

The reason was simple: I had installed MySQL Community Server 5.0.41, and the default security for MySQL is much stricter that it has been in the past. So, I simply had to create a user and a password, and issue a GRANT ALL on the ‘lportal’ database – then update my Context settings in liferay.xml to include the username and passwords in the JDBC connector data.

Life is good. The portal runs.

Liferay and Tomcat

The road less traveled…

Well, of course, I am attempting to go my own way on this one. I want to install Liferay 4.2.2 on Tomcat 5.5.23 without having Liferay become the root context. In other words, I want my Liferay and I want my other webapps, too.

Why am I being fussy about this? Well, I don’t know. I’m not particularly attached to the default Tomcat homepage, straight out of the box. But I guess I just want finer-grained control over my Tomcat webapps. That way, if I wanted to install another rev or Liferay, or another CMS someplace else, I can just configure such as I please and assign a new URL for it – rather than getting confused about which Liferay is currently at the root context.

So, here I am following the directions and installing Liferay. “Connect the dots… La la la la…” Well, I’ve gotten to the part where I’ve renamed the file ROOT.xml to liferay.xml…

Well, things didn’t work right off the bat because I didn’t have log4j installed. So, I downloaded it and tried to compile it, but this being a fresh computer, I didn’t have ant, so I went and got that.

I tried to compile log4j and got an “invalid target: 1.1” error, which upon further research, I found a post which suggested I downgrade my Java JDK – which I did, since I’m not doing anything that takes advantage of the new JDK.

To get log4j working in Tomcat, I added the log4j-1.2.14.jar to $CATALINA_HOME/common/lib/ , then I grabbed a basic configuration example from the web and put the log4j config file at $CATALINA_HOME/common/classes/ I cranked Tomcat, and life was good, as far as fixing the “Set up logging properly” error goes.

Now it’s just plain old blowing up – Liferay won’t start properly. But at least now I have logging, so I know where the stack trace goes now….

Guess it’s a big deal

The afore-mentioned recording session took place at Studio G in Brooklyn, with Tony Maimone at the console. The music guys at work are all walking around in awe. Me, I just wanted to get in there and do my best behind the B3 for my buddy Tom.

Day one I laid down B3 tracks on everything. I think Tom was a little overwhelmed. My philospohy was, “you don’t need to use all of it – but it’s there if you want it.” Tony bought that idea, and Rotary Club was soon swimming in a swirling, psychedelic Leslie-induced wash of rose incense and LSD.

Day two, synth and mandolin overdubs, but I hung out while Jonah Sacks laid in some awesomely sweet cello parts. Left Brooklyn at 8:15 pm, made it home before midnight.

Tony was awesome to work for. He’s the man. This CD is going to be a thing of beauty.

The case for and against prog rock – part 1

I had the great fortune to spend last weekend in the recording studio with Tom Devaney laying down mostly keyboard overdubs for his new CD, “Vis-a-vis”.

Whenever I get together with Tom for longer than a few minutes, we always talk music, music history, pop music history, rock history, and funny lines from Spinal Tap. Tom came of age spinning punk records at WZBC in Newton, and has an entirely different ear than I do. I came of age ten years earlier spinning freeform (prog rock, jazz fusion, funk and musique concrete, etc) at WSRN in Swarthmore.

So Tom IMs me a link the other day, which I dutifully follow. (Hopefully, it’ll stay up on YouTube for all eternity…) This, as a result of a discussion where we were comparing and complaining about Yes and their discography. I maintained that I lost it for Yes when they issued “Tales From Topographic Oceans” – and I was at first disgusted with “Relayer”, because I had been a Rick Wakeman fan in high school. (That was before I discovered Herbie Hancock. Joe Zawinul. Chick Corea. And so on.)

But then, I ended up listening to (and actually buying second hand) a copy of Relayer, and it became a favorite late afternoon buzz listen. I actually enjoyed the sonic departure from what Yes had been.

OK, so now, after not having even heard that album since, say, 1979, Tom sends me this link and I get to see shrimpy little Jon Anderson chew his way through “The Gates of Delirium” – live no less. Boy, have I come a long way.

OK – disclaimer time, and I have a few:

  • I was a prog rocker in high school and early college.
  • Of all prog bands, my favorite was Gentle Giant.
  • I still think Todd Rundgren is OK, though I am no longer an avid fan. (Haven’t been since around 1978)
  • I never thought Todd was Godd.
  • I never saw Yes in concert.
  • I did see Todd Rundgren in concert, like, 3 or 4 times. Saw Pink Floyd too.
  • I was later in a punk/nu muzik band in the 80s

My musical taste runs from the gutteral to the over-intellectual, I guess. Gentle Giant for example: you could characterize their music as Palestrina meets Schoenberg, played on electric guitar, clavinet, fiddle, recorder and electric bass. The counterpoint they wrote still blows me away, and they did it very naturally. Seemingly effortless.

On the other hand, Yes didn’t stand the test of time with me. I just recently bought (secondhand) “Fragile” and “The Yes Album” and gave them a listen. I think I’m prepared to say that I don’t need to listen to them again for another 25 years, despite the fact that I used to listen to those records (when they were records) every day.