Portfolio

Nedan följer en lista av små projekt som jag har haft genom åren, som jag antingen är lite stolt över eller som jag faktiskt har en användning av.

julia2x (2008)

Ett program som i realtid räknar ut s.k. Juliafraktaler och ritar ut dem på skärmen på den då nyss utkomna enheten GP2X. Då GP2X är en ganska klen enhet försökte jag optimera programmet efter bästa förmåga och använde mig i slutändan av en form av “adaptive subsampling”. Noggrannhet var inte ett krav då syftet med detta program endast var att det skulle se fint ut, så om man tittar noga så kan man se att kanterna av fraktalen inte är helt väldefinierade. Jag tycker ändå att resultatet i slutändan blev lyckat, och den genomsnittliga bildhastigheten var ~30 bilder/sekund.

intuosctl, intuosconf (2012, 2016)

När jag 2012 införskaffade mig en ritplatta av modellen Wacom Intuos4 fanns det inte så mycket stöd för de inbyggda skärmarna vid knapparna som fanns på ritplattan. Det stöd som fanns dök upp i själva Linuxkärnan, men det fanns inte så många program som faktiskt använde sig av dem. Då beslöt jag mig för att skriva ett eget, mest för att jag ville kunna använda alla funktioner på ritplattan och för att det verkade som en rolig programmeringsövning. Versionen som jag skrev 2012 krävde att man hade konverterat bilder till rätt format i förväg, men jag uppdaterade programmet 2016 för att det skulle automatiskt konvertera bilder av formatet Truevision TGA (.tga).

I samma veva som jag uppdaterade programmet skrev jag även några hjälpskript i Bourne shell för att kunna ha förinställda konfigurationer för ritplattan, baserat på vilket program man vill använda det med.

Exporterare till eget 3D-filformat (2015, 2016)

Jag har länge testat att göra småsaker i 3D, men jag har alltid tyckt att det är lite bökigt att läsa in olika filformat. Då beslöt jag mig för att göra ett eget format, som jag själv tycker är enkelt att importera. Formatet är baserat på arkivformatet Ar (Unix) för att man ska kunna utöka formatet i framtiden, och 3D-datan ligger helt enkelt i detta arkiv och kan direkt skickas till OpenGL utan att behöva konverteras däremellan.

Gameboy ROM/RAM-kopierare (2016)

Sparfilerna på ett Gameboy kräver att det finns ett batteri i varje Gameboy-kassett som fungerar. Om batteriet i kassetten tar slut så försvinner sparfilerna. Då jag fick mitt första Gameboy julen 1996 så tänkte jag att det var hög tid att försöka spara ner mina gamla sparfiler på en dator medan batteriet i vissa kassetter fortfarande fungerade.

Det enklaste sättet som jag kom på var att använda mig av Transfer pak, som är ett tillbehör till Nintendo 64-kontroller som man kan stoppa Gameboy-kassetter i. Därefter skrev jag ett program till en AVR-mikrokontroller som kunde prata med Nintendo 64-kontrollern, samt ett program till datorn som kunde prata med AVR:en och spara ner datan till filer. AVR:en har en klockhastighet på 8MHz, och protokollet till kontrollern har frekvens på 250kHz. Detta innebär att jag endast hade 32 klockcykler på mig att bestämma mig för vilket bit jag ville skriva/läsa från kontrollern samt att spara undan datan någonstans. I slutändan beslöt jag mig för att implementera protokolldelen av programmet i AVR-assembler för att kunna säkerställa att protokollet implementerades korrekt.

Mina sparfiler är nu i säkert förvar, och jag även skriva tillbaka dem till kassetten om jag så skulle behöva det.

score (2016)

Då jag även har ett intresse för musik började jag att koda på ett litet program som jag kunde använda för att skriva noter med. Jag skrev det för Linux/X11 då det är detta jag själv använder. Programmet är fortfarande under utveckling.