Posts about Computer

I had my first computer with 5 and started C programming when I was 13. Then I made some simple websites using PHP which grew into ever more complex ones. In 2007, I created some Java applications, some of them are still among the portfolio on this page. While I was an intern at the DLR, I started to learn Python and IDL, which introduced me to matrix based languages. For the numerical methods lecture and especially my bachelor’s thesis I used C++11. During my master’s thesis I have learned Haskell for fun. Later on for my PhD thesis I also learned R and the Wolfram Language.

This section of my site is for articles about programming practices and performance tests. Also various stuff about computer hardware and software.


SpiderOak One Performance Issues

As I wrote earlier, I have been using the SpiderOak One Backup service for a while now. It costs more than the usage of Duplicity with Backblaze B2, but it promises to work better. Also it creates backups continiously, so I don't have to wait for the full hour to have a backup. Using inotify it will automatically put files into the queue just as I save them. I really like this. My laptop could burst in flames and I would only lose a few minutes of work.

But the performance of the system is bad, again and again. I recall that I tried the service a few years ago and had just exactly the same issues with it. Often it would not utilize my upload bandwith (10 Mbit/s) fully but rather utilize one full CPU core, which seems excessive. I would restart the application and then it would stop this. Often this is triggered by using the GUI. I have the feeling that the GUI cannot really cope with ten thousand of files being listed, so it just freezes up as it tries to display it all.

Lately even restarting did not help. So I wrote to the support on 2020-05-23 about this issue. I got a reply telling me to move the ~/.config/SpiderOakONE directory somewhere else and sign back into the program. Then it would do the syndication again and it should work fine. At the time it seemed to work fine again after a few simple restarts, so I did not follow through on this at that time.

Read more…

Gaming with Keyboardio Model 01

I already use a very nieche keyboard, the Keyboardio Model 01. It took me like three weeks to regain my typing speed on it. But I have had it at the office the whole time and never used it at home. With the quarantene I have brought it home and eventually tried gaming on it.

For instance with GTA 5 I use the following buttons on a regular ANSI layout keyboard:

But how are these buttons placed on the Model 01? It turns out that they are also mostly on the left side, such that I have my right hand for the mouse. The problem is that a gamer usually shifts the left hand to the left by one such that the W-key is worked with the middle finger instead of the ring finger. This would make reading the shift key with the thumb much harder, and I need to press both W and Shift at the same time to sprint forward.

Read more…

ThinkPad X220 Tablet – Eight Years and Counting

In Spring 2012 I bought my Lenovo ThinkPad X220 Tablet. It was during the second semester of my Bachelor's course. I've used it for studying since then, wrote my Bachelor thesis, my Master thesis and now my dissertation on it. It has served me well for over eight years now, and I have no intentions of replacing it yet. During those years I carried it around in my backpack, and it has seen quite some wear. Still I find it remarkable that there are just minor issues with it.

At the time I chose the Intel Core i5-2520M, 8 GB of main memory. Later on I added a 500 GB SSD, which made the whole thing much faster. and more pleasant to use. Upgrading the ThinkPad is very easy, one can just see the screws on the bottom. They are even labelled with the parts that they give access to, and replacing those parts does not void the warranty.

Read more…

Python has no Variables

Python doesn't have variables. It sounds mind-boggling, as one seems to use them all along. But really, that is not how it works with Python. This will really confuse people with a background in C or C++. If we do int n in C++, and write n = 1, n += 1 or the like, the address &n will never change. The value changes.

But in Python the “variables” are mere pointers to values somewhere. This can be seen because doing n += 1 in Python actually creates a new value. Expanding this as n = n + 1 and reading it as “let n point to the value of n + 1. We can easily see this by creating a variable and looking at the ememory address.

>>> n = 10000
>>> id(n)
140715441549616

Now increasing this number will make n point to a different address in memory!

>>> n += 1
>>> id(n)
140715441549392

Read more…

Scattered Across Messengers

For the past years I have only used WhatsApp and Telegram for messaging. Surely also Discord, Skype, Team Speak and Zoom for certain discussion groups, but not genereal messaging. Most people use WhatsApp, and few use Telegram and insist that it is the better messenger. I still do not like Telegram for its home-grown cryptography, trusted-server design and opt-in end-to-end-encryption. A relative had a security incident on Telegram, apparently somebody was reading all the chats and searched for login credentials that were sent to somebody else. In the end the person ditched Telegram as they did not feel secure on it any more.

But then the family group on Telegram did not work any more. WhatsApp is not an option because another person despises Facebook and does not want to share any data with them. We eventually agreed on the Signal messenger. I have installed this on my phone an laptop, and the family group was opened up there.

Read more…

Assigning Audio Devices to Programs

On my Windows PC I have multiple audio devices. There is a 2.1 speaker system attached via USB and an analog headphone jack on the front. When I am not alone, I attach the headphones and want it to be used. Otherweise I remove the headphones and want to use the speakers. For some reason Windows has the super obnoxious limitation that audio sinks cannot be changed after the application has launched. There is a settings menu where I can apparently set the source and sink for separately for every application. But it does not seem to have any effect when the application is already running!

Read more…

Tools for Remote Programming Teaching

In the past years I have done a bit of programming teaching. Mostly at the university, where I have tutored in-person classes for C and LaTeX. On the side I have also taught people C and recently Python. In order to learn programming, one has to be able to experiment, therefore one needs to have a shared environment that allows to execute code. I want to introduce a few options that I have found.

The first one is JDoodle. It supports a bunch of programming languages and one can work on a single file there. It supports interactive programs but no interactive interpreter. Collaboration is possible, but I found it flaky, often one person would just drop out.

Read more…

Registrierung bei der Agentur für Arbeit

Mein Vertrag bei der Universität läuft in etwas mehr als drei Monaten aus. Damit man seinen Anspruch auf ALG-1 nicht verliert, muss man sich mindestens drei Monate vorher als arbeitssuchend melden. Das ist die Vorstufe von arbeitslos. Dazu muss man sich aber erstmal online einen Account erstellen. Das ging auch ziemlich einfach, für die arbeitssuchend-Meldung brauche ich den sogar nicht nicht zu bestätigen. Heute kam der Brief mit dem Code an. Also erstmal zur Anmeldeseite:

Als nächstes wollten sie dann den Code haben.

Read more…

Launching GTA 5

Launching GTA 5 on my PC takes a lot of step. So step 1 is to start the Epic Games Launcher:

Then it shows the screen. Apparently they want to sell me more games and not let me play the ones that I already have. Step 2 is going to the library.

In the library I need to select the game (step 3).

Read more…

GPS Tracking mit AllTrails, Komoot, OsmAnd und Strava

Während Radtouren nutze ich gerne mein Handy in der Lenkerhalterung um mir Fahrradkarten anzuzeigen. Die Open Streep Map hat entsprechende Metainformationen, sodass man sich auf der Karte die für den Radverkehr empfohlenen Karten anzeigen lassen kann.

Zusätzlich nehme ich gerne Touren auf, so habe ich zum einen eine Übersicht über die Strecke und kann sie einfach nochmal fahren. Ich kann die Strecke mit anderen Personen teilen, zeigen wo ich gefahren bin. Und ich bekomme Statistiken über Strecke, Zeit und Höhe.

Nun gibt es einige Apps, die man dafür nehmen kann. Ich kenne diese hier:

In letzter Zeit habe ich häufig Strava genutzt und wollte einmal vergleichen, welche App sich eigentlich für was am besten eignet.

Read more…