Tuesday, April 17, 2007

Awesome App: Icepodder

I have started listening to a lot of podcasts lately. I started with just the Linux Action Show. Then it spread, like an addiction. Now I keep up with 6-15 a week, some even in video! I find they are a great way to fill my morning walk to work with new information about all the latest releases, vulnerabilities, and just general linux/open source/tech stuff. In addition, they are, on the whole, far more amusing than tech news sites.

General praise for podcasts aside: The only issue really is how to track them, get the latest episodes, etc. I started with iTunes, but this very very quickly became an annoyance, since I did not want to have to boot into Windows daily, just for podcasts. So I looked around for a Linux podcast client. And, what a surprise, I quickly found a great open source alternative: Icepodder.

Icepodder is:
[...] a podcatcher (RSS client) for Linux conceived as a replacement for CastPodder. IcePodder is written in python, and requires python 2.4 or later, and pyGTK. The goal of this project is to provide Linux users with a dedicated client to download podcasts, with an emphasis on reliability and stability.
That sums it up nicely. There was a .deb, so install was a breeze. I started it, it looked nice, all was well. Then for the fun. I opened my handy dandy list of Linux podcasts, clicked Add New podcast in Icepodder, and dragged in the RSS URL of the feed I wanted. In a flash, it had all the information about the show and all the latest episodes, with the very latest selected to be downloaded. Much faster feed loading than iTunes. Of course, downloading can still be slow, but that is limited by your connection speed and the remote server.

Icepodder has some other neat features as well. It can keep running and checking for content in the background. You can configure it to keep or delete content based on its age. The list of features goes on. Check it out.

[EDIT, Thu, Apr 19, 2007 03:19:09]: I found after a while that Icepodder was indeed great for doing all sorts of things with podcasts, but that it has no facility for copying/syncing them to my iPod itself, which was the real goal for me. Perhaps a different integrated app would be better for this.

Saturday, April 14, 2007

Putting Windows in its place: Virtual Machines

I was getting tired of having to reboot my machine and go into my Windows XP install to run certain programs. Data was not a problem any more, since I can read from and write to NTFS drives from linux now. But running certain programs only available for Windows came down to using Wine, or rebooting. Wine is ok for some things, but it has its problems still, especially for demanding programs.

A better solution I am trying: turn my Windows installation into a virtual machine, and run that from linux. A basic howto on this process can be found here. A guide to install vmware server on Ubuntu can be found here. Installing VMware server is not as simple as one might wish in Ubuntu. Following the above instructions, all will go well, until you try to launch. You may get an error like:
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libpng12.so.0/libpng12.so.0:
no version information available (required by /usr/lib/libcairo.so.2)

I found a fix for this:
cd /usr/lib/vmware/lib
sudo mv libpng12.so.0 libpng12.so.0.bak
sudo ln -s /usr/lib/libpng.so libpng12.so.0

However, that led this to happen when I tried to launch vmware:
/usr/lib/vmware/bin/vmware: error while loading shared libraries: libsexy.so.1: cannot open shared object file: No such file or directory


because Edgy had upgraded to libsexy.so.2.

However! I discovered at this point that I did not need to run "vmware". I needed to install and run the VMware Server Client for Linux. To do this, download the binary tar.gz called "VMware-server-linux-client-1.0.0-CURRENTBUILD" from the VMware downloads page. Then go to where you downloaded the file, and extract it to /tmp. Lastly do:
cd vmware-server-distrib
./vmware-install.pl


Follow the prompts, use the default values. Once it successfully installs, run it by "vmware-server-console". I ran it, and got this error:
vmware-server-console
/usr/lib/vmware-server-console/bin/vmware-server-console: /usr/lib/vmware-server-console/lib/libpng12.so.0/libpng12.so.0: no version information available (required by /usr/lib/libcairo.so.2)

But the console still opened fine. I selected Local Host, and imported the VM I had made of my Windows machine. For more details on importing, see this.

An alternate guide on the whole thing.

An important note: When you run your Windows VM, you will see and be able to run everything like normal if you were logged into Windows. You will also be able to change and add files. However, making changes here will not result in the changes persisting when you actually log into Windows. They are completely separate. This is a difficult problem, for which I have not found a solution yet.

[EDIT, Thu, Apr 19, 2007 03:16:27]: One additional problem I had that others may run into. When I made the VM from my Windows install, I did not think how large the virtual disk for it would be. It was as large as my C:\ drive, of course, ~70GB. The problem is, although I can see this from linux on the NTFS drive I made it on, I would need to copy it to a non-NTFS drive to be able to write to it, because of its permissions. In other words, be conscious of where you put the image initially with an eye to the final use.

Operatic Experimentation

I love Firefox. I have used it for years, to the exclusion of other browsers. But, of late, I have been getting a little tired of its speed, or lack thereof. Initial loading, tabbing, and other features, were getting sluggish. I was tired of my browser being slower at opening things than my OS. I was tired of restarting the app just to use a plug-in. What is this, Windows?

So I decided to try Opera, as I had heard of it being like Firefox in many ways, but faster and with additional features. I have spent much less time with it than Firefox, but I will say that so far, it has been great. It is faster, it has more useful features, and it is more intuitive.

Things I have loved from the start:
  • Changing skins, adding skins, and adding widgets can all be done from sidebars or windows, not new sites. Also, they do not require a restart to use. This has been great. I HATE having to restart Firefox when I have 500 tabs open, just to start using a new plug-in or theme.
  • There are lots of neat display options and informative displays. The Info sidebar, for example, or the advanced loading display.
  • Built-in BitTorrent support, no external app needed.
  • You can get the tab bar to wrap to multiple lines. This is great if, like me, you like to have 500.8 million tabs open, and hate having to scroll right and left to get to them all.
  • It's faster. Did I mention that?
So, minimally, give it a try. It's neat.

Sunday, April 8, 2007

System Tray in Flux and fbpager Config

I needed a way to display system tray icons for applications like Gaim and Tomboy in fluxbox. One way that was easy to implement and works well is a dockapp called docker. After installing it (it's in the repos), just add "docker -wmaker" to your .fluxbox/startup file. Then when you, for instance, launch Gaim, the Gaim system tray icon will appear as a 24x24 (configurable size) icon in the docker box. Check docker --help for more options.

fbpager is a handy app for displaying what desktops you have windows open in, and allow you to go to them quickly. Its default display layout is a bit ugly, though. There is an easy way to configure the way it appears, however. First, make a file ~/.fluxbox/fbpager.conf, and put this in it:
fbpager.workspace.width: 32
fbpager.workspace.height: 32
fbpager.workspacesPerRow: 2
fbpager.alpha: 64

Then add this to ~/.fluxbox/startup:
fbpager -rc ~/.fluxbox/fbpager.conf &

This will run fbpager, and look at the specified config file. You can play with the values to your liking. See the linked home page for more options.

Saturday, April 7, 2007

NTFS Read AND Write Access in Ubuntu, is Easy

Write access to NTFS type HDDs was a little sketchy for some time in linux. This is a big problem for people like me that dual boot linux and Windows. Now, it is not only reliable, but extremely easy. This howto has all the steps you will need to take. Basically, I just added a line to my sources list, updated my system, ran the config, checked a box in the interface, and that was it.

One extra step I had to take was to boot into Windows, shut down fully, then go into Ubuntu and run the config. This was necessitated because my last Windows shutdown was not clean. This was caused by yet another ridiculous Windows error that impelled me to shut down via the power button instead of the ever-cheerful Start button.

After taking such simple steps, I decided to test write access out. I decided the best choice was to make a file on the Desktop of my Windows user called "Linux_Made_This.txt" containing:
"HAHAHAHHA
You have no chance to survive make your time."

Of course, you may find your own way to test as well.

Sunday, April 1, 2007

Utility Assistance: dos2unix

I had known of the utility "dos2unix" for some time, but I never had occasion to use it until recently. I have been working on a script to assist in system administration, and had put in Yahoo! Briefcase so that I could access the single file on various systems. In the process, it got Windows formatting added in (open such a file in vim, for example, and you will see "^M" characters peppering each line). This causes no end of errors when the script is run on a linux system.

So, I thought I would try the dos2unix command I had read about. Command not found... sudo apt-get? Nope. Not in the repos. It turns out that the utility is called "tofrodos" (that's right, no "m") in the repos, with the added explanatory note "alias tofromdos". So I installed this, and tried to run "tofromdos". Not found.

After some searching, I found that once tofrodos is installed, you can run "dos2unix [filename]", and it runs as you would expect. I am still not sure why, but at least the utility is useable.