free software
Linux, open source software, tips and tricks.
The Quick Lounge
0In my line of work, I occasionally have the luxury of working from home. When that happens, I prefer to run all of my applications on my desktop PC at the office, and I use “NX” to connect remotely. Specifically, I use the NoMachine NX server on my Ubuntu PC at work (although I am considering trying the open source “freenx” server), and at home I use the “qtnx” client on my laptop, which also runs Ubuntu.
This works pretty well, except my desktop environment does not like the stress of changing resolutions back and forth. It seems that the “panels” in Gnome get confused about where to place the different applets and widgets, since at one time it may have a lot of room, and at another time it may be more cramped.
I got tired of scooting my quick-launch icons around one-by-one, and so I was looking for a container where I could keep them together and move them around as a group. I tried the “drawer” applet, which is available in Ubuntu by default, but that was not quite right. I don’t want to open and close the drawer every time I launch something… I just want the icons to always be there in a group.
I found an applet called “quick-lounge-applet” which really fits the bill. One wonders whether the author meant to say “quick launch”, but perhaps had a poor grasp of English. Either way, this little applet does a great job of keeping my quick-launch icons together in a group, and it can be moved around easily.
After installing the applet (using the normal apt-get install quick-lounge-applet
, I found that it was not listed in the “+ Add to panel…” menu. Apparently, Gnome needs to be prodded before it recognises newly-installed applets. There is a simple work-around. Simply re-start the service that keeps track of that stuff: killall bonobo-activation-server
. The service will re-start, and there will be a new entry in the “+ Add to panel…” menu called “Launchers List”.
Now, if you’ll excuse me, I am in a hurry. I have some quick lounging to do.
Firefox plug-in: SyncPlaces
0Early last year, I decided that my tired old HP laptop wanted to retire, and I started shopping for a new one. However, before I could find a suitable replacement, I discovered the Asus Eee PC, and I knew that I had to have one.
It did not make a lot of sense to buy a new laptop and a new Eee PC as well, so I held off buying a laptop. Over time, the Eee PC became my primary machine. Sometimes, I would plug in an external monitor and mouse and keyboard. And other times, I would just use it by itself. After a while, I migrated all of my old stuff off of the laptop and onto a mini- file server, and I eventually left the tired old laptop powered off.
I started using the HP laptop again when I started working from home, but I never really installed anything other than NX. On a whim, I installed the latest Ubuntu, Jaunty Jackalope (9.04), and that really breathed new life into the tired old laptop.
So now I find myself strattling the fence, sometimes using the tired old (but rejuvinated) HP laptop, and sometimes using the Eee PC. Since I keep most of my important stuff on an encrypted thumb drive, it was pretty easy to switch back and forth.
But there was one thing missing… my Firefox bookmarks.
I don’t like the idea of storing my stuff (tax records, email, bookmarks, or anything else) on a site like Google or xmarks (formerly foxmarks). So I went looking for a plug-in that would allow me to synchronize my bookmarks among multiple machines, but use my own server for storage.
SyncPlaces does a pretty good job of that.
It can sync using FTP (yuck) or https (yay) to a WebDAV-enabled server. It only took a few minutes to figure out WebDAV, and pretty soon I had the same bookmarks on the HP laptop and on the Eee PC.
Pidgin and Yahoo
2I ran into a strange bug with pidgin where I could not log into Yahoo. Strace did not shed any light on the problem:
gettimeofday({1245688276, 23774}, NULL) = 0 open("/home/alan/.gnome2/nautilus-sendto/spool", O_RDONLY... fstat64(7, {st_mode=S_IFDIR|0755, st_size=4096, ... getdents(7, /* 3 entries */, 4096) = 48 getdents(7, /* 0 entries */, 4096) = 0 close(7) = 0 read(3, 0x93c4508, 4096) = -1 EAGAIN ... gettimeofday({1245688276, 24697}, NULL) = 0 poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN},...
Instead, the answer came from a blog post here.
Yahoo changed their login protocol. Pidgin released an update. Ubuntu did not propagate the fix, apparently because it was not a security bug, but new functionality.
The pidgin developers have released an Ubuntu package in their PPA (Personal Package Archive). See the details at the pidgin web site here.
South East Linux Fest (SELF)
0I spent the weekend in Clemson SC at the first South East Linux Fest.
It was a great chance to geek out with a bunch of Linux enthusiasts, as well as some of the movers and shakers in the industry.
We enjoyed presentations on topics that ranged from SQLite and the fsync()
bug to Asterisk, Open Street Map and the Ubuntu kernel. These guys provided a clear perspective of how the open source world organizes and operates on a daily basis. And their projects just glowed with coolness, which created this viral kind of buzz around the entire event, whether you were a casual Linux user or a hardcore developer.
In the vendor area, we were wooed by several distros, a handful of businesses that sell services around open source software, and some content providers (that is, podcasters and “nerdcore” rappers). We were treated to several raffles… woot!
Mad props go out to the planners of the event, which seemed to go off without a hitch.
ssh + netcat
1At work, I need to access some blade servers that are on a private network. The only way to get into these machines is to shell into a lab box first, and then shell into a blade.
alan@desktop:~$ ssh root@labaccess Last login: Tue Feb 17 10:13:52 2009 from desktop [root@labaccess ~]# ssh root@blade3 root@blade3's password:-****** Last login: Tue Feb 17 10:14:03 2009 from labaccess [root@blade3 ~]#
A while back, I picked up this little nugget from the TriLUG mailing list (thanks to Magnus Hedemark). There is a way to make this intermediate hop automatically. Simply add the following to $HOME/.ssh/config:
Host blade3 blade5 blade10 ProxyCommand ssh root@labaccess "nc %h %p" 2>/dev/null
Now, when I try to ssh directly from my desktop to one of the blades, it first establishes an SSH session to the labaccess machine, and then netcat’s all of my original SSH traffic directly to the target blade.
This process will ask you for 0, 1 or 2 passwords, depending on whether your public key (from desktop
) is in the $HOME/.ssh/authorized_keys files on the labaccess
and bladeX
machines. Since I have my public key on all of the machines, this is what I see now:
alan@desktop:~$ ssh root@blade3 Last login: Tue Feb 17 10:17:21 2009 from labaccess [root@blade3 ~]#
This also means that I can scp
files directly from my desktop to the blades, without having to dump them on the labaccess machine.
By the way, this trick provides an EXCELLENT reason to consider re-flashing your home router with Tomato firmware, which has ssh and netcat built-in.
Host homepc1 homepc2 ProxyCommand ssh root@router "nc %h %p" 2>/dev/null
GnuCash for Windows
2When I started a consulting company in 2006, I decided to use GnuCash for my business books, since I was already familiar with it from home use. It is very well-suited for business accounting, since it uses standard accounting terminology and double entry. When it was time to prepare my corporate taxes, I called my dad (an accountant) to explain basic business accounting to me… closing out the books for the year, and all that jazz. I really wanted to share my GnuCash file with him, but that was not possible, since he uses Windows.
Today, I discovered that GnuCash has been ported to Windows (since version 2.2.0 in August of 2007). This is HUGE. With the whole “interoperability” stumbling block out the way, small businesses have one more reason to use open source software like GnuCash and Linux. I imagine that soon, if not already, business owners will be able to send their GnuCash data files directly to their accountants, just like they do today with their QuickBooks files.
Today, in preparation for March 15th (tax day for corporations), I installed GnuCash on my dad’s Windows PC, and he took a look at my books.
GnuCash, FTW!
I do have one question, though. During the installation, the GnuCash installer mentioned something about “Installing Windows firewall rules.” That scares me a little. If you know why it does this, leave a comment below.
Let the music play!
0My friend Tim told me about a music service called “Pandora“, which is an internet radio station that runs in a flash applet in a web browser. You can suggest songs or artists, and vote songs up or down. It uses the the Music Genome Project to categorize music, and to add similar music to your playlists. It’s a pretty cool project.
However, I encountered problems when I ran it on my Asus Eee PC 900. Pandora seems to run fine by itself, but it pauses and skips if you are browsing in another window. I think it has to do with a combination of Firefox’s “AwesomeBar” and the Eee PC’s flash disk.
The Awesomebar is Firefox3’s new address bar that searches for matches among your bookmarks and the titles and URL’s from every web site you have visited recently. Since the Eee PC uses a solid state flash disk, disk writes are pretty slow. So when you are browsing, every time open a new page, Firefox 3 writes some stuff to its sqlite database of user history. It then calls fflush(), which flushes all writes (not just its own) to the disk. During this time, all browser activity halts until the writes are complete. Other applications keep running fine, but the browser rendering stops — often “graying out”, turning back-and-white until it starts responding again. The problem is, flash applets also pause, and that includes Pandora.
I considered a few solutions:
- Run the Pandora applet in a different browser, and use Firefox for browsing.
- Run the Pandora applet in a stand-alone flash player.
- Run the Pandora applet on my server, while I browse on the Eee PC.
- Run a different application for audio, like “audacious” (an xmms clone).
Combining a couple of these ideas, I wondered if I could run some sort of console-based streaming audio application on my server. It would be cool to hook up some speakers to bender and listen to internet radio.
It turns out that mplayer will do just that. For example:
mplayer http://wunc.org/about/listen.pls
And now we’re listening to our local NPR station!
Note – you’ll also want to install a utility to set the volume. I use alsamixer.
Of course, this does not solve the original problem of Pandora pausing. And there seems to be quite a frenzy on the Firefox bug tracker about flushing the history database.
But streaming audio from a headless server is a pretty neat idea, and one that may become a permanent fixture in my home office.
USB on VirtualBox (non-OSE)
0I spent most of Sunday trying to get a USB device to work under Windows XP, running inside of VirtualBox OSE on an Ubuntu host. I found lots of how-to’s, mostly involving permissions on /dev/bus/usb and /proc/bus/usb, and also comments about /etc/fstab. However, the part that was not inherently obvious was that VirtualBox OSE (the “Open Source Edition”) does not support USB. However, the non-OSE version does.
Again, VirtualBox OSE does not support USB.
So I downloaded the non-OSE version (actually, on Ubuntu, you can simply add a line to your apt sources file and use the normal apt tools to install it). Within minutes, my USB devices showed up. From what I understand, you do still need to make sure to mount /dev/bus/usb.
root@kimono:~$ grep vbox /etc/group vboxusers:x:125:alan root@kimono:~$ grep usb /etc/fstab none /proc/bus/usb usbfs devgid=125,devmode=664 0 0 root@kimono:~$ mount | grep usb none on /proc/bus/usb type usbfs (rw,devgid=125,devmode=666) root@kimono:~$