<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.alexander-kluge.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=134.169.164.188</id>
	<title>Alexander&#039;s Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alexander-kluge.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=134.169.164.188"/>
	<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Spezial:Beitr%C3%A4ge/134.169.164.188"/>
	<updated>2026-09-30T00:56:59Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=SSD&amp;diff=154</id>
		<title>SSD</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=SSD&amp;diff=154"/>
		<updated>2010-11-22T16:56:33Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: Die Seite wurde neu angelegt: „{{GoogleAnalytics}} {{Überarbeiten}}  Abschalten von Diensten“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
{{Überarbeiten}}&lt;br /&gt;
&lt;br /&gt;
Abschalten von Diensten&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Windows:Software_deinstallieren&amp;diff=140</id>
		<title>Windows:Software deinstallieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Windows:Software_deinstallieren&amp;diff=140"/>
		<updated>2010-10-20T09:26:26Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: Die Seite wurde neu angelegt: „{{GoogleAnalytics}} {{Überarbeiten}}  HKEY_LOCAL_MASCHINE &amp;gt; SOFTWARE &amp;gt; Microsoft &amp;gt; Windows &amp;gt; CurrentVersion &amp;gt; Uninstall  Was da weg ist, ist auch unter deinstall…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
{{Überarbeiten}}&lt;br /&gt;
&lt;br /&gt;
HKEY_LOCAL_MASCHINE &amp;gt; SOFTWARE &amp;gt; Microsoft &amp;gt; Windows &amp;gt; CurrentVersion &amp;gt; Uninstall&lt;br /&gt;
&lt;br /&gt;
Was da weg ist, ist auch unter deinstallieren weg.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Windows:Drucker&amp;diff=139</id>
		<title>Windows:Drucker</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Windows:Drucker&amp;diff=139"/>
		<updated>2010-10-16T14:10:41Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
rundll32 printui.dll,PrintUIEntry /in /n &amp;quot;\\Server\Drucker&amp;quot; /q /z&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
* [http://gallery.technet.microsoft.com/ScriptCenter/en-us/ Microsoft Technet]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Web:Onlinefestplatte&amp;diff=138</id>
		<title>Web:Onlinefestplatte</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Web:Onlinefestplatte&amp;diff=138"/>
		<updated>2010-10-16T14:10:14Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
{{Überarbeiten}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1 GB free Space ==&lt;br /&gt;
* [http://www.wuala.com/de/ Wuala]&lt;br /&gt;
&lt;br /&gt;
== 2 GB free Space ==&lt;br /&gt;
* [https://www.dropbox.com/ Dropbox]&lt;br /&gt;
* [http://mozy.com/ Mozy]&lt;br /&gt;
* [https://www.mydrive.ch/ MyDrive]&lt;br /&gt;
* [https://www.idrive.com/ iDrive]&lt;br /&gt;
&lt;br /&gt;
== 10 GB free Space ==&lt;br /&gt;
* [https://www.humyo.de/ Humyo]&lt;br /&gt;
&lt;br /&gt;
== 25 GB free Space ==&lt;br /&gt;
* [http://www.windowslive.de/skydrive/ Skydrive] Dateigröße bis 25 MB&lt;br /&gt;
&lt;br /&gt;
== 50 GB free Space ==&lt;br /&gt;
* [http://www.adrive.com/ ADrive] Dateigröße bis 2 GB&lt;br /&gt;
&lt;br /&gt;
== unbegrenzt free Space ==&lt;br /&gt;
* [http://www.mediafire.com/ MediaFire] Dateigröße bis 200 MB&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=VirtualBox&amp;diff=137</id>
		<title>VirtualBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=VirtualBox&amp;diff=137"/>
		<updated>2010-10-16T14:09:44Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
VirtualBox besitzt eine GUI-Schnittstelle, kann aber auch per Kommandozeile genutzt werden. Dafür ist im Wesentlichen das Kommando &amp;#039;VBoxMange&amp;#039; zu verwenden. Während das GUI selbsterklärend sein sollt, wird hier die Kommandozeile beschrieben.&lt;br /&gt;
&lt;br /&gt;
Als Ausgang benötigt man in der Regel ein ISO-Image der Installations-CD. Unter Linux geht diese sehr leicht mit dem &amp;#039;dd&amp;#039;-Kommando zu erzeugen. Ein Aufruf des Programms kann so aussehen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd if=/dev/dvd of=~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nachdem das ISO-Image vorliegt, ist zunächst die virtuelle Maschine einzurichten:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage createvm -name &amp;quot;Windows_DE&amp;quot; -register&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sind die Maschinen-Parameter zu setzen, z.B. mit den Parametern: OS=Windows XP, RAM=512 MB, ACPI=on, Boot-Lw=DVD, Netzwerkkarte=NAT, Audio=ALSA:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -ostype winxp -memory &amp;quot;512MB&amp;quot; -acpi on -boot1 dvd -nic1 nat -audio alsa&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als weiterer Schritt ist das virtuelle Festplattenimage, z.B. wie hier mit 10GB dynamischer Größe, zu erzeugen und registrieren:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage createvdi -filename &amp;quot;Windows_HDD.vdi&amp;quot; -size 10000 -register&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach ist das Festplattenimage der virtuellen Maschine zuzuordnen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -hda &amp;quot;Windows_HDD.vdi&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun muss das ISO-Image registriert werden:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage registerimage dvd ~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ISO-Image der virtuellen Maschine zuordnen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -dvd ~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Kontrolle der Einstellungen kann z.B. mit folgenden Kommando erfolgen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage showvminfo &amp;quot;Windows_DE&amp;quot;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Source:Email_verschicken&amp;diff=136</id>
		<title>Source:Email verschicken</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Source:Email_verschicken&amp;diff=136"/>
		<updated>2010-10-16T14:09:07Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Diese Seite muss noch weiter überarbeitet werden&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Bevor man sich eine Email &amp;quot;zusammenbastelt&amp;quot;, sollte man ein wenig den Aufbau einer Email kennen. Dafür empfehle ich den folgenden [http://de.wikipedia.org/wiki/Header_%28E-Mail%29 Artikel] aus der großen Wikipedia.&lt;br /&gt;
&lt;br /&gt;
== Email per PHP ==&lt;br /&gt;
Dieses Script verschickt nicht nur eine Email, sondern macht vorher ein Backup von einer mySQL-Datenbank und verschickt dieses als Email. Ich denke, man kann beide Funktionen auseinander halten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
/* Database */&lt;br /&gt;
$db 		= &amp;quot;database&amp;quot;;&lt;br /&gt;
$dbuser		= &amp;quot;username&amp;quot;;&lt;br /&gt;
$dbpw		= &amp;quot;password&amp;quot;;&lt;br /&gt;
$dbhost		= &amp;quot;localhost&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Email*/&lt;br /&gt;
$to 		= &amp;quot;emailadresse&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Misc */&lt;br /&gt;
$file 		= &amp;quot;_B_A_C_K_U_P_&amp;quot; . $db . &amp;quot;.sql.gz&amp;quot;;&lt;br /&gt;
$message 	= &amp;quot;Backup &amp;quot;.$file.&amp;quot; of &amp;quot;.$dbhost.&amp;quot; attached.\n\n-- \n&amp;quot; . strip_tags($_SERVER[&amp;quot;SERVER_SIGNATURE&amp;quot;]);&lt;br /&gt;
$subject	= &amp;quot;Backup &amp;quot;.$file;&lt;br /&gt;
$from 		= &amp;quot;MySQL-Backup&amp;lt;&amp;quot;.$_SERVER[&amp;quot;SERVER_ADMIN&amp;quot;].&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Systemcall */&lt;br /&gt;
system(&amp;quot;/usr/bin/mysqldump -u&amp;quot;.$dbuser.&amp;quot; -p&amp;quot;.$dbpw.&amp;quot; -h &amp;quot;.$dbhost.&amp;quot; &amp;quot;.$db.&amp;quot; | /bin/gzip &amp;gt; &amp;quot;.$file, $fp);&lt;br /&gt;
&lt;br /&gt;
if ($fp==0) echo &amp;quot;Dump generated&amp;quot;; else die(&amp;quot;Ooops. An error occured!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/* Prepare the email*/&lt;br /&gt;
$boundary 	= strtoupper(md5(uniqid(time())));&lt;br /&gt;
$mail_header  	= &amp;quot;From:&amp;quot;.$from.&amp;quot;\n&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;MIME-Version: 1.0&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: multipart/mixed; boundary=&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\nThis is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: text/plain&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Transfer-Encoding: 8bit&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\n&amp;quot;.$message;&lt;br /&gt;
$file_content	 = fread(fopen($file,&amp;quot;r&amp;quot;),filesize($file));&lt;br /&gt;
$file_content	 = chunk_split(base64_encode($file_content));&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: application/octetstream; name=\&amp;quot;&amp;quot;.$file.&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Transfer-Encoding: base64&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$file.&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\n&amp;quot;.$file_content;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary.&amp;quot;--&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Send the email */&lt;br /&gt;
mail($to,$subject,&amp;quot;&amp;quot;,$mail_header);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== weiterführende Links ==&lt;br /&gt;
[http://openbook.galileocomputing.de/javainsel8/javainsel_18_012.htm#mjb306e4632c440d0524d00f224d4fa1bb Email mit Java]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Outlook:Speicher&amp;diff=135</id>
		<title>Outlook:Speicher</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Outlook:Speicher&amp;diff=135"/>
		<updated>2010-10-16T14:08:24Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
[[Datei:Outlook_Eigenschaften_Postfach.jpg|200px|thumb|right|Kontextmenü des Postfachs (1 &amp;amp; 2)]]&lt;br /&gt;
[[Datei:Ordnergroesse.jpg|200px|thumb|right|Outlook Eigenschaften (3)]]&lt;br /&gt;
[[Datei:Ordnergroesse2.jpg|200px|thumb|right|Ordnergröße (4 &amp;amp; 5)]]&lt;br /&gt;
&lt;br /&gt;
Der Speicher den die Emails auf dem Exchange-Server belegen dürfen ist begrenzt. Beim Erreichen eines bestimmten Limits wird man gewarnt und ab dem Überschreiten des Limits werden ankommende Emails abgelehnt. Emails, die zu viel Platz benötigen und selten gebraucht werden, lassen sich auch archivieren und werden dabei vom Echange-Server ausschließlich in eine lokale Kopie verlagert.&lt;br /&gt;
&lt;br /&gt;
Der Benutzer kann selbst prüfen wieviel Platz er auf dem Exchange-Server belegt. Dazu kann folgendermaßen vorgegangen werden:&lt;br /&gt;
# Rechte Maustaste auf dem eigenen Postfach&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Eigenschaften für &amp;quot;Postfach&amp;#039;&amp;#039;&amp;#039; ... auswählen&lt;br /&gt;
# Auf Ordnergröße klicken&lt;br /&gt;
# Den Reiter &amp;#039;&amp;#039;&amp;#039;Serverdaten&amp;#039;&amp;#039;&amp;#039; auswählen&lt;br /&gt;
# Die Gesamtgröße mit Unterordnern ablesen&lt;br /&gt;
&lt;br /&gt;
== Besonderheiten Julius Kühn-Institut ==&lt;br /&gt;
Für den Benutzer stehen z.Z. 1 Gigabyte Platz für sein Postfach zur Verfügung. Jeder Benutzer besitzt einen Share auf dem Server ISBS, der seinen Benutzernamen trägt. Es wird empfohlen, das Anlegen der Archivdatei auf diesen Share vorzunehmen. Das bietet die folgenden Vorteile:&lt;br /&gt;
# Der Share ist von jedem anderen Computer erreichbar&lt;br /&gt;
# Der Share wird automatisch vom Backup der DV erfasst&lt;br /&gt;
# Auf den Share kann &amp;#039;&amp;#039;&amp;#039;ausschließlich&amp;#039;&amp;#039;&amp;#039; der Benutzer zugreifen&lt;br /&gt;
# Die Datei bleibt auch bei Problemen des Nutzers mit dem eigenen PC erhalten&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=MySQL:Im-/Export&amp;diff=134</id>
		<title>MySQL:Im-/Export</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=MySQL:Im-/Export&amp;diff=134"/>
		<updated>2010-10-16T14:07:56Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Zur Sicherung einer mySQL-Datenbank, z.B. auch für das Kopieren dieses Wikis, lässt sich von einer bestehenden Datenbank ein Dump erstellen, der sich bei einer anderen Datenbank wieder einspielen lässt. Sowohl der Import, als auch der Export kann auf verschiedene Weisen geschehen. Einige davon werden hier, nach der Richtung der Daten differenziert, gezeigt.&lt;br /&gt;
&lt;br /&gt;
== Export ==&lt;br /&gt;
=== Per Kommandozeile ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  mysqldump --all-databases -u root -p &amp;gt; sqldump.sql&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Per mySQLAdmin ===&lt;br /&gt;
Im Idealfall hat man das Tool [http://www.mysql-admin.org/ mySQLAdmin] auf dem Server installiert.&lt;br /&gt;
Dazu benötigt man einen Webserver (z.B. [http://httpd.apache.org/ Apache]) und einen [http://www.php.net/ PHP]-Interpreter. Das Einrichten des Apache-Servers unter Ubuntu habe ich unter [[Linux:Apache-Server]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
=== Per Kommandozeile ===&lt;br /&gt;
Der Import funktioniert über die Kommandozeile folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  myaql -u benutzer -p datenbank &amp;lt; sql_dump.sql&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Parameter lauten:&lt;br /&gt;
:; -u benutzer &lt;br /&gt;
:: Es wird der Benutzer benutzer verwendet&lt;br /&gt;
:; -p          &lt;br /&gt;
:: Es wird nach dem Passwort des Benutzers gefragt, könnte man hier auch gleich mit angeben&lt;br /&gt;
:; datenbank   &lt;br /&gt;
:: Die Datenbank in die man zu importieren gedenkt&lt;br /&gt;
:; &amp;lt;           &lt;br /&gt;
:: Richtung: in die Datenbank&lt;br /&gt;
:; sql_dump.sql&lt;br /&gt;
:: Die exportierten Daten, die nun importiert werden sollen&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Linux:smb.conf&amp;diff=133</id>
		<title>Linux:smb.conf</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Linux:smb.conf&amp;diff=133"/>
		<updated>2010-10-16T14:07:29Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
{{Überarbeiten}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[global]&lt;br /&gt;
&lt;br /&gt;
# Change this to the workgroup/NT-domain name your Samba server will part of&lt;br /&gt;
   workgroup = BRAUNSCHWEIG&lt;br /&gt;
# server string is the equivalent of the NT Description field&lt;br /&gt;
   server string = %h server (Samba, Ubuntu)&lt;br /&gt;
# Windows Internet Name Serving Support Section:&lt;br /&gt;
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server&lt;br /&gt;
wins support = no&lt;br /&gt;
# WINS Server - Tells the NMBD components of Samba to be a WINS Client&lt;br /&gt;
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both&lt;br /&gt;
   wins server = 172.16.4.107&lt;br /&gt;
# This will prevent nmbd to search for NetBIOS names through DNS.&lt;br /&gt;
   dns proxy = no&lt;br /&gt;
&lt;br /&gt;
#### Debugging/Accounting ####&lt;br /&gt;
&lt;br /&gt;
# This tells Samba to use a separate log file for each machine&lt;br /&gt;
# that connects&lt;br /&gt;
   log file = /var/log/samba/log.%m&lt;br /&gt;
&lt;br /&gt;
# Cap the size of the individual log files (in KiB).&lt;br /&gt;
   max log size = 1000&lt;br /&gt;
&lt;br /&gt;
# We want Samba to log a minimum amount of information to syslog. Everything&lt;br /&gt;
# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log&lt;br /&gt;
# through syslog you should set the following parameter to something higher.&lt;br /&gt;
   syslog = 0&lt;br /&gt;
&lt;br /&gt;
# Do something sensible when Samba crashes: mail the admin a backtrace&lt;br /&gt;
   panic action = /usr/share/samba/panic-action %d&lt;br /&gt;
&lt;br /&gt;
####### Authentication #######&lt;br /&gt;
# You may wish to use password encryption.  See the section on&lt;br /&gt;
# &amp;#039;encrypt passwords&amp;#039; in the smb.conf(5) manpage before enabling.&lt;br /&gt;
   encrypt passwords = true&lt;br /&gt;
&lt;br /&gt;
# If you are using encrypted passwords, Samba will need to know what&lt;br /&gt;
# password database type you are using.  &lt;br /&gt;
   passdb backend = tdbsam&lt;br /&gt;
&lt;br /&gt;
   obey pam restrictions = yes&lt;br /&gt;
&lt;br /&gt;
# This boolean parameter controls whether Samba attempts to sync the Unix&lt;br /&gt;
# password with the SMB password when the encrypted SMB password in the&lt;br /&gt;
# passdb is changed.&lt;br /&gt;
   unix password sync = yes&lt;br /&gt;
&lt;br /&gt;
# For Unix password sync to work on a Debian GNU/Linux system, the following&lt;br /&gt;
# parameters must be set (thanks to Ian Kahan &amp;lt;&amp;lt;kahan@informatik.tu-muenchen.de&amp;gt; for&lt;br /&gt;
# sending the correct chat script for the passwd program in Debian Sarge).&lt;br /&gt;
   passwd program = /usr/bin/passwd %u&lt;br /&gt;
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .&lt;br /&gt;
&lt;br /&gt;
# This boolean controls whether PAM will be used for password changes&lt;br /&gt;
# when requested by an SMB client instead of the program listed in&lt;br /&gt;
# &amp;#039;passwd program&amp;#039;. The default is &amp;#039;no&amp;#039;.&lt;br /&gt;
   pam password change = yes&lt;br /&gt;
&lt;br /&gt;
# This option controls how unsuccessful authentication attempts are mapped &lt;br /&gt;
# to anonymous connections&lt;br /&gt;
   map to guest = bad user&lt;br /&gt;
&lt;br /&gt;
########## Domains ###########&lt;br /&gt;
&lt;br /&gt;
# Is this machine able to authenticate users. Both PDC and BDC&lt;br /&gt;
# must have this setting enabled. If you are the BDC you must&lt;br /&gt;
# change the &amp;#039;domain master&amp;#039; setting to no&lt;br /&gt;
#&lt;br /&gt;
domain logons = yes&lt;br /&gt;
#&lt;br /&gt;
# The following setting only takes effect if &amp;#039;domain logons&amp;#039; is set&lt;br /&gt;
# It specifies the location of the user&amp;#039;s profile directory&lt;br /&gt;
# from the client point of view)&lt;br /&gt;
# The following required a [profiles] share to be setup on the&lt;br /&gt;
# samba server (see below)&lt;br /&gt;
;   logon path = \\%N\profiles\%U&lt;br /&gt;
# Another common choice is storing the profile in the user&amp;#039;s home directory&lt;br /&gt;
# (this is Samba&amp;#039;s default)&lt;br /&gt;
   logon path = \\%N\%U\profile&lt;br /&gt;
&lt;br /&gt;
# The following setting only takes effect if &amp;#039;domain logons&amp;#039; is set&lt;br /&gt;
# It specifies the location of a user&amp;#039;s home directory (from the client&lt;br /&gt;
# point of view)&lt;br /&gt;
;   logon drive = H:&lt;br /&gt;
   logon home = \\%N\%U&lt;br /&gt;
&lt;br /&gt;
# This allows Unix users to be created on the domain controller via the SAMR&lt;br /&gt;
# RPC pipe.  The example command creates a user account with a disabled Unix&lt;br /&gt;
# password; please adapt to your needs&lt;br /&gt;
 add user script = /usr/sbin/adduser --quiet --disabled-password --gecos &amp;quot;&amp;quot; %u&lt;br /&gt;
&lt;br /&gt;
 ############ Misc ############&lt;br /&gt;
&lt;br /&gt;
# Allow users who&amp;#039;ve been granted usershare privileges to create&lt;br /&gt;
# public shares, not just authenticated ones&lt;br /&gt;
   usershare allow guests = yes&lt;br /&gt;
&lt;br /&gt;
#======================= Share Definitions =======================&lt;br /&gt;
&lt;br /&gt;
# Un-comment the following (and tweak the other settings below to suit)&lt;br /&gt;
# to enable the default home directory shares.  This will share each&lt;br /&gt;
# user&amp;#039;s home directory as \\server\username&lt;br /&gt;
[homes]&lt;br /&gt;
   comment = Home Directories&lt;br /&gt;
   browseable = no&lt;br /&gt;
   hide dot files = yes&lt;br /&gt;
   follow symlinks = yes&lt;br /&gt;
   wide links = yes&lt;br /&gt;
&lt;br /&gt;
# By default, the home directories are exported read-only. Change the&lt;br /&gt;
# next parameter to &amp;#039;no&amp;#039; if you want to be able to write to them.&lt;br /&gt;
read only = no&lt;br /&gt;
&lt;br /&gt;
# File creation mask is set to 0700 for security reasons. If you want to&lt;br /&gt;
# create files with group=rw permissions, set next parameter to 0775.&lt;br /&gt;
   create mask = 0775&lt;br /&gt;
&lt;br /&gt;
# Directory creation mask is set to 0700 for security reasons. If you want to&lt;br /&gt;
# create dirs. with group=rw permissions, set next parameter to 0775.&lt;br /&gt;
   directory mask = 0775&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Linux:Ubuntu&amp;diff=132</id>
		<title>Linux:Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Linux:Ubuntu&amp;diff=132"/>
		<updated>2010-10-16T14:07:00Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Das ISO der aktuellen Distribution [http://www.ubuntu.com/desktop/get-ubuntu/download hier] herunterladen&lt;br /&gt;
* Ubuntu mit Hilfe des Setupassistenten installieren&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
* mySQL-Datenbank einrichten&lt;br /&gt;
* Apache-Webserver mit PHP-Unterstützung&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Linux:ShellScripte&amp;diff=131</id>
		<title>Linux:ShellScripte</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Linux:ShellScripte&amp;diff=131"/>
		<updated>2010-10-16T14:06:40Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Auf Linuxsystemen kann man einige Dinge leichter durch Scripte durchführen bzw. automatisieren. Es gibt verschiedene Shells, aber ich bevorzuge die Shell &amp;#039;&amp;#039;bash&amp;#039;&amp;#039;. Die paar Scripte, die hier gezeigt werden, sind sehr einfach, zeigen aber auch gleichzeitig einige Befehle.&lt;br /&gt;
&lt;br /&gt;
== Verzeichnis-Links erstellen ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  ln -s /mnt/HD_b2/SCRIPTE /home/root/a&lt;br /&gt;
  ln -s /mnt/HD_b2/FTP /home/root/b&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit werden zwei Links mit Namen &amp;#039;&amp;#039;a&amp;#039;&amp;#039; und &amp;#039;&amp;#039;b&amp;#039;&amp;#039; erzeugt. &amp;#039;&amp;#039;A&amp;#039;&amp;#039; zeigt auf ein SCRIPTE-Verzeichnis und &amp;#039;&amp;#039;b&amp;#039;&amp;#039; zeigt auf ein FTP-Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
== Mounten eines NFS-Volumens auf einem anderen Computer ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mount -t nfs 192.168.1.55:/media/truecrypt1/Samba-Freigabe/ /mnt/HD_b2/FTP/Weiterleitung_SAN/1-TB-Platte/&lt;br /&gt;
  mount -t nfs 192.168.1.55:/media/truecrypt2/                /mnt/HD_b2/FTP/Weiterleitung_SAN/2-TB-Platte/&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier werden zwei NFS-Volumen vom Rechner mit der IP 192.168.1.55 an zwei Verzeichnisse gemountet. Ein Benutzer, der auf diese Verzeichnisse zugreift, greift in Wirklichkeit auf die Dateien des anderen Servers zu.&lt;br /&gt;
&lt;br /&gt;
== Update der Cronjobs ==&lt;br /&gt;
[[Datei:Crontab-syntax.gif|200px|thumb|right|Crontab Aufbau]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  echo &amp;#039;10 0 * * * /mnt/HD_b2/SCRIPTE/sync&amp;#039;  &amp;gt;&amp;gt; /var/spool/cron/crontabs/root&lt;br /&gt;
  echo &amp;#039; 1 0 * * * /mnt/HD_b2/SCRIPTE/rmmac&amp;#039; &amp;gt;&amp;gt; /var/spool/cron/crontabs/root&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei mir werden nach dem Neustart des NAS immer die Cronjobs gelöscht. Mit folgendem Script wird das Script &amp;#039;&amp;#039;sync&amp;#039;&amp;#039; wieder in die Crontab geschrieben. Der Doppelpfeil (&amp;gt;&amp;gt;) bewirkt im Gegensatz zum einfachen Pfeil (&amp;gt;), dass die Zeile in die Datei hinzugefügt wird und nicht neu erstellt wird. Der Aufbau der Zeilen in der Crontab findet man z.B. [http://de.wikipedia.org/wiki/Crontab hier].&lt;br /&gt;
In diesem Fall werden jeden Tag um 0:10 Uhr das Script &amp;#039;&amp;#039;sync&amp;#039;&amp;#039; und um 0:01 Uhr das Script &amp;#039;&amp;#039;rmmac&amp;#039;&amp;#039; ausgeführt.&lt;br /&gt;
&lt;br /&gt;
== Automatisches Löschen vom Mac erzeugter Dateien ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  #!/ffp/bin/bash&lt;br /&gt;
&lt;br /&gt;
  # Löschen der .DS_Store Dateien&lt;br /&gt;
  find /mnt/HD_b2/PRIVAT/. -name &amp;#039;.DS_Store&amp;#039; -exec rm {} \;&lt;br /&gt;
  find /mnt/HD_b2/FTP/. -name &amp;#039;.DS_Store&amp;#039; -exec rm {} \;&lt;br /&gt;
&lt;br /&gt;
  # Löschen aller anderen Mac-Dateien&lt;br /&gt;
  find /mnt/HD_b2/PRIVAT/. -name &amp;#039;._*&amp;#039; -exec rm {} \;&lt;br /&gt;
  find /mnt/HD_b2/FTP/. -name &amp;#039;._*&amp;#039; -exec rm {} \;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Mac hinterlässt in jedem Verzeichnis &amp;#039;&amp;#039;versteckte&amp;#039;&amp;#039; Dateien, die mich stören. Für den Mac sind sie evtl. sinnvoll und werden bei diesem auch ausgeblendet, auf dem NAS stören sie aber und somit löscht dieses Script die Dateien und Verzeichnisse in den Ordnern &amp;#039;&amp;#039;PRIVAT&amp;#039;&amp;#039; und &amp;#039;&amp;#039;FTP&amp;#039;&amp;#039;. Mit dem Script sollte man aber vorsichtigt sein, denn weg ist wahrscheinlich auch weg.&lt;br /&gt;
&lt;br /&gt;
== Backup mit dem Programm &amp;#039;&amp;#039;rsync&amp;#039;&amp;#039; ==&lt;br /&gt;
Als Königsdisziplin stelle ich hier ein Script vor, welches ein Backup mit wöchentlicher oder monatlicher Rotation erstellt. Man kann also eine Woche bzw. einen Monat lang immer die Dateien des Vortages zurück erhalten. Um Speicherplatz zu sparen wird nicht alles kopiert, sondern nur Veränderungen. Daher sieht es manchmal so aus, als ob das Script nicht funktionieren würde. Tut es aber. ;-) An Hand der Kommentare sollte man das Script verstehen. Zu dem Script gehört eine weitere Datei, s. u..&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  #!/ffp/bin/bash&lt;br /&gt;
&lt;br /&gt;
  BDIR=/mnt/HD_b2/PRIVAT&lt;br /&gt;
&lt;br /&gt;
  # Zielverzeichnis für rsync&lt;br /&gt;
  DDIR=/mnt/HD_a2/BACKUP&lt;br /&gt;
&lt;br /&gt;
  # Excludes - zeilenweise mit mit Plus/Minus&lt;br /&gt;
  EXCLUDES=/mnt/HD_b2/SCRIPTE/rsy.excl&lt;br /&gt;
&lt;br /&gt;
  # wöchentliche Rotation&lt;br /&gt;
  BACKUPDIR=${1:-`date +%A`}&lt;br /&gt;
  # ... oder monatliche Rotation&lt;br /&gt;
  #BACKUPDIR=${1:-&amp;quot;day&amp;quot;`date +%d`}&lt;br /&gt;
&lt;br /&gt;
  #OPTS=&amp;quot;&lt;br /&gt;
  #--force--ignore-errors \&lt;br /&gt;
  OPTS=&amp;quot;--delete-excluded \&lt;br /&gt;
  --exclude-from=$EXCLUDES&lt;br /&gt;
  --delete --backup --backup-dir=$DDIR/$BACKUPDIR -a -v&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export PATH=$PATH:/ffp/bin:/ffp/sbin&lt;br /&gt;
&lt;br /&gt;
  # Fehlendes Verzeichnis erzeugen&lt;br /&gt;
  [ -d $DDIR ] || mkdir $DDIR&lt;br /&gt;
&lt;br /&gt;
  # Logdatei schreiben&lt;br /&gt;
  echo oooooooooooooooooooooooooooooooooooooooooooo &amp;gt;&amp;gt; /mnt/HD_b2/SCRIPTE/rsy.log&lt;br /&gt;
  date &amp;gt;&amp;gt; /mnt/HD_b2/SCRIPTE/rsy.log&lt;br /&gt;
&lt;br /&gt;
  # Altes Backup-Verzeicnis löschen&lt;br /&gt;
  [ -d $DDIR/$BACKUPDIR ] &amp;amp;&amp;amp; (echo remaking $DDIR/$BACKUPDIR &amp;gt;&amp;gt; /mnt/HD_b2/SCRIPTE/rsy.log; rm -r $DDIR/$BACKUPDIR)&lt;br /&gt;
&lt;br /&gt;
  # Aktueller Transfer&lt;br /&gt;
  rsync $OPTS $BDIR $DDIR/current &amp;gt;&amp;gt; /mnt/HD_b2/SCRIPTE/rsy.log&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beim Anpassen des Script übersieht man manchmal eine Zeile. Dann gibt es natürlich einen Fehler.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Gelogged wird in die Datei rsy.log. Die Datei rsy.excl steuert, ob Verzeichnisse ausgelassen oder berücksichtigt werden sollen. Sie sieht z.B. so aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  + Bilder&lt;br /&gt;
  + Dokumente&lt;br /&gt;
  + Joomla_Stuff&lt;br /&gt;
  - Literatur&lt;br /&gt;
  - Mathematische_Simulationen&lt;br /&gt;
  - Mobile_Phone&lt;br /&gt;
  + Präsentationen&lt;br /&gt;
  - Treiber&lt;br /&gt;
  - Webseite&lt;br /&gt;
  - .DS_Store&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Truecrypt&amp;diff=130</id>
		<title>Truecrypt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Truecrypt&amp;diff=130"/>
		<updated>2010-10-16T14:06:17Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
== Truecrypt mit Rechten für Samba und NTFS ==&lt;br /&gt;
Bei mir kommt es vor, dass ich beim Einbinden eines Truecrypt-Laufwerks mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  truecrypt /dev/sdb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
das Laufwerk nur mit Rechten für den Benutzer gemountet wird, was dazu führt, dass der Samba-Daemon nicht darauf zugreifen kann. Der Befehl &amp;#039;&amp;#039;chmod&amp;#039;&amp;#039; ist wirkungslos. Statt dessen muss man das Trucrypt-Volumen per Hand mounten. Mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mount /dev/mapper/truecrypt2 /media/truecrypt2/ -o umask=0000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
geht das dann. Vermutlich kann man dem Truecrypt-Befehl das umask schon mitgeben.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Linux:Kernel_upgrade&amp;diff=129</id>
		<title>Linux:Kernel upgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Linux:Kernel_upgrade&amp;diff=129"/>
		<updated>2010-10-16T14:05:53Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Ein Upgrade des bestehenden Kernels funktioniert auf verschiedene Weisen:&lt;br /&gt;
&lt;br /&gt;
== Updatemanager (graphisch) ==&lt;br /&gt;
* Start System/Administration/Update Manager &amp;#039;&amp;#039;&amp;#039;oder&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* In der Kommandozeile: &amp;#039;&amp;#039;update-manager -d&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Kommandozeile ==&lt;br /&gt;
1. Nötigenfalls das Paket update-manager-core installieren:&lt;br /&gt;
  sudo apt-get install update-manager-core&lt;br /&gt;
2. Das Upgrade-Tool starten:&lt;br /&gt;
  sudo do-release-upgrade&lt;br /&gt;
3. Den Instruktionen folgen&lt;br /&gt;
&lt;br /&gt;
== Mit Installations-CD ==&lt;br /&gt;
* CD einlegen &amp;#039;&amp;#039;&amp;#039;oder&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* ISO mounten:&lt;br /&gt;
  sudo mount -o loop ~/Desktop/ubuntu-??.??-alternate-i386.iso /media/cdrom0&lt;br /&gt;
* &amp;#039;&amp;#039;Run upgrade&amp;#039;&amp;#039; ausführen&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
[https://help.ubuntu.com/community/KarmicUpgrades Ubuntu Wiki]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Linux:Apache-Server&amp;diff=128</id>
		<title>Linux:Apache-Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Linux:Apache-Server&amp;diff=128"/>
		<updated>2010-10-16T14:05:34Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Der Apache2-Server wird (unter Ubuntu) über mehrere Konfigurationsdateien gesteuert. Sie liegen alle im Verzeichnis &amp;#039;&amp;#039;/etc/apache2&amp;#039;&amp;#039;. Das Wurzelverzeichnis für die HTML-Seiten liegt i.d.R. in &amp;#039;&amp;#039;/var/www&amp;#039;&amp;#039;.&lt;br /&gt;
Nicht in jeder Ubuntu-Version hat das Verzeichnis &amp;#039;&amp;#039;/var/www&amp;#039;&amp;#039;  die richtigen Rechte gesetzt. Daher ist es sinnvoll, folgende Befehle aufzuführen, welche dafür sorgen, dass sowohl der Systembenutzer &amp;#039;&amp;#039;www-data&amp;#039;&amp;#039; als auch die Gruppe &amp;#039;&amp;#039;www-data&amp;#039;&amp;#039; Schreibrechte auf dieses Verzeichnis bekommen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  sudo chmod 0775 /var/www&lt;br /&gt;
  sudo chgrp -R www-data /var/www &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um als normaler Benutzer Dateien in &amp;#039;&amp;#039;/var/www&amp;#039;&amp;#039; anlegen oder bearbeiten zu können, wird der gewünschte Benutzer zur Gruppe &amp;#039;&amp;#039;www-data&amp;#039;&amp;#039; hinzugefügt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  sudo adduser &amp;lt;benutzername&amp;gt; www-data &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== apache2.conf ==&lt;br /&gt;
Die &amp;#039;&amp;#039;apache2.conf&amp;#039;&amp;#039; ist eigentlich die zentrale Konfigurationsdatei für den Apache2-Webserver. Durch die vielen Einstellmöglichkeiten ist sie aber zu groß geworden und verweist an vielen Stellen auf andere Konfigurationsdateien. So z.B.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  # Include module configuration:&lt;br /&gt;
  Include mods-enabled/*.load&lt;br /&gt;
  Include mods-enabled/*.conf&lt;br /&gt;
&lt;br /&gt;
  # Include all the user configurations:&lt;br /&gt;
  Include httpd.conf&lt;br /&gt;
&lt;br /&gt;
  # Include ports listing&lt;br /&gt;
  Include ports.conf&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der erste Abschnitt verweist auf die Module, die Apache2 verwenden soll. Das ist hier gleich ein ganzes Verzeichnis. Wenn man neue Module benötigt, braucht man nur die entsprechende &amp;#039;&amp;#039;.load&amp;#039;&amp;#039; und &amp;#039;&amp;#039;.conf&amp;#039;&amp;#039;-Dateien aus dem Verzeichnis &amp;#039;&amp;#039;mods-available&amp;#039;&amp;#039; in das Verzeichnis &amp;#039;&amp;#039;mods-enabled&amp;#039;&amp;#039; kopieren. Für die php-Unterstützung sind das beispielsweise &amp;#039;&amp;#039;php5.conf&amp;#039;&amp;#039; und &amp;#039;&amp;#039;php5.load&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Im zweiten und dritten Abschnitt werden die beiden weiter unten erwähnten Dateien geladen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
  # Include the virtual host configurations:&lt;br /&gt;
  Include sites-enabled/&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Abschnitt verweist in das Verzeichnis &amp;#039;&amp;#039;sites-enabled&amp;#039;&amp;#039;, wo die Webseiten-Konfiguration vorgenommen wird. Sonst beinhaltet die &amp;#039;&amp;#039;apache2.conf&amp;#039;&amp;#039; nur Einstellungen wie und wo geloggt werden soll und unter welchen Rechten der Server laufen soll. Die Beschreibungen in der Konfigurationsdatei sind dazu selbsterklärend.&lt;br /&gt;
&lt;br /&gt;
== httpd.conf ==&lt;br /&gt;
Früher wurde die httpd.conf für die Konfiguration der Webseiten benutzt. Heute scheint sie leer zu sein.&lt;br /&gt;
&lt;br /&gt;
== ports.conf ==&lt;br /&gt;
In der &amp;#039;&amp;#039;ports.conf&amp;#039;&amp;#039; werden die Ports angegeben auf den der Apache-Webserver hören soll.  Standardmäßig ist das Port 80 (der erste Eintrag). Ich habe noch den Port 81 (der zweite Abschnitt) für Testzwecke hinzugefügt. Im dritten Abschnitt wird getestet, ob das Verschlüsselungsmodul ([http://de.wikipedia.org/wiki/Transport_Layer_Security SSL]) vorhanden ist, denn dann wird auch Port 443 (https) aktiviert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  NameVirtualHost *:80&lt;br /&gt;
  Listen 80&lt;br /&gt;
&lt;br /&gt;
  NameVirtualHost *:81&lt;br /&gt;
  Listen 81&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;IfModule mod_ssl.c&amp;gt;&lt;br /&gt;
    # SSL name based virtual hosts are not yet supported, therefore no&lt;br /&gt;
    # NameVirtualHost statement here&lt;br /&gt;
    Listen 443&lt;br /&gt;
  &amp;lt;/IfModule&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man kann natürlich auch eine Beschränkung auf bestimmte Rechner durchführen. Dann muss die IP mit angegeben werden, beispielsweise &amp;#039;&amp;#039;Listen 127.0.0.1:81&amp;#039;&amp;#039; lässt nur den Rechner zu auf dem der Apache installiert ist.&lt;br /&gt;
&lt;br /&gt;
== sites-enabled ==&lt;br /&gt;
=== 000-default ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
	ServerAdmin webmaster@localhost&lt;br /&gt;
	ServerName aah253.braunschweig.bba.intern&lt;br /&gt;
&lt;br /&gt;
	DocumentRoot /var/www/produktiv&lt;br /&gt;
	&amp;lt;Directory /&amp;gt;&lt;br /&gt;
		Options FollowSymLinks&lt;br /&gt;
		AllowOverride None&lt;br /&gt;
	&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/&lt;br /&gt;
	&amp;lt;Directory &amp;quot;/usr/lib/cgi-bin&amp;quot;&amp;gt;&lt;br /&gt;
		AllowOverride None&lt;br /&gt;
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch&lt;br /&gt;
		Order allow,deny&lt;br /&gt;
		Allow from all&lt;br /&gt;
	&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	ErrorLog /var/log/apache2/error.log&lt;br /&gt;
&lt;br /&gt;
	# Possible values include: debug, info, notice, warn, error, crit,&lt;br /&gt;
	# alert, emerg.&lt;br /&gt;
	LogLevel warn&lt;br /&gt;
&lt;br /&gt;
	CustomLog /var/log/apache2/access.log combined&lt;br /&gt;
&lt;br /&gt;
        Alias /doc/ &amp;quot;/usr/share/doc/&amp;quot;&lt;br /&gt;
        &amp;lt;Directory &amp;quot;/usr/share/doc/&amp;quot;&amp;gt;&lt;br /&gt;
            Options Indexes MultiViews FollowSymLinks&lt;br /&gt;
            AllowOverride None&lt;br /&gt;
            Order deny,allow&lt;br /&gt;
            Deny from all&lt;br /&gt;
            Allow from 127.0.0.0/255.0.0.0 ::1/128&lt;br /&gt;
        &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        AddDefaultCharset UTF-8&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 001-Port81 ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;VirtualHost *:81&amp;gt;&lt;br /&gt;
	ServerAdmin webmaster@localhost&lt;br /&gt;
&lt;br /&gt;
	DocumentRoot /var/www/testumgebung&lt;br /&gt;
	&amp;lt;Directory /&amp;gt;&lt;br /&gt;
		Options +FollowSymLinks +Indexes&lt;br /&gt;
		AllowOverride None&lt;br /&gt;
	&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	ErrorLog /var/log/apache2/error.log&lt;br /&gt;
&lt;br /&gt;
	# Possible values include: debug, info, notice, warn, error, crit,&lt;br /&gt;
	# alert, emerg.&lt;br /&gt;
	LogLevel warn&lt;br /&gt;
&lt;br /&gt;
	CustomLog /var/log/apache2/access.log combined&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        AddDefaultCharset UTF-8&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== weiterführende Links ==&lt;br /&gt;
*[http://wiki.ubuntuusers.de/apache Ubuntu Wiki]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Java:Excel&amp;diff=127</id>
		<title>Java:Excel</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Java:Excel&amp;diff=127"/>
		<updated>2010-10-16T14:05:13Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
== Excel-Datei mit der JAVA POI-HSSF API einlesen ==&lt;br /&gt;
Um eine Excel Datei einzulesen, benötigt man zunächst einen InputStream, dem die einzulesende Datei in Form eines String, der den Dateipfad enthält, übergeben wird. Dieser InputStream wird wiederum beim Erstellen eines Objektes HSSFWorkbook, welches sozusagen für die Excel-Datei als ganzes steht, benötigt. Über das erzeugte Workbook Objekt kann man die Funktion getSheet aufrufen, die entweder mit dem Namen des Tabellenblatts oder die Position verarbeiten kann.&lt;br /&gt;
&lt;br /&gt;
Damit wären auch alle Voraussetzungen erfüllt um Zeilenweise die einzelnen Excel Zellen einlesen zu können. Dies funktioniert recht simpel über die Klasse HSSFRow, von der man ein Objekt erzeugen muss in dem man über das HSSFSheet Objekt eine bestimmte Zeile sozusagen einließt. Die einzelnen Zellen können dann problemlos über dieses Objekt angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  InputStream input = new FileInputStream(filename);&lt;br /&gt;
  HSSFWorkbook wb = new HSSFWorkbook(input);&lt;br /&gt;
  HSSFSheet sheet = wb.getSheet(sheetname);&lt;br /&gt;
  HSSFRow row = sheet.getRow(0);&lt;br /&gt;
  row.getCell(0).getNumericCellValue();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Excel-Datei mit der JAVA POI-HSSF API schreiben ==&lt;br /&gt;
Analog zum Einlesen einer Excel Datei funktioniert auch das Schreiben in eine Excel Datei über die Java POI API. Erst ein Workbook anlegen, dann über dieses Workbook ein Tabellenblatt erstellen bzw. ein vorhandenes öffnen. Und nun kann man die Zellen wiederum über die Row und Cell Objekte ansprechen, mit Inhalten befüllen und formatieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public HSSFWorkbook wb = new HSSFWorkbook();&lt;br /&gt;
  public HSSFSheet sheet = wb.createSheet(&amp;quot;Name des Excel-Sheets&amp;quot;);&lt;br /&gt;
  public HSSFRow row = null;&lt;br /&gt;
  public HSSFCell cell = null;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die einzelnen Zellen lassen sich vielseitig formatieren. Angefangen von Ausrichtungen, über die Schriftart, Schröße und Stärke kann unter anderem auch der Hintergrund farblich angepasst oder z.B. einer Zelle ein bestimmtes Format zugewiesen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public HSSFDataFormat format = wb.createDataFormat();&lt;br /&gt;
  public HSSFFont font = wb.createFont();&lt;br /&gt;
  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);&lt;br /&gt;
  public HSSFColor color = null;&lt;br /&gt;
  public HSSFCellStyle cellstyle = wb.createCellStyle();&lt;br /&gt;
  cellstyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);&lt;br /&gt;
  cellstyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);&lt;br /&gt;
  cellstyle.setFillPattern( HSSFCellStyle.SOLID_FOREGROUND );&lt;br /&gt;
  cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle .setBorderRight(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setFont(font);&lt;br /&gt;
  cellstyle.setDataFormat(format.getFormat(&amp;quot;#,##&amp;quot;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn man sich ein Standard-Set an Formatierungen in Form der CellStyles erarbeitet hat kann man nun die Zellen mit Inhalten beschreiben und anschließen den passenden CellStyle setzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  row = sheet1.createRow((short)0);&lt;br /&gt;
  cell = row.createCell(0);&lt;br /&gt;
  cell.setCellValue(&amp;quot;Zeile 1 - Zelle 1&amp;quot;);&lt;br /&gt;
  cell.setCellStyle(cellstyle);&lt;br /&gt;
  row = sheet1.createRow((short)1);&lt;br /&gt;
  cell = row.createCell(1);&lt;br /&gt;
  cell.setCellValue(&amp;quot;Zeile 2 - Zelle 2&amp;quot;);,&lt;br /&gt;
  cell.setCellStyle(cellstyle);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Festlegung der Zellbreite kann automatisch erfolgen. Die fertige Datei lässt sich als &amp;#039;&amp;#039;FileOutputStream&amp;#039;&amp;#039; abspeichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  sheet.autoSizeColumn((short)0);&lt;br /&gt;
  sheet.autoSizeColumn((short)1);&lt;br /&gt;
  FileOutputStream fileOut = new FileOutputStream(&amp;quot;workbook.xls&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
*[http://poi.apache.org/spreadsheet/quick-guide.html Apache POI Developer Guide]&lt;br /&gt;
*[http://poi.apache.org/download.html Apache POI Download]&lt;br /&gt;
*[http://poi.apache.org/apidocs/index.html Apache POI API]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Java:Dateioperationen&amp;diff=126</id>
		<title>Java:Dateioperationen</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Java:Dateioperationen&amp;diff=126"/>
		<updated>2010-10-16T14:04:40Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Dateioperationen werden immer mal wieder benötigt. Sie sind zwar relativ einfach zu programmieren, aber deshalb zeitaufwändig, weil man immer wieder nachschauen muss, wie das nocheinmal ging. Daher hier eine Sammlung von ein paar Dateioperationen.&lt;br /&gt;
&lt;br /&gt;
== Dateien ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
    private void dateiVerschieben(String quelle, String ziel) {&lt;br /&gt;
        // File Objekt für die Ursprungs-Datei erzeugen&lt;br /&gt;
        File source = new File(quelle);&lt;br /&gt;
        // File Objekt für die neue Datei erzeugen&lt;br /&gt;
        File destination = new File(ziel);&lt;br /&gt;
        // Datei wird umbenannt/verschoben&lt;br /&gt;
        if (!source.renameTo(destination)) {&lt;br /&gt;
            System.err.println(&amp;quot;Fehler beim Umbenennen der Datei: &amp;quot; + source.getName());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void dateiUmbenennen(String quelle, String neuerName) {&lt;br /&gt;
        File alt = new File(quelle);&lt;br /&gt;
        String pfad = alt.getParent() + File.separator;&lt;br /&gt;
        File neu = new File(pfad + neuerName);&lt;br /&gt;
        alt.renameTo(neu);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dateien auflisten besteht aus zwei Komponenten. Einmal einem Filter und einmal der eigentlichen Methode.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
public class FilterMP3 implements FilenameFilter{&lt;br /&gt;
&lt;br /&gt;
    public boolean accept(File dir, String name) {&lt;br /&gt;
      String endung = name.substring(name.length() - 4);&lt;br /&gt;
      if (endung.equalsIgnoreCase(&amp;quot;.mp3&amp;quot;)) {&lt;br /&gt;
        return true;&lt;br /&gt;
      } else {&lt;br /&gt;
        return false;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
    // Das ist die Methode in einer anderen Klasse&lt;br /&gt;
    private String[] verzeichnisListen(String vz) {&lt;br /&gt;
        File verzeichnis = new File(vz);&lt;br /&gt;
        FilterMP3 mp3filter = new FilterMP3();&lt;br /&gt;
        return verzeichnis.list(mp3filter);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verzeichnisse ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
    private void verzeichnisErstellen(String vzname) {&lt;br /&gt;
        try {&lt;br /&gt;
            File verzeichnis = new File(vzname);&lt;br /&gt;
            verzeichnis.mkdirs();&lt;br /&gt;
        } catch (Exception e) {&lt;br /&gt;
            System.out.println(&amp;quot;Fehler: &amp;quot; + e.getMessage());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void verzeichnisLoeschen(File pfad) {&lt;br /&gt;
        for (File file : pfad.listFiles()) {&lt;br /&gt;
            if (file.isDirectory()) {&lt;br /&gt;
                verzeichnisLoeschen(file);&lt;br /&gt;
            }&lt;br /&gt;
            file.delete();&lt;br /&gt;
        }&lt;br /&gt;
        pfad.delete();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Java:Array&amp;diff=125</id>
		<title>Java:Array</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Java:Array&amp;diff=125"/>
		<updated>2010-10-16T14:04:20Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
== Zweidimensionale Felder ==&lt;br /&gt;
+-----------&amp;gt; x&amp;lt;br /&amp;gt; &lt;br /&gt;
|&amp;lt;br /&amp;gt; &lt;br /&gt;
|&amp;lt;br /&amp;gt; &lt;br /&gt;
v&lt;br /&gt;
&lt;br /&gt;
y&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mit diesem Quellcode zeige ich:&lt;br /&gt;
* Wie man Felder erzeugt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
   int x = 6, y = 3;&lt;br /&gt;
   int testf[][] = new int[x][y];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Wie man deren Größe wieder herausbekommt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
   System.out.println(x = testf.length);&lt;br /&gt;
   System.out.println(y = testf[0].length);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Wie man deren Inhalt ausgibt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
   for (int j = 0; j &amp;lt; y; j++) {&lt;br /&gt;
       for (int i = 0; i &amp;lt; x; i++) {&lt;br /&gt;
           System.out.print(testf[i][j]);&lt;br /&gt;
       }&lt;br /&gt;
       System.out.println();&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=HTML:Video-Tag&amp;diff=124</id>
		<title>HTML:Video-Tag</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=HTML:Video-Tag&amp;diff=124"/>
		<updated>2010-10-16T14:03:43Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Mit dem HTML 5.0-Standard lassen sich jetzt Video und Audio-Inhalte direkt im Browser ohne eines speziellen Streamingservers darstellen. Die großen Vorteile sind dabei:&lt;br /&gt;
&lt;br /&gt;
* Keine Zusätzliche Software für die Webseite&lt;br /&gt;
* Weniger Serverlast&lt;br /&gt;
* Verschiedene Qualitätsstufen, die der Browser wählen kann&lt;br /&gt;
* Keine zusätzlichen PlugIns im Browser benötigt&lt;br /&gt;
&lt;br /&gt;
Dafür benötigt man aber einen Browser, der das HTML-Tag &amp;#039;&amp;#039;&amp;lt;video&amp;gt;&amp;#039;&amp;#039; versteht. Zur Zeit sind das:&lt;br /&gt;
&lt;br /&gt;
* Firefox seit 3.6&lt;br /&gt;
* Opera&lt;br /&gt;
* Google Chrome bzw. Iron&lt;br /&gt;
* Safari &amp;#039;&amp;#039;&amp;#039;mit PlugIn&amp;#039;&amp;#039;&amp;#039; XiphQT&lt;br /&gt;
&lt;br /&gt;
und die Videos müssen im Ogg-Theora-Format vorliegen. Mehr Informationen über diesen Codec findet man in der großen [http://de.wikipedia.org/wiki/Theora Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Folgender Quelltext kann ein Video darstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;video src=&amp;quot;http://medien.alexander-kluge.de/videos/Testfilm.ogg&amp;quot; preload=&amp;quot;none&amp;quot;&lt;br /&gt;
    width=&amp;quot;320px&amp;quot; height=&amp;quot;240px&amp;quot; poster=&amp;quot;http://medien.alexander-kluge.de/bilder/Braustuberl.jpg&amp;quot;&lt;br /&gt;
    controls=&amp;quot;controls&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Nützliches Zusatzmaterial ==&lt;br /&gt;
[http://http://tinyvid.tv/ Verschieden Videos im ogg-Format]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Firefox:Tweaks&amp;diff=123</id>
		<title>Firefox:Tweaks</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Firefox:Tweaks&amp;diff=123"/>
		<updated>2010-10-16T14:03:19Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Firefox speichert seine Einstellungen in verschiedene Konfigurations-Dateien. Um die erweiterten Einstellungen zu bearbeiten und so den Browser den eigenen Bedürfnissen anzupassen, gibt man einfach &amp;#039;&amp;#039;about:config&amp;#039;&amp;#039; in die Adressleiste ein und drückt auf Enter.&lt;br /&gt;
&lt;br /&gt;
Über das Eingabefeld &amp;#039;&amp;#039;Filter&amp;#039;&amp;#039; können die zu ändernden Strings direkt eingegeben und so schneller gefunden werden. Wenn nicht anders beschrieben, beziehen sich alle Strings, bei denen ein Wert geändert werden soll, auf diesen internen Konfigurationsmanager.&lt;br /&gt;
&lt;br /&gt;
Einige Einstellungen werden über die Datei &amp;#039;&amp;#039;userChrome.css&amp;#039;&amp;#039; durchgeführt, die sich im Unterverzeichnis &amp;#039;&amp;#039;Chrome&amp;#039;&amp;#039; des jeweiligen Firefox-Profilordners befindet. Die Datei kann mit einem beliebigen Editor geöffnet und bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Google-Suche direkt aus der Adressleiste ==&lt;br /&gt;
&lt;br /&gt;
Wer Firefox anweisen will, einen Begriff direkt aus der Adressleiste heraus mit Google zu suchen, kann dies bewerkstelligen, indem er im Konfigurationsmanager einen String hinzufügt. Dazu mit der rechten Maustaste in das Fenster klicken und &amp;quot;Neu String&amp;quot; auswählen. Dort den Namen: &amp;quot;keyword.url&amp;quot; eintragen und dem neuen String dann den Wert &amp;quot;http://google.de/search?btnG=Google+Search&amp;amp;q=&amp;quot; zuweisen.&lt;br /&gt;
&lt;br /&gt;
== Automatische Ergänzung der Domain (TLD) ==&lt;br /&gt;
&lt;br /&gt;
Wird beim Firefox eine URL ohne dem Kürzel der Top Level Domain angegeben, ergänzt der Browser sie selbstständig mit &amp;quot;.com&amp;quot; oder &amp;quot;.org&amp;quot;. Für den deutschsprachigen Raum wäre in in den meisten Fällen jedoch eine Ergänzung mit &amp;quot;.de&amp;quot; sinnvoller. Mit folgender Einstellung kann dies geändert werden.&lt;br /&gt;
Dazu zu dem String: &amp;quot;browser.fixup.alternate.suffix&amp;quot; navigieren und ihm statt &amp;quot;.com&amp;quot; den Wert &amp;quot;.de&amp;quot; zuweisen.&lt;br /&gt;
&lt;br /&gt;
== Tabs im Hintergrund laden ==&lt;br /&gt;
&lt;br /&gt;
Klickt man in Firefox auf einen Link, der einen neuen Tab öffnet, dann erhält dieser den Fokus. Mit einem kleinen Trick, kann Firefox kann neue Tabs auch im Hintergrund öffnen, so dass man beim Lesen nicht gestört wird.&lt;br /&gt;
Um den aktuellen Tab immer aktiv zu halten muss der Wert von &amp;quot;browser.tabs.loadInBackground&amp;quot; von &amp;quot;true&amp;quot; in &amp;quot;false&amp;quot; geändert werden.&lt;br /&gt;
&lt;br /&gt;
== Download Manager automatisch schliessen ==&lt;br /&gt;
&lt;br /&gt;
Standardmässig muss der Downloadmanager nach jedem Abschluss eines Downloads von Hand geschlossen werden, mit einem kleinen Eingriff macht er das aber auch automatisch.&lt;br /&gt;
Wird dem String: &amp;quot;browser.download.manager.closeWhenDone&amp;quot; der Wert &amp;quot;true&amp;quot; zugewiesen, schliesst Firefox den Download Manager selbstständig nach jedem Download.&lt;br /&gt;
&lt;br /&gt;
== Download-Informationen in der Statusleiste anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Firefox zeigt alle Informationen des Downloadmanagers in einem kleinen eigenen Fenster an, auf Wunsch kann er die Informationen aber auch ich der Statusleiste anzeigen. Möchte jemand die Download-Informationen lieber in der Taskleiste angezeigt bekommen, muss er den Wert für die Einstellung: &amp;quot;browser.download.manager.useWindow&amp;quot; auf &amp;quot;false&amp;quot; setzen, steht der Wert auf &amp;quot;true&amp;quot; bleibt Firefox bei seinem Download Fenster.&lt;br /&gt;
&lt;br /&gt;
== Referrer (Referer) blocken oder entfernen ==&lt;br /&gt;
&lt;br /&gt;
Als Referrer wird die Internetadresse der Webseite bezeichnet, von der der Benutzer durch Anklicken eines Links zu der aktuellen Seite gekommen ist. Beim Anklicken eines jeden Links wird der Referrer automatisch an den Webserver übertragen. Der Betreiber einer Internetseite kann die Angaben dann auf jede erdenkliche Weise verarbeiten, da praktisch jeder Server diese protokolliert.&lt;br /&gt;
Firefox bietet die Möglichkeit das Senden des Referrers einzuschränken oder ganz abzuschalten. Wird der Wert in der Zeile &amp;quot;network.http.sendRefererHeader&amp;quot; von &amp;quot;2&amp;quot; auf &amp;quot;0&amp;quot; geändert, sendet Firefox keinen Referrer. Der Wert &amp;quot;1&amp;quot; sendet den Referrer noch beim Aufruf von HTML-Dateien, nicht aber beim Aufrufen von Bildern.&lt;br /&gt;
&lt;br /&gt;
== Autovervollständigen von Webadressen anpassen ==&lt;br /&gt;
&lt;br /&gt;
Ab Firefox 3 vervollständigt Firefox automatisch URLs, die per Hand eingegeben werden. Dazu benutzt Firefox nicht nur URLs, die per Hand eingetippt wurden, sondern auch bekannte URLs der Webseiten aus den Lesezeichen und der History.&lt;br /&gt;
Wer verhindern möchte, dass Firefox die URLs der Lesezeichen zum Autovervollständigen nutzt, weil er seine Lesezeichen nicht jedem preisgeben will, kann dies unterbinden, indem er die Werte der Strings: &amp;quot;places.frecency.unvisitedBookmarkBonus&amp;quot; und &amp;quot;places.frecency.bookmarkVisitBonus&amp;quot; beide auf &amp;quot;0&amp;quot; stellt.&lt;br /&gt;
Wer Firefox anweisen möchte, zum Autovervollständigen nur URLs zu benutzen, die schon zuvor per Hand eingegeben wurden, kann dies, indem er den Wert von &amp;quot;browser.urlbar.matchOnlyTyped&amp;quot; auf &amp;quot;true&amp;quot; setzt.&lt;br /&gt;
&lt;br /&gt;
== Anzahl der Seiten in der Autovervollständigung ==&lt;br /&gt;
&lt;br /&gt;
Auch die Anzahl der Vorschläge, die Firefox per Dropdownmenü beim Eintippen einer URL macht, lässt sich individuell einstellen. Die Anzahl der Vorschläge lässt sich über den Wert des Strings: &amp;quot;browser.urlbar.maxRichResults&amp;quot; nach eigenen Vorstellungen definieren.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Bilder_verwalten:Taggen&amp;diff=122</id>
		<title>Bilder verwalten:Taggen</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Bilder_verwalten:Taggen&amp;diff=122"/>
		<updated>2010-10-16T14:02:47Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GoogleAnalytics}}&lt;br /&gt;
Bei der Menge von Bildern, die so anfallen, benötigt man ein System diese zu ordnen und wieder zu finden. Meistens werden irgendwelche Ordnerstrukturen auf der Festplatte angelegt und die Bilder dort hinein verschoben. Über den Inhalt der Fotos weiß man aber trotzdem meistens nichts.&lt;br /&gt;
Mit einigen Programmen lassen sich auch Beschreibungen über den Inhalt der Bilder dem Bild zuordnen. Wird das Programm jedoch nicht weiter verwendet, kann diese Zuordnung verloren gehen. Es existieren jedoch zwei Standards mit denen man den Bildern zusätzliche Informationen zuordnen kann, die mit im Bild gespeichert werden. Die beiden wichtigen Standards sind:&lt;br /&gt;
&lt;br /&gt;
# [http://de.wikipedia.org/wiki/IPTC-NAA-Standard IPTC] und&lt;br /&gt;
# [http://de.wikipedia.org/wiki/Exif EXIF]&lt;br /&gt;
&lt;br /&gt;
Der erste Standard ist für den Bildinhalt geeignet, der zweite mehr für die verwendeten Einstellungen.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Vorlage:%C3%9Cberarbeiten&amp;diff=106</id>
		<title>Vorlage:Überarbeiten</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Vorlage:%C3%9Cberarbeiten&amp;diff=106"/>
		<updated>2010-10-09T11:17:23Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; border: 2px purple solid; background: #f4f4f4; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
Diese Seite ist noch nicht fertig gestellt. Zur Zeit dient sie daher nur als Gedankenstütze.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Falls sie jemand fertig stellen möchte, kann er das gerne tun. ;-)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Vorlage:%C3%9Cberarbeiten&amp;diff=105</id>
		<title>Vorlage:Überarbeiten</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Vorlage:%C3%9Cberarbeiten&amp;diff=105"/>
		<updated>2010-10-09T11:16:36Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;text-align: center; border: 2px purple solid; background: #f4f4f4; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
Diese Seite ist noch nicht fertig gestellt. Zur Zeit dient sie daher nur als Gedankenstütze.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Falls sie jemand fertig stellen möchte, kann er es gerne tun. ;-)&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Vorlage:%C3%9Cberarbeiten&amp;diff=104</id>
		<title>Vorlage:Überarbeiten</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Vorlage:%C3%9Cberarbeiten&amp;diff=104"/>
		<updated>2010-10-09T11:10:56Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| border=1&lt;br /&gt;
 |Diese Seite ist noch nicht zufriedenstellend fertig gestellt. Sie ist eher eine Gedankenstütze und muss noch fertig werden.&lt;br /&gt;
Falls sich jemand dazu berufen fühlt, bitte schön. ;-)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Linux:Kernel_upgrade&amp;diff=103</id>
		<title>Linux:Kernel upgrade</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Linux:Kernel_upgrade&amp;diff=103"/>
		<updated>2010-10-08T15:23:24Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein Upgrade des bestehenden Kernels funktioniert auf verschiedene Weisen:&lt;br /&gt;
&lt;br /&gt;
== Updatemanager (graphisch) ==&lt;br /&gt;
* Start System/Administration/Update Manager &amp;#039;&amp;#039;&amp;#039;oder&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* In der Kommandozeile: &amp;#039;&amp;#039;update-manager -d&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Kommandozeile ==&lt;br /&gt;
1. Nötigenfalls das Paket update-manager-core installieren:&lt;br /&gt;
  sudo apt-get install update-manager-core&lt;br /&gt;
2. Das Upgrade-Tool starten:&lt;br /&gt;
  sudo do-release-upgrade&lt;br /&gt;
3. Den Instruktionen folgen&lt;br /&gt;
&lt;br /&gt;
== Mit Installations-CD ==&lt;br /&gt;
* CD einlegen &amp;#039;&amp;#039;&amp;#039;oder&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* ISO mounten:&lt;br /&gt;
  sudo mount -o loop ~/Desktop/ubuntu-??.??-alternate-i386.iso /media/cdrom0&lt;br /&gt;
* &amp;#039;&amp;#039;Run upgrade&amp;#039;&amp;#039; ausführen&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
[https://help.ubuntu.com/community/KarmicUpgrades Ubuntu Wiki]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=75</id>
		<title>Alexander&#039;s Wiki:Aktuelle Ereignisse</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=75"/>
		<updated>2010-09-17T09:58:14Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 05.08.2010 Dieses Wiki installiert&lt;br /&gt;
* 06.08.2010 Den ersten Eintrag (auf der Hauptseite) erstellt&lt;br /&gt;
* 10.08.2010 Seite [[VirtualBox:Einrichten]] erzeugt&lt;br /&gt;
* 11.08.2010 Seite [[Outlook:Speicher]] erzeugt&lt;br /&gt;
* 12.08.2010 Seite [[HTML:Video-Tag]] erzeugt&lt;br /&gt;
* 13.08.2010 Seite [[Wissensdatenbank:Erweiterungen]], [[Source:Email_verschicken]] und [[Firefox:Tweaks]] erzeugt&lt;br /&gt;
* 14.08.2010 Seite [[Java:Excel]] erzeugt&lt;br /&gt;
* 15.08.2010 Seite [[Java:Dateioperationen]] erzeugt&lt;br /&gt;
* 16.08.2010 Seite [[MySQL:Im-/Export]] erzeugt&lt;br /&gt;
* 17.08.2010 Seite [[Java:Array]] erzeugt&lt;br /&gt;
* 25.08.2010 Seite [[Bilder_verwalten:Taggen]] erzeugt&lt;br /&gt;
* 30.08.2010 Seite [[Web:Onlinefestplatte]] und [[Linux:smb.conf]] erzeugt&lt;br /&gt;
* 17.09.2010 Seite [[Linux:NTFS_Rechte]] erzeugt&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wenn man ALLE Seiten des Wiki&amp;#039;s sehen will, geht das durch den Aufruf [http://wiki.akluge.de/index.php?title=Spezial%3APr%C3%A4fixindex&amp;amp;prefix=&amp;amp;namespace=0 dieser] Seite.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Truecrypt&amp;diff=74</id>
		<title>Truecrypt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Truecrypt&amp;diff=74"/>
		<updated>2010-09-17T09:50:35Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Truecrypt mit Rechten für Samba und NTFS ==&lt;br /&gt;
Bei mir kommt es vor, dass ich beim Einbinden eines Truecrypt-Laufwerks mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  truecrypt /dev/sdb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
das Laufwerk nur mit Rechten für den Benutzer gemountet wird, was dazu führt, dass der Samba-Daemon nicht darauf zugreifen kann. Der Befehl &amp;#039;&amp;#039;chmod&amp;#039;&amp;#039; ist wirkungslos. Statt dessen muss man das Trucrypt-Volumen per Hand mounten. Mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mount /dev/mapper/truecrypt2 /media/truecrypt2/ -o umask=0000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
geht das dann. Vermutlich kann man dem Truecrypt-Befehl das umask schon mitgeben.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Truecrypt&amp;diff=73</id>
		<title>Truecrypt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Truecrypt&amp;diff=73"/>
		<updated>2010-09-17T09:50:19Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Truecrypt mit Rechten für Samba und NTFS ==&lt;br /&gt;
Bei mir kommt es vor, dass ich beim Einbinden eines Truecrypt-Laufwerks mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  trucrypt /dev/sdb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
das Laufwerk nur mit Rechten für den Benutzer gemountet wird, was dazu führt, dass der Samba-Daemon nicht darauf zugreifen kann. Der Befehl &amp;#039;&amp;#039;chmod&amp;#039;&amp;#039; ist wirkungslos. Statt dessen muss man das Trucrypt-Volumen per Hand mounten. Mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mount /dev/mapper/truecrypt2 /media/truecrypt2/ -o umask=0000&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
geht das dann. Vermutlich kann man dem Truecrypt-Befehl das umask schon mitgeben.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Truecrypt&amp;diff=72</id>
		<title>Truecrypt</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Truecrypt&amp;diff=72"/>
		<updated>2010-09-17T09:49:06Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: Die Seite wurde neu angelegt: „== Truecrypt mit Rechten für Samba und NTFS == Bei mir kommt es vor, dass ich beim Einbinden eines Truecrypt-Laufwerks mit dem Befehl:  trucrypt /dev/sdb  das La…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Truecrypt mit Rechten für Samba und NTFS ==&lt;br /&gt;
Bei mir kommt es vor, dass ich beim Einbinden eines Truecrypt-Laufwerks mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
trucrypt /dev/sdb&lt;br /&gt;
&lt;br /&gt;
das Laufwerk nur mit Rechten für den Benutzer gemountet wird, was dazu führt, dass der Samba-Daemon nicht darauf zugreifen kann. Der Befehl &amp;#039;&amp;#039;chmod&amp;#039;&amp;#039; ist wirkungslos. Statt dessen muss man das Trucrypt-Volumen per Hand mounten. Mit dem Befehl:&lt;br /&gt;
&lt;br /&gt;
mount /dev/mapper/truecrypt2 /media/truecrypt2/ -o umask=0000&lt;br /&gt;
&lt;br /&gt;
geht das dann. Vermutlich kann man dem Truecrypt-Befehl das umask schon mitgeben.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Java:Dateioperationen&amp;diff=51</id>
		<title>Java:Dateioperationen</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Java:Dateioperationen&amp;diff=51"/>
		<updated>2010-08-15T11:06:05Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dateioperationen werden immer mal wieder benötigt. Sie sind zwar relativ einfach zu programmieren, aber deshalb zeitaufwändig, weil man immer wieder nachschauen muss, wie das nocheinmal ging. Daher hier eine Sammlung von ein paar Dateioperationen.&lt;br /&gt;
&lt;br /&gt;
== Dateien ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
    private void dateiVerschieben(String quelle, String ziel) {&lt;br /&gt;
        // File Objekt für die Ursprungs-Datei erzeugen&lt;br /&gt;
        File source = new File(quelle);&lt;br /&gt;
        // File Objekt für die neue Datei erzeugen&lt;br /&gt;
        File destination = new File(ziel);&lt;br /&gt;
        // Datei wird umbenannt/verschoben&lt;br /&gt;
        if (!source.renameTo(destination)) {&lt;br /&gt;
            System.err.println(&amp;quot;Fehler beim Umbenennen der Datei: &amp;quot; + source.getName());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void dateiUmbenennen(String quelle, String neuerName) {&lt;br /&gt;
        File alt = new File(quelle);&lt;br /&gt;
        String pfad = alt.getParent() + File.separator;&lt;br /&gt;
        File neu = new File(pfad + neuerName);&lt;br /&gt;
        alt.renameTo(neu);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dateien auflisten besteht aus zwei Komponenten. Einmal einem Filter und einmal der eigentlichen Methode.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
public class FilterMP3 implements FilenameFilter{&lt;br /&gt;
&lt;br /&gt;
    public boolean accept(File dir, String name) {&lt;br /&gt;
      String endung = name.substring(name.length() - 4);&lt;br /&gt;
      if (endung.equalsIgnoreCase(&amp;quot;.mp3&amp;quot;)) {&lt;br /&gt;
        return true;&lt;br /&gt;
      } else {&lt;br /&gt;
        return false;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
    // Das ist die Methode in einer anderen Klasse&lt;br /&gt;
    private String[] verzeichnisListen(String vz) {&lt;br /&gt;
        File verzeichnis = new File(vz);&lt;br /&gt;
        FilterMP3 mp3filter = new FilterMP3();&lt;br /&gt;
        return verzeichnis.list(mp3filter);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verzeichnisse ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
    private void verzeichnisErstellen(String vzname) {&lt;br /&gt;
        try {&lt;br /&gt;
            File verzeichnis = new File(vzname);&lt;br /&gt;
            verzeichnis.mkdirs();&lt;br /&gt;
        } catch (Exception e) {&lt;br /&gt;
            System.out.println(&amp;quot;Fehler: &amp;quot; + e.getMessage());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void verzeichnisLoeschen(File pfad) {&lt;br /&gt;
        for (File file : pfad.listFiles()) {&lt;br /&gt;
            if (file.isDirectory()) {&lt;br /&gt;
                verzeichnisLoeschen(file);&lt;br /&gt;
            }&lt;br /&gt;
            file.delete();&lt;br /&gt;
        }&lt;br /&gt;
        pfad.delete();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=50</id>
		<title>Alexander&#039;s Wiki:Aktuelle Ereignisse</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=50"/>
		<updated>2010-08-15T08:36:50Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 05.08.2010 Dieses Wiki installiert&lt;br /&gt;
* 06.08.2010 Den ersten Eintrag (auf der Hauptseite) erstellt&lt;br /&gt;
* 10.08.2010 Seite [[VirtualBox:Einrichten]] erzeugt&lt;br /&gt;
* 11.08.2010 Seite [[Outlook:Speicher]] erzeugt&lt;br /&gt;
* 12.08.2010 Seite [[HTML:Video-Tag]] erzeugt&lt;br /&gt;
* 13.08.2010 Seite [[Wissensdatenbank:Erweiterungen]], [[Source:Email_verschicken]] und [[Firefox:Tweaks]] erzeugt&lt;br /&gt;
* 14.08.2010 Seite [[Java:Excel]] erzeugt&lt;br /&gt;
* 15.08.2010 Seite [[Java:Dateioperationen]] erzeugt&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wenn man ALLE Seiten des Wiki&amp;#039;s sehen will, geht das durch den Aufruf [http://wiki.akluge.de/index.php?title=Spezial%3APr%C3%A4fixindex&amp;amp;prefix=&amp;amp;namespace=0 dieser] Seite.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Java:Dateioperationen&amp;diff=49</id>
		<title>Java:Dateioperationen</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Java:Dateioperationen&amp;diff=49"/>
		<updated>2010-08-15T08:25:50Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: Die Seite wurde neu angelegt: „Dateioperationen werden immer mal wieder benötigt. Sie sind zwar relativ einfach zu programmieren, aber deshalb zeitaufwändig, weil man immer wieder nachschauen…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dateioperationen werden immer mal wieder benötigt. Sie sind zwar relativ einfach zu programmieren, aber deshalb zeitaufwändig, weil man immer wieder nachschauen muss, wie das nocheinmal ging. Daher hier eine Sammlung von ein paar Dateioperationen.&lt;br /&gt;
&lt;br /&gt;
== Dateien ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
    private void dateiVerschieben(String quelle, String ziel) {&lt;br /&gt;
        // File Objekt für die Ursprungs-Datei erzeugen&lt;br /&gt;
        File source = new File(quelle);&lt;br /&gt;
        // File Objekt für die neue Datei erzeugen&lt;br /&gt;
        File destination = new File(ziel);&lt;br /&gt;
        // Datei wird umbenannt/verschoben&lt;br /&gt;
        if (!source.renameTo(destination)) {&lt;br /&gt;
            System.err.println(&amp;quot;Fehler beim Umbenennen der Datei: &amp;quot; + source.getName());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void dateiUmbenennen(String quelle, String neuerName) {&lt;br /&gt;
        File alt = new File(quelle);&lt;br /&gt;
        String pfad = alt.getParent() + File.separator;&lt;br /&gt;
        File neu = new File(pfad + neuerName);&lt;br /&gt;
        alt.renameTo(neu);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verzeichnisse ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
    private void verzeichnisErstellen(String vzname) {&lt;br /&gt;
        try {&lt;br /&gt;
            File verzeichnis = new File(vzname);&lt;br /&gt;
            verzeichnis.mkdirs();&lt;br /&gt;
        } catch (Exception e) {&lt;br /&gt;
            System.out.println(&amp;quot;Fehler: &amp;quot; + e.getMessage());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    private void verzeichnisLoeschen(File pfad) {&lt;br /&gt;
        for (File file : pfad.listFiles()) {&lt;br /&gt;
            if (file.isDirectory()) {&lt;br /&gt;
                verzeichnisLoeschen(file);&lt;br /&gt;
            }&lt;br /&gt;
            file.delete();&lt;br /&gt;
        }&lt;br /&gt;
        pfad.delete();&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Erweiterungen&amp;diff=38</id>
		<title>Alexander&#039;s Wiki:Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Erweiterungen&amp;diff=38"/>
		<updated>2010-08-14T07:46:09Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: /* Quellen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Wiki kann um Erweiterungen (Extensions) ergänzt werden. Ich verzichte hier auf eine allgemeine Beschreibung und stelle hier nur die einzelnen Erweiterungen (und wie man sie installiert) vor, die in diesem Wiki benutzt werden.&lt;br /&gt;
&lt;br /&gt;
== Syntax-Highlighting ==&lt;br /&gt;
* Im Wiki-Verzeichnis &amp;#039;&amp;#039;extensions&amp;#039;&amp;#039; das Unterverzeichnis &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039; erzeugen (beispielsweise mit Hilfe eines FTP-Programms)&lt;br /&gt;
* [http://qbnz.com/highlighter/ Geshi] herunterladen (Bei Quellen steht gleich der SourceForge-Link)&lt;br /&gt;
* Das Paket entpacken (man erhält ein Verzeichnis &amp;#039;&amp;#039;geshi&amp;#039;&amp;#039;) und dieses in das Wiki unter das Verzeichnis &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039; kopieren&lt;br /&gt;
* Vom [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/ Wiki-Repository] alle Dateien herunterladen und in das &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039;-Verzeichnis kopieren&lt;br /&gt;
* Aus dem Hauptverzeichnis der Wiki-Installation die &amp;#039;&amp;#039;LocalSettings.php&amp;#039;&amp;#039; bearbeiten und den folgenden Eintrag hinzufügen:&lt;br /&gt;
** require_once(&amp;quot;extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Wenn das funktioniert hat, dann sieht man jetzt einen Java-Quelltext. ;-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    System.out.println(&amp;quot;Fahr weiter! Fahr weiter, du Vogel!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
*[http://sourceforge.net/projects/geshi/files/ Geshi Syntax-Highlighter]&lt;br /&gt;
*[http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/ Wiki-Repository]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=37</id>
		<title>Alexander&#039;s Wiki:Aktuelle Ereignisse</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=37"/>
		<updated>2010-08-14T07:44:20Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 05.08.2010 Dieses Wiki installiert&lt;br /&gt;
* 06.08.2010 Den ersten Eintrag (auf der Hauptseite) erstellt&lt;br /&gt;
* 10.08.2010 Seite [[VirtualBox:Einrichten]] erzeugt&lt;br /&gt;
* 11.08.2010 Seite [[Outlook:Speicher]] erzeugt&lt;br /&gt;
* 12.08.2010 Seite [[Video-Tag]] erzeugt&lt;br /&gt;
* 13.08.2010 Seite [[Erweiterungen]], [[Source:Email_verschicken]] und [[Firefox:Tweaks]] erzeugt&lt;br /&gt;
* 14.08.2010 Seite [[Java:Excel]] erzeugt&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wenn man ALLE Seiten des Wiki&amp;#039;s sehen will, geht das durch den Aufruf [http://wiki.akluge.de/index.php?title=Spezial%3APr%C3%A4fixindex&amp;amp;prefix=&amp;amp;namespace=0 dieser] Seite.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Java:Excel&amp;diff=36</id>
		<title>Java:Excel</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Java:Excel&amp;diff=36"/>
		<updated>2010-08-14T07:43:22Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Excel-Datei mit der JAVA POI-HSSF API einlesen ==&lt;br /&gt;
Um eine Excel Datei einzulesen, benötigt man zunächst einen InputStream, dem die einzulesende Datei in Form eines String, der den Dateipfad enthält, übergeben wird. Dieser InputStream wird wiederum beim Erstellen eines Objektes HSSFWorkbook, welches sozusagen für die Excel-Datei als ganzes steht, benötigt. Über das erzeugte Workbook Objekt kann man die Funktion getSheet aufrufen, die entweder mit dem Namen des Tabellenblatts oder die Position verarbeiten kann.&lt;br /&gt;
&lt;br /&gt;
Damit wären auch alle Voraussetzungen erfüllt um Zeilenweise die einzelnen Excel Zellen einlesen zu können. Dies funktioniert recht simpel über die Klasse HSSFRow, von der man ein Objekt erzeugen muss in dem man über das HSSFSheet Objekt eine bestimmte Zeile sozusagen einließt. Die einzelnen Zellen können dann problemlos über dieses Objekt angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  InputStream input = new FileInputStream(filename);&lt;br /&gt;
  HSSFWorkbook wb = new HSSFWorkbook(input);&lt;br /&gt;
  HSSFSheet sheet = wb.getSheet(sheetname);&lt;br /&gt;
  HSSFRow row = sheet.getRow(0);&lt;br /&gt;
  row.getCell(0).getNumericCellValue();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Excel-Datei mit der JAVA POI-HSSF API schreiben ==&lt;br /&gt;
Analog zum Einlesen einer Excel Datei funktioniert auch das Schreiben in eine Excel Datei über die Java POI API. Erst ein Workbook anlegen, dann über dieses Workbook ein Tabellenblatt erstellen bzw. ein vorhandenes öffnen. Und nun kann man die Zellen wiederum über die Row und Cell Objekte ansprechen, mit Inhalten befüllen und formatieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public HSSFWorkbook wb = new HSSFWorkbook();&lt;br /&gt;
  public HSSFSheet sheet = wb.createSheet(&amp;quot;Name des Excel-Sheets&amp;quot;);&lt;br /&gt;
  public HSSFRow row = null;&lt;br /&gt;
  public HSSFCell cell = null;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die einzelnen Zellen lassen sich vielseitig formatieren. Angefangen von Ausrichtungen, über die Schriftart, Schröße und Stärke kann unter anderem auch der Hintergrund farblich angepasst oder z.B. einer Zelle ein bestimmtes Format zugewiesen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public HSSFDataFormat format = wb.createDataFormat();&lt;br /&gt;
  public HSSFFont font = wb.createFont();&lt;br /&gt;
  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);&lt;br /&gt;
  public HSSFColor color = null;&lt;br /&gt;
  public HSSFCellStyle cellstyle = wb.createCellStyle();&lt;br /&gt;
  cellstyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);&lt;br /&gt;
  cellstyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);&lt;br /&gt;
  cellstyle.setFillPattern( HSSFCellStyle.SOLID_FOREGROUND );&lt;br /&gt;
  cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle .setBorderRight(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setFont(font);&lt;br /&gt;
  cellstyle.setDataFormat(format.getFormat(&amp;quot;#,##&amp;quot;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn man sich ein Standard-Set an Formatierungen in Form der CellStyles erarbeitet hat kann man nun die Zellen mit Inhalten beschreiben und anschließen den passenden CellStyle setzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  row = sheet1.createRow((short)0);&lt;br /&gt;
  cell = row.createCell(0);&lt;br /&gt;
  cell.setCellValue(&amp;quot;Zeile 1 - Zelle 1&amp;quot;);&lt;br /&gt;
  cell.setCellStyle(cellstyle);&lt;br /&gt;
  row = sheet1.createRow((short)1);&lt;br /&gt;
  cell = row.createCell(1);&lt;br /&gt;
  cell.setCellValue(&amp;quot;Zeile 2 - Zelle 2&amp;quot;);,&lt;br /&gt;
  cell.setCellStyle(cellstyle);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Festlegung der Zellbreite kann automatisch erfolgen. Die fertige Datei lässt sich als &amp;#039;&amp;#039;FileOutputStream&amp;#039;&amp;#039; abspeichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  sheet.autoSizeColumn((short)0);&lt;br /&gt;
  sheet.autoSizeColumn((short)1);&lt;br /&gt;
  FileOutputStream fileOut = new FileOutputStream(&amp;quot;workbook.xls&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
*[http://poi.apache.org/spreadsheet/quick-guide.html Apache POI Developer Guide]&lt;br /&gt;
*[http://poi.apache.org/download.html Apache POI Download]&lt;br /&gt;
*[http://poi.apache.org/apidocs/index.html Apache POI API]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Java:Excel&amp;diff=35</id>
		<title>Java:Excel</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Java:Excel&amp;diff=35"/>
		<updated>2010-08-14T07:39:46Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: Die Seite wurde neu angelegt: „== Excel-Datei mit der JAVA POI-HSSF API einlesen == Um eine Excel Datei einzulesen, benötigt man zunächst einen InputStream, dem die einzulesende Datei in Form…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Excel-Datei mit der JAVA POI-HSSF API einlesen ==&lt;br /&gt;
Um eine Excel Datei einzulesen, benötigt man zunächst einen InputStream, dem die einzulesende Datei in Form eines String, der den Dateipfad enthält, übergeben wird. Dieser InputStream wird wiederum beim Erstellen eines Objektes HSSFWorkbook, welches sozusagen für die Excel-Datei als ganzes steht, benötigt. Über das erzeugte Workbook Objekt kann man die Funktion getSheet aufrufen, die entweder mit dem Namen des Tabellenblatts oder die Position verarbeiten kann.&lt;br /&gt;
&lt;br /&gt;
Damit wären auch alle Voraussetzungen erfüllt um Zeilenweise die einzelnen Excel Zellen einlesen zu können. Dies funktioniert recht simpel über die Klasse HSSFRow, von der man ein Objekt erzeugen muss in dem man über das HSSFSheet Objekt eine bestimmte Zeile sozusagen einließt. Die einzelnen Zellen können dann problemlos über dieses Objekt angesprochen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  InputStream input = new FileInputStream(filename);&lt;br /&gt;
  HSSFWorkbook wb = new HSSFWorkbook(input);&lt;br /&gt;
  HSSFSheet sheet = wb.getSheet(sheetname);&lt;br /&gt;
  HSSFRow row = sheet.getRow(0);&lt;br /&gt;
  row.getCell(0).getNumericCellValue();&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Excel-Datei mit der JAVA POI-HSSF API schreiben ==&lt;br /&gt;
Analog zum Einlesen einer Excel Datei funktioniert auch das Schreiben in eine Excel Datei über die Java POI API. Erst ein Workbook anlegen, dann über dieses Workbook ein Tabellenblatt erstellen bzw. ein vorhandenes öffnen. Und nun kann man die Zellen wiederum über die Row und Cell Objekte ansprechen, mit Inhalten befüllen und formatieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public HSSFWorkbook wb = new HSSFWorkbook();&lt;br /&gt;
  public HSSFSheet sheet = wb.createSheet(&amp;quot;Name des Excel-Sheets&amp;quot;);&lt;br /&gt;
  public HSSFRow row = null;&lt;br /&gt;
  public HSSFCell cell = null;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die einzelnen Zellen lassen sich vielseitig formatieren. Angefangen von Ausrichtungen, über die Schriftart, Schröße und Stärke kann unter anderem auch der Hintergrund farblich angepasst oder z.B. einer Zelle ein bestimmtes Format zugewiesen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public HSSFDataFormat format = wb.createDataFormat();&lt;br /&gt;
  public HSSFFont font = wb.createFont();&lt;br /&gt;
  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);&lt;br /&gt;
  public HSSFColor color = null;&lt;br /&gt;
  public HSSFCellStyle cellstyle = wb.createCellStyle();&lt;br /&gt;
  cellstyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);&lt;br /&gt;
  cellstyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);&lt;br /&gt;
  cellstyle.setFillPattern( HSSFCellStyle.SOLID_FOREGROUND );&lt;br /&gt;
  cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle .setBorderRight(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);&lt;br /&gt;
  cellstyle.setFont(font);&lt;br /&gt;
  cellstyle.setDataFormat(format.getFormat(&amp;quot;#,##&amp;quot;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn man sich ein Standard-Set an Formatierungen in Form der CellStyles erarbeitet hat kann man nun die Zellen mit Inhalten beschreiben und anschließen den passenden CellStyle setzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  row = sheet1.createRow((short)0);&lt;br /&gt;
  cell = row.createCell(0);&lt;br /&gt;
  cell.setCellValue(&amp;quot;Zeile 1 - Zelle 1&amp;quot;);&lt;br /&gt;
  cell.setCellStyle(cellstyle);&lt;br /&gt;
  row = sheet1.createRow((short)1);&lt;br /&gt;
  cell = row.createCell(1);&lt;br /&gt;
  cell.setCellValue(&amp;quot;Zeile 2 - Zelle 2&amp;quot;);,&lt;br /&gt;
  cell.setCellStyle(cellstyle);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Festlegung der Zellbreite kann automatisch erfolgen. Die fertige Datei lässt sich als &amp;#039;&amp;#039;FileOutputStream&amp;#039;&amp;#039; abspeichern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  sheet.autoSizeColumn((short)0);&lt;br /&gt;
  sheet.autoSizeColumn((short)1);&lt;br /&gt;
  FileOutputStream fileOut = new FileOutputStream(&amp;quot;workbook.xls&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weiterführende Links ==&lt;br /&gt;
[http://poi.apache.org/spreadsheet/quick-guide.html Apache POI Developer Guide]&lt;br /&gt;
&lt;br /&gt;
[http://poi.apache.org/download.html Apache POI Download]&lt;br /&gt;
&lt;br /&gt;
[http://poi.apache.org/apidocs/index.html POI API]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=34</id>
		<title>Alexander&#039;s Wiki:Aktuelle Ereignisse</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=34"/>
		<updated>2010-08-13T21:12:10Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 05.08.2010 Dieses Wiki installiert&lt;br /&gt;
* 06.08.2010 Den ersten Eintrag (auf der Hauptseite) erstellt&lt;br /&gt;
* 10.08.2010 Seite [[VirtualBox:Einrichten]] erzeugt&lt;br /&gt;
* 11.08.2010 Seite [[Outlook:Speicher]] erzeugt&lt;br /&gt;
* 12.08.2010 Seite [[Video-Tag]] erzeugt&lt;br /&gt;
* 13.08.2010 Seite [[Erweiterungen]] und [[Source:Email_verschicken]] und [[Firefox:Tweaks]] erzeugt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wenn man ALLE Seiten des Wiki&amp;#039;s sehen will, geht das durch den Aufruf [http://wiki.akluge.de/index.php?title=Spezial%3APr%C3%A4fixindex&amp;amp;prefix=&amp;amp;namespace=0 dieser] Seite.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Firefox:Tweaks&amp;diff=33</id>
		<title>Firefox:Tweaks</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Firefox:Tweaks&amp;diff=33"/>
		<updated>2010-08-13T21:11:10Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: Die Seite wurde neu angelegt: „Firefox speichert seine Einstellungen in verschiedene Konfigurations-Dateien. Um die erweiterten Einstellungen zu bearbeiten und so den Browser den eigenen Bedür…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Firefox speichert seine Einstellungen in verschiedene Konfigurations-Dateien. Um die erweiterten Einstellungen zu bearbeiten und so den Browser den eigenen Bedürfnissen anzupassen, gibt man einfach &amp;#039;&amp;#039;about:config&amp;#039;&amp;#039; in die Adressleiste ein und drückt auf Enter.&lt;br /&gt;
&lt;br /&gt;
Über das Eingabefeld &amp;#039;&amp;#039;Filter&amp;#039;&amp;#039; können die zu ändernden Strings direkt eingegeben und so schneller gefunden werden. Wenn nicht anders beschrieben, beziehen sich alle Strings, bei denen ein Wert geändert werden soll, auf diesen internen Konfigurationsmanager.&lt;br /&gt;
&lt;br /&gt;
Einige Einstellungen werden über die Datei &amp;#039;&amp;#039;userChrome.css&amp;#039;&amp;#039; durchgeführt, die sich im Unterverzeichnis &amp;#039;&amp;#039;Chrome&amp;#039;&amp;#039; des jeweiligen Firefox-Profilordners befindet. Die Datei kann mit einem beliebigen Editor geöffnet und bearbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Google-Suche direkt aus der Adressleiste ==&lt;br /&gt;
&lt;br /&gt;
Wer Firefox anweisen will, einen Begriff direkt aus der Adressleiste heraus mit Google zu suchen, kann dies bewerkstelligen, indem er im Konfigurationsmanager einen String hinzufügt. Dazu mit der rechten Maustaste in das Fenster klicken und &amp;quot;Neu String&amp;quot; auswählen. Dort den Namen: &amp;quot;keyword.url&amp;quot; eintragen und dem neuen String dann den Wert &amp;quot;http://google.de/search?btnG=Google+Search&amp;amp;q=&amp;quot; zuweisen.&lt;br /&gt;
&lt;br /&gt;
== Automatische Ergänzung der Domain (TLD) ==&lt;br /&gt;
&lt;br /&gt;
Wird beim Firefox eine URL ohne dem Kürzel der Top Level Domain angegeben, ergänzt der Browser sie selbstständig mit &amp;quot;.com&amp;quot; oder &amp;quot;.org&amp;quot;. Für den deutschsprachigen Raum wäre in in den meisten Fällen jedoch eine Ergänzung mit &amp;quot;.de&amp;quot; sinnvoller. Mit folgender Einstellung kann dies geändert werden.&lt;br /&gt;
Dazu zu dem String: &amp;quot;browser.fixup.alternate.suffix&amp;quot; navigieren und ihm statt &amp;quot;.com&amp;quot; den Wert &amp;quot;.de&amp;quot; zuweisen.&lt;br /&gt;
&lt;br /&gt;
== Tabs im Hintergrund laden ==&lt;br /&gt;
&lt;br /&gt;
Klickt man in Firefox auf einen Link, der einen neuen Tab öffnet, dann erhält dieser den Fokus. Mit einem kleinen Trick, kann Firefox kann neue Tabs auch im Hintergrund öffnen, so dass man beim Lesen nicht gestört wird.&lt;br /&gt;
Um den aktuellen Tab immer aktiv zu halten muss der Wert von &amp;quot;browser.tabs.loadInBackground&amp;quot; von &amp;quot;true&amp;quot; in &amp;quot;false&amp;quot; geändert werden.&lt;br /&gt;
&lt;br /&gt;
== Download Manager automatisch schliessen ==&lt;br /&gt;
&lt;br /&gt;
Standardmässig muss der Downloadmanager nach jedem Abschluss eines Downloads von Hand geschlossen werden, mit einem kleinen Eingriff macht er das aber auch automatisch.&lt;br /&gt;
Wird dem String: &amp;quot;browser.download.manager.closeWhenDone&amp;quot; der Wert &amp;quot;true&amp;quot; zugewiesen, schliesst Firefox den Download Manager selbstständig nach jedem Download.&lt;br /&gt;
&lt;br /&gt;
== Download-Informationen in der Statusleiste anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Firefox zeigt alle Informationen des Downloadmanagers in einem kleinen eigenen Fenster an, auf Wunsch kann er die Informationen aber auch ich der Statusleiste anzeigen. Möchte jemand die Download-Informationen lieber in der Taskleiste angezeigt bekommen, muss er den Wert für die Einstellung: &amp;quot;browser.download.manager.useWindow&amp;quot; auf &amp;quot;false&amp;quot; setzen, steht der Wert auf &amp;quot;true&amp;quot; bleibt Firefox bei seinem Download Fenster.&lt;br /&gt;
&lt;br /&gt;
== Referrer (Referer) blocken oder entfernen ==&lt;br /&gt;
&lt;br /&gt;
Als Referrer wird die Internetadresse der Webseite bezeichnet, von der der Benutzer durch Anklicken eines Links zu der aktuellen Seite gekommen ist. Beim Anklicken eines jeden Links wird der Referrer automatisch an den Webserver übertragen. Der Betreiber einer Internetseite kann die Angaben dann auf jede erdenkliche Weise verarbeiten, da praktisch jeder Server diese protokolliert.&lt;br /&gt;
Firefox bietet die Möglichkeit das Senden des Referrers einzuschränken oder ganz abzuschalten. Wird der Wert in der Zeile &amp;quot;network.http.sendRefererHeader&amp;quot; von &amp;quot;2&amp;quot; auf &amp;quot;0&amp;quot; geändert, sendet Firefox keinen Referrer. Der Wert &amp;quot;1&amp;quot; sendet den Referrer noch beim Aufruf von HTML-Dateien, nicht aber beim Aufrufen von Bildern.&lt;br /&gt;
&lt;br /&gt;
== Autovervollständigen von Webadressen anpassen ==&lt;br /&gt;
&lt;br /&gt;
Ab Firefox 3 vervollständigt Firefox automatisch URLs, die per Hand eingegeben werden. Dazu benutzt Firefox nicht nur URLs, die per Hand eingetippt wurden, sondern auch bekannte URLs der Webseiten aus den Lesezeichen und der History.&lt;br /&gt;
Wer verhindern möchte, dass Firefox die URLs der Lesezeichen zum Autovervollständigen nutzt, weil er seine Lesezeichen nicht jedem preisgeben will, kann dies unterbinden, indem er die Werte der Strings: &amp;quot;places.frecency.unvisitedBookmarkBonus&amp;quot; und &amp;quot;places.frecency.bookmarkVisitBonus&amp;quot; beide auf &amp;quot;0&amp;quot; stellt.&lt;br /&gt;
Wer Firefox anweisen möchte, zum Autovervollständigen nur URLs zu benutzen, die schon zuvor per Hand eingegeben wurden, kann dies, indem er den Wert von &amp;quot;browser.urlbar.matchOnlyTyped&amp;quot; auf &amp;quot;true&amp;quot; setzt.&lt;br /&gt;
&lt;br /&gt;
== Anzahl der Seiten in der Autovervollständigung ==&lt;br /&gt;
&lt;br /&gt;
Auch die Anzahl der Vorschläge, die Firefox per Dropdownmenü beim Eintippen einer URL macht, lässt sich individuell einstellen. Die Anzahl der Vorschläge lässt sich über den Wert des Strings: &amp;quot;browser.urlbar.maxRichResults&amp;quot; nach eigenen Vorstellungen definieren.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=VirtualBox&amp;diff=32</id>
		<title>VirtualBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=VirtualBox&amp;diff=32"/>
		<updated>2010-08-13T20:29:51Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VirtualBox besitzt eine GUI-Schnittstelle, kann aber auch per Kommandozeile genutzt werden. Dafür ist im Wesentlichen das Kommando &amp;#039;VBoxMange&amp;#039; zu verwenden. Während das GUI selbsterklärend sein sollt, wird hier die Kommandozeile beschrieben.&lt;br /&gt;
&lt;br /&gt;
Als Ausgang benötigt man in der Regel ein ISO-Image der Installations-CD. Unter Linux geht diese sehr leicht mit dem &amp;#039;dd&amp;#039;-Kommando zu erzeugen. Ein Aufruf des Programms kann so aussehen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd if=/dev/dvd of=~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nachdem das ISO-Image vorliegt, ist zunächst die virtuelle Maschine einzurichten:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage createvm -name &amp;quot;Windows_DE&amp;quot; -register&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sind die Maschinen-Parameter zu setzen, z.B. mit den Parametern: OS=Windows XP, RAM=512 MB, ACPI=on, Boot-Lw=DVD, Netzwerkkarte=NAT, Audio=ALSA:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -ostype winxp -memory &amp;quot;512MB&amp;quot; -acpi on -boot1 dvd -nic1 nat -audio alsa&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als weiterer Schritt ist das virtuelle Festplattenimage, z.B. wie hier mit 10GB dynamischer Größe, zu erzeugen und registrieren:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage createvdi -filename &amp;quot;Windows_HDD.vdi&amp;quot; -size 10000 -register&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach ist das Festplattenimage der virtuellen Maschine zuzuordnen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -hda &amp;quot;Windows_HDD.vdi&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun muss das ISO-Image registriert werden:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage registerimage dvd ~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ISO-Image der virtuellen Maschine zuordnen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -dvd ~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Kontrolle der Einstellungen kann z.B. mit folgenden Kommando erfolgen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage showvminfo &amp;quot;Windows_DE&amp;quot;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Source:Email_verschicken&amp;diff=31</id>
		<title>Source:Email verschicken</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Source:Email_verschicken&amp;diff=31"/>
		<updated>2010-08-13T20:29:10Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite muss noch weiter überarbeitet werden&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Bevor man sich eine Email &amp;quot;zusammenbastelt&amp;quot;, sollte man ein wenig den Aufbau einer Email kennen. Dafür empfehle ich den folgenden [http://de.wikipedia.org/wiki/Header_%28E-Mail%29 Artikel] aus der großen Wikipedia.&lt;br /&gt;
&lt;br /&gt;
== Email per PHP ==&lt;br /&gt;
Dieses Script verschickt nicht nur eine Email, sondern macht vorher ein Backup von einer mySQL-Datenbank und verschickt dieses als Email. Ich denke, man kann beide Funktionen auseinander halten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
/* Database */&lt;br /&gt;
$db 		= &amp;quot;database&amp;quot;;&lt;br /&gt;
$dbuser		= &amp;quot;username&amp;quot;;&lt;br /&gt;
$dbpw		= &amp;quot;password&amp;quot;;&lt;br /&gt;
$dbhost		= &amp;quot;localhost&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Email*/&lt;br /&gt;
$to 		= &amp;quot;emailadresse&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Misc */&lt;br /&gt;
$file 		= &amp;quot;_B_A_C_K_U_P_&amp;quot; . $db . &amp;quot;.sql.gz&amp;quot;;&lt;br /&gt;
$message 	= &amp;quot;Backup &amp;quot;.$file.&amp;quot; of &amp;quot;.$dbhost.&amp;quot; attached.\n\n-- \n&amp;quot; . strip_tags($_SERVER[&amp;quot;SERVER_SIGNATURE&amp;quot;]);&lt;br /&gt;
$subject	= &amp;quot;Backup &amp;quot;.$file;&lt;br /&gt;
$from 		= &amp;quot;MySQL-Backup&amp;lt;&amp;quot;.$_SERVER[&amp;quot;SERVER_ADMIN&amp;quot;].&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Systemcall */&lt;br /&gt;
system(&amp;quot;/usr/bin/mysqldump -u&amp;quot;.$dbuser.&amp;quot; -p&amp;quot;.$dbpw.&amp;quot; -h &amp;quot;.$dbhost.&amp;quot; &amp;quot;.$db.&amp;quot; | /bin/gzip &amp;gt; &amp;quot;.$file, $fp);&lt;br /&gt;
&lt;br /&gt;
if ($fp==0) echo &amp;quot;Dump generated&amp;quot;; else die(&amp;quot;Ooops. An error occured!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/* Prepare the email*/&lt;br /&gt;
$boundary 	= strtoupper(md5(uniqid(time())));&lt;br /&gt;
$mail_header  	= &amp;quot;From:&amp;quot;.$from.&amp;quot;\n&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;MIME-Version: 1.0&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: multipart/mixed; boundary=&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\nThis is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: text/plain&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Transfer-Encoding: 8bit&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\n&amp;quot;.$message;&lt;br /&gt;
$file_content	 = fread(fopen($file,&amp;quot;r&amp;quot;),filesize($file));&lt;br /&gt;
$file_content	 = chunk_split(base64_encode($file_content));&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: application/octetstream; name=\&amp;quot;&amp;quot;.$file.&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Transfer-Encoding: base64&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$file.&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\n&amp;quot;.$file_content;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary.&amp;quot;--&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Send the email */&lt;br /&gt;
mail($to,$subject,&amp;quot;&amp;quot;,$mail_header);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== weiterführende Links ==&lt;br /&gt;
[http://openbook.galileocomputing.de/javainsel8/javainsel_18_012.htm#mjb306e4632c440d0524d00f224d4fa1bb Email mit Java]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=HTML:Video-Tag&amp;diff=30</id>
		<title>HTML:Video-Tag</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=HTML:Video-Tag&amp;diff=30"/>
		<updated>2010-08-13T20:28:01Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mit dem HTML 5.0-Standard lassen sich jetzt Video und Audio-Inhalte direkt im Browser ohne eines speziellen Streamingservers darstellen. Die großen Vorteile sind dabei:&lt;br /&gt;
&lt;br /&gt;
* Keine Zusätzliche Software für die Webseite&lt;br /&gt;
* Weniger Serverlast&lt;br /&gt;
* Verschiedene Qualitätsstufen, die der Browser wählen kann&lt;br /&gt;
* Keine zusätzlichen PlugIns im Browser benötigt&lt;br /&gt;
&lt;br /&gt;
Dafür benötigt man aber einen Browser, der das HTML-Tag &amp;#039;&amp;#039;&amp;lt;video&amp;gt;&amp;#039;&amp;#039; versteht. Zur Zeit sind das:&lt;br /&gt;
&lt;br /&gt;
* Firefox seit 3.6&lt;br /&gt;
* Opera&lt;br /&gt;
* Google Chrome bzw. Iron&lt;br /&gt;
* Safari &amp;#039;&amp;#039;&amp;#039;mit PlugIn&amp;#039;&amp;#039;&amp;#039; XiphQT&lt;br /&gt;
&lt;br /&gt;
und die Videos müssen im Ogg-Theora-Format vorliegen. Mehr Informationen über diesen Codec findet man in der großen [http://de.wikipedia.org/wiki/Theora Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Folgender Quelltext kann ein Video darstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;video src=&amp;quot;http://medien.alexander-kluge.de/videos/Testfilm.ogg&amp;quot; preload=&amp;quot;none&amp;quot;&lt;br /&gt;
    width=&amp;quot;320px&amp;quot; height=&amp;quot;240px&amp;quot; poster=&amp;quot;http://medien.alexander-kluge.de/bilder/Braustuberl.jpg&amp;quot;&lt;br /&gt;
    controls=&amp;quot;controls&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Nützliches Zusatzmaterial ==&lt;br /&gt;
[http://http://tinyvid.tv/ Verschieden Videos im ogg-Format]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=HTML:Video-Tag&amp;diff=29</id>
		<title>HTML:Video-Tag</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=HTML:Video-Tag&amp;diff=29"/>
		<updated>2010-08-13T20:26:40Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Video und Audio =&lt;br /&gt;
&lt;br /&gt;
Mit dem HTML 5.0-Standard lassen sich jetzt Video und Audio-Inhalte direkt im Browser ohne eines speziellen Streamingservers darstellen. Die großen Vorteile sind dabei:&lt;br /&gt;
&lt;br /&gt;
* Keine Zusätzliche Software für die Webseite&lt;br /&gt;
* Weniger Serverlast&lt;br /&gt;
* Verschiedene Qualitätsstufen, die der Browser wählen kann&lt;br /&gt;
* Keine zusätzlichen PlugIns im Browser benötigt&lt;br /&gt;
&lt;br /&gt;
Dafür benötigt man aber einen Browser, der das HTML-Tag &amp;#039;&amp;#039;&amp;lt;video&amp;gt;&amp;#039;&amp;#039; versteht. Zur Zeit sind das:&lt;br /&gt;
&lt;br /&gt;
* Firefox seit 3.6&lt;br /&gt;
* Opera&lt;br /&gt;
* Google Chrome bzw. Iron&lt;br /&gt;
* Safari &amp;#039;&amp;#039;&amp;#039;mit PlugIn&amp;#039;&amp;#039;&amp;#039; XiphQT&lt;br /&gt;
&lt;br /&gt;
und die Videos müssen im Ogg-Theora-Format vorliegen. Mehr Informationen über diesen Codec findet man in der großen [http://de.wikipedia.org/wiki/Theora Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Folgender Quelltext kann ein Video darstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;video src=&amp;quot;http://medien.alexander-kluge.de/videos/Testfilm.ogg&amp;quot; preload=&amp;quot;none&amp;quot;&lt;br /&gt;
    width=&amp;quot;320px&amp;quot; height=&amp;quot;240px&amp;quot; poster=&amp;quot;http://medien.alexander-kluge.de/bilder/Braustuberl.jpg&amp;quot;&lt;br /&gt;
    controls=&amp;quot;controls&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Nützliches Zusatzmaterial ==&lt;br /&gt;
[http://http://tinyvid.tv/ Verschieden Videos im ogg-Format]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=28</id>
		<title>Alexander&#039;s Wiki:Aktuelle Ereignisse</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=28"/>
		<updated>2010-08-13T20:25:27Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 05.08.2010 Dieses Wiki installiert&lt;br /&gt;
* 06.08.2010 Den ersten Eintrag (auf der Hauptseite) erstellt&lt;br /&gt;
* 10.08.2010 Seite [[VirtualBox:Einrichten]] erzeugt&lt;br /&gt;
* 11.08.2010 Seite [[Outlook:Speicher]] erzeugt&lt;br /&gt;
* 12.08.2010 Seite [[Video-Tag]] erzeugt&lt;br /&gt;
* 13.08.2010 Seite [[Erweiterungen]] und [[Source:Email_verschicken]] erzeugt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wenn man ALLE Seiten des Wiki&amp;#039;s sehen will, geht das durch den Aufruf [http://wiki.akluge.de/index.php?title=Spezial%3APr%C3%A4fixindex&amp;amp;prefix=&amp;amp;namespace=0 dieser] Seite.&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=HTML:Video-Tag&amp;diff=27</id>
		<title>HTML:Video-Tag</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=HTML:Video-Tag&amp;diff=27"/>
		<updated>2010-08-13T20:21:49Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Video und Audio =&lt;br /&gt;
&lt;br /&gt;
Mit dem HTML 5.0-Standard lassen sich jetzt Video und Audio-Inhalte direkt im Browser ohne eines speziellen Streamingservers darstellen. Die großen Vorteile sind dabei:&lt;br /&gt;
&lt;br /&gt;
* Keine Zusätzliche Software für die Webseite&lt;br /&gt;
* Weniger Serverlast&lt;br /&gt;
* Verschiedene Qualitätsstufen, die der Browser wählen kann&lt;br /&gt;
* Keine zusätzlichen PlugIns im Browser benötigt&lt;br /&gt;
&lt;br /&gt;
Dafür benötigt man aber einen Browser, der das HTML-Tag &amp;#039;&amp;#039;&amp;lt;video&amp;gt;&amp;#039;&amp;#039; versteht. Zur Zeit sind das:&lt;br /&gt;
&lt;br /&gt;
* Firefox seit 3.6&lt;br /&gt;
* Opera&lt;br /&gt;
* Google Chrome bzw. Iron&lt;br /&gt;
* Safari &amp;#039;&amp;#039;&amp;#039;mit PlugIn&amp;#039;&amp;#039;&amp;#039; XiphQT&lt;br /&gt;
&lt;br /&gt;
und die Videos müssen im Ogg-Theora-Format vorliegen. Mehr Informationen über diesen Codec findet man in der großen [http://de.wikipedia.org/wiki/Theora Wikipedia]&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Folgender Quelltext kann ein Video darstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;video src=&amp;quot;http://medien.alexander-kluge.de/videos/Testfilm.ogg&amp;quot; preload=&amp;quot;none&amp;quot;&lt;br /&gt;
    width=&amp;quot;320px&amp;quot; height=&amp;quot;240px&amp;quot; poster=&amp;quot;http://medien.alexander-kluge.de/bilder/Braustuberl.jpg&amp;quot;&lt;br /&gt;
    controls=&amp;quot;controls&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nützliches Zusatzmaterial ==&lt;br /&gt;
[http://http://tinyvid.tv/ Verschieden Videos im ogg-Format]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=26</id>
		<title>Alexander&#039;s Wiki:Aktuelle Ereignisse</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=26"/>
		<updated>2010-08-13T08:00:00Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 05.08.2010 Dieses Wiki installiert&lt;br /&gt;
* 06.08.2010 Den ersten Eintrag (auf der Hauptseite) erstellt&lt;br /&gt;
* 10.08.2010 Seite [[VirtualBox:Einrichten]] erzeugt&lt;br /&gt;
* 11.08.2010 Seite [[Outlook:Speicher]] erzeugt&lt;br /&gt;
* 12.08.2010 Seite [[Video-Tag]] erzeugt&lt;br /&gt;
* 13.08.2010 Seite [[Erweiterungen]] und [[Source:Email_verschicken]] erzeugt&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Source:Email_verschicken&amp;diff=25</id>
		<title>Source:Email verschicken</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Source:Email_verschicken&amp;diff=25"/>
		<updated>2010-08-13T07:59:17Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite muss noch weiter überarbeitet werden&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
= Kenntnisstand =&lt;br /&gt;
Bevor man sich eine Email &amp;quot;zusammenbastelt&amp;quot;, sollte man ein wenig den Aufbau einer Email kennen. Dafür empfehle ich den folgenden [http://de.wikipedia.org/wiki/Header_%28E-Mail%29 Artikel] aus der großen Wikipedia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Email per PHP ==&lt;br /&gt;
Dieses Script verschickt nicht nur eine Email, sondern macht vorher ein Backup von einer mySQL-Datenbank und verschickt dieses als Email. Ich denke, man kann beide Funktionen auseinander halten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
/* Database */&lt;br /&gt;
$db 		= &amp;quot;database&amp;quot;;&lt;br /&gt;
$dbuser		= &amp;quot;username&amp;quot;;&lt;br /&gt;
$dbpw		= &amp;quot;password&amp;quot;;&lt;br /&gt;
$dbhost		= &amp;quot;localhost&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Email*/&lt;br /&gt;
$to 		= &amp;quot;emailadresse&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Misc */&lt;br /&gt;
$file 		= &amp;quot;_B_A_C_K_U_P_&amp;quot; . $db . &amp;quot;.sql.gz&amp;quot;;&lt;br /&gt;
$message 	= &amp;quot;Backup &amp;quot;.$file.&amp;quot; of &amp;quot;.$dbhost.&amp;quot; attached.\n\n-- \n&amp;quot; . strip_tags($_SERVER[&amp;quot;SERVER_SIGNATURE&amp;quot;]);&lt;br /&gt;
$subject	= &amp;quot;Backup &amp;quot;.$file;&lt;br /&gt;
$from 		= &amp;quot;MySQL-Backup&amp;lt;&amp;quot;.$_SERVER[&amp;quot;SERVER_ADMIN&amp;quot;].&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Systemcall */&lt;br /&gt;
system(&amp;quot;/usr/bin/mysqldump -u&amp;quot;.$dbuser.&amp;quot; -p&amp;quot;.$dbpw.&amp;quot; -h &amp;quot;.$dbhost.&amp;quot; &amp;quot;.$db.&amp;quot; | /bin/gzip &amp;gt; &amp;quot;.$file, $fp);&lt;br /&gt;
&lt;br /&gt;
if ($fp==0) echo &amp;quot;Dump generated&amp;quot;; else die(&amp;quot;Ooops. An error occured!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/* Prepare the email*/&lt;br /&gt;
$boundary 	= strtoupper(md5(uniqid(time())));&lt;br /&gt;
$mail_header  	= &amp;quot;From:&amp;quot;.$from.&amp;quot;\n&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;MIME-Version: 1.0&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: multipart/mixed; boundary=&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\nThis is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: text/plain&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Transfer-Encoding: 8bit&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\n&amp;quot;.$message;&lt;br /&gt;
$file_content	 = fread(fopen($file,&amp;quot;r&amp;quot;),filesize($file));&lt;br /&gt;
$file_content	 = chunk_split(base64_encode($file_content));&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: application/octetstream; name=\&amp;quot;&amp;quot;.$file.&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Transfer-Encoding: base64&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$file.&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\n&amp;quot;.$file_content;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary.&amp;quot;--&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Send the email */&lt;br /&gt;
mail($to,$subject,&amp;quot;&amp;quot;,$mail_header);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== weiterführende Links ==&lt;br /&gt;
[http://openbook.galileocomputing.de/javainsel8/javainsel_18_012.htm#mjb306e4632c440d0524d00f224d4fa1bb Email mit Java]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Source:Email_verschicken&amp;diff=24</id>
		<title>Source:Email verschicken</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Source:Email_verschicken&amp;diff=24"/>
		<updated>2010-08-13T07:53:12Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: Die Seite wurde neu angelegt: „Diese Seite muss noch weiter überarbeitet werden  ----  == Email per PHP == Dieses Script verschickt nicht nur eine Email, sondern macht vorher ein Backup von ei…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite muss noch weiter überarbeitet werden&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Email per PHP ==&lt;br /&gt;
Dieses Script verschickt nicht nur eine Email, sondern macht vorher ein Backup von einer mySQL-Datenbank und verschickt dieses als Email. Ich denke, man kann beide Funktionen auseinander halten.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
&lt;br /&gt;
/* Database */&lt;br /&gt;
$db 		= &amp;quot;database&amp;quot;;&lt;br /&gt;
$dbuser		= &amp;quot;username&amp;quot;;&lt;br /&gt;
$dbpw		= &amp;quot;password&amp;quot;;&lt;br /&gt;
$dbhost		= &amp;quot;localhost&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Email*/&lt;br /&gt;
$to 		= &amp;quot;emailadresse&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Misc */&lt;br /&gt;
$file 		= &amp;quot;_B_A_C_K_U_P_&amp;quot; . $db . &amp;quot;.sql.gz&amp;quot;;&lt;br /&gt;
$message 	= &amp;quot;Backup &amp;quot;.$file.&amp;quot; of &amp;quot;.$dbhost.&amp;quot; attached.\n\n-- \n&amp;quot; . strip_tags($_SERVER[&amp;quot;SERVER_SIGNATURE&amp;quot;]);&lt;br /&gt;
$subject	= &amp;quot;Backup &amp;quot;.$file;&lt;br /&gt;
$from 		= &amp;quot;MySQL-Backup&amp;lt;&amp;quot;.$_SERVER[&amp;quot;SERVER_ADMIN&amp;quot;].&amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Systemcall */&lt;br /&gt;
system(&amp;quot;/usr/bin/mysqldump -u&amp;quot;.$dbuser.&amp;quot; -p&amp;quot;.$dbpw.&amp;quot; -h &amp;quot;.$dbhost.&amp;quot; &amp;quot;.$db.&amp;quot; | /bin/gzip &amp;gt; &amp;quot;.$file, $fp);&lt;br /&gt;
&lt;br /&gt;
if ($fp==0) echo &amp;quot;Dump generated&amp;quot;; else die(&amp;quot;Ooops. An error occured!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/* Prepare the email*/&lt;br /&gt;
$boundary 	= strtoupper(md5(uniqid(time())));&lt;br /&gt;
$mail_header  	= &amp;quot;From:&amp;quot;.$from.&amp;quot;\n&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;MIME-Version: 1.0&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: multipart/mixed; boundary=&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\nThis is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: text/plain&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Transfer-Encoding: 8bit&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\n&amp;quot;.$message;&lt;br /&gt;
$file_content	 = fread(fopen($file,&amp;quot;r&amp;quot;),filesize($file));&lt;br /&gt;
$file_content	 = chunk_split(base64_encode($file_content));&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Type: application/octetstream; name=\&amp;quot;&amp;quot;.$file.&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Transfer-Encoding: base64&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\nContent-Disposition: attachment; filename=\&amp;quot;&amp;quot;.$file.&amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n\n&amp;quot;.$file_content;&lt;br /&gt;
$mail_header 	.= &amp;quot;\n--&amp;quot;.$boundary.&amp;quot;--&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Send the email */&lt;br /&gt;
mail($to,$subject,&amp;quot;&amp;quot;,$mail_header);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=VirtualBox&amp;diff=23</id>
		<title>VirtualBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=VirtualBox&amp;diff=23"/>
		<updated>2010-08-13T07:14:31Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Handling von VirtualBox-Images =&lt;br /&gt;
VirtualBox besitzt eine GUI-Schnittstelle, kann aber auch per Kommandozeile genutzt werden. Dafür ist im Wesentlichen das Kommando &amp;#039;VBoxMange&amp;#039; zu verwenden. Während das GUI selbsterklärend sein sollt, wird hier die Kommandozeile beschrieben.&lt;br /&gt;
&lt;br /&gt;
Als Ausgang benötigt man in der Regel ein ISO-Image der Installations-CD. Unter Linux geht diese sehr leicht mit dem &amp;#039;dd&amp;#039;-Kommando zu erzeugen. Ein Aufruf des Programms kann so aussehen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;dd if=/dev/dvd of=~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nachdem das ISO-Image vorliegt, ist zunächst die virtuelle Maschine einzurichten:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage createvm -name &amp;quot;Windows_DE&amp;quot; -register&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend sind die Maschinen-Parameter zu setzen, z.B. mit den Parametern: OS=Windows XP, RAM=512 MB, ACPI=on, Boot-Lw=DVD, Netzwerkkarte=NAT, Audio=ALSA:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -ostype winxp -memory &amp;quot;512MB&amp;quot; -acpi on -boot1 dvd -nic1 nat -audio alsa&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Als weiterer Schritt ist das virtuelle Festplattenimage, z.B. wie hier mit 10GB dynamischer Größe, zu erzeugen und registrieren:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage createvdi -filename &amp;quot;Windows_HDD.vdi&amp;quot; -size 10000 -register&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach ist das Festplattenimage der virtuellen Maschine zuzuordnen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -hda &amp;quot;Windows_HDD.vdi&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nun muss das ISO-Image registriert werden:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage registerimage dvd ~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ISO-Image der virtuellen Maschine zuordnen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage modifyvm &amp;quot;Windows_DE&amp;quot; -dvd ~/Mein_erzeugtes_ISO.iso&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine Kontrolle der Einstellungen kann z.B. mit folgenden Kommando erfolgen:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;VBoxManage showvminfo &amp;quot;Windows_DE&amp;quot;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=22</id>
		<title>Alexander&#039;s Wiki:Aktuelle Ereignisse</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Aktuelle_Ereignisse&amp;diff=22"/>
		<updated>2010-08-13T07:06:26Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 05.08.2010 Dieses Wiki installiert&lt;br /&gt;
* 06.08.2010 Den ersten Eintrag (auf der Hauptseite) erstellt&lt;br /&gt;
* 10.08.2010 Seite [[VirtualBox:Einrichten]] erzeugt&lt;br /&gt;
* 11.08.2010 Seite [[Outlook:Speicher]] erzeugt&lt;br /&gt;
* 12.08.2010 Seite [[Video-Tag]] erzeugt&lt;br /&gt;
* 13.08.2010 Seite [[Erweiterungen]] erzeugt&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Erweiterungen&amp;diff=21</id>
		<title>Alexander&#039;s Wiki:Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Erweiterungen&amp;diff=21"/>
		<updated>2010-08-13T07:04:59Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Wiki kann um Erweiterungen (Extensions) ergänzt werden. Ich verzichte hier auf eine allgemeine Beschreibung und stelle hier nur die einzelnen Erweiterungen (und wie man sie installiert) vor, die in diesem Wiki benutzt werden.&lt;br /&gt;
&lt;br /&gt;
== Syntax-Highlighting ==&lt;br /&gt;
* Im Wiki-Verzeichnis &amp;#039;&amp;#039;extensions&amp;#039;&amp;#039; das Unterverzeichnis &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039; erzeugen (beispielsweise mit Hilfe eines FTP-Programms)&lt;br /&gt;
* [http://qbnz.com/highlighter/ Geshi] herunterladen (Bei Quellen steht gleich der SourceForge-Link)&lt;br /&gt;
* Das Paket entpacken (man erhält ein Verzeichnis &amp;#039;&amp;#039;geshi&amp;#039;&amp;#039;) und dieses in das Wiki unter das Verzeichnis &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039; kopieren&lt;br /&gt;
* Vom [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/ Wiki-Repository] alle Dateien herunterladen und in das &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039;-Verzeichnis kopieren&lt;br /&gt;
* Aus dem Hauptverzeichnis der Wiki-Installation die &amp;#039;&amp;#039;LocalSettings.php&amp;#039;&amp;#039; bearbeiten und den folgenden Eintrag hinzufügen:&lt;br /&gt;
** require_once(&amp;quot;extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Wenn das funktioniert hat, dann sieht man jetzt einen Java-Quelltext. ;-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    System.out.println(&amp;quot;Fahr weiter! Fahr weiter, du Vogel!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/geshi/files/ Geshi Syntax-Highlighter]&lt;br /&gt;
&lt;br /&gt;
[http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/ Wiki-Repository]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Erweiterungen&amp;diff=20</id>
		<title>Alexander&#039;s Wiki:Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.alexander-kluge.de/index.php?title=Alexander%27s_Wiki:Erweiterungen&amp;diff=20"/>
		<updated>2010-08-13T06:50:16Z</updated>

		<summary type="html">&lt;p&gt;134.169.164.188: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Wiki kann um Erweiterungen (Extensions) ergänzt werden. Ich verzichte hier auf eine allgemeine Beschreibung und stelle hier nur die einzelnen Erweiterungen (und wie man sie installiert) vor, die in diesem Wiki benutzt werden.&lt;br /&gt;
&lt;br /&gt;
== Syntax-Highlighting ==&lt;br /&gt;
* Im Wiki-Verzeichnis &amp;#039;&amp;#039;extensions&amp;#039;&amp;#039; das Unterverzeichnis &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039; erzeugen (beispielsweise mit Hilfe eines FTP-Programms)&lt;br /&gt;
* [http://qbnz.com/highlighter/ Geshi] herunterladen (Bei Quellen steht gleich der SourceForge-Link)&lt;br /&gt;
* Das Paket entpacken (man erhält ein Verzeichnis &amp;#039;&amp;#039;geshi&amp;#039;&amp;#039;) und dieses in das Wiki unter das Verzeichnis &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039; kopieren&lt;br /&gt;
* Vom [http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/ Wiki-Repository] alle Dateien herunterladen und in das &amp;#039;&amp;#039;SyntaxHighlight_GeSHi&amp;#039;&amp;#039;-Verzeichnis kopieren&lt;br /&gt;
* Aus dem Hauptverzeichnis der Wiki-Installation die &amp;#039;&amp;#039;LocalSettings.php&amp;#039;&amp;#039; bearbeiten und den folgenden Eintrag hinzufügen:&lt;br /&gt;
** require_once(&amp;quot;extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Wenn das funktioniert hat, dann sieht man jetzt einen Java-Quelltext. ;-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java5&amp;quot;&amp;gt;&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    System.out.println(&amp;quot;Fahr weiter! Fahr weiter, du Vogel!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
&lt;br /&gt;
[http://sourceforge.net/projects/geshi/files/ Geshi Syntax-Highlighter]&lt;br /&gt;
[http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/ Wiki-Repository]&lt;/div&gt;</summary>
		<author><name>134.169.164.188</name></author>
	</entry>
</feed>