Samstag, 1. Dezember 2018

iPhone von iTunes Backup wiederherstellen - falsche iTunes Fehlermeldung

Kurze Durchsage:
Falls beim Versuch, ein iPhone Backup über iTunes die Fehlermeldung
iTunes konnte das iPhone nicht wiederherstellen, da auf diesem Computer nicht genügend Speicherplatz vorhanden ist
kommt, ist mit "Computer" nicht der PC/Mac, sondern das iPhone gemeint.
Wenn man folglich dort genügend Platz freischaufelt oder es zurücksetzt, klappt's auch mit der Wiederherstellung!
(iTunes Version: 12.9.1.4)

Samstag, 30. September 2017

Atom-Editor mit remote-edit package - Scrollen nicht möglich

Falls zufälligerweise noch jemand den Atom-Editor (v1.20.1) mit dem Package remote-edit (v1.9.0) zum Editieren von Dateien über ssh bzw. SFTP verwendet und sich wundert, warum man in den remote geöffneten Dateien nicht scrollen kann:
Diesen Patch https://github.com/sveale/remote-edit/pull/229/files anwenden, dann geht's wieder.
Die zu ändernden Dateien befinden sich unter ~/.atom/packages/remote-edit/lib/ (Mac und Linux).

Montag, 10. Oktober 2016

iPhone aus Backup wiederherstellen

Es kommt ja hin und wieder einmal vor, dass man -- als Benutzer von Geräten mit angebissenem Obst drauf -- ein (hoffentlich vorhandenes) iPhone-Backup auf ein neues "iDevice"aufspielen muss, was i. d. R. ja problemlos funktioniert.
(Und bevor jemand fragt: Nein, ich habe kein iPhone 7, und zwar "aus Gründen" (die ich vielleicht ein anderes Mal darlege *g*).)
Allerdings gibt es an der einen oder anderen Stelle diverse Ecken und Kanten, die zumeist im Verantwortungsbereich der App-Hersteller liegen. Im Folgenden ein kurzer Überblick bzw. Erfahrungsbericht, was bei diversen Apps schief gehen kann. Ich beziehe mich auf ein iTunes-Backup (nicht iCloud-Backup).

Das Inbetriebnehmen eines neuen "iDevice" aus einem zuvor erstellten Backup ist relativ "straight forward": Anstatt den WLAN-Schlüssel einzugeben wählt man während der Einrichtungsprozedur einfach "aus Backup wiederherstellen" aus und verbindet das iPhone über USB "mit iTunes" (also wohl eher mit einem Rechner, auf dem iTunes installiert ist). (Details dazu siehe auch unter https://support.apple.com/de-de/HT204184.) Es bietet sich an, dass man das Backup vorher mit einem Kennwort verschlüsselt hat, das man jetzt in iTunes eingeben muss (und tunlichst nicht vergessen haben sollte), damit u.a. auch alle WLAN-Kennwörter im Backup enthalten sind. Nach der Wiederherstellung startet das iPhone neu, und dann werden die Apps wiederhergestellt.

Hierbei habe ich mich gewundert, dass sehr viele Apps erneut aus dem Store geladen wurden, obwohl ich dachte, diese seien im Backup mit integriert. Nun ja, waren anscheinend doch nicht alle. Vermutlich einmal zu wenig "Einkäufe übertragen" in iTunes angewählt...

Kommen wir nun zu den "Spezialfällen":

 1. Threema:

Hier sollte man vorher seine Identität gesichert haben (und sich an das dafür vergebene Passwort erinnern können). Die Identität (entspricht einem eindeutigen Benutzernamen aus Buchstaben und Zahlen) wird nach dem ersten Start automatisch erkannt, muss aber mit dem Passwort aktiviert werden. Gelingt das, ist die gesamte Kontaktliste wie auch die Chat-History wieder da.
(Meinem Verständnis nach sind diese ausschließlich im Backup vorhanden, werden also nicht auf den Threema-Servern abgelegt.)

2. Telegram:

Hier kam bei mir nach dem Start der App nur "Verbinden..." in der Statuszeile, und ich konnte weder meine Kontakte noch Chat-History sehen. Nach längerem Herumprobieren und Recherchieren löschte ich die App inkl. aller Daten vom Handy und lud sie erneut aus dem App Store. Nach einer Bestätigungs-SMS und der Eingabe eines Kennwortes (letzteres nur, weil ich die zweistufige Authentifizierung aktiviert hatte) wurde meine Kontaktliste und Chat-History aus der verschlüsselten dezentralen (siehe hierzu diese FAQ) Cloud des Anbieters wiederhergestellt.

3. Signal:

Hier musste ich mit Entsetzen feststellen, dass weder die Kontaktliste noch die Chat-History im iTunes-Backup landet. Dies ist offensichtlich kein Bug, sondern ein (zumindest bspw. hier und hier diskutiertes) Security-Feature ("Signal files are completely excluded from iCloud and iTunes backups."). Weiterhin hätte -- wie meine Recherchen ergeben haben -- nicht einmal die Möglichkeit bestanden, auf dem alten Gerät Kontaktliste oder Chat-History in irgendeiner Art und Weise zu exportieren!

4. Fritz!Phone:

Fritz!Phone verlangte nach Eingabe des Fritz!Box-Kennwortes noch die Eingabe eines gerätespezifischen Kennwortes, welches mir weder bekannt war noch ich jemals vergeben hatte (zumindest meiner Erinnerung nach). Abhilfe war, das iPhone in der Fritz!Box-Oberfläche bei den Telefoniegeräten zu entfernen und danach Fritz!Phone erneut bei der Fritz!Box zu registrieren. Jetzt wurde nur noch das Fritz!Box-Kennwort nachgefragt, und die App konnte sich bei der Fritz!Box als VoIP-Client anmelden bzw. registrieren.

5. Withings Health Mate:

Hier war nur ein erneutes Anmelden in der App mit dem Withings-Account notwendig.

6. Google Authenticator:

Ich verwende bei diversen (Cloud-)Diensten einen Zweifaktor-Authentifizierung (2FA). Leider fehlte nach der Wiederherstellung des iPhone-Backups der Code für Evernote im Google Authenticator. Abhilfe hier war, sich bei Evernote mit einem (hoffentlich noch vorhandenen) "Reservecode" anzumelden, die 2FA zu deaktivieren und wieder zu aktivieren, um den QR-Code für die App zu erhalten.

So weit, so gut. Falls sich in den nächsten Tagen der Benutzung noch mehr "Spezialfälle" auftun sollten, werde ich die Liste hier entsprechend ergänzen.

Freitag, 22. Januar 2016

DHCP-Probleme an LAN4 einer FRITZ!Box

Ich habe hier eine FRITZ!Box 7272 mit vier LAN-Ports. An LAN1 hängt ein Kabelmodem, das eingebaute DSL-Modem wird nicht verwendet. LAN2 und LAN3 funktionieren wie erwartet.
Schließe ich jedoch ein Gerät (egal, ob Rechner, Drucker, Raspberry Pi, ...) an LAN4 an, kommt keine Konnektivität zustande (zumindest würde ein nicht ganz unbedeutendes Betriebssystem aus Redmond das wohl so in etwa ausdrücken *gg*). Es kommt zwar rein elektrisch eine Verbindung zustande (der Rechner merkt, dass ein Netzwerkkabel eingesteckt ist), aber es wird keine IP-Adresse über DHCP angeboten. Ich habe das mit mehreren Geräten ausprobiert, das Verhalten war überall das selbe. Irgendwann weisen sie sich eine Adresse aus dem AutoIP-Bereich (169.254/16 nach RFC 3927) zu. Der sog. "Gastzugang" über LAN4 ist deaktiviert. Nachdem ich lange die Fehlerursache gesucht und auch erfolglos nach einer Lösung gegoogelt habe, hat bei mir folgende Vorgehensweise Abhilfe geschaffen:
  • Gastzugang über LAN4 aktivieren: Heimnetz > Netzwerk > Netzwerkeinstellungen > [x] Gastzugang über LAN4 aktiv (Häkchen setzen) und "Übernehmen" klicken;
  • Gastzugang über LAN4 deaktivieren: Häkchen bei Gastzugang über LAN4 aktiv wegnehmen und "Übernehmen" klicken;
Danach bekam ein an LAN4 angeschlossenes Gerät eine IP-Adresse aus dem Heimnetzwerk-Bereich (d.h. standardmäßig 192.168.178.x) über DHCP zugewiesen und alles funktioniert wie gewünscht.

Samstag, 21. November 2015

OwnCloud über apt Repository

Fall noch jemand eine OwnCloud-Installation über die beim openSUSE Build Service gehosteten "offiziellen" apt-Repositories (gibt's dort auch für Debian etc.) am Laufen hat (wie es damals im c't-Artikel empfohlen wurde) und sich wundert, warum darüber keine Updates auf die Version 8.2.x kommen:
Auf der Infoseite des OwnCloud Build Service findet sich der Hinweis:
Since owncloud-8.2.0 we host the owncloud server at https://download.owncloud.org/download/repositories/8.2/owncloud -- you have to switch repositories to get this new release. The repository here will remain at the 8.1.x branch.
Also muss man den Eintrag in der betreffenden sources.list umstellen (und vorher den Repo-Key hinzufügen), steht aber alles auf der oben verlinkten Seite.
Die Umstellung hat dann auch relativ smooth funktioniert (zumindest nicht mit mehr Problemen als sonst *g*)...

Dienstag, 7. April 2015

OS X: Programmwechsel mit Cmd-Tab und mehrere Displays

Wenn man mehrere Monitore am Mac angeschlossen hat oder ein MacBook mit internem und externem Display betreibt, verwirrt es manchmal, auf welchem Display die Auswahl der geöffneten Programme angezeigt wird, nachdem man Cmd-Tab gedrückt hat. Eine Logik dahinter scheint auf den ersten Blick nicht erkennbar zu sein, um nicht zu sagen: Das Fenster erscheint "immer" auf dem falschen Bildschirm.
Die tatsächliche Logik, die in OS X (10.9) zur Anwendung kommt, ist hingegen folgende: Das "Command-Tab"-Fenster zum Anwendungswechsel wird immer auf dem Bildschirm angezeigt, auf dem das Dock zuletzt aktiv war. "Aktiv" bedeutet hierbei: Es reicht, wenn der Mauszeiger drüber war. (Es ist also kein Klick erforderlich.)

(Nachbemerkung: In Ermangelung einer Installation von OS X 10.10 kann ich nicht überprüfen, ob es sich bei dem aktuellsten Betriebssystem aus dem Hause Apple ebenso verhält.) 

Sonntag, 2. November 2014

Fritz!Box VPN (IPSec) und DNS

Vorbemerkung

Warum will man eine VPN-Verbindung über das Internet zur eigenen Fritz!Box herstellen? Hierzu sei auf http://blog.rotzoll.net/2010/07/iphone-per-vpn-an-fritzbox-7270-einbinden/ verwiesen. Kurz zusammengefasst: Man will von außen eine Verbindung in sein Heimnetzwerk herstellen und/oder man benötigt eine Gegenstelle, um über eine sichere Verbindung in einem öffentlichen WLAN Internet zu nutzen.

Fritz!-VPN

Seit geraumer Zeit bieten die Fritz!Boxen bereits die Möglichkeit, Tunnel über das Protokoll IPSec herzustellen. Allerdings war es früher[tm] notwendig, sich mit einer Windows-Software für jede Verbindung bzw. jeden Benutzer eine VPN-Profildatei zu erzeugen und diese über die Weboberfläche der Fritz!Box hochzuladen. Seit einigen Fritz!OS Versionen ist es nun möglich, ganz ohne den Umweg über VPN-Profildateien allein über die Weboberfläche VPN für einen Benutzer freizuschalten bzw. zu aktivieren.
Voraussetzung ist, dass die Fritz!Box von außen über einen (Dyn)DNS-Eintrag erreichbar ist. AVM bietet hierfür den Dienst "MyFritz" an. Alternativ dazu kann man auch einen der "üblichen Verdächtigen" (z.B. noip, freedns.afraid.org etc., Vergleichstest in c't 07/2013 ab S. 108) nehmen.
Im Prinzip geht man wie in diesem Tutorial des Herstellers (hier für iOS-Clients) beschrieben vor, also zuerst über den Punkt "System" > "Fritz!Box-Benutzer" einen neuen Benutzer (mit Benutzername und Kennwort) anlegen und "VPN" für diesen Benutzer aktivieren. (Die anderen Optionen können allesamt abgeschaltet werden!) Unter dem Link "VPN-Einstellungen anzeigen" des neu angelegten Benutzers ist das "shared secret" zu erfahren, das in den Clients neben Benutzername und Kennwort eingetragen werden muss. (Es werden keine Zertifikate verwendet, sondern pre-shared keys, was etwas unsicherer ist.)
Das war es auch schon -- eigentlich.

iOS / DNS

Ich habe dann anschließend die IPSec-VPN-Verbindung unter iOS 8.1 eingerichtet, was wie in oben erwähnten Tutorial funktionierte. Das Herstellen der VPN-Verbindung aus dem Mobilnetz hat dann auch wie erwartet funktioniert, nur konnten dann vom iPhone weder Webseiten aufgerufen werden noch hatten Apps (wie Mail oder Threema) eine funktionierende Internetverbindung. In Safari bekam ich allerdings nach Eingabe der IP-Adresse meiner Fritz!Box in die Adresszeile die Weboberfläche selbiger angezeigt. Ich vermutete also ein DNS-Problem. (Nicht verifiziert habe ich dieses allerdings aus Zeit- und Testmangel unter anderen Betriebssystemen.)
Dass ich nicht der einzige mit exakt diesem Problem bin, kann man hier oder hier nachlesen. Mit irgendwelchen Fritz!OS-Zwischen- oder -Labor-Versionen schien es wohl mal zu gehen, aber mit der derzeit aktuellsten (nicht-Labor-)Version wohl wieder nicht "out of the (Fritz!)box"...
Was bei mir dann endgültig weiter geholfen hat, war der Tipp in diesem Kommentar: Man muss in der Weboberfläche der Fritz!Box unter "Internet" > "Filter" > Tab "Listen" > "NetBIOS-Filter aktiv" ausschalten, mit "Übernehmen" bestätigen und denn wieder einschalten und erneut mit "Übernehmen" bestätigen. (Scheint also wohl irgendwie ein Bug zu sein...)
Jetzt funktioniert auch die Namensauflösung, wenn man über IPSec VPN mit der Fritz!Box verbunden ist. Auf dem iPhone wird (bei bestehender VPN-Verbindung) in entsprechenden Apps (ich verwende die Funktion "Gerät" der App "TrafficMonitor") als externe IP-Adresse die externe IP-Adresse meines Internetanschlusses daheim angezeigt.

Alles gut?

Naja, wenn das iPhone auf Standby geht, wird die VPN-Verbindung beendet, und man muss sie manuell erneut herstellen, wenn man wieder auf der "sicheren Seite" sein möchte. Es gibt wohl seit einigen iOS-Releases Möglichkeiten, dies zu persistieren, aber damit habe ich mich noch nicht beschäftigt.

Sonntag, 14. September 2014

Verschlüsseltes iPhone Backup in iTunes - Passwort vergessen?

Wenn man seine "i-Devices" mit iTunes sichert und Wert darauf legt, dass auch alle auf dem Gerät gespeicherten WLAN-Passwörter mit gesichert werden, muss man das Backup verschlüsseln, indem man in iTunes das Häkchen bei "iPhone-Backup verschlüsseln" setzt und ein Kennwort vergibt.
Um das betreffende Gerät aus dem Backup wiederherzustellen, muss dann das Kennwort eingegeben werden, nicht jedoch bei jeder weiteren Sicherung des Gerätes, wodurch zumindest schon einmal die Gefahr besteht, dass das Kennwort in Vergessenheit gerät und man es dann, wenn man es braucht, nicht mehr weiß... :-/
Ok, nehmen wir nun an, man kann sich an das Kennwort nicht mehr erinnern, ist aber auf das gespeicherte Backup nicht unbedingt angewiesen; soll heißen: man möchte jetzt ein unverschlüsseltes Backup oder alternativ auch ein Backup mit einem neuen Kennwort anlegen. Klingt auf den ersten Blick nicht sonderlich schwer: Warum nicht einfach das Häckchen bei "iPhone-Backup verschlüsseln" wegmachen? Geht nicht: Hierzu müsste man nämlich das vergessene Kennwort eingeben. So weit, so schlecht: Dann nehmen wir eben einen anderen Rechner, auf dem wir noch nie ein Backup des betreffenden Gerätes erstellt haben. Dieser dürfte ja nichts von einem verschlüsselten Backup wissen. - Falsch! Auch dort ist der Punkt angehakt und das Häkchen geht nur weg, wenn man das Kennwort weiß, was man ja aber vergessen hat. Daraus folgt, dass die Daten zur Kennwortüberprüfung entweder auf dem Device selbst gespeichert oder beim Hersteller mit der AppleID verknüpft sind.
Eine kurze Google-Suche zu dem Thema bringt viel Müll (Motto: "Dann nimm halt einen anderen Rechner und mach dort ein unverschlüsseltes Backup.") zum Vorschein. Außerdem einen Apple Support-Artikel. Zitat:
Wenn Sie sich nicht an Ihr Kennwort erinnern können und neu beginnen möchten, müssen Sie eine vollständige Wiederherstellung der Software durchführen und die Option "Als neues Gerät konfigurieren" auswählen, wenn iTunes Sie zum Auswählen eines wiederherzustellenden Backups auffordert.
D.h. man muss laut Apple das betreffende Gerät komplett zurücksetzen, um den Kennwortschutz loszuwerden (!).
Nachdem ich noch weiter gesucht habe, bin ich auf dieses Tool gestoßen. Es erlaubt in der Vollversion, das Kennwort mittels Dictionary Attacke und/oder Brute Force zu knacken. Es ist leider nur für Windows erhältlich - also dort nochmal ein verschlüsseltes Backup anlegen...
Elcomsoft Phone Password Breaker ist schnell installiert. In der kostenlosen Demo-Version zeigt es nur die ersten zwei Buchstaben und die Länge des gefunden Passwortes an; will man mehr, zahlt man mindestens 79€ dafür. Für einen ersten Test reicht aber die kostenlose Version. Ein Test, um zu merken, dass man Kennwörter in der von mir verwendeten Komplexität (Länge mindestens 9, eher 14 Zeichen, enthält Buchstaben in groß und klein sowie Ziffern und Sonderzeichen) nicht in endlicher Zeit "brute forcen" kann. Mein Rechner (ohne GPU-Unterstützung) wäre vermutlich mehrere hundert Jahre beschäftigt gewesen, mein Kennwort herauszufinden, also zu spät für das iPhone 6... ;-) Selbst die Dictionary-Attacke hätte inkl. Mutationen der Wörterbucheinträge fast einen Tag lang gedauert.
Ein ca. 30 Minuten dauernder Anruf beim Apple Support ergab folgendes: Auch Apple kann das Kennwort nicht so zurücksetzen, dass künftige Backups unverschlüsselt sind. Ohne das Kennwort zu kennen, bleibt nur das komplette Zurücksetzen des iPhones. Um möglichst viele Daten zu retten, empfahl die freundliche und kompetente Dame, vorher noch alle Fotos runterzukopieren und auf dem Telefon zu löschen sowie anschließend ein iCloud-Backup zu machen. Aus diesem könnte man ja nach dem Zurücksetzen das Backup wieder einspielen, so dass die meisten Daten dann wieder auf dem Telefon zur Verfügung stehen, wenn man die zu sichernden Daten vorher in den Einstellungen auf dem Telefon entsprechend ausgewählt hat. Außerdem müsse auf dem PC iTunes und alle zugehörigen Komponenten deinstalliert und neu installiert werden bzw. beim Mac auf den Desktop und dann wieder zurück in den "Applications" Ordner gezogen werden.
So schnell wollte ich allerdings nicht aufgeben. Während das iCloud-Backup lief, hatte ich genug Zeit, über alternative Lösungswege nachzudenken:
Wenn das o.g. Elcomsoft Tool in der Lage ist, Mutationen über Wörter aus einer Liste durchzuführen (irgendwann gab es da auch mal einen c't-Artikel über Tools, die dies können), dann gebe ich als Ausgangsmaterial einfach mal eine Liste der von mir in den letzten Jahren an verschiedensten Stellen verwendeten Kennwörter mit und stellte die Mutationsoptionen in allen Kategorien auf "max":

Tatsächlich meldete das Programm nach kurzer Wartezeit (< 1 Minute) Erfolg: Es zeigte mir die ersten zwei Zeichen sowie die Länge des vergessenen Kennworts an. (Hätte ich 79€ investiert, bekäme ich das ganze Kennwort angezeigt.) Ich probierte ein paar Mutationen eines auf das Muster passenden mir bekannten Kennwortes aus und hatte schließlich mein vergessenes Kennwort wieder und war so in der Lage, das Häkchen bei "iPhone-Backup verschlüsseln" zu entfernen.

Fazit:

  1. "iPhone-Backup verschlüsseln" ist sinnvoll (wenn man nicht nach dem Wiederherstellen des Devices bei allen Freunden und Bekannten die WLAN-Passwörter erneut einsammeln möchte).
  2. "iPhone-Backup verschlüsseln" ist [zu?] sicher:
    • Nicht einmal Apple kann den Benutzer in die Lage versetzen, ein unverschlüsseltes Backup anzufertigen, nachdem er einmal ein Passwort vergeben und vergessen hat.
    • Es wird starke Verschlüsselung verwendet. Brute Force ist bei ausreichend langen Kennwörtern aufgrund der Rechenzeiten quasi nicht möglich.
  3. Besser ist es, ein gut zu merkendes Kennwort zu verwenden, das einem auch noch einfällt, wenn man es mehrere Monate oder Jahre nicht eingegeben hat und/oder dieses an einem sicheren Ort (z.B. Zettel unter der Tastatur oder Datei "streng geheime Kennwörter.docx" ;-p ) zu verwahren. NIE NIE NIE jedoch sollte man das dort verwendete Kennwort vergessen.
Aufwand insgesamt:
Passwörter ausprobieren: ca. 1/2h; Recherche und Test des Tools: ca. 2,5h; Telefonat mit Support: ca. 1/2 h; Lösung: ca. 1/2h; Blog-Artikel: ca. 1/2h;
plus ca. 1/2 Tag schlechte Laune, die die family ertragen musste... :-/

(Weitere) Links dazu:

Freitag, 24. August 2012

Ubuntu 11.10 - Netzwerkkonfiguration verzögert Start unnötig

Nur falls der selbe Fehler bei noch jemandem auftritt, hier eine Lösung, die bei mir weiterhalf:

Problem: Beim Booten von Ubuntu 11.10 erscheint zunächst die Meldung
"Waiting for network configuration..."
dann:
"Waiting up to 60 more seconds for network configuration..."
dann:
"Booting the machine without full network configuration"

Bei anderen war hier das Problem, dass hier der dbus abgestürzt ist, weil sich die Verzeichnisstruktur zwischen 11.04 und 11.10 geändert hat und diese Umstellung wohl teilweise beim Upgrade nicht richtig funktioniert hat. Nichtsdestotrotz war dies bei mir nicht die Ursache für o.g. Meldungen.
Nach einem Blick in /etc/network/interfaces erkannte ich jedoch, dass hier ein paar Einträge mit eth1 vorhanden waren, die da nicht hingehören, da bei mir nur eth0 aktiv ist (nur 1 NIC, on-board, kein WLAN):
iface eth1 inet dhcp
auto eth1

Ich habe das mal geändert nach
iface eth0 inet dhcp
auto eth0

Die Zeilen mit "lo" ließ ich unangetastet:
auto lo
iface lo inet loopback

Seit der Änderung bootet mein Ubuntu wieder wie geschmiert (und ca. 2 Minuten schneller als mit der falschen Netzwerkkonfiguration), und die Meldungen sind auch verschwunden. :)

Samstag, 31. März 2012

Android - SD-Karten-Probleme

Nachdem mein bisheriges Smartphone displaymäßig den Geist aufgegeben hat (und ich -- nebenbei bemerkt -- bisher keine Möglichkeit gefunden habe, an die auf dem Gerät gespeicherten Text-Notizen zu kommen) und noch kein iPhone5 in Sichtweite ist (ein iPhone "for ass" (=4S), das für'n Arsch ist, mag ich nicht), musste ein Android-Mittelklasse-Smartphone her. Die Wahl fiel auf ein Samsung Galaxy ACE. Wie auch immer. Das Telefon lief seit ca. einem Monat relativ problemlos. Dann wurden diverse auf der SD-Karte installierte Apps durch ihre internen Namen (z.B. "com.evernote" anstatt "Evernote") und Einheits-Icon dargestellt und waren nicht mehr startbar. Auch ein Deinstallieren und neu aus dem Market-Place Play-Store (welch besch****ner Name!) brachte keine wirkliche Besserung. Die Fehlermeldung z.B. von Evernote war so was wie "I/O-Error beim Zugriff auf die SQLite-Datenbank". Na gut, erst mal den "Evernote"-Ordner auf der SD-Karte gelöscht, was aber keine Besserung brachte. Dann die SD-Karte mal in den Rechner (Windows XP) gelegt und recherchiert, dass die Apps wohl im Ordner ".android_secure" landen. Tatsächlich lagen da zwei Dateien "com.evernote-1.asec" und "com.evernote-2.asec", wobei auf die erste nicht zugreifbar war (I/O-Error). Auch löschen konnte man sie nicht. Eine Datenträgerüberprüfung verlief fehlerfrei. Dann gleich mal Ubuntu gebootet. Lesezugriff auf die Datei war immer noch nicht möglich, ein "rm com.evernote-1.asec" wurde jedoch anstandslos ausgeführt. Nach Einsetzen der Karte ins Telefon und anschließender Neuinstallation von "Evernote" wurden alle Notizen neu synchronisiert, und jetzt geht alles wieder. Die anderen Apps, die Probleme machten (meiner Erinnerung nach war dies noch "Barcoo Barcode Scanner"), wurden dann auch von der SD-Karte geputzt und neu aus dem Store installiert. Nur "Layar" (Reality Browser) wird im Store nicht mehr gefunden. Zumindest nicht, wenn man von dem Gerät aus sucht. Per Suche auf http://play.google.com/ landet man aber hier und kann direkt aus dem Web die Installation auf dem eigenen Gerät auslösen. Ende gut, (bisher) alles gut (bis auf die Akkulaufzeit des Smartphones, aber das ist ein anderes Thema...).

Mittwoch, 29. Juni 2011

Energiesparen - aber richtig

Wir müssen ja bekanntlich alle Energie sparen, insbesondere wenn wir alle deutschen Kernkraftwerke abschalten und die Fehlmenge nicht durch "Atomstrom"-Importe aus den Nachbarländern ausgleichen wollen.

Zum Thema "Energie sparen im Haushalt" habe ich im Rahmen einer Diskussionsrunde folgende nachdenklich machende Anekdote gehört:
Das ökologische Gewissen plagt den Besitzer eines alten Kühlschrankes aufgrund des Energiebedarfs sehr, so dass er sich auf den Weg machte in die nächste Filiale eines beliebigen Elektronikgroßmarktes. (Er ist ja schließlich nicht "blöd" und Geiz ist bekanntlich "geil".) Dort entdeckt er das Ziel seiner Wünsche, den Traum seiner schlaflosen Nächte: Einen Kühlschrank der Energieeffizienzklasse "A+++". Bei so viel Energieeffizienz schaut man natürlich nicht auf den Preis, schließlich will ja das ökologische Gewissen befriedigt werden. Das Gerät wird also gekauft, stolz nach Hause gebracht und voller Freude in der Küche aufgestellt.
Doch: Was macht man jetzt bloß mit dem alten Kühlschrank? Der geht ja noch!! Und zum Entsorgen ist der ja eigentlich viel zu schade! Also wird er mit der letzten Kraft in den Keller verschafft und dort angeschlossen: Ist doch praktisch, so ein Zweitkühlschrank im Keller, da kann man dann ja auch mal eine größere Menge gekühltes Bier bereithalten, wenn sich Gäste angekündigt haben, oder vielleicht auch nicht angekündigt haben, aber jederzeit aufkreuzen könnten. Oder die Dritttorte für größere Familienfeiern drin kühlstellen...
Wo ist der Fehler??

Freitag, 17. Juni 2011

Boot-USB-Stick für Ubuntu 10.04 LTS mit Ubuntu 11.04 erzeugen

Versucht man, mit Hilfe des "Startup Disk Creator" und einem Ubuntu-10.04-ISO-Image aus Ubuntu 11.04 einen bootbaren USB-Stick zu erzeugen, scheint auf den ersten Blick alles zu klappen, bis man von diesem Stick versucht zu booten. Dann erscheint nur die Fehlermeldung:
Unknown keyword in configuration file: gfxboot
vesamenu.c32: not a COM32R image
Gut, könnte man sagen, hätte man nur die Release Notes von 11.04 gelesen, wäre man auf folgende Information gestoßen:
There is a problem creating a bootable 10.04.2 or earlier USB image from Ubuntu 10.10 or 11.04 system. Booting from the USB can be made to work, but using the workaround of typing "help" and pressing Return.
Da dieser Workaround mich nicht wirklich befriedigen konnte (ich würde mich bspw. jedes Mal wieder fragen, was ich eingeben muss, wenn ich den Stick nutze), habe ich etwas weiter recherchiert und bin im Launchpad (Ubuntus Bugtracker) darauf gestoßen, dass man auf dem Stick nur die Datei /syslinux/vesamenu.c32 durch die Version von /usr/lib/syslinux/vesamenu.c32 ersetzen muss, dann funktioniert es.

Dienstag, 30. November 2010

JavaScript/DOM: Verhalten von appendChild()

Folgendes ist mir bei der JavaScript-Entwicklung aufgefallen.

Verwendet man die Methode appendChild(), um ein vorher bspw. mittels getElementById() (oder der PrototypeJS- bzw. JQuery-Funktion "$()") aus dem DOM geholtes Element an anderer Stelle oder in ein anderes Dokument (ein anderes Browserfenster) einzufügen, wird das an der ursprünglichen Stelle stehende Element gelöscht (!).

Dies ist kein Bug, sondern laut DOM-Spezifikation so gewollt.
If the newChild is already in the tree, it is first removed.
Soll das Element an der ursprünglichen Stelle bestehen bleiben, ist diese zunächst mittels der Methode cloneNode() zu duplizieren.

Sonntag, 14. November 2010

GrowlMail und OS X 10.6.5 / Mail 4.4

Nach meinem Update auf Mac OS X 10.6.5 (vorher hatte ich noch 10.5.x) funktionierte das Apple Mail Plugin GrowlMail nicht mehr, welches Growl Benachrichtigungen anzeigt, wenn neue Mails eintreffen.
Leider ist es so, dass bei der neuen Version von Apple Mail Plugins für jede Version von Apple-Mail, für die sie verwendbar sind, eine UUID dieser Version von Apple Mail enthalten müssen. Es kann also ein Plugin nicht mehr die Information enthalten "Ich bin für alle Versionen von Mail ab 4.0 geeignet", sondern muss alle Versionen (bzw. deren UUIDs) explizit auflisten.

Wurde GrowlMail beim Start von Mail aufgrund der (vermeintlichen) Inkompatibilität bereits deaktiviert, muss man es von dem Ordner
Users/Library/Mail/Bundles (deaktiviert)/GrowlMail.mailbundle
wieder in den Ordner
Users/Library/Mail/Bundles/GrowlMail.mailbundle
verschieben.

Dann fügt man zur in dem Bundle enthaltenen Datei Info.plist unter SupportedPluginCompatibilityUUIDs die beiden UUIDs von Apple Mail 4.4
"857A142A-AB81-4D99-BECC-D1B55A86D94E"
und
"BDD81F4D-6881-4A8D-94A7-E67410089EEB"
hinzu.

Alternativ kann man das auch über das Terminal lösen:
defaults write ~/Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "857A142A-AB81-4D99-BECC-D1B55A86D94E"
defaults write ~/Library/Mail/Bundles/GrowlMail.mailbundle/Contents/Info SupportedPluginCompatibilityUUIDs -array-add "BDD81F4D-6881-4A8D-94A7-E67410089EEB"


Quelle: http://langui.sh/2010/10/14/fixing-growlmail-in-10-6-5-mail-4-4/


Nachtrag:

Für
Apple Mail 4.5 (kommt mit Mac OS X 10.6.7) lauten die UUIDs
"1C58722D-AFBD-464E-81BB-0E05C108BE06"
und
"9049EF7D-5873-4F54-A447-51D722009310".

Siehe http://langui.sh/2011/03/21/fixing-growlmail-in-10-6-7-mail-4-5/

Sonntag, 29. August 2010

Yahoo! Pipes: RSS-Feeds "subtrahieren"

Wenn man (wie ich) ein fleißiger Leser von Newsfeeds ist, kommt es u.U. vor, dass man einen abonnierten (RSS-/Atom-)Feed ohne bestimmte Beiträge bekommen möchte. Wenn diese Beiträge nicht mittels eines einfachen Filters definiert werden können, sondern Inhalte eines anderen Feeds sind, wird es schwierig und es kann dafür Yahoo! Pipes verwendet werden.

Nochmal die Aufgabenstellung: Ziel ist es, einen Feed zu bekommen, in dem alle Beiträge von Feed A vorkommen, aber alle Beiträge, die auch in Feed B vorhanden sind, herausgefiltert wurden, also die Differenzmenge von Feed A und Feed B. Um es noch etwas konkreter zu machen: Ich möchte alle Spiegel-Online-Beiträge (RSS-Feed) ohne die Beiträge des Sport-Feeds von Spiegel Online (RSS-Feed).

Leider gibt es für diesen Fall keinen vordefinierten Operator-Block bei Yahoo! Pipes, sodass man selbst Hand anlegen muss.


Hier eine Erklärung, wie das Ganze funktioniert:

  • Zunächst legt man für jeden Feed (in meinem Fall SP.ON komplett sowie SP.ON Sport) ein Fetch-Feed-Modul an und kopiert die URL der Feeds in das jeweilige URL-Feld.
  • Anschließend wird mit einer Loop über einen String Builder jedem Beitrag ("item") der beiden Feeds eine Markierung hinzugefügt, die die Beiträge eindeutig einem der Feeds zuordnet. Einträge des ersten Feeds bekommen ein zusätzliches Feld "source" ("item.source") mit dem Inhald "Feed A", analog werden Beiträge des zweiten Feeds mit item.source = "Feed B" gekennzeichnet.
  • Beide Feeds werden nun mit einem Union-Modul vereinigt.
  • Mit Hilfe eines Unique-Moduls werden anschließend Einträge, deren "link"-Feld identisch ist, kombiniert.
    Anmerkung: Hier muss man bei anderen Quellen evtl. auf andere Felder ("title") zurückgreifen, wenn die Links der Einträge sich bspw. durch einen Parameter unterscheiden.
  • Jetzt kommt der Trick des Aussortierens: Über ein Filter-Modul werden nun nur Einträge weitergereicht, deren "y:repeatcount"-Feld gleich 1 und die Quelle (item.source) "Feed A" ist.
    Info: Das "y:repeatcount"-Feld wird vom Unique-Modul für jeden Beitrag gesetzt und enthält die Anzahl der Beiträge, die es zu dem jeweiligen Beitrag zusammengefasst hat.
  • Das Ergebnis wird schließlich an den Pipe Output weitergereicht (und kann hier abgerufen werden: http://pipes.yahoo.com/pipes/pipe.run?_id=e95a7dc4cd639af9710a95d62000e9d5&_render=rss)

Sollte jemand noch ein paar coole Dinge mit Yahoo! Pipes angestellt haben, möge er/sie einen Kommentar posten...


Ergänzung:

Freitag, 9. Juli 2010

Windows 7 Installation vom USB-Stick

Es soll ja vorkommen, dass man Windows 7 auf einem Rechner ohne optisches Laufwerk installieren muss.

Microsoft stellt dafür ein Tool bereit, das aus einem von deren Shop online gekauften ISO-Image einen bootbaren USB-Stick erstellt. Leider hat das Tool zwei Nachteile (außer dass es das .NET Framework benötigt): Zum einen akzeptiert es scheinbar nur ISO-Images, die von Microsoft vertrieben werden, was einem nicht weiterhilft, wenn man nur die Windows 7 DVD vorliegen hat; zum anderen wird (zumindest unter Windows XP) die Installation eines "Image Mastering API v2.0" vorausgesetzt. Also muss eine andere Lösung her.

Hier habe ich folgende funktionierende Vorgehensweise gefunden:
  • Alle wichtigen Daten auf dem USB-Stick in Sicherheit bringen (z.B. mit USB Image Tool im Device Mode).
  • Die folgenden Befehle setzen voraus, dass der angeschlossene USB-Stick als „drive 1“ von Windows erkannt worden ist! Um herauszufinden, unter welcher Kennung der Stick erkannt worden ist, an der Eingabeaufforderung "diskpart" und anschließend den Befehl "list disk" eingeben. Unter "Datentr" steht Ziffer, die dem eingelegten USB-Stick zugewiesen ist! Die Zeile "select disk 1" (unten fett markiert) muss dann entsprechend angepasst werden!
  • Folgendes an der Eingabeaufforderung eingeben:
diskpart
select disk 1 (ggf . muss der Wert angepasst werden!)
clean
create
partition primary

select partition 1
active
format fs=fat32
assign
exit
  • Nun den Inhalt der kompletten Windows-7-DVD auf den USB-Stick kopieren:
xcopy (DVD-ROM-Laufwerksbuchstabe):\*.* /s/e/f (USB-Stick-Laufwerksbuchstabe):\
  • Wenn im BIOS das Booten vom USB-Stick aktiviert ist, startet beim Start mit eingelegtem Stick das Windows 7 Installationsprogramm.
Folgendes habe ich noch herausbekommen:
War die Festplatte vorher unpartitioniert oder nur Windows unbekannte Partitionen (wie ext3) vorhanden waren, kann es vorkommen, dass sich das Installationsprogramm weigert, Windows auf der Festplatte zu installieren, weil der Stick bereits den Laufwerksbuchstaben C: abbekommen hat. Dazu auf der Festplatte eine Partition anlegen und formatieren (geht innerhalb des Windows Setup mit den erweiterten Optionen), neu booten und die Partition wieder löschen. Windows kann dann in diesen unpartitionierten Bereich installiert werden (Partition wird automatisch angelegt und formatiert).

Freitag, 1. Januar 2010

Ein Rätsel...

Zum neuen Jahrzehnt möchte ich ein Rätsel stellen, was mir vor einiger Zeit über den Weg gelaufen und mir heute wieder in die Hände gefallen ist.

Lösungsvorschläge bitte in die Kommentare!

Drei Personen wohnen zusammen in einem Haus. Das Produkt des Alters der Personen beträgt 2450. Die Summe ihres Alters entspricht der Hausnummer vom Haus nebenan. Des weiteren ist keiner so alt wie die Nummer der Buslinie, die an dem Haus vorbeiführt.

Wie alt sind die Personen?

Fleißaufgabe:
a) Wie lautet die Hausnummer vom Haus nebenan?
b) Wie lautet die Nummer der Buslinie?

Hinweis: Die Aufgabe ist eindeutig lösbar!

Dienstag, 22. Dezember 2009

Batteriewechsel HAMMOND XK-1

Seit einiger Zeit behauptet meine Hammond XK-1, dass die Kapazität der interne Pufferbatterie dem Ende entgegen geht: Das Display zeigt nach dem Einschalten "Warn:CHECK BATTERY!". Da es sich bei der Batterie um eine Knopfzelle vom Typ CR2032 (gibt's z.B. bei Reichelt für 0,33 EUR) handelt, kann man den Austausch selbst vornehmen, wie im Folgenden beschrieben wird.

Da beim Batteriewechsel alle Einstellungen und Presets verlorengehen und die Orgel auf Werkseinstellungen zurückgesetzt wird, sollte man alles vorher sichern, z.B. via MIDI Dump.

Dann legt man die Orgel kopfüber (mit den Tasten nach unten) auf einen weichen Untergrund (ein Sofa bietet sich an) und löst die in folgendem Bild markierten Schrauben. Die unterschiedlichen Farben markieren unterschiedliche Schrauben. (Diese Information mag sich beim Zusammenbau als hilfreich erweisen!)


(Auf dem Bild ist die Rückseite der Orgel unten!)

Wird dann der Boden abgenommen, befindet sich die Batterie leicht zugänglich auf der Platine.





Die Batterie ist auf der Platine rechts oben zu sehen und kann leicht durch eine neue Knopfzelle werden.

Nun kann der Boden wieder aufgesetzt werden; dabei beachten, in welche Löcher die langen, in welche die kurzen Schrauben kommen... (siehe oben!)

Den Hinweis "Attn:BACKUP ERROR!", der nach dem Einschalten angezeigt wird, kann man ignorieren; alle Einstellungen sind jetzt wieder wie nach der Auslieferung. Ein Dump kann jetzt wieder zurückgespielt werden.

Ich hoffe, diese Hinweise sind dem einen oder anderen Hammond XK-1 Spieler hilfreich...

Montag, 14. Dezember 2009

MySQL-Übernahme durch Oracle - JETZT HANDELN

Es ist wichtig, heute (Montag) noch zu handeln!!

Sun hat ja MySQL übernommen und soll jetzt wiederum von Oracle übernommen werden, wogegen etliche Bedenken vorliegen, da Oracle voraussichtlich nichts Gutes mit der Open Source Datenbanklösung MySQL vorhat (zugunsten seiner eigenen Datenbank).

Die EU-Kommission wird diese Woche über die Übernahme entscheiden.
Deswegen: Schreibt heute noch (!) eine EMail an comp-merger-registry@ec.europa.eu
Mögliche Texte findet Ihr in Monty's Blog (dem ursprünglichen Entwickler von MySQL): http://monty-says.blogspot.com/2009/12/help-saving-mysql.html

Eine kurze Erklärung, warum und wozu, gibt es auch auf heise online.

Helft dazu beizutragen, dass MySQL vollständig frei bleibt!

Freitag, 16. Oktober 2009

Python und SVN-Bindings unter Windows

Vielleicht hat ja noch jemand mit den Python SVN-Bindings (SWIG) unter Windows Probleme.

Ich muss Python 2.5.4 verwenden (aufgrund diverser Randbedingungen wie Apache mod_python und Trac), installiere die dazu sowie zu meiner verwendeten Version von Subversion (oder Sub-(Version)² *g*) passenden Python-Bindings von hier (svn-python-1.6.5.win32-py2.5.exe).

Ein
C:\>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from svn import client
führt zu
Traceback (most recent call last):
File "", line 1, in
File "C:\Python25\Lib\site-packages\svn\client.py", line 19, in <module>
from libsvn.client import *
File "C:\Python25\Lib\site-packages\libsvn\client.py", line 31, in <module>
import wc
File "C:\Python25\Lib\site-packages\libsvn\wc.py", line 5, in <module>
import _wc
ImportError: No module named _wc
Nachdem ich heute stundenlang diesbezüglich gesucht habe (habe neben Google auch andere Suchmaschinen bemüht sowie mir mit Process Monitor angesehen habe, was python.exe so alles treibt), habe ich dank dieser Seite, die eigentlich erklärt, wie man Trac auf 64Bit-Windows unter IIS7 aufsetzt, herausgefunden, dass man lediglich die Datei c:\Python25\Lib\site-packages\libsvn\_wc.dll nach c:\Python25\Lib\site-packages\libsvn\_wc.pyd (es ändert sich lediglich die Dateinamenserweiterung!) kopieren muss und schon geht der Mist...