Thursday, December 18, 2008

a recent book acquisition: Pragmatic Version Control Using Git

You can't avoid coming across Git these days, so instead of closing my eyes before it, I decided to better get involved. I used PragProg's 5 years anniversary discount coupon for purchasing the PDF.

a recent book acquisition: Programming Amazon Web Services

My main Internet provider is quite good at certain services, and they provide with that awfully nice IMAP server; they even allow me to run procmail with my own rules to sort my e-mail into IMAP folders.

I made terrible experiences with them, when I made some Rails experiments. Essentially with ruby and its GEMs as well as with perl and its CPAN you need to be able to run a C compiler yourself in order to get those nice modules built. They don't allow me to run a C compiler there, so I was searching for a different solution.

Sooner or later I came across this book, and with its help (and also with openSUSE 11.1's new features) I want to set up my openSUSE EC2 image. My ideas go towards Catalyst (the perl MVC framework), a web presence for my girl friend, who is a fine arts professional, and of course a few web sites for my own purposes ...

a recent book acquisition: Building Embedded Linux Systems

I am quiet curious to use busybox in one of our cars, or just to understand better, how I can make advanced use of the busybox in my DSL router.

Thursday, December 11, 2008

Catalyst, the MVC framework in perl

I recently came across Catalyst, an MVC web application framework, written in perl, let's say it's competing against Ruby on Rails and Grails. But (as it's written in perl) it can make use of the vast resources on CPAN.
To be continued.

installing Solaris packages as non-root

Do you know, where you can get ready made freeware packages to run on Solaris from? I got a few from recently.
Do you think, you can only install Solaris packages as root? Of course, it's simpler and just better to do so, but what if you can't?
Solaris packages from come as gzipped files, and I use pkgtrans in order to get pkginfo, pkgmap, and a subdirectory reloc created below my $HOME/PACKAGES/ . pkgmap is described in the manual page protype(4) , it defines details like file mode, symlinks, and much more. Within that subdirectory reloc you find the package's executables, library files and man pages.
The sys admin would use pkgadd for installing a package, but pkgadd only allows for execution by root, so I developed a shell script ( imitating pkgadd. It reads pkgmap and does jobs like adopting the file mode specified within pkgmap. I don't plan on implementing pkgadd's full functionality, but just that subset, that is seriously required in order to get the packages installed, that I really want to install.
Of course, executables and libraries, that depend on hard-wired absolute file or directory pathnames will experience a little grief. But most of the utilities, I am working with, don't complain about such problems.
Now e.g. I am able to download and install ready made packages (wget, curl, …); and you know, how much nicer it can be to use wget and curl than downloading within a web browser.

Update 2012-01-11:
If you are interested in my shell script, drop me an e-mail mentioning in the subject!
I should be able to locate and deliver it within a reasonable amount of time then. (I should have mentioned the name here in the first place, which I didn't.)

Wednesday, December 3, 2008

First steps for Linux on iPhone with BusyBox

After I had read this article last weekend, I forwarded it to one of the engineers at my current customer's company. That company is in an automotive niche market, and he had already spent work time on an attempt establishing Linux within one of their projects. Actually Linux is being employed in one of the screen based user interfaces on a car, but as opposed to the Linux iPhone approach it's not BusyBox based.

I actually came across BusyBox only this year, but that's only because embedded programming hasn't been on my agenda for a while.
That other context, where BusyBox is being employed, is my Internet router, an AVM 7270, actually also serving as cordless phone (DEC) base station, Fax recipient and PDF converter, WLAN access point, ...
So that box is also BusyBox based, and I can connect to it using telnet, and I can store and read data on it, and I like that.

If you are interested in Building Embedded Linux Systems, have a look at this nice book published by O'Reilly!

Tuesday, December 2, 2008

annotating PDF files with free software

flpsed is a WYSIWYG PostScript annotator.
You can't remove or modify existing elements of a document.
flpsed lets you add arbitrary text lines to existing PostScript documents (PostScript is a registered trademark of Adobe Systems Incorporated). Added lines can later be reedited with flpsed. Using pdftops, which is part of xpdf one can convert PDF documents to PostScript and also add text to them. flpsed is useful for filling in forms, adding notes etc. [...]
flpsed is released under the GPL.

Actually it is more a PostScript annotating tool than a PDF one. When you first save an annotated PDF document, it gets converted to PostScript. If you want to resume editing such a document, you and the tool have to deal with the PostScript file. You lost the nice document structure diagrams, PDF viewers show you for certain documents.
And: PDF resp. PostScript annotating is not filling out PDF form fields. This tool lets you write text at any location within such a document, and it does not help you finding PDF form fields, as PDF viewers do.
I still find this utility very, very useful.

WeFind uses Grails, right?

Yet another search engine, but what's special about it, I mean from a developer point of view? It's implemented using Grails. Well, yet another MVC approach in yet another esoteric language. Well, guys why just don't you use an ordinary language like Perl, and why just don't you use Catalyst? Somebody should have told you.

Friday, November 21, 2008

al desko -- calendar sheet as of October, 31st

al desko: eating something, usually lunch, at one's desk. The expression is a play on the Italian word al fresco, which means outdoors or literally in the fresh (air).

Admit it. While scrolling through this newsletter with one hand, you're probably eating a Döner or a slice of pizza with the other. Glance down at your keyboard. Can you see morsels of bread, pieces of salad, bits of dried-out salami? Don't worry. You're just one of millions of workers who regularly eat al desko...

(unknown author)

Tuesday, February 19, 2008

subversion and emacs

After working with subversion within emacs for quite a couple of months, occasionally I found out, that my choice for emacs subversion bindings was quite a little to fast, but luckily enough apparantly quite the right one. You can find all the bindings at this SVN URL. My choice is psvn.el.

Tuesday, February 5, 2008

Apple's PropertyList in Ruby

Silly me just wanted to create my 1st project on, and when I had just filled out all fields for doing so, told me, that a project by that name already existed, and actually I found out, it is exactly, what I could have used instead of writing my own software. I remember, when I started that software, I was so focused and overly sure, that it was absolutely unlikely to already exist. I am happy to replace using my plist implementation by the public one soon.
Actually my code looks like a litte more lightweight, but it only implements a reader so far (using ordinary lists and also hash lists but no dedicated classes), and mine requires 'rexml/document' but theirs does it all itself -- another case of NIH. Both implementations don't support property values of type date and data.
Maybe my code will survive this crisis. Will this then be another case of NIH itself? Or just offering an alternative?

Friday, February 1, 2008

shockwave for Linux -- ist that a problem?

title says it all. application/x-director is something, that my Linux firefox does not understand.

Microsoft Office Picture Manager

On the Windows platform this is my favourite imaging utility. It helps me compressing the documents I scanned and on multiple other issues.

my eee-pc -- I broke it a little

It didn't take too long, until I broke the tiny little thing a little. synaptics (the GUI package manager) complained about kdelibs4c2a and ... cannot install ... and whatever.

I went to and, but the search hits were a little unclear unsorted. I googled kdelibs4c2a and that was most helpful. Somebody had already described the same problem, and somebody else had already described a solution:

You have to make sure that you get the Xandros ksmserver and kicker from Asus and not the Debian ones. It sounds like you're doing this step after you put a Debian repository in your /etc/apt/sources.list. Use one of the various methods to force apt-get to get this from Asus instead
(e.g. comment out the Debian server,
and then
$ sudo apt-get update
and then
$ sudo apt-get install ksmserver kicker
and then after that, if you want, you can put the Debian server back in).

I think I will re-de-comment the other repositories more selectively from now on, as I don't want to experience this kind of trouble very often.

Wednesday, January 30, 2008

yet another UNIX goodie: watch(1)

A friend showed me this utility, I liked it, I forget it, I rembered it, but not it's name, I had to ask a friend, and before I forget it again, I just post it here. It's a very nice utility.

Tuesday, January 29, 2008

my brand-new EEE-PC

A little late (but better later than never) I got myself an EEE-PC.
First and important thing to do was to tell it to talk to me in english, because I hate it, when computers talk to me in denglish (as this awful modern mixture of german and english is called, and yes, of course, I use it myself in spoken language and I hate it, but at least for written language I insist on avoiding it), so how to modify the default locale? And pls don't you just modifiy /etc/default/locale!

$ sudo update-locale LANG=en_US.UTF-8

I found and, most valuable!!! Really!!! Go to the wiki and make the best of it!!!

I added a few Xandros package repositories, that got listed there.

I found two package managers: synaptic (GUI!!!) and aptitude (ncurses based), obviously you will always have to call them through sudo.

Sometimes you will nevertheless want to install a package on the command line, this is how it looks:

$ sudo apt-get install YOUR_PACKAGE

These were a few of the packages I installed first this way: openssh-server, nxml-mode, rcs.

Actually the init script, that got installed with the openssh-server package is somehow flawed:

$ sudo /etc/init.d/ssh # it crashes and core dumps (almost)

So I have to run this instead for being able to access my EEE from my network:

$ sudo /usr/sbin/sshd

I certainly also installed GNU emacs, but I did so using one of the package managers.

I tried the descriptions for using bluetooth, and it looks like it works, but when I tried to connect to the Internet via bluetooth and one of my UMTS phones as modem, it didn't work. But I successfully connected to the Internet, when I USB-wired that UMTS phone to the EEE.

The EEE-PC seriously comes with an up-to-date and updatable Firefox, and I installed Adblock Plus (and its most important filter subscriptions, so all the obnoxious ads stay away from my screen), Sage (my RSS reader), and GMarks (so I can access Google bookmarks).

Initially the Music Manager refused to play my MP3-s, but I installed a few MP3-related packages through synaptic and everything was fine. Now I can play my MP3-s (that reside on a fat USB disk attached to my Linux NEO box) through my home WLAN, and I overly enjoy it.

Of course I switched to the Full Desktop aka Advanced Mode in the meantime.

I followed the Multiuser mode HOWTO, and now I have to login before X starts up, and user is not the only user any longer.

Thursday, January 24, 2008

my router, my phones, ...

My router is not just a router. To the inside world it lets me also attach phones and esp. also DECT wireless phones. To the outside world it connect also to my SIP (VoIP) account and the telephone network. I registered all my DECT wireless phones to my router, and I got rid of all the wired phones. Just my fax stays connected to my router, so I can send out faxes once in a while. Incoming faxes get converted to PDF by some provider. My current router, that can do all that and much more, is a FRITZ!Box 7270.

Monday, January 21, 2008

"accesskeys" with Firefox

Q: Did you know, how to make use of what gets defined in HTML through the accesskey attribute of the a tag?
A: You have to press some Modifier + the defined accesskey.
All the HTML generated from my DocBook files defines access keys for navigating to the statically previous and next page, the home page, and to climb up the tree.
For the Firefox on openSUSE Linux the Modifier is Alt+Shift,
for the Firefox on OS X Snow Leopard the Modifier is simply Ctrl,
for Google Chrome on OS X Snow Leopard the Modifier is Ctrl+Alt.

Friday, January 18, 2008

my favourite RSS reader: SAGE within Firefox

I remember, I haven't told you yet, how I read my RSS subscriptions. I am using SAGE.
It has an XML based exchange format called OPML, which is actually just a format for listing outlines of books, articles, whatever, and apart from the SAGE aspect: I love to edit OPML in emacs's nxml mode. Let me know, if you are interested in the RELAX NG grammar, that I created for that purpose.
The major advantage of being integrated into a web browser is, that the RSS subscriptions come as a standard live bookmark tree and URLs are opened nicely in web browser tabs. Of course, all the articles you already visited are displayed no longer in bold, so you won't revisit them unknowingly.

Thursday, January 17, 2008

re-factoring, re-organising, ...

O, I enjoyed re-organising my blogs (adding a few details here and there), modifying my computer home directory tree structure, moving a few files from here to there ...

emacs, version control, ...

I doubt it, that any other editor resp. IDE software is able to hold a candle to GNU emacs with its plugged in version control access to subversion, RCS, and CVS. Once again I can just shout out to the world: I love emacs. Where would my productivity be without emacs? I almost never need to use my mouse to do anything within emacs. (Alright, once in a while I use the emacs GUI menu to remind me of the appropriate shortcut ...) My hands can keep, where they can achieve the most: on the keyboard.

Monday, January 14, 2008

Hackers's dictionary aka the Jargon File abandoned

Looks like the Jargon File got abandoned by Eric S. Raymond. It hasn't been updated during the last couple of years. I offered Eric to invest time and energy, but I got no answer back.

Update 2012-12-25:

I once owned a printed copy of this book, but it was one of the many victims of various accidents inside my traveling luggage (and also at home) through the years: water, beer, wine, fruits, …

Pls visit "The Jargon File" resp. "The New Hacker's Dictionary" [link]!

Saturday, January 5, 2008

my latest ruby mp3 utlity

I purchased recently a couple of MP3 CD-s, and some of them did not contain the ID3 tag tracknum, and obviously some software depends on that tag for presenting the pieces in the right order.
I started writing a utility in perl, but the library I made use of was hopelessly outdated and only dealt with IDv1.
My current approach is a utility in ruby making use of the ruby gem mp3info, that this article is linked to.
In the middle of this tiny project I came to a few important conclusions.
This is the most important one: My MP3 files are named just after their track numbers. That makes life incredibly easy, if it comes to weird characters of whatever origin.
How did I copy the MP3 files from the CD-ROM to my hard disk? Coyping under Linux did not work out, as some files on the CD-ROM just did not get listed, presumably because of their weird names. Copying let's say 100 or 200 files from a Windows computer over the network to a Samba server always stalls and breaks somewhere in the middle. So I decided to always start copying under Linux, find out the gaps using a script, and then copy the missing files using the Windows computer.

Friday, January 4, 2008

started reading "Design Patterns in Ruby"

Almost the first thing I did with this book was to create an OPML file (outline a la XML). If you want to use that OPML file, let me know!
I contribute to the book's errata web page, and I get mentioned there.
To be continued.

Thursday, January 3, 2008

what's going wrong in the rails community?

I came across that article by Gregory Brown, reviewing Zed Shaw's article. Sounds like real life: Grown up software developers not liking each others ...

Wednesday, January 2, 2008

emacs and subversion

In order to do some subversion work from within emacs, find and load psvn.el, and then start svn-status on an emacs command line. I love it.

my own subversion repositories "out there"

Created my 1st subversion on my web space using the svn+ssh protocol along the lines of the PragProg book. I used this scheme, because I could get started w/o any admin intervention. It also behaves fairly safe.
Alright, something on the background: My web space provider gives me UNIX shell access via ssh.

The svnadmin create ... got executed locally on the machine, where the repository lives, afterwards I followed chapter 5 accessing a repository, section on svn+ssh, you find a free extract of that book here.

Because of the ssh detail there is a tiny obstacle to overcome, until I will be able to share this repository with co-workers.

My ISP employs somebody incredibly helpful to me, and that guy actually managed to run another svnserver, just dedicated to me, fully configurable by myself, on a fixed port. I am overwhelmed.

Q: What do I pay them for that service?
A: They regard it as included in my package.