<?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>Journal « Raphael Kallensee &#187; ubuntu</title>
	<atom:link href="http://raphael.kallensee.name/journal/tag/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://raphael.kallensee.name/journal</link>
	<description>Web, Mobile, Design, Music.</description>
	<lastBuildDate>Sun, 08 Jan 2012 18:00:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://rkallensee.superfeedr.com/" />
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com/" />
			<item>
		<title>Samsung Galaxy Nexus auf Original-Firmware ITL41F flashen</title>
		<link>http://raphael.kallensee.name/journal/samsung-galaxy-nexus-auf-original-firmware-itl41f-flashen/</link>
		<comments>http://raphael.kallensee.name/journal/samsung-galaxy-nexus-auf-original-firmware-itl41f-flashen/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 23:51:42 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://raphael.kallensee.name/journal/?p=376</guid>
		<description><![CDATA[Ich bin seit ein paar Tagen stolzer Besitzer eines Samsung Galaxy Nexus mit dem neuen Android 4.0 (ICS). Leider war die Geduld nicht groß genug und ich habe am ersten Tag der Verfügbarkeit in Deutschland die Gelegenheit im Saturn-Markt ergriffen. Das Problem: die erste Charge von Saturn / Media Markt wurde wohl von Samsung eilig [...]]]></description>
			<content:encoded><![CDATA[<p>Ich bin seit ein paar Tagen stolzer Besitzer eines Samsung Galaxy Nexus mit dem neuen Android 4.0 (ICS). Leider war die Geduld nicht groß genug und ich habe am ersten Tag der Verfügbarkeit in Deutschland die Gelegenheit im Saturn-Markt ergriffen. Das Problem: die erste Charge von Saturn / Media Markt wurde wohl von Samsung eilig vor der Deutschen Markteinführung mit einem eigenen Build (ITL41F.I9250XWKK8) geflasht, in dem das <a href="http://forum.xda-developers.com/showthread.php?t=1353590">Lautstärke-Problem</a> bereits behoben ist. Dieser Build weicht vom offiziellen Google-Build (ITL41F) ab &#8211; unter anderem sind die Google-Anwendungen wie Google Maps und Google+ nicht mit dem offiziellen Zertifikat von Google signiert. In der Praxis führt das dazu, dass das Update auf Google Maps 6.0 mit einer Fehlermeldung &#8220;Die Paketdatei war nicht richtig signiert.&#8221; abbricht. Für das Problem gibt es bereits ein <a href="http://code.google.com/p/android/issues/detail?id=22435">Ticket</a> im Android-Bugtracker. Da neuere Chargen aber alle mittlerweile den &#8220;offiziellen&#8221; Build haben und Samsung ein <a href="http://www.mobiflip.de/2011/12/samsung-galaxy-nexus-offizielles-update-von-samsung-verfuegbar-fixt-updateprobleme-der-google-apps/">Update-Tool</a> für Windows veröffentlicht hat, mit dem man den offiziellen Build unter Windows flashen kann, ist die Hoffnung gering, dass das Problem mittels OTA-Update behoben wird. Deshalb musste ich mich notgedrungen an die Arbeit machen, mein Galaxy Nexus unter Ubuntu auf das &#8220;Stock&#8221; image zu flashen, um den kaputten Samsung-Build loszuwerden.</p>
<p><strong>Achtung: bei diesem Vorgang werden sämtliche Daten auf dem Gerät gelöscht! Sie müssen also vorher gesichert werden! Der Vorgang geschieht außerdem auf eigene Gefahr!</strong></p>
<p>Ich hatte bereits das <a href="http://developer.android.com/sdk/installing.html">Android-SDK</a> in meinem Home-Verzeichnis unter <code>~/bin/android-sdk-linux</code> installiert und die Verzeichnisse <code>tools</code> und <code>platform-tools</code> dem PATH hinzugefügt (dies wird u.a. auch in <a href="http://www.android-hilfe.de/root-hacking-modding-fuer-lg-gt540/161667-how-fastboot-unter-linux.html">dieser Anleitung</a> erklärt). Das SDK bringt leider nicht das Tool <a href="http://wiki.cyanogenmod.com/wiki/Fastboot">fastboot</a> mit, das zum Flashen des originalen Android-Images notwendig ist. Die Binaries von Fastboot und ADB (letzteres ist aber auch im SDK enthalten) können über den zuvor genannten Link heruntergeladen werden. Ich habe einfach die fastboot-Binary in mein &#8220;platform-tools&#8221;-Verzeichnis im SDK-Ordner entpackt und die adb-Binary aus dem aktuellen SDK verwendet.</p>
<p>Nun muss das offizielle Image <a href="http://code.google.com/intl/de-DE/android/nexus/images.html">von Google</a> heruntergeladen und entpackt werden. Wichtig: hier die Version &#8220;4.0.1 (ITL41F)&#8221; verwenden &#8211; denn in dieser ist der Lautstärke-Bug behoben. In diesem Verzeichnis sind Bootloader-, Baseband- und ein Android-Image sowie ein Shell-Skript zum Flashen enthalten.</p>
<p>Die weitere Prozedur kann auch <a href="http://www.pocketpc.ch/galaxy-nexus-root-rom/149030-anleitung-zurueck-werkszustand-itl41f-google-stock-source-image-cwm.html">in diesem Beitrag</a> nachvollzogen werden: Bei den betroffenen Geräten ist der Bootloader bereits entsperrt (was an einem offenen Schloss beim Booten unterhalb des Google-Logos zu sehen ist). Um im Bootloader-Modus zu starten, muss das Gerät ausgeschaltet werden, anschließend Volume-Up- und Down-Regler gedrückt halten und das Gerät bei gedrückten Tasten einschalten. Das Gerät startet mit einem grünen Androiden im Bootloader-Modus. Daraufhin das Gerät per USB an den PC anschließen.</p>
<p>Um festzustellen, ob fastboot das Gerät erkennt, reicht ein <code>fastboot devices</code> auf der Konsole. Wird es nicht erkannt, erfolgt keine Ausgabe &#8211; falls doch, folgt eine Ausgabe mit der Seriennummer des Geräts. Bei mir war es notwendig, fastboot mittels <code>sudo</code> aufzurufen &#8211; woraufhin fastboot nicht mehr im PATH war &#8211; also musste ich ganz ausführlich werden: <code>sudo /home/raphael/bin/android-sdk-linux/platform-tools/fastboot devices</code> &#8211; dann wurde das Gerät angezeigt. Jetzt müssen eigentlich nur nacheinander die Befehle aus dem Shell-Skript im entpackten Ordner der Original Google-Images ausgeführt werden. Die Datei &#8220;flash-all.sh&#8221; kann man einfach in einem Texteditor öffnen und falls nötig die fastboot-Befehle anpassen. Original sieht die Datei so aus:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Copyright (C) 2011 The Android Open Source Project</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span>
<span style="color: #666666; font-style: italic;"># you may not use this file except in compliance with the License.</span>
<span style="color: #666666; font-style: italic;"># You may obtain a copy of the License at</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#      http://www.apache.org/licenses/LICENSE-2.0</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Unless required by applicable law or agreed to in writing, software</span>
<span style="color: #666666; font-style: italic;"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span>
<span style="color: #666666; font-style: italic;"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<span style="color: #666666; font-style: italic;"># See the License for the specific language governing permissions and</span>
<span style="color: #666666; font-style: italic;"># limitations under the License.</span>
&nbsp;
fastboot flash bootloader bootloader-maguro-primekj10.img
fastboot reboot-bootloader
<span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">5</span>
fastboot flash radio radio-maguro-i9250xxkk1.img
fastboot reboot-bootloader
<span style="color: #c20cb9; font-weight: bold;">sleep</span> <span style="color: #000000;">5</span>
fastboot <span style="color: #660033;">-w</span> update image-yakju-itl41f.zip</pre></div></div>

<p>Ich habe &#8211; wie erwähnt &#8211; einfach die Befehle einzeln ausgeführt und &#8220;fastboot&#8221; jeweils ersetzt, also nicht direkt das Shell-Skript verwendet. Ich bin also in den Ordner mit den Images gewechselt, habe einfach folgende Befehle nacheinander auf der Konsole ausgeführt und auf eine positive Bestätigung bzw. den Neustart des Geräts in den Bootloader abgewartet, damit entfallen die <code>sleep</code>-Zeilen aus dem Original-Shellscript.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>raphael<span style="color: #000000; font-weight: bold;">/</span>Downloads<span style="color: #000000; font-weight: bold;">/</span>yakju-itl41f <span style="color: #666666; font-style: italic;"># in den Ordner, in den die Images entpackt wurden, wechseln</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>raphael<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>android-sdk-linux<span style="color: #000000; font-weight: bold;">/</span>platform-tools<span style="color: #000000; font-weight: bold;">/</span>fastboot flash bootloader bootloader-maguro-primekj10.img
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>raphael<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>android-sdk-linux<span style="color: #000000; font-weight: bold;">/</span>platform-tools<span style="color: #000000; font-weight: bold;">/</span>fastboot reboot-bootloader
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>raphael<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>android-sdk-linux<span style="color: #000000; font-weight: bold;">/</span>platform-tools<span style="color: #000000; font-weight: bold;">/</span>fastboot flash radio radio-maguro-i9250xxkk1.img
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>raphael<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>android-sdk-linux<span style="color: #000000; font-weight: bold;">/</span>platform-tools<span style="color: #000000; font-weight: bold;">/</span>fastboot reboot-bootloader
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>raphael<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>android-sdk-linux<span style="color: #000000; font-weight: bold;">/</span>platform-tools<span style="color: #000000; font-weight: bold;">/</span>fastboot <span style="color: #660033;">-w</span> update image-yakju-itl41f.zip</pre></div></div>

<p>Das letzte Kommando &#8211; das Flashen des Systems &#8211; dauerte bei mir etwa zwei Minuten, Bootloader- und Baseband-Flashen dauerte nur wenige Sekungen. Danach startet das Gerät neu &#8211; mit dem richtigen Android-Build von Google! Nun beginnt die Arbeit, alles wieder neu einzurichten&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/samsung-galaxy-nexus-auf-original-firmware-itl41f-flashen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Installation von Etherpad Lite auf Ubuntu 10.04 Server und Apache als Reverse-Proxy + Upstart</title>
		<link>http://raphael.kallensee.name/journal/etherpad-lite-auf-ubuntu-server-apache-upstart/</link>
		<comments>http://raphael.kallensee.name/journal/etherpad-lite-auf-ubuntu-server-apache-upstart/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 19:48:30 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[FLOSS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://raphael.kallensee.name/journal/?p=347</guid>
		<description><![CDATA[Etherpad Lite ist eine Neuentwicklung des kollaborativen Real-Time-Texteditors Etherpad in Node.js. Ausprobiert werden kann Etherpad Lite beispielsweise unter beta.etherpad.org. Die ursprüngliche Etherpad-Software ist enorm ressourcenhungrig und die Codebase sehr umfangreich &#8211; insbesondere die hohen Anforderungen an den Arbeitsspeicher (im laufenden Betrieb wohl ca. 1 GB!) hielten mich von der Installation auf meinem Server ab. Etherpad [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://raphael.kallensee.name/journal/wp-content/uploads/2011/09/etherpad-lite.png"><img src="http://raphael.kallensee.name/journal/wp-content/uploads/2011/09/etherpad-lite-300x138.png" alt="Screenshot von Etherpad Lite, einem kollaborativen Texteditor" title="Etherpad Lite" width="300" height="138" class="alignleft size-medium wp-image-358" /></a><a href="http://etherpad.org/">Etherpad Lite</a> ist eine <a href="http://etherpad.org/2011/08/22/major-release-etherpad-lite-v1/">Neuentwicklung</a> des kollaborativen Real-Time-Texteditors Etherpad in <a href="http://nodejs.org/">Node.js</a>. Ausprobiert werden kann Etherpad Lite beispielsweise unter <a href="http://beta.etherpad.org/">beta.etherpad.org</a>.</p>
<p>Die ursprüngliche Etherpad-Software ist enorm ressourcenhungrig und die Codebase sehr umfangreich &#8211; insbesondere die hohen Anforderungen an den Arbeitsspeicher (im laufenden Betrieb wohl ca. 1 GB!) hielten mich von der Installation auf meinem Server ab. Etherpad Lite hingegen begnügt sich nach eigenen Angaben im laufenden Betrieb mit <a href="https://github.com/Pita/etherpad-lite#readme">rund 30 MB Arbeitsspeicher</a>.</p>
<p>Diese Anleitung beschreibt die Installation von Node.js, NPM und Etherpad Lite auf Ubuntu 10.04 Server. Da in den meisten Fällen auf Port 80 eines bestehenden Servers bereits ein Webserver (in meinem Fall Apache) läuft, wird Etherpad Lite hinter Apache als Reverse-Proxy (via mod_proxy) installiert. Sicherlich nicht die beste Lösung, eine &#8220;<a href="http://nodejs.org/jsconf.pdf">non-blocking</a>&#8221; Node.js-Applikation hinter einem &#8220;blocking&#8221; Apache-Server zu installieren &#8211; <a href="http://de.wikipedia.org/wiki/Nginx">Nginx</a> wäre hier sicherlich eine bessere Wahl. Aber vorerst soll Apache als Reverse-Proxy genügen. Des weiteren richten wir eine Upstart-Konfiguration ein, die Etherpad Lite nach jedem Reboot automatisch startet.</p>
<h3>Installation von Node.js</h3>
<p>Zunächst installieren wir Node.js auf dem Server. Die Version in den Ubuntu-Paketquellen ist deutlich zu alt, deshalb müssen wir selbst kompilieren. Da wir Node.js, den Node-Paketmanager NPM und die Applikation aus Sicherheitsgründen unter einem eigenen User installieren möchten, legen wir diesen zunächst an:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">groupadd nodejs
useradd <span style="color: #660033;">-g</span> nodejs <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">bash</span> <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nodejs nodejs
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nodejs
<span style="color: #c20cb9; font-weight: bold;">chown</span> nodejs:nodejs <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nodejs</pre></div></div>

<p>Nun wurde der User nodejs angelegt, sein Home-Verzeichnis ist /var/lib/nodejs. Nun bereiten wir den User für die Installation von Node.js und NPM vor &#8211; wir wechseln in den User nodejs:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">su</span> nodejs
<span style="color: #7a0874; font-weight: bold;">cd</span> ~</pre></div></div>

<p>Der folgende Inhalt muss in die Datei /var/lib/nodejs/.npmrc:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">root =    <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nodejs<span style="color: #000000; font-weight: bold;">/</span>.node_modules
binroot = <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nodejs<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin
manroot = <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nodejs<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">man</span></pre></div></div>

<p>Die entsprechenden Ordner müssen nun noch angelegt werden:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">local</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>share
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">man</span></pre></div></div>

<p>Nun fügen wir den Ordner ~/local/bin noch zum PATH hinzu &#8211; die folgende Zeile muss zum einen in die Datei /var/lib/nodejs/.bashrc, zum anderen einmal in der Shell eingegeben werden:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #007800;">$HOME</span><span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #007800;">$PATH</span></pre></div></div>

<p>Jetzt installieren wir die notwendigen Abhängigkeiten über apt / aptitude:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> build-essential python libssl-dev git-core libsqlite3-dev <span style="color: #c20cb9; font-weight: bold;">gzip</span> curl</pre></div></div>

<p>Nun kann Node.js heruntergeladen und kompiliert werden. Dazu &#8220;klonen&#8221; wir das Git-Repository und checken die letzte stabile Version aus &#8211; was spätere Updates erleichtert.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>joyent<span style="color: #000000; font-weight: bold;">/</span>node.git
<span style="color: #7a0874; font-weight: bold;">cd</span> node
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout v0.4.12
.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--prefix</span>=<span style="color: #007800;">$HOME</span><span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">make</span>
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<h3>Installation von NPM</h3>
<p>Jetzt ist Node.js installiert &#8211; wir benötigen aber noch den Node.js-Paketmanager NPM. Den installieren wir ebenfalls aus den GIT-Quellen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #c20cb9; font-weight: bold;">git</span> clone https:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>isaacs<span style="color: #000000; font-weight: bold;">/</span>npm.git
<span style="color: #7a0874; font-weight: bold;">cd</span> npm
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout v1.0.30
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>Zu guter letzt legen wir noch einen Symlink an, damit NPM später das Verzeichnis für die Node-Module findet, das wir weiter oben bereits konfiguriert haben:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> ~<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>node_modules ~<span style="color: #000000; font-weight: bold;">/</span>.node_modules</pre></div></div>

<h3>Installation von Etherpad Lite</h3>
<p>Nun sind endlich die Voraussetzungen gegeben, um Etherpad Lite zu installieren. Dies tun wir ebenfalls aus den GIT-Quellen. Danach rufen wir ein Shell-Script auf, um die Abhängigkeiten zu installieren.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> ~<span style="color: #000000; font-weight: bold;">/</span>node-apps
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>node-apps
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>Pita<span style="color: #000000; font-weight: bold;">/</span>etherpad-lite.git
<span style="color: #7a0874; font-weight: bold;">cd</span> etherpad-lite
.<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>installDeps.sh</pre></div></div>

<p>Jetzt kann die Konfiguration angepasst werden, die sich in der Datei <code>/var/lib/nodejs/node-apps/etherpad-lite/settings.json</code> befindet. Da ich das Etherpad mit MySQL als Datenbank betreiben möchte, kommentiere ich die vorhandene SQLite-Konfiguration aus und füge den MySQL-Benutzer und den Datenbank-Namen hinzu, die ich beide vorher angelegt habe. Den &#8220;loglevel&#8221; setze ich außerdem auf &#8220;WARN&#8221;, um nicht zu viele unnötige Log-Meldungen zu schreiben.</p>
<p>Jetzt legen wir gleich eine Upstart-Konfiguration an, um sicherzustellen, dass das Etherpad nach jedem System-Neustart automatisch gestartet wird. Für eine regelmäßige Überwachung und ggf. Neustart des Etherpads im Fehlerfalle bietet sich <a href="http://mmonit.com/monit/">Monit</a> an &#8211; was aber nicht Teil dieses Artikels sein soll.</p>
<p>Wir legen nun die Datei <code>/etc/init/etherpad-lite.conf</code> mit folgendem Inhalt an (auf Grundlage <a href="https://github.com/Pita/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service">dieser Quelle</a>):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">description <span style="color: #ff0000;">&quot;etherpad-lite&quot;</span>
&nbsp;
start on started networking
stop on runlevel <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">!</span><span style="color: #000000;">2345</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">env</span> <span style="color: #007800;">NODEBIN</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nodejs<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>node
<span style="color: #c20cb9; font-weight: bold;">env</span> <span style="color: #007800;">EPHOME</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nodejs<span style="color: #000000; font-weight: bold;">/</span>node-apps<span style="color: #000000; font-weight: bold;">/</span>etherpad-lite
<span style="color: #c20cb9; font-weight: bold;">env</span> <span style="color: #007800;">EPLOGS</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>etherpad-lite
<span style="color: #c20cb9; font-weight: bold;">env</span> <span style="color: #007800;">EPUSER</span>=nodejs
&nbsp;
pre-start script
    chdir <span style="color: #007800;">$EPHOME</span>
    <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #007800;">$EPLOGS</span>                              <span style="color: #000000; font-weight: bold;">||</span><span style="color: #c20cb9; font-weight: bold;">true</span>
    <span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #007800;">$EPUSER</span>:admin <span style="color: #007800;">$EPLOGS</span>                <span style="color: #000000; font-weight: bold;">||</span><span style="color: #c20cb9; font-weight: bold;">true</span>
    <span style="color: #c20cb9; font-weight: bold;">chmod</span> 0755 <span style="color: #007800;">$EPLOGS</span>                         <span style="color: #000000; font-weight: bold;">||</span><span style="color: #c20cb9; font-weight: bold;">true</span>
    <span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> <span style="color: #007800;">$EPUSER</span>:admin <span style="color: #007800;">$EPHOME</span><span style="color: #000000; font-weight: bold;">/</span>var         <span style="color: #000000; font-weight: bold;">||</span><span style="color: #c20cb9; font-weight: bold;">true</span>
<span style="color: #666666; font-style: italic;">#    exec su -s /bin/bash -c 'exec &quot;$0&quot; &quot;$@&quot;' $EPUSER $EPHOME/bin/installDeps.sh &gt;&gt; $EPLOGS/error.log || { stop; exit 1; }</span>
end script
&nbsp;
script
  <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #007800;">$EPHOME</span><span style="color: #000000; font-weight: bold;">/</span>node
  <span style="color: #7a0874; font-weight: bold;">exec</span> <span style="color: #c20cb9; font-weight: bold;">su</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">bash</span> <span style="color: #660033;">-c</span> <span style="color: #ff0000;">'exec &quot;$0&quot; &quot;$@&quot;'</span> <span style="color: #007800;">$EPUSER</span> <span style="color: #007800;">$NODEBIN</span> server.js \
                        <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$EPLOGS</span><span style="color: #000000; font-weight: bold;">/</span>access.log \
                        <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$EPLOGS</span><span style="color: #000000; font-weight: bold;">/</span>error.log
end script</pre></div></div>

<p><em>(Diese Upstart-Konfiguration ist noch nicht optimal &#8211; spontan gelang es mir nicht, das Shell-Script <code>installDeps.sh</code> im pre-start erfolgreich auszuführen. Deshalb muss man daran denken, dieses Script nach einem Etherpad-Update manuell auszuführen.)</em></p>
<p>Jetzt kann Etherpad ganz einfach mittels</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">start etherpad-lite</pre></div></div>

<p>gestartet werden.</p>
<h3>Einrichtung des Apache Reverse-Proxys</h3>
<p>Nun richten wir Apache ein, damit Etherpad auf Port 80 erreichbar ist. Dafür verwenden wir z.B. die Subdomain etherpad.example.lit &#8211; und folgende virtuelle Host-Konfiguration (beispielsweise in der Datei /etc/apache2/sites-available/etherpad.example.lit):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;</span>virtualhost <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000;">80</span><span style="color: #000000; font-weight: bold;">&gt;</span>
        ServerName etherpad.example.lit
&nbsp;
        ServerAdmin webmaster<span style="color: #000000; font-weight: bold;">@</span>localhost
&nbsp;
        <span style="color: #000000; font-weight: bold;">&lt;</span>ifmodule mod_proxy.c<span style="color: #000000; font-weight: bold;">&gt;</span>
            ProxyVia On
            ProxyRequests Off
            ProxyPass <span style="color: #000000; font-weight: bold;">/</span> http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">9001</span><span style="color: #000000; font-weight: bold;">/</span>
            ProxyPassReverse <span style="color: #000000; font-weight: bold;">/</span> http:<span style="color: #000000; font-weight: bold;">//</span>localhost:<span style="color: #000000;">9001</span><span style="color: #000000; font-weight: bold;">/</span>
            ProxyPreserveHost on
            <span style="color: #000000; font-weight: bold;">&lt;</span>proxy <span style="color: #000000; font-weight: bold;">*&gt;</span>
                Options FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
            <span style="color: #000000; font-weight: bold;">&lt;/</span>proxy<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #000000; font-weight: bold;">&lt;/</span>ifmodule<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
        ErrorLog <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>etherpad-lite<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>error.log
&nbsp;
        <span style="color: #666666; font-style: italic;"># Possible values include: debug, info, notice, warn, error, crit,</span>
        <span style="color: #666666; font-style: italic;"># alert, emerg.</span>
        LogLevel warn
&nbsp;
        CustomLog <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>etherpad-lite<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>access.log combined
        ServerSignature Off
<span style="color: #000000; font-weight: bold;">&lt;/</span>virtualhost<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<p>Wichtig: das Verzeichnis <code>/var/log/etherpad-lite/apache2/</code> für die Apache-Logs muss angelegt werden!</p>
<p>Daraufhin kann der oben angelegte virtuelle Apache-Host aktiviert werden. Außerdem müssen die Apache-Module mod_proxy und mod_proxy_http aktiviert sein, danach kann die Apache-Konfiguration neu geladen werden:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">a2ensite etherpad.example.lit
a2enmod proxy proxy_http
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 reload</pre></div></div>

<p>Nun sollte das Etherpad unter http://etherpad.example.lit erreichbar sein!</p>
<h3>Konfiguration von Logrotate</h3>
<p>Wir haben nun einige Log-Dateien unterhalb von <code>/var/log/etherpad-lite/</code>, die schnell sehr groß werden können. Deshalb konfigurieren wir Logrotate so, dass diese Dateien wöchentlich rotiert und gepackt und für acht Wochen vorgehalten werden. Dazu fügen wir einfach folgende Zeilen zur <code>/etc/logrotate.conf</code> hinzu &#8211; oder legen eine <code>/etc/logrotate.d/etherpadlite</code> mit dem folgenden Inhalt an:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># rotate etherpad lite logs</span>
<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>etherpad-lite<span style="color: #000000; font-weight: bold;">/*</span>.log <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        weekly
        missingok
        rotate <span style="color: #000000;">8</span>
        compress
        notifempty
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>etherpad-lite<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/*</span>.log <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        weekly
        missingok
        rotate <span style="color: #000000;">8</span>
        compress
        notifempty
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<h3>Installation von Abiword für Import/Export (optional)</h3>
<p>Für den erweiterten Import/Export muss die Textverarbeitungs-Software <a href="http://www.abisource.com/">Abiword</a> installiert werden &#8211; deren Binaries benutzt Etherpad zum Lesen und Schreiben von Dokumenten. In Ubuntu 10.04 ist Abiword in den Paketquellen vorhanden, deshalb reicht ein:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> abiword</pre></div></div>

<p>Daraufhin muss in der <code>/var/lib/nodejs/node-apps/etherpad-lite/settings.json</code> der Pfad zum Abiword-Binary angepasst werden:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">/* This is the path to the Abiword executable. Setting it to null, disables abiword.
     Abiword is needed to enable the import/export of pads*/</span>
  <span style="color: #3366CC;">&quot;abiword&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;/usr/bin/abiword&quot;</span><span style="color: #339933;">,</span></pre></div></div>

<p>Nach einem Neustart mittels</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">stop etherpad-lite
start etherpad-lite</pre></div></div>

<p>stehen die erweiterten Import-/Export-Funktionen zur Verfügung &#8211; dann kann ein Pad beispielsweise auch als PDF exportiert werden.</p>
<h3>Abschluss</h3>
<p>Etherpad Lite ist meiner Meinung nach ein sehr nützliches Tool, um gemeinsam Dokumente zu bearbeiten, Protokolle und To-Do-Listen zu erstellen usw. &#8211; was durch die Export-Funktion in viele Formate sehr gut ergänzt wird. Es existieren auch bereits viele Bibliotheken und Plugins, welche die HTTP-API von Etherpad nutzen, um Etherpads in eigenen Applikationen bequem einzubinden &#8211; Libraries für <a href="https://github.com/jhollinger/ruby-etherpad-lite">Ruby</a>, <a href="https://github.com/tomnomnom/etherpad-lite-client">PHP</a>, ein <a href="https://github.com/johnyma22/etherpad-lite-jquery-plugin">jQuery-Plugin</a>, ein <a href="http://drupal.org/sandbox/webflo/1255474">Drupal-Modul</a> (im Entwicklungsstadium) und viele mehr.</p>
<p>Ein Hinweis zum Schluss: diese Anleitung stellt sicher kein Optimum dar &#8211; jedoch war es mir wichtig, Node.JS sowie NPM nicht als <code>root</code>-User zu installieren. Deshalb weicht diese Anleitung zum Teil von den meisten im Netz zu findenden Anleitungen ab. Verbesserungsvorschläge nehme ich gern per Kommentar oder E-Mail entgegen!</p>
<p>Quellen und weiterführende Links:</p>
<ul>
<li><a href="http://mrtopf.de/blog/de/ein-besseres-etherpad-dank-etherpad-lite/">Ein besseres Etherpad dank Etherpad Lite!</a></li>
<li><a href="https://github.com/joyent/node/wiki/Installation">Building and Installing Node.js</a></li>
<li><a href="https://github.com/Pita/etherpad-lite#readme">Etherpad Lite Readme</a></li>
<li><a href="http://tnovelli.net/blog/blog.2011-08-27.node-npm-user-install.html">Node.js HOWTO: Install NPM as user (not root)</a></li>
<li><a href="http://mclear.co.uk/2011/08/01/install-etherpad-lite-on-ubuntu/">Install Etherpad Lite on Ubuntu and Debian</a></li>
<li><a href="http://stackoverflow.com/questions/6514621/npm-install-locally">npm install locally</a></li>
<li><a href="https://github.com/Pita/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy">How to put Etherpad Lite behind a reverse Proxy</a></li>
<li><a href="http://howtonode.org/deploying-node-upstart-monit">Deploying Node.js With Upstart and Monit</a></li>
<li><a href="http://kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/">Run Node.js as a Service on Ubuntu</a></li>
<li><a href="https://github.com/Pita/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service">How to deploy Etherpad Lite as a service</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/etherpad-lite-auf-ubuntu-server-apache-upstart/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8220;Geotag-Logger&#8221;: Fotos geotaggen mit HP WebOS</title>
		<link>http://raphael.kallensee.name/journal/geotag-logger-fotos-geotaggen-mit-webos/</link>
		<comments>http://raphael.kallensee.name/journal/geotag-logger-fotos-geotaggen-mit-webos/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 18:11:52 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[fotografie]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[palm pre]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web os]]></category>

		<guid isPermaLink="false">http://raphael.kallensee.name/journal/?p=335</guid>
		<description><![CDATA[Geo-Tagging bedeutet, Positionsdaten des Aufnahmeorts eines Digitalfotos als Metadaten in der Bilddatei mitzuspeichern. Das klingt zunächst sehr technisch, ermöglicht aber Foto-Anwendungen, interessante Funktionen bereitzustellen: beispielsweise die Anzeige der eigenen Fotos auf einer Weltkarte. Die Foto-Community Flickr zeigt, sofern die Funktion in den Einstellungen aktiviert ist, neben jedem Foto eine kleine Karte mit dem Aufnahmeort an. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://de.wikipedia.org/wiki/Geo-Imaging">Geo-Tagging</a> bedeutet, Positionsdaten des Aufnahmeorts eines Digitalfotos als Metadaten in der Bilddatei mitzuspeichern. Das klingt zunächst sehr technisch, ermöglicht aber Foto-Anwendungen, interessante Funktionen bereitzustellen: beispielsweise die Anzeige der eigenen Fotos auf einer Weltkarte. Die Foto-Community Flickr zeigt, sofern die Funktion in den Einstellungen aktiviert ist, neben jedem Foto eine kleine Karte mit dem Aufnahmeort an. So weiß man auch später, an welchem Ort man ein Foto aufgenommen hat.</p>
<p>Moderne Smartphones versehen Fotos, die mit der integrierten Kamera aufgenommen wurden, auf Wunsch automatisch mit &#8220;Geo-Tags&#8221;. Will man jedoch beispielsweise Fotos, die man mit einer Spiegelreflexkamera (DSLR) aufgenommen hat, geotaggen, wird es etwas komplizierter. Die wenigsten Digitalkameras haben derzeit einen integrierten GPS-Sensor, über den sie die aktuelle Position abfragen könnten. Für diesen Einsatzzweck gibt es kleine Geräte &#8211; &#8220;Geo-Logger&#8221;, die man unterwegs zusätzlich zur Kamera mitnimmt. Diese Geräte zeichnen die Position auf und erlauben es später, entweder über eine externe Software am PC oder direkt durch das Einstecken der SDHC-Karte die Positionsdaten in die Fotos zu schreiben. Dabei wird die Aufnahme-Uhrzeit der Bilder mit der vom Geo-Logger aufgezeichneten Position zu dieser Uhrzeit verglichen.</p>
<p>Diese externen Geo-Logger haben aber zwei Nachteile: zum einen hat man ein zusätzliches Gerät, das man mit sich herumtragen muss und bei dem man auch ständig dafür sorgen muss, dass der Akku geladen ist. Zum anderen muss man Geld für ein Gerät ausgeben, obwohl man möglicherweise bereits Gadgets hat, die diese Aufgabe übernehmen könnten. Jedes moderne Smartphone besitzt einen GPS-Sensor und ist in der Lage, die eigene Position regelmäßig zu speichern.</p>
<p><a href="http://raphael.kallensee.name/journal/wp-content/uploads/2011/07/geotaglogger_0.1_de.png"><img src="http://raphael.kallensee.name/journal/wp-content/uploads/2011/07/geotaglogger_0.1_de-200x300.png" alt="" title="Geotag-Logger 0.1" width="200" height="300" class="alignleft size-medium wp-image-339" /></a>Hier kommt für Benutzer des Smartphone-Betriebssystems HP/Palm WebOS die von mir geschriebene Anwendung &#8220;<a href="http://developer.palm.com/appredirect/?packageid=net.webpresso.geotaglogger">Geotag-Logger</a>&#8221; ins Spiel, die im offiziellen HP App Catalog zu finden ist. Es existierten bereits einige Anwendungen, mit denen man die eigene Position tracken konnte &#8211; jedoch keine Anwendung, die wirklich gut für diesen Einsatzzweck geeignet war. Denn wenn man zu Fuß unterwegs ist und Fotos macht, braucht man nicht im Sekundentakt die eigene Position zu erfassen &#8211; größere Intervalle sorgen für einen deutlich geringeren Akku-Verbrauch und sollten dennoch ausreichend sein.</p>
<p>Mit &#8220;Geotag-Logger&#8221; für WebOS kann man entweder manuell das Speichern der aktuellen Position auslösen oder über einen automatischen Modus alle fünf Minuten die Position speichern lassen. Die erzeugten Daten können daraufhin im GPX-Format auf die USB-Partition gespeichert und von dort aus auf den PC übertragen werden. Am PC können dann mit Hilfe der GPX-Datei Positionsdaten in die Fotos geschrieben werden. Dazu können Open-Source-Anwendungen wie <a href="http://geotag.sourceforge.net/">Geotag</a> (Linux/Windows), <a href="http://code.google.com/p/gpicsync/">GPicSync</a> (Linux/Windows) oder <a href="http://freefoote.dview.net/linux_gpscorr.html">GPSCorrelate</a> (Linux) verwendet werden. Zum Taggen der Fotos existieren drei Artikel unter <a href="http://www.spiegel.de/netzwelt/tech/0,1518,531694,00.html">spiegel.de</a>, <a href="http://www.awokenmind.de/geotagging-windows-linux/">awokenmind.de</a> und <a href="http://www.schrenk.cc/2009/01/19/geo-tagging-von-fotos-meine-praxisanleitung-part-ii/">schrenk.cc</a>, die einen Überblick über das Vorgehen geben.</p>
<p>Wenn man sich unterwegs schon einmal vergewissern möchte, ob die Anwendung den eigenen Weg korrekt aufgezeichnet hat, kann man bereits zwischendurch schon einmal die Daten als GPX exportieren und die GPX-Datei anschließend mit dem kostenlos im App Catalog erhältlichen <a href="http://developer.palm.com/appredirect/?packageid=com.rustyapps.gpxmapper">GPX Mapper</a> öffnen. Die Anwendung zeichnet die gespeicherten Standortdaten auf eine Google-Maps-Karte.</p>
<p>Geotag-Logger benötigt mindestens WebOS 2.1, da die Anwendung zum Speichern der GPX-Datei auf der USB-Partition des Geräts einen Node.JS-Service verwendet &#8211; dieses Feature gibt es erst ab WebOS 2.x.</p>
<p>&#8220;Geotag-Logger&#8221; ist <a href="http://de.wikipedia.org/wiki/Freie_Software">Freie Software</a>, lizensiert unter der <a href="http://www.gnu.org/licenses/gpl.html">GPL v3</a>. Das bedeutet, die Anwendung ist nicht nur kostenlos, sondern Sie dürfen sie außerdem an andere weitergeben, sich den Quellcode ansehen (für den Fall, dass Sie Softwareentwickler sind), den Quellcode Ihren Bedürfnissen anpassen und Ihre Anpassungen mit anderen teilen. Den Quellcode der Anwendung finden Sie im GIT-Repository der <a href="http://forge.webpresso.net/projects/geotag-logger">Projekt-Website</a> (englisch).</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/geotag-logger-fotos-geotaggen-mit-webos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation von Preware auf dem HP/Palm Pre 2 mit WebOS 2.1 unter Ubuntu</title>
		<link>http://raphael.kallensee.name/journal/installation-von-preware-auf-dem-palm-pre-2-mit-webos-2-1-unter-ubuntu/</link>
		<comments>http://raphael.kallensee.name/journal/installation-von-preware-auf-dem-palm-pre-2-mit-webos-2-1-unter-ubuntu/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 20:46:01 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[palm pre]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web os]]></category>

		<guid isPermaLink="false">http://raphael.kallensee.name/journal/?p=323</guid>
		<description><![CDATA[Es existiert von mir bereits eine ausführliche Anleitung zur Installation von Preware &#8211; einer Anwendung, mit der man weitere &#8220;Homebrew-Apps&#8221; einfach nachinstallieren kann. Die bisherige Anleitung ist allerdings für den &#8220;alten&#8221; Pre und unter WebOS bis Version 1.4.5. Da ich nun stolzer Besitzer eines HP/Palm Pre 2 bin, auf dem mittlerweile WebOS 2.1 läuft, habe [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://raphael.kallensee.name/journal/wp-content/uploads/2011/03/preware_2011-22-03_214137.png"><img src="http://raphael.kallensee.name/journal/wp-content/uploads/2011/03/preware_2011-22-03_214137-200x300.png" alt="" title="Preware 1.5.7" width="200" height="300" class="alignleft size-medium wp-image-327" /></a>Es existiert von mir bereits eine <a href="http://raphael.kallensee.name/journal/palm-pre-installation-von-preware/">ausführliche Anleitung zur Installation von Preware</a> &#8211; einer Anwendung, mit der man weitere &#8220;Homebrew-Apps&#8221; einfach nachinstallieren kann. Die bisherige Anleitung ist allerdings für den &#8220;alten&#8221; Pre und unter WebOS bis Version 1.4.5.</p>
<p>Da ich nun stolzer Besitzer eines HP/Palm Pre 2 bin, auf dem mittlerweile WebOS 2.1 läuft, habe ich mich entschlossen, eine kurze Anleitung für Besitzer des Pre 2 bzw. WebOS 2.1 zu schreiben. Preware wird in diesem Artikel &#8211; im Gegensatz zur <a href="http://raphael.kallensee.name/journal/palm-pre-installation-von-preware/">alten Anleitung</a> &#8211; nicht über das Programm &#8220;WebOS Quick Install&#8221; installiert, sondern über die Kommandozeile. &#8220;WebOS Quick Install&#8221; ist offensichtlich noch nicht mit WebOS 2.1 kompatibel.</p>
<p>Auch für diese Anleitung gilt: <strong>Die Installation erfolgt auf eigene Gefahr!</strong> Dieser Artikel ist allerdings an die vielseits erprobte, englischsprachige Anleitung von <a href="http://www.webos-internals.org/wiki/Application:Preware#Installing_Preware_on_webOS_2.0">webos-internals.org</a> angelehnt.</p>
<h3>Installationsschritte:</h3>
<ol>
<li>Laut Anleitung im <a href="http://developer.palm.com/index.php?option=com_content&#038;view=article&#038;layout=page&#038;id=1585&#038;Itemid=55">Palm Developer Center</a> muss das aktuelle WebOS-SDK installiert werden. Dazu gehört insbesondere der Novacom-Treiber (<a href="https://cdn.downloads.palm.com/sdkdownloads/2.1.0.519/sdkBinaries/palm-novacom_1.0.64_i386.deb">palm-novacom_1.0.64_i386.deb</a> für 32-bit-Systeme, <a href="https://cdn.downloads.palm.com/sdkdownloads/2.1.0.519/sdkBinaries/palm-novacom_1.0.64_amd64.deb">palm-novacom_1.0.64_amd64.deb</a> für 64-bit-Systeme) und das <a href="https://cdn.downloads.palm.com/sdkdownloads/2.1.0.519/sdkBinaries/palm-sdk_2.1.0-svn409992-pho519_i386.deb">SDK-Paket</a>. <em>(Für aktuelle Pakete bitte immer über den Palm Developer Center herunterladen!)</em> Die Installation kann z.B. über die Kommandozeile erfolgen (am Beispiel für 64-bit-Systeme):

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> <span style="color: #660033;">--force-architecture</span> palm-sdk_2.1.0-svn409992-pho519_i386.deb
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> <span style="color: #660033;">--force-architecture</span> palm-novacom_1.0.64_amd64.deb</pre></div></div>

</li>
<li>Über <a href="http://get.preware.org/">get.preware.org</a> das aktuelle Preware-IPK-Paket herunterladen (mindestens die Version 1.5.0, z.B. entweder <a href="http://get.preware.org/org.webosinternals.preware_1.5.0_arm.ipk">org.webosinternals.preware_1.5.0_arm.ipk</a> für den Pre und <a href="http://get.preware.org/org.webosinternals.preware_1.5.0_i686.ipk">org.webosinternals.preware_1.5.0_i686.ipk</a> für den Emulator).</li>
<li>Nun muss der Developer-Modus im Pre 2 aktiviert werden. In WebOS 2.1 funktioniert das nicht mehr mit dem aus WebOS 1.x bekannten <a href="http://en.wikipedia.org/wiki/Konami_Code">Konami-Code</a>, sondern über eine andere Tastenkombination. Auf dem Startbildschirm muss folgendes eingegeben werden: <code>webos20090606</code> &#8211; dann erscheint wie gewohnt das blaue Icon, mit dem der Developer-Modus eingeschaltet werden kann. Eine angenehme Neuerung: das Gerät muss nicht, wie in älteren WebOS-Versionen, neugestartet werden!</li>
<li>Das Gerät kann nun via USB an den PC angeschlossen werden &#8211; nicht im Massenspeicher-Modus, sondern &#8220;Nur aufladen&#8221; auswählen.</li>
<li>Nun kann das Preware-IPK-Paket installiert werden. Mittels Konsole wechselt man in das Verzeichnis, in dem man das heruntergeladene Preware-Paket gespeichert hat, und benutzt das Kommando &#8220;palm-install&#8221;, um das IPK auf dem Gerät zu installieren:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>Desktop
palm-install org.webosinternals.preware_1.5.0_arm.ipk</pre></div></div>

</li>
<li>Preware ist nun installiert und kann benutzt werden. Am Besten gleich Preware öffnen und ggf. auf die aktuelle Version aktualisieren. Außerdem kann der Developer-Modus wieder deaktiviert werden.</li>
</ol>
<p>Nun kann auch auf dem Pre 2 unter WebOS 2.1 die Vielzahl an &#8220;Homebrew-Apps&#8221; installiert werden!</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/installation-von-preware-auf-dem-palm-pre-2-mit-webos-2-1-unter-ubuntu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Server Name Indication (SNI) mit Ubuntu 10.04 (&#8220;Lucid Lynx&#8221;)</title>
		<link>http://raphael.kallensee.name/journal/server-name-indication-sni-mit-ubuntu-10-04-lucid-lynx/</link>
		<comments>http://raphael.kallensee.name/journal/server-name-indication-sni-mit-ubuntu-10-04-lucid-lynx/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 22:47:04 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://raphael.kallensee.name/journal/?p=257</guid>
		<description><![CDATA[Bei &#8220;Name-based virtual hosts&#8221; in Verbindung mit SSL gibt es ein Problem: &#8220;by design&#8221; war es nicht möglich, mehrere virtuelle SSL-Hosts mit unterschiedlichen Domains und Zertifikaten parallel auf einer IP-Adresse und demselben Port zu betreiben. Problem ist, dass zuerst zwischen Client und Server die verschlüsselte Verbindung aufgebaut wird (bei der das Zertifikat bereits benötigt wird). [...]]]></description>
			<content:encoded><![CDATA[<p>Bei &#8220;Name-based virtual hosts&#8221; in Verbindung mit SSL gibt es ein Problem: &#8220;by design&#8221; war es nicht möglich, mehrere virtuelle SSL-Hosts mit unterschiedlichen Domains und Zertifikaten parallel auf einer IP-Adresse und demselben Port zu betreiben. Problem ist, dass zuerst zwischen Client und Server die verschlüsselte Verbindung aufgebaut wird (bei der das Zertifikat bereits benötigt wird). Erst anschließend werden die HTTP-Header über die verschlüsselte Verbindung gesendet, in denen dann auch der Hostname steht, der jetzt möglicherweise aber gar nicht mehr zum Zertifikat passt. Einzige Lösung war bisher, pro SSL-IP eine eigene IP-Adresse (bzw. notfalls einen anderen Port) zu verwenden.</p>
<p>Abhilfe gibt es theoretisch bereits seit mehreren Jahren: <a href="http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI">Server Name Indication (SNI)</a> ist eine Erweiterung des SSL-Protokolls, bei der einfach bereits beim Verbindungsaufbau vor dem SSL-Handshake der gewünschte Hostname mitgesendet wird.</p>
<p>Serverseitig benötigt diese Erweiterung insbesondere OpenSSL ab Version 0.9.8f sowie Apache ab 2.2.12 &#8211; außerdem müssen beim Kompilieren diverse Flags gesetzt sein. Seit Ubuntu 9.10 &#8220;Karmic Koala&#8221; sind sämtliche Voraussetzungen erfüllt, ich habe SNI nun erstmalig problemlos mit 10.04 &#8220;Lucid Lynx&#8221; im Einsatz. SNI funktioniert mit Apache und OpenSSL nun ohne Neu-Kompilieren &#8220;out of the box&#8221;.</p>
<p>Die Vorgehensweise ist im Prinzip ganz einfach: nach einem</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">NameVirtualHost</span> *:<span style="color: #ff0000;">443</span></pre></div></div>

<p>können in den Apache-Konfigurationsdateien mehrere virtuelle SSL-Hosts definiert werden, die jeweils eigene SSL-Zertifikate besitzen. Weitere Infos sind im <a href="http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI#Examples">Apache-Wiki</a> sowie <a href="http://langui.sh/2009/11/03/ssl-vhosting-on-the-same-ip-aka-sni/">hier</a> zu finden.</p>
<p>Eine weitere Option erlaubt das Erzwingen von SNI: übermittelt ein Client nicht die SNI-Header, kann er den jeweiligen virtuellen SSL-Host nicht erreichen. Diese Option ist standardmäßig auf &#8220;off&#8221;.</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">SSLStrictSNIVHostCheck <span style="color: #0000ff;">on</span></pre></div></div>

<p>Der Haken: neben dem Server muss natürlich auch der Client SNI unterstützen. Internet Explorer unter Windows XP unterstützen SNI generell nicht (wobei es <a href="http://daniel-lange.com/archives/2-Multiple-Apache-VHosts-on-the-same-IP-and-port.html">Berichte</a> gibt, dass mit XP SP3 die Unterstützung vorhanden ist), Konqueror beherrscht SNI ebenfalls nicht. Ein Überblick über die Browser-Unterstützung findet sich <a href="http://www.alexanderkiel.net/2008/04/22/status-of-tls-sni/">hier</a>. Ob ein Browser SNI unterstützt, kann man bei <a href="https://dave.sni.velox.ch/">sni.velox.ch</a> testen.</p>
<p>Zumindest in einigen Bereichen kann man SNI trotz der teilweise fehlenden Client-Kompatibilität bereits einsetzen &#8211; die client-seitige Unterstützung wird sich in Zukunft weiterhin verbessern.</p>
<p>Ein Artikel zum Thema ist in der c&#8217;t 23/09 erschienen und ebenfalls bei <a href="http://sni.velox.ch/ct_2309_Apache_TLS_SNI.pdf">sni.velox.ch</a> zu finden.</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/server-name-indication-sni-mit-ubuntu-10-04-lucid-lynx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Upgrade auf Ubuntu 8.10 (Intrepid Ibex) &#8230;</title>
		<link>http://raphael.kallensee.name/journal/upgrade-auf-ubuntu-810-intrepid-ibex/</link>
		<comments>http://raphael.kallensee.name/journal/upgrade-auf-ubuntu-810-intrepid-ibex/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 23:09:10 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.kallensee.info/journal/?p=120</guid>
		<description><![CDATA[&#8230; viel mehr gibt es dazu nicht zu sagen. Lief problemlos, alles funktioniert wie gehabt (mit einigen neuen Sachen wie Tabs im Dateimanager Nautilus). Und mit einer Menge neuer Software-Versionen &#8211; das ist das tolle an Open Source: die Software wird kontinuierlich besser, keine jahrelangen Stillstände wie beim Desktop-Betriebssystem-Marktführer. Lediglich Compiz funktionierte teilweise nicht (die [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; viel mehr gibt es dazu nicht zu sagen. Lief problemlos, alles funktioniert wie gehabt (mit einigen neuen Sachen wie Tabs im Dateimanager Nautilus). Und mit einer Menge neuer Software-Versionen &#8211; das ist das tolle an Open Source: die Software wird kontinuierlich besser, keine jahrelangen Stillstände wie beim Desktop-Betriebssystem-Marktführer.</p>
<p>Lediglich Compiz funktionierte teilweise nicht (die &#8220;Minimieren&#8221;-Animation) &#8211; dies ließ sich durch ein Zurücksetzen der Compiz-Konfiguration aber beheben.</p>
<p>Auf die nächsten 6 Monate&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/upgrade-auf-ubuntu-810-intrepid-ibex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dust &#8211; ein elegantes, schwarzes Theme für Ubuntu</title>
		<link>http://raphael.kallensee.name/journal/dust-ein-elegantes-schwarzes-theme-fur-ubuntu/</link>
		<comments>http://raphael.kallensee.name/journal/dust-ein-elegantes-schwarzes-theme-fur-ubuntu/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 17:35:17 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.kallensee.info/journal/?p=115</guid>
		<description><![CDATA[Neulich entdeckt und immer noch begeistert: das Ubuntu Dust Theme. Nachdem ich auf meinem Notebook, auf dem bereits Ubuntu Intrepid Ibex läuft, das neue dunkle NewHuman-Theme getestet hatte, bin ich von dunklen Themen für den Desktop recht angetan. Ich finde den Eindruck sehr gelungen und elegant. Lediglich bei einigen älteren GTK-Anwendungen ist das Thema noch [...]]]></description>
			<content:encoded><![CDATA[<p>Neulich entdeckt und immer noch begeistert: das <a href="https://wiki.ubuntu.com/Artwork/Incoming/DustTheme">Ubuntu Dust Theme</a>. Nachdem ich auf meinem Notebook, auf dem bereits Ubuntu Intrepid Ibex läuft, das neue dunkle NewHuman-Theme getestet hatte, bin ich von dunklen Themen für den Desktop recht angetan.</p>
<p style="text-align: center;"><a href="http://www.kallensee.info/journal/wp-content/uploads/2008/10/ubuntu-dust-theme-screenshot.png"><img src="http://www.kallensee.info/journal/wp-content/uploads/2008/10/ubuntu-dust-theme-screenshot-300x225.png" alt="" title="Elegantes Ubuntu-Theme: Dust" width="300" height="225" class="aligncenter size-medium wp-image-116" /></a></p>
<p>Ich finde den Eindruck sehr gelungen und elegant. Lediglich bei einigen älteren GTK-Anwendungen ist das Thema noch unvollendet. Es gibt ein passendes Firefox-Theme dazu; für Opera verwende ich das recht passende, jedoch an Google Chrome angelehnte <a href="http://kyleabaker.com/goodies/opera/skins/opera-google-chrome-dust/">Opera Google Chrome Dust</a>-Theme.</p>
<p>Bevor das Theme verwendet werden kann, muss eine aktuelle Version des Murrine-Renderers installiert werden, die allerdings als .deb für Ubuntu Hardy Heron und Intrepid Ibex vorliegt. Alle Dateien sowie Anleitungen zur Installation gibt es <a href="https://wiki.ubuntu.com/Artwork/Incoming/DustTheme">hier</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/dust-ein-elegantes-schwarzes-theme-fur-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Internet Explorer unter Linux</title>
		<link>http://raphael.kallensee.name/journal/internet-explorer-unter-linux/</link>
		<comments>http://raphael.kallensee.name/journal/internet-explorer-unter-linux/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 22:14:30 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.kallensee.info/journal/?p=83</guid>
		<description><![CDATA[Obwohl der Internet Explorer nicht unbedingt der beste Browser da draußen ist, benötigt man ihn dennoch &#8211; nämlich zum Testen von Websites. Durch meinen Wechsel zu Ubuntu Linux musste ich mir eine neue Lösung suchen. Da ich Windows XP noch auf einer Partition installiert habe, kann ich zwar zum Testen Windows booten &#8211; aber es [...]]]></description>
			<content:encoded><![CDATA[<p>Obwohl der Internet Explorer nicht unbedingt der beste Browser da draußen ist, benötigt man ihn dennoch &#8211; nämlich zum Testen von Websites. Durch meinen Wechsel zu <a href="http://www.ubuntu.com/">Ubuntu Linux</a> musste ich mir eine neue Lösung suchen. Da ich Windows XP noch auf einer Partition installiert habe, kann ich zwar zum Testen Windows booten &#8211; aber es geht noch besser.</p>
<p>Dank <a href="http://www.winehq.org/">Wine</a> kann man Windows-Software unter Linux laufen lassen. Und dank einem weiteren Projekt, <a href="http://www.tatanka.com.br/ies4linux/page/Main_Page">IEs4Linux</a>, wird die Installation von Internet Explorer 5, 5.5, 6 und 7 zum Kinderspiel.</p>
<p>Zuerst muss Wine und cabextract installiert werden. Das geht dank vorhandener Pakete unter Ubuntu mit</p>
<blockquote><p>sudo aptitude install wine cabextract</p></blockquote>
<p>Danach lädt man sich das aktuelle Archiv von IEs4Linux, entpackt es und startet die Installation:</p>
<blockquote><p>wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz<br />
 tar xvfz ies4linux-latest.tar.gz<br />
 cd ies4linux-*<br />
 ./ies4linux</p></blockquote>
<p>Im weiteren Verlauf kann man auswählen, welche Versionen man installiert haben möchte. Dann werden die Installationspakete vom Microsoft-Server geladen und automatisch unter Wine installiert.</p>
<p>Die Browser funktionieren bei mir &#8211; allerdings mit einigen Ecken und Kanten. Aber zum Testen sollte es allemal reichen.</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/internet-explorer-unter-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gedit als Quelltexteditor</title>
		<link>http://raphael.kallensee.name/journal/gedit-als-quelltexteditor/</link>
		<comments>http://raphael.kallensee.name/journal/gedit-als-quelltexteditor/#comments</comments>
		<pubDate>Thu, 22 May 2008 19:53:57 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.kallensee.info/journal/?p=82</guid>
		<description><![CDATA[Im Ausgangszustand hat der Standard-Texteditor von Gnome nicht alle Features, die man von einem Quelltexteditor erwartet. Der Tipp: einfach das Paket &#8220;gedit-plugins&#8221; installieren. Dann hat man unter anderem in den Einstellungen die Möglichkeit, Spaces statt Tabs zu verwenden, eine Markierung oder Zeilennummern anzuzeigen, Klammern zu markieren, automatischen Einzug und sehr vieles mehr. Damit ersetzt er [...]]]></description>
			<content:encoded><![CDATA[<p>Im Ausgangszustand hat der Standard-Texteditor von <a href="http://www.gnome.org/">Gnome</a> nicht alle Features, die man von einem Quelltexteditor erwartet. Der Tipp: einfach das Paket &#8220;gedit-plugins&#8221; installieren. Dann hat man unter anderem in den Einstellungen die Möglichkeit, Spaces statt Tabs zu verwenden, eine Markierung oder Zeilennummern anzuzeigen, Klammern zu markieren, automatischen Einzug und sehr vieles mehr. Damit ersetzt er nun ganz gut mein <a href="http://notepad-plus.sourceforge.net/">Notepad++</a>, was ich unter Windows gern verwendet habe.</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/gedit-als-quelltexteditor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Midori: ein minimaler WebKit-Browser für Gnome</title>
		<link>http://raphael.kallensee.name/journal/midori-ein-minimaler-webkit-browser-fur-gnome/</link>
		<comments>http://raphael.kallensee.name/journal/midori-ein-minimaler-webkit-browser-fur-gnome/#comments</comments>
		<pubDate>Sun, 18 May 2008 13:41:20 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[WebDevelopment]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.kallensee.info/journal/?p=81</guid>
		<description><![CDATA[Gerade habe ich auf der Suche nach einem WebKit-Browser für Linux etwas interessantes gefunden: Midori. Ein minimaler GTK-Browser, der aber trotzdem überraschenderweise sehr praktische Funktionen mitbringt: beispielsweise einen Papierkorb für geschlossene Tabs und eine recht gute Suchmaschinenverwaltung mit Keywords! Obwohl er noch in einer Alpha-Version vorliegt, ein sehr interessanter Browser, zumindest zum Testen von Websites [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade habe ich auf der Suche nach einem WebKit-Browser für Linux etwas interessantes gefunden: <a href="http://software.twotoasts.de/?page=midori">Midori</a>. Ein minimaler GTK-Browser, der aber trotzdem überraschenderweise sehr praktische Funktionen mitbringt: beispielsweise einen Papierkorb für geschlossene Tabs und eine recht gute Suchmaschinenverwaltung mit Keywords! Obwohl er noch in einer Alpha-Version vorliegt, ein sehr interessanter Browser, zumindest zum Testen von Websites &#8211; und er ist auch in den Ubuntu-Paketquellen verfügbar.</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/midori-ein-minimaler-webkit-browser-fur-gnome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Umstieg auf Ubuntu Linux &#8211; ein Erfahrungsbericht</title>
		<link>http://raphael.kallensee.name/journal/umstieg-auf-ubuntu-linux-ein-erfahrungsbericht/</link>
		<comments>http://raphael.kallensee.name/journal/umstieg-auf-ubuntu-linux-ein-erfahrungsbericht/#comments</comments>
		<pubDate>Tue, 13 May 2008 22:06:49 +0000</pubDate>
		<dc:creator>Raphael Kallensee</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.kallensee.info/journal/?p=78</guid>
		<description><![CDATA[Nach monatelangem Zögern habe ich es nun endlich geschafft: den Umstieg auf meinem Desktop-PC von Windows XP zu Linux. Es gab einfach sehr viele Dinge, an die man sich während der letzten Jahre gewöhnt hatte &#8211; und trotz des Wissens, dass Linux das bessere Betriebssystem ist, kam es erst jetzt zum Wechsel. Dabei stellte sich [...]]]></description>
			<content:encoded><![CDATA[<p>Nach monatelangem Zögern habe ich es nun endlich geschafft: den Umstieg auf meinem Desktop-PC von Windows XP zu Linux. Es gab einfach sehr viele Dinge, an die man sich während der letzten Jahre gewöhnt hatte &#8211; und trotz des Wissens, dass Linux das bessere Betriebssystem ist, kam es erst jetzt zum Wechsel. Dabei stellte sich heraus, dass die Anzahl der Probleme und Schwierigkeiten deutlich geringer ist als angenommen.</p>
<p>Dabei war mir Linux keineswegs fremd &#8211; durch meine Arbeit im Bereich Webentwicklung und die Administration meines Debian-Servers arbeite ich seit mehreren Jahren mit Linux.</p>
<p><strong>Das neue Betriebssystem</strong></p>
<p>Auf der Suche nach einer Linux-Distribution waren mir einige Dinge wichtig: vor allem Verlässlichkeit, Einfachheit und kürzere Release-Zyklen als bei Debian. Mein Desktop-Rechner muss funktionieren &#8211; in der Regel habe ich wenig Lust auf viel Kompilieren, sondern bevorzuge die Bequemlichkeit von vorkompilierten Paketen. Experimentiert wird auf einem Testsystem. Dennoch möchte ich mehr oder weniger aktuell sein. <a href="http://www.de.debian.org/">Debian</a> Stable ist für Server perfekt, aber für einen Desktop etwas zu konservativ, wie ich finde. Deshalb fiel meine Wahl zunächst auf <a href="http://www.ubuntu.com/products/whatisubuntu/desktopedition">Ubuntu</a>, das ja auf Debian basiert, allerdings zweimal jährlich eine neue Version veröffentlicht. Aktuell ist die 8.04 (&#8220;Hardy Heron&#8221;). Sicher nicht die anspruchsvollste Distribution, aber dafür funktioniert einfach vieles, wenn nicht sogar fast alles von Haus aus.</p>
<p><img src="http://www.kallensee.info/journal/wp-content/uploads/2008/05/ubuntu-small.png" alt="" title="Ubuntu 8.04" width="330" height="247" class="alignnone size-full wp-image-80" /></p>
<p><strong>Die Installation</strong></p>
<p>Das, was bei Linux noch vor wenigen Jahren recht schwierig erschien, war mit dem Ubuntu-Installer fast erschreckend schnell erledigt: die Installation. Dabei wurde für meinen Geschmack fast zu wenig gefragt &#8211; ein paar Klicks, etwas Wartezeit &#8211; dann war das System auch schon installiert. Ein wenig vermisste ich Optionen vor dem Installationsprozess wie die Auswahl von Softwarekomponenten. Fast alles funktionierte nach der Installation &#8211; Grafikkarte, sogar <a href="http://www.compiz.org/Home/Screenshots">Compiz</a> (für Transparenz- und andere Effekte verantwortlich), Bluetooth-Dongle usw. liefen automatisch. Lediglich die Webcam (eine Logitech QuickCam Communicate STX) wurde zwar erkannt, funktionierte aber nicht.</p>
<p><strong>Datenaustausch mit der Windows-Partition</strong></p>
<p>Eines der großen Hemmnisse vor dem Umstieg waren meine NTFS-Partitionen. Ich wollte Daten für beide Betriebssysteme nutzen, traute dem NTFS-Treiber für Linux aber nicht allzu sehr. Der scheint mittlerweile aber wirklich ausgereift zu sein &#8211; ich kann problemlos auf meinen Windows-Partitionen lesen und schreiben!</p>
<p><strong>Die Software</strong></p>
<p>Es gibt wenige Anwendungen, die man nicht auch durch eine freie Alternative unter Linux ersetzen kann. Wenn man durch die Datenbanken in der Paketverwaltung blättert oder im Web surft, stellt man fest, wie groß die Zahl der Open-Source-Entwickler eigentlich ist. Das Großartige: alle Anwendungen sind frei, Kosten und Lizenz-Ärgernisse haben ein Ende. Ein paar Mausklicke &#8211; und die Anwendung ist installiert. Sofort fiel mir auch die deutlich bessere &#8211; wenn auch noch ausbaufähige &#8211; Verzahnung von Anwendungen auf.</p>
<p>Hier eine kleine Auflistung von Software, auf die ich gestoßen bin und die meine alte Windows-Umgebung nun ersetzen:</p>
<ul>
<li><strong>Web-Browser:</strong> Schon unter Windows war ich überzeugter Opera-Nutzer. Auch auf Ubuntu bin ich ihm treu geblieben. Zwischendurch kommt aber auch die Firefox 3 (beta) zum Einsatz. Einziger Wermutstropfen: der Flash-Player. Unter Firefox funktioniert er zwar, allerdings nicht auf allen Websites einwandfrei &#8211; und mit Opera bin ich derzeit ohne Flash unterwegs, da die aktuelle Player-Version nur mit der neuen Opera 9.5 (beta) funktioniert, die ich wohl in den nächsten Tagen dann installieren muss.</li>
<li><strong>Office:</strong> Mit <a href="http://www.openoffice.org/">OpenOffice</a> hat man ein fantastisches Office-Paket, das kaum Wünsche offen lassen sollte. Lediglich beim Lesen eines .docx-Dokuments (Word 2007) hatte ich keinen Erfolg.</li>
<li><strong>Mail, Messaging und Kalender:</strong> Hier änderte sich eher wenig: ich bin bei <a href="http://www.mozilla-europe.org/de/products/thunderbird/">Thunderbird</a> geblieben wegen der transparenten und guten IMAP-Unterstützung. Zuletzt verwendete ich Lightning als Kalender-Erweiterung für Thunderbird unter Windows. Die Linux-Version hatte allerdings einige unschöne Ecken und Kanten, so war die Vorschau auf kommende Termine sehr unübersichtlich und im Gegensatz zur Windows-Version nicht farbig gekennzeichnet, deshalb nutze ich jetzt wieder die Standalone-Version <a href="http://www.mozilla.org/projects/calendar/sunbird/">Sunbird</a>. Das bei Gnome / Ubuntu mitgelieferte Evolution fiel mangels ausreichender IMAP- und iCal-/WebDAV-Unterstützung in meinem Test durch&#8230; Für Instant Messaging nutze ich <a href="http://www.pidgin.im/">Pidgin</a> &#8211; funktioniert einwandfrei und ist durch ein &#8220;Screenlet&#8221; (eine Desktop-Widget-Variante) auch sehr ansehnlich (<a href="http://www.gnome-look.org/content/show.php/PidginScreenlet?content=72611">Pidgin-Screenlet</a>. <a href="http://skype.com/intl/de/download/skype/linux/choose/">Skype</a> funktioniert übrigens auch ohne weiteres.</li>
<li><strong>Editor / IDE / FTP-Client:</strong> Für die Web-Entwicklung benötigt man natürlich eine passende Arbeitsumgebung. Für kleinere Dinge nutzte ich unter Windows gern Notepad++ &#8211; hier verwende ich momentan das mit Gnome vorinstallierte gEdit, bin aber noch auf der Suche nach Alternativen. Als Entwicklungsumgebung läuft weiterhin Eclipse. Nach Versuchen mit gFTP als FTP-Client bin ich dann zum ebenfalls aus der Windows-Welt bekannten <a href="http://filezilla-project.org/">Filezilla</a> umgestiegen. Hier ist der Site-Manager einfach besser und die Optik auch aufgeräumter.</li>
<li><strong>Grafik:</strong> Gimp ist für einfache Anwendungszwecke ein sehr guter Ersatz für Photoshop. Die Bedienung ist zunächst etwas gewöhnungsbedürftig, jedoch lassen sich sogar Photoshop-Dateien öffnen (die allerdings nicht immer auch korrekt funktionieren). Als Ersatz für IrfanView zum schnellen Schneiden und Verkleinern von Fotos benutze ich derzeit Mirage. Für Vektorgrafiken kommt Inkscape ins Spiel &#8211; hier habe ich jedoch noch nicht wirklich viele Erfahrungen sammeln können.</li>
<li><strong>Medien-Player:</strong> Hier fand ich mich in einem Schlaraffenland wieder. Es gibt wirklich viele gute Medienplayer unter Linux, die sich sehen lassen können. Früher VLC- und Winamp-Nutzer, nun nutze ich teils VLC und den vorinstallierten Totem für Videos und <a href="http://www.exaile.org/">Exaile</a> als Musikplayer. Exaile ist wirklich gut &#8211; der Player ist sehr schlank, bringt aber auch eine gut funktionierende Medienbibliothek-Verwaltung wieder. Playlists sind in Tabs untergebracht, was ungeheuer praktisch sein kann. Zum Bearbeiten von ID3-Tags in MP3-Dateien ist easyTAG erste Wahl. Zum Anhören von Musik auf meinem Nokia N95 füge ich zu Dateien die Album-Cover hinzu, was ohne weiteres funktioniert.</li>
</ul>
<p>Die oben erwähnten Anwendungen sind komplett über die Ubuntu-Paketquellen (via apt-get/aptitude/Synaptic) erhältlich.</p>
<p>Für alle Ein- und Umsteiger sei hier auch noch auf die sehr empfehlenswerte <a href="http://www.peterkroener.de/linux-fuer-webworker-teil-1-was-linux-ist-und-warum-man-sich-dafuer-interessieren-sollte/">Artikelserie von Peter Kröner</a> (aus der Sicht eines Web-Designers und -Entwicklers) hingewiesen. Antworten zu fast allen Fragen findet man &#8211; bequem deutschsprachig &#8211; im ubuntuusers.de-<a href="http://wiki.ubuntuusers.de/">Wiki</a> und -<a href="http://forum.ubuntuusers.de/">Forum</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://raphael.kallensee.name/journal/umstieg-auf-ubuntu-linux-ein-erfahrungsbericht/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

