Oskar Pettersson bio photo

Oskar Pettersson

Researcher in SECOs and TEL. Coder, beer geek and runner in decline.

Twitter Github



This page describes some of the assorted projects I have been involved in over the years in no particular order.

Redmine Naive Time Log

NRTL is a tool to help you log time for projects tracked in Redmine. In it’s current state it is quite rough around the edges. It does however provide three things.

  • Examples of how to work with the C# Redmine api wrapper
  • The ability to track time for your projects and issues.
  • A platform for refactoring.

Screenshot of UI


The GEM project was a collection of interventions designed to test new technology in the context of teaching geometry and mathematics. For this we developed a set of mobile learning activities to allow students to explore geometry out in the field. For example, estemating hights of buildings on campus or construct a virtual foundation for a sky scraper.

The server part of GEM was implemented in Java using restlet to generate REST services. Furthermore, GridFS was used to store and serve files between the parts of the system. The mobile client was implemented in Python for S60.


In Sweden, our local monopoly decrees releases of new items in their inventory at irregular intervals. They then proceed to release these in the local stores at fixed dates, usually at the start of every month. The problem with this is that supply of good beer is limited and unless you live in a major city or you remember to order online at opening hour, you might not get the beverage you want. This results in new and exciting craft beer not getting the exposure to the general public it arguably deserves.

Ölsläppet aims to mitigate this by providing users a mobile app that reminds users when the releases are happening as well as providing a comprehensive summary of what beer that will be available at what date. The hope we have with this project is to spread a wider spectrum of craft beer to the general public and hopefully make the things that are offered by the monopoly known to a wider audience.

The system is made up out of three parts: the crawler, the repository and the mobile client. The crawler polls the terrible public API, which is just a large XML file and generate change events based upon what differs between the freshly collected data and the old cached one. The crawler is available on github. The middleware receives the events from the crawler, stores these and keeps a database of all the available beers and their release dates, as well as notifying the mobile clients through pushes messages. The mobile client can receive updates and keep a list of beers that have been released or are about to be.


AMULETS (Advanced Mobile and Ubiquitous Learning Environments for Teachers and Students) focuses on letting teachers explore educational scenarios involving indoors and outdoors activities. The project spanned over seven years, and has been the source of over 25 publications. The parts of the project I was involved in implemented two learning scenarios, one in history for grade six and one in biology for teacher students at university level.

This server part of this project utilized Debbie, our own activity engine implemented in PHP. Furthermore, two clients were implemented to support the outdoor/indoor premesis of the project. The first onene was a web client built in PHP/JavaScript. It supported real-time chat, dynamic activity updates and one-way audio, video and picture updates. The mobile client on the other hand was implemented in Python and in turn supported the creation of all of the previously mentioned media.


Tantkaka (Aunt cookie) is a small crowd-sourcing project I initiatied to find out which cookie was the most “aunt cookie”. In Sweden, it is somewhat common to refer to a cookie or biscuit as an “aunt cookie” when it has certain dry properties prefered by older ladies. Most of the sweets I prefer seems to fall into this category (right along with körsbär i likör..) which made me curious to find out if my taste in sweets somewhat corelated with what the hive mind thought had the higest level of “aunt cookie” properties.

This project ended up pitting cookies against one another to find out which of them is the most tantkaka. This was done by presenting a choice of two different cookies and then letting the user click on the one that in their opinion is the most tantkaka. After a few thousands of individual votes, the cookie that came out on top is drömmar.

Tantkaka was implemented in PHP using the Codeigniter framework with our own model extensions. The client side was handled by a minimal JavaScript implementation with jQuery for ajax and eyecandy.


The MUSIS2 (MUlticast Services and Information in Sweden) project was an international project for developing methods and mechanisms for facilitating communication on mobile platform. My part in this was implementing a MMS portal that helped SMEs convert media into mobile formats for usage in MMS messages. This portal was largely implemented in Java and relied heavily on SOAP services.

Open Science Resources

Open Science Resources brings together a group of museums and science centers from across Europe to provide top quality digital assets for dissiminating their exibithions online in a standardized way. This is achieved by utilizing open standards for both content and educational pathways to guide learning and making the content interoperable with other repositories and learning managment platforms.

The OSR portal itself is implemented using a customized Joomla as a base. Our part in this is the mobile support of the platform, making sure that the platform is usable both trough mobile phones and tablets.