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

<channel>
	<title>Bohnis Blog</title>
	<atom:link href="http://www.bohni.net/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bohni.net</link>
	<description>Bohni bloggt über allerlei</description>
	<lastBuildDate>Mon, 23 Apr 2012 18:46:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Jenkins, Git and Github</title>
		<link>http://www.bohni.net/index.php/2012/04/jenkins-git-and-github/</link>
		<comments>http://www.bohni.net/index.php/2012/04/jenkins-git-and-github/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 18:46:34 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.bohni.net/?p=235</guid>
		<description><![CDATA[Today I tried to get my Jenkins CI server working with a post recieve hook of github. Because it took me a while to get this working, I write this post. The hint that helped me solving my problem was &#8230; <a href="http://www.bohni.net/index.php/2012/04/jenkins-git-and-github/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I tried to get my<a title="jenkins-ci.org" href="http://jenkins-ci.org"> Jenkins CI server</a> working with a <a href="http://help.github.com/post-receive-hooks/">post recieve hook</a> of <a title="github.com" href="http://github.com">github</a>. Because it took me a while to get this working, I write this post. The hint that helped me solving my problem was this <a href="https://github.com/juretta/hudson-github-plugin/issues/4">issue</a> and the reporters <a href="http://nepalonrails.tumblr.com/post/14217655627/set-up-jenkins-ci-on-ubuntu-for-painless-rails3-app-ci">blog post</a> (Thanks!). A simple missing permission&#8230; I configured my jenkins rather restrictive. Only configured users can access jenkins. No anonymous access&#8230;</p>
<p>For getting post recieve hooks working, you have to grant github read access to your jenkins installation.</p>
<p>Either with granting read permissions to Anonymous or with creating a new user and giving this user read permission.</p>
<p>With Anonymous, the URL to configure on github is shown on the jenkins config page (Read the help entry behind the question mark):</p>
<p>http://www.example.com:8080/jenkins/github-webhook/</p>
<p>With an extra user, you have to expose the password to github, because the password is used in the URL:</p>
<p>http://user:password@www.example.com:8080/jenkins/github-webhook/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2012/04/jenkins-git-and-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vom PC zum Smartphone</title>
		<link>http://www.bohni.net/index.php/2011/11/vom-pc-zum-smartphone/</link>
		<comments>http://www.bohni.net/index.php/2011/11/vom-pc-zum-smartphone/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 13:57:33 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.bohni.net/?p=226</guid>
		<description><![CDATA[Als ich mich neulich ein bißchen mit QR-Codes auseinandergesetzt habe, bin ich auf folgende Seite gestoßen: http://www.heise.de/mobil/artikel/QR-Codes-zur-Datenuebertragung-aufs-Smartphone-1026390.html. Hier ist eine Lösung, wie man die URL der gerade angezeigten Seite in ein schönes QR-Code-Bildchen umwandeln kann. Eigentlich ganz geschickt, wenn man &#8230; <a href="http://www.bohni.net/index.php/2011/11/vom-pc-zum-smartphone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Als ich mich neulich ein bißchen mit QR-Codes auseinandergesetzt habe, bin ich auf folgende Seite gestoßen: <a href="http://www.heise.de/mobil/artikel/QR-Codes-zur-Datenuebertragung-aufs-Smartphone-1026390.html">http://www.heise.de/mobil/artikel/QR-Codes-zur-Datenuebertragung-aufs-Smartphone-1026390.html</a>. Hier ist eine Lösung, wie man die URL der gerade angezeigten Seite in ein schönes QR-Code-Bildchen umwandeln kann.</p>
<p>Eigentlich ganz geschickt, wenn man am PC surft und sich die Seite mal auf dem Smartphone anschauen möchte. Das spart doch einiges an Touchscreen-Tipperei. Einfach mit einer entsprechenden Scanner-App den QR-Code einlesen und schon steht die URL auf dem Smartphone zur Verfügung. Wenn man die App dann noch so einstellt, dass nicht automatisch eine Aktion je nach gescanntem Inhalt gestartet wird, ist das Risiko eines Hackerangriffs auch nicht gegeben.</p>
<p>Soweit, so gut.</p>
<p>Aber was ist, wenn ich z.B. ein Stück Text kopieren möchte, oder eine URL, die nicht als Link gerendert ist?</p>
<p>Dazu hab ich mir folgendes Bookmarklet gebastelt:</p>
<pre>javascript:window.open('about:blank','_blank','width=480,height=100,menubar=no,toolbar=no,status=no,location=yes').document.location='http://chart.apis.google.com/chart?cht=qr&amp;chs=480x480&amp;chl='+window.getSelection();void(0);</pre>
<p>Einfach den gewünschten Text auf der Webseite markieren und das Bookmarklet anklicken.</p>
<p>Ein Bookmarklet ist ein Bookmark, das keine URL öffnet, sondern statt dessen ein bißchen Javascript ausführt. Ein neues Lesezeichen/Bookmark im Browser anlegen und anstelle der URL den Javascript-Code einfügen &#8211; schon ist ein Bookmarklet erstellt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2011/11/vom-pc-zum-smartphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring 3.0 und JSF2</title>
		<link>http://www.bohni.net/index.php/2011/07/spring-3-0-und-jsf2/</link>
		<comments>http://www.bohni.net/index.php/2011/07/spring-3-0-und-jsf2/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 10:00:05 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[JavaServer Faces]]></category>
		<category><![CDATA[Springframework]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://www.bohni.net/?p=217</guid>
		<description><![CDATA[Webapp mit Spring3 und JSF2 Singleton oder nicht? HelloWorldBean verwendet MyReverseService Annotation: @javax.inject.Named @javax.faces.bean.RequestScoped public class HelloWorldBean { private String name = ""; @javax.inject.Inject     private MyReverseService service;     public String getName()     {         return name;     } &#8230; <a href="http://www.bohni.net/index.php/2011/07/spring-3-0-und-jsf2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Webapp mit Spring3 und JSF2</p>
<p>Singleton oder nicht?<span id="more-217"></span></p>
<p>HelloWorldBean verwendet MyReverseService</p>
<p>Annotation:</p>
<pre>@javax.inject.Named
@javax.faces.bean.RequestScoped
public class HelloWorldBean
{
    private String name = "";

    @javax.inject.Inject
    private MyReverseService service;

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public void setService(MyReverseService service)
    {
        this.service = service;
    }

    public String getReverseName()
    {
        return service.reverse(name);
    }
 }</pre>
<pre>public interface MyReverseService
{
    public String reverse(String name);
}</pre>
<pre>@javax.inject.Named
@javax.faces.bean.ApplicationScoped
public class MyReverseServiceImpl implements MyReverseService
{
    public String reverse(String name)
    {
        return new StringBuffer(name).reverse().toString().toLowerCase();
    }
}</pre>
<p>ExpressionLanguage greift auf HelloWorldBean zu</p>
<pre>&lt;h:form id="reverseForm"&gt;
    Input: &lt;h:inputText id="name" value="#{helloWorldBean.name}" /&gt;
    &lt;h:commandButton id="submit" type="submit" action="spring" /&gt;
&lt;/h:form&gt;
Reverse: &lt;h:outputText id="reverse" value="#{helloWorldBean.reverseName}" /&gt;</pre>
<p>Problem:</p>
<p>HelloWorldBean wird ein Singleton, da Spring wohl den javax.faces.bean.RequestScoped nicht unterstützt.</p>
<p>Lösung 1:</p>
<p>Eine von Spring unterstützte Annotation:</p>
<pre>@org.springframework.context.annotation.Scope(value="request")</pre>
<p>Lösung 2:</p>
<p>XML-basierte Spring-Configuration (Vorteil: es können alle Annotations gelöscht werden und somit sind alle Klassen wieder POJOs (Plain Old Java Objects):</p>
<pre>    &lt;bean
        id="helloWorldBean"
        class="bean.HelloWorldBean"
        scope="request"&gt;
        &lt;property
            name="service"
            ref="myReverseServiceImpl" /&gt;
    &lt;/bean&gt;

    &lt;bean
        id="myReverseServiceImpl"
        class="service.impl.MyReverseServiceImpl"
        scope="singleton" /&gt;</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2011/07/spring-3-0-und-jsf2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Von einem der auszog, einen Debian-Server zu basteln (Teil 4)</title>
		<link>http://www.bohni.net/index.php/2011/01/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-4/</link>
		<comments>http://www.bohni.net/index.php/2011/01/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-4/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 10:30:42 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.bohni.net/?p=113</guid>
		<description><![CDATA[Debian &#8220;Squeeze&#8221; installieren Im letzten Teil haben wir die Festplatte partitioniert, heute wird Debian &#8220;Squeeze&#8221; mit debootstrap installiert. Debootstrap installiert ein Minimalsystem, das dann den eigenen Bedürfnissen angepasst werden kann. Dadurch kann auf dem System genau die Software installiert werden, &#8230; <a href="http://www.bohni.net/index.php/2011/01/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-4/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Debian &#8220;Squeeze&#8221; installieren</h3>
<p>Im <a href="../index.php/2010/11/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-3/">letzten</a> Teil haben wir die Festplatte partitioniert, heute wird <a href="http://www.debian.org/">Debian</a> &#8220;Squeeze&#8221; mit debootstrap installiert. Debootstrap installiert ein Minimalsystem, das dann den eigenen Bedürfnissen angepasst werden kann. Dadurch kann auf dem System genau die Software installiert werden, welche benötigt wird.<span id="more-113"></span></p>
<p>Der Abstand zum letzten Artikel erklärt sich dadurch, dass ich sehr viele Versuche brauchte, um das System zum Laufen zu kriegen. Zuerst sind Fehler gekommen bei der Installation des Grub2, da irgendwelche Devices gefehlt haben. Nach etwas surfen bin ich auf die /dev/pts gestoßen, dass fehlte. Dann habe ich festgestellt, dass man Debian nicht aus einem Kubuntu heraus komplett installieren kann. Debootstrap geht zwar, aber beim der Grub2-Installation kommt es zu Fehlern, da unterschiedliche Kernel verwendet werden.</p>
<p>Dann habe ich das <a href="http://live.debian.net/">Debian Live Projekt</a> gefunden. Mit diesen Scripts kann ein USB-Stick-Image mit dem aktuellen Debian vorbereitet werden. Mit diesem System binn ich dann weiter gekommen, habe aber dann gekämpft, den Bootloader Grub2 zu installieren. Das neue System ist gebootet, hat aber dann nicht nach der Passphrase gefragt und sich dann beschwert, die verschlüsselte Datei nicht lesen zu können. Also habe ich zwischendurch ein Net-Installation-Image direkt von Debian gezogen und auf einen Stick kopiert. Die Test-Installation verlief reibungslos auch mit Verschlüsselung.  Damit habe ich dann geschaut, welche Unterschiede die Konfigurationsdateien haben. Diese waren identisch.</p>
<p>Dann waren nur noch die zum Booten nötigen unverschlüsselten Datein übrig, bei denen etwas falsch laufen konnte. Hier habe ich dann heraus gefunden, dass die initrd.gz keine Module zum entschlüsseln hatte. Und das lag einfach daran, dass ich im gebootstrapten System vergessen hatte cryptsetup zu installieren.</p>
<p>Aber jetzt läuft es und hier ist der nächste Teil der Server-Installationsanleitung.</p>
<p>Mit den folgenden Befehlen wird das Binary-Image für einen USB-Stick erzeugt und auf den Stick mit der Adresse /dev/sdX kopiert. Ich habe das unter einem Kubuntu 10.10 ausgeführt.</p>
<pre>$ sudo -s
# apt-get install live-build
# mkdir debian-image
# cd debian-image
# lh config -a amd64 -d squeeze -p xfce-desktop -b usb-hdd
# lh build
# dd if=image.bin -of=/dev/sdX</pre>
<p>Jetzt kann das neue Live-Debian-System gebootet und eine Shell geöffnet werden. Anmerkung: Alle Befehle werden als root ausgeführt, dazu kann mit</p>
<pre>$ sudo -s</pre>
<p>eine Root-Shell geöffnet werden. Zuerst installieren wir debootstrap auf unserm USB-Linux:</p>
<pre># apt-get install debootstrap</pre>
<p>Falls noch nicht geschehen, muss die verschlüsselte Root-Partition geöffnet werden:</p>
<pre># cryptsetup luksOpen /dev/sda2 crypt_root</pre>
<p>Anschließend werden die vorbereitete Partition gemountet. Dazu wird ein Verzeichnis angelegt:</p>
<pre># mkdir /mnt/debinst
# mount /dev/mapper/crypt_root /mnt/debinst</pre>
<p>Dann wird die unverschlüsselte Boot-Partition eingehängt:</p>
<pre># mkdir /mnt/debinst/boot
# mount /dev/sda1 /mnt/debinst/boot</pre>
<p>Nun wird mit debootstrap das System installiert:</p>
<pre># debootstrap --arch amd64 squeeze /mnt/debinst http://ftp.de.debian.org/debian</pre>
<p>Dann werden die UUIDs der Partitionen ermittel (am besten in einem zweiten Terminalfesnter, dann kann mit Copy&amp;Paste gearbeitet werden):</p>
<pre># blkid /dev/sda1
# blkid /dev/sda2
# blkid /dev/sda3</pre>
<p>Diese UUIDs werden gleich für die /etc/crypttab benötigt. Nachdem das Basissystem installiert ist, wird nun in das neue System gewechselt, vorher werden noch die Devices eingehängt :</p>
<pre># mount -o bind /dev /mnt/debinst/dev
# mount -t proc proc /mnt/debinst/proc
# mount -t sysfs sys /mnt/debinst/sys
# mount -t devpts devpts /mnt/debinst/dev/pts
# LANG=C chroot /mnt/debinst /bin/bash</pre>
<p>Als erstes sollte das Passwort für den User root gesetzt werden:</p>
<pre># passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully</pre>
<p>Die /etc/crypttab wird mit den folgendem Inhalt angelegt (die UUIDs wurden oben mit blkid ermittelt):</p>
<pre>crypt_root UUID=&lt;SDA2_ROOT_VOLUME_ID&gt; none luks
crypt_swap UUID=&lt;SDA3_SWAP_VOLUME_ID&gt; crypt_root luks,swap,keyscript=/lib/cryptsetup/scripts/decrypt_derived</pre>
<p>Auf diese Angaben kann sich dann die anzulegende Datei /etc/fstab beziehen, die mit folgendem Inhalt erzeugt wird:</p>
<pre># /etc/fstab: static file system information.
#
# file system           mount point  type  options            dump  pass
proc                    /proc        proc  defaults           0     0
/dev/mapper/crypt_root  /            ext3  errors=remount-ro  0     1
UUID=&lt;SDA1_BOOT_VOLUME_ID&gt;  /boot    ext3  defaults           0     2
/dev/mapper/crypt_swap  none         swap  sw                 0     0</pre>
<p>Nun wird /etc/network/interfaces angepasst. Die Datei sollte dann wie folgt aussehen:</p>
<pre># Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp</pre>
<p>Der Name des Servers kann auch noch angepasst werden:</p>
<pre># echo DebianHostName &gt; /etc/hostname</pre>
<p>Für die weitere Installation werden die Quellen für apt-get erweitert:</p>
<pre># vi /etc/apt/sources.list</pre>
<p>Inhalt:</p>
<pre>deb http://ftp.de.debian.org/debian squeeze main
deb http://ftp.de.debian.org/debian squeeze contrib
deb http://ftp.de.debian.org/debian squeeze non-free
deb http://security.debian.org/ squeeze/updates main
deb-src http://ftp.de.debian.org/debian squeeze main
deb-src http://ftp.de.debian.org/debian squeeze contrib
deb-src http://ftp.de.debian.org/debian squeeze non-free
deb-src http://security.debian.org/ squeeze/updates main</pre>
<p>Mit</p>
<pre># apt-get update</pre>
<p>werden die neuen Quellen eingelesen. Die Timezone (Europe/Berlin) wird mit folgendem Kommando eingestellt:</p>
<pre># dpkg-reconfigure tzdata
Europe
Berlin</pre>
<p>Nun werden lokale Einstellungen (locales) und Tastaturlayout konfiguriert:</p>
<pre># apt-get install locales
# dpkg-reconfigure locales
de_DE.UTf-8 UTF-8
en_US.UTF-8 UTF-8
default: en_US.UTF-8

# apt-get install console-data
Select keymap from arch list
qwertz
German
Other
Germany
Germany - eleminate dead keys
. Combined - Latin; Slavic Cyrillic; Greek
# dpkg-reconfigure console-data
Select keymap from arch list
qwertz
German
Standard
latin1 - no dead keys</pre>
<p>Nun noch die mounts in die mtab eintragen. Dazu einen Symlink erstellen:</p>
<pre># ln -sf /proc/mounts /etc/mtab</pre>
<p>Jetzt wird der passende Kernel installiert. Mit dem Befehl</p>
<pre># apt-cache search linux-image</pre>
<p>wird eine Liste mit Kernel-Images angezeigt und dann kann der passende Kernel installiert werden:</p>
<pre># apt-get install linux-image-amd64</pre>
<p>Anschließend wird cryptsetup und der Bootloader GRUB2 installiert und eingerichtet:</p>
<pre># apt-get install cryptsetup
# apt-get install grub-pc
Linux command line leer lassen
/dev/sda wählen
# update-initramfs -u -k all</pre>
<p>Nun werden weitere Packete installiert, die auf einem Server nützlich sind:</p>
<pre># apt-get install ssh
# apt-get install vim
# apt-get install less</pre>
<p>Zum Schluss kann nun der Rechner neu gestartet und von der Festplatte gebootet werden. Beim Booten wird die Passphrase abgefragt. Nach Eingabe der Passphrase wird das System gestartet und man landet in der Konsole mit dem Login-Prompt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2011/01/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse Helios, WTP, JSF und Maven</title>
		<link>http://www.bohni.net/index.php/2010/12/eclipse-helios-wtp-jsf-und-maven/</link>
		<comments>http://www.bohni.net/index.php/2010/12/eclipse-helios-wtp-jsf-und-maven/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 10:43:53 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[JavaServer Faces]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[JSF]]></category>

		<guid isPermaLink="false">http://www.bohni.net/?p=139</guid>
		<description><![CDATA[In diesem Artikel geht es um das Erstellen eines "Dynamic Web Projects"mit JavaServer Faces in Eclipse und der Einbindung von Maven. <a href="http://www.bohni.net/index.php/2010/12/eclipse-helios-wtp-jsf-und-maven/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dieser Artikel beschreibt, wie mit Eclipse Helios, der Web Tools Platform und Maven eine JavaServer Faces 2.0 Web-Applikation erstellt werden kann.</p>
<h3>Voraussetzungen</h3>
<ul>
<li>Installiertes <a href="http://jspserver.net/docs/wiki/Eclipse">Eclipse Helios JEE</a></li>
<li>Installierter Apache Tomcat 7</li>
<li>Installiertes Plugin <a href="http://jspserver.net/docs/wiki/EclipsePluginM2Eclipse">m2eclipse</a></li>
</ul>
<p><span style="color: #ff0000;">Info 2011-05-21: <span style="color: #000000;"></span></span>m2eclipse 0.12 und Eclipse Helios arbeiten nicht so wirklich zusammen. Es gibt Probleme beim Download der Repository-Indizes. Deswegen sollte ein Milestone-Release von m2eclipse 0.13 von der Eclipse-Homepage (<a title="m2eclipse" href="http://www.eclipse.org/m2e/">http://www.eclipse.org/m2e/</a>) verwendet werden!</p>
<p>Die Eclipse JEE Edition bringt die Web Tools Platform mit. Diese Plugins   unterstützen die Entwicklung von JavaEE  Anwendungen. Für Web   Applikation gibt es verschiedene Konfigurationen, die unterschiedliche   Features &#8220;freischalten&#8221;. Bei Verwendung der JavaServer Faces  Konfiguration gibt es z.B. einen speziellen Editor, mit dem die  XML-Datei der JSF-Konfiguration bearbeitet werden kann.  Außerdem können  verschiedene Target Runtimes angelegt werden. Dadurch  werden  automatisch die Bibliotheken dieser Laufzeitumgebung im Classpath  des  Projektes aufgenommen.</p>
<h3><span id="more-139"></span>Projekt anlegen</h3>
<p>In Eclipse wird in der Java EE Perspektive ein neues &#8220;Dynamic Web Project&#8221; mit den folgenden Einstellungen angelegt.</p>
<p><strong>Seite 1 (Dynamic Web Project):</strong> Auf der ersten Seite werden die grundlegenden Einstellungen vorgenommen. Neben Name und Speicherort wird hier eingestellt, für welche Zielumgebung die Web Applikation entwickelt wird. Die Version des Web Modul bestimmt, welche JEE Spezifikationen verwendet werden können. Die Konfiguration bestimmt, welche Features zusätzlich aktiviert werden. Als letztes kann noch angegeben werden, ob das Projekt Teil einer Enterprise Application (EAR) werden soll.</p>
<ul>
<li>Target runtime: Apache Tomcat v7.0</li>
<li>Dynamic web module version: 3.0</li>
<li>Configuration: JavaServer Faces v2.0 Project</li>
</ul>
<p>Für dieses Projekt verwenden wir eine aktuelle Version von Tomcat 7, Version 3.0 des Web Module, da erst diese Version JSF 2.0 unterstützt.</p>
<p><strong>Seite 2 (Java):</strong> Im zweiten Schritt werden die Verzeichnisse für die Java-Sourcen und die kompilierten Klassen festgelegt.</p>
<ul>
<li>Source folders on build path: src entfernen, src/main/java anlegen</li>
<li>Default output folder: target/classes eintragen</li>
</ul>
<p>Da wir Maven verwenden wollen, werden die Verzeichnisse entsprechend dem offiziellen <a href="http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html">Standard-Layout</a> angepasst.</p>
<p><strong>Seite 3 (Web Module):</strong> Die Daten für die Web Applikation werden auf Seite drei eingegeben. Der Context root wird beim Ausführen in Eclipse verwendet. Im Content directory liegen alle Dateien der Website (Seiten, Bilder, CSS, usw.) und die Konfigurationsdateien, z.B. die web.xml. Diese kann auch gleich mit den benötigten Einträgen erstellt werden.</p>
<ul>
<li>Content directory: src/main/webapp</li>
<li>Generate web.xml deployment descriptor: aktivieren</li>
</ul>
<p>Für unser Projekt passen wir das Verzeichnis ebenfalls dem Maven Standard an und lassen den Deployment Descriptor gleich mit den Einträgen für JSF erstellen. Angepasst wird er später.</p>
<p><strong>Seite 4 (JSF Capabilities):</strong> Zum Schluss werden die benötigen Angaben zu den JavaServer Faces abgefragt. Mit der JSF Implementation Library wird WTP mitgeteilt, wo die JSF-jars liegen. Außerdem wird die JSF-Konfiguration festgelegt.</p>
<ul>
<li>Type: Disable Library Configuration</li>
<li>URL Mapping Patterns: /faces/* entfernen, *.xhtml hinzufügen</li>
</ul>
<p>Da wir Maven verwenden, deaktivieren wir die JSF-Bibliotheken. Diese kommen später als Dependencies hinzu. Da wir Facelets verwenden werden, stellen wir das Mapping um. Das ist aber nicht zwingend nötig und könnte auch unverändert übernommen werden.</p>
<h3>Maven aktivieren</h3>
<p>Das m2eclipse-Plugin übernimmt die Verwaltung des Classpath&#8217; in Eclipse. Alle Dependencies werden automatisch aufgenommen, sobald die pom.xml geändert wird. Außerdem bringt es noch eine Erweiterung für WTP mit, so dass im Projekt-Explorer ein zusätzlicher Eintrag im Baum (&#8220;Web Resources&#8221; ) erscheint.</p>
<p>Rechtsklick auf das Projekt und Maven/Enable Dependency Management auswählen</p>
<p><strong>Seite 1 (Maven2 POM):</strong> Auf der ersten Seite werden die allgemeinen Mavendaten des Projekts erfasst. Group Id und Artifact Id dienen der eindeutigen Identifizierung des Produkts. Versionsnummern mit &#8220;-SNAPSHOT&#8221; kennzeichnen Projekte in der Entwicklung. Beim Deploy in ein MAven Repository wird die Endung durch den aktuellen Timestamp ersetzt. Packaging gibt an, wie das Produkt verpackt werden soll (jar, war, &#8230;). Name und Description liefern den Anwendern nährere Infos zum Produkt.</p>
<ul>
<li>Group Id anpassen (net.bohni.sample)</li>
<li>Artifact Id anpassen (sample-war)</li>
<li>Packaging: war</li>
</ul>
<p>Für unser Beispiel passen wir Group und Artifact Id an und setzten Packaging auf &#8220;war&#8221;, da wir eine Web Applikation erstellen werden.</p>
<p><strong>Seite 2 (Select additional dependencies):</strong> Die Abhängigkeiten werden auf der zweite Seite erfasst.</p>
<ul>
<li>org.slf4j slf4j-api 1.6.1</li>
<li>ch.qos.logback logback-classic 0.9.26</li>
</ul>
<p>Da die aktuellen JSF Bibliotheken nicht im offiziellen Maven Repository sind, können wir an dieser Stelle die jars noch nicht hinzufügen. Dazu erweitern wir später den POM um das passende Repository von java.net. An dieser Stelle fügen wir die Bibliotheken fürs logging hinzu.</p>
<h3>Projekt konfgurieren</h3>
<p>Durch das Aktivieren von Maven gibt es nun Fehler im Projekt. Zum einen wird eine falsche JRE System Library im build Path gesetzt, zum anderen müssen die Maven Dependencies aufgenommen werden, damit diese später auch in WEB-INF/lib landen. Um diese Fehler zu beheben werden die Properties des Projekts geöffnet und folgende Einstellungen geändert:</p>
<ul>
<li>Java Build Path: Libraries: JRE System Library [...] -&gt;JRE System Library [JavaSE-1.6]</li>
<li>Deployment Assembly: Hinzufügen von Java Build Path Entries/Maven Dependencies</li>
</ul>
<p>Maven verwendet standardmäßig Java 1.4, deswegen muss noch das Compiler-Plugin konfiguriert werden, das geschieht in der Datei pom.xml. Es ist folgender Abschnitt einzufügen:</p>
<pre>&lt;build&gt;
  &lt;plugins&gt;
    &lt;plugin&gt;
      &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
      &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
      &lt;version&gt;2.3.2&lt;/version&gt;
      &lt;configuration&gt;
        &lt;source&gt;1.6&lt;/source&gt;
        &lt;target&gt;1.6&lt;/target&gt;
      &lt;/configuration&gt;
    &lt;/plugin&gt;
  &lt;/plugins&gt;
&lt;/build&gt;</pre>
<p>Anschließend muss das <a href="https://maven2-repository.dev.java.net/">java.net Maven2 Repository</a> im pom.xml aufgenommen werden, damit die aktuelle JavaServer Faces Version als Dependency aufgenommen werden kann. Entweder mit dem POM-Editor ein neues Repository anlegen, oder im Source die folgenden Zeilen einfügen:</p>
<pre>&lt;repositories&gt;
  &lt;repository&gt;
    &lt;id&gt;maven2-repository.dev.java.net&lt;/id&gt;
    &lt;name&gt;Java.net Repository for Maven&lt;/name&gt;
    &lt;url&gt;http://download.java.net/maven/2/&lt;/url&gt;
    &lt;layout&gt;default&lt;/layout&gt;
  &lt;/repository&gt;
&lt;/repositories&gt;</pre>
<p>Nun können die aktuellen JSF-Bibliotheken als Dependencies hinzugefügt werden (im POM-Editor oder über Rechtsklick auf Projekt/Maven/Add Dependency:</p>
<ul>
<li>javax.facers jsf-api 2.0</li>
<li>com.sun.faces jsf-impl 2.0.3</li>
</ul>
<h3>Webapplikation erstellen</h3>
<p>Unsere Wep Applikation wird eine einfache Hello World Anwendung. Es gibt eine Seite, auf der ein String angezeigt wird, welcher aus einer ManagedBean kommt.</p>
<h4>Managed Bean</h4>
<p>Dazu erzeugen wir die ManagedBean, indem wir mit dem Faces-Config-Editor die Bean in der faces-config.xml eintragen (da der auszugebende String nur auf der einen Seite zur Anzeige benötigt wird, gibt es eine Bean mit dem Scope request):</p>
<p><strong>Seite 1 (Java Class Selection):</strong> Hier kann gewählt werden, ob die ManagedBean eine bestehende oder eine neue Klasse ist.</p>
<ul>
<li>Create a new Java class</li>
</ul>
<p>Wir haben noch keine Klasse, also legen wir eine neue an.</p>
<p><strong>Seite 2 (Java Class):</strong> Hier wird mit dem Standarddialog aus Eclipse die Klasse angelegt.</p>
<ul>
<li>Package angeben (net.bohni.sample.beans)</li>
<li>Name angeben (MyBean)</li>
</ul>
<p>Wir benötigen eine ganz normale public POJO-Klasse. Also passen wir nur package und Name an. Supperclass und Interfaces werden nicht benötigt.</p>
<p><strong>Seite 3 (Managed Bean Configuration):</strong> Auf der vorletzten Seite wird der Name und der Scope, sowie eine Beschreibung angegeben.</p>
<ul>
<li>Name angeben (myBean)</li>
<li>Scope auswählen (request)</li>
</ul>
<p>Für unser Beispiel übernehmen wir die vorgeschlagenen Werte.</p>
<p><strong>Seite 4 (Wizard Summarys):</strong> Die letzte Seite zeigt noch einmal die Angaben. Mit Klick auf Finish wird der Klassenrumpf erzeugt.</p>
<p>Anschließend programmieren wir die benötigte Methode, die den String liefert.</p>
<pre>package net.bohni.sample.bean;

public class MyBean
{
  public String getName()
  {
    return "Hello world";
  }
}</pre>
<h4>HTML-Seite</h4>
<p>Neue HTML-Datei /src/main/webapp/index.xhtml erstellen</p>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
  &lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /&gt;
  &lt;title&gt;Homepage&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;Homepage&lt;/h1&gt;
  &lt;p&gt;Hier geht es los...&lt;/p&gt;
  &lt;p&gt;#{myBean.name}&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<h4>Deployment Descriptor web.xml</h4>
<p>Zum Schluss passen wir noch die welcome-file-list im Deployment Descriptor src/main/webapp/WEB-INF/web.xml an:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"&gt;
  &lt;display-name&gt;sample-war&lt;/display-name&gt;
  &lt;welcome-file-list&gt;
    &lt;welcome-file&gt;index.xhtml&lt;/welcome-file&gt;
  &lt;/welcome-file-list&gt;
  &lt;servlet&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
  &lt;/servlet&gt;
  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;*.xhtml&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
&lt;/web-app&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2010/12/eclipse-helios-wtp-jsf-und-maven/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Von einem der auszog, einen Debian-Server zu basteln (Teil 3)</title>
		<link>http://www.bohni.net/index.php/2010/11/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-3/</link>
		<comments>http://www.bohni.net/index.php/2010/11/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-3/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 17:00:53 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[LUKS]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.bohni.net/?p=74</guid>
		<description><![CDATA[Bauen und Einrichten eines Linux-Servers: Festplatte einrichten und verschlüsseln <a href="http://www.bohni.net/index.php/2010/11/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Die Bauteilliste</h3>
<p>Als Ergänzung zum letzten Blogeintrag hier noch die Liste der verbauten Hardware:</p>
<ul>
<li>CPU: Intel Core i3-350</li>
<li>CPU-Lüfter: Scythe Samurai ZZ</li>
<li>Mainboard: MSI H55M-E33</li>
<li>Speicher: 2x2GB (DDR3-1333/PC3-10600, CL9)</li>
<li>Festplatte: Samsung EcoGreen F2 1,5TB, SATA II</li>
<li>DVD-Brenner: LG GSA-4182</li>
<li>Gehäuse: Antec Sonata II</li>
<li>Netzteil: be quiet! Pure Power 300 Watt / BQT L</li>
</ul>
<h3>Das Betriebssytem</h3>
<p>Wie die Titel der Blogbeiträge schon andeuten, soll auf dem Server die aktuelle Version &#8220;Lenny&#8221; der Linux-Distribution <a href="http://www.debian.org">Debian</a> installiert werden. Dazu möchte ich aber nicht den Weg über den Debian-Installer gehen, sondern das System so klein wie möglich aufsetzen. Dazu bietet sich die Installation mittels debootstrap an.</p>
<p>Dazu boote ich das System von USB-Stick mit der aktuellen <a href="http://www.kubuntu.org">Kubuntu</a>-Version 10.10 &#8220;Maverick Meerkat&#8221;. Den USB-Stick (4GB) habe ich mit <a href="http://www.linuxliveusb.com">Linux Live USB Creator</a> erzeugt. Damit nicht alle Einstellungen verloren gehen, habe ich den verbleibenden Platz des Sticks für permanenten Speicher vergeben.<span id="more-74"></span></p>
<h3>Die Festplatte vorbereiten</h3>
<p>Als erstes wird nun die frisch verbaute Festplatte geprüft. Dazu kommt das Tool badblocks zum Einsatz.</p>
<p>Anmerkung: Alle Befehle werden als root ausgeführt, dazu kann mit</p>
<pre>$ sudo -s</pre>
<p>eine Root-Shell geöffnet werden. Mit dem Befehl</p>
<pre># badblocks -c 1024 -s -w -t random -v /dev/sda</pre>
<p>wird die komplette Platte (da in meinem System nur eine SATA-Festplatte verbaut ist, ist das dev/sda) mit zufälligen Werten überschrieben und gleich noch geprüft. Das dauert einige Stunden bei 1,5 TB&#8230; Das ist übrigens auch zu empfehlen, wenn man eine alte Platte entsorgen möchte. Danach sind nämlich alle Daten weg. Also aufpassen, damit nicht das falsche Device gelöscht wird!</p>
<p>Während badblocks also so vor sich hin prüft, werden wir uns nun mit der anstehenden Partitionierung der Platte beschäftigen. Da ich die Platte verschlüsseln möchte, benötigen wir auf jeden Fall eine kleine Boot-Partition, die später unverschlüsselt ist, damit Linux überhaupt bootet. Dann benötigen wir natürlich die unter Linux übliche Swap-Partition. Der Rest bleibt dann für die verschlüsselte Root-Partition übrig.</p>
<p>Zum Partitionieren habe ich mich für die grafische Variante mittels <a href="http://partitionman.sourceforge.net">KDE-Partitionmanager </a>entschieden. Dazu muss allerdings das Softwarepaket erst noch installiert werden. Das geschieht über die Softwareverwaltung KPackageKit. Hier müssen dann zuerst in den Einstellungen alle Quellen aktiviert werden, damit auch Pakete aus den Repositories universe und multiverse installiert werden können.</p>
<p>Wenn badblocks fertig ist, bereiten wir die Partitionen vor. Als  Dateisystem verwenden ich ext3, da dieses von den meisten  Festplattentools sehr gut unterstützt wird.</p>
<p>Ich habe dann die Boot-Partition mit 200MiB am Anfang der Platte erzeugt, danach die große Root-Partition, indem ich am Ende 5200MiB Platz (<a href="http://wiki.ubuntuusers.de/swap">RAM + 30%</a>) gelassen habe. Zum Schluss habe ich im verbleibenden Teil der Platte die Swap-Partition angelegt.</p>
<p>Es ergibt sich damit die folgende Aufteilung der Festplatte (da die Platte in Sektoren aufgeteilt wird, weichen die tatsächlichen Partitionsgrößen etwas von den eingegebenen Werten ab). Mit dem Befehl</p>
<pre># cfdisk /dev/sda</pre>
<p>kann die Aufteilung angezeigt werden:</p>
<pre> Name    Flags    Part Type  FS Type                 Size (MB)
------------------------------------------------------------------------------
 sda1             Primary    Linux                      197.41
 sda2    Boot     Primary    Linux                  1494903.52
 sda3             Primary    Linux swap / Solaris      5198.38
</pre>
<p>Zum Schluss bereiten wir nun noch die Partitionen vor. Die kleine unverschlüsselte Boot-Partition formatieren wir dazu mit dem Befehl:</p>
<pre># mkfs.ext3 /dev/sda1</pre>
<p>Danach ist die zu verschlüsselnde Partition dran: Zuerst wird das LUKS-Gerät erzeugt, was mit dem Befehl</p>
<pre># cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sda2</pre>
<p>passiert. Mit einem groß geschriebenen yes wird der Befehl bestätigt. Dann muss noch zweimal die Passphrase eingegeben werden, um einen Tippfehler zu verhindern. Anschließend wird das gerade erzeugte Gerät noch geöffnet, damit es formatiert werden kann. Das geschieht mit den beiden folgenden Befehlen (der erste Befehl fragt nach der Passphrase und bindet dann die Partition unter /dev/mapper/crypt_root ein):</p>
<pre># cryptsetup luksOpen /dev/sda2 crypt_root
# mkfs.ext3 /dev/mapper/crypt_root</pre>
<p>Zuletzt wird noch die ebenfalls zu verschlüsselnde Swap-Partition vorbereitet. Dazu leiten wir einen Schlüssel von unserer Root-Partition ab:</p>
<pre># /lib/cryptsetup/scripts/decrypt_derived crypt_root \
   | cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sda3
# /lib/cryptsetup/scripts/decrypt_derived crypt_root \
   | cryptsetup luksOpen /dev/sda3 crypt_swap
# mkswap /dev/mapper/crypt_swap</pre>
<p>Der foglende Befehl schließt die verschlüsselten Partitionen wieder:</p>
<pre># cryptsetup luksClose crypt_root
# cryptsetup luksClose crypt_swap</pre>
<p>Somit sind alle drei Partitionen vorbereitet. Im nächsten Teil wird dann das Minimalsystem installiert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2010/11/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Von einem der auszog, einen Debian-Server zu basteln (Teil 2)</title>
		<link>http://www.bohni.net/index.php/2010/10/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-2/</link>
		<comments>http://www.bohni.net/index.php/2010/10/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-2/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 09:30:49 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.bohni.net/?p=45</guid>
		<description><![CDATA[Bauen und Einrichten eines Linux-Servers: Welche Hardware soll ich verwenden? <a href="http://www.bohni.net/index.php/2010/10/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Die Hardware</h3>
<p>Lange habe ich auch deswegen gezögert, weil ich mir nicht über die Hardware schlüssig war. Meine ausgedienten Spiele-PCs waren bzw. sind eigentlich viel zu überdimensioniert. Sie brauchen viel zu viel Strom, auch wenn sie nur im Leerlauf vor sich hin brummen. Außerdem benötigt so ein SpielePC auch gute Lüfter, die die anfallende Wärme aus dem Gehäuse bläst, was leider auch mit einer entsprechenden Geräuschkulisse einher geht.</p>
<p>Aber dann kam der Artikel &#8220;Wünsch dir was zum Arbeiten&#8221; in der c&#8217;t 08/2010. Hier wird ein Bauvorschlag für einen PC zum Arbeiten vorgestellt, der &#8220;in erster Linie unauffällig seinen Dienst&#8221; tun soll. Ein PC, der &#8220;zum Arbeiten, Surfen oder Bildanhübschen&#8221; reicht, sollte doch locker auch als Server herhalten können. Und da neben den flüsterleisen Komponenten auch noch auf den Stromverbrauch geachtet wurde, habe ich mich vor ein paar Wochen dazu entschieden, diesen Bauvorschlag nachzubauen.<span id="more-45"></span></p>
<p>Von meinem alten Spiele-PC hatte ich noch ein Silent-Gehäuse Antec Sonata II übrig. Das Sonata II ist bereits mit einem Netzteil ausgestattet. Also habe ich mir die noch fehlenden Komponenten (CPU, Mainboard, Hauptspeicher, Festplatte und CPU-Kühler) gekauft. Den DVD-Brenner habe ich ebenfalls aus dem alten PC übrnommen,  Antivibrationsrahmen für die Festplatte sind beim Sonata dabei.</p>
<p>Nachdem alles bereit lag, habe ich den Rechner zusammengebaut. Das hat problemlos geklappt, denn es war nicht der erste PC, den ich selbst gebaut habe. Allerdings bin ich trotzdem auf Probleme gestoßen.</p>
<p>Das erste Problem war der Hauptspeicher. Da im Bauvorschlag keine Angaben zum Hersteller gemacht wurden, habe ich den Speicher hauptsächlich nach Preis gekauft. Das böse erwachen kam dann beim ersten Einschalten. Der Rechner kam nicht einmal bis zum BIOS. Kein Pieps, einfach nichts. Nur die Festplatte ist angelaufen und hat in regelmäßigen Abständen kurz geklickt, wie bei einem Lesezugriff. Ich hab dann zuerst Mal alle nicht notwendigen Geräte ausgesteckt (Festplatte, DVD-Brenner) und einen Speicherriegel entfernt. Und siehe da, nun ist das BIOS nach dem Einschalten tatsächlich aufgetaucht. Dann hab ich den zweiten Riegel eingesteckt und schon blieb der Bildschirm dunkel. Dann hab ich den zweiten Riegel in einen anderen Steckplatz umgezogen (nun ohne Dual-Channel) und das BIOS war wieder da. Es gab also den ersten Anhaltspunkt: Dual-Channel. Also habe ich nach einem neuen BIOS gesucht und auch eines gefunden, aber das Problem blieb bestehen. Somit war der Übeltäter entlarvt. Der Speicher! Nach etwas Internet-Forschung bin ich dann auf die Kombatibilitätsliste des Mainboards gestoßen, was den Speicher angeht. Aha, der bestellte Speicher war nicht dabei. Gleiche Firma, aber etwas andere Nummer. Also hab ich den Speicher zurück geschickt und mir kompatiblen Speicher geholt. Leider mit dem gleichen Ergebnis &#8211; im Dual-Channel-Betrieb geht nichts. Da de Dual-Channel-Mode aber sowieso nicht so viel Leistungsteigerung bringt, habe ich beschlossen, das System ohne zu betreiben, denn auf noch mehr zurückschicken und neu bestellen hatte ich keine Lust.</p>
<p>Die nun laufende Hardware wollte ich nun das erste Mal mit Software sehen. Also habe ich ein Kubuntu-CD-Image auf einen USB-Stick kopiert und davon gebootet. Das brachte mich zum zweiten Problem. Der Stromverbrauch! Anstelle der im Artikel erwähnten &#8220;weniger als 30 Watt Leistungsaufnahme im Leerlauf&#8221; kam mein System auf mehr als das doppelte: 62 Watt! Eine Recherche im Internet ergab, dass Linux etwas mehr benötigt als Windows, aber über das Doppelte?! Also habe ich Windows 7 installiert und festgestellt, dass Windows tatsächlich weniger Strom braucht, 0,5 bis 2 Watt weniger&#8230; Daran lag es also nicht. Auch die neuesten Treiber haben keine Besserung gebracht. Also habe ich mich entschlossen, doch noch das (günstigere) Netzteil aus dem Artikel zu bestellen. Und siehe da, jetzt sind es unter Windows plötzlich nur noch 33 Watt! Da ich 2 DVD-Laufwerke angeschlossen habe, denke ich, ist das OK. Unter Linux erreiche ich 35 Watt.</p>
<p>Somit habe ich nun das Kapitel Hardware erledigt. Der Rechner ist wirklich leise &#8211; unhörbar leise. Ich hab nicht damit gerechnet, dass Rechner tatsächlich so leise sein können! Nur wenn ich ganz nahe mit dem Ohr ans Gehäuse gehe, dann höre ich ganz leise die Festplatte. Und die Stromkosten für durchgängig 35 Watt Verbrauch sind vertretbar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2010/10/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Von einem der auszog, einen Debian-Server zu basteln (Teil 1)</title>
		<link>http://www.bohni.net/index.php/2010/10/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-1/</link>
		<comments>http://www.bohni.net/index.php/2010/10/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-1/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 09:30:13 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.bohni.net/?p=40</guid>
		<description><![CDATA[Bauen und Einrichten eines Linux-Servers: Warum mache ich mir diese Arbeit? <a href="http://www.bohni.net/index.php/2010/10/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h3>Die Anfänge</h3>
<p>Momentan muss ich bei jedem Rechnerwechsel daran denken, alle meine Daten zu sichern. Genauso ist es bei einem Wechsel des Betriebssysstems (Windows 95, windows 98, Windows ME, Windows XP, Windows Vista). Und gerade unter Windows ist das nicht unbedingt einfach. Neben dem Benutzer-Verzeichnis gibt es ja noch diverse andere Stellen, wo sich so im Laufe der Zeit die Daten sammeln. Ganz zu schweigen von den diversen persönlichen Einstellungen der Programme und der Registry.</p>
<p>Irgendwann hab ich dann angefangen, zumindest meine wichtigen Daten auf eine eigene Partition zu speichern, so dass nichts in den tiefen der Windows-Chaos-Verzeichnisstruktur verloren geht. Gerade bei den E-Mails und Browsereinstellungen war es hilfreich, auf die <a href="http://www.mozilla.org">Mozilla</a>-Programme (<a href="http://www.mozilla-europe.org/de/firefox/">Firefox</a>, <a href="http://www.mozillamessaging.com/de/thunderbird/">Thunderbird</a>) umzusteigen. Hier kann beim Anlegen eines Profils der Pfad zu einem bestehenden Profil angegeben werden und schon ist alles so, wie vor dem Umzug. Also hab ich die beiden Profile auch auf der zweiten Partition angelegt.</p>
<p>Aber in der heutigen Zeit möchte man ja seine Daten nicht nur am Desktop-PC, sondern auch auf dem Note- oder Netbook, vielleicht sogar auf dem Smartphone haben.<span id="more-40"></span></p>
<h3>Die Idee</h3>
<p>Nun gut, es ist nicht meine eigene Idee, vielmehr muss ich mich bei meinem Freund <a href="http://mezger.net">Matze</a> bedanken, der schon seit Jahren einen eigenen Server betreibt. Das ganze ist <a href="http://www.debian.org/">Debian</a> basiert, eine stabile, zuverlässige Linux-Distribution.</p>
<p>Also habe ich mich vor langer Zeit schon entschlossen, mir auch so einen Server zuzulegen. Aber immer kam irgendwie der innere Schweinehund vorbei und wollte spielen (Command &amp; Conquer, Starcraft, World of Warcraft, Herr der Ringe Online, &#8230;). So blieb dann keine Zeit übrig, sich um den Serveraufbau zu kümmern. Aber jetzt soll es endlich losgehen.</p>
<p>Warum der Server? Nun, damit kann ich alle meine E-Mails von den unterschiedlichen Providern regelmäßig abholen und dann per IMAP auf allen meinen Endgeräten anschauen. Auch meine ganzen Daten (Dokumente, Fotos, Entwicklungsprojekte, usw.) kann ich hier speichern und dann von überall darauf zugreifen.</p>
<p>In diesem Blog möchte ich nun meine Erfahrungen teilen, die ich in nächster Zeit beim Aufbau des Servers so sammle.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2010/10/von-einem-der-auszog-einen-debian-server-zu-basteln-teil-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mein Blog ist online&#8230;</title>
		<link>http://www.bohni.net/index.php/2010/09/mein-blog-ist-online/</link>
		<comments>http://www.bohni.net/index.php/2010/09/mein-blog-ist-online/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 18:08:38 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Allerlei]]></category>

		<guid isPermaLink="false">http://bohni.net/?p=20</guid>
		<description><![CDATA[Nachdem die Installation abgeschlossen ist und nun auch die letzten Anpassungen fertig sind, hab ich mich entschlossen, mein Blog online zu stellen. Wie ihr seht, gibt es noch nicht viel zu sehen. Ich hoffe ja mal, dass ich es schaffe, &#8230; <a href="http://www.bohni.net/index.php/2010/09/mein-blog-ist-online/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nachdem die Installation abgeschlossen ist und nun auch die letzten Anpassungen fertig sind, hab ich mich entschlossen, mein Blog online zu stellen.</p>
<p>Wie ihr seht, gibt es noch nicht viel zu sehen. Ich hoffe ja mal, dass ich es schaffe, auch mal sinnvolle Beiträge zu schreiben!</p>
<p>Bis dahin bleibt mir nur zu sagen: Danke für&#8217;s vorbei schauen und Entschuldigung für den Zeitklau, weil es noch nichts zu lesen gibt!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2010/09/mein-blog-ist-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ich starte mein Blog</title>
		<link>http://www.bohni.net/index.php/2010/08/ich-starte-mein-blog/</link>
		<comments>http://www.bohni.net/index.php/2010/08/ich-starte-mein-blog/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 16:52:43 +0000</pubDate>
		<dc:creator>Bohni</dc:creator>
				<category><![CDATA[Allerlei]]></category>

		<guid isPermaLink="false">http://bohni.net/?p=6</guid>
		<description><![CDATA[Sodele, WordPress ist installiert, nun steht dem bloggen eigentlich nichts mehr im Wege. Naja, der innere Schweinehund vielleicht. Mal sehen, ob ich genügend Zeit, Lust und Themen finde, dieses Blog zu füllen. Die Zukunft wird es zeigen.]]></description>
			<content:encoded><![CDATA[<p>Sodele, WordPress ist installiert, nun steht dem bloggen eigentlich nichts mehr im Wege. Naja, der innere Schweinehund vielleicht.</p>
<p>Mal sehen, ob ich genügend Zeit, Lust und Themen finde, dieses Blog zu füllen.</p>
<p>Die Zukunft wird es zeigen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bohni.net/index.php/2010/08/ich-starte-mein-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

