iPhone ADHoc build save to disk problem

Mit XCode können nicht nur Apps an den Apple App Store geschickt werden, registrierte Entwickler können auch an registrierte iOS Devices so genannte ADHoc Builds verteilen.

Dabei wird die Datei vom Ersteller signiert und dann lauffähig. Wie das ganze erledigt werden kann, habe ich in diesem Artikel beschrieben: ios-betabuilder-version-1-5-released. (Der BetaBuilder ist mittlerweile übrigens im MacStore erhältlich).

Was nun wenn es bei dem beschriebenen Vorgehen Probleme gibt? Beispielsweise kann es vorkommen, dass der Organizer bei dem Klick auf „Save to disk“ einfach nicht reagiert, ohne Fehlermeldung etc. Ein Blick in die logs mittels:

tail -f /var/log/system.log

bringt ein

header check failed

um Vorschein.

Mögliche Lösungen:

– „Project clean“ und neu builden

– XCode neu starten

– Rechner neu starten

– XCode neu installieren, Projekt cleanen, Projekt builden

Getdropbox – manage files from everywhere

Im neuen Jahr der erste Beitrag über eine Dienstleistung / Applikation die mir die letzten Monate die tägliche Arbeit erheblich erleichtert hat: getdropbox.com

Angeboten wird dort nach Anmeldung eine Online-Verwaltng für die eigenen Dateien. Das Besondere ist die Flexibilität und Einfachheit, so können die Dateien von überall per Web Interface verändert, gelöscht, verschoben oder auf den zugreifenden Rechner heruntergeladen werden. Neben dem Browserzugriff sind Applikationen für Windows, Apple Mac OS und Linux verfügbar. So kann auf jedem eigenen Rechner das Programm installiert werden und nach Eingabe der Accountdaten hällt die Software die Dateien automatisch auf dem aktuellsten Stand. So wird nach getaner Schreibarbeit am Notebook während einer Zugfahrt beim nächsten Internetzugriff automatisch die neuesten Versionen hochgeladen und sind dann am heimischen PC verfügbar und können verfeinert werden.

Neben der reinen Synchronisation der Dateien wird im Hintergrund auch eine Versionierung der Dateien vorgenommen, ein Rückspung zu einer alten Version ist somit kein Problem, selbst ein versehentliches Löschen einer Datei / eines Ordners stellt kein Problem dar, gelöschte Inhalte können wiederhergestellt werden.

Die Software verhällt sich auf dem lokalen Rechner sehr zurückhaltend und wird nur in Form eines Ordners genutzt, der sich in die Dokumente respektive Eigenen Dateien eingliedert.

Um das Angebot rund zu machen, hat man über die Web Schnittstelle die Möglichkeit, Dateien mit anderen gemeinsam zu bearbeiten via Share, oder aus einer Sammlung von Bilddateien ohne weitere Eingriffe ein simplex attraktives Webalbum der Bilder zu generieren.

Zusamenfassend liefert die Software: Synchronisation, Versionierung, Plattformunabhängigkeit, Rechnerunabhängigkeit, Datensicherung und Publizierung von Bildern

Bei der kostenlosen Mitgliedschaft sind 2.0 GB Speicherplatz verfügbar, 50 GB erhällt man für 9,99 $ / Monat bzw. 99 $ / Jahr. Zum Austausch der eigenen Dateien, Arbeitsdokumente und einigen Bildern sollten 2 GB aber ausreichend sein.

Weitere Artikel:

Artikel auf Apfelquak

freewareosx

Artikel über drop.io auf BasicThinking

WordPress 2.7 Installation Probleme mit cron.php

Soeben wurde die WordPress Version auf die aktuelle 2.7 hochgezogen. Dabei kam es zu Problemen in der cron.php:

Fatal error: Call to undefined function: wp_remote_request() in \httpdocs\bla\wp-includes\update.php on line 58

Das liegt wohl daran das dort ein include falsch gesetzt war. Eine manuelle Anpassung half hier durch einfaches einfügen der Zeilen:

if(!function_exists(„wp_remote_post“)){
require(„http.php“);
}

Ist das Problem gelöst und die Version kann wie gewohnt genutzt werden.
Eine schöne Sache ist das nue eingeführte automatische Upgrade, es bleibt zu hoffendas schnell ein Fix rauskommt und dieser problemlos verteilt werden wird.

Das ganze Problem wird auch hier abgehandelt:

WordPress forum

SSH Key Linux OSX Problem

Mittels einer SSH Key authentication sichert man Verbindungen ab, bzw stellt sicher, dass die Person, die auf einen Server will, auch wirklich die Person ist, die sie vorgibt zu sein. DIeses Verfahren wird mit einem Schlüsselpaar sichergestellt, das aus einem public und einem private key besteht. Auf dem Server liegt dabei das public file, der Bneutzer muss das private file besitzen.

Solch ein Schlüsselpaar kann mittels putty generiert werden. Als Resultat erhällt man eine .ppk file und eine .pub file. Die .pub File, bzw dessen Inhalt kopiert man auf dem Server in die Datei

/home/user/.ssh/authorized_keys

Die ppk File speichert man an einem sicheren Ort. Möchte man nun mittels putty auf den Server zugreifen, kann man im ssh Menü einstellen, welchen key er dazu verwenden soll.

Kopiert man diesen ppk key jedoch auf ein unix system, und versucht dann auf den server mittels:

ssh -i /home/eigenerlocalerBenutzer/.ssh/private.ppk host.com -p 12345 -v

zuzugreifen, bekommt man die folgende Fehlermeldung:

debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>

Das Problem ist das ppk File, welches kein offenes Dateiformat ist. Um den private Key auch unter Linux zu nutzen, muss in puttygen der Schlüssel geöffnet werden und ein Export in das openssh Format vollzogen werden.

Verwendet man nun diesen openssh private Key, funktioniert es ohne Probleme.

Ein weiterer Stolperstein unter Unix Betriebssystemen sind die Zugriffsrechte. Ein server wird einen Key nicht akzeptieren, wenn auf dem Client die ssh Files von jedem änderbar sind. Dies äußert sich in der Fehlermeldung:

Permissions 0777 for ‚.ssh/key.priv‘ are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: .ssh/key.priv

Wobei 777 beispielhaft als negativstes Beispiel aufgeführt ist.

Korrekt müssen die Zugriffsrechte folgendermaßen gesetzt sein:

Der ssh Key und das Verzeichniss muss dem User gehören, der ihn benutzen soll.

chown username /Users/username/.ssh/*

chown username /Users/username/.ssh

Und die Rechte müssen gesetzt sein:

chmod 700 /Users/username/.ssh/

chmod 600 /Users/username/.ssh/*

Damit ist das Zugriffsproblem gelöst.

Um den Zugriff etwas einfacher zu gestaltetn, kann eine config File im ssh Ordner auf dem Client hinterlegt werden mit folgender beispielhafter Konfiguration:

Host host.de
IdentityFile ~/.ssh/key.priv
Port 12345
PreferredAuthentications publickey
Protocol 2

Host entspricht dem Host, auf den sich die Einstellungen beziehen. IndetityFile gibt den Ort des privaten Keys an. Port muss nur angegeben werden, wenn der SSH Server auf einen anderen Port eingestellt ist. PreferredAuthentications publickey stellt die Methode ein und Protocol stellt die verwendete SSH Version ein.

Osx Bluescreen Tipps und Hilfe

Wenn beim booten von OSX ein Bluescreen erscheint ist das keine Windows Krankheit, sondern ein mittlerweile bei OSX häufiger vorkommendes Probem.

Als Lösungen kommen mehrere Ansätze in Frage:

1) Kommandozeile nutzen und „Applikation enhancement Software“ löschen

  • Single User starten: beim booten Steuerung+S (Crtl+S) gedrückt lassen
  • In der Shell eingeben:
    • /sbin/fsck -fy
    • /sbin/mount -uw /
    • rm -rf /System/Library/SystemConfiguration/ApplicationEnhancer.bundle
    • reboot
  • Nach dem Reboot sollte alles wie gewohnt funktionieren

2) Leopard neu installieren

After completing an upgrade installation of Leopard and restarting the computer, a “blue screen” may appear for an extended period of time.

Dieses Problem tritt bei der Installation vom aktuellen Apple Betriebssystem Leopard auf. Apple selbst hat dazu ein Supportdokument erarbeitet.

3) Rechte reparieren

  • OSX Installations DVD einlegen
  • Installation beenden und Festplattendiagnose starten
  • Rechte überprüfen & reparieren
  • Reboot

4) Kommandozeile nutzen und Festplatte überprüfen

  • Single User starten: beim booten Steuerung+S (Crtl+S) gedrückt lassen
  • In der Shell eingeben:
    • fsck -yf
    • reboot

Bash Script Array und if Problem

Hier ein paar kleine Kniffe in Bezug auf Bash Scripte:

Um einen Array mit Werten anzulegen und diese Werte zu durchlaufen:

#!/bin/bash

TESTARRAY=(hallo welt dies ist ein Array Test)
for i in ${TESTARRAY[@]}
do
  echo $i
done

Diese Ausgabe erzeugt eine zeilenweise Ausgabe der einzelnen Strings im Array.

Als zweites noch ein kleines Kniff bei if-Abfragen in Bash Scripten.
Ein häufig auftretendes Problem, ist ein nicht betreten des Code Teils nach einer if Abfrage:

SELECT=`date '+%w'`
if [["$SELECT" -eq 3]];
then
echo "hello World"
fi

Diese if Anweisung wird nie erfüllt werden, das Problem sind die fehlenden Leerzeichen in der Bedingung.
Mit

SELECT=`date '+%w'`
if [[ "$SELECT" -eq 3 ]];
then
echo "hello World"
fi

funktioniert es wie gewünscht.

Gesalzene Passwörter – salted password

Heute mal eine kurze Abhandlung über ein Thema, das öffentlich nicht breitgeschlagen wird, und dennoch eigentlich jeden betrifft: Speicherung von Passwörtern.

Im Zeitalter der sozialen Netze, der Mitmachcommunities,  Web2.0 und Konsorten. Bei jeder Anwendung brauch man einen Login mit Nutzername und Passwort. Doch niemand kann hinter die Fassade blicken, wie mit den personenbezogenen Daten umgegangen wird, wird ja aktuell heiß diskutiert. Weiterverkauf von Adressen, Namen und Telefonnummern sind ständig in den Schlagzeilen. Doch viel kritischer ist eigentlich der Umgang mit den Passwörtern.

Im schlimmsten Fall wird das Passwort im Klartext in einer Datenbank oder anderen Persistenzen gespeichert. Dabei hat der Administrator Zugang zu dem Passwort und kann, sofern er die zugehörige Email Adresse hat, z.b. in das Mail Postfach eindringen. Klar würde hier der rat helfen, für jede Anwendung ein neues Passwort zu nutzen, aber wahrscheinlich machen das die wenigsten Anwender.

Ein wenig besser ist die Verschlüsselung des Passwortes, dabei wird das Passwort mit einem festen Algorithmuss verschlüsselt gespeichert. Man spricht hierbei von einem gehashten Passwort. Problem ist allerdings, das solche Passwörter Dictonary Attacken offen gegenüber steht. Dabei wird eine Liste von Wörtern mit der selben Methode wie das Passwort verschlüsselt und mit dem gespeicherten Wert verglichen, sind beide Werte gleich, ist das Passwort geknackt.

Desweitern kann z.B. ein Admin in einer Seite sehen, wieviele User als Passwort Gott, Party oder Sex haben, indem er einen User anlegt, das Passwort vergibt und dann in der DB nach eben diesem erzeugten Wert sucht.

Die sicherste Möglichkeit wird in Unix Systemen seit Jahren eingesetzt: sogenannte gezalzene, salted, Passwörter.

Hintergrund ist die Schwachstelle, das die Passwörter im hashed Verfahren immer gleich verschlüsselt werden, durch einen dynamischen Anteil zu verwässern.

Um das Passwort zu entschlüssen bedarf es dadurch eine weitere Komponente: den Zusatz, das Salz. Dies kann entweder ein freier Wert, der zufällig generiert wird sein, aber auch der Benutzername, um den Speicheraufwand zu senken. Um das Passwort rauszubekommen, muss ein Angreifer jetzt alle Wörter mit dem Salt verschlüsseln, was den Aufwand ins unermessliche steigen lässt, da jedes Wort mit jedem möglichen Salt kombiniert werden müsste.

Funktional muss man dadurch aber auf ein „Passwort senden“ verzichten, denn wie auch dem Angreifer ist es dem System nicht möglich, das Passwort herzustellen.

Alles in allem aber eine Sache, die ein Nachwuchsadministrator beachten sollte, um nicht irgendwann negative Schlagzeilen zu machen, denn in diesem Zusammenhang ist nicht jede Meldung eine gute Meldung, den Ruf, unsicher mit Daten umzugehen, wird man schwer wieder los.

Bildquelle:
http://de.wikipedia.org/wiki/Bild:Salzstreuer.jpg Fotograf: Ketchupfreak88

Aptana Umlaute Codierung und co

Wie schon in einem älteren Artikel beschrieben, kann man mit Eclipse durchaus eine schöne Entwicklungsumgebung auf freier Basis erstellen. Mit Aptana hat man eine komplette PHP Umgebung zur Verfügung, dazu gehört die Unterstützung, direkt remote auf einem FTP arbeiten zu können, Subversion ist per Plugin subclipse möglich und das Code Highlighting ist gewohnt gut.

Ein Problem welches mich einige Stunden beschäftigte, war die Codierung, mit der Aptana von Hause aus Umlaute wie ä,ü,ö und das ß darstellt. Diese wurden auf den Webseiten immer als „&auml;“ etc. dargestellt.

Codiert wurde die Webseite immer mit ISO 8859-1, die Lösung des Problems ist so simpel, die erstellte Seite muss einfach mit UTF 8 codiert werden, was mittlerweile auch mehr Sinn macht, da UTF-8 die am weitesten verbreitete Zeichencodierung für Unicode ist.

Die Codierung in einem HTML Dokument wird über die MetaDaten im Header gesteuert und mit dem folgenden Befehl benutzt:

aus:

Iso Codierung HTMl Datei

wird:

UTF-8 Codierung in einer HTML Datei