Jahresarchive: 2013

Neuer Akku für mein Mac Book Pro 5,5 (Mid 2009)

Langsam aber sicher, wird es Zeit, die nächste Komponente im MacBook Pro zu tauschen. Letztes Jahr habe ich bereits eine zweite Festplatte verbaut, davor das Jahr haben 8 GB Speicher Einzug gehalten und nun muss ein neuer Akku her. Der aktuelle steht bei 1131 Ladezyklen und ich kann fast nicht mehr ohne Netzteil arbeiten – nach maximal einer Stunde geht dann das Licht aus. Hier ein Auszug aus den System-Informationen.

MacBook Pro Akku

Da man nirgendwo liest, welchen Akku man genau braucht (und ich gerade zu faul bin das MacBook aufzuschrauben), gehe ich davon aus, dass das Modell A1322 richtig ist. Zumindest kam ich immer wieder zu diesem Modell, als ich nach dem Gerätenamen (bq20z451) gesucht habe.

Das ärgerlichste ist, dass der Akku seinen Ladestand scheinbar auch nicht mehr selbst richtig feststellen kann. So kommt es vor, dass das Notebook fast immer zwischen 20 und 30 Prozent einfach ausgeht. Also absolut kein tragbarer Zustand.

Weiterlesen…

Magento: Eigene Notifications erstellen

Jeder, der sich schonmal im Magento-Backend eingeloggt hat, kennt sicherlich die Notifications / Mitteilungen / Hinweise, welche gerne über neue Updates oder andere wichtige Events informieren. Doch wie erstellt man so eine Notification aus seinem eigenen Modul heraus und wo werden die gespeichert, regelmäßig abgerufen?

Gespeichert werden die Benachrichtigungen in der Tabelle adminnotification_inbox. Die dort gespeicherten Einträge werden nie gelöscht, selbst wenn man diese über den Admin löscht – in diesem Fall wird auf dem Datensatz nur das Flag is_remove auf 1 gesetzt. Etwas unschön ist allerdings in meinen Augen, dass das Flag nicht pro Benutzer gesetzt wird, sondern nur einmalig zentral. Das heißt, dass ein anderer Benutzer, der sich anmeldet, die Meldungen eventuell gar nicht mehr sieht.

Jede Notification hat dabei einen Titel, eine Beschreibung, ein Datum und eine URL. Hinzu kommt die „Schwere“. Hier unterscheidet man zwischen wichtig und unwichtig. Mit wichtigen Benachrichtigungen sollte daher sehr sparsam umgegangen werden.

Der Standard-Feed für die Admin-Notifications wird von der Klasse Mage_AdminNotification_Model_Feed verwaltet. Diese hängt sich einfach in das preDispatch-Event aller Admin-Controller und prüft dann, ob es neue Einträge für die entsprechende URL gibt. Das letzte Prüfdatum wird dabei im Cache hinterlegt, um einen Request bei jedem Seitenaufbau zu vermeiden. Standardmäßig wird folgende URL verwendet:

Wie man sieht, handelt es sich um einen Standard-RSS-Feed. Der Einzige Unterschied ist, dass es zusätzlich ein „Severity“-Element gibt, welches die Schwere der Mitteilung beschreibt. Alles was wir also machen müssen, um eigene Notifications auf Basis von RSS-Feeds zu implementieren, ist das Model zu erweitern (mit neuer URL), und neue Cache-Tags zu definieren, damit sich die Module nicht in die Quere kommen.

Und am Ende noch das Feed-Model.

Fertig. Wie genau man den Feed erstellt, werde ich hier allerdings nicht beschreiben. Dafür gibt es schließlich etliche fertige Klassen im Netz. Falls man auf einem anderen Wege die Notifications erstellen möchte, sollte man sich die Klasse Mage_AdminNotification_Model_Inbox anschauen.

Alles in allem wirklich schnell gemacht, und eine tolle Lösung um seine Kunden mit neuen Informationen zu versorgen (beispielsweise neue Versionen der Extensions).

iPhone 5: Akkprobleme seit Update auf 7.0.4

Eigentlich mache ich Updates auf Apple-Produkten immer recht zeitnah. Dieses Update schien mir persönlich weniger wichtig, und so habe ich es erst vor ein paar Tagen ausgeführt. Seitdem hat mich mein iPhone nun aber schon 2x im Stich gelassen, als ich es wirklich gebraucht habe.

Beim ersten Mal war ich Nachts auf dem Weg nach Hause und wollte telefonieren. Ganz plötzlich ging das iPhone dann aus – keine Chance es wieder zu beleben. Es wollte einfach an den Strom. Dabei war ich mir so sicher, dass der Akku noch über 10% Kapazität haben müsse. Aber sicher war ich mir nicht.

Bei der nächsten Situation war ich mit dem Auto unterwegs und habe eine Straße gesucht – also Siri um Hilfe gebeten (die mich wie immer nicht so richtig verstanden hat). Blieb nur Google Maps – das letzte was ich allerdings gesehen habe, war die Meldung dass mein Akku fast leer sei (20%). Danach wieder aus. Ganz toll! Und das Beste: Als ich es zu Hause an das Netz gesteckt habe, war es super schnell wieder da und hat einen Ladestand von 23% angezeigt! Unglaublich.

Ich traue mich schon gar nicht mehr mit halbwegs entladenem Akku aus dem Haus zu gehen. Ich habe das halbe Internet schon nach einer Lösung durchsucht – aber nichts gefunden. Statt dessen nur haufenweise Leute mit ähnlichen und schlimmeren Problemen. Keine Ahnung was hier passiert ist. Glücklicherweise ist das iOS 7.1 Update aber schon auf dem Weg und erscheint hoffentlich zeitnah. Bis dahin ist mein Akku wohl ein fünftel kleiner.

Magento Certified Developer

Magento Certified DeveloperHeute habe ich zusammen mit zwei Kollegen an der Zertifizierung zum Magento Developer teilgenommen. So sind wir bei code-x nun insgesamt 4 zertifizierte Entwickler – und es folgen hoffentlich bald weitere. An dieser Stelle möchte ich mich noch einmal ganz herzlich bei allen bedanken, die mir dazu Mut gemacht haben und mich unterstützt haben.

Die Prüfung habe ich heute, zusammen mit Jan und Ingo, gegen 14 Uhr in Bielefeld bei einem Prometric-Partner durchgeführt. Wer nun denkt, dass die tägliche Arbeit für solch eine Zertifizierung locker ausreichen sollte, der irrt. Die Zertifizierung geht in manchen Bereichen ganz schön ins Detail und auch ich hätte mich ein wenig besser vorbereiten können – aber am Ende haben wir alle bestanden. So sollte man den Study-Guide wenigstens einmal überflogen haben und die Beispielfragen einmal durcharbeiten. Außerdem sollte man sich Kern-Komponenten noch ein wenig genauer anschauen, um zu lernen wie diese arbeiten und wann was, in welcher Reihenfolge, geladen wird.

Für die Prüfung habe ich ungefähr 45 Minuten gebraucht. Dass das auch schneller geht, wurde von Ingo bewiesen – er ist gefühlt nach 20 Minuten aufgestanden und war fertig. Zu dem Zeitpunkt hatte ich nicht einmal 50% der Fragen beantwortet. An zeitlichen Aspekten sollte es also nicht scheitern!

Nun warte ich also ganz gespannt auf die offizielle Urkunde und den Eintrag auf magentocommerce – dieser soll angeblich nach maximal 48 Stunden schon freigeschaltet sein. Ich bin gespannt!

Update: Es ging wirklich schnell, bis das Profil freigeschaltet wurde. Hier ist es nun zu finden. Jetzt warte ich nur noch auf die offizielle Urkunde – das kann aber angeblich eine Weile dauern (4-6 Wochen). Die Weihnachtszeit dazwischen wird diese Zeit auch nicht gerade verkürzen.

Airport Extreme: SNMP unter Mavericks aktivieren

Wenn man seinen Netzwerk-Traffic mit Tools wie Netuse auf einem Airport Extreme überwachen möchte, braucht man das Airport-Utility in Vesion 5.6, da die Aktivierung in den späteren Versionen entfernt wurde. Kurz zu meiner Konfiguration:

  • Mac OS X Mavericks 10.9
  • Airport-Extreme mit Firmware-Version 7.6.4

Achtung: SNMP wurde (angeblich) in den neuen Airport-Extreme-Modellen komplett deaktiviert. Das heißt, dass man meines Wissens nach keine Chance hat, das Protokoll zu aktivieren.

Leider kann man das Airport-Utility in Version 5.6 nicht mehr auf Mountain Lion installieren – offiziell zumindest. Man bekommt die Meldung, dass es nicht unterstützt wird. Logisch, immerhin gibt es eine neuere Version (6.3.2 aktuell). Nur leider brauchen wir die alte Version, um SNMP aktivieren zu können. Nun war es wohl schon ein Krampf, die Version unter Mountain Lion zum Laufen zu bringen (wurde ursprünglich für Lion entwickelt) – mit 10.9 Mavericks ist es noch einmal ein wenig komplizierter geworden.

Weiterlesen…

Projekt Raspberry Pi: Heizungssteuerung per CUL und FHEM – Part 7

Weiter geht es in Sachen Home-Automation. Ich habe im letzten Beitrag beschrieben, wie ich meine Intertechno IT-1500 mit dem CUL-Stick von Busware angesteuert habe. Dort wurde auch die grundlegende fhem.cfg erklärt. Damit nun die HomeMatic-Komponenten angesteuert werden können, brauchen wir aber ein paar Änderungen in der Konfiguration.

Da es wirklich nicht besonders schön wäre alle Geräte per Hand in die Konfiguration zu schreiben, nutzen wir das automatische Pairing. In diesem Modus werden alle gefunden Komponenten automatisch in die fhem.cfg aufgenommen. Da das aber eventuell in einer sehr unaufgeräumten Datei enden kann, sollte man sich vorher ein Backup der fhem.cfg anlegen.

Nach einem Neustart von FHEM muss man dann folgenden Befehl im Frontend eingeben.

Damit wird das Pairing gestartet. Dieser Wert darf auf keinen Fall in die Config eingetragen werden – damit kommt FHEM irgendwie nicht so klar und startet nicht mehr. Weiterlesen…

Raspberry Pi: DynDNS nutzen und aktuell halten – no-ip

Nun habe ich als Apple-Nutzer mit einem Airport Extreme nicht die Möglichkeit, Zugangsdaten zu dynDNS oder no-ip einzugeben. Wenn man eine FritzBox sein eigenen nennt, ist es sehr viel einfacher dynDNS zu konfigurieren. Aber kein Grund zum verzweifeln: Die IP-Änderungen kann genauso gut ein Raspberry Pi an einen dynDNS-Provider senden, oder? Schließlich läuft das Gerät 24/7.

Bitte beachten: VOR DER KONFIGURATION SOLLTEN UNBEDINGT ALLE STANDARDPASSWÖRTER GEÄNDERT WERDEN!!!

Prinzip

Da man als Privatkunde bei einem Provider (wie z.B. T-Online, Unitymedia, Vodafone, …) keine Fest IP-Adresse zugewiesen bekommt, sondern diese in regelmäßigen Abständen geändert wird / sich ändern kann, muss man sich eine andere Lösung überlegen um sein Netzwerk von außen zu erreichen. Das Ganze läuft über einen sogenannten dynDNS. Das bedeutet, dass sich ein Gerät aus dem eigenen Netzwerk beim jeweiligen dynDNS-Anbieter in regelmäßigen Abständen meldet, und die aktuelle IP-Adresse übergibt.

So ist es möglich, dass man sein Netzwerk immer über die selbe Domain erreichen kann, ohne dass man sich einen anderen komplexen Prozess ausdenken muss, oder sich gar IP-Adressen aufschreiben muss, welche irgendwann einfach jemand anderen gehören.

Installation

Die Installation geht dabei wirklich einfach von der Hand:

Während der Installation wird man nach seinem Benutzernamen und seinem Passwort gefragt. Daher ist es sinnvoll, den Account vorher auf der Webseite zu registrieren. Weiterhin habe ich mir einen Host angelegt und eine Gruppe (welche ich Home genannt habe). In diese Gruppe habe ich nur den einen Hostnamen gespeichert und auf der Webseite ansonsten nichts weiter getan.

Die Ausgabe der Konfiguration sah folgendermaßen aus:

Wie man sieht, wurde automatisch ein Konfigurationsfile angelegt. Damit ist die Installation eigentlich auch schon abgeschlossen. Nun müssen wir das Programm nurnoch ausführen:

Wenn man sich nun die Hosts unter no-ip anguckt, sollte man feststellen, dass sich die IP auf die eigene IP-Adresse geändert hat. Fertig! Noch besser ist es allerdings, das Programm mit in den Autostart des Raspberry Pi aufzunehmen.

Natürlich hilft einem diese Lösung erst dann etwas, wenn man auch Port Forwarding in seinem Router eingerichtet hat, und die wichtigsten Dienste auf den Raspberry Pi schickt. Wie das genau geht, steht im Handbuch des jeweiligen Routers.

Über diese Seite kann man seine IP auf offene Ports scannen lassen.

Alternativen

Alternativen gibt es auf dem Markt sehr viele, nur leider wenig kostenlose. Ich weiß zumindest noch, dass ich vor etlichen Jahren mal den Dienst von dyn.com (damals noch dyndns.org) genutzt habe. Dies bieten aber aktuell nur kostenpflichtige Pakete über die Webseite an.

Über einen kleinen Trick kommt man aber noch an kostenlose Accounts (habe ich gehört). Dafür meldet man sich einfach über dlinkddns an. Angeblich prüft die Seite aber, ob man wirklich einen D-Link-Router sein eigenen nennt. Falls nicht, wird man wohl wieder aus dem Programm geschmissen (keine Ahnung wie die das machen).