Rather than try to put out an end-of-day recap post after each day of CFUnited, I decided to go drinking and smoking stogies instead. In retrospect, this was the correct decision. Now, however, it’s time to pay the piper. Fortunately, I took copious notes during all the sessions I attended (at least, the ones worth taking notes on) and so I’d like to give the highlights of some of the sessions. I will not attempt to cover them all nor will I attempt to provide a post that lets someone live vicariously. Consider this the day 1 highlight reel.
Session 1: CSI: Who killed ColdFusion?
This was an hour-long advertisement for FusionAnalytics, a now-in-beta product from Intergral, the same fine folk who bring you FusionReactor and FusionDebug. My one word reaction: Sold.
OK, calling it an hour-long ad is a bit cynical, I admit. Along the way, they did show a bunch of information that you could get if you diligently pored over logs, monitored the app closely, and were otherwise more anal about performance monitoring than anyone has time to be. Essentially, for me, FusionAnalytics does this work for you. It automates the monkey work… and I love things that automate monkey work. The Intergral guys did a great job of weaving good application-building advice in with a session on how their tool can help.
A few of the things I’m looking forward to playing with when this thing goes public enough that I can get my hands on it:
- “Suspect code” graph: drilldown into chart shwoing what requests were running and how they affected resources (cpu, memory)
- Long running requests: drill into the page, shows sql if there was any. shows attributes passed. shows the processor being sucked up by this request
- graph for showing patterns you might not have expected: bots, spiders, etc
- jdbc graphs: most apps should have a nice wave form where queries are concerned; this graph will help you see spikes in query usage, which can show where queries are tying up requests or even the entire application
- graphs to help you solve the “why does this app always go down at 9:00 AM?” problem
And tons more. If you can get your hands on a beta, do so. It’s impressive. Hey, Intergral, I gave you my card (it’s the one with the babyshit brown and puke green colors)…why haven’t you called? I gotta get me some of this stuff!
Session 2: Design for Developers – Dave Powell
Description and Materials are here
I attended this session on a whim. In fact, that’s how this year’s CFUnited kind of went for me… I just picked stuff in between sessions rather than following the plan I made for myself. I don’t know why that was. I guess I was feeling all zen or something. I was like a birch branch in a water-witch’s hands.
I liked Dave’s approach. He showed a lot of examples, and he showed a lot of before-and-after-redesign sites. I think for even the design-hatin-est of developers, a lot of this is probably common sense. That doesn’t mean this session wasn’t valuable. Not by a long shot. It means that even if it’s common sense, why do we find it so hard to get right? I don’t know the answer to that question, but I can say that Dave’s session is one that even a few weeks out is still sticking with me.
The things I really got out of it: whitespace is critical. “Weight” is critical. Being thematically consistent is critical.
Duh, right? Yeah. Go try it on your own. Seriously. Go ahead. Uh huh. That’s what I thought. It’s f’n hard.
However, most of what Dave showed was for “new media” and other media type sites. Sites that are either advertising-based or information delivery. I wish there were a few more “boring old business app” sites and how these same lessons apply. For example, I’d like to see a session where someone says “OK, here’s this app called ‘QuickBase’, and some of you may be stuck using it b/c some douchebag executive knows a cousin of a brother who knows a guy at Intuit, and so your company spent a gazillion dollars on QB, and now you loser peons are stuck filling out timesheets every day in an app that is less usable than if you were to carve your own skin every day and write your timecards in blood. And now I’m going to show you how you might make this abomination – nay, this pox upon the state of man – not so suicide-inducing”. That’d be kind of helpful for me: take a shitty business app that us poor serverside schmucks are stuck building day in, day out, and help us make it look better. And then please, sell it to the QuickBase. (this is an app where I WISH that old dancing monkey would pop up, just so I’d have something to punch).
How’s that for a digression? Bottom line: great session, but I wish he’d have held my hand a teensy bit more on applying these things to the kind of ugly ass apps I have to look at every day. I am, after all, a design idiot.
Session 3: Subversion for Smarties -- Cameron Childress
Description and Materials are here
Cameron’s session was chockfull of info, from SVN 1.5 changelists to SVN Properties and how you can use them in your source code files (keyword substitution). He covered some open source projects for interacting with subversion, including the svnservice.riaforge.org abstraction layer, svnsync.riaforge.org, and deploymentbuilder.riaforge.org which is a full-on, badass system for deployment building (duh). Plus a bunch of other stuff.
My only complaint: too much time comparing SVN to Git. That information is important, to be sure. I just wish a bit less time were spent on it. I’d have rather had 10 minutes on SVN externals or some “OK, here’s where I wow you n00bs” info rather than this comparison. Just sayin.
Session 4: How not to code a Flex app – Jeff Tapper
Description and Materials are here
Easily one of my top 2 or 3 favorite sessions. I loved Jeff’s approach: for each chunk of code, ask the audience to figure out why the code is bad. I think sessions like this just speak to how I like to learn things. I love presentations that are at least as much Sherlock Holmes as they are School Marm. I am very glad I took notes on this session, and I really like that Jeff’s approach gave me the time to take notes. As people were trying to figure out what was wrong with the code, I was jamming out thoughts and such.
One point that stuck with me was how he showed a ridiculously convoluted event dispatch that was dizzying in its attempt at loose coupling but which in the end resulted in even tighter coupling, less maintainability, and otherwise nice rise in the “whoever coded this is an asshole” factor. Jeff demonstrated a lot of pragmatism during his presentation, which I appreciated. Going into it, I didn’t know if it was going to be a “if you’re not using Cairngorm, you’re doing it wrong” kind of thing. It most certainly was not.
Kick. Ass. Presentation. I wish it were a day long.
My only criticism is that Jeff isn’t bald, like me. You can’t have everything, I guess.
Session 5: Living in the Cloud – Sean Corfield
Description and Materials are here
I do not have a single line of notes for Sean’s presentation. I’m not sure how to analyze that, but I will say that I feel like I probably felt as engaged in this presentation as any other. I think I was just listening really hard or something.
Sean’s hour was not spent on “how do you deploy your app to Amazon” but instead on the challenges that he faced and the questions that you must answer during your investigation of choosing cloud services. So for a code monkey or day-to-day implementer type dude, this presentation might have been kind of “eh”. But for the people responsible for making decisions like this, I believe this presentation was outstanding.
If you are in a decision-making position and you’re investigating cloud solutions, do yourself a favor: contact Sean. He’s a teddy bear, and he’s smart as hell, and he loves to talk.
One thing I definitely took away from this, and I’m not sure it was intentional but I got it all the same, was that this stuff isn’t easy, and it’s not without consequence. For those of us who deal with typical managed corporate hosting environments – lots of IT staff, lots of control over servers, etc – this is a very different world. Just seemingly simple things like “Where do I store my data?” become very different kinds of decisions from the ones many of us are used to making. Is it scary? Possibly. Is it a “run away and hide”? Hell no. Not when you have people like Sean out there talking about their experiences.
Whew.
Man, by the end of day 1, I was tuckered. I wish I had another “me” to go around to all the sessions I didn’t get to see. Alas, that is not to be. Why is that? Why is the worst part about a conference that you don’t get to see all the things you want to see?
I hope some day, every session at a conference is recorded and available, ideally for all the public to see.