XSLT and XML Namespaces

I wanted to transform some XML. It was the same kinda XML I had been dealing with back in February and hardly nothing had changed. However my unit test came up red because somewhere, somehow, someone introduced a namespace. XML is all gravy when it’s simple. You know, plain ol’ tags with no complexity. Now some high-speed individual wants to go and add a namespace to the document just to be certain that tags such as wil be protected from possible collision. Let me ask you something. Have you ever done something for the sake of picking up a new idea or language then looked back on the atrocties you’ve committed to those who follow your code? Have you ever fixed a train wreck before it landed in some other developer’s lap? Don’t you wish everyone thought about the next guy?

Code is for people
Let me repeat that so I’m clear. Code is for people. I don’t care how clever you are there are limits to when and where you wanna break out the ol’ golden hammer, or for the sake of improving on an old cliche, the ol’ Tuesday khaki pants and checkered shirt outfit. Who cares if you know how to validate a schema in 12 different programming languages? Sometimes well-formedness is all that counts!!! Pardon my exclamations, but I get upset when somebody introduces something merely on the principle of “look what I can do”. There outght to be some judgement that occrs prior to downloading DOM4J, or XPath, or whatever the flavour de’jour is for the current month. If you like the way I flow, hit me on the low… so that I know…

(I was gonna stick a tip in here somewhere on how to deal with namespaces as you xform your documents but anger got the best of me. If you’re interested drop a line and I’ll post a followup with the juice.)

`Which Java`?

I’m a little frustrated because I’ve been hitting some memorable distro-issues throughout the week and revisiting some of my old topics to help me through. Today I wanted to install Charles proxy so I can sniff HTTP traffic and rememberize all of the neat-o stuff I used to know about HTTP. Here’s one thing that used to bug me alot, Java explodes on linux. No matter what distro I tried and would inevitably hit a situation where Java would just blow up in my face. I’ll be running my IDE and it will just vanish. Or I’ll be running some app I just wrote and it craps out with VM error stack trace.That prompted me to see which Java I had installed in Mepis. A naive person would type “java -version” on the command line but after years of experience I learned that not only is that misleading it’s downright dangerous! If Java is officially installed (a process that varies from machine to machine and OS to OS and distro to distro) you have to understand that the system can pick a different version of Java than what you get on the command line. The command line is influenced by the $PATH while there are a number of different ways to invoke Java on your system. Consider hitting a page with an Applet? Java runs out of your Browser. Depending on which browser you run you’ll get a different JVM. Consider what happens when you click a Web Start link. You can have Firefox configured to associate it with one version of Java while your file manager (Windows Explorer, KWin, whatever) can associate it with another. Then there’s the executable jar thing. Once again window manager file associations can point someplace you never intended. Lastly there’s batch files and shell scripts. On Linux your $PATH can be overridden in your .bash_profile and/or your .bashrc while the $PATH assumed by your Window Manager is completely different.

So which Java do you get? On Linux you can literally type `which java` and it will tell you the path to the executable but that doesn’t help much. Try adding “ls -la” in front.

ls -la `which java`

Then you’ll see that this is a symbolic link to the actual (sometimes other sym link to the actual) executable. Keep following sym links until you get tired and you’ll find the true path to Java. This used to be controlled by and update-alternatives -config java command but I just tried that on Mepis and it doesn’t exist. I tried looking for update-alternatives under apt-get install update and got nowhere. I’m spilling all these details here because now I really don’t know `which java`???

My Empire For a Good VNC Client!

I’m looking for a good VNC client, not just any old thing that’ll let you look at another computer remotely, a good, solid, knock’em dead, VNC client. Something that is not only as fast as JollysFastVNC but has the scaling controls of krdc, works cross platform, and handles keymappings as well as Windows Remote Desktop. I don’t want my hot keys intercepted by the host… something like sending all keys to the client, at least in full-screen mode along with a full screen that’ll work on dual displays is what I want. Hot keys are important as I frequently Alt+Tab in Windows/Linux and Command+Tab in OSX. While you’re at it can you find a customizable VNC server for OSX? I’d like to be able to set custom dimensions so that my Mac’s screen can fit correctly on one or two of my dual screens. Thank you Santa!