Windows 7 – MBR/Bootloader auf OCZ RevoDrive reparieren

Ich verwende ein OCZ RevoDrive zum Booten von Windows 7. Bei der Installtion von Windows muss man dazu den mitgelieferten SoftRaid-Treiber installieren (download). Kein Problem soweit.

Wenn man sich den MBR auf diesen Laufwerk verhunzt hat, wird es komplizierter:

Von Windows 7 DVD booten und Treiber installieren

Als erstes wird von dem Installationsmedium (kann auch ein USB-Stick sein) gebootet. Folgt dann diesem Video von 2:30 bis ca. 6:00

Klickt danach nicht auf Installieren, wie im Video. Klickt jetzt auf Computer reparieren. Lässt man die Schritte im Video weg, wird Windows die SSD nicht finden und eine Reparatur wird fehlschlagen. (Probiert es aus.)

Reparatur starten

Da die Treiber jetzt geladen wurden, könnt ihr die Installation auf der SSD zur Reparatur auswählen und auf weiter klicken. Klickt danach auf Eingabeaufforderung und führt dort

aus. Reboot. Fertig 😉

Dreambox 500HD – Experiment: Betrieb ohne Lüfter

Problem: Lüfter ist laut bzw. kaputt

Wer eine Dreambox 500HD schon längere Zeit betreibt, hat wahrscheinlich die Erfahrung gemacht, dass der Lüfter irendgwann den Geist aufgibt. Sprich: er wird laut, weil die Lager versagen.

Was nun? Lüfter tauschen? Vermutlich die weisere Entscheidung.

Nicht mit mir. Ich sage: ersatzlos raus mit dem Lüfter!

Ob das klug ist: wir werden sehen. Sobald sich meine Dreambox verabschiedet, gibt’s ein Update. So: don’t try this at home!

Dreambox aufmachen

Die Dreambox 500HD hat an beiden Seiten jeweils eine Kreuzschlitzschraube. Diese mit einem herkömmlichen Kreuzschlitz-Schraubaundreher lösen.

Der ‚Deckel‘ kann nun abgenomen/herausgeschoben werden.

Die Schraube für die Lüfter-Halterung befindet sich auf der Rückseite, mittig über dem SCART-Anschluss. Diese löst man mit einem kleineren Schraubendreher. Danach lässt sich der Lüfter aus dem Gehäuse entfernen. Wenig Kraft aufwenden, die Lüfter-Halterung ist gegenüber eingehakt.

Um den Stecker zu lösen, kann ein kleiner Schlitz-Schraubendreher (vorsichtig) verwendet werden.

Fazit

Ich bin gespannt, ob die Dreambox 500HD ohne Lüfter funktioniert.

Beachten sollte man, dass meine ‚Box‘ freie Luftzufuhr hat. Also nicht zwischen anderen Geräten oder Möbeln eingesperrt ist. Aber wie gesagt: don’t try this at home!

Update

Ich habe die Dreambox zwar nicht kaputt bekommen, aber der Kühler wird deutlich mehr als Handwarm. Ein Lüfter ist vermutlich sinnvoll.

 

Chromecast Review

Nachdem ich 35€ gegen diesen kleinen Stick getauscht habe, ist es Zeit für einen ersten Erfahrungsbericht.

Packungsinhalt

  • Chromecast HDMI-Stick
  • USB-Kabel
  • USB-Netzteil
  • Kurze, flexible HDMI-Verlängerung (90°, oder ähnlicher Adapter sind also vermutlich nicht notwendig)

Mein Setup

Ich habe ein Plasma-TV ohne Internet-Funktionalität oder USB. Dank HDMI und des mitgelieferten USB Netzteils, würde das aber schon reichen.

Ich verwende allerdings meinen Yamaha A/V-Receiver. Dieser hat an der Rückseite sowohl HDMI-Anschlüsse, als auch eine USB-Stromversorgung. So lässt sich der Stick dezent hinter dem Receiver verstecken, ohne dass man das mitgelieferte Netzteil benötigt.

 Google Cast

Eine sehr interessante Funktion ist die Google Cast Erweiterung für Chrome. Der ausgewählte Chrome-Tab wird einfach von Chromecast auf dem TV angezeigt. Somit bekommt man im Prinzip alle Web-basierten dienste aufs (nicht-)Smart-TV.

Die Latenz, bei der die Interaktion wiedergegeben wird, liegt allerdings bei ca. 1 Sekunde. Also… ausbaufähig 😉

YouTube

Im Moment vermutlich das Paradebeispiel. Wen wunderts…

Hier mal der Use-Case, der IMHO perfekt umgesetzt wurde:

Ich starte an meinem PC ein Youtube-Video. Ein langes Video… Also überlege ich, mich lieber auf die Couch zu setzen und am TV weiter zu schauen.

Ich übertrage also in Youtube im Browser die Wiedergabe an den Chromacast. Gehe zur Couch, nehme mein Tablet oder Phone und starte die Youtube-App. Schon wird mir angeboten die Kontrolle über den Stream an das mobile Gerät zu übergeben.

Ich kann den Stream also von irgendwo starten, und dann von meinem „mobile“ weiter steuern.

Fazit

Für 35€? Ein Fazit? Na gut: das Gerät ist mit einem Apple-TV nicht zu vergleichen, denke ich ich. Preislich als auch von den Funktionen. Wer weiß, welche Apps in Zukunft den Chromecast bereichern. Aber für 35€ bekommt man im Moment kein Gerät mit mehr Potential.

Apple, KeyChains, CommonCrypto und das Zusammenspiel…

Achtung, eines vorweg, das wird viel Text. Hier ist eine recht kurze Theorie hierüber wie der Blödsinn zusammenarbeit. Ein praktischer Teil folgt, aber in einem anderen Beitrag.

Das Vorwort
Die Entwicklerseite von Apple ist reichhaltig, bietet gute Einstiegsmöglichkeiten in Objective-C und man kommt recht schnell zu Ergebnissen selbst wenn man wenig oder keine Erfahrungen in Desktopentwicklung hat. Ist man aber etwas tiefer drin, gibt es da ja noch mehr.
Soweit so gut, AAAAAABER…,
leider gibt es aus der Vergangenheit ein paar Überbleibsel, die sich in die heutigen APIs einarbeiten lassen müssen aber zum Teil inkompatibel mit diesen sind.
Ein großes Beispiel hier für ist CommonCrypto und die Keychain API.

Aber mal von vorn…
Also, wir haben zum einem die Keychain API von Apple welche ja ein sicherer Container für Kennwörter und Schlüssel darstellt. Die API soll eigentlich nichts weiter tun als 4 verschiedene Dinge:
Kennwörter oder Schlüssel speichern, löschen, ändern oder auslesen und benutzen.
Toll… aber leider gibt es da ein übliches Problem mit Entwicklungen. Irgendwann mal wird das ganze überarbeitet und dann kann es sein dass die Sachen nicht mehr kompatibel sind. So zum Beispiel ist seit Mac OS X 10.7 die Keychain API zwar näher an iOS angerückt, aber dadurch hat sich natürlich auch an der API so einiges geändert, nicht immer zum Vorteil.
Sie ist nur noch bedingt abwärtskompatibel.

Somit kommen wir zum nächsten Punkt… CommonCrypto
Wer bis hierhin durchgehalten hat mit lesen, wird sich freuen, jetzt fängt der nerdige Teil erst langsam an.
Möchte ich jetzt einen eigenen Schlüssel erstellen zum signieren oder verschlüsseln von Daten, speziell hier einen symmetrischen Schlüssel, der möglicherweise noch per Kennwort abgeleitet wird, so stellt das kein Problem dar.
Apple stellt eine API namens CommonCrypto zur Verfügung, sie ist relativ einfach und recht vielseitig.

Das Problem…
Jetzt der Knackpunkt, hat man einen schönen AES256 Schlüssel erstellt, sich die Mühe gemacht den auch noch abzuleiten… ja ok… ich übertreibe mit Mühe es sind ja noch 3 bis 5 Zeilen Code… egal, auf jeden Fall möchte man den wie es sich gehört in die Keychain schreiben, so wird man unter anderem mit dem Fehler wie The specified item has no such Attribute, oder so ähnlich abgewiesen.
Auch gern gesehen ist, der Schlüssel wird gespeichert, taucht in der Keychain auf und schwups ist er nicht mehr zu gebrauchen oder gar zu löschen.
Ärgerlich, da man diesen dann nur mit zurücksetzen der KeyChain wieder wegbekommt.

Erste Lösung… juhuuu
Jetzt hat man ja noch die Möglichkeit… und jetzt wird es erst kompliziert *gg*… nämlich, man nimmt die KeyChain eigene API und erstellt damit den Schlüssel. Klingt gut… man braucht auch nicht CommonCrypto dazu.
Man erhält eine Referenz auf den Schlüsse mit der man arbeiten kann. Funktioniert alles hervorragend. Die API gibt alles her was man braucht inkl. Crypt, Sign, Wrap, UnWrap und was weiss ich nicht alles.

To bad…
Jetzt wieder der Nachteil… *hoooaaaaa*…
Hat man aus anderen Anwendungen einen Key oder gar mit der Hauseigenen CommonCrypto-Geschichte erstellt, steht man ganz schön auf den Schlauch, weil is nicht… wird nicht in die Keychain übernommen, die Keychain API ist ein ziemlich in sich zurückgezognes Konstrukt.

Jetzt wieder der Vorteil… *oO* der Nervenzusammenbruch ist nahe…
Also, die Keychain API bietet eine Importfunktion die dann den woanders erstellten Schlüssel importiert. Somit ist dann auch möglich andere Schlüssel zu erstellen und dann an die Keychain API zu übergeben um diese DANN wiederum in dem Schlüsselbund zu speichern… fertig… Viele werden sagen: *ne, ganz ehrlich echt nicht…*, und das vollkommen zurecht, weil ich habe es auch gesagt.

Zusammenfassung:

  1. Keychain API
  2. CommonCrypto API
  3. Keychain API NICHT kompatibel zu CommonCrypto und vice versa
  4. Keychain API hat aber Importfunktion um Schlüssel (z. B. v. CommonCrypto) zu importieren

Konklusion
Niemals versuchen die APIs zu mischen. Das wird nix. Die Keychiain API ist (teils zurecht) so restriktiv, dass man mit anderen APIs da nix reissen kann. Eine Ableitung der APIs um das in einem Haus zu haben funktioniert nicht (ableiten selber natürlich ja), also hier, separieren (was öfters ja klug ist) und dann intern im Code im- und exportieren.
Kombinationen der APIs wie es ja so schön möglich ist unter Objective-C, funktioniert hier absolut nicht.
Die Apple Security-Transforms-API habe ich hier auch mal komplett aussen vor gelassen.

Und der Schluss…
Warum habe ich das alles geschrieben?
Ganz einfach, es hat mich einige Zeit gekostet diesen Umstand herauszufinden, weil das Zusammenspiel der APIs absolut unzureichend dokumentiert ist. Ich möchte hiermit nicht nur eine grobe Erklärung geben, sondern auch anderen ggf. die Suche ersparen.

Wie das dann in der Praxis aussieht… das gibts im nächsten Artikel… der ist dann auch wenig theoretisch sondern viiiieeeel praktisch…

starbound-576

Starbound Server mit den Deamontools überwachen – Debian 7 (Wheezy)

Anstelle eines Init-Scripts lässt sich der Starbound-Server auch mit den Deamontools starten und überwachen. Dazu brauchen wir nur ein einfaches Script:

Ein Symlink startet und überwacht nun unseren Server:

nodejs-1024x768

Node.js + Deamon + Watchdog – Debian 7 (Wheezy)

Deamontools installieren

Spätestens wenn man seine Node.js-Anwendung produktiv einsetzen möchte, möchte man diese als Deamon laufen lassen und von einem Watchdog überwachen lassen.

Upstart eignet sich dafür hervorragend. Aber was, wenn weder CentOS noch Ubuntu zur Hand sind? Hier kommen die Deamontools ins Spiel.

Node.js installieren

Eine einfache möglichkeit Node.js zu installieren bietet NVM.

Anstelle node im Root-Verzeichnis zu starten, wird die aktive Version nach ‚/usr/local/‘ kopiert und allen Usern verfügbar gemacht.

Kurzer Test:

Um Node.js auszuführen, wird ein neuer User angelegt:

Test-Anwendung

Eine kleine Test-Anwendung, die nach 10 Intervallen neu gestartet werden möchte:

Dienst konfigurieren

Zurück zu den Deamontools. Oben wurde mit der Installation ‚/etc/service‘ angelegt. Erstellen wir einen neuen Dienst zunächst im Home-Verzeichnis (hier: ‚/home/node/sevice/‘), indem folgende Verzeichisstruktur angelegt wird:

Hierher gehört das Run-Script:

Um zu sehen was passiert, brauchen wir ein Log:

Dienst starten

Durch das Erzeugen eines Symlinks in ‚/etc/service‘, wird der Dienst gestartet und überwacht:

Jetzt sollte unsere Test-Anwendung unter User ’node‘ laufen. Um das zu prüfen:

Ein

sollte etwa folgendes ausgeben:

Links

http://blog.it-agenten.com/2012/11/daemon-watchdog-daemon/