apple,development,life & more
Tuesday, September 19. 2006
Stress Tests für Webentwickler
Immer wieder macht sich ein Webentwickler gedanken, wie seine Webanwendung sich wohl unter Last verhält. Dies kann man nachstellen:
Im folgenden möchte ich kurz die Tools auflisten die man dazu verwenden kann:
Vielleicht kann ich demnächst Erfahrungsberichte dazu abgeben wenn ich die Zeit gefunden habe die Tools mal zu testen.
Im folgenden möchte ich kurz die Tools auflisten die man dazu verwenden kann:
Vielleicht kann ich demnächst Erfahrungsberichte dazu abgeben wenn ich die Zeit gefunden habe die Tools mal zu testen.
Friday, September 15. 2006
[PHP] String als Zipfile
Wie oft habe ich bereits einen String in ein komprimiertes File schreiben wollen, das vollautomatisiert und zum Download für den User. Allerdings eignet sich dazu das gzip format nicht da die meisten Benutzer mit Windows arbeiten und man ein zusätzliches Tool installieren.
Daher benötigt man das PEAR Module Archive_Zip das hervorragend Zip Dateien erstellen kann. Allerdings benötige ich das Zip File nicht direkt, da ich das File nach dem Download nicht mehr benötige da es veraltet sein könnte. Daher habe ich mir eine Funktion gebaut, die auf Archive_Zip aufbaut, mit der ich das Problem erledigen kann.
Die Funktion stringtozip erstellt temporär das Archiv mit den gewünschten Dateinamen, und löscht danach alles wieder, um nur den String zurückzuliefern.
Aber sehet selbst!
Viel Spaß!
Daher benötigt man das PEAR Module Archive_Zip das hervorragend Zip Dateien erstellen kann. Allerdings benötige ich das Zip File nicht direkt, da ich das File nach dem Download nicht mehr benötige da es veraltet sein könnte. Daher habe ich mir eine Funktion gebaut, die auf Archive_Zip aufbaut, mit der ich das Problem erledigen kann.
Die Funktion stringtozip erstellt temporär das Archiv mit den gewünschten Dateinamen, und löscht danach alles wieder, um nur den String zurückzuliefern.
Aber sehet selbst!
CODE:
/**
* function to create an zip file from an string
* @param string $string content of the file
* @param string $filename name of the file includes the content
* @param string $zipdescription description in the zipfile
* @param string $tmpfolder path for the temporary files with an ending /
*/
function stringToZip($string,$filename,$zipdescription,$tmpfolder)
{
global $cfg;
$rand=rand();
if(!class_exists('Archive_Zip'))
{
// module archive_zip is not existing
return false;
}
if(!is_writable($tmpfolder))
{
// directory is not writeable
return false;
}
if(!file_exists($tmpfolder.$filename))
{
$int_filename=$tmpfolder.$filename;
} else {
$int_filename=$tmpfolder.$filename.'-'.$rand;
}
$fhandler=fopen($int_filename,'a');
fwrite($fhandler,$string);
fclose($fhandler);
$zipHandler=new Archive_Zip($tmpfolder.date("YmdHis").'-'.$zipdescription.'-'.$rand.'.zip');
$zipHandler->create($int_filename,array('remove_all_path'=>true));
// unlink the file containing the string
unlink($int_filename);
// store the data and delete the temp file
$data=file($tmpfolder.date("YmdHis").'-'.$zipdescription.'-'.$rand.'.zip');
unlink($tmpfolder.date("YmdHis").'-'.$zipdescription.'-'.$rand.'.zip');
return join("\n",$data);
}
* function to create an zip file from an string
* @param string $string content of the file
* @param string $filename name of the file includes the content
* @param string $zipdescription description in the zipfile
* @param string $tmpfolder path for the temporary files with an ending /
*/
function stringToZip($string,$filename,$zipdescription,$tmpfolder)
{
global $cfg;
$rand=rand();
if(!class_exists('Archive_Zip'))
{
// module archive_zip is not existing
return false;
}
if(!is_writable($tmpfolder))
{
// directory is not writeable
return false;
}
if(!file_exists($tmpfolder.$filename))
{
$int_filename=$tmpfolder.$filename;
} else {
$int_filename=$tmpfolder.$filename.'-'.$rand;
}
$fhandler=fopen($int_filename,'a');
fwrite($fhandler,$string);
fclose($fhandler);
$zipHandler=new Archive_Zip($tmpfolder.date("YmdHis").'-'.$zipdescription.'-'.$rand.'.zip');
$zipHandler->create($int_filename,array('remove_all_path'=>true));
// unlink the file containing the string
unlink($int_filename);
// store the data and delete the temp file
$data=file($tmpfolder.date("YmdHis").'-'.$zipdescription.'-'.$rand.'.zip');
unlink($tmpfolder.date("YmdHis").'-'.$zipdescription.'-'.$rand.'.zip');
return join("\n",$data);
}
Viel Spaß!
Posted by Peter Rehm
in PHP, Programmierung
at
16:17
| Comments (2)
| Trackbacks (0)
Defined tags for this entry: development, php
Tuesday, September 12. 2006
Fakes rund um Apple
Kurz vor der Keynote tauchte ein Link zu einer eventuellen Live Übetragung auf.
Wurde schön gemacht, aber ein kleines Detail wurde übersehen. Apple gibt auf der originalen Seite (C) 2006 an auf der nachgemachten steht (C) 2005.
Das nächste indiz ist die Subdomain. Sowas würde Apple auch nicht machen. Aber mal sehen...
Hier der Link: http://events.apple.com.edgesuite.net/sep_2006/event/index.html
Wurde schön gemacht, aber ein kleines Detail wurde übersehen. Apple gibt auf der originalen Seite (C) 2006 an auf der nachgemachten steht (C) 2005.
Das nächste indiz ist die Subdomain. Sowas würde Apple auch nicht machen. Aber mal sehen...
Hier der Link: http://events.apple.com.edgesuite.net/sep_2006/event/index.html
Friday, September 1. 2006
Multi List Drag & Drop - Part 2!
Mich hat es mal wieder gepackt, und ich hab das Multi List Package upgedated.
Wofür ein Urlaub doch gut ist
Ich will es kurz und schmerzlos machen, hier findet ihr den alten Beitrag, mit allen wichtigen Informationen.
Allerdings ist das Package flexibler geworden, nachdem ich gedacht habe man sollte die Listen einfach erwitern können. Zusätzlich habe ich die addLoadEvent unterstützung eingebaut.
Update: Es gibt mal wieder eine erweiterung. Ab jetzt kann man die Class komfortabel selber erweitern und muss sich um die Updates nicht mehr sorgen. Man erzeugt eine angepasste Klasse die die sajax Klasse erweitert. In dieser Klasse werden alle Einstellungen getätigt, und man kann die update_db Funktion überschreiben, mit welcher die Daten geschrieben werden.
download - demo and simple documentation
Viel Spaß!
Wofür ein Urlaub doch gut ist
Ich will es kurz und schmerzlos machen, hier findet ihr den alten Beitrag, mit allen wichtigen Informationen.
Allerdings ist das Package flexibler geworden, nachdem ich gedacht habe man sollte die Listen einfach erwitern können. Zusätzlich habe ich die addLoadEvent unterstützung eingebaut.
Update: Es gibt mal wieder eine erweiterung. Ab jetzt kann man die Class komfortabel selber erweitern und muss sich um die Updates nicht mehr sorgen. Man erzeugt eine angepasste Klasse die die sajax Klasse erweitert. In dieser Klasse werden alle Einstellungen getätigt, und man kann die update_db Funktion überschreiben, mit welcher die Daten geschrieben werden.
download - demo and simple documentation
Viel Spaß!
Wednesday, August 16. 2006
Mod Rewrite und die Sonderzeichen
Wer viel mit Mod Rewrite arbeitet hat meist mit einem Problem zu tun.
Namen, die Sonderzeichen enthalten, können zu Fehlern führen. Eine kleine Funktion kann dabei helfen, da ich nicht auf die umfangreichere Version zurückgreifen wollte, auf die mich Sebastian aufmerksam gemacht hat, Translit.
Diese Funktion ha bisher in den meisten kleinen Anwendungen gereicht, allerdings kann es gut sein dass man diese noch um ein paar Sonderzeichen erweitern muss.
Über ein Feedback würde ich mich freuen.
Namen, die Sonderzeichen enthalten, können zu Fehlern führen. Eine kleine Funktion kann dabei helfen, da ich nicht auf die umfangreichere Version zurückgreifen wollte, auf die mich Sebastian aufmerksam gemacht hat, Translit.
CODE:
<?php
/**
* Clean Name prepares an String to be used in the mod rewrite
* @param string $string string to clean
* @return string clean string
* @access public
*/
function cleanName($string)
{
$search=array('é','á','ó','í','ñ','Ä','ä','Ö','ö','Ü','ü','ß',' ','-','/');
$replace=array('e','a','o','í','n','Ae','ae','Oe','oe','Ue','ue','ss','','','_');
return str_replace($search,$replace,$string);
}
echo cleanName('Diäsüsß ißt éiñ Tásót');
?>
/**
* Clean Name prepares an String to be used in the mod rewrite
* @param string $string string to clean
* @return string clean string
* @access public
*/
function cleanName($string)
{
$search=array('é','á','ó','í','ñ','Ä','ä','Ö','ö','Ü','ü','ß',' ','-','/');
$replace=array('e','a','o','í','n','Ae','ae','Oe','oe','Ue','ue','ss','','','_');
return str_replace($search,$replace,$string);
}
echo cleanName('Diäsüsß ißt éiñ Tásót');
?>
Diese Funktion ha bisher in den meisten kleinen Anwendungen gereicht, allerdings kann es gut sein dass man diese noch um ein paar Sonderzeichen erweitern muss.
Über ein Feedback würde ich mich freuen.
Wednesday, July 19. 2006
Xdebug zum Performancetest in PHP
Es ist während der Entwicklung immer interessant zu sehen wie performant der Code ist, bzw. wie viele Funktionen gestartet werden.
Dies kann man alles mit xdebug einsehen. Xdebug lässt sich über PEAR sehr einfach installieren.
Achtung! Diese Installation beziegt sich auf ein OSX Betriebssystem mit Apache 1.x und dem zufolge xdebug 1.
Eventuelle Ähnlichkeiten mit anderen Plattformen sind vollkommen unbeabsichtig.
Danacht muss nun Xdebug nur noch in der PHP Config vermerkt werden. Ich empfehle davor noch ein Verzeichnis anzulegen, in dem man den ganzen Krempel dann ablegen lässt.
Nun machen wir uns an das Bearbeiten der php Config
So werden autmatisch alle Seitenaufrufe geparst. Ist aber nicht zu empfehlen, da wenn man das mal vergisst und eine Woche an einem Projekt arbeitet ein dickes temporäres Verzeichnis entstehen kann.
Dies kann man alles mit xdebug einsehen. Xdebug lässt sich über PEAR sehr einfach installieren.
Achtung! Diese Installation beziegt sich auf ein OSX Betriebssystem mit Apache 1.x und dem zufolge xdebug 1.
Eventuelle Ähnlichkeiten mit anderen Plattformen sind vollkommen unbeabsichtig.
CODE:
pear install xdebug
Danacht muss nun Xdebug nur noch in der PHP Config vermerkt werden. Ich empfehle davor noch ein Verzeichnis anzulegen, in dem man den ganzen Krempel dann ablegen lässt.
CODE:
mkdir /xdebug/
sudo chmod -R 777 /xdebug/
sudo chmod -R 777 /xdebug/
Nun machen wir uns an das Bearbeiten der php Config
CODE:
;;xdebug
zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20020429/xdebug.so"
xdebug.auto_trace=1
xdebug.auto_profile=1
xdebug.profiler_enable=1
xdebug.output_dir="/xdebug/"
zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20020429/xdebug.so"
xdebug.auto_trace=1
xdebug.auto_profile=1
xdebug.profiler_enable=1
xdebug.output_dir="/xdebug/"
So werden autmatisch alle Seitenaufrufe geparst. Ist aber nicht zu empfehlen, da wenn man das mal vergisst und eine Woche an einem Projekt arbeitet ein dickes temporäres Verzeichnis entstehen kann.
Sunday, July 16. 2006
Subversion Dateien ignorieren
Beim arbeiten an einem Projekt hat man immer wieder Verzeichnisse, die man nicht zwingend in seinem Repository braucht.
Diese kann man ganz einfach auf die ignore List setzen, und hat damit nie wieder etwas damit zu tun. Dies ist z.b. interessant
für Cache Verzeichnisse, Temporäre Dateien,...
Diese kann man ganz einfach auf die ignore List setzen, und hat damit nie wieder etwas damit zu tun. Dies ist z.b. interessant
für Cache Verzeichnisse, Temporäre Dateien,...
CODE:
svn propset svn:ignore "cache" .
Posted by Peter Rehm
in Verschiedenes
at
09:02
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: subversion
Wednesday, July 12. 2006
Fragwürdige Werbemails...
hat wohl jeder zuhauf in seinem Postfach.
Heute erreichte mich eine Mail eines Tintenpatronenlieferanten, der inmitten der Mail in der er auf die Neuigkeiten am Markt eingeht es sich nicht nehmen lässt einfach Werbung zu schalten. Würde er für sich werben wäre das wunderbar.
Aber ich rätsle seit Erhalt der Mail über den Zusammenhang von Tintenpatronen zu der Erotikbranche:
+--ANZEIGE----------------------------------------------------------+
Bis 85% günstiger als Orion & Beate Uhse
Dessous und Erotiktoys für Sie und Ihn ab 0,00 Euro
Später wird dann sogar noch Modeschmuck beworben. Sowas macht einfach keinen seriösen Eindruck. Und ich denke man kann es sich als seriöses Versandunternehmen noch leisten EMails ohne Werbeeinahmen zu versenden. Kostet ja eh nichts, außer etwas Bandbreite
Heute erreichte mich eine Mail eines Tintenpatronenlieferanten, der inmitten der Mail in der er auf die Neuigkeiten am Markt eingeht es sich nicht nehmen lässt einfach Werbung zu schalten. Würde er für sich werben wäre das wunderbar.
Aber ich rätsle seit Erhalt der Mail über den Zusammenhang von Tintenpatronen zu der Erotikbranche:
+--ANZEIGE----------------------------------------------------------+
Bis 85% günstiger als Orion & Beate Uhse
Dessous und Erotiktoys für Sie und Ihn ab 0,00 Euro
Später wird dann sogar noch Modeschmuck beworben. Sowas macht einfach keinen seriösen Eindruck. Und ich denke man kann es sich als seriöses Versandunternehmen noch leisten EMails ohne Werbeeinahmen zu versenden. Kostet ja eh nichts, außer etwas Bandbreite
IFrames mit variabler Höhe
Bei Iframes ist eine Breite von 100% kein Problem, dies lässt sich technisch ohne Probleme realisieren. Bei der Höhe ist dies allerdings nicht möglich da dann immer 100% der gesamten Höhe genommen werden.
Daher kann man sich nur mit JavaScript aushelfen. Dieses Javascript wird beim onLoad ausgeführt. onLoad kann nicht nur bei body Elementen sondern auch bei iframe Elementen verwendet werdenten verwendet. Allerdings kann Safari mit den onLoad Elementen nicht viel Anfangen, dies ist das Hauptproblem. Da kann man sich nur helfen, indem man in den body einen onload hinzufügt der die Größe speichert.
Das passende JavaScript dazu:
Danke an Alex für die "Inspiration"
Daher kann man sich nur mit JavaScript aushelfen. Dieses Javascript wird beim onLoad ausgeführt. onLoad kann nicht nur bei body Elementen sondern auch bei iframe Elementen verwendet werdenten verwendet. Allerdings kann Safari mit den onLoad Elementen nicht viel Anfangen, dies ist das Hauptproblem. Da kann man sich nur helfen, indem man in den body einen onload hinzufügt der die Größe speichert.
Das passende JavaScript dazu:
CODE:
function getIframeHeight1() {
fix = 300; // fixe höhe
min = 100; //mindes höhe
max = 300; //max höhe
if(fix>max) return fix; // wenn fix größer als max => fix
if(fix>min && fix
if (window.innerHeight) {
h = window.innerHeight;
} else if (document.body && document.body.offsetHeight) {
h = document.body.offsetHeight;
}
if(h
if(h>max) return max;
return h;
}
function adjustIframe()
{
document.getElementById('iframe1').height=getIframeHeight1();
}
fix = 300; // fixe höhe
min = 100; //mindes höhe
max = 300; //max höhe
if(fix>max) return fix; // wenn fix größer als max => fix
if(fix>min && fix
if (window.innerHeight) {
h = window.innerHeight;
} else if (document.body && document.body.offsetHeight) {
h = document.body.offsetHeight;
}
if(h
if(h>max) return max;
return h;
}
function adjustIframe()
{
document.getElementById('iframe1').height=getIframeHeight1();
}
Danke an Alex für die "Inspiration"
Posted by Peter Rehm
in Verschiedenes
at
00:16
| Comment (1)
| Trackbacks (0)
Defined tags for this entry: development, javascript
Tuesday, July 11. 2006
Bye Bye Klinsi...
So hat es ja kommen müssen. Aber er macht das richtig. Nicht so wie die anderen Sportler die den richtigen Zeitpunkt nicht erwischen aufzuhören. Z.b. Zidane 
Er geht im absoluten Fußballhoch, und lässt eine motivierte Mannschaft zurück. Diese Mannschaft wird uns auch so noch viel Spaß bereiten.Bin mal gespannt wer der nächste Trainer sein wird.
Anyway man kann ihm nur viel Erfolg für die Zukunft wünschen und sich über die tolle WM 2006 freuen, die jedem in Erinnerung bleiben wird.
Er geht im absoluten Fußballhoch, und lässt eine motivierte Mannschaft zurück. Diese Mannschaft wird uns auch so noch viel Spaß bereiten.Bin mal gespannt wer der nächste Trainer sein wird.
Anyway man kann ihm nur viel Erfolg für die Zukunft wünschen und sich über die tolle WM 2006 freuen, die jedem in Erinnerung bleiben wird.
Wednesday, June 28. 2006
ADODB Table Prefix
Bei fast jedem Projekt arbeitet man mit Tabellen Prefixen, um das Projekt z.b. 2x in der gleichen Datenbank laufen zu lassen. Gestern habe ich angefangen mein Projekt auf ADOBD und dabei festgestellt dass es noch keine eingebaute Funktion für das Verwalten eines Prefixes gibt. Daher hab ich das nun auf meine Anforderungen angepasst.
Mein Prefix liegt in $cfg['tbl_prefix'].
Die Querys werden nun so aufgebaut ("SELECT * FROM ##daten").
Statt Execute nimmt man nun die neue Funktion pExecute.
Diese Funktion muss in die adodb.inc.php implementiert werden, ich hab diese in der aktuellen ADODB Version in Zeile 784 direkt vor Execute plaziert.
Mein Prefix liegt in $cfg['tbl_prefix'].
Die Querys werden nun so aufgebaut ("SELECT * FROM ##daten").
Statt Execute nimmt man nun die neue Funktion pExecute.
Diese Funktion muss in die adodb.inc.php implementiert werden, ich hab diese in der aktuellen ADODB Version in Zeile 784 direkt vor Execute plaziert.
CODE:
/**
* Function to Replace the Prefixes
* After replacing it the SQL Statement will be passed to EXECUTE()
* @param sql SQL statement to execute, ## will be replaced with the Prefix
*/
function &pExecute($sql)
{
global $cfg;
return $this->Execute(str_replace('##',$cfg['tbl_prefix'],$sql));
}
* Function to Replace the Prefixes
* After replacing it the SQL Statement will be passed to EXECUTE()
* @param sql SQL statement to execute, ## will be replaced with the Prefix
*/
function &pExecute($sql)
{
global $cfg;
return $this->Execute(str_replace('##',$cfg['tbl_prefix'],$sql));
}
Tuesday, June 20. 2006
1&1 Irrfahrt Teil 2
Nach dem ersten Teil der Irrfahrt hat 1&1 wohl mitbekommen dass da was im argen ist.
Ich hab einen Server, 2x DSL und den Profiseller Account gekündigt.
Dann ruft mich einer an und bietet mir 50€ an, wenn ich bleibe. Ohne mit der Wimper zu zucken. Andere bekommen 100 wenn sie gehen...
Ich habe nicht angenommen, da alleine das Modem das ich bekomme wenn ich mich neu anmelde, mehr wert ist als 50€...
Ich hab einen Server, 2x DSL und den Profiseller Account gekündigt.
Dann ruft mich einer an und bietet mir 50€ an, wenn ich bleibe. Ohne mit der Wimper zu zucken. Andere bekommen 100 wenn sie gehen...
Ich habe nicht angenommen, da alleine das Modem das ich bekomme wenn ich mich neu anmelde, mehr wert ist als 50€...
Posted by Peter Rehm
in Verschiedenes
at
00:57
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: internet
Multi List Drag & Drop - Sajax!
Als ich über die Seite von Tom Westcott gestolpert bin war mir klar, ich muss das in mein neues CMS einbinden. Ich hatte mir damals schon vorgestellt dass das für die Inhaltsstruktur oder für die Sidebar interessant sein könnte, aber ich war damals noch in der Planungsphase.
Als ich dann die Implementation in Serendipity die ich durch Garvin's SuperBlog entdeckt habe getestet habe, war mir klar, genau das will ich auch. Allerdings hat mir nur die AJAX Implementierung zugesagt, da ich ganz genau weiss da manche kunden bei so futuristischen Anwendungen sicher vergessen das abzuschicken. Daher muss das automatisch gemacht werden. Tom hat glücklicherweise auch gleich beide Methoden bereitgestellt.
Allerdings war der Code sehr verworren, und daher habe ich angefangen den Code neu aufzubauen, da ich vor allem im CMS das dann schon sauber einbauen wollte. Anstelle der umfangreicheren Implementation reicht nun folgendes:
Danach muss noch der Pfad in der sajax Datei angepasst werden, dass das einbinden der styles und des JS auch funktioniert.
Die Funktion update_db sollte dann auch an die Gegebenheiten angepasst werden. Die Funktion greift auf die global Datenbankverbindung zu.
Das Auslesen wird dann direkt in dem File gemacht in dem Sie die Liste anzeigen möchten.
Um dies zu vereinfachen habe ich eine Bespiel Datei mitgeliefert, in der Sie das alles sehen können. Dazu auch der passende SQL dump.
Beispielseite - Download
Als ich dann die Implementation in Serendipity die ich durch Garvin's SuperBlog entdeckt habe getestet habe, war mir klar, genau das will ich auch. Allerdings hat mir nur die AJAX Implementierung zugesagt, da ich ganz genau weiss da manche kunden bei so futuristischen Anwendungen sicher vergessen das abzuschicken. Daher muss das automatisch gemacht werden. Tom hat glücklicherweise auch gleich beide Methoden bereitgestellt.
Allerdings war der Code sehr verworren, und daher habe ich angefangen den Code neu aufzubauen, da ich vor allem im CMS das dann schon sauber einbauen wollte. Anstelle der umfangreicheren Implementation reicht nun folgendes:
CODE:
/**
* db settings
*/
$cfg['server']['host'] = "localhost"; // server
$cfg['server']['user'] = "root"; // dbuser
$cfg['server']['pass'] = ""; // password
$cfg['server']['db'] = "sajaxdemo"; // dbname
/**
* start the connection
*/
$conn = mysql_connect ($cfg['server']['host'],
$cfg['server']['user'],
$cfg['server']['pass']);
$result = mysql_select_db ($cfg['server']['db'],$conn);
/**
* include the sajax file
*/
include("sajax.php");
* db settings
*/
$cfg['server']['host'] = "localhost"; // server
$cfg['server']['user'] = "root"; // dbuser
$cfg['server']['pass'] = ""; // password
$cfg['server']['db'] = "sajaxdemo"; // dbname
/**
* start the connection
*/
$conn = mysql_connect ($cfg['server']['host'],
$cfg['server']['user'],
$cfg['server']['pass']);
$result = mysql_select_db ($cfg['server']['db'],$conn);
/**
* include the sajax file
*/
include("sajax.php");
Danach muss noch der Pfad in der sajax Datei angepasst werden, dass das einbinden der styles und des JS auch funktioniert.
CODE:
var $sajax_path='thirdparty/sajax/';
Die Funktion update_db sollte dann auch an die Gegebenheiten angepasst werden. Die Funktion greift auf die global Datenbankverbindung zu.
Das Auslesen wird dann direkt in dem File gemacht in dem Sie die Liste anzeigen möchten.
Um dies zu vereinfachen habe ich eine Bespiel Datei mitgeliefert, in der Sie das alles sehen können. Dazu auch der passende SQL dump.
Beispielseite - Download
Sunday, June 11. 2006
MySQL Probleme unter OSX
Wer unter OSX folgenden Fehler bekommt:
Kann nun wieder durchatmen und mir einen ausgeben
Und dein Tag ist gerettet!
CODE:
Can't connect to local MySQL server through socket '/var/mysql/mysql.sock'
Kann nun wieder durchatmen und mir einen ausgeben
CODE:
sudo mkdir /var/mysql
sudo ln -s /private/tmp/mysql.sock /var/mysql/mysql.sock
sudo ln -s /private/tmp/mysql.sock /var/mysql/mysql.sock
Und dein Tag ist gerettet!
Posted by Peter Rehm
in Verschiedenes
at
22:11
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: mysql
Thursday, June 1. 2006
PageRank
Es ist auch mal ganz interessant zu untersuchen welchen PageRank man gerade hat.
Die PageRank überprüfung ist nur eines der Tools die David Maciejewski auch seiner Seite anbietet.
Viel Spaß beim stöbern in den Tools.
Die PageRank überprüfung ist nur eines der Tools die David Maciejewski auch seiner Seite anbietet.
Viel Spaß beim stöbern in den Tools.
Posted by Peter Rehm
in Verschiedenes
at
15:30
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: google
(Page 1 of 5, totaling 73 entries)
» next page
Inhalt
Calendar
|
|
March '10 | |||||
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 | ||||
Google Werbung
Archives
Categories
Syndicate This Blog
Getaggte Artikel
Top Referers
www.cmsimpleforum.com (1)
Statistiken
letzter eintrag: 02.01.2008 11:16
154 geschriebene einträge
103 kommentare wurden erstellt
© Copyright 2006, nerdwg.org design by Luka Cvrk, port for s9y by nerdwg.org

