My bicycle, sketched on pencil and inked and lightly painted in Krita, #MakeBadArt So, I think it's summer enough to declare that the winter bicycle season is over. I managed to make it through basically the entirety of the winter cycling to and from work, and although it wasn't the harshest winter, I am still proud of that little accomplishment. So, with a decent number of kilometers biking as of…
My Emacs use has changed a fair bit in the past year and especially in the past 6 months. I feel like over time I have almost been ripping more stuff out of my config than adding new things. I started out using Emacs with a very full configuration (Doom Emacs) back in 2019, but eventually ended up creating my own configuration that took a lot of inspiration from how Doom did things. Lots of Evil…
Object-oriented programming is an approach for structuring programs in a way that models concepts and things the program interacts with as containers, which have methods that interact with the information related to those concepts and things. At a very basic - and arguably somewhat incorrect - level it means representing each of your things as a table, which contains both data and functions.…
There has been a lot of chatter and drama about the addition or preparation of software capabilities related to age verification in the systemd project and the freedesktop.org project. These capabilities come in response to state laws introduced in Colorado and California, which mandate that operating systems must provide means for collecting the user's age/birth date and a separate interface for…
Us internet people rely on a bunch of services to conduct our daily goings-on. Not only do we consume a lot of social media, but we also do online shopping, digital banking, various forms of communication (email, instant messaging, etc.) and we might frequently utilize cloud storage for accessing photos, documents and so on. Most of us also have devices that are hooked up to an account from…
Data structures and algorithms are often known as the first real test of a computer science student, which weeds out the people that aren't really into programming that much. And it certainly is a complex topic, which is why we will only scratch the surface and try to look provide a general overview to serve as a jumping off point for further reading. We will have a look at the basics comparing…
Beyond the knowing the basics, writing more featureful programs requires the programmer to understand structure in order to manage the growing complexity of the code. A long program, spanning thousands of lines of code can easily become a quagmire if it's all in one long file, with functions and variables places haphazardly throughout without rhyme or reason. Over time the pace of development,…
The further we go, the more complexity we begin to introducing into our programs. As our programs become longer and more elaborate, it gets harder and harder to avoid making mistakes and then finding and fixing them afterwards. A good programmer isn't one who never makes mistakes, such programmers do not exist. Instead, a good programmer takes precautions to minimize the amount of bugs and to make…
In this chapter we will step down to a lower level to get an idea of how computers actually process data. Most of the time we don't need to work at this low level and many people have had careers where they have not had to look at instruction sets or assembly language a single time. However, knowledge is power and knowing how the computer might represent higher-level constructs is useful in…
Last year in the spring I started biking to work after fixing up the city hybrid bicycle I had used since secondary school. That bike served me quite well over the latter half of last year and the first half of this year. However, I did have to do some regular maintenance on it and also get it fixed up a few separate times at the bike shop to get some parts replaced or fixed up. Aside from the…
Input and output are key to computers. Without them, a computer is basically just a space heater, producing only a slight temperature increase with the computations it runs. Input and ouput (I/O) are how we dynamically bring data into our programs and how we are able to view the results of our computations. It also allows us to store data persistently in the file system on our disks. Technically…
This is the fourth chapter in the series on covering programming fundamentals for newcomers to programming and for those refreshing their basics. Today we'll go over Lua's tables and how they can be used to construct compound data such as lists or structure data into fields of keys and values. Compound data Similar to how we learned how we can form compound expressions to make more complicated…
This is the third chapter in the series on covering programming fundamentals for newcomers to programming and for those refreshing their basics. This time around we will cover the basics of branching and conditional execution, allowing our programs to complete more complicated tasks than they have up to this point, where our programs have been simply linear sets of instructions. The turning point…
This is the second part in the series on covering programming fundamentals for newcomers to programming and for those refreshing their basics. This time we'll first cover what programming is about on a high level and then proceed to play around with Lua a little bit to get The basic principles of programming Programming, at its most basic, is an attempt to model various processes that transform…
Prologue: what the hell am I even talking about There are two things happening simultaneously: the world is becoming increasingly digitalized while at the same time the skills that underpin this digitalization seem to be getting devalued as companies seem to increasingly believe that software engineering tasks can be completed entirely using large language models and "vibes". So, as companies are…
I sometimes run little experiments and challenges for myself, especially when it comes to tech and software stuff. I find it fun to try out new tech and see where it goes. Mostly these are just pure entertainment, but often there are little snippets of learning that come along the way. Well, this year I decided to play with the BSD operating systems a little bit. I have been running Linux pretty…
Some time ago I was doing a bit of mindless consumerism and was thinking about buying some Cassette Beasts merch, since I have quite liked the game and wanted to support the devs a little. And in-between all of the hoodies and t-shirts was the official soundtrack, unsurprisingly for the game, on a cassette tape. This got me a bit curious. Cassettes aren't exactly unknown to me, but as someone born…
I have been trying to encourage people to write and read more blogs and moving away especially from corporate social media, but as always discoverability is an issue. It's tough enough to "go viral" on a big social media site with a recommendation algorithm, but being found on the open internet unless someone knows exactly what they are looking for is difficult. Obviously, there existed (and still…
The web has a centralization problem. A good chunk of most people's usage of the web is focused around massive web platforms, such as mainstream social media sites, operated by mega-corporations. These platforms do a lot of things for their users: they allow users to view and produce so-called "content" and usually provide recommendation and discovery tools to ensure their users receive a constant…
Back in 2019 (in the times before time stopped meaning anything), I wrote a blog post about the importance of native Linux releases in which I lamented on the increasing reliance on compatibility software like Proton to handle Linux gaming. I was concerned that this would create unhealthy dependencies on a select few players in the Linux ecosystem and effectively eliminate consumer protections for…
You are a software engineer in a big company and you are heading home in the afternoon. You've still got a meeting or two to do, but since everything is via Teams, you may as well do them from home while lying on the bed or something. So, you open up your Teams in order to join the meeting that you have been asked to prioritize over everything else only to find that it has disappeared. You open…
Back in primary and secondary school, I had two main ways of getting to school: either walking or by bicycle. This was a pretty common way we got around and I think just about all my friends also had bikes of their own. At least in the autumn and spring, there would be loads of bikes parked in the bicycle parking outside of the school. However, after secondary school I started using my bike less,…
Excel, and the spreadsheet applications like, are incredibly versatile tools. In addition to the regular tabular math, you can generate all sorts of diagrams, apply logic to cells in order to modify their appearance and basically create and manage all sorts of workflows around table data. These tools are veritable swiss army knives of corporate data wrangling. And, as it usually is the case, if a…
Lately I have sort of been doing a little bit of reading of sci-fi classics such as the Dune books and Isaac Asimov's Foundation series. Particularly Foundation was a very interesting read, because it establishes so many core ideas that underpin a significant amount of modern science fiction and some of its gadgets and concepts have been lifted from one IP to the next largely unchanged. So, after…
Over this summer I've been playing around with some solar panels and one of my latest little toys is a power bank which supports 45W and 65W USB-C PD charging. This means that it's capable of charging both my tablet and my laptop unlike the smaller power banks I've had which only support 5V charging. The powerbank in question can also be charged with solar, both with a dedicated solar plug and…
SOMA is a video game by Frictional Games, the makers of the Amnesia games. Matching their usual style, it's a first-person horror game, released back in 2015, so already fairly old by now. I played through SOMA a good time ago and since then I haven't even considered replaying the game, mainly because horror games aren't really something I particularly enjoy. But I did appreciate the game when I…
Over the past year and a half I've been working in the area of "developer experience" at my day job, specifically working on simplifying and abstracting telecommunications APIs and packaging them into a format that regular developers who cannot name all of the components of a 5G network architecture could understand. Doing this, I've been exposed to various kinds of APIs, I've done a little bit of…
It is time for the yearly blog post looking back at the latest Linux Game Jam and peforming a post-mortem on our entry into the jam. Our entry this year was Collateral Damage , developed by me and Tuubi with art work contributed by Maija. Collateral Damage by Samsai, Tuubi Our entry was a game inspired by the many Vampire Survivors type games, where most of combat is automated for you with the…
Typically when I start my PC, whether it be at work or at home, there's a few pages I tend to open. Typically these are subreddits related to various tools I use in order to keep up with changes, potential problems people are having or tips and tricks. Among these sub-reddits that are often open on my secondary browser window is the Fedora subreddit, because I find it fun and useful to keep a…
One common concern raised on various tech forums is that of politics in open source projects (and also software projects in general). Often this discourse rears its head when a FOSS project adopts a code of conduct (we'll get to that) or participates in inclusion and diversity initiatives. Often this is followed by calls to "keep politics out of open source projects" and to focus on "merit and…
Oh, hey. It's an "X considered harmful" post. This cliche was bound to happen eventually, but here goes. Prepare yourselves for hot takes! While browsing through my Mastodon feed, I stumbled upon this post about code folding: I am not a heavy user of code folding (in fact, I don't think I've actually ever used it), but this post made me think. And the more I thought about it, the more I agreed…
Another year, another Linux Game Jam (apart from the years it didn't happen, shush). Naturally, our crack team of developers (thanks once again, Tuubi and Ysblokje, and also Gurnu who was responsible for creating music for us) decided to take on the challenge of creating a whole new Linux game within the ~10 day allotment. The fruit of our labour over the jam was BEAT NOID, an Arkanoid-like with…
The other day I was doing the usual thing of tweaking my Doom-Emacs config to avoid doing productive work. One of the bigger annoyances recently has been the fact that Emacs 28.1 was released, but it is taking some time to make it into distro repositories. So, on Fedora I fairly recently switched to a COPR repository, which carries Emacs 28 with PGTK patches for a nice combination of native-comp…
I've been having a bit of a battle recently with my tablet computer. I've been using a Huawei MediaPad M3 since the end of 2016 when I got it as a gift from my parents after finishing my military training. It was a very good tablet computer back then and in terms of hardware specs, it is no slouch to this day. A lot of modern Android tablets even have worse specs in terms of memory than the…
We are reaching the end of 2021, so I figured it would be nice to look back on the year and all the things that happened. It would be easy to complain about the pandemic and I imagine that's a thing that crops up in many of these end-of-year posts. So, I will pass up on all of that for the simple reason that I am among the least affected by the pandemic. However, I did go into 2021 in fairly low…
For a good while I felt I was over the distro hopping thing. I've used Linux full-time since 2010 and most of the distro-hopping that I've done I did in the first few years, so around 2010-2015. I've run various flavours of Ubuntu on my system, I tried Debian and a few others. Probably the most exotic distro I tested for a while was Sabayon. Eventually I landed on Antergos and then over to…
Back in 2013 Valve launched the Early Access program on Steam. Since then, I've seen and played quite a few Early Access titles. Some have been great hits that went onto get their full releases to critical acclaim, some are still trucking along in the program and some just plain died along the way. It's not easy to do Early Access right. Some games release as Early Access way too early and the…
— NOTE: This is some kind of stream of mind content. Typically I haven't blogged these or I've left them for Gemini, but I am putting this here. It's not really the kind of post you might have gotten used to. Too bad, my blog! — I don't usually have that many games that I am looking forward to these days. I used to be a lot more hyped for upcoming releases, but the Kickstarter golden age pretty…
Three days ago a 125 GB leak of Twitch data , including version control history and source code of the Twitch website, associated tools and client software, information about and source code of as-yet unreleased software, SDKs, creator payouts and more, was published on 4chan. You wouldn't be able to blow the doors open on a company more than this, except by posting readily available access keys…
Yesterday I realized that the RSS of my website had been broken. This most likely happened when I briefly experimented with IPFS and had to change all links to relative links and messed around with my configs to make that happen. This spurred me on to also go around to make a few other changes to some aspects of the site that I haven't liked so much. Firstly, and most notably, I have changed the…
This post is complete speculation and guesswork, but I want to put these predictions out there so that I can eventually play my "told you so" card. My prediction is that Linux gaming is headed for another dark age to the likes of the post-Loki era of the 2000s. Within the span of the next 5 or so years I predict that Linux gaming will be in a state someone would label "dead", or at least more so…
Dear reader, this post was originally written as a part of course work for a Game Project Course in university. As such it makes references to the course and its parameters, which likely isn't relevant to you. However, I have decided to publish this on the blog because I was asked to share it and I also think it makes for good content, but I don't want to rewrite the entire thing purely out of…
About a week or so ago I decided to go shopping around for a new server to host this website and the other services I run here. The server I ran previously was a $5 DigitalOcean droplet, which served me quite well, but after I browsed some competing offerings I noticed that it was fairly expensive for what it offered. Most of the benefits DigitalOcean provides weren't being utilized by me anyway…
This page contains downloadable versions of "Incoming!", a game developed using the Godot Engine for University of Helsinki Game Project Course. About Description You take command of the anti-aircraft weaponry of a destroyer, and your task is to protect your ship from incoming hostile missiles and shoot down the enemy aircraft as they pass. The game consists of 5 levels of increasing difficulty,…
One of the hot topics of discussion in the free software and Linux communities recently has been the return of Richard Stallman to the Free Software Foundation board, which was announced on LibrePlanet 2021 with no prior notice to speakers and staff participating at the online event. Stallman originally resigned after he proposed a poorly-timed, hypothetical defense of Marvin Minsky after the…
I've recently followed a path that many other people in the Linux gaming seemingly have taken. Namely, I got into Valheim. I've kept hearing good things about it, but I got into it only after I got sent a copy last week. Over the last weekend I have managed to already put nearly 13 hours into it. Needless to say, this has basically destroyed any of my productivity, so I'm going to rattle off a…
It's a woefully bad time to upgrade your gaming hardware. In fact it probably hasn't been this bad since the crypto boom that ate all of the Radeons from the market. Not only are we in a pandemic, where everybody is inside and desperate for entertainment, but we are also in a global silicon shortage due to market supply lines operating at reduced efficiency. This means that chip manufacturers…
UPDATE : I have withdrawn IPFS support since the daemon is too heavy and the client likes to mess with my router too much. I will re-evaluate if/when the software improves. I've recently been playing around with IPFS for my own amusement because it seems like a pretty cool idea, although I don't have enough practical experience with it to determine how good is it and for what purposes. But as a…
I really like the Rust programming language, it's basically my top pick for any project where I have control over what language to use, barring really small scripts where I typically go for Python instead. Rust's strict compiler provides some really nice safety guarantees, which allows me to not make silly mistakes and still get really nice performance. But sometimes when Rust's safety guarantees…
Towards the end of a year, it's customary for gaming publications to publish their Game of the Year, sometimes in the form of multiple awards and whatnot. I've often also participated in some form of GOTY selection process, but I have never really hosted my own GOTY. And this one isn't really a GOTY either. Instead, I figured it was a good time to review an entire decade of good games, since the…