<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Undertec Blog</title>
        <link>http://www.undertec.de/blog/</link>
        <description></description>
        <language>de</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Wed, 10 Mar 2010 00:15:56 +0100</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Online HTML-Kurs (Teil 21): Zusätzliche Seiteninformationen mit den meta-Tags</title>
            <description><![CDATA[<p>Mit den &lt;meta&gt;-Tags die ihre Verwendung im Head-Bereich haben, werden spezielle Meta-Informationen über die Seite wie Autor, Stichworte zum Seiteninhalt, etc. angegeben. Dabei sind die Informationen weniger für den Benutzer gedacht, sondern viel eher für spezielle Programme wie Suchmaschinen oder Intranet-Anwendungen. Die Meta-Informationen sind für den normalen Nutzer nur im Quelltext lesbar und werden vom Browser ansonsten nicht dargstellt. Außer den Informationen, können sich in den Meta-Einträgen aber auch Anweisungen für den Browser befinden, dazu später aber mehr.</p>
<p>Erst einmal ein Beispiel für die Informationen, die man in den Meta-Angaben hinterlegen kann:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="abstract" content="Hier steht so etwas wie eine Überschrift"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="audience" content="Hier wird die Zielgruppe der Leser der Seite benannt"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="author" content="Hier steht der Autor"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="copyright" content="Hier steht der Urheber oder Rechteinhaber"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="date" content="Veröffentlichungsdatum"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="description" content="Hier kommt eine ausführliche Beschreibung des Seiteninhalts"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="generator" content="Hier kann man reinschreiben, mit welchem Editor die Seite erstellt wurde"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="keywords" content="Hier kommen die Schlüsselwörter der Seite nach&nbsp; Wichtigkeit und kommagetrennt rein"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="publisher" content="Hier kann derjenige stehen, der die Seite veröffentlicht hat"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="revisit-after" content="Hier kann man eine Zeitangabe reinschreiben, wann die Suchmaschine wieder vorbeikommen soll"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="robots" content=""&gt;</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta name="Zusatinfo" content="Diese Meta-Tag wurde mit freiem Inhalt gestaltet"&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;/head&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;body&gt;</em></p>
<p>&nbsp;&nbsp; Diese Seite enthält alle wichtigen Meta-Angaben.</p>
<p>&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</p></blockquote>
<p>In obigen Beispiel werden zwei Attribute benutzt, um die Meta-Angaben zu machen.</p>
<p>Zum einen das name-Attribut, welches den Namen der Meta-Informationen, die folgen, angibt. Diese Namen kann im Prinzip jeder festlegen wie er will. Allerdings gibt es eine Reihe von Namen, die eigentlich von allen verwendet werden. Diese Namen und die damit verbundenen Informationen sind als großer Block in obigem Beispiel zusammengefasst. Beachten sollte man dabei, dass alles kleingeschrieben wird, da das name-Attribut Groß- und Kleinschreibung berücksichtigt.<br />Darunter folgt eine Meta-Angabe die selbst definiert worden ist. Welche Meta-Angaben man verwendet oder auch nicht, kann jeder selbst entscheiden.</p>
<p>Das andere Attribut ist das content-Attribut. Wie der Name schon sagt, ist der Wert des Attributes der Inhalt, der in Verknüpfung mit den name-Attribut wiedergegeben werden soll.</p>
<p>Im Beispiel oben ist noch eine Sache wichtig, nämlich die "name=robots"-Angabe, die leer gelassen wurde. Im Gegensatz zu den anderen Meta-Angaben, bei denen jede Suchmaschinen selbst entscheiden kann, was sie berücksichtigt, berücksichtigen fast alle Suchmachinen dieses Attribut.<br />Mit ihm kann nämlich angegeben werden, ob die Seite indiziert werden soll oder ob zum Beispiel Links nachgegangen werden soll. In nachfolgender Tabellen stehen entsprechende Wertepaare:</p>
<p>
<table border="1">
<tbody>
<tr>
<td><strong>Wert</strong></td>
<td><strong>Beschreibung</strong></td></tr>
<tr>
<td>content="index, follow"</td>
<td>Indizieren und Links folgen</td></tr>
<tr>
<td>content="index, nofollow"</td>
<td>Indizieren und Links NICHT folgen</td></tr>
<tr>
<td>content="noindex, nofollow"</td>
<td>NICHT indizieren und Links NICHT folgen</td></tr>
<tr>
<td>content="noindex, follow"</td>
<td>NICHT indizieren aber Links folgen</td></tr>
<tr>
<td>content="noarchive, nosnippets"</td>
<td>NICHT Archivieren und KEINE Seitenauszüge wiedergeben (nur Google)</td></tr></tbody></table></p>
<p>Neben all diesen Informationen kann aber wie oben schon erwähnt auch Anweisungen geben:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="cache-control" content="no-cache"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="content-language" content="de"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="content-script-type" content="text/javascript"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="content-style-type" content="text/css"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="expires" content="Mon, 01 Jan 2099 00:00:00 GMT"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="pragma" content="no-cache"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv="refresh" content="0; URL=http://www...."&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;/head&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;body&gt;</em></p>
<p><em>&nbsp;&nbsp; Diese Seite enthält alle wichtigen Meta-Angaben, die als Erweiterung des HTTP-Headers gesehen werden können.</em></p>
<p><em>&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Anstatt des name-Attributs wird nun das http-equiv-Attribut eingesetzt. In Kombination mit entsprechendem Inhalt, kann man gewisse Schalterchen im HTTP-Protokoll oder im Browser umlegen.</p>
<p>Eine Beschreibung der Schalter findet sich in folgender Tabelle:</p>
<p>
<table border="1">
<tbody>
<tr>
<td><strong>http-equiv</strong></td>
<td><strong>Wert</strong></td>
<td><strong>Beschreibung</strong></td></tr>
<tr>
<td>cache-control</td>
<td>no-cache</td>
<td>Verbietet das Zwischenspeichern</td></tr>
<tr>
<td>content-language</td>
<td>z.B. de</td>
<td>Gibt die Sprache des Inhalts an</td></tr>
<tr>
<td>content-script-type</td>
<td>z.B. text/javascript</td>
<td>Gibt an welcher Skript-Typ global verwendet wird</td></tr>
<tr>
<td>content-style-type</td>
<td>z.B. text/css</td>
<td>Gibt an, welche Sytlesheet-Sprache eingesetzt wird</td></tr>
<tr>
<td>content-type</td>
<td>Z.B. text/html; charset=ISO-8859-1</td>
<td>Gibt an in welchem Zeichensatz der Inhalt der Seite ist</td></tr>
<tr>
<td>expires</td>
<td>z.B. Mon, 01 Jan 2099 00:00:00 GMT</td>
<td>Nach diesem Datum wird das Dokument beim Besuch nicht aus dem Zwischenspeicher des Browsers gelesen</td></tr>
<tr>
<td>pragma</td>
<td>no-cache</td>
<td>Verbietet das Zwischenspeichern auf Proxy-Servern</td></tr>
<tr>
<td>refresh</td>
<td>Zeit in Sekunden, eventuell Webadresse</td>
<td>Zwingt den Browser zum Neuladen der Seite nach x Sekunden, oder zum Wechsel auf eine andere Seite nach x Sekunden</td></tr></tbody></table></p>
<p>Zum <a href="http://www.undertec.de/blog/2009/11/online-htmlkurs-teil-0-inhaltsverzeichnis.html">Inhaltsverzeichnis des Online HTML-Kurs</a>.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/03/online-htmlkurs-teil-21-zusatzliche-seiteninformationen-mit-den-metatags.html</link>
            <guid>http://www.undertec.de/blog/2010/03/online-htmlkurs-teil-21-zusatzliche-seiteninformationen-mit-den-metatags.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Step-by-Step</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Step-by-Step</category>
            
            <pubDate>Wed, 10 Mar 2010 00:15:56 +0100</pubDate>
        </item>
        
        <item>
            <title>Online HTML-Kurs (Teil 20): Blockcontainer mit dem div-Tag</title>
            <description><![CDATA[<p>Mit dem &lt;div&gt;-Tag lassen sich Blockcontainer definieren. Dabei werden aber anders als beim &lt;p&gt;-Tag keine Absätze oder ähnliches gemacht. Das &lt;div&gt;-Tag dient also nur dazu, die Seiteninhalte in Blöcke einzuteilen. Das &lt;div&gt;-Tag wird später wenn wir zu CSS kommen noch eine sehr wichtige oder sogar die zentrale Rolle bei der Seitengestaltung spielen.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;body&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;div id="ersterblock"&gt;<br />&nbsp;&nbsp; Dieser Seiteninhalt bildet einen logischen Block.<br />&nbsp;&nbsp; &lt;/div&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;div id="zweiterblock" align="center"&gt;<br />&nbsp;&nbsp; Dieser Seiteninhalt bildet den nächsten Block.<br />&nbsp;&nbsp; &lt;/div&nbsp;&nbsp; </em></p>
<p><em>&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Obwohl das &lt;div&gt;-Tag den Inhalt nur logisch zusammenfassen soll, kann man ihm mittels des align-Attributs eine Ausrichtung des Inhalts mitteilen: right (rechts), left (links), center (zentriert) oder justify (blocksatzmäßig).</p>
<p>Ein weiteres nützliches Attribut ist das id-Attribut mit dem man die Blöcke benennen kann. Diese Benennung spielt nachher bei CSS noch eine wichtige Rolle, da wir so die Gestaltung eines Blocks direkt an einen einzelnen Block binden können.</p>
<p>Zum <a href="http://www.undertec.de/blog/2009/11/online-htmlkurs-teil-0-inhaltsverzeichnis.html">Inhaltsverzeichnis des Online HTML-Kurs</a>.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/03/online-htmlkurs-teil-20-blockcontainer-mit-dem-divtag.html</link>
            <guid>http://www.undertec.de/blog/2010/03/online-htmlkurs-teil-20-blockcontainer-mit-dem-divtag.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Step-by-Step</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Step-by-Step</category>
            
            <pubDate>Mon, 08 Mar 2010 00:32:49 +0100</pubDate>
        </item>
        
        <item>
            <title>Online HTML-Kurs (Teil 19): Skripte einbinden</title>
            <description><![CDATA[<p>Skripte haben oft die Aufgabe interaktiv mit einem Nutzer zu interagieren, was einer normalen Webseite so nicht vergönnt ist. Die einzige Interaktion die eine Webseite beherrscht, ist das zur Verfügung stellen von Links und Inhalten. Ein Skript hingegen kann in der Lage sein, mit dem Benutzer zu kommunizieren, zum Beispiel beim Aufruf eines Formulars oder einer interaktiven Anwendung, die wie ein normales Programm funktionieren kann.</p>
<p>Als Skriptsprache wird eigentlich immer Javascript eingesetzt, welche sich aber in vielen Teilen von der Programmiersprache Java unterscheidet (siehe dazu auch <a href="http://de.wikipedia.org/wiki/JavaScript#Entwicklung">http://de.wikipedia.org/wiki/JavaScript#Entwicklung</a>).</p>
<p>Eine andere Möglichkeit interaktiv zu werden, besteht natürlich in der Möglichkeit CGIs einzusetzen, welche über Formulare, Meta-Angaben, Links oder Server-Side-Includes aufgerufen werden können (siehe dazu <a href="http://de.selfhtml.org/servercgi/cgi/cgihtml.htm#cgi_aufrufe">http://de.selfhtml.org/servercgi/cgi/cgihtml.htm#cgi_aufrufe</a>). Hierfür werden oft Programmiersprachen wie Perl oder PHP eingesetzt. Diese unterscheiden sich aber grundlegend vom Einsatz von Java-Script, da sie nicht über das &lt;script&gt;-Tag aufgerufen werden.</p>
<p>Um ein Skript einzubinden, kann man folgendermaßen vorgehen:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;body&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;script type="text/javascript"&gt;</em></p>
<p><em>&nbsp;QUELLCODE</em></p>
<p><em>&nbsp;&nbsp; &lt;/script&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Dabei steht zwischen der Start- und Endmarke der Quellcode in Java-Script geschrieben. Verwendet wurde hierbei das type-Attribut, in welchem angegeben wird, in welcher Sprache der Quellcode vorlegt. In Unserem Fall liegt der Quellcode als ASCII-Text vor und ist in Java-Script geschrieben.</p>
<p>Ein weiteres Attribut, welches im Beispiel nicht verwendet wird, ist das defer-Attribut. Es gibt an, ob das Skript Output an das HTML-Dokument zurückliefert oder nicht. Liefert es keine Ausgabe, so kann der Browser die Ausführung aufschieben. Die beiden Werte für dieses Attribut sind "false" (das Script wird sofort ausgewertet) und "true" (die Auswertung wird aufgeschoben).</p>
<p>In obigen Beispiel wurde das Script im body-Bereich eingebunden. Es kann aber genauso gut auch im Head-Container untergebracht werden.</p>
<p>Eine andere Alternative Skripte einzubinden, bietet folgende Möglichkeit:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;body&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;script type="text/javascript" src="script.js"&gt;&lt;/script&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>In diesem Beispiel wird ein Skript eingebunden, welches als gesonderte Datei auf dem Server liegt. Dies hat den Vorteil, dass man den Code innerhalb der Datei mehrmals einsetzen kann, ohne dass man in immer wieder in das HTML-Dokument schreiben muss. Auch kann man so externe Skripte aufrufen, die zum Beispiel als Analyse-Werkzeuge für die eigene Homepage dienen können (z.B. Statistiktools wie Google Analytics).</p>
<p>Sollten Skripte einmal vom Browser nicht unterstützt werden, so kann man sich mit dem &lt;noscript&gt;-Tag behilflich sein:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;body&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;script type="text/javascript" src="script.js"&gt;&lt;/script&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;noscript&gt;Ihr Browser unterstützt dieses Skript nicht!&lt;/noscript&gt;</em></p>
<p><em>&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Dabei muss man zwischen zwei Fällen unterscheiden. Einmal kann der Browser gar keine Skripte ausführen, dann werden alle &lt;noscript&gt;-Container im Dokument angezeigt. Ein anderer Fall stellt sich dar, wenn der Browser nur eine bestimmte Skriptsprache nicht beherrscht, dann wird der nachfolgende &lt;noscript&gt;-Container dargestellt.</p>
<p>Im Gegensatz zum &lt;script&gt;-Tag, darf das &lt;noscript&gt;-Tag nicht im head-Bereich stehen.</p>
<p>Zum <a href="http://www.undertec.de/blog/2009/11/online-htmlkurs-teil-0-inhaltsverzeichnis.html">Inhaltsverzeichnis des Online HTML-Kurs</a>.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/03/online-htmlkurs-teil-19-skripte-einbinden.html</link>
            <guid>http://www.undertec.de/blog/2010/03/online-htmlkurs-teil-19-skripte-einbinden.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Step-by-Step</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Step-by-Step</category>
            
            <pubDate>Sat, 06 Mar 2010 00:26:38 +0100</pubDate>
        </item>
        
        <item>
            <title>Debian Version herausfinden</title>
            <description><![CDATA[<p>Wer wissen möchte welche Debian-Version auf seinem System läuft, der kann in folgender Datei dies nachlesen:</p><p>/etc/debian_version<br /></p>]]></description>
            <link>http://www.undertec.de/blog/2010/03/debian-version-herausfinden.html</link>
            <guid>http://www.undertec.de/blog/2010/03/debian-version-herausfinden.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Linux</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Linux</category>
            
            <pubDate>Tue, 02 Mar 2010 09:44:37 +0100</pubDate>
        </item>
        
        <item>
            <title>Debian Lenny: defektes Tar-Dateisystem - Paketarchiv ist defekt</title>
            <description><![CDATA[<p>Wer beim Updaten seines System mit "apt-get upgrade" bei einer Paketinstallation auf folgenden Fehler stößt, muss nicht gleich verzweifeln.</p><blockquote><p><i>defektes Tar-Dateisystem - Paketarchiv ist defekt</i></p></blockquote><p>Denn ein einfaches Bereinigen des Caches kann das Problem schon lösen. Dazu einfach folgenden Befehl eingeben um den Installationspuffer zu löschen:</p><blockquote><p><i>apt-get clean</i></p></blockquote><p>Nach "apt-get clean" kann man dann einfach noch mal "apt-get upgrade" eintippen. Nun sollte der Fehler nicht erneut auftreten und das Problem gelöst sein.</p><p>Siehe dazu auch das Forum der Ubuntu-Benutzer:<br /><a href="http://forum.ubuntuusers.de/topic/paketarchiv-defekt/">http://forum.ubuntuusers.de/topic/paketarchiv-defekt/</a></p>]]></description>
            <link>http://www.undertec.de/blog/2010/03/debian-lenny-defektes-tardateisystem-paketarchiv-ist-defekt.html</link>
            <guid>http://www.undertec.de/blog/2010/03/debian-lenny-defektes-tardateisystem-paketarchiv-ist-defekt.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Linux</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Linux</category>
            
            <pubDate>Mon, 01 Mar 2010 10:11:37 +0100</pubDate>
        </item>
        
        <item>
            <title>GMX macht mal wieder Probleme</title>
            <description><![CDATA[<p>Nach dem Jahr 2010 Problem bei GMX gibt es im gleichen Monat noch ein Problem. Und zwar ist GMX gerade in keinster Weise erreichbar. In diversen Foren, Blogs und Twitter-Feeds wird bereits darüber diskutiert woran das wohl liegen könnte.</p>
<p>Eine DDOS-Attacke scheint es momentan jedenfalls nicht zu geben, da die Antwortzeiten gerade mal um die 11 Millisekunden betragen. Letztendlich wäre ein technischer Fehler nach dem Malheur Anfang Januar viel schlimmer.</p>
<p>Hier die Heise-News zu dem Jahr 2010-Problem:<br /><a href="http://www.heise.de/newsticker/meldung/Jahr-2010-Problem-im-Spam-Filter-von-GMX-Update-894258.html">http://www.heise.de/newsticker/meldung/Jahr-2010-Problem-im-Spam-Filter-von-GMX-Update-894258.html</a></p>
<p>Hier die aktuellen Diskussionen zum Thema GMX down:<br /><a href="http://www.tagesquiz.de/blog/2010/01/gmx-de-nicht-erreichbar/">http://www.tagesquiz.de/blog/2010/01/gmx-de-nicht-erreichbar/</a><br /><a href="http://www.cosmiq.de/qa/show/2374677/Warum-komme-ich-nocht-mehr-zu-GMX/">http://www.cosmiq.de/qa/show/2374677/Warum-komme-ich-nocht-mehr-zu-GMX/</a><br /><a href="http://www.bizsity.com/twitter_timeline_public.php?q=%23GMX">http://www.bizsity.com/twitter_timeline_public.php?q=%23GMX</a><br /><a href="http://www.heise.de/netze/hilfe/foren/S-Re-GMX-down/forum-19090/msg-17988178/read/">http://www.heise.de/netze/hilfe/foren/S-Re-GMX-down/forum-19090/msg-17988178/read/</a></p>
<p><strong>UPDATE:</strong></p>
<p>Heise war mal wieder etwas langsamer als der Artikel hier im Blog, aber hier nun auch die Heise-Nachricht:<br /><a href="http://www.heise.de/newsticker/meldung/Ausfall-beim-Mail-Dienst-GMX-912755.html">http://www.heise.de/newsticker/meldung/Ausfall-beim-Mail-Dienst-GMX-912755.html</a></p>
<p>Die GMX-Seite ist nun auch wieder erreichbar, allerdings kann man sich "aufrgund technischer Probleme" immer noch nicht Einloggen.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/gmx-macht-mal-wieder-probleme.html</link>
            <guid>http://www.undertec.de/blog/2010/01/gmx-macht-mal-wieder-probleme.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Internet</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Internet</category>
            
            <pubDate>Mon, 25 Jan 2010 16:48:23 +0100</pubDate>
        </item>
        
        <item>
            <title>Online HTML-Kurs (Teil 18): Sonderzeichen als Entität darstellen</title>
            <description><![CDATA[<p>Wenn man gewisse Sonderzeichen wie &gt; oder &lt; in HTML darstellen will, so stößt man schnell an eine Grenze. Diese beiden Zeichen werden nämlich als Steuerzeichen für die Umrahmung eines Tags / einer Marke verwendet.</p>
<p>Um dieses Problem zu vermeiden, kann man sogenannte Entitäten verwenden. Diese Entitäten stellen sogenannte Stellvertreter für andere Objekte, in diesem Fall Sonderzeichen, dar.</p>
<p>In HTML gibt es zwei verschiedene Arten von Entitäten. Erstens benannte Entitäten (named entities) und zweitens Unicode-Entitäten. Die benannten Entitäten haben einen Namen, wohingegen die Unicode-Entitäten über den entsprechenden Unicode-Wert aufgerufen werden. Das Schema des Aufrufs ist dabei gleich:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&amp;NAME_DER_ENTITÄT;</em></p></blockquote>
<p>Hier ein paar Beispiele für wichtige Entitäten:</p>
<p>
<table>
<tbody>
<tr>
<td><em>Zeichen</em></td>
<td><em>Beschreibung</em></td>
<td><em>Name in HTML</em></td>
<td><em>Unicode in HTML</em></td></tr>
<tr>
<td><em>"</em></td>
<td><em>Anführungszeichen oben</em></td>
<td><em>&amp;quot;</em></td>
<td><em>&amp;#34;</em></td></tr>
<tr>
<td><em>&amp;</em></td>
<td><em>Ampersand-Zeichen, kaufmännisches Und</em></td>
<td><em>&amp;amp;</em></td>
<td><em>&amp;#38;</em></td></tr>
<tr>
<td><em>&lt;</em></td>
<td><em>öffnende spitze Klammer</em></td>
<td><em>&amp;lt;</em></td>
<td><em>&amp;#60;</em></td></tr>
<tr>
<td><em>&gt;</em></td>
<td><em>schließende spitze Klammer</em></td>
<td><em>&amp;gt;</em></td>
<td><em>&amp;#62;</em></td></tr></tbody></table></p>
<p>Weitere Entitäten findet man bei Selfhtml.org: <a href="http://de.selfhtml.org/html/referenz/zeichen.htm">http://de.selfhtml.org/html/referenz/zeichen.htm</a></p>
<p>Wer mehr über Entitäten in der Informatik wissen will, kann sich bei Wikipedia schlau machen:<br /><a href="http://de.wikipedia.org/wiki/Entit%C3%A4t_(Informatik">http://de.wikipedia.org/wiki/Entit%C3%A4t_(Informatik</a>)</p>
<p>Zum <a href="http://www.undertec.de/blog/2009/11/online-htmlkurs-teil-0-inhaltsverzeichnis.html">Inhaltsverzeichnis des Online HTML-Kurs</a>.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/online-htmlkurs-teil-18-sonderzeichen-als-entitat-darstellen.html</link>
            <guid>http://www.undertec.de/blog/2010/01/online-htmlkurs-teil-18-sonderzeichen-als-entitat-darstellen.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Step-by-Step</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Step-by-Step</category>
            
            <pubDate>Fri, 22 Jan 2010 00:11:01 +0100</pubDate>
        </item>
        
        <item>
            <title>Debian: Bash-History löschen</title>
            <description><![CDATA[<p>Wer die Bash oder ähnliche Konsolen nutzt, wird bereits festgestellt haben, dass alle Eingaben über die "UP"- oder "DOWN"-Taste wieder aufrufbar sind. Wen das stört, der kann diese History aber gerne löschen. Folgender Befehl löscht alle bislang eingegebenen Befehle:</p>
<blockquote><p><i>history -c</i></p></blockquote>
<p>Im Forum von old.nabble.com findet sich auch eine interessante Diskussion mit anderen Vorschlägen zum sicheren Löschen der History:<br /><a href="http://old.nabble.com/bash-history-automatisch-l%C3%B6schen-td19562196.html">http://old.nabble.com/bash-history-automatisch-l%C3%B6schen-td19562196.html</a></p><p>Auch im Blog von candoom wird darüber geschrieben:<br /><a href="http://www.candoom.de/bash-history-loeschen/">http://www.candoom.de/bash-history-loeschen/</a></p><p>Und zum Schluss noch der Manual-Eintrag des History-Programms:<br /><a href="http://pwet.fr/man/linux/fonctions_bibliotheques/readline/history">http://pwet.fr/man/linux/fonctions_bibliotheques/readline/history</a></p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/debian-bashhistory-loschen.html</link>
            <guid>http://www.undertec.de/blog/2010/01/debian-bashhistory-loschen.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Linux</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Linux</category>
            
            <pubDate>Wed, 20 Jan 2010 10:46:09 +0100</pubDate>
        </item>
        
        <item>
            <title>Online HTML-Kurs (Teil 17): Clientseitige Imagemaps mit dem map- und dem area-Tag</title>
            <description><![CDATA[<p>Clientseitige Imagemaps sind meistens Bilder in denen einzelne Regionen oder Bildausschnitte angeklickt werden können und hinter denen sich ein Link verbirgt.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;<br /><br />&nbsp;&nbsp; &lt;body&gt;<br /><br />&nbsp;&nbsp; &lt;center&gt;&lt;h1&gt;Bitte auf Berlin oder München klicken&lt;/h1&gt;&lt;/center&gt;<br /><br />&nbsp;&nbsp; &lt;img src="" usemap="#Karte"&gt;<br /><br />&nbsp;&nbsp; &lt;map name="Karte"&gt;<br />&nbsp;&nbsp; &lt;area accesskey="b" alt="Berlin" href="</em><a href="http://de.wikipedia.org/wiki/Berlin"><em>http://de.wikipedia.org/wiki/Berlin</em></a><em>" target="_blank" shape="rect" coords="379, 212, 399, 232"&gt;<br />&nbsp;&nbsp; &lt;area accesskey="m" alt="München" href="</em><a href="http://de.wikipedia.org/wiki/M%C3%BCnchen"><em>http://de.wikipedia.org/wiki/M%C3%BCnchen</em></a><em>" target="_blank" shape="poly"coords="280, 555, 330, 555, 330, 590, 400, 590, 400, 620, 280, 620"&gt;<br />&nbsp;&nbsp; &lt;area accesskey="k" alt="Köln" href="</em><a href="http://de.wikipedia.org/wiki/K%C3%B6ln"><em>http://de.wikipedia.org/wiki/K%C3%B6ln</em></a><em>" target="_blank" shape="circle"coords="67, 347, 20"&gt;<br />&nbsp;&nbsp; &lt;/map&gt;<br /><br />&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Und so siehts aus:</p>
<p>
<center>
<H1>Bitte auf Berlin oder München klicken</H1></center>
<form class="mt-enclosure mt-enclosure-image" mt:asset-id="65"><img class="mt-image-center" style="DISPLAY: block; MARGIN: 0px auto 20px; TEXT-ALIGN: center" height="660" alt="Deutschland_topo_klein.jpg" src="http://www.undertec.de/blog/2010/01/20/Deutschland_topo_klein.jpg" width="500" usemap="#Karte" /></form><map name="Karte"><area accesskey="b" shape="RECT" target="_blank" alt="Berlin" coords="379,212,399,232" href="http://de.wikipedia.org/wiki/Berlin"><area accesskey="m" shape="POLY" target="_blank" alt="München" coords="280,555,330,555,330,590,400,590,400,620,280,620" href="http://de.wikipedia.org/wiki/M%C3%BCnchen"><area accesskey="k" shape="CIRCLE" target="_blank" alt="Köln" coords="67,347,20" href="http://de.wikipedia.org/wiki/K%C3%B6ln"></map>
<p></p>
<p>Dabei wird mit dem &lt;img&gt;-Tag ein Bild eingebunden, welches über das Attribut "usemap" mit dem &lt;map&gt;-Tag verbunden ist. Der Name sollte deswegen auch identisch sein, wobei das Attribut "usemap" für den Namen ein führendes # benötigt, welches beim &lt;map&gt;-"name"-Attribut nicht benötigt wird.</p>
<p>Innerhalb des &lt;map&gt;-Containers werden dann mit dem &lt;area&gt;-Tag die anklickbaren Ausschnitte definiert, wobei das &lt;area&gt;-Tag keine Endmarke besitzt und alle wichtigen Angaben als Attribute angegeben werden.</p>
<p>Das erste Attribut "accesskey" legt ein Tastenkürzel fest, mit dem man per Tastatur den gewünschten Bereich anwählen kann, falls keine Maus zur Verfügung steht. Dabei wird ein einzelnes Tastaturzeichen verwendet, so dass man dann mit "ALT"+"Tastaturzeichen" dem gewünschten Link folgen kann.</p>
<p>Mit dem Attribut "alt" kann man einen alternativen Text hinterlegen, falls kein Bild angezeigt werden kann.</p>
<p>Mit "href" kann man ein Linkziel definieren. Verwendet wird es hier genauso wie in <a href="http://www.undertec.de/blog/2009/12/online-htmlkurs-teil-5-links-mit-dem-atag.html">Teil 5</a>. Hat man einen aktiven Bereich der kein Linkziel enthalten soll, so wird das Attribut "nohref" mit dem gleichnamigen Wert "nohref" verwendet.</p>
<p>Ein weiteres Attribut ist "target", welches ebenfalls in Kapitel 5 zum ersten mal im Einsatz war und mit dem definiert werden kann, ob zum Beispiel ein neues Browserfenster geöffnet werden soll. Erlaubt Werte sind "_self", "_parent", "_top" oder "_blank".</p>
<p>Zum Schluss kommen die beiden wichtigsten Attribute: "shape" und "coords".</p>
<p>Mit "shape" wird die Form des anklickbaren Bereiches festgelegt. Die wichtigsten Werte für das Attribut "shape" (zu dt. Form) sind "rect" (Rechteck), "circle" (Kreis) und "poly" (Polygon). Hat man mit "shape" sich für eine Form entschieden, so kann man mit "coords" dann den gewünschten Bereich in Koordinaten angeben. Dabei ist die Koordinatenangabe abhängig von der Form des Bereiches.<br />Ist die Form rechteckig, so werden die Koordinaten so angegeben: coords="x_linksoben, y_linksoben, x_rechtsunten, y_rechtsunten".<br />Ist die Form kreisförmig, so werden die Koordinaten wie folgt angegeben: coords="x_mittelpunkt, y_mittelpunkt, pixel_radiuswert".<br />Ist die Form ein Polygon (ein Vieleck), so werden die Koordinaten wie folgt angegeben: coords="x_p1, y_p1,x_p2, y_p2, ... ,x_pN, y_pN".<br />Die Angabe aller Koordinaten erfolgt in Pixel.</p>
<p>PS: Die Deutschlankarte ist aus dem Medienarchiv Wikimedia Commons und steht unter der GNU Free Documentation License.</p>
<p>Zum <a href="http://www.undertec.de/blog/2009/11/online-htmlkurs-teil-0-inhaltsverzeichnis.html">Inhaltsverzeichnis des Online HTML-Kurs</a>.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/online-htmlkurs-teil-17-clientseitige-imagemaps-mit-dem-map-und-dem-areatag.html</link>
            <guid>http://www.undertec.de/blog/2010/01/online-htmlkurs-teil-17-clientseitige-imagemaps-mit-dem-map-und-dem-areatag.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Step-by-Step</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Step-by-Step</category>
            
            <pubDate>Wed, 20 Jan 2010 00:24:51 +0100</pubDate>
        </item>
        
        <item>
            <title>Debian: mysqldump: Got error: 2002: Can&apos;t connect to local MySQL server through socket &apos;/var/run/mysqld/mysqld.sock&apos; (2) when trying to connect</title>
            <description><![CDATA[<p>Folgenden Fehler kann man zum Beispiel erhalten, wenn man den Befehl "mysqldump" aufruft:</p>
<blockquote>
<p><i>mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect</i></p></blockquote>
<p>Dieses Problem tritt auf, wenn zum Beispiel die entsprechende Socket-Datei nicht vorhanden ist. Deshalb sollte man überprüfen, ob die entsprechende Datei vom MySQL-Server erzeugt wurde. Falls nicht, kann dies daran liegen, dass der MySQL-Server zum Beispiel gar nicht läuft. Mit dem Befehl "ps -e" kann man als Root überprüfen, ob der Dienst "mysqld" läuft.</p>
<p>Ist dies nicht der Fall, hilft ein ordinärer Neu- bzw. Restart mit dem Befehl:</p>
<blockquote>
<p><i>/etc/init.d/mysqld restart</i></p></blockquote>
<p>Nun sollte auch die entsprechende Socket-Datei vorhanden sein.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/debian-mysqldump-got-error-2002-cant-connect-to-local-mysql-server-through-socket-varrunmysqldmysqldsock-2-when-trying-to-connect.html</link>
            <guid>http://www.undertec.de/blog/2010/01/debian-mysqldump-got-error-2002-cant-connect-to-local-mysql-server-through-socket-varrunmysqldmysqldsock-2-when-trying-to-connect.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Linux</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">MySQL</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Linux</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">MySQL</category>
            
            <pubDate>Tue, 19 Jan 2010 06:30:21 +0100</pubDate>
        </item>
        
        <item>
            <title>Debian Lenny: Mail von Root weiterleiten</title>
            <description><![CDATA[<p>Viele Administratoren rufen selten die Mails von Root ab. Deshalb empfiehlt es sich die Mails die Root erhält weiterzuleiten. Unter Debian Lenny kann man dies ganz einfach realisieren, indem man einen Alias in "/etc/aliases" festlegt.</p><p>Die Konfigurationsdatei sind dann zum Beispiel so aus:</p><blockquote><p><i># /etc/aliases<br />mailer-daemon: postmaster<br />postmaster: root<br />nobody: root<br />hostmaster: root<br />usenet: root<br />news: root<br />webmaster: root<br />www: root<br />ftp: root<br />abuse: root<br />noc: root<br />security: root<br />root: Max.Mustermann@Musterland.de</i></p></blockquote><p>Somit werden alle Mails für root an Max.Mustermann@Musterland.de weitergeleitet.</p><p>Foreneintrag dazu bei mail-archive.com:<br /><a href="http://www.mail-archive.com/debian-user-de@lehmanns.de/msg24859.html">http://www.mail-archive.com/debian-user-de@lehmanns.de/msg24859.html</a></p><p>Natürlich kann man auch im root-Verzeichnis eine Datei namens ".forward" anlegen (falls diese noch nicht existiert) und dort die Adresse angeben, an die weitergeleitet werden soll. Vorteil ist, dass man nicht an die "/etc/aliases" heran muss.</p><p>In Kap. 3.2 des The Linux Mail User HOWTO von Eric Steven Raymond kann man nachlesen, wie das Ganze funktioniert:<br /><a href="http://www.faqs.org/docs/Linux-HOWTO/Mail-User-HOWTO.html#forwarding">http://www.faqs.org/docs/Linux-HOWTO/Mail-User-HOWTO.html#forwarding</a></p> ]]></description>
            <link>http://www.undertec.de/blog/2010/01/debian-lenny-mail-von-root-weiterleiten.html</link>
            <guid>http://www.undertec.de/blog/2010/01/debian-lenny-mail-von-root-weiterleiten.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Linux</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Linux</category>
            
            <pubDate>Mon, 18 Jan 2010 09:28:05 +0100</pubDate>
        </item>
        
        <item>
            <title>Online HTML-Kurs (Teil 16): Horizontale Linien mit hr</title>
            <description><![CDATA[<p>Manchmal möchte man den Inhalt seiner HTML-Seite mit einer Trennlinie abgrenzen. Mit dem &lt;hr&gt;-Tag kann man dabei eine horizontale Linie ziehen.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;<br /><br />&nbsp;&nbsp; &lt;body&gt;<br /><br />&nbsp;&nbsp; &lt;hr&gt;<br /><br />&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Und so siehts aus:</p>
<p>
<hr>

<p></p>
<p>Besonderheit an &lt;hr&gt; ist wie beim Zeilenumbruch mit &lt;br&gt;, dass der Container nur aus der Startmarke und damit aus einem einzelnen Tag besteht. Wichtige Attribute von &lt;hr&gt; sind "align", "size", "width" und "noshade".</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;<br /><br />&nbsp;&nbsp; &lt;body&gt;<br /><br />&nbsp;&nbsp; &lt;hr align="right" width="30%"&gt;<br /><br />&nbsp;&nbsp; &lt;hr size="8"&gt;<br /><br />&nbsp;&nbsp; &lt;hr noshade="noshade"&gt;<br /><br />&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</p></em>
<p></p></blockquote>
<p>Und so siehts aus:</p>
<p>
<hr align="right" width="30%">

<hr size="8">

<hr noShade>

<p></p>
<p>Mit "align" kann man die Ausrichtung der Trennlinie festlegen (natürlich darf sie dann nicht über den ganzen Bildschirm reichen). Erlaubte Werte sind "left", "middle" und "right". Das Attribut "width" legt die Breite der Trennlinie fest. Erlaubte Werte sind entweder eine Pixelangabe oder aber eine prozentuale Angabe.<br />Mit "size" lässt sich die Dicke der Trennlinie festlegen. Dabei sind erlaubte Werte Pixelwerte.<br />Zum Schluss wird noch "noshade" verwendet, mit dem mit der Wertangabe "noshade" festlegen kann, ob ein 3D-Schatten der Trennlinie gezeigt oder nicht gezeigt werden soll.</p>
<p>Zum <a href="http://www.undertec.de/blog/2009/11/online-htmlkurs-teil-0-inhaltsverzeichnis.html">Inhaltsverzeichnis des Online HTML-Kurs</a>.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/online-htmlkurs-teil-16-horizontale-linien-mit-hr.html</link>
            <guid>http://www.undertec.de/blog/2010/01/online-htmlkurs-teil-16-horizontale-linien-mit-hr.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Step-by-Step</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Step-by-Step</category>
            
            <pubDate>Mon, 18 Jan 2010 00:19:00 +0100</pubDate>
        </item>
        
        <item>
            <title>Online HTML-Kurs (Teil 15): Elemente innerhalb von Tabellen</title>
            <description><![CDATA[<p>Nachdem der Weihnachts- und Neujahresstress rum ist und hoffentlich jeder seine Bilanzen, Steuererklärungen und Inventuren durchgeführt hat, fahren wir fort mit dem Online-HTML-Kurs.</p>
<p>Im folgenden wollen wir uns den Elementen widmen, die innerhalb einer Tabelle und damit des &lt;table&gt;...&lt;/table&gt;-Containers vorkommen können.</p>
<p>Zunächst schauen wir uns die Elemente &lt;thead&gt;, &lt;tbody&gt; und &lt;tfoot&gt; an. Mit diesen Elementen ist es möglich, wenn man es möchte, seine Tabelle in 3 Teile zu unterteilen. Und zwar in einen Tabellenkopf, einen Tabellenkörper und einen Tabellenfuß.</p>
<p>Im folgenden Beispiel kann man sehen wie die drei Tags verwendet werden können:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;<br /><br />&nbsp;&nbsp; &lt;body&gt;<br /><br />&nbsp;&nbsp; &lt;table border="2"&gt;<br />&nbsp;&nbsp; &lt;thead&gt;&lt;tr&gt;&lt;td&gt;Vorname&lt;/td&gt;&lt;td&gt;Name&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;<br />&nbsp;&nbsp; &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Karl-Michael&lt;/td&gt;&lt;td&gt;Dosenwurst&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Lisa-Roberta&lt;/td&gt;&lt;td&gt;Mülleimer&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;<br />&nbsp;&nbsp; &lt;tfoot&gt;&lt;tr&gt;&lt;td&gt;Lustige Namen&lt;/td&gt;&lt;/tr&gt;&lt;/tfoot&gt;<br />&nbsp;&nbsp; &lt;/table&gt;<br /><br />&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Und so siehts aus:</p>
<p>
<table border="2">
<thead>
<tr>
<td>Vorname</td>
<td>Name</td></tr></thead>
<tbody>
<tr>
<td>Karl-Michael</td>
<td>Dosenwurst</td></tr>
<tr>
<td>Lisa-Roberta</td>
<td>Mülleimer</td></tr></tbody>
<tfoot>
<tr>
<td>Lustige Namen</td></tr></tfoot></table></p>
<p>Möchte man auf diese Art und Weise seine Tabelle unterteilen, so sollte man stets berücksichtigen, dass man immer alle drei Elemente verwenden sollte. Sinn und Zweck der Geschichte ist eigenlich, dass zum Beispiel Tabellenkopf und Tabellenfuß immer sichtbar sind, der Tabellenkörper aber nur einen Ausschnitt der Tabelle zeigt und der Rest durch "Scrollen" angezeigt werden kann.</p>
<p>Auch &lt;thead&gt;, &lt;tbody&gt; und &lt;tfoot&gt; haben eigene Attribute. Die beiden wichtigsten sind "align" für die horizontale Ausrichtung und "valign" für die vertikale Ausrichtung des Zelleninhalts. Die möglichen Werte für "align" sind: "left", "center", "right" und "justify". Für "valign" sind die möglichen Werte: "top", "middle", "bottom" und "baseline".</p>
<p>Viel wichtiger als diese drei Elemente sind allerdings die nächsten drei: &lt;td&gt;, &lt;th&gt; und &lt;tr&gt;. &lt;td&gt; und &lt;tr&gt; haben wir schon im letzten Kapitel kennengelernt. Nun wollen wir uns anschauen, wie wir diese beiden Elemente mit Attributen ausstatten können, um so die Zeilen und die einzelnen Zellen zu manipulieren.</p>
<p>Zunächst wollen wir uns anschauen wie wir das &lt;tr&gt;-Tag manipulieren können:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;<br /><br />&nbsp;&nbsp; &lt;body&gt;<br /><br />&nbsp;&nbsp; &lt;table border="2"&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Vorname des Mitarbeiters&lt;/td&gt;&lt;td&gt;Nachname des Mitarbeiters&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;tr align="middle" valign="right" bgcolor="#00FF00"&gt;&lt;td&gt;Karl-Michael&lt;/td&gt;&lt;td&gt;Dosenwurst&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;/table&gt;<br /><br />&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Und so siehts aus:</p>
<p>
<table border="2">
<tbody>
<tr>
<td>Vorname des Mitarbeiters</td>
<td>Nachname des Mitarbeiters</td></tr>
<tr valign="right" align="middle" bgcolor="#00ff00">
<td>Karl-Michael</td>
<td>Dosenwurst</td></tr></tbody></table></p>
<p>Die drei wichtigsten Attribute für &lt;tr&gt; haben wir hier verwendet. Für die horizontale Ausrichtung mit "align" kann man die gleichen Werte wie für &lt;thead&gt;, &lt;tbody&gt; und &lt;tfoot&gt; einsetzen. Das gleiche gilt für die vertikale Ausrichtung mit "valign". Zusätzlich können wir noch mit "bgcolor" eine Hintergrundfarbe definieren. Der Link zu den Farbtabellen befindet sich im <a href="http://www.undertec.de/blog/2009/12/online-htmlkurs-teil-3-das-bodytag.html">dritten Kapitel</a>.</p>
<p>Außer dem &lt;tr&gt;-Tag hat auch das &lt;td&gt;-Tag, welches eine einzelne Zelle generiert, einige Attribute. Dazu gehören zum Einen die gleichen wie bei &lt;tr&gt;, nämlich "align", "valign" und "bgcolor" und zum Anderen "height", "width", "nowrap", "colspan" und "rowspan". Es gibt noch eine Reihe anderer Attribute die dem W3C-Standard entsprechen, welche aber eher selten benutzt werden.</p>
<p>Mit den Attributen "height" und "width" kann man in Pixel oder Prozent angeben wie groß eine Zelle werden soll:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;<br /><br />&nbsp;&nbsp; &lt;body&gt;<br /><br />&nbsp;&nbsp; &lt;table border="2"&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td height="50" width="300"&gt;Zelle 1&lt;/td&gt;&lt;td&gt;Zelle 2&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Zelle 3&lt;/td&gt;&lt;td&gt;Zelle 4&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;/table&gt;<br /><br />&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Und so siehts aus:</p>
<p>
<table border="2">
<tbody>
<tr>
<td width="300" height="50">Zelle 1</td>
<td>Zelle 2</td></tr>
<tr>
<td>Zelle 3</td>
<td>Zelle 4</td></tr></tbody></table></p>
<p>Die Prozentangabe bezieht sich natürlich wie bereits erwähnt auf die Breite des übergeordneten Containers.</p>
<p>Mit dem Attribut "nowrap" kann man verhindern, dass der Browser den Inhalt einer Tabellenzelle automatisch umbricht. Erlaubter Wert hierfür ist "nowrap" (Ja der Wert heißt genau gleich wie das Attribut).</p>
<p>Mit den Attributen "colspan" und "rowspan" kann man Zellen wie in Excel verbinden. "colspan" verbindet dabei Zellen in Zeilen und "rowspan" verbindet Zellen in Spalten:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;<br /><br />&nbsp;&nbsp; &lt;body&gt;<br /><br />&nbsp;&nbsp; &lt;table border="2"&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Zelle 1&lt;/td&gt;&lt;td colspan="3"&gt;Zelle 2&lt;/td&gt;&lt;td&gt;Zelle 3&lt;/td&gt;&lt;td&gt;Zelle 4&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td rowspan="2"&gt;Zelle 5&lt;/td&gt;&lt;td&gt;Zelle 6&lt;/td&gt;&lt;td&gt;Zelle 7&lt;/td&gt;&lt;td&gt;Zelle 8&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Zelle 9&lt;/td&gt;&lt;td&gt;Zelle 10&lt;/td&gt;&lt;td&gt;Zelle 11&lt;/td&gt;&lt;td&gt;Zelle 12&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Zelle 13&lt;/td&gt;&lt;td&gt;Zelle 14&lt;/td&gt;&lt;td&gt;Zelle 15&lt;/td&gt;&lt;td&gt;Zelle 16&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;/table&gt;<br /><br />&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Und so siehts aus:</p>
<p>
<table border="2">
<tbody>
<tr>
<td>Zelle 1</td>
<td colspan="3">Zelle 2</td>
<td>Zelle 3</td>
<td>Zelle 4</td></tr>
<tr>
<td rowspan="2">Zelle 5</td>
<td>Zelle 6</td>
<td>Zelle 7</td>
<td>Zelle 8</td></tr>
<tr>
<td>Zelle 9</td>
<td>Zelle 10</td>
<td>Zelle 11</td>
<td>Zelle 12</td></tr>
<tr>
<td>Zelle 13</td>
<td>Zelle 14</td>
<td>Zelle 15</td>
<td>Zelle 16</td></tr></tbody></table></p>
<p>Die Werte die die beiden Attribute annehmen dürfen sind einfach, wie im Beispiel zu sehen, ganze Zahlen. Berücksichtigen sollte man aber, dass andere Zellen einfach nach rechts verschoben werden. Lässt man diese Weg, so erhält man ein schönes Gesamtbild:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&lt;html&gt;<br />&nbsp;&nbsp; &lt;head&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Dies ist der Titel&lt;/title&gt;<br />&nbsp;&nbsp; &lt;/head&gt;<br /><br />&nbsp;&nbsp; &lt;body&gt;<br /><br />&nbsp;&nbsp; &lt;table border="2"&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Zelle 1&lt;/td&gt;&lt;td colspan="3"&gt;Zelle 2&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td rowspan="2"&gt;Zelle 5&lt;/td&gt;&lt;td&gt;Zelle 6&lt;/td&gt;&lt;td&gt;Zelle 7&lt;/td&gt;&lt;td&gt;Zelle 8&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Zelle 9&lt;/td&gt;&lt;td&gt;Zelle 10&lt;/td&gt;&lt;td&gt;Zelle 11&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;tr&gt;&lt;td&gt;Zelle 13&lt;/td&gt;&lt;td&gt;Zelle 14&lt;/td&gt;&lt;td&gt;Zelle 15&lt;/td&gt;&lt;td&gt;Zelle 16&lt;/td&gt;&lt;/tr&gt;<br />&nbsp;&nbsp; &lt;/table&gt;<br /><br />&nbsp;&nbsp; &lt;/body&gt;<br />&lt;/html&gt;</em></p></blockquote>
<p>Und so siehts aus:</p>
<p>
<table border="2">
<tbody>
<tr>
<td>Zelle 1</td>
<td colspan="3">Zelle 2</td></tr>
<tr>
<td rowspan="2">Zelle 5</td>
<td>Zelle 6</td>
<td>Zelle 7</td>
<td>Zelle 8</td></tr>
<tr>
<td>Zelle 9</td>
<td>Zelle 10</td>
<td>Zelle 11</td></tr>
<tr>
<td>Zelle 13</td>
<td>Zelle 14</td>
<td>Zelle 15</td>
<td>Zelle 16</td></tr></tbody></table></p>
<p>Zu guterletzt fehlt noch das &lt;th&gt;-Tag, welches genauso eingesetzt werden kann wie das &lt;td&gt;-Tag. Der einzige Unterschied besteht darin, dass das &lt;th&gt;-Tag eher für Spaltenüberschriften eingesetzt werden sollte.</p>
<p>Zum <a href="http://www.undertec.de/blog/2009/11/online-htmlkurs-teil-0-inhaltsverzeichnis.html">Inhaltsverzeichnis des Online HTML-Kurs</a>.</p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/online-htmlkurs-teil-15-elemente-innerhalb-von-tabellen.html</link>
            <guid>http://www.undertec.de/blog/2010/01/online-htmlkurs-teil-15-elemente-innerhalb-von-tabellen.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Step-by-Step</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">HTML</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Step-by-Step</category>
            
            <pubDate>Sat, 16 Jan 2010 00:41:19 +0100</pubDate>
        </item>
        
        <item>
            <title>Vodafone Callya: SIM-Lock des Handy online entfernen</title>
            <description><![CDATA[<p>Hat man sich vor mehr als 24 Monaten ein Prepaid-Handy über Vodafone Callya besorgt, so kann man dies nach Ablauf der 24-Monats-Frist entsperren, so dass man auch die SIM-Karten anderer Provider in diesem Handy nutzen kann. Dazu kann man einfach auf der Homepage von Vodafone seine IMEI-Nummer (Identifikationsnummer des Handys) angeben und bekommt dann den Entsperrcode.</p>
<p>Die IMEI findet man bei den meisten Geräten heraus, indem man <em>*#06#</em> drückt.</p>
<p>Außerdem gibt einem die Seite nach Eingabe der IMEI auch an, wielange es noch dauert, bis die 24 Monate um sind.</p>
<p>Die Entsperrseite von Vodafone Callya:<br /><a href="http://www.vodafone.de/hilfe-support/infodoks-jugendschutz-sicherheit-netzabdeckung-kontakt/96918.html">http://www.vodafone.de/hilfe-support/infodoks-jugendschutz-sicherheit-netzabdeckung-kontakt/96918.html</a></p>
<p>Wikipedia-Eintrag zur Funktionsweise des SIM-Locks:<br /><a href="http://de.wikipedia.org/wiki/SIM-Lock">http://de.wikipedia.org/wiki/SIM-Lock</a></p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/vodafone-callya-simlock-des-handy-online-entfernen.html</link>
            <guid>http://www.undertec.de/blog/2010/01/vodafone-callya-simlock-des-handy-online-entfernen.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">GSM / UMTS</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Handy</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">GSM / UMTS</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Handy</category>
            
            <pubDate>Sun, 10 Jan 2010 15:04:24 +0100</pubDate>
        </item>
        
        <item>
            <title>PI ist jetzt 1157 GB groß</title>
            <description><![CDATA[<p>Auf Heise Online ist gerade zu lesen, dass die Zahl Pi mit einer noch nie dagewesenen Genauigkeit berechnet wurde. So belegt das Ergebnis sage und schreibe 1157 Gigabyte an Speicherplatz. Pi wurde nun auf 2.699.999.990.000 Nachkommastellen berechnet.</p>
<p>Der Link zum Heise-Artikel findet sich hier:<br /><a href="http://www.heise.de/newsticker/meldung/Pi-Berechnungsrekord-auf-handelsueblichem-PC-899930.html">http://www.heise.de/newsticker/meldung/Pi-Berechnungsrekord-auf-handelsueblichem-PC-899930.html</a></p>
<p>Und hier der Link zum Rekordhalter-Projekt:<br /><a href="http://bellard.org/pi/pi2700e9/">http://bellard.org/pi/pi2700e9/</a></p>]]></description>
            <link>http://www.undertec.de/blog/2010/01/pi-ist-jetzt-1157-gb-gross.html</link>
            <guid>http://www.undertec.de/blog/2010/01/pi-ist-jetzt-1157-gb-gross.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Kurioses</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Wissenschaft</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Kurioses</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">Wissenschaft</category>
            
            <pubDate>Sat, 09 Jan 2010 12:12:27 +0100</pubDate>
        </item>
        
    </channel>
</rss>
