New Java Tool – JarIndex

I was getting tired of having problems when building Java apps that required a certain library to be on the classpath or imported into the current app. Another site on the net had a simple lookup mechanism, but that site has gone to a paid subscription model. That just seems silly.
Enter JarIndex
The idea is if you get a compiler error like this:

Exception in thread “main” java.lang.NoClassDefFoundError: javax/wsdl/OperationType
at org.apache.axis.description.OperationDesc.(OperationDesc.java:59)
at org.apache.axis.client.Call.setOperationStyle(Call.java:650)

You can just go to JarIndex, enter ‘javax/wsdl/OperationType’, and JarIndex will tell you what library that class comes from. Add it to your classpath, and you’re back into happy compilation mode!
If you program in Java, check it out, let me know if there’s anything missing!

The Sudoku Bug

Well, I resisted for as long as I could. Everyone’s out there playin it, no way was I gonna get myself drawn in like sheep toward long grass. No way, baybee. Nope, not… say, there’s a nice sudoku game for the palm… well… at least I should LEARN it, so I know what everyone’s talkin about.

Cuz, ya know, the first one’s free.

While Cat is hooked on websudoku, I’m pretty much caught in a very good version for the palm, uncreatively called ‘Sudoku’. It’s currently my “time for bed, one game, then sleep” game. In the past this slot has been filled by Bejeweled or TextTwist, but Sudoku is it now.

The version on the palm times how long it takes to solve the puzzle, but doesn’t rank it on difficulty, so it’s sort of a crap shoot how easy or hard a puzzle will be (they’re randomly generated), but my timing seems to average around 20 minutes for a puzzle. The longest I’ve taken was over an hour (UGH!), and the shortest time, I’m rather proud of, was 9 minutes. Since the palm saves records of all the ones completed, here’s my 9 minute one:

_ _ 2|_ _ _|_ _ 9
_ 9 _|_ 3 _|1 _ 7
5 1 _|6 _ _|8 _ _
-----+-----+-----
_ 3 _|_ 1 6|_ _ _
7 8 _|_ _ _|_ 5 6
_ _ _|4 5 _|_ 7 _
-----+-----+-----
_ _ 8|_ _ 4|_ 2 3
9 _ 4|_ 2 _|_ 1 _
2 _ _ |_ _ _|6 _ _

It’s not too painful an addiction. Sides. I can stop anytime I want. Really.

Comments problem

I’m having a problem with comments on the site – things are saying “Moderated” but they’re not actually showing up in the moderation queue. I’d suggest holding off on posting comments until I get things fixed. Sorry for any inconvenience.
Comments are happy again. And you can sign in using TypeKey now if you’d like.
Feel free to help us test by leaving comments for Dave.
Thanks,
Lisa/blogadmin

Jon Stewart rocks my world.

Courtesy of the Wall Street Journal roundup of the late night comedy commentary:

Jon Stewart: “I’m joined now by our own vice-presidential firearms mishap analyst, Rob Corddry. Rob, obviously a very unfortunate situation. How is the vice president handling it?
Rob Corddry: “Jon, tonight the vice president is standing by his decision to shoot Harry Wittington. According to the best intelligence available, there were quail hidden in the brush. Everyone believed at the time there were quail in the brush.
“And while the quail turned out to be a 78-year-old man, even knowing that today, Mr. Cheney insists he still would have shot Mr. Whittington in the face. He believes the world is a better place for his spreading buckshot throughout the entire region of Mr. Whittington’s face.”
Jon Stewart: “But why, Rob? If he had known Mr. Whittington was not a bird, why would he still have shot him?”
Rob Corddry: “Jon, in a post-9-11 world, the American people expect their leaders to be decisive. To not have shot his friend in the face would have sent a message to the quail that America is weak.”
Jon Stewart: “That’s horrible.”
Rob Corddry: “Look, the mere fact that we’re even talking about how the vice president drives up with his rich friends in cars to shoot farm-raised wingless quail-tards is letting the quail know ‘how’ we’re hunting them. I’m sure right now those birds are laughing at us in that little ‘covey’ of theirs.
Jon Stewart: “I’m not sure birds can laugh, Rob.”
Rob Corddry: “Well, whatever it is they do … coo .. they’re cooing at us right now, Jon, because here we are talking openly about our plans to hunt them. Jig is up. Quails one, America zero.
Jon Stewart: “Okay, well, on a purely human level, is the vice president at least sorry?”
Rob Corddry: “Jon, what difference does it make? The bullets are already in this man’s face. Let’s move forward across party lines as a people … to get him some sort of mask.”

Thanks to aqeldroma for the pointer.

A glimpse into what I like, music-wise.

I generally don’t participate in online polls, intelligent ‘mixers’ that try to find out what sort of soda you like, or whatever. But music is such a big part of ‘who i am’, I think it’s interesting to share a little information.
I talk about Radioparadise all the time, as most of ya’ll know by now. I even interviewed the owner, Bill Goldsmith last year. The station not only has an outstanding music selection, but they have a great forum / commentary system that allows song ranking. You can also view your particular favorites (or most reviled tracks).
Today I took a look at my ‘best’ list – pieces I ranke a ’10’ that have come up in my, oh, 4 years or so of listening. I don’t rank something a ’10’ unless I really mean it, and in 4 years, thousands upon thousands of songs listened to, i’ve only set a ’10’ on a handful. Here’s that list:

10 – Dave Brubeck Quartet – Take Five
10 – Dave Brubeck Quartet – Blue Rondo a la Turk
10 – Beethoven – Symphony No.5 – Allegro Con Brio
10 – Claude Ginsburg and Julie King – Waiting For Snow
10 – Paddy Milner – Unsquare Dance
10 – Nickel Creek – Smoothie Song
10 – Beethoven – Moonlight Sonata
10 – James Horner – Sing, Sing, Sing
10 – Pink Floyd – Wish You Were Here

The ‘9’ list is far longer. If you’re curious, here’s the link to my profile. The profile listing also has links to the albums and tracks themselves, so you can see how others ranked the track, as well as find out where to get the album.
I think my 10 list is a great cross-section of “What I like!” – better than I’d probably be able to relate if someone asked me the question on the street.

Online Clothes Shopping. I love the net.

One of the life-functions I have a massive loathing for is clothes shopping. Rummaging through stacks of clothing for sizes for me, then going through the un-fun process of trying things on. I’d rather attend a republican fund raiser than go through that.
Recently I needed some new jeans. I’m a dyed-in-the-wool bluejeans and cotton shirt man, and when I started my business I vowed that if I ever actually had an office and staff, I’d set bluejeans and cotton buttondown shirts as the corporate uniform.
Jeans shopping is a frustrating experience all around. Inevitably I get stuck in the “Right inseam, wrong waist!” and vice versa conundrum. If I luck out, after 15 minutes of searching, I’ll find ONE pair, wadded up under the bottom shelf for stability, that’s close enough to my size that I’ll suck it up and deal.
Well no more! Last week I ordered 3 pairs of Levis regular fit jeans from Denim Express. Cost? $27 a pair, They arrived in just a few days in a nice squooshy plastic package. They fit, have no issues that I can see, and even still stay “$40.00” on the price tag.
Shirts will be another challenge, but I’m done with jeans shopping at the local Gap or Sears or whatever.

Firefox Safemode – A recovery mechanism

I love Firefox. I mean, who doesn’t? It’s cross platform, it’s stable, it’s fast, it’s free. What’s not to like?
Even in paradise, sometimes there’s potholes. Firefox thrives on the support of it’s vast extensions library, used to add functionality and features into the baseline browser. However, some of these extensions can cause it to become unstable, giving a ‘segmentation fault’ even just trying to start up. When this happens, how do you recover from it?
Firefox provides a ‘safe-mode’ startup option that prevents all extensions and plugins from loading. You can even use this mode to clear out all sorts of information in the configuration without actually starting the browser. Recently, when I had an extension cause Firefox to segfault on startup, safe mode allowed me to turn off all the extensions and then deinstall the ones that were causing the instability, all without editing files or fiddling around on the command line.
To start safe mode, simply run the browser with the ‘-safe-mode’ option:

firefox -safe-mode 

Firefox will come up with a dialog box asking what you’d like to do with your session. By default, all extensions are disabled, but you can also reset the state of the browser back to the installation defaults (effectively clearing out any customizations or changes you’ve made).
In my case, I simply clicked ‘Continue in safe mode’, then went to Tools->Extensions, and disabled the extensions I suspected were the problem. Exiting Firefox and restarting it in normal mode, and voila! It came up cleanly, and I was able to continue my work.
I’m puzzled why Firefox doesn’t show this option on the command line (firefox -?), but does show it in the man pages. Because man pages have become an unreliable source of information particularly in the Linux world, I didn’t even know of -safe-mode until asking in an online chat room.
Regardless, this is a great debugging and repair tool to get your Firefox up and running again quickly and easily.

A Brilliant summary of the Danish cartoons

There is an outstanding roundup and summary of the details and issues surrounding the backlash against Denmark following the publication of some cartoons depicting the prophet Mohammed in an unflattering light. As should come as a surprise to no one, the situation is filled with inaccuracies, lies, and misinformation on all fronts, but primarily in the details about what was actually published. Unfortunately, there’s very little a sane world can do to stem the tide of hatred and violence that seems to be following this situation, even though the theoretical ‘reasons’ for this not only should not warrant such reactions, but are based on false information spread by those who are theoretically educated and knowledgeable.
It’s a sad sad story on the state of freedom of expression and extremism in the world.

Good Programmer. Have a biscuit!

Occasionally, an application does something unexpectedly right.
I’ve switched to using KMail as my primary mail client in my continued immersion into All That Is KDE. So far it’s a capable, well performing, surprisingly robust IMAP mail client.
This morning it surprised me by doing something unexpectedly pleaseant. I was editing / writing a new mail message (new window open, everything) when I realized i hadn’t set an identity for sending mail to this particular group. I use identities so a copy of my outbound mail is saved into the same folder I use for that list). So i flipped back to the main window, went to identities, set up a new one, and went back to my new message editor. Without really expecting it to be there, i clicked the down arrow on Identity, and lo, the new one was there.
I had expected needing to save a draft and re-run the editor to have it ‘reload’ the identities, but KMail just did the right thing and had it all set up for me on the fly.
Sometimes. Occasionally. Programmers do neat stuff.

Digital image post-processing

Over the last few years I’ve been learning more and more about digital photography and what is necessary to take a decent picture. What I’ve been ignoring up until now is the importance of post-processing. To me that’s something folks do in magical tools like Photoshop using mystical hand-waving and “File->Picture->Make Better” type operations. But the other day I decided to see what I can do in The Gimp to improve a picture in the way a Windows user would use Photoshop.
I selected as my sample picture this image of a beech tree on the north end of our property. It’s really quite striking, and I thought a nice portrait shot of it would work well. When I went to preview the images though, I was disappointed with the color level. Even though there was enough light (it was a nice sunny winter day), the image didn’t quite grab me the way I wanted it to.
I pulled the image into Gimp and started noodling around with menus. At a hint from a friend on flickr I upped the contrast level and fiddled some of the color saturation values. This is the result. I think the picture is much crisper and the colors are stronger. A definate improvement!
Last was cropping the image to focus on the tree itself. Since it’s, well, a tree, I decided to slim things down to draw out the height. I cropped inside the bracketing trees.
I like the end result. I think I can do better with other images, but I think from now on I’ll be spending time in post-processing before publishing my pictures.

KDE Tricks – Using DCOP to communicate with AmaroK

Sort of following up on my conversion to Kubuntu and the following of the KDE Way, I learned a couple tricks about KDE this week.
I had been using XMMS as my music player forever and a day. Since I like chattering about what music I’m listening to when I’m on IRC, I wrote a little macro into X-Chat that let me say on channel (or in a msg) what XMMS was currently playing. To do this I used xmms-shell, a command line utility for interacting with XMMS. But since I converted to AmaroK, that obviously wouldn’t work anymore.
I started looking around for something similar to xmms-shell for AmaroK, when a fellow on #kde-users suggested looking at the ‘dcop’ command line tool. I had very little exposure to dcop – I knew it was one of the technologies underlying KDE, but I wasn’t sure exactly what it was.
DCOP, according to the wikipedia page on it, stands for ” Desktop COmmunication Protocol”, and is a light-weight interprocess and software componentry communication system. What this means for the layman is that virtually any application built for KDE has a series of methods and properties exposed for access from a dcop client. KDE provides the command line tool ‘dcop’ and a GUI desktop tool called, unsurprisingly, ‘kdcop’ for exploring and using these interfaces. I used kdcop to browse through the AmaroK DCOP remote methods, and found ‘nowPlaying()’. It was a simple matter of putting this into an x-chat macro:

/exec -o echo `dcop amarok player 'nowPlaying()'`

Binding that to the ‘x’ key in x-chat, now at any point I can just type /x and whatever track I’m listening to shows up in the channel or msg window I’m in.

My Daily Conversations with Eclipse

Having now converted my development environment to Eclipse, I’m going through the normal growing pains associated with going from a total command line “edit, save, exit, compile, look at error, re-edit…” cycle to a totally integrated interactive IDE. The last immersion I did in this type of environment was using Turbo Pascal 7 somewhere back in the mid 90’s.
Mostly it’s going okay, but I’m sort of entertained at the ‘compile on the fly’ functionality that Eclipse has. Errors are shown immediately, not at compile-time, so you can see the state of your app at any moment. I just find some of my conversations with Eclipse amusing. The ‘Problems’ pane at the bottom of the screen shows the current state, and I feel like I see this sort of convo happening all the time:
dbs – typeitytypetyptyp type type. think. typetype
eclipse – Warning: variable foobar is never used.
dbs – yes yes, i know. I’m still working on it.
eclipse – Warning: you type too slow.
dbs – You’re not helping.
I’m sure it’s only a matter of time before the “Dave. Your code is absolute garbage.” HAL-like plugin will be available.

KDE Chatterings: Amarok

I’m really getting into my new KDE 3.5 desktop based on the latest release of Kubuntu linux. The level of integration and polish that has gone into the system is constantly amazing me. I’ll be chatting about various applications and components shortly, but I’d like to talk about one in particular right now. Amarok.
The Application
Amarok is to KDE what iTunes is to the rest of the world. A slicky smooth application with a ton of ‘community’ and ‘wide world’ stuff in it, but at it’s core, it’s a music player. Linux is certainly not without it’s share of music tools, but a decent, intuitive, and powerful system has been scarce for quite some time.
Amarok fills a niche for a tool that is not only a capable player, but also manages your music collection, organizes playlists, titles, and tags, as well as keep track of what was played when, and what order it was done in. Amarok makes no distinction between a local playlist and a streaming audio feed – the entire interface handles both sources without skipping a beat.
Add onto that a popup ‘banner’ display that shows the current track when it changes, then disappears (without affecting keyboard focus, windows, or anything – it’s a neat trick), and an extremely compact and well designed interface, and you have all the makings of an attractive and useful tool.
The Experience
I’ve been using Amarok as my default player now for almost 3 weeks, and I find myself pulling it out of its hidey-hole in the KDE toolbar to do basic things “Ahh, skip this track, it’s boring.” “Who the hell IS this?” “Switch over to that other playlist.” “I just added a couple more albums to the store, rescan please.” without spending half an hour navigating man pages, unintuitve menus or hacked interfaces that don’t behave like any other application on the planet. It’s delightful.
Other little tidbits that surprised me include things like Amarok’s link wth Amazon.com. Album covers can be automatically displayed based on CDDB or FreeDB signatures, and they’re invariably correct. Another one is integration with your iPod. Dock them, and you can drag and drop songs into the iPod directly. Amarok also has an interace to last.fm, a community based site oriented around music. The songs you play can be reported in as favorites / regularly played, and will update the ‘popular songs’ info on the site.
Conclusions
Amarok may be one of the best applications out for KDE, but it has great company with all the other improvements in KDE 3.5. Stay tuned for other reviews, but if you have a chance, take a look at Amarok now. You won’t be disappointed.

Improv group arrested on NY Subway for not wearing pants!

As reported on their website Improv Everywhere staged an event and… :

Today’s No Pants was halted by the cops about halfway through. One frustrated cop freaked out and called in 25 more. 8 were ticketed and summonsed to court, 6 of the 8 were handcuffed and traveled in a police van to a precinct. Everyone has been released and is fine. More info as it develops. Keep checking this page, and the comments below for updates from everyone involved.

There’s a wonderful Flickr photo set available.
I’m still wondering what they were actually arrested for.