Projects
These are various programming projects I have diddled with, either on my own or in the form of contributions of varying significance to open source and free software projects.
Just another personal homepage
These are various programming projects I have diddled with, either on my own or in the form of contributions of varying significance to open source and free software projects.
Developed for the distance education service at Department of informatics, Deliverandum is a web application for managing exercises in an educational setting. Administrators can plan a semester's worth of exercises, student assistants can manage their work loads, and users can deliver their work and check the results of prior exercises. This software was/is in production in the Spring of 2010 and 2011, and it was decided to release the code under an open source license.
It is based on Java and Spring 3.0, and makes use of Project Lombok.
Feedspace is a distributed, self-organising peer-to-peer network for store-and-forward propagation of messages organised in cryptographically managed hierarchical channels. Working over a number of network transports of varying latency, it is designed to be censorship-resistant and anonymity preserving, especially by trying to make traffic analysis attempts infeasible.
As I am more or less the sole developer and am mostly too busy, this is not yet beta quality, but perhaps some day.
Incluse is a library to test if a candidate path is covered/included/accepted by a given policy for inclusion and exclusion in a hierarchical namespace system.
The most typical application is in filesystems: Your application operates on files conforming to given rules for which files should be considered and which should not. Think rsync. Incluse can do the matching for you.
szbase32 is an implementation of the z-base-32 encoding in Scala.
This is basically the standard RFC 4648 Base32 encoding but with a custom alphabet permutation to make the encodings easier to read and communicate, and also leaves out padding to make the code shorter.
yum-firefoxwarn is a plugin for Yum which deals with the situation where Mozilla Firefox is running while it is being upgraded to a newer version, making the running instance behave unpredictably and eventually crashing. This is a problem in larger-scale environments where users don't control the yum updates and they have long-lived Firefox sessions.
Firefox instability due to silent upgrades creates frustrated users which in turn increases pressure on the support organisations. This plugin will warn users in this situation so that they can restart Firefox in a controlled manner.
yum-firefoxwarn has been in production on all Linux client machines at the University of Bergen since June, 2008.
Sportsfri Aftenposten and Sportsfri Bergens Tidende are Greasemonkey scripts which filter out almost all sports stories from the online editions of the two newspapers, for readers who take no interest in sports. Written in JavaScript and XPath.
Akregator is an RSS and Atom feed reader for the KDE desktop environment, written in C++/Qt. I submitted a few patches to fix some minor issues, which was a fun exercise. I hope to get back to this at some point.
Archibald was a GUI for software package management on Arch Linux. It could be used to browse available packages, install new packages, remove installed packages, and update installed packages. It provided and built on a frontend-agnostic library which could talk to Arch Linux' package management software and read its database.
I wrote it in C# with Mono. It taught me C#, but it also taught me that Arch Linux users like their shells and don't get very enthusiastic about GUIs for tasks like package management. When I stopped using Arch Linux myself, and grew disdainful of C#, the project died silently from loneliness.
An implementation of lolcode in Scala. lolcode is an esoteric programming language based on all the funny things cats get up to. This project was a useful exercise to get up to speed on the awesome Scala language, but there are more up-to-date lolcode implementations out there.
CivQuest was an ambitious project to implement a free clone of the strategy game Civilization in Java and Swing. It had some novel concepts in it, but development eventually died down as more of us no longer had the ample leisure time of a student.
SIPS, the Simple Internet Publishing System, was a SlashCode-style system for blogging or news publishing, and also a YaHoo!-style link directory. It powered a couple of vaguely popular sites in the early 2000s. If nothing else, it earned me a highly questionable entry in SecurityFocus.