Apple Campus Bash @ WWDC 2005

I just got back from the Apple Campus Bash. Wow. The band this year was The Wallflowers. The freaking WALLFLOWERS played the Apple Campus Bash! Awesome. They did a full set, too, not just a cheap 20-minute gig. A full hour-long set. And I think they were having fun, too… Questions thrown to the audience about how to get blackberries working… Heckling jugglers… Very cool.

WWDC2005 - 76

It was a great evening, hanging out with King and Josh (and Jason, and Scott). An amazing Campus bash. I’m surprised I was able to refrain from buying anything at the Company Store, though… Josh and King dropped big fat wads of cash. Josh drove us all down in the Jedimobile, so we beat the crowds.

Apple was giving out these cool iTMS gift certificate cards as we entered the bash, but they appear to be keyed to the US iTMS, so no joy. I can’t buy from there, and the cards aren’t accepted by iTMS Canada. Oh, well… I’ll probably go ahead and buy the full Wallflowers iTunes Originals album anyway…

More photos from WWDC2005 are on my Flickr account.

OK. Now I’ve really got to get to bed. 8am flight home in the morning…

I just got back from the Apple Campus Bash. Wow. The band this year was The Wallflowers. The freaking WALLFLOWERS played the Apple Campus Bash! Awesome. They did a full set, too, not just a cheap 20-minute gig. A full hour-long set. And I think they were having fun, too… Questions thrown to the audience about how to get blackberries working… Heckling jugglers… Very cool.

WWDC2005 - 76

It was a great evening, hanging out with King and Josh (and Jason, and Scott). An amazing Campus bash. I’m surprised I was able to refrain from buying anything at the Company Store, though… Josh and King dropped big fat wads of cash. Josh drove us all down in the Jedimobile, so we beat the crowds.

Apple was giving out these cool iTMS gift certificate cards as we entered the bash, but they appear to be keyed to the US iTMS, so no joy. I can’t buy from there, and the cards aren’t accepted by iTMS Canada. Oh, well… I’ll probably go ahead and buy the full Wallflowers iTunes Originals album anyway…

More photos from WWDC2005 are on my Flickr account.

OK. Now I’ve really got to get to bed. 8am flight home in the morning…

WebObjects Deployment and Servlet Single Directory

Update: Added some details of the build settings for converting an existing WebObjects Application project to a tidy servlet deployment package.

King, Josh and I spent the morning in the WebObjects lab trying to figure out a way to get Pachyderm deployed on non-MacOSX boxes under the new regime. We’ve now got a spanky new Tomcat-enabled build, that sucks in all of the supporting WebObjects, APOLLO, and Pachyderm jars into a single .war – topping 112MB of compiled goodness.

The good news is that it works, and seems to work well (once you have identified and addressed the mines laid in your path). The bad news is that form of deployment requires a valid WebObjects deployment license – which is no longer available separately from MacOSX Server 10.4 (for WO 5.3 at least – separate deployment licenses are still available for 5.2.4, but they are refused by apps compiled on 5.3)

A very helpful Apple engineer in the lab (who will remain nameless to protect him/her from any flak for going out on a limb to help us with this) was able to obtain a WO 5.3 deployment license string for us to test our Tomcat deployment. It looks like it worked perfectly. I had to delete the license so this engineer could keep their job, so I can’t test again, or on another platform at the moment.

One strategy we may have/get to adopt is to keep a WO 5.2.4 development system around, so that it can compile the .war SSD bundle with a 5.2.4 platform-agnostic deployment license – That’s plan B, though, since I’m really (futilely?) hoping that we can convince Apple to reconsider the MacOSX-only licensing. (I’m even 100% OK with non-MacOSX Server deployments being unsupported – just don’t make the app refuse to light up because of a license string!)

I’ll post a little write-up on the steps we had to take, and the build settings that need twiddling – and how they differ from the documented bits. That’s currently locked on my Powerbook, which is now a paperweight after sucking the life-sustaining juices from 2 separate batteries. I’ll plug it in when I get back to the hotel.

Oh, and to the person that IMed me to ask me about this – your timing was absolutely perfect! We were just getting to the solution when your IM came up. I’m very sorry that I was such a rude prick to you, but I didn’t want to be distracted right then, and we were using iChat to pass config files and data around.

Update: Here’s some info about the settings you need to tweak to have a project build as a nice tidy servlet doowackie.

First, you need to add JavaWOJSPServlet.framework to your project. That seems to automagically do some stuff to start building a .war file. Yay.

But, you also need to tell WebObjects more explicitly how you want your servlet compiled. These are the settings that worked for me. No warrantee, no guarantee, YMMV, IANAL, etc… If it borks something for you, well you probably should have backed up first…

WebObjects Servlet Build Settings

Replace the fuzzy part with your WebObjects deployment license (5.2.4 would be a good bet, if you’re still on it – otherwise, you may want to take a look in /System/Library/Frameworks/JavaWebObjects.framework/Resources/ for some random ASCII that might do the trick – just be sure to abide by the EULA, and don’t break your license agreement. I’m only mentioning this so you can test on your own machine, and replace the license with one you purchase for deployment), and replace the SERVLET_WEBAPPS_DIR with the path to the directory you want to build this sucker. I just built into a quick/fresh download of Tomcat 3.3.2, still living in my ~/Downloads directory. Not likely the final deployment directory, but you get the idea. Also, this could be any directory you like. It’s just the build location – it doesn’t talk to the Tomcat installation or anything.

In my case, this built a directory that contained 112MB of our code, as well as the Entire WebObjects System, and any other dependent .jars.

Update the second: On a lark, I thought I’d try deploying under Tomcat 5.5.9 – the latest build. Out of the .tar, it requires java 1.5, so until you install the 1.4 compatability stuff it’s no joy on MacOSX. But adding the compatability stuff is trivial. But, it still doesn’t get my app deployed – as expected, Tomcat 5.x appears to have difficulty hosting a WebObjects application servlet, since it’s supporing a newer rev. of the servlet spec (2.4, IIRC), when WO spits out servlets matching version 2.2 of the servlet spec. Not a critical thing at this point. Just gathering data points for discussions with the PHBs.

Update: Added some details of the build settings for converting an existing WebObjects Application project to a tidy servlet deployment package.

King, Josh and I spent the morning in the WebObjects lab trying to figure out a way to get Pachyderm deployed on non-MacOSX boxes under the new regime. We’ve now got a spanky new Tomcat-enabled build, that sucks in all of the supporting WebObjects, APOLLO, and Pachyderm jars into a single .war – topping 112MB of compiled goodness.

The good news is that it works, and seems to work well (once you have identified and addressed the mines laid in your path). The bad news is that form of deployment requires a valid WebObjects deployment license – which is no longer available separately from MacOSX Server 10.4 (for WO 5.3 at least – separate deployment licenses are still available for 5.2.4, but they are refused by apps compiled on 5.3)

A very helpful Apple engineer in the lab (who will remain nameless to protect him/her from any flak for going out on a limb to help us with this) was able to obtain a WO 5.3 deployment license string for us to test our Tomcat deployment. It looks like it worked perfectly. I had to delete the license so this engineer could keep their job, so I can’t test again, or on another platform at the moment.

One strategy we may have/get to adopt is to keep a WO 5.2.4 development system around, so that it can compile the .war SSD bundle with a 5.2.4 platform-agnostic deployment license – That’s plan B, though, since I’m really (futilely?) hoping that we can convince Apple to reconsider the MacOSX-only licensing. (I’m even 100% OK with non-MacOSX Server deployments being unsupported – just don’t make the app refuse to light up because of a license string!)

I’ll post a little write-up on the steps we had to take, and the build settings that need twiddling – and how they differ from the documented bits. That’s currently locked on my Powerbook, which is now a paperweight after sucking the life-sustaining juices from 2 separate batteries. I’ll plug it in when I get back to the hotel.

Oh, and to the person that IMed me to ask me about this – your timing was absolutely perfect! We were just getting to the solution when your IM came up. I’m very sorry that I was such a rude prick to you, but I didn’t want to be distracted right then, and we were using iChat to pass config files and data around.

Update: Here’s some info about the settings you need to tweak to have a project build as a nice tidy servlet doowackie.

First, you need to add JavaWOJSPServlet.framework to your project. That seems to automagically do some stuff to start building a .war file. Yay.

But, you also need to tell WebObjects more explicitly how you want your servlet compiled. These are the settings that worked for me. No warrantee, no guarantee, YMMV, IANAL, etc… If it borks something for you, well you probably should have backed up first…

WebObjects Servlet Build Settings

Replace the fuzzy part with your WebObjects deployment license (5.2.4 would be a good bet, if you’re still on it – otherwise, you may want to take a look in /System/Library/Frameworks/JavaWebObjects.framework/Resources/ for some random ASCII that might do the trick – just be sure to abide by the EULA, and don’t break your license agreement. I’m only mentioning this so you can test on your own machine, and replace the license with one you purchase for deployment), and replace the SERVLET_WEBAPPS_DIR with the path to the directory you want to build this sucker. I just built into a quick/fresh download of Tomcat 3.3.2, still living in my ~/Downloads directory. Not likely the final deployment directory, but you get the idea. Also, this could be any directory you like. It’s just the build location – it doesn’t talk to the Tomcat installation or anything.

In my case, this built a directory that contained 112MB of our code, as well as the Entire WebObjects System, and any other dependent .jars.

Update the second: On a lark, I thought I’d try deploying under Tomcat 5.5.9 – the latest build. Out of the .tar, it requires java 1.5, so until you install the 1.4 compatability stuff it’s no joy on MacOSX. But adding the compatability stuff is trivial. But, it still doesn’t get my app deployed – as expected, Tomcat 5.x appears to have difficulty hosting a WebObjects application servlet, since it’s supporing a newer rev. of the servlet spec (2.4, IIRC), when WO spits out servlets matching version 2.2 of the servlet spec. Not a critical thing at this point. Just gathering data points for discussions with the PHBs.

Deploying WebObjects under Tomcat

I’d never tried deploying a WebObjects app under Tomcat (or JBoss, or any other J2EE container) before. I’d always just stuck with the built-in WebObjects appserver, and did the config/management in JavaMonitor. Well, it’s now a Really Good Idea™ to make sure any app you want to deploy on non-MacOSX boxes will work in the servlet engines.

So, I did a quick RTFM. (twice, because it’s taking longer for it to soak in after midnight after a busy day of WWDC) Then I twiddled the appropriate bits in my XCode project build settings. Built the .war bundle. Downloaded Tomcat (for servlet spec 2.2), copied the .war into the webapps directory, and lit it up. It just worked. Mostly. Except for funky CSS stuff (because I don’t have any freaking idea how to deploy a Tomcat/WO app, and stuff that’s normally vended via Apache is now just firing 404s).

But, what I care about is that it works!!! We’ve now got (ok. it’s been in WO for a long time now, but I just took advantage of it – cut me some slack) what appears to be an easy way to deploy a WebObjects app on any platform that can run Tomcat. That’s pretty sweet. We’ll be hitting the WebObjects Lab this morning to get some more stuff figured out, but this is looking promising now!

The WWDC session on deploying WO apps on JBoss was pert’ near useless. I did manage to make a bee-line to the mike for Q&A to ask wtf the deal was with cross-platform deployment.

Just to document the event:

Pachyderm 2 on Tomcat

OK. Now to sleep.

I’d never tried deploying a WebObjects app under Tomcat (or JBoss, or any other J2EE container) before. I’d always just stuck with the built-in WebObjects appserver, and did the config/management in JavaMonitor. Well, it’s now a Really Good Idea™ to make sure any app you want to deploy on non-MacOSX boxes will work in the servlet engines.

So, I did a quick RTFM. (twice, because it’s taking longer for it to soak in after midnight after a busy day of WWDC) Then I twiddled the appropriate bits in my XCode project build settings. Built the .war bundle. Downloaded Tomcat (for servlet spec 2.2), copied the .war into the webapps directory, and lit it up. It just worked. Mostly. Except for funky CSS stuff (because I don’t have any freaking idea how to deploy a Tomcat/WO app, and stuff that’s normally vended via Apache is now just firing 404s).

But, what I care about is that it works!!! We’ve now got (ok. it’s been in WO for a long time now, but I just took advantage of it – cut me some slack) what appears to be an easy way to deploy a WebObjects app on any platform that can run Tomcat. That’s pretty sweet. We’ll be hitting the WebObjects Lab this morning to get some more stuff figured out, but this is looking promising now!

The WWDC session on deploying WO apps on JBoss was pert’ near useless. I did manage to make a bee-line to the mike for Q&A to ask wtf the deal was with cross-platform deployment.

Just to document the event:

Pachyderm 2 on Tomcat

OK. Now to sleep.

Podcast from WWDC

OK. A short podcast from WWDC, with very brief thoughts on the news from the conference. Not the news you are probably thinking about, but the stuff that will affect education more…

Tune in

OK. A short podcast from WWDC, with very brief thoughts on the news from the conference. Not the news you are probably thinking about, but the stuff that will affect education more…

Tune in

iTunes Podcasting

The demo of the iTunes implementation of podcasting was pretty sweet. Totally simple to find/subscribe to podcasts from a directory (like the Radio Stations section), and you can subscribe to any feed you want, outside of the directory.

Probably the coolest thing was the support for chapters within the podcasts – both for navigation, and for display of artwork. You can break a podcast into multiple chapters, each with their own image that changes the “cover art” when that part of the podcast is being played. Could make for quite powerful walking tours (*cough*SFMOMA*ahem*) or lecture recordings (slides of PPT/Keynote in sync with audio).

I’m curious what the authoring process is for these chapters. Assuming they’re using stock MP3 files, with ID4 tags marking chapters, how is this created?

REALLY looking forward to the new iTunes.

The demo of the iTunes implementation of podcasting was pretty sweet. Totally simple to find/subscribe to podcasts from a directory (like the Radio Stations section), and you can subscribe to any feed you want, outside of the directory.

Probably the coolest thing was the support for chapters within the podcasts – both for navigation, and for display of artwork. You can break a podcast into multiple chapters, each with their own image that changes the “cover art” when that part of the podcast is being played. Could make for quite powerful walking tours (*cough*SFMOMA*ahem*) or lecture recordings (slides of PPT/Keynote in sync with audio).

I’m curious what the authoring process is for these chapters. Assuming they’re using stock MP3 files, with ID4 tags marking chapters, how is this created?

REALLY looking forward to the new iTunes.

Holy. Shit.

OK. So, I was wrong… MacOSX 10.4.1 runs on Pentium 4 chips. The whole Stevenote was done on a Pentium 4, and nobody knew until he opened “About This Mac”.

Holy. Shit.

So Apple has a lot of work to do, undoing all the anti-Intel/Pentium marketing.

Questions:
What about Altivec code?
64-bit code?
Does this mean a Red Box windows compatibility layer is more feasible now?

OK. So, I was wrong… MacOSX 10.4.1 runs on Pentium 4 chips. The whole Stevenote was done on a Pentium 4, and nobody knew until he opened “About This Mac”.

Holy. Shit.

So Apple has a lot of work to do, undoing all the anti-Intel/Pentium marketing.

Questions:
What about Altivec code?
64-bit code?
Does this mean a Red Box windows compatibility layer is more feasible now?

WWDC Registration

Just registered. Nobody in line ahead of me (surprisingly). The bag is a cool backpack this year, which I think will get a lot of use… There’s a nice little nalgene water bottle in the bag, and a cool little caribiner pen – like the one from 2003, but black of course. I’ll be losing the ‘beener from the pen before I actually write with it, though… The conference schedule dealies are smart – at-a-glance overview booklet, and each day has it’s own separate booklet for marking up etc… No notebook this year, which is odd… Actually, now that I think about it, the conference bag is surprisingly devoid of goodies… no demo CDs, no packages from 3rd parties… makes you go ‘hmmmm…..’

The folks that registered last night are already lined up for the Stevenote, all uniformly wearing the black WWDC t-shirt. It’s a pretty funny sight – I’ll grab a photo when I get back there. I’m back a the hotel, rather than waiting in line a 7:30am. I’ll get there about 8:15, and I’m guessing the line will be wrapped 14 times around the foyer 🙂

I guess I’m not much less fanboy than the early liners, though, wearing my Apple windbreaker, with iPod strapped to my belt…

Just registered. Nobody in line ahead of me (surprisingly). The bag is a cool backpack this year, which I think will get a lot of use… There’s a nice little nalgene water bottle in the bag, and a cool little caribiner pen – like the one from 2003, but black of course. I’ll be losing the ‘beener from the pen before I actually write with it, though… The conference schedule dealies are smart – at-a-glance overview booklet, and each day has it’s own separate booklet for marking up etc… No notebook this year, which is odd… Actually, now that I think about it, the conference bag is surprisingly devoid of goodies… no demo CDs, no packages from 3rd parties… makes you go ‘hmmmm…..’

The folks that registered last night are already lined up for the Stevenote, all uniformly wearing the black WWDC t-shirt. It’s a pretty funny sight – I’ll grab a photo when I get back there. I’m back a the hotel, rather than waiting in line a 7:30am. I’ll get there about 8:15, and I’m guessing the line will be wrapped 14 times around the foyer 🙂

I guess I’m not much less fanboy than the early liners, though, wearing my Apple windbreaker, with iPod strapped to my belt…

Travel to WWDC

I’m sitting at Gate C25 at the Calgary Airport, waiting for the flight to San Francisco. Evan and Janice came to the airport as well, as a dry-run for our trip next week. Evan loved the airport. The hardest part will be reigning him in, since he wants to go exploring everything.

This was the fastest security checkin I’ve ever experienced. I planned on an hour to get through security, prior to boarding time. It took maybe 5 minutes, from customs declaration/eval to security clearance, to sitting at the gate typing this. The place was deserted. One other couple was passing through.

The conversation with the customs agent went something like:
Him: Why are you going to SF? Business or pleasure?
Me: Business. Conference.
Him: What kind of conference?
Me: Apple WWDC.
Him: Apple? So, you don’t like VB, then?
Me: Um, no. I avoid Windows whenever I can. I only use it if forced, and then never for anything critical. Does that put me on a watch list?
Him: No (chuckles). I’ll be getting rid of my PC as soon as I can. I want to get one of those mini macs, or those G5 flat ones with DVD-burners built in. Those are sweet.
Me: Yeah. Get a mac. 🙂
Him: OK. You can go.

This was decidedly different from previous queries about macness, etc… Trends? Sure.

Oh, and King made it to the gate just as boarding was getting up to speed (I was starting to get seriously worried that he wasn’t going to make it). I’m guessing his experience with customs wasn’t so speedy 🙂

Update: Just checked into the Marriott. Here’s the view from my room:

Moscone West

I’m sitting at Gate C25 at the Calgary Airport, waiting for the flight to San Francisco. Evan and Janice came to the airport as well, as a dry-run for our trip next week. Evan loved the airport. The hardest part will be reigning him in, since he wants to go exploring everything.

This was the fastest security checkin I’ve ever experienced. I planned on an hour to get through security, prior to boarding time. It took maybe 5 minutes, from customs declaration/eval to security clearance, to sitting at the gate typing this. The place was deserted. One other couple was passing through.

The conversation with the customs agent went something like:
Him: Why are you going to SF? Business or pleasure?
Me: Business. Conference.
Him: What kind of conference?
Me: Apple WWDC.
Him: Apple? So, you don’t like VB, then?
Me: Um, no. I avoid Windows whenever I can. I only use it if forced, and then never for anything critical. Does that put me on a watch list?
Him: No (chuckles). I’ll be getting rid of my PC as soon as I can. I want to get one of those mini macs, or those G5 flat ones with DVD-burners built in. Those are sweet.
Me: Yeah. Get a mac. 🙂
Him: OK. You can go.

This was decidedly different from previous queries about macness, etc… Trends? Sure.

Oh, and King made it to the gate just as boarding was getting up to speed (I was starting to get seriously worried that he wasn’t going to make it). I’m guessing his experience with customs wasn’t so speedy 🙂

Update: Just checked into the Marriott. Here’s the view from my room:

Moscone West

bbum’s blog-o-mat: WebObjects Pub Night @ WWDC 2005

Perfect! The WWDC Blogger’s gathering and WebObjects Pub Night overlap, at the same place! Yay, synergy!

bbum’s blog-o-mat: WebObjects Pub Night @ WWDC 2005

I guess that means I’ll be able to hit both events!

Update: – well, the registration for the blogger’s gathering is closed (it’s a catered event, and they needed payment etc…), and the WO gathering has moved to the Chieftain Irish Pub. Looks like I may wind up at the Chieftain, or take the evening to stroll SoMA (or head to the waterfront?).

Perfect! The WWDC Blogger’s gathering and WebObjects Pub Night overlap, at the same place! Yay, synergy!

bbum’s blog-o-mat: WebObjects Pub Night @ WWDC 2005

I guess that means I’ll be able to hit both events!

Update: – well, the registration for the blogger’s gathering is closed (it’s a catered event, and they needed payment etc…), and the WO gathering has moved to the Chieftain Irish Pub. Looks like I may wind up at the Chieftain, or take the evening to stroll SoMA (or head to the waterfront?).