Diavolino und Ubuntu

Diavolino. Von Evil Mad Science.

Das Diavolino ist ein freier, programmierbarer Mikrocontroller. Er ist Arduino-Kompatibel und muss selber zusamengelötet werden. Vorteile gegenüber einem zusammengebastelten Arduino

  • billiger (wenn man einen FTDI-Kabel/FTDI-Friend! besitzt)
  • Komponente können bei Bedarf aufgemotzt werden
  • Löten macht Spass 🙂

Zum Beginnen empfehle ich trotzdem einen Arduino. Ich habe selbst gemerkt, dass vor allem in der Anfangsphase etwas Frust unausweichlich ist ...

Karge beiliegende Beschreibung, die völlig ausreicht. Sofern man schon einmal gelötet hat ...

Nach ein paar wirklich nicht schweren Lötarbeiten, sollte der Controller fertig sein. Nochmals: Zum Einstieg Arduino verwenden. Diavolino ist sehr cool, aber man sollte vorher schon mal gelötet haben und sich mit dem Arduino auskennen, sonst ist Frust vorprogrammiert.

Assembly done. Diavolino rocking for action!

 

Diavolino und Ubuntu

Leidiges Kapitel. Hat mich etwa 2 Wochen gekostet bis ich das Teil endlich laufen hatte. Bis zum Schluss waren doch ein paar Tweak nötig, die ich hier kurz festhalten.

Ich gehe hier davon aus, dass der Leser sich bereits grundlegend mit dem Arduino auskennt sund schon mal ein Sketchbook kompiliert und geuploaded hat. Ansonsten könnt ihr das hier nachlesen.

OK. Zunächst braucht ihr einen FTDI Kabel oder ähnliches. Ich verwende den FTDI Friend! von Adafruit.
Damit ist zunächst einmal eine physische Verbindung zum Diavolino möglich. Leider funktionierte diese von Haus aus nicht mit dem Arduino von Ubuntu.

Ein Upload zum Diavolino endete stets mit

oder mit

Zunächst einmal wurde der FTDI-Friend nicht erkannt. Merkbar daran, dass das ls /dev/tty*-Kommando mit zwar mein Arduino angezeigt hat (ttyACM0), aber keinen FTDI-Friend (später als ttyUSB0)

ttyACM0 wird angezeigt, ttyUSB0 scheint nicht da zu sein.

Nach ein paar Recherchen hat mir dieser Beitrag geholfen, den FTDI Friend! mit Ubuntu zu koppeln:
Zunächst Vendor und Produkt-ID mit lsusb rausfinden

Notieren. Bei mir ist das also (Achtung! In HEX)

VENDOR-ID: 0x0403
PRODUCT-ID: 0x6001

Diese mit modprobe benutzen, um das ftdi-sio Kernel Modul richtig zu laden

Ohne vendor=0x0401 und product=0x06001 hat's bei mir nicht geklappt. Danach war jedoch ttyUSB0 zu finden:

Hurra! Doch ich hatte noch ein Problem: Auf ttypUSB0 konnte Arduino nicht schreiben. Merkbar daran, dass ttyUSB0 nicht unter "Tools->Serial Port" auftauchte ... Ein simples chmod reicht.

OK, ist grundsätzlich nicht gut, dass ALLE Benutzer lesend und Schreibend darauf zugreifen können. Consider it a temporary hack, and this should be removed soon! 😉

Viel Spass!

Android goodie: AirDroid

Genervt davon, dass ihr eine riesige Arbeitsfläche am Bildschirm habt, das Handydisplay aber nur minimalistisch klein und unpraktisch? Warum sollte ich denn nicht meine SMS am Bildschirm lesen und beantworten können?

Dann bringe ich euch heute eine besonderes Goodie nahe: AirDroid für Android.

Login-Fenster am PC (Ausschnitt)

Sobald das App am Handy gestartet ist, zeigt es einen Zugangscode und eine Web-Adresse. In meinem Fall war es die http://10.0.1.72:8888 - gib diese Adresse in  deinen Lieblingsbrowser (z.B. Firefox oder Chrome oder Opera, notfalls auch Safari) ein, und du landest auf der oben dargestellten Login-Seite. Dort musst nun den am Handy dargestellten Zugangscode eingeben, und bevorzugt HTTPS aktivieren (Verschlüsselte Verbindung)

Oberfläche von AirDroid am PC

Die Oberfläche ist intuitiv zu bedienen und sehr einfach. Sogar auf meinem Netbook (Intel Atom 1GHZ Single-Core, 1 GB RAM, LUbuntu 12.04, HDD) läuft's im Chrome akzeptabel.

Nun ist es endlich auch möglich SMS vom PC-Browser aus zu versenden, Dateien bi-direktional zu transferieren, Kontakte zu managen, Bildeanzuschauen, Apps zu installieren. 🙂
Kurz: Du bringst dein Phone auf den Computerbildschirm.

Message Fenster lädt gerade im Firefox am PC.

Viel Spass mit AirDroid !!

QR-Code von AirDroid

 

Fix Arduino in Ubuntu 12.04

HELL YEAH! Endlich ist das Adafruit-Packet aus Amerika eingetroffen. Los geht's mit etwa Arduino-Löt-Spass.

Doch anscheind ist die frische Arduino-Installation unter Ubuntu anderer Meinung und wirft einem gleich schon einen fetten Stein ins Boot: Hochladen auf das Arduno Board funktioniert von Haus aus nicht über die Arduino IDE.

Frustrierender Anblick: "Serial Port" ist nicht aktivierbar. Wie bitte soll ich da meinen Code hochladen?!??

Nach einigen Versuchen und etwas einlesen bin ich auf die Lösung gestoßen:

  1. Der aktive Benutzer muss zur Gruppe dialot gehören (sollte von Arduino selbst gelöst werden)
  2. Die Device file muss lese- und schreibbar sein

Gruppe dialout

Ersteres ist leicht zu bewerkstelligen, wenn sich die Arduino IDE noch nicht darum gekümmert hat:

sudo usermod -a -G dialout user

Wobei user durch den entsprechenden User ersetzt wird.

Device file

Zunächst die entsprechende Device file identifizieren. Mit

ls /dev/tty*

Bei mir läuft das Arduino unter ttyACM0, das Diavolino mit einem FTDI Friend als ttyUSB0. Entsprechende Device-file notieren, notfalls mit dmesg oder lsusb Nachforschungen anstellen.

Nehmen wir an, wir wollen ttyUSB0 für das Arduino verwenden. Dann wird die Device file jetzt für alle Benutzer zugängig gemacht:

sudo chmod a+rw ttyUSB0

Fertig!

Jetzt funztz: Serial port kann ausgewählt werden, mein Diavolino blinkt. 🙂

OK, damit läuft nun die Ardunio IDE unter Ubuntu 12.04. Viel Spass, und keep it moving 🙂

Data on iCloud - AAAAAAAAAAANNNNNNNNDDDD it's gone!

Cloud und Security ist ein Thema, das durch viele technische und benutzerspezifische Schichten geht - und nach wie vor mehr Fragen offen lässt als beantwortet.

Dieses aktuelle Beispiel zeigt, was passieren kann, wenn dein Mac-Account gehackt wird: Die arme Seele verlor in einer Nacht sein

  • IPhone
  • IPad
  • MacBook Air
  • Fotos, Emails, Dokumente, ecc des letzten Jahres

Kurzzusammenfassung

Irgendjemand verschaffte sich Zugang zum Mac-Account von @mathonan (Link zu Twitter) und führte einen Remote Wipe aller seiner Geräte aus.

Den Anruf beim Apple-Callcenter musste er daraufhin mit dem Handy seiner Frau tätigen, da sei IPhone nach dem remote wipe nicht mehr zu gebrauchen war ...

Ein Backup seines IPhones hatte @mathonan - Auf dem MacBook Air. Das mit dem selben Account verbunden war - und leider auch remotely wiped wurde. Also war auch das Backup weg!

 

Das Beispiel zeigt eindrucksvoll, welche Probleme mit Clouds verbunden sein können - das Betrifft Apple-Nutzer leider genauso wie alle anderen Cloud Dienste. In diesem Fall gibt auch keine Schadenfreude - Solche Verluste tun echt weh!!

Counter-Measurements

Grundsätzlich:

  1. Keine persönlichen Daten in die Cloud!!
  2. Backups

Zu Ersterem: Persönliche, private und intime Daten haben ohnehin nichts auf einer Cloud verloren! Das wäre das selbe, als ob du Familienfotoalbum, Sparbuch und Kreditkarten in eine sporadisch verschlossene Holzkiste im Nachbars Garten verstauen würde, der eine so hohe Hecke hat, dass du die Kiste nicht mehr siehst, wenn du nach Hause gehst. Würde auch kein Mensch machen.

Zu Zweiterem: Nur Backups auf Datenträger die nicht im Netz hängen schützen vor Datenausfall durch Angriffe im Netz oder Naturkatastrophen. Was passiert, wenn euer Betriebe unglücklicherweise von einer Naturkatastrophe heimgesucht wird? Offline-Backups helfen!

Nasa's seven minutes of terror

Viele haben sicherlich mitbekommen, dass am 5. August um 22:31 PDT (05:31 GMT oder 07:31 CEST) die Curiosity  (siehe auch Mars science labratory) am Mars landet. Damit verbunden ist die PM-Kampagne 7 minutes of terror.

Die beste Kurzzusammenfassung ist "Mars in a Minute - How hard is it to land curiosity on mars?" (Link zu YouTube).

Vollautomatische Landung

Die Vorstellung, dass ein solcher Landevorgang noch immer durch Menschen mit Joystick und Tastatur und irgendwelchen futuristischen hast-du-nicht-gesehen Zeugs passiert, ist einfach gesagt FALSCH.

Selbst wenn der Mars der Erde am nächsten ist, trennen Erde und Mars etwa 0,524 AE (~7.84 10^7 km). Da die Lichtgeschwindigkeit die Obergrenze für jegliche Signalübertragung darstellt braucht ein Signal etwa 261 Sekunden zwischen Erde-Mars.

Zum Zeitpunkt der Landung sind Erde und Mars etwa 14 Lichtminuten voneinander entfernt. 14 Minuten nachdem der Joystick geschwungen wird, kommt das Signal bei der Sonde an. Und nach weiteren 14 Minuten bekommt der Pilot das Feedback seiner Bewegungen  - UNREALISTISCH!!

Demnach müssen Entscheidungen und Steuerung vor Ort passieren. Und da wir noch keine Menschen da hoch schicken können muss der gesamte Landungsvorgang vollautomatisch ablaufen.

7 Minutes of terror??!

14 Minuten. So lange benötigt bei gegebenen Erde-Mars Konstellation ein Signal vom Mars zur Erde und vice-versa. Der Landungsvorgang dauert 7 Minuten.

Sobald die ersten Daten der landenden Sonde auf der Erde eintreffen, ist die Sonde bereits seit 7 Minuten auf der Marsoberfläche - Entweder als Ganzes oder als rauchender Trümmerhaufen. Um herauszufinden, ob die Sonde entweder in einem brauchbaren Zustand, oder zerschellt ist, braucht es demnach die 7 minutes of terror, wie sie in der PM-Kampagne genannt werden.

.... Und beim Landungsvorgang kann eine Menge schief gehen ....

Donnerwetter. So ein Landungsvorgang kann ziemlich komplex sein! (siehe dieses PM-Video). Das Video beschreibt den Landevorgang viel besser als die untenstehende Liste - Sie kann jedoch als Orientierung für die Daten verwendet werden für Leute, die das SI-System gewöhnt sind 😉

  • Den richtigen Winkel zum Mars besitzen damit sie weder verglüht noch abprallt
  • Während der Hitzeschild abbrennt, mit einer Eintrittsgeschwindigkeit von ~5.800km/h Flugmanöver durchführen
  • Die Atmosphäre vom Mars ist mit einem Druck von (6 10^-3 bar) etwa 200-mal dünner als auf der Erde. Diese dünne Luftschicht ist ausreichend, um die Sonde auf eine Geschwindigkeit von etwa ~470m/s abzubremsen. Dazu muss die Sonde bei Überschallgeschwindigkeit die richtigen Flugmanöver durchführen, um von der Gravitation nicht als fallender Stein fehl-interpretiert zu werden
  • Der große Fallschirm wird aktiviert, um die Sonde weiter abzubremsen. lt. Nasa der größte und stärkste bisher gebaute Fallschirm für Überschall-Abbremsungen: Er muss eine Spitzenkräfte von ~300 kN (umgerechnet auf etwa 30t Gewichtskraft auf der Erde) auffangen. Der Fallschirm selbst wiegt um die 50kg  und hat einen Durchmesser von 15.68m. Es soll das gesamte Gerät von 470 m/s auf unter 100m/s abbremsen
  • Sobald der Fallschirm aufgeht, wird auch der verbrannte Hitzeschild abgeworfen, um damit den Skycrane freizugeben
  • Sobald der Abbremsvorgang mit dem Fallschirm auf unter 100 m/s abgeschlossen ist, wird der Fallschirm abgeworfen. Das restliche Gerät wird nun mir Raketentriebwerken abgebremst
  • Damit die Sonde nicht vom Fallschirm getroffen wird, sobald die Raketentriebwerke zünden, muss sofort nach dessen Zündung eine Seitwärtsbewegung erfolgen. Ein Zusammentreffen von Sonde mit herabrasenden Fallschirmteilen endet ungesund für beide Parteien!
  • In dieser Flugphase wird vom internen Radar die Landezone ermittelt
  • Die Raketen dürfen bei der Landung nicht zu nahe am Boden sein. Der aufgewirbelte Staub könnte die Bordsysteme beschädigen. Deswegen kommt der Skycrane zum Einsatz
  • Mit dem Skycrane wird der Rover 20m über dem Boden langsam zu boden gelassen. Der Skycrane selbst hat eine Reichweite von etwa 7m.
  • Die Kabel werden abgeschnitten. Nun ist das Raketenmodul jedoch direkt über dem Rover und würde auf diesen abstürzen. Daher muss das Raketenmodul noch eine letzte Bewegung weg vom Rover machen

Das alles wird bewerkstelligt durch 6 Fahrzeug-"Stufen", 76 Raketentriebwerke und etwa 500.000 LOC.

Auf dieser Seite findet ihr eine Grafik der NASA, die den Landungsvorgang sehr gut beschreibt.

Und selbst wenn das alles glatt läuft, gibt es auf dem Mars noch einige "Überraschungen": zum Beispiel verteufelte Sandstürme mit über 400km/h!!

 

Youtube-Links

Weiterführendes YouTube Material:

 

Wait WHAT?! Fische mit Hauptkrebs

Selbst Fische können Hautkrebs kriegen.

Schätzungen gehen davon aus, dass etwa 15% der Korallenpopulation des Great Barrier Reefs mit Melanozytoblastomi (sofern man das bei Fischen auch so nennt) ausgestattet sind.

Wahrscheinlich ein bedauernswerter, nicht nennenswerter Zufall ist es, dass das Great Barrier Reef nahe dem antarktischen Ozonloch (5 größtes Ozonloch) ist.

Gefunden: hier.

Eigene Regeln für HTTPS-Everywhere erstellen

Heute zeige ich euch, wie man eigene Regeln für HTTPS-Everywhere erstellen kann. Wem HTTPS-Everywhere noch nichts sagt, der kann sich die Hardening-Seite anschauen.

In a nutshell: HTTPS-Everywhere ist ein Firefox Add-On, damit die Seiten, die eine verschlüsselte Verbindung unterstützen, diese auch benutzen.

Firefox-Profil-Ordner

Zunächst erstellen wir eine XML-Datei im Firefox-Profil-Ordner. Unter Ubuntu ist der üblicherweise im Home-Verzeichnis unter .mozilla/firefox und dort als kryptischen Ordner abgelegt (wo der Ordner unter Windows ist findet ihr weiter unten)

In meinem Fall ist es der Ordner t8r741yz.default.

Solltet ihr mit meiner Anleitung nicht weiterkommen, könnt ihr auf dieser Seite nachlesen, wo denn dieser Ordner ist.

HTTPS-Ruleset

Im Firefox-Profilordner ist ein Ordner HTTPSEverywhereUserRules. Also in meinem Fall

Dort erstellen wir eine passende XML-Datei: feldspaten.xml und füllen sie mit folgendem Inhalt

Die Zeilen Target host geben an, für welche Seite(n) die Regel gelten soll. Da ich sowohl "feldspaten.org" wie auch "www.feldspaten.org" unterstützen will, benutze ich zwei target hosts. Auch wildcards werden unterstützt (z.B. "feldspaten.*")!

Die Zeile "rule from" beinhaltet das eigentliche HTTPS als Javascript Regular Expressions.

Regular Expressions (kurz RegEx) sind ein sehr nützliches Werkzeug um eine kleine Grammatik zu definieren, nach der gematch werden soll. Die werden bei Suchanfragen oder eben hier bei kleinen Ersetzungsregeln gerne genutzt. Sie stehen in der Chomsky-Hierarchie an unterster Stelle und bilden eine reguläre Grammatik - damit wir auch noch einen kleinen Ausflug in die theoretische Informatik gemacht haben 😉

 

Und hier findet ihr die feldspaten.xml als Download, um sie in eure eigene HTTPS-Everywhere einzubinden.

 

Windows

Unter Windows ist der Pfad für die Firefox-Profile unter

im User-Verzeichnis. Vollständiges Beispiel in meinem Fall: Ich platziere die feldspaten.xml-Datei im Verzeichnis

quetzalcoatl ist mein Benutzername, 8z5fdwkm.default mein Profilordner. Beides entsprechend eurem System anpassen - fertig! 🙂

 

Weiterführende Links: HTTPS Everywhere Ruleset auf EFF