2008-07-14

Missing Sound in Firefox?

In Ubuntu 8.04 I recently discovered that you need to install the libflashsupport package if you get no sound in Firefox while running flash application/video. Oddly enough this is not a "required" or "supported" package in Ubuntu proper.

Posted 10:30 by Joachim Nilsson under [/debian]

2008-07-13

Regexp replace in many files

I just have to blog about this exceptional tool I just found. It is called regexxer and is a tool in the true UNIX spirit — it does one job only, and does it well.

Posted 21:38 by Joachim Nilsson under [/unix]

2008-06-09

Minix editline v0.2.1

The v0.2.0 version included some Debian patches, tcgetattr() and a batch mode (when reading from file) line reader. This release fixes a bug in the Debian patch that caused the batch mode version of readline() to actually truncate lines longer than 64 chars.

Get it from the usual FTP location:

Posted 23:02 by Joachim Nilsson under [/hacks]

Minix editline v0.1.4

Another day another release, I guess. :-)

Lots of small fixes -- it can now be cross-built for Arm (Xscale) without any serious warnings. Get it from the usual FTP location:

Posted 00:49 by Joachim Nilsson under [/hacks]

2008-06-08

Minix editline v0.1.1

Hot on the heels of the first one, only minor build fixes but this one should actually be usable by others. Now installs both library, include file and man page into the given --prefix.

Posted 00:56 by Joachim Nilsson under [/hacks]

2008-06-07

Minix editline v0.1.0

I've been looking long and hard for a small and useful GNU readline replacement. Oddly enough, all the time I was looking for one I never even once considered looking at the Minix sources!

Currently I'm using the NetBSD (readline compatible) editline derivative from Jess Thrysoee, but it requires ncurses, which is huge!

All I really wanted was a bare bones readline() suitable for small embedded systems. One which could record history and preferably, but not required to, support completion.

OK, so yesterday I found the Minix editline implementation, written years ago by Simmule Turner and Rich Salz. My hat is off to you guys, you rock!

Here's my first packaged version for Linux:

All I have done, so far, is to move around the files a bit and add the standard GNU configure and build system. (Intro here). It now builds and runs perfectly on my laptop, next step is to cross-build it for a couple of embedded ARM targets.

I do all development using GNU Bazaar. If you want to join in, then branch from the following public URL:

Patches and ideas are welcome!

Posted 21:45 by Joachim Nilsson under [/hacks]

2008-02-24

Enterprise Emacs

Many years ago I discovered the beauty in a beast called Emacs. I am actually a frequent user of both Emacs and VIM, but I firmly belive in the notion of learning one editor well. It took me several years to get to know it well, but it was all worth it!

This is the first tale in a series of entries about my thoughts and ideas about something I would like to call Enterprise Emacs. Enterprise? Yes, everything these days is enterprise this and enterprise that, stick some glue on it and you are enterprise ready! Let me give you some glue...

At many jobs I have had people have looked over my shoulder and said; "Oh, Emacs. Yeah I used that ages ago when I was working on UNIX, is it still C-x M-v...?". Of course, I say, because it still is. They usually continue; "Well, I left it because it was too hard to use...".

Until now I have not really had a good reply — because I understand these people. Emacs can be really counter intuitive and an outright pain in the **** to use. That is my gripe and I will use this blog to present the small things I have done to make Emacs more user friendly.

I find it a shame that still today, after so many decades (literally!) there are no sane defaults setup — I have seen something in Win32-Emacs that resembled what I would like to have — a sort of use cases possible to chose from. Why not have that on the GNU/Linux versions as well?

OK, so what is it that I want by default? Well, to me it is, at the very least, the following really obvious things:

Most of these settings today have a graphical menu called "Options", where you can actually click and save. So those tiny things are fixed in the latest Emacs versions. Wow...

In the coming months I will present some useful tips from my bag of tricks. Including, but not limited to:

Plus the usual Emacs features that users of Microsoft products may not have ever known. To mention a few: complete indentation engine, with several predefined indentation modes. Built-in calculator (converts between bases!)

The first tip is Emacs-23 with, grab on to something, font anti-aliasing! Yes, it's still an experimental feature, and if you did not already know this, "experimental" in free/open source is often quite stable. I have used it daily for >6 months and it has crashed on me only once.

Start off by installing it and discover the Options menu. Then return to this blog and I will have the next installment ready.

Posted 10:59 by Joachim Nilsson under [/emacs]

2008-02-23

Suspend/Resume Nightmare on Ubuntu

I've had my ThinkPad T43 for a while now and I'm really pleased with it, everything just works! It took some pleading and, I admit, begging to persuade my boss and the IT department to buy it since they usually only buy from Dell or HP. This was mainly due to care packs and payment plans that these suppliers offer companies. My ThinkPad they had to actually pay for straight up. So if I were a Lenovo sales person, that was something I would fix to boost my sales.

This post is however not about sales, brands of laptops or how the cat ate my homework ... well, OK, almost. Ubuntu/Gnome ate my resume!

When I initially installed the laptop, early 2006, I went with Ubuntu 5.10. Ubuntu is great Linux dist! Ubuntu is to Debian what Mandrake was to RedHat in the beginning: RedHat + all the tweaks you usually had to apply.

I remember the first install, it was a Breeze! All features and extras of the laptop was of course not working so after some digging I found a few pages detailing what to do to get things like susped, hibernate and such working. A couple of hours later everything was working! Cool, that had to be the first computer where I actually bothered setting it all up.

Now, two years later I run 7.10 and I am less than happy. All upgrades have made this laptop a complete mess. Each upgrade has failed to integrate the necessary changes I made and simply installed the new default settings from each package. OK, I can live with that. But I was starting to really miss having no suspend, so the last four months I have been working on fixing it all again.

It turns out that if I run the script /etc/acpi/suspend.sh manually from the prompt suspend and resume works fine, even with X. But when I press Fn-F4 from within X or select "Suspend" from the Gnome "logout" menu the machine happily goes to sleep but always fails at resume. I always get a black screen!

Why is it so complicated? I really don't understand. What is it doing?

OK, so I started digging. The Fn-F4 button didn't work in the console so that seemed like a first thing to investigate. I started acpi_listen and pressed Fn-F4, bingo! It returned a key press. A grep later and I had found it in /etc/acpi/events/ibm-sleepbtn, alright! Simple syntax, seems it looks for the ThinkPad sleep button and then sends another new combination $KEY_SLEEP, wtf?

I changed the action to call /etc/acpi/sleep.sh, restarted the ACPI stuff and, yes it works! At least from the console, not from X/Gnome. Aha, so we have a Gnome app that does magic things, HAL + gnome-power-manager.

I didn't get any further. Removing gnome-power-manager fixed my problem, I can now press Fn-F4 from Gnome, close the lid, come back the next morning and sucessfully resume when opening the lid again.

So, the question is, wtf is gnome-power-manager doing and why do I have to learn this stuff all over again every time I upgrade?

Posted 21:34 by Joachim Nilsson under [/gnome]

2007-07-31

Bzrweb 0.1.2 Released

The end of my own "summer of code" is here. Seriously, this summer I took it upon myself to clean up my act and move whole heartedly to the Bazaar version control system for my private projects. Needless to say, I didn't get far.

Being quite lazy I haven't upgraded this server yet to the latest shiny Debian 4.0. This made it a bit hard to setup the new shiny Loggerhead web gui (see it in action here) for Bazaar -- so instead I started fixing up the old bzrweb that I already had setup a few years ago.

I'm new to Python, but, as I said, I'm quite lazy and Python seemed to suit me perfectly. Whipping up Bzrweb to support the bzr 0.15 I had on my laptop (Ubuntu 7.04) was just enough to fiddle with in the warm summer evenings of my vacation. Now I find myself really enjoying Python. :-)

So I decided to try and take up maintainership of Bzrweb. I like it for its simplicity and small list of dependencies (only Python 2.4). Which is something I will honor and continue to evolve.

Oh well, here it is:

No GPG signing yet, I've yet to figure out how GPG works, again.

Bug reports can be sent to me directly, see my address in the tarball or online.

Posted 23:33 by Joachim Nilsson under [/hacks]

2007-07-12

Netapplet Patchwork

I think I've finally done it -- achieved my ultimate goal of combining the awesome powers of the Debian /etc/network/interfaces file with guessnet, wpa_supplicant, ifplugd and now also with netapplet!

I've been looking for a way to just point-and-click to select a different access point, both at home and at work. To that end I have a pretty advanced interfaces file that automatically detects where I am, what I am connected with (cable/wireless) and then, like magic, sets it all up.

Several times now I have tried, really hard, to get used to and live my life with Network Manager, but it's just plain impossible. It still doesn't integrate well with Debian ifupdown et consortes and until now I've been using ifup to select different wireless mappings:

$ sudo ifdown eth2; sudo ifup eth2=WLAN
Password: ***********
[Use crappy work AP to access VPN tunnel]
$ sudo ifdown eth2; sudo ifup eth2=NETLET
Password: ***********
[Use family WRT54GL access point]

For the last couple of days I've been looking into getting the old (obsoleted?) Netapplet from Novell. Since I'm a Ubuntu user I'm using the Debian patched-up version by Matthew Garrett (thanks!). I remember using it a couple of years back, at that time I think it worked but now it didn't -- not well at least. I found several bugs and quirks that I have now fixed and published in my own "repository".

I have published everything as a Bazaar branch, using one changeset per patch (small patches), at http://vmlinux.org/jocke/bzr/netapplet-1.0.8, which can be viewed here using bzrweb.

Posted 11:37 by Joachim Nilsson under [/debian]