Thursday, May 31, 2007

More Cats



A better example of the kind of cat craze sweeping geekdom. A montage of kitty posters.

Sweet Revenge

For a long, long time, I'd avoid artificial sweeteners. The pink stuff (saccharine), the blue stuff (aspartame), the yellow stuff (sucralose). No sir, give me real sugar (or, sigh, high fructose corn syrup).

But then I started gaining weight, because as a software engineer, I didn't move a whole lot, and I ate out a whole lot. This lead to weight gain.

So I reluctantly started to have diet sodas, and to get my coffee with Splenda (the yellow stuff). All the fake stuff do something that's practically insidious. Since the three sweeteners are extremely sweet, often you only need a packet, possibly two, to get it as sweet as you want.

If you try to get it that sweet with sugar, you need at least twice as much sugar. You need 4 relatively large packets, rather than two rather slim packets.

And that's where they get you. Because one day, they'll run out of the artificial stuff, and you'll reach out to get the sugar to sweeten that tea or that coffee, and you'll put two packets in, and drink it, and then realize it's not sweet enough, then add two more packets, and say, OK, that's pretty sweet, but then think "OMG! I'm going to get so fat eating this much sugar!"

By making the stuff much sweeter, you need less of it, and only when you compare it to how much sugar you need to dump in to get the same effect do you feel the tremendous guilt of sugar.

Of course, you could be strong. You could stop eating sweet things altogether. But you're not strong. Once it's sugar-free, you might drink two, three, four, five, heck, six cans of soda a day. The sheer guilt you would have drinking regular soda disappears. You convince yourself that the soda you're not drinking allows you to eat other foods more freely.

And so you gain weight. And then you think, "Well, I really can't stop drinking soda now, can I? It's the one thing that's got no calories". How many people have really lost weight by drinking diet soda? Not too many, I'd imagine.

Now if you'll excuse me, I gotta get some of that yellow stuff more my coffee.

Wednesday, May 30, 2007

How to Improve Wikipedia

Wikipedia gets a bad rap. Since anyone can edit it, people do. Yet, it's often filled with pretty timely information, faster than real encyclopedias can manage.

But sometimes I want to see what's happened to the page. There should be some way to scrub through the various settings. Perforce (a version control system) has a feature with a horizontal scrollbar, where you can move it across timelines and see the various changes. That feature would be neat, as would a way to play the changes in slideshow format at pause it when you want to see it.

What do you think?

Turtles All The Way Down

I was attending a conference, and the speaker used the phrase "turtles all the way down". This is a bit obscure, so I'll explain. Apparently, someone, perhaps an atheist, perhaps someone believing in evolution, or some such was talking about the Earth being round.

This woman proclaimed that the Earth was not round, but was carried on a turtle's back (that's digging to some old mythology). The speaker, being clever, (it's alleged to be mathematician, Bertrand Russell) asked the woman "Ah, but what does the turtle stand on?". She said "Very clever, young man. But I have an answer! It's turtles all the way down!"

Despite this odd explanation, it's seen as a kind of infinite recursion/regression.

Of course, you could read Wikipedia (which I consulted).

Japanese Beer for Kids



Sing along!

Sunday, May 27, 2007

Who Jumped on the Ruby on Rails Bandwagon?

Ruby on Rails was released around Fall 2004 by one David Heinemeier Hansson. He had been working on an application for 37Signals and extracted out a web framework. I heard of ROR in Fall 2005, so maybe a year later. Dave Thomas was already extolling its virtues as part of No Fluff Just Stuff. I heard DHH give a tutorial on it during ETECH in March 2006.

I attended Railsconf 2007 in Portland last week. I was curious to see who was attending. With 1600 attendees, I barely met half a dozen people, which is very tiny.

Among the things I pointed out was the numerous white folks at the conference. I think I eventually counted about 4-5 African Americans, though I'd be willing to believe the number was 2-3 times that much. I saw some Indians, some Asians, some women, but really, white males dominated this conference.

Does that mean ROR is racist or sexist?

I know. It's a silly remark to make. Ask yourself who would jump on the ROR bandwagon? You realize several things. First, ROR, as the first "R" so boldly says is "Ruby". Ruby, as you can tell by its name, is not Java. It's not C#. Heck, it's not even ASP or PHP. It's not C, nor C++. It's not even frickin' Scheme. This means that anyone who learns it is on their own, unless they want to create a RUG (Ruby User's Group).

Contrary to popular belief, not every working software developer is all that keen about what they do. As a profession, we have the dubious distinction of working in a field that reinvents itself every five years, and that's rough. It's not surprising that the video game generation has done so well as programmers, because they've learned to negotiate the minefield of learning to play one new video game after another. They learn that each game has new aspects, but all their old skills aren't useless, and can be applied to make heads or tails of this new game.

Still, most developers are content trying to do their job, and aren't particularly fascinated by learning new things, especially since many do maintenance code work. From that, a small percentage actually likes to learn new things, and from that, an even smaller percentage is willing to take the leap to work in this new arena. Sometimes, they're "lucky". The choice is made for them from above.

But what about everyone else? Those are the folks that make the leap to Ruby and to Rails even when no one else is doing it. And then, they have to shell out some bucks to attend Railsconf. Even folks on the Rails Core group didn't attend Railsconf, so you can imagine a reasonably hardcore developer might not bother to make the trip.

All told, the average Railsconf attendee is far from average. Someone work works with Ruby on Rails or is at least sufficiently fascinated to attend a relatively pricey conference. It's perhaps not surprising that this weeds out a fair number of people who could attend. Women, minorities, even those you might expect in larger numbers (Indians, Chinese, Korean, etc).

Dave Thomas pleaded with the community in his closing keynote to reach out. Surely he understands that the community, as is, is as new as new can be. These are the Pilgrims who abandoned culture to live in backwoods America, who gave up conveniences to rough it. It shouldn't be surprising that the community doesn't look like the community as a whole.

The question remains: how stable will this community be? Are they committed to it for a period of time? Or will we look for the next shiny new thing in 3-4 years? Java is now entering its 12th year (or so) of popular existence. Will Ruby and Rails last that long (yes, yes, Ruby was released prior to Java, so in that sense, the answer is already yes--but I mean in the popular sense).

How will this community evolve? When will it begin to reflect the development community at large, and will it begin to redefine what the community looks like?

Culture and Baseball

Recently, despite a win, Daisuke Matsuzaka, the hundred million dollar pitcher from Japan, issued an apology despite a win. Indeed, Matsuzaka has had six wins in a row, but his ERA is above 4 during that stretch, which, to non-baseball types means that, yes, he won, but mostly because his team scored more than his opponent.

A pitcher is, effectively, a defensive player. His goal is to prevent the other team from scoring. However, if his own team is prolific at scoring, he doesn't have to be so good. Even so, for the money he's paid, Matsuzaka felt a bit ashamed, and did what a Japanese player would do, which is apologize.

Shame is a big thing in Asia, and the Japanese apologize for things that Americans wouldn't. An extreme example was Hideki Matsui of the New York Yankees. He had broken his arm during some play, and apologized that he had broken his arm. Again, par for the course for the Japanese, but an American would claim that it wasn't his fault, and there was nothing he could do about it.

American baseball commentators generally find such apologies quaint, if not amusing. I'm sure the commentators chalk such attitudes up to cultural differences, even as they may not fully comprehend it. After all, how many people take the time to study another culture. Perhaps Matsui and Matsuzaka are expected to issue apologies. It is the correct thing for them to do, to accept blame for even things that are out of their control.

Americans are slowly becoming more multi-cultural. We eat at a variety of places. Pho, sundubu jigae, iddly, pad thai are now part of vernacular of those who stray beyond burgers and pizza. We try to gain some sense of how other cultures work, even as it's tough for some.

Baseball was something the US used to export to other countries, and we saw it as quintessentially American. Now that those exports have come to the US to be in the big show, we are beginning to reap international results from seeds sown afar. And while we figured they'd be the one adapting to us, meeting folks half way seems like a good idea.

Ruby for a New Generation

Man, I'm blogging a storm today. I think I'm trying to outdo how many entries I had last month. I'm blogging at an average of a post a day, but today I have like 5-6 posts alone.

In my last post, I said Java succeeded because it's being taught in high schools and colleges. If Ruby (and Rails) would like the same success, they need to seriously encourage high school kids to embrace Ruby, and with it, I hope, test-driven development.

Chad Fowler and the guys at Ruby Central are pushing this notion of a giving community, though charities. Dave Thomas implored audiences to make a tradition of giving to charities at conferences like Railsconf.

But it's time Ruby and its community start to help itself in this charity. Just like the tennis industry wants kids from the inner cities to learn to play tennis (many of those kids opt to play football or basketball instead), the Ruby community ought to think of ways to talk to high school kids and encourage people to develop Ruby on Rails projects.

So here's my idea. Create a Rails school for high school students. Alas, it's a little too late for this summer, but next summer would be an ideal time to get it set up. Heck, open it up to college kids too.

I'd even volunteer to do it.

Well, volunteer isn't quite the right word =).

Saturday, May 26, 2007

Is Ruby (and Rails) Overly Hyped?

It was, what, 1995. Maybe 1994. The World Wide Web had the biggest assist that lead it down to the road it's been on ever since. No, not the search engine.

Mosaic.

Mosaic was the graphical browser, the predecessor to Netscape, which begat IE, and eventually Firefox and Opera and other lesser known browsers.

Nearly hand-in-hand with the advent of the graphical web browser was Java. Java was originally conceived as a language to be used with a precursor to WebTv. C++ was seen as too difficult a language to work with. Sun's language experts stripped away some of the nastiness of C++ and created Oak, which was rechristened Java, and then retooled it for the Web.

At the time, people thought Java was overhyped, but the hype worked. It created a huge web industry. You know, enterprise Java solutions. And I'm not talking about Kirk and Spock and the rest.

I suppose, Microsoft being Microsoft, released it's .Net environment, and when Sun said Microsoft could no longer develop Java, they simply created C#, which is basically Java, though some claim a nicer Java.

Since then, there hasn't been anything that's been hyped like Java or C#, at least, language-wise (Ajax and some web technologies were hyped).

Until now.

Well, until three years ago. In July 2004, David Heinemeier-Hansson, of 37 Signals, released Ruby on Rails. He created a web framework built on Ruby.

Now, Ruby was a bit obscure then. I had heard of it. At the time, there was Perl, Python, and lagging way back was Ruby. But you could get a book on Ruby, which is presumably how DHH found out about it. The three are considered "dynamic languages", though Python and Ruby fit that category more truly than Perl.

They've been denigrated as mere scripting languages that don't do what "real" languages like Java, C++ do, which isn't really true. Most of these languages have an interpreted environment and avoid strong typing. While this sounds horrendous to lovers of strong typing, it does create simpler code, even if, I imagine, it creates nastier code to debug. This is why TDD (test driven development) has been pushed so heartily, to overcome what is an obvious problem.

Java's success lead government agencies and real companies to adopt the technology, and because so much effort was put into it, Java's reality matched the hype. No one invests that kind of energy to dump the technology. Even now, Java technology (say, Struts) from 5 years ago hangs around today because companies are loathe to pick up the latest technology.

And one can't underestimate that Java was picked as the language for the AP exam, which means that many a college and many a high school picked it as the language to teach students. This was a huge coup, because that meant many hundreds of thousands of students learn Java.

Not every college has been quick to adopt Java despite all that. There's still plenty a college that adopted C++ back in the 90s and has not bothered to switch, mostly because academics, being academics, aren't interested in following what industry does. They often lag way behind wondering why they have to keep learning new stuff. Aren't they the experts now? Goodness, another language?

Still, even as the AP exam flirted with C++ for what? Ten years? Sometime in 2002 or so, the AP exam moved to Java, so they aren't likely to adopt Ruby anytime soon.

The Ruby Revolution may be hampered by that, but that might be OK for now, because C++ was around for a few years before colleges adopted it.

One can argue that Ruby, a language that was around since 1994, but wasn't around the US "popularly" since around 2000, but really got its big push with Rails.

I had been wanting to learn it for quite a while now, and hope to make a push soon to learn more of it. I understand the basic syntax, but haven't had a good program to write until now (well, I'm still deciding what to use).

Railsconf, i.e., a conference helps out. Even a big site like Twitter helps Rails fame. But, I don't know whether the industry is fully prepared to embrace Ruby and Rails. What helps are two efforts: JRuby and Iron Ruby. Both Microsoft and Sun see Ruby as the next step. Will it really be the case? I think it's so new we won't know for sure for a while, but as long as their is enough hype, more and more people will try it out.

Currently, the future may be this homesteading idea, the one put forth by Nathan Talbott, which is letting small potatoes software consultants putting websites up. This almost makes programming a kind of social engineering kinda thing. But is that enough? You get momentum with big companies that invest a lot of money and labor and eventually inertia that will keep Ruby in people's views.

Several things would help Ruby's popularity. One is the adoption of Ruby in high school curriculum. I don't see that happening soon, so the next step is a grassroots attempt by the Rails community to push that downwards, to get interest among the youth.

Hmm, I think I'll blog on that next.

Sony vs. Apple

I just read this article about Sony vs. Apple.

In a nutshell, it says the Apple Store does its job much better than the Sony Style store. I blogged about this a year or so ago, and I'd agree. Sony Style gets so many things wrong that it's hard to believe they can't see it.

First, Sony has too large a product line, and they have boring names. Apple has names like Ipod, Macbook, and Macbook Pro. Sony has names like DSC-W50. Heck, I had to use Google to look up the name. I can't even recall it. And I own the frickin' camera!

Sony's staff tries to be hip, wearing those earpieces, staffed with youth-hip, but they aren't particularly friendly. And this is just one store. I brought in coffee once (I think), and they seemed upset at this. Most bookstores now figure that if there is an accident with food and drink, they'll eat the costs, because the irritation factor is far greater than the actual number of messes that occur.

Apple runs tutorials on using the Macs. They have a Genius Bar. I recently had a positive experience with a guy helping me install XCode, a code base for the Apple so large that I couldn't conveniently download it anywhere. Since Sony doesn't control its own software (using Windows, of course), it would not be helpful in this regard.

This is one of those cases where Sony simply doesn't get it, and why, more than likely, their stores will never be as popular as Apple's.

Japanese Human Art



Much like the Japanese Matrix Ping Pong, using people dressed in black against a black background.

Foundation

When I was in college, and it's been quite a while now, my first year roommate was from Malaysia, and he, like many guys, liked reading science fiction. I recall that he'd work his way through Asimov's famous trilogy: the Foundation trilogy. Asimov was a prolific writer, so that wasn't his only trilogy (he was noted for his Robot series, which was, I have to imagine, butchered by the action film, I, Robot, starring Will Smith). Asimov's books have always had a chatty quality about them, so few of his stories have made it to film, and certainly, none worth noting. Indeed, Phillip K. Dick seems the SF author du jour when it comes to film.

I knew the basics of the Foundation trilogy. There was a great psychohistorian named Hari Seldon who predicted a downfall in the Galactic Republic which would lead to thirty thousand years of suffering. It was too late to prevent the downfall, but he could reduce the suffering to a thousand years by creating a Foundation, ostensibly to preserve human knowledge during these dark ages. Then, there's something to do with the Mule, which occupies the second book.

I vaguely recall that Asimov based this series on the fall of the Roman Empire, and of course, loosely on thermodynamics, which predicts what gases do due to their large aggregate behavior even if it's too challenging to predict what any molecule will do, due to the sheer numbers.

I'm maybe 80% of the way through the book, and I'm a little surprised about the book. The rest involve some degree of spoilers, so be warned.

I had expected Hari Seldon to have a much larger role. Since Asimov likes framing his story in thousands of years, rather than make his characters long-lived, he had to tell several stories throughout the years. Thus, Hari Seldon only has a tiny active role, at the beginning of the book, and is seen mostly in Jor-el like messages and talked about in a historical sense.

Asimov's dialog is rather breezy. His characters speak as if they were in the 1950s, which makes sense, because that's when he wrote the book. Clearly, say, unlike Tolkien, Asimov has no particular desire to create a new vernacular. He's always claimed that he has no desire to write in a flowery manner, though his writing is not nearly as straightforward as, say, Joe Haldemann, who wrote, Forever War. Writing in 1950s style conversational tone makes it that much easier for an average person to read it, even if it modestly dates his books.

Of course, what really dates his books are the absence of women. There are hardly any women in the books. I've just read to a section where the first woman is mentioned.

Asimov is also far more interested in plot than characterization. Indeed, his characters are pretty weak as a whole. They appear to have no lives outside the plot that they move forward. Asimov, in particular, so values education that his characters devote a great deal of time to it, almost as if he didn't particularly care for marriage, etc. Indeed, his stories seemed aimed at teen males, and that of the 1950s variety, looking for adventure, and not that interested in the opposite sex.

Asimov likes to juggle only a handful of characters at a time, presumably so he doesn't tax the brains of his readers. At most, there are maybe four or five characters, and he prefers to have only about two of them talking at any one time.

If Asimov has these various limitations, then what makes his stuff worth reading? Science fiction tends to draw authors who have great ideas, and Asimov often has some pretty good ones. Indeed, SF writers often suffer in characterization. Rarely do you read an SF author and get really engaged with the characters.

I read Spin a while ago, and really liked the characters in that book, but if I were pressed, I'd say that the characterization is not nearly what it could be. Genre fiction often suffers there, leaning on genre conventions to get them through stories with weak characters. None of Asimov's characters have the depth of those in Spin, and Spin isn't even that awesome a book, though it is a pretty fun read.

Asimov, if anything, at least in Foundation
creates clever situations. In one part of the story, Anacreon is a once powerful planet that's fallen on hard times. They wanted to take over Terminus, the planet that the Foundation resides on, and did for a time, before they were forced off. The rulers, a scheming uncle and his king nephew, want to find a way to invade Terminus and take control. Asimov comes up with a clever way to cause this plan to fall through.

Asimov is also as likely to talk about those with privilege and power than those that are lower down in the class chain. He doesn't deal with gritty realism, preferring a shiny glimmering future. That's not entirely true, but certainly he's not like William Gibson is his dystopian futures. Indeed, Asimov is perhaps more clever in his short stories than in full-length novels.

Given Asimov's atheist stance, I was surprised that there was religion in his books, though it's religion from an atheist's perspective, i.e., religion is the opiate of the masses. He clearly sees religion as invented to control the masses, and indeed, the Foundation does exactly this. Several nearby planets have "priests" who serve to operate the technology that no one knows how to use.

Speaking of which, I picked this book up in Powell's when I was visiting Portland. I've picked up the second in the series, Foundation and Empire, so I expect to get started on that soonish.

I'll let you know how that goes.

Hotel Shortcomings

Once upon a time, I wouldn't think of staying at a hotel that was more than a hundred dollars a night. Unfortunately, if you pick a hotel based on its proximity to some place you'd like to be, the prices aren't so good. Thus, I've stayed in downtown San Diego, in downtown-ish Seattle, and in downtown Portland. Something in common with all three. Expensive hotels.

You would think, for that kind of money, they might think of trying to, you know, improve the hotel in some way?

I can name three things that generally bother me about hotels. First, they seem to ignore that televisions have been getting larger and larger, and with it, the price tag has also become enormous. A large television in the 90s cost several hundred dollars. Now it costs several thousand dollars. Even though hotels make a fair bit of money (or not), I've never seen a high-def television in a hotel.

Second thing. Wireless connectivity. A hotel is sufficiently large that wireless connections are not always great throughout the entire hotel. When I was in Seattle near the airport, I had a wired connection. That was good. I had one in Portland. It was godawful. The connection speed was at dial-up speeds.

Here was the issue. I wanted to install Xcode on my Mac. It allows you to write programs and such. It's also frickin huge. As in 1G huge. The conference center I was at limited bandwidth to 60 K per second. Reasonably good, though I can get three times that much at my house. My hotel was at 6 K a second. It was awful. You could barely get YouTube to work. I was trying to watch Tony and Mike's short sports segment on the Washington Post newssite. No good. Maybe they noticed, because after a while, it said "You don't have enough bandwidth to have a pleasant viewing experience." I'll say.

At the convention center, it would take three hours to download a 1G file. About halfway into this download, it failed. Fortunately, I got one at an Apple Store in town, and it took them 1 hour to download it.

If you can't get good wireless, get a good wired connection, I saw, and stop fooling people into thinking any wireless is good wireless. Bandwidth matters.

What was my third point? Oh yes, the gyms. Most of them suck horribly. The best gyms I've gone too are the one in San Diego, but literally, this was because the hotel was connected to the gym and had special privileges; the one in Cornell, which was a bit surprising, though the gym was tiny; and the one in Bangalore, but then the hotel costs were like three times as much.

Most gyms have equipment circa 1980, and they don't seem all that concerned upgrading it for the same reasons they don't upgrade televisions. It's expensive. A good piece of equipment might be several thousand dollars. And you have to replace it every few years. Still, compared with fitting each hotel room with decent HDTV's, this would seem to be a relative bargain. You would need, say, two recumbent bikes, four ellipticals, four treadmills, and you're all set.

Most places don't even have three pieces of equipment, and they are horrid. A real gym couldn't survive with such bad equipment, and yet decent hotels often do.

What else? Hotels that don't control their own parking. I was in a Seattle hotel that charged me daily use of their parking. Hotels that don't have round the clock services. When grocery stores and restaurants are now 24 hours, you wonder why a hotel that charges as much as it does, can't afford to have 24 hour service.

Cable selections usually suck, having a fraction of what real people have. This was especially the case in Bangalore. In the US, this lack of choice often drives pay per view television, which either means older movies from theaters or porn. Ah, hotels and their discreet entertainment. (It was neither in Bangalore, by the way, since the country has puritan airs about it).

Ah, noisy heating and A/C. This doesn't really bother me, since the noise is like white noise to me. It kinda helps me to sleep in any case.

I'm sure I can think of others (noon checkout times, etc), but those are tops on my list.

Friday, May 25, 2007

No Assembly Required

Once upon a time, probably in the early 80s, and much later for some places, and some places never at all, computer science departments stopped requiring courses in assembly language. For the most part, there were only two choices: Intel's 8086 or Motorola 68000.

At some point, assembly stopped being required. Some teachers rue the day that happened, saying people don't truly understand programming unless they do assembly. This isn't entirely true. Assembly, in and of itself, is really tedious, prone to error. This is why higher level languages were invented.

However, understanding how to translate basic C code into assembly is useful, because you see that computers have no sense of objects, structures, loops the way we understand it, let alone higher level concepts like iterators, generators, anonymous classes, closures, etc. However, there is support for functions via jumps and returns.

Learning assembly also teaches you the magic of registers and memory and the stack. However, it has to be put in context. You can easily learn assembly and never really appreciate that registers are so much faster than RAM.

Those departments that still teach assembly often do it in this context. How assembly relates to higher level languages. Those who teach it like a language are hopelessly out of date. You might argue that you are programming on "bare metal" (why it's called that is not entirely clear to me, as it's silicon).

In any case, even assembly is an abstraction. The hardware merely has to implement the specification (the assembly language is indeed a specification) and could do so, say, by converting these instructions into other instructions and executing that, in effect, doing on the fly translations. Indeed, many Intel processors are supposed to convert x86 code, that prototype of CISC-y code, into a more RISC-style code. What's happening underneath the covers may not be a one-for-one translation of assembly to real hardware, as it once was.

I raise this point because I wonder if these stone age teachers of programming were right or not? Are current students of computer science missing out, or are they getting the right amount of information about assembly, that is, enough so they understand how it's used, but not so much that they could seriously hack in the language?

Thursday, May 24, 2007

Tiny Toonz

This is pretty old, but there are some utilities that seem pretty silly, and yet there's a huge benefit in having them around. And this is one of them. Sometimes you have tremendously long URLs (or even not so long) and it's difficult to tell others, especially over the phone or IM or whatever.

Recently, Aslak Hellesoy, one of the RSpec guys, was giving a talk on RSpec at Railsconf. He didn't have a projector. So he made the slides on a webpage on his website. But there were just enough characters on the URL to make it a pain to tell people to type this in their browser.

An audience participant said to use "tinyurl", the linked website above. It takes a long URL, and creates a small one. When the user types that in, they are redirected to the longer one.

Pretty convenient, eh?

There are tons of things like this on the net. But the average person can hardly keep up with it. I mean, this seems like the silliest idea ever, but once you see why someone would use it, you end up using it. Not often, but enough when the need is there.

Wednesday, May 23, 2007

Tour de Floyd

On July 23, Floyd Landis had been at the depths of despair only to claw his way back, making up 8 minutes of lost time, and winning the Tour de France. This was seen as a miracle for a man with a bad hip. While Lance was aloof and distant, Floyd was seen as more down to earth.

Then came trouble.

Floyd was accused of taking performance enhancing drugs, and his blood tests, run by a French lab seemed to confirm this. Greg Lemond, a three time winner of the Tour, was not a fan of Landis, and wondered if Floyd shouldn't come clean on this issue. Then, nothing for months and months.

Then, Floyd's back in the news again. His manager and friend, Geoghegan (man that is hard to spell), had apparently called Lemond threatening to reveal his sexual abuse as a child to the world, when Lemond decided to bring that to the public.

The trial is expected to last two weeks.

This case has strange twists and turns, and keeps a sport, which most people only barely knew about until Armstrong made winning so regular, that he brought many American fans along. Landis was seen as someone to carry on that tradition. Now, embroiled in controversy, it will be interesting to see what happens.

Minor American sports seem to only get attention when there's controversy. Will the Duke controversy lead to more viewers of college lacrosse? Probably not. Figure skating, on the other hand, got a big boost from the Kerrigan-Harding debacle when Harding had someone try to break Kerrigan's legs (fortunately, unsuccessfully).

The saga continues.

Gaming the Game

American Idol is almost over. Tonight, the winner will be between Blake Lewis and Jordin Sparks. Jordin is the better singer. Blake, the better entertainer. American Idol has never been entirely about the best singer, especially when left to an audience to vote on it.

Why has American Idol fared much better than Star Search, its closest competitor? I think there are several reasons they improved on the formula. First, Star Search did all sorts of competitions and age ranges. Singing, dancing, comedy. It lacked focus.

Second, Star Search used a head-to-head competition. Thus, the winner would take on the next person. Eventually, you'd get tired of the defending champ, and someone else would be picked. American Idol presents everyone, and much like a party, you don't know everyone, but since the show lasts months, you get your favorites and track them each week. With a single challenger, you don't know the challenger at all. That makes the competition purer--theoretically, it's all about the singing, but people have no emotional ties to anyone.

And with repeat performances, you see if the person improves or not, which kinds of songs they do better at.

And, let's not forget Simon Cowell. The acerbic Brit lashes out at what he thinks is awful singing, and the fans, feeling sympathetic, don't like it, but he's key to the show's success. Without him making comments, daring to tell people they are bad, you don't have a bad guy.

And, of course, the audience votes, and they can really get into the show, week after week.

Although audience voting failed for Big Brother, because there was no need to be scheme to win, there is some gaming going on in American Idol. Blake knows his beatboxing was clever enough to give him a unique approach to winning. He's good looking enough that people (presumably teenage girls) will vote just on that. Blake uses it more some weeks and less other weeks realizing too much beatboxing is way too annoying, but in small amounts, it's clever and spruces up the song given his decent, but not great voice.

Jordin's taken a more straightforward tack to winning, just singing and being herself. Melinda would give the "aw shucks" attitude, and while that worked for a few weeks, overall, people don't like that kind of innocence. It seemed too put on.

In any case, even winning the competition isn't so important. Chris Daughtry, who was third or fourth last year, is perhaps the most successful of last year's group. The winner hardly sells albums.

It goes to show you that people listen to songs, not necessarily to singers. There are the diva crowd, who listen to Celine or Whitney or Christina. But plenty a group has only adequate or even horrible singing (Bob Dylan?), but what matters is the song.

Too bad song writing is so hard, because I'd like to see an American Idol do singer songwriting, with bands performing their own stuff. Alas, cover bands would work best because they can do so many styles.

Singing is, alas, the right way to go for this kind of competition.

Tuesday, May 22, 2007

Improving Railsconf

How can Railsconf be improved? And by that, I can extend, how can computer tech conferences like this be improved?

To answer that question, you have to back up and ask something more fundamental. Why do people go to conferences? Why are conferences set up to begin with?

I'll start my answer with Railsconf. Railsconf is about Ruby on Rails. To have a conference, especially on a language or platform, and have it every year is a measure of success for the language or conference. In other words, if you can get a bunch of people to show up for it each year, then what the conference represents has some degree of success.

One reason for a conference is to show interest in some field. I suppose there are side benefits. It may make money. It may give face time to key speakers.

But why do the attendees go? That's a more difficult question. When I was thinking of going, I was wondering how experienced people would be with Rails. On the one hand, Rails has been around less than three years, so no one could be that advanced (having said that, people do pick up stuff quickly). On the other hand, how many people would spend several hundred dollars to attend a conference that they didn't do any work in? In other words, how many people are like me?

I'll say I didn't go completely ignorant as if it was something like, oh, say, Erlang. I've heard of Ruby for years now. I've heard of Rails for a year and a half, and even heard Dave Thomas talk about it. Last year, at ETECH, I sat and listened to DHH give a tutorial on Rails. Despite all that, I realized I didn't really follow what Rails was about, and with the conference, I'm gaining a better perspective on it. I finally read a chapter or so of the Agile Development in Rails, the book written by Dave Thomas and DHH.

This brings me to my first suggestion for improvement. First, there's going to be a wide variety of people coming to Railsconf. Sure, not many raw beginners like myself. Someone suggested that there be a beginner's track during the conference, aimed at folks like myself, and I think that's a good idea. The question is how much overhead is involved in running a special track.

Each lecture was maybe 50 minutes long. For some talks, that's just the right length. For others, it's not long enough. Say you want to have something that's more like a tutorial, like digging into code from Scriptaculous. Is 50 minutes enough to get a sense of what's going?

And some stuff, it's almost better to do than to watch. The problem is having the audience keep up. The tutorials are pretty good for that, since they last a few hours. The problem is, even though many people bring their own laptops, not everyone brings the same one (though there were a ton of Apples). It might be too much to expect everyone to set up their computers to run, say, Textmate.

But my real point is that sitting as passive audience members makes the experience less enjoyable. I know, I know. The logistics of having something participative is awful. This is why colleges use lectures too. English discussion groups are tiny, usually having only 20-30 people tops, so that more people have a chance to speak.

Do people want to learn in this fashion? Perhaps this is too much to expect from a conference. Maybe with such a size, it's better to have people hear a bunch of ideas, and take what they can use, even if they can't remember it all. Again, as Ze Frank pointed out, we remember the emotions of a conversation, not the content.

I found the BOFs to be interesting because one thing you don't get it a sense of where everyone is coming from. I sat in a BOF about bioinformatics. There was a sophomore attending Rails! And he was doing something like bio! What the hell was he doing there? Actually, I didn't get a chance to ask him that, but I was curious about why he was there, and this is something I wouldn't have known by sitting in a lecture.

One reason I liked the tutorial was an incredibly short interlude (about 15-20 minutes) where Jim Gay and I worked on his Mac coding up a new tiny feature in Ruby. Neither he nor I were that experienced, but we muddled our way through some of the code, and got something to work. Now, I knew what I did wasn't completely TDD approved. In particular, I made a bunch of changes without testing it right away after each tiny change.

But once we did that, and Dave and Aslak began to do their editing, we could see where our approach differed from theirs, and that was very instructive. I was also able to speak with Jim (the few times I could find him) and Paul (his biz partner) which I'm sure I wouldn't have done if we hadn't done the pair programming.

Other things. Well, the food wasn't that good. We had box lunches each of the several days it was held. By contrast, No Fluff, Just Stuff had food for all of us catered (probably by the hotel). There was chicken, cuts of beef, salad, bread. Very nice. They had coffee at every intermission. Not so many places to sit and rest, and no wireless, so maybe that's the tradeoff.

I'd suggest a few rooms for teaching sessions. There was a comment that the Rails community should give more, especially to beginners, and so this might be one way for people to contribute to others attending the conference. Have pair programming sessions, for different topics, and have people move around to work with various people.

Perhaps there should be a "Ruby" or "Rails" quiz session where puzzles are given to people to work on, and clever solutions are presented.

I'd like to see it more interactive.

Hmm, well, if I think of more ideas, I'll blog about it.

Positive Notes on Railsconf

Although I've been critical about Railsconf (easier to criticize than to say positive things), the experience was generally positive. I'll devote another column to things I didn't like about Railsconf, but even if that column is much longer, overall I was pretty happy with attending.

To put things in context, you're not going to (for the most part) get a lot out of the talks in the conference. Unless you learn particularly well listening to not very good talks that are a bit too high-level or a bit too in-depth, your goal as an attendee is to get enough ideas and concepts to move on.

In particular, I'm at least a lot more stoked to try the stuff out on my own. I've heard of Ruby on Rails for a while now, at least a year, but haven't really pushed myself to actually do anything about it. I had hoped attending this conference would push me to take that next step, and I think it's done just that.

I've also gotten more excited over test-driven development. Indeed, I'd say the most effective tutorial (I know others who already do TDD found that talk a bit boring, but I liked it) was the one by Dave Chelimsky and Aslak Hellesoy (I'm missing an accent somewhere), two of the core members of the RSpec team.

In particular, they did something you would think anyone who talks about TDD would do. They did a TDD session. And it really helped to have both of them up there. If, for no other reason, it gave two slightly different styles of TDD. Indeed, if they would create some videos of them doing some significant TDD, I think it would really help. Ruby makes TDD significantly simpler than, say, Java.

I can't tell you how many testing talks I've listened to (mostly through No Fluff, Just Stuff, even though their talks are generally of a higher quality than Railsconf) where testing is advocated, but not a single test is written! It baffles me how people can say it's good, and not write a test.

So, I'll rattle off some of the keywords I heard during the conference that I didn't hear before this.

"Edge Rails", which I assume is the latest cut of the Rails team developing Rails 2.0.

Mongrel. I still have no idea what this is, except it's related to servers and such.

Rails consulting. Because Rails is so easy to get off the ground (at least, compared to J2EE), people who wouldn't normally do their own websites can now do it. I think this, of everything, is the real big boon for Rails. Enterprise Java typically requires big companies to manage and develop. When running a decent website with a database becomes easy enough for one person to do, you're going to see more of these tiny sites.

Capistrano. It's supposed to make Rails deployment easier. Ah, deployment. When did that become the thing you had to know how to do? Imagine explaining this to someone who teaches programming that there's more than writing a program and getting it to work. You have to put it out so people can access it.

memcache. I'm assuming this is what it says it is. Caching in memory. The Twitter guys say they use the heck out of this.

Ditching the DB. The one really intriguing comment that Evan Weaver made was about getting rid of the database (i.e., Active Record and the DB) because most people don't really need it for the kind of sites they run (although he needed it). Indeed, he could have spun a talk out of this one titled Living without the Database: Alternatives for hooking Rails to DBs and gotten some traction.

The accordion guy. I plead guilty and say I've been watching American Idol. The guy who did the spoof on Creep by Radiohead not only did a funny spoof, played credible accordion, but didn't embarass himself with his singing. Lines like "You're so f'ing handsome, David Heinemeier Hansson". Props to Chad Fowler doing ukelele backup.

RailsEnvy. Both of the guys are way geeky, especially the guy who played the Rails part in this spoof of the "I'm a PC, I'm a Mac" ads, which have been spoofed often, but never quite as good or relevant as this (second place--the PS3 vs. Wii ads with women playing the roles of the two consoles).

Chad Fowler. Two words. Ukelele cool. Actually, he did a very nice job without drawing a great deal of attention to himself.

Dave Thomas. Still, for my money, one of the best techie speakers ever. He does so many things so well that you forgive him for his t-shirt/jeans combo that probably actually increases his geek quotient, even as it earns sartorial groans.

Portland Convention Center. It's a really nice convention center. Lots and lots of space. It lacks one thing which is a credible outside patio. ETECH, being held at a hotel, was able to host lunches outside, and that's nice (it was Portland, so eating outside was often not an option).

PDX. Wireless at the airport? For free? How excellent is that? Other airports, please take a note.

Portland. OK, I can't find any good restaurants, but free trains to downtown, Powell's Books, and wireless pretty much everywhere. Mad props to the city. That restaurant thing, though.

I'll add a blog about the downsides, which I've been kinda doing off and on anyway.

Monday, May 21, 2007

Comments on Railsconf



We've probably hit the saturation point on cat photos. Cat photos typically show either a cute cat, or possibly a demented one, making some comments about you (such as how they're messing up their computer). Usually, the speech is at the level of a 3 year old. There's something humorous about the combination of all those aspects. So humorous that everyone now feels compelled to add it to their slides.

Overall, the talks were hit or miss. Ze Frank made a comment, which Dave Thomas echoed, about how people remember a good conversation, the connection made between those in the conversation, rather than the actual content of the conversation. Oddly enough, this observation can be applied to talks.

Talks generally are a bad way to communicate information. If you have a lot of information, no one will remember it. Adam Keys had a funny intro, but once he started code diving, it became difficult to follow. This is one of those situations that either requires you to revisit the code at a later point, or have an uncanny ability to read new code (which I assume most of us don't), or have an interactive session, where you can interrupt the presenter to ask questions. Sadly, watching someone dig through code can be exasperating, because it requires a degree of patience that just doesn't come across well in a presentation.

Despite this, I feel Keys actually had a pretty good presentation because it forced me to think about how I would go about reading code, and even reminded me to read code, from time to time. Even if I didn't follow what was going on, just watching him go through code is so much more valuable than having him tell me to go through code myself. As they say, show, don't tell.

Keys had a high degree of difficulty in his talk, so I have to give him props for pulling it off as well as he did.

Two other talks were pretty good, even as the degree of difficulty was somewhat less. David Verba's Practical Design for Developers takes its cues from a book (or essay?) by Jesse James Garrett called The Elements of User Experience. This is the kind of talk that doesn't try to do anything particularly challenging, but is so chock full of interesting ideas that seem obvious when you're told, but you realize isn't always that obvious when you go through it. Amy Hoy gave a similar talk, though hers was aimed at the interaction between designer and developer, so they didn't overlap.

Some presentations were awful. High on this list was Rails in Higher Education. This was bad in so many ways. There were two positive notes. First, the topic is kinda interesting, at least to me. Second, he wasn't a horrible speaker. But this was one of those talks which is almost content-free. There were talks that were kinda close to that, but still ended up being moderately effective.

First, he was a one man operation. The plus side of this is that it can be done with one person. He spent some time talking about IP (intellectual property). That's a concern, but how widespread is it? What about the actual educational software you're writing? Why are there no demos of it? How effective is this style of learning? Are you doing anything fancy like the big boys in Rails are doing? Does it matter?

Even with its problems, it had some redeeming points, though none of it Rails related. He complained about the quality of student programmers he was getting from the CS dept at Nebraska. Also, there was a complete disconnect between him and the department. Since I've been in academia, I understand this issue all too well. Academia often looks down on hyped technologies, preferring, their older knowledge. I think there are ways this talk could have been improved.

Sometimes just the lack of good speaking skills can hurt a presentation badly. Andrea O.K. Wright lacked much passion in her speaking, and the volume was too low. It's too bad that basic volume is so hard to get right, but if it's not done right, it can hurt a presentation. Evan Weaver had similar issues. It's clear he's a smart guy, but his slacker appearance, plus a bit of introversion, plus a lack of good focus in his talk made it meander all over the place. And this guy had plenty of cats. So you know things were tough!

Even so, I felt there was a core of some much better talk buried in there somewhere.

As I said before, the Twitter guys didn't say a whole lot. It felt like the slides were created in an hour. Even so, it had some level of effectiveness, even if they went for the usual cop-out--the Q&A session. One good point in their favor: they made short and sweet points, which wasn't the case with, say Evan's talk.

Then, there's a problem with the way these presentations work. It's hard to tell if any of these talks are going to be any good. Once you sit in, you realize, aww man, why did I sit in this talk at all?

Let me back up some. Railsconf is structured as a keynote, plus 3-4 sessions of 4-5 speakers speaking in separate rooms for 50 minutes each. There's a lunch break in between.

I have to think there must be other ways to organize a conference besides this usual way. BOFs begin to approximate the kind of interaction that you'd like to have. I don't have answers, but I feel like there could be something better.

And it might help if the full presentations were completely vetted before being accepted to at least try and improve them.

Comfortably Numb

I was reading Chad Fowler's blog entry (cuz Jared Richardson told me to in his brand spanking new blog) about being in India and the kind of poverty that surrounds India. He felt that it was easy to become numb to the suffering that goes on in India. I saw a few of the things he did when I was there. A kid carrying a younger kid. I suppose that should have shocked me, but few things do, and I took it as a matter of course as much as the locals do.

Here's the interesting part, and it's going to seem awfully callous. Indians seem to react to the begging much the same way we react to the homeless. Of course, we might feel justified ignoring our own homeless. We say to ourselves that they use the money to buy alcohol or to get drugs. I have a friend who used to offer to buy them sandwiches, to guarantee they wouldn't use the money in this way.

There aren't many people that make India their final destination. The US is plenty multicultural. We have African Americans, Latinos, and Asian Americans of all sorts. Heck, the population at UCLA or Berkeley might seem positively Hong Kong or Singapore by many standards. I've talked to Indians who tell me that they have visited places in the US where it feels like they've never left India. They can get feeds from the home country and watch cricket matches and hoot and holler with their neighbors to the north (that is, the Pakistanis).

While there's a fair degree of mobility within India (a great deal of Keralites have relatives in Dubai) with Northerners and Southerners moving around, not too many emigrate to India. Indeed Indians are likely to emigrate to all parts of the world.

When they see a foreigner like me (and I look Asian beyond that), they think rich foreigners. They can sometimes engage in what they consider a scam. They charge you ten times more than they would a local, but you think it's a complete bargain. I bought some postcards (10 or so) for like 40-50 rupees. This is like a dollar. My companions said I was being ripped off, that I could get it for some amount less.

Another person suggested I not tip my driver lavishly. I paid him about 60-70 US dollars for driving me around. He was already being paid, and I could have easily doubled his salary or more for that same time. I felt guilty, but one Indian advised I shouldn't have done this, lest they try to rip others off in the same manner, and become expectant on such largesse.

Indeed, for as generous as Indians are, they are also pretty frugal, which comes, I think, from a bartering system. Once you can barter for anything, you wonder why you have to pay a tip. There's plenty an Indian coming to the US for the first time that feel ripped off to pay a tip. Indeed, I was told to tip very little in India, if at all.

I once was at a restaurant where three guys wanted some kind of soup, which they asked the waiter to give "two by three". What they meant was to take the quantity of two soups and divide it three ways. And they do it too! Imagine that in the US. They couldn't even deal with the math!

Chad Fowler could give plenty of money to Indians he sees. It's his money, and he can do with it as he pleases. But it's interesting to see that even the Indians find this problematic. They find the same reasons to be annoyed, even if alcohol and drug use are far less common, and food is comparably cheaper.

He could complain that the caste system is awful. Or that women in villages get stoned sometimes because they were raped by others. These are shocking to Americans. Even educated Indians find this totally shameful, and attribute this to backward ideals of the village. Still, these attitudes can't be completely discounted. Many Indians still head back to their village where they grew up, trying to reconcile with Western ideals that advocates alcohol, drugs, premarital sex, dating, a female being alone with a male, public displays of affection.

India is a country in transition. Even as we sometimes look at India and stare aghast at the poverty, yet marvel at how much family means to Indians, and how technology is transforming the country, much like Japan, they are struggling with morality. It's funny how Christian conservatives lament the moral state of America, blaming this on a lack of Christian faith, and yet, Hindu India shows far more consideration of family than Americans.

Bhimrao Ambedkar, one of the members of the untouchable caste, fought against the caste system, which leads to Indians segregating. While the country has fought against it, there are still many conservatives who forbin marrying outside the caste, let alone marrying outside the religion. Indeed, caste ideals are still profound. A Gujrati who works at my company says that his people are businessmen. Castes were often divided into occupations. Brahmins are the educated caste, and our team consists of about half Brahmins.

Are castes that the root of some of the disparity in India? Chad Fowler could give money, and it could locally solve the problems of one here or two there, but there may be underlying issues that will take a generation of attitude changes, and even then, there is likely to be resistance.

Consider Richard Gere's kissing of Shilpa Shetty. Public displays of affection are frowned on. Although the taboo of on-screen kissing has been broached, Indian actors still make the worst kisses, afraid of passionate kissing despite passionate story lines. While a vocal minority found this reprehensible, it was nevertheless something that bothered some Indians. Educated Indians sometimes find it sad that their countrymen act this way, but their countrymen may find such attitudes correct, believing the sexual freedoms of Americans are bad for Indians.

It's a difficult situation, made more interesting because the world of India seems so near, and yet so far.

By the way, it's amusing that one of the comments refers to "Comfortably Numb". Of the Indians that are educated, Pink Floyd seems to rule.

Sunday, May 20, 2007

PDX Rocks

It's sad to realize how many airports either have inadequate WiFi, or make you pay for it. I was in LAX, and it wasn't obvious whether there was WiFi at all. I mean, LA! Of all places! San Jose was better, but I recall you had to pay. Chicago's the same. Everyone wants to make a buck on WiFi. Portland, as a whole, is relatively decent when it comes to connectedness, though apparently, the US is a far cry short of countries like Japan.

I'm sitting in at Portland airport which gets the designation of PDX at a Booya juice. I get all sorts of fascinating facts about Portland from various people who were originally from the Maryland-Virginia area. From Chadd and Laura, I find Portlanders like their beer and wine. I had two or three kinds of local beer, plus Fat Tire which, I believe, is more of a Washington beer, in addition to Mirror Pond, a local brew.

From Jim and Paul, the two guys I met from Virginia doing Rails stuff, I learned Portland has the highest per capita homeless teens, as well as the highest density of strip clubs. Ah Portland.

I should fancy meeting people that have come cross country like myself. I met with Amy Hoy, who gave a talk about designers and developers. She happens to be from Maryland. Even Greenbelt, which is 10-15 minutes from where I live.

Then, there are several North Carolina boys, from folks like Justin Gehtland, Jared Richardson, Nathan Talbott, and Matthew Bass. Makes you think they should host some more things in North Carolina (they are hosting Rubyconf in November, so that sounds good).

Hmm, I guess I'll review the third day. This is like my American Idol review except I don't review American Idol. First, I listened to Britt Selvitelle and Alex Payne on Scaling Twitter. One of the two guys really couldn't get his microphone to work properly. He really should have stood over the mike the entire time. I know the temptation is to walk around, but it didn't work. Worse still, the pronunciation wasn't so good either.

The talk was surprisingly lacking in content (I thought), but oddly enough, that made it a little easier to follow. Most of the time was spent in a Q&A. On the other hand, I didn't know that much about Mongrel or memcache, so the details they gave were a little beyond me. It's hard to get a talk that is at the right level. Oh, did I mention? They used cats in their slides.

I went to Amy Hoy's talk. She's a designer who's picked up some development. Did she have cats in her talk? She might have. It's the in-thing, which means it's on the way out.

Her talk was pretty good. She mostly laid out ground rules between developers and designers. By designers, she is referring to interaction designers such as herself. There appears to be a dearth of such designers around partly because you need to be decent in art and be technical enough to know coding, such as CSS, HTML, and even something a little more hardcore like a little Ruby or Java. Designers who do web stuff tend to be on the geeky end. Although I can't say I learned that much about design, it did shed some light on how one should work with them. And you can't say she's boring.

Since I was on a roll with women speakers, I was hoping that Andrea O.K. Wright would have a pretty good talk. A.O.K. seems a bit frazzled. Well, her hair did. And she seemed a bit cold. Mostly, because she was wearing a large coat. You know, this is one case where I think maybe if she had a better presentation voice, things would have been better. Again, mike issues. She didn't sound particularly loud, nor particularly into her talk. You get a guy like Adam Keys, whose voice can be deadpan at times, but says funny stuff nonetheless.

Wright appeared to be balanced between reviewing easier things and hitting something a little more challenging. She did try to use Harry Potter to make things more exciting. But it would help if she sounded a bit more into it.

Like I said, I'm trying to conduct this review much like those people who review American Idol on YouTube, where they say how ugly this dress is, how hideous the hair was, and so forth. At least, I'm not being that mean.

Ultimately, good speaking involves not only good subject matter, but a good presenting style. And it is a kind of acting, so the idea isn't quite to be yourself, but to be a better version of yourself, or the thespian version of yourself. Channel Dave Thomas and do good!

Ah, Dave Thomas. Please Dave Thomas, enough with the t-shirts and jeans. They don't flatter you! But Dave is a great speaker anyway. He's realized a useful commodity. Don't lose the British accent. Don't sound like the Texan you could be.

Second, good speeches involve a little bit of suspense and twists, and my if Dave Thomas isn't quick on his feet. He was talking about having a problem with his wardrobe or some such related to a microphone. Dave is such a pro that he knows when his voice isn't projecting as loud as it should. He had mike problems early, but corrected it, so it wasn't the distraction it was like the Twitter guys or Andrea Wright. I was thinking about the infamous wardrobe malfunction of one Janet Jackson. And that was where Dave Thomas was thinking too. He said "I'm glad I'm not Janet Jackson!". Those clever Brits!

I had heard Dave Thomas's presentation on cargo cult before. A great speaker makes speeches you've heard before still sound great. To be fair, Dave can change up some of the talk picking different cargo cults. Dave also is smart. He pays attention to speakers like Ze Frank, and takes down useful quotes, and spins them into talks. There's a savviness to observe others and use what they say in your talk. For one, it effectively summarizes the conference. If you had been to the keynotes, you say, ah, that is right, that is what he said.

Dave Thomas had a picture of some guy sitting in front of some ancient IBM (the 3270?). He asked the audience what he was sitting in front of. Someone yelled "A desk!". He goes "A desk! That's why we shouldn't invite designers!".

Dave also mentioned how much money was raised (26,000 dollars) and wanted people to continue to raise money at other conferences. He did say that he felt like an NPR begathon. As a guy who listens to a fair bit of NPR (or used to), I know what that's like. At 26,000, the average person would have donated 10 to 15 dollars, which, of course, meant, probably half the people chose not to shell out the bucks (for the record, I did give 75 dollars). On the one hand, I thought it was a bit of a steep donation. On the other, I spent like 900 dollars on attending Railsconf to begin with (not to mention flights, car rental, and hotel costs--adds up!).

Afterwards, people gathered outside to talk. I saw Chad Fowler. One thing is, he's a tall guy! I ended up talking more to his wife than to Chad. We discussed stuff about India.

I also saw Evan Weaver. He's tall and wiry thin. The guy doesn't appear more than 140 pounds. He's also a bit on the quiet side, and so it was a little difficult trying to talk to him, so I ended up not talking to him. I saw Adam Keys (the real one), but didn't say anything to him. Matt Bass was sitting at a couch punching away at the computer. I saw the Rails Envy guy who do a version of the "I'm a Mac, I'm a PC" that opened up each of the keynotes. They did a pretty good rendition, even if both guys look spectacularly geeky.

I'm sure I missed out on several of the other folks who spoke. I saw the African fella who was in the documents BOF. He seemed to be around a bit. I saw the guy who I sat with for breakfast the first day. He was into some hardware verification or some such. I bumped into John Guerin, the transplanted Portlander. He had his UVA shirt, and it seemed he's actually much closer to my age than not. That was surprising since he seemed like he was 15. As I said earlier, I met up with Jim and Paul again. Jim was the guy I paired programmed with during Dave and Aslak's TDD talk. I didn't see them really on Saturday (and I was looking around!). As it turned out, Jim saw me this morning, then I saw him again after Dave's talk.

Well, that wrapped up Railsconf. It was raining outside, so I stayed in, looking completely lost.

Eventually, I headed to the hotel. I wanted to eat at an Ethiopian place which was allegedly about a mile from the convention center. It turned out it was even closer to the hotel, so I walked several blocks to Queen of Sheba. It wasn't quite like what I had had at other DC area Ethiopian places. The chicken seemed liked stir-fry with mushrooms and Ethiopian spices. At least, it was spicy hot, which I liked. I also had mustard greens. It didn't seem prepared like I had tasted before, tasting more like, well, regular mustard greens.

As usual, I stuffed myself while drinking two Oregonian beers. Then, I decided to walk back to the Convention Center to see if anyone was still there, but by then, which was nealry 7, the place was locked. I headed back to the airport, got directions to the airport, dropped the rental (dadgum, there was no gas station nearby, so I had to go in un-refueled, and pay like 20 bucks for it).

And that's where I am now, sitting by Booya juice, with my juice done. More than likely, I'll get some coffee, and wait a bit.

I'll give my impressions of the entire conference, good and bad afterwards. Realize that I'm giving an opinion from a guy who barely knows Ruby on Rails. However, the last few days, I've heard enough keywords to help me look forward to getting stuff to work.

West Coast Bias

Because of Silicon Valley, Microsoft, and such, there's a lot of programmers on the West Coast, from California up to Washington State. And, California, especially Southern California is nice, typically, year-round. Because of this, a lot of programming conferences, especially those hosted by O'Reilly tend to be on the West Coast. ETECH has been held in San Diego and was held there again. Rubyconf which apparently held in Chicago last year is now held in Portland and will be held there again.

To be fair, the big cities in the central US (Chicago, St. Louis) and those on the East Coast (Washington DC, Boston, New York) are probably both huge, filled with traffic, sprawling, and doesn't give you the warm fuzzies of smaller cities like Seattle, Portland or San Diego. Many of these West Coast cities also have better than average wireless connections, which is key for techie conferences.

Even so, the travel time is really a pain. Places like Chicago, Minneapolis, St. Louis, and so forth, are central to the US. I was glad to hear the Rubyconf will be held in Charlotte which is much closer than where I live (out in DC) than Portland. The problem, obviously, of West Coast to East Coast travel is that you either have to leave in the middle of the day, or take the red eye, that is, take an evening flight and arrive the next morning.

Railsconf, for example, will end at 4 PM, but I know several people that will take flights at 10 PM (including me) or later, and so we have quite a few hours to waste until that time. It would be nice, at the very least, for the conference to have something for us to do afterwards. Those who have to run can run. The rest can hang around to do some sponsored activities.

And of course, there is the hassle that people need to check out by noon, and so they have luggage with them. To their credit, Railsconf is willing to hold onto the luggage, but just until 4 PM, when the conference officially ends.

I suppose this West Coast bias has as much to do with the city's ability to host a techie conference and being relatively nice. If there's traffic issues, if there's crime, if there's lack of hotels, if it's really expensive to stay. Indeed, were it not for the fact that people like "nice" places, they really ought to host it at a college campus. I realize living in dorms sucks, but the cost would, in principle, be considerably less, at least, if a college campus were pretty smart about it. And believe me, hotel costs are a pain.

I know that won't ever be the case because conferences feel the need to be "classy" and college campuses, while getting "classier" over time, are still pretty much college campuses, which means rooms are made on the cheap with tight spaces, and then students aren't known for keeping the place nice, and the hired help aren't at the caliber of a good hotel.

I realize this complaint is rather fruitless. For a variety of reasons, people prefer to host these on the West Coast, and it may be one of the issues where the solution is (sigh) move to the West Coast (or at least, to Chicago or Denver).

Rant off.

On the Fringe

College has always been more than just about the classes. Teens are coming of age, learning how to relate to one another, no longer held as tightly to parents as they once were. Beyond the classroom, there are clubs, social organizations, sporting organizations, fraternities, sororities. It's quite possible, I suppose, for someone to be completely oblivious to all of that, to simply go to classes and come home and do homework.

I was looking at the Railsconf webpage the last few days. What I didn't pay attention to were the posts that people were making. With most O'Reilly conventions, there are companies and these companies want to get attention. What better way to do this than to host parties and pay for beer? There were several offsite get-togethers, parties, hackfests, and so forth.

Which was all fine and dandy except I didn't read it until this evening, the night before the event ends. I wasn't too unhappy about that. I didn't come to the convention to go to parties and meet people. Even so, it's surprising how the organizers didn't point this out, point out the extra events occurring at the periphery of the main event. I'm not saying I would have attended. The event is tiring in any case, and sleeping is something I like to do.

I'd be willing to say that there was a sizable minority that didn't know these events were happening either. Of course, there were folks that knew these events were happening but chose not to attend, whatever their reason.

I spent Saturday evening attending two BOFs instead. The first was on bioinformatics, a topic I wasn't sure I was interested in, but was fascinating because it's not a mainstream Rails topics. Indeed, what it suggests is that many people see languages as part of a whole. Can Ruby integrate with Python? Or C? (That I know it can do). Or Perl? Integration across languages seems like a big issue because of legacy code that people don't feel like translating. And, one way to push the popularity of a language (or a platform) is to write software for niche areas.

Indeed, software exceeds the bounds of what mainstream coders do. In a Rails conference, you think of typical uses of Rails. Anything that basically stores data in a database, so called CRUD operations. Yet, there is a huge scientific community that needs programs written. Historically, they've written bad programs because scientists were not programmers. That's quickly changing.

The next BOF I attended was about RSpec, a way of writing specs and unit tests that sounds more like English speech. Two of the core members: David Chelimsky and Aslak Hellesoy ran this event. They work pretty well as a pair. They're kinda like the Siskel and Ebert, without the arguments. It's like Batman and Robin, except David's more avuncular, and Aslak is more German. Er, Danish. Something :).

I had never heard of RSpec before, but apparently quite a few people attending the BOFs had heard of it. One interesting aspect was the kind of description they could make. For example, they tried to describe bowling. However, they could only describe it giving examples. If you bowl gutters all the time, you get a score of 0. If you bowl a perfect game, you get 300. If you bowl 9's every frame, you get a 90.

However, they can't seem to specify the rules of the game, and how the scoring works. Presumably, such specs requires some logic language, and then that requires proof systems. RSpec is syntactic sugar on top of unit tests. While it may change the way people describe their tests by forcing people to think about behaviors, I'm also convinced that there are behaviors that are natural that are far too complex for RSpec to handle, because, as I mentioned earlier, it would require proof systems.

I wonder how well Railsconf works. I had a complaint about ETECH. It can be quite hit or miss. People who talk sometimes give good talks, sometimes not. Unfortunately, it's hard to walk out if you're in the middle of it. I like to sit at the front row so I can stretch my legs, hear questions, and ask questions easily. However, it's tough to leave. I felt there were at least two bad talks I attended today.

I should quickly comment on Nathan Talbott who gave advice using a Jeopardy style game where he gave away real cash. It worked well to encourage discussion and pointed out some interesting ideas. However, it also suggested a certain kind of business. In particular, one where you seek contracts.

He could have pointed out what kind of people seek coders, and why he likes this model instead of making a product and a website people visit and purchase. There are somethings one person can do, some that 2-3 can do, and some 20-30 can do. Clearly, he's aiming at the small size, and that limits the kind of code you can write. For example, you aren't going to write a search engine, and probably not a blog management tool, and probably not even fantasy football. YouTube sites are likely to be too much for the average Rails developers.

I sometimes wonder, attending such events, whether the format is good or not. We attend lectures because we are at a convention center. Can we do something else? The idea of a conference hasn't changed that much. Indeed, the software for doing demos still pretty much such, especially figuring out how to transition to live demos. There's no convenient way to organize that. You would think virtual desktops would help solve this problem (there are issues with Internet connectivity too, as events like this require voracious bandwidth).

And you realize tons of people blog and blog, and that my blog, not having a particular tech bent probably has a tiny readership. I don't mind that. I write just to write.

Tomorrow I gotta get up and pack. Fun stuff.

College Days

College is one of those unusual environments, an experience we've never seen before, nor anything quite like it since, especially if you stayed on campus in a dorm. For one, if you stay in a campus dorm, then everyone moves at the same time, each fall. This means, unlike real life, you can better coordinate living with other people.

College life also means late nights spend studying for exams, writing papers, coding if you're a computer science major. Often, this is done with your pals, working at the libraries or some empty lecture hall. These days, with everyone having a laptop and wireless Internet on ever campus, people huddle together, tied closely to the umbilical cord that powers their laptops, and stare at the warming glow of an LCD screen.

Conferences like Railsconf approximate this feeling. We're in a large conference center, the Portland Convention Center, with its tall ceiling, its escalators, its large rooms, with large round tables situated outside with extension cords. Geeks gather close to one another like penguins in search of heat. Information exchanged.

One thing that seems to unite a great deal of the Rails developers. Apples. Most likely Macbook Pros. Few of the guys are using the cheap white Macbook like I'm using. Perhaps it's because they use it for work, and work is willing to provide them with a top-of-the-line Mac.

The problem with 1600 attendees is that it's hard to meet anyone in particular. The BOFs sometimes do a better job, especially if everyone introduces themselves. In particular, I've found there is a small group of people using Rails to do scientific work, specifically in bioinformatics. You would think this would only interest, well, no one, yet, 20 or more people showed up.

Now I have no particular interest in bioinformatics, so what was I doing there? First, I know of a professor doing work in that area. Not well, but I do know of it. Second, I didn't do half-bad in a biology course I took. OK, it was high school, but it was AP Biology. Third, I was just curious how something that seems aimed at Web development would intrigue scientific programmers. Finally, scientists have historically been bad programmers, using poor variable names and sprawling spaghetti code. Yet, here were these folks at Railsconf who should be near the top of their game (or in that vicinity).

Over time, non CS types have become far more adept at understanding the software engineering process. Furthermore, CS types have understood better how to communicate with scientists, even majoring in science, as well as having a deep interest in programming. The two fields (science and computer science) have gotten much closer together.

Issues such as scaling, database access, looking to languages like Erlang to get concurrency are sufficiently advanced topics that illustrate the know-how of the people involved.

Indeed, on the first day, I was listening to guys talk about formal hardware verification. It was all plenty impressive.

It certainly feels like a different crowd from ETECH which attracts non-programmers as well, who are interested in technology in general.

Right now, I'm seated at a wall, trying to install Rails from a book that might be six months old, and trying to figure out how to make the appropriate changes. There's one more day of this, then a flight back, and back to the "real world".

It's occasionally fun to go back to the closest thing we have to reliving college. Someone was advertising free beer at some local pub downtown. I didn't really drink in college, and while I drink a fair bit more now, I'm likely to pass on this session. Perhaps I shouldn't, but the hour is late, and there's only one more day left, so I'd rather get the sleep.

Perhaps that tells me that this is real-life and not the dream world of college.

Saturday, May 19, 2007

Practical Design for Developers

I've been taking some notes as I listen to the various talks at Railsconf 2007. I thought I'd try taking notes live as I listen to a talk. The last one I attended, by Jarkko Laine, was awful. It was a bit too high level. It didn't help to listen to Jarkko's halting speech. I understand he can probably speak a dozen languages, but it is awfully distracting when there are stops all over the place. But beyond that, the content was very light. I thought Matthew Bass's (oh, he's sitting in the row behind me!) was light too, but was at least interesting to follow.

David Verba has started talking. He's working for Adaptive Path, which does some UI stuff.

It appears his notion of design is more visual, rather than structuring code. This is the problem with a vague word like design. He wants to present a framework for understanding design.

Design, in this case, appears to be from the users' perspective. How well does the design work for the users. The application he's talking about is a self evaluation for teachers. It was originally a desktop app, but for whatever reason, they moved it to the web.

Since self-evaluation requires a long time, and teachers lack time, adding features to indicate how far along you are is useful. He says that you really have to understand who your users are. In the case of teachers, they can only work in short breaks.

He uses low fidelity wireframes to give users a sense of what's going on. Know their context, motivations, and challenges. He's referring to a book called "The Elements of User Experience".

Layer 1 is what it looks like. Skeleton, structure, scope, and strategy. These are design issues. Often developers control skeleton and structure.

The idea is to get between your goals and your user's needs. This is the so-called sweet spot. The stakeholders are the people who have an interest in the outcome of the product. Then, find out what they want. It's worth it, he says, to find out what they really want.

Functional spec describes what needs to be built. Companies often distinguish themselves. For example, Flickr emphasized sharing, even to the point of not having printing, which most other sites had. "Don't try to be everything to everyone!".

Launch with a core set of features, then fill out afterwards. This allows changes to occur over time.

So far, this sounds a lot like Matthew's talk. He talks about users and getting feedback. The biggest difference is Matt used a specific example of his own code, where David is covering more examples from all over (also including some stuff he worked on). He's explaining a diagram I've seen before from Jesse James Garrett, the guy that coined Ajax.

What's the interaction going to be like (pages, popups, layers?). It helps to have common UI elements so people get familiar with the site.

Also, worry about granularity. apple, pear, banana, and fruit aren't all at the same level. Think about it from the user's perspective: human resources, employment opportunities, jobs. Jobs is simpler.

Consistency refers to using the same terminology all over the place (e.g. "about us" vs. "who we are").

In many ways, this talk is about interaction design. For example, how do you decrease the amount of work that occurs when errors are made. Farecast, for example, allows for users to use sliders to change options so they can explore.

Overall, there appears to be a lot of good information, at a level that's not too hard to follow. It's a bit difficult to recall all of it, but I'm sure you can just get the Garrett book on user experience.

Robin Williams (no not that one) has the "Non-Designers Design Book".

The "CRAP" principle: constrast, repetition, alignment, proximity. Little changes can make big improvements.

The slides

Overall, a pretty good talk about design.

Cat Power

A few months ago, there were a bunch of posts of cats with funny, somewhat leetspeak dialogue as if the faintly unintelligent cat was uttering them. Somehow this resonated enough with geeks worldwide that the lesson learned was "put a cat in you presentation". I've already been to three talks already that used cats in it (and one that used a dog). Evan Weaver used cats extensively. Jarkko Laine used one cat in his slides. Adam Keys opted to show a lot of dogs, mostly his own dog.

Why do these geeky cats appeal to us? Maybe it's their propensity to get everywhere, including computers. Wil Wheaton has cats, and he's a geek. Dogs don't seem to get in these messes.

Of course, cats could suffer from overexposure. Pretty soon, people will say "Cats? That's so 2007!". But you can never underestimate how cats can enhance your otherwise mundane talk.

Pretty soon, other animals will join the frey, from lovable gerbils to exotic fish to parakeets, to wild emu. Heck, most of these are already on the covers of O'Reilly books, like screenshots of Jumanji.

Well, that wasn't much of a blog entry, so I shall stop.

All your cats belong to us!

Meeting Folks

Chad Fowler, conference organizer for RailsConf 2007, had a directive. Meet someone new. This is, of course, an issue for people who are introverted as so many software types are. With 1600 attendees, the likelihood you're going to see more than a small, small fraction is highly unlikely. In any case, it begs the question: why? The ideal case is that you meet people that you can do business with, or exchange some expertise with. Sure, there's just meeting someone new, but the likelihood that it turns to something that lasts beyond the encounter is rather low.

Today, I met a guy named John Guerin, who looks 15, but apparently is married and a recent Portlander, having lived in Virginia. He works for a financial company, but they are starting to do Rails. He used to (still does?) work for some place called Record Theory which has something to do with music, though I think it would be funny if it had been called Active Record, which is amusing for those in Rails.

I met another guy who's name I didn't catch. He's attending Portland State University, studying civil engineering, but seems to like coding, perhaps more than he likes civil engineering. I gather he's attending on student discount. Being local, he doesn't have to spend mucho dineiros for the conference. I wouldn't have thought to attend such a conference at his age.

On the tutorials day, I pair programmed a bit with Jim Gay, who apparently lives rather close by in Northern Virginia. He's attending with his business partner, whose name I think is Scott.

Of course, I mentioned Jared Richardson who wonders when I have time to write long blogs. (Speaking of which, he needs to beef up his blog entries =)).

I also talked to John(?) McAnnally or something close to that who codes but is also attempting the daunting task of documenting rails, which seems akin to having three cats sit still to get their picture taken.

I was going to say I was going to meet Chad Fowler. Who knew he was going to organize the damn conference :). Haven't met him yet though.

Well, that's it so far.

White Out

Usually, when you attend something like RailsConf, the idea is to learn stuff, and in this case, learning about Rails. But I tend to notice a few other things. One thing I pay attention to is the demographics.

The conference is overwhelmingly white and overwhelmingly male. The male part is not so surprising, but the white part is interesting. Beyond the vast number of white folks are Asians, and really, I mean what was traditionally known as Oriental. There aren't really many Indians (from India), which I find interesting. Is this because Indians prefer to work for larger organizations and that Rails is a fringe idea for people wanting to run a small business or consulting?

Is this notion of safety a reason why there are so few women as well? Already, there aren't that many women developers, but probably the percentage are even more dire for those on the bleeding edge. There are plenty of coders that do standard stuff. SQL, VB, etc. They aren't the kinds of people who learn new languages for fun. They simply do their job and go home. That's it.

Of course, Rubyconf can't really solve this problem. Can they? It would require a kind of grassroots effort, such as hosting a Ruby summer school or something. The problems are really systemic and is not just part of the Ruby community, but the software development community as a whole.

And, of course, the price. I mean, it will cost me like 2000 dollars or so to attend. Most people don't want to part with that kind of money, so even as they want to learn more, they want it to be free or close to free, and yet, the speakers aren't interested in doing charity work, as they need to get paid too.

At last night's BOF on documentation, there was, what appeared to be an African American, though he sounded more African. He had interesting stuff to say, but I doubt I could find more than 5 African Americans out of the 1600 attendees, meaning maybe 1/3 of 1 percent. It's tiny. Women probably make under 5% of the population. Asians less than 10% which is an over-representation from the percentage in society.

We code, but there is a world around us, and it's fascinating to see those at the forefront of the field and what it says about education and culture in the US.

Hotel Wanderings

I haven't used my hotel room that much except as a place to keep my stuff and sleep. Well, I suppose that's what people do with hotel rooms, isn't it? You're at a hotel because you want to visit some place, but if you stay in all the time, well, why did you spend all that money going out there in the first place.

But, oh my, I just met Justin Gehtland!

Who? Yeah, that's the question, isn't it. Not exactly like meeting Justin Timberlake where someone might have heard about him. Justin is, I suppose, the co-founder of a company called Streamlined. Or maybe that's the product name. It's a Ruby on Rails enhancement. He's written books, been a speaker at Just Fluff, etc. He's got a beard too.

And he was on the same floor as me! 9th floor! Holiday Inn! I could have run over to his room and we could have rapped about Rails!

You know, if there's celebrity, there are celebrity stalkers. But are there geek celebrity stalkers? And is Justin Gehtland even at the celebrity level? I mean, is he Richard Stallman? Is he Donald Knuth? Is he, well, are any computer science/computer technologist really celebrities?

Oh, yes, there's DHH. That's David Heinemeier Hansson, but we all in the inner circle call him DHH. Because we can't pronounce his name. He should throw in another "H" in his name, sort of like J.R.R. Tolkien. He could be David H. H. H.

He's blond. He's Danish. He's a blond Danish. Mmm...Danish! (What do the Danish call a "Danish"? A "Swede"?) He's the closest to a rock star in the Rails world because he invented (extracted?) Rails. It doesn't hurt that he's moderately good looking (well, as coders go) wears odd shirts that probably favor the Threadless, Burning Man, Penny Arcade, local art crowd than the computer science types.

I suppose DHH could have stalkers. Teeny bop girls, er fanboys, crying when he writes out a snippet of Rails 2.0 crowd, throwing out the PickAxe book (oh, I know, a different Dave wrote that) to adoring fans. Ooh, me, me!

But this isn't quite that kind of conference, though I imagine it aspires to be something of an Amway experience, audience a-clapping, arms a-swaying, lighter a-flicking, wireless bytes a floating, coffee a-latte-ing. I'm sure medical conferences lack this kind of excitement. Of course, people claim high temperature super conductors was a Woodstock moment some 20 years ago for physics dude. We're hip (to be square!). We're freaks and geeks!

So, I'm making this experience of riding down an elevator to be completely exciting, all nine floors. I didn't even have a pitch to give Justin Gehtland, and I always figured the elevator pitch would be made going up.

Well, farewell, Justin Gehtland!

And hello, Jared Richardson!

As I was walking down the windy (that's with "wind" not twisting and turning) road towards the convention center, Jared yelled out from behind. At least, I've talked to Jared before. He had his Starbuck's, but I ate at the hotel, and the salmon omelette is just not agreeing with me. We talked the few minutes it took to get inside. He let me know that RubyConf is likely to be in his backyard. Might be worth going to.

Jared! Sign my SQL book!

Sigh. I'm just too old to be a good fanboy.

Rails Conf Friday

So this was the first "real" day of RailsConf. Thursday was a tutorials day. Friday started with Chad Fowler, organizer of RailsConf wanting us to contribute money to charity, which he felt would alleviate some of the bad rep that Rails lovers get for being, in his words, arrogant bastards.

From that point, there were 5 sessions, each about 50 minutes long. The first session was on writing clean code in Ruby by Robert Martin who modified the talk he gives in Java accordingly. He gave a moderately easy example emphasizing test driven development. Simple talks usually fare better than more complex ones. Sure, a few people will find it trivial beyond belief, but more people will get it than not. He was suitable energetic, even if he looked like, oh, I don't know, some cross between Al Franken and Peter Graves.

His simple message was that it's worth spending the time to keep code clean, but you have to write tests to make sure your efforts don't cause the code to break the tests.

The next talk I attended was Going Off Grid: Using Rails as Platform given by a guy, Evan Weaver, who looked awfully young. In many ways, he was as unpolished as Martin (the guy who gave the "Clean Code" talk earlier).

First, let me say something positive. Evan seemed like a pretty sharp guy. He's mucked around in the depths of Active Record, which handles persistence in Rails. He's messed with Django. He's looked at alternatives to databases and SQL which he feels is overkill for most web apps. This guy seems to have pretty serious programming chops.

Evan suffers from problems inexperienced speaker have which is they act the way they normally do. In many ways, speaking well is acting. You have to be more outgoing than you would normally be. And, you're there to sell something--anything, to us, the consumer.

For example, Evan started off discussing his bioinformatics project. First thing he should think about is "who cares?". It's a legitimate question. Most people aren't doing bioinformatics. So, he needs to pull out the key features of bioinformatics that could apply in other situations, or to at least characterize some of the issues surrounding writing code in that domain, and also make a compelling case why we should care.

If Evan had, say, pointed out that there are many domains where we simply have to interact with code written in other languages and that Rails has some shortcomings, then that might be a way to frame the talk.

If I had some advice I'd give to Evan, I'd say "write down what you want the people to get out of your talk--the top three points". That alone would improve his talk tremendously.

The second piece of advice. Speak louder. This is tough. People don't like to yell, and sometimes you practically have to yell to properly give a speech. This has a second advantage. It makes you seem more engaged. Again, speaking is acting, and you have to seem somewhat interested in what you're talking about.

In any case, what he said was over my head, though I'm willing to say it might have been suitably over a lot of people's heads. More focus on the presentation would have helped.

The cats were cute, though it seemed a common theme with several speakers.

The next speaker that I saw was after lunch, which I have to say, was moderately dreadful. I have braces and my teeth aren't great, so eating an oversized sandwich with tough bread was not so good. I have to give props to No Fluff for having decent lunches. These feel like econo-lunches, and were not very good. RailsConf should seriously think about how to upgrade the quality of food given the amount it cost to attend.

I went to a talk by Jeremy Sydik (I think) about Rails in higher education. His was the weakest talk I attended the whole day. I sorta knew this would be the case and still I went, hoping it would try to achieve something more.

First, many education talks end up not being about education. In this case, it ended up being about intellectual property and how universities want to patent software which makes it difficult to distribute education software. He also said he was a one-man shop. He basically said it was pretty easy for him to set things up, and did something basic within a week. His goal was to help others do something similar, i.e., how best to sell Rails to a university (the idea, not literally in terms of money).

There were several problems with the talk. First, like Evan, he talked a bit too softly. Second, other than pointing out that it's easy to develop in Rails, he didn't really have much to say about Rails. He didn't even show the applications he had written, so I don't know whether he wrote something completely trivial or not.

This is the problem with applying technology to education. Often, it's hard to write really good software. It's easy to write online quizzes, but do they really do a good job of teaching? One imagines AI that could adaptively tell you what your weaknesses are and help you coach you to get better at them, but that's an incredibly difficult problem.

Ultimately, the problem with education talks is that they are rarely about education.

And then he completed the talk 20 minutes early, and there was very little takeaway. It just wasn't all that useful. It would have been interesting if he had solved a problem in Rails that is peculiar to higher education but not seen in other apps. Or if he had some advice on what Rails features allows him to do that, say, PHP doesn't, other than its ease of use, or what web apps lack feature wise that prevent him from achieving a dream app that would solve all problems.

He didn't address the issues of what makes effective education apps. There was a ton of stuff he could have covered.

And to think, I could have attended a talk on video transcoding. I should have. That, or testing.

The fourth talk I attended was by Adam Keys. Adam is pretty funny in a deadpan way. He did a riff on this guy named Skip, whose ETech talk on identity zipped through 30 slides in what seemed like 30 seconds. It's funny even if you don't know he's making fun of Skip, but it's pretty nerdy of him to pull that out.

He wanted to talk about reading code. One problem with this is that any interesting code is likely to be tough to read. He wanted to illustrate the point by digging into code that inspired him, but it ain't easy to follow. He could have taken another tack, and decided to say what lessons he learned. Ideally, such talks would illustrate how he might have written the code once upon a time, and how he would now write the code based on what he learned.

Adam had a pretty high level of difficulty with this talk, but unlike, say Evan's talk, where Evan's talk lack real focus, Adam's centered on how to read code. He might have pointed out "wished for" tools that might make learning to read code better. Although he advocates reading other people's code because each of us has to do it, as gross as this skill sounds. Can we, however, write languages that make it inherently easier to read.

Indeed, code is often written to be read. It begs the question "Why is code hard to read?". Can we leverage what he and others have done to provide better running commentary of existing code, or is it simply something we, as programmers, ought to do (i.e., read lots of code) even as we find it distasteful.

Adam started off funny, but ended off a little too deep for me to follow. I'm not sure what I could have done. The idea of the talk seemed more interesting then the actual steps of watching him go through code. I doubt I could learn at the speed he was covering it. This seems like one of those talks that it's better to have a "coach" guide you one-on-one to follow the code, if you're unwilling or unable to do it yourself.

I skipped the next talk because I came to the following realization. Hotels that say they have high-speed Internet often have no clue if they do or not. They should advertise their download speeds, but they're probably too clueless to do that. I wanted to upgrade Ruby on my Mac to do Rails. But I need XCode, which is the developer tools that comes in a disk with the Mac but is not installed on it by default (too ostensibly save space, but now I think that's totally silly).

Unfortunately, XCode is a beast at 1 G in size. The convention center caps download rates to about 60K a second which turns out to be loads more than my hotel which dribbles in data at maybe a tenth of that. It's awful, and they probably don't even know it. I was thinking of going to Starbuck's and fishing out ten bucks to hopefully get higher bandwidth.

But I thought of another idea.

Maybe there's an Apple Store in Portland and they have the developer's disks which I can install.

And indeed, there was one, and better still, it was within a few blocks of Powell's, so right in the route traveled by the MAX. I was heading downtown for the second time today. The first was to search for a breakfast place recommended by someone attending Railsconf who lives in Portland.

Unfortunately, the location falls under the heading of "Stupidest City Idea Ever". Apparently, cities like streets to go on and on, and yet, when they do, they run out of numbers. No problem, we'll have the street have two names, one called SW for Southwest, and one called SE for Southeast. Thus, SW Morrison and SE Morrison. And although they may share a number, like 1300, they will be man blocks apart.

So I looked for this breakfast place and eventually found a different one, and used the city wireless (amazing they had some) to discover I was nowhere near this breakfast place. So I headed back up to the convention center.

Anyway, later that afternoon, after trying to locate the Apple Store, the guy said I had to download. But the wireless at the Apple Store wasn't really any better. Occasionally, it would get to 120 KB per second, which is great, but I needed something like 200 MB or more to download within an hour.

Fortunately, the genius bar guy (yes, genius is bandied too easily here) went to the back where they probably had a wired connection that was much faster than the wireless. He said it could be done in an hour. So I ate at the food court, then headed to Powell's, and eventually returned about an hour later. He had burned the disk, and I was able to install.

Then, I had to rush back, where I listened a bit to some guy talk about whether ROR was Enterprise or not, then another Smalltalk guy named Avi who said Smalltalk and Ruby were basically the same and so Ruby should leverage the Smalltalk VM to do its VM, and finally Ze Frank, Internet comedian, for lack of a better word, who was pretty funny, though possibly not all that relevant to the conference. And his name is pronounced "Zay". That finished around 9:30.

I then went to a BOF (Birds of a Feather) on documenting Rails. I though this might be about how people write books and how you keep stuff interesting for the reader. Instead, it was about how to document the API on a moving target and how the documenters want to document, but the Rails committers are making their lives difficult. Apparently, they used to value great documentation, but now they seem to value being able to make changes quickly, documentation be damned.

Compare this with a committee approach where a feature would have to be voted on and agreed to, which would eventually get documented, and possibly the documentation would also have to be approved. This would lead to better documentation, which would be at odds with developers trying to write new code.

I suspect that frameworks like Rails may need to really keep documentation in mind, to the extent that they may have to seek permission before making changes to the semantics, and it should make sense. This is always the dilemma between coders and documenters. Unless coders value documentation highly (and many don't), the documentation is always likely to suffer, especially because many coders don't want to be burdened by documenters.

And many of these documenters code. There are plenty of tech writers who don't seriously code, and then they try to document. That can be really tough. One thing you realize is that documenters code often as code is being updated. It's not as if they wait until the code is settled down, then document, because some things, like Rails, keep moving and moving, and if they waited, there would never be any documentation.

I had originally envisioned this to be a talk on how to write books for users, but it ended up being how difficult it is to write up-to-date and accurate documentation if the guys writing the code aren't a willing bunch.

I thought that was quite fascinating, if a little sad too.