somewhat daily mutterings

/Programming/Projects/Gemcast gemcast needs RSS Support

Some time ago, I whined that I felt ignorant for not knowing what RSS is. I've done something about that, and now I realized that gemcast must be modified to provide an RSS feed. Somehow, it strikes me as profoundly arrogant to assume that anyone would syndicate my own personal RSS feed. But gemcast, to be taken seriously, still needs the capability so that others can make feeds available for their important stuff. Dang, maybe it's profoundly arrogant to assume that anyone will ever run gemcast, too. I can't win.

Here's what I need to do to get there:

  • Generalize the template stuff so that you can have "named groups" of templates. These map to what blosxom calls "flavours", and I think I'll stick with that nomenclature (and anglo spelling). The default flavour will be configurable, but most folks will make that their web-browser presentation (HTML) templates. RSS will be an alternate flavour, meaning an alternative set of templates, and of course you'll be able to support different versions of RSS (not to mention different HTML, etc. layouts) with different flavours.
  • Take the CSS references out of the gemcast code, and move them into the HTML-based template(s). This is because files generated by gemcast are no longer always HTML.
  • Get permalinks (or at least single-entry views) working in gemcast so that RSS entries can contain links to the original entry, to be viewed in context.

Posted: Fri Feb 28 23:29:02 -0800 2003

/Miscellany BEA's New Dev2Dev and Download Center are Live!

At about 3:15am this (Friday) morning, BEA's Dev2Dev and Download Center sites went live on our newly architected services, all in time for eWorld next week.

It's very cool to see code that you've written or maintained finally running on a major public web site. If you're wondering what part I had in all this, it's a lot of behind-the-scenes stuff: the delegation of sign-ons to a centralized registration/sign-on server, and the maintenance of the single sign-on code that allows you to move from one BEA application to the next and stay signed on even though they're running on different WLS instances. To make a long story short: when you log into any BEA site you're executing code that I had a part in designing, writing, and/or maintaining.

OK, enough bragging :-).

Posted: Fri Feb 28 22:57:28 -0800 2003

/Miscellany Goodness, Me?

I just took the "How Evil Are You?" quiz. I did OK, I guess:

How evil are you?

Posted: Wed Feb 26 14:32:14 -0800 2003

/Programming/Projects/Gemcast Organizing by File Dates Sucks

So, this morning I decided to move some of my files around to better fit my category taxonomy. I had written some stuff about the iPod, and decided to move those items from my main category down to the Music category. Simple, I thought, I'll just do the following:

cp `grep iPod *.txt` Music

I did a 'cp', rather than a move, in order to double-check that the results of the command worked. After that, I 'rm'd the files from the original location. Cool, no problem, I thought. I thought wrong. The files I copied now all had today's date, therefore, they sorted incorrectly into my weblog. Dufus!

Fortunately this could be fixed with a bit of Ruby magic:

ruby -e 'File.utime(Time.local(2003, "Feb", 16, 0, 0, 0), \
         Time.local(2003, "Feb", 16, 0, 0, 0), \

Luckily, I'd written the entries fairly recently, so I could make a reasonable guess as to when they were composed.

Posted: Tue Feb 25 07:39:49 -0800 2003

/Music iPod News

I've now burned 208 CDs to my PowerMac, and have maybe 75% of that number to go. My iPod has about 7G of space left. It ain't gonna hold it all :-(.

I had a little fun with iTunes' smart playlist feature. A smart playlist is essentially a query into your iTunes library. So, you can create a dynamic playlist based on date, genre, artist, etc. and have that playlist automatically updated with whatever fits your criteria anytime music is added to your library. For example, I added playlists for 60s, 70s, 80s, etc. jazz and popular music, and a playlist I call "Acoustic Roots".

The Acoustic Roots playlist automatically includes any music recorded by Gillian Welch, Tin Hat Trio, or Bill Frisell (the only Frisell albums I have fit into that category). I'm still not sure about having Acoustic Roots as a category - perhaps it would be better to just define a genre for that. That's the modeler in me - I'm always wondering if there's a better way to represent things.

Posted: Tue Feb 25 07:13:38 -0800 2003

/Miscellany Scary Yahoo Mail Bug?

I just saw the following at the top of my Yahoo Mail page.

Yahoo! | Welcome, tanyaberger [sign out - account info]

Scary, eh? The good thing is that the 'account info' link took me to my own profile page, not tanaberger's.

Posted: Fri Feb 21 11:44:37 -0800 2003

/Miscellany WTF is RSS?

I know I'm just a total idiot for not knowing all about RSS. I mean, it's as big as Jesus amongst the weblogging cogs, and I still don't know what it is, and what it can do for me. I must grok it, or be terminally even more uncool.

Posted: Fri Feb 21 09:12:13 -0800 2003

/Miscellany They Like Me...

Derek, over at, credited little ol' me with helping him get some traction with the data model for his DVD collection database, which was nice of him. If you ask me, he's come to an understanding of the basics of data modeling in an amazingly short period of time.

While our political outlooks differ somewhat, his is a first-class site, and I check it out every so often..

Posted: Fri Feb 21 09:09:56 -0800 2003

/Miscellany Orange Dream Machine (*****)

I've been in San Jose this week, and have been turned on to Jamba Juice (yeah, I'd heard of them before, but never had partaken). The store is right next to my hotel, and for the last four mornings I've treated myself to their Orange Dream Machine smoothie, with a fiber "boost". All I can say is, it's very tasty, and, my "movements" have been joyful and triumphant, if you get my drift (not that you asked).

Posted: Fri Feb 21 09:01:57 -0800 2003

/Personal_Mythology Booger Wall

So, there I am, in the restroom at work taking a whiz. My wandering eyes (wandering directly in front of me, thank you) fall on, of all things, a booger stuck to the wall. This is unreal to me. What twisted, tortured mind, in my theoretically professional workplace, would actually stick a booger to the restroom wall?

Actually, I guess I shouldn't be that surprised, because there is a precedent. When I was at E&Y we had a similar bathroom wall booger-sticking incident. You'd go to take a whiz, and there before you would be someone's booger stuck to the wall, as if that's what it's there for. One of the more outraged guys on the team decided to take action and put up a post-it note sign saying essentially, "please Mr. Crazy Booger-sticker, don't stick your boogers to the wall. You are frightening those of us who are nearly civilized." As a response, the booger-sticker, with a well-developed sense of irony, stuck a booger to the sign. We are surely doomed.

Posted: Thu Feb 20 16:48:58 -0800 2003

/Programming/Projects/Gemcast Deploying and configuring gemcast

Deploying gemcast is pretty simple, really. It requires only that you have Ruby installed and a web server that can run CGI programs.

  • Create a directory for the gemcast CGI application and copy the *.rb files there.
  • Ensure that gemcast.rb has the proper execute privileges.
  • Configure your web server with a "script mapping" to the directory under which you've put the gemcast script files.
  • Create a data directory somewhere where gemcast will be able to see it. It's probably easiest to just copy the data directory included with the gemcast distro to wherever you want. The data directory should have, at the least, a templates and a css directory, each with their appropriate content (read further).
  • Configure gemcast with settings appropriate to your environment. This is done in the config.rb file. The file is fairly well-commented, so you shouldn't have much trouble there.
  • Configure your templates. There are currently three templates: body, entry, and box. Each relates to an element of your website's layout. Body represents the overall layout of your site's page(s). Entry and box represent the layout of individual weblog entries and sidebar boxes. Variables placed in the templates are replaced by gemcast when a given page is rendered.

    The following variables are available in your body template:

    • #{log_entry_content} (this is log content after the entry content is generated and the entry template is applied)
    • #{category_content}
    • #{sidebar_content} (this is sidebar content after the sidebar content is generated and the sidebar template is applied)
    • #{breadcrumb_content}
    • #{weblog_title}
    • #{current_day}
    • #{current_mon}
    • #{current_yr}

    The following variables are available in your log entry template:

    • #{entry_title}
    • #{entry_text}
    • #{entry_date}

    The following variables are available in your sidebar box template:

    • #{entry_title}
    • #{entry_text}
    • #{entry_date}

Posted: Thu Feb 20 16:44:25 -0800 2003

/Music Note to Self

After quickly scanning thru a bud's MP3 collection, I find I need to look deeper into these artists: Can (specifically the album Ege Bamyasi, North Atlantic, Polvo (Sonic Youth-like?), Fugazi (I guess it's about time, eh?), Giant Sand, Howe, Spoon (made me think of Squeeze and Split Enz), Arab Strap, Slint (another one reminiscent of SY), and Loose Fur. He also turned me on to AMG - All Music Guide.

Posted: Thu Feb 20 13:36:46 -0800 2003

/Programming/Projects/Gemcast Travel Hacking

I decided to put my off hours to "good" work tonight by hacking a bit on gemcast. I added recursive log entry collection, which means that a given weblog category displays all of its entries and all those of its subcategories. I haven't yet put in a "max entries" feature, so my top weblog page may end up a bit long for the time being. Also, I intend to make the category text for each entry into a link so that you can jump to that category.

Posted: Tue Feb 18 23:44:22 -0800 2003

/Programming A Couple of Articles on Scripting in the Business World

Scripting is sometimes predicted to be the future of software development. After just a little time spent developing the weblog engine for this site, I can almost agree. Here are a couple of interesting articles on the topic:

Posted: Sun Feb 16 11:24:09 -0800 2003

Thanks for visiting! Send comments to Mike Thomas.