Charles Engelke's Blog

May 31, 2008

Two Conference Anti-patterns

Filed under: RailsConf 2008 — Charles Engelke @ 4:42 pm
Tags: ,

Session Transitions

If you have large session rooms, you need more than 10 minutes between sessions for people.  If you have only 10 minutes per session, you need to be sure that speakers end on time.  If you let speakers run late, you have to let people in before he or she finishes.  Otherwise, you get a mob:

Row Filling

When you know a room is going to be absolutely filled, why do people always sit in the aisle seat of an empty row, requiring everyone to climb over them?  You’re only committing to staying an hour, folks.  Go ahead and risk sitting in the middle!


Saturday Morning at RailsConf

Filed under: RailsConf 2008,Uncategorized — Charles Engelke @ 4:26 pm
Tags: ,

The opening keynote was by Jeremy Kemper of 37Signals, who is a leader in developing Rails.  He talked about all the improvements in Rails 2.1, which he announced would be released later today.  If I were already a deep user of Rails, I would have found all the details fascinating and exciting, but I don’t have the context to appreciate all of it.

My first talk of the day is 23 Hacks, by Nathaniel Talbott of Terralien.  He says we need to hack, not just work on practical things.  “Musicians spend a lot of time playing music nobody else would want to listen to.”  To stretch themselves, to learn, for the joy of it.  The same applies to software development; there is value in “valueless” software.  He then demonstrated 13 hacks, and asked the audience to suggest 10 others to make 23.  An inspiring talk, ending with an exhortation to us to go hack something soon.

My second talk is Advanced Restful Rails by Ben Scofield of Viget Labs.  He started the talk by praising the value of constraints, referencing poetry and classical music.  Constraints free you to focus on the smaller set of unconstrained options, letting you be creative and productive.  He then covered the material well, but I didn’t learn much new because I’ve been reading so much on this topic already.

The Conference T-Shirt Economic Index

Filed under: RailsConf 2008 — Charles Engelke @ 3:04 pm
Tags: ,

The economy as a whole might be slow, but the Ruby on Rails sector of the tech economy seems to be on fire.  One measure is how much money vendors spend on t-shirts at conference like this one.

Back in the late 90s, I remember a relatively small O’Reilly Perl conference where about two dozen different vendors were handing out t-shirts with abandon (Sun was giving handsful of OpenOffice shirts to each person, instead of one shirt at a time).  The next year, after the tech bubble burst, not a single free t-shirt.

This year at RailsConf, t-shirts are back.  I think there are six vendors giving away shirts, and most of them are pushing them on anyone who even walks near their display, even if they already have a shirt in their hand.

Consider this a leading economic indicator

First day at RailsConf

Filed under: RailsConf 2008 — Charles Engelke @ 12:48 am
Tags: ,

Today was my first day at RailsConf in Portland.

We started the day with a keynote from Joel Spolsky.  He gave a very entertaining talk, with good visuals and a lot of jokes.  The theme was on what makes software good, with a lot of analogies to architecture, fashion, and even sociology.  He’s written about all of this before, in bits and pieces.

My first two breakout sessions weren’t a great start to the conference.  John Lam gave a talk on the IronRuby project, where Microsoft is porting Ruby to run on .Net and in Silverlight.  The topic was very interesting, but the talk didn’t give any background, and was full of acronyms and jargon specific to either Microsoft or the IronRuby project, and he never defined any of.  The second session I attended was “10 Things I Hate About Web Apps” by Micah Martin, which was billed as being about a new open source client-side tool that would eliminate all those bad attributes of web apps.  Well, the tool is Limelight, and it eliminates web app problems by not being a web app.  It’s a new client that runs on JRuby (Ruby on the Java virtual machine), and is conceptually similar to Flash or Silverlight.  I’m more interested in standards-based web applications for now.

Things picked up for me after lunch (which was a real break, unlike at Google IO, with decent food and a good job managing serving and seating so many people).  First, I deliberately attended a session that was effectively an infomercial for a conference sponsor’s product.  I was skeptical about this track, but the talks were clearly and honestly labeled, and this one was interesting.  Guy Naor of Morph Labs showed off Morph Appspace, a free Rails hosting environment with good deployment tools.  It was all hands on and live; there were a few glitches due to typos and such, but everything worked and worked well.  I’ll probably give the product a try.  And I think it’s cute that they registered their domain in the Philippines to spell “”.

I closed the day by attending two sessions each absolutely jam-packed with people.  Neal Ford of ThoughtWorks talked about Design Patterns, and how a lot of the existing way of looking at them is obsoleted by languages like Ruby.  His slides are available for download.  And Ryan Singer, a web designer at 37 Signals, gave a great talk on how designers and programmers can work as a team, instead of effectively having a wall separating them.  His perspective as a designer, instead of a programmer (like most of the attendees) gave us all a fresh look at things, and the audience really responded to him and his talk.

So, even though the first few sessions seemed a bit weak to me, the conference as a whole is shaping up to be quite worthwhile.

May 29, 2008

Today at Google IO

Filed under: Google IO 2008,Uncategorized — Charles Engelke @ 5:17 pm
Tags: , , ,

…is going better for me than yesterday.  Sessions are mostly running a bit short, so it’s not nearly as frantic running from room to room.  I even had time to eat a sandwich, and as a result had a nice chat with another attendee.  It turned out she grew up in Gainesville, where I lived and still work.  And she’s working on technology very relevant to what our applications need, and is going to send me some information on new functionality as soon as it’s announced.

That kind of ad hoc meeting is something I like about conferences, and Google IO’s ultra-tight schedule with no break for lunch gets in the way.  I hope they change it next year.

Keynote, Day 2

Filed under: Google IO 2008,Uncategorized — Charles Engelke @ 5:12 pm
Tags: , , ,

Today started with a talk by Marissa Mayer, Google VP of Search and User Experience.  It was again very well done, and she’s an engaging speaker.

We heard some interesting things about how Google designs their pages.  For instance, they added the copyright notice at the bottom of the page not for legal reasons, but because in early user tests people kept waiting after the page was displayed before they’d enter a query.  Why?  They were waiting for the “rest of it”; the page couldn’t be loaded, it was too sparse.  So the copyright notice was added “as punctuation” to signal folks that the page was loaded and ready.

They do a lot of A/B (or A/B/C…) testing, where different users get slightly different pages from Google, and Google gathers and analyzes data about user behavior as a result.  They often find that very tiny changes changes can have a big effect.  The amount of white space between the Google logo and the separator bar on a results page?  The small amount they use results in greater user satisfaction and more Google searches than larger gaps.  Text ads with yellow backgrounds instead of blue?  Measurably better results.

What I took away from this was that you should listen to, or observe, what your users do, not what they say.  Mayer referenced a Henry Ford quote I hadn’t heard before:

“If I had asked people what they wanted, they would have said faster horses.”

After Hours at Google IO

Filed under: Google IO 2008,Uncategorized — Charles Engelke @ 1:33 am
Tags: , , ,

This evening Google had a reception with lots of food and drink, and music by Flight of the Conchords.

State of Ajax

Filed under: Google IO 2008,Uncategorized — Charles Engelke @ 1:27 am
Tags: , , ,

Dion Almaer and Ben Galbraith of Ajaxian told us about Ajax tools and frameworks, and the direction they see Ajax going.  Their talk was really well done, and very interesting.  Google taped all the talks and said they will post them sometime, probably on, so you’ll be able to see for yourselves.

Highlights I took down:

There are lots of Ajax frameworks and toolkits, which were created to do different kinds of things. But over time, the leaders all evolved to cover similar broad spectra of functionality. The four families that really matter now are Prototype, Dojo, jQuery, and GWT. (I wonder if including GWT is partly just an acknowledgment of the conference sponsor.)

Future directions are to make the browser as capable as your PC, and will eventually be strong competition for native GUI applications. Tools for that include Fluid (which I hadn’t heard of), Adobe Air, Mozilla Prism, and Google Gears.

Google IOKO

Filed under: Google IO 2008,Uncategorized — Charles Engelke @ 1:07 am
Tags: , , ,

Google’s logo for Google IO is the binary values of ASCII IO, with white circles for 1 and black circles for 0. Their slides do the same thing, but with large and small circles:

The t-shirts they’ve given us use the same coding to spell out Google IO. Except they spell Google KO instead:

Their own t-shirts say the same thing, but in black on white instead of white on black.

A mistake? Or a threat to potential competitors?

May 28, 2008

Keynote talk

Filed under: Google IO 2008,Uncategorized — Charles Engelke @ 7:59 pm
Tags: , , ,

This morning’s keynote for Google IO was the just about the best talk of that kind I’ve ever attended.  It was a broad overview of the topics from Vic Gundotra, a Google Vice President of Engineering, with several short talks on specific topics by relevant staff members.  It was full of useful information and whetted my appetite for the upcoming breakout sessions, and the speakers were all very polished and clearly rehearsed.

Some highlighted topics:

  • Google Javascript APIs.  Google has really opened its services up, and provides easy to use RESTful libraries for getting them to them in Javascript.  I’m not real interested right now in any single one of them, but the breadth of what’s available now is impressive.
  • Android.  Some very nice demos of mobile phones running Android, but I’m not clear on when this technology will actually be available for people like me to use.  I want it, but I bet today’s cellular provides, who always want to lock their users down, probably don’t want it.
  • AppEngine.  This is the technology that triggered my decision to attend the conference.  I’ve done some development in it, like it, and see great uses for it.  The big news for AppEngine is that it is now (as of today) open for anyone to sign up to use.  They also showed some approximate pricing for when it becomes a fully supported product, but committed to making it always free for low volume users.  “Low volume” will be defined in terms of storage, CPU, data transfers, and so on, but the free level will be enough to cover an average of 5 million page views per month.
  • OpenSocial.  Google’s supporting open APIs for social networking in a big way.  Personally, I’m not currently very interested in it.
  • Google Web Toolkit.  In addition to the native Javascript APIs, Google supports client-side development with GWT.  You write the applications in Java, and GWT compiles it to Javascript for deployment to the browser.  I don’t get it.  The speaker made a big deal of how Java was a much better language for this, and had grown-up development tools, but didn’t convince me.  I remember vendors pushing Cobol for developing in OS/2 and Windows for the same kinds of reasons.  Have you seen a lot of Cobol GUI programs?
  • Google Gears.  Now just called Gears.  This is a browser plug-in that lets you do all sorts of great things with Ajax, like store persistent data on the client and access client resources.  They are looking at this as a bleeding edge early preview of HTML 5, and I think it’s going to be important.

That’s not exhaustive, but it’s fairly complete.  I’m glad I came.

Google doesn’t scale

Filed under: Google IO 2008,Uncategorized — Charles Engelke @ 3:37 pm
Tags: , , ,

That is, the Google IO conference starting today in San Francisco isn’t scaling very well.  Registration was very, very slow for some reason, even though all that seemed to be happening was finding preprinted badges and giving them to attendees.  They simply couldn’t get people registered in the 90 minutes from when they opened at 8:00 until the keynote at 9:30, so they decided to let people attend sessions most of today without badges.  People need to go to the desks between sessions and get their badges by the end of the day.

Agenda scheduling doesn’t seem very practical.  Sessions go on non-stop all day with 15 minute gaps between them.  People are supposed to grab food during those breaks, but the food’s on a separate floor, and with such large crowds I don’t think you can even get to the other floor and back in that time.  The other choice would be to skip a session to eat, but the agenda is very strong.  I’m glad I ate a big breakfast.

The conference content has been great so far, with the most polished yet technical talks I’ve ever seen.  I hope that keeps up for the whole time.  Notes on sessions later as I get some breaks.  I’m not going to write during the sessions themselves.

May 20, 2008

The Coolest Urinal

Filed under: Vacation 2008 — Charles Engelke @ 1:11 pm

At least, the coolest one I’ve ever seen:

Cool CPH Hilton Urinal

It’s a black marble fountain, or waterfall, that starts flowing when you walk up to it.  I don’t know why I like it so much, but I do.  It’s in the public men’s room of the Copenhagen Airport Hilton.

Finding a neat urinal wasn’t the main highlight of the day, though.  Laurie found the great yarn shop she visited a few years ago:

Copenhagen Yarn Shop

She bought a lot of unusual and special yarns.  The cashmere/silk blend is really luxurious feeling.  We couldn’t remember exactly where the shop was, so I took a picture of the opposite corner to remind us if we get back to Copenhagen:

Yarn Shop Corner

The corner of Krystalgade and Fiolstræde, not far from the Nørreport train and metro stations.

May 2, 2008

Thanks, Amazon!

Filed under: Uncategorized — Charles Engelke @ 3:41 pm

I ordered a book from Amazon before it was released, and got it as soon as possible. But the price of the book dropped before release. Was I to be punished for ordering too early?


Hello from

We’re writing to confirm that we have processed your refund for USD
0.01 for the above-referenced order.

For more information on how we calculate refunds, please visit our
web site at

We hope this is a satisfactory resolution for you. However, if you
have any questions or concerns, please use this link to contact
Customer Service:

Thank you for shopping at

Note that this was the second e-mail Amazon sent me keeping me informed of the progress of my vital refund.

Blog at