Pirate Pontén

June 8th, 2009

“The way I see it, there is a campaign against anyone who disagrees with the piracy movement,” notes Pontén. “They are trying to restrict our freedom of speech. Previously they have tried threats, now they are trying other methods,” he added. — Aftonbladet (swedish) via mach zehnder modulatorTorrentfreak

The way I see it, there is a campaign against anyone who disagrees with the anti-piracy movement. They are trying to restrict our freedom of speech. Previously they have tried threats, now they are trying other methods.

Error messages! READ THEM!!!

March 23rd, 2009

Please refrain from wasting developers’ time because you don’t want to read the error messages you get on your screen. Read them, act upon them or ask about the specific error message, rather than giving vague statements such as “I did X and now Y doesn’t work”.

Oh, and read this. NOW!

  -- Thanks, The Management.

Topic repositories! Use them!

March 19th, 2009

During his various talks Bryan has mentioned the use of unofficial topic repositories in Exherbo - repositories hosting packages related to a specific topic that are either mostly or completely maintained by non-developers (and by non-developers I mean people who cannot push to the official Exherbo repositories). So far, we haven’t really seen any of those mainly because most people have just kept packages in their own repositories. It gets tedious to add a lot of personal repositories just to get the latest and greatest packages people maintain though and at the end of the day it’s easier to collaborate and coordinate efforts if we can keep the related packages together, so we’ve (and by we I really mean Ali Polatel) created a media-unofficial repository hosted at github. So far alip, replica and I have pushed our media-related packages there and the repository currently contains stuff like Audacity, ncmpcpp and envtag.

Now, the point of a topic repository isn’t to give any and all push access - we want to exert a proper level of QA, even if it is an unofficial repo. But as with the official ones, pinging one of us with a decent git format-patch is all you need to contribute stuff. If you want to contribute a new media-related package, please consider whether it would be better off in -unofficial. Keeping the number of packages that we (and by we I mean Exherbo developers) have to maintain is essential if we want to continue keeping the number of developers (and by developers I mean non-non-developers) near-constant (and we want that).

The name media-unofficial does not imply that the packages are of a lesser quality than those in media.git, it does not imply that Exherbo developes want nothing to do with them, it does not imply that the packages are of dubious legality. The packages in that repository are maintained by smart people (including current Exherbo developers and current and former Gentoo developers) and we expect the quality to be as good as any official Exherbo repository.

I like the idea of topic repositories when it’s possible to draw a somewhat clear line between relevant and irrelevant packages. The whole notion of restricting who can directly touch a set of packages should help keep people from stepping on each others toes while still letting those who want to do really crazy stuff with their packages (and keep them private thankyouverymuch) do that just by copying the exheres’ to their own repositories. I hope we will see more of these as Exherbo grows - repositories maintained by groups of users and (optionally) a couple of Exherbo devs. They do all the work and we take all the credit!

Oh, and regarding that last sentence… anyone who wants to start an unofficial scientific repository and add all those things I’ve been too lazy to package? Pretty please?

Exherbo in numbers

February 11th, 2009

Lies, damn lies and statistics…

At the time of writing (Wed Feb 11 11:22:48 CET 2009), the following numbers might be of interest:

  • 269 days since official announcement
  • We’ve been working on Exherbo for longer than that but serious work on packages and “userspace” stuff began around the time of the announcement.

  • 30 official package repositories
  • This includes individual developers’ supplemental repositories. Thanks to Paludis’ excellent support for multiple repositories and in particular the unavailable repository type, keeping track of packages in 30 different repositories is easy as an end-user (my laptop/server currently uses 16 of those repositories). Does any other distribution make it as easy to keep track of many small end-user oriented repositories? The Debian/Apt approach is definitely more painful than this.

  • 7 unofficial package repositories
  • online casino net
    These are repositories belonging to Exherbo users rather than official developers. The difference between these and the official ones is that these aren’t hosted on Exherbo infrastructure and they’re listed in unavailable-unofficial rather than unavailable.

  • 1313 packages in official repositories
  • Believe it or not but chances are you will find most of what you need here. There’s a long way to the tens of thousands of packages in distributions such as Gentoo and Debian but we don’t really have to go there. Adding packages with importare is easy and there are whole groups of packages that doesn’t really have to be hosted in official repositories. If a group of people want to add robotics-related packages to Exherbo they can just create an unofficial repository (could be anything, $scm repo, tarball, rsync) and get it listed in unavailable-unofficial. We really want to keep the number of packages we have to maintain low to allow us to spend time developing the system and its related tools. Maintaining packages doesn’t require any magic cloaks.

  • 76 packages in unofficial repositories
  • This isn’t a lot, in part because some people prefer to provide packages as patches for official repositories but mainly because Exherbo is just now crawling out of its infancy, taking its first steps towards being used by a wider audience. As this audience grows, we expect the number of unofficial packages to grow as well.

    Unofficial is actually a somewhat misleading term. It’s true that we don’t maintain them, but we do glance over the repositories before they are added to unavailable and if we hear of major breakages from these we can quite easily remove them again. Most (if not all) of the people with unofficial repositories listed in unavailable tend to hang around in #exherbo on IRC, so submitting patches to them is simple.

  • 20 developers
  • As currently listed on the wobsite. You will notice this number has been near-constant over the last year (I think one developer joined since the announcement). There’s no real reason to let this number grow at the moment, since all package maintenance can be done without push-access to the official repositories.

  • 20 contributors to official repositories
  • Over the last year, patches from 20 people against the official repositories have been accepted and pushed. Several packages are currently maintained by non-developers. Switching to Git early on was a great decision since it makes the whole patch-dance incredibly easy. We owe a great deal of thanks to these people.

  • 90 people in #exherbo
  • This is also one of the near-constant numbers. A majority of these people idles in the channel, but if you ping a developer with a link to a git format-patch, it’s likely to get pushed or rejected with suggestions for improvements quickly. Keep in mind that most Exherbo developers lives in Europe and some of us (usually not Ingmar) also sleep every now and then.

  • 50 kicks & 27 current bans in #exherbo
  • Given the potential for flames and the number of assholes on the internets these numbers seem fairly low. It’s usually a peaceful channel.

  • 3 platforms (x86, amd64, ppc64 [unofficial])
  • Exherbo currently has stages for three different platforms though not all packages has been tested on all platforms. Paludis will refuse to install untested packages and mark them as ‘Masked by platform’. Feel free to submit a git format-patch if you find that a masked package works well on your platform (you can override the platform mask in /etc/paludis/platforms.conf).

  • Activity in 12 official repositories over the last 24 hours
  • Even though it’s been nine months since the initial announcement we’re still doing lots of work all over the place.

  • 6896 commits in official repositories ~ 56 minutes between commits
  • The most important number of them all!!! This comes from ohloh and is a little more than a day old. It’s not too bad for forty people working on this project in their spare-time.

  • 31 open bugs / 120 closed bugs
  • We usually only use bugzilla when we need to keep track of issues for an extended period of time. Most issues are quickly resolved over IRC.
    If you file a bug, remember to attach a git format-patch!

  • 1174 quips
  • Don’t say we’re not funny! If you know a bit about Gentoo, you should recognise many of the quoted people.

  • 1 supported PM
  • No-one has stepped up to provide an alternative implementation of the exheres-0 EAPI, written in Haskell. Patches are welcome (in /dev/null, that is).

  • 1 (unwanted) slashdotting
  • That certainly turned what should’ve been a low-key announcement in a few relevant places into a lot more attention than what we wanted (or was prepared to recieve at that point in time). Still, it was a fun couple of days.

  • 0 flamewars
  • That’s right. It’s hard to start a serious flamewar among 20 people.

  • 1 awesome mascot
  • ‘Nuff said

  • 1 deleted wikipedia article
  • Someone wrote a wikipedia article just after the announcement, which was swiftly deleted as Exherbo didn’t meet the notability guidelines for wikipedia back then. Since wikipedia is all about verifiable, third-party information it will probably take a while before we’ll meet that requirement. But that’s all for the better - the people browsing wikipedia in search of their next distribution probably aren’t the kind of people we need/want right now.

  • 3 talks (only 1 video)
  • Bryan gave the talk on Genesis at FOSS Aalborg. It was this talk that prompted the announcement of Exherbo, and at the moment, this is the only talk we have a video from.
    Bryan then gave a talk about the visions and long-term goals of Exherbo last October at Open Source Days. This talk was a lot more interesting in general but unfortunately no video recording has been made available so far.
    Lastly, Bryan was invited to talk at FOSDEM four days ago. The video isn’t out yet, but it probably will be soon.

  • >9000 people pissed off by our honesty
  • For some reason a lot of people felt offended by the fact that we didn’t want them to waste their time on a half-working, most-likely-broken distribution. If you tell them to use it, they will complain that it’s broken. If you tell them not to, they will complain that you’re an arrogant bastard. Even so, scaring these people away was a lot better the wasting time on supporting them. We’re reaching a point where we feel Exherbo is usable by a wider audience, but we certainly weren’t there nine months ago. If you look a the frontpage you will see that its content was changed a short while ago, to better reflect the current state of Exherbo.

  • Too many offers of community management/PR/HR help
  • We still don’t need that thankyouverymuch!

That’s what I could think of at the moment. Are there any other interesting Exherbo-related numbers out there?

Konqueror > *

February 3rd, 2009

I’ve never really been able to grok firefox. It’s just been too bulky and heavy to use. Opera was somewhat better but seemed too alien and contained vast amounts of useless crap. Links is awesome but not really state-of-the-art when it comes to all this fancy web 2.0 stuff. The one browser I’ve always enjoyed using is konqueror. Rather than listing all the things I find wrong about other browsers, I though I’d take a look at the features that really makes konqueror stand out. Not big features but the small areas that just helps to make everything work smoother.

NB: I’m still using konqueror 3.5 and I haven’t got a clue what parts, if any, hasn’t made it into konqueror 4. Feel free to elaborate in a comment if you know something about it. It will at least let me know if I’ll lose any features when I switch.

And just for the record, I use firefox at work several hours each week so I do have my reasons for calling it a crappy browser. Much of this is really based on things that firefox won’t do unlike what I wrote just before. But it’s features you don’t really miss until you know they’re not there.

I guess some of this can be implemented in other browser through their extension systems. But I don’t like installing things outside my package manager and I like the fact that I don’t have to carry 10 extensions with me and install them on other people’s computers just to make their browser usable for me.

  • Kioslaves
  • Kioslaves aren’t really konqueror-specific, but konqueror makes good use of them. Basically, kioslaves binds a protocol spec (http://, sftp://) to a protocol handler. I don’t know how many different protocols firefox or opera handles, but I’m fairly sure konqueror does more. This sort of ties into file-management, which is something other browsers doesn’t do at all (and for a good reason). And while I tend to do all file-management from a shell, these kioslaves lets me do some quite awesome things. Say you want to move a group of files from machine A to machine B through sftp (or rsync, scp or whatever). You could obviously ssh to machine A and then do your thing, but you could also just split a tab in two panes, sftp to machine A in one pane and to machine B in another pane and move things between the panes transparently. This goes for any kind of kioslave of course, so if you only have ftp (eww) access to machine A, that’s no problem. Just ftp to A from one pane and sftp to B from the other and you’re all set.

    There are other kinds of kioslaves too, like man:// which provides access to man-pages. I’ve never used that much, but audiocd:// provides access to an audiocd in your drive, letting you rip files by copying them from a directory on the audio cd onto your harddrive (or to sftp://B maybe).

    There is a large number of kioslaves giving you transparent access to everything from tarballs to subversion repositories.

  • Form awesomeness
  • A part of HTML-forms is the <input type=’file’ />-one. It allows you to upload a file with an HTML form. Usually, you use the browse-button next to it and find whatever file you want to upload. But what if said file is somewhere on the interwebs, rather than on your local machine? You will have to download it first and then upload the downloaded file. This isn’t any different in Konqueror compared to any other browser, but konqueror allows you to specify a URL in the field and Konqueror then parses said URL, downloads the file to some temporary place and sends it along with the form. In other words, Konqueror performs the superflous step for you. You can use HTTP-urls in the field, but thanks to the aforementioned kioslaves you can actually use any kind of URL Konqueror normally understands. This a good example of a very small feature in terms of how often you use it, but it saves time, trouble and mouseclicks and makes the overall experience a lot nicer.

  • KParts
  • KParts (Kparts or however it’s capitalised) again veer off into a sort-of-but-not-really different area. KParts allows other KDE applications (those that export a KPart) to be put “into” Konqueror. This instantly turns Konqueror into a PDF-reader, a text-editor (vim really ought to export a KPart) and a dozen of other things. What’s interesting, when it comes to browsing, is that it lets you view PDF-files, text-files or whatever a webserver might throw at you in the same window you use for browsing. I use awesome as my window-manager, and I have a tab dedicated to Konqueror where all windows are maximised. So being able to open a PDF-file from a website in a new browser tab, rather than a new window, fits very well into the overall scheme. Oh, and having a KPart for handling textfiles also gives me proper syntax highlighting. In your face, firefox!

    KParts aren’t just for PDF-files and textfiles. It also gives Konqueror good capabilities for manipulating displayed images, adjusting colour or brightnesss, zoom, rotate and just about anything else you might need to display the image exactly how you want or need to. I particularly enjoy this on my old, very dark CRT-monitor.

  • Web shortcuts
  • This is perhaps one of the most overlooked features of Konqueror. At the same time, it’s probably the one that has saved me most time and irritation. Web shortcuts turns a “prefix:stuff” URL into a proper URL depending on which prefix you use. Maybe an example is in place here.

    I’m looking at some webpage when I come across the term ‘helicoid’. Wondering what exactly that is, I hit Ctrl-t to open a new tab, type “wp:helicoid” and hit enter. Konqueror then expands that into http://en.wikipedia.org/wiki/Special:Search?search=helicoid&go=Go which instantly redirects me to http://en.wikipedia.org/wiki/Helicoid which is where I really want to go. How many keystrokes/mouse clicks did I save there? I don’t know, but over time it adds up to a lot.

    By default, my Konqueror does a Google (I’m feeling lucky) search on whatever I type into the address bar if it doesn’t parse. Web shortcuts then allow me to type “gg:something” to get an ordinary google search instead. This beats using a special search bar by a huge margin, simply because I know the keyboard shortcut (Ctrl-l) for clearing and focusing the address bar. Want to do a google image search instead? “ggi:” is your friend. Want to do a more specific google search? “gg:konqueror site:kde.org” is your friend. Want a calculator? “gg:2+2″ is your friend. Want a currency calculator? “gg:5000 JPY in DKK” is your friend. Want to search cpan? “cpan:Data::Dumper” is your friend. Need to look up a word? “wt:crap” or “ths:crap” or one of the other web shortcuts pointing to different dictionaries is your friend(s). Konqueror comes with a craptic megaton of web shortcuts and you can easily add your own as well.

There’s a whole slew of other things I tend to miss whenever I use other browsers. Most of these are equally small and not very interesting in themselves, but added together they make using a browser (and a GUI-one at that) something that doesn’t make me want to cut both my hands off. I have yet to come across a single feature from other browsers I miss in Konqueror.

And by the way… as said I use awesome, rather than KDE and right now, a Konqueror instance with 23 tabs uses exactly…

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5856 arkanoid  20   0  146m 110m  30m S    3 10.9  21:27.52 konqueror
15865 arkanoid  20   0  201m  90m  25m S    4  9.0   1:03.86 firefox-bin

… not a lot of memory. The firefox-session was launched because I needed to see whether the form-awesomeness feature worked in firefox (it didn’t). It has four tabs opened and all four websites are also presently open in konqueror (along with the 19 other sites). I never quite understood why people consider KDE a huge memory hog.

Tonight we boot in hell!

January 13th, 2009

And I thought the Ubuntu crew chose weird codenames…car hire bulgaria

Web 2.0-sy in a classy way

January 9th, 2009

I’m not very web 2.0-sy.. I haven’t joined any social wobsite and while I do blag every once in a while, it’s not as frequent as all the hip people and it’s usually a lot less interesting.

Nonetheless, I’ve wanted something simple to toy with awesome 3.0 (it became 3.1 while I pondered) and the lua configuration thingie. To be honest, I preferred the old libconfuse-based config system - it was a lot easier to wrap my mind around it and it was a lot easier to debug when something went wrong. I’ve seen the various mpd widgets, volume widgets and many, many monitoring widgets but I wanted to play with something that, to the best of my knowledge, hadn’t been done before.

So I thought of making an awesome widget for Twitter. It was a stupid idea so I promptly went on with it.

The first minor snag I hit was that I’ve actually never used Twitter. That was easy to solve though. Now with moar web 2.0!

I quickly gave up on writing something to actually interface with Twitter. There are countless of scripts, language modules/libraries and whatnot for doing that and while lua seemed to lack a Twitter-library I didn’t want to try my luck at writing that since I seriously lack lua skills as well. So I used the Net::Twitter perl module and wrote a short wrapper script to do the job. All that was left then was the awesome configuration. All of the following lua-code goes somewhere in your rc.lua.

First of all, functions. It seems these has to be defined earlier in the file than where they’re called…

function updateTwits()
    local twits = {}
    local fh = io.open("/tmp/twitlist")
    if not fh then
        mytwitbox.text =
            "<small><b>No twits present!</b> I suggest looking at the gentoo community</small>"
        return
    end
    for line in fh:lines() do
        table.insert(twits, line)
    end
    if #twits > 0 then
        mytwitbox.text = awful.util.escape(twits[math.random(1, #twits)])
    else
        mytwitbox.text =
            "<small><b>No twits present!</b> I suggest looking at the gentoo community</smal>"
    end
end

function postTwit()
    awful.prompt.run({ prompt = "Twit: " }, mytwitbox, function (msg)
        os.execute("/home/arkanoid/bin/twit post \""..msg.."\" &")
        mytwitbox.text = "Tweet posted! Go grab a cup of coffee ;-)"
    end, function () return nil end)
end

The first function, updateTwits, grabs a random tweet from a list of tweets generated by the twit.pl script and updates the text of the twitter-widget. postTwit spawns a prompt and posts your tweet to twitter.

To actually use this we define a textbox widget and fill it.

mytwitbox = widget({ type = "textbox", align = "left" })
mytwitbox:buttons({ button({ }, 1, updateTwits),
                    button({ }, 3, postTwit) })
updateTwits()

This way a left mouse click on the textbox will fetch another tweet and a right click will give you a prompt so you can submit a new tweet.

Remember to add the widget to a wibox. In this case I added a second wibox (statusbar in pre-3.0 terminology) which is located at the bottom of the screen.

mysecondwibox = wibox({
    position = "bottom",
    fg = beautiful.fg_normal,
    bg = beautiful.bg_normal
})
mysecondwibox.widgets = { mytwitbox }
mysecondwibox.screen = 1

I might as well make awesome fetch a new list of tweets from twitter as well.

awful.hooks.timer.register(60,
    os.execute("/home/arkanoid/bin/twit friends >/tmp/twitlist &"))

The main reason for not doing this in updateTwits is that the command might take a few seconds and awesome would be frozen while it ran. So I grabbed an idea from the awesome wiki and made a second timer that ran the fetcher in the background.

Add another hook to update the twitter-widget at a reasonable interval:

awful.hooks.timer.register(20, updateTwits)

Lastly a keybinding to post a new tweet by pressing Mod4+Shift+t:

keybinding({ modkey, "Shift" }, "t", postTwit):add()

And you’re all set - one very classy awesome twitter-widget fully operational. It is in the lower left corner:
Awesome twitter widget

It’s a pity I really don’t give a damn about twitter and probably won’t use it for anything. But at least it served as an icebreaker to awesome and lua for me.

And as for awesome and lua… it seems a lot less silly now than it did five hours ago.

Santa came to town…

December 26th, 2008

<rant>
First of all, merry christmas!
Second of all, yay! I got an iPod Touch for christmas which was definitely a nice surprise. I take it as a sign that I’m probably past the “just-moved-away-from-home-must-give-kitchenware”-stage. While being nice and useful and all that, it’s really hard to get wound up over a frying pan.

Anyway, I’ve been toying around with the Touch since yesterday. It turns out that I have a 2nd generation machine, which means no jailbreak for it yet (as far as I could google… feel free to correct me). Now, I’ve always steered clear of apple, not out of spite og dislike for their products but mostly because of their price level. I’ve never ever touched iTunes but I’ve spent a fair amount of time and effort to organise my collection of music and make sure I can listen to anything when I want anywhere in my apartment or in the near vicinity. A combination of MPD, icecast, picard, flac and a handful of other nice tools made that possible. So I look forward to being able to integrate the iPod into that system, once it’s jailbroken.
Being a sucker for shiny stuff, I obviously won’t leave it idle until then so I dug out a windows installation, threw iTunes on it in order to sync my music to the little beast.

What a disaster!

I am certainly not at home using windows or an apple application so maybe it’s just me being stupid. But for the life of me, getting music on the iPod wasn’t a pleasant experience.
I used winscp to copy the music (in flac format) to the windows machine but wait, iTunes can’t handle flac… away to google I went only to see that iTunes + flac apparently required me to use mac osx. Not an option! So off I went, downloading the official flac tools and converted the flac music to wav, losing the tags in the process - sigh. But lo and behold: iTunes can read wav. In that case, problem solved. I should be able to just make iTunes convert the wav-files to their stinking aac-format, retag them and the nsync them onto the iPod… but no! You cannot convert wav files apparently, only mp3 and ogg. In that case, let’s convert the wav-files to ogg and then convert them to aac from within iTunes… it only takes about 4-5 minutes per track. iTunes is currently in the process of converting the second out of god knows how many albums. I guess I’ll go to bed soon and hope it’s done when I wake up. In the long run, I’m probably better off doing the flac->ogg conversion in linux, run windows xp in a virtual machine and iTunes in there. At least until I can jailbreak it and use either Amarok or gtkpod.

So much for actually getting music onto the iPod. But during these few hours, I’ve really grown to hate iTunes. I find it slow, buggy, unintuitive, annoying and difficult to navigate efficiently - and this is compared to Amarok, which is generally considered a serious ressource hog! I ran iTunes on a pentium 4 processor, running at 3.2 GHz. The system had 1gb memory and plenty of free diskspace. The windows installation was fully up to date (service pack 3 and all that crap), there’s a decent graphics card in the machine (decent enough to play Civ 4) and correct drivers and 3d-acceleration working. So I really, really can’t understand why iTunes made me feel like I was back in the glorious days of old and obsolete hardware. Some of the slowness seemed to be caused by lockups whenever iTunes interacted with the iPod.

In conclusion: I hate iTunes.

That being said, the iPod Touch itself is really nice, responsive, intuitive and a real pleasure to play with. Getting it set up to my basic preferences was way easier than I had expected, wifi just worked and finding free (as in free beer, mostly) apps that did what I needed (radiostreams and MPD controller among other things) turned out to be easy as well.

I guess apple’s stuff shines the brightest when you combine their hardware and software.

Oh, and did I mention how constrained I felt trying to do anything at all in windows?
</rant>

radio.pl killed the video star

November 26th, 2008

A little while ago, I wrote about a small perlscript for playing internet radio stations. Since then, a few more features have crept in, such as resume support (’radio start’ will play the last station you listened to).
Another idea I had been toying with was adding scrobbling support, so I could submit the tracks to last.fm. Their API isn’t extremely advanced but it did require some information that wasn’t readily available, such as the unix timestamp for when a track started. But thanks to an ugly hack (piping mplayer output to `perl -nle ‘BEGIN { open STDOUT, “>”, $lfmfile or die $!; } print time, “:”, $_;’`, someone please give me a better solution), that was solvable. Another issue I haven’t figured a not-completely-horrible solution to is calculating the length of a track, since last.fm doesn’t want tracks that are shorter than 30 secs (those are usually ads anyway).
But in conclusion radio.pl now supports submitting your tracks to last.fm, if you provide your credentials. Basically, just create a file ~/.radio.cfg with the following content:

lastfm_user = arkanoid
lastfm_passwd = md5:117a520adbd19eff51100215aa7a7fbf

and it should work (provided the radio stream actually contains the proper information in ICY, which at least SomaFM, SKY Radio and Digitally-Imported streams seem to do). You can also add your password in plaintext (without the md5: prefix), but that’s just silly.
The current support is quite ugly so expect breakages. If you want to know what’s going on with the scrobbler, just add –lfmfile /tmp/lfmlog when you start the script and tail that file. Please do that as well, if you submit a bugreport.

Download the radio script
A sample .radiostations file

Please note that compared to the old script which only spawned mplayer, you will now have three processes spawned (mplayer, a perl process for adding timestamps to mplayer output and a fork of the radio script for handling last.fm submission) if you enable last.fm submission (by adding your credentials). This version also leaves the radio.state file behind when you stop it, since it’s used for the resume feature.

Go ahead and break it!

Adding scrobbling support took less than a day, thanks to last.fm’s really simple and quite well-documented submission protocol and their quick response when I asked for a client ID. The only snag I hit, was with the length of a track, “l[0]” in the postdata. According to the documentation, this is optional for radio scrobbling, but in fact you need to pass it along, although you can just set it to zero. I guess my interpretation of ‘optional’ differs from their.

radio.pl on last.fm screenshot

Grey java windows

November 18th, 2008

A problem I’ve hit many times is the grey window java issue, where java-windows will be all grey and have no content. Danske Bank uses java for their homebanking solution and for every transaction a java-windows pops up. So this bug meant no homebanking for me (or rather, forced me to use a windows-based PC for paying my bills).

Today however, I stumbled across a mail on the awesome mailing list mentioning a tool called wmname that apparently solves this issue, by setting a proper netwmname… and lo and behold, this small (53 lines of C code) program actually made homebanking work again \o/. Just compile, install and run it with an argument (the name of your window manager, could be anything).

Is this awesome? (y/Y)