Saturday, February 28, 2004

NFL Channel

My cable provider has just added the NFL Channel. I love football and look forward to seeing what sort of content they will produce. I worry that football is too narrow of a topic to focus on exclusively. Just this morning Rich Eisen was interviewing Leonard Maltin from Entertainment Tonight and Hot Ticket. During the interview Rich asked Leonard what was the best football film of all time but the majority of the conversation was about 'The SuperBowl of award shows' the Oscars. I hope this isn't a trend. I wouldn't tune in if the I only expected to find out whom Whoopi Goldberg believes will go first in draft.

Speaking of the draft, I really hope the Pats trade up for Oregon's Steven Jackson. He's a moose.

Friday, February 27, 2004

Full Metal Jacket

I'm watching Full Metal Jacket tonight. It's a great movie. I just watched this scene and it made me laugh. The last quote by the Colonel is a classic.

Colonel: Marine, what is that button on your body armour?

Joker: A peace symbol sir.

Colonel: Where'd you get it?

Joker: I don't remember sir.

Colonel: What is that you've got written on your helmet?

Joker: "Born to Kill" sir.

Colonel: You write "Born to Kill" on you helmet, and you wear a peace button. What's that supposed to be, some kind of sick joke?

Joker: No, sir.

Colonel: Well what is it supposed to mean?

Joker: I don't know, sir.

Colonel: You don't know very much do you?

Joker: No sir.

Colonel: You better get your head and your ass wired together or I will take a giant shit on you.

Joker: Yes sir.

Colonel: Now answer my question, or you'll be standing tall before The Man.

Joker: I think I was trying to suggest something about the duality of man sir.

Colonel: The what?

Joker: The duality of man, the Jungian thing, sir.

Colonel: Who's side are you on, son?

Joker: Our side, sir.

Colonel: Don't you love your country?

Joker: Yes, sir.

Colonel: Well how about getting with the program? Why don't you jump on the team and c'mon in for the big win?

Joker: Yes, sir.

Colonel: Son, all I've ever asked of my Marines is for them to obey my orders as they would the word of God. We are here to help the Vietnamese because inside every gook, there is an American trying to get out. It's a hardball world, son. We've got to try to keep our heads until this peace craze blows over.

Joker: Aye aye, sir.


Watching TV with a laptop handy certainly enhances the experience. In the course of one movie I've already used Google and IMDB to answer some questions. Did you know that the actor who played Pvt Pyle also played the psycho in The Cell and the the bug in a man suit (Edgar) in Men in Black.

Thursday, February 26, 2004

Open Source Blues

I'm not actively involved with open source but I like to follow what's going on. One thing I've noticed recently is that open source is suffering some growing pains. Before anyone flames me I don't mean that open source as an idea is suffering, only that as it grows in popularity the larger open source organizations are alienating some of the same folks they once courted. Take these two posts for example. These thoughts sound a lot like those of the old Iris crew after we were absorbed by IBM. I doubt that things have reached the Dilbertesque levels one sees in a large corporations but it's still an interesting milestone in the evolution of the industry.

Tinfoil hat

Anytime someone on the web believes in a conspiracy they are labeled as a 'tinfoil hat wearing' so and so. Where did this come from? I recall seeing some TV show long ago with a lunatic wearing tinfoil to stop mind control so I know its not a new phenomenon. I'm just wondering how this came to be a well accepted metaphor for being crazy. Wikipedia doesn't provide much info.

Lack of skilled talent is a growth problem?

I just read the IBM Survey Unearths Growth Agenda article at eWeek. It certainly paints a more rosy picture than we've been seeing lately. I did find some of the quotes a little hard to swallow however.
The dearth of appropriately skilled professionals was underlined by Bill Pence, CEO of the Napster unit of Roxio Inc., of Los Angeles. "In the last 18 to 24 months, it has been much harder to find talent," he said.
To be fair the study was global with half the respondents coming from Asia-Pacific. Regardless, quotes like that must have all the out of work IT folks fuming with frustration. It does beg the question however what are the appropriate skills they are looking for.

Wednesday, February 25, 2004

Connecting the Ruby dots

I read an interview recently with Dave Thomas, one of the Pragmatic Programmers. In the article he gives an example of the power of Ruby by citing how you can essentially extend the language. When the interviewer asks him to explain he briefly tells how in Ruby you can write methods that can be invoked while a class is being defined. I know a bit of Ruby but I don't use it enough to keep fluent. As much as I thought about the example he gave (it follows) I couldn't construct in my head how his code could work. I took the opportunity today during a long CC rebase to flip through Programming Ruby and figure out more of what Dave meant. My attempt at an explination follows.


The example Dave gives is something he wrote to generate code for working with database tables.


class RegionTable < Table
table "region" do
field autoinc, :reg_id, pimary_key
field int, :reg_affiliate, references(AffiliateTable, :aff_id)
field varchar(100), :reg_name
end
end

In the above code none of the keyword like things: table, field, varchar, primary_key are part of the Ruby language. These are all extensions Dave's added to make the job of working with tables easier.


To demonstrate how this could be done I'll show a version of the Table super class that generates some simple SQL. The output of my code will look like:


CREATE TABLE region (
reg_id AutoInc PRIMARY KEY,
reg_affiliate Integer REFERENCES AFF aff_id,
reg_name VarChar(100) ,
);

I'm sure Dave's implementation is much more sophisticated than what follows but this at least captures how you might approach the problem. All the magic is in the base class Table so let's just dive in and look at the code.

class Table
def Table.table (name)
puts "CREATE TABLE #{name} (";
if block_given?
yield
end
puts ");";
end
def Table.field (type, name, *rest)
print "#{name} #{type} ", rest;
puts ",";
end
def Table.autoinc
"AutoInc";
end
def Table.int
"Integer";
end
def Table.varchar(size)
"VarChar(#{size})";
end
def Table.primary_key
"PRIMARY KEY";
end
def Table.not_null
"NOT NULL";
end
def Table.references(a1, a2)
"REFERENCES #{a1} #{a2}";
end
AffiliateTable = "AFF";
end

Most of the new keywords are just class level methods of Table. As Dave mentioned in the article the insides of a class can contain code that's executed as the class is evaluated. In Dave's example that's all there is. As the RegionTable class is being parsed the method Test.table is called. This method takes one explicit parameter but it also looks for and will execute a block that follows it. In our example the string "region" will be passed directly to the method while the following block of code will be passed as the block.

do
field autoinc, :reg_id, primary_key
field int, :reg_affiliate, references(AffiliateTable, :aff_id)
field varchar(100), :reg_name
end

Since a block might not have been passed, Ruby has a nice feature that allows a method to test whether one has and only call it if it was. In my example it's this little chunk of code.

if block_given?
yield
end

Within the block each of the 'field' lines is a separate method call to the Table.field method. The types autoinc, int and varchar are all just methods that return strings.


The only really weird bits here are the things :reg_id, :ref_affiliate , :add_id and :reg_name. These are basically string constants. In Ruby terms they are atomic strings. or Symbols. In terms of our example (at least as I've coded it) you could replace them with regular strings and it would work the same.


Like I said earlier I'm not a Ruby expert. I just wanted to understand the example Dave made a little better. If you made it this far I hope you found it informative too.


Tuesday, February 24, 2004

Lost in Translation

Not the movie. The tattoos.

Stroke It

The folks on TSS had a piece on Strokeit, a mouse gesture program for Windows. It can be configured for the window class that its operating in so you can define different stokes for different apps. I've only tried it in Mozilla for browsing but even for that one task it seems useful. Time will tell whether I apply it to other apps or not. Worth a look.

Think you've got it bad?

Take 30 seconds (that's about all I could stand) and read some of the comments on fthisjob.com . I guarantee you will feel better about yours.

English idioms

Wayne Magnuson English Idioms Sayings and Slang
is a list of English idioms. The lists is funny to peruse if only for the fact that it jogs your memory about all the weird things people say. While I don't use all the idioms listed I actually have heard most of them.

Monday, February 23, 2004

O'Reilly Animals

While researching my last post I came across the full list of O'Reilly animal covers. The Tarsier actually appears on four, although I only knew it from Learning VI.

Tarsiers

My favorite O'Reilly animal cover has always been the Tarsier. Besides being a cool little animal I thought the colophon description was hilarious. Most attempts to connect the animal to the topic are hit or miss but this one is great.
Tarsiers are active only at night, hiding during the day in tangles of vines or in the tops of tall trees. They subsist mainly on insects, and, though very curious animals, tend to be loners.

The parallels to the stereotypical programmer are just too funny.


So it was with some sadness I stumbled across the Save the Philippine tarsier site. Of course I'm glad that people are trying to save the Tarsier, I'm just sad that they need saving.




Sunday, February 22, 2004

Changing from Safari to Firefox on OS X

I purchased my wife an iBook this fall for reading email and general web surfing. Being a long time PC dude I also had the ulterior motive of wanting to play with a Mac. I haven't explored as much as I would like but I do get to play with the machine for a while on weekends. Mostly I've been using it to blog, just like now.

Up until today my browser of choice has been Safari. I tried Firebird 0.7 but it had stability issues and since I try not to use Explorer on the PC I'm sure as heck not going to use it on a Mac. I've been happy with Safari for the most part. One thing that's annoyed my about it however has been that the full Blogger web app doesn't work. You need to use the limited UI from Safari. As I mentioned earlier I use the Mac for blogging and this was a major annoyance. I finally installed FireFox (0.8) today and was pleasantly surprised that it was both stable and ran the full Blogger UI.

Why's (Poignant) Guide to Ruby

Why's guide is a humorous guide to Ruby programming.



(via Bertrand Delacretaz via Simon Wilson)

Cyber Shmuzzles

I saw this on TechTV; cute little Escheresque puzzles called Shmuzzles. If you like Escher's intertwined lizards you will like this.

Friday, February 20, 2004

Chiasmus

chiasmus (ky-AZ-mus) n.

a reversal in the order of words in two otherwise parallel phrases.

NASA Space Shuttle Schedule

This article from Space Daily on NASA's over ambitious launch schedule and it's impact in safety is a interesting read. Having been on many software projects that have faced seemingly arbitrary and ridiculous schedules I can relate to this.
Yes, believe it or not, it's now 19 February 2004! Hard to believe this famous date came around so soon. I wonder if NASA is having any official event to commemorate this day? More likely everyone will just leave work early and get dead drunk.

Original Trunk Monkey


Bob and Ned have recently mentioned the Trunk Monkey commercial featuring a chimp who pops out of a car trunk to save the day. While this is a seemingly original idea there was an important precedence - Chim Chim of Speed Racer fame. Hail the original Trunk Monkey or more appropriately Trunk Ape.

Thursday, February 19, 2004

X Omega

According to Microsoft Watch, Microsoft has a new XML programming language on the way. The language was previously known as both X# and Xen. Its hard to say what this really means. I wonder if it will have any resemblance to Groovy's tree like structures?

Tuesday, February 17, 2004

Component Development for the Java Platform

I just finished Stuart Halloway's excellent book Component Development for the Java Platform (also available free on-line). The book has been around for a few years but it's still a great deep dive on class loaders, reflection and serialization. Even if you feel you know the topics pretty well (as I did with class loaders and reflection) you're bound to pick up some new details or learn some new nuances. Personally, I found the chapter on serialization to be the most informative. Over my career I've done a lot with object persistence mechanism but for some reason just had no interest in learning more than the basics about Java's. This book really filled in the gaps in my knowledge.


The book covers other topics but not as well. There's a decent chapter on JNI and a chapter on Generative programming. The Generative programming chapter is more of a philosophical statement than a deep dive on some aspect of Java technology. While I agree with Stuart that GP is a good technique the chapter doesn't feel like it fits in the book.


All in all this is a very good Java book. I highly recommend it.

Eclipse 3.0 M7

A new Eclipse build is out. I couldn't access the main download page but had good luck with the NC mirror:

Sunday, February 15, 2004

Excalibur

Cable has been playing John Boorman's classic Excalibur recently. It's a strange mixture of camp and grandeur. Not quite a great movie but still very very good.



Excalibur introduced a generation to the music of Carl Orff and Wagner. It's hard to listen to O Fortuna without thinking of the scene in Excalibur with the knights ridding through the flowering dogwood trees.



While the cast was composed of mostly unknowns actors, many have had fine careers and are still working today. Notables include: Helen Mirren as Morgana, Gabriel Byne as Uther Pendragon, Liam Neeson as Gawain and of course Patrick Stewart as Leondegrance.



In the true spirit of nepotism, Robert Boorman worked his children into the production. His daughter Telsche played the Lady in the Lake, his daughter Katrine played Igrayne, Authur's mother and his son played the young Mordred. Lore has it that Telsche got the part because she was the only girl on the set who could hold her breath long enough to get the shot.

Saturday, February 14, 2004

Meta Madness

I was bit twice today by errors related to not keeping meta-data that contained names of classes to load in synch with the classes they named. I had changed the package hierarchy and fixed all the code references but missed updating the properties files. When someone else takes over this code they are bound to make the same mistake too.


I've been pondering how to avoid this problem in the future. Do you generate the meta-data at build time? Do you add a meta-data validation step to the build? If the meta data is all in external files that's not so bad but what if the data is in a String in the code. How do you ensure its integrity?


If anyone has any thoughts on this I'd like to hear them.

Thursday, February 12, 2004

Valentine signals

Bill Bumgarner's blog mentions ThinkGeek is selling some valentine appropriate under garments featuring HTTP status codes. Bill offers a few entertaining suggestions of his own:
Every man's fear is 411 Length Required or 417 Expectation Failed. Many of the emails I receive promise that in a few short months, I can receive 413 Request Entity Too Large instead.


This made me think of naval signal flags. While I don't have time to market a line of underwear. I offer the following table of flags and there meaning and leave it to you to determine their merit for the task.
































































































































FlagNameMeaning
Alfa I have a diver down; keep well clear at slow speed.
Bravo I am taking in, discharging, or carrying dangerous cargo.
Charlie "Yes" or "affirmative".
Delta I am maneuvering with difficulty; keep clear.
Echo I am directing my course to starboard.
Foxtrot I am disabled; communicate with me.
Golf I require a pilot.
Hotel I have a pilot on board.
India Coming alongside.
Juliet I am on fire and have dangerous cargo; keep clear.
Kilo I wish to communicate with you.
Lima You should stop your vessel immediately.
Mike My vessel is stopped; making no way.
November No or negative.
OscarMan overboard.
Papa All personnel return to ship; proceeding to sea.
Quebec Boat recall; all boats return to ship.
Romeo Preparing to replenish. Ready duty ship.
Sierra Conducting flag hoist drill.
Tango Do not pass ahead of me
Uniform You are running into danger.
Victor I require assistance.
Whiskey I require medical assistance.
Xray Stop carrying out your intentions and watch for my signals.
Yankee I am dragging anchor.
Zulu I require a tug.

Tuesday, February 10, 2004

RSS Feed updates

Bob convinced me to try Bloglines today and in the process embarrassed me into improving my RSS feed. I hope it works better for folks.

Quick Link: Powers of Ten

In the matter of seconds, zoom from 10 million light years away from earth down to the quarks in the atom of a tree leaf, all from the saftey of little Java applet:Powers of Ten


via Gregor J Rothfuss

BeOS vs OS/2

Not sure you can draw any conclusions from the Operating System Sucks-Rules-O-Meter. I did find it odd however that the total number of hits for OS/2 and BeOS were about the same. I also thought it was odd that the ratio of OS/2 lovers to haters was 3-1, basically the same as Max OS X. On the other hand, the fact that Linux users are more likely to think something sucked or rules wasn't surprising at all.

Tera Era

Interesting little article over at ExtremeTech on Intel's up coming developer forum.
In his keynote address, Intel chief executive Craig Barrett will discuss how Intel escaped the industry downturn. Chief technology officer Pat Gelsinger, meanwhile, will look ahead toward the "tera-era", an age where powerful teraflop computers access terabytes of storage, and the challenges Intel will have to overcome to reach that threshold.

I like that term - tera-era - although it's hard to say.

Irish Firefox

At work yesterday I was lucky enough get a copy of Firefox 0.8 without any connection hassles. At home this morning I hit a few snags and had to do some searching through the Mozilla mirrors before I found one that both had Firefox and would take the connection. The mirror I found was in Ireland at http://ftp.heanet.ie/mirrors/ftp.mozilla.org/pub/mozilla.org/. I know it's nerdy but after all these years of global internet access I still get a kick out of connecting to a server across the Atlantic and downloading something.

Pat Helland on HST

A lot of bloggers are talking about the The ServerSide.NET interview with Pat Helland. Mostly for his usage of the acronym HST.
There is a subtle difference between the two of them [EAI (Enterprise Integration Architectures), B2B], in that EAI, you need to have federated infrastructure across your enterprise. You need to have solutions that are thinking about identity management, security management, just management, to distributed directory and naming, all of those problems that it takes to run your application, run you enterprise, your IT ship. And so, it's EAI, B2B, they're very, very important, but when I think about services, I fundamentally prefer to call it HST, or Hooking Shit Together



While 'Hooking Shit Together' is refreshingly candid and personable coming from a high level technologist, it's not the most interesting thing in the article. During the interview he talks about the demise of distributed object system and how to integrate legacy systems into service level architectures. All good stuff. The context of the interview is .NET but his ideas apply equally well to the Domino/Workplace and J2EE world.



It's a good interview, if you have some time give it a watch.

Sunday, February 08, 2004

JavaWorld has been dead for a month

I just noticed that JavaWorld has stopped publishing new content. A post on TSS indicates they stopped publishing on Jan 2 04. I guess that shows how little I used it anymore, I didn't even notice it was gone. It is a sad milestone. I used JavaWorld a lot back in the early days of Java.

Saturday, February 07, 2004

I'll have the poached iqalugruaq

I don't expect I'll find a need for the Interactive IñupiaQ Dictionary in the near futue but the simple fact that it exists is cool.

States I've visited



create your own visited states map




via Bill Bumgarner

Friday, February 06, 2004

From apun to miulik

It's an urban legend that the Inuits have over 400 words for snow. They do have quite a few; though not really any more (and maybe less) than an English speaking skier or boarder. Today as I'm sitting at my desk watching the world outside my window I've already seen quite a variety. This made me think about our snow dwelling northern brothers so I did a little googling. Here's a list of some 'Eskimo' words for snow I found at www.cuillin.demon.co.uk/nazz/trivia/eskimo.snow.html










































Eskimo

English

apunsnow
apingautfirst snowfall
aputspread-out snow
kanikfrost
anigruakfrost on a living surface
ayaksnow on clothes
kanniksnowflake
nutagakpowder snow
aniupacked snow
aniuvaksnowbank
natigviksnowdrift
kimaugruksnowdrift that blocks something
perksertokdrifting snow
akelroraknewly drifting snow
mavsasnowdrift overhead and about to fall
kaiyuglakrippled surface of snow
pukaksugar snow
pokaktoksalt-like snow
miuliksleet
massaksnow mixed with water
auksalakmelting snow
aniuksnow for melting into water
akillukkaksoft snow
milikvery soft snow
mitailaksoft snow covering an opening in an ice floe
sillikhard, crusty snow
kiksrukakglazed snow in a thaw
mauyasnow that can be broken through
katiksuniklight snow
katiksugniklight snow deep enough for walking
apuuaksnow patch
sisuukavalanche

Wednesday, February 04, 2004

Quick Thinking

It didn't take this entrepreneur long to realize Justin Timberlake's utterance had coined a new phrase.
According to NetworkSolutions wardrobemalfunction.com was registered on the same day.



Registrar: DOTSTER

Domain Name: WARDROBEMALFUNCTION.COM

Created on: 01-FEB-04

Expires on: 02-FEB-05

Last Updated on: 01-FEB-04

Tuesday, February 03, 2004

Orkut thoughts

James Duncan recently posted an interesting thought about the value of Orkut.
Maybe its best use for me will be as a way to jog my memory. And that's actually not a bad use for it as far as I’m concerned.


If I can extend that thought, the value of Orkut increases over time as a link from the blogsphere to the meatsphere. Using Orkut, as people move between jobs and cities you can keep track of them effortlessly.

Don't-drop-the-soap opera

The title is from a funny article on A List Apart. Well worth a read.

Java FileFilters

It's always bothered me that there wasn't a decent default implementation of FileFilter or FilenameFilter. It seems like such a basic service that the platform should supply some. Thanks to the folks at Jakarta you don't have to write all your own.
The Jakarta ORO project provides a few very nice ones: GlobFilenameFilter, AwkFilenameFilter and Perl5FilenameFilter.


The Jakarta Commons package also has some simple ones that perform logical opertation on other filters: AndFileFilter, OrFileFilter and NotFileFilter.



If you really don't want to write your own you can also buy some. This collection is for sale at the odd price of '$26.70 East Caribbean Dolla' or standard $10.00 US. I don't know the conversion rate for East Caribbean Dolla but I hope it works out to less than 10 US. Neither seems like much of a deal.



While these are all fine and dandy I still feel like there's something missing. The filter that started me thinking about this was my desire for a simple exclusion filter to implement ANT like exclude capabilities. This led me thinking further about size filters and date filters, recursive listFiles methods, sorting decorators etc... Sounds like the roots of a little side project. Maybe if I find the time.

Monday, February 02, 2004

Nuclear Space Again

SpaceDaily has an article about the latest NASA budget. I speculated in December as to whether the folks interested in nuclear space would find a voice. It seems they have.
The budget also allows funds for "demonstrations of space nuclear power and advanced propulsion technologies and other breakthrough exploration systems".
In my earlier post I pointed to the folks at NuclearSpace.com and made a little joke about them. All kidding aside, I'm very intrigued by their ideas. The vision laid out in this article is very exciting. I don't have the science chops to know whether they are sniffing glue or not but ship sized vessels pulsing up to space on small controlled nuclear explosions is something I would like to see.
 
The Out Campaign: Scarlet Letter of Atheism