## Encryption on Android gets worse in every Version

My lamenting will be about the overall way in which device encryption is implemented in Android. This is mostly a collection of links where you can find out more about how it ~~worked across the recent versions~~ all went south. This article strictly expresses my own, badly informed opinion and you should check all the provided references carefully before forming your own. read();

## WordPress, KaTeX and the Showdown

We decided to use the javascript markdown engine [showdown](https://github.com/showdownjs/showdown) for the blawg, and [$\KaTeX$](https://khan.github.io/KaTeX/) for rendering latex. If you think that's a good way to go: Here is how to do it with wordpress.

I like to have all "stuff that I need to do something with" collected at one place. For the virtual world, this place is my email inbox. To remind me of things, I send myself an email and can be sure that I'll process it at a later point in time for example. Having another place with the result of RSS feeds always annoyed me a bit. As soon as I realized that I find this annoying, a solution was easy to implement of course:
aptitude install rss2email

and a cronjob, executed every few minutes:
*/10 * * * * r2e run

will lead to all our fine blag posts ending up as email notifications.

## GithubTodos

1. https://github.com/dear-github/dear-github []
2. https://github.com/isaacs/github/issues []
3. on a side note, tellmewhenitcloses.com is pretty handy to avoid too many notifications in the first place []
5. Using local storage is handy for people that are not very concerned about privacy and just use the cloud synchronization feature of their browser: the content of their ToDo list will then also just be synced to all their devices. []

## Automatically correct skew in images containing text

I wanted to crop out a specific rectangle in a few dozen scanned documents with ImageMagick like this:
convert -crop 1600x1880+100+420 image.nrm.png cropped.png

Scanning often results in a tiny skew, which would lead to a slightly different rectangle location on every image. It seems that a common preprocessing step when doing OCR is to automatically correct this skew. The Python toolset ocropy1 for example contains a tool to do this: ./ocropus-nlbin image.jpg creates the file image.nrm.png which is optimized for OTR and has corrected skew.
1. https://github.com/tmbdev/ocropy []

## Denied Permissions: copying text

Obviously, my Bank does not provide a REST API to download the transactions happening on my accounts. After I asked for "machine parseable" data, they told me that I can download CSV files. Awesome! So I wrote a parser and lived happily ever after. Except that they change their CSV format without notice every few months and at some point they started to mix different encodings in the same file. So I lived unhapply, regularly fixing the script reading the CSV file. What did not change for around 10 years now are their banking statements. And this also holds for the PDFs you have to download, if you want to avoid getting them via snail mail (and paying for the postage of course). I decided to parse the PDFs instead and this went pretty well for may years... up to recently, when something changed (it may have been a software update of the parser I use or something on their side). Do you want to know more?

## blag update

We have updated the layout, also the posts are now markdown-rendered on the client side. Oh, and we switched to [$\KaTeX$](https://khan.github.io/KaTeX/) for math rendering. Since this breaks compatibility with the old hairball of plugins we had, it will take some time before all the old entries are fixed, but we are working on it.

## Keep Your Screen On With Python

My Windows desktop computer is set to turn the screen off after one minute of inactivity. It's usually a good idea. Except when I am reading something on screen. Then it is terribly annoying. Most media players can prevent Windows from turning off the screen by calling [SetThreadExecutionState](https://msdn.microsoft.com/en-us/library/aa373208(VS.85).aspx). Well. So can I:
import ctypes
input('screen stays on. press any key to exit.')

Pretty neat, huh? Python really can do all things.

## Snort on Raspberry Pi behind FritzBox!

I finally decided to set up a real router in front of my router. The main use cases, I wanted to cover were the following: * nice local domain names: Since I run a FritzBox (which is a pretty common plastic router in Germany), all local host names (sometimes!) get suffixed by .fritz.box. This domain cannot be configured to .something.awesome and the whole setup is quite in-transparent, that I could not figure out, in which cases, the suffix is mandatory when resolving host names. * play around with [snort](https://www.snort.org/). * bandwidth monitoring: to replace the current workflow of randomly killing machines, when the internet connection is slow and one needs bandwidth to do something important™. In this blog post I will cover nothing of this. Instead, I'll explain, how I set up a RaspberryPi to enable me to do all the above in the future. Do you want to know more?

## VPN in der Deutschen Bahn

Es [gibt einige Probleme, im WiFi der Deutschen Bahn im ICE ein VPN zu verwenden](https://community.bahn.de/questions/1197692-nutzung-wifionice-ssl-vpn), und das ist natürlich ein Problem, weil es sich dabei um ein offenes und unverschlüsseltes Netz handelt. Die Bahn erklärt das Problem dadurch, dass Mobilfunk aktuell nur Pakete durch lässt, die maximal 1500 Byte groß sind. Da noch Platz für deren Header bleiben muss, sollte man die MTU auf 1440 setzen. Unter Windows macht man das wie folgt: Click!

## Code Rust in Windows

I have started to [learn](http://rustbyexample.com/) [rust](http://rust-lang.org), and I am enjoying myself. This is a merge and update on the two fantastic blog posts on [how to setup Visual Studio Code for Rust](https://mobiarch.wordpress.com/2015/06/16/rust-using-visual-studio-code/) and [how to enable debugging](https://sherryummen.in/2016/09/02/debugging-rust-on-windows-using-visual-studio-code/). In my personal opinion, from among [all the available IDE solutions for rust](https://areweideyet.com/), this is the best. Do you want to know more?

## Monitor WordPress Updates with Zabbix

Just another quick Zabbix related post: Since WordPress is known to be a remote shell with the extra feature of being a web blog1, it is a good idea, to at least keep your WordPress installations up-to-date. In the currently ongoing effort to replace myself with a more or less clever collection of servers, VMs and shell scripts, I decided to use Zabbix to track the most recent WordPress version and get notifications, when it changes. If you want to do the same, keep reading!
1. http://www.bash.org/?949214 []

## Zabbix 3.0 agent on FreeBSD

As you may have noticed: the folk at this blog recently started to play around with FreeBSD (mainly as FreeNAS jails). And since I recently started to <3 Zabbix. Here is an explanation on how to compile and use the agent on such a jail. Do you want to know more?