March 26, 2005

Spending a little time with myself

Mmmm...easter weekend.

The girlfriend is gone. The roommate is gone. Damn near all of my friends are gone.

I'm sitting here by myself, watching Garden State, drinking wine, and eating cheese (French Cantal) reminiscent of my time in Paris.

Say...this reminds me of a story:

I’ve always kind of been partial to calling myself up on the phone and asking myself out. You know... (whoops from the audience). Oh yeah, you call yourself up too, huh? Yeah... Well, one thing about it, you’re always around! Yeah, I know. Yeah, you ask yourself out, you know. Some class joint somewhere. The Burrito King or something. You know... Well, I ain’t cheap, you know. Take yourself out for a couple of drinks maybe, you know. Then you’ll be... some provocative conversation on the way home. And park in front of the house, you know, and you... Oh yeah, you´re smooth with it... you know, you put a little nice music on. Maybe you put on like... you know... like shopping music, something that’s not too interruptive, you know. And then, you know, and eh... slide over real nice, you know, say, ’Oh, I think you have something in your eye’. Eh-heh-heh. Well, maybe it’s not that romantic with you, but Christ, I... you know! It ain’t... you know... Take myself up to the porch, and take myself inside. Oh, maybe... I make a little something, a brandy snifter or something. Would you like to listen to some of my back records. I got something here... Well, usually about 2.30 in the morning you’ve ended up taking advantage of yourself and... there ain’t no way around that, you know. Yeah, making the scene with a magazine, there ain’t no way around... I’ll confess, you know, I’m no different, you know. I’m not weird about it or anything. I don’t tie myself up first, I just... you know. I just kind of... spend a little time with myself.

-- Tom Waits, Intro from "Nighthawks At The Diner" (as sent to Raindogs Listserv Discussionlist, October 31, 1999)

In Matters that are otherwise worthwhile

Posted at 01:14 AM | Permanent link

March 25, 2005

A lesson in caution on using the <pre> tag for wide-margined text

We have yet to develop a good method for displaying inline code in html documents, and as it turns out this is exactly what bit me with the previously mentioned IE6 problems with displaying this site.

The culprit was my previous entry: A tale of woe on dynamically building the Movable Type Individual Entry Archive template.

In that entry I cited a few snippets of perl code, inline with the rest of the html for the entry. Naturally, I surrounded this code with a <pre> tag, as this is the easiest way to preserve the spacing and indentation of a code snippet.

It just so happened that the pre-formated code that I had included for that particular entry happened to be quite wide - wider than the <div> it was enclosed in.

What happens when <pre> text overruns the boundaries of <div>'s and other enclosing tags that contain it?

As it turns out, the answer depends on the broswer.

In Firefox, the <pre> text simply runs through the boundary of the <div>:

Screenshot of pre overrun

This is ugly, but it does not catastrophically alter your page layout.

Internet Explorer 6 behaves differently, however. Instead of allowing the <pre> text to overrun the <div> as Firefox does, it expands the <div> outwards to contain the <pre> text:

Illustration of IE6 behavior on pre overrun

Unfortunately this can unexpectedly cause elements situated to the right of the enclosing <div> to be crowded out.

In my case, in IE the entire sidebar column of my page was crowded out and pushed all the way down the page, below all of my main page entries.

I've corrected this now by reformatting the <pre> text in the entry so that it isn't quite as wide, but the problem went unnoticed by me for weeks (I don't generally use IE6), and the fix wasn't especially obvious once it was pointed out to me that my page wasn't displaying correctly in IE6.

The moral of the story is to be careful not to place <pre> text on a page that has a high probability of overrunning the normal width of the <div> that contains it. Attempt to reformat <pre> text so that it will not surpass the boundaries of the element that contains it, and just to be safe, give your site a quick check in IE6 if you're using <pre> formated text.

In Technology and Software

Posted at 10:32 PM | Permanent link

On viewing this site in IE6

In response to my critique of this website, I've been informed that my site renders hideously in IE6. This has been going on for months. I apologize. I have brought shame to my family name.

I'm somewhat hurt that none of my supposed "friends" thought to inform me of this.

Or have I simply converted enough people around me to Firefox that I now live inside a bubble of hippie browser users? Hmmm...

In Site News

Posted at 05:55 PM | Permanent link

March 23, 2005

A critique on the design of

As I've been meeting more and more bloggers in person, I've also been becoming more and more self-conscience of the design shortcomings of my site.

Here are some of my own criticisms of (in rough order of importance). Feel free to add your own in the comments.

  1. I have no about page explaining who I am, and no prominent photo of myself (this is always the first thing I look for when I happen upon a new blog).
  2. Entries are not categorized, making it difficult for regular readers to find things they may recall reading in the past, and also difficult for new readers to get an idea of what I tend to write about.
  3. I have no site map. Thus, for instance, it would be very difficult to find the most popular service of my site, the Xanga RSS Fixer, by entering through the front page or casual deep link.
  4. A search box only appears on the front page. It should appear on every page.
  5. Visited links do not have a distinct color, flaunting users' expectations of the common web interface.
  6. The calendar on my front page is a waste of space.
  7. The recent entries links on my front page are a waste of space. Readers need only scroll down the page to see recent entries.
  8. The light grey text coloring used in different portions of the site (such as "Posted by") does not have enough contrast with the white background.
  9. Permanent links for entries are currently represented using the time the entry was posted. These should instead be explicitly say "Permanent Link"
  10. The light blue that I'm using for links could be a bit darker to contrast better with a white background as well.
  11. My temporal archive list is getting somewhat long and ungainly. This could be consolidated on a separate page perhaps.
  12. It is not obvious to the casual user what my XML syndication feeds are supposed to be. It would be helpful to take a page from Blogger's book and apply a special stylesheet to feeds that says something to the effect of "This is an Atom formatted XML site feed. It is intended to be viewed in a Newsreader or syndicated to another site.".
  13. My site is not fully accessible.
  14. My snipits use html that does not validate

I just wanted to say publically that I am very much aware of these flaws. I hope to fix them soon, and will be documenting some of the fixes as I implement them.


I have created a snapshot of this site's front page, circa March 2005:


In Site News, Technology and Software

Posted at 02:24 AM | Permanent link

March 17, 2005

Using c-mode to edit Javascript in Emacs

As part of my foray into the Greasemonkey world, I've been on the lookout for a good environment for editing standalone Javascript files.

Emacs being the One True Editor, you'd think that there would be a decent major emacs mode for editing Javascript, and you'd be wrong.

I tried installing:

Using Emacs, I get the following message when trying to switch to javascript-mode:

File mode specification error: (file-error "Cannot open load file" "c-mode")

I tried a few things to fix this, but they only seemed to make things worse.

Just using straight c-mode with Javascript works fairly well, although for some reason c-mode in Emacs 21 out of the box has an irritating indentation offset of only two spaces.

We can fix that up right quick, however.

Add the following to your .emacs file to fix the indentation problem and associate .js files with c-mode:

; Indent c code four spaces

(setq c-basic-offset 4)

; Associate c-mode with the .js extension

(setq auto-mode-alist (append '(("\\.js$" . c-mode)) auto-mode-alist))

In Technology and Software

Posted at 12:14 AM | Permanent link

March 16, 2005

On the third Raleigh/Cary Bloggers Meetup

The latest Raleigh/Cary Bloggers meetup took place tonight.

In contrast to the sparse attendance last week, we were able to draw a fairly nice crowd this week, with some new faces in attendance. Participants in addition to myself included:

Interestingly, both Vincent and Martin happen to be IBM Extreme Blue interns, although this was my first real correspondence with either of them.

Given that everyone who attended this week had a technical background, the discussion immediately took on somewhat of a technical flair. My memory can't possibly do justice to all the topics we covered, but here is my best shot:

  • We discussed Mark Pilgrim's Butler script for the Greasemonkey Firefox framework. We agreed that Greasemonkey opens up the door to some very interesting hacks, especially in conjunction with XMLHTTPRequest (aka Ajax) - the technology that drives Google maps.
  • Martin pointed out a in interesting bookmarklet that animates a Google maps route, as demonstrated by John Udell
  • Vincent would like to see a method of allowing readers to rate blog entries, and remarked that he would like a way of exposing only the highly rated posts to new users, when it might otherwise get burried in a flurry of blogging randomness.
  • It was discussed that someone is trying to patent a method of only exposing higher quality entries to new subscribers of an RSS feed, as an introduction, while regular readers will receive all content.
  • We discussed tags on flickr and technorati. This lead to a discussion on Metacrap, and the limits of metadata.
  • D remarked that is a lifesaver.
  • We discussed various ideas for automatically highlighting interesting content across the blogosphere, including Steve Gilmore's attention.xml, even though none of us really had any clue on what attention.xml actually is or how it is supposed to work.
  • We talked about Gmail, and using algorithms to scan the content of an email and automatically group related content without having to resort to manual labeling (avoiding metacrap pitfalls)
  • We were quite pleased with Google's offering of free POP access to Gmail (along with smtp), but wondered how they could possibly have no future plans to charge for it.
  • Podcasting was discussed, and it turns out that I'm not the only one who has stopped listening to Adam Curry because I'm sick of hearing podcasts about podcasts.
  • Marty wondered about how the concentration of bloggers in the Triangle compares to the rest of the country, and remarked that it would be interesting to see a map illustrating the density of bloggers by region.
  • Dave mentioned that GeoURL had recently come back online, and could possibly serve as the geographic map that we envisioned
  • was mentioned - a service that seemlessly allows one to temporarily host large files too big for email (up to 1GB) in order to "send" them to another user.
  • Comment spam was discussed, including the usual suspects of nofollow, captcha, and methods of defeating captcha.
  • Dave wondered how clickthrough pricing is determined for systems such as Google AdWords. It is actually a marketplace system where advertisers bid for keywords. Although Google doesn't do so, Overture allows you to view advertisers' max bids for specified search terms.
  • The Super Shuffle, a blatant Taiwanese rip-off of the iPod Shuffle was also discussed.

Please feel free to leave a comment if I left out anything important or got anything wrong.

We came to a consensus that bi-weekly would be a good frequency to meet. Given this, I propose that we meet on the first and third tuesdays of the month.

Hopefully this will keep my readers from lynching me for having to hear about a Raleigh meetup every other entry...

Time to sleep...


Alternate perspectives on the meetup:


The next Raleigh/Cary meetup will be Tuesday, April 5, 2005.


When: Tues, April 5 2005 @ 6:30 p.m.
Where: Cafe Cyclo, in Cameron Village

2020 Cameron St
Raleigh, NC 27605 (map)
(919) 829-3773

Informally RSVP at the Raleigh/Cary Bloggers page.

We will meet on the first and third tuesdays of the month, at the same time thereafter.

In Blogging

Posted at 01:56 AM | Permanent link

March 15, 2005


In an effort to curb the trackback spam I've been receiving, I've installed the MT-TrackbackAntiSpam plugin from James Seng (the same guy who brought us the scode captcha plugin for Movable Type).

Installing the plugin is very easy. Just drop the script in your plugins directory, make sure it's executable and you're good to go - no additional steps necessary.

It's been a few days and so far I haven't received any new trackback spam and genuine trackbacks are still getting through. We shall see what the future holds.

In Blogging

Posted at 12:06 AM | Permanent link

March 14, 2005

Raleigh/Cary Bloggers Meetup, Tuesday March 15, 2005

Join us tomorrow (Tuesday March 15) for the third weekly Raleigh/Cary Bloggers meetup.

What: An open meeting to talk about blogging, podcasting & whatever's on your mind
When: Tues @ 6:30 p.m.
Where: Cafe Cyclo, in Cameron Village

2020 Cameron St
Raleigh, NC 27605 (map)
(919) 829-3773

Who: Bloggers & people who want to blog

Optionally RSVP at the Raleigh/Cary Bloggers Meetup page.

Amongst other things we will talk about this week is the frequency of future meetups.

See notes on our last meetup.

Hope to see you there!

In Blogging

Posted at 11:09 PM | Permanent link

March 13, 2005

The utility of a blog post calendar

Is the post calendar that appears on the front page of many a blog really all that useful?

Let's think about our blog reading habits. Does anyone say to oneself "I really must know what the Philip Greenspun has written on the ninth of this month vs. the previous Wednesday"?

The most useful feature of the blog post calendar is that it gives a succinct overview of what an author's posting frequency. Is he a diurnal poster or a twice quarterly poster?

Regular readers will already have a fairly good picture of an author's posting habits.

The calendar is therefore much more useful to the new visitor, who stumbles upon one's site and wonders what it is all about. It logically follows that calendars should be relegated to the "about" page of a blog, rather than chew up screen real-estate for all users (who haven't yet accepted an RSS reader as their lord and savior) on the main page .

Indeed, most prominent bloggers that I read have long since ditched the calendar idea altogether.

Something to consider for the redesign of

In Blogging

Posted at 05:03 PM | Permanent link

March 09, 2005

On the second Raleigh/Cary Bloggers Meetup

The second Raleigh/Cary Bloggers meetup went down earlier this evening.

Present were Dave Johnson, Rick Ross, and myself - an impressive concentration Java geeks if I've ever seen one. Sparse though the crowd may have been, there was no shortage of excellent conversation.

We convened at 6:30 at Cafe Cyclo (where, unfortunately [or perhaps not], the wi-fi didn't flow quite as freely as the wine, coffee, and beer) and talked for slightly more than three hours.

Topics included:

and many more that I can't recall off the top of my head.

Dave and I wondered aloud on perhaps making the Raleigh/Cary meetup a monthly event (as opposed to weekly), given the level of interest thus far, and also on possibly moving the meetings to Wednesday. Comments on these matters would be greatly appreciated.

In Blogging

Posted at 01:10 AM | Permanent link

March 08, 2005

On my one year in the real world

On year ago today, I began work at IBM.

I cannot express my thoughts and emotions regarding this past year any more perfectly than Paul Graham does on page 230 of Hackers and Painters:

'Many people feel confused and depressed in their early twenties. Life seemed so much more fun in college. Well, of course it was. Don't be fooled by the surface similarities. You've gone from guest to servant. It's possible to have fun in this new world. Among other things, you now get to go behind the doors that say "authorized personnel only." But the change is a shock at first, and all the worse if you're not consciously aware of it.'

-- Paul Graham

How true, how true.

Luckily I think that I'm getting the hang of the "having fun" part, and by that I mean more than just the superficial definition of "having fun."

The game of life is a constant learning experience. It doesn't end with college and it isn't limited to equations we read in text books. Any person who hasn't figured that out is a poor soul, indeed.

In Matters involving the art of avoiding sloth

Posted at 11:10 PM | Permanent link

March 07, 2005

Raleigh/Cary Bloggers Meetup

Join us, tomorrow (Tuesday, March, 8 2005 ), for the second weekly Raleigh/Cary Bloggers' Meetup.


What: An open meeting to talk about blogging, podcasting & whatever's on your mind
When: Tues @ 6:30 p.m.
Where: Cafe Cyclo, in Cameron Village

2020 Cameron St
Raleigh, NC 27605 (map)
(919) 829-3773

Who: Bloggers & people who want to blog

Alternate perspectives on the last meetup:

Anton Zuiker
Andy Wismar

I'm noticing that we don't yet have an entry in the blog together wiki. I'm hoping to remedy that when I get home from work this evening.


The wiki entry has been created. Check it out for further details and feel free to add your own!

In Blogging

Posted at 09:25 AM | Permanent link

March 06, 2005

Adam G arrives on the scene

My roommate, Adam Gunther, is now blogging (again, after much prodding and poking by yours truly)

Sweet Jesus, not 48 hours later he's already doing an in-depth analysis of the Philadelphia Eagles lineup.

Look out blogosphere!

Furthermore, some of ya'll had better start writing before I cast you from my blogroll.

In General

Posted at 10:27 PM | Permanent link

March 05, 2005

A tale of woe on dynamically building the Movable Type Individual Entry Archive template

I've been playing around with Movable Type dynamic rendering templates. Currently I'm using Movable Type 3.15, installed via the standard upgrade path.

This is how it has worked so far:

  • I setup my weblog root directory as described in Six Apart's dynamic publishing instructions.
  • I log into the Movable Type control panel and enable dynamic page rendering for my Individual Entry Archive template by clicking the checkbox for "Enable dynamic building for this template".
  • I rebuild my entire site.

After performing these steps, I browse to a permalink for one of my entries and am greeted with the following under the Comments section of the page:

Fatal error: Call to undefined function: translate() in
.../mt/php/lib/function.MTCommentFields.php on line 23

:( :(

After doing some investigation, it seems that as of MT 3.15 the <MTCommentFields> template tag is broken out of the box for use with templates that are being dynamically rendered.

Unfortunately it doesn't look to be an easy fix.

I tried doing the following:

Around line 23 of <mt_home>/php/lib/function.MTCommentFields.php we see:

$allow_comment_html_note = (($blog['blog_allow_comment_html'])
  ? $ctx->mt->translate("(You may use HTML tags for style)") : "");

I replace the call to

(not sure if this is strictly correct, just guessing after looking at the methods contained in <mt_home>/php/mt.php).

So afterward this line looks like:

$allow_comment_html_note = (($blog['blog_allow_comment_html'])
  ? $ctx->mt->translate_templatized("(You may use HTML tags for style)") : "");

Now after navigating to an individual entry permalink I see:

The requested page could not be found.
No comment available

Under the Comments section.

:( :(

This new error seems to be unrelated to the previous change. Now the offending line of code seems to be:

$comment_author = encode_html($ctx->tag('CommentAuthor')) || "";

Around line 49 of the same file (function.MTCommentFields.php).

I can see that the error is being caused in the function smarty_function_MTCommentAuthor in <mt_home>/php/lib function.MTCommentAuthor.php.

I'm not sure how much deeper the problems go, but unless I'm missing something it doesn't look like Six Apart fully tested dynamically building the individual archive template.

Unfortunately, I don't have time to keep looking at this now and trying to find a way to submit bug reports through Six Apart's website only results in useless clickflailing about.


Apparently the way to report bugs to Six Apart is through the Bugs and Odd Behavior section of the Movable Type Community Forum. I stumbled across this by pure happenstance as it is not indicated anywhere else on Six Apart's site.

At any rate, I have created the following topic:

Problems dynamically building individual archive

In Blogging

Posted at 01:49 PM | Permanent link

March 02, 2005

A typical skier's learning curve

Skiers and snowboarders lounging at the top

As I recounted in my last skiing entry, I've been pleasantly surprised with my progress on the slopes (after only my third time out in my life) and I wanted to write about it while it is still fresh in my mind. I think that it is easy to get intimidated and label yourself "not a skier" if you have never gone by the time you reach your early to mid 20s. I know that I certainly felt this.

I don't think that many people realize just how easy it is to get up to speed and have a lot of fun in the process. Below is my experience with the skiing learning curve. Others may find it useful as a gauge:

Date Location Experience
Winter 2002 Boston Mills *
  • This was my very first time touching skis period and began with the very basics of learning how to put on ski boots, snap into the skis, walk in skis, and go down a bunny hill.
  • I had help from a rather experienced friend, who was a very good instructor.
  • Only about a half day was spent on the slopes.
  • Periodically much hilarity would ensue when I would fall down while standing in the lift line with my skis on and not be able to get up.
  • By the end of it I was able to make it down a fairly small green slope without falling, and was able to make it down a very small blue slope without killing myself (but not without falling).
<three year interlude>
January 2005 Snowshoe
  • Two days were spent on the slopes in total.
  • Even the small slopes at snowshoe are considerably larger than slopes of equivalent difficulty at the imitation resort of Boston Mills.
  • On day one I started off on *real* green slopes right away.
  • By the end of day one I was barely able to make it down certain green slopes without falling.
  • By the end of day two I was able to consistently make it down all green slopes without falling and was able to make it down an easier blue slope without falling.
<one month interlude>
February 2005 Snowshoe
  • Two days were spent on the slopes in total, with the first day including roughly three hours of night skiing.
  • As usual I started off with green slopes, but it quickly became apparent that I could easily make it down any green slope on the mountain without falling (this was quite surprising to me).
  • Early on in the first day I moved on to some easier blue slopes, which I was able to take without falling.
  • I moved on to some intermediate blues, which I was able to initialy take without falling about half the time. Difficult blues would still regularly trip me up.
  • By the end of the trip, I was able to regularly take any intermediate blue slope on the mountain without falling.
  • Though it happend rather infrequently, I would still fall occasionally on blue slopes, and these falls would tend to be considerably more serious than I was used to (as recounted here).
* Boston Mills is a really small ski resort in Akron OH, with a website that should be featured in Don't click on the link above if you can help it. UrbanWildernessDesign, the company who designed the Boston Mills site, should be ashamed of themselves. A note to the UrbanWilderness guys when they find this page while searching for themselves in Google: websites that play sound in the background make me want to poke my finger through my eye up into my brain and swirl it around, especially when there is no apparent way to turn the sound off. I would watch network TV if I wanted to listen to advertisements all day. Therapy.

The future:

My next time out, I'm planning on taking some of the harder blue slopes until I can make it down them consistently without falling. I anticipate this taking about a half a day. I then plan on moving onto my first black slope.

In Matters that are otherwise worthwhile

Posted at 11:08 PM | Permanent link

Swagat Indian Cuisine in Roanoke, Virginia

On our way home from Snowshoe Sunday night, rather than take the normal route down 77 back to Raleigh, we decided to mix it up a bit and take highway 220 on the theory that it might be a bit more direct and therefore quicker.

Unfortunately, we ran into a snow storm midway through Virginia that followed us all the way to Greensboro, so our findings are inconclusive.

On the upside, however, highway 220 took us through Roanoke, Virginia right around dinner time, and we happened upon a wonderful Indian restaurant called Swagat Indian Cuisine (map) in downtown Roanoke. Their Roti was incredible! The Samosa, rice, and Tandoori Chicken were also excellent. The service was fantastic, and the portions quite large.

All in all, one of the best Indian meals I've had in quite some time. Highly recommended if you happen to be looking for Indian food in the Roanoke area.

Note: Swagat's website also has their menu available as html, saving Firefox the pain of having to grind over the Acrobat plugin. This is also very commendable.

In General

Posted at 12:36 AM | Permanent link

March 01, 2005

What happens when you eat a battery?

We got into a heated discussion at lunch today about what would happens if a person eats a battery. Obviously, if the seal on the battery is broken then very bad things happen. But what are the chances that the battery seal will stay in-tact and the battery will simply pass through your system?

One argument that was proposed was that the battery casing was designed to keep the battery acid in, so is it also enough to keep stomach acid out?

Perhaps some of you engineers-turned-med-students would like to chime in?

In Matters that are otherwise worthwhile

Posted at 09:43 PM | Permanent link

Snowshoe Skiing Redux

Those of you who know me in real life or otherwise live vicariously through my away messages will know that I went skiing at Snowshoe again this past weekend.

Again, it was a lot of fun! I went up with Jon and Kerry again, only this time a bunch of Kerry's friends met us as well, resulting in fourteen people staying in two condos.

The skiing was very good. After skiing all day Saturday and hitting the hot tub for a bit, we went out for night skiing, a first for me, and very cool. Sunday was about as perfect a day to be on the slopes as one could wish for - sunny and just cold enough to keep you pleasantly cool.

I was surprised with how much I had improved since the last time I went. I fell much less often, but given that I was trying more advanced slopes, the falls that I did take were a bit more serious. During night skiing, I took a particularly hard head over heels fall, losing my poles, skis, goggles, glasses, and hitting my head on the slope. Uf... I think I'll be investing in a helmet before going out again.

I got back on the horse, though, and all in all it was a *very* enjoyable weekend.

I took considerably more pictures this time. All are available in my Snowshoe Skiing February 2005 folders. Here are some of the highlights:

Snowshoe Village Gratuitous ski lift shot Skiers and snowboarders from the top Surveying the Snowshoe trail map Skiers and snowboarders lounging at the top Jon, Kerry, and Lisa on the lift

In Matters that are otherwise worthwhile

Posted at 12:12 AM | Permanent link