Releasewechsel in PHP

Offensichtlich stellt die Auslieferung ein neuen Releases in einigen PHP-Projekten einen hohen manuellen Aufwand dar, da Dateien über die bestehende Installation mehr oder weniger manuell kopiert werden. Dabei müssen selbstverständlich zu löschende Dateien und Ordner berücksichtigt werden, sowie ist darüber hinaus dieser Vorgang nur vorwärtsgerichtet und kann im Falle eines massiven Fehlers nur zurückgerollt werden sofern eine Komplettsicherung vorliegt.
Zu guter Schluss kann dieser manuelle Vorgang mehrere Minuten bis sogar Stunden in Anspruch nehmen und damit eine längere Downtime der Webseite bzw. des Services einfordern. Je nach Projekt kann dies unerwünscht und in Folge dessen auch noch mit hohen Kosten verbunden sein – zum einen durch Personalkosten sowie zum anderen der Nichtverfügbarkeit und dem damit verbundenen Nutzungsausfall. Wer zur Krönung dann noch eine ganze Farm von installierten Applikationen zu aktualisieren hat wird letztlich seinen Aufwand nochmal um die Anzahl der Hosts multiplizieren dürfen.

In diesem Sinne: Prost Mahlzeit!

Releasewechsel in PHP weiterlesen

Windows 7 Zwischenablage funktioniert nicht immer in Outlook 2003

Ich habe einen Text der Zwischenablage und möchte diesen in Outlook 2003 ein beliebiges Element (z.B. E-Mail, Kalender, Aufgabe oder Kontakt) einfügen. Dieses Element wurde per STRG+C kopiert und soll nun in eine neue Email eingefügt werden. Dies lässt sich jedoch nicht Einfügen da die Zwischenablage offensichtlich leer ist. Wechselt man in das ursprüngliche Programm zurück und kopiert das Element erneut lässt es sich Problemlos einfügen.

Ein Fehlverhalten des Users oder zwischenzeitliches Überschreiben der Inhalte durch andere Aktionen lassen sich ausschließen, da dieses Verhalten reproduzierbar ist.

Windows 7 Zwischenablage funktioniert nicht immer in Outlook 2003 weiterlesen

Windows Benutzer automatisch anmelden

Man sollte sich grundsätzlich vor Augen führen, dass jeder PC gegen unautorisierte Zugriffe geschützt werden muss. Wer jedoch seinen Rechner bereits in einer geschützten Umgebung betreibt oder allen zutrittsberechtigten Personen vertraut, den kann die ständige Passworteingabe auch schonmal nerven.

Wer sich dafür entscheidet kann dies unter Windows 7 wie folgt einrichten:

  1. Die Konsole im Startmenü via cmd öffnen
  2. Den Befehl control userpasswords2 eingeben
  3. Den Start der Benutzerkontensteuerung mit einem Administratoraccount bestätigen
  4. In der Liste „Benutzer dieses Computers“ den Benutzer auswählen der künftig automatisch eingeloggt werden soll
  5. Checkbox „Benutzer mussen Benutzernamen und Kennwort eingeben“ abwählen
  6. Änderungen mit OK bestätigen
  7. Es folgt ein Popup in dem nun durch zweimalige Eingabe des zugehörigen Passworts der automatische Login verifiziert wird
  8. Mit Klick auf OK ist dieser Vorgang abgeschlossen und der Rechner wird automatisch mit jedem Neustart mit dem gewählten Benutzer eingeloggt
  9. Die Konsole kann wieder geschlossen werden

Windows Ordner winsxs voll

Nachdem meinem Systemlaufwerk im Laufe der Zeit immer weniger Speicherplatz zur Verfügung stand analysierte ich diesen Zustand und stellte fest, dass in meinem Windows 7 im Ordner C:\Windows\winsxs unglaublich viele Dateien liegen die für mich keinen Sinn ergeben und wie temporäre Installationsdateien aussehen. Der Ordner dort ist mit mehr als 12GB auch noch so groß, dass er meiner Meinung nach gelöscht werden kann.

Wer das jedoch tut kann mitnichten eine böse Überraschung erleben, da Windows dort Systemänderungen abspeichert. Dieser Ordner kann lediglich mittels einem Tool um unnötige Dateien bereinigt werden, welches von Microsoft bereits von Haus aus mitgeliefert wird:

DISM.exe /Cleanup-Image /Online /spsuperseded

Ordnergröße vor der Bereinigung: 12.268 MB
Ordnergröße nach der Bereinigung: 9.905 MB

Die Bereinigung hat bei mir etwas mehr als 2 GB Speicherplatz freigeschafft. Das ist jetzt nicht unbedingt der Burner, aber immerhin etwas – denn auf meiner 30GB SSD sind das immerhin wieder 6% freier Speicherplatz mehr.

Back in time

Hin uns wieder steht man als Entwickler vor der Aufgabe einen Prozess zu verschiedenen Zeitpunkten zu testen. Das löst man meist recht pragmatisch indem man die Systemzeit ändert und sodann seine Tests durchführt. Dies hat jedoch oftmals einen unangenehmen Beigeschmack, der sich unter anderem im folgenden bemerkbar macht:

  1. Andere Programme legen ein ungewolltes Verhalten an den Tag
  2. Andere Benutzer auf dem gleichen System sind ebenfalls von  der Zeitumstellung betroffen
  3. Der Taskplaner startet Jobs die während der gegenwärtigen Uhrzeit das System negativ beeinflussen
  4. Zertifikate werden plötzlich ungültig
  5. Logeinträge des Systems sowie jene diverser Applikationen sind möglicherweise nicht mehr zuordnbar bzw. nur schwer nachvollziehbar

Welche Gründe man nun auch immer für die Zeitumstellung hat und sich mit den damit verbundenen Problemen herumschlagen muss – sofern die Entwicklung auf einem Windowssystem stattfindet ist man mit dem Tool RunAsDate in der Lage einen beliebigen Prozess mit einer eigenen Zeiteinstellung gezielt zu starten. Dafür klinkt dieses Tool sich in die Kernel-API ein und manipuliert die Zeit für den Prozess mit der übergebenen Zeiteinstellung.

Einen PHP-Webserver in anderen Zeiten starten:

RunAsDate.exe /movetime 01\01\2001 18:15:00 C:\php5\php.exe -S localhost:8000 -t D:\var\www\mydomain\

PHP im CLI-Modus starten:

RunAsDate.exe /movetime 01\01\2001 18:15:00 C:\php5\php.exe -r „date(‚Y-m-d H:i:s‘);fgets( STDIN );“

Beachte:

  1. Manche Zeiteinstellungen z.B. vor 2000 oder ein Datum vor bestimmten Zeitpunkten zu den das Programm einfach seine Kalkulationen unterlässt lassen das gewünschte Programm nicht starten oder zu ungewünschten Ergebnissen führen
  2. Es ist nicht empfehlenswert Programme zu starten, die einer zeitlichen Beschränkung unterliegen, da diese möglicherweise das intern gegenprüfen und so ihren Dienst künftig gänzlich verweigern

Download:

http://www.heise.de/download/runa04sdate-1169076.html