Friday, September 19, 2008
Dancing Around
Secondly, I have added a Tumblr page dedicated to short Linux blurbs, or tumblrs. You can find it here: JD's Linux Love. This is where I'll put links, pictures and the like. Daemon Dancing will be more focuses on longer how tos and notes.
Sunday, September 14, 2008
Fresh Linux Baking
A couple of new Linux apps coming over from the dark side that have me squealing like a little girl!
Dropbox - a very simple service that offers 2gb of synchronized storage. You can even make share selected files publicly. There's already an openSUSE package for it as found here. Unfortunately for me, a KDE user, it comes prepackaged with a GNOME Nautilus interface. It runs a small daemon (dropboxd) and then shows the Nautilus interface. The Nautilus stuff is opensource, but the daemon isn't :( But perhaps they will document the interface, as Filip L. has reversed engineered it and wrote a Python script here. And they are asking for folks to write KDE and other front ends.
Joel of Joel on Software has a nice little post about how to synchronize passwords between your Windows & Linux boxes using PasswordSafe on Windows and Password Gorilla on Linux, here, and storing the file on Dropbox.
Launchy - a favorite of the Lifehacker crew, the Linux version was finally released. Launchy is a program in the same line as Gnome DO and Katapult. I had been using Katapult, but I found that showing only one option when there were many possibilities too limiting. Launchy fixes this with a very nice drop down showing all possible completions. It also has a nice plugin architecture, which I haven't explored much yet. I still sorely miss PowerPro on Windows, but what can you do?
Monday, August 18, 2008
Yet Another Backup Solution
BackupGem Manual
Backup is the easiest and most flexible backup, archive and rotate tool. It’s a beginning-to-end solution for scheduled backups in a clean ruby package that is simple use and powerful when customized.
Monday, August 4, 2008
Back in the Saddle
As you may have noticed (for both of my readers), I am back to updating Daemon Dancing instead of helping out at Linux Brain Dump, as LBD seems to have slipped into a funk lately. So I figured I would just go back to working on Daemon and trying to update the look and feel of it. But I had forgotten just what an incredible time sink it can be once you begin playing with your blog look! Just a few minor tweaks (like trying to get the search box to work) took a couple of hours, as I played with all kinds of settings. And, as you can probably see, this is a pretty plain vanilla Movable Type blog!
Anyway, look for more Linux, FreeBSD and other FOSS software ramblings to show up here again.
Just a quick note on FreeBSD - while I don't run it on my home desktop, my server (the one that hosts this blog, for instance), runs FreeBSD 6.1 (a little out of date). I finally bit the bullet and did a full package upgrade and lo and behold, it went like a champ, despite the long delay between updates. At least I had the portsnap cron job running, so that part was kept up to date. The first portsnap update command took a very long time, but after a few carefully chosen upgrades, I just jumped in with both feet and the portmanager -u command did it all. Of course, I haven't tried rebooting yet, which is the real test. But still, very nice.
Friday, August 1, 2008
AIRing it out
Very nice intro to AIR on Linux found at Linux Journal. AIR (Adobe Integrated Runtime) is Adobes push for a crossplatform rich Internet app "operating system". I've been using it for Twhirl, a very nice Twitter client. For some reason, there are many Twitter clients using AIR. Adobe claims AIR to be only in an "alpha" state for Linux, but it has been working for me pretty well.
The only obvious shortcoming is that, according to the Twhirl author, the Linux version doesn't support the password encryption that is found on the Windows client, so it doesn't store passwords. And there are some rough edges for the UI, like the super-annoying Mac-like restriction of only resizing the window via dragging the lower right corner. And the auto-update feature doesn't work. You have to download the update file for the app and install it yourself. But it has been very stable for me and I'd like to look more into programming with it.
Vee Dee Eyes page
Sun xVM VirtualBox VDI Index | veeDee-Eyes
The VirtualBox "Virtual Disk Image" Index
VDI images of pre-installed "Open Source" Operating System distros.
It's a computer inside your computer.
Wednesday, July 30, 2008
Teaching OSS to Share
Say you're doing some programming, or trying out an older audio program, and you get some form of the following cryptic error:
unable to open `/dev/dsp', Device or resource busy
What does it mean and what can you do about it?
As to what it means - basically, an application somewhere isn't being very nice and sharing, like we have all be taught to do. Or it wants to hog the sound device all to itself and another app won't let it go. /dev/dsp is the device pointer for the default "dsp" or digital sound processor and, as audio remains a bit of an Achilles heel for Linux, there can be problems in the sandbox.
So what you need to do is to figure out which app currently has locked, so maybe you can quit that application to allow our other one to access it. You might think of using lsof or fuser to figure it out. So you check:
$ lsof /dev/dsp
$ fuser /dev/dsp
But unfortunately, it won't show you anything. I think this is because /dev/dsp is just an affectation, which allows Linux to point wherever it really wants to.
In this case, it is the /dev/snd/* files. It is here you want to see who is grabbing things:
$ ls /dev/snd
controlC0 hwC0D2 pcmC0D0p pcmC0D1p pcmC1D0c seq
controlC1 pcmC0D0c pcmC0D1c pcmC0D2c pcmC1D0p timer
$ lsof /dev/snd/*
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
VirtualBo 4083 jdarnold mem CHR 116,10 4395 /dev/snd/pcmC0D0c
VirtualBo 4083 jdarnold mem CHR 116,9 4390 /dev/snd/pcmC0D0p
VirtualBo 4083 jdarnold 40r CHR 116,2 0t0 4102 /dev/snd/timer
VirtualBo 4083 jdarnold 42u CHR 116,10 0t0 4395 /dev/snd/pcmC0D0c
VirtualBo 4083 jdarnold 43u CHR 116,12 0t0 4411 /dev/snd/controlC0
VirtualBo 4083 jdarnold 44r CHR 116,2 0t0 4102 /dev/snd/timer
VirtualBo 4083 jdarnold 45u CHR 116,9 0t0 4390 /dev/snd/pcmC0D0p
VirtualBo 4083 jdarnold 46u CHR 116,12 0t0 4411 /dev/snd/controlC0
kmix 4155 jdarnold 12u CHR 116,12 0t0 4411 /dev/snd/controlC0
kmix 4155 jdarnold 13u CHR 116,5 0t0 4560 /dev/snd/controlC1
$ fuser /dev/snd/*
/dev/snd/controlC0: 4155 4800
/dev/snd/controlC1: 4155
/dev/snd/pcmC0D0c: 4800m
/dev/snd/pcmC0D0p: 4800m
/dev/snd/timer: 4800
$ ps -c 4800
PID CLS PRI TTY STAT TIME COMMAND
4800 TS 19 ? SLl 0:12 /usr/lib/virtualbox/VirtualBox -comment Debia
Pretty conclusive proof that it is VirtualBox using the device. So let's see what it looks like after I quit out of VirtualBox:
$ lsof /dev/snd/*
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kmix 4155 jdarnold 12u CHR 116,12 0t0 4411 /dev/snd/controlC0
kmix 4155 jdarnold 13u CHR 116,5 0t0 4560 /dev/snd/controlC1
$ fuser /dev/snd/*
/dev/snd/controlC0: 4155
/dev/snd/controlC1: 4155
$ ps -c 4155
PID CLS PRI TTY STAT TIME COMMAND
4155 TS 19 ? S 0:00 kmix [kdeinit] -autostart
kmix, the KDE sound mixer program, is pretty good about things, and thus we no longer have a conflict:
$ ./dspinfo
Information on /dev/dsp:
Defaults:
sampling rate: 8000 Hz
channels: 1
sample size: 8 bits
block size: 1023 bytes
Supported Formats:
mu-law
unsigned 8-bit (default)
signed 16-bit little-endian
signed 16-bit big-endian
signed 8-bit
unsigned 16-bit little-endian
unsigned 16-bit big-endian
Capabilities:
revision: 1
full duplex: yes
real-time: yes
batch: no
coprocessor: no
trigger: yes
mmap: yes
Modes and Limits:
Device Sample Minimum Maximum
Channels Size Rate Rate
-------- -------- -------- --------
1 8 1000 100000
1 16 1000 100000
2 8 1000 100000
2 16 1000 100000
dspinfo is a small program I adapted from the exerpt for the old O'Reilly book Linux Multimedia Guide, which is Chapter 14. Programming Sound Devices. As I said, OSS (Open Sound System) is an old Linux standard, pretty much passed by in these days of 2.6 kernels.