So in the last weeks (or is it months) I worked on a few DokuWiki plugins. All of them took much more time than I originally planned to spend on them and each would deserve their own elaborate blog posts. But I am just too lazy for that. So here are some shortish summaries of what I did. Check the links to learn more.
I like ditaa. It's a cool way to create nice diagrams from ASCII. Unfortunately it needs Java. If you want to run the ditaa plugin for DokuWiki you need to have Java on your server which you probably haven't. At least not on cheap web space.
Some years ago there was an online service that could render ditaa diagrams for you. The ditaa plugin used that if you hadn't configured a local Java install. Unfortunately that service has been down for years now.
However there popped up an alternative ditaa implementation on github written in go. The nice thing about go is that you can easily cross compile. The bad thing is there were no binaries available and people would need to compile their own version.
The ditaa plugin now automatically downloads the correct binary for your server's platform and uses that if Java is not available. Thus it now works out of the box again.
At work I worked on the farmer plugin. It's awesome and basically means there's a really simple solution to run a DokuWiki farm. However if you want your animals secured via HTTPS it's complicated. Well at least if you don't want to shell out serious money for a wildcard certificate.
I generally liked it, but I thought it was lacking some polishing. So again I spent much more time than I should and created a Pull Request. It isn't merged yet but I'm optimistic.
The letsencrypt plugin is available, too.
I'm not a math buff. But the need to embed mathematical formulas seems to be common. There are many plugins that do it. I'm fond of the mathpublish plugin. It creates PNGs for each formula which makes it easy to have the results in PDF exports as well.
Unfortunately the underlying PhpMathPublisher library hasn't seen any updates for years and wasn't PHP7 compatible. On github I found a repository where someone started to convert the old script to a modern PSR compatible library. But there where still some bugs in it and lots of duplicated code.
So there's another Pull Request open now. We'll see if there's still someone paying attention or if I need to adopt that thing completely.
However the mathpublish plugin got updated and also supports ODT export now (thanks for that PR).
With the Android Marshmallow release, Google introduced a new concept on how to work wit SD card storage.
SD card support has always been problematic on Android. It worked fine to store data, like music or photos but it didn't really work when you needed space to store new Apps. There was some support to move at least parts of an app to the SD card, but it was always a clutch. In reality it often meant that for moving a 50MB app to SD card, 25MB remained on the internal storage and 40MB ended up on the card, effectively making the app even bigger. In addition you had to manage all of this yourself for each app you installed.
Marshmallow finally promised to change that with the introduction of Adoptable Storage. It allows you to make your whole or parts of your SD card, part of your internal storage. With the OS managing it all automatically. Exactly what vendors had promised for years: “extend your storage with a SD card”.
The much anticipated Pokémon GO has been released this week to select regions only, but you can sideload the game from APKMirror. I did and I have to admit I'm a bit disappointed. Let me explain why…
Pokémon GO is an augmented-reality game developed by Niantic for iOS and Android devices. […] The game allows players to capture, battle, train, and trade virtual Pokémon who appear throughout the real world.
As mentioned above, the game was produced by Niantic - the Google spinoff that created Ingress in 2012. Pokémon GO is basically the same game as Ingress, just with Pokémon. The “PokéStops” where you get items like PokéBalls or health- and revive potions are simply rebranded Ingress-Portals.
Being basically a rebranded Ingress, Pokémon GO suffers from the same problems: its a huge battery hog, the 3D graphics feel sluggish on non-top-tier phones and the memory requirements make it impossible to quickly switch to other apps on your phone without having to restart the game (and wait for it to load). It basically means you either play the game or you use your phone. That's a horrible mobile experience.
What really irks me though, is that game mechanics changed fundamentally to what Pokémon used to be on the GameBoy and other consoles. As far as I understand, there are no real time one-on-one fights. Instead you place a leveled up Pokémon on a “Gym” (just another rebranded Ingress portal) where it can be fought by other players. Fights no longer use the previous turn-based action system. Instead you just click for an attack and try to swipe at the right time to dodge incoming attacks. There doesn't even seem to be a sensible way to pick the right Pokémon to fight (like picking a water Pokémon to fight a Fire Pokémon). There is apparently no strategic element to Pokémon GO fights anymore.
I have no doubt that the game will be successful, but I feel like this is a missed opportunity to make a better game. Combining Gameboy-like topdown 2D graphics and well established fight mechanics with the multiplayer augmented reality aspects of Ingress would have been much better. Especially considering that Pokémon is supposed to be a kids game. Having an enjoyable experience on lower end phones should have been a priority.
Anyway, gotta catch 'em all…
This is a post I was planning to write for a long time now, but somehow never came around to. In 2012 I wrote about my keyring as the main part of my EDC4). Since then a lot of my equipment changed, so here's what I carry every day:
The goal with my EDC is to be able to carry the same things really every day. That means Winter or Summer, regardless of clothing or bags carried. So everything has to fit on my body when I only wear jeans and T-Shirt on a hot summer day. And I have to actually regularly use the things I carry, otherwise why carry them? The things you see above are the result of 4 years of optimizing
Below is a detailed description of all the items.
As you may have noticed, splitbrain.org is now available via HTTPS. This is possible through the awesome Let's Encrypt project which makes SSL certificates available to everyone for free.
They're doing that for a while now, but I always shied away from the hassle to set it up. The SSL certificates they issue are very short lived (90 days) to force you to automate the whole update process. They provide a client to do that but it is a large Python script with all kind of dependencies that also tries to reconfigure your webserver. I didn't like that at all, so I looked for alternatives.
Here's a quick tutorial on how I setup SSL for my domains splitbrain.org and commie.io5):