Archiv des Autors: AS

DNS Cache unter Mac OS X leeren/löschen

Nur ein ganz kurzer Reminder, auch für mich selbst:

Den DNS Cache leert bzw. löscht man unter Mac OS X mittels…

dscacheutil -flushcache

Das war auch nicht neu – neu hingegen war mir, dass dieser Cache auf Userebene erzeugt wird und es somit nichts bringt, diesen Befehl auf der Shell als root auszuführen, wenn das Problem mit der DNS Auflösung beim normalen Useraccount besteht ;-)

Belkin N Wireless USB Adapter am Mac (iMac)

Nachdem es mich einige Zeit gekostet hatte, einen simplen USB Stick an einem sehr alten PowerPC Macintosh zum Laufen zu bekommen will ich zumindest mal die wesentlichen Dinge hier festhalten. Ich verzichte aus zeitlichen Gründen auf Prosa und hoffe, dass das für den einen oder anderen hilfreich sein könnte:

Ausgangssituation

  • man will einen WLAN USB Stick der Firma Belkin in Betrieb nehmen
  • das Produkt hört auf den Namen “N Wireless USB Network Adapter” bzw. laut Aufschrift auf dem USB Netzwerkadapter auf die Typenbezeichnung F5D8053
  • im System Profiler des Macs (Apfel-Menü –> “Über diesen Mac” –> “Weitere Informationen”) meldete sich der Stick bei mir dann als RTL8191S, also als ein Realtek Chipsatz
  • letzteres hatte ich anfangs nicht gesehen, weil mich eine Google Suche stets mit der Typenbezeichnung F5D8053 stets auf Einträge führte, bei denen ein Chipsatz von Ralinktech vermutet wurde – was aber in meinem Fall offensichtlich nicht stimmte – anscheinend gibt es den F5D8053 mit unterschiedlichen Chipsätzen
  • Mac OS (zumindest das auf dem fraglichen Rechner vorhandene Mac OS X 10.4) unterstützt den WLAN Stick von Hause aus nicht

Lösungsweg

  • nicht darauf hoffen, dass Belkin die Treiber bereit stellen könnte ;-)
  • den Treiber direkt vom Chiphersteller Realtek downloaden – dort nach “RTL8191S” suchen
  • dann sollte in den Suchergebnissen u.a. diese Seite auftauchen, dort dann je nach installierter Mac OS X Version dann das MAC OSX 10.4 Install Package, MAC OSX 10.5 Install Package oder eben das MAC OSX 10.6 Install Package downloaden
  • Software entpacken & installieren
  • Rechner neu starten
  • USB Stick anstecken
  • in den Netzwerkeinstellungen noch den neuen Anschluss “Ethernet (1)” o.ä. aktivieren
  • fertig ;-)

iPhone 4 mit iOS 4.2.1 und Ubuntu 10.10 “Maverick Meerkat”

Nachdem sich der Asus eeePC mittlerweile als überraschend brauchbar gezeigt hat (CPU reicht in jedem Fall für ein bisschen Browser-, E-Mail- und Terminal-Nutzung und sogar für Filme, wenn diese nicht in Full HD vorliegen), waren Verbindungsversuche zum iPhone 4 (iOS 4.2.1) leider nicht sofort von Erfolg gekrönt.

Eine kleinere Google Recherche lässt annehmen, dass das mit iOS 4.2 noch anders war, aber das hilft nach dem Update des iPhones auch nicht weiter. Glücklicherweise arbeiten wir ja mit einem Linux-System und nicht mit Windows – wir haben also Fehlermeldungen ;-)

Unable to mount iPhone_ org.freedesktop.DBus.Error.NoReply DBus error: MESSAGE DID NOT RECEIVE A REPLY (TIMEOUT MESSAGE BY BUS)

Plug & Play schaut anders aus – echt lästig, dass Apple seine Geräte mit jedem Softwareupdate an irgendeiner Stelle wieder etwas geschlossener Macht. Wenn MacBook, iPhone & Co. nicht so perfekt auf meine Bedürfnisse passen würden und so gut funktionieren würden müsste man in der Tat aufhören, Geld in Richtung Apple zu transportieren…

Wir haben es hier aber mit einem häufig auftretenden Problem zu tun, sodass die Lösung nicht allzu schwer zu finden war (und zwar hier und hier).

  • es braucht einige Paketupdates, die bisher noch keinen Einzug in die Ubuntu Repositories gefunden haben
  • diese sind unter dem Namen “PPA for Paul McEnery” bei launchpad.net zu haben
  • zentral hierbei sind die Pakete bgpod und iFuse, es werden aber noch ein paar weitere Pakete mit aktualisiert – wichtiger Hinweis an der Stelle: Der Asus eee PC mit Ubuntu dient für mich nur für 4 Wochen als “Urlaubsbegleiter” – ich bin daher nicht tiefer eingestiegen und habe nicht intensiv geprüft, wie sich die gepatchten Quellen aus o.g. APT-Repository unterscheiden. Wer es mit der Sicherheit ernst nimmt, will das bitte noch tun, bevor er die Pakete z.B. auf betrieblich oder privat dauerhaft eingesetzten Rechnern installiert!

Die Installation an sich ist ebenso einfach wie sie den Titel “Holzhackermethode” verdient ;-)

Erstmal die o.g. Paketquellen hinzufügen:

sudo add-apt-repository ppa:pmcenery/ppa

updaten & los:

sudo apt-get update

sudo apt-get dist-upgrade

Und voilà – das iPhone wird erkannt….

XSL / XSLT als Templatesystem

Bekanntlich setzt das papaya CMS bereits seit Version 1 (um 2000) auf XSL / XSLT als Templatesystem. Auch wenn der Standard schon viele Jahre besteht und z.B. im professionellen Umfeld (große Softwareprojekte, insbesondere im Java Bereich) eine große Wertschätzung und Verbreitung genießt, so ist die Wahrnehmung bei vielen PHP Entwicklern leider noch anders. Und das obwohl XSL / XSLT ein offener Standard ist, der die vielbeschworene Trennung von Logik, Inhalt und Layout sauber implementiert und der nicht zuletzt beliebige Ausgabeformate (HTML, XML, PDF u.v.m.) ermöglicht.

Umso erfreulicher ist es immer, wenn die mannigfaltigen Vorteile gegenüber proprietären Script- und Templatesprachen die Runde machen – wie aktuell in einem lesenswerten Beitrag von phpmonkeys.de.

Fazit der Autoren:

Der Vorteil von XSL ist, dass man dieses Verfahren mit jeder Programmiersprache einsetzen kann, die einen XSLTProzessor mitbringt. Und dabei können Template- und Layout-Dateien ohne Aufwand migriert werden. Man benötigt nur eine ähnliche Implementierung wie der HTMLGenerator und Logik, die die XML-Daten generiert.

…das völlig korrekt – neben weiteren Vorteilen:

  • offener Standard des W3C, keine proprietäre Lösung
  • in die Einarbeitung investierte Zeit ist nicht auf ein Produkt begrenzt, sondern kann in verschiedenen Projekten angewandt werden
  • hervorragend dokumentierter Standard, viel Literatur verfügbar
  • hohe Verbreitung in der Java-Welt
  • mächtiges Werkzeug/Programmiersprache
  • gut nutzbar für Internationalisierung der Ausgabe
  • und viele, viele mehr… ;-)

Mantis BT (Mantis Bugtracker) – Notizen

Wir nutzen bei papaya sehr intensiv Mantis als Bugtracker für die Entwicklung des Open Source Content Management Systems “papaya CMS”, gleichermaßen auch in Kundenprojekten. Für ein Projekt kam die Frage auf, ob man nicht in Ergänzung zu unserer bestehenden Zeiterfassungslösung eine rudimentäre Time Tracking Lösung gleich an die Bugs anhängen könne.

Laut Mantis Featureliste soll dies gehen – leider ist aber genau diese Seite in der Mantis Dokumentation leer (!)  ;-)

Da es keinen Button zum Aktivieren des Mantis Time Tracking Modules gibt (und wegen missing documentation) hat es ein paar Minuten länger gedauert, ist dann aber ganz einfach:

  • Datei config_defaults_inc.php öffnen
  • die entsprechende Stelle in der Datei finden (Suchen nach * Time tracking *)
  • die relevanten Konfigurationsoptionen kopieren und in die Datei config_inc.php kopieren
  • ggf. hier noch Anpassungen nach eigenem Gusto vornehmen
  • fertig…

Irgendwie ein eher ungewöhnlicher Weg, um Leistungsmerkmale einer Software zu verstecken ;-)
(Wenn man das aber einmal gesehen hat ist es aber ziemlich selbsterklärend.)

Interessant sind für meinen geplanten Anwendungsfall innerhalb der Scrum-basierten Zusammenarbeit mit einem Kunden vor allem die Funktionen zum Erfassen von Aufwandsschätzungen und zur Zeiterfassung. Diese werden mit folgenden Parametern angeschaltet:

Zeitprognosen

/**
* Enable or disable usage of the ETA field.
* @global int $g_enable_eta
*/
$g_enable_eta = ON;

Zeiterfassung

/*****************
* Time tracking *
*****************/

/**
* Turn on Time Tracking accounting
* @global int $g_time_tracking_enabled
*/
$g_time_tracking_enabled = ON;

/**
* A billing sums
* @global int $g_time_tracking_with_billing
*/
$g_time_tracking_with_billing = ON;

/**
* Stop watch to build time tracking field
* @global int $g_time_tracking_stopwatch
*/
$g_time_tracking_stopwatch = ON;

/**
* access level required to view time tracking information
* @global int $g_time_tracking_view_threshold
*/
$g_time_tracking_view_threshold = DEVELOPER;

/**
* access level required to add/edit time tracking information
* @global int $g_time_tracking_edit_threshold
*/
$g_time_tracking_edit_threshold = DEVELOPER;

/**
* access level required to run reports
* @global int $g_time_tracking_reporting_threshold
*/
$g_time_tracking_reporting_threshold = MANAGER;

/**
* allow time tracking to be recorded without a bugnote
* @global int $g_time_tracking_without_note
*/
$g_time_tracking_without_note = ON;