<?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>nico-hofmann.de</title>
	<atom:link href="http://nico-hofmann.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://nico-hofmann.de</link>
	<description>just my site</description>
	<lastBuildDate>Fri, 08 Jul 2011 23:08:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Google+ Einladungen zu vergeben</title>
		<link>http://nico-hofmann.de/2011/07/google-einladungen-zu-vergeben/</link>
		<comments>http://nico-hofmann.de/2011/07/google-einladungen-zu-vergeben/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 23:08:31 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/?p=87</guid>
		<description><![CDATA[Wer gerne eine Einladung zu Google+ hätte, einfach einen Kommentar hinterlassen mit der entsprechenden GMAIL-Adresse. Mein bisheriges Fazit: Google+ ist, als wären Twitter und Facebook miteinander im Bett gewesen und das daraus resultierende Kind kam gleich smart, adrett und erwachsen auf die Welt. Gut kleine Macken hat es noch. Für mich definitiv ein gefällt mir [...]]]></description>
			<content:encoded><![CDATA[<p>Wer gerne eine Einladung zu Google+ hätte, einfach einen Kommentar hinterlassen mit der entsprechenden GMAIL-Adresse.</p>
<p>Mein bisheriges Fazit:</p>
<p>Google+ ist, als wären Twitter und Facebook miteinander im Bett gewesen und das daraus resultierende Kind kam gleich smart, adrett und erwachsen auf die Welt. Gut kleine Macken hat es noch. Für mich definitiv ein <del datetime="2011-07-08T23:02:20+00:00">gefällt mir</del> +1.</p>
<div id="tweetbutton87" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2011%2F07%2Fgoogle-einladungen-zu-vergeben%2F&amp;via=nicohofmann&amp;text=Google%2B%20Einladungen%20zu%20vergeben&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2011%2F07%2Fgoogle-einladungen-zu-vergeben%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2011/07/google-einladungen-zu-vergeben/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>BBC Bayreuth bleibt erstklassig</title>
		<link>http://nico-hofmann.de/2011/04/bbc-bayreuth-bleibt-erstklassig/</link>
		<comments>http://nico-hofmann.de/2011/04/bbc-bayreuth-bleibt-erstklassig/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 22:18:49 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[Basketball]]></category>
		<category><![CDATA[Bayreuth]]></category>
		<category><![CDATA[BBC Bayreuth]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/2011/04/bbc-bayreuth-bleibt-erstklassig/</guid>
		<description><![CDATA[Der BBC schafft mit viel Dusel den Klassenerhalt. Gegen Düsseldorf hätte man bereits alles klar machen können, doch man wollte es spannend machen. Ich sage nur: Danke Göttingen! Tweet]]></description>
			<content:encoded><![CDATA[<p>Der BBC schafft mit viel Dusel den Klassenerhalt. Gegen Düsseldorf hätte man bereits alles klar machen können, doch man wollte es spannend machen. Ich sage nur: Danke Göttingen!</p>
<div id="tweetbutton85" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2011%2F04%2Fbbc-bayreuth-bleibt-erstklassig%2F&amp;via=nicohofmann&amp;text=BBC%20Bayreuth%20bleibt%20erstklassig&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2011%2F04%2Fbbc-bayreuth-bleibt-erstklassig%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2011/04/bbc-bayreuth-bleibt-erstklassig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eBook-Empfehlung: Werdegang eines Tausendsassa</title>
		<link>http://nico-hofmann.de/2010/12/ebook-empfehlung-werdegang-eines-tausendsassa/</link>
		<comments>http://nico-hofmann.de/2010/12/ebook-empfehlung-werdegang-eines-tausendsassa/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 20:47:30 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[Bücher]]></category>
		<category><![CDATA[eBook]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/?p=72</guid>
		<description><![CDATA[Ich würde euch gerne dieses eBook ans Herz legen. Am Besten gefällt mir, wie Kai Thrun beschreibt, Dinge einfach zu machen. Spaß, Verwirklichung und Träume sind ein Antrieb und eine Chance. Aber lest selbst  &#8230; mir hat er noch mal, in seiner kurzweiligen Art, ein paar Dinge vor Augen geführt. Danke dafür. Link + Download: [...]]]></description>
			<content:encoded><![CDATA[<p>Ich würde euch gerne dieses eBook ans Herz legen. Am Besten gefällt mir, wie Kai Thrun beschreibt, Dinge einfach zu machen. Spaß, Verwirklichung und Träume sind ein Antrieb und eine Chance. Aber lest selbst  &#8230; mir hat er noch mal, in seiner kurzweiligen Art, ein paar Dinge vor Augen geführt. Danke dafür.</p>
<p>Link + Download: <a title="Werdegang eines Tausendsassa" href="http://derwebarchitekt.de/werdegang-eines-tausendsassa-ebook/" target="_blank">http://derwebarchitekt.de/werdegang-eines-tausendsassa-ebook/</a></p>
<div id="tweetbutton72" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2010%2F12%2Febook-empfehlung-werdegang-eines-tausendsassa%2F&amp;via=nicohofmann&amp;text=eBook-Empfehlung%3A%20Werdegang%20eines%20Tausendsassa&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2010%2F12%2Febook-empfehlung-werdegang-eines-tausendsassa%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2010/12/ebook-empfehlung-werdegang-eines-tausendsassa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Stammtisch Bayreuth</title>
		<link>http://nico-hofmann.de/2010/12/php-stammtisch-bayreuth/</link>
		<comments>http://nico-hofmann.de/2010/12/php-stammtisch-bayreuth/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 20:41:54 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Bayreuth]]></category>
		<category><![CDATA[Stammtisch]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/?p=70</guid>
		<description><![CDATA[Schon länger hege ich den Gedanken Teil einer PHP Usergroup oder eines Stammtisches zu werden. Leider klappte dies bisher nicht, da Angebote im Raum Bayreuth nicht vorhanden sind. Wenn es noch keinen gibt, können wir ja einen machen. Nach ersten Befragungen bei Twitter hatte ich 2 Interessenten. Nicht viel, aber dennoch könnte es einen ersten [...]]]></description>
			<content:encoded><![CDATA[<p>Schon länger hege ich den Gedanken Teil einer PHP Usergroup oder eines Stammtisches zu werden. Leider klappte dies bisher nicht, da Angebote im Raum Bayreuth nicht vorhanden sind. Wenn es noch keinen gibt, können wir ja einen machen. Nach ersten Befragungen bei Twitter hatte ich 2 Interessenten. Nicht viel, aber dennoch könnte es einen ersten Stammtisch im Januar geben. Es dürfen sich auch gerne noch mehr anschließen. Am Besten kurz mit mir Kontakt aufnehmen.</p>
<p>Zur Auswahl steht an einem Donnerstag Abend im Januar ein Lokal aufzusuchen, oder am Wochenende ein gemütliches Brunchen. Die Lokalität steht noch nicht fest. Vorschläge, am Besten mit kostenlosen WLAN, einfach an mich senden.  Ebenso eure Anmeldungen.</p>
<p>Ich würde mich sehr freuen mich regelmäßig mit Euch über Themen rund um PHP und wesentlich mehr auszutauschen.</p>
<p>Kontakt Jabber: nico.hofmann@jabber.org<br />
Kontakt Email: siehe Impressum.</p>
<div id="tweetbutton70" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2010%2F12%2Fphp-stammtisch-bayreuth%2F&amp;via=nicohofmann&amp;text=PHP%20Stammtisch%20Bayreuth&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2010%2F12%2Fphp-stammtisch-bayreuth%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2010/12/php-stammtisch-bayreuth/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Patches mit Hilfe von Git erstellen und einspielen</title>
		<link>http://nico-hofmann.de/2010/09/patches-mit-hilfe-von-git-erstellen-und-einspielen/</link>
		<comments>http://nico-hofmann.de/2010/09/patches-mit-hilfe-von-git-erstellen-und-einspielen/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 19:46:03 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[Unconference]]></category>
		<category><![CDATA[useful]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/?p=65</guid>
		<description><![CDATA[Am Rande der PHP Unconference finde ich nun doch ein paar Minuten, mal wieder hier in meinem Blog einen kleinen technischen Artikel zu veröffentlichen. Nun aber zum Thema. Ein häufiges Szenario ist, dass man lokal eine Versionsverwaltung in der Entwicklungsumgebung einsetzt, während man im Produktivsystem die Sourcen aber nicht aus dem Versionierungssystems holt, sondern ein [...]]]></description>
			<content:encoded><![CDATA[<p>Am Rande der PHP Unconference finde ich nun doch ein paar Minuten, mal wieder hier in meinem Blog einen kleinen technischen Artikel zu veröffentlichen. Nun aber zum Thema.</p>
<p>Ein häufiges Szenario ist, dass man lokal eine Versionsverwaltung in der Entwicklungsumgebung einsetzt, während man im Produktivsystem die Sourcen aber nicht aus dem Versionierungssystems holt, sondern ein komplettes Release hoch lädt. Wenn man jetzt nur einen kleinen Teil der Applikation ändert, geht der Entwickler dazu über die geänderten Files hoch zuladen. Dabei kann es zu diversen Fehlern führen:</p>
<ul>
<li>Vergessen einzelner Files</li>
<li>Produktivsystem wurde dummerweise bereits geändert -&gt; Änderungen gehen verloren</li>
<li>erzeugt Fehler während der Uploads</li>
<li>Dateien werden versehentlich an die falsche Stelle geladen und verwaisen</li>
<li>u.s.w.</li>
</ul>
<p>Eine Möglichkeit dies zu umgehen ist der Patch. Jeder kennt Ihn, aber nur die Wenigsten wenden dies auch auf Quellcodes an. Wir werden jetzt mit Git, zwei Branches und patch einen Patch erzeugen und einspielen. Im Grunde ist das eine genial einfache Geschichte.</p>
<p><code><br />
laptop:Manuals nico$ mkdir Patch #Verzeichnis anlegen<br />
laptop:Manuals nico$ cd Patch/ #in dieses Verzeichnis wechseln<br />
laptop:Patch nico$ git init #Git Repository initialisieren<br />
Initialized empty Git repository in /Users/nico/Workspaces/Manuals/Patch/.git/<br />
laptop:Patch nico$ vim index.php #Datein anlegen und Bearbeiten<br />
</code></p>
<p>In die index.php schreiben wir nun folgenden Quellcode:</p>
<p><code>&lt;?php </code></p>
<p><code>echo "Hallo Welt";<br />
</code></p>
<p>Speichern. Datei für Commit hinzufügen und commiten.</p>
<p><code><br />
laptop:Patch nico$ git status<br />
# On branch master<br />
#<br />
# Initial commit<br />
#<br />
# Untracked files:<br />
#   (use "git add ..." to include in what will be committed)<br />
#<br />
#       index.php<br />
nothing added to commit but untracked files present (use "git add" to track)<br />
laptop:Patch nico$ git add index.php<br />
laptop:Patch nico$ git commit<br />
[master (root-commit) 1b5b9e7] asdf<br />
1 files changed, 3 insertions(+), 0 deletions(-)<br />
create mode 100644 index.php<br />
laptop:Patch nico$ git status<br />
# On branch master<br />
nothing to commit (working directory clean)<br />
</code></p>
<p>Der Einfachheit halber legen wir einen neuen Branch an, diesen brauchen wir später um den Patch einzuspielen.<br />
<code><br />
laptop:Patch nico$ git branch version1<br />
</code></p>
<p>Wir gehen davon aus, dass der Branch <strong>version1</strong> irgendwo produktiv läuft.</p>
<p>Nun wollen wir den Quellcode ändern.</p>
<p><code><br />
laptop:Patch nico$ vim index.php</code></p>
<p><code>&lt;?php </code></p>
<p><code>echo halloWelt();</code></p>
<p><code> </code></p>
<p><code>function halloWelt()<br />
{<br />
return "Hallo Welt";<br />
}<br />
</code></p>
<p>Nun noch committen:</p>
<p><code><br />
laptop:Patch nico$ git add index.php<br />
laptop:Patch nico$ git commit<br />
[master f58e5d6] implement function<br />
1 files changed, 6 insertions(+), 1 deletions(-)<br />
</code></p>
<p>Jetzt geht es daran einen Patch zu erstellen, damit wir dies tun können müssen wir die Revisionsnummern wissen, von welcher Revision auf welche der Patch erstellt werden soll. Zum Glück haben wir nur zwei und können so gesehen hier nicht viel falsch machen ;o)</p>
<p><code><br />
laptop:Patch nico$ git log --oneline<br />
f58e5d6 implement function<br />
1b5b9e7 init<br />
</code></p>
<p>Der Befehl sagt uns, dass wir den Patch von der Revision <strong>1b5b9e7</strong> auf <strong>f58e5d6</strong> erzeugen wollen. Dies tun wir mit folgenden Befehl.</p>
<p><code><br />
laptop:Patch nico$ git format-patch 1b5b9e7..f58e5d6<br />
0001-implement-function.patch<br />
</code></p>
<p>Schauen wir uns den Inhalt des Patches an:<br />
<code><br />
laptop:Patch nico$ cat 0001-implement-function.patch<br />
From f58e5d66c18c59e0e11e394dbfec0b97c1661783 Mon Sep 17 00:00:00 2001<br />
From: Nico Hofmann mail@nico-hofmann.de<br />
Date: Sat, 25 Sep 2010 19:57:32 +0200<br />
Subject: [PATCH] implement function</code></p>
<p><code>---<br />
index.php |    7 ++++++-<br />
1 files changed, 6 insertions(+), 1 deletions(-)</code></p>
<p><code>diff --git a/index.php b/index.php<br />
index f203f7f..742c38f 100644<br />
--- a/index.php<br />
+++ b/index.php<br />
@@ -1,3 +1,8 @@</code></p>
<p><code>-echo "Hallo Welt";<br />
+echo halloWelt();<br />
+<br />
+function halloWelt()<br />
+{<br />
+       return "Hallo Welt";<br />
+}<br />
--<br />
1.7.0.2</p>
<p></code></p>
<p>Kann man verstehen, muss man aber nicht. Wir simulieren jetzt das entfernte System, in dem wir zurück auf den Branch <strong>version1</strong> wechseln.</p>
<p><code><br />
laptop:Patch nico$ git checkout version1<br />
Switched to branch 'version1'<br />
laptop:Patch nico$ git branch<br />
master<br />
* version1<br />
laptop:Patch nico$ cat index.php<br />
</code></p>
<p>&lt;?php</p>
<p><code>echo "Hallo Welt";<br />
</code></p>
<p>Wir machen nun den Testlauf für unseren Patch.</p>
<p><code><br />
laptop:Patch nico$ patch -p 1 --dry-run &lt; 0001-implement-function.patch<br />
patching file index.php<br />
</code></p>
<p>Läuft! Das -p sagt die Verzeichnistiefe vom Patch zum Verzeichnis in dem man sich befindet an.</p>
<p><code><br />
laptop:Patch nico$ patch -p 1 &lt; 0001-implement-function.patch<br />
patching file index.php<br />
laptop:Patch nico$ cat index.php<br />
</code></p>
<p>&lt;?php</p>
<p><code>echo halloWelt();</code></p>
<p><code> </code></p>
<p><code>function halloWelt()<br />
{<br />
return "Hallo Welt";<br />
}<br />
</code></p>
<p>Das wars. Der Patch wäre eingespielt! Einen solchen Patch könnte man z.B. auf dem System seines Kunden einspielen, ohne in die oben genannten Fehlerquellen zu tappen.</p>
<div id="tweetbutton65" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2010%2F09%2Fpatches-mit-hilfe-von-git-erstellen-und-einspielen%2F&amp;via=nicohofmann&amp;text=Patches%20mit%20Hilfe%20von%20Git%20erstellen%20und%20einspielen&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2010%2F09%2Fpatches-mit-hilfe-von-git-erstellen-und-einspielen%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2010/09/patches-mit-hilfe-von-git-erstellen-und-einspielen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ich war so gut wie nicht da und bin schon wieder weg #phpunconf</title>
		<link>http://nico-hofmann.de/2010/09/ich-war-so-gut-wie-nicht-da-und-bin-schon-wieder-weg-phpunconf/</link>
		<comments>http://nico-hofmann.de/2010/09/ich-war-so-gut-wie-nicht-da-und-bin-schon-wieder-weg-phpunconf/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 20:21:29 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/?p=60</guid>
		<description><![CDATA[In letzter Zeit passierte hier leider sehr wenig. Das wird sich die nächsten Tage mit Sicherheit auch nicht ändern, denn ab morgen früh bin ich erstmal unterwegs nach Hamburg, um an der PHP Unconference teilzunehmen. Die möglichen Themen klingen jedenfalls schon mal sehr spannend und eigentlich kann es nur eine erfolgreiche Veranstaltung werden. Wir sehen [...]]]></description>
			<content:encoded><![CDATA[<p>In letzter Zeit passierte hier leider sehr wenig. Das wird sich die nächsten Tage mit Sicherheit auch nicht ändern, denn ab morgen früh bin ich erstmal unterwegs nach Hamburg, um an der PHP Unconference teilzunehmen.</p>
<p><a href="http://www.php-unconference.org/voteyourtalk/index.php/default/index/">Die möglichen Themen</a> klingen jedenfalls schon mal sehr spannend und eigentlich kann es nur eine erfolgreiche Veranstaltung werden.</p>
<p>Wir sehen uns auf der: <a title="PHP Unconference" href="http://www.php-unconference.de/" target="_blank"><img class="aligncenter size-full wp-image-61" title="banner-180-x-180" src="http://nico-hofmann.de/wp-content/uploads/2010/09/banner-180-x-180.png" alt="" width="180" height="180" /></a></p>
<div id="tweetbutton60" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2010%2F09%2Fich-war-so-gut-wie-nicht-da-und-bin-schon-wieder-weg-phpunconf%2F&amp;via=nicohofmann&amp;text=Ich%20war%20so%20gut%20wie%20nicht%20da%20und%20bin%20schon%20wieder%20weg%20%23phpunconf&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2010%2F09%2Fich-war-so-gut-wie-nicht-da-und-bin-schon-wieder-weg-phpunconf%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2010/09/ich-war-so-gut-wie-nicht-da-und-bin-schon-wieder-weg-phpunconf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VIM &#8211; Syntax-Highlighting</title>
		<link>http://nico-hofmann.de/2010/08/vim-syntax-highlighting/</link>
		<comments>http://nico-hofmann.de/2010/08/vim-syntax-highlighting/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 20:36:23 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[MacOSX]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/2010/08/vim-syntax-highlighting/</guid>
		<description><![CDATA[VIM ist ein mächtiger Editor für die Konsole und erfreut sich durchaus großer Beliebtheit. Viele Administratoren und auch Entwickler ziehen diesen Editor jedem grafischen Editor vor. Ich selbst arbeite zwar meist mit Netbeans oder Komodo, aber insbesondere für Remote-Arbeiten greife ich sehr gerne auf VIM zurück. Eine große Hürde für viele sind die äußerst ungewohnten [...]]]></description>
			<content:encoded><![CDATA[<p>VIM ist ein mächtiger Editor für die Konsole und erfreut sich durchaus großer Beliebtheit. Viele Administratoren und auch Entwickler ziehen diesen Editor jedem grafischen Editor vor. Ich selbst arbeite zwar meist mit Netbeans oder Komodo, aber insbesondere für Remote-Arbeiten greife ich sehr gerne auf VIM zurück. Eine große Hürde für viele sind die äußerst ungewohnten Befehle. Dafür gibt es aber massig Cheat-Sheets. Hat man die Befehle erst einmal verinnerlicht ist ein ziemlich schnelles arbeiten möglich, wahrscheinlich sogar schneller als in so manchen grafischen Editor. Eine weitere Hürde ist die Farblosigkeit, die sich in der Standardkonfiguration einem bietet. In der Tat nicht wirklich ansehnlich. Aber VIM wäre nicht VIM, wenn es dafür nicht eine Lösung bieten würde. Zuerst muss man die zentrale Konfigurationsdatei von VIM finden und öffnen.</p>
<p>Die Datei liegt unter „/usr/share/vim“ und heißt „vimrc“. Geöffnet werden muss sie mit root Rechten, oder besser unter der Verwendung von sudo.</p>
<p><code>sudo vim vimrc</code></p>
<p>Man sollte jetzt die Konfigurationsdatei sehen, in der bereits einige Einträge standardmäßig beinhaltet sind. Anbei findet Ihr meine Konfigurationsdatei. Die von mir hinzugefügten Zeilen sind entsprechend gekennzeichnet.</p>
<p><code><br />
" Configuration file for vim<br />
set modelines=0         " CVE-2007-2438<br />
</code></p>
<p><code><br />
" Normally we use vim-extensions. If you want true vi-compatibility<br />
" remove change the following statements<br />
set nocompatible        " Use Vim defaults instead of 100% vi compatibility<br />
set backspace=2         " more powerful backspacing</p>
<p>" myConfigBegin<br />
set ai                  " auto indenting<br />
set history=100         " keep 100 lines of history<br />
set ruler               " show the cursor position<br />
syntax on               " syntax highlighting<br />
set hlsearch            " highlight the last searched term<br />
filetype plugin on      " use the file type plugins</p>
<p>" When editing a file, always jump to the last cursor position<br />
autocmd BufReadPost *<br />
\ if ! exists("g:leave_my_cursor_position_alone") |<br />
\ if line("'\"") &gt; 0 &amp;&amp; line ("'\"") &lt;= line("$") |<br />
\ exe "normal g'\"" |<br />
\ endif |<br />
\ endif<br />
" myConfigEnd<br />
</code></p>
<p><code><br />
" Don't write backup file if vim is being called by "crontab -e"<br />
au BufWrite /private/tmp/crontab.* set nowritebackup<br />
" Don't write backup file if vim is being called by "chpass"<br />
au BufWrite /private/etc/pw.* set nowritebackup<br />
</code></p>
<div id="tweetbutton57" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2010%2F08%2Fvim-syntax-highlighting%2F&amp;via=nicohofmann&amp;text=VIM%20%26%238211%3B%20Syntax-Highlighting&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2010%2F08%2Fvim-syntax-highlighting%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2010/08/vim-syntax-highlighting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Skurriles MySQL</title>
		<link>http://nico-hofmann.de/2010/06/skurriles-mysql/</link>
		<comments>http://nico-hofmann.de/2010/06/skurriles-mysql/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 22:01:56 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[strange]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/?p=55</guid>
		<description><![CDATA[Ich betreibe den kleinen URL-Shortener Dienst teff.de. Jeder Link wird in die DB geschrieben und der Primary Key in base 62 umgerechnet. Es existiert noch keine öffentliche API und auch keine Statistik, daher ist der Erfolg erwartungsgemäß eher bescheiden. Jedenfalls kamen die Tage zum ersten mal die Großbuchstaben im URL-Key zum Einsatz. Eigentlich war dieses [...]]]></description>
			<content:encoded><![CDATA[<p>Ich betreibe den kleinen URL-Shortener Dienst <a href="http://teff.de" target="_blank">teff.de</a>. Jeder Link wird in die DB geschrieben und der Primary Key in base 62 umgerechnet. Es existiert noch keine öffentliche API und auch keine Statistik, daher ist der Erfolg erwartungsgemäß eher bescheiden.</p>
<p>Jedenfalls kamen die Tage zum ersten mal die Großbuchstaben im URL-Key zum Einsatz. Eigentlich war dieses Szenario getestet, trotzdem arbeitete die Applikation nicht richtig.</p>
<p>Der Großbuchstabe wurde ignoriert und stattdessen der Link der hinter dem Code mit dem Kleinbuchstaben lag aufgerufen.</p>
<p><code>Die Anfrage mit Key 1A entsprach also dem Datensatz hinter Key 1a</code></p>
<p>Der URL &#8211; Parameter wurde jedoch richtig verarbeitet. Ein Blick ins Model sagte mir, dass an die DB folgende Anfrage gestellt wurde.</p>
<p><code>SELECT * FROM url WHERE `key` = '1A'</code></p>
<p>Also keine Case-Insensitive Abfrage. Dennoch bringt genau diese Abfrage zwei Ergebnisse. </p>
<p><code><br />
+-----+<br />
| key |<br />
+-----+<br />
| 1a  |<br />
| 1A  |<br />
+-----+<br />
2 rows in set (0.00 sec)<br />
</code></p>
<p>Ich habe nach wie vor keinen Schimmer warum. Sollte dies jemand lesen und wissen, so bitte ich darum mir die Lösung zu verraten. Die Lösung wäre mir auch ein Bier wert.</p>
<p>Zum Glück konnte ich einen kleinen Workaround schaffen. Ändert man die Abfrage minimal ab, so funktioniert es.</p>
<p><code><br />
 SELECT * FROM url WHERE `key` = binary '1A';<br />
</code></p>
<p>Jetzt kommt das erwartete Ergebnis.</p>
<div id="tweetbutton55" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2010%2F06%2Fskurriles-mysql%2F&amp;via=nicohofmann&amp;text=Skurriles%20MySQL&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2010%2F06%2Fskurriles-mysql%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2010/06/skurriles-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kleines Tutorial für die Verwendung von ZendX_JQuery</title>
		<link>http://nico-hofmann.de/2010/06/kleines-tutorial-fur-die-verwendung-von-zendx_jquery/</link>
		<comments>http://nico-hofmann.de/2010/06/kleines-tutorial-fur-die-verwendung-von-zendx_jquery/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 22:27:36 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[ZendX_JQuery]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/?p=50</guid>
		<description><![CDATA[Ich habe soeben ein kleines Tutorial auf dev-talk.info veröffentlicht. Die Seite wurde von zwei meiner Kollegen veröffentlicht. Ich hoffe das Sie damit Erfolg haben werden und mein Tutorial nicht alle Besucher vergrault. Das Tutorial beschreibt die Initialisierung von ZendX_JQuery und zeigt die Verwendung an Hand des TabContainers. Es ist sicher eine gute Basis um auch [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe soeben ein kleines <a href="http://www.dev-talk.info/zendx_jquery-basics/" target="_blank">Tutorial</a> auf <a href="http://www.dev-talk.info/" target="_blank">dev-talk.info</a> veröffentlicht. Die Seite wurde von zwei meiner Kollegen veröffentlicht. Ich hoffe das Sie damit Erfolg haben werden und mein Tutorial nicht alle Besucher vergrault.</p>
<p>Das Tutorial beschreibt die Initialisierung von ZendX_JQuery und zeigt die Verwendung an Hand des TabContainers. Es ist sicher eine gute Basis um auch weitere Komponenten über ZendX_JQuery zu erläutern. Kleiner Screenshot und der Download der Sourcen ist ebenfalls auf der Seite zu finden.</p>
<p>Ich hoffe es gefällt. Feedback und konstruktive Kritik ist gerne willkommen.</p>
<div id="tweetbutton50" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2010%2F06%2Fkleines-tutorial-fur-die-verwendung-von-zendx_jquery%2F&amp;via=nicohofmann&amp;text=Kleines%20Tutorial%20f%C3%BCr%20die%20Verwendung%20von%20ZendX_JQuery&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2010%2F06%2Fkleines-tutorial-fur-die-verwendung-von-zendx_jquery%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2010/06/kleines-tutorial-fur-die-verwendung-von-zendx_jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flattr</title>
		<link>http://nico-hofmann.de/2010/06/flattr/</link>
		<comments>http://nico-hofmann.de/2010/06/flattr/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 12:17:06 +0000</pubDate>
		<dc:creator>Nico</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Bezahlsystem]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[flattr]]></category>

		<guid isPermaLink="false">http://nico-hofmann.de/?p=48</guid>
		<description><![CDATA[Eigentlich wollte ich kein Wort über Flattr verlieren, da dies bereits so viele mehr oder weniger interessant getan haben. Irgendwann gab ich via Twitter dann doch eine kleine Meinungsäußerung bekannt. &#8220;Wann #flattr wohl die AGB-Änderung mit der Abtretung der Rechte am Content bekannt gibt?&#8221; Noqqe kam wohl nicht drum herum diesen Tweet in seinem Blogpost aufzugreifen. [...]]]></description>
			<content:encoded><![CDATA[<p>Eigentlich wollte ich kein Wort über Flattr verlieren, da dies bereits so viele mehr oder weniger interessant getan haben. Irgendwann gab ich via <a href="https://twitter.com/nicohofmann/status/15324649751" target="_blank">Twitter</a> dann doch eine kleine Meinungsäußerung bekannt.</p>
<p>&#8220;Wann <a title="#flattr" rel="nofollow" href="https://twitter.com/search?q=%23flattr">#flattr</a> wohl die AGB-Änderung mit der Abtretung der Rechte am Content bekannt gibt?&#8221;</p>
<p>Noqqe kam wohl nicht drum herum diesen Tweet in seinem <a href="http://noqqe.de/?p=1024" target="_blank">Blogpost</a> aufzugreifen. (Danke ;o) ) Er interpretierte meinen Tweet als wohl nicht ganz ernst gemeint.</p>
<p>Eigentlich bin ich aber fest davon überzeugt. Vielleicht werden die AGB-Änderungen nicht so überzogen ausfallen, dennoch glaube ich fest daran das es zu Änderungen kommt, mit denen Flattr den User-Content ausschlachten wird. Warum? Wenn mir Flattr gehören würde, würde ich so handeln. Die beste Kennzahl über Content kennt nämlich nur Flattr. Sie setzt sich aus Anzahl der Spenden und natürlich der Höhe der zu erwartenden Beträge zusammen. Mit diesen Werten ist es ein leichtes ein Portal/Webkatalog mit höchst qualitativen Content zu schaffen. Ob dieser Content dann nur noch direkt gegen Bezahlung auf Flattr aufgerufen werden kann, oder in einer anderen Form, werden wir sehen. Es wird jedenfalls spannend, was aus Flattr werden wird.</p>
<div id="tweetbutton48" class="tw_button" style=""><a href="http://twitter.com/share?url=http%3A%2F%2Fnico-hofmann.de%2F2010%2F06%2Fflattr%2F&amp;via=nicohofmann&amp;text=Flattr&amp;related=&amp;lang=de&amp;count=vertical&amp;counturl=http%3A%2F%2Fnico-hofmann.de%2F2010%2F06%2Fflattr%2F" class="twitter-share-button"  style="width:55px;height:22px;background:transparent url('http://nico-hofmann.de/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div>]]></content:encoded>
			<wfw:commentRss>http://nico-hofmann.de/2010/06/flattr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

