<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title><![CDATA[7h0ma5.org]]></title>
  <link href="http://7h0ma5.org/atom.xml" rel="self"/>
  <link href="http://7h0ma5.org/"/>
  <updated>2012-02-03T17:01:12+01:00</updated>
  <id>http://7h0ma5.org/</id>
  <author>
    <name><![CDATA[Thomas Gatzweiler]]></name>
  </author>

  
  <entry>
    <title type="html"><![CDATA[Alternativen zu Google]]></title>
    <link href="http://7h0ma5.org/2012/01/google-alternativen/"/>
    <updated>2012-01-30T16:00:00+01:00</updated>
    <id>http://7h0ma5.org/2012/01/google-alternativen</id>
    <content type="html"><![CDATA[<p>Google hat sich seit seiner Gründung 1998 von einer einfachen Suchmaschine zu einem Anbieter von vielen verschiedenen Diensten entwickelt. Diese Dienste sind bis jetzt zwar alle kostenlos, doch das kann sich jedoch jederzeit ändern. Google finanziert sich durch die Anzeige von personalisierter Werbung, bei der Suche personalisiert durch die Suchbegriffe, bei Google Mail sogar durch den Inhalt der E-Mails. Mit Googles neuen Nutzungsbedingungen will Google diese Daten nun auch zusammenlegen und dienstübergreifend benutzen<sup id='fnref:1'><a href='#fn:1' rel='footnote'>1</a></sup>.</p>

<p>Wegen der Einfachheit und dem minimalen Konfigurationsaufwand habe ich viele Jahre die Dienste von Google benutzt. Seit ungefähr einem Jahr bin ich auf der Suche nach brauchbaren Alternativen, bei denen man, wenn möglich, die volle Kontrolle über seine Daten hat. Um das zu erreichen, kommt man an einem eigenen Server, bzw. einen Computer, der dauerhaft mit dem Internet verbunden ist, nicht vorbei.</p>

<h3 id='suche'>Suche</h3>

<p>Für die Suche, die wichtigste Funktion von Google, ist es am schwierigsten einen wirklich brauchbaren Ersatz zu finden. Der Suchalgorithmus von Google scheint unter allen Suchmaschinen die besten Ergebnisse zu liefern.</p>

<p>Da Google gewinnorientiert arbeitet, ist eine Suche aber nicht kostenlos, man bezahlt Google mit persönlichen Daten. Google legt für jeden Benutzer ein Profil an, in das Suchbegriffe, angeklickte Suchergebnisse und viele andere Dinge einfließen. Damit zeigt Google einem nicht nur personalisierte Werbung an, sondern nimmt zudem Google eine Filterung der Suchergebnisse vor, was dazu führt, dass jeder Benutzer unterschiedliche Suchergebnisse bekommen kann.</p>

<p>Yahoo und Bing benutzen ebenfalls personalisierter Werbung, sie sind also keine wirkliche Alternative zu Google. Die Suchmaschine <a href='http://www.duckduckgo.com'>DuckDuckGo</a> hingegen gibt an, keinerlei Daten über den Benutzer zu speichern und bietet ein paar Spezialfunktionen, wie die WolframAlpha-Integration und die <em>!Bang</em>-Syntax zur schnellen Benutzung anderer Suchmaschinen, zum Beispiel &#8220;!wde Kurbelwelle&#8221; um die deutsche Wikipedia zu durchsuchen.</p>

<p>Ein vollständig anderes Prinzip verfolgt die dezentrale Suchmaschine <a href='http://www.yacy.net'>YaCy</a>, welche den Suchindex auf beliebig viele Peers aufteilt und so ein zensursicheres Suchnetzwerk schafft. Jeder Benutzer kann eine eigene Instanz der YaCy-Software betreiben, welche aus einem Crawler, einer Datenbank und einem Suchinterface besteht. So hat jeder Benutzer seinen einen unabhängigen Index, den er durchsuchen und mit dem Crawler erweitern kann. Das größte Potenzial bietet YaCy aber durch die Kombination der verteilten Suchindizes, die das Netz zensur- und ausfallsicher macht.</p>

<h3 id='email'>E-Mail</h3>

<p>Die sicherste Alternative zu einem E-Mail-Provider und die volle Kontrolle über den E-Mail-Verkehr bringt das Aufsetzen eines eigenen Mailservers. Das hört sich ziemlich aufwendig an, ist aber gar nicht so schwer. Man benötigt eine Domain und einen Computer, der dauerhaft mit dem Internet verbunden ist und vorzugsweise eine feste IP-Adresse hat. Mit dem <a href='http://www.postfix.org'>Postfix</a>-<abbr title='Mail Transfer Agent'>MTA</abbr> und dem <abbr title='Internet Message Access Protocol'>IMAP</abbr>-Server <a href='http://www.dovecot.org'>Dovecot</a> ist ein funktionierendes Setup relativ schnell eingerichtet. Ein Webinterface, das so gut zu bedienen ist wie das von GMail, habe ich bis jetzt noch nicht gefunden, die derzeit beste Alternative ist meiner Meinung nach <a href='http://www.roundcube.net'>Roundcube</a>.</p>

<h3 id='kalender'>Kalender</h3>

<p>Der Kalender von Google lässt sich mit dem CalDAV-Protokoll einfach zwischen verschiedenen Computern und Smartphones synchronisieren. Hier bietet sich der in Python geschriebene CalDAV-Server <a href='http://radicale.org'>Radicale</a> als Ersatz an, auf das Webinterface muss man hier leider verzichten.</p>

<h3 id='kontakte'>Kontakte</h3>

<p>Für die Verwaltung von Kontakten habe ich bis jetzt keine brauchbare Lösung gefunden. Das CardDav-Protokoll zum Synchronisieren von Kontakten wird meist nur von Groupware-Software unterstützt, die meist viele überflüssige Funktionen mitbringt. Die meisten Smartphones und E-Mail-Clients unterstützen auch <abbr title='Lightweight Directory Access Protocol'>LDAP</abbr>, was aber nur eine Abfrage-Möglichkeit und keine Synchronisation bietet.</p>

<h3 id='maps'>Maps</h3>

<p><a href='http://www.openstreetmap.org'>OpenStreetMap</a> ist mittlerweile die bessere Alternative zu Google Maps, da die Karte durch Beiträge vieler Mitwirkender detailreicher ist. OpenStreetMap selbst besitzt noch keine Routing-Funktion, dafür gibt es unter anderem den Dienst <a href='http://www.openrouteservice.org'>OpenRouteService</a>, welcher von der Uni Heidelberg bereitgestellt wird und Routen auf Basis der OpenStreetMap-Daten berechnet.</p>

<p>Das Einbetten von Google Maps-Karten für gewinnorientierte Projekte wurde von Google sogar kurzerhand als kostenpflichtig deklariert<sup id='fnref:2'><a href='#fn:2' rel='footnote'>2</a></sup>, was zeigt, dass man sich nicht auf die kostenlosen Dienste von Google verlassen sollte.</p>

<h3 id='analytics'>Analytics</h3>

<p>Google Analytics ermöglicht Google sogar eine Überwachung der Benutzer außerhalb ihrer eigenen Webseiten, da bei jedem Seitenaufruf einer Seite mit Google Analytics auch eine Anfrage an Google gesendet wird. Hier benutze ich die <abbr title='GNU General Public License'>GPL</abbr>-lizenzierte Software <a href='http://www.piwik.org'>Piwik</a>, die man auf dem eigenen Server betreiben kann und so keine Daten an andere Dienste geben muss.</p>
<div class='footnotes'><hr /><ol><li id='fn:1'>
<p><a href='http://www.heise.de/newsticker/meldung/Google-bildet-diensteuebergreifende-Benutzerprofile-1421163.html'><strong>heise online</strong> &#8211; Google bildet diensteübergreifende Benutzerprofile</a></p>
<a href='#fnref:1' rev='footnote'>&#8617;</a></li><li id='fn:2'>
<p><a href='http://www.heise.de/ix/meldung/Schluss-mit-gratis-Google-verlangt-Geld-fuer-Kartennutzung-1368176.html'><strong>heise iX</strong> &#8211; Schluss mit Gratis: Google verlangt Geld für Kartennutzung</a></p>
<a href='#fnref:2' rev='footnote'>&#8617;</a></li></ol></div>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Super-Mond]]></title>
    <link href="http://7h0ma5.org/2011/03/super-mond/"/>
    <updated>2011-03-20T15:30:02+01:00</updated>
    <id>http://7h0ma5.org/2011/03/super-mond</id>
    <content type="html"><![CDATA[<p>Gestern kam der Mond der Erde mit 356.580 km Entfernung so nah wie seit März 1993 nicht mehr und erschien deshalb 14% größer und 30% heller als sonst. Diese Gelegenheit habe ich genutzt, um den Mond zu fotografieren:</p>

<p><a href='http://data.7h0ma5.org/images/astronomy/supermoon.jpg'><img alt='Der Super-Mond' src='http://data.7h0ma5.org/images/astronomy/supermoon_600.jpg' /></a></p>

<p>Für dieses Foto habe ich meine Kamera, eine Canon EOS 400D, mit einem T2-Adapter und einer 2-fach Barlowlinse an ein einfaches Refraktor-Teleskop angeschlossen. Leider hat der Mond nicht ganz auf ein Bild gepasst, deshalb musste ich für das obige Bild zwei einzelne Bilder zusammenfügen.</p>

<p>Zufällig flog bei einem Foto ein Flugzeug am Mond vorbei:</p>

<p><a href='http://data.7h0ma5.org/images/astronomy/supermoon_plane.jpg'><img alt='Ein Flugzeug vor dem Super-Mond' src='http://data.7h0ma5.org/images/astronomy/supermoon_plane_600.jpg' /></a></p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Mutt mit Gmail und IMAP]]></title>
    <link href="http://7h0ma5.org/2010/12/gmail-mutt-imap/"/>
    <updated>2010-12-18T16:00:00+01:00</updated>
    <id>http://7h0ma5.org/2010/12/gmail-mutt-imap</id>
    <content type="html"><![CDATA[<p>Google Mail hat zwar ein sehr gutes Webinterface, doch einen Text-basierten Client wie <a href='http://www.mutt.org/'>Mutt</a> zu benutzen hat auch einige Vorteile. Zum Beispiel unterstützt mutt GnuPG vollständig und über eine SSH-Verbindnung kann man von überall aus sicher auf seine E-Mails zugreifen.</p>

<p>Damit Mutt richtig mit Gmail zusammenarbeitet, muss man einige Einstellungen in der <em>.muttrc</em> vornehmen:</p>

<h3 id='accountdaten'>Account-Daten</h3>

<pre><code>set imap_user = &quot;myname@googlemail.com&quot;
set imap_pass = &quot;secretpassword&quot;

set smtp_url = &quot;smtp://myname@smtp.googlemail.com:587/&quot;
set smtp_pass = &quot;secretpassword&quot;</code></pre>

<h3 id='ordner'>Ordner</h3>

<p>Ein Problem ist die Ordner-Struktur, die Google verwendet, denn alle Ordner befinden sich in dem Unterverzeichnis <em>[Google Mail]</em>. Damit mutt die richtigen Ordner verwendet, werden hier die richtigen Ordner definiert:</p>

<pre><code>set folder = &quot;imaps://imap.googlemail.com:993&quot;
set spoolfile = &quot;+INBOX&quot;
set postponed = &quot;+[Google Mail]/Drafts&quot;</code></pre>

<h3 id='shortcuts'>Shortcuts</h3>

<p>Um E-Mails richtig zu archivieren oder als Spam zu kennzeichnen, werden dafür die Shortcuts <em>y</em> und <em>s</em> definiert:</p>

<pre><code>macro index,pager y &quot;&lt;save-message&gt;=[Google&lt;quote-char&gt; Mail]/All&lt;quote-char&gt; Mail&lt;enter&gt;&lt;enter&gt;&quot; &quot;Archive&quot;
macro index,pager s &quot;&lt;save-message&gt;=[Google&lt;quote-char&gt; Mail]/Spam&lt;enter&gt;&lt;enter&gt;&quot; &quot;Spam&quot;</code></pre>

<p>Um in die anderen Ordner zu wechseln, hier noch ein paar Shortcuts, die auch im Webinterface funktionieren:</p>

<pre><code>macro index gi &quot;&lt;change-folder&gt;=INBOX&lt;enter&gt;&quot; &quot;Go to inbox&quot;
macro index ga &quot;&lt;change-folder&gt;=[Google&lt;quote-char&gt; Mail]/All&lt;quote-char&gt; Mail&lt;enter&gt;&quot; &quot;Go to all mail&quot;
macro index gt &quot;&lt;change-folder&gt;=[Google&lt;quote-char&gt; Mail]/Sent&lt;quote-char&gt; Mail&lt;enter&gt;&quot; &quot;Go to sent Mail&quot;
macro index gd &quot;&lt;change-folder&gt;=[Google&lt;quote-char&gt; Mail]/Drafts&lt;enter&gt;&quot; &quot;Go to drafts&quot;
macro index gs &quot;&lt;change-folder&gt;=[Google&lt;quote-char&gt; Mail]/Spam&lt;enter&gt;&quot; &quot;Go to Spam&quot;</code></pre>

<h3 id='sonstiges'>Sonstiges</h3>

<p>Damit mutt richtig mit Gmail zusammenarbeitet, habe ich noch folgende Einstellungen gesetzt:</p>

<pre><code>set imap_keepalive = 900
set timeout=15
set mail_check=60

set sort = &#39;threads&#39;
set sort_aux = &#39;last-date-received&#39;
set charset=&quot;utf-8&quot;

set delete = yes
set move = no</code></pre>

<p>Jetzt sollte alles perfekt funktionieren.</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Blog mit Jekyll]]></title>
    <link href="http://7h0ma5.org/2010/12/blog-mit-jekyll/"/>
    <updated>2010-12-10T23:00:00+01:00</updated>
    <id>http://7h0ma5.org/2010/12/blog-mit-jekyll</id>
    <content type="html"><![CDATA[<p>3 Jahre lang lief dieses Blog mit Wordpress, was auch ohne größere Probleme immer funktioniert hat. Wordpress musste natürlich immer auf dem neusten Stand gehalten werden um keine Sicherheitslücken zu bieten. Außerdem ging die Performance wegen MySQL und PHP bei viel Traffic in den Keller. Aus diesen Gründen bin ich jetzt auf <a href='http://www.jekyllrb.com'>Jekyll</a> umgestiegen.</p>

<p>Jekyll ist kein <abbr title='Content Management System'>CMS</abbr>, sondern ein <em>Static-Site-Generator</em>, denn Jekyll spuckt einfach nur statisches <abbr title='Hypertext Markup Language'>HTML</abbr> aus. Das hört sich jetzt vielleicht nach einer längst überholten Technik an, doch kombiniert mit Git, Markdown bzw. Textile und Liquid (einer Template-Engine) hat man ein sehr flexibles System, was vor allem schnell und sicher ist.</p>

<p>Das die generierten Seiten statisch sind, bringt natürlich auch Nachteile mit sich, denn man muss auf eingebaute interaktive Funktionen, wie die Kommentar und Trackback-Funktion, verzichten oder eine Alternative finden. Hier benutze ich zum Beispiel <a href='http://www.disqus.com'>Disqus</a> für die Kommentare.</p>

<h3 id='installation'>Installation</h3>

<p>Da Jekyll auf Ruby basiert, ist die Installation sehr einfach, soweit man Ruby und RubyGems bereits installiert hat.</p>
<div class='highlight'><pre><code class='bash'><span class='nv'>$ </span>gem install jekyll
</code></pre>
</div>
<h3 id='konfiguration'>Konfiguration</h3>

<p>Ein Blog mit Jekyll ist einfach nur ein Verzeichnis mit dieser Struktur:</p>

<pre><code>_config.yml
_layouts/
   default.html
   post.html
_posts/
   2010-12-01-test-post.md
index.html</code></pre>

<p>Die config.yml-Datei enthält die Einstellungen, der _layouts-Ordner die Templates und der _posts-Ordner die Blog-Einträge. Alle anderen Dateien, die sich in dem Verzeichnis befinden werden einfach mit in die generierte Seite übernommen.</p>

<p>Einen neuen Blogpost kann man einfach in <a href='http://daringfireball.net/projects/markdown/'>Markdown</a> oder <a href='http://textile.thresholdstate.com/'>Textile</a> schreiben und dann in den _posts-Ordner speichern.</p>

<p>Damit Jekyll die Dateien als Einträge erkennt, muss sich am Anfang der Datei die sogenannte <em>YAML Front Matter</em> befinden, das ist ein Block, der Variablen, wie den Titel des Betrags, enthält und mit <a href='http://www.yaml.org/'>YAML</a> formatiert ist.</p>

<p>Ein Post sieht dann zum Beispiel so aus:</p>

<pre><code>---
layout: post
title: Test Post
---
Text, der mit *Markdown* formatiert ist.</code></pre>

<p>Die layout-Variable gibt an, welches Template aus dem _layouts-Ordner für diesen Beitrag verwendet werden soll. Ein Template besteht aus <abbr title='Hypertext Markup Language'>HTML</abbr>, das mithilfe der Template-Engine <a href='https://github.com/tobi/liquid/wiki/liquid-for-designers'>Liquid</a> mit dem eigentlichen Inhalt gefüllt wird.</p>

<p>Ein Template sieht zum Beispiel so aus:</p>
<div class='highlight'><pre><code class='html'><span class='cp'>&lt;!DOCTYPE html&gt;</span>
<span class='nt'>&lt;html&gt;</span>
  <span class='nt'>&lt;head&gt;</span>
    <span class='nt'>&lt;title&gt;</span>{{page.title}}<span class='nt'>&lt;/title&gt;</span>
  <span class='nt'>&lt;/head&gt;</span>
  <span class='nt'>&lt;body&gt;</span>
    <span class='nt'>&lt;h1&gt;</span>{{page.title}}<span class='nt'>&lt;/h1&gt;</span>
      {{content}}
    <span class='nt'>&lt;/body&gt;</span>
<span class='nt'>&lt;/html&gt;</span>
</code></pre>
</div>
<h3 id='deployment'>Deployment</h3>

<p>Um den Mix aus Templates und Markdown in eine statische <abbr title='Hypertext Markup Language'>HTML</abbr>-Seite umzwandeln, muss man nur mit der Konsole in das Verzeichnis wechseln und <code>jekyll</code> ausführen. Die generierte Seite befindet sich nun im automatisch angelegten _site-Verzeichnis und kann jetzt auf einen Webserver hochgeladen werden, wofür es mehrere Möglichkeiten gibt.</p>

<p>Eine Möglichkeit ist rsync:</p>
<div class='highlight'><pre><code class='bash'><span class='nv'>$ </span>jekyll <span class='o'>&amp;&amp;</span> rsync -avz --delete _site/ user@host:/var/www/my_site
</code></pre>
</div>
<p>Wenn das git-Repository sowieso schon auf dem Webserver liegt, ist es am einfachsten, die Seite mit einem <em>post-receive hook</em> bei einem <em>commit</em> automatisch neu generieren zu lassen. Wie das genau funktioniert und noch ein paar andere Möglichkeiten sind <a href='https://github.com/mojombo/jekyll/wiki/Deployment'>hier</a> zu finden.</p>

<p>Weitere Informationen gibt es im <a href='https://github.com/mojombo/jekyll/wiki'>Wiki</a> des <a href='https://github.com/mojombo/jekyll/wiki'>GitHub-Projektes</a> von Jekyll.</p>

<p>Der &#8220;Source-Code&#8221; meines Blogs liegt <a href='https://github.com/7h0ma5/7h0ma5.org'>hier</a>.</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Neustart]]></title>
    <link href="http://7h0ma5.org/2010/11/neustart/"/>
    <updated>2010-11-01T13:00:00+01:00</updated>
    <id>http://7h0ma5.org/2010/11/neustart</id>
    <content type="html"><![CDATA[<p>Seit längerer Zeit hat sich auf diesem Blog nichts mehr getan, deshalb nun ein radikaler Schritt, um das Blog wieder zum Leben zu erwecken: alles plattmachen und neu anfangen.</p>
<!--more-->
<p>Mein altes Blog habe ich natürlich nicht gelöscht, sondern ein Backup erstellt, einmal mit der Export-Funktion von Wordpress (<a href='http://old.7h0ma5.org/7h0ma5-wordpress-export.tar.gz'>download</a>), und zusätzlich einen statischen Dump mit <em>wget</em>, der auch alle Bilder und Dateien enthält (<a href='http://old.7h0ma5.org/old-7h0ma5-org.tar.gz'>download</a>, <a href='http://old.7h0ma5.org'>online</a>).</p>

<p>Mit <em>wget</em> lässt sich ganz einfach ein Dump einer kompletten Webseite erstellen:</p>
<div class='highlight'><pre><code class='bash'><span class='nv'>$ </span>wget -r -E -T 2 -np -R xmlrpc.php,trackback -k <span class='o'>[</span>URL<span class='o'>]</span>
</code></pre>
</div>
<p>Jetzt hoffe ich, dass ich in nächster Zeit wieder mehr Motivation bzw. Zeit habe, hier ein paar Beiträge zu posten.</p>]]></content>
  </entry>
  
</feed>

