Der Mac für Freiberufler und Selbständige

Als Freiberufler oder Selbständiger möchte man nur ungern auf das geliebte Betriebssystem verzichten.
Leider ist gute Software oft schwer zu finden. Damit ihr nicht auch so einen Marathon an Testläufen hinlegen müsst, hier ein kleiner Erfahrungsbericht über die Apps die ich mir angeschaut habe.

Weiterlesen...

HTML5 - Schnellstarter

Quickstart HTML5

Quickstart-Templates erleichtern die Arbeit eines Webdesigners oftmals ungemein. Damit sich nicht alle doppelt und dreifach die Arbeit machen müssen, stelle ich euch meine HTML5-Lösung hier kostenlos zum Download zur Verfügung

Weiterlesen...

Browsertexte im Lieblingseditor bearbeiten

Textmate hat es mit seinem Edit in Textmate vorgemacht: eine einfache Tastenkombination und schon kann man den Text bequem im Editor bearbeiten.
Leider habe ich

  1. Das Plugin im Schneeleoparden nicht installiert bekommen und

  2. verwende ich seit einiger Zeit lieber Espresso

Unter Firefox gibt es It’s all text — keine Alternative für einen eingefleischten Safari-Liebhaber wie mich. Aber: wer suchet, der findet:

QuickCursor ist ein nettes kleines MenuItem, über das ich in jeder Applikation den entsprechenden Text im Editor meiner Wahl öffnen kann. Hier kann ich jetzt sogar zwischen Espresso, Textmate oder gar WriteRoom wählen.

So, jetzt werd ich noch schnell ein Textile-Zückerchen für meinen Espresso suchen …

Neue Features, Veränderungen und Updates

Wenn man bei einer Applikation an einen Punkt gelangt ist, an dem eine grosse Veränderung her muss, um neue Funktionen bieten zu können, ist dies immer ein großer Schritt.
Noch viel größer wird er, wenn man dabei Änderungen an der Datenspeicherung vornehmen muss.
Meist schreibt man dann einen Importer, der prüft, ob die neuste Struktur gegeben ist und der sonst die alten Daten einfügt.
Wenn nun aber schon mehrere dieser Änderungen vorgenommen wurden, wird es um einiges komplizierter… Soll man für jede der vorherigen Versionen einen eigenen Importer schreiben, oder ganz dreist verlangen, dass der Benutzer zunächst auf Version XY updaten muss?
Und was, wenn sich auf einmal die Hintergrundbedingungen ändern?

Wer schon einmal etwas in PHP3 geschrieben hat, das Ganze optimiert hat, als PHP4 kam und nun mit einer erneuten Aktualisierung auf PHP5 konfrontiert wird, weiss, wovon ich rede.

Bei All My Documents stehe ich im Moment vor dem Problem, dass die Änderungen, die ich mir vorstelle, am besten mit Core Data umgesetzt werden können. An sich kein Problem, da die App ja ohnehin auf 10.4 ausgelegt ist. Aber da das Projekt sich ja immer noch (das wird es wohl auch noch einige Zeit) in der Entwicklung befindet, habe ich in der Version 1.15 das Speicherungsformat geändert, um eine Suche über alle Dokumente zu ermöglichen.
Und wenn ich nun schon einmal eine derartige Überarbeitung mache, möchte ich natürlich auch am liebsten direkt ein Universal Binary anbieten können und AppleScript-Support einbauen.
Insgesamt sind es so viele Änderungen, dass es sich fast schon lohnen würde, das Projekt (fast) von vorn aufzubauen – wenn da nicht die alten Daten wären…
Fast der komplette Quellcode wäre hinfällig, wenn ich auf Core Data umsteigen würde. Dafür müsste ich aber insgesamt nur geschätzte 50% an Code mit diesem Speicherformat aufbringen, um das Ganze lauffähig zu machen. Die Import-Funktion oder -Klasse würden dabei allerdings schon einiges einnehmen.
Soll ich wirklich Importer für die früheren Versionen schreiben, oder einen Vermerk, dass erst ein Update gemacht werden muss? Die alten Daten einfach zu übergehen ist auf jeden Fall nicht der Weg, den ich bevorzuge.

Und schließlich noch die Frage an mich selbst, warum ich das eigentlich tue – schließlich habe ich die App doch eigentlich für mich selbst geschrieben und verdiene nicht daran… Aber wenn einen pro Tag mehrere Mails erwarten, die einem sagen, dass der jeweilige Benutzer das Programm gerne nutzt, ist es natürlich durchaus eine Motivation, es weiter zu entwickeln (auch, wenn man diese Entwicklungen selbst nicht ins Auge gefasst hat ;) ).

Windows und Linux auf dem Mac - oder nicht?

Q ist eine auf Qemo basierende Applikation für Mac OS X, die das einrichten „virtueller“ PCs recht einfach macht. Um es einmal zu probieren, habe ich gleich mal einen neuen virtuellen PC eingerichtet und dort Knoppix installiert.
Die Geschwindigkeit ist nicht unbedingt berauschend, aber es hat auf jeden Fall funktioniert.
Mein Mann hat es direkt mit Windows versucht und es hat ebenfalls funktioniert, allerdings ca. 5 Stunden für die Installation gebraucht.
Die Überraschung kam dann erst nach einem Neustart: Linux startet die KDE nicht mehr (auch mit startkde nicht) und Windows gab nur noch Fehlermeldungen aus. Anscheinend wird wohl so einiges dann doch nicht in der Konfiguration gespeichert?!
Aber die App kann mit Sicherheit noch einiges aus sich machen.
Dann werde ich wohl auch in Zukunft noch das Zimmer wechseln müssen, um die Seiten im IE ansehen zu können (müssen).

All My Documents 1.3

In der neuen Version der Dokumentverwaltung wurden hauptsächlich einige kleinere Fehler mit der automatischen Speicherung behoben.
Außerdem können nun die Dateien direkt aus dem Programm heraus im Finder angezeigt werden.

zum Download bei Sourceforge

Quicksilver wird "Slowsilver"?

Um die Arbeit am Mac erheblich zu beschleunigen, habe ich bisher immer Quicksilver benutzt. Vor allem auch wegen derentsprechenden Plugins für Cyberduck und iTunes (mit Springsteen arbeitet es sich einfach besser ;) ).
Auf diese Weise konnte ich auch den Spotlight-Index um einiges reduzieren und somit auch gleich das Suchen in Emails und PDFs merklich verschnellern.

Allerdings habe ich festgestellt, dass Quicksilver mit der Zeit um einiges langsamer wird und teilweise sogar abstürzt (auch das Update).
Seitdem überlege ich ernsthaft, für die entsprechenden Dinge demnächst Butler einzusetzen welcher zwar schnell ist, jedoch nicht über die Vielfalt an Möglichkeiten (Textmodus, Rechner, Plugins) verfügt – trotzdem ein tolles Programm.

Und jetzt die Quizfrage: Wie bekommt man wohl ohne Neuinstallation langsames Silber wieder schnell? – den Katalog habe ich schon neu scannen lassen…

PHP4 und PHP5 parallel auf dem Mac

Da die meisten Hoster (noch) kein PHP5 anbieten, entwickelt man die meisten PHP-Scripte in PHP4. Jedoch möchte man an mancher Stelle gerne „umswitchen“ zwischen den beiden Versionen – sei es, um sicherzugehen, dass das Script auch unter der neuen Version läuft, oder einfach nur weil man etwas ausprobieren möchte.

Xampp bietet zwar einen PHP-Switcher an, jedoch ist es 1. recht mühsam, wenn man entsprechende Pecl-Module einbinden möchte und 2. ein Problem, wenn man die aktuelle PHP-Version auch auf der Kommandozeile benötigt.

Ein weiterer Ansatz zur Lösung des Problems besteht darin, die PHP5-Scripte mit einer anderen Endung zu versehen und mit einem anderen PHP-Modul (meist dann als CGI installiert) zu parsen. Will man jedoch die Kompatibilität eines Systems testen, wird es schnell zu einer lästigen Aufgabe, ewig die Dateien umzubenennen.

[more]

Ich habe lange nach einer entsprechenden Lösung zu diesem Problem gesucht, bin jedoch leider nicht fündig geworden.
Auf meinem Mac habe ich es dann hinterher über den Umweg zweier PHP-Installationen in unterschiedlichen Ordnern gelöst. Hierfür habe ich die vorkompilierten Versionen von Entropy.ch genutzt. Dabei installiert sich PHP4 im Ordner /usr/local/php, PHP5 dagegen in /usr/local/php5. Die beiden Versionen kommen schon mit einigen vorkompilierten Erweiterungen und können mit phpize entsprechend nachträglich erweitert werden (z. B. Xdebug).

Die Installation der Module schreibt jeweils ein paar Zeilen in die /etc/httpd/httpd.conf, um das entsprechende Modul zu laden.
Um die jeweils andere Version auf dem Server verfügbar zu haben, muss man also nur noch die entsprechenden Zeilen des aktuellen Moduls in der httpd.conf kommentieren, oder man erstellt jeweils eine httpd4.conf und eine httpd5.conf und kopiert mit

sudo cp httpd(4/5).conf httpd.conf

die jeweils gewünschte Datei in die httpd.conf. Das hat jedoch den Nachteil, dass die beiden Dateien ständig untereinander abgeglichen werden müssen.
Eine weitaus bessere Lösung ist es, die jeweiligen Modulzeilen in eine andere Datei auszulagern und die entsprechende Datei dann mittels

Include pfad/zur/datei.conf

am Ende der httpd.conf einzubinden. Wer es noch einfacher mag, kann sich hierfür natürlich ein entsprechendes Shellscript basteln.

Da ja die aktuelle Serversion von PHP mit der lokalen übereinstimmen soll, kann man über das Terminal mit

sudo ln -sf /usr/local/php(5)/bin/php /usr/bin/php

Einen Symlink auf die aktuelle Version setzen. (Wer ein Shellscript geschrieben hat, kann diese Zeilen dann noch hinzufügen). Mann sollte jedoch aus Sicherheitsgründen /usr/bin/php vorher umbenennen und an einen anderen Ort kopieren.

Ein weiteres Problem besteht in den Include-Pfaden der verschiedenen php.ini – schießlich möchte man nicht auf die jeweils unter der anderen Version installierten Pakete verzichten. Bei mir habe ich dies mit dem Hinzufügen der anderen Pfade in der jeweiligen php.ini gelöst. Es gibt aber mit Sicherheit elegantere Methoden.

Zuletzt muss man noch den Apache einmal neu starten, damit alles funktioniert

sudo apachectl graceful

Das Ganze ewig „von Hand“ zu wiederholen ist recht mühsam, daher empfiehlt sich die Erstellung eines entsprechenden Shellscriptes (oder auch zwei, wenn man keine Bedingungen abfragen möchte).

Unter Linux sollte es eigentlich auch funktionieren, ist aber mit Sicherheit mehr Arbeit/Zeitaufwand, da man die beiden Versionen nicht einfach über apt-get oder als rpm installieren kann, sondern mit den jeweiligen Pfaden selbst kompilieren muss, was schon mal recht lange dauern kann.

Wenn jemand einen Tipp hat, wie man das Ganze noch vereinfachen kann, bin ich natürlich überaus dankbar ;)