Fritz Thomas .com

Ich hatte das Problem das ich über ein ganzes Projektverzeichnis bei bestimmten Dateien (.php, .phtml, .js, .css) ein svn propset ausführen wollte. Unter Windows und TortoiseSVN hat man zwar die Möglichkeit über ein ganzes Verzeichnis rekursiv ein Property zu setzen, jedoch nicht nach Dateiendungen zu entscheiden ob es gesetzt werden soll. Eine einfache und schnelle Möglichkeit ist dazu das Unix/Linux Tool ‘find’.

Lese den ganzen Eintrag »

Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • bodytext
  • del.icio.us
  • Netvouz
  • description
  • ThisNext
  • MisterWong
  • Wists
  • Furl
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Simpy
  • Slashdot
  • Spurl
  • StumbleUpon
  • Technorati
  • YahooMyWeb

Alle Tabellen löschen

Will man alle Tabellen einer Datenbank löschen so gibt es dafür keine native SQL Anweisung wie TRUNCATE DATABASE oder so. Man kann sich mit einem one-liner behelfen:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]


Mittels mysqldump wird die Datenbank ohne Daten und mit der Option ‘–add-drop-table’ gedumped. Mit grep werden dann nur diese Anweisungen wieder an den mysql Client weitergeleitet der dann wiederum die alle Tabellen aus der Datenbank dropt.

Nur bestimmte Tabellen einer Datenbank löschen

Oft hat man auch das Problem das man nur bestimmte Tabellen aus einer Datenbank löschen möchte. Zum Beispiel wenn man mehrere Applikationen installiert und eine davon jetzt löschen möchte. Wichtig ist das die Tabellen der Applikation einen Tabellen Prefix haben. Bei Wordpress wäre das zum Beispiel ‘wp_’ als Prefix. Um nur diese aus der Datenbank zu löschen muss die obere Anweisung nur mit einem weiteren grep erweitert werden:

mysqldump -u[USERNAME] -p[PASSWORD] --add-drop-table --no-data [DATABASE] | grep ^DROP | grep 'wp_.*' | mysql -u[USERNAME] -p[PASSWORD] [DATABASE]

Es empfiehlt sich das Ergebnis zuerst mal zu kontrollieren und sich die Drop Statements nur ausgeben zu lassen - also den letzten Teil (mysql -u[USERNAME]…..) einfach weglassen.

Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • bodytext
  • del.icio.us
  • Netvouz
  • description
  • ThisNext
  • MisterWong
  • Wists
  • Furl
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Simpy
  • Slashdot
  • Spurl
  • StumbleUpon
  • Technorati
  • YahooMyWeb

Das ist der erste Teil meiner Tutorial oder How-To Serie für das Zend Framework.
Dieser erste Artikel wird etwas früher als mit der Implementierung des bootstrapping Prozesses oder dem Erstellen neuer Controller, Models oder Views beginnen. Ich werde hier als erstes grundlegende Gedanken und Überlegungen in den Raum stellen, die man sich vor der Implementierung stellen sollte - wie zum Beispiel die Wahl der richtigen Verzeichnisstruktur und die Ausarbeitung eigener Konventionen.

Wozu die ganze Theorie?

Die Wahl der Verzeichnisstruktur oder das überlegen und / oder aufschreiben eigener Konventionen mag im ersten Moment vielleicht etwas nebensächlich erscheinen und auch so behandelt werden, doch will man eine Applikation von vorn herein so modular wie möglich aufbauen um später nicht mehr Arbeit zu haben um neue Features (Module, Plugins, Controller, I18N, Caching, Suche, etc..) zu implementieren sollte man sich etwas mehr Zeit nehmen um über die jetzigen und auch die zukünftigen Anforderungen an die Applikation, nachzudenken. Die Wichtigkeit dessen steigt, um so mehr Entwickler an einem Projekt beteiligt sind, da darauf um so mehr zu achten ist, dass jeder Entwickler weiß welche Code Conventions einzuhalten sind, und vor allem WIE (und nicht ob!!!) dokumentiert werden muss.

Lese den ganzen Eintrag »

Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • bodytext
  • del.icio.us
  • Netvouz
  • description
  • ThisNext
  • MisterWong
  • Wists
  • Furl
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Simpy
  • Slashdot
  • Spurl
  • StumbleUpon
  • Technorati
  • YahooMyWeb

Das 7zip Kompressionsformat wird nicht “Out-Of-The-Box” unterstützt. Das Programm kann einfach mit

thomas@gentoo ~ $ emerge -av p7zip

installiert werden.

Einfaches schnelles Komprimieren

Eine Datei oder ein ganzen Verzeichnis mit den Standard Optionen zu komprimieren ist ganz einfach. Nehmen wir an, wir wollen ein ganzes Verzeichnis komprimieren.

thomas@gentoo ~ $ 7za a test.7z test-verzeichnis/

Starkes Komprimieren mit den “Ultra” Optionen

Um eine Datei oder ein ganzes Verzeichnis stärker zu komprimieren sind einige Optionen nötig. An den einzelenen Optionen kann natürlich noch “getuned” werden, aber man sollte daran denken, dass sich die Zeit zum komprimieren und entpacken des Archives erhöht umso stärker komprimiert wird. Ausserdem wird, bei stärker Komprimierung, auch der Speicherverbrauch beim Entpacken größer.

Lese den ganzen Eintrag »

Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • bodytext
  • del.icio.us
  • Netvouz
  • description
  • ThisNext
  • MisterWong
  • Wists
  • Furl
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Simpy
  • Slashdot
  • Spurl
  • StumbleUpon
  • Technorati
  • YahooMyWeb

Ändert sich der Pfad einer VMware Appliance wird auch eine neue Mac Adresse generiert. Will man immer dieselbe Mac Adresse behalten, kann man eine Mac Adresse auch manuell zuweisen.
Dazu sind einige wenige Änderungen in der VMware Konfigurations Datei nötig.

Lese den ganzen Eintrag »

Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • bodytext
  • del.icio.us
  • Netvouz
  • description
  • ThisNext
  • MisterWong
  • Wists
  • Furl
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Simpy
  • Slashdot
  • Spurl
  • StumbleUpon
  • Technorati
  • YahooMyWeb

Wird durch den Kernel eine neue Mac Adresse erkannt, wird angenommen das es sich dabei um ein neues Netzwerk Interface handelt. Dieses neue Device muss anschließend auch neu konfiguriert werden.

Soweit so gut. Möchte man aber seine Netzwerkkarte gegen eine neue tauschen, aber denselben Device Namen behalten, um so die evtl. bereits erstellte und wahrscheinlich auch funktionierende Konfiguration (Netzwerkkonfiguration, iptables,…) zu verwenden, kann mittels udev Regeln der neuen Mac Adresse einen statischen Namen zuweisen.

Das ist auch dann hilfreich wenn man eine Linux VMware Appliance kopiert, und eine neue UUID generieren lässt, um zum Beispiel mehrere “identische” Appliances im selben Netzwerk zu betreiben. Das neu generieren ändert auch die Mac Adresse der virtuellen Netzwerkkarte und somit wird auch ein neues Interface angelegt. Was vorher eth0 war wird dann zu eth1 und muss auch wieder neu konfiguriert werden.
Will man einfach manuell die Mac Adresse einer Appliance ändern oder zuweisen, um immer dieselbe MAC Adresse zu haben auch wenn die Appliance kopiert wird seht hier.

Lese den ganzen Eintrag »

Teile und genieße Diese Icons verzweigen auf soziale Netzwerke bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • bodytext
  • del.icio.us
  • Netvouz
  • description
  • ThisNext
  • MisterWong
  • Wists
  • Furl
  • Ma.gnolia
  • NewsVine
  • Reddit
  • Simpy
  • Slashdot
  • Spurl
  • StumbleUpon
  • Technorati
  • YahooMyWeb