Posts

  • Automatic backups to remote machine

    Update: SSH public key authentication isn't supported on the system I want to backup to, so I've changed the procedure to create a cron job on the server instead of the client.

  • BASH / Bourne Shell which outputs its own documentation

    I love Python docstrings - It's a great application of the DRY principle. The excellent Advanced Bash-Scripting Guide has an example which does something similar, but it embeds the documentation in a variable in the middle of the code. This makes it less readable and findable than ordinary comments, and leads to duplication if you want to have the same documentation as a comment for other developers. Here's a very simple solution, which I'm sure can be improved to fit your documentation style. It simply prints all non-empty lines from the start of the file:

  • BASH prompt galore

    Here's the latest result of trying to make a BASH prompt which might be useful if you use chroot, ssh, su or git:

  • The difficulty of bug reporting

    This can be pretty hard: Say the GNOME screensaver password prompt sometimes won't accept your password, no matter how many times you try. How do you check that you haven't mixed up your password with one of the other 500 that you have to remember if you're not using a password bookmarklet or a password manager or you change passwords every month (You do use different passwords, don't you?)? How do you make sure that you're typing all those special characters right, especially since you're using multiple keyboard layouts? Does the "Leave a message" function show you the same string that would be sent to the password checking routine? Is it possible that any other software is at fault, mangling or interrupting your input? How do you even find out which software you're typing the password in? Could a buggy keylogger be involved? Is there any debugging output, and where can you find it? Is Caps Lock or Num Lock on (EEE laptops don't have those handy LEDs)? Are encodings in any way involved? Where should the bug be reported? Should I ask in the official mailing list before submitting one? If so, what's the address and do I have to be a member to post? Is there some alternative forum which is more used? Is the list even active anymore? The bug is still marked as unconfirmed (although I've had to killall gnome-screensaver for months), so I guess we'll have to see...

  • Software bloat can be a good thing

    Remember Mozilla? Not the foundation, but the browser + news reader + email client + kitchen sink that spawned Firefox, the lean and mean browser accused of arriving at just the same kitchen sink stage while taking over the world. I think there's at least one (maybe more) very important software development lessons to be learned here:

  • Overselling Linux

    Shortly after starting college I heard about the wonderful strategy / ideology of open source (hey, I'm from the sticks, OK?). As I recall, I'd never seen a machine running GNU/Linux before. Being an over-the-top Windows tweaker (Windows 98 broke completely about every two weeks), all that control sounded like gravy to a fat f***.

  • How to teach users the command line

    Now that computers are firmly in the hands of casual users, is there some way to teach them how to use the command line without throwing them head first into grep? Of course, anyone with the time and inclination (and someone to contact when they get stuck) can learn to use the shell. Also, of course, there's an entire spectrum from those who would never touch a mouse to those who would never touch the keyboard if they could avoid it, so there must be room for shifting the bar to entry.

  • vCard 3.0 validator and parser

    Did you know that even the vCards listed in the official RFC are not valid? It clearly says The vCard object MUST contain the FN, N and VERSION types. Still, the example vCards are both clearly missing the N type. As somebody else remarked, releasing a format spec without some reference validator is bound to result in all sorts of invalid implementations.

  • Recursive unRAR and delete

    Just a continuation of a script mentioned at LinuxQuestions, to extract RAR archives in their respective directories in a directory tree. An additional option is available to delete the archive files after finishing extraction.

  • Sort blocks of text in files

    Ever had to sort a file alphabetically, only to realize that you'd have to do it manually because every item that needs to be sorted is spread over more than one line? This just happened when I exported my Gmail contacts to vCard, which it turned out were sorted by formatted name (FN) instead of name (N). The result was the following script, which takes two pattern and some input, and returns the sorted output. The example returned by ./sort_blocks.py --help is exactly the code to re-sort Gmail contacts. I'd love to know if you find any bugs or possible improvements to this script. Enjoy: