Jochen - DigiSocken

etwas Technik, viel Informatik und etwas
Lifestyle aus Krefeld

Weitere Informationen über mich sind derzeit in Ihrer Region nicht für Sie verfügbar.

Responsive Design bei Amnesty HHU

Amnesty HHU Design for mobile Die Amnesty International Gruppe der Heinrich-Heine Universität in Düsseldorf hatte über lange Zeit eine leere Webseite. Das ist kein Wunder, da sich dank Frazeburg und Web 2.0 alles auf leicht pflegbare Dienste diverser Datenkraken umgestellt hat. Trotzdem hatte ich mich in der Gruppe dafür stark gemacht, zumindest ein paar unveränderliche Basisdaten und neue Aktionen/Termine auf der Webseite zu pflegen. Im Grunde kann in dem kleinen Webspace (inkl Mail 100MB) eh nicht groß gezaubert werden. Aktuell fummel ich das Basisdesign um, so dass es auf Handys erträglich und nicht mikroskopisch ist :-D

Another RSS

AnotherRSS App Icon Die App ist ein Fork von Vibora-Feed mit einigen Anpassungen. Zum einen wird aggresiver nach Bildern in RSS-Feeds gesucht, Vibora News sind nicht mehr fest hinterlegt und es können beliebig viele Quellen (nicht nur eine zusätzliche) hinterlegt werden. Ich habe die App wieder zuerst bei f-droid.org und seit gestern im Google PlayStore kostenlos veröffentlicht.

UART-Smartwatch am Arduino Day 2017

UART-Smartwatch am Arduino Day 2017 Gestern war ich mal wieder an meiner alten Hochschule und habe meine UART-Smartwatch vorgestellt. Das Mini-Projekt zur App, den Schaltplan und den Code habe ich auf github hinterlegt. Den Vortrag gibt es als PDF und als Webseite ebenfalls bei github. Ein Youtube Video zum Gehäusebau mit selbstgemachten Gummi existert nun auch - mit dem liebevollen Namen Uhrschwein.

UART-Smartwatch goes PlayStore

Im Rahmen meiner Selbst-Marketing-Kampagne (falls es sowas überhaupt gibt), habe ich nun auch eine einfache, billige (Bauteile zusammen unter 10 EURO) Version der UART-Smartwatch gemacht. Die App ist nun zusammen mit einer Art Werbevideo im Play Store. Natürlich wie immer alles OpenSource und kostenlos! Das Video ... naja, dafür musste ich ein Youtube Kanal einrichten - fand ich nicht so toll. Mein Blah-Blah im Video ist auch recht übel, trotzdem hoffe ich auf den Erfolg (was genau?!).

RickApp goes PlayStore

RickApp App Icon Die App spielt Rülpser, wenn sie Stille erkennt. Da ich denke, da es dafür absolut einen Markt gibt, hab ich die App zuerst bei f-droid.org und seit heute im Google PlayStore kostenlos veröffentlicht. Mögen die viralen Marketing Spiele beginnen :-D

Weil's jeder macht

Ich arbeite seit neustem an meiner Sichtbarkeit im Web. Dazu gehört nun neben Twitter ein Google+ Profil. In wenigen Tagen kommt dann noch in einem Soz. Med. Monopol ein Profil hinzu was dann auch "Ich" ist :-P

Mit github kleine Projektseite machen

Wer die normale Github.com Seite für seine Readme und seinen Code nicht mag, der kann daraus eine hübsche Webseite erzeugen lassen. Ich habe das mal mit meinem AES CTR Multithread Code gemacht.

Meine .conkyrc im neuen Format

conkyrc Auf meinem xfce Desktop ist es immer mal nötig, dass ich CPU Last, Netzwerk IP und ein paar andere Größen sehe. Dafür nutze ich conky. Seit ein paar Monaten haben die Entwickler von Conky die Art umgestellt, wie die Einstellungen abgelegt werden können. Mit dem unten angegebenen Link habt Ihr ein Beispiel, wie so etwas aussehen kann.

Mein Gogs Server mit gültigem SSL-Zertifikat

Gogs Logo Seit längerem nutze ich Gogs als wirklich leicht zu benutzenden git Server. Über Gogs hatte ich auch meinen ersten Kontakt zu der Sprache golang, was ich in Zukunft noch weiter vertiefen will. Die Gruppe Let's Encrypt bietet kostenlose SSL-Zertifikate an - durch eine neue Technik der Verifizierung ist das möglich. Seit ein paar Wochen werden diese SSL-Zertifikate endlich auch durch alle gängigen Browser akzeptiert. Daher habe ich meinen git-Server darauf umgestellt.

Web-App: Meldeformular Vogelsicherheit an Glas

Fundmeldung von Vogelschlag
Handy-freundliches Web-Formular für vogelsicherheit-an-glas.de

Die Projektgruppe zur Vermeidung von Vogelschlag an Glas des BUND NRW sammelt Bilder von Vogelopfern und deren Fundort. Das Meldeformular ist bislang an den statischen Aufbau der Webseite gebunden und daher mit Smart-Phones nicht gut bedienbar (sehr klein). Das neue Formular zur Fundmeldung von Vogelschlag an Glas ist an die Bedienung via Tablet und Smart-Phone angepasst. Datum und Zeit werden automatisch ausgefüllt. Mit Lokalisations-Diensten lässt sich auch der ungefähre Standort automatisch finden. Eine Karte von OpenStreetMap ist in dem Formular eingebunden, um den Fundort zu markieren.

Ich habe dieses Formular kostenfrei und unter Absprache mit der Projektgruppe erstellt und werde es, so lange wie ich kann und so lange wie es nötig ist auf meinem Server beherbergen. Die Verarbeitung und die Speicherung der Bilder geschieht weiterhin über die Webseite vogelsicherheit-an-glas.de. Das Thema Vogelschlag an Glas ist mir persönlich sehr wichtig, nachdem ich dazu eine Doku über die Stadt New York sah. New York liegt leider in einer Flugroute und tausende von Vögeln verenden dort zwischen den spiegelnden Hochhäusern. Besonders traurig war auch die Installation von Licht-Spots am Ground-Zero: In der Nacht wurden viele Vögel dadurch geblendet und flogen - gefangen im Lichtstrahl - bis zum Erschöpfungstod.

Technische Informatik: Do It Yourself Smartwatch

Ich habe mir für unter 60 EUR eine Smartwatch aus einem oLED Display, einem Bluetooth Low Energy Modul (Bluefruit UART) und einem Trinket Pro (vergleichbar mit Arduino Nano) selber gebaut. Zu dem Chip des Bluetooth-Moduls hat der Hersteller ein paar Beispiel Apps incl. Quellcode für Android und iPhone zur Verfügung gestellt. Den UART-Terminal von diesen Apps habe ich gründlich verändert: Alle Android Meldungen (eMail Betreff, SMS, Telegram, WhatsApp, ...) werden sofort auf die Smartwatch gesendet. Drückt man eine Taste an der Watch, kann man die ersten 120 Zeichen lesen. Eine Akkustands-Anzeige ist auch implementiert (mit 170mA Akku ca 10h Laufzeit). Durch die Firmware für den Mikrocontroller fällt das Projekt in den Bereich der technischen Informatik. Drückt man die der Watch Taste etwas länger, sendet die Watch den Buchstaben t an das Smartphone. Dieses antwortet dann mit einer Uhrzeit, die auch als Analoge Uhr auf der Watch dargestellt wird. Dass das alles auch mit abgeschalteten Display des Handys tut, versteht sich von selbst.

Die Uhr ist ca. 23mm breit und an der dicksten Stelle 14 mm hoch. Obwohl es richtige Smartwatches für 10 EUR gibt, ist es trotzdem ein Spannendes Projekt. Es sind z.B. einige Pins für Analogwerte offen und für weitere Tasten. Dank dem Quellcode für App und Firmware (Arduino IDE) sind keine kreativen Grenzen gesetzt!

Adafruit Bluefruit LE UART Friend

Das Bluetooth Modul ist eine feine Sache. Mit Software-Serial kann man auch mit dem ATtiny85 bereits Sachen via App Steuern und Sensorwerte erfassen bzw. Übertragen. bleSensor ist ein schönes, kleines Beispiel, was ich einmal für einen Freund konzipiert habe (15MB, mp4-Video):

1,30 EUR Mikrocontroller als USB-Keyboard

Nervt euch das, dass Ihr einen kleinen Raspberry-Pi als MediaCenter oder sowas nimmt, und zur Bedienung eine gigantisch große Tastatur anschließen müsst? Vielleicht ist dieses Projekt aus der technischen Informatik eine Lösung für euch: Trinket3v 2keys mit Poti

Strenggenommen muss man nicht für ca 7 EUR ein Trinket kaufen, da es für den ATtiny85 als Mikrocontroller auch eine USB-Bibliothek (vusb) gibt. Aber mit dem Trinket hat man 2 Vorteile: Es ist ein Bootloader darauf installiert, so dass man keinen Programmer (also zusätzliche Hardware) braucht, um sein Programm darauf zu installieren. Mit der Arduion IDE kann man den Trinket auch sehr komfortabel Programmieren - und das unter Mac, Linux und Windows.

Mini Bachelorarbeit

Für die Module "Verteilte Systeme" und "Wissensbasierte Systeme" bei Professor Rethmann an der Hochschule Niederrhein in Krefeld erstellte ich ein Beispiel (Code und Dokumentation), in dem die Verwendung von GLPK und Apache Thrift gezeigt wird. Das Ganze ist bei sourceforge zu finden (oder sehr bald auf der Webseite von Prof. Rethmann). Die html-Doku des Codes wurde mit doxygen erzeugt und ist auch hier zu finden.

Mandelbrot Menge 3D

Weil an der HS scheinbar nur openGL tadellos klappt, werde ich mein PAC-Projekt wohl weder mit openCV oder openMPE machen. Deswegen habe ich einen alten C++ Code von mir reaktiviert und neu zusammengestellt, der sehr übersichtlich ist und die Mandelbrotmenge in 3D mit openGL darstellt. Mit + und - und je position der Maus kann man schon reinzoomen.

DuinoMite IO - PIC DuinoMite Board selber verkabeln

Sollte mal jemand das selbe Problem haben und ein DuinoMite Board mit einem PIC Mikrocontroller an VGA anschließen: Hier ist ein Plan (auf eigene Gefahr!) zur Verkabelung. Leider gibt es zu meiner Verwunderung nur Weiss/Schwarz - also keine Farben! Mein Problem beim ersten Verkabelungsversuch war ein total verraustest VGA Bild. Die unterscheidung VGA-GND und GND war wohl sehr wichtig. Ich orientierte mich danach am Pinout des Mini-Boards und Hurra: eindlich kann ich mit Basic auf dem Board den Mikrocontroller programmieren. Der eingebaute 260 kB Flash zum Speichern ist auch super.

Meine Bachelorarbeit

Entwurf und Implementierung verteilter Lösungsansätze für Capital Budgeting Probleme mit GLPK und Apache thrift

Das Toolkit glpk enthält Methoden der gemischt-ganzzahligen linearen Programmierung (MILP). Diese Methoden lassen sich zur Lösung von Capital Budgeting Problemen (CBP) nutzen. Da glpk weder multithreaded fähig ist noch eine Verteilung auf mehrere Rechner implementiert ist, kann es sein Potential auf heutigen Computern und in vernetzten IT-Systemen nicht voll entfalten. Um bei der Lösung von CBP mit kommerziellen Toolkits wie CPLEX und Gurobi mithalten zu können, haben wir mit dem Verteilungs-Framework Apache thrift und der C++ API von glpk eine Möglichkeit geschaffen, um CBP auf beliebig viele Kerne und Rechner zu verteilen. Durch Last-Balancierung und Berücksichtigung der Methoden der MILP bei der Verteilung war es uns sogar möglich, die Verarbeitung um mehr als das Vielfache der genutzten Prozessor-Kerne zu beschleunigen. Der Branch-and-Cut-Algorithmus von glpk, mit dem primär gearbeitet wird, liefert bei einer ausgewogenen Unterteilung in Teilprobleme, paralleler Verarbeitung und regelmäßigem Austausch der bisher besten Lösung unter den Teilproblemen deutlich schneller eine Lösung, als eine sequenzielle Verarbeitung der Teilprobleme.

Irgendwann werde ich das nochmal mit Websockets und golang nachprogrammieren und meinen eigenen Simplex-Algorithmus verwenden. Zur Zeit mache ich mit golang einen App-Server für den Google Play Firebase Messaging Cloud Service für eine YetAnotherMsg App.

Android Apps

App zur Smartwatch

UART-Smartwatch App Icon Ich habe nun das Do-It-Yourself Smartwatch Projekt damit abgeschlossen, dass ich Android App, Schaltplan und Firmware mit einer englischen Beschreibung auf Github publiziert habe. Außerdem hab ich die App soweit wie möglich auf englisch übersetzt und im f-Droid "Store" veröffentlicht.

Vibora-Feed: Die App zur Homepage

ViboraFeed App Icon Für die Webseite vibora.de habe ich eine App entwickelt, die die RSS-Feeds der Webseite anzeigt. Zusätzlich kann man eine weitere RSS-Feed URL angeben. Das besondere an der App: keine Listen von Listen von Listen, sondern ein übersichtliches Design. Bild und Feed-Text wird komplett in der Benachrichtigung (Notification) gezeigt sowie ein Link, um die Nachrichtenquelle direkt aus der Benachrichtigung heraus zu öffnen. Besonders interessant für meine DIY-Smartwatch: jede Nachricht ist eine Meldung: es wird also nicht eine Nachricht mit "6 neue Nachrichten" gezeigt, sondern eben 6 einzelne Nachrichten.

Publizieren im FOSS f-Droid Store

FOSS (Free Open Source Software) ist eine feine Sache, wo ich mich beteiligen will. Ich versuche gerade, einen Texteditor in f-Droid zu bekommen. Das ist alles sehr eigenartig, denn das was ich hab "kompilieren" können funktioniert nicht zwangsläufig bei den Leuten von f-Droid. Der Ablauf zum Publizieren in f-Droid schaut in etwa so aus:

  • App programmieren
  • auf Gitlab oder Github den Code publizieren
  • offene Lizenz beilegen
  • sich fdroidserver herunter ziehen
  • von fdroiddata einen Branch (eine Art Kopie) bei seinem Gitlab Account machen
  • in dem Branch mit den Tools von fdroidserver seinen publizierten Code "klar machen"
  • einen merge-Request absetzen
  • hoffen, dass alles ok ist, und eine (von denen) signierte APK erstellt werden kann
  • sich freuen

Im Grunde geht es nur darum, dass die eine "Matadaten"-Datei zur deiner App bei fdroiddata aufnehmen. Die Tools zum Testen und Erstellen aus fdroidserver stellen nur sicher, dass später deren Server keine Probleme mit der Erzeugung der APK-Datei hat.

So, der Quellcode wurde bei mir dort abgelegt:

github.com/no-go/TextThing

The App Icon TextThing
TextThing is a simple text file editor for Android. You can use it via a file manager app. I use it to write some notes. The fixed default file path is Documents/click.dummer.textthing/notes.txt . If you open the app, this file will be opened, created and used for store. There is no file manager integrated!

Als Lizenz entschied ich mich für FreeBSD (2-clause). Das Kürzel dafür muss man per Hand in die Metadaten Datei einbinden und sollte mit denen auf gnu.org/licenses/license-list.html übereinstimmen. Die notwendigen fdroid-Tools hole ich mir mit git clone https://gitlab.com/fdroid/fdroidserver.git

Um auf sie zugreifen zu können, mache ich export PATH="$PATH:$PWD/fdroidserver" Hierbei muss man wissen, dass diese Anpassung des Applikations-Suchpfads nur für diese offene Shell+Login gilt. Macht man Terminal zu, ist es vergessen :-D

Außerdem müssen die Tools mein Android SDK finden können. Dazu mache ich export ANDROID_HOME=/home/tux/Android/Sdk/ denn da liegt es bei mir, bzw beim User "Tux" im Home-Verzeichnis.

Überraschend konnte ich mich mit dem github-Account bei gitlab einloggen. Nur so ist es möglich, an dem "fdroiddata" Projekt mit zu wirken. Über die Webseite kann man recht leicht eine Kopie/Branch von fdroiddata für eigene Zwecke erstellen. Im Original hat man ja keine Schreibrechte. Nun hole ich mir mit clone den soeben erzeugten Branch:

git clone git@gitlab.com:deadlockz/fdroiddata.git
cd fdroiddata
touch config.py

Der erste Versuch, die Punkte von CONTRIBUTING.md durch zu gehen, scheiterte. Ich musste noch python-yaml python-requests apache-ant nachinstallieren. Jetzt sollte es aber gehen: fdroid import --url https://github.com/no-go/TextThing --subdir app

Und dann ging der Ursel los! Zum Glück konnte ich in die anderen Pakete reinschauen (Merges, Code, Metadaten) so dass ich glaube, nach ca. 5 Stunden Arbeit endlich etwas brauchbares hin bekommen zu haben. Mit Android Studio eine APK machen ist halt etwas total anderes, als es mit deren Tools zu machen. Dann kommt noch hinzu, dass man in den Metadaten zu seiner App neben der Versionsnummer noch einen Versionscode hinterlegen muss, das Ganze automatisch durch Tags in git erkannt werden sollte (aber die Angabe auch in build.gradle steht) und es Ärger bezüglich Target Version (4.1.1 - 6.0.1) und Zielplattform gab. Da passte irgendwas mit den Default-Android-Themes nicht ... den tatsächlichen Fehler hab ich nicht begriffen - unter Android Studio tat ja alles immer ?!

Das Schlimmste war, dass ich kein brauchbares Konzept zur zum Debuggen hatte. Es lief immer so ab: Anpassung in Android Studio, Git commit, tag, push nach github, dann wieder mit fdroid checkupdates (oder war es zuerst den commit Code in metadata/click.dummer.textthing.txt eintragen?), hoffen, dass der neue Versions Tag erkannt wird, ... Kurz: es war eine Tortur. Am Ende (so gegen 3 Uhr Nachts) lief der Build endlich durch. Hurra!

Nun muss das Ganze (eigentlich nur die click.dummer.textthing.txt Datei) zurück nach Gitlab:
git add * git commit -m "add TextThing" git push

Die Meta-Datei schaut nun so aus (viel mit der Hand angepasst):

Categories:Development,Writing
License:FreeBSD
Web Site:http://dummer.click
Source Code:https://github.com/no-go/TextThing
Issue Tracker:https://github.com/no-go/TextThing/issues

Auto Name:TextThing
Summary:Text editor
Description:
TextThing is a simple text file editor for Android. You can use it via a file
manager app. I use it to write some notes. The fixed default file path is
Documents/click.dummer.textthing/notes.txt . If you open the app, this file will
be opened, created and used for store.

There is no file manager integrated.
.

Repo Type:git
Repo:https://github.com/no-go/TextThing

Build:1.7,17
	commit=5608476
	subdir=app
	gradle=yes
	target=android-23

Auto Update Mode:Version v%v
Update Check Mode:Tags
Current Version:1.7
Current Version Code:17

Mein Merge Request war aber wieder über die Gitlab Seite ganz leicht zu erstellen. Das ist er:
merge requests 1517
Jetzt bin ich mal gespannt, ob ich am Ende alles richtig gemacht hab.