Kubuntu unhappiness

I upgraded my system to Kubuntu 5.10 Breezy the other day and it didn't go as smoothly as I might have hoped. For one thing, the geniuses running the Kubuntu project gave really crappy instructions on upgrading. The directions basically said to edit your sources.list and run apt-get update followed by apt-get upgrade. This is all well and good, but for those of us who aren't really that familiar with Debian, they didn't bother to describe what to change in the sources.list file. They did, however, give explicit instructions on how to open it in a text editor as root. As if there are a lot of people out there who can't manage to that part, but know by heart what lines need to be changed. Anyway, to make a long story short, I did a s/hoary/breezy/g and that appears to have done the trick.

Once I got my sources.list edited, though, it still took me half a dozen tries to get the upgrade completed. The installation bombed out at various points, apt gave me errors, and so forth. This is probably largely due to the fact that I didn't really know what I was doing, which was in part due to the fact that there were no decent instructions for upgrading. I did eventually get all the extra lines commented out of my sources.list and get everything upgraded, but it was a much, much bigger pain than I had expected.

The pain was not over yet, though. It turns out that the upgrade broke several of the programs that I use on a daily basis. First, ivman, while still installed, no longer works due to a version change in HAL. I guess I'll just have to recompile that. Opera and kpager2, however, where removed during the upgrade due to dependency issues. Opera wasn't a big deal to install - they even have a proper dynamically linked Breezy package now (although Konqueror insisted on treating the download as a plain text file). Kpager2, on the other hand, I needed to recompile. This turned out to be harder than anticipated, as the default compiler for Breezy seems to be GCC 4.0, and it refused to build kpager2. It didn't even get through the first file. So I had to revert to building with GCC 3.3, which was still installed, and managed to get it working.

The most perplexing problem was the sudden breakage of the KDE menu editor. I was able to open it and modify my menu, but none of my changes where sticking, i.e. when I closed the editor, the menu was exactly the same as before I changed it. Well, I searched the Ubuntu forums and found the answer in this thread. Apparently the ownership of my /var/tmp/kdecache-<username>/ksycoca file got set to root.root somehow and that's what was causing the problem. So now everything is more or less back to normal.

Changing units is that easy?

You learn something new every day. I finally did a quick Google search to see if there's a way to get the KWeather display in Kontact to show temperatures in Fahrenheit instead of Celcius. Well, I found it. It turns out that not only can you do it, it's exceptionally easy. Just fire up KControl and go to "Regional & Accessibility" -> "Country/Region & Language" -> "Other" and change the measurement system from metric to imperial. I can now read the temperature without having to do a mental conversion. Cool.

SuperKaramba and eye-candy

I was playing with SuperKaramba a little today. I guess I just had that occasional urge to make my desktop look really cool. But you know what? After an hour or so of browsing around KDE-Look and downloading different themes, I came to the realization that the entire endeavor is completely pointless. SuperKaramba is a nice idea, but I have so far been completely unable to find any practical application for it.

If you've never heard of SuperKaramba, it's a nifty little program that allows you to download or create "themes" that sit on your desktop. These themes are basically just pieces of eye-candy that do semi-useless things like monitor your CPU temperature, your disk usage, or put a calendar or clock on your desktop.There are also more complicated themes that do things like show you a weather report or act as an application launcher. The overall effect is similar to what you would get with GKrellM, except the visuals are much cooler and it's not confined to a single bar at the side of the screen.

While I do understand the "wow, that looks so cool" factor of both SuperKaramba and GKrellM, I have the same problem with both of them: they're essentially useless to me. First, the system monitoring aspect of no interest to me. I pay a flat rate for web access, so I don't care about my network usage. I'm not an over-clocker, so I don't care about my CPU temperature. I already know roughly how much disk space I have left, so I don't need a constant reminder. And let's face it: does anybody really need to know what their uptime of their desktop workstation is?

As for the semi-useful functionality that these programs can provide, I stopped needing any of that when I started using a full-featured desktop environment. Clock and calendar? I've got a clock on my panel, and it can pop up a calendar with one click. Program launcher? I've got an application menu and I can add arbitrary programs to my panel. Weather report? I've got that in Kontact, and I don't check it often enough to need it on my desktop.

The bottom line is, I have yet to find a genuine use for any of these eye-candy programs. Yeah, they look great in the screen shots, but I've always found that they just get in the way of every-day work. Therefore, I don't use them. The only down side of that is that my desktop always looks exceptionally boring.

The thing that really gets me, though, is that so many people seem to be into this stuff. There seem to be tons of SuperKaramba and GKrellM themes, half of which do the exact same thing. It's a lot like the desktop theme situation. The vast majority are either painfully derivative or just unusable. And yet there's always steady supply of new themes.

My theory is that this is caused by a combination of factors. First, creating a new theme is generally not a technically demanding task. There's usually no programming logic involved and the theme format is generally not too complicated. Add this to the preponderance of rotten themes and "wow" factor, and you have a classic "anybody can do this" scenario.

The only problem is that anybody can't do it. I know I certainly can't. Balancing visual appeal with usability seems to be much more difficult than you would think. Just look at all the bad web sites out there. Just think how many business web sites you've seen that had ugly color schemes, or hard to use menus, or pretty but unreadably small fonts. And many of these were designed by professionals. In fact, now that I think of that, the preponderance of poor desktop themes doesn't seem at all surprising.

More Javascript goodness

More Opera Javascript goodness this week. I doctored up my first attempt at a User Javascript, so it now actually looks good. Here's the new version: if ( location.href.match(/^http://www.google.com/search/) ) { document.addEventListener( 'load', function (e) { var anchors = document.getElementsByTagName("a"); for(i=0; i<anchors.length; i++) { if (anchors[i].innerHTML == "Cached") { old_href = anchors[i].href; tnode = document.createTextNode(" - "); anchors[i].parentNode.insertBefore(tnode, anchors[i].nextSibling); linknode = document.createElement("a"); linknode.setAttribute("href", old_href+'&lr=&strip=1'); linktext = document.createTextNode("Cached text only"); linknode.appendChild(linktext); anchors[i].parentNode.insertBefore(linknode, tnode.nextSibling); i = i+2; } } return true; }, false ); }

I also cooked myself up a custom Opera button. It runs a little piece of JavaScript that pops up a window showing the linked elements for the page. It breaks them down into RSS feeds, stylesheets, and lumps the rest together, providing a hyperlink to each element. The original idea was to give me an easy way to access linked RSS feeds. Opera provides a nice icon for accessing these, but it only works with Opera's internal RSS reader, which I don't use.

The line I added for this button is below. You can add it to the [Document Toolbar.content] section of whatever your current toolbar file is in ~/.opera/toolbar. I would have liked to provide the button as a link you could drag to the toolbar, but I wasn't able to get it to work, possibly because of the 974 byte limit. However, you can try it as a Boolmarklet. Anyway, here's the line:
Button6, "Links"="Go to page, "javascript:var els=document.getElementsByTagName('link'); var rsslinks=''; var otherlinks=''; var stylelinks=''; for(i=0;i<els.length;i++){ if(els[i].title){ linktext=els[i].title; }else if(els[i].rel){ linktext=els[i].rel; if(els[i].rel=='stylesheet'){ re=/.*/([^/]+)$/; linktext=els[i].href.replace(re,'$1'); if(linktext==''){linktext=els[i].rel;} } }else{ linktext=els[i].href; } if(els[i].rel == 'alternate'){ rsslinks+='<li><a href="'+els[i].href+"'>'+linktext+'</a></li>'; }else if(els[i].rel == 'stylesheet'){ stylelinks+='<li><a href="'+els[i].href+"'>'+linktext+'</a></li>'; }else{ otherlinks+='<li><a href="'+els[i].href+"'>'+linktext+'</a></li>'; } } if(rsslinks=='' && otherlinks=='' && stylelinks==''){ window.alert('No link elements found.') }else{ pag0101=open('','','width=400,height=400'); pag0101.document.write('<html><head><title>Linked Elements</title><base target=_blank></head><body>'); if(rsslinks!=''){ pag0101.document.write('<h4>RSS Feeds</h4><ul>',rsslinks,'</ul>'); } if(stylelinks!=''){ pag0101.document.write('<h4>Style Sheets</h4><ul>',stylelinks,'</ul>'); } if(otherlinks!=''){ pag0101.document.write('<h4>Other Linked Elements</h4><ul>',otherlinks,'</ul>'); } pag0101.document.write('</body></html>'); }", , "Show link elements", "Show newsfeeds""
Needless to say, you will want to change "Button6" to whatever is appropriate for your setup.