Monday, November 12, 2007

Slides from my talk

Talking at BarCamp San Diego

So I wasn't really sure what I wanted to talk about at BarCamp, and I've been way too busy to prepare anything. Since this was my first BarCamp, I didn't really know what to expect. I assumed my audience would mostly be Mac-toting, TextMate-using Rails developers, with a healthy dose of open source enthusiasts (and probably not too many free software zealots).

So with that in mind, I thought I'd talk about .NET, and whether or not geeks in general should use it, weighing its technical strengths against its source. My approach was to show that .NET was a compelling platform in a few minutes, and then set up the grounds for a discussion about whether or not it is in our best interests to consume a Microsoft product like that. I did *not* want to talk about whether or not free software zealots should be interested in Mono, because that's just exhausting. I threw the slides together Saturday morning, tweaked them a bit while at BarCamp, and presented on Sunday.

What I learned
  • People came to my talk who really just wanted to hear more about .NET or Mono. This slowed things down a bit, but I'm glad I was able to help.
  • 30 minutes goes by much faster than you think.
  • Telling people they can interrupt and ask questions at any point is counter-productive to trying to power through slides and then have time for a discussion. We didn't really have time.
  • BarCamp folks are awesome and forgiving even if you're not the best presenter.
  • Most people want to be presented to during these 30 minute sessions, so it's important to have a strong focus and a clear message. I didn't really have those, but it still went well I think.
  • Scheduling your talk against one entitled "How To Make Money Online" is not a great idea after half the people you meet have identified themselves as "entrepreneurs". At least I didn't have to watch it!
  • Turns out I'm not that bad of a presenter when I know what I'm talking about.

Sandy, Presentator

Friday night I came home from work, somewhat exhausted, with the goal of starting my slides. I thought I'd try Google Presentations and see what all the fuss was about. Bad idea. I spent almost half an hour preparing five shitty slides, without having time to think about where I really wanted my presentation to go. And I found myself making bullets, just because, the same way I've always felt compelled to make stupid bullets when using PowerPoint/OO.o/etc. I went to bed frustrated.

The next morning I realized it just wasn't going to happen. I had only a couple of hours to clean up and head to BarCamp. Then I remembered somebody at work using a cute little XUL app to prepare Takashi-style presentations. It was perfect! Please load up my slides and press ctrl+e to see how easy it is to write slides in that style. I had a blast, and it was really fast and easy to tweak them on the fly when I had an idea. Plus, I had no problems hacking the CSS and XUL/JavaScript to handle little things I wanted to work differently (EM=>Red in EVA mode, ability to use images without specifying height/width, etc). I managed to do a pretty good job presenting without rehearsing, though if I had a more difficult/subtle topic/message or a longer presentation, I think practicing would be really important.

The downside: my slides only work in XUL-based browsers. I've only tested them in Firefox.
I'm sure there's a way (or easily could be) to do the same sort of thing using S5. I'll look into that for next time.

BarCamp San Diego 2

I have more thoughts about BarCamp, but I think I'll just write about them later. I will say I was a little sad that there were no hackfests, but it's not like I tried to organize one, so I can't really complain. Unconferences are both awesome and weird, and this was my first. Looking forward to the next one!

1 comment:

Anonymous said...

Interesting read. It made me think about where I stand on this whole .NET/Mono/Java thing.

After all these years, I still don't know.

I like all the aforementioned features of those platforms in theory: managed code, statically typed, reasonably clean language, useful libraries...

... but somehow, in practice things never feel right. For performance-doesn't-matter apps I much prefer a language like Ruby. For other apps downsides like memory bloat and startup speeds seem prohibitive. I've yet to see the real advantages of managed code - what I mean is that it gives too few advantages compared to the cost, ie. a wrong trade-off.

As a user, the _only_ desktop app I still run daily, built on one of these platforms (Java/.NET) is Tomboy. It's telling that I've eventually given up on other Mono desktop apps like gnome-main-menu, beagle, banshee, f-spot, ... even though I really liked these apps and their UIs (I still believe Mono/GTK# is the "better" combo though - I've never liked a Java desktop app, even with SWT instead of Swing).

As a developer I'm really looking forward to Vala maturing - I think that gives all Gnome/GTK devs whet they want and need - a clean language, good integration with existing Glib based libraries - without the overhead.

I guess what I'm trying to say is this: the trade-off that platforms like Java and .NET make is not worth it for me.

As for the political aspect of it: I trust Sun and Apple about as much as I trust Microsoft. I think that Sun dropped the ball completely: had they GPL'd Java years ago there'd be very little reason to build Mono, and .NET would've probably had a lot less momentum. Now that we have both, I probably prefer Mono over Java, but I happily would have chosen Java if it meant everyone would have been focusing their energies on one thing.