Search Results: "reg"

5 January 2006

Matthew Palmer: Music To Hack To?

Ever since I got my portable ogg player a few months ago, I've been listening to music on a fairly regular basis, particularly when working on my computer (read: programming, mostly). I've noticed that what music happens to be penetrating my skull has a bit of an effect on my coding -- both from a productivity point-of-view (ever so slightly), but more interestingly, from an enjoyment point of view -- some songs just feel like they go well with cutting code, so I enjoy both the music and the coding more than I do normally. My personal favourites have been songs like Meatloaf's Bat Out of Hell, Robbie Williams' Let Me Entertain You, and several tracks off Evanescence's album Fallen. (On the Evanescence point, when my wife first bought Fallen and played it, about 10 bars into the first track, I said "now that is music to hack to" -- interesting how I got that feel so quickly). The common factor that I can identify there is that they're all powerful tracks, with a strong, driving rhythm and a feeling of speed. They also all sound good really, really, loud (much to my wife's displeasure). So, in the interests of scientific discovery, I'd like to know what other people like to listen to when they're writing their stuff. Both from a point of view of "what else can I stock my iRiver with to encourage my coding", and also to see if people's tastes in Music To Hack To is universal, or a personal thing. E-mail your thoughts to mtht@hezmatt.org, or if your blog is syndicated on Planets Debian, Ubuntu, SLUG, or Linux Australia, Just Blog About It and I'll pick it up. Summaries to follow.

Tollef Fog Heen: Abusing usplash

Last night, I ended up hacking on the usplash and casper codebases until about 0500 (local time) in the morning (mostly due to the developer status meeting at 0200 UTC). usplash had a fairly icky bug where it would choke and die if the fifo filled up and it got "incomplete" commands. No longer, it now uses a buffer which it fills up and then processes, handling partial commands and such correctly. casper-md5check is a tool which does md5summing according to a list of files, similar to the regular md5sum program, but with one notable exception: it does progress information through usplash. So, since the live CD has a huge file which is the compressed live file system, just doing a per-file progress bar would be silly and inaccurate. It therefore does a size-based progress bar which looks quite neat. If the debian-cd config has already been updated, just pulling down today's daily cd and choosing "integrity check" should show you the nice little hack.

Anthony Towns: Clint throws down

A friend o’ ne’er do wells,
Got flashbacks to a time in the car;
This master of izzard shells,
Was headed for dinner, huzzah! In a car with those friends did he sit,
Seeking something to consume.
Through the streets of San Fran’ do they flit,
Hunting the sacred legume. But out the car leapt the driver,
And sprints to a restaurant he spies,
Like something out of survivor,
This teamwork, from lord of the flies. For a passenger took up the wheel,
Drove round the corner and carefully parked.
The ending we’re about to reveal,
It simply cannot be left unremarked. The story continues to run,
But the details have to be missed.
Suffice to say, when the regrouping was done,
There was but one tiny twist: They continued their searching for food,
Leaving the rendezvous quiet and still.
Surely they must be unglued,
Walking away from the Earthly Grill? All in all it comes to one fact,
After making that claim on your blog.
Your challenge you’ll have to retract,
Coz to this lyrical prince, you’re a frog.

3 January 2006

Simon Richter: The hype

My expectations for Web 2.0 include standards for aggregating not only blog posts, but also calendar data and tracker items. I'd like to be able to subscribe my todo list manager to the list of bugs against my packages or tell the BTS that it should synchronise a bug with the upstream BTS. What needs to be solved first is the synchronisation problem: every so often, planet gets flooded with old posts. The current approach of assigning unique ids to items does not help much as either unchanged items need to be reloaded on each update or changed items that kept their id go unnoticed, and hell breaks loose when items get new ids.

Jacobo Tarrío Barreiro: Hacking on my own

Four years ago I started translating the Mozilla suite into Galician, and from that point on I managed to keep the translation completely up-to-date, even being one of the fastest ones to create translations (when Mozilla 1.0 was released, three translations for it were released at the same time: Chinese, Asturian and Galician), and later expanding my efforts into Firefox and Thunderbird. However, after two years, things started to go wrong: support for translations was starting to fail without warning, there were some undocumented changes to the language pack format and there was a movement to integrate translations officially into the Mozilla organization that would make it extremely inconvenient for me to go on working in Mozilla, so in July 2004 I resigned from the effort and stopped updating the translations. Well, it was not exactly a thing of “oh, now it is not worth the effort", but “those SOBs are taking all my past hard work down the crapper and they were supposed to stop updating the suite so why are they releasing a fucking new version?". And also “I’m here translating this shit and nobody appreciates it so fuck it all” Much angst and stuff, and I not only stopped with Mozilla: I stopped translating pretty much anything else and almost vowed not to translate again. And I made the T-shirt and all (some of you saw it in DebConf 5). During the Christmas break I didn’t have much to do, and it had been very long since I had last programmed for pleasure, so I decided to create a set of scripts for converting Mozilla XPI language packs into a huge PO file and back (days later I was told about translation-tools, but I was in the mood to hack and it worked with a lot of small PO files, which I didn’t want). Then, I imported my old Firefox 0.8 translation, created a POT for 1.0.7 and updated the translation. I may well start making Galician Firefox translations again – but unofficially. There’s already an official Galician team, which intended to start after my resignation but is, apparently, stuck in bureaucratland. Also, some horror stories I’ve heard about make me want not to work officially with Mozilla. Plus, some of the things that made me angry back in the days are still there. For example, the documents about translating Mozilla all newbies are referred to are badly outdated. And there are no new, unified documents. But I intend to take it easy. I will not invest emotionally on this again, because I don’t want to go back to spending a couple of months playing Frozen Bubble while I think bad thoughts about Mozilla developers. Anyway, I’m moderately happy now. I’ve hacked on my own, for pleasure, for the first time in months; I achieved a goal and I’m slowly regaining my motivation to do other stuff. I hope. That was all.

2 January 2006

David Welton: Computer Books, Hecl, Skype

Henri Yandell comments on Addison Wesley being prominent in his book list. I noticed the same thing myself recently (my list is on this page, towards the bottom: http://www.dedasys.com/freesoftware). Perhaps the surpise is that O'Reilly is less prominent than one might think given their high visibility in the portion of the tech world that I deal with. O'Reilly, however, tends more towards documenting current technology well rather than having many books that are timeless classics. I hope they keep focusing on putting out good books that do at least that rather than trying to create their own trends like "Web 2.0" (bleagh!). In any case, we'll have to wait a while to see if any of their books stand the test of time - a lot of the Addison Wesley and Prentice Hall books are from ten, fifteen, years ago or more (The C Programming Language, Knuth's books, Design Patterns, etc...). Hecl I'm currently working on making it very easy to write and create Hecl applications for J2ME. I'm pleased with how things are going from the community point of view as well - a couple of people have show interest in using Hecl commercially, and I've been asked to write an article about it for a European Linux/software magazine, which is something I'd started doing anyway... Skype My parents got around to installing Skype and buying a microphone. Free voice calls from Italy to Oregon! The quality is really good, although there are some echo issues that probably come from my use of a cheap microphone. It sort of bugs me to buy into the network effects of a proprietary system, but on the other hand, anything that keeps my money out of the hands of Telecom Italia makes me happy.

Andrew Pollock: [life/americania] On bootstrapping oneself in the US

So I've been in the US for just over six weeks now, and I thought I'd reflect on the trials and tribulations of bootstrapping oneself in a foreign country. The Social Security Number is the primary key from hell I already had a fair idea of the importance of obtaining a Social Security Number (SSN). So much so, that after dumping our luggage at our temporary accommodation, the Social Security Administration office was the first place Michael and I went to, so we could lodge applications. We subsequently learned from another Australian who was about two weeks ahead of us, that you're apparently supposed to wait ten working days before lodging the application, to allow your immigration records to percolate through the bureaucracy that is the US Government. Our applications were duly accepted without any mention of waiting a bit, but we were sent away with a letter and a tracking number, saying that the SSA had to verify our existence with Immigration (this is despite the fact that we're standing in front of them with a passport with an I-94 stapled in it) and that it would take up to four weeks. So it's been six weeks, and still no sign of an SSN. Enquiries with the office are met with the same response - waiting on information back from Immigration. Apparently it can take up to three months. It's a real shame you can't start the application process when your visa is granted or something, as in order to apply, you need to quote your "alien registration number" (I still chuckle at how the US Government refers to me as an "alien" in all their paperwork), which is the number on your I-94, which you only get when you enter the country. So, whilst the SSN application remains pending, I cannot be paid, I cannot have my health insurance paperwork lodged by my employer, and whilst I'll be covered for health insurance retrospectively, I'm not technically covered right now, if I were to require medical treatment. Going back to how the SSN is the primary key of All Things... Next step is to open a bank account. We chose Citibank, because I've been told it's slightly easier to import money back into Australia with them. Fortunately we were able to open an account sans SSN, but it's called an "NRA account" (NRA standing for Non-resident Alien). We were told that we were only eligible for an ATM card until I had an SSN, yet they mailed me out a debit card about a week after we opened the account, and happily ordered one for Sarah, and a cheque book when we asked after opening the account. About the only thing it seems we can't do at the moment is transfer money back to Australia. No big deal, it's all coming the other way until I can get paid... Driver's licence requires an SSN ideally, so that's out of the question for the time being... Electricity, telephone and cable were all able to be provisioned with an SSN, although I think for credit-rating purposes, again, it is the primary key. We had to pay a deposit for the electricity, which is fair enough. The lady I spoke to on the phone when I got it connected said that they just treated us aliens like teenagers straight out of home with no credit history. I don't have a problem with that. It's just a shame that you can't import your credit history. Getting a cell phone account appears to be nigh on impossible with an SSN though. It was a battle just to get a prepaid SIM card for Sarah's phone, and this makes a great story of how much hoop-jumping is required. We walked up to a Cingular stand in a shopping mall to see what we could and couldn't do. I explained our situation (lack of SSN, lack of credit history, etc etc) to the sales droid, and he assured us it wasn't a problem to get a prepaid SIM card. He proceeded to take about 30 minutes to organise the SIM card. I watched as he entered a dummy SSN into the computer, and used his own driver's licence number. He was clearly battling the computer system to be able to do it. When we got home, and Sarah called up to try and put some credit on the phone with our Australian Visa card, she was told they only accepted credit cards with a US billing address. (So much for Visa being accepted worldwide). So we headed off again to Safeway to purchase a prepaid Mastercard. Funnily enough, when Sarah called up to activate that, she was initially asked for an SSN, so we almost had a dependency loop that we couldn't break, just to get a US cell phone. Fortunately they could cope with no SSN, so she successfully ended up with a prepaid Mastercard, with a US billing address, so she could put credit on her prepaid SIM. From what I can work out, a lot of the places that do request the SSN seem to using the last four digits as an authenticator, much like everyone just uses name and date of birth back in Australia, so I'm guessing for these organisations, I could probably just quote any old number that fit the pattern and they'd be happy. Just so long as they don't go trying to run a credit check against it... Foreign credit cards As I said earlier, a credit card with a non-US billing address is fine for most face-to-face purchases, but an amazing array of mostly telephone transactions will not accept them. Most notable was trying to add credit to a calling card for making international telephone calls. Couldn't be done. So it meant I had to forego any discounts or bonuses for topping up, and buy a whole new calling card. Car insurance and registration I'm not sure how this is going to go yet. Our Prius is supposed to be available around the 18th of January. I'm hoping I'll have my SSN by then, otherwise we'll have to import a heap of money to pay for it. I'm sure you can get insurance and own a car without an SSN, because you hear of people who do driving holidays across the US, buying a car on one coast, driving it cross-country, and then selling it. It might be more expensive, and I again, you can't import your driving/insurance history, so you have to start off at the bottom of the ladder again... In summary, I think you need to have relatively deep pockets to bootstrap yourself over here. You need to be able to function without getting paid for up to two or three months, and you need to understand that credit-wise and insurance-wise, you're going to be back at square-one again, irrespective of how good you might have been in your home country. The sooner you come to terms with these, and appreciate that you are moving to a foreign country, the sooner you can get on with enjoying the experience.

1 January 2006

Gergely Nagy: 2006

2006, what a lovely year! Not. I heard its a custom, that at the start of the new year, one looks back at the past one. So I did, and wasn't impressed at all. Mind you, the same happens each and every year, so it is no suprise, really. For the past year, I have been rather inactive, I should have gone on an extensive vacation from Debian a long time ago, around May, when I quit my last job. I intend to rectify that as soon as I manage to dig up my GPG key. Most of my packages will get officially orphaned too, as I lack the time and motivation to work on them - no news here, either, as this is the case since early last year. Lets see what I did on the free software front in the past year or two... One of my most succesfull projects was CCZE, a log colouriser. Needles to say, the idea is not mine. The crap implementation, the most messy and bad code I've ever written, is mine, though. It hasn't seen an update since I don't know when. Nor will it in the foreseeable future. The only thing that could help the codebase, is a rewrite, which I had been planning since 2003, and not a bit of code was committed ever. In the meantime, new programs appear, whose logs could be colourised, new demands arrive, but the project has been dead for good. Once, Thy was the software I was most proud of. I really loved it, and spent most of my time hacking on it. Those times are past, new, similar software appeared, that surpassed my beloved HTTP daemon in nearly every respect. I don't believe thy has any place among todays similar projects. This, I truly regret, I had great fun developing Thy. But as everything, even good things must come to an end. Back when I worked for a company that was into this media streaming business, I contributed a few bits and pieces to GStreamer, but all the "grand ideas" I had, and wished to make reality, never happened. Looking further back, I can't notice any significant contribution I made.. except maybe one, a very small one.. Even nowadays, I can't stop feeling a little proud, when it crosses my mind. Some may know, most probably don't, I acted as an application manager for Debian, and for a little while, I like to think I wasn't that bad at that job. For a little while... Anyway, during this, I had the pleasure to work with Daniel Stone. Heh, those were good times! I hope, that what we've done there, was of at least a bit useful. Meh, enough of this. My projects failed, I didn't have the neccessary resources to make some of my dreams come true. All I need now, is a break, a break so I will not feel bad about things I do not have time for. I'll let them go, as I should have done ages ago, that's best both for them, and me. Until a time I feel I can contribute back something, for all I received from the free software community, I'll take a vacation. From time to time, I'll be hanging around on IRC, but my activity will be as low as it was during the past year. Good bye, and thanks for all the fish! P.S.: Yamm, my over-sized tamagotchi expressed interest in maintaining me in Debian. If, by any chance, he'd take over my computer, and expressed his wish to run for DPL-ship, please, by all means, stop him. Thank you.

Aigars Mahinovs: Aggregation the G way. I've been using the magic o...

Aggregation the G way.
I've been using the magic of RSS (and Atom) to keep up with Planet Debian, blogs of my friends, tech news and posts to an anime fan forum for the past several months, however one little problem bothered me - the forum has a lot of posts (sometimes more then 5 per minute) and an RSS feed of only last five items. That means that I had to have my RSS aggregator (Liferea) open at all times, so that I do not miss any posts. However keeping my laptop on and online at all times is quite bothersome, so I started looking for solutions.
I tried Google Reader however I didn't like it much - I like to see more of my feed. There is too much screen space wasted for all the wrong reasons, one can only see 5 items at the time (which is quite a hassle if you have 500+ of them), a lot of info I would like to see is not there (which blog did this come from???), some strange html conversions, ...
Now I have found my solution. It is a combination of rss2email and GMail. I have a computer that I always keep on and online (it could be a server, but in my case it is a simple workstation). I installed rss2email there, added all my feeds to the database there (hint: export feedlist from Liferea and do a bit of grep/sed magic), moded config so that all mails come from a single address, all have a custom identifiable header and all are HTML mails without any transformations. After that I configured cron to launch "r2e run" every half an hour and "r2e run 22" every minute (where '22' is the id of the feed of that anime forum). At Gmail side I simply filtered all mails from rss2email into a separate label and archived them (so that they do not clutter my inbox).
Now when I want to reed my feeds, I go to the last message of the RSS label in my Gmail, open it, read it, star it if I need to look at it later and then press "k" to get to the newer message. After I am done reading I usually go and remove RSS label from read messages, so that they do not appear in this labels "folder" and are only saved in Archive. If I start running out of space, I will simply search and delete old RSS items then.
Most of the screen space now is devoted to the message, I can see all the fields I want to see (source, author, topic, content, pictures, URLs) and I can manage messages by hundreds. Also being able to search both your mail and your rss feeds at the same time is neat.
Yesterday I did a little improvement to this scheme. The forum that I read has the title of every message made of "author: topic", so every message is a separate conversation in Gmail. I decided to try to use the conversation feature of Gmail and did a little modification to rss2email so that if the message is from this forum, then everything up to the first semicolon is cut from the title and inserted as a part of the name of the sender. In the end the subject of every message contains only the topic of the corresponding thread in the forum and thus all messages from one thread are neatly grouped together as a single conversation. At the same time every messages From: looks like "$forum_name $author " so that I can still see who wrote what in the forum.

Joshua Kwan: For posterity: Md is a flaming idiot!

Abridged to remove irrelevant conversation…
< Czesiu> Btw, udev recommends at least 2.6.12 kernel, which is not shipped
in Debian.
< Md> so far the upgrade procedure is “upgrade your kernel, reboot,
upgrade udev”
< Md> Czesiu: yeah, nobody had told me this yet, you know?
< dilinger> you can either go the lvm route, and make up some kernel APIs to
match again, or you can go the ndiswrapper route and make some incredibly
strict dependencies so that people are sure to upgrade kernels and udev
in parallel.  both solutions suck.
< Czesiu> Md: you sound quite sarcastic :)
< wildfire> why not just have a udev-compat; which conflicts which newer
kernels; and make udev conflict with older ones
< Md> dilinger: a future udev version will refuse to install on anything
older than 2.6.12, so this will reduce the potential for brokeness
< Md> the /dev/input/mice problem has been unexpected, if it cannot be fixed
I will make the next package require 2.6.12
< dilinger> the best solution, imo, is to have udev 0.5x and 0.62 allowed
to be installed in parallel, and have a wrapper script that determines which
to use when it’s run
< wildfire> hmm, dilinger, that does sound pretty clean
< Md> dilinger: the configuration syntax is subtly different too. this is
not really possible
< Md> wildfire: yes, until you start looking at how to implement it 
< dilinger> Md: sure it is; /etc/udev05x for the old version or something
< dilinger> /etc/udev for the new version
< wildfire> md, but that’s someone else problem ;-)
< Md> dilinger: keeping them in sync is hell
< dilinger> no kidding, but that’s what maintaining stuff like this requires
< Md> so far, it appears to be too much complex to be justified
< Md> if upgrades will happen to be more complex than we currently know then
I will reconsider this
< dilinger> are you kidding?  i think the number of people whose systems
are breaking is pretty good justification
< Md> dilinger: only because the package currently is not refusing to run
on older kernels
< idnar> Md: but if the package fails to run, isn’t that likely to cause
breakage too, since your /dev won’t look like it normally does?
< Md> idnar: it will refuse to be installed or upgraded, like it’s currently
happening if you are using a kernel < 2.6.8
< dilinger> Md: what about doing something insane w/ devfs/
< dilinger> and devfsd
< Md> dilinger: ?
< idnar> Md: ah
< dilinger> depend upon devfsd, if the kernel is older than 2.6.12, have it
mount devfs over /dev and run devfsd instead of runing udev
< Md> different configuration syntax, different semantics, no HAL/hotplug
support. basically, I can’t see why you could think about this
< dilinger> because it would allow things to *work*
< dilinger> even if it doesn’t have the same config syntax
< dilinger> it could spit out a big warning upon startup
< idnar> suddenly switching the user to devfs would likely cause all sorts
of unknown breakage
< Md> if the kernel is older than 2.6.12 people will not be able to install
a newer udev, so this is not relevant
< Md> please try to look at the whole picture
< dilinger> people are going to want to reboot into older kernels and have
their /dev in a sane state
< dilinger> the running kernel isn’t the only one they may be using
< Clint> yeah, i’m not using the running kernel
< Md> dilinger: then udev will automatically disable itself. the current
experience shows that users are not bothered by this
< dilinger> Clint: quiet over there :P
< dilinger> Md: the user experiences around here don’t seem to match what
you’re saying, otherwise i wouldn’t even be mentioning it
< Md> again, this is not how future versions will work
< dilinger> let me put it another way
< dilinger> it would be a very good idea to future proof udev against such
incompatabilities now
< Md> tell greg k-h, now me :-)
< dilinger> because i’m sure things will break again
< Md> anyway, you persuaded me. I will upload right now an updated package
which refuses to be installed with old kernels
< Md>   * Kernels older than 2.6.12 are not supported anymore.
< Md>     If detected, the package will refuse to be installed.
< Md>     If the running kernel is downgraded after the package has been
< Md>     installed udev will disable itself at boot time.
< Sesse> Md: whoa
< joshk> that’s ridiculously stupid if you as me
< Md> this is what was going to happen in a few releases anyway
< Clint> joshk: coredump immediately
< Md> BTW, I suggest that concerned people read this before continuing
http://sourceforge.net/mailarchive/message.php?msg_id=12236847
< joshk> breaking support for anything but the very latest kernel (which
isn’t even in debian yet!) is dumb. you break everyone’s desktop because
hal stops working
< joshk> (one particular example)
< Md> joshk: people can keep the old udev until the upgrade, nothing breaks
< Sesse> Md: *g*
< joshk> don’t grin at Md, it makes him think we’re in agreement

31 December 2005

Antti-Juhani Kaijanaho: Phishing Amazon user data

I’ve seen from several sources messages of the following kind:
Subject: Please verify and update your Amazon account !
Dear Amazon    member , 
    It has come to our attention that your Amazon account information records are
out of date. That requires you to update your account information . If you could
please take 5-10 minutes out of your online  experience , and update
your account , you will not run into any future problems with Amazon
online service.                                       
   However, failure to update your records will result in account termination.
Please update your records in maximum 48 hours.  
   Once you have updated records, your Amazon session will not be
interrupted and will continue as normal.
      To update your Amazon account information click on the following link: 
        (link suppressed)
 Best Regards ,
Amazon Security Departament
Disregarding the very sound general rule of thumb telling us to distrust any mails that ask us to “reconfirm” our account details at whatever company, this mail is fairly convincing. The greatest clues that this is a forgery are such that Grandma Pihtipudas will unlikely notice them: the mail has been sent to several addresses I know are not registered with Amazon, and the link uses a well known URI spoofing technique. Beware!

30 December 2005

Erich Schubert: Why does Intel pick bad slogans: "limp ahead"?

No more "Intel outside", but now now a "limp ahead"? Intel has a new annoying marketing slogan. Congrats. Now, could you stop sueing poor users for using regular english words such as inside? (No, I'm not affected, just annoyed) Will you now fight anyone using the word "ahead"?

29 December 2005

Decklin Foster: lastfmsubmitd

Apparently, tis the season to be writing your own Last.fm plugin. So here is mine. I finally got fed up with finding and causing bugs in mpdscribble (I am a bad sponsor!) it s written in C with libsoup, blah blah, can t stand C, and so I revived the MPD pseudo-listener I had started on as a replacement for that awful orphaned cacheless one-off we were all using before mpdscribble. I also fixed a few issues that were bugging me, like failing to detect restarts and tag changes. Not wanting to muddy up any of that logic with HTTP gar, I decided to write a separate program to queue, cache and send along song submissions. They re two or three hundred lines of Python each, and single-threaded (yes, that means child writers blocking and hanging around if the network code is in the middle of timing out or backing off. Deal with it! This is UNIX). I m pretty happy with the design, although the implementation is still very rough. This also mimics the model they want to move to for player plugins in general, which is good, because it will be less work for me to implement version 2.0 of the protocol once that is finalized. Additionally, I was able to find a more satisfying way to solve the disconnected-CD-player problem than my previous dreadful method of either using a few kludgey scripts to frob around in my primary plugin s cache or dealing with using cdscrobbler and having to be very careful about one plugin not stepping on the other s toes and invalidating my backlog. So this is the second example program included. (Oh yes, that part uses the Python bindings for MusicBrainz. MB is awesome. The Python bindings are hideous, however straight port of the C++ API. I d probably be better off just dumping the RDF into a real RDF implementation and doing my own cross-referencing, instead of prying it out piecemeal with select queries and non-polymorphic getters and all the other absolute nonsense you have to deal with when writing in a language without high-level data types or garbage collection. But regardless of implementation woes, this has kept me close to the MB metadata for my favorite CDs, and so I ve been busy all week entering and voting on mods (and doing research to justify my changes), which is very satisfying. I have yet to begin the gargantuan task of adding MB tags to my Ogg collection (I know, this is really just a matter of babysitting tp_tagger, but I ve got some work cut out for me to even get to that point).) And of course, once this becomes less prototypey, anyone who likes it can knock all the networking code out of their plugin and use it as their system service . Perhaps if I m agile enough this can become official code! It is at least a mootable proof-of-concept that UNIX systems don t necessarily need a heavyweight libscrobbler to abstract the service stuff out of the player plugin. I won t get my hopes up though. Still a bit unsure about the name. Theoretically it seems the service (you know, the thing we pay money to if we like it) should be Last.fm, while the software and protocols should still be Audioscrobbler, but the distinction does not seem to be drawn very clearly in practice. With the analogous situation of livejournal vs. ljcom you had a grokkable technical delineation (different repositories) as well as other widely used installations besides ljcom (DeadJournal, etc). I really can t see there ever being a competing installation of Audioscrobbler, because licensing the streamables is a formidable investment hurdle, and there s a negative market effect (also, the web site is not open source). But I am also bored of just sticking scrobble onto something else, so I wanted to grab sticking last onto something else before it got old. I haven t the faintest clue what makes me prefer whimsical names for some projects and prosaic ones for others. Note to actual MPD users (all, like, 5 of you): the stuff in the package will not handshake at the moment, as I have not yet gotten Russ to bless the client ID I made up. Will try to catch him tomorrow. Or later today I suppose. It s ready to go now. Next up: Because it s either this or Sound Juicer, I think perhaps it s time to bid adieu to abcde and write a MusicBrainz plugin for jack (jack is nice enough, I just haven t had a truly compelling reason to switch, and there have always been lots of good eyeballs on abcde). FreeDB delenda est.

28 December 2005

Erich Schubert: Automagic fixing quotation marks for LyX

My mother uses LyX (and thus, LaTeX) to layout her books. She doesn't need much help, but does almost everything herself. Except she was lacking an editor which could replace the quotation marks appropriately, because they are handled somewhat special in LyX (you need an editor which can replace by multiline text, such as VIM). So every now and then, mostly when she's started layouting a new book, she'll ask me to fix the quotation marks in a lyx file for her. I decided to write a small python script for it, since she has python installed on her box anyway (also on Windows, although she also has Linux on it). Maybe someone else has the same problems, so here you go:
#!/usr/bin/python
import re, sys
 
# Use full regexp power to detect as many " properly as possible...
# Note that this is a lot more sophisticated than just \b" and "\b
# and will be able to handle all the 'something ...", said foo' cases, too!
# But yeah, you can do even more, and maybe separate it into more regexps...
qrp1 = re.compile(r'(^\s* \b[:]?\s+[.:,;?!\-\(]*)"(\b)', re.M)
qrp2 = re.compile(r'(\b[.:,;?!\-\)]* \b \.\.\.)"([.:,;?!\-\)]*(\s+\b \s*$))', re.M)
 
# These are for >>-style quotes, german bracketing. If you want other
# quotes, adjust to your style yourself (hint: look at your .lyx file)
q1 = r"""
\\begin_inset Quotes ald
\\end_inset
"""
q2 = r"""
\\begin_inset Quotes ard
\\end_inset
"""
 
# Iterate over all input files...
for name in sys.argv[1:]:
        # Load input file
        fi = file(name, "r")
        data = fi.read()
        fi.close()
        # Replace quotes
        data = qrp1.sub("\\1"+q1+"\\2", data)
        data = qrp2.sub("\\1"+q2+"\\2", data)
        # Write output file with new name
        newname = name + ".quotes.lyx"
        fi2 = file(newname, "w")
        fi2.write(data)
        fi2.close()

27 December 2005

Jose Carlos Garcia Sogo: "Legal" Merry Xmas

This is a transcript of what a friend of mine sent as a Xmas card. Of course she is a lawyer, so I hope that this text can transmit you exactly my feelings.
Please accept with no obligation, implied or implicit, our best wishes for an environmentally conscious, socially responsible, low-stress, non-addictive, gender-neutral celebration of the winter solstice holiday, practiced within the most enjoyable traditions of the religious persuasion of your choice, or secular practices of your choice, with respect for the religious/secular persuasion and/or traditions of others, or their choice not to practice religious or secular traditions at all. We also wish you a fiscally successful, personally fulfilling and medically uncomplicated recognition of the onset of the generally accepted calendar year 2006, but not without due respect for the calendars of choice of other cultures whose contributions to society have helped make America great. Not to imply that America is necessarily greater than any other country nor the only America in the Western Hemisphere. And without regard to the race, creed, color, age, physical ability, religious faith or sexual preference of the wishee. By accepting these greetings you are accepting these terms. This greeting is subject to clarification or withdrawal. It is freely transferable with no alteration to the original greeting. It implies no promise by the wisher to actually implement any of the wishes for herself or himself or others, and is void where prohibited by law and is revocable at the sole discretion of the wisher. This wish is warranted to perform as expected within the usual application of good tidings for a period of one year or until the issuance of a subsequent holiday greeting, whichever comes first, and warranty is limited to replacement of this wish or issuance of a new wish at the sole discretion of the wisher.

Erich Schubert: Fixing planet

Today I've been fighting Planet, the well-known blog aggregator tool. After a while I had found out how/why it was scrambling Atom feeds horribly. I'm not sure if actually is a planet bug - maybe it is fine with older python versions. The SGML parser of python2.4 however fails on tags such as <br />, a very common case in blogs and thus in atom feeds. Strage additional > brackets appeared in the output. The reason is, that the SGML parser as of Python2.4 is looking for <tag/foo/ as an equivalent to <tag>foo</tag>, and thus treats <br/><br/> the same as <br>><br<br>> with the inner chars somehow magically escaped... The fix is quite simple: add
sgmllib.shorttag = re.compile('<([a-zA-Z][-.a-zA-Z0-9]*)/(/*)>')
to your feedparser.py file in the obvious place (next to sgmllib.tagfind). This will break support for these true SGML short tags, but I've never heard of a blog feed using them anyway. I told you that I'm not really sure whether this is a planet bug: It might be a bug of pythons sgmllib, too. But maybe Planet should just use a XML parser for XML files, and fallback to an SGML parser (or maybe a robust XML parser) for other files (unfortunately, many blogs - including mine - do not ensure correct XML). And Planet could use some proper XML handling, too, anyway... Right now, the code is so string-array-based, it makes me sick. You might also want some extra magic to re-fold <br/> tags to not confuse older browsers.

Matt Brown: Miredo/Toredo Patent Status

Miredo is an implementation of the Teredo - IPv6 over IPv4 tunnelling protocol which I have been playing with lately. I have filed an ITP bug to get Miredo into Debian, however this has been delayed while I try and get a handle on some of the patent issues surrounding the Teredo protocol. While Miredo itself is licensed under the GPLv2 the state of the Toredo protocol is less clear. Teredo was created by Christian Huitema, an architect with Microsoft. It is currently a Proposed Internet Standard waiting for the IETF editor to review it and assign an RFC number for it, IANA will then assign a permanent prefix for use by Teredo clients, servers and relays. According to the IETF IPR disclosure page, Microsoft has filed a statement of claim against the technologies described in the Proposed Standard. Microsoft states that they will provide a Royalty-Free, Reasonable and Non-Discriminatory License to All Implementers in their statement. Specifically the license that they offer the Teredo protocol under is called the Microsoft Royalty Free Protocol License Agreement. This is a catch-all license that Microsoft uses for all client-server protocols used by Windows. The license itself doesn’t make any claims about Microsoft’s IP rights, it simply gives you a license to use any rights Microsoft may have in the specific protocol you are using. For example at the end of the license agreement you select which protocols you wish to have covered under the agreement. Alongside Teredo you can also choose protocols such as IPv4, DNS, 6to4 and lots of other common protocols. The actual patent application for Teredo is incredibly difficult to find, the IETF IPR disclosoure doesn’t link to it, none of the proposed standards link to it and googling for “Teredo Patent Application” isn’t particularly successful either. In the end it turns out that the title is quirkily named “Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload” and was published as Patent Application 20040190549 on the 30th September 2004. Incidentally if anyone knows of a nicer way to link to a US Patent Application than the ugly URL above, I would love to know. Half the reason that the Patent Application was hard to find is that it doesn’t actually mention Microsoft anywhere at all, unlike the ~5000 odd other Patent Applications currently filed by Microsoft. From what I can tell it appears that Christian Huitema has filed the application through is own personal attorneys independently of Microsoft. So where does this leave us in terms of getting Miredo into Debian? The short answer is I’m not entirely sure. I can’t seem to find a definitive statement regarding Debian’s position on patents anywhere, the best I’ve been able to come up with is a debian-legal post from Andrew Suffield from Jan 2005 which offhandedly describes the informal Debian patent policy as:
“ignore patents until somebody starts to wave them around, then drop the offending thing like a hot rock”
So maybe I’ve already shot Miredo in the foot, by investigating its Patent Status… :( My take on the situation seems to be that Debian is perfectly happy (and perhaps has no other option but) to ignore patents applicable to software in Debian until it becomes apparent that a particular patent is being enforced or has the potential to be enforced. So the question now becomes whether the Microsoft Royalty Free Patent License is acceptable enough to Debian to allow Miredo to be included in main or non-free, or whether it simply can’t be redistributed at all. The main problem I see with the license is that it does not permit you to sublicense other parties to make use of the Toredo technology used by Miredo. If this were a copyright license then that would most certainly fail to pass the Debian Free Software Guidelines, does Debian treat patents in the same manner? I think it’s time for me to post to debian-legal to seek some “official” guidance on the situation, but hopefully this post has ordered my thoughts enough that I can now write a coherent mail seeking help. If you have any comments or pointers to Debian statements on this sort of situation that I have missed they would be most welcome.

26 December 2005

Axel Beckert: Yet another old laptop

My father got me a nice IBM ThinkPad from 1996 earlier this year, so the next old laptop he digged up was planned to become a christmas present for my brother. But my father didn’t manage to find out, how old nor how fast that laptop was. And when I found out that it was a Pentium I with 90 MHz, it was clear, that my brother wouldn’t have any use for it, so he got “only” the used 850 MHz AMD Duron midi tower and my parents declared that old Compaq LTE 5100 laptop as a christmas present for me. :-) As my IBM ThinkPad bijou, this Compaq LTE 5100 is from 1996 and has a Pentium I processor. Both also have a 800×600 resolution, a double PCMCIA slot and a floppy drive, which can be replaced by a CD-ROM drive (if I had one). But that are all similarities. Technically the Compaq has 90 MHz instead of the ThinkPad’s 133 MHz, but therefore has 72 MB RAM in comparison to the 48 Megs the ThinkPad has. Also regarding disk space the Compaq outperforms the ThinkPad: 1.6 Gigs of disk space in comparison to the ThinkPad 1.0 GB hard disk. Another difference is the battery: While the ThinkPad can work over 2.5 hours without external power, the Compaq even didn’t manage to completely boot its currently installed Windows 98 (the ThinkPad had a Windows NT installed when I got it) when running on battery. (Will do that test again when I can confirm, that the battery was full before testing. :-) Yet another difference is the keyboard layout: The ThinkPad has an US layout while the Compaq has a Swiss-German layout. But the most obvious difference is the look: The black ThinkPad still looks like having a modern design while the Compaq looks very very outdated in its perfect computer beige and with its quite small display. So retroperspectively, it was a good a idea to name the ThinkPad “bijou” (French for jewel, jewellery, gem, etc.; named after a very neat british two-door limousine built in the UK by Slough on a 2CV base during the ’50s). Because now I have the choice between a lot of not so nice looking (not to say ugly ;-) 2CV derivatives to name the Compaq after. My favourites currently are the Iranian “Baby Brousse”, the Greek “Namco Pony” and the German “Fiberfab Sherpa”, all canvas and flatbed style 2CV based buggies, similar to the original Citroën Méhari but with steel body instead of the Méhari’s controversial plastic body. And one of the not used names, I can use for further ugly Compaq laptops¹. Another question yet to answer is the question of what operating system to install on it. Since the ThinkPad runs fine with Debian 3.0 Woody and I have a lot of other Debian boxes at home (running Woody, Sarge or Sid), I currently think about installing the very fresh NetBSD 3.0 (released on Christmas’ Eve 2005), FreeBSD 6.0 (released early November 2005), DragonFly BSD 1.4 (to be released in December :-) or DeLi Linux 0.7 pre (which was also released in early December 2005 and already uses X11R7). Another idea was to install grml 0.5, but since grml is a live CD distribution, it probably would be hard to install it over network. Same counts for ReactOS (version 0.2.9 was released shortly before Christmas 2005), which doesn’t seem to have a floppy disk plus network install. Since I always planed to upgrade my currently defective Toshiba T6400 i486 laptop ayca (maybe after getting an organ donor on eBay or so) to DeLi Linux 0.7 (and perhaps write a review about it for Linux Magazine or so) and I may get an Sun Ultra Enterprise 2 soon (on which NetBSD 3.0 would be the perfect OS since Linux’ performance still seems to suck on Sparc :-), I currently prefer the FreeBSD or DragonFly idea. If the Ultra doesn’t come, it probably will get NetBSD, since I haven’t a NetBSD box yet. (Haven’t a DragonFly box either, but a FreeBSD 4.x running somewhere. :-) Well, I guess, I’ll take even more old laptops than last year to the Vintage Computer Festival Europe (VCFe) next May. And since the two 1996 laptops are now 10 years old, they’re even ontopic! Yeah! ;-)

¹: I have two other not yet working Compaq laptops, both from an elder generation than Pentium I. One I got on a Swiss flea market for a few euros and the other was the first laptop of my boss, which he else would have thrown away. Unfortunately both are without power adapter and neither the usual allround laptop power adapters from Conrad, etc. nor the one from the LTE 5100 fits. But since there is eBay, I expect to get such a power adapter once. :-)

Matthew Palmer: Language Is Not Just Syntax

My current long-term learning project is Ruby on Rails, the ultra-hyped web application framework from David Heinemeier Hansson and friends. I like it (primarily because I can see a lot of my own abortive ideas from a web app framework for PHP I used to develop), but there is one big thing about it (or, rather, it's surrounding hype) that irritates me. Throughout the Rails literature (webpages, magazine and webzine articles, and the book Agile Web Development With Rails), there is a consistent message -- that, because everything is written in Ruby, you don't have to learn any new programming languages to write Rails applications. This is a wonderful theory -- no large XML config files to define my database schemas, and no castrated and irritating HTML template system to learn. From defining table relationships to printing a select tag, It's All Ruby, All The Time. Sweet, right? Sort of. The problem is that you won't find the language primitive to declare a one-to-many relationship in the Pickaxe (the definitive Ruby language reference book -- like "the Camel" for Perl, "the Bat" for Sendmail, or "the Turkey" for PHP). Defining a separate namespace in Rails for all of these operations is, of course, necessary, since the language didn't already define these operations. But, once you've defined a whole new set of methods to do all of these operations, you can look back on your hard work and see -- what? A new language -- one specifically designed to describe webapps. Don't get me wrong -- domain-specific languages are teh r0x0r. If everyone had to do all of their HTML manipulation by hand, programmers would be even more insane than they are. But, when you're writing your application in Rails, you're not speaking "pure Ruby". Your syntax and basic structure is Ruby, but your methods and attributes are new, different, and All Rails. It may not be a separate programming language in the usual sense, but by the time you've added a whole new pile of classes, methods, and attributes (not to mention whole new ways of structuring your application), how much importance is the use of the @ symbol to signify an instance variable, compared to the whole new set of methods to learn? Natural languages, of course, have similar issues. Most western european languages share a lot of common characteristics -- similar character sets, punctuation sets, and they read left-to-right. So I can look at a page of German or French, and identify most-to-all of the salient features (hey look, an 'a'!), and even grok the meaning of a few of the words (familiar to me, probably, because English misappropriated them from wherever they came from) but I still have no hope whatsoever of understanding the meaning of the passage as a whole. The language syntax looks familiar, but those nouns and verbs don't have any meaning to me. You can't plonk a Rails app in front of even a seasoned Ruby developer and expect them to immediately jump in and start hacking on it like they've been writing it all their life. The language syntax looks familiar, but those methods and attributes don't have any meaning to them. This is nothing peculiar to Rails, of course. If you want someone to hack on your Hibernate or Spring app, you'll get better results if you advertise for a Hibernate or Spring programmer than a Java programmer. But Rails advocates regularly say "it's all just Ruby, so there's nothing new to learn!", and that's Just Wrong, in my opinion. As an aside, if you're looking around for something a bit different, do seriously consider Rails (or just Ruby, if you don't need a webapp framework). It's different from the "usual" suspects (C, C++, and "the Ps" -- PHP, Perl, and Python), and pleasantly so. If you judge your programming languages by the old adage "a programming language that doesn't change the way you think about programming isn't worth learning", Ruby will score well. I know it's helped me think about my programming differently already, especially my Python programming (and thanks to Anthony Baxter for answering all of my esoteric python questions at OSDC a couple of weeks ago).

23 December 2005

Marc 'HE' Brockschmidt: The differences between Christmas and Chanukah

If anyone asks you what the difference is between Christmas and Chanukah, you will know what and how to answer!

1. Christmas is one day, same day every year, December 25. Jews also love December 25th. It's another paid day off work. We go to movies and out for Chinese food and Israeli dancing. Chanukah is 8 days. It starts the evening of the 24th of Kislev, whenever that falls. No one is ever sure.
Jews never know until a non-Jewish friend asks when Chanukah starts, forcing us to consult a calendar so we don't look like idiots. We all have the same calendar, provided free with a donation from the World Jewish Congress, the kosher butcher, or the local Sinai Memorial Chapel(especially in Florida) or other Jewish funeral home.

2. Christmas is a major holiday. Chanukah is a minor holiday with the same theme as most Jewish holidays. They tried to kill us, we survived, let's eat

3. Christians get wonderful presents such as jewelry, perfume, stereos... Jews get practical presents such as underwear, socks, or the collected works of the Rambam, which looks impressive on the bookshelf.

4. There is only one way to spell Christmas. No one can decide how to spell Chanukah, Chanukkah, Chanukka, Channukah, Hanukah, Hannukah, etc.

5. Christmas is a time of great pressure for husbands and boyfriends. Their partners expect special gifts. Jewish men are relieved of that burden. No one expects a diamond ring on Chanukah.

6. Christmas brings enormous electric bills. Candles are used for Chanukah. Not only are we spared enormous electric bills, but we get to feel good about not contributing to the energy crisis.

7. Christmas carols are beautiful...Silent Night, Come All Ye Faithful.... Chanukah songs are about dreidels made from clay or having a party and dancing the hora. Of course, we are secretly pleased that many of the beautiful carols are composed and written by our tribal brethren.

And don't Barbara Streisand and Neil Diamond sing them beautifully?

8. A home preparing for Christmas smells wonderful. The sweet smell of cookies and cakes baking. Happy people are gathered around in festive moods. A home preparing for Chanukah smells of oil, potatoes, and onions. The home, as always, is full of loud people all talking at once.

9. Women have fun baking Christmas cookies. Jewish women burn their eyes and cut their hands grating potatoes and onions for latkas on Chanukah. Another reminder of our suffering through the ages.

10. Parents deliver to their children during Christmas. Jewish parents have no qualms about withholding a gift on any of the eight nights.

11. The players in the Christmas story have easy to pronounce names such as Mary, Joseph, and Jesus. The players in the Chanukah story are Antiochus Judah Maccabee, and Matta whatever. No one can spell it or pronounce it. On the plus side, we can tell our friends anything and they believe we are wonderfully versed in our history.

12. Many Christians believe in the virgin birth. Jews think, "Joseph,you shmuck, snap out of it. Your woman is pregnant, you didn't sleep with her, and now you want to blame G-d. Here's the number of my shrink".

13. In recent years, Christmas has become more and more commercialized. The same holds true for Chanukah, even though it is a minor holiday. It makes sense. How could we market a major holiday such as Yom Kippur? .....

Forget about celebrating. Think observing. Come to synagogue, starve yourself for 27 hours, become one with your dehydrated soul, beat your chest, confess your sins, a guaranteed good time for you and your family.
Tickets a mere $200 per person.

[Stolen from $unknown]

Next.

Previous.