<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1863061299598355274</id><updated>2011-08-22T02:03:48.068-07:00</updated><category term='Unicode'/><category term='sql'/><category term='opensource'/><category term='tool'/><category term='python'/><category term='web'/><category term='php'/><category term='extension'/><category term='howto'/><category term='programming'/><category term='development'/><category term='typo3'/><category term='Typografie'/><category term='Sicherheit'/><category term='Windows'/><category term='muenster'/><category term='Alltag'/><category term='Sprache'/><title type='text'>mbless</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1863061299598355274.post-8595919780312842371</id><published>2011-08-22T02:01:00.000-07:00</published><updated>2011-08-22T02:03:48.076-07:00</updated><title type='text'>This blog has moved</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Please go to &lt;a href="http://blog.mbless.de"&gt;http://blog.mbless.de&lt;/a&gt; to find my current blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863061299598355274-8595919780312842371?l=mbless.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/8595919780312842371/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863061299598355274&amp;postID=8595919780312842371' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/8595919780312842371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/8595919780312842371'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/2011/08/this-blog-has-moved.html' title='This blog has moved'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863061299598355274.post-1115180874617196560</id><published>2008-11-13T02:55:00.000-08:00</published><updated>2008-11-14T04:35:33.229-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><category scheme='http://www.blogger.com/atom/ns#' term='Sicherheit'/><category scheme='http://www.blogger.com/atom/ns#' term='typo3'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Kein Captcha? Gotcha!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.typo3.org/"&gt;&lt;img dragover="true" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 84px;" src="http://4.bp.blogspot.com/_Nv2UM3yBHA4/SRykoL6tGOI/AAAAAAAAACM/rd-BXufbq2Y/s400/Typo3_logo_color-RGB-200x84.png" alt="" id="BLOGGER_PHOTO_ID_5268266674417375458" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:verdana;"&gt;Was tun, wenn ein Programm überhaupt nichts "sagt"? Dieser Beitrag zeigt Wege für ein systematisches Vorgehen im Gegensatz zum "Versuch und Irrtum".&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;Die Zeiten sind rauh, und wer seine Formulare nicht gegen Roboter sichert, wird leicht zum Verbreiter unerwünschter Inhalte. &lt;a dragover="true" href="http://de.wikipedia.org/wiki/Captcha"&gt;Captchas&lt;/a&gt; sind ein gängiges Verfahren. Und wenn der Anreiz nicht zu hoch ist, genügt schon eine einfache Erkennungsaufgabe wie diese &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Nv2UM3yBHA4/SRyng3rDFSI/AAAAAAAAACU/K1YSNG-TGV8/s1600-h/captcha-beispiel.png"&gt;&lt;img dragover="true" style="cursor: pointer; width: 91px; height: 30px;" src="http://1.bp.blogspot.com/_Nv2UM3yBHA4/SRyng3rDFSI/AAAAAAAAACU/K1YSNG-TGV8/s400/captcha-beispiel.png" alt="" id="BLOGGER_PHOTO_ID_5268269847258797346" border="0" /&gt;&lt;/a&gt;, um Anfreifer fernzuhalten. Der gewiefte TYPO3-Installateur weiß was zu tun ist: Nehme die passende Extension, zum Beispiel '&lt;a href="http://typo3.org/extensions/repository/view/captcha/current/"&gt;captcha&lt;/a&gt;' und fertig. Tatsächlich? In diesem Fall leider nicht. Nichts zu sehen. Keinerlei Bild. Und dann ist er wieder da, der Moment, wo von Lernkurve nicht mehr die Rede ist. Eher befindet sich da eine Steilwand voraus, wenn nicht gar ein Überhang. Was kann man tun?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Ausrüstung: &lt;/span&gt;Systematische Analyse ist das Mittel der Wahl. Und um den Dingen wirklich auf den Grund gehen zu können braucht man vollen Zugriff auf den Server. Zu Test- und Entwicklungszwecken habe ich deshalb auch ein Ubuntu-Linux unter meinem Schreibtisch. In diesem Fall ist es 8.04, "Hardy Heron". Und da es nur lokal verfügbar ist, brauche ich den Zugriff nicht einzuschränken, um höhere Sicherheit zu erhalten. Im Gegenteil: Für Testzwecke sind eher liberale Einstellungen nützlich. So verwende ich auch einfach die vorhandene &lt;span dragover="true"  style="font-family:courier new;"&gt;/etc/php5/apache2/php.ini&lt;/span&gt;, wohl wissend, dass diese &lt;span style="font-style: italic;"&gt;so&lt;/span&gt; in einer Produktionsumgebung nicht verwendet werden darf. In der Minimalvariante ist es nicht nötig, einen lokalen Nameserver zu betreiben. Die Windows XP zum Beispiel schlägt Webadressen auch in der lokalen HOSTS-Datei &lt;span dragover="true"  style="font-family:courier new;"&gt;C:\WINDOWS\system32\drivers\etc\hosts&lt;/span&gt; nach, um die IP-Nummer herauszufinden. So genügt die Zeile&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;192.168.1.100 www.mylinux.lokal&lt;/span&gt;&lt;br /&gt;um http://www.mylinux.lokal als Server ansprechen zu können. Die IP-Nummer muss natürlich richtig gewählt sein. Ausgesprochen praktisch ist es, wenn man das Webverzeichnis zusätzlich auch über Dateifreigaben ansprechbar macht. So bindet der Linuxdienst &lt;a href="http://www.samba.org/"&gt;Samba&lt;/a&gt; Dateien ins Windowsnetz ein.&lt;br /&gt;&lt;br /&gt;&lt;span dragover="true" style="font-style: italic;"&gt;Dem Fehler auf der Spur:&lt;/span&gt; Ist meine TYPO3-Konfiguration überhaupt richtig? Wird 'captcha' überhaupt angesprochen? Fast alle Entwickler verwenden den &lt;a href="http://www.firefox-browser.de/"&gt;Firefox&lt;/a&gt; als Browser. So auch ich. Und Strg+U öffnet den Quelltext: Tatsächlich, ein Bild ist als &lt;span style="font-family:courier new;"&gt;&amp;lt;img src="&lt;/span&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;typo3conf/ext/captcha/captcha/captcha.php"&gt;&lt;/span&gt;&lt;/span&gt; eingebunden. Erscheint aber nicht. Auch nicht unter &lt;span dragover="true"  style="font-family:courier new;"&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;http://www.mylinux.lokal/typo3conf/ext/&lt;/span&gt;&lt;/span&gt;&lt;span dragover="true" class="attribute-value"  style="font-family:courier new;"&gt;captcha/captcha/captcha.php&lt;/span&gt;&lt;br /&gt;Schauen wir uns also &lt;span dragover="true"  style="font-family:courier new;"&gt;c&lt;/span&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;aptcha.php&lt;/span&gt; an. Hier und dort eine Zeile &lt;span dragover="true"  style="font-family:courier new;"&gt;echo 'hi';&lt;/span&gt; und &lt;span style="font-family:courier new;"&gt;echo 'ho';&lt;/span&gt; eingefügt und wir sehen, an welcher Stelle das Problem liegt. Bis zur Zeile&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;$rot = imagerotate($tmpi, 0, $back);&lt;/span&gt;&lt;br /&gt;geht alles gut, danach hören wir keinen Pieps mehr. Was ist so schlimm an '&lt;a href="http://de.php.net/manual/de/function.imagerotate.php"&gt;imagerotate&lt;/a&gt;'? Wenn es doch ansonsten funktioniert? Schauen wir doch mal in die PHP-Logdatei. Sollte doch unter &lt;span style="font-family:courier new;"&gt;/var/log/...&lt;/span&gt; liegen. Keine da. Also: Logfile in die &lt;span style="font-family:courier new;"&gt;php.ini&lt;/span&gt; eintragen und mit &lt;span style="font-family:courier new;"&gt;/etc/init.d/apache2 restart&lt;/span&gt; den Server neu starten. Und siehe da, &lt;a href="http://de.wikipedia.org/wiki/Gotcha"&gt;&lt;span style="font-weight: bold;"&gt;gotcha&lt;/span&gt;&lt;/a&gt;! Im nun neu auftauchenden PHP-Error-Log findet sich:&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;PHP Fatal error:  Call to undefined function imagerotate() in ...&lt;/span&gt;&lt;br /&gt;Undefined function? Warum gibt es 'imagerotate' nicht? Hier hilft nur &lt;a href="http://www.google.de/search?q=php+imagerotate+ubuntu"&gt;Googeln&lt;/a&gt;. Und siehe da: Jede Menge Treffer. Wir sind nicht allein. Aber jetzt heißt es 'aufgepasst' und den gesunden Menschenverstand eingeschaltet. Da gibt es viele Anleitungen, wie man sich die fehlende Funktionalität in sein Ubuntu-PHP wieder 'hineintricksen' kann. Aber genau das sollte man &lt;span style="font-weight: bold;"&gt;nicht&lt;/span&gt; tun. Die Ubuntu-Entwickler und mehr noch, bereits das Debian-Team haben absichtlich Funktionalitäten der GD-Lib ausgelassen. Sie waren aus Sicherheitsgründen dazu gezwungen. Also müssen wir damit leben. Was tun? Erneuter Blick in den &lt;span style="font-family:courier new;"&gt;captcha.php&lt;/span&gt;-Quelltext. Da gibt es noch eine Variante, die kein &lt;span style="font-family:courier new;"&gt;imageroate()&lt;/span&gt; verwendet und aktiv ist, wenn &lt;span style="font-family:courier new;"&gt;useTTF&lt;/span&gt; eingeschaltet ist. Und dieses lässt sich im TYPO3-Extensionmanager aktivieren:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Nv2UM3yBHA4/SR1otFdNSsI/AAAAAAAAACk/q286z1lXY0k/s1600-h/ext-mgr-captcha.png"&gt;&lt;img dragover="true" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 171px; height: 80px;" src="http://1.bp.blogspot.com/_Nv2UM3yBHA4/SR1otFdNSsI/AAAAAAAAACk/q286z1lXY0k/s400/ext-mgr-captcha.png" alt="" id="BLOGGER_PHOTO_ID_5268482262861433538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;und &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Nv2UM3yBHA4/SR1pDqEZKAI/AAAAAAAAACs/yESDcJSp23U/s1600-h/captcha-useTTF.png"&gt;&lt;img style="cursor: pointer; width: 205px; height: 110px;" src="http://3.bp.blogspot.com/_Nv2UM3yBHA4/SR1pDqEZKAI/AAAAAAAAACs/yESDcJSp23U/s400/captcha-useTTF.png" alt="" id="BLOGGER_PHOTO_ID_5268482650646587394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Und nun, siehe da: Das Captcha-Bild erscheint. Glück gehabt! Es gab nur diese eine 'imagerotate'-Klippe.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fazit und was lernen wir daraus?&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;1.&lt;/span&gt; Eine gute Testumgebung ist Gold wert. &lt;span style="font-weight: bold;"&gt;2.&lt;/span&gt; Raten, Googeln und Fragen in den Newsgruppen von &lt;a href="news://news.netfielders.de"&gt;&lt;span style="font-weight: bold;"&gt;news://news.netfielders.de&lt;/span&gt;&lt;/a&gt; hätten vielleicht niemals zum Ziel geführt. &lt;span style="font-weight: bold;"&gt;3.&lt;/span&gt; Ruhig, schrittweise und analytisch vorgehen. &lt;span style="font-weight: bold;"&gt;4.&lt;/span&gt; Debugtools einschalten und nutzen. &lt;span style="font-weight: bold;"&gt;5.&lt;/span&gt; Manches hat seinen Grund: Nicht leichtfertig vermeintliche Fehler 'reparieren', handelte es sich in unserem Fall doch um bewusste Entscheidungen ganzer Sicherheitsteams! &lt;span style="font-weight: bold;"&gt;6.&lt;/span&gt; Den eigenen Produktionsserver daraufhin überprüfen, ob sein PHP imagerotate enthält. Das wäre zwar praktisch, aber ein Sicherheitsproblem! &lt;span style="font-weight: bold;"&gt;7.&lt;/span&gt; Beim &lt;span style="font-family:courier new;"&gt;captcha&lt;/span&gt;-Einsatz &lt;span style="font-family:courier new;"&gt;useTTF &lt;/span&gt;einschalten. &lt;span style="font-weight: bold;"&gt;8.&lt;/span&gt; Beizeiten nach anderen Captcha-Extensions Ausschau halten, die diese Problematik vielleicht nicht haben. Etwa &lt;a href="http://typo3.org/extensions/repository/view/sr_freecap/current/"&gt;&lt;span style="font-family:courier new;"&gt;sr_freecap&lt;/span&gt;&lt;/a&gt;?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863061299598355274-1115180874617196560?l=mbless.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/1115180874617196560/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863061299598355274&amp;postID=1115180874617196560' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/1115180874617196560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/1115180874617196560'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/2008/11/kein-captcha-gotcha.html' title='Kein Captcha? Gotcha!'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SRykoL6tGOI/AAAAAAAAACM/rd-BXufbq2Y/s72-c/Typo3_logo_color-RGB-200x84.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863061299598355274.post-3705239602518238730</id><published>2008-08-15T01:30:00.000-07:00</published><updated>2008-08-15T02:10:09.447-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>SQL-Dump zerlegen</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://mbless.de/4us/s/python/ee8627b6/splitsql/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_Nv2UM3yBHA4/SKU_L4MwPmI/AAAAAAAAACE/FQ1xrK7sbIY/s400/splitsql.png" alt="" id="BLOGGER_PHOTO_ID_5234659615185059426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;SQL-Dumps kommen üblicherweise als Textfile daher. Und haben häufig die unangenehme Eigenschaft, riesig zu werden. Dieser Beitrag stellt ein kleines &lt;a href="http://mbless.de/4us/s/python/ee8627b6/splitsql/"&gt;Python-Script&lt;/a&gt; vor und zur Verfügung, mit dem sich der Dump einer MySQL-Datenbank in mehrere Dateien zerlegen lässt, die jeweils nur noch die Daten einer einzelnen Tabelle enthalten. Eine MySQL-Datenbank mit all ihren Tabellen lässt sich etwa so prima exportieren:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mysqldump --opt -h 127.0.0.1 -u DBUSER -pDBPASSWD DATABASE  &gt;dump.sql&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Was aber tun, wenn 'dump.sql' viel größer als gewünscht ist? Nun, zerlegen wir die Datei doch in kleinere Häppchen. Das lässt sich per Hand mit einem Editor bewältigen, ist dann aber schnell Sklavenarbeit und dazu noch fehleranfällig. Dann lieber ein Tool nehmen, dass diese Arbeit maschinell erledigt. Vermutlich gibt es dieses Tool bereits zuhauf - ich habe nicht danach gesucht. &lt;span style="font-style: italic;"&gt;Wer so ein Tool kennt&lt;/span&gt; möge mir doch eine Zeile schreiben.&lt;br /&gt;&lt;br /&gt;In meinem Fall hatte ich nicht die große Allround-Lösung im Sinn. Auch habe ich mich nicht damit beschäftigt, welche syntaktischen Klimmzüge das Programm da bei den Kommentaren im Dump hinterlässt. Vielmehr habe ich ein Tool geschrieben, dass mir genau die Arbeit abnimmt, die ich sonst per Hand gemacht hätte: Database-Dump nehmen, jeden Abschnitt daraus, der eine Tabelle enthält, in eine eigene Datei stecken, die 'tabellenname.sql' heißt, und dafür sorgen, dass auch hier die Kommentare am Anfang und am Ende der Datei wieder vorhanden sind.&lt;br /&gt;&lt;br /&gt;So ist &lt;a href="http://mbless.de/4us/s/python/ee8627b6/splitsql/"&gt;splitsql.py&lt;/a&gt; entstanden, ein &lt;a href="http://python.org/"&gt;Python&lt;/a&gt; Opensource Programm, das beliebig verwendet werden darf.  &lt;a href="http://mbless.de/4us/s/python/ee8627b6/splitsql/example/"&gt;Beispieldaten&lt;/a&gt; kann man sich hier anschauen. Was Spaß macht: Es lässt sich leicht modifizieren, und so ist es nicht schwer, ihm beizubringen, zusätzliche Informationen auszugeben, wie etwa die &lt;a href="http://mbless.de/4us/s/python/ee8627b6/splitsql/example/demo-dump.sql-TEMP/_import.sh"&gt;Vorlage für ein Shellscript&lt;/a&gt; oder &lt;a href="http://mbless.de/4us/s/python/ee8627b6/splitsql/example/demo-dump.sql-TEMP/_some-generated-info.tmp.txt"&gt;Texte&lt;/a&gt;, die man wieder in den Quelltext einbauen kann. Viel Spaß!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863061299598355274-3705239602518238730?l=mbless.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/3705239602518238730/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863061299598355274&amp;postID=3705239602518238730' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/3705239602518238730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/3705239602518238730'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/2008/08/sql-dump-zerlegen.html' title='SQL-Dump zerlegen'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Nv2UM3yBHA4/SKU_L4MwPmI/AAAAAAAAACE/FQ1xrK7sbIY/s72-c/splitsql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863061299598355274.post-8391315241633344071</id><published>2008-08-07T00:57:00.000-07:00</published><updated>2008-08-07T09:59:43.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>The One Line Webserver</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://python.org/"&gt;&lt;img dragover="true" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_Nv2UM3yBHA4/SJqrsrHaCmI/AAAAAAAAABY/CfDU07OQ_H4/s400/python-logo-149x148.png" alt="" id="BLOGGER_PHOTO_ID_5231682701120637538" border="0" /&gt;&lt;/a&gt; It can be so easy - once you know. A lot of people do some web development at home. Beginners reach a major frontier once they leave the terrain of pure (X)HTML and CSS. For instance dealing with AJAX in general requires a &lt;span style="font-style: italic;"&gt;web server&lt;/span&gt;. Mostly you'll find the advice to install one of those great all-in-one packages like &lt;a href="http://www.apachefriends.org/"&gt;XAMPP from apachefriends&lt;/a&gt; or to turn to Linux right away. And this is where you'll surely end if you follow your web developer career. But there may be a lot of reasons why you wouldn't want to follow this lane  and prefer an inobtrusive and small solution to start with.&lt;br /&gt;&lt;br /&gt;All right, here it comes. I'm talking of Windows here. But the solution is applicable to other operating systems as well (if it's needed there at all ...). My advice is to install Python on your machine. This is just a matter of a few clicks once you have grabbed the complete installer package from the &lt;a href="http://python.org/download/"&gt;download page of python.org&lt;/a&gt;. Currently version 2.5.2 is what you should choose. It will propose to install to C:\Python25 which you should do. Make sure that this folder is added to your path. Installing Python isn't a danger or risk. It doesn't bloat your system and can be easiely removed using the uninstaller. But you'll never feel the need to do so.&lt;br /&gt;&lt;br /&gt;Now create a folder as the root of your webserver and a subfolder where you put your documents. Let's say we now have ".../MyServer/htdocs". Create a file "MyServer/htdocs/helloworld.txt" with "Hello World!" as content. Open a command line window and navigate to the "MyServer/htdocs" folder. And one single command gets your web server on your local machine up and running:&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;&lt;br /&gt;C:\MyServer\htdocs&gt; python -m CGIHTTPServer&lt;/span&gt;&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;Serving HTTP on 0.0.0.0 port 8000 ...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WARNING:&lt;/span&gt; &lt;span dragover="true" style="color: rgb(255, 0, 0);"&gt;Do not start this server while you're connected to an untrustable net - like the internet - as it may e&lt;/span&gt;&lt;span dragover="true" style="color: rgb(255, 0, 0);"&gt;xpose your complete machine. Do local testing only!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What basically happens is that you start Python which will look for a python module CGIHTTPServer. The module will then be imported and as it finds out that it's running as a &lt;span style="font-style: italic;"&gt;main&lt;/span&gt; module it activates "a little test routine" which will run forever until you press CTRL+C and the next http-request is encountered. The "little test routine" in fact is a complete webserver with some abilities. Do the test:&lt;br /&gt;&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;http://localhost:8000/helloworld.txt&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;and "Hello World!" is what you should see in the browser. You've tasted blood and would like to try some serverside active scripting? That's easy. Add a second folder named 'htdocs/cgi-bin' and place a little text file called "helloworld.py" there. It contains a single line:&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;&lt;br /&gt;print "Hello World!"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So now you have:&lt;br /&gt;&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;MyWebserver/      &lt;/span&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 102, 102);"&gt;&lt;- just to organize everything&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;MyWebserver/htdocs&lt;/span&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;   &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 102, 102);"&gt;&lt;- your webspace! start server here.&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;MyWebserver/htdocs/cgi-bin&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;span style="color: rgb(51, 102, 102);"&gt;&lt;- place Python scripts here&lt;/span&gt;&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;MyWebserver/htdocs/helloworld.txt&lt;br /&gt;&lt;/span&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;MyWebserver/htdocs/cgi-bin/helloworld.py&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Now open this  URL in your browser:&lt;br /&gt;&lt;br /&gt;&lt;span dragover="true"  style="font-family:courier new;"&gt;http://localhost:8000/cgi-bin/helloworld.py&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You got this?&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJq_ia8-kkI/AAAAAAAAABo/LfANZFMs-30/s1600-h/helloworld.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJq_ia8-kkI/AAAAAAAAABo/LfANZFMs-30/s400/helloworld.png" alt="" id="BLOGGER_PHOTO_ID_5231704515215790658" border="0" /&gt;&lt;/a&gt;Congratulations!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://python.org/"&gt;Python&lt;/a&gt; will start helloworld.py as a CGI-script and direct all output to your web page. Amazing, isn't it? There won't be PHP and MySQL unless they already existed on your machine. But Python programmers will now have hundreds of ideas of how to inspect and extend the code. You aren't a Python programmer? &lt;a href="http://wiki.python.org/moin/BeginnersGuide"&gt;Well, become one!&lt;/a&gt; It's more than advisable!&lt;br /&gt;&lt;br /&gt;extra key words: "poor man's web server"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863061299598355274-8391315241633344071?l=mbless.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/8391315241633344071/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863061299598355274&amp;postID=8391315241633344071' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/8391315241633344071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/8391315241633344071'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/2008/08/one-line-webserver.html' title='The One Line Webserver'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Nv2UM3yBHA4/SJqrsrHaCmI/AAAAAAAAABY/CfDU07OQ_H4/s72-c/python-logo-149x148.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863061299598355274.post-6582710720343551109</id><published>2008-07-15T06:40:00.000-07:00</published><updated>2008-08-08T11:31:49.899-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='muenster'/><category scheme='http://www.blogger.com/atom/ns#' term='typo3'/><title type='text'>TYPO3: Voll im Thema</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.typo3ugms.de/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_Nv2UM3yBHA4/SHypIX1GSKI/AAAAAAAAABQ/SiP8Ow5hW68/s400/typo3-ug-ms.png" alt="" id="BLOGGER_PHOTO_ID_5223235629143705762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Zweiter Montag im Monat, es war wieder soweit: Die TYPO3-ug-muenster hat sich getroffen. Ich würde mal so sagen: Ein voller Erfolg. Trotz Ferienzeit sieben Leutchen da, nette Atmosphäre, und wie immer, selbstverständliche Neuigkeiten und neues Selbstverständliches. Das nennt man Anregung. Was der eine nicht weiß, ahnt zumindest der andere. Na gut, manchmal auch nicht, aber das liegt in der Natur der Sache. Die Website zum Thema: &lt;a href="http://www.typo3ugms.de/"&gt;typo3ugms.de&lt;/a&gt;. Wir haben eine eigene &lt;a href="http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-ug-muenster"&gt;Mailingliste&lt;/a&gt;, und was wir untereinander per Mail besprechen läuft hier durch. Dort kann man auch im &lt;a href="http://lists.netfielders.de/pipermail/typo3-ug-muenster/"&gt;Archiv&lt;/a&gt; nachlesen. Es ist eine Riesenvorteil, dass darin alle Infos gespeichert bleiben und nichts verloren geht. Ein prima Langzeitgedächtnis also. Wer mal schnell sehen will, was los ist, kann das auch &lt;a href="http://support.typo3.org/german-usergroups/muenster/"&gt;hier&lt;/a&gt; tun. Ich hoffe, diese &lt;a href="http://www.typo3.org/"&gt;typo3.org&lt;/a&gt;-Adresse bleibt.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tipp:&lt;/span&gt; Die Mailingliste ist auch als &lt;a href="http://de.wikipedia.org/wiki/Newsgroup"&gt;Newsgroup&lt;/a&gt; verfügbar! Und es ist am besten, sie mit einem Newsreader zu lesen. Der fragt nach dem Host-Namen des Newsservers, und die lautet: &lt;span style="font-style: italic;"&gt;news.netfielders.de&lt;/span&gt;. Wie das mit der Newsreader-Einstellung geht, findet man kompakt auf &lt;a href="http://news.individual.de/config.html"&gt;individual.de&lt;/a&gt;. Häufig benutzt wird Mozilla Thunderbird. Unter Windows empfiehlt sich der &lt;a href="http://www.forteinc.com/"&gt;Agent&lt;/a&gt;. Meine Erfahrung: Er ist sein Geld Wert! In der Variante als FreeAgent war er bis zur Version 3.x kostenlos und auch sehr gut nutzbar.&lt;br /&gt;&lt;br /&gt;Parallel bin ich auch in der Mailingliste eingetragen. So erhalte ich eine Mail, wann immer jemand etwas postet. Zum Lesen und Schreiben benutze ich dann wieder den Newsreader. Dann stimmt die Nachrichtenverkettung, und ich habe alle Nachrichten Newsreader vorrätig. Das ist besser als jede Websuche!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863061299598355274-6582710720343551109?l=mbless.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/6582710720343551109/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863061299598355274&amp;postID=6582710720343551109' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/6582710720343551109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/6582710720343551109'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/2008/07/typo3-voll-im-thema.html' title='TYPO3: Voll im Thema'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_Nv2UM3yBHA4/SHypIX1GSKI/AAAAAAAAABQ/SiP8Ow5hW68/s72-c/typo3-ug-ms.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863061299598355274.post-1913316677458533694</id><published>2008-07-13T02:27:00.000-07:00</published><updated>2008-07-15T01:52:00.689-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sicherheit'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Knoten in der DSL-Leitung oder was?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Nv2UM3yBHA4/SHpJCsJbyWI/AAAAAAAAAAk/xmi8WntSE58/s1600-h/knoten-in-der-leitung.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_Nv2UM3yBHA4/SHpJCsJbyWI/AAAAAAAAAAk/xmi8WntSE58/s400/knoten-in-der-leitung.png" alt="" id="BLOGGER_PHOTO_ID_5222567028448807266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Letzten lag bei meinem Provider fast einen Tag lang eine "Großstörung" vor und nichts ging mehr in Sachen DSL und Internet. Kein Wunder, dass ich den gleichen Verdacht hatte, als letzte Woche partout kein Datenpaket eintrudeln wollte. Diesmal war es jedoch anders: Der Router hatte sich eingewählt, und die Linux-Maschine schnurrte wie gewünscht. Dann fiels mir ein: Ach ja, gestern war Windows-Patchday. Einer Ahnung folgend: ZoneAlarm deaktiviert, und siehe da: Es ging wieder.&lt;br /&gt;&lt;br /&gt;Nett, (oder Selbstschutz), von meinem Provider kam eine Infomail, dass durch "Einspielen des neuesten Microsoft-Updates (&lt;a href="http://support.microsoft.com/kb/951748"&gt;KB951748)&lt;/a&gt; in Kombination mit dem Security-Programm ZoneAlarm" es zu Störungen beim Internetverkehr kommt. Na, das ist doch mal eine Info. Warten wir also ab, bis der &lt;a href="http://www.google.de/search?q=KB951748+zonealarm"&gt;Patch zum Patch da ist oder ZoneAlarm angepasst wurde&lt;/a&gt;, so dass sich beide wieder vertragen.&lt;br /&gt;&lt;br /&gt;Hhm, das ging ja schnell: Hier sind sie schon, &lt;a href="http://download.zonealarm.com/bin/free/pressReleases/2008/LossOfInternetAccessIssue.html"&gt;Aufklärung und Workaround&lt;/a&gt;. Noch besser: Jetzt auch in &lt;a href="http://download.zonealarm.com/bin/free/pressReleases/2008/LossOfInternetAccessIssue_de.html"&gt;deutscher Sprache&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863061299598355274-1913316677458533694?l=mbless.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/1913316677458533694/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863061299598355274&amp;postID=1913316677458533694' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/1913316677458533694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/1913316677458533694'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/2008/07/knoten-in-der-dsl-leitung-oder-was.html' title='Knoten in der DSL-Leitung oder was?'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_Nv2UM3yBHA4/SHpJCsJbyWI/AAAAAAAAAAk/xmi8WntSE58/s72-c/knoten-in-der-leitung.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863061299598355274.post-7358084622565881739</id><published>2008-07-10T19:51:00.000-07:00</published><updated>2008-07-15T07:53:37.660-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprache'/><category scheme='http://www.blogger.com/atom/ns#' term='Typografie'/><category scheme='http://www.blogger.com/atom/ns#' term='Unicode'/><title type='text'>Neues vom Eszett: Jetzt gibt's das S nicht nur scharf, sondern auch groß</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.utf8-zeichentabelle.de/unicode-utf8-table.pl?start=7680&amp;amp;utf8=-"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_Nv2UM3yBHA4/SHZPZZ9evjI/AAAAAAAAAAc/Y7Aeom5mWck/s400/Latin-Capital-Letter-Sharp-S.png" alt="" id="BLOGGER_PHOTO_ID_5221448115866746418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In meinem Ausweis steht Bleß. Aber auch Bless. Was gilt denn nun wann? Und längst nicht jeder auf der Welt weiß mit diesem "ß" etwas anzufangen. Was hat es mit diesem seltsamen Buchstaben auf sich? Schau nach: &lt;a href="http://de.wikipedia.org/wiki/%C3%9F"&gt;ß in Wikipedia&lt;/a&gt;. Seit 130 Jahren wird darüber diskutiert, ob es nicht auch eine Form dieses Buchstabens in großer Schreibweise, also in Versalien geben solle. Nun ist es soweit: In ISO-10646 und &lt;a href="http://www.unicode.org/versions/Unicode5.1.0/"&gt;Unicode 5.1&lt;/a&gt; ist er jetzt enthalten und somit technisch - als Zahlenwert - schon einmal definiert. U+1E9E ist sein Unicodewert (&lt;a href="http://de.wikipedia.org/wiki/Gro%C3%9Fes_%C3%9F"&gt;Wikipedia über das große ß&lt;/a&gt;). Bleibt die Frage, wie lange es dauern wird, bis die Schriftdesigner für dieses Symbol auch eine &lt;a href="http://de.wikipedia.org/wiki/Glyph"&gt;Glyphe&lt;/a&gt; finden, die sich ausreichend von ß,S,B unterscheidet. Und wie lange es dauern wird, bis diese dann Einzug in die Fontdateien hält. Zur Zeit ziehen da bei mir nur Fragezeichen auf - siehe Abbildung. Tipp: Ausgesprochen nützlich ist &lt;a href="http://www.utf8-zeichentabelle.de/"&gt;www.utf8-zeichentabelle.de&lt;/a&gt;. Diese Webanwendung hilft bei der Recherche im Lande Unicode.&lt;a href="http://www.utf8-zeichentabelle.de/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863061299598355274-7358084622565881739?l=mbless.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/7358084622565881739/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863061299598355274&amp;postID=7358084622565881739' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/7358084622565881739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/7358084622565881739'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/2008/07/neues-vom-eszett-das-s-nicht-nur-scharf.html' title='Neues vom Eszett: Jetzt gibt&apos;s das S nicht nur scharf, sondern auch groß'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_Nv2UM3yBHA4/SHZPZZ9evjI/AAAAAAAAAAc/Y7Aeom5mWck/s72-c/Latin-Capital-Letter-Sharp-S.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1863061299598355274.post-1966561936763546575</id><published>2008-07-09T14:07:00.000-07:00</published><updated>2008-07-10T10:54:02.149-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Alltag'/><title type='text'>Blogstart</title><content type='html'>Jetzt hat's also auch mich erwischt. Wie's aussieht, ist ein Leben ohne Permanentnotizen ja kaum noch führbar - zumindest, wenn man sich in der Infoflut der Informationstechnologien tummelt. Gehen wir's also an: Hier ist ein Blog. Der, die, das? Jedenfalls meins, meiner, meine! Mal sehen, was sich damit so treiben lässt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1863061299598355274-1966561936763546575?l=mbless.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mbless.blogspot.com/feeds/1966561936763546575/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1863061299598355274&amp;postID=1966561936763546575' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/1966561936763546575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1863061299598355274/posts/default/1966561936763546575'/><link rel='alternate' type='text/html' href='http://mbless.blogspot.com/2008/07/blogstart.html' title='Blogstart'/><author><name>mbless</name><uri>http://www.blogger.com/profile/02160477724005503331</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_Nv2UM3yBHA4/SJrF_qg11II/AAAAAAAAAB8/s6FC_IFl8I4/s1600-R/DSC04929.jpg'/></author><thr:total>0</thr:total></entry></feed>
