Bitcoin has really gotten a train rolling in the past year. When it first started to rise people thought that it couldn’t get any higher and here we are with bitcoin being worth over 20,000$ at some point.

I never really had the time to look into how a blockchain works and what classifies a crypto currency, but recently I watched a video on it and it seems like anything can be turned into a blockchain and that’s what steemit made use of.

Steemit offers a platform for blogging and uploading videos, all within a blockchain. It also doesn’t use ads to pay creators but rather the feedback of other users. That means if you upvote a video or give it a comment the creator gets paid for that. The users are paid the same way. The more they interact and give feedback the more they get paid. A user that is very active and posts comments that get upvoted has a higher steemit-power. That means that if that user upvotes a video the creator gets more money, because the platform trusts this user to know which content is good.

This seems like great way to encourage users and content creators, since it makes people create actual good content instead of sensational clickbait. So from now on I’ll post things here and on my steemit blog. We’ll see, maybe this wordpress page will become deprecated at some point.



What if?

Happy new year, by the way^^

If you haven’t heard about this game by now you’re probably not into telltale-like games. So even though the chances are slim that you don’t know it I’ll still act like you didn’t.

First of all

If you at any point decide you wanna give them a shot. The first episode of the original game is free so you’ve got nothing to lose and no excuses!

Now I’d also like to point out that even though I enjoyed both games and therefore can only highly recommend them both, it’s not a genre that everyone likes, which is not surprising because it’s kinda hard to satisfy everyone.

So this is about two episodic games, where “Life is Strange” is the original base game that came out in early 2015 and spans over five episodes, which you can pick up 20$ and for only 5$ during sales. You play as Max who came back to her hometown to study photography where she meets her old friend again. Then time travel gets involved and things get pretty interesting. You can rewind and change choices, but even that won’t save you all the time. The first episode gives you a rough idea of what you’re getting yourself into and if you decide after it that it’s not all that bad you can be assured that you’ll like the rest of the game.

Both this game and the prequel “Before the Storm” are accompanied by an outstanding soundtrack. Listen for yourselves:

In Before the Storm you’ll play as Chloe who is the old friend that Max meets in the initial game. The good thing that it’s completely independent of the original game. So if you want to can play that one first. It’s only three episodes for ~17$ and ~11$ on discount. It might get cheaper down the line though. There’s also a bonus episode which isn’t out as of now which will cost extra. It was made by a different studio because Dontnod is currently busy with their new game “Vampyr“.

So for a final thought: Both games are definitely worth playing and even though one might think that making a prequel and handing it off to another studio might ruin the game and the franchise because it would just try to life off of the initial success, the prequel has it’s own story (without the rewind mechanic) and does a good job at telling it. The only thing I’d have to mention about it is the fact that the prequel was in my opinion more entertaining (and by that I mean funny) than the original game, which was a little bit more sad, but that might be because a different studio made it and Chloe got a different voice actor (You’ll get used to it easily, though).

Once again I’d urge you to give it a try, you won’t regret it.


For the longest time my choice for a webbrowser has always been Firefox. I used chrome for a couple of month at one point, but I always came back to FF. Maybe that’s because before chrome was a thing and Internet Explorer was even worse than it is now there was only one alternative and that was Firefox.

I always stuck to it because I trusted Firefox and the company behind it: Mozilla. They always gave me the impression that they are a company that tries to provide an open and free webbrowser that is efficient, open-source, cross-platform and focusing on your privacy, and they still do give off that impression but recently they made some choices that show of their other intentions.

I switched to Opera recently because the new Firefox quantum froze constantly but I intended to come back to FF as soon as that was fixed since I really liked the new look and backend that Firefox got but then I read about how Mozilla remotely installed a plugin without asking for permission. The plugin supposedly showed ads for a new TV series and Mozilla made a deal with the producers of that series. So the way things are currently at I will not switch back to Firefox. Opera is a nice browser with many interesting features like a free VPN (cool, but if there’s no product then you are the product) and integrated ad-blocker, but it was recently acquired by a Chinese company so I’m also not intending to stay with Opera for to long since I would like to use an independent and open-source browser.

If you want a video that sums up the entire issue you can watch this one:

It covers even more issues than the one with the remote installed plugin but the general point is that Mozilla is not the company or foundation that you’d think they are. I feel a little dumb that I just now found out that Mozilla is indeed a profit oriented company even though they also have a foundation which is supposedly non-profit.

Even though I currently use Opera I have some other alternatives for those who now are unsure if they want to continue to use Firefox:

I have not used any of the above so you’ll have to them out yourself and see which one you like.


I recently rented a small server for a couple bucks to play around with it for a month. I never had my own server before that and thanks to discord I (for now) have a reason less to do so, since before that you always needed a voip server (like Teamspeak) to talk to people.

Now that I have one I played around with a couple of things like getting my own domain, email server and proxy. Since I already paid for the server and wasn’t up for paying 5 bucks a month to get my own domain I registered a free one which you can get over at freenom, where you can get .ga, .tk and some other tld’s for free. Now those endings aren’t the most appealing ones but they’re free and you’ll have to get a little creative to find some puns like “”.

After that I tried setting up an email server but the amount of work for it made me skip that after trying it for two days. Maybe I’ll come back to it.

Using PuTTY and a remote server as a proxy

The other two things I used the server for so far were a game/VNC server and a proxy which is farely straight forward when using PuTTY:

Just open your configuration and load a session for which you want to have the proxy. Then navigate to “Tunnels” and set “Source port” to whatever the proxy should be accessible on your local machine. The other settings can be left as they are and then hit “Add”. Now after applying the settings and connecting to your server you’ll have a proxy runnying which you can set your browser to. For FireFox you just need to go to settings, then scroll down in the general tab and click “Settings” under the “Network proxy” category. Then select “Manual proxy configuration” and set the “SOCKS-Host” to “localhost” and the port to the one you configured in PuTTY and that’s it.

Setting up a Counter-Strike 1.6 server on debian

When I set up a game server I chose CS 1.6 as a test which should be straightforwards to set up but all tutorials are quite old so I had to do some tinkering to get it working. Here’s what I did for a server running debian:

Set up a new user:

# useradd -g users cs

install dependencies:

# apt-get install libc6 libstdc++6 wget iptables

Add the ports needed for CS 1.6:

# iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
# iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT

log into the new user:

# su cs

Make a new directory for SteamCMD and download SteamCMD:

$ mkdir steamcmd
$ cd ./steamcmd
$ wget
$ tar xvfz steamcmd_linux.tar.gz

Now you can run steamcmd with “./”, but before that verfiy that the version of steamcmd that you have is genuine, since you’ll be logging into your steam account with it. The link above worked for me but if you want to double check you’ll need to do it yourself.

Other tutorials said that logging in as anonymous would work but I had issues when I did that so you can also try that:

# For anonymous login:
Steam> login anonymous
# Or with your steam account (if you have 2fa it'll ask for the code):
Steam> login [username] [password]

Now let’s install and update Half-Life and CS:

Steam> app_set_config 90 mod cstrike
Steam> app_update 90 validate
Steam> app_update 90 -beta beta validate
Steam> exit

You should now have a Steam folder in your home directory. The game should be here:

$ cd ~/Steam/steamapps/common/Half-Life

Inside that you’ll have a file called “hlds_run” use this command to start a CS server (modify some parameters to fit your needs):

$ ./hlds_run -console -game cstrike +port 27020 +de_dust2 +maxplayers 32 -pingboost 1

You can use programs like screen to monitor the CS server since it’ll close as soon as you exit out of PuTTY. When running it might complain that it can’t find, so you’ll have to copy it from “~/.steam/sdk32/” to “~/steamcmd/linux32/” (or the other way around since I don’t remember :P).


Sticking with the theme of writing at least one article a month I’ll just put this one out since I can’t really think of anything else to write about.

And it’s about Tetris, but I’m not calling it Tetris because why not.

Because my other project was a little too ambitious I thought that starting with something easier should allow me to finish it. For now it seems that this thought might work out but I don’t want to make any preliminary statements. This time I’m only using SDL2 and bass.

Since I threw out SDL2_image and SDL2_ttf I can’t load images over any other format than *.bmp and I can’t use any fancy fonts. But SDL on its own already offers enough tools for something as simple as Tetris. I can load a single *.bmp file as my texture atlas and apply a color key to it. All text that is displayed on screen is therefore only a static texture. The only other library that I’m using is bass which I use to play *.xm files. I use xm modules or Fast Tracker modules to play the original Tetris music which is chiptune. This allows me to feed bass the xm files instead of playing wav files or mp3 files which would require SDL2_mixer. Also the xm files are way smaller than normal audio formats since they contain only the samples and the order their played in instead of saving the entire audio wave. So a little bit like MIDI.

And other than that I don’t have much to show. I’m trying to get the bricks placed and moving but yeah as always I avoid the main task until the very end and then probably realize that it’s more work than I initially anticipated.


If you’ve paid attention to my past posts I showed off my setup twice which both times included a music player with music by “Savant”. He’s a fairly unknown artist from Norway. He produced music under a multitude of different aliases like Vinter in Hollywood, Vinter in Vegas, Megatron, Datakrash or Blanco just to name a few. His real name is Aleksander Vinter and currently he primarily releases music as Savant and occasionally as Datakrash. If you look up the meaning of savant (or maybe you already know it), you’ll find out that it was a term to describe people that have exceptional mental abilities like being able to calculate the weekday of a certain date within seconds (for the record the formula for that is pretty complex). Nowadays this is called Asperger’s syndrome, which Vinter was diagnosed with. But Savant is a way cooler word so I guess that’s why he went with that.

Since he doesn’t give out all that much information I can’t tell you how much is true or not but the fact is that the dude does not stop making music. The amount he has put out in the last few years is insane. I first heard his album Invasion and when I discovered his other stuff I was busy for weeks listening to all of it.

If you don’t want to read all of this you might be interested in a video from UKF in which Vinter was interviewed. It shows that the guy has a pretty interesting view on things:

The thing that got me into his music is the fact that he’s producing electronic music while still finding room to fit in unexpected things that sets it apart from the usual generic electronic stuff. If you want to know what I’m talking about give this one a listen:

To be fair the chances of you enjoying this piece aren’t that high. It’s pretty flashy and aggressive but the interesting part is the beginning. I’m no musician but I’d say that the melody at the beginning itself is more complex than what most top electronic producers can come up with. That kinda stuff got me into his music. He always has an interesting way of coming up with new things. On the one hand it’s electronic music on the other hand you’ll never know what you’ll get with his songs. Vinter also doesn’t solely produce electronic. Every alias does different stuff with Savant being the more EDM type stuff.

He also does (or rather did) ambient and mellow music with Vinter in Hollywood or metal with Megatron. So yeah his discography is rather diverse to say the least but he usually only works on one alias with Savant being the biggest one since that got the most attention.

So yeah if you’re feeling adventurous check out his bandcamp, twitter, youtube, subreddit or soundcloud and see if you like anything. I started when youtube suggested me his album Invasion and got hooked on it from there (Btw that one is free on bandcamp if you wanna cheap out :P)


OBS Studio

Little heads up:

OBS seems to have finally gotten a documentation on the API and plugin development so check it out if you need some info after setting up your development environment.

I assume just about everyone who searched for a screen casting software in the last three years has heard of OBS Studio (or formerly just OBS). At this point it is an industry standard for recording and streaming videos. Since the complete rewrite there’s no reason not to use it: it’s free, open-source and cross platform.

A while ago I tried to write a plugin for the original OBS at which I failed tremendously at, for one because of my incompetence but also because it was badly documented and pretty tedious. Recently I got back to that idea of writing a plugin for it but now since it switched to being crossplatform the process changed completely.

Sadly it’s still pretty obscure, which shows in the fact that there’s barely any plugins for OBS Studio. It seems like the setup process is what keeps a lot of people from making a plugin and those who get it to work stop after finding out that there’s no real documentation (Except code comments). After spending about two days on setting OBS Studio up, I got it to work and after some more time spent I finished my plugin.

It adds a new source type to OBS which shows keyboard and mouse input on stream. If you want to check it out you can get it here. But now I’ll talk a little about the setup process.

Working with OBS Studio’s source code

This post is rather long so if you don’t like reading you can watch my video tutorial:


The only real documentation is the guide up on github. But even with those instructions some things are a little unclear. For this guide I’ll assume you want to set up a development environment on windows.

So first of the requirements:

  • Visual Studio (2013 or 2015)
  • Qt5
  • cmake
  • Libraries
  • Git (Recommended)

Visual Studio 2017 was just released but I had no luck when trying to use it so I used VS 2013 Community. The following parts will show you how to set up all requirements, except Visual Studio, just google for the installer of the desired version and install it.


Now you should set up a dedicated folder for your development with obs (here refered to as “obs-dev/”) and download the dependencies first (Dependencies for Visual Studio 2013/2015). Unzip them and put them in a sub folder (here refered to as “obs-deps”).


It’s not all that obvious as to how to get Qt5, since the guide only mentions folder names like D:\Qt\5.8\msvc2013 or D:\Qt\5.8\msvc2013_64. So first head to the Qt page and download the installer. Then skip the login part and select only these options when installing (These are the required ones, since everyting else just takes up disk space):


Now obviously if you have Visual Studio 2013 you dont need msvc2015 and the other way around. Also if you only want to develop for 64 bit you don’t need 32 bit and vice versa. You can uncheck everything else, except the Qt creator since that ones required.

Note: You can only install Qt to a path that does not contain spaces, in my case



Cmake is the software OBS uses to configure the environment for developing and it will take care of all the complicated stuff. So just install it, or download a portable version from the offical cmake page.


This is only used to grab the source code and if you want to keep track of your changes. Get it here.

Putting it all together

Now let’s put all these new toys to use: First grab the source code from github via git. Open git bash (by default right click in your obs-dev folder and choose “open git bash here”) then enter this command

git clone --recursive

now you’ll have a sub folder called obs-studio, nice! Though this is the very latest and bleeding edge stuff. That’s cool if you’re planning to just build OBS or contribute to it’s development, but if you want to develop a plugin it’s better to use the latest stable release, so let’s turn back time to the latest stable release. Type:

git tag -l

This will list all past releases of obs studio. At the bottom there should be the latest version (eg. 20.0.1), now let’s load that version by running

git checkout 20.0.1

or if you plan on using git to track your changes

git checkout 20.0.1 -b plugin-dev

The second command will create a new branch with the name “plugin-dev”, this assures that all your future changes will be tracked on a separate branch without touching the original obs code (You obviously can’t acutally change the original code without having the right permissions, but it still helps to keep your local repository tidy).

That’s all we need from git, we now have stable releas of OBS we can base our plugin on.

Configuring Cmake

This step is only needed if you want to develop a plugin for OBS, if you just want to compile it or want to direcetly commit to the obs repository (in pull-requests), you can directly go to “Using Cmake”

Cmake by default only creates project files for OBS and it’s plugins. But our plugin isn’t included since it doesn’t exist yet. Let’s fix that by telling cmake to create an empty project for us. Head into “obs-dev/obs-studio/plugins” and create a new sub folder for your plugin (in this case “test-plugin”). Now inside that folder you need a file called “CmakeLists.txt” and a *.c or *.cpp file with the same name as your plugin. You can keep it empty, but we need something to fill your project for now. The last thing you need is a “data” folder with another folder called “locale”. Inside that you put your language files to translate your plugin (by default only “en_US.ini”.

So this is how your folder structure should look like by now:

  • test-plugin
    • data
      • locale
        • en_US.ini
    • CMakeLists.txt
    • test-plugin.c(pp)

Now we can leave all files empty except the CMakeLists.txt. This needs to contain information for Cmake so it can create the project. You can take a look at other plugins or copy what I have:




add_library(test-plugin MODULE

install_obs_plugin_with_data(test-plugin data)

Just replace all instances of  “test-plugin” with your plugin name. The last thing we need to do is go back to the “plugins” folder and edit the CMakeLists.txt file which is inside that folder. At the bottom of that file you’ll see a bunch of “add_subdirectory(…)” lines. Just add another line with your plugin and save it.


And that is all you need to do to tell CMake about your plugin, now we’ll let CMake take care of the rest.

Using Cmake

Open up the Cmake-gui and then set “Where is the source code:” to “obs-dev/obs-studio” and “Where to build the binaries” to a separate folder where you want to have all Visual Studio projects (it won’t actually put the binaries there), for me the folder is “obs-dev/obs-studio/vs”. Now click configure and select the Visual Studio version you use. You can choose between “Visual Studio <2013/2015>” and “Visual Studio <2013/2015> Win64”. Using 64 bit means your project will build 64 bit binaries and the same for 32 bit.


After it’s done it’ll spit out some errors since it can’t smell where you put the dependencies. You’ll have to set two variables QTDIR and DepsPath. Both of these can be suffixed with “32” or “64” to tell Cmake what bit the dependencies are. So you either just set QTDIR, or if you want both 64 and 32 bit you’ll set QTDIR32 and QTDIR64. For me this is how I set them:

  • QTDIR32: C:/Qt/5.8/msvc2013
  • QTDIR64: C:/Qt/5.8/mscv2013_64
  • DepsPath32: ../obs-dev/obs-deps/win32
  • DepsPath64: ../obs-dev/obs-deps/win64

Note: Cmake uses forward slashes for paths since all Operating systems do that except Windoze.


In this screenshot I only used the 64 bit dependencies, which means I can directly use “DepsPath” and “QTDIR”. If you want 32bit and/or 64bit you’ll need to click “Add entry” and add “DepsPath32” / “DepsPath64” and “QTDIR32” / “QTDIR64”, and set their values accordingly.

Keep in mind that the dependencies are different for VS 2013 and 2015! Now click configure again and after it finishes it’ll let you change some other settings which are unimportant for us so just click configure a third time and there should be no red items in the Cmake list left. After all that you can click Generate, which will create the Visual Studio Solution. When that is done you can click Open Project or directly open the solution.


This is how Cmake should look like after the second configuring process (After you entered “DepsPath” & “QTDIR”).

And that’s it. Give VisualSudio some time since OBS is a huge project and it takes some time to index all the files. You should now be able to click the green play button and the latest version of OBS should run. If you configured CMake to create a project for your plugin you should also see a project with your plugin name in the project explorer.


So this was all I had to go through to develop a small pugin that probably no one will use. If you compare this essay to the guide up on github you’ll see that it’s missing a couple of things. For experienced developers this process might be self explanatory but for a newbie like me it was quite the nerve wrecking adventure. Maybe this write up will prevent at least one persone from going throught that same process.