<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>netz-guru blog &#187; Webtechniken</title>
	<atom:link href="http://www.netz-guru.de/category/webtechniken/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.netz-guru.de</link>
	<description>Webtechniken, Sicherheit und Interessantes...</description>
	<lastBuildDate>Fri, 18 Jun 2010 16:17:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>E-Mail Encoder &#8211; mailto Links vor Spam-Crawlern schützen</title>
		<link>http://www.netz-guru.de/2010/06/18/e-mail-encoder-mailto-links-vor-spam-crawlern-schutzen/</link>
		<comments>http://www.netz-guru.de/2010/06/18/e-mail-encoder-mailto-links-vor-spam-crawlern-schutzen/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 16:17:45 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Sites and Blogs]]></category>
		<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[decimal]]></category>
		<category><![CDATA[dezimale html entities]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[email adresse schützen]]></category>
		<category><![CDATA[encoder]]></category>
		<category><![CDATA[htmlentities]]></category>
		<category><![CDATA[mailto]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=180</guid>
		<description><![CDATA[Weil es doch öfter mal vorkommt, dass man in Webseiten mailto Links einbauen möchte und man meist
vermeiden will, dass die E-Mail Adressen von Spam-Crawlern erfasst werden gibt es hier mehrere Möglichkeiten dem entgegenzuwirken.
Weit verbreitet scheint das verschlüsseln der Mail-Adresse mittels Java-Script. Dies hat jedoch den Nachteil, dass der Browser Java-Script aktiviert haben muss. Gutes Webdesign [...]]]></description>
			<content:encoded><![CDATA[<p>Weil es doch öfter mal vorkommt, dass man in Webseiten mailto Links einbauen möchte und man meist<br />
vermeiden will, dass die E-Mail Adressen von Spam-Crawlern erfasst werden gibt es hier mehrere Möglichkeiten dem entgegenzuwirken.</p>
<p>Weit verbreitet scheint das verschlüsseln der Mail-Adresse mittels Java-Script. Dies hat jedoch den Nachteil, dass der Browser Java-Script aktiviert haben muss. Gutes Webdesign sollte Java-Script nicht vorraussetzen. Man kann auch die E-Mail Adresse im mailto-Link durch dezimale HTML Entitäten darstellen, so dass diese im Browser ganz normal angezeigt werden und der mailto Link auch vom User benutzt werden kann, der E-Mail Harvester sieht jedoch nur HTML und kann daher die Adresse nicht parsen.</p>
<p>Den Encoder kann man <a href="/emailencoder/">hier</a> testen.</p>
<p>Hier die zugehörige PHP-Funktion:</p>
<p><code><br />
function spamschutz($email,$href = true) {<br />
 $returnemail=preg_replace( "/(.)/se", " '&#' . ord( '\\1' ) . ';' ", $email );<br />
 if ($href) {<br />
        return "<a href=\"mailto:$returnemail\">$returnemail</a>";<br />
 } else {<br />
 return $returnemail;<br />
 }</p>
<p>}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2010/06/18/e-mail-encoder-mailto-links-vor-spam-crawlern-schutzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL NDB Cluster 7.09a mit nur 2 Nodes (nicht 3!)</title>
		<link>http://www.netz-guru.de/2009/12/30/mysql-ndb-cluster-7-09a-mit-nur-2-nodes-nicht-3/</link>
		<comments>http://www.netz-guru.de/2009/12/30/mysql-ndb-cluster-7-09a-mit-nur-2-nodes-nicht-3/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 10:23:18 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Webtechniken]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=156</guid>
		<description><![CDATA[in der Dokumentation von mysql cluster wird immer darauf hingewiesen, dass man für ein redundantes Setup mindestens 3 Server benötigt: 2 Server für die NDB-Datenknoten und einen weiteren Server als separater Management-Server. Dies ist jedoch unschön, wenn man nur 2 physikalische Maschinen verwenden will/kann.
Mit etwas Konfigurationsarbeit und dem Linux VServer Patch (auf welchem auch die [...]]]></description>
			<content:encoded><![CDATA[<p>in der Dokumentation von mysql cluster wird immer darauf hingewiesen, dass man für ein redundantes Setup mindestens 3 Server benötigt: 2 Server für die NDB-Datenknoten und einen weiteren Server als separater Management-Server. Dies ist jedoch unschön, wenn man nur 2 physikalische Maschinen verwenden will/kann.</p>
<p>Mit etwas Konfigurationsarbeit und dem Linux VServer Patch (auf welchem auch die <a title="vlinux vserver bei vlinux.biz" href="http://vlinux.biz" target="_blank">Vserver bei vlinux.biz</a> laufen) lässt sich das Setup dennoch mit nur 2 Servern durchführen wobei auch ein Server komplett ausfallen kann, ohne dass der mysql cluster down ist oder crashed.</p>
<p>Man installiere ein Debian Lenny oder neuer, wähle entweder den bei Debian mitgelieferten VServer Kernel (linux-image-vserver-bigmem) oder baue seinen eigenen (z.B. <a title="http://www.linux-vserver.org" href="http://www.linux-vserver.org" target="_blank">2.6.31.7-vs2.3.0.36.27</a> ) auf jeweils beiden Systemen.</p>
<p>Dann legt man auf den Servern vier virtuelle Server an:</p>
<p>vserver sql0[1-4] build &#8211;context 700[0-3] &#8211;hostname sql0[1-4]-n sql0[1-4] &#8211;interface sql0[1-4]=eth0:192.168.0.10-14 -m debootstrap &#8212; -d lenny</p>
<p>Danach wie gehabt mysql ndb herunterladen und installieren (z.B. <a title="http://dev.mysql.com/downloads/cluster/" href="http://dev.mysql.com/downloads/cluster/" target="_blank">mysql-cluster-gpl-7.0.9-linux-i686-glibc23</a>) in /usr/local/ entpacken, und einen symlink auf /usr/local/mysql setzen.</p>
<p>Dann die Konfiguration (config.ini) wie folgt aufsetzen:</p>
<p>[NDBD DEFAULT]<br />
NoOfReplicas: 2</p>
<p>DataDir: /var/lib/mysql-cluster<br />
FileSystemPath: /var/lib/mysql-cluster</p>
<p># Data Memory, Index Memory, and String Memory</p>
<p>DataMemory: 900M<br />
IndexMemory: 300M<br />
BackupMemory: 128M</p>
<p>MaxNoOfConcurrentOperations=100000</p>
<p>StringMemory=25<br />
MaxNoOfTables=4096<br />
MaxNoOfOrderedIndexes=2048<br />
MaxNoOfUniqueHashIndexes=512<br />
MaxNoOfAttributes=24576</p>
<p>TimeBetweenLocalCheckpoints=20<br />
TimeBetweenGlobalCheckpoints=1000<br />
TimeBetweenEpochs=100</p>
<p>MemReportFrequency=30<br />
BackupReportFrequency=10</p>
<p>### Params for setting logging<br />
LogLevelStartup=15<br />
LogLevelShutdown=15<br />
LogLevelCheckpoint=8<br />
LogLevelNodeRestart=15</p>
<p>### Params for increasing Disk throughput<br />
BackupMaxWriteSize=1M<br />
BackupDataBufferSize=16M<br />
BackupLogBufferSize=4M</p>
<p>[MGM DEFAULT]<br />
PortNumber: 1186<br />
DataDir: /var/lib/mysql-cluster</p>
<p>[NDB_MGMD]<br />
Id:1<br />
HostName: sql01</p>
<p>[NDB_MGMD]<br />
Id:2<br />
HostName: sql02</p>
<p>[NDB_MGMD]<br />
Id:3<br />
HostName: sql03</p>
<p>[NDB_MGMD]<br />
Id:4<br />
HostName: sql04</p>
<p>[NDBD]<br />
Id:5<br />
HostName: sql01</p>
<p>[NDBD]<br />
Id:6<br />
HostName: sql02</p>
<p>[NDBD]<br />
Id:7<br />
HostName: sql03</p>
<p>[NDBD]<br />
Id:8<br />
HostName: sql04</p>
<p>[API]<br />
Id:9<br />
HostName: sql01</p>
<p>[API]<br />
Id:10<br />
HostName: sql02</p>
<p>Nun die Management-Knoten auf allen vier VServern starten / initialisieren. Dazu in /usr/local/mysql</p>
<p>ndb_mgmd &#8211;initial -f config.ini</p>
<p>ausführen, anschliessend die 4 ndb Knoten starten (ndbd &#8211;initial)</p>
<p>Für die API Nodes natürlich noch mit ./scripts/mysql_install_db die mysql Datenbanken anlegen und anschliessend mit chmod mysql.mysql data -R die Rechte passend setzen.</p>
<p>Anschliessend sollte man mit ndb_mgm =&gt; show folgenden Output erhalten:</p>
<p>Cluster Configuration<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
[ndbd(NDB)]     4 node(s)<br />
id=5    @192.168.0.10  (mysql-5.1.39 ndb-7.0.9, Nodegroup: 0)<br />
id=6    @192.168.0.12  (mysql-5.1.39 ndb-7.0.9, Nodegroup: 0, Master)<br />
id=7    @192.168.0.11  (mysql-5.1.39 ndb-7.0.9, Nodegroup: 1)<br />
id=8    @192.168.0.13  (mysql-5.1.39 ndb-7.0.9, Nodegroup: 1)</p>
<p>[ndb_mgmd(MGM)] 4 node(s)<br />
id=1    @192.168.0.10  (mysql-5.1.39 ndb-7.0.9)<br />
id=2    @192.168.0.12  (mysql-5.1.39 ndb-7.0.9)<br />
id=3    @192.168.0.11  (mysql-5.1.39 ndb-7.0.9)<br />
id=4    @192.168.0.13  (mysql-5.1.39 ndb-7.0.9)</p>
<p>[mysqld(API)]   2 node(s)<br />
id=9    @192.168.0.10  (mysql-5.1.39 ndb-7.0.9)<br />
id=10   @192.168.0.12  (mysql-5.1.39 ndb-7.0.9)</p>
<p>Nun sollte jeweils ein ndbd einer Nodegroup (0 und 1) auf einem physikalschen Server liegen, d.h. fällt ein Server aus, so sind immer noch mind. ein ndbd aus der jeweiligen Nodegroup verfügbar und der Cluster läuft weiterhin problemfrei.</p>
<p>Natürlich habe ich vorrausgesetzt, dass die Installation soweit fertig gestellt ist, d.h. mysql user angelegt, Datenverzeichnis angelegt (/var/lib/mysql-cluster &#8211; kann auch anders sein..) wurde etc. und in der my.cnf die Einträge für ndb gemacht wurden:</p>
<p>[mysql_cluster]<br />
ndb-connectstring=sql01</p>
<p>[ndb_mgmd]<br />
config-file=/usr/local/mysql/config.ini</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2009/12/30/mysql-ndb-cluster-7-09a-mit-nur-2-nodes-nicht-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP IPv6 ip2long und long2ip Funktionen</title>
		<link>http://www.netz-guru.de/2009/11/07/php-ipv6-ip2long-und-long2ip-funktionen/</link>
		<comments>http://www.netz-guru.de/2009/11/07/php-ipv6-ip2long-und-long2ip-funktionen/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 14:03:50 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[ip2long]]></category>
		<category><![CDATA[ip2long6]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[long2ip]]></category>
		<category><![CDATA[long2ip6]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=144</guid>
		<description><![CDATA[php bietet aktuell ip2long() und long2ip() nur für IPv4 an, für IPv6 gibt es aktuell soweit ich weiss noch keine native Funktionen, deshalb hier meine zwei Funktionen um ip2long und long2ip auch für IPv6 zu verwenden &#8211; diese Funktionen benötigen die php gmp-lib, unter Debian: apt-get install php5-gmp:
$ipv6 = &#8220;2001:4860:a005::68&#8243;;
function ip2long6($ipv6) {
$ip_n = inet_pton($ipv6);
$bits = [...]]]></description>
			<content:encoded><![CDATA[<p>php bietet aktuell ip2long() und long2ip() nur für IPv4 an, für IPv6 gibt es aktuell soweit ich weiss noch keine native Funktionen, deshalb hier meine zwei Funktionen um ip2long und long2ip auch für IPv6 zu verwenden &#8211; diese Funktionen benötigen die php gmp-lib, unter Debian: apt-get install php5-gmp:</p>
<p>$ipv6 = &#8220;2001:4860:a005::68&#8243;;<br />
function ip2long6($ipv6) {<br />
$ip_n = inet_pton($ipv6);<br />
$bits = 15; // 16 x 8 bit = 128bit<br />
while ($bits &gt;= 0) {<br />
$bin = sprintf(&#8220;%08b&#8221;,(ord($ip_n[$bits])));<br />
$ipv6long = $bin.$ipv6long;<br />
$bits&#8211;;<br />
}<br />
return gmp_strval(gmp_init($ipv6long,2),10);<br />
}</p>
<p>function long2ip6($ipv6long) {</p>
<p>$bin = gmp_strval(gmp_init($ipv6long,10),2);<br />
if (strlen($bin) &lt; 128) {<br />
$pad = 128 &#8211; strlen($bin);<br />
for ($i = 1; $i &lt;= $pad; $i++) {<br />
$bin = &#8220;0&#8243;.$bin;<br />
}<br />
}<br />
$bits = 0;<br />
while ($bits &lt;= 7) {<br />
$bin_part = substr($bin,($bits*16),16);<br />
$ipv6 .= dechex(bindec($bin_part)).&#8221;:&#8221;;<br />
$bits++;<br />
}<br />
// compress</p>
<p>return inet_ntop(inet_pton(substr($ipv6,0,-1)));<br />
}</p>
<p>print $ipv6long =  ip2long6($ipv6).&#8221;\n&#8221;;<br />
print $ipv6 = long2ip6($ipv6long).&#8221;\n&#8221;;</p>
<p>Ergebnis:</p>
<p>42541956150894553250710573749450571880<br />
2001:4860:a005::68</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2009/11/07/php-ipv6-ip2long-und-long2ip-funktionen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Typo3 4.2.8 und PHP5.3 Kompatibilitäts-Patch</title>
		<link>http://www.netz-guru.de/2009/07/09/typo3-428-und-php53-kompatibilitats-patch/</link>
		<comments>http://www.netz-guru.de/2009/07/09/typo3-428-und-php53-kompatibilitats-patch/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 17:18:31 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[4.2.8]]></category>
		<category><![CDATA[5.3]]></category>
		<category><![CDATA[compat]]></category>
		<category><![CDATA[depracted function]]></category>
		<category><![CDATA[kompatibilität]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=131</guid>
		<description><![CDATA[Heute hatte ich mal etwas Zeit über, und konnte mich einem weiteren kleinen Problem welches aus dem Upgrade auf PHP5.3 resultiert widmen. Einige Funktionen sind bei PHP5.3 nicht mehr verfügbar, oder werden mit PHP6.0 nicht mehr unterstüzt. Auf der php Webseite gibt es eine Liste aller veralteten Funktionen.
In Typo3 4.3.0alpha3 ist davon zwar Einiges, wenn [...]]]></description>
			<content:encoded><![CDATA[<p>Heute hatte ich mal etwas Zeit über, und konnte mich einem weiteren kleinen Problem welches aus dem Upgrade auf PHP5.3 resultiert widmen. Einige Funktionen sind bei PHP5.3 nicht mehr verfügbar, oder werden mit PHP6.0 nicht mehr unterstüzt. Auf der php Webseite gibt es eine <a href="http://us2.php.net/manual/en/migration53.deprecated.php" target="_blank">Liste aller veralteten Funktionen</a>.</p>
<p>In Typo3 4.3.0alpha3 ist davon zwar Einiges, wenn nicht sogar Alles behoben, im aktuellen Stable 4.2.8 gibt es jedoch eine Menge Probleme, wenn man auf PHP5.3 umstellt. Deshalb hier der von mir erstellte Patch für typo3 4.2.8 mit PHP5.3</p>
<p><a href="http://www.netz-guru.de/wp-content/uploads/2009/07/typo3-428-php53-compatpatch.txt">typo3-4.2.8-php5.3-compat-patch</a></p>
<p>Falls jemand wider Erwarten einen Fehler findet und mir mitteilt, so werde ich den neuen Patch ebenfalls hier veröffentlichen.</p>
<p>Einen komplett gepatchten source gibt es hier zum download, da viele User nicht wissen wie man mit patch umgeht:</p>
<p><a href="http://www.netz-guru.de/wp-content/uploads/2009/07/typo3_src-4.2.8-compat-patched-php5.3.tgz">http://www.netz-guru.de/wp-content/uploads/2009/07/typo3_src-4.2.8-compat-patched-php5.3.tgz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2009/07/09/typo3-428-und-php53-kompatibilitats-patch/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>XTC Xt-Commerce Fix für Multihomed Mailserver</title>
		<link>http://www.netz-guru.de/2009/04/06/xtc-xt-commerce-fix-fur-multihomed-mailserver/</link>
		<comments>http://www.netz-guru.de/2009/04/06/xtc-xt-commerce-fix-fur-multihomed-mailserver/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 09:00:45 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Usefull Things]]></category>
		<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[class smtp]]></category>
		<category><![CDATA[cluster server]]></category>
		<category><![CDATA[mail cluster]]></category>
		<category><![CDATA[xt-commerce]]></category>
		<category><![CDATA[xtc]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=104</guid>
		<description><![CDATA[Bei vielen Shop-Systemen wird XT-Commerce eingesetzt, da es vielseitig und flexibel ist um den meisten Anforderungen gerecht zu werden. Will man XTC jedoch in einer Cluster-Umgebung einsetzen, und hat einen Mailserver-Cluster zur Verfügung, gibt es ein Problem sobald XTC versucht, einen Connect zu einem Mailserver aufzubauen, der gerade nicht erreichbar ist. Obwohl weitere Server des [...]]]></description>
			<content:encoded><![CDATA[<p>Bei vielen Shop-Systemen wird XT-Commerce eingesetzt, da es vielseitig und flexibel ist um den meisten Anforderungen gerecht zu werden. Will man XTC jedoch in einer Cluster-Umgebung einsetzen, und hat einen Mailserver-Cluster zur Verfügung, gibt es ein Problem sobald XTC versucht, einen Connect zu einem Mailserver aufzubauen, der gerade nicht erreichbar ist. Obwohl weitere Server des Mailserver-Clusters verfügbar sind, gibt XTC nach einmaligem Versuch auf.</p>
<p>Hier ein kleiner Fix für XTC, damit zu einem Hostname alle verfügbaren IP-Adressen zum versenden von Mail durchprobiert werden:</p>
<p>In Zeile 106 in</p>
<pre>/includes/classes/class.smtp.php</pre>
<p>einfügen:</p>
<pre>		// retry connections
<span class="moz-txt-citetags"> </span>		$hosts = gethostbynamel($host);
<span class="moz-txt-citetags"> </span>		while ((empty($this-&gt;smtp_conn)) &amp;&amp; (count($hosts) &gt; 0)) {
<span class="moz-txt-citetags"> </span>       	$this-&gt;smtp_conn = fsockopen(array_pop($hosts), #<span class="moz-txt-citetags"> </span>server
<span class="moz-txt-citetags"> </span>                                     $port,    # the port to use
<span class="moz-txt-citetags"> </span>                                     $errno,   # error number if any
<span class="moz-txt-citetags"> </span>                                     $errstr,  # error message if any
<span class="moz-txt-citetags"> </span>                                     $tval);   # give up after ? secs
<span class="moz-txt-citetags"> </span>		}</pre>
<p>Damit versucht nun XTC mehrmals Mails zuzustellen, wenn der erstmalige Connect zu einem MTA fehlschlägt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2009/04/06/xtc-xt-commerce-fix-fur-multihomed-mailserver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Relaunch www.smart-weblications.de</title>
		<link>http://www.netz-guru.de/2009/03/05/relaunch-wwwsmart-weblicationsde/</link>
		<comments>http://www.netz-guru.de/2009/03/05/relaunch-wwwsmart-weblicationsde/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 10:41:44 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[redesign]]></category>
		<category><![CDATA[relaunch]]></category>
		<category><![CDATA[smart weblications]]></category>
		<category><![CDATA[webseite]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=88</guid>
		<description><![CDATA[Wieder mal ist ein Jahr vergangen, deshalb habe ich www.smart-weblications.de optisch etwas aufgepeppt. Wurde aber auch langsam Zeit, denn das alte Design hatte keine fest eingestellte Breite und sah daher auf 16:9 Displays im Vollbild etwas komisch aus. Weiterhin wurde der Domainrobot etwas überarbeitet und einige Bugs gefixt.
]]></description>
			<content:encoded><![CDATA[<p>Wieder mal ist ein Jahr vergangen, deshalb habe ich <a href="http://www.smart-weblications.de" target="_blank">www.smart-weblications.de</a> optisch etwas aufgepeppt. Wurde aber auch langsam Zeit, denn das alte Design hatte keine fest eingestellte Breite und sah daher auf 16:9 Displays im Vollbild etwas komisch aus. Weiterhin wurde der Domainrobot etwas überarbeitet und einige Bugs gefixt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2009/03/05/relaunch-wwwsmart-weblicationsde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Verteiltes Dateisystem GlusterFS</title>
		<link>http://www.netz-guru.de/2009/01/15/clusterdateisystem-glusterfs/</link>
		<comments>http://www.netz-guru.de/2009/01/15/clusterdateisystem-glusterfs/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 11:39:30 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Usefull Things]]></category>
		<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[clusterfs]]></category>
		<category><![CDATA[distributed filesystem]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[glusterfs]]></category>
		<category><![CDATA[verteiltes dateisystem]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=65</guid>
		<description><![CDATA[Durch den Post vom vom 12.01.2009 / http://www.netz-guru.de/2009/01/12/die-ultimative-e-mail-losung-the-ultimate-e-mail-solution/ und die Kommentare darauf angeregt, habe ich versucht das gleiche Setup auch ohne dbmail zu versuchen. Sirko hatte in seinem Kommentar erwähnt, dass man mit einem verteilten Filesystem auch so einen Mailcluster betreiben kann. Bis zu diesem Zeitpunkt war mir eigentlich nur DRBD als einziges Filesystem bekannt, [...]]]></description>
			<content:encoded><![CDATA[<p>Durch den Post vom vom 12.01.2009 / <a href="http://www.netz-guru.de/2009/01/12/die-ultimative-e-mail-losung-the-ultimate-e-mail-solution/" target="_blank">http://www.netz-guru.de/2009/01/12/die-ultimative-e-mail-losung-the-ultimate-e-mail-solution/</a> und die Kommentare darauf angeregt, habe ich versucht das gleiche Setup auch ohne dbmail zu versuchen. <a href="http://www.datenklause.de/blog/" target="_blank">Sirko</a> hatte in seinem Kommentar erwähnt, dass man mit einem verteilten Filesystem auch so einen Mailcluster betreiben kann. Bis zu diesem Zeitpunkt war mir eigentlich nur DRBD als einziges Filesystem bekannt, welches maximal 2 Nodes zu einer Art Netzwerk-RAID1 verbindet.</p>
<p>Gänzlich unbekannt war mir bis heute jedoch GlusterFS, welches ebenfalls ein verteiltes Filesystem über das fuse-Modul bereitstellt. Hier hat man jedoch keine Limitierung auf max. 2 Nodes. GlusterFS bietet Automatic File Replication auch über mehr als 2 Nodes. Weiterhin kann man mit Unify mehrere RAID1-Knoten zu einem einzigen FS zusammenfassen. GlusterFS bietet noch mehr Möglichkeiten, hier mal ein Überblick:</p>
<ul>
<li> <strong><a title="NFS Like Standalone Storage Server" href="http://www.gluster.org/docs/index.php/NFS_Like_Standalone_Storage_Server">Standalone Storage (NFS Like)</a></strong></li>
<li> <strong><a title="Hash Across Four Storage Servers" href="http://www.gluster.org/docs/index.php/Hash_Across_Four_Storage_Servers">Distributed Storage</a></strong></li>
</ul>
<ul>
<li> <strong><a title="Automatic File Replication (Mirror) across Two Storage Servers" href="http://www.gluster.org/docs/index.php/Automatic_File_Replication_%28Mirror%29_across_Two_Storage_Servers">Replicated Storage</a></strong></li>
<li> <strong><a title="Mixing DHT and AFR" href="http://www.gluster.org/docs/index.php/Mixing_DHT_and_AFR">Distributed Replicated Storage</a></strong></li>
</ul>
<ul>
<li> <strong><a title="Striping Across Four Storage Servers" href="http://www.gluster.org/docs/index.php/Striping_Across_Four_Storage_Servers">Striped Storage</a></strong></li>
</ul>
<ul>
<li> <strong><a title="NUFA with single process" href="http://www.gluster.org/docs/index.php/NUFA_with_single_process">Cloud/HPC Storage</a></strong></li>
</ul>
<ul>
<li> <strong><a title="NFS Like Standalone Storage Server-2" href="http://www.gluster.org/docs/index.php/NFS_Like_Standalone_Storage_Server-2">NFS Like Standalone Storage Server-2</a></strong></li>
<li> <strong><a title="Aggregating Three Storage Servers with Unify" href="http://www.gluster.org/docs/index.php/Aggregating_Three_Storage_Servers_with_Unify">Aggregating Three Storage Servers with Unify</a></strong></li>
</ul>
<p>Mit einem Setup wie unter &#8220;Distributed Replicated Storage&#8221; beschrieben, lässt sich so ein gemeinsammes /var/spool für die Mailserver generieren. Die Konfiguration der Server kann man dann entweder in einer Datenbank oder LDAP ablegen, oder man verwendet die vom MTA vorgegebenen Konfig-Files, diese kann man auch auf einem verteiltem Filesystem speichern.</p>
<p>Den Source für GlusterFS kann man sich hier downloaden:</p>
<p><a href="http://europe.gluster.org/glusterfs/2.0/LATEST/" target="_blank">http://europe.gluster.org/glusterfs/2.0/LATEST/</a></p>
<p>Die Entwickler empfehlen ausserdem ein gepatchtes fuse-Kernel-Modul, welches GlusterFS erheblich beschleunigen soll:</p>
<p><a href="http://europe.gluster.org/glusterfs/fuse/" target="_blank">http://europe.gluster.org/glusterfs/fuse/</a></p>
<p>Das Setup an sich ist relativ einfach. Unter Debian Etch fuse-Source entpacken, ./configure &#8211;enable-kernel-module &#8211;prefix=/usr  &amp;&amp; make &amp;&amp; make install &amp;&amp; ldconfig</p>
<p>Dann glusterfs entpacken und ./configure &#8211;with-fuse=/usr/src/pfadzufuser &amp;&amp;  make &amp;&amp; make install</p>
<p>Konfigurationsbeispiele gibt es unter www.gluster.org. Es sind auch kombinierte AFR,Stripe,Unify Filesysteme möglich, allerdings ist das Setup dann etwas komplizierter.</p>
<p>Weiterhin bietet GlusterFS neben normalem TCP/IP  auch direkte Verbindung über Infini-Band an. Auch redundante Verbindungen zur Storage werden unterstützt. Die Maximale Größe des Filesystems kann bis zu mehrere Petabytes betragen.</p>
<p>Möchte man viele kleine Dateien in glusterfs speichern, so kann glusterfs diese im DBD Berkeley DB Format speichern.</p>
<p>GlusterFS ist unter der GNU GPL v3 lizenziert.</p>
<p>Weitere Infos zu <a href="http://de.wikipedia.org/wiki/GlusterFS" target="_blank">GlusterFS </a> gibts auch bei der <a href="http://de.wikipedia.org/wiki/Wikipedia:Hauptseite" target="_blank">Wikipedia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2009/01/15/clusterdateisystem-glusterfs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Klasse für www.online-mahnantrag.de</title>
		<link>http://www.netz-guru.de/2008/11/04/php-klasse-fur-wwwonline-mahnantragde/</link>
		<comments>http://www.netz-guru.de/2008/11/04/php-klasse-fur-wwwonline-mahnantragde/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 17:36:25 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[klasse]]></category>
		<category><![CDATA[mahnantrag]]></category>
		<category><![CDATA[mahnbescheid]]></category>
		<category><![CDATA[online mahnbescheid]]></category>
		<category><![CDATA[online mahnverfahren]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=40</guid>
		<description><![CDATA[Mahnbescheide automatisiert erstellen
Heute habe ich eine PHP-Klasse für www.online-mahnantrag.de geschrieben. Mit dieser Klasse ist es möglich, die Barcode PDF Anträge direkt aus einem PHP Skript heraus zu erstellen, und so zum Beispiel ein automatisiertes Mahnwesen zu erweitern, so dass nach Ablauf der letzten Mahnung automatisch das gerichtliche Mahnverfahren eröffnet werden kann.
Welche Verfahren werden angeboten?
Unter www.online-mahnantrag.de [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Mahnbescheide automatisiert erstellen</strong></p>
<p>Heute habe ich eine PHP-Klasse für www.online-mahnantrag.de geschrieben. Mit dieser Klasse ist es möglich, die Barcode PDF Anträge direkt aus einem PHP Skript heraus zu erstellen, und so zum Beispiel ein automatisiertes Mahnwesen zu erweitern, so dass nach Ablauf der letzten Mahnung automatisch das gerichtliche Mahnverfahren eröffnet werden kann.</p>
<p><strong>Welche Verfahren werden angeboten?</strong></p>
<p>Unter www.online-mahnantrag.de gibt es derzeit zwei Möglichkeiten, ein Mahnverfahren zu starten. Zum einen gibt es die schriftliche Version, d.h. man füllt online alle benötigten Felder aus, und erstellt abschließend einen Mahnbescheid mit maschinenlesbarem Barcode. Die zweite Alternative ist die Übermittlung der Daten mittels elektronischer Signatur. Die Klasse unterstüzt derzeit nur das Barcode Verfahren, da dies mir persönlich ausreicht und ich selbst nicht über eine digitale Signatur und entsprechendes Equipment verfüge. Wenn man die Funktion gen_pdf() der Klasse aufruft, übermittelt diese alle erforderlichen Daten an www.online-mahnantrag.de und liefert als Ergebnis das fertige Barcode-PDF zurück.</p>
<p><strong>Einen neuen Mahnbescheid mit der Klasse erstellen</strong></p>
<p>mit der Klasse lässt sich dann relativ einfach so ein Barcode-Antrag erstellen, hier mal ein Code-Beispiel:</p>
<p><span id="more-40"></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;">$antragsteller</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"> = array (</span></span></span></p>
<p style="0cm;"><span style="#ff0000;"><span style="Courier New,monospace;"><span style="x-small;">3</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">array (</span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Smart Weblications GmbH&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">),</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Martinsberger Str. 1&#8243;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;95119&#8243;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Naila&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;D&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">);</span></span></span></p>
<p style="0cm;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;">$antragsteller_gv</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"> = array (</span></span></span></p>
<p style="0cm;"><span style="#ff0000;"><span style="Courier New,monospace;"><span style="x-small;">52</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Florian Wiessner&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Martinsberger Str. 1&#8243;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;95119&#8243;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;Naila&#8221;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">,</span></span></span></p>
<p style="0cm;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;D&#8221;</span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">);</span></span></span></p>
<p style="0cm;">
<p style="0cm;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;">$sql</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"> = </span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;select * from kunden where kunde=&#8217;</span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$customer_id</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8216;&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$res</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = mysql_query(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$sql</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$db</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = mysql_fetch_assoc(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$res</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>foreach</strong></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> (</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>as</strong></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$k</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> =&gt; </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$v</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">) {</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> ${</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$k</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">} = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$v</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="normal;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">}</span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$antraggegner</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = array(</span></span></span></span></p>
<p style="0cm;"><span style="#ff0000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">1</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$vorname</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$name</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$strasse</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$plz</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$ort</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span></p>
<p style="normal;"><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;">&#8220;D&#8221;</span></span></span></p>
<p style="normal;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">);</span></span></span></p>
<p style="normal;">
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>new</strong></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> Mahnbescheid();</span></span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;bundesland = </span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;BAY&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;antragsart = </span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;barcode&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;antragsteller = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$antragsteller</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;antragsteller_gv = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$antragsteller_gv</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;antraggegner = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$antraggegner</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$sql</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;select * from bills where customer_id=&#8217;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$customer_id</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8216; and bill_status&gt;=1 and bill_payed=&#8217;0000-00-00 00:00:00&#8242;&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$res</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = mysql_query(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$sql</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$db</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>while</strong></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> (</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = mysql_fetch_array(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$res</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">)) {</span></span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_id</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">[</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">"bill_id"</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">];</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_created</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$dat</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">[</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">"bill_created"</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">];</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_value</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">=get_bill_totalvalue(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_id</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> list(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$von</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$zeit</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">) = explode(</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8221; &#8220;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_created</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> list(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$y</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$m</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$d</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">) = explode(</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;-&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$von</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$von</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$d</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">.</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$m</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">.</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><strong>$y</strong></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_value</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = preg_replace(</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;/\./&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;,&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_value</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">);</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$anspruch</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">[] = array(</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_id</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$von</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#0000f0;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">&#8220;&#8221;</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">,</span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$bill_value</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">); </span></span></span></span></p>
<p style="normal;">
<p style="normal;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;">}</span></span></span></p>
<p style="normal;">
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;anspruch = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$anspruch</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;"><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$pdf</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;"> = </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$mb</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">-&gt;gen_pdf();</span></span></span></span></p>
<p style="0cm;"><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">print </span></span></span></span><span style="#800000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">$pdf</span></span></span></span><span style="#000000;"><span style="Courier New,monospace;"><span style="x-small;"><span style="normal;">;</span></span></span></span></p>
<p style="0cm;">
<p>Mit geringem Aufwand und sofern man eben Kundendaten und Rechnungen bereits in einer Datenbank hat, lässt sich damit dann das begehrte PDF erstellen und weiterverarbeiten. Jetzt hat man ebenfalls die Möglichkeit, via Cronjob zeitgesteuert nach säumigen Zahlern zu suchen und diese automatisiert in das gerichtliche Mahnverfahren zu überführen. Auf Wunsch und gegen eine geringe Gebühr gebe ich gerne den Code weiter oder binde die Klasse in vorhandene Umgebungen ein.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2008/11/04/php-klasse-fur-wwwonline-mahnantragde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto convert mp3-Streams to aac+ Streams in Linux</title>
		<link>http://www.netz-guru.de/2008/08/06/howto-convert-mp3-streams-to-aac-streams-in-linux/</link>
		<comments>http://www.netz-guru.de/2008/08/06/howto-convert-mp3-streams-to-aac-streams-in-linux/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 08:08:47 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[aac+]]></category>
		<category><![CDATA[aac+ stream]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[convert aac]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shoutcast]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[transcoder]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=36</guid>
		<description><![CDATA[Was ist der Unterschied zwischen aac+ und mp3?
MPEG-4 High Efficiency Advanced Audio Coding (kurz HE-AAC), auch AAC+ v1 genannt, ist ein lizenzpflichtiger Audio-Codec, der Moving Picture Experts Group (MPEG). Der Standard liefert bei niedrigen Bitraten vergleichsweise gute Ergebnisse und eignet sich daher besonders für Live-Streams.

Im Verhältnis zu mp3 bietet aac+ auch bei niedrigen Bitraten (32kbit) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Was ist der Unterschied zwischen aac+ und mp3?</strong></p>
<blockquote><p><strong>MPEG-4 High Efficiency Advanced Audio Coding</strong> (kurz <em>HE-AAC</em>), auch <strong>AAC+ v1</strong> genannt, ist ein lizenzpflichtiger <a title="Codec" href="http://de.wikipedia.org/wiki/Codec#Audiocodecs">Audio-Codec</a>, der <a title="Moving Picture Experts Group" href="http://de.wikipedia.org/wiki/Moving_Picture_Experts_Group">Moving Picture Experts Group</a> (MPEG). Der Standard liefert bei niedrigen Bitraten vergleichsweise gute Ergebnisse und eignet sich daher besonders für <a title="Streaming Audio" href="http://de.wikipedia.org/wiki/Streaming_Audio">Live-Streams</a>.</p></blockquote>
<p><span id="more-36"></span><br />
Im Verhältnis zu mp3 bietet aac+ auch bei niedrigen Bitraten (32kbit) eine akzeptable gute Qualität. Allerdings ist aac+ ein lizenzplfichtiger Audio-Codec und für Linux gibt es dafür nicht wirklich viel Software, welche dieses Format encoden können. Decoder gibt es wie Sand am Meer, aber wenn man eben in aac+ Streamen möchte und die Daten als mp3 vorliegen, so braucht man dazu einen Encoder der die Daten von mp3 nach aac+ konvertiert.<br />
<!--adsense-block--><br />
<strong>Motivation</strong></p>
<p>Ein <a href="http://www.int-tech.de" target="_blank">Bekannter</a> hat mich gestern deshalb gefragt, ob ich dafür eine Lösung parat hätte. Ich habe dann mal etwas ausgefuchst, um einfach den mp3 Stream von <a href="http://www.antenne.de" target="_blank">Antenne Bayern</a> in aac+ zu konvertieren.</p>
<p><strong>Benötigte Software</strong></p>
<p>Folgende Software wird benötigt:</p>
<ul>
<li><a href="http://www.shoutcast.com" target="_blank">shoutcast server</a></li>
<li><a href="http://teknoraver.net/software/mp4tools/" target="_blank">mp4tools</a>, genauer aacplusenc (lokaler Mirror: <a href="http://www.netz-guru.de/mirror/mp4tools/" target="_blank">http://www.netz-guru.de/mirror/mp4tools/</a>)</li>
<li><a href="http://www.mplayerhq.hu/" target="_blank">mplayer</a></li>
<li>PHP &#8211; oder eine andere Scriptsprache, welche Sockets und Stdin lesen und schreiben kann, z.b. Perl</li>
<li>Linux &#8211; (ich habe <a href="http://www.ubuntu.com" target="_blank">ubuntu</a> verwendet)</li>
</ul>
<p>Dies reicht aus um den Stream konvertieren zu können und als aac+ Stream weiter verwenden zu können. Ich gehe davon aus dass Du als User in der Lage bist, shoutcast, mp4tools und mplayer zu installieren.</p>
<p><strong>Let&#8217;s do it!</strong></p>
<p>Ich habe dafür auf einem <a title="Vlinux VServer" href="http://vlinux.biz" target="_blank">VServer</a> einen user &#8220;streaming&#8221; angelegt und bin in das Home-Dir des Users gewechselt. Entpacke dort den shoutcast Server. Zunächst müssen wir mit mkfifo einen <a href="http://de.wikipedia.org/wiki/FIFO" target="_blank">Fifo</a> erstellen, über den wir später den Stream von Antenne Bayern durchschleusen:</p>
<p><em>~# mkfifo streamin</em></p>
<p>Dann müssen wir ein kleines Script schreiben, welches die encodierten aac+ Daten an den Shoutcast-Server übergibt:</p>
<p><code><br />
#!/usr/bin/php<br />
&lt;?php<br />
$address = "192.168.200.10";<br />
$port = 8000;<br />
$sock = fsockopen($address,($port+1),&amp;$errno, &amp;$errstr, 10);<br />
fputs($sock,"changeme\r\n"); // Passwort ändern!<br />
$res = fgets($sock);<br />
wlog($res);<br />
fputs($sock,"icy-name:my Server<br />
icy-genre:<br />
icy-url:http://www.shoutcast.com<br />
icy-irc:%23shoutcast<br />
icy-icq:0<br />
icy-aim:N%2FA<br />
icy-pub:1<br />
icy-br:32<br />
content-type:audio/aacp<br />
icy-reset:1</code><br />
<code><br />
");<br />
$res = fgets($sock);<br />
wlog($res);<br />
$fd = fopen("php://stdin","r");<br />
while (!feof($fd)) {<br />
$buf = fgets($fd,512);<br />
//wlog("Sending 512 bytes");<br />
fputs($sock,$buf);<br />
}<br />
fclose($fd);<br />
function wlog($msg) {<br />
$fd = fopen("/tmp/ss.log","a");<br />
fputs($fd,$msg."\n");<br />
fclose($fd);<br />
}<br />
?&gt;</code></p>
<p>Adresse und Port müssen angepasst werden, so dass hier der installierte Shoutcast Server angesprochen wird. Das Script habe ich bei mir als &#8220;simple_server.php&#8221; gespeichert und die Modes 755 gesetzt, damit dieses direkt über die Console gestartet werden kann (sollte das nicht funktionieren, fehlt php-cli!).</p>
<p>Nun haben wir schon alles was wir benötigen um zu starten:</p>
<p><em>aacplusenc streamin &#8211; 32 | ./simple_server.php &amp; mplayer -ao pcm:file=streamin http://mp3.webradio.antenne.de:80</em></p>
<p>Dies erzeugt uns den aac+ Stream, welchen man dann z.B. mit VLC oder Winamp über den installierten Shoutcast Server abspielen kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2008/08/06/howto-convert-mp3-streams-to-aac-streams-in-linux/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Shops, Viren und Kuchen &#8211; oder: Vorträge beim IGZ Hof</title>
		<link>http://www.netz-guru.de/2008/08/01/shops-viren-und-kuchen-oder-vortrage-beim-igz-hof/</link>
		<comments>http://www.netz-guru.de/2008/08/01/shops-viren-und-kuchen-oder-vortrage-beim-igz-hof/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 20:52:23 +0000</pubDate>
		<dc:creator>Florian Wiessner</dc:creator>
				<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Webtechniken]]></category>
		<category><![CDATA[adblock]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[igz hof]]></category>
		<category><![CDATA[kuchen]]></category>
		<category><![CDATA[nocscript]]></category>
		<category><![CDATA[optimieren]]></category>
		<category><![CDATA[shops]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[viren]]></category>

		<guid isPermaLink="false">http://www.netz-guru.de/?p=33</guid>
		<description><![CDATA[Das IGZ feiert 10-jähriges
Am 31.07.2008 feierte das IGZ Hof sein zehnjähriges Bestehen und lud zur Jubiläumsfeier ein. Es fanden über 20 Fachvorträge über Internet, Marketing und E-Bussiness statt, von denen ich selbst 2 Vorträge abgehalten habe.
Der erste Vortrag den ich gehalten habe hatte den Titel &#8220;Bestellvorgänge in Online Shops verbessern&#8221;, der zweite Vortrag ging um [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Das IGZ feiert 10-jähriges</strong></p>
<p>Am 31.07.2008 feierte das <a href="http://www.igz-hof.de" target="_blank">IGZ Hof</a> sein zehnjähriges Bestehen und lud zur Jubiläumsfeier ein. Es fanden über 20 Fachvorträge über Internet, Marketing und E-Bussiness statt, von denen ich selbst 2 Vorträge abgehalten habe.</p>
<p>Der erste Vortrag den ich gehalten habe hatte den Titel &#8220;Bestellvorgänge in Online Shops verbessern&#8221;, der zweite Vortrag ging um die neuesten Bedrohungen im Internet. Trotz der Hitze und des schönen Wetters war das Event gut besucht und es waren viele Vertreter aus allen Bereichen anwesend. Aus diesem Anlass möchte ich hier kurz meine beiden Vorträge resümieren.<br />
<span id="more-33"></span><br />
<strong>Der erste Vortrag: &#8220;Bestellvorgänge verbessern&#8221;</strong></p>
<p>In diesem Vortrag habe ich den Zuhörern verschiedene Möglichkeiten vorgestellt, wie man den Bestell-Prozess (auch checkout genannt) optimieren kann. Die dazu verwendeten Folien können <a href="http://www.netz-guru.de/wp-content/uploads/2008/08/bestellvorgaenge_in_eshops_optimieren.ppt" target="_blank">hier </a>heruntergeladen werden.</p>
<p>Kurz zusammengefasst:</p>
<ul>
<li>weg von einem mehrere-Schritte Prozess zu einer einzigen Seite mittels DHTML/Javascript</li>
<li>ausblenden aller unbenötigten Links während des Checkout um Bestellabbruch zu vermeiden</li>
<li>ermöglichen von Kundenprofilen für wiederkehrende Kunden</li>
<li>frühzeitiges Informieren über Versandkosten und Lieferzeit</li>
<li>&#8220;Artikel empfehlen&#8221; Links</li>
</ul>
<p><strong>Der zweite Vortrag: Internetbedrohungen</strong></p>
<p>Diesen Vortrag habe ich stellvertretend für den <a title="Bürgernetzverein Hof" href="http://www.bnhof.de" target="_blank">Bürgernetz Verein Hof e.V.</a> abgehalten, bei dem ich selbst jahrelang ehrenamtlich im Bereich Netzwerkadministration und Support tätig war.</p>
<p>Ich war verwundert, dass alle Teilnehmer dieses Vortrags weder von <a title="Firefox 3 Download" href="http://www.mozilla.com/en-US/products/firefox/" target="_blank">Mozilla Firefox</a> und <a href="http://www.mozilla.com/en-US/products/thunderbird/" target="_blank">Thunderbird</a> noch etwas über die aktuelle <a href="http://www.heise.de/security/dienste/browsercheck/" target="_blank">Sicherheitslage</a> allein bei den Browsern gewusst haben.</p>
<p>Deshalb habe ich den Schwerpunkt des Vortrags auf sicheres Surfen im Internet gelegt. Zum einen habe ich demonstriert, wie man sich Firefox herunterladen kann und Plugins wie <a href="https://addons.mozilla.org/de/firefox/addon/1865" target="_blank">Adblock</a> und <a href="https://addons.mozilla.org/de/firefox/addon/722" target="_blank">NoScript</a> installiert und wie diese Plugins die Sicherheit erhöhen können. Zum anderen bin ich darauf eingegangen, welche Risiken der E-Mail Verkehr birgt, wenn man unbedarft damit umgeht. Für den Virenschutz habe ich <a href="http://www.free-av.de/" target="_blank">Avira Antivirus</a> empfohlen.</p>
<p>Weiterhin habe ich noch demonstriert, wie Phisher vorgehen und was beim Online-Banking zu beachten ist, unter anderem dass das <a href="http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?t=7338" target="_blank">PIN/TAN</a> verfahren nicht mehr zeitgemäß ist und dass man besser auf <a href="http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?t=7338" target="_blank">HBCI</a> ausweichen sollte, sofern es die Bank unterstüzt (die meisten <a href="http://linuxwiki.de/OpenHBCI/GetesteteBanken" target="_blank">Banken</a> bieten mittlerweile <a href="http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?t=7338" target="_blank">HBCI</a> an).</p>
<p><strong>Verlosung und Abendparty</strong></p>
<p>Am Abend wurden dann noch Preise im Wert von 10.000 € verlost, und die Teilnehmer haben sich bei einem Glas Sekt noch austauschen können. Ausserdem wurde jedem Referenten ein leckerer Kuchen überreicht:</p>
<p><a href="http://www.netz-guru.de/wp-content/uploads/2008/08/dsc00045.jpg"><img class="alignnone size-medium wp-image-34" src="http://www.netz-guru.de/wp-content/uploads/2008/08/dsc00045-300x225.jpg" alt="IGZ Kuchen" width="354" height="265" /></a></p>
<p>Ich möchte mich bei allen Besuchern bedanken und bin gespannt wann man sich das nächste mal im IGZ Hof antrifft.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.netz-guru.de/2008/08/01/shops-viren-und-kuchen-oder-vortrage-beim-igz-hof/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
