Entries filed under Programmvorstellungen

PHP Commandline Notification

Posted on 3. Januar 2018 Comments

When you run long (PHP) jobs it’s easy to forget about the terminal. That’s why I’ve created a small PHP package that will make a little sound. Because PHP itself doesn’t have this functionality anymore it’s possible to just echo the ASCII sign for BEL. Simply put this at the end of your PHP job:

use repat\CommandlineBell;
// flashes screen if possible, otherwise just bell()
// makes a beep sound

Under the hood it’s really just:
echo "0x07";

A good (non-PHP) alternative I found is brb by Viktor Fröberg, just run commands like this

php artisan migrate --seed ; brb

Of course it’s always possible to just run a TTS app on the commandline via exec() like this:

exec("say terminal task done");

Or you could do it similar to brb:

php artisan migrate --seed ; say seeding done

Source on GitHub

One Click Shadowsocks with no technical knowledge needed

Posted on 23. November 2017 Comments

Shadowsocks is a proxy that has been designed and used to circumvent censorship in China. So if it’s possible to get traffic across the Great Firewall of China it pretty much can be used anywhere, e.g. Egypt where VPNs are blocked since mid 2017.

Digital Ocean offers virtual servers for cheap with an easy to understand pricing model. Basically you pay either $5, $10, $20, $40, $80 or $160 per month, for more have a look at pricing at digitalocean.com. These server are general purpose servers, you can do everything with them, which also means, they don’t have anything installed and you need to do everything yourself.

oneclickshadowsocks.de is a service to install shadowsocks on DigitalOcean servers without having to actually login via SSH and entering lots of technical commands in the commandline. It uses the DigitalOcean API to create a Droplet (=server) with shadowsocks already set up and running. All you have to do is to enter the IP address you get via e-mail in your shadowsocks client and the password given to you on the website.

The code is open source and the website itself is hosted on GitHub Pages, which means, you can see the sourcecode of the page itself, running at that very moment. This way other people can verify they nothing shady is going on.

Quick and dirty redirect script for the fitting shipping provider

Posted on 2. März 2017 Comments

Another way to use the PHP library shipping-service-provider-check apart from fixing the shipping providers in the ERP Plentymarkets is a simple quick and dirty PHP script that redirects to the tracking page of a fitting shipping provider. You can find the whole sourcecode on GitHub.


If you don’t use some sort of MVC this is a quick way to do it. If you do, I suspect you’ll know how to alter this example to fit your system. Feel free to write me an e-mail or comment if you need help

  1. Log onto your server and create a folder
  2. Copy or git pull the files, including .htaccess
  3. Get Composer
  4. composer require repat/shipping-service-provider-check

Explanation of the code

The $trackingId variable is received via HTTP GET. This means the URL would be http://url.tld/trackingscriptfolder/script.php?tracking_id=123456 (or without the script.php in case of the .htaccess), where 123456 is the TrackingID. The rest is more or less just for debugging. The scripts returns a HTTP Code 422 and ends if there is no input given.

$trackingId = $_GET["tracking_id"];
if (empty($trackingId)) {
  $unprocessableEntity = 422;
  echo "wrong input";

Next the URLs will be defined. The keys have to match the shipping providers so make sure the shipping providers are added at the library as well. The TrackingID will be added at the end of the URL, so make sure they have the right format.

$shippingProviderURLs = [
  "dhl" => 'https://nolp.dhl.de/nextt-online-public/set_identcodes.do?idc=',

Then follows the documented way of checking for the providers. It could technically be that at the same time a TrackingID is valid for more than one provider. To keep things simple, we’ll just use the first one (array_search instead of array_keys). In case there is none found, array_search returns false and the script continues. In case there is one found, the header() function is called to redirect the user to the correct provider page.

$checkedProvider = array_search(true, $result);
$urlOfCheckedProvider = $shippingProviderURLs[$checkedProvider];

if ($checkedProvider !== false) {
  header('location: ' . $urlOfCheckedProvider . $trackingId);

Now it’s up to you what you will do with the ones you can’t redirect. I decided to write a little skeleton.html file and include that with a simple message that the user could try the shipping providers where a check is not possible (no API, no website scraping, no regex). They are listed earlier:

$shippingProviderURLsNoCheck = [
  "DPD" => 'https://tracking.dpd.de/parcelstatus?query=',

Minimal Mensa Plan

Posted on 9. Dezember 2014 Comments

We’ve been doing a lot of website scraping for a university project latel so I decided a little app to scrape the universitys‘ cantine website for the lunch menu.


A network connection in the main Activity is not allowed so I’m using a private class for that. Once the doInBackground method is over onPostExecute is automatically called.

Luckily the jSoup library which is used for parsing also brings a way download a website for parsing.

Document doc = Jsoup.connect("http://speiseplan.studierendenwerk-hamburg.de/de/520/2014/0/").get();

There is only one category class and it contains the date. The dish-description class contains what you will later see in the app. The size is needed for a for-loop later on.

date = doc.select(".category").text();
int maxDishes = doc.getElementsByClass("dish-description").size();

With the next piece of code all the dish descriptions are extracted. The original website contains details about the food (made with alcohol, pork or if it’s vegeterian etc). For blending this out I use a regular expression which filters out:

1 non-word character(\W = an opening bracket), then possibly multiple digits (\d) and non-word characters (\W = commas) and then another non-word character (\W = a closing bracket)

String dish = doc.getElementsByClass("dish-description").get(i).text().replaceAll("(\\W[\\d\\W]*\\W)", " ");

These dishes are then saved together with every second price (the one for students, the other one’s for employees) in a HashMap, which is then added to a list. For recognizing later, the dishes get the key „dish“ and the prices the key „price“.

Once the data extraction is done, onPostExecute is automatically called. The date is set to a TextView above the ListView and a SimpleAdapter is populating the list of HashMaps into the layout

simpleAdapter = new SimpleAdapter(MainActivity.this,
dishList, R.layout.list, new String[] { "dish",
"price" }, new int[] { R.id.text1, R.id.text2 });

Since i’s called Minimal Mensa Plan, no other features (such as caching or selecting a cantine) are available. The app in the Play Store is used for scraping the cantine at the campus Berliner Tor but it might as well be used for others, just by changing the URL. It’s released under the MIT License and available at GitHub.

Most minimal note taking app for Android

Posted on 2. Oktober 2014 Comments

As of September 2014 the smallest (15KB!), most minimalistic app for simply taking notes is called Zen Notes from Peter Gyorffy.

It doesn’t have any features like reminders, changing the theme or font or any other useless stuff. It’s basically like a sheet of paper where you can write your thoughts on, just digitally. The only thing it can do is share the written text over whatever Android offers you, e.g. email. When you exit the app the notes are saved automatically.


Ohrenbär Single Purpose App für Android

Posted on 15. März 2014 Comments

update: s.u.

Als Kind habe ich früher oft abends vor dem Radio gesessen und Ohrenbär – Radiogeschichten für kleine Leute gehört. Letztens hörte app-ohrenbaer-screenshotich die Titelmelodie (Peter und der Wolf von Sergei Prokofjew) und ich googelte, ob es das wohl noch gibt. Beim RBB gibt es eine Homepage dazu und es ist sogar möglich sich die verpassten Episoden herunterzuladen, welch‘ Fortschritt!

Letzten Monat hat Daniel Oeh für Toby Baier vom Einschlafen Podcast eine kinderleicht zu bedienende Single Purpose App geschrieben. Er war so nett, sie unter der MIT Lizenz als freie Software zur Verfügung zu stellen. Ich habe diesen Code genommen und in ein bisschen an Ohrenbär angepasst. Das Ergebnis findet man jetzt im Google Play Store. Das Icon habe ich wie so häufig von OpenClipArt. Es ist gemeinfrei.


Zum Rechtlichen: Die .mp3-Dateien kommen alle von RBB Servern, ebenso wie das Logo. Die Feed Adresse ist: http://www.ohrenbaer.de/podcast/podcast.feed.podcast.xml. Ich habe keinerlei Absichten mit dieser App Geld zu verdienen oder Copyrights zu verletzten. Ich arbeite auch nicht mit dem RBB zusammen. Ich habe die App geschrieben, weil ich Fan dieser Sendung war/bin. Die Inhalte stehen selbstverständlich immer noch unter demselben Copyright. Wenn es Probleme mit irgendwelchen Rechten gibt, dann schreibt mir bitte erstmal eine E-Mail bevor ihr mich verklagt 😉 Sollte das zufällig jemand von der RBB lesen und Interesse haben, können wir gerne darüber reden 🙂 Ich hatte schon mal eine E-Mail geschrieben aber keine Antwort erhalten.

Get it on Google Play
Ich habe mich dazu entschieden, die App offline zu nehmen. Heute bekam ich folgendes Schreiben* :

Sehr geehrter ,
wir mussten feststellen, dass Sie im Internet eine OHRENBÄR-Podcast App anbieten. Ich hoffe, Sie haben Verständnis dafür, dass die OHRENBÄR-Redaktion des rbb selbst entscheiden möchte, wie und auf welchem Wege sie die OHRENBÄR-Angebote verbreitet. Wir können daher Ihr Angebot nicht gut heißen. Es verletzt nach Auffassung unserer Juristen zudem Urheber- und Titelrechte des rbb.

Insofern fordern wir Sie auf, zur Vermeidung rechtlicher Schritte, Ihr Angebot unverzüglich aus dem Netz zu nehmen und hoffen, dass Sie dennoch Fan unserer Radiogeschichten bleiben.



Threema statt WhatsApp nach Übernahme durch Facebook? Was sonst? Eine Auflistung von Alternativen

Posted on 20. Februar 2014 Comments

Das generelle Problem mit Messengern auf Smartphones:

  1. Sofern sie nicht quelloffen sind, kann man nicht feststellen, ob sie ihre Berechtigungen nur für den angegebenen Zweck nutzen und die Apps können nicht von unabhängigen Experten transparent auf Sicherheitslücken untersucht werden. Ich bin gerade bei diesem kritischen Thema daher generell einfach mal skeptisch.
  2. Selbst wenn der Quellcode vorliegt, muss man noch darauf vertrauen, dass die binären Dateien, die aus den App Stores geladen werden auch denen entsprechen, die der (vertrauenswürdige) Entwickler erstellt und hochgeladen hat. Oder man muss jede App selbst aus dem Quelltext heraus kompilieren, was ein unrealistischer Aufwand ist(s. Gentoo).
  3. Der Serverbetreiber kann Verbindungsdaten(Meta-Daten) speichern, selbst wenn er die Nachrichten an sich vermeintlich nicht lesen kann. Auch wenn er sagt, dass er das nicht tut, könnte er z.B. von Geheimdiensten dazu gezwungen werden. Auch in vermeintlich neutralen Ländern.
  4. Es gibt genügend Sicherheitslücken für die mobilen Betriebsysteme(Android, iOS, Blackberry, etc). Das heißt, dass die Nachrichten im Zweifelsfall vor der Verschlüsselung abgefangen werden, z.B. durch die Eingabe des Textes in die Tastatur.

Nichtsdestotrotz möchte ich hier einige WhatsApp Alternativen aufzählen.


Threema wird in Deutschland gerade(Februar 2014) als die Alternative zu WhatsApp gehandelt, weil Facebook es für 19 Milliarden Dollar gekauft hat. Als allererstes möchte ich diesen Artikel von Fefes Blog empfehlen. Die Schweiz ist keineswegs so neutral, wie man sie immer wahrnimmt. Außerdem kann wie erwähnt keiner  überprüfen, was in Threema vor sich geht. Es gibt zwar gute Hinweise von vertrauenswürdigen Leuten, dass Threema die besten Intentionen hat, aber sichergehen kann man erst, wenn man den Quellcode sehen kann, so dass eine genügend große Anzahl von Experten, die Sicherheit bestätigen oder zumindest einordnen kann. Cool ist allerdings, dass man die Schlüssel per QR-Code vergleichen kann, und somit nicht auf den (potentiell manipulierbaren oder von bösen Betreibern gefälschten)  öffentlichen Schlüssel des Betreibers vertrauen muss. Nichtsdestotrotz ist dies seit fast einem Jahr mein Favorit, weil alles andere eben auch nicht quelloffen und noch weniger vertrauenswürdig ist. Die Verschlüsselung kann angeblich mehr oder weniger unabhängig überprüft werden.



Viber ist eine App von Talmon Marco. So wirklich weiß aber keiner, was da vor sich geht. Auch diese App ist nicht quelloffen. Seit ein paar Tagen(Februar 2014)  gehören sie zu Rakuten, einer japanischen Firma. Vorteil von Viber gegenüber fast allen anderen Messengern ist, dass es auch richtige Telefonie (so wie Skype) gibt. Außerdem gibt’s Viber auch für andere Platformen wie Bada, Blackberry, Windows Phone, Nokia Handys und sogar Windows für den Computer.



Kik ist wohl relativ beliebt bei deutschen Teenagern, hat aber dasselbe Vertrauensproblem wie alle anderen: niemand weiß, was in der App vorgeht und was sie mit den Berechtigungen anstellt.



Hike ist ebenfalls nicht quelloffen und wenig vetrauenswürdig. Dafür aber für sehr viele Platformen verfügbar



Line ist wie Viber beliebt, weil auch Gespräche in guter Audio Qualität möglich sind. Allerdings ist auch diese App nicht sonderlich vertrauenswürdig. Wie fast alle Apps kommt auch diese mit bunten Stickern und allerlei Extras.



Black Berry Messages sind bei Blackberry Nutzern schon lange bekannt. Man bekommt eine ID und kann dann Nachrichten von Blackberry zu Blackberry schicken. Seit es mit Blackberry Ltd(ehemals RIM) bergab geht, haben sie neue Wege gesucht, sich zu vermarkten und BlackBerry Messages auch für Android und iOS freigegeben. Natürlich closed source und über Blackberry Server. Mal wieder nicht besonders vertrauenswürdig. update: Joshua hat da noch interessante Details ausgegraben, bei dem Blackberry der Regierung von Indien die Schlüssel überlässt. Die Nachrichten sind also nicht Ende-zu-Ende verschlüsselt.


Und welche wirkliche Alternative gibt es dann?



update: Heml.is wird es nicht geben.

Heml.is ist für mich der vielversprechenste Messenger. Unglücklichweise ist er noch nicht fertig. Er soll quelloffen sein und Standard Kryptografie benutzen. Eine private spezielle Serverstruktur verhindert das Sammeln von Metadaten von außen. Das kann gut oder schlecht sein, je nachdem,ob man den Betreibern glaubt. Allerdings ist das Sammeln von Metadaten von Betreibern ein Problem, was in der Natur von Messengern liegt. Die Leute sind aber in der Szene bekannt(z.B. durch Pirate Bay oder Flattr) und gelten im Allgemeinen als vertrauenswürdig. Sobald die App erscheint, gibt es hier natürlich ein Update. Außerdem wird endlich mal auch Wert auf’s Design gelegt.



Telegram ist ein Messenger, der zwar quelloffen ist und Verschlüsselung benutzt aber von führenden Sicherheitsexperten als kritisch eingestuft wurde. Dazu kommt, dass sie ein selbst gebautes Protokoll benutzen, mitsamt fragwürdiger Verschlüsselungswahl. Und die Verschlüsselung funktioniert auch nur, wenn beide Teilnehmer online sind, was bei mobilen Geräten ja eigentlich fast nie der Fall ist.



Surespot wäre theoretisch ein guter Kandidat. Es ist quelloffen, benutzt Standard Kryptografie und ist relativ verbreitet. Durchgesetzt hat es sich allerdings noch nicht. Ich denke es liegt vor allem auch am Design. Da könnten sie echt mal nachbessern.

Außerdem werden hier Kontakte nicht automatisch über das Auslesen des Telefonbuchs hinzugefügt. Das ist datenschutztechnisch zwar von Vorteil, endete aber bei mir damit, dass ich genau einen Kontakt in der Liste habe, weil alle anderen die App nach kurzem Ausprobieren wieder gelöscht haben, weil sie – so schien es – keiner ihrer Freunde installiert hatte. Das heißt man muss über andere Kanäle(ironischweise wird das wohl WhatsApp und Facebook sein) einen Benutzernamen erfragen. Das mag man sehen wie man will, die Usability leidet sicher drunter, dafür ist der Datenschutz super.

Von einem kryptographischen Standpunkt gibt es aber noch ein kleines Manko, was Threema elegant gelöst hat. Man muss den surespot Betreibern vertrauen die richtigen öffentlichen Schlüssel herauszugeben. Theoretisch ist hier von Anbieterseite eine Man-in-the-Middle(MITM) Attacke möglich. Bei Threema gibt es für einen solchen Kontakt nur den orangen Button, verifiziert(grün) wird er erst, wenn man den Fingerprint/Hash des Schlüssels über QR-Code vergleicht. Da gibt es aber auch schon ein Pull-Request für, scheint also eine Frage der Zeit zu sein.

update: In den Kommentaren wurde angemerkt, dass Design ja Geschmackssache sei. Ja, das stimmt. Ich persönlich finde das Design nicht gut, der geneigte Leser möge sich aber selbst überzeugen(!). Ich werde nochmal kurz erklären, was ich meine. Statt sich an den de-facto Standard zu halten, dass Nachrichten von Gesprächspartner mit einer Sprechblase von links und seine Eigenen mit einer Sprechblase von rechts kommen, wird der empfangene Text einfach nur eingerückt und das sieht einfach ungewohnt aus. Mit minimalistisch hat das wenig zu tun. Selbst wenn man sich ihre Website anguckt, hat man(und ich denke nicht, dass ich hier alleine bin) tatsächlich das Gefühl, dass die Jungs es zwar technisch drauf haben, aber wirklich die Hilfe von einem Designer gebrauchen könnten.

update: Die Website wurde aktualisiert und sieht jetzt einigermaßen gut aus.



Whistle.im ist mal ein deutsches Produkt. Allerdings ist es nur für Android und PC verfügbar und weißt jetzt schon Sicherheitslücken auf. Lieber erstmal die Finger von lassen.





Wer es bis hier her geschafft hat zu lesen könnte belohnt werden, denn seit der Version 2.0 unterstützt die ursprünglich als SMS App geplante TextSecure auch Push Nachrichten über die Datenleitung. Sollte das gegenüber kein  (aktuelles) TextSecure installiert haben, wird die Nachricht als (ggf. kostenpflichtige) SMS versandt. Das kann man aber auch ausstellen. SMS werden dabei grün, normale Nachrichten blau dargestellt. Das Design ist angenehm und nicht überladen. Die Kryptographie ist eine Weiterentwicklung vom allgemein anerkannten OTR. Und zwar nicht von irgendwelchen Leuten weiterentwickelt, sondern von dem Experten-Team von Moxie, der seine Firma WhisperSystems an Twitter verkaufte, die dann den Quellcode von TextSecure und RedPhone(einer Art sicheren Skype) veröffentlichten. Außerdem ist es die Standard SMS(und jetzt Messaging) App von der Android Alternative CyanogenMod, die weltweit geschätzte 10 Millionen Benutzer hat. Die betreiben auch einen extra Server dafür, der aber mit den WhisperSystems Servern föderiert, wer weiß, was da noch für coole Projekte draus entstehen.

Gibt es nur noch ein Problem: es gibt noch keine iOS Version. Die soll nämlich zusammen mit RedPhone als Signal veröffentlicht werden und das ist wohl auch für Android geplant. Bis dahin gilt: wenn man nur Freunde mit Android Handys hat, ist TextSecure wohl die beste Alternative.

update: Signal gibt es für iOS und kann jetzt Telefonate (mit Redphone kompatibel) und Text Messages(mit TextSecure kompatibel).

Und weil ich prinzipiell ein großer Fan von Dezentralisierung bin möchte ich noch eben Kontalk erwähnen. Zur Zeit benutzen sie wohl noch ein eigenes Protokoll, es soll aber auf das erprobte XMPP umgestellt werden. Das erste Problem ist, dass es keinen Client für iOS oder andere Platformen gibt. Außerdem ist es in diesem Falle so, dass jeder einen Server betreiben kann und ihn den Kontalk Netzwerk zur Verfügung stellt. So wie ich das verstanden habe aber nicht im Sinne von XMPP, sondern eher als Loadbalacing Server hinter einem Proxy. Das bringt wieder datenschutztechnische Probleme mit sich im Hinblick auf Meta Daten. Außerdem werben sie mit dem Hashen der Telefonnummer. Nun ist das Hashen über einen begrenzten Bereich an möglichem Klartext aber prinzipbedient eher eine Verschleierung, als dass es tatsächlichen Gewinn bringt. Ich zitiere hier das Threema FAQ:

Bitte beachten Sie: aufgrund der relativ wenig möglichen Zahlenkombinationen von Telefonnummern können Hashes davon theoretisch per Brute-Force-Attacke (= Durchprobieren aller Möglichkeiten) entschlüsselt werden. Dies ist prinzipbedingt und kann nicht anders gelöst werden (die Verwendung von Salts wie beim Hashing von Passwörtern funktioniert für so einen Datenabgleich nicht).


Andere Alternativen, die hier nicht erwähnt wurden.

ChatOn, Joyn, ICQ, eBuddy, Skype, Facebook Messenger, SMS Apps, IM+, Google Hangouts, Kakao Talk, iMessage, Snapchat, WeChat, mySMS, MessageMe, XMPP Apps(Xabber, ChatSecure, etc), myEnigmaHoccerXO, upptalk, tango.me, chiffry, enjoystr, uvm

Andere Alternativen findet ihr auch auf Droid-Break und bei Wikipedia.

Minimal Open Source Flashlight

Posted on 1. Januar 2014 Comments

Nachdem OI Flashlight bei mir nicht funktioniert habe ich gestern Nacht kurzerhand entschloßen mal AIDE auszuprobieren und mir meine eigene Taschenlampen App zu schreiben. Stellt sich raus, dass das garnicht so schwer ist. Der Developer Account bei Google kostet $25 und ist super einfach zu bedienen. Details folgen noch.

update: Ich habe eine Version für Smartphones mit Android < 4.0 hochgeladen. Je nach Androidversion wird automatisch die richtige App ausgewählt.


Market Link

Google Play

Get it on Google Play


APK SHA1SUM(15 Jan 2014/v 1.0.2)

$adb pull /data/app/de.repat.mosf-2.apk
$sha1sum de.repat.mosf-2.apk
  • c5b311b6d85ab1f4e3e99fe3bdcfc4f104a4a375 for 4.0+
  • 1db8ad27f07f60dc843eefb3df6a7ee35f1fd880 for < 4.0


10 best Android apps for the paranoid

Posted on 15. Dezember 2013 Comments

So I compiled a few apps that even the most paranoid people would feel safe to use. Privacy is mostly enforced through encryption but beware: if you don’t use encryption correctly by e.g. chosing a weak password, it’s totally useless. You can download from Google Play (GP) or F-Droid (FD)


TextSecure (GP)

TextSecure encrypts your text messages(SMS) locally. Also, if your partner also has TextSecure, you can encrypt the messages, so not even the carrier could intercept them.

update: No SMS encryption functionality anymore, but this app is now called Signal and can still encrypt the SMS and message database on the phone. For SMS encryption use Silence (GP).


Cost: free

RedPhone (GP)

RedPhone is basically an open source Skype replacement with even better encryption. It’s dead simple to use. If a contact in your phonebook also uses RedPhone, you will be asked if you want to upgrade to a secure call.

update: Now merged with TextSecure in the Signal Messenger App.


Cost: free


Google Authenticator (GP)

Whether it’s your bank, your WordPress blog, github, Dropbox or facebook. Two factor authentication with One Time Passwords(OTPs) is getting popular! With this app, you will not only need your password to login, but a code from your smartphone that’s generated and valid for 30 seconds. Just in case your phone gets stolen or lost, make sure to print out extra backup code. Don’t want them laying around your house? Use the next app!


Cost: free


EDSLite (GP)

EDSLite works much like Truecrypt/Veracrypt for your computer. You can create containers, where you can store your Pins, Tans, Backup OTP Backup Codes and more. Because TrueCrypt can read those containers you can just save them to your Dropbox and keep them in sync with your computer. If you don’t trust Dropbox, maybe the next app is for you.

update: Use Veracrypt instead of Truecrypt, since Truecrypt is not actively developed anymore. EDS can use both.


Cost: free


ownCloud (GP/FD)

ownCloud is an app that works with your owncloud installation. You can download your private cloud and host it from home on a Rapberry Pi or chose a hosted solution in a data center that you trust.


Cost: 0.79€



So, from where should you download all these apps? Trust Google or Amazon that the binaries you’re getting are what the developers uploaded? f-droid.org is another alternative app store that you might consider to trust. The apps are all open source and you can probably even get a couple of apps for free that would cost a few cents in the Google Play Store.

Cost: free


Threema (GP/Website)

Threema is probably the best app available for secure encrypted messaging; it works very much like Whatsapp. The servers are in Switzerland. The only downturn is: it’s not open source. But: you can verify that the encryption works correctly. If you just add a contact with his/her Threema ID, the contact appears read. If you sync your phonebook with Threema(your phone number is only transmitted as a hash) and Threema recognizes a contact, it’s getting orange. And if you meet your contact in person and scan his QR-code, the contact finally turns green. This is the most paranoid messaging app I’ve seen.


Cost: 1.60€


k-9 Mail (GP/FD)

If you want to send only encrypted emails, this is for you. Together with the APG app, it’s super easy to send encrypted and receive/decrypt emails.


Cost: free


Built-in Android encryption

With Android 4.x on you can encrypt your whole device. Make sure you chose and remember a good password or PIN.

Cost: free


NoteCipher (GP/FD)

Evernote is great for keeping your notes in sync. But if you want to keep them secret, you might want to consider using this app. Every entry is encrypted via sqlcipher with AES 256.


Cost: free


More stuff

  • Heml.is looks promising but has been under development for quite some time now. Hope to hear more soon.
    • Heml.is is dead.
  • Telegram is another open source messaging app. The encryption only works, when both participants are online, so be careful.
  • Droid-Break has a lot more high quality open source apps


GP: Google Play, FD: F-Droid, Pictures from play.google.com

OpenCV Examples mit Ubuntu 12.04

Posted on 6. November 2013 Comments

Um mir OpenCV erstmal ein bisschen anzuschauen habe ich diese Anleitung befolgt und erstmal meine eingebaute Webcam(/dev/video0) benutzt.

sudo apt-get install build-essential libavformat-dev ffmpeg libcv2.3 libcvaux2.3 libhighgui2.3 python-opencv opencv-doc libcv-dev libcvaux-dev libhighgui-dev

Als Beispielprogramm habe ich mir facedetection ausgesucht. Mithilfe dieser Anleitung habe ich den Befehl gefunden, um die Ausgabe zu testen:

cp -r /usr/share/doc/opencv-doc/examples .
cd examples/c
gunzip facedetect.cpp.gz
sh build_all.sh

Zum Starten benötigt man dann noch die XML Datei /usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml. Der Befehl lautet also:

$ ./facedetect --cascade="/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml"

Damit öffnet er das Device /dev/video0. Man kann auch als weiteres Argument ein Bild mit angeben:

$ ./facedetect --cascade="/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml" lena.jpg