Open source projects
Yzis
Yzis was a project to create a Vim-like text editor.I implemented LuaUnit tests for undo-functionality.
KDE
The KDE® Community is an international technology team dedicated to creating a free and user-friendly computing experience, offering an advanced graphical desktop, a wide variety of applications for communication, work, education and entertainment and a platform to easily build new applications upon.I have been triaging bugs for KDE in various applications. I have confirmed the issue, asked for more information from the reporter and clarified the issue so the maintainers can more easily decide what to do with the task.
Triage and clarification of text editor issue
Triage, clarification and end user communication
Confirmation of and clarifying an issue
Own projects
js_form_dependency
JavaScript-library which directs filling of forms according to users' choices. This was created before KnockoutJS, AngularJS, React and other such libraries which do this and a lot more.
Dependencies can be created between fields in forms and they are triggered by the decisions user makes. These triggers can be e.g. inputting or removing a value, or inputting a certain specified value. This can affect other fields by, for instance, disabling, hiding or removing values from them.
Effects and triggers can both be defined by custom functions.
window.addEvent('domready', function() {
new DependencyManager('firstText', 'firstCheckbox', 'wipe');
new DependencyManager('firstText', 'secondCheckbox');
});
Ape

Top down scrolling 2D shoot'em up game, implemented in Python using pygame library.
The game features three immobile enemies shooting at the player. Includes two different weapons, two types of terrain and generates the terrain randomly for each game.
Randy
Random exercise producing program for "card deck training", implemented in PHP.
Retrieves an exercise name and random repetitions from a configuration file and outputs the exercise on the screen. Supports outputting a list comprised of several exercises.
Example session of interactive command line usage. The user ran the program and pressed enter twice, and finally typed q and pressed enter to exit.
php cliRandy.php back extension 6 shoulder bridge 2 tiger pushup 5 q
Sample source code:
/**
* @return array $exerciseData the main data format. @see Exerciser
*/
private function _getRandomExercise()
{
$routineData = $this->_routines[mt_rand(0, count($this->_routines) - 1)];
return $routineData;
}
/**
* @param array $exerciseData the main data format. @see Exerciser
* @return int $repetitions
*/
private function _getRandomRepetitions(array $exerciseData)
{
$repetitionData = array_pop($exerciseData);
$repetitions = mt_rand($repetitionData[0], $repetitionData[1]);
return $repetitions;
}
/**
* @param int $number
*/
public function showExercises($number)
{
$exercises = array();
for ($i=0; $i < $number; $i++) {
$exerciseData = $this->_getRandomExercise();
$reps = $this->_getRandomRepetitions($exerciseData);
$exercise = key($exerciseData);
$exercises[] = array($exercise => $reps);
}
$this->_sendToViews($exercises);
}
Sample unit test:
public function testDataFormat()
{
$exerciser = $this->exerciser;
$exerciser->showExercises(1);
$firstExerciseSeriesData = array_pop($this->outputCapturingView->messages);
$firstExerciseData = array_pop($firstExerciseSeriesData);
$firstExerciseName = key($firstExerciseData);
$firstExerciseReps = array_pop($firstExerciseData);
$this->assertGreaterThan(3, $firstExerciseReps);
$this->assertLessThan(10, $firstExerciseReps);
$this->assertEquals('test', $firstExerciseName);
}
OPS-editor

Curriculum planning editor, implemented in VB.NET and using an Access database.
Curriculum planning had problems with manual error-prone work, which created the need for an application offering features to divide courses into curriculum by year and study module.
The application sums the credit units in the tree view and sums the grand total while supporting the ability to output HTML. Implemented at school during a project course in a four person team, with me writing about 75% of the code and working as the project manager.