
Short description: Reads PDFs and adds them to the ledger with correct values.
Year: 2020-ongoing
Language: PHP, JavaScript, TypeScript
Tools: React, Nodejs, Nginx
Source: github.com/Senth/accounting/tree/migrate-to-nodejs
I got tired of having to manually add all my international invoices to my ledger, as it requires a lot of steps checking the exchange rate and calculating win/loss from the invoice date until it was paid.
So I started working on a prototype in PHP and react. When I got the business logic working and all the difficult PDFs working I decided to migrate the backend to nodejs.
What I've learned the most so far is how to effectively split the frontend and backend so that the application doesn't become a mess and is easily testable.
Short description: Remember your wins by adding them to a list
Year: 2018-2019
Language: Java/Kotlin
Source: github.com/Senth/remember-my-wins
Very simple (but intuitive) Android app for remembering your wins, to be grateful, and various happenings.
The information can be stored either in the cloud through Google Firestore or locally through Sqlite
Short description: Simple app for adding manual transactions to balansbladet.se
Year: 2016
Language: Java
Source: Not public
I use a service called Balansbladet.se for keeping track on my economy. But the site isn't very user friendly, especially when adding manual transactions. So I took things into my own hands and developed a small app that does just what the site was bad at; adding manual transactions.
As Balansbladet.se doesn't have an API I login through a Java browser and parsed the HTML response to get the right information and POST methods to add new transactions.
I learned a lot about the HTTP protocol, parsing text, Android App development, and Sqlite during this project..
The video below is a sales pitch to Balansbladet.se; the linked clip starts half-ways as that's when the demonstration of the app starts.
Short description: 2D sidescroller for Android and PC with ability to create and share maps
Years: 2012-2016 (never released)
Language: Java
Source: github.com/Senth/voider
2D sidescroller with focus on creating your own maps and uploading them (á la Little Big Planet). The maps and enemies would automatically get synced (within seconds) to another device if you wanted to test the map on your phone. You could also test the map directly from the editor. Publishing maps, downloading, rating, tagging was all functional.
Decided to discontinue the project since there was at least 2 years left of polish before it would be publishable. I also wasn't fully sold on the idea.
Short description: Play together with an AI in StarCraft: Brood War
Year: 2012
Language: C++
Source: github.com/Senth/bats
Master Thesis: A Communicating And Controllable Teammate Bot for RTS Games
One of my favorite projects so far. It was a blast to build an AI for StarCraft; a game I hold dear.
We asked how much information and control a player wanted from a teammate bot.
Our results showed that inexperienced players didn't want any control;
whereas experienced players wanted to have some control over the bot.
All players wanted information about what the bot was doing.
Short description: Bot for Spring RTS Engine using goal oriented action planning
Year: 2010
Language: Java
Source: github.com/Senth/alice
Bachelor Thesis: Adaptive Goal Oriented Action Planning for RTS Games
The focus for this project was to create a goal oriented bot for Spring RTS instead of using conventional state-machines with limited information.
I learned a lot about goal oriented action planning; a design I later improved on and used in my master thesis.
Short description: Top-down shooter; kill bugs with tanks. School project together with 9 other people spanning 6 months.
Years: 2009-2010
Language: C++
Source: github.com/Senth/bugtanks
I designed the AI for the bugs which used potential fields to find the players. We did everything from scratch using our own developed engine.
Short description: Simple timer for Mastermind meetings
Years: 2017-2018
Language: Javascript, php, css
Source: github.com/Senth/mastermind-timer
Demo site: https://mastermind.senth.org
During 2017 and 2018 I was part of a mastermind group. We almost always went overtime, so I created a simple and effective timer to keep track of everyone's time.
Short description: My personal development blog I write articles on
Years: 2015+
Language: English
Link: https://matteusmagnusson.com
During 2017 I decided to focus fully on the blog for a while and wrote a whole lot of articles during that time. After a while I ran out of things to write about and decided to take a break from writing.
home-control Controls the lights in my apartment through a web API. But also has internal schedules to turn on/off lights depending on if the sun has set, someone is home, a certain device is turned on.
reality-check Reminds me to check-in on certain parts of real-life that I can forget
facebook-cli Automatically wish friends happy birthday on FB; and schedule FB messages
tankar-for-dagen Download all/latest episodes from "Tankar för dagen" on SR
discourse-map Fetch locations of all users on a Discourse forum and add it to a Google Spreadsheet
the-game Puzzle hunt implementation. If you've been to Dreamhack it's similar to Dreamhack Game
MaterialShowcaseView Fork, but fully reimplemented Android Showcase animations
enhanced-modules Factorio (game) mod, added more modules
enhanced-combinators Factorio (game) mod, added combinators with more functionality
brigthness-adjuster Adjusts desktop monitor levels automatically depending on the light in the room. (and redlight depending on sunset time)
mess Project for monitoring income, expenses, and setting a budget
backup-script Full and partial backups of my server
letsencrypt Automatically get a SSL certificate from letsencrypt and create an nginx (and maybe apache vhost) conf when done