JavaOne is an amazing conference. About 15,000 of us get together to exchange ideas, hear about new things, meet internet friends face-to-face, and explore the boundaries of Geekdom. I typically loose about five pounds and only get about six hours of sleep each night. Consider that carefully before taking my advice.
JavaOne  is an amazing conference. About 15,000 of us get together to exchange ideas, hear about new things, meet internet friends face-to-face, and explore the boundaries of Geekdom. I use the conference to learn about things far afield from my work, things I can't just read about, and tips for handling the crises I'll wade back into after being gone for a week. Midway through Tuesday, the ideas start mixing in my head. By Wednesday morning, new project ideas and solutions to old problems start percolating in my head. JavaOne is also a test of endurance. I typically loose five pounds and only get about five hours of sleep each night. Consider that carefully before taking my advice.
If you're flying in, Oakland is as good as SFO. It's easy to get to the downtown hotels from the other side of San Francisco Bay via BART. Phone the hotel clerk to ask which stop is closest to them. Jet Blue had the best flights for me this year, possibly due to an embarrassing episode this winter. Travel light enough to skip the car. There's no room for cars in San Francisco and it's a great city for walking.
All I really do at the hotel is sleep, shower and monitor what the crew is up to back at work, so I pick an inexpensive hotel close to the convention center. Hotel service in San Francisco has always been pretty good. The people who work the desk tend to live somewhere in town, and know the place. I found hotel prices via the conference to be a little better, but hotel prices are pretty variable. Every year someone seems to have revamped an older hotel with funky art and all new furniture. For the first year after the revival these hotels have the best price, too. That's why I've never stayed in the same place two years in a row.
Pick a hotel that's a good walk to Moscone. JavaOne has busses, but a walk feels good after days underground.
JavaOne is not a great time to sleep on a friend's couch for a week, unless your friend is also going to the conference. You won't be around enough to be a decent guest, and will be keeping some pretty intolerable hours. I usually fly out Friday or Saturday to visit with friends the weekend before the conference.
Things to Bring
The hotter the interior of California, the colder and soggier San Francisco gets. Two years ago, the conference sold out of sweat shirts. So did the Old Navy near Moscone, and every tourist vendor in town. Early afternoons in May tend to be deceptively perfect, evenings are cool and damp.
Moscone's floors are concrete or industrial carpet over concrete. I've got goat hoofs from a lifetime of hiking, but if your feet are tender you will want cushy shoes. My one caveat to traveling light: I take two pairs of shoes, and alternate days. I don't normally wear shoes for 18 hours straight.
JavaOne is guys to two sigmas, and coders to three sigmas, so you can pretty much come as you are. I shave most days out of habit, but I doubt anyone cares.
Every employer I've ever had has given me at least one box of 1000 business cards per job, promotion and move -- maybe 13000 cards so far. I have no idea why. The only place I've ever run out is JavaOne. Bring at least 50, maybe 200.
Gear for me: Notebook, 100 business cards, one lap top (my old power-savvy Mac G4, not the employer's twelve-pounder), two batteries for lap top, cell phone, charger, empty water bottle (filled after clearing airport security), book, shaving kit, swimsuit, towel, fleece jacket, two pairs shoes, umbrella, carry-on backpack, checked duffle bag, two pairs kakis, good shirt for my presentation, enough underwear, socks and T shirts.
Carried into the conference: Notebook, business cards, lap top, cell phone, backpack, umbrella, fleece jacket, water bottle, one set clothes.
Yes, I bring a cell phone. No, I don't own it. It belongs to work.
The Weekend and Monday
Things happen over the weekend and Monday. Aside from frantic conference preparation, various expert groups and community groups meet Saturday and Sunday. Monday afternoon and evening were especially good to meet internet friends face to face. Try not to be shocked when we don't look like our internet pictures, or are especially short or tall, or no longer have a two-foot pony tail.
JavaOne University  runs during this time. It sounds like a good way for beginners to come up to speed on some new technology. This year, on Monday JavaOne is sponsoring CommunityOne . The unconference  looks most interesting to me. I'm not sure what to expect from it, but I hope it brings back some of the spontaneity of earlier JavaOnes.
When you register, they send you into the basement to pick up conference swag. Expect a lap top case of some kind, so you don't need to bring extra luggage. Some of the things in the bag are useful for life on the road, like the miniature mouse on a spring cable. Typically there's a tee shirt or two, and a lot of developer CDs. There's more swag on the pavilion floor and the alumni room, some of it entertainingly weird. It's been a bit more practical in recent years -- no Pladough or dancing cows, but Google gave away good messenger bags two years ago if you solved their puzzles. I used to harvest swag in the pavilion, but now I only take stuff I plan to use.
I'll miss the tee shirt hurling contest this year. In past years, it was just luck -- good luck -- that they missed me. A shirt from some kind of home made air cannon nearly parted my hair.
JavaOne is a test of endurance for me. I typically loose five pounds during the week. At the conference I sleep about six hours a night and cover about four miles during the day. Your milage may vary.
I drink a lot of water during the conference. Staying hydrated lets me stay up longer and helps me hold my beer and salty hours devours. It won't save my voice; I'll be hoarse by Wednesday night.
Most of the alumni perks have to do with food. The fire side chat dinner is more of a tasty snack than a dinner (too many alumni). The alumni room gets its own supply of muffins, pastries, juice and coffee in the mornings. The pavilion dinner is good eating. Java community receptions are appetizers. This year it looks like we've got a longer lunch break. Lunch varies in quality day to day. More interesting things are happening, so I'll probably short lunch. It's fine to grab something and take it with you to a keynote or technical session, provided you can eat it quietly and neatly. Burritos , not tacos, for example
I try to use dinner to meet up with friends at the conference I don't see often enough. San Francisco has great restaurants. I'll typically let the friends pick out a place I've never been before. The dinner break is pretty short, so I try and stay within a few blocks of the conference.
Plan the Day
Start each day with a plan: Which sessions and BoFs will you attend? Go to a keynote or skip? What to do in the pavilion? Enter a contest? When will you touch base with work? When will you call your family?
Moscone is big. If its your first time there, take some time to study the map and know where things are. Don't waste time drifting about inside this combination conference hall and earthquake shelter.
First, the keynotes are about hype. They rev up the crowd for the day. Second, they're about information. You can learn a lot about what's coming in the next year just from the keynote. Last year Sun announced they were going to make Java open-source. The company has put tremendous work into that effort this year; surely they put off doing something else interesting (IMHO, probably more interesting). There's a lot of hype between the content. I enjoy the muffin, crank through work emails, and plan the day either before or at the keynote. If you need to skip something to catch up on work, skip the keynote and watch it later. Videos of the keynote are the first thing on line.
Technical Sessions and BoFs
There are ~400 talks at JavaOne. You only get to go to about 30 of them. You have to set priorities. I pick talks to ask questions for work or for my open source projects. I go to talks on topics about which I know very little. I go to talks on things I can't read about. Take the time to get some exposure to something you don't get to do at your current job.
Be aware that some talks have great abstracts, but will be weak. Other talks will be brilliant, but cover things you already know. Some sales pitch always sneaks through the selection process. Keep in mind that you are at JavaOne for your own benefit. You're at the talk to learn stuff. Have a backup plan of what to do if the talk is a bust. Slip quietly out the back, and head to another talk or to the pavilion.
I find Schedule Builder inadequate for planning my time at the conference. The one available a few years back let you pick out all the sessions you were interested in, then resolve all of the conflicts. The new version only lets you pick one session for each time slot and forces you to resolve conflicts immediately. (Circle with a red ! in it means you've got a conflict already.) The time-out on the application is far too short to read the descriptions of two talks and deciding between them. Schedule Builder tells you there are some repeated sessions (two arrows forming a circle), but doesn't tell you when the repeated session is. I resolve this problem by killing trees; I take notes on paper. My plan for the day, and the backup plan are on paper.
In the past, they'd used the food room and spare meeting halls as overflow rooms, piping in sound and video. It wasn't that good a fix -- you couldn't participate in the Q&A. Last year they started making conference attendees use Schedule Builder to sign up for sessions in advance, to guarantee seats to people who wanted to see specific talks. This year the conference planners are selling that as a feature  that's gotten the appropriate response in the commentary. The obvious new problem is that some things (especially labs) filled up within 24 hours of their turning on Schedule Builder because they didn't get a big enough room. The less obvious problem with schedule builder is that it takes away the spontaneity and some of the social aspects of the conference. There are few conversations while waiting in line to get into a room other than, "waiting in line is lame." In the past, I've had great conversations in the overflow room.
Last year there was talk of a contest to improve Schedule Builder for 2007, but it didn't pan out. I think it'd make a good lab. Let the JSF people square off vs. the rich client crowd and give us something that benefits the conference.
I'm not a great fan of labs at the conference. Other people love them. For me, two hours is enough time to learn a bit about something, but if I try to do something with it I spend too much time typing and not enough time learning. Some labs go more smoothly than others. I actually get a great deal out of sitting next to someone else and following along. The lab materials tend to be very high quality and are worth picking up to read on the flight home. I'll make two exceptions: Labs that let us play with specific hardware we don't always have access to are really worth it. And if I've got a specific question to ask about something, I'll duck into a lab session to ask it. The crews running the labs often have a different perspective and experience than the people who develop the technology.
I'm not sure what to make of JavaOne Camp  yet.
Getting what you want out of the Pavilion takes some skill and daring, but can really pay off.
First, the pavilion caters to those of you looking for swag. I may never need to buy another tee shirt in my life. (Booths tend to run out of huge shirts first, so plan accordingly if you're big. The smaller you are, the less rush.) I don't pick up anything I can't use, unless it's really odd -- a foam rubber dancing cow, for example. Bring a messenger bag or a backpack for the swag.
Second, the pavilion is the best place to meet experts and talk to them face-to-face. Come with specific questions in hand, or just listen in on the conversations if you want to learn something. Sun's booth farm tends to be packed, but packed with the right people. If you've got a question, or a list of questions, there's probably someone there who can answer it. They can suggest workarounds for bugs, and give advice on general approaches. You have to work to find the right person; the people who work the Sun booths are a sampling of Sun employees. They do tend to be just one or two hops from the right person. The vendor booths are a little less useful -- they are trying to sell you something. Vendors are much more likely to have a single layer of flappers to hand out swag. Serious technical questions cut right through to the technical people.
A famous JEE application server's flapper: "Did you name your company that [BAE Systems] so that people would confuse you with us?"
The java.net people run a miniconference  in the pavilion, where different people talk about their open source work. The speakers are enthusiastic. The topics are solid, and are sometimes more daring than the official JavaOne talks. They also have a great couch.
The pavilion floor runs at about 80 decibels; it's OK to lean toward someone and put your ear next to his mouth to hear. That's why I'm hoarse by Wednesday.
The contest topics tend to be very good, but take away from time for other things. I'd rather the contest coding happened before the conference. (I focus when I code; I hit a groove and drop out of the world for a while. I'd be missing something interesting at JavaOne.)
Teams of people win contests. Teams of people with good process and simple ideas win contests. For example, the crew who won last year's slot car challenge had a very simple program, and a process for waiting in line to get lots of track time.
Organize the Follow-up
I take notes. I collect contacts to follow up with. I capture new ideas during the conference. Afterwards, I have a few weeks' follow-up work. The important thing here is to keep enough of a record so that you know why you want to follow up with someone. I typically write a note on the back of people's business cards to remind myself why I have it.
I finish the conference with a mountain of ideas for new projects. One of the jobs on the plane ride home is to sort the projects by work/hobby, easy/hard, smart/crazy, then set priorities for what to do first. That feeds back into the follow-up and sets the focus for my next few months of hobby code.
I don't recover from red-eye flights well anymore, so I stay on an extra night and go home Saturday. I'll typically spend Friday evening not thinking too hard. I try to meet up with friends from the conference for dinner, maybe a movie, Friday night. Six hours' quiet coding on the plane, a two mile walk and I'm home.