From time to time I need to add labels to an image. It might be a photo of a network rack, or my EDC Setup. Doing that in Gimp is a very tedious task and I could not find any tool or website that makes it easier for me.
Of course that itch had to be scratched and I'm happy to present my Image Labeler.
Usage is simple:
(server rack image © David Monniaux CC-BY-SA)
We're back from a three week vacation on the US west coast and this is the usual pic dump. This time we rented an RV again and had a long road trip seeing California and bits of Nevada and Arizona.
pics and diary after the jump
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…