Archive for the ‘Allgemeines’ Category
iPhone 3G downgrade von iOS 4 auf iOS 3.1.3
Das Iphone 3G ist einfach grauenhaft langsam, wenn man das iOS 4 darauf installiert hat. Selbst die neuen Features wie Multitasking sind gar nicht erst aktiviert und selbst das aktivieren durch einen Jailbreak verursacht eine nur noch größeren Geschwindigkeitsverlust. Daher habe ich mich, wie scheinbar viel andere auch, dazu entschlossen ein Downgrade auf die Firmware 3.1.3 vorzunehmen.
Neue “alte” Firmware runterladen und installieren
Als erstes brauchen wir die passende Firmware. Eine gut gepflegte Liste mit Download-Links direkt von Apple habe ich bei iSzene gefunden.
Ich habe bei meinen Nachforschungen zum Downgrade öfters gelesen, dass es wohl einige Probleme gibt, die alte Firmware auf das iPhone zu spielen. Eine mögliche Lösung und weitere Links gibt es beim Apfelwerk.
Mein Weg war etwas härter, hat aber auch ohne zusätzliche Tools funktioniert. Ich habe das iPhone in den DFU-Modus mit hilfe des Pwnage Tools gebracht und dann via iTunes die alte Firmware installiert. Dies hat nicht direkt geklappt, da iTunes einen Fehler gemeldet hat. Davon aber nicht irritieren lassen, sondern iTunes schließen, neustarten und einfach nochmal versuchen. Eventuell das iPhone nochmals in den DFU Modus versetzen.
Wenn man mit gedrückter ALT-Taste auf Wiederherstellen in iTunes klickt, kann man eine Firmwaredatei auswählen. Ansonsten wird die aktuellste von iTunes automatisch ausgewählt.
Wiederherstellen des iPhones aus einem Backup
Wer nach der erfolgreichen Installation von iOS 3.1.3 versucht, sein iPhone aus einem Backup wiederherzustellen, dass er mit dem iOS 4 gemacht hat wird leider von iTunes enttäuscht mit der Fehlermeldung
Das Backup kann nicht wiederhergestellt werden, da es mit einer neueren Version ….
Doof! Aber man kann sich hier mit einem Trick behelfen.
Unter /Users/<username>/Library/Application Support/MobileSync/Backup findet man die Backups, die iTunes vom iPhone gemacht hat und geht wie folgt vor:
- iTunes schließen!!
- Suchen des neusten Backupsordners
- Dort die info.plist öffnen und nach folgendem suchen
<key>Product Version</key>
und den string darunter auf 3.1.3 abändern. Fertig sieht das dann so aus
<key>Product Version</key> <string>3.1.3</string>
- Jetzt iTunes neustarten und den Sync geschehen lassen
Das sollte alles sein um das iPhone down zu graden vom langsamen iOS 4.
Mausbewegungen aufzeichnen
Gerade bei einem meiner Streifzüge durch das Internet bin ich auch ein lustiges Gimik gestoßen das sich IOGraphica nennet.
Was tut dieses Tool? – Es zeichnet einfach die Mausbewegeungen auf und verwandelt diese in moderne Kunst
Wo gibt es das Tool? – http://iographica.com/
Erste Eindrücke von Hetzner
Seit ein paar Tagen habe ich nun auch bei Hetzner einen Rootserver gemietet und muss sagen, dass ich im Vergleich zu Server4You sehr zufrieden bin. Die Hardware und Preis stimmen, das einziges kleine Manko ist die doch relativ hohe Einrichungsgebühr von 149EUR.
Der Server lässt sich sehr komfortabel über den Robot steuern, also Neustarten, Rescue etc. Bei dem Rescuesystem gibt es allerdings einige Kleinigkeiten die mich stören. Diese sind, dass das Passwort nur sehr kurze Zeit angezeigt wird, der Rescuemodus wird nach 5 Minuten wieder beendet somit ist kein Reboot im Rescue möglich. Ehrlich gesagt kann ich den letzen Punkt verstehen, da man eigentlich nur einmal ins Rescue bootet und dann hoffentlich nie wieder.
Fazit: Bis jetzt scheint Hetzner ein sehr fähiger und guter Provider zu sein, mal sehen wie sich dies in Zukunft verhalten wird.
BMW raus aus der Formel 1
Irgendwie war klar das mindestens ein Team zum Ende der Session gehen würde, aber das es gerade BWM ist verwundert mich doch schon sehr. Leider lief es bis heute nicht gut, aber was nicht ist kann ja noch werden.
Ich hoffe nur das Kubica und Heidfeld der Formel1 erhalten bleiben. Ein Pole als Weltmeister wäre schon stark!
Der Typ der bei der GEMA sitzt
Doctrine und Agavi
Doctrine Librarys
Als erstes sollte man sich die Librarys von Doctrine besorgen. Ich selber speichere alle externen librarys im Verzeichnis %project_dir%/libs ab.
svn co http://svn.doctrine-project.org/tags/1.1.0/lib/ libs/doctrine
nun haben wir schon einmal die Librarys im Verzeichnis %project_dir%/lib/doctrine.
Konfiguration in Agavi
Damit Agavi nun diese auch läd müssen sie zur autoload.xml hinzugefügt werden.
<!-- Doctrine --> <autoload name="Doctrine">/path/to/project/libs/doctrine/Doctrine.php</autoload>
Zum anderen sollte in settings.xml use_database auf true gesetzt werden, damit Agavi überhaupt zu Datenbanken verbindet. Als nächstes ist nun die database.xml an der Reihe. Die hier angegebene Konfiguration sollte immer an die eingenen Wünsche angepasst werden!
<?xml version="1.0" encoding="UTF-8"?> <ae:configurations xmlns:ae="http://agavi.org/agavi/config/global/envelope/1.0" xmlns="http://agavi.org/agavi/config/parts/databases/1.0"> <ae:configuration> <databases default="doctrine"> <database name="doctrine" class="AgaviDoctrineDatabase"> <ae:parameters> <ae:parameter name="dsn">mysql://<username>:<password>@<host>/<databasename></ae:parameter> <ae:parameter name="attributes"> <ae:parameters> <ae:parameter name="AUTOLOAD_TABLE_CLASSES">true</ae:parameter> <ae:parameter name="VALIDATE">LENGTHS</ae:parameter> <ae:parameter name="AUTO_ACCESSOR_OVERRIDE">true</ae:parameter> </ae:parameters> </ae:parameter> <ae:parameter name="manager_attributes"> <ae:parameters> <ae:parameter name="model_loading">conservative</ae:parameter> </ae:parameters> </ae:parameter> <ae:parameter name="load_models">%core.lib_dir%/doctrine</ae:parameter> </ae:parameters> </database> </databases> </ae:configuration> </ae:configurations>
Entwicklungsumgebung
Hier habe ich mir angewöhnt die Sachen für die DB Entwicklung unter dev/db ab zuspeichern. Hier sollten folgende Verzeichnisse erstellt werden.
mkdir -p dev/db/{data,data/fixtures,data/sql,migrations,models,schema}
Zudem erzeugen wir in dev/db noch die Datei doctrine.php, welches wir zur Konfiguration der Doctrine CLI verweden werden. Auch hier gilt, bitte anpassen!
<?php // Backup argv, otherwise stripped by agavi $args = $_SERVER['argv']; require('../../libs/agavi/agavi.php'); require('../../app/config.php'); Agavi::bootstrap('development.benjamin'); spl_autoload_register(array('Doctrine', 'autoload')); // Let Agavi create the connection $con = AgaviContext::getInstance('console')->getDatabaseConnection(); $dir = dirname(__FILE__); $config = array( 'data_fixtures_path' => AgaviConfig::get('doctrine.fixture_dir', $dir . '/data/fixtures'), 'models_path' => AgaviConfig::get('core.lib_dir') . '/doctrine', 'migrations_path' => AgaviConfig::get('doctrine.migration_dir', $dir . '/migrations'), 'sql_path' => AgaviConfig::get('doctrine.migration_dir', $dir . '/data/sql'), 'yaml_schema_path' => AgaviConfig::get('doctrine.schema_dir', $dir . '/schema/schema.yml'), 'generate_models_options' => array( 'suffix' => '.class.php' ) ); // Configure Doctrine Cli $cli = new Doctrine_Cli($config); $cli->run($args); ?>
Kommen wir nun zur letzten kleine Hürde. Wir brauchen noch eine entsprechende Datei die uns die doctrine.php von oben aufruft. Diese platziere ich immer in dev/ und sie sieht so aus.
#!/usr/bin/env php
Noch ein abschließendes chmod +x doctrine und man kann los legen.
Eines der besten Videos
ist immer noch der Landing Fail.
Unterschätze den Pfosten nicht
Die Forderung nach 100% und mehr
Jeder kennt die leidigen Meetings, in denen immer jemand “mehr als 100% Einsatz” von seinen Mitarbeitern gefordert hat. Nun, hier ist eine Anleitung, wie wirklich JEDER 103% erreichen kann!!!
Zuerst ein klein wenig Mathematik, die in Ihrem zukünftigen Leben sehr hilfreich sein wird. Wie erreicht man nun immer 100% im Leben?
Notieren Sie sich folgendes:
Wenn gilt
A = 1 J = 10 S = 19 B = 2 K = 11 T = 20 C = 3 L = 12 U = 21 D = 4 M = 13 V = 22 E = 5 N = 14 W = 23 F = 6 O = 15 X = 24 G = 7 P = 16 Y = 25 H = 8 Q = 17 Z = 26 I = 9 R = 18
Dann ergeben folgende Wörter:
H A R D W O R K = 8+1+18+4+23+15+18+11 = nur 98 % und
K N O W L E D G E = 11+14+15+23+12+5+4+7+5 = nur 96 %. Spich nur hart arbeiten und viel wissen bringt uns nicht an unsere Leistungsgrenze, geschweige denn darüber hinaus.
Interessant ist aber, dass
A T T I T U D E = 1+20+20+9+20+21+4+5 = 100% ergibt. Tja, mit der richtigen Einstellung erreicht man halt immer 100% im Leben.
Aber viel wichtiger, im Bezug auf unsere lieben Unternehmensberater Gurus, ist aber, dass
B U L L S H I T = 2+21+12+12+19+8+9+20 = 103% ergibt.
Jetzt ist auch eindeutig klar, was all diese hochbezahlten Consultans und Motivationstrainer wirklich meinen, wenn sie sagen, dass man immer mehr als 100% bringen!
Was wirklich hinter FSK steckt
Altersfreigaben von Filmen kurz erklärt:
FSK 6 = Der Held ist ein Mädchen.
FSK 12 = Der Held bekommt das Mädchen.
FSK 16 = Der Bösewicht bekommt das Mädchen.
FSK 18 = Jeder bekommt das Mädchen.