Mystery is important, and so are stories

Most who played The Longest Journey will probably remember unexpectedly stumbling across the name of its writer inside the game. At the entrance of a movie theater, the player can look at a movie poster for “A Welsh Ghost Story, written and directed by Ragnar Tørnquist”. I always wondered whether this was a reference to something he had actually written, foreshadowing something to come later or simply his way of inserting his name into the story.

Then some years went by, the sequel Dreamfall was released, and while I eagerly await Dreamfall Chapters which is due to be released this fall I had mostly forgotten about this little cameo. Then here the other day, Ragnar Tørnquist posted a link to a screenplay called “In the Dark Places”. And the interesting part is that the working title had been “A Welsh Ghost Story”! So not only does it exist, but we’ll get to read it as well. He also posted another story, “Rules are Rules”, which he now considers a sort of precursor to The Longest Journey. I’ve only skimmed parts of them so far, but both look like interesting reads.

Hvordan få fine farger i git

Mange prosjekter bruker git til versjonskontroll, så de fleste utviklere har brukt det på et eller annet tidspunkt. Dessverre (og til min irritasjon) ser det ut som standardinnstillingene til git-klienten bruker samme farge på all utdata. Den har heldigvis innebygget støtte for bruk av flere farger der det er hensiktsmessig, som er noe av det første jeg slår på når jeg setter opp git på et nytt system.

Med farger får vi blant annet tydeligere markering av hvilken gren vi står på, men den viktigste fordelen er at differ (både endringer som ikke er commitet og eldre) blir fargekodet. I eksempelbildet ser vi klart hvilke linjer som er fjernet, lagt til eller forblir uendrete siden de er merket henholdsvis rødt, grønt og hvit (standard). Dette gjør det mye klarere og lettere å få oversikt sammenlignet med å manuelt forsøke å se hva som fjernes eller legges til i et sett med endringer der alle er listet med samme farge .

Eksempel på git med fargerSå som en huskelapp til meg selv og andre, kjør:

git config --global color.ui true

for å  slå på farger i git-klienten. Det er også mulig å spesifisere mer detaljert i hvilke situasjoner du ønsker farger og ikke, se dokumentasjonen for detaljer.


I’ve spent ages looking for a music video and I finally found it!

Those of you who know me, might know I’ve been searching for a music video I remember seeing when I was younger. I’ve at least asked friends about whether they might know it from time to time over the years in the hope that someone would recognize it. However, all I had to go one was vague half-remembered details, since I did not remember anything regarding the name of the artist, title of the song or any of the lyrics. This of course made it hard to search for, not to mention difficult to explain to others.

What I did remember was some key scenes from the music video and roughly the time period it was from. The description would go something like this:

  • The video was more than six minutes long, and due to its length only parts of it was shown on “Topp 20” (TV show which presented the 20 most sold singles in Norway that week).
  • It charted sometime around 1994-96. Which is a pretty wide range, but about all I could pin down. (Other songs I remember from that time period include U2’s “Hold me, thrill me, kiss me, kill me” and Nick Cave and Kylie Minouge’s “Where the wild roses grow”).
  • It featured among others: some exploding barrels, a cave and a mask (some sort of treasure hunt?) and a man attempting to save a woman in a raft approaching a waterfall. The man has climbed a nearby tree and tries to catch here when the raft passes beneath an overarching branch.

As I mentioned, I’ve asked various people about this over the years, and while some have said it sounded familiar, no one really knew what it could be. I have pondered various approaches, including going through each and every entry which charted in that time period. The obvious problem is that it would take an enormous amount of time to go through them all. We are talking about a list with twenty entries which was updated weekly, which effectively means 20×52 songs, and while songs staying multiple weeks would probably bring the number down somewhat it is still a large number. Disregarding the time it would take to watch all of them, even though the lists are posted online along with plenty of the music videos these days, there is no guarantee the video I was looking for would be available somewhere.

So I haven’t really searched all that actively lately, though here the other day I ran across review listing top 10 music videos from the ’90s. Since I didn’t want to get my hopes up, I mainly watched it for the fun of it and expecting to see some songs I had completely forgotten about. And then, when talking about one of the songs, the reviewer mentioned “Oh, and by the way, this video had a sequel” and showed some random clips which seemed eerily familiar. So I looked up the artist on Wikipedia and skimmed the list of singles released around that time period, then saw if I could find the music videos for them. And indeed, after roughly 17 years I had randomly stumbled across the music video I was looking for.

The video in question? Meat Loaf’s “I’d lie for you (and that’s the truth)”. In retrospect, maybe not the best song in the world, but I was really happy to finally solve an old puzzle and see it again.

Debian bug squashing party

Last weekend I attended a Debian bug squashing party, organized by NUUG, Skolelinux and Bitraf. In other words, roughly nine people gathered in front of their computers in the same room, trying to fix bugs and make Debian better.

First we were introduced to some of the tools and how to interact with the Debian BTS. Then we looked at the list of Release Critical bugs currently affecting Debian. At the time, there was more than 1000 bugs which would prevent a new release. Since this is too many (Debian require the number to drop to zero before making a release) we took a look at some of them.

First we looked at a bug report about a program crashing at startup, while getting to know our way around the BTS. We all tested to see if we could reproduce the issue in various environments. I was the only one who got the crash in my virtual machin running Sid (yay!). However, the exact same version of the package would not crash on Ubuntu Saucy, so the underlying issue was assumed to reside in one of the dependencies. We gathered a list of which versions/environments we had tested along with the results and a diff of the changes in dependencies from a working version to the crashing one. We submitted this as a comment to the bug report.

Next up, we looked at various bugs which had been filed as a result of failing rebuilds. A lot of them had a common cause, compilers have become stricter about imports, so some programs need to explicitly import libraries the compiler would add automatically in the past. One bug was picked as an example, and we all looked into it in parallel, attempting to patch it and get it to build. Related to this, we went through the process of installing dependencies, building the package, generating a diff and adding it as a proper patch.

After getting acquainted with the various tools and parts, we were let loose, all tasked with finding a similar bug and hopefully fix it by the end of the day. After some back-and-forth, I got a working patch for one of the bugs and submitted it. (Looks like another patch was used instead, but it also looks better than mine. Anyways, the important thing is that the package is now working again.) For a total list of all the bugs we looked at, see here.

All in all, it was a fun and nice experience. I had looked at most of the tools previously, but it was nice to have someone who were more familiar with them and would answer questions when someone ran into issues. I was also pleasantly surprised how easy (relatively speaking) it was to fix an issue, even an FTBFS one in packages I had never heard about.

Richard Stallman holder foredrag i Oslo førstkommende fredag

Norwegian Unix User Group (NUUG) og Friprog-senteret har invitert Richard Stallman til å holde foredrag i Oslo fredag 1. Mars. For de som ikke vet det, er Stallman (også kjent som rms) en av initiativtakerene til friprog-bevegelsen, samt grunnlegger av Free Software Foundation og GNU-prosjektet. I tillegg har han vært involvert i utviklingen av GCC, Emacs og selvfølgelig programvarelisenser for fri programvare, deriblant GNU General Public License (GPL).

Foredraget vil handle om fri programvare og GNU-prosjektet. For mer detaljer, se NUUG sin informasjon om arrangementet.

My list of virtual machines

list_of_vmsThought I’d share the setup I have for virtual machines, how I use them to triage bugs and experiment with various software.

First a small digression, since the observant reader will notice I am using Virtualbox. When I first discovered and started playing around with virtual machines I had a computer incapable of hardware supported virtualization. I discovered this rather quickly since every virtualization solution I tried failed to work because they all required specific CPU features. After testing several solutions, I settled on Virtualbox because it also supported software-based virtualization. I’ve later replaced that machine, and while my current computer supports hardware assisted virtualization I’m still using Virtualbox as it is straight-forward and I am familiar with it. I did briefly try a couple of other solutions when I got my new computer, but didn’t find any obvious advantages they had over sticking with my existing setup.

Now, the machines. I have a set of the currently supported Ubuntu releases, organized by their code names. (Yes, I’m aware 11.04 reached end of life a while back.) They come in handy when confirming bugs or trying to track down which release something broke (or got fixed). My main use case is: load up the relevant release a bug was reported against, verify it is reproducible there, and then check whether it is also present in the latest development release.

All are kept more or less up to date, to make sure I have the latest version of libraries and other software when attempting to reproduce bugs. When I started triaging bug reports I used to simply install the software on my main system and check if the bug was reproducible there, though I quickly changed my approach for several reasons. Mainly because my main system wouldn’t easily allow me to test with multiple releases, but also in case my setup or set of installed packages would produce a different result than a system out of the box. The latter may not always be relevant, but there are some cases where it matters. For instance, say a program fails to run without a specific library which is not installed as a dependency, however since I already have installed the library for other reasons I wouldn’t be able to reproduce the issue. In cases like that it makes more sense to check what happens on a system out of the box.

In addition to the Ubuntu releases, I also run a couple of other systems. Arch Linux is nice and since it is rolling release distribution it usually includes the latest version of programs/libraries before most other distros. It’s ideal for testing whether projects still work as expected with the latest version of their dependencies, or to try out features in newer versions of programs. If newer versions of a library or compiler is released, it’s really convinient to be able to catch any issues early before it ends up the stable version of other distributions. In addition, Arch has a rather different philosophy and approach compared to Ubuntu, which is interesting to explore.

The Debian machine is running Sid (unstable). For most of the same reason as Arch, being able to test the latest version of projects, plus it will eventually turn into the next releases of Debian, Ubuntu (and related derivatives). As Ubuntu is based on Debian, it is of course also relevant for checking whether bugs are reproducible both places in case they should be forwarded upstream. As Debian is currently in freeze for the upcoming Wheezy release, there’s not many updates these days though.

Oh, and there’s a Windows 8 preview I was trying out when it became available. Used it some when it was announced. I’m pretty sure that will expire soon.

A Memory of Light released

“A Memory of Light” is the fourteenth and final book of the Wheel of Time, an epic fantasy series. It was released earlier today, and I’ve already picked up my copy which I had preordered through Outland.
Originally, the title was intended for the twelfth book. Then it grew too large, and was split into three: “The Gathering Storm” (2009), “Towers of Midnight” (2010) and this final volume. It is also the third book Brandon Sanderson has finished after Robert Jordan passed away in 2007. It was sad to see the original author pass away before he had the chance to finish the series. On the other hand, I think Sanderson has done a great job with the last books. He is also one of the best authors I have discovered over the last few years, and I am not convinced I would have done so had he not been chosen to finish the Wheel of Time. He has now taken a step back to focus on his own series and books again, and it looks like he already have plans to keep himself busy for a while.

Almost 23 years and thousands of pages since the first book, it is time to finally figure out how this story ends… At the end of the previous book most of the characters were joining forces and preparing for Tarmon Gai’don, The Last Battle. This is the event the books have been leading up to; the final confrontation between good and evil.

Steam for Linux beta tilgjengelig for alle

Som en tidlig julepresang har Valve gjort betaversjonen av Steam for Linux tilgjengelig for alle. Steam er først og fremst Valve sin klient for digitalt salg av spill, men håndterer også oppdateringer, flerspiller og mye mer. Etter at Valve annonserte at en Linux-versjon var underveis og en privat beta som startet i Oktober, er nå betaen utvidet slik at hvem som helst kan teste den ut. Inntil videre er Ubuntu 12.04 og senere versjoner støttet, men det virker ikke utenkelig at dette kan utvides til flere distribusjoner på sikt.

Sammen med Steam-klienten har de også portet flere av spillene over til Linux, på samme måte som de gjorde ved lanseringen for OS X. (I enkelte tilfeller kjører til og med Linux-versjonen bedre.) Samtidig har de samarbeidet med andre aktørerer, blant annet var de med på forrige Ubuntu Developer Summit og de har også hjulpet til med å forbedre grafikkdrivere. Det er spennende å se at Valve satser på Linux, hvilken oppslutning Steam får og hvilken effekt utvidelsen av spillbiblioteket gir.

Hvordan få virtuelle maskiner i Virtualbox til å koble seg til Internett på Ubuntu 12.10

Ubuntu 12.10 ble sluppet mot slutten av forrige måned, og jeg støtte på et par problemer ettter å ha oppgradert. Det rareste var at de virtuelle maskinene jeg har i Virtualbox ikke klarte å få tilgang til noen nettsider eller Internett generelt. Jeg bruker Virtualbox til en del virtuelle maskiner, både for ulike versjoner av Ubuntu men også for å teste ut andre operativsystemer. Siden ingen av de klarte å koble seg til Internett uavhengig av hva de kjørte, konkluderte jeg fort med at problemet lå i Virtualbox. Dette ble bekreftet etter en kort runde detektivarbeid der jeg fant en relevant feilrapport, både for Ubuntu og Virtualbox.

Som det kommer frem av Ubuntu sin feilrapport og Virtualbox sin er den underliggende årsaken hvordan Virtualbox sender DNS-spørringer. Det ser ut til å kun gjelde maskiner der nettverkstilkobling er satt til NAT, som er standard for Virtualbox.

Heldigvis er det mulig å få ting til å fungere igjen. Ved å åpne en terminal og kjøre kommandoen

VBoxManage modifyvm "maskin_navn" --natdnshostresolver1 on

vil den virtuelle maskinen heller bruke vertens DNS istedenfor. Dette fungerer uten problemer, men må endres for hver enkelt maskin.

Håper dette var til hjelp for andre som har støtt på samme problem.

Ubuntu Quantal Alpha 3 kan prøves ut

Forrige torsdag ble den tredje alfa-versjonen av neste Ubuntu-versjon (kodenavn Quantal Quetzal) tilgjengelig.  Ifølge den foreløpige planen vil den endelige versjonen være ferdig 18. Oktober. Ubuntu følger seks måneders utviklingssykluser, og siden forrige offisielle versjon kom i April, betyr det at vi nå har kommet halvveis. Dette er dermed et godt tidspunkt til å teste den kommende versjonen for å se hvordan ting fungerer og rapportere feil mens det enda er god tid til å fikse dem.

Selv har jeg hatt utviklingsversjonen kjørende i en virtuell maskin i lengre tid nå, og det meste ser ut til å fungere. Den største endringen hittil er i stor grad nyere versjoner av mesteparten av den inkluderte programvaren. Bortsett fra enkelte småfeil fungerer det meste problemfritt med tanke på at det er en utviklingsversjon med hyppige endringer.