PHP: Probleme mit Datei Upload unter Windows

Veröffentlicht am 9. November 2010 um 08:45 by Fabian Martin Permalink

Nachdem ich vor ein paar Tagen, im Rahmen des „Developers Shame Day“, in meiner Giftgrube gewühlt  und ein Code Schnipsel aus vergangenen Tagen veröffentlicht habe, kommt der heutige Beitrag wieder aus der Richtung „Was mache ich, wenn … ?“.

Während den Arbeiten an einem Projekt, testen wir die Seiten nicht nur mit verschiedenen Browsern, sondern auch mit verschiedenen Server Betriebssystemen. Wir wollen so gewährleisten, dass der Kunde einen Server seiner Wahl nutzen kann, ohne auf ein Feature verzichten zu müssen.

Ein Kollege sprach mich, nach solch einem Testlauf, darauf an, dass er Probleme mit Dateien hat, die er mittels Datei Upload in sein Windows Testsystem lädt. Beim Zugriff auf diese Dateien, wird er von Windows darauf aufmerksam gemacht, das er nicht die benötigten Rechte dazu besitzt.
weiterlesen »

Ich schäme mich … am Developers Shame Day

Veröffentlicht am 3. November 2010 um 12:45 by Fabian Martin Permalink

Jeder Programmierer hat mal klein angefangen und dabei Code produziert, für den er sich im Nachhinein schämt, und von dem er hofft, dass er nie an die Öffentlichkeit gerät.

Doch heute ist alles anders.

Der PHP Hacker ist aus der Versenkung zurückgekehrt und hat alle Entwickler dazu aufgerufen ihren schlimmsten Code Schnipsel am Developers Shame Day zu veröffentlichen. Neueinsteiger sollen sehen, dass auch die Profis von heute mal klein angefangen haben und es keine Schande ist, wenn der Code am Ende doch nur Murks ist.

Ich habe mich also daran gemacht und meine Archive der letzten 10 Jahre durchforstet um das richtige zu finden. Und nach langem Suchen habe ich nun endlich den passenden Code Schnipsel gefunden, bei dem ich alles falsch gemacht habe, was man nur falsch machen kann. Er ist aus dem Jahr 2001 und gehört zu einem meiner ersten PHP Projekte.
weiterlesen »

PDT: Compare/Merge Editor funktioniert nicht mehr

Veröffentlicht am 17. Oktober 2010 um 22:17 by Fabian Martin Permalink

Als gewissenhafte Entwickler, die wir alle sind, wollen wir natürlich nur das Beste nutzen und haben deswegen immer die aktuellste Version unserer IDE installiert … ein Fehler!  Seit dem 24. September ist das erste Service Release von Eclipse Helios auf den Update Servern verfügbar und macht etwas kaputt, auf das ich persönlich nicht verzichten möchte … den Compare Editor.

Der Fehler ist mit bereits kurz nachdem Update aufgefallen, aber ich hatte angenommen, dass mal wieder mein Workspace zerstört ist und es genügt einen neuen anzulegen.  Leider weit gefehlt, denn der Fehler steckt im Code und wird, wie es scheint, erst mit dem nächsten Service Release behoben.

Wer nicht so lang warten möchte, kann sich den aktuellen Milestone installieren. Folgt der kleinen Anleitung, und ihr habt wieder einen funktionierenden Compare Editor.

  1. Wählt im Hilfe Menü den Punkt Install New Software… aus (1)
  2. Fügt über den Button Add (2) eine neue Update Seite hinzu
  3. Gebt der Seite einen Namen (3) (z.B. “2.2 Milestones”) und fügt als Location (4) http://download.eclipse.org/tools/pdt/updates/2.2/milestones/ ein
  4. Bestätigt eure Eingaben mit OK (5) und wartet bis die Update Seite geladen wurden
  5. Wählt jetzt den Punkt PHP Development Tools (PDT) Runtime Feature aus und vollzieht, nach dem klick auf Next, das übliche Installations Procedere

Der Compare Editor sollte jetzt wieder normal funktionieren. Wenn ihr nicht jede Milestone Version installieren wollt, solltet ihr die Update Seite in den Einstellungen wieder deaktivieren.

Links:

SVN: The file or directory is corrupted and unreadable.

Veröffentlicht am 11. Oktober 2010 um 22:01 by Fabian Martin Permalink

Can’t move ‘.svn/tmp/entries’ to ‘.svn/entries’: The file or directory is corrupted and unreadable.

Wenn ihr diese oder eine ähnliche Meldung schon einmal gesehen habt, liege ich wahrscheinlich richtig, wenn ich behaupte, dass ihr Windows 7 oder eines der aktuellen Windows Serverbetriebssysteme im Einsatz habt.

Anders als die Meldung andeutet, ist die Datei aber weder beschädigt noch unlesbar, sie wurde lediglich vom System gesperrt, weil derzeit ein anderes Programm darauf zugreift. In einer Zeit vor Windows 7 lag es meist an Virenscannern, die Ihre Aufgabe erledigten und die Datei gescannt haben.

Seit Windows 7 hat aber meist der Indizierungsdienst schuld an der Meldung. Während ihr noch am ein- oder auschecken seid, versucht er eine Datei zu analysieren und blockiert sie dadurch. SVN kann die Datei deswegen nicht mehr öffnen, und bricht mit der bekannten Fehlermeldung ab.

Um Abhilfe zu schaffen, reicht es euren Projektordner aus der Liste der zu indizierenden Verzeichnisse zu nehmen. Öffnet hierzu euer Startmenü,  gebt in das Suchfeld Indizierung ein und bestätigt die Eingabe mit Enter. Es sollte sich ein Fenster mit dem Titel Indizierungsoptionen geöffnet haben.  Geht hier auf Ändern und sucht im neuen Fenster nach eurem Projektordner. Entfernt das Häkchen davor und bestätigt die Änderungen mit Enter.

Das Problem sollte sich nun erledigt haben, und jede neue Aktion mit Subversion sollte ohne Probleme vonstatten gehen.

PDT: DLTK indexing in progress … Wenn es kein Ende nimmt

Veröffentlicht am 23. September 2010 um 22:18 by Fabian Martin Permalink

Sollte euer Eclipse nur sehr träge arbeiten und im Progress Fenster dauerhaft DLTK indexing in progress erscheinen, ist mit großer Wahrscheinlichkeit euer DLTK Index beschädigt.

Der DLTK Index wird in einer H2 Datenbank gesichert, die durch verschiedene Umstände beschädigt werden kann (z.B. durch einen Absturz von Rechner und/oder Eclipse). Sobald dies passiert ist, wird versucht die Datenbank zu reparieren. Die Reparatur kann aber, grad bei großen Datenbeständen, sehr lang dauern und den PC stark beanspruchen.

Um dies zu verhindern und ein rasches weiterarbeiten zu ermöglichen, empfiehlt es sich die Datenbank zu löschen. Beendet Eclipse und öffnet mit dem Explorer euer Workspace Verzeichnis. Löscht alle Dateien im Unterordner .metadata\.plugins\org.eclipse.dltk.core.index.sql.h2 und startet Eclipse. Die Dateien werden automatisch wieder angelegt und mit Informationen gefüllt.

In der Datenbank sind übrigens nur Daten enthalten, die Eclipse aus den Dateien in euren Projekten gewonnen und somit selber wiederherstellen kann.