Monthly Archives: August 2007

Deserializing SOAP replies with ZSI?

Dear Lazyweb,

what is the most elegant way to read a SOAP reply containing a complex type into an object using ZSI? I’ve read the documentation several times and I guess there is an elegant way to solve this, but I still don’t get it.

I guess it should work like this:

  • Define a class Bugreport
  • Define Bugreport’s typecode
  • Parse (how?) the SOAP reply containing bugreport-data into a Bugreport object

What I’m currently doing with soappy in rng is rather crude: I take the SOAP response which is a dictionary holding many interesting facts about a bug report, take those elements I’m interested in and copy them into a bug report object. Not very elegant, but it works.

While I’m moving away from soappy to ZSI I’d like to implement the deserializion the ZSI way. Unfortunately I don’t understand their examples. So please Lazyweb, is there any ZSI expert out there who can provide a minimalistic example?

Howto setup a print server for Windows (and others) using CUPS and zeroconf

Now that CUPS 1.3 has built in zeroconf support, it is easier than ever to provide print service to Windows machines. You don’t even need Samba anymore.

Here’s a quick way to setup a CUPS print server and a Windows client:

On the server side

First you need to install CUPS 1.3 or higher on your print server and setup the printer (the web interface makes this task dead easy).

Zeroconf isn’t enabled by default so you have to browse the CUPS admin page (http://localhost:631/admin if you’re running it on localhost) and enable the “Share published printers connected to this system” option. “Change Settings” will restart CUPS and your printer should be instantly visible to zeroconf-aware applications in the local network.

If you can’t or don’t want to use the web interface (which is the easiest way though), you can edit /etc/cups/cupsd.conf and replace the line

Listen localhost:631

with

Port 631

and add the line

BrowseAddress @LOCAL

Now save the changes and restart CUPS and you’re done.

On the client side

Since most Linux distributions and MacOS support zeroconf out of the box, I’ll just explain how to setup the Windows client.

On the Windows side you’ll need to install Bonjour for Windows which is freely available on apple.com.

Bonjour for Windows will enable Multicast DNS (mDNS) and DNS based Service Discovery (DNS-SD) on your Windows machine. Once it is installed, you can start the printer helper application provided by bonjour which will guide you through the process of installing the network printer. The only problem here was that although it correctly identified my printer, it only let me chose between a generic postscript and a PCL driver. Both were not working correctly so I had to manually change the driver for this printer to HP LaserJet 4 Plus (which is my printer) after the setup via the printer properties, where all other printer drivers where available again.

That’s it! Now you should be able to print on every zeroconf aware operating system connected to your network. Oh, one final warning: With this setup, everybody in the LAN will be able to print without prior authentication. This should be what you want in most cases when running a home LAN or a small business LAN anyways, but it’s certainly not so cool when strangers have access to your network.

The whole setup process took like 15 minutes today. I remember me a few years ago, not being very experienced with Samba and CUPS wasting a whole weekend to achieve the same result. Thanks apple for making life a bit easier again!

My top 5 Firefox/Thunderbird annoyances

Firefox is constantly gaining marked share (especially here in Europe) and it’s little not-yet-so-popular brother Thunderbird is evolving too. While I’m happy that they’re contributing their part to bring Free Software to the masses, I’m concerned that the quality of their software (especially Firefox under Linux) has decreased in the last months.

Here are my top 5 annoyances for Firefox and Thunderbird. Some of them only apply to Debian’s version others are more visible on my fairly old and “slow” (1.5GHz/512MiB) Laptop than on current and therefor faster machines:

Firefox

  • Firefox seems to have a massive problem with font kerning. Sometimes text is hardly readable since several letters seem to share the same one-letter space. And marking messed up text like this gives funny results:
  • When visiting pages with a fixed background image like this, scrolling the page down causes massive CPU load and very slow scrolling even on fairly fast computers. Konqueror seems to handle pages like this much better.
  • When reloading all tabs at once in a session and you have many (read: more than say, 6) tabs open, Firefox takes all the available CPU resources and pretty much becomes unresponsive until all tabs are loaded.
  • Firefox literary freezes while loading very large pages (combine this with the previous annoyance for funny results)
  • I still haven’t figured out why Firefox on my laptop (correctly) wants to launch kpdf when I open a .pdf while Firefox on my desktop seems to prefer xpdf. I’ve checked all the available options on both systems and wasn’t able to find the difference in the configuration.

Thunderbird

  • The most annoying bug in Thunderbird is Debian specific: it doesn’t open links in a browser anymore for months. Since you have to change some non-obvious configuration to fix this, I assume this is the default behavior for many users out there which are now forced to copy-paste links to their browser.
  • Like most other mail clients Thunderbird is also able to manage contacts. But it lacks two important features:
    1. No im/export of vcard: Hmm? Even outlook can do that and vcard is pretty much standard for storing contact information platform independent.
    2. No birthdays associated to contacts: Superb! When combining the Mozilla calendar application with Thunderbird you cannot just import all the birthdays from your contacts (which are stored as vcards of course), no you have to separately create those events which then of course are totally unrelated to the persons in your roster.
  • The “search entire message” feature in the search box does absolutely nothing when searching in newsgroups. Why is it enabled then? Or: why does it pretend to do something by hiding all threads when entering something, suggesting no match was found?
  • Wasn’t Thunderbird 1.x able to work with RSS feeds? What happened to this feature in Thunderbird 2.x?
  • What happened to Thunderbird’s icon?

While I’m still happy with Thunderbird (or Iceddove as we call it here) I’m really searching for an alternative to Firefox (Iceweasel). Unfortunately there is currently no alternative available which fits all my needs. Firefox has two extensions no other browser seems to provide and without which I wouldn’t want to work anymore (I wonder if that was a proper English sentence…):

  • Foxmarks Bookmark Synchronizer: which allows me to store my bookmarks on my (that’s right, not just foxmark’s) server to keep it in sync with all my Firefoxes on various places and machines.
  • Adblock + Filterset.G Updater: which keeps me mostly ad-free and automatically supplies me with the newest filter set rules.

While other browsers have some ad-blocking functionality too, they all seem to lack the filter set updater. The next best alternatives are Konqueror and Epiphany but besides the lack of the above features every one of them has it’s own little quirks which doesn’t really motivate me to make the switch yet. But Konqueror is making progress and I’m really looking forward to KDE4 which will hopefully bring a usable web browser so I can finally get rid of Firefox.

Update: Ooops, I nearly forgot my favorite pet annoyance of Firefox under Linux: Why does it have to insult the user’s eyes with this ugly toolkit when drawing check boxes, line edits, buttons etc? Firefox under Windows paints stuff like that according to Windows’ current theme, Konqueror under Linux as well, but what does Firefox for years?

Rng and others temporary broken

Just a short note to let you know that due a change in debbugs’ SOAP interface several applications including apt-listbugs and rng are temporary broken. The change was not too dramatic and I suppose the problem will be fixed shortly. Meanwhile you can use reportbug which is not affected, since it still uses the HTML interface.

Update: Don fixed the problem and everything should be working as usual again.

Implement two features and get the third for free!

Today I’ve implemented a feature which was long overdue: making the table sortable by the available table headers. The second feature I’ve added is that every bug report now has it’s “Last Action” date. While both features are useful for themselves, combining both result in a very handy bug triaging tool.

screenshot.png

A few months ago when I was trying to help the KDE team on their bug triage, I’ve missed the feature to sort bugs by their date of the last action in our BTS since I’ve noticed that many of the very old bugs (last action-, not bug number wise) where already fixed or could be closed for other obvious reasons. The problem was just to find all those “stale bugs”. I was able to close dozens of old bug reports but it took much more time to find them, than to decide whether they’re still active or not. And since I hadn’t the tools available to find the “easy targets” on a quick way, I gave up after a few days.

Today it’s just as easy as firing up rng and let it search for all bug reports belonging to the qt-kde team:

rng debian-qt-kde@lists.debian.org

and sorting the resulting list by last action… sweet!

The package was just uploaded and should be available tomorrow.

Update: Don pointed out that you can get the ordering in the web interface too by appending ordering=age to the URL. Neat.