February 2007 Entries
Forget flame wars. They’re so USENET. The new way of geek fighting is much more subtle.
Recently Scott Hanselman wrote a post on the SEO implications of URL standardization which Jeff Atwood followed up with his post on URL Rewriting to prevent Duplicate URLs.
Jeff makes it known that he prefers that his blog be referenced with the “www.” in the front. I think that’s an unnecessary three characters that is quite dated. Yes, we know your blog is on the World Wide Web. The World Wide Web is no longer a nice new shiny bauble. You can feel free to drop the www.
Besides, your domain name will sort better without it.
And for those who say: But if you hit CTRL+ENTER in the address bar, it’ll surround what you type with “www.” and “.com” I saw bah! If I want to go to Jeff’s blog, I can type c-o-d and hit tab and I’m there. A modern browser is pretty handy for that with that newfangled auto complete.
Anyways, in this recent post on the reading habits of programmers, I linked to a post of Jeff’s without the “www.”, which did not go unnoticed by Jeff nor LazyCoder Scott (thanks for pointing out the jab Scott, it might’ve gone under his radar damnit! A nice subversive jab at the man.)
Responding with a geek equivalent of “Oh no you di’int”, Jeff’s very next post, he returns the favor. Touché my friend! Touché. Well I’ve hidden a little something for you in this post. Oh yeah. Bring it on.
Aren’t we just so pathetic?
P.S. Jeff now flinches if you threaten to Digg his blog.
UPDATE: This post was meant to be mostly tongue in cheek. I love programmers. Some of my best friends are programmers. Also, to be fair to the FizzBuzzers, the spec for this question is flawed, as are all specs as I point out in Why Can’t Spec Writers Write Specs.
You gotta love CodingHorror.com. Once again, Jeff Atwood writes a great post entitled Why Can’t Programmers.. Program? But in this case, the best part is in the comments. Let me explain.
Jeff writes about a simple "Fizz Buzz" test given by Reginald Braithwaite. Here’s the functional spec.
Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.
Mind you, this is not a trick question. It is as easy as it sounds. Or it should be. According to Reginald Braithwaite, the majority of comp sci graduates can’t do it.
Naturally, the very first comment to Jeff’s post solves this simple problem. But read further and be amazed at how many developers get it wrong in such a public forum!
The problem may not be that these programmers can’t program. It’s that they can’t read!
I think reading comprehension must be at an all-time low among graduating programmers. Perhaps it’s time to bring back more word problems in our curriculum. Of course we’ve all seen this lack of reading comprehension in comments to our blog posts, haven’t we? As in when someone completely argues against a misinterpretation of your post.
It never fails to amaze me at how some companies I’ve worked with (or at) praise developers who are fast, even if they do the wrong thing because they failed to understand the spec or include so many bugs as to have made the spec irrelevant.
At least he’s fast!
Indeed!
So what’s worse? A programmer who can’t write code, or a programmer who can, but can’t follow a spec?
I finally got around to uploading pics of our short Seattle vacation to Flickr. Our first full day there, Saturday, benefitted from beautiful weather. We took a nice boat ride on Lake Washington and skipped by BillG᾿s immense house.

The pic does not do it justice. There are a few more here. We must᾿ve gotten too close for comfort because a security guard came to the water᾿s edge and mad dogged us.
We also had the opportunity to check out the new sculpture park. I thought it was quite interesting. One of my favorite sculptures was this chrome tree, seen here behind a real tree.
I also had the opportunity to visit some friends at Microsoft. Apparently Microsoft is experiencing explosive growth. My friend Julie who worked on campus a couple years ago is now at an office complex one freeway exit away off campus.
Our friends worked hard to convince us that we should move to Seattle. But I think it may take more convincing, as we᾿ve both contracted a cold and blame the damn Seattle weather. 
Scott Watermasysk has a great set of Quick Tips for ASP.NET on his blog. And this is only part one! I’m Looking forward to seeing the subsequent posts of this series.
However, I disagree slightly with his tip to Never use the ASP.NET Label control. I would rephrase it to:
Never use the ASP.NET Label control when a Literal would do.
The problem is not the Label control. The problem is treating the Label control as if it was merely a Literal control.
The Label control has a specific usage, to be a label for a form input. For example, check out this screenshot of a text label and textbox.

Let’s look at one way to create this simple form using a Literal control (Notice I’m getting the value from a Resource file because we all want to be internationally friendly, right? But it also points out why I use an actual control rather than just typing the label directly).
<asp:Literal id="label" Text="<%$ Resources:UserName %>"
runat="server" /> <asp:TextBox id="textbox" runat="server"/>
When you click on the word Username what happens? Nothing. Wouldn’t it be nice if the Textbox next to the literal was given focus? Here’s how:
<asp:Label id="label" AssociatedControlId="textbox"
Text="Username" runat="server" /> <asp:TextBox id="textbox" runat="server" />
Now, we’ve associated the label to the control. The underlying HTML looks something like (simplified for the sake of discussion):
<label for="textbox">Username</label> <input type="textbox" name="textbox" value="" />
This associates the label Username with the textbox control, so when you click on label, the textbox gets focus.
So why use the Label server control here? Why not just use the <label /> html tag directly?
Because you might not know at compile time what the client id of the TextBox will actually end up as. What if these two controls were inside a UserControl inside a page? The ID might get a bit funky as its nested in a control within a control.
In Decemember I wrote about a great soccer camp I attended. Well one of the other attendees is a Sports Anchor at Univision and had a camera man in tow taking footage during the camp.
Starting on Saturday, February 17th, Univision will be airing a four part series about the Galaxy Camp. The second part will air on Sunday and the third and fourth parts the following weekend.
Of course, this is subject to change without prior notice, but if you tune in, you just might catch a glimpse of me on the tube. Unfortunately, I didn’t feel comfortable enough with my spanish to give an interview like several of the other campers.
In Los Angeles, this would would be on KMEX channel 34.
Disclaimer: I was once a Univision employee.
I’m posting this more as a reminder for myself. Where exactly are you supposed to place XSD files to give you intellisense for XML files in Visual Studio.NET?
Visual Studio.NET 2003
C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Packages\schemas\xml
Visual Studio.NET 2005
C:\Program Files\Microsoft Visual Studio 8\Common7\Packages\schemas\xml
This is useful for such things as Nant.xsd and UrlRewriting.xsd.
To get intellisense for NAnt, you have a couple of other steps to do.
The wife and I are headed up to Seattle for President’s day weekend to visit some friends.
Yeah, I know. Why Seattle At This Time Of Year!?
Well with her being all preggers and all we didn’t want to go somewhere too distant (like Tahiti). Not only that, a little cold weather might be a nice change of pace. I mean you can only take so many consecutive days of blue skies and sunshine.
I’ll also be swinging by the Microsoft Campus on Tuesday to have lunch with my compadres Adam Kinney and Erik Porter. My hope is to grovel and beg for them to sneak me through the back door of Mix 07. It probably won’t work, but I gotta give it a try, no?
I plan to show up a little earlier to see another old friend from college who works at Microsoft and, believe it or not, is not a developer! She’s in Finance doing something or other.
Hopefully I’ll run into some other Microsoftie characters I know!
Steve Harman just announced the release of Subtext version 1.9.4 Windward Edition. This one comes with a lot of bug fixes, so be sure to upgrade.
Just so you know things work, I add bugs to Subtext, and Steve and the other developers fix the bugs. It’s a rather efficient ecosystem and is working quite well for us. It keeps everyone on their toes.
Steve’s post has the full list of bug fixes and such. The most interesting addition is that we’ve implemented a Google Sitemap, which was submitted as a patch, if I remember correctly.
This release is notable because of the increased number of patch submissions. I greatly appreciate the contributions by all the new contributors along with the stalwarts. Working on Subtext is a joy because of these people.
As for Subtext 2.0, Progress has been slow, but steady. One challenge we’re dealing with is how to cleanly handle the following two multi blog scenarios as summarized by Simo in our mailing list.
1. The multi blog site is a communiy site: so user registered to a blog, are already registered for all blogs.
2. The multi blog site is just a host for many different non related blogs: here all users are different, and even if 2 blogs are on the same system, the user shouldn’t know about that.
We pretty much can already handle case 1 which is nice because it means the same user can be the owner of more than one blog, rather than requiring a user account per blog. This is useful for me personally as I host three blogs on a single installation, and right now, the admin is technically three different accounts.
Strictly speaking, this implementation makes implementing the isolation requested in case 2 difficult, because usernames must be unique. So if there’s ever a name conflict between two users attempting to register with the same username, the two blogs will affect each other and not be completely isolated.
However, if we make the user’s email address their login, we can implement case 2 in spirit. First of all, there won’t be two different users using the same email address, so the naming conflict issue is resolved.
Secondly, if you wish to register for blog 2, why should we make you fill in your information again if we already know who you are? We should simply present a message that says, Hey, we know who you are, if you want to register for this site, click here and we’ll auto register you.
That way, the user is in control over who which blogs get to see their registration information, yet they only have one user account in the system. Certainly there are some improvements we can make later, for example, some blogs may want more information than others to register.
But for now, we only ask for the minimal amount of information and will keep things simple and consistent across the board.
In any case, enough blabbing. If you want to download the latest release, you can find it on our SourceForge site or just use this [DOWNLOAD] link.
UPDATE: How could I have overlooked the Plugin Keyvan Nayyeri wrote two months ago. Sorry buddy!
You know what would go well with my XFN Highlighter Script like Kimchi goes with Bulkogi? How about a plugin for inserting proper XFN hyperlinks?
Scott Dornan (and Keyvan) delivers exactly that with his Insert XFN Hyperlink plugin for Windows Live Writer.
Apparently he was introduced to the concept of XFN after reading a post on my blog.
Yes, you have me to thank for this fine plugin (not to mention Scott who actually did all the work, while dealing with a-holes like me trying to take the credit).
It’s not yet available in the Windows Live Gallery, but will hopefully be there soon.
In the meanwhile, we’ll have to beg for a direct download.
My feed looks like several items were reposted. This is due to a bug in Subtext when editing an existing post using Windows Live Writer. In any case, we’ll have a fix available in the next release of Subtext soon.
I received a call from a nice lady asking to speak to someone who could confirm an employment at VelocIT.
Me: Sure, I can do that.
Lady: What’s your name and title?
Me: I’m Phil Haack, the CTO.
Lady: Is there someone else I can speak with?
Me: Uhhh, why? Is there a problem? I am an owner and manager of the company. Certainly I have authority to confirm an employment.
Lady: I can’t have you confirm your own employment.
Me: Oh! This is for me!?
Man, I’d be in big trouble if I were a one-man shop.
On Tuesday night I met Rob Conery, aka Mr. Subsonic, aka Mr. Commerce Starter Kit. The man is shifty and goes by many aliases. He was in town visiting family and was able to pull away for a night to kick it.
From time to time, I’ve met people in person at various conferences who I only knew via their blogs. Usually, because you have no idea what to expect, those meetings can be full of surprises.
You’re nothing like how I pictured you in my head. I thought you’d be taller, have hair, and be more female.
Since I’ve chatted with Rob on Skype before, there were no surprises. Except that he’s ginormously tall. I literally almost blurted out, You’re a freakin' giant! But was able to hold my tongue.
Jon Galloway joined us after a harrowing drive up the rain soaked freeway from San Diego and we headed for Hurry Curry of Tokyo on Sawtelle for some delicious Japanese style Curry. After a couple of bottles of sake and Sapporo beer, we headed over to The Mór Bar for $2 Tuesdays with Moontribe.
The Mór Bar is a sweet spot to hang out, get a drink, talk and listen to good music. They have a nice arrangment of plush couch/benches in a U-shape arrangement at the front of the bar on a deck, which evokes a Lawrence of Arabia feel.
We settled in to geek out and Rob’s a fun guy to have a conversation with. Just brimming with great ideas and interesting stories. Shortly into it, Rob remarks on my total ADD (Attention Deficit Disorder). What the heck do you expect when you buy me a Maker’s Mark for the first round of drinks? Yeah, I get easily distracted after multiple shots of sake, beer, chased by a strong whiskey. What can I say?
So there you have it, Rob’s Tall, Jon’s Bald, and I have ADD. Any case, Rob, if you read this, I hope you got your Credit Card back. Good times. Good times.