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.

Thursday, May 17, 2007

Books A Million

Sitting in a Denny's is the closest modern day equivalent to being in a diner from the 50s. Those diners days preceded the notion of multiculturalism, of PC, of even the civil rights movement. Decked in leather jackets for guys and skirts and pigtails for girls, the greasy spoon was a symbol of the car generation of a bygone era.

I was munching away at a Grand Slam, the price a far cry from what was likely a dollar meal 50 years ago, if even that. This was more like five dollars, and the cheapest meal on the menu by a few dollars. This Denny's was a few blocks from the Portland Convention Center where I had missed getting off the "Max", the local light rail.

The "Max" is nearly a cross between a train and a bus. Its interior, with tan poles, purple seats, accordion hinged connections, and narrow aisles resemble the trains in New York more than the Metro I'm familiar with in DC. The Metro is more of a proper train, its tracks far away from the footsteps of casual pedestrians. The Max, on the other hand, crisscrosses through streets. The windows peer out into store front shops rather than the impersonal concrete lit by florescent that is typical of the the DC Metro.

To encourage downtown traveling, the Max is free within the confines, much like the bus system in parts of Seattle. The DC Metro makes smarter use of its labels. At any stop, you can see what stops the train is headed to next on columns thblaat are color coded. On the other hand, once you're on the Metro itself, you have to stare at the maps and listen to the indistinct mumbles of the conductor, who occasionally remembers to say what the next destination is, as well as print it on a poor excuse of a banner.

The Max, in that respect, is far superior. Its yellow dots form letters indicating the next stop. But it lacks the stylized map of DC to indicate where anything is, so carrying a map is vital. Fortunately, in downtown Portland, everything seems close to everything else.

My first destination, after settling in the Holiday Inn, which is trying to outgrow its rather bland roots, much like JC Penney tried to convince us that it's an up and coming Macy's is pleasant enough, is the bookstore of Portland, Powell's, so big that it's really at least two stores (the main and a technical books store) at different locations and possibly a third.

You'd imagine a grand bookstore might try to look particularly fancy, perhaps an Apple Store like decor. But then Powell's has been around forever. It's done enough so that its environ doesn't look decrepit, like looking at an old photograph of a bookstore from the 50s, where the fonts on the signs give away the decade.

Powell's bookcases are made of a tan wood, with books sprawled around. There's much more of a sense that these are second-hand books even if many books are actually new. It doesn't have the Barnes and Noble sense with dark wood that is both modern and seemingly old and, well, noble. The bookstore's sections resemble arms of a color coded octopus, with red rooms and gold rooms and purple rooms, upstairs and downstairs, and a chatty blond fellow recommending this dessert or that cookie along with serving coffee.

The staff seem knowledgeable and young, like modern day bohemians working part-time while studying at the local college in some major that won't quite be enough to make a living.

I want to stay a bit, but I also want dinner, and alas, like much of the country, 10 PM is the time when things shut down. I don't even know where to go eat, not having checked out the online city paper or the "best of" guides. I pick up a book on Oregon, some travel ditty. Unlike sister city, Seattle, which boasts several books just about the city itself, Portland is lumped with the state of Oregon, so it gets mentioned with Eugene, and various places to hike. Portland must wonder why it's the ugly stepsister to Seattle.

I also want to get a fiction book to read. But what?

I had been reading some short stories by Asimov, and he strikes me as a particularly clever guy, which is probably why he had longevity as an SF writer. I've heard of the Foundation series, now five in length, and decide I'll start off with the first book. I'm sure I've read parts of one of the books at some point, perhaps long ago. But it's long enough that it's worth starting again, so I give the cashier my credit card, not the Amazon one, lest they get a little indignant about the cast paying for an Internet business that cuts on their margins.

I then backtrack on the Max, finding the connection one street over from where I was dropped off, and use the map to see where I should be. Alas, I should have gotten off one stop sooner than I had, because the yellow line meanders off in some direction that isn't the Convention Center. I stop at the Rose Center, which is, I suppose the stadium that the Trailblazers play? Or some important center as such. The good news is the convention center has two spires that reach the sky for no particular reason but make for a particularly good visual beacon to regain bearings.

I walked in that direction, which turned out to only be a few blocks away, and began tracing my steps backwards, past the Red Lion, past the Denny's. Well, the Denny's. That's open late. I think I'll get something there, perhaps corned beef hash, if they have it. Surely, they must.

I head out 20 minutes later. It's 10:30 or so, and dinner at the Holiday Inn is no longer an option. I get to my room, open the laptop, wishing that they cared about getting real high-speed Internet. The signal only registers one bar, which is adequate, though not the kind of screaming signal I est at home. Hotels can be cheap in that way, and possibly ignorant, figuring any old signal will do. They aren't trying to encourage bit torrent style downloads. Checking some email here and here, thank you sir and ma'am.

Well, it's just past midnight here, and really, past 3 AM on the East Coast. I should be exhausted, but I had a nap in the evening. The early parts of the conference start at 7 AM. I'll see how I feel around then. The first day is tutorials, and I've only signed up for one. I'll have to see if it's worth signing up for the second.

Maybe I'll head over to Powell's Technical Books, which unlike its big brother, closes at 9 PM, instead of staying open two more hours.

I had been hoping to install Rails this evening, but I think I should sleep some first, and hope the Convention Center has better wireless than this place. With several hundred attendees, it might be useless too, so I shouldn't place my hopes too high.

Wednesday, May 16, 2007

Mmm...Typhoon

I've always been somewhat ambivalent about Thai food. I've generally found their Tom Yum (I believe this is their lemongrass soup) a bit too sour and not hot enough. The dishes are decent, but not great. Even Pad Thai, the national dish is all right. I'll eat Thai food, enjoy it, but generally not be wow'ed by it like I am with Indian or even Korean from time to time.

That changed yesterday. I was visiting Chadd who lives in the Portland area and teaches at a university nearby. Laura, who also graduated from Maryland with a Ph.D., also came out to this area some years before. She now lives in Portland and recommended a Thai place. We tried a place called Typhoon.

Let me say that it was fantastic. I started off with a lemongrass clam chowder, which is a bit of a fusion thing, and that was quite a good combination of the ordinary (clam chowder) with a twist of really different (the lemongrass).

Then, we ordered three dishes, none of which are really typical Thai dishes. One was called Death by Asparagus which was spicy chicken with asparagus. They claim it took top prize in some asparagus competition. I can't really begin to fathom who the competitors were, and who thought this contest was worth setting up. And, of the three dishes, it was the weakest, but still pretty good.

Then, we had something called Curry Roma which sounds like a fusion thing too, some combination of Italy and Thailand. Indeed, it was basically a ravioli like wrapper with shrimp and stuff inside, with a light green curry on top. Wonderful!

Finally, we wanted to get a noodle dish and opted for the King's Noodle dish. Though not spicy, it had a fantastic flavor. Now, I don't know how authentic any of it is, but even if it's not, I certainly liked everything a lot. Indeed, the appetizers were kinda the weak point and they were tasty too.

Thank goodness they decided not to go for the more punny Thaiphoon which is something other Thai restaurants have done.

On top of that, I had Mirror Pond beer, a local Portland (or Oregon) brew. I am told Portlanders like their beer and wine. It was decently good, as beer goes.

So next time you are in Portland, give it a taste. You won't regret it!

Sunday, May 13, 2007

Classical Gas



Too funny!

An Indian Wedding in America

I went to a Hindu wedding on Saturday. Most Indians, almost down to the person, prefer having the wedding held in India. There are many reasons for this. The biggest reason, I'd say, is the number of relatives that show up to a wedding is far greater in India than in the US. A wedding might be considered big if it reaches 150 people. In India, that would be a small wedding. A big wedding might be several hundred people.

One advantage is the huge difference in salary from rich to poor, which makes cheap labor quite cheap, which means many tasks which you wouldn't even consider can be handled by people. And presumably, even the most exotic of weddings is far more affordable in India. Think of a feeding several hundred people in the US. For the same amount of money, you could feed 3-4 times that many people in India. You can hire musicians, and so forth cheaply.

Weddings in India can be lengthy affairs. An American wedding held in a Christian church (and since the bride is Christian, part of the wedding, held earlier in the week, was held in a church) was quick. A ceremony typically lasts between 30 minutes and an hour. Indian ceremonies can last for many hours.

Now, I know what you're thinking. How does that happen? I mean, people are starting to fuss and fidget when a wedding lasts more than 30 minutes. How can anyone stand to watch several hours of ceremony. The answer is simple.

They don't.

You see, while a church has row after row of pews, which compel the people to sit and listen to a mini-sermon, participants in an Indian wedding can be doing all sorts of other things. They don't have to pay attention to the ceremony. Indeed, people eat, chat with people they haven't seen in a while, and then, every once in a while, they pay attention to what's going on. There are some key events, and perhaps the participants will make sure they attend those parts, but even then, there's nothing really compelling them to actually attend it.

And that, in my opinion, makes all the difference. When you can sit and chat without it seeming like some solemn ceremony, then it's far less stressful and boring.

Now, I get the feeling, due to a variety of circumstances, none the least of which was the quick notice which the wedding was set up, the number of participants was small. It seems there were maybe 100 participants, if even that. This would be a pretty shabby wedding were it held in India, but it was fine for the circumstances.

A co-worker, an Indian, noted that while American weddings are centered around the bride. Her dress is the most made up (indeed, it's considered so much part of the ceremony, that you can't really wear the dress in any other occasion, without people asking "Why are you wearing that? Are you getting married?" where a groom can wear a tuxedo to other events requiring formality in dance). She's the one that comes up, and all eyes are on her.

In India, he remarked, the ceremony focuses around the man, and how the man is the one getting married.

One of the interesting aspects of India is that it's such a venerable country that there are many different languages spoken throughout. The groom's mother would chant something in Gujarati, which meant only a handful of others understood what was being said. The bride doesn't speak Gujarati (much). Indeed, the common language between the two is likely to be English (perhaps Hindi).

The marriage was interesting in another way. She's Christian. He's Hindu. While marrying across religion isn't unheard of, it's also not that common, and would be even less common if parents were arranging the marriage. Indeed, as you go to more conservative parts of India, marrying outside the caste is looked down upon.

But, both bride and groom seemed as happy as they could be, as were the proud parents.

And in the end, that's what matters, isn't it?

Deal With It

Many people have heard of the game show, Deal or No Deal, but it seems few have seen it from beginning to end. It stars Howie Mandel, who was a comedian in the distant past, and often acted like this little kid. Since then, he's shaved his head, and gotten extremely paranoid about people touching him. Either he's over it, or he's particularly masochistic by being a game show host.

I've probably blogged about it, but I'll just spend this entry on the rules, which seems to defeat folks. I figure this might help me explain it again if I have to.

First, there are 20 briefcases. Inside, there is a label (think of it as a card, if you like) with an amount from say 5 dollars up to 1 million dollars. You are the contestant, and you're goal is to win as much money as possible. Your goal is to pick the suitcase with a million dollars in it (it's not really your goal, but we'll get to the actual goal in a moment).

At this point, you pick out one briefcase. Admittedly, you only have one chance in 20 to guess correctly. Furthermore, although you have selected it, you don't get to open it.

Next step. There are 19 women, each standing by the remaining 19 briefcases (the women are somewhat incidental to the show--the idea, presumably, is the show is actually pretty dull, and so pretty women help spice it up). You will go through several rounds.

In each round, you pick some number of briefcases. To make it easy, each briefcase has a number from 1 to 20. Note: you have one of the twenty with you.

Thus, in the first round, you are told to pick 5 cases. Here's the key. Those 5 cases are eliminated from the game. That's usually the confusing part. People don't expect the selection to be eliminated.

For each case you pick, the case is opened up, so you see what amount is inside, and therefore, what amount has been eliminated. Thus, if you see $100, it's been eliminated. There's a huge board showing which amounts have not been eliminated and which have. Contestants typically want eliminate the smallest amounts.

So far, the game seems silly. You are eliminating cases, but to what end?

This is the part that makes it interesting. Each time you eliminate some cases, there is a banker who bids an amount. That amount is typically much smaller than the largest amount on the board. Indeed, it typically is less than the average amount of all remaining amounts you could possibly win. Say, there is 10, 50, and 100 dollars still remaining. The banker is likely to bid less than about 50 dollars, which is the average of the three.

Notice you still have a chance to win 50 or 100 dollars. So the question is, do you take the amount the banker is offering, or do you continue to eliminate more cases, hoping the smaller amounts disappear, and the banker will make a higher bid.

The rules are a bit fuzzy when it comes down to the case you are holding. Since the odds are pretty small that you have picked the million dollar case, the contestant almost never waits until they get to their case at the end. They almost always accept the bid of the banker, especially after they've made a mistake and the bid has gone down because they have picked a case with large amounts and eliminated it.

My guess is that if it ever came down to two cases: one by a woman, and the one you picked, they would make you decide whether to take the banker's bid or to open the case by the woman (thus eliminating and picking your own case). I had thought maybe you could pick the other case's amount, but that wouldn't be so consistent with the rules.

The reason people with math backgrounds find it silly is because the contestants clearly don't know how to compute the odds or the expected value, so they simply run on gut feeling, and often go on far beyond what they should.

My rule of thumb is that if you ever reach 200,000, stop. You're good. Even low 100,000 is pretty good. Of course, you can look at odds and such, but it's amazing how many people want to go for half a million, even though only two cases have at least that amount.

Anyway, those are the rules of the game.

Monday, May 07, 2007

Myongdong

For a while, I didn't particularly care for Korean cuisine. I thought it had a hot, but not particularly flavorful taste. Or I had a bowl of dumplings that were a little greasy, but nothing particularly special.

After a while, though, I began to warm up to Korean food. Each Asian cuisine has its own taste. Chinese is the best known and ranges from flavorful spicy to non-spicy. Japanese is blander, but focuses more on visual appearance and texture, thus sushi. They have some lightly fried stuff like tempura. There is an emphasis on seafood. Thai cuisine can be fairly spicy, and is something of a cross between Indian and Chinese, as is Burmese cooking.

Korean cooking is spicier than most Asian cuisine, probably somewhere in the league of Thai cooking. What I love about Korean cooking is not bulgogi, the marinated beef--Koreans prefer beef over all other meats, but Korean stews, and right now, above all, I like sundubu jigae.

This dish looks fiery red, mostly, I'm sure due to gochujang, the equivalent of Japanese miso (fermented soy beans) hopped up on chilies. Despite its intense red color, the taste is more bark, than bite. While it is spicy, it's not painfully spicy. Hot enough to make you sweat some, but still tasty enough that it isn't an exercise in pain.

The stew consists of soft tofu, so delicate that it falls apart when you grasp it. Koreans prefer to use a very long spoon for their stews, plus chopsticks. The stews almost always come with a metal bowl filled with sticky rice. This is almost always preceded by the usual assortment of Korean appetizers, the most notable being kimchee, which is fermented cabbage.

I had had sundubu in a variety of places, including Seattle, on the "Ave". They don't serve it at Sam Woo in Rockville, though I've ordered it there, and it is a pale imitation of really good sundubu. I've had it Yijo, which is a Korean restaurant in a Day's Inn very close to where I live. However, I decided to give Myongdong a try.

While this Korean restaurant has been nearby to where I live for a few years, I had never known it was around. Apparently, in its old location, there was a problem with parking. It was very close to the road. Then, they tore the small shopping complex down, and Myongdong went away for a year. Then, a new complex was built nearby, with the shops further recessed back from the road, near a CVS, so that there was reasonable parking, and Myongdong opened its doors again after a hiatus.

The place is brightly lit, from flourescent lights. Like many Korean places, the restaurant opens late--til 11 PM (other places open well past midnight).

I have to say, in this area, it's the best sundubu I've had. That's due, I suspect, to the assortment of seafood in it, from squid, to clams, to a mussel, each lending its flavor to the reddish gochujang beef broth at its centerpiece. When presented, it was boiling furiously in a metal pot.

Much like Indian restaurants, Koreans favor metal as serving instruments, from metal bowls for their stews, to thin metal bowls of rice.

Myongdong appears to have a wide assortment of other stews, so I'm eager to give them a try sometime in the future.

For some reason, they were playing music of the 80s and 70s. I was listening to some Phil Collins tune that was popular in the 80s, and it made me reminisce about college. It's a weird thought to have, at a restaurant I had never been to, eating among the best sundubu I've ever had.

Sunday, May 06, 2007

Bill Nye, the Atheist Guy?



This is Al. Indeed, he claims he is Al Sweigart despite looking awfully Asian to my eyes. He's another in perhaps a long line of happy, contented atheists. Most of his videos seem to use this jump cut technique, so it would be cool if he could mix it up some more.

But it made me wonder what it would be like were some unsuspecting TV producer to make a show on atheism.

Ron and Mike

A few weeks ago, no one would have heard of Ron Paul, nor Mike Gravel (pronounced, "gruh-vell", rather than the way you think it would be pronounced). Both are, respectively, candidates for President for the Republican and Democratic party. Ron Paul's name has been out a little more, for some reason, but really, Gravel was no one anyone gave any attention to until a recent Democratic debate.

Now, most people rarely watch these early debates. Most people start to care when each party has figured out which candidate they want to back, that is, when the choices have winnowed down to two candidates, with an occasional outsider like Nader or Perot.

But with sites like Digg and Reddit and the combination of sites like YouTube, passionate people can make others aware of smaller (in support) candidates. This means these candidates can take advantage by taking strong stances during the debates, something front-runners can't afford to do, for fear of making missteps that might derail a campaign that is just about to start.

On the other hand, Paul and Gravel have little to lose. They can afford to be passionate during the debate, taking stances that might otherwise seem loony. And people tired of candidates that play it safe like this eagerness.

Whether this translates to votes, I don't know. Recall the Democratic primaries that put John Kerry as the Democratic candidate. How many people might have grudgingly accepted Al Sharpton were he not otherwise considered unelectable, being tarred with the Sharpton-Jackson brush, as two guys who are only heard during issues of race (and that, only when it affects African Americans). Sharpton's stature probably raised a fair bit, much of which has been brought back down after the Imus flap.

The point is many people didn't particularly care for John Kerry, but he was the candidate because he had experience, he had been in Vietnam where Bush hadn't. This is why many states jockeyed to move their primaries up front. People don't vote in a state primary in a vacuum. It's very much like betting on a long horse race, where voters can see how the horses are doing 1/10 of the way, then 2/10 of the way, and so forth. As Kerry was building momentum, people voted for him based on "electability".

And that may really set the tone for Paul and Gravel. Gravel, for my money, is a bit too white, a throwback to 50s style politicians. But once he gets a few interviews (as he has with Wolf Blitzer), he may not sound quite like the blowhard he did during the debates. Paul is caught in a particularly good position. Republicans are trying to decide whether they support the war or not, with McCain hanging his hat on as ardent Bush supporter. It's a precarious position, and a complete about-face from his stance eight years ago, when he suffered a Bush hatchet-job, that lead him to quietly support Bush in 2004.

Paul can be the guy who opposes the war, who is trying to steer Republicans away from Bush's policies, a stance that many Republicans may warm too. With no outstanding candidates, Paul might make up some ground. McCain and Giuliani are leading, but the rest of the candidates are hardly known. The Democrats, on the other hand, put out three candidates--Barack, Hillary, and John Edwards--that are already quite well-known. Even the other candidates: Biden, Dodd, Kucinich, and Richardson, are not complete unknowns. Heck, Al Gore could come back in the race, and he may seem more palatable than anyone already in the race. Fred Thompson is likely the only guy who's not in the Republican race that might have some recognition.

The question is whether party backing is still the ultimate arbiter for who wins. We know the YouTube generation doesn't have power to move things yet, but it's growing. Consider Snakes on a Plane who used Internet advertising to push a rather blah movie through the stratosphere. Well, at least among the Interneterati. The rest of the public gave this movie a lukewarm response.

But people may look back at this election, years from now, and see the seeds of a new way to campaign, and that being a safe campaigner may not always be the answer.

Not Ron Paul nor Mike Gravel



He's running for Tokyo mayor.

Sorta.

I figured Justin would find this amusing.

Saturday, May 05, 2007

Google Tech Talks, Scrum, and Jeremy

If I have time, I like to watch the Google TechTalks at Google's video website. The problem is usually time. Most talks last an hour. The good news is that most of the talks are pretty good so the hour doesn't seem so bad. The bad news is, it still takes an hour.

Lately, I've been seeing Jeremy (Manson), who got his Ph.D. at Maryland on the Java Memory Model, host these talks. Since he is a programming languages kind-of guy, he hosts programming languages kinds of talks. For the novice, that doesn't mean he invites guests who tell you how to program in language X. This is Google, and most people could figure that out there.

Instead, the talks are sometimes about stuff that's underneath the hood (how the basic implementation of a language is done) or some software ideas or sometimes it is a new language. The talks are generally far more pragmatic than in an academic setting. There's not likely to be talks on type theory and proofs in type theory soon.

Anyway, the most recent talk I heard was titled Scrum Tuning: Lessons Learned at Google by Jeff Sutherland, who apparently invented Scrum.

Let me quickly overview what Scrum is, then tell you the problems I had with the talk. Scrum is one of several competing ideas in agile planning. Agile planning is basically being able to plan in a lightweight manner. The goal is to get people to communicate and to fix problems as quickly as they show up. Since it's somewhat introspective by nature, problems in the process can be fixed as people involved notice it.

Two keys to Scrum. One is the daily meeting. Most people usually meet once a week. Scrum claims this causes problems, which are made worse with bright people. In particular, meeting once a week causes people to discover that one person depends on another too much, or that two people are overlapping on work, etc. With a daily meeting, you spot problems sooner.

Why do people avoid daily meetings? Of course, people hate meetings. If you're meeting, you're not working (well, technically, you are). Engineers typically hate meetings because there's a forced linear structure, where each person speaks one at a time. If someone stands on a soapbox, the meetings can drag without end while they deal with something only a small subset cares about.

Scrum tries to handle this by restricting the time of the meetings. The meetings should be kept to a minute a person or so. The goal is to find out what was done the previous day, and what will be done today, and what problems have occurred. There is a "Scrum" master who organizes the meetings, and tries to force it to be short. The master then decides how to adjust resources based on that meeting.

The other aspect of Scrum is task allocation and assignment. Typically, there is a brainstorming session where a bunch of tasks are determined, and then, estimates for each task is made. Any task taking more than a few days must be further broken down into tasks that only take a few days. The idea is that huge tasks are badly estimated. Short tasks are estimated much better.

Then, there is the Sprint. The Sprint is a period of time allotted to complete the tasks. These sprints typically last one month. Within the month, certain tasks are expected to be done. The daily meetings help assess whether things are going well.

Now to the talk.

Google is famous for running their organization without much hierarchy. Even so, because of the number of people involved, they sometimes run into issues when more organization is required. Jeff Sutherland talks about how Adsense had this project, whose project leader estimated would take 3 weeks to complete. They had identified 40 tasks.

In the first week, 8 were completed. In the next, 7.5. After two weeks, the manager said he thought they would be done in another week, as planned. There were still over 20 tasks left! Needless to say, it didn't get done the next week, when 9 additional tasks were completed. While they seemed to make good progress, the following weeks saw productivity go down. They had 4-5 tasks done per week towards week 5 and 6. Eventually, it took 7 weeks to complete what they said would be done in 3.

They were using some techniques of Scrum, but the question arised "what went wrong". Obviously, it seems silly to say it will take three weeks when 1/3 of the tasks were not being completed each week. But the point was, why did productivity decrease towards the end.

Jeff points out that while 80% of the tasks were done at some point, only 20% of the features were ready. He felt that was a bad mismatch. Features are important, and if you are 80% done, you need to have closer to 80% features done. But the problem with most features is that they have dependencies. It's easier to get partly done and make progress than to complete a feature until it's really done.

I'd imagine that Googlers would find this talk rather difficult and yet intriguing. Basically, the guy essentially promises that Scrum solves all problems, and he has numbers to back it up. That's it. He's an evangelist almost of the worst kind, but because he is talking about software development and has "numbers", it makes people interested.

What would be better is to track the same team, before and after Scrum, and see what things were causing problems before and after, and how things were handled better. In particular, track what each person is doing each day, and why Scrum seems to make that better (if it does). Numbers are fine. Productivity is fine. The question is why does it work, at its most fundamental?

Again, I love hearing about agile talks, and the ideas behind them. But it's so incredibly anecdotal. One thing I did read that was good was that initially daily meetings were very long, because it was new, but eventually, got much shorter.

And, you have to worry when a guy like Sutherland, who seems kinda very touchy-feely, begins to bandy terms like "infinitely scalable". He understands that certain terms have a certain ring to it. Thus, Scrum, Spring, burndown, and so forth. These terms are meant to have positive connotations, or at least, not be wrapped up in some jargon.

So basically, interesting to listen to, but awful as a whole. It piques interest without really providing good answers.

Friday, May 04, 2007

How Arranged Marriages Lead to Family Values

I was thinking about something.

If you ever visit India, you find that families play a huge role in Indian society. People visit relatives all the time. Weddings are huge affairs, and people are offended if they are not invited. A typical wedding may be several times as large as the corresponding American wedding.

India (and the other countries in the subcontinent) are the last vestiges of arranged marriages. Countries like China used to have arranged marriages too.

I think the two are interrelated. In an arranged marriage, the parents are the ones to arrange their children's marriage. This means the kids are dependent on their parents to find them husbands or wives. With a society that values marriage and also feels shame, then it's shameful not to get married (obviously, people can get over this feeling of shame).

Furthermore, parents don't want boys and girls associating with each other in romantic ways, so boys/girls keep a polite distance, now associated with junior high school kids in the US just getting to know one another. It harkens to an era in the US when teens would go to get a burger and shake, and it would be (in theory) as innocent as that.

Given that most teenage guys and girls have a difficult time being brave enough to accost the opposite sex, and given that parents don't want them to go out dating on their own, and given that parents will find an appropriate spouse, then there is a strong incentive to get along with your parents. They control an important societal value, which is marriage.

Think about what happens when arranged marriages are no longer necessary. Then, boys and girls go seek the opposite sex and work at dating. They begin to distrust their parent's opinions on such matters. Because they see their friends doing it, they try it out too, and I suspect this leads to downward pressure of boys to go out with girls.

Once women gain sufficient independence so they can support themselves, marriage itself becomes unnecessary, and people can postpone it until much later.

So, the combination of the importance of marriage, the shame of not being married, the disapproval (generally) of kids looking for their own girlfriends or boyfriends, parents arranging marriages, and even all the celebration around weddings, and cultural shame when you choose to buck the tradition, leads to a society where family is valued highly.

Just a theory.

Thursday, May 03, 2007

Idol Train

With so many contestants in American Idol, there's a trend for different groups to say they had something to do with the singers.

Two examples. The Seattle area got to claim Blake Lewis, Jordin Sparks, and Sanjaya Malakar, who were top 12 finalists (in fact, two are still in it), all of whom tried out in Seattle.

The Gospel Music Association also had singers that were involved with them: Phil Stacey, who just got voted off, and Jordin Sparks.

It was once said that Indian call centers were voting for Sanjaya, except that, until very late in the competition, most Indians were unaware of the competition.

I suppose anyone who has some bit of fame always has someone who wants to say they share something in common with them.

Wednesday, May 02, 2007

American Idol with Bon Jovi

American Idol has been going on for how long? This is its sixth season. I haven't really watched any of the previous seasons, mostly because I don't watch that much television. I watched it for two reasons this season. First, Tony Kornheiser keeps talking about the show week after week. Even so, I didn't watch it for several weeks.

All I recall was the slamming of Sanjaya. Now, the name didn't strike me in any particular way. However, I discovered he's Indian-American, Bengali to be specific (well, on one side--his mother is allegedly Italian-American). For some reason, perhaps because I went to India recently, this piqued my interest.

Now, I still barely catch Idol on TV. Instead, I see it through YouTube. I'm sure the sponsors hate that, but I like watching all the performances in like ten minutes. I prefer skipping over the lead-up and the judging and just listening to the performances.

Last night, there were six performances. Basically, I agreed with Tony, which means that I am too easily influenced by others on judging performances. Basically, I only thought there was one awful performance and that was Jordin. She sounded horridly out of tune, to the point that I almost thought she couldn't sing. I could hardly believe people thought it was "all right".

I agreed that Melinda is so versatile, singing Have a Nice Day with appropriate attitude, and yes, it also reminded me of Tina Turner. LaKisha sang quite well too without yelling her song too much which she's done in past weeks. Both Chris and Phil were decently good. Blake did something very interesting. First, he took a Sanjaya lesson, and dyed his hair dark, which made him look a bit like Kurt Russell. Second, he took a popular Bon Jovi song, You Give Love a Bad Name, and did a beatbox spin on it. To his credit, he sang the main melody, so he could show off his beatboxing as well as his vocal qualities.

Is Blake the best singer? I dunno. Phil's decent too. Blake's voice is a touch high, a touch nasally. But, he's pretty creative, and that comes from, I suspect, his beatboxing. He thinks of music like a composer, and so I think that enhances his creativity. Personally, I like the fact he tries out a couple of ideas. Usually, in the preview, he's smart enough to make it seem like he's going overboard with beatboxing, but in the actual performance, he holds back.

Tony Kornheiser doesn't think much of Bon Jovi, but he was pretty big in his day, and it's interesting, that in the two weeks you'd think people would struggle (country week, and Bon Jovi's limited set of good songs), that it helped key performances. In particular, country week became a breakout week for both Phil and Jordin. Rock week with Bon Jovi was very good for Lakisha who had been seen as slipping up to now.

They eliminated two singers this week, which was Chris and Phil, and that's perhaps no surprise. While Jordin was unlistenable this week, the vote was combined from last week, which was huge (70 million votes, which is about twice what it normally is), which was one of Jordin's best performances. Blake becomes the last guy standing, and he may go next week, though I'm sure they would like one guy to hang around, and if voting is done by gender preferences, Blake is likely to hang out til the last week.

My guess is Lakisha is the next to go, though it will depend greatly on whether Jordin can recover. Most everyone feels that even on a bad night, Melinda is too talented to mess up. Blake is usually decently good each week, and the only way I see him getting eliminated is if the other three are lights out, and he pales by comparison. He's made some smart choices, and not any dumb choices. Admittedly, Imagine wasn't particularly strong, but he's usually consistent. His main problem is that he occasionally moves his microphone away from his mouth, and he hear vocal gaps as the mike no longer picks up his voice.

We'll see how it turns out. If it came down to one girl and one guy, well, since Blake is the only guy left, it'd be him, I suspect it's Melinda, though I'm sure Jordin is more marketable. For consistency though, Melinda's been consistently good week after week, without any of the kind of lapses that Jordan or Lakisha have had, but then, voting is not based on consistency, but on a given performance.

I wonder if the guys get more passionate voters than the women. None of the remaining women are particularly "hot" for lack of a better word. Blake, on the other hand, does have charisma and is reasonably good looking that he should have a contingent.

Amusingly enough, this kind of guessing is much like Oscar guessing. Who will win what award? However, it's far more engaging than the Oscars because, as I've mentioned before, the singers are not uniformly excellent. You can hear vocal flaws, and so you know they aren't as good as professional singers (who can sound very polished because of studio wizardry).

Well, we're down to four, so I suppose that's three more weeks to find a winner.