personal comments edit

XO Laptop Unbox

Yesterday I received my XO laptop from the One Laptop Per Child “Get One, Give One” program.  I got some pictures of the laptop being unboxed and booted up for the first time so you can check those out if you’re interested.

It doesn’t ship with much in the way of instructions - it relies on you either connecting to their web site to get started or “exploring” the interface to see what things do.  That actually brought me to my first problem - connecting to the Internet.

The way the networking on the thing works, you visit a “neighborhood” page that displays a graphical representation of the wireless access points available to you as well as mesh networks and other XOs that you can connect to.  That was my first stumbling block: It only displays wireless access points that broadcast their SSID (mine didn’t).

It runs a flavor of Linux, so I suppose if you’re a Linux person you could do some manual configuration and get it to connect that way.  I’m a Windows person, and while I have run Linux before, I’m not really that knowledgeable about it, so the best I could do was try their manual wireless network association steps to see if that worked.  It did… for as long as I was in that terminal session.  But as soon as I rebooted, the connection was lost and I was back to square one.  So, rather than fight that beast, I just turned SSID broadcast on.  Hey, that wasn’t really stopping the malicious folks out there anyway.

It won’t connect to WPA networks (yet), which isn’t a problem for me since I’m still in the stone age using WEP.  After some trouble getting the security on it set up, I finally got connected.  Honestly, I don’t know how kids are supposed to do this, but maybe they assume that school wireless access points are just open without any security or something.  Maybe that’s how it really is.

The only other real problem I had with it was that the initial setup (when you first boot up) asks you your name and what colors you want your little computer icon to be.  (Your icon represents you on the network.)  Once you’ve set them, though… there’s no control panel applet or anything to change them with.  It took me a while, but I found that they have a command-line interface to change these things called “sugar-control-panel.”  Got my stuff all customized up and now I’m set.

The interface is primarily graphically-driven.  There’s very little text, which is good for its purpose (kids, developing countries, etc.), but not so accessible until you’ve really explored the thing and learned what it all means and does.  Applications are referred to as “activities” and it ships with several pre-installed ones including a web browser, an RSS reader, a paint program, and a Python programming environment.  There’s no email program, but there is a Gmail activity currently under development (right now it just launches the browser).

All in all, I think it’s a pretty great tool.  If they’d had this in school instead of ye olde Apple IIe, I’d maybe have learned something more than the BASIC code that runs the cannons and castles game.  On the other hand, I’ve found already that I’ve interfaced a lot with a Bash prompt (the “terminal” activity) already and, without any instruction, I’m not sure how kids are going to know what to do with some of the stuff.  From “I’ve never seen a computer” to “I’m programming in Python” is a pretty steep learning curve.  I think the real good stuff will be from the additional activities you can download as well as coupling this with a teacher’s curriculum.

Now they just need to get a Mono activity.  Awww yeaaah.  (Luckily, it looks like someone’s thought of this.)

If you’re interested in learning more about the One Laptop Per Child charity, how to give, or how to use the XO laptop, check out

net, vs comments edit

One of my co-workers, Peter Wong, came across this issue and struggled for quite some time to figure it out.

For some reason, running the product build on his development machine would pass all of the FxCop rules, but when other team members ran it, the FxCop spelling rules for identifiers would fail.

Turns out FxCop 1.35 uses the Office 2003 spell checker to do its work.  The rules were failing on machines that have Office 2003 installed and passing on machines without Office because they weren’t actually running.  It only works with Office 2003 - you’ll see the same rules-not-running behavior if all you have is Office 2007.  Apparently, we’re not the only ones who have noticed this.  I sure never saw anything about it in the docs, but I guess I never really looked, either.

They’re working towards fixing this problem in newer versions of FxCop.  Visual Studio 2008 code analysis tools have spelling rules built in and support custom dictionaries (won’t help folks without Team Foundation Server - it’s a policy you can configure).  FxCop 1.36, which just came out in beta, ships the spell checker built in so you don’t need to have Office installed.

General Ramblings comments edit

Friday morning was my fifth laser hair removal treatment.  In the first treatment, I tried the MedioStar laser on my neck and it was just far too intense for me, so the subsequent treatments I’d been using the Dermo Flash IPL.

When I went in this time, the technician, Liz, took a look at my chart and my face and said, “You know… for the amount of time you’ve been coming in, you’re not getting a lot of result.”  And it was true - the Dermo Flash has worked a bit, and there were a few small hair-free patches, but it’s slow going.  My hair is thinner, but it’s admittedly sort of hard to tell if you don’t know what you’re looking for.

“So would you like to try the MedioStar again?”

Oooo.  Now, I’ve got a pretty low pain tolerance, and last time I tried that… well, it was just too intense.  But she was right - it was slow going, and it might be time to get results.  So I said we could try it again as long as we could stop if it was too much.  She agreed.

Turns out MedioStar, while very, very painful, is much less intense the less hair you have.  The Dermo Flash, having reduced the overall volume of hair, actually helped in that - the MedioStar was now still painful but not so bad I was utterly unable to handle it.  The upside of that is that I was able to do my whole face using the MedioStar.

For reference, Liz did say that she’s talked to other people who’ve had this done and that everyone seems to agree getting a tattoo on your face is far less painful and intense than MedioStar.  Think about this: MedioStar is so intense that it’s not uncommon for hairs to literally pop out of their follicles after being zapped.  It happened during my appointment.

To manage the intensity of it all, here’s what worked for me:

  • Between one and four laser pulses at a time, max.  In really dense hair areas, like the point of my chin, one pulse is just insanely painful and is all I can take without a break.  In less dense areas, like on my neck, I can take up to four.  That fourth pulse is the edge of my pain threshold.
  • Ignore the ice pack.  It’s just a distraction and doesn’t help any.
  • Take advantage of air cooling.  They have this hose that blows super-cool air that they can use to chill the skin prior to using the laser.  Before and after getting zapped, cool things waaaay down with that cold air hose.
  • Get one stress ball for each hand.  Something to squeeze is helpful.
  • Breathe.  Seriously.  I darn close to passed out from tensing up and holding my breath.

All told, it took the full hour appointment to do my face, but we did it.  By the time it was over, tears were running, I could barely speak, I was shaking, and I had sweated clean through the back of my shirt such that I had to go home and change before coming back to work, but we did it.  Today, three days later, I feel like I have a bad case of razor burn and my face is red and sort of bumpy/irritated, but you can already see some difference.  In two weeks, when the irritation has subsided, I think it’ll be much more obvious how much difference was made.

As painful as it was, I think I’ll probably do MedioStar next time, too.  I need to start seeing some real change and knowing that the intensity gets reduced as hair disappears, it sounds like next time will be easier than this one.

media, tv comments edit

Saturday marked the fifth annual 24 marathon at my house, this year for season six.  We started at 8:00a and ran non-stop, no credits, no “last-time-on,” no breaks.  The show ended at 1:00a Sunday morning, and it was a hell of a ride.

My dad and I were the only ones who lasted the whole thing.  Jenn missed the last few episodes, being unable to stay awake, and our friend K came for the morning but wasn’t able to stay for the whole marathon.

I’ve found that the secret to the last couple of episodes is to drink an energy drink or two and to stand up.  After sitting for most of the day, standing up really energizes you.

Once again, Jack Bauer saved the day, lasting through torture in a Chinese prison, a nuclear attack, and an air strike.  I still think my favorite season was season two, but I can’t say I was disappointed here.  A good time was had by all, and we’ll plan to see season seven (assuming Kiefer can get his ass out of jail and film the damn thing) next year.

aspnet, blog, net, subtext, downloads, net comments edit

So here’s the problem:

You’re running your web site or blog and you’ve got an image you want to put up.  You put in the HTML something like this:

<img src="/images/myimage.gif" />

No problem - you load up the site and it looks great.  You check your RSS feed and it looks good.  And why wouldn’t it?  When a browser hits your page or a reader looks at your feed, it’s all coming from, so the site-relative URL gets translated to  No problemo.

Then you decide you want the benefits of a syndication site like FeedBurner - it reduces your bandwidth usage and has some other value added features.  Good times.  You sign up, get your feed cranking through it, and go check it out.  It looks horrible - all of your image links are broken!  What’s going on?

The problem is the relative URL - now that the feed is coming from, the relative image URL gets translated to, which is plainly wrong.  Whatcha gonna do, brother, whatcha gonna do?

If you have an ASP.NET-based site, I created an answer:  The UrlAbsolutifierModule.  It’s an HttpModule that filters through content and converts URLs in HTML tags from relative to absolute.  You can even configure it to only process certain pages or handlers, so you only process, say, your RSS feed.

Note: I wrote it to be pretty aggressive - anything that looks like HTML (encoded/embedded in XML, straight HTML, a code snippet you might have embedded in a blog entry, etc.) will be updated if it’s run through this filter.  If you use it, you will definitely want to be selective about which pages it processes and not just throw it carte blanche on your site.  By that same token, if it’s not HTML (like if it’s your RSS feed and the URL is in the channel/link element of your feed XML), it won’t be looked at.

Included in the compiled package:

  • The UrlAbsolutifierModule assembly.
  • XML class documentation.
  • A readme explaining how to use it with an example showing how to configure it for use with Subtext, my blog of choice.

Included in the source package:

  • Source for the UrlAbsolutifierModule assembly.
  • Unit tests and a demonstration web site showing it in action.
  • The very same readme explaining how to use it.

Want it? Need it? Come and get it. Yours, free, at (of course) your own risk.

[Download UrlAbsolutifierModule 1.0.0 Compiled]

[Download UrlAbsolutifierModule 1.0.0 Source]

Version History: 1.0.0: First release.