XM is Everywhere!

January 13, 2005

XM Radio Well, at least for me it is. Over the holiday, I received Delphi's Roady2 and a subscription to the XM satellite music service and I must say, I have either been enlightened or completely spoiled. I don't think I can ever go back to local radio, just like I could never go back to a modem or a hardwired LAN. In fact, I have almost completely forgotten about local radio and therefore didn't even take notice when 99.1 WHFS, one of Washington's biggest radio stations in history, abruptly disappeared from the airwaves.

The Roady2 is essentially a satellite to FM converter, which can then be picked up by any nearby radio tuned to one of the select frequencies on which it broadcasts. The FM transmitter technology has gone through several iterations in the marketplace of varying qualities, but has now emerged as an acceptable replacement to hardwired audio cables. (It uses the same technology as the new iCarPlay from Monster). As long as I have my Roady and a nearby radio, I have XM. This means in my car, anywhere in my house, and wherever else I choose to take it. Finally! I can listen to electronic music (trance, eurodance, progressive) at any point during the day, instead of only when I am in front of my computer tuning in to DI. But it doesn't stop there, because XM actually has a lot of other great stations as well, including swing and big band. (One of XM's strong suits is its superb programming). Sometimes, I just get really crazy and listen to a little bit of African, bluegrass, and world music. It definitely keeps me entertained and gives me something to look forward to every morning on my trip to work.

I believe that the future is all about directed and comprehensive programming. I can get the type of music or talk radio I want, whenever I want. Instead of waiting for the hourly traffic and weather, I immediately tune to the channel for my city, catch the report, and go back to my previous muse. For those of you out there who cannot imagine paying for radio, let me allow your answer to this next question lead the way. How do you react when someone tells you that they don't have high-speed internet? Exactly.

Posted at 11:29 PM in Technology | Permalink Icon Permalink | Comment Icon What, no comments?

Java's Killer App

January 13, 2005

Technology has a funny way of failing the first time around. There is no question that Java is currently going through a renaissance after a very dark age of applets, ugly swing GUIs, and html-infested servlets. The developers have been hard at work on both the server and the client-side of Java, but there is one application in particular that is deserving of the title "Java's Killer App." That program is JEdit, the programmers text editor. (Finally the age-old VI vs Emacs debate can be put to rest)!

I had planned on writing a nice long blog entry about how great and flexible JEdit is, except that Thomas Pletcher beat me to it with his article JEdit 4.2: Cross-Platform Perfection. Thomas favors the cross-platform aspect of JEdit, which I definitely support. However, I believe that the strongest feature of JEdit (and of Firefox and Thunderbird) is the plugin (or extension) manager. This design allows the core application to be lightweight, small and fast, yet gives the user the power to customize the program to create an ideal environment. Adding extensions also gives the user a sense of ownership since each configuration is unique, just like the person using it.

If you haven't yet witnessed the power and grace of JEdit, be sure to follow the link to the article and then go download JEdit today!

Posted at 10:42 AM in Java | Permalink Icon Permalink | Comment Icon Comments (1)

Javascript Logging via Meta

January 10, 2005

Sometimes, it is the simplest ideas that we programmers always seem to overlook. I cannot count the number of times I have typed some variant of a javascript alert message to debug some pesky event handler or form validator. Often times, I attempt to run the script before fully understanding the execution path of the debugging code I entered. As a result, I send the javascript engine into an infinite loop of alerts, forcing me to have to issue an xkill on the browser.

During my late nights burning the midnight oil with javascript, I have come up with various ways to stuff debug messages into the output, such as in the statusbar, the document title, appending to the DOM and of course the infamous alert message. However, each of these methods have issues and are far from an ideal solution.

What I needed was a consistent, lightweight way to trace the javascript execution paths. Finally, while driving to work, it came to me. All this time I have only considered appending to the body of DOM, but never the head. As soon as I looked up towards the head of the document, the answered seemed to practically fall on me. Since Mozilla has an embedded viewer for reading the content of a document's META tags, I recognized that I could simply write a log function that uses the DOM to add a new META tag entry for each statement, suffixing the name attribute with the current line number.

content="Hello World! This is your friendly logging service." />

To view the messages, I can simply go to "View > Page Info" and browse the entries in the Meta section. It almost seems too perfect. The only issue is that Mozilla does not dynamically update this list, so it is necessary to close and reopen the Page Info dialog.

I have added the Logger script to the script sandbox page of my wiki, which describes how to configure and use this micro logging framework. I hope you find this to be useful in the wee hours of the night and relish never having to xkill your browser again because of an infinite alert loop. Enjoy!

Posted at 11:11 PM in Javascript | Permalink Icon Permalink | Comment Icon Comments (6)

Cross-browser List Delimiters

January 10, 2005

As XHTML is relegated to strictly a structural language and CSS is relied on more heavily for the layout and styling of the web's underlying markup, advanced uses of CSS are becoming commonplace. As nearly every web site has at least one set of navigation links, particular attention is given to styling the XHTML lists used for these links. Several insightful and comprehensive articles have been written on the topic, most notably CSS Design: Taming Lists, complements of alistapart.com. However, due to insufficient support for CSS2 in some browsers, namely IE, controlling these lists exclusively from CSS can prove to be challenging. This entry demonstrates a styling trick for horizontal arrangments that make use of a lesser known CSS property, clip, to supplement several shortcomings in CSS implementations.


Posted at 02:37 AM in CSS & Design | Permalink Icon Permalink | Comment Icon Comments (1)

Plug and Pray

January 09, 2005

Who better than Conan O'Brien to humiliate Bill Gates in front of the world. This is truly a moment to remember folks. Conan's truly evil and bizarre laugh will now permanently haunt the dreams of one of the world's richest men. Fitting.

Watch the stream at c|net.

Posted at 08:12 AM in Technology | Permalink Icon Permalink | Comment Icon What, no comments?