Simbiosis

Communiques from the wilderness

Lenny missing out

As a long time Debian user I have really come to appreciate the Debian repository system. With stable, testing, unstable and experimental points in the release cycle to choose from. Typically I run testing, with occasional packages from unstable and experimental. Or, put another way, I want to use the newest “stable” releases of software which are going to be in the next proper release of Debian.

However, as the package freeze for the next Debian release, Lenny, has been in place for some time it has prevented new packages from making their way into testing. I’m not sure if Lenny is actually over due or not, but what I am sure of is that it will put Debian behind the times with three very important pieces of desktop software: Openoffice, the kernel, and network management.

Openoffice.org (OOo) in Lenny is going to be set at 2.4, only missing out on Openoffice 3.0 by some weeks. The hassle here is that OOo 3.0 is significantly nicer to use than OOo 2.4. Firstly, because it supports a multipage view in writer meaning I can take advantage of a larger desktop screen. Secondly, because the multihead view actually works in Presenter, putting it back in the ring against Power Point, etc. As well it is faster and smoother to use.

The kernel will be 2.6.26. 2.6.28 has been in the wild for a few months now, and supports devices like the Atheros wireless network card which is found in MacBooks and many other laptops. This is significant because the previous option to get these cards working was to use MadWifi, which uses a closed source HAL object file, which isn’t in keeping with the free and open Debian ethos.

And finally, the network manager for Lenny will be 0.6.6. 0.7 is in experimental, and it supports GSM modems, and has better support for VPNs, which is very significant for the travelling business applications.

All of these newer packages will be available in the next release of Ubuntu, and are already in the latest Fedora Core, which leaves Debian behind the curve in this market. Of course people could, like me, use a mix of release packages, but a line should be drawn somewhere to prevent packages in a frozen-for-release repository from getting so out of date. Given the quality of Debian packages have become very good, and reliable, it would be better to unfreeze a release after a month to allow newer, tested, software in. This assumes that this won’t affect the “blockers” which have so far prevented the release.

In summary, experimental isn’t as scary as it sounds, and perhaps we need a different philosophy on the release cycle in this rapidly changing world of software.

February 8, 2009 Posted by Nigel | debian, linux | | No Comments Yet

Writting a DiigoDelicious plugin for Conduit

Tonight I started trying to write a bookmark syncing tool for my Delicious and Diigo bookmarks. Being of the Python persuasion I gave Conduit 0.3.11 a spin as the framework. This turned out to be a good choice, except for the incorrect documentation which suggests that custom modules should be placed in ~/.conduit/modules. In fact they should go in ~/.config/conduit/modules.

I got as far as writing a Bookmark data type (from the marketing I would have thought this should have already existed), and a Diigo data source. When I turned to the Delicious side of the equation I discovered that:

  1. The API has just changed; and
  2. The library I wanted to use (DeliciousAPI) doesn’t seem to support adding/updating entries.

So the project is now on hold until the Delicious API is updated to the latest API. Either way, Conduit seems like a very flexible framework and I hope it has long-term prosperity. Perhaps in due course it could natively support bluetooth SyncML ;)

August 3, 2008 Posted by Nigel | gnome, linux, python | | 2 Comments

Slashdot | Is Apple Killing Linux on the Desktop?

Slashdot | Is Apple Killing Linux on the Desktop?
This is a summary of my experiences walking the path between Linux (Ubuntu/Gnome) and OSX. For background I’ve been using Linux on the desktop for about 7 years, and only in the past 2 months have purchased a MacBook.

For years I’ve been using linux on the desktop, first Debian/Gnome and more recently Ubuntu/Gnome. I must say I really appreciated how well configured the Ubuntu desktop was out-of-the-box, and through good things coming together, how well the dynamic monitor configuration worked. As a programmer, web monkey, researcher and academic writer I had no complaints about the Linux desktop per se. I didn’t really miss any applications, and VM ware could certainly facilitate whatever was required.

What did continually bug me was hardware issues, most notably on recently released hardware. This was well exemplified when I got my MacBook and preceded to repartition it and put Ubuntu on 1/2 the hard drive. Being Intel on the inside it essentially worked, but when I first went to suspend it to ram (which one does all the time on a laptop) it didn’t come back to life. I don’t recall the specifics, but I eventually had to revert to an older kernel to resolve this. But this didn’t unnecessarily overcome the issue entirely, it just reduced the frequency of issues. There were similar issues with the wireless card, which have been fixed in the SVN version of the wireless driver. In time I wanted suspend to disk as well, via Tux on ice. I tempted fate to upgrade to the latest stable Kernel, applied all the Mactel patches, etc. This just reignited all the old suspend to ram issues. Sigh.

So I decided to give OSX a try. As an aside, the first thing I did was install VM ware and X11 so I could continue to use my linux dev environment. This works well except for the messed up copy/paste buffer.

My for few hours could only be described as like swimming through honey. Slow, painful, and I thought I was going to drown. OSX uses a completely different navigation philosophy which took a while to adapt to. For instance, using Finder and search to locate applications, and the application centric window grouping. This second example is especially annoying as a developer, as I routinely have many windows of many applications open at one time. To navigate with the keyboard you have to first (Apple)-TAB to the application and then (Apple)-~ to get to the appropriate window. This makes development especially tedious on OSX, which is why I just run all the required applications from my VM (Firefox, Eclipse, gEdit, terminal, etc) and then just use (Apple)-~ to switch in a less convoluted way. It is still annoying that it cycles all the windows, but the keyboard is poor cousin to the mouse in OSX.

And for the record, expose does not improve this situation, it is more frustrating to have to visually locate the window, grab the mouse and click on it. Having said that, for non-coding tasks like checking email and then checking the news I can see expose would be useful. Especially if there is a lot of windows open.

What I do really appreciate about OSX, I can just close the lid of my laptop and it suspends. And then I open the lid, and 99% of the time it resumes. And that really sums up why I’ve stuck with it. I need to reliably be able to suspend/resume my laptop, and if I can run linux in a VM then that is fine. When the next kernel (2.6.24) is released I’ll give Ubuntu another try, and if it works then I’ll switch back to it.

For non-programmers, who just want a reliable desktop experience then I always point them to a Mac, probably because I would have a clue about how to fix them so that gets me off the hook. But also because, as a pre-packaged unit, they are quite reliably software wise. Oh the hardware side there is an average of 1 “logic board” replaced a month in my department where there are about 20 odd Macs. But they are all under warranty, so thats good.

In relation to the referenced article, I think OSX is retarding the growth of Linux on the desktop because it is providing a more reliable alternative to Linux. But, I think Linux is evolving at a far greater rate than OSX or Windows, and in the longer term it will be a player. Functionally its there, it just lacks a happy home in terms of hardware. Vendors are getting on board, and compatibility is improving. And maybe I’ve missed the product lines which are supported FULLY by linux, but it wasn’t through a lack of trying. I should also qualify “supported” by saying, it driver support need to be in the stock kernel, so they are available to any distro. Ubuntu supports the MacBook better than most distros because they apply all kinds of patches. This is all well and good, but it certainly doesn’t make the MacBook any more Linux compatible.

Powered by ScribeFire.

January 6, 2008 Posted by Nigel | OSX, linux, technology | | No Comments Yet

Samsung K3 on Linux

To cut to the chase, to use the Samsung K3 on Linux you need to use the MTP protocol, supplied by libmtp, and supported by mtp-tools, Rhythmbox (>=0.11), gnomad2 and amarok. (Credits for this tip go to Linux-Club.de). All of these, except the newest Rhythmbox are available in Debian unstable today (2006-08-26). I compiled Rhythmbox from SVN using these instructions.

You could probably quite easily patch these into the existing debian package, or recompile the Ubuntu bleeding edge packages against the Debian libraries.

The verdict, the play is quite nice, cheaper than the iPod, and works fine in Linux.

UPDATE

It doesn’t work so well after all. I put about 40 songs on ok, but after that I could no longer use any of the libmtp apps to update the device. They all segfaulted. This was bad. According to the libmtp compatibility page this device is unknown as to its support level.

The solution I ran with was to upgrade to the Korean firmware. On top of those instructions I had to work around a “no space for DB. delete at least 18mb error” as their suggested solution (reformatting) didn’t work. The Samsung program said the device was already in use. What I did was (c)fdisk the devices in linux, creating a FAT32 partition and formatting it. Then I did the second firmware upgrade to 4.06 and the device was properly reinitialised.

All works better now, except occasionally the device does crash the USB on linux and I can no longer update it in that session. And, the new firmware supports OGG files :)

UPDATE

I started getting the same kinds of USB errors under the new firmware as I did under the original. It turns out that the USB in my ThinkPad T41 is somewhat buggy. If I drop down to USB 1 there is no problems any more.

sudo modprobe -r ehci_hcd

I have not tried going back to the old firmware, so I don’t know if it is exactly the same error. Perhaps some other day I’ll follow this up.

August 27, 2007 Posted by Nigel | debian | | No Comments Yet

Sound and S3 (suspend to ram)

Following S3 (suspend to ram) finally working on my laptop a new side-effect, or hidden bug has emerged. After a prolonged suspension (>5 min) parts of the sound system stop working. The symptoms follow:

  • ALSA apps like RhythmBox and Xine -A alsa freeze (Xine always, RhythmBox always)
  • ALSA apps like aplay work
  • OSS apps like Xine -A oss work
  • Reloading alsa drivers does not help

I’m going to post this around the forums and report any successes back here.

Update: Kernel 2.6.20 seems to fix this issue. I don’t know which patch does it though.

Update: Nope, still broken!

Update: I notice that Banshee, Rythmbox and gstreamer-properties all freeze. The common component, gstreamer. hmm. Just more leads at the moment.

powered by performancing firefox

February 4, 2007 Posted by Nigel | linux | | 1 Comment

Four things which would make my Linux wonderful

1. Presentation controller for my bluetooth phone

In fact this already exists, in many forms apparently. The trick for me was to get it working. If I was to derive it from scratch I would have made a simple, mappable Java app for the phone, and would have written a Python app for the server. In fact this already exists in Xbtrc. The trick for me however, was to get the phone to find the computer. The phone could find other phones, and using the python rfcomm examples, I found the computers could find each other. The problem, it turns out, was the computer needs to be put into discoverable mode for the phone to be able to find it.

dbus-send --system --dest=org.bluez --print-reply /org/bluez/hci0 org.bluez.Adapter.SetMode string:"discoverable"

For whatever reason this doesn’t happen by default when you are in connectible mode. Alternatively you can do hciconfig hci0 piscan or change your bt-applet settings to visible and set the timeout to never.

2. Evolution sync with my phone (Nokia 6230i)
Well, we have gammu/wammu, which give us nokia phone access, and we have opensync, which does syncing, and we have the evolution data server, which we could access directly. But for some reason, these have never been wed.

3. Dynamic xinerama

Why do I have to restart my X server, and loose all my apps, when I want to change video configurations. Logically, if I had xinerama installed, and R and R, I should be able to resize my offboard video card to 0×0 and have all the windows pushed onto the LCD. Then when I resize back to its real size, I should be able to start using the real-estate again.

4. Suspend to ram working properly
As I pointed out in a previous post, S3 (suspend to ram) only just started working “properly” on my IBM T41. However, I have found that the external screen never comes back to life after a suspend. Hopefully someone will pick up on this. sigh. (not that I’m ungrateful)

powered by performancing firefox

January 18, 2007 Posted by Nigel | bluetooth, java, linux, technology | | 6 Comments

Python packaging: freevo

I’ve been packaging up some of the libraries required for Freevo, like pylirc and kaa-*. These are a few note for future reference.

Make sure the includes are in this order:

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/python-distutils.mk

The reverse (as seen in some places) does not work. It doesn’t call pysupport.

http://wiki.debian.org/DebianPythonFAQ
http://wiki.debian.org/DebianPython/NewPolicy
https://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml

powered by performancing firefox

January 4, 2007 Posted by Nigel | debian, programming | | No Comments Yet

T41 suspend to ram finally working

After an upgrade from kernel 2.6.17 to 2.6.19 I noticed that my Thinkpad T41 was no longer hot. A quick look through the kernel changelogs reveiled that the nasty ACPI bug has finally been fixed. My laptop now has all the properties of a Laptop again.

commit 994aad251acab32a5d40d4a9501dc3e736562b6dAuthor: Volker Braun 
Date:   Sun Jul 30 03:04:18 2006 -0700
[PATCH] radeonfb sleep fixes

Many IBM Thinkpad T4* models and some R* and X* with radeon video cards draw

too much power when suspended to RAM, reducing drastically the battery
lifetime. The solution is to enable suspend-to-D2 on these machines. They

are whitelisted through their subsystem vendor/device ID. This fixes

http://bugzilla.kernel.org/show_bug.cgi?id=3022

December 24, 2006 Posted by Nigel | linux, technology | | 1 Comment

Photosmart 2575

I just got a HP photosmart 2575, which I will probably post more about in due course, but the useful snippet I am contributing today is this. If you want to scan over the network, you can use XSane, so long as you have the hp-makeuri address of the device. BUT, this only works with the IP of the device, not the mDNS name, so this script will lookup the name, and launch xsane with the IP address, provided it can be found.
If you try this with a non-2570 series scanner make sure you correct the xsane url.

#!/bin/sh# Start XSane with the device IP address
HOSTNAME=<NAME>.local
IP=`resolveip $HOSTNAME`
if [ $? -eq 0 ]; then
IP = `echo "$IP" | cut -f 6 -d ' '`
xsane hpaio:/net/Photosmart_2570_series?ip=$IP
else
zenity --error --text="The device could not be found"
fi

June 7, 2006 Posted by Nigel | debian, linux, technology | | No Comments Yet

Bluetooth Fuse OBEXFS under Debian

Because the Gnome Bluetooth tools are not in Debian it makes it kinda hard to transfer files to a BT enabled phone. However, there is a really neat project out there called OBEXFS, which uses Filesystem in Userspace to mount an OBEX device, like a phone, as another folder on your computer.

First thing is to set up the basic system for using fuse

modprobe fuse

or

echo fuse >> /etc/modules
adduser  fuse

Now, get and compile the obexfs programs

./configure && make && sudo make install

Finally, the magic lines. Nokia phones use channel 10 for OBEX transfer, so:

mkdir -p ~/mnt/bluetooth
obexfs -b <BT MAC ADDRESS> -B 10 ~/mnt/bluetooth/

If you need to find your BT MAC address use:

hcitool scan

Requirements:
apt-get install fuse-utils bluetooth

June 4, 2006 Posted by Nigel | bluetooth, debian, linux | | 6 Comments