Liomans Blog

42 ist die Antwort - aber wie lautet die Frage?

Category: Open Source (page 1 of 9)

Android: Kontakte aus einem Nandroid-Backup extrahieren

Android logo

Bild von Google steht unter CC-BY-SA

Bevor man irgend eine neue ROM auf einem Android-Handy installiert macht man natürlich ein Backup vom alten System. Das kann man über adb oder natürlich über das Recoverysystem, das man ja eh für das Flashen braucht.

ClockworkMod Recovery erstellt dabei ein Nandroid-Image. Dieses ist eine Sicherung des kompletten Systems mit allen System- und Appdaten. Nun habe ich auf einem Galaxy S2 Cyanogenmod installiert und viele Daten waren nicht drauf, aber anscheinend waren die Kontakte nicht synchronisiert.

Nun wollte ich an die Daten aus dem Backup kommen, ohne gleich alles wieder rückgängig zu machen. Der erste Versuch dies über die App Nandroid Manager zu erledigen scheiterte. Kontakte kann man zwar anschauen, aber noch nicht wieder zurück ins System holen.

Also erstmal die Daten per USB auf den Rechner holen. In dem von CWM erstellten Ordner liegen die Dateien:

  • data.ext4.tar
  • data.ext4.tar.a
  • data.ext4.tar.b

data.ext4.tar.a habe ich in data.ext4.tar umbenannt und konnte diese dann mit dem Archivmanager öffnen.  Nun muss man die Datei /data/data/com.android.providers.contacts/databases/contacts2.db entpacken. Dahinter verbirgt sich eine Sqlite-Datenbank mit allen Kontakten. Um diese wieder in Android zu importieren muss man eine VCF Datei erstellen.

Das kann mit dem Script dumb-contacts2db tun.  Nach dem Download muss man es nur noch mit  chmod +x dump-contacts2db.sh  ausführbar machen und kann dann alle Daten einfach durch Aufruf des Skriptes extrahieren. Dazu reicht es dieses folgendermaßen auszuführen:

Kopiert man diese zurück auf das Mobiltelefon kann die Kontakte-App diese Datei dann wieder importieren und man hat alle alten Kontakte wieder.

Flattr this!

Kleines Projekt: Mapstats – Statistiken auf einer D3.js Karte

Mit dem Flugzeug beförderte Passagiere in Europa

Mit dem Flugzeug beförderte Passagiere in Europa

Ich bastel gerade an einem kleinen Projekt und versuche mich an der Visualisierung diverser Daten. Dazu verwende ich die wirklich geniale Bibliothek D3.js und habe mal mit einer Karte und europäischen Statistiken von eurostat darüber gelegt. Diese hoffe ich noch ein bisschen ausbauen zu können. Zuerst sollen noch ein paar Statistiken hinzukommen, denn bisher sind es nur Daten zum europäischen Flugverkehr.  Dann sollen interaktive Elemente einprogrammiert werden. Vermutlich werde ich da mit erstmal mit den noch nicht sonderlich hübschen Tooltips anfangen.

Die Seite ist mit Material Design Lite schon mal recht ansprechend geworden.  Und da das Projekt nur mit Open Source und Open Data arbeitet hat es auf GitHub seine Heimat gefunden.

Wer mitarbeiten möchte kann gerne mal im Repository vorbeischauen.  Das Ergebnis ist dann: Mapstats- Statistics on D3.js-maps

Flattr this!

HabitRPG – Oder wie man die Aufgabenliste interessanter macht

habitrpg_pixelVor ein paar Wochen bin ich auf HabitRPG gestoßen. Die Webanwendung hat vor einiger Zeit durch eine erfolgreiche Finanzierung bei Kickstarter für Aufmerksamkeit gesorgt, aber irgendwie hatte ich diese Idee wieder aus den Augen verloren. Meldet man sich bei dem  Dienst an kann man drei unterschiedliche Aufgabenlisten. Ganz klassisch: Aufgaben. Hier kann man eintragen was so ansteht. Dazu kommen Tägliche Aufgaben. Wie der Name schon sagt wieder kehrende Aufgaben, die man auch nur an bestimmten Tagen einblenden lassen kann.

Gewohnheitenliste auf HabitRPG

Gewohnheitenliste auf HabitRPG

Auf der letzten Liste lassen sich Gewohnheiten sammeln. Im Gegensatz zu den klassischen Listen zum Abhaken erledigter Aufgaben kann man hier mit Plus und Minus sich selbst belohnen/bestrafen. Das ist aber nur eine kleine Besonderheit, der eigentliche Mehrwert dieser Anwendung ist das Verbinden einer normalen Todo-Anwendung mit klassischen Elementen eines Rollenspieles (daher das RPG im Namen). Erledigt man Aufgaben, sind diese nicht nur einfach endlich weg,  sondern sie bringen auch noch Silber/Gold und Erfahrung, je nach eingestellter Schwierigkeit unterschiedlich viel. Für Gold kauft man dann Ausrüstungsgegenstände für seinen

Mein Avatar in Partyrobe

Mein Avatar in Partyrobe

Avatar oder gönnt sich selbst Belohnungen (Sofern man das Spiel so spielen möchte). Auch sonst gibt es alle möglichen Dinge, die das erledigen von Aufgaben mit etwas Freude verbinden. So kann man Eier und Tränke finden, Quests erledigen und Tiere aufziehen. Mit Gilden, Gruppen und Wettbewerben kommt auch die soziale Komponente nicht zu kurz. Innerhalb kurzer Zeit, hat HabitRPG meine vorherige ToDo-Anwendung abgelöst und ich erledige die Aufgaben auch wirklich. Vorher kam es immer wieder vor, dass ich das Brot auf der Liste schlicht und ergreifend vergessen hatte. Das kommt bei Habit seltener vor, denn man schaut öfters drauf um noch ein bisschen Gold und Erfahrung auf dem Heimweg abzustauben. Besonders sympatisch ist, dass man die Plattform aktiv mitgestalten kann. Je nach eigenen Fähigkeiten kann man sich unterschiedlich einbringen, denn die Website wird auf Github weiterentwickelt. Ist man des Programmierens nicht mächtig, kann man auch Übersegtzen, sich Quests ausdenken oder Grafiken beisteuern. Eben alles was bei einem Open-Source-Projekt benötigt wird. Und möchte oder kann man keine Zeit spenden, kann man die Finanzierung des Projekts durch Geld unterstützen. Im Spiel bekommt man dafür auch Edelsteine, die man dann in Spielgegenstände oder optischen Schnickschnack stecken kann.

Die offizielle Android-App ist übrigens etwas träge. Mobil nutze ich daher die inoffizielle und deutlich schlankere Anwendung HabitRPG Client.

Flattr this!

Tomate – Pomodoro unter Linux

Ich habe die Pomodoro-Technik für mich entdeckt. Diese wird immer mal wieder als die neuste Idee der Zeiteinteilung angepriesen, aber an sich ist der Trick uralt. Aber zuerst zur Technik an sich. Man stellt sich einen Kurzzeitwecker auf 25 Minuten (oder eine andere sinnvolle nicht zu lange Zeiteinheit). In dieser Zeit tut man nichts anderes, als die gestellte Aufgabe(n) zu erledigen. Man surft nicht auf YouTube herum, checkt nicht schnell mal die Mails oder schaut auf das Handy. Klingelt der Wecker, stellt man ihn gleich wieder. Dieses mal auf 5 Minuten und verhält sich genau umgekehrt. Sprich man macht echt Pause und vermeidet alle Arbeit. Holt sich einen Kaffee, bewegt sich ein bisschen, lässt frische Luft herein usw. Nach vier Pomodoros macht man eine längere Pause von 20-30 Minuten und lässt auch hier alle Arbeit ruhen.

Logo des Programms Tomate

Logo des Programms Tomate

Das funktioniert wirklich gut und die Produktivität steigt sehr schnell, wenn man sich mal daran gewöhnt hat. Die klassische Low-Tech-Variante mit Zettel Papier und Kurzzeitwecker ist wahrscheinlich die intensivste und Beste. Leider ist sie nicht ganz bürokompatibel. Wenn ständig irgendwo ein Wecker klingeln würde, wäre es um die konzentrierte Arbeitsatmosphäre schnell schlecht bestellt. Für solche Gelegenheiten bieten sich diverse Mobilapplikationen an oder, wenn man eh am Rechner sitzt, ein kleines Programm. Neben diversen Browsererweiterungen gibt es eben auch native Anwendungen. Für Linux/ Ubuntu hat sich Tomate als das derzeit Beste erwiesen (Oder das was mir am meisten zusagt). Tomate ist mit Python und Gtk3 entwickelt und beherrscht die wichtigsten Funktionen. Es ist nicht in den Paketquellen enthalten, kann aber per PPA hinzugefügt und installiert werden.  Dazu im Terminal folgende Zeilen eingeben.

In den Einstellungen kann man nun die Zeiten ändern, oder die kleine Tomate im Indicator dazu bringen den Fortschritt anzuzeigen. Außerdem ist es möglich die Art der Benachrichtigung zu ändern, leider ist eine Änderung des Tones (noch) nicht möglich. Was leider auch noch etwas unschön ist. Klickt man auf das Kreuz oben rechts schließt man das Programm. Möchte man es nur in der Benachrichtigungsleiste haben, muss man auf das Icon klicken und kann dann mit einem Klick auf “Hide” das Fenster verstecken.

Flattr this!

MySQL: Einträge mit regulären Ausdrücken löschen

Arbeitet man mit Datenbanken, speziell im Entwicklungsstadium einer Anwendung, kann allerlei Müll anfallen, den man tunlichst loswerden möchte.
Geht es um einzelne Einträge, kann man das gut mit Befehlen wie:

wenn man nur wenige oder gar einen einzelnen Eintrag loswerden möchte. Und

würde alle leeren Testeinträge verwerfen.

Hat man jedoch viele Reihen, die unerwünscht sind, kann es schnell eine abendfüllende Aufgabe werden alles Unbenötigte loszuwerden. Und leider sind nicht immer alle Testeinträge an der richtigen Stelle leer. Schon ein Zeilenumbruch (“\n“) in einem Textfeld reicht das zweite Statement zu vereiteln.

Besser geeignet sind für solche Vorhaben sind Reguläre Ausdrücke, so muss man nicht von Hand zusammensuchen oder löschen. Dazu muss man einfach in die WHERE-Klausel in folgender Weise modifizieren:

In diesem Fall werden alle Zeilen gelöscht, die nur aus leeren Zeichen und ein oder mehreren Zeilenumbrüchen bestehen. Das funktioniert natürlich analog auch mit SELECT. 

Flattr this!

Older posts

© 2015 Liomans Blog

Theme by Anders NorenUp ↑