Mac / Typo3 / Subversion

Donnerstag, Januar 17th, 2008

Als Roundup zu meinen Subversion Berichten (SVN GUI für Mac OS X, SVN Integration im Finder, SVN mit Textmate):

svnX hat sich doch nicht bewährt, und ich bin zurück bei RapidSVN. Der Rest lief ja von vornerein nicht so knorke…

Die “lange Nachdenken”-Phase von RapidSVN scheint ein einfacher Bug zu sein, der sicher bald behoben ist. Auf einem von mir ebenfalls mit RapidSVN bestücktem Ubuntu 7.10 Testsystem lief RapidSVN großartig, schnell und zuverlässig.

Der Unterschied zur Mac Version: Beim Ein- oder Auschecken wird detailliert aufgelistet, welche Dateien betroffen sind. Diese Auflistung sollte auf einem Mac wahrscheinlich auch eigentlich kommen (dann sieht man, dass etwas passiert), kommt aber nicht.

So scheint der Mac ein wenig zu freezen, laufen tut es im Background allerdings trotzdem und nach einer gewissen Zeit ist der Vorgang dann eben abgeschlossen. Wenn man sich vom Freeze nicht beeindrucken lässt, ist also alles paletti.

Was ich als SVN GUI nicht erwähnt (aber schonmal bemerkt) hatte, ist “Version” von den Jungs di auch “Disco” gebaut haben. Bin gespannt, wenn es da endlich ne Final zum Testen gibt.

Das Typo3 im Titel in Verbindung mit SVN wurde gewählt, weil eine tolles Feature beim Entwickeln mit SVN Servern und Typo3 noch nicht beschrieben wurde: Die Auslagerung der TypoScipt Inhalte in eine externe Datei.

Wie das am schlauesten geht, steht z.B. bei Keilblock.com, grundsätzlich aber einfach mit der einfachen Anweisung:
<include_typoscript : source="FILE: fileadmin/dateiname.ts"></include_typoscript>.

Danach ergeben sich natürlich weitere Vorteile: Die Nutzung von externen TypoScript Editoren, bzw. PlugIns für verbreitete Programme.

So auch selbstverständlich für den “über”-Mac Editor Textmate (das natürlich von Haus aus bereits SVN unterstützt)….oder für die Windows Welt z.B. als Erweiterung für UltraEdit oder SweeTS für PSPad.

Google veröffentlich Handysoftware

Dienstag, November 6th, 2007

Hier entwickelt sich gerade ein spannender Markt für Softwareentwickler, die auch ein wenig am Erfolg Googles und dem dort mit Sicherheit entstehenden Hype mitmachen wollen: Googles Handybetriebssystem auf Java Basis, das alles kann können soll und sicher bald sehr verbreitet sein wird (Ein gPhone wär ohnehin hässlich geworden). Ein Development Kit soll nächste Woche, die ersten Handies mit Googles kostenlosem Betriebssystem allerdings erst nächstes Jahr ausgeliefert werden. Man darf gespannt sein.

“Netzwerken” Probleme bei Xing

Sonntag, November 4th, 2007

Da wollte ich den gemütlichen Sonntag Abend dazu nutzen, ein paar Kontakte in Xing aufzuspüren, da fällt dort doch gleich die Suchfunktion aus:

Xing Fehler

Vielleicht wird das mit Google’s Ideen und Partnern (OpenSocial) besser (Xing ist ja auch mit von der Partie).

Auslieferung von PHP Sourcecode verhindern

Dienstag, August 14th, 2007

Im Zuge der veröffentlichten Quelltexte der Facebook Suche und Startseite gibt Nik Cubrilovic (unter anderem Autor bei Techcrunch) ein paar Tipps, die fälschlich ausgelieferten PHP Code bei Apache Servern (unter anderem durch mod_security) verhindern sollen: Learning from Facebook: Preventing PHP Leakage.

Keine schlechten Ansätze dabei.

Ärger mit mod_rewrite und Apache

Montag, Juli 23rd, 2007

Im Zuge eines kleinen Projektes mit Typo3 und der für Suchmaschinenoptimierung hervorragend geeigneten RealURL Extension (und daher auch mit .htaccess Dateien) habe ich nach langem Testen festgestellt, dass dem Live Server mod_rewrite nicht die nötigen Dinge erledigen darf, bzw. dass die .htaccess Datei nicht per mod_rewrite weiterleiten darf.

In meinem Fall macht die .htaccess rewrite-technisch genau gar nix.

Da die Regeln auf dem Testserver 1a funktionieren, hab ich mal den Google Test durchgeführt:

RewriteEngine On
RewriteRule ^ http://www.google.de [R,L]

Hier soll eigentlich jeder Aufruf direkt an Google weitergereicht werden.

Die ursprüngliche .htaccess beinhaltet folgende (fast Standard-) Werte:
RewriteEngine On
RewriteBase /
RewriteRule ^(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads)/ - [L]
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /index.php

Auf dem Testserver klappt das wohl nicht, weil in der Apache Konfiguration keine AllowOverride FileInfo für das DocRoot gesetzt wurde (und das PHP mod_rewrite Modul geladen ist).

Was rede ich da?

Hier stehts genauer: FAQ: mögliche Fehlerquellen und Fehlermeldungen beim Gebrauch von mod_rewrite.

Unter anderem geht es dort um Folgendes:

-> 1.-3. behandelt die Frage, ob mod_rewrite überhaupt auf dem Server läuft,
-> 4.-5. einzelne Problemstellungen
1. Modul geladen?
2. Jede Regel wird ignoriert – es passiert rein gar nichts
3. Fehler 403 Forbidden
4. Fehler 500 Internal Server Error
5. Einzelne Regeln laufen nicht oder nicht richtig (auch Bilder werden nicht geladen, 404 Not Found)
7. FAQ: Q & A (questions and answers)

DZone – Digg für Entwickler

Donnerstag, Juli 19th, 2007

DZone bietet “fresh links for developers”, aufgemacht als Digg Klon.

Vielleicht für andere ebenso interessant wie für mich! Danke, ben_

Nachtrag: In die gleiche Richtung schiessen natürlich auch Code Suchmaschinen, davon gibt es neben Google Code Search auch noch Krugle oder Koders.

Google Ranking Faktoren, PageRank

Mittwoch, Juni 6th, 2007

Seit einigen Tagen geistern die Ergebnisse einer Studie der Sistrix GmbH (unter anderem auch Betreiber von diesem SEO Blog) durch die Blogosphäre, die als Fazit der Studie vermuten, dass h2 bzw. h3 Tags eventuell eine größere Bedeutung für das Ranking einer Webseite haben könnten als h1 Tags (ursprüngliche Quelle: SISTRIX GmbH: Google-Ranking-Faktoren).

Ich traue dem Braten nicht ganz.

Meine persönliche Theorie, die ich mit einigen anderen teile (genaue Links nicht wiedergefunden), ist, dass semantisch korrekt ausgezeichneter Hypertext die Lösung ist, und Webentwickler bloss nicht damit anfangen sollten, Überschriften plötzlich mit h2 zu beginnen, denn eine 2. Headline macht nur Sinn, sobald auch eine Headline erster Ordnung vorhanden ist. Und in meinen Augen liegt hier der Hase im Pfeffer (neben unzähligen anderen Techniken, Seiten auf die oberen Google Ränge zu katapultieren, soviel ist klar). Wahrscheinlich reagiert Google mit der Abwertung der h1-Wertigkeit im Hinblick auf Google Ranking auf vermehrt auftretenden h1-Spam auf Webseiten, und somit macht es eventuell den Anschein, das h2 Tags an Wert gewinnen.

Eine in diesem Zusammenhang höchst interessante Seite mit massig Details über den Google PageRankgibt es seit gestern beim Smashing Magazine. Lesen!

Die h1 / h2 / h3 Geschichte heute wieder gelesen auf InternetMarketingNews

MDM Zinc mit Datenbank auf Mac und PC

Freitag, Mai 25th, 2007

Wer schon einmal eine Stand Alone App in Flash entwickelt hat, die auf Mac und PC Rechner laufen soll, kennt sicher ZINC von Multidmedia.

Hierbei ist es leicht, auf eine Access Datenbank zuzugreifen, zumindest auf einem PC. Auf dem Mac gibts es bis dato noch keine Lösung, ausser, mit XML und XPath zu arbeiten. Für XPath gibt es mittlerweile eine Implementierung (seit Flash MX 2004), die aber nur rudimentär abbildet, was mit XPath eigentlich erreicht werden könnte (einen kleinen Einblick gibt es zum Beispiel hier). Für besseren XPath Support gibt es die XPath Klasse von XFactor Studio (die original Seite ist leider nicht mehr richtig online, runterladen kann man es allerdings noch).

In den Supportforen von MDM scheint es aber den ein oder anderen User zu geben, der sich für die gleiche Fragestellung interessiert, und evtl. ist bald Hilfe in Sicht, die sogar im Produktiveinsatz funktionieren könnte: An SQLite solution – MDM Forum 3.0. Ich bin freudig gespannt.

PEAR mit MAMP auf dem Mac – PHP5

Freitag, März 30th, 2007

Ich hab gerade versucht, unter meinem Mac und MAMP den PEAR Spreadsheet Excel Writer zum Laufen zu bekommen.

War nicht ganz so einfach. Ich vermute, es liegt daran, dass der MAMP Server nicht auf den regulären Ports läuft (Möglichkeit a) oder im Terminal des Mac PHP4 läuft (eben das mitgelieferte – Möglichkeit b). Bin nach einer Weile diverser Googelei über einen Artikel bei GrinGod gestossen, der folgende Möglichkeiten erklärt (Ich übersetze mal frei, für den Suchenden Google-Nutzer):

Um PEAR mit MAMP zum Starten zu bekommen, muss erstmal die Kommandozeilen PHP Version auf die von MAMP gesetzt werden. Das funktioniert im Terminal mit den folgenden Befehlen:

sudo mv /usr/bin/php /usr/bin/php-old
sudo ln -s /Applications/MAMP/bin/php5/bin/php /usr/bin/php

Damit schmeisst man fürs Erste die alte PHP Version (4) weg, setzt aber im nächsten Schritt eine Verknüpfung auf die aktuelle PHP5 Version von MAMP. Somit wird unter der Kommandozeile (im Terminal) auf PHP5 zurückgegriffen. Damit das gleiche für PEAR gilt, gehts damit gleich weiter:

sudo mv /usr/bin/pear /usr/bin/pear-old
sudo ln -s /Applications/MAMP/bin/php5/bin/pear /usr/bin/pear

Nach Abhandlung der Punkte war ich schon fast soweit und hätte PEAR nutzen können. Ein Versuch, den Spreadsheet Excel Writer mit pear install Spreadsheet_Excel_Writer herunterzuladen scheiterte jedoch zum Einen an der Überprüfung der User ID (UID), zum Anderen daran, dass keine “stable” Version zur Verfügung steht.

Bei der UID hilft es, vorübergehend den safe_mode in der php.ini Datei abzuschalten. Die liegt im MAMP Konfigurationsverzeichnis (/Applications/MAMP/conf/php5/php.ini).

Die Bitte nach einer stable Version kann man umgehen, indem man direkt und explizit die Beta (bei mir war es Verion 0.9.1) anfordert, und zwar unter Angabe des Channels. Bei mir musste ich jedoch vorher noch OLE installieren, also insgesamt und nacheinander einfach das folgende ins Terminal einwerfen:
pear install channel://pear.php.net/OLE-0.5
pear install channel://pear.php.net/Spreadsheet_Excel_Writer-0.9.1

Vielleicht ist ja jemand genauso auf der Suche danach wie ich, und ich konnte hiermit helfen :)

Tagesgeschehen mit Excel, SimpleXML und PHP

Montag, März 26th, 2007

Man könnte (nach dem Sonnenaufgang und dem Salat) meinen, ich säße den ganzen Tag unnütz in der Küche. Das ist natürlich quatsch :)

Momentan versuche ich für ein kleines Projekt aus vorhandenen XML Dokumenten und Exceldaten Datenbankabfragen zu bauen, die Werte aus dem XML Dokument mit Werten in Exceldateien (bzw. extrahiert in eine MySQL DB) vergleichen, und bei Bedarf neue Exceldateien generieren.

Excel ist – dank der ausgezeichneten Microsoft Technik – kein besonders freundliches Format, besonders nicht, wenn es viele ausländische Zeichen und somit um Zeichenkodierung geht (meist läuft Exel mit Windows Latin 1 oder ähnlichem Sch***, kein UTF-8 oder dergleichen).

Was hier im Moment passiert ist folgendes:

  1. Die Datenbasis wird aus Excel mithilfe eines kleinen Makros (VBA) als CSV in eine Textdatei geschrieben
  2. Die Datenbasis (= .csv) kann hochgeladen und somit in die DB geschrieben werden
  3. XML Dokumente, die mit der Datenbasis verglichen und evtl. angepasst werden sollen, werden ebenfalls über HTML Formulare hochgeladen
  4. Mit ein paar XPath Angaben und SimpleXML werden in diesen XML Dokumenten Values an bestimmten Nodes mit Daten der Datenbank verglichen
  5. Sofern entsprechende Daten in der DB vorhanden sind, werden die Nodes in der XML Datei aktualisiert
  6. Nach Aktualisierung werden die neuen XML Dokumente zum Download angeboten
  7. Neben diesen aktualisierten XML Dokumenten werden für ein weiteres Bearbeiten wieder Exceldateien generiert (warum genau, ist an dieser Stelle erstmal nicht so wichtig :)

Im Grunde sowas wie Find & Replace, nur auf ein ganz konkretes Anwendungsgebiet gemünzt.

Mit SimpleXML kann man in PHP XML Dateien recht einfach einlesen:

if(!$simple = simplexml_load_file($pfad.$einzelXML)){
trigger_error("Error beim Lesen der XML Datei(en)", E_USER_ERROR);
};

…und leicht mit XPath bestimmte Nodes auffinden:

foreach($simple->Xpath('//AttributeValue') as $Knoten){ .... }

Hier schnell ein paar Links, die eventuell für andere auch von Interesse sein könnten:
+ SimpleXML in PHP
+ Handbuch Excel VBA
+ Excel Reader
+ Excel2Mysql