
Portfolio
Smaller apps live in the coding blog below.
Desktop: Industrial Measurement Solution + Realtime automation
Desktop: JPEG Autorotate photo rotating app
UX Design Concept: Learnable Regular Expressions
Online store redesign for enhancing discoverability
Mobile alarm clock sure to wake you up: EvilAlarm (Qt/QML)
Web UI redesign: Moodle Quiz UI Redesign
Mobile game: The Great Boogie Hunt
Web: Electronic Exam Solution (2006)
Desktop Diagram App: ReDash (Java)
UX blog
The Why and the How: Usability testing
When creating a digital service, there is often a rush. Often we want user-friendly experiences…
Conceptual Modeling: A Key to Great Communication While Building Complex Systems
Understanding the core concepts and their interrelationships is the foundation of any software system. Misunderstandings…
The Risks of Modal User Interfaces: A Deep Dive
I love how much power understanding the fundamentals of UI/UX design can give you to…
Product and framework thinkers: When developers and UXers don’t get each other
See also: Usability and being human blog Developers and UX professionals often seem like beings…
Rethinking Usability Education: Bridging Theory and Practice
Introduction During my working life I’ve taught some trainings and lectures on UX and courses…
User Experience Design in Open Source: Inviting the Users
6 min read Listen (requires a Medium account) In any software project, we need to…
UX Design Concept: Learnable Regular Expressions
Read article now → Reach: 91K~1700 recommendations (Hacker News, Reddit, Twitter & Medium) Regular expressions…
Test driven development and usability testing
See also: Usability and being human blog Robert Martin spoke charismatically about test driven development…
UI Design: Balancing User Needs with Progressive Disclosure
The Problem As your platform matures, the number of features inevitably increases. While some users…
Moodle/open source usability talk slides
Usability and Users’ Experiences in Moodleland presented in iMoot 2010
Coding & education blog
Thoughts on concurrency and ubicomp development
Not actually my devices, in case you were wondering It has…
Qt Widgets Password Dialog with Caps Lock Check
Checkout on GitHub This is a dialog. There’s really nothing very particular about it; just…
App: Merge Qt translation files
Checkout on GitHub Sometimes you can end up in a situation where you have multiple…
Adjust QTableView height according to contents
Sometimes we need to show all contents and get rid of…
Getting Twincat XAE to function on MacBook Pro
I finally got sick and tired of all my windows laptops breaking physically one way…
Web: sleepCal
A sleeping calendar for circadian rhythm disorder patients (G47.2). Built for a friend in 2012….
Advice for someone getting started with learning Qt
Spend as much effort as possible in learning to use Qt’s Model View Delegate functionality….
Connecting radio buttons to QSqlTableModel in Qt
You would guess this would be pretty trivial. Guess again. I was looking for a…
Future proofing learning in software development
Authors: Olli Savolainen and Daniel Schildt Olli: In my opinion, it is important in the…
Reading in an .sql text file into an SQLite database in Qt
For unit testing, I needed to read ForceProof project database into an in-memory SQLite database,…