Inhalt

Freitag, 8. Juli 2011

Google Plus

Wie nunmehr allgemein bekannt sein dürfte, hat Google sein Facebook-Pendant Google+ vor einigen Tagen gestartet. Allerdings befindet es sich noch im Test-Betrieb und nur selten werden die Tore für wenige neue Tester geöffnet.
Es gibt viele Angebote, bei denen Leute, die bereits drin sind, Pseudo-Einladungen verschicken. [UPDATE] Da es noch kein offizielle Einladungs-Funktion gibt, sind dies nur Status-Meldungen, die per Mail mit nicht-Mitgliedern geteilt werden. Gerade ist mir aufgefallen, dass die offiziellen Einladungen funktionieren. Allerdings rät Google dazu, nicht zu viele Leute einzuladen, da sonst das System überlastet wird und alle darunter leiden. [/UPDATE]
[UPDATE 2] Seit heute Morgen ist der Button für die Einladung wieder verschwunden. Scheinbar sind dadurch so viele Nutzer ins System gelangt, dass es vorerst wieder für Neuanmeldungen gesperrt werden musste. [/UPDATE 2]
Da mann dann aber immernoch das Zeitfenster für die Anmeldung erwischen muss, ist die Chance relativ gering, sich erfolgreich zu registrieren.
Bei mir hat es seit einer Woche nicht funktioniert.

Um das Zeitfenster zu erwischen, kam mir vor kurzem die Idee, einfach ein kleines Programm zu schreiben, was in regelmäßigen Abständen automatisch die Anmeldeseite abruft und eine Benachrichtigung gibt, wenn ein Login möglich ist.

Glücklicherweiße wurde mir die Arbeit abgenommen. Gerade habe ich auf chip.de die Meldung gelesen, dass ein entsprechendes Tool mittlerweile verfügbar ist.

Mit diesem ist es mir direkt innerhalb der ersten Abfrage gelungen, auf die Anmelde-Seite vorzudringen.

Viel Erfolg

zum Artikel auf chip.de

Sonntag, 19. Juni 2011

Samsung Galaxy S Screenshot

Wie ich kürzlich herausgefunden habe, lassen sich mit dem Samsung Galaxy S sehr einfach Screenshots erstellen:

Einfach den Zurück-Knopf (Sensor) drücken und halten und dann auf den Home-Knopf drücken.
Es erscheint eine Meldung auf dem Bildschirm, dass ein Screenshot erstellt wurde. Diesen findet man nun in der Galerie unter "ScreenCapture" bzw. im Dateimanager unter /mnt/sdcard/ScreenCapture.

Soweit ich weiß ist dieses einfache Vorgehen mit Smartphones anderer Hersteller nicht möglich. Ob es so mit anderen Samsung Produkten funktioniert, konnte ich noch nicht testen.

Freitag, 19. November 2010

Erste Gehversuche: Counter

So, und da steht auch schon mein erstes eigenes kleines Projekt: Ein einfacher Zähler, der die Anzahl, wie oft ein Taster gedrückt wurde zählt.
Da mir für den Anfang nur Dioden zur Verfügung stehen, habe ich das ganze als Binärzähler aufgebaut.
Eigentlich ist es einfach nur eine erweiterte "Hello-World"-Schaltung aus meinem Buch, bei der eine Lampe im Sekunden-Rhythmus geblinkt hat.

Ich habe 5 weitere LEDs angeschlossen, um bis 63 zählen zu können.
Jede LED benötigt einen Vorwiderstand, der bei mir 150 Ohm beträgt.
Der Taster ist zwischen einen Pin und Masse geschaltet, sodass er den Eingang beim Drücken auf LOW zieht.
Damit das Eingangssignal definiert ist, wenn der Taster nicht gedrückt ist, wird der interne Pull-Up Widerstand genutzt. Deswegen wird ein HIGH auf den Pin geschrieben, obwohl er als Eingang definiert ist.

Der Rest des Codes ist hoffentlich soweit gut verständlich.

Als nächstes werde ich versuchen den mitgelieferten NTC-Heißleiter in Betrieb zu nehmen, um mit meiner Anzeige ein kleines Thermometer zu realisieren.

Der Quellcode ist im Download-Verzeichnis zu finden.

Und hier ist auch noch ein Bild von meinem Aufbau:


Arduino

Durch einen Artikel in einer Linux-Users meines Vaters bin ich auf ein italienisches Open-Source Projekt aufmerksam geworden.
Arduino ist eine Physical-Computing-Plattform bestehend aus Quelloffener Hard- und Software.
Es gibt verschieden ausgestattete Hardware Varianten, darunter der Arduino Uno.
Auf dieser Platine befindet sich ein ATMega238-Mikrocontroller (16MHz, 32KB Flash, 2KB SRAM), von diesem sind 14 digitale IO- und 6 analoge Input-Pins nach außen geführt.
Das ganze wird mit einem ebenfalls auf der Platine vorhandenen USB-Port mit dem PC verbunden und kann mit der Arduino-IDE in einem Java-Dialekt programmiert werden.
Alles ist nach dem Auspacken sofort betriebsbereit, einfach eine Schaltung zusammenstecken, Programmieren, auf das Board laden und laufen lassen :)

Ich bin stolzer Besitzer eben dieser Plattform. Zum Geburtstag bekam ich ein Set bestehend aus dem Arduino Uno, einem Einsteigerset mit diversen Bauelementen und ein passendes Buch dazu.
Alles zusammen bekommt man bei bausteln.de. Leider sind die Bauelemente des Einsteiger-Sets nicht perfekt auf das Buch abgestimmt, sodass man evtl. einige Teile nachkaufen muss.
Aber ich will mich nicht beklagen, sondern mache mich direkt daran, ein bisschen herum zu spielen und werde auch über meine ersten Gehversuche mit dem Arduino berichten.

Montag, 27. September 2010

vi

Nach einiger Zeit der Stille soll es heute um den Kommandozeilen-Editor vi gehen.
Eigentlich möchte ich lediglich ein paar nützliche Einstellungen und Befehle aufzählen, die man nicht so häufig nutzt und daher schnell vergisst, die aber sehr nützlich sind.

Die Einstellungen sind dabei in der Datei ~/.vimrc vorzunehmen. Als Befehl direkt in vi eingegeben, erreicht man den gleichen Effekt, jedoch nur temporär für die aktuelle Sitzung.

Eine in meinen Augen - und besonders als Programmierer - wichtige Einstellung, ist das Syntax-Highlighting. Der Eintrag dazu lautet:

syntax on

In diesem Kontext ebenfalls erwähnenswert ist die Anzeige der Zeilennummern. Dies geschieht per

set number

Als dritte und vorerst letzte Einstellung ist für mich die Behandlung von Tabs eine wichtige Sache. Ich bervorzuge Leerzeichen statt Tabs. Das lässt sich in vi auch ganz einfach realisieren:

set ts=2       definiert, wieviel Leerzeichen ein Tab breit werden soll (hier 2).
set expandtab  fügt statt einem Tab die oben eingestellte Menge Leerzeichen ein.

Sollte es, wie bei Makefiles zum Beispiel, nötig sein, dass ein Tab zwingend erforderlich ist, so lässt sich dieser im Eingabe-Modus mit der Tastenkombination CTRL+V und einem anschließednen Tab einfügen.

Dienstag, 18. Mai 2010

MP3-Player sortieren mit fatsort

Habt ihr auch einen MP3-Player, der die Titel scheinbar nicht in der richtigen Reihenfolge abspielt?
Das ist meist bei billigeren Modellen der Fall, die kein ordentliches Dateimanagement haben und die Dateie so abspielen, wie sie gespeichert wurden.

Demzufolge wäre eine Möglichkeit die Titel alle in der richtige Reihenfolge auf den Player zu kopieren, jedoch müsste man dabei jede einzelne Datei von Hand kopieren.
Schaltet beim cp-Befehl einfach mal die Ausgabe an: cp -v [Quelle] [Ziel], und ihr werdet sehen, wie durcheinander alles kopiert wird.

Einfacher geht es aber mit dem Programm fatsort. Es lässt sich unter Ubuntu (getestet ab 8.10) einfach über die Paketverwaltung installieren:

sudo apt-get install fatsort
sudo aptitude install fatsort

Danach müsst ihr euren Player anstecken.
Jetzt könnt ihr euch per mount-Befehl alle eingehängten Dateisysteme anzeigen lassen.
Der MP3-Player ist bei mir der letzte Eintrag:

/dev/sdb1 on /media/MP3-PLAYER type vfat [...]

Hier muss man sich das Gerät merken, also /dev/sdb1 und den Player aushängen, da fatsort sonst nicht funktioniert:

sudo umount /media/MP3-PLAYER

Jetzt lassen sich die Dateien mit fatsort sortieren:

sudo fatsort /dev/sdb1

Das wars dann auch schon.

Mit fatsort -h könnt ihr euch weitere Optionen anzeigen lassen, um die Sortierung zu beeinflussen.

Homepage von fatsort: http://fatsort.berlios.de/ 

Mittwoch, 28. April 2010

D-Link DIR-635 reconnect

Einige kennen sicherlich das Problem, dass sie aus verschiedenen Gründen ihren Router dazu veranlassen wollen, sich neu zu verbinden und somit eine neue IP zu bekommen.
Ich hatte dieses Problem mit meinem D-Link DIR-635, welcher sich nicht einfach über ein Script per telnet oder ssh steuern lässt.
Auch Tante Google konnte da nicht weiterhelfen.

Also hab ich kurzerhand ein kleines Script in Perl geschrieben, welches über HTTP-Requests die Startseite des Routers holt, dort das Passwort eingibt und nach dem Login nacheinander die Disconnect- und Reconnct-Buttons auslöst.

Ganz so einfach, wie es sich anhört, war es dann doch nicht, da ich gemerkt habe, dass über den Request zum Login nur ein Hash des Passworts übertragen wird, welcher vorher aus dem Passwort und einem Salt errechnet wird. Glücklicherweise habe ich im Startseiten-Quelltext eine schön kommentierte JavaScript-Funktion gefunden.

Diese geht wie folgt vor:
  • die ersten 16 Stellen des Passwort-Feldes in einen String kopieren
  • falls das Passwort kürzer ist, die restlichen Stellen mit chr(1) auffüllen
  • den Salt vor das Passwort hängen
  • diesen String auf 63 Zeichen auffüllen (wieder mit chr(1))
  • Wenn man sich als Admin einloggen will, noch ein zusätzliches chr(1) anhängen
  • aus diesem String wird jetzt ein MD5-Hash berechnet
  • der Hash wird in eine Hex-Zahl umgewandelt
  • und der Salt wird noch einmal davor gehangen
Anhand des ersten Punktes sieht man schon, dass es keinen Unterschied macht, ob man ein 16-stelliges oder vielleicht ein 20-stelliges Passwort verwendet, da sowieso nur die ersten 16 Zeichen ausgewertet werden.

Mit diesen Informationen konnte ich nun also mein Script schreiben.
Mit entsprechender Perl Installation läuft es auch unter Windows, ich benutze es allerdings nur unter Ubuntu.
Beim Aufruf müsst ihr als ersten Parameter die IP des Routers und als zweiten das Passwort übergeben.

[UPDATE]
Dieses Script wurde mit Firmware-Version 2.2 und Hardware B1 getestet.
Nach einem Update auf Version 2.34 ist es nun auch möglich Captchas für die Anmeldung zu aktivieren. Dafür musste ich mein Script etwas anpassen. Es funktioniert nun wieder, wenn Captchas abgeschaltet sind.
Um den Eintrag nicht zu überfüllen, biete ich die zwei Versionen direkt als Download an.