I know <a href=“https://lobste.rs/~Aks” rel=“ugc”>@Aks</a> from IRC. He works on KDE Software, has made many lovely games and I even use his <a href=“https://codeberg.org/akselmo/Revontuli” rel=“ugc”>colorscheme</a> in my terminal! Please introduce yourself! I’m Akseli but I usually go as <a href=“https://akselmo.dev/about/” rel=“ugc”>Aks</a> on the internet. I’m in my 30s and I’m from Finland. I’ve liked computers since I was a kid, so naturally I ended up doing computer stuff as a day job. Nowadays I work on KDE software at TechPaladin. How did you first discover computers as a kid? I was 3-4 years old. We had an old 386 DOS computer and I usually played games like Stunts on it. I was always behind when it came to hardware. While all my peers at school would have PS2s, I played on NES and PS1. Over time I just liked to play and tinker with different kinds of machines, mostly old left-over computers. But games were my main hook, I always wanted to make my own. And <a href=“https://akselmo.dev/tags/gamedev/” rel=“ugc”>I did</a>! What were your first games like? My very first game was with FPS Creator when I was ~13. My friend and I had some inside joke about a game with tons of enemies and a gun with 6 bullets, so I ended up recreating that. The game is really bad, but that was sort of the point. The next game I made when I was 18 or so, with Unity. Similar theme, but this time the enemies were dancing and bouncing skeletons, and you had a shotgun. It was so silly. I then made a roguelike, and 3D platformer, and FPS called <a href=“https://akselmo.itch.io/penance” rel=“ugc”>Penance</a> that has about 19k downloads. You can find <a href=“https://akselmo.itch.io/” rel=“ugc”>my games</a> on Itch. Lately though, I haven’t had the energy to finish my game projects e.g. Artificial Rage: <a href=“https://codeberg.org/akselmo/Artificial-Rage” rel=“ugc”>https://codeberg.org/akselmo/Artificial-Rage</a> I sank a fair few hours into Penance! I also really liked the <a href=“https://akselmo.itch.io/holiday-present-hunt” rel=“ugc”>Christmas game</a> you made your sister. Do you ever put Easter eggs in code or often make projects for others like that? I put some Easter eggs. For example someone complained that in Penance all the weapons look like woolen socks(?). So I added a pair of wooly socks in the starting area. I also proposed to my wife with a game, which had a small hallway with pictures of us. It was a fun little project, but a bit cut short since I tried to work on it as a secret, which proved difficult! We have made a <a href=“https://tecsiederp.itch.io/still-rose” rel=“ugc”>few</a> <a href=“https://tecsiederp.itch.io/nebs-island-adventure” rel=“ugc”>games</a> together. She went to a web-dev bootcamp but doesn’t code anymore, although she gladly works with me on various game projects. How do you ideate the game play, style and such things? While playing, I usually think it “would be cool if I had this game but changed this and that…” which provides a great starting point. Then it just naturally evolves into it’s own thing. Penance was pretty much me going “I want Quake but with random generated levels” but then I ended up making a campaign with handcrafted levels to it anyway, beside the random generated endless mode. Really, I just make things I want to play. People liking it is just a bonus. One of my favorite game projects is <a href=“https://akselmo.itch.io/castle-rodok” rel=“ugc”>Castle Rodok</a> because it is full of lore about my own RPG world. It’s not very popular, but I like it a lot. It was a passion project. What languages and technologies did you use? With tools, I’m driven by need more than wants. My day job is all C++, which I’m fine with. I am very much a fan of “C-style” languages. They’re boring and get the job done. For things I want to get running quick, I usually use Python, which I used a lot in test automation for all kinds of devices. Mostly medical devices so I can’t talk about them due to NDAs. Most of my games have been in Unity, but <a href=“https://akselmo.itch.io/crypt-of-darne” rel=“ugc”>Crypt of Darne</a> uses Python and I also have played around with <a href=“https://akselmo.dev/posts/moving-from-c-to-odin/” rel=“ugc”>C and Odin</a> for my game projects. I have tried LISPs and functional programming languages and such, but I just have hard time with them. Especially with those that propose a completely different syntax for me. I haven’t had any projects with Rust but I liked tinkering with it it, besides the <code>‘</code> lifetime syntax which I easily miss. I am very boring when it comes to programming languages, I like to stick with what I know. I wanderlust about what I can create: Games, apps, systems software, drivers… Many ideas but hardly any time. But work comes first, so I mostly work on KDE things right now. For my own things, If I feel like working on a game, I go with the flow and do that. What was your experience with different OS before finding <a href=“https://kde.org/” rel=“ugc”>KDE</a>? I’d wanted to move on from Windows and dabbled with Linux a bunch, but could never stick to it because I could not play any games I owned in Linux. When I learned that Linux systems can in-fact game, it didn’t take me long to switch. At first, I just dual-booted and tested the waters. I tried Linux Mint and Ubuntu, which were fine, but I had some issues with X11 and it’s compositing eating all the FPS, so I gave up for a while. 6 months later I tried Kubuntu which worked really well for my needs. After some time I hopped to Fedora KDE, and there I found out that Wayland completely removed the issue with the compositing eating FPS in games. KDE was also very easy to learn and understand. I didn’t really need to customize it. Then I found an annoying bug I wanted to fix it and started to contribute. What was the first contribution experience like? I had no idea how to do anything with C++. I learned C from scratch making <a href=“https://codeberg.org/akselmo/Artificial-Rage” rel=“ugc”>Artificial Rage</a>, studying how to create a project with CMake and all that, but luckily the internet is full of advice. So I had not used C++ before and just started learning to make that first contribution! I just joined the Matrix chats and asked questions; people were very helpful. Onboarding was great. It wasn’t very big though, I just looked at the surrounding code and made my contribution look the part. Feedback in the merge request on Gitlab helped wrap it up. One of my first larger contributions though was adding region and language settings to system settings. This allowed users to change, for example, date-time settings differently than currency. This was mix of C and C++ and was difficult! Diligently reading the docs, looking at similar code and a lot of build->test->change->build again… it started to work! Then the reviews helped too. But C++ is such a different beast, I’m still learning it to this day. I’d say I know less C++ and more about problem solving. It also helps that the “Qt dialect” of C++ is rather nice. The Qt framework does a lot of the work for you. For example, the signal and slot system or objects having parent objects that clear their children when they’re deconstructed. Qt’s documentation is also pretty great. I’m still learning and don’t have much in depth knowledge, but I hate header files. Modifying the same thing (function declarations) in two places makes no sense. It should autogenerate as part of the compilation. I found some such header generating tools, but they go unused and quietly forgotten. I suspect they would confuse language servers too, so it’s a tooling issue. What are your thoughts on Linux over all, big things which need changing but no one is working on or nice initiatives which you think will improve things, etc.? The Linux desktop is getting much, much better and I see a hopeful future. Will it ever be the main OS, like Windows is? Probably not, unless hardware manufacturers/OEM’s start installing Linux distros by default, instead of Windows. But I’m hopeful we’ll get to 5%-10% worldwide usage. Now that gaming is possible on Linux, a lot of people moved over. Just few weeks ago I installed Bazzite for my friend who has been using Windows forever, but didn’t want to use Win11. Our next step is to make sure accessibility is up to snuff. At least for KDE, we have an accessibility engineer who is brilliant at their job. Then, I think immutable systems might get more popular. Personally I’m fine with either, but for those who view their computer more as an appliance than a computer, immutable systems are very nice: They allow them to jump from broken state back to working state with ease (select different boot entry at startup). Complex software’s never done; improvements are always needed. Accessibility means more than just accessibility settings: Make it easy to install, test, run, etc… If Linux desktops can get more hardware manufacturers on board to install Linux desktop as default, that will certainly help too. Also shoutout to the [EndOf10](<a href=“https://endof10.org/” rel=“ugc”>https://endof10.org/</a> initiative, when I shared it around to my non-nerdy-friends, they were very curious about Linux desktop and I had an excuse to ramble about it to them! In a nutshell: I am hopeful, but we can’t rest on our laurels, we need to stop fighting “whats the best desktop” and work together more. BTW, if anyone reading this has been Linux curious, go for it! Take a secondary device and play around with it there. And I also want to point out that dont be afraid to contribute to things you like in any way you can, be it software or hardware or actual physical world. How do you see it in light of more phone usage, less desktop usage? Have you any impressions of governments or businesses moving to linux? Computers are still widely used where I live, at least within my generation. Those who game especially often have a desktop PC. It may not be top-of-the-line hardcore gaming rig, but they have one to play a bit of Counter-Strike or similar games. Phones are the king of “basic stuff” and for many people a tablet functions as a simple internet-appliance. I can only hope that projects like [PostmarketOS](<a href=“https://postmarketos.org/” rel=“ugc”>https://postmarketos.org/</a> will help to keep these tablets and phones working when the regular android updates stop, to ease the avalanche of e-waste. When it comes to governments and businesses, I wish they did it more. I have heard that in Germany more governments are testing it out. In Finland, I do not know, but I would like to drive more for it. It’s certainly an area where we should try to help as much as possible as well. How can we (individuals or organizations) help? Individual users: Make sure to report bugs and issues, and share knowledge. Do not evangelize or push the matter, just say it’s something you use and elaborate when people ask. Too many times I’ve seen people pushed away from using Linux desktop because people are very… Pushy. As surprising it may be, not many people really care as much as we do! Organizations: Try to adopt more FOSS technologies for daily things, e.g. LibreOffice. Start small. It does not need to be an overnight change, just small things here and there. How many resources do you have compared to the demands of everything you are working on? We’re definitely stretched. We always could use more help, though C++ seems to deter that help a bit, which I can understand. But if I could start from scratch, I’m sure anyone can! Besides, more and more projects use QML and Rust. For testing, there’s Python. What prerequisites are there for contributing? We have Matrix chat for new contributors, where people can ask questions (and answering questions there is also a way to contribute.) All of it is <a href=“https://community.kde.org/Get_Involved” rel=“ugc”>documented</a>. When triaging, I am trying to more often tag bugs in bugzilla as “junior jobs” to make things more approachable. Mentoring etc. is a community effort, and those who are willing to learn will receive help, though we’re all rather busy so we hope people put some effort into trying to learn things too, of course. How could bug reporting be improved? I think we could half-automate bug reports, to make things easier: Gather basic information and ask basic questions upfront, without needing to open a web browser. For crash reports, we use a tool called <a href=“https://invent.kde.org/plasma/drkonqi” rel=“ugc”>DrKonqi</a>: When app crashes, it gathers backtraces etc. automagically and allows the user to type what happened in a field. Something similar for regular ol’ bugs would be great. Games do this with taking screenshots and logs when player opens the bug-report tool. But someone would still have to go through them, which is also an excellent way for anyone to contribute: Go through some bug reports, see if you can reproduce them or not, and report back to it with your system information. Anyone can do it, it’s not a difficult job, just a bit tedious, especially when there’s thousands of bug reports and 10 people going through them. How do you approach problem solving? Depends on the problem! If a bug causes a crash, a backtrace is usually helpful. If not, I go with trusty print-debugging to see exactly where things start acting weird. I like to approach it from many different angles at same time:
-
Sometimes I try to fix the bug to figure it out: Why does a given change fix the bug? The fix may not be the correct fix yet.
-
Of course, a well written bugreport with good reproduction steps helps a lot!
<code>git blame</code> is a good friend, asking people who implemented things can really help. But sometimes I work on code where it just says “moved to git in 2013” and the original code’s from the 90s.
- Talking to other people
- Writing notes down as you try to understand the bug
Anything that pokes your brain in multiple different directions. I really like the idea of fixing a bug in multiple ways to really see what’s needed. How do you determine whether something is the proper fix or not? Sometimes the code just “feels right” or someone more knowledgeable can tell me. Of course, fixing simple visual errors should not need a ton of changes around the codebase. Changes should be proportional to the bug’s difficulty/complexity, but there’s no clear answer. It’s more a gut feeling. What inspires you to have an online presence (in irc, commenting, blog posts etc.)? How do you decide when to make a blog post or not? For blog posts, I ask myself: “Do I need to remember this?” Some are just a note for myself, which others might find useful too. I once deleted my lobste.rs account because it took up too much time. Now that all my work is remote, I kind of miss coffee-breaks and office chitchat, so I hang about in IRC, Matrix, Fediverse, Lobsters etc. to fill my Sims status bar. I still prefer remote work, but I wouldn’t mind hybrid option at times. Also, removing the lobste.rs bookmark stopped me reflexively clicking it. Due to learning I have ADHD and very likely autism, I have worked on myself (mentally) and internalized that I don’t need to constantly go through these sites. Notice the problematic behavior, then cut it out. Whenever I notice I’m stuck in a loop opening and closing the same sites, I’ve learned to close the web-browser and do something else. The hardest part is actually noticing it. Do you have any interesting personal tools? I use your <a href=“https://codeberg.org/akselmo/Revontuli” rel=“ugc”>colorscheme</a>. I journal a lot on a remarkable2 tablet when working, writing down what I have done, should do or notes figuring out problems. Writing by hand helps me remember things too. I made an RSS “newspaper” <a href=“http://codeberg.org/akselmo/rss2remarkable” rel=“ugc”>script</a> for my tablet too, which also shows the daily weather now. I also use <a href=“http://todotxt.org/” rel=“ugc”>todo.txt</a> for tasks, like my own list of bugs and other projects I need to go through. I even wrote an app for it called <a href=“https://flathub.org/en/apps/org.kde.komodo” rel=“ugc”>KomoDo</a>. Then I use Obsidian for any technical notes and know-how, like programming and computer things that are pain to write by hand. When did you migrate to <a href=“codeberg.org/akselmo” rel=“ugc”>codeberg</a>? It was even before Github started getting “AI” stuff. I just got tired of Github being a social media site instead of a good platform. SourceHut would have been nice too, I just didn’t know of it at the time. I’m also wary of the email workflow, but wouldn’t be opposed to learning it.

