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.

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.

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.

PalmOS is dead. Long live PalmOS!

I’ve been a long term user of the Palm platform dating back to the original US Robotics PalmPilot with it’s serial hotsync cradle and absolutely zero expansion capability. I initially poopooed the first person who described the device to me. “No connectivity, no storage, can’t do anything except tap on the screen when it’s not docked? Go away.”
In the intervening 10+ years, the Palm platform has stabilized, grown, and matured, while still maintaining the vast library of free and commercial software that has made the Palm platform so attractive for such a long time.
Unfortunately, this legacy design has, I feel, been Palm’s achilles heel. In holding onto what was originally an outstanding system design (and truth be told, it was an excellent design – one of the reasons the platform has lasted so long!), Palm has fallen behind the performance and feature curve. What was once dismissed as “fancy glitzy doodads for corporate niche users” has now become the requirements for everyday users.
Admittedly, some of the fault does not lie with Palm, Inc directly, in fact the history of PalmOS is a map through the DotCom mayhem of the late 90’s. Spinoffs, renamings, corporate mergers and aquisitions, and changes in the market made it impossible for one company to latch onto the Palm platform long enough to redesign it into a new generation environment.
Now, with my recent aquiring of a Treo 650 hybrid cell phone and PDA, I feel this is most likely the last great product from the palm line. The design is almost 2 years old now, and while the entire platform is smooth, workable, and well supported, I feel the acute need for features that will require an entire system redesign to implement.
Note that Palm (or whatever company owns PalmOS at the moment – Palmsource I believe) knows this, and has made several abysmal attempts at a system rewrite. Palm users have been waiting for the ‘next generation’ environment, called Cobalt for almost 3 years now. The first version of Cobalt was adopted by no one, and in theory an entire rewrite is in progress, now using a Linux Kernel, though AFAIK, no Palm device is out that actually runs Cobalt.
Now we see the release of the new Treo 700w, a smartphone similar to my Treo 650 in form factor, design, and hardware. Except… it runs Windows. The Windows Mobile platform has all the capabilities PalmOS surely should have had by now. Multimedia (“Who would ever listen to music on their handheld?”), wireless connectivity (“Ahh, they can just sync it!”), multitasking (“What, on a PDA? Use your laptop if you need that!”), and so on and so on. Features that the current PalmOS platform (5.x, aka ‘Garnet’) simply cannot provide, and looking around at the current offerings, don’t look to be coming down the pike any time soon.
I’m feeling fairly resigned that the Treo 650, the outstanding piece of equipment that it is, will be my last PalmOS + phone device. Since my phone cycle seems to run about 1.5 – 2 years between devices, I can’t see Palm coming out with a full multimedia multitasking wireless enabled cell phone device that has a full software library behind it within the next 12 months.
Microsoft wins another round in their plan for world domination.

It’s the little things in life.

Having hordes of LCD monitors around makes for some amazing lint-and-yuck gathering capabilities. It only takes moving your laptop into bright light to realize amount of junk that’s managed to accumulate on your screen.
How do you clean it, though? Images of melted laptops and innocent users with some vicious chemical glass cleaners crop up everytime I think of trying to clean these things.
Long ago someone introduced me to ‘wet/dry’ wipes. These things are perfect for folks who use LCD screens constantly. They’re double-packets of wipes – one is a small ‘wet’ cloth that has just enough alcohol and other goodies on it to wipe down maybe 2 largeish monitors (I managed to stretch mine to do 3 screens, but it was pretty grungy by the end of it), and the other is to clean off the excess material – a lint-free cloth for that added polish.
Staples carries these things for about $6 for 10. I think they should be standard equipment for any desk or laptop station.

Of Laptops, XP, Debian etch, device drivers, and GPG signatures.

Well that was a fun adventure all around. My laptop ‘hunter’ is back up and running, pretty much at the level it was at just as it tumbled off the table last wednesday evening. Perversely I had to leave Thursday morning to go visit ${client} down in New Jersey, and really wouldn’t have the time to do all the reinstall fun until I got back.

Nonetheless, I was able to sort of limp along through Thursday (even managed to watch a movie on it at the hotel that night), and into Friday where I was able to swap out the main drive, re-install XP, and get at least the base installation of ‘sarge‘ re-installed. Total time on this was perhaps 3 hours of watching CD’s spin. Really, all in all, for 2 entire OS installs from scratch, it wasn’t too shabby.
Of course, neither installation was not without its twitches. The XP install came up on the laptop with -zero- network connectivity. The device manager SAW the 2 PCI network devices, but couldn’t initialize them because, naturally, I didn’t have the ‘driver’ disc. This is a laptop, it’s not like I have a shelf full of CD’s at hand. So the XP install, while technically complete, was really non-functional. No network connectivity means I couldn’t get the drivers I needed, so I had to pretty much shelve that install for now.
The Debian install went better. I had the IT chap burn me a CD of the Sarge ‘netinst’ cd. This is a small (100meg) image that contains the kernel and enough software to boot, partition, format, and install the ‘core’ Debian system. It assumes you have net connectivity available, and sets it up as part of the install. Once connectivity is established and you’ve selected what installation type you want (developer, gnome, databases, etc), the installer starts fetching the packages necessary.
For my install, the entire ‘fetch, unpack, install’ process from the time the installer said “I have all the information I need, go away” to completion took about an hour and a half on a mediocre DSL line.
Once done, it was a matter of getting back home, restoring my backed up home dir, and re-installing packages I was missing that I needed. I find it somewhat ironic that my Debian install -happily- came up with all the network device drivers in place, configured, and working, and I was able to continue my install, while the XP system is dead in the water with no network, requiring me to find an external source for the drivers needed to simply get online.
But moving along.
After that, we’re pretty much into normal sarge -> etch install mode, but I keep getting an annoying message from apt-get on the upgrade:

W: GPG error: http://secure-testing.debian.net etch/security-updates Release:
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 946AA6E18722E71E
W: You may want to run apt-get update to correct these problems

This was a new one on me. Apparently versions of apt-get past 0.6 now check the GPG signatures of packages before downloading them by default. This means you need to have the public key of the ‘offering’ host available in your local GPG keyring before pulling the file. (You can turn off signature checking, but checking the authenticity of a package before downloading is a good idea anyway).
The answer to this is to add the public key into your GPG keyring. Note the long hex number in the error message. That’s the ‘key id’ that uniquely identifies the entry in the keyserver. The first step is to query the keyserver for the public key. This should be run as the user who does most of the system maintenance, as it’ll be added to _THEIR_ keyring. Don’t run this as root.

gpg --keyserver subkeys.pgp.net --recv-keys 946AA6E18722E71E

The next step is to add that new key to root’s keyring. Since you’ve already accepted the key locally, there’s a higher level of safety in simply copying the key from your personal keyring to root’s keyring (rather than writing the key into root’s keyring directly) :

gpg --export 946AA6E18722E71E | sudo apt-key add - 

Once those are done, apt-get should behave normally and update the local apt cache files without any complaints. If the security server for Debian packages should get compromised, it is nearly impossible to duplicate the private key used for signing packages and end up with the same public key, so if the key signatures match, you can be fairly sure it’s a valid package to install.
There are many other stories on bringing ‘hunter’ back from it’s near fatal plummet, but suffice to say that due to the magic of package management systems and opensource software, and a back up of just my home directory (which has most of my user configurations and the like), I was able to get back up and running from ground zero in perhaps 8 hours of work. Much of that time was simply watching a progress bar move as packages were downloaded and re-installed, primarily without me needing to do anything.
There is a way to even tell apt to make a ‘snapshot’ of all the installed packages so you can ‘replay’ the entire install to get all your installed packages back. I may explore this in a future article.

A tale of Debian upgrades to etch, X.org, and laptops


Long time readers will surely now be familiar with my trusty IBM Thinkpad T40 ‘hunter’, that of the Debian install fun from the beginning of this year. I had installed the ‘sarge’ release (which later became Debian stable), and had been pretty happy with it. However, the time had come to jump distribution versions again, which meant going to Debian ‘Testing’, aka ‘etch’.

A major distribution upgrade is never something to be undertaken lightly, but after some preparation, I took the plunge.

Continue reading “A tale of Debian upgrades to etch, X.org, and laptops”

Seti@Home backlogged

Just as we were getting ready to kick those silly corporate folks out of the top slots in the seti stats, the seti@home project reports that things have backlogged in the mechanism for handing out new work and collecting completed work. This means many of the compute machines in our team have been idle a lot for the last 24 hours.
I don’t feel too bad, because that means that all the OTHER folks doign Seti@Home work are also idled, so our standings shouldn’t drop off. I have been having fun looking at how we’re holding up in the BOINCstats.com ‘world wide statistics’ system. When we started out a month ago, we were at the bottom of the heap. Since then we’ve climbed through over 2/3rds of all the teams, and now stand somewhere around position 9000. We’ve completed more work than almost 80% of all the teams in the project, and our current ‘work unit per day’ count is high enough that I think we’ll move into the top 1000 within a week or two.
This live banner comes from the BOINCstats site, and represents the current status of our team. Click on it to go to our team statistics as compiled by BOINCstats:
If you haven’t joined the team yet, and have a machine that is idle any length of time (say, a desktop machine that stays on when you go to work, or a work machine that stays on when you go home), please join our team!.
Update: Fixed some broken HTML. Sorry bout that.

Hedonistic Uber Widgety

I must admit, when we bought our new Saturn relay, I was particularly astonished by the vast number of geeky widgety thingies it can do. DVD player, heated seats, FM radio with data feed, powered side doors, 110v outlet in the back, etc etc etc. One thing I thought was over the top was the remote starter. You do a particular little series of buttonpushes on the keyfob, and the engine starts.
Now, in the middle of summer, this didn’t seem like that big a deal. But buddy, lemme tell you how, as it’s now getting colder, giving that extra 3-4 minutes of warmup time before you even get in the car is mighty tasty. We’ve figured out you can start the van from the kitchen in the house, so we look out the window, do the keyfob buttonpushing, and the lights go blinkety-blinkety-blinkety-steady. One running van. By the time we walk out there, it may not be -warm-, but at least it’s not simply recycling the already frigid outside air.
Other things have squirmed their way into the “Okay, I could get used to this” category. For instance the little display whoozie on the dash has a bazillion settings in it, including a compass, outside temperature, 2 trip odometers, a ‘current’ and ‘average’ mileage display (watch that puppy go to single digits going up hills!), and other handy bits like how many miles are left on your current tank of gas.
It’s a fun vehicle for what is essentially a minivan. The All Wheel Drive has already come in handy with our obscenely steep driveway. We’ll see how the rest of the winter goes.

Google Pedometer – Another cool Google Maps hack

Yesterday while out here in Pittsburgh, my friend Barbara and I took a nice long walk around the park and streets around CMU, (pictures are here on Flickr). We were out for about 2 1/2 hours, walking through Schenley Park and parts of the campus. Naturally after we got back, I was curious how far we had actually walked.
Barb sat down with with the Gmap Pedometer and cranked out this course, which shows pretty closely the route we walked. Total distance? 4.35 miles. It seemed like longer, but as many have noted, Pittsburgh is hardly flat. We did a lot of up and down traipsing.
The Pedometer site is fantastic, though. I can see using this for planning out bike trips, hikes, measuring distances, anything you can point at a map and say “I walked from HERE to THERE!”.
Just for chuckles, since we tend to take sitewalks on our property in Berlin, I measured how long a walk from the road to the top of the property and back was. Answer: 1.25 miles. A nice walk in the woods 🙂
Yay Google toys!

Create your own lighting controller

So a few days ago I posted a link to a fellow who had programmed all his christmas lights in time with a Trans Siberian Orchestra track. I sort of mused, being the geeky fellow that I am, how this could be done in a reasonable budget.
Hackaday to the rescue! They pointed me at this wonderful site that gives full detailed howtos on building controllers to drive your own lights display.
Not that I need another project right now.

Further BOINC Fun

Our new team in Seti@Home BOINC processing is cranking away. All the user information has migrated into the BoincStats.com system, and our ranking is rapidly climbing up the ladder. I have to admit seeing full statistics and graphing stuff like this representation of the Stonekeep team is just too cool for words. We’re ranked about 17,000 out of 31,000 teams right now, and I expect that’ll climb steadily as our total credit keeps going up.
If you haven’t joined already, feel free to add your machine to Cluster Computing and Yak-Shaving division of Stonekeep Consulting.

Another reason I detest Windows.

Folks are well aware that I’m not exactly a screaming Microsoft advocate. While I concede they’ve done more to advance and stabilize the concept of ‘Computers for Everyone’ than virtually any other manufacturer (save perhaps Apple), they’ve done so in such a poor, disorganized, and ruthless fashion, it’s resulted in a global environment that is virtually impossible to be productive in without spending enormous amounts of time and money on licensing, virus protection, system tuning, configuration, and security auditing.

I offer as evidence, dear readers, my experience trying to set up my son’s computer this afternoon. It’s installed with a (licensed!) copy of Windows 2000, running on an AMD Duron 850mghz machine with 512meg of RAM. No slouch is this machine, and the goal today was simply to get it to the point where he could run his Reader Rabbit game.

What follows is a Rant. Read at your own risk.

Continue reading “Another reason I detest Windows.”