Older blog entries for Stevey (starting at number 85)

GNUMP3d

 Things have been progressing nicely with the project, it's been recoded entirely in perl now, which has resulted in some speedups, and some slowdowns.

 Given than the server is usually Network/IO bound it's not had a massive effect, so I feel the decision to change was justified. (It runs under windows too now!)

 I discovered via a random email that the program/project had recieved a namecheck in the German Linux User magazine. Unfortunately I cannot find any mention of this upon the website, and I don't know anybody in Germany who could provide a synopsis of it's mention.

 It's almost time for a new release.. :)

Debian

 I love the 'apt-listchanges' package, and spent a while trying to see if there was a simple way to code something similar 'apt-warn-setuid'.

 The idea is that after a package is installed it would warn you if any setgid/setuid binaries had been installed.

 To be honest I'm not sure of the value, but it did strike me as an interesting thing to have for a day or two. I was too busy at work to do anything with the idea though..

Work

 I setup Netsaint at work - to monitor all of our servers. (Yes I realise it's called Nagious now; but the Debian package is still named Netsaint).

 It's a lovely piece of software, but it can be a little bit intimidating to setup for the first time.

 One thing I'm having problems with is false warnings - especially with the ping test.

 Quite often I've received emails of the form:

Machine FOO is WARNING: Ping package loss 0.0% Time 17.0ms

 So .. no packet loss, and an acceptible ping time - why's that a warning? I'm confused by this at the moment; I'll have to read more of the, comprehensive, documentation I guess.

Jabber

 Many months ago I flirted quite heavily with Jabber, the open messaging system. I looked over the code to several clients, and the server 'jabberd'.

 At the time I was looking at replacing our companies reliance upon ICQ with an internal chatting system which would be more secure, and under our control.

 Setting up the internal testing server was fairly trivial, so much so that that test server became a live server in a matter of days.

 I spent a while writing maintainance scripts to automatically manage contacts - and then stopped touching it.

 Last week I received an e-mail from somebody who had spotted my old conversation logging patch. He wanted me to update it, tidy it up, and release it to him.

 Over the course of a couple of days worth of email exchanges I did that - and just found out that he's purchased a copy of the printed version of Open Source Development With CVS book from my wishlist.

 The Jabber patch will be released to the world once I've tidied it up some more.

Debian

 I've been doing a lot more Debian work recently, packaging up several small utility scripts into my own apt-get'able repository.

 In addition to that I've sorted out my Debian GPG key - adding identities to it, so that I can manage my debian duties more easily. (This mostly means that the 'skx @debian .org' address is being used for all the mailing lists, etc).

 I often feel that using GPG/PGP is akin to working magic. Theoretically I understand what is going on, but the details escape me.

 Editting keys, marking relationships as trusted, etc, are all scary counter-intuitive options.

 Maybe it's just me ...

Life

 I'm tidying my flat, in Edinburgh, in preparation to sell it and move to a bigger place.

 The valuations I have had performed suggest I'm gonna make a killing on the price I paid for the place ~3 years ago.

 Unfortunately the price rises have been pretty uniform throughout the city .. so I'm going to have to move further out to afford a decent sized place.

 The move is basically been prompted by my desire to get a big dog, (alsation/golden labrador/etc), now that my Tigger passed away.

 It might seem like overkill to move house to get a new pet - but the place would be a little too small for even a young dog, and I"d feel too guilty leaving for work in the morning...

<hr width="50%">

 Now .. I wonder what peoples reactions when they see a heavily pierced, skinhead bloke walking down the street with an Alsation! Probably not the reaction I'd like to see. *shrugs*

Christmas

 Merry Christmas for those of you who celebrate it.

 I've only been awake for a couple of hours after a late night writing a Debian security notification script - this is working well, but it still needs some more work. (I'd like the package to automatically setup a cron job to make sure the thing runs properly)

Documentation

 I did a good deed for the day today, I went round and wrote manpages for all the random scripts and programs I've put together, and installed upon the machines I maintain.

 Most of these are very trivial, for example a script which is called hourly via a crontab called 'checkDiskSpace'. (See if you can guess what it does!)

 This is something that I've been meaning to do for a while, partly to help any successor who might inherit the machines (hopefully in the distant future), and partly to make it obvious that I'm caring about the state of "my" machines

Trivial Scripts

 Talking of trivial scripts, I put together a simple script, locations, to report on where users login to machines from - this is quite interesting.

 I added it to the crontab for our VPN server, and now if a user connects from more than five distinct machines a month I'll get an email. Likely it will be a false alarm, but it could be indicative of an account compromise.

 To continue my good work this has a manpage, and a Debian package!

RFC's

 Random question for the day - how do RFC's become "official"?

 I've been working on a TCP related RFC for the past few months, which I expect to be ready sometime towards the end of March.

 I'm posting it to gain feedback, and to promote discussion which is what RFC's are for - in my understanding.

 One thing that I'm unclear on is where to post the RFC when it is done, to make sure that it enters all the relevent archives, gets seen by the relevent parties, etc.

Back

 I'm now back from London and relaxing at home.

 Even though I'm on holiday I've still managed to answer at least two work-related emails every day this week. I guess they need me :)

 London was nice, actually London was as ugly as I remembered it, noisy, dirty, and confusing. What was actually nice was seeing people that I'd missed for the past year or so.

 The most touristy thing I did this trip was go round a few phone boxes and take down the prostitute advertising cards - that was fun; I have a plan to decorate my bathroom by mounting these behind some clear plastic.

Coding

 I've been doing more GNUMP3d2 coding in Perl. The only stumbling block I have at the moment is sharing data between fork()'d children using shared memory. Once that's resolved, and I have a good plugin system we'll be ready to release.

 On top of that I realised I could add support for streaming movies as well as audio - so I added support for streaming MPEG's in a couple of minutes. That was nice.

Holiday

 I've managed to get next week off work - so I'm going down to visit some friends in London that I've not seen for a long time.

 This is my first time off for six months, so I'm looking forward to it enormously.

Code

 The perl re-write of gnump3d is progressing well. I have a decent CVS tree which is installable, and working.

 Some bits of existing functionality have regressed as part of the re-write, but other stuff is new and funky - for example it's now possible to search the music archive by genre, which is nice.

 When I get back from London I'll bundle up a release, and create a "version 2" entry in the freshmeat project.

GNUMP3d

&nbsp:I should have known better than to believe that making the v1.0-final release of my MP3/Ogg streaming software would finish it.

 I've been inundated with mail asking for new features, or help installing it.

 Still, there have been some interesting suggestions - so I've started planning version 2.x

 After plotting out some of the features I wanted I started writing some throwaway code. After two nights of hacking I have a working forking MP3/Ogg Vorbis streaming server written entirely in Perl.

 I was originally planning to use this as a framework to test some of the database ideas I had, and some other things - but I'm getting strongly tempted to make the next version Perl, rather than C++.

 I know the performance wouldn't be as good - but it's really a program bounded by network speed more than anything else, so that's largely irrelevent.

 It's kind of ironic that I've almost gone full circle with this!

 (The code is linked to from the planning page above - though it currently requires the real gnump3d to be installed to get the template files ...)

GStreamer

 After getting a nice email I've been prompted to look at gstreamer. It's very, very nice.

 I will have a look at fitting in MP3 streaming somewhere .. next week. (I've got a week off. My first time off for six months!)

GNUMP3d

 A month later than I wanted but there's now a perfectly formed release of The GNU MP3/OGG Streaming Server.

 As I was making this release I had to spend a little while restoring the Discussion Forums from a backup - it seems that the phpbb software has had a couple of security problems recently.

 I'm not sure how long my board was affected for, probably no more than a day or two but it's still a little nausiating.

 (I remember reading one post to bugtraq about it; at which point I limited access to the admin interface to my home+work IP addresses; obviously this wasn't enough).

Bookmarks

 Because Mozilla still doesn't support roaming profiles I've ended up with a couple of machines all having wildly different bookmark collections.

 Needless to say this is a bad thing, and makes me very irritated on a regular basis.

 So I spent 30 minutes yesterday writing a little Perl script to merge multiple Netscape/Mozilla bookmark collections together.

 It's a complete hack, but it works in a sufficiently roundabout way that I'm fairly proud of it!

Merging Bookmarks

 I thought it would be trivial to parse the bookmarks from one `bookmarks.html` file into a tree structure, then parse a second file; walking down the tree to spot nodes or leaves in common and adding them to a third tree - which could then be written out to disk.

 But when I actually came to code it I realised that I could cheat as I already had written a program to convert between Internet Explorer Favourites and bookmark files a few years ago. (See if you can spot where this is going!)

 So .. my new script simple reads in each bookmark file, converts it to IE favourite files in a temporary directory, (not caring if the files already exist; which handles duplicate subtrees or entries), then after that converts the collection of .url files back into a bookmark file.

 Roundabout .. but kinda cool

 I'll tidy it up and stick it online later today if I get the chance..

76 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!