<?xml version="1.0" encoding="utf-8"?><!-- generator="Kirby" -->

<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">

<channel>
<title><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
designfrei.trilodge.de</title>
<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/</link>
<generator>Kirby</generator>
<lastBuildDate>Fri, 06 Mar 2026 18:02:54 +0100</lastBuildDate>
<atom:link href="<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/feed" rel="self" type="application/rss+xml" />

<description><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
designfrei.trilodge.de]]></description>

	<item>
		<title><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
Instagram is]]></title>
		<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/instagram-is</link>
		<guid><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/instagram-is</guid>
		<pubDate>Tue, 28 May 2013 08:00:17 +0200</pubDate>
		<description><![CDATA[<p>Es soll ja noch Leute geben, die dieses wundervolle App namens <strong>Instagram</strong> noch nicht auf ihrem Smartphone oder iPhone oder ähnlichem installiert haben. Schade eigentlich, denn ihr verpasst eine großartige Community und noch viel großartigere Fotos.</p>

<p>Vor ein paar Tagen bin ich zufällig über dieses Video mit dem Titel „Instagram is“ gestolpert und ich finde es so toll, dass ich es euch nicht vorenthalten möchte.</p>

<iframe src="http://player.vimeo.com/video/66938184?title=0&amp;byline=0&amp;portrait=0&amp;color=7aa054" width="680" height="382" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen style="margin: 0 auto 40px; min-width: 85%; max-width: 85%; display: block;"></iframe>

<p>Für die jenigen unter euch, die jetzt meinen: „Och Instagram, so ein alter Hut!“, denen kann ich diesen kleinen Film nur ans Herz legen, denn ich bin mir sicher nach den 25 Minuten werdet ihr vielleicht das App anders nutzen als vorher. Ich jedenfalls habe es mir fest vorgenommen.</p>

<p>Meine Fotos findet ihr übrigens unter <a href="http://instagram.com/trilodge">http://instagram.com/trilodge</a>. <br/>Viel Spass beim Schauen.</p>
]]></description>
	</item>
	<item>
		<title><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
Versal-Eszett]]></title>
		<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/versal-eszett</link>
		<guid><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/versal-eszett</guid>
		<pubDate>Thu, 21 Mar 2013 09:36:58 +0100</pubDate>
		<description><![CDATA[<p>Neulich bin ich eher zufällig über dieses Zeichen und ein kleines Problem mit eben diesem gestolpert. Das scharfe S oder auch ß als Kleinbuchstabe hat nämlich eigentlich einen großen Bruder - das <a href="http://de.wikipedia.org/wiki/Großes_ß">Versal-Eszett</a>. Seit 2008 ist es sogar Bestandteil des Unicode-Standards.</p>

<p>Webfonts sind ja mittlerweile in aller Munde und es gibt verschiedenste Möglichkeiten der Einbettung in Webseiten. Ob nun über Hoster wie <a href="http://www.typekit.com">Typekit</a>, <a href="http://www.fontdeck.com">Fontdeck</a> oder Google Fonts, um nur einige zu nennen, oder direkt über den eigenen Server bleibt jedem selbst überlassen. Die Auswahl an guten und auch weniger guten Fonts ist mittlerweile auch riesig. Aber darum soll es gar nicht gehen.</p>

<p><img src="https://designfrei.trilodge.de/content/01-blog/07-versal-eszett/IE9-Darstellung.png" title="IE9-Darstellung" alt="Das Versal-Eszett unter Internet Explorer 9" /></p>

<p>Letztendlich trifft das kleine Malheur sogar Systemfonts (Arial, Calibri usw.). Zugegeben, so oft wird der Fall, dass man ein Versal-Eszett benötigt nicht vorkommen. Aber dennoch haben wir ein Problem.<br />
Schreiben wir im CSS ein <code>text-transform: uppercase;</code> für eine Textpassage, werden in der Browserdarstellung alle Kleinbuchstaben in Großbuchstaben umgewandelt. Ihr habt noch nie ein Versal-Eszett im Browser gesehen? Macht nichts, denn die Mehrzahl der Browser verwandelt ein Eszett in so einem Fall in ein Doppel-S. Somit wäre das Problem behoben oder gar nicht vorhanden. Gäbe es da nicht die Browser aus Redmond. Internet Explorer scheinen diese Transformationen nicht zu können. Bisher habe ich nur IE9 und IE10 getestet – ich könnte mir aber vorstellen, dass es die Oldtimer namens IE auch nicht können.</p>

<p>Da haben wir unsere Baustelle! Mitten in einem Wort mit ß ist in der Darstellung ein „Loch“, denn die IE ersetzen dann die jeweilige Schriftart mit der Fallback-Schriftart im CSS, deren Darstellung ziemliche Abweichungen aufweisen sollte.</p>

<p>Warum ist das so? In den meisten Fonts ist das Versal-Eszett als Glyphe schlichtweg nicht vorhanden, was auch nicht verwunderlich ist, da es nur im deutschen Alphabet vorkommt. Dennoch kann es zu unschönen Effekten führen. Ich habe auf Fonts.info <a href="http://www.fonts.info/store/index.php/de/blog/webfont-versal-eszett">einen Artikel</a> gefunden, in dem Fonts zum Download angeboten werden, die nur das Versal-Eszett als Glyphe enthalten, um das „Loch“ ein wenig besser zu stopfen als es die Internet Explorer automatisch versuchen. Allerdings gibt es nur eine sehr kleine Auswahl an Schriftarten die man einsetzen kann. Eine bessere Lösung wäre natürlich ein Font der das Versal-Eszett als Zeichen enthält, sofern es kein Systemfont ist.</p>
]]></description>
	</item>
	<item>
		<title><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
Modernizr trifft LocalStorage]]></title>
		<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/modernizr-optimization</link>
		<guid><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/modernizr-optimization</guid>
		<pubDate>Fri, 08 Mar 2013 09:05:33 +0100</pubDate>
		<description><![CDATA[<p><a href="http://www.modernizr.com">Modernizr</a> ist, grob gesagt, ein Tool zur Feature-Erkennung von Browsern. Es testet die verschiedenen Fähigkeiten und schreibt sie ins DOM. Damit kann eine Webseite auf die Art von Browser und Umgebung reagieren, in der sie dargestellt wird.</p>

<p>Darüber hinaus bietet Modernizr noch mehr Möglichkeiten, aber um die soll es hier nicht gehen.</p>

<p><img src="https://designfrei.trilodge.de/content/01-blog/06-modernizr-optimization/modernizr_test.jpg" title="modernizr_test" alt="Die Modernizr-Testseite" /></p>

<p>Ich möchte mich heute mit der Performance von Modernizr beschäftigen. Aber bevor ich damit beginne, kurz zur Funktionsweise von Modernizr. Es ist ein Tool, das in den &lt;head&gt;-Bereich einer Webseite eingebunden wird und bei jedem Aufruf einer Seite ausgeführt wird. Es prüft die Fähigkeiten des Browsers mittels Javascript und schreibt dann entsprechende Klassen-Attribute in das &lt;html&gt;-Tag. </p>

<p>Nun würde es doch reichen, wenn Modernizr pro Nutzer-Session nur einmal geladen und ausgeführt wird? Denn üblicherweise ändert ein Browser während einer Session nicht seine Fähigkeiten. Würde ich die Klassen zwischenspeichern, könnte ich mir einen erneuten Test sparen. Aber wie viel Zeit und CPU würde ich dadurch sparen? Dazu schaue ich mir einmal an, wie lange Modernizr für seine Feature-Detection braucht. Die Ladezeiten vernachlässige ich hierbei, da das Script so oder so geladen werden müsste. Bei weiteren Seitenaufrufen würde es somit aus dem Browser-Cache kommen.</p>

<h3>Ausgangslage</h3>

<p>Auf der Referenzseite wird nur Modernizr geladen, sonst nichts. Das HTML-Dokument ist auch sonst weitgehend leer, um störende Einflüsse zu minimieren. Exemplarisch nehme ich mir die Browser Chrome 24, Firefox 18.0.2 und Safari 6.0.2 um die Zeiten (reine Laufzeit des Javascripts) zu bestimmen. Testumgebung ist ein 2011er MacBook Pro. </p>

<p>Das HTML-Dokument:</p>

<pre><code>&lt;!DOCTYPE HTML&gt;
&lt;html lang="de"&gt;
&lt;head&gt;
    &lt;title&gt;Modernizr - Performance optimization&lt;/title&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;script src="js/modernizr.custom.49354.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Modernizr - Performance Optimization&lt;/h1&gt;

&lt;/body&gt;
&lt;/html&gt; 
</code></pre>

<p>Die Zeiten, die für die Ausführung von Modernizr benötigt werden, schauen sehr schnell aus:</p>

<ul>
<li><b>Chrome 24:</b> 20 ms</li>
<li><b>Firefox 18.0.2:</b> 11 ms</li>
<li><b>Safari 6.0.2:</b> 8 ms</li>
</ul>

<h3>LocalStorage - oder auch DOM Storage, Web Storage, HTML5 Storage</h3>

<p>Viele Namen, aber dahinter verbirgt sich immer das Gleiche. Bevor es weiter geht ein paar Details zu LocalStorage. </p>

<p>Wollte man bisher Daten über einen Seitenrequest hinweg im Client speichern, hatte man nur die Möglichkeit die Daten in einem Cookie zu hinterlegen. Aber die Größe von Cookies ist begrenzt und man kann auch nur Text darin speichern. Es fehlte ein vernünftiger und persistenter Speicher für Web-Applikationen. Das bietet nun LocalStorage. Im Grunde handelt es sich dabei einen Key-Value-Store. LocalStorage wird von allen modernen Browsern (inkl. mobile) und sogar dem <abbr title="Internet Explorer">IE</abbr> (seit Version 8) unterstützt. Auf die Daten zugegriffen wird wie bei Key-Value-Stores üblich mittels <code>getItem()</code>- und <code>setItem()</code>-Funktionen. Dabei wird ein selbst gewählter Schlüssel zur Identifizierung der Daten benutzt. Als Value lässt sich von einfachen Werten bis zu ganzen Objekten alles speichern. Außerdem lassen sich Events an den LocalStorage binden, um Änderungen überwachen zu können. Mehr Informationen und Details zur Implementierung gibts auf <a href="http://diveintohtml5.info/storage.html">diveintohtml5.com</a>.</p>

<h3>Optimierung mit LocalStorage</h3>

<p>Tja, bei solchen Zeiten lohnt sich Optimieren ja eigentlich nicht mehr. Auf die gesamte Webseite betrachtet, finden sich sicher lohnendere Elemente, die verbessert werden können. Aber wenn wir schon dabei sind, wie würde es aussehen, wenn die angesprochene Lösung mit LocalStorage umgesetzt würde? </p>

<p>Das HTML-Dokument ändert sich kaum:</p>

<pre><code>&lt;!DOCTYPE HTML&gt;
&lt;html lang="de"&gt;
&lt;head&gt;
    &lt;title&gt;Modernizr - Performance optimization&lt;/title&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;script src="js/localstorage.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;Modernizr - Performance Optimization&lt;/h1&gt;

&lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>Aber anstatt Modernizr nun direkt zu laden, wird ein Javascript zwischengeschaltet, das auf den LocalStorage prüft:</p>

<pre><code>if (localStorage)
{
    var classes = localStorage.getItem('modernizr.classes');
    if (classes != null)
    {
        var html = document.getElementsByTagName('html')[0];
        html.className = classes;
    }
    else
    {
        loadScript('js/modernizr.custom.49354.js', getAndStoreClasses);
    }
}
else
{
    loadScript('js/modernizr.custom.49354.js', '');
}

function getAndStoreClasses()
{
    var html = document.getElementsByTagName('html')[0];
    var classes = html.className;
    localStorage.setItem('modernizr.classes', classes);
}

function loadScript(resource, callbackFunction)
{
    var head = document.getElementsByTagName('head')[0];
    var scriptTag = document.createElement('script');
    scriptTag.type = 'text/javascript';
    scriptTag.src = resource;

    scriptTag.onload = callbackFunction;
    scriptTag.onreadystatechange = callbackFunction;

    head.appendChild(scriptTag);
}
</code></pre>

<p>Es bedarf nun einer Funktion die Modernizr dynamisch nachlädt. Das erledigt hier für uns „loadScript()“. Dieser Funktion kann ein Callback-Aufruf mitgegeben werden. Das nutzen wir und geben ihr die Funktion mit, die die Daten im LocalStorage speichert. Sollte LocalStorage nicht verfügbar sein, wird das Modernizr-Script „normal“ geladen.</p>

<p>Hier die Testergebnisse mit LocalStorage (beim zweiten Aufruf der Seite):</p>

<ul>
<li><b>Chrome 24:</b> 5 ms</li>
<li><b>Firefox 18.0.2:</b> 2 ms</li>
<li><b>Safari 6.0.2:</b> 2 ms</li>
</ul>

<p>Erwartungsgemäß ist das Zwischenspeichern schneller als die Tests bei jedem Seitenaufruf auszuführen. Ab der 2. Seite die geladen wird, dauert es mit LocalStorage ca. 2-5 ms. </p>

<p>Aufgrund der sehr hohen Geschwindigkeit von Modernizr ist der Performancegewinn hier gering. Aber als Proof-Of-Concept zeigt sich, dass diese Methode durchaus Sinn hat. Vor allem dann, wenn wiederholt Operationen/Berechnungen im Client ausgeführt werden, müssen die auf statischen Daten beruhen. Dies kann für Browsergames genauso wie für größere Web-Applikationen von Interesse sein.</p>
]]></description>
	</item>
	<item>
		<title><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
Min-Width]]></title>
		<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/min-width</link>
		<guid><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/min-width</guid>
		<pubDate>Mon, 25 Feb 2013 09:56:27 +0100</pubDate>
		<description><![CDATA[<p>Eine Mindestbreite eines Elements mit „min-width“ festlegen mittels CSS, so weit so unspannend, wenn man mal die Dinosaurier unter den Browsern wie Internet Explorer 6 o.ä. außer Acht lässt. Es handelt sich genauso wenig um irgendeine schicke CSS3-Geschichte, dennoch hatte ich einen „Aha-Moment“.</p>

<p>Worum gehts? Wir wollen ein Dropdown-Menü, oder auch gern als <a href="http://alistapart.com/article/dropdowns">Suckerfish-Navigation</a> bezeichnet, gestalten, in welchem wir die Untermenüpunkte an die Länge des Hauptmenüpunktes koppeln wollen. Das ganze sieht in etwa so aus:</p>

<p><img src="https://designfrei.trilodge.de/content/01-blog/05-min-width/dropdown.png" title="dropdown" alt="Navigationsbeispiel mit 4 Hauptmen&uuml;punkten und Dropdown" /></p>

<p>Was braucht man dazu? Da es sich um eine Navigation handelt, sollte man es in ein <code>nav</code> Element packen. Eine Überschrift sollte an einer Navigation auch nicht fehlen, nicht zuletzt durch den <a href="http://html5doctor.com/outlines">HTML5-Outline-Algorithmus</a>, der sonst ein „untitled nav“ in der Dokumentoutline einbezieht. Aber das ist ein anderes Thema. Wir benötigen noch eine <code>ul</code> mit ein paar <code>li</code> die die Navigationspunkte darstellen, innerhalb der <code>li</code> verschachteln wir die Untermenüpunkte widerum mit einer <code>ul</code>.</p>

<pre><code>&lt;nav&gt;
    &lt;h2&gt;Navigationsbeispiel&lt;/h2&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;a href="#"&gt;Navipunkt 1&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="#"&gt;variabler Navigationstext&lt;/a&gt;
            &lt;ul&gt;
                &lt;li&gt;&lt;a href="#"&gt;Unterpunkt&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="#"&gt;Unterpunkt&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="#"&gt;Unterpunkt&lt;/a&gt;&lt;/li&gt; 
            &lt;/ul&gt;
        &lt;/li&gt;
    &lt;/ul&gt;
&lt;/nav&gt;
</code></pre>

<p>Der Navigationspunkt mit unserem Aufklappmenü soll variabel breit sein, da dort sowohl kurze als auch lange Texte eingepflegt werden können.</p>

<p>Mit ein wenig CSS sieht das dann in etwa so aus:</p>

<p><a href="http://jsfiddle.net/w9G4w/">http://jsfiddle.net/w9G4w</a></p>

<p>Das ist natürlich unschön, da die Unterpunkte einen längeren Text haben als Platz zur Verfügung steht. Was habe ich gemacht? Ich habe die verschachtelte Liste absolut positioniert und mit den Werten right: 0; und left: 0; an die Breite des Elternelements angelehnt. Das sieht soweit ganz gut aus, wenn man die Textlänge des Hauptmenüpunktes anpasst. Aber wir wollen es ja flexibel halten.</p>

<p><a href="http://jsfiddle.net/cmZ8K/1/">http://jsfiddle.net/cmZ8K/1</a></p>

<p>Als Workaround könnte man den Untermenüpunkten natürlich auch eine feste Breite zuweisen oder gar das right: 0; entfernen damit immer gewährleistet ist, dass die Punkte richtig dargestellt werden. Allerdings waren die Anforderungen, dass das Klappmenü stets die Breite des Elternelements behält.</p>

<p>An diesem Punkt kommt „min-width“ ins Spiel und der besagte „Aha-Moment“. Vergibt man zusätzlich zu den Positionswerten für links und rechts noch min-width für die Punkte, ist es egal wie lang der Text des Hauptmenüpunktes ist.</p>

<p><a href="http://jsfiddle.net/qqVXU/1/">http://jsfiddle.net/qqVXU/1</a></p>

<p>Dieser Wert ist zwar nicht ganz flexibel, sprich er lehnt sich nicht direkt an die gegebene Textlänge der Unterpunkte an, erfüllt aber dennoch den Zweck, dass die Punkte stets gut dargestellt werden. Der gleiche „Trick“ lässt sich auch mit max-width bewerkstelligen.</p>

<p>Die nette Erkenntnis hierbei ist, dass min/max-width einen Einfluss auf die Darstellung haben, obwohl sich die Breite normalerweise an den Werten right: 0; und left: 0; orientieren sollte. Da es sich um grundlegende CSS-Eigenschaften handelt, ist diese „Technik“ bis hin zu Internet Explorer 7 problemlos einsetzbar.</p>
]]></description>
	</item>
	<item>
		<title><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
Ein Kirby-Theme erstellen]]></title>
		<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/kirby-theme</link>
		<guid><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/kirby-theme</guid>
		<pubDate>Tue, 19 Feb 2013 18:22:30 +0100</pubDate>
		<description><![CDATA[<p>Eigentlich wollten wir für <i>designfrei</i> ein fertiges Theme nutzen, um schnell an den Start gehen zu können. Eigentlich.</p>

<p>Einige Themes haben wir uns angeschaut und vor allem auch mal einen Blick unter die Haube geworfen, was uns letztendlich dazu brachte es doch selbst in die Hand zu nehmen. Nicht ganz unwichtig, Kirby macht es Entwicklern sehr einfach eigene Themes zu erstellen.</p>

<p><img src="https://designfrei.trilodge.de/content/01-blog/04-kirby-theme/code.jpg" title="code" alt="Code des Blog-Templates" /></p>

<p>Grundsätzlich bestehen Themes aus den <b>Assets</b> (Bilder, CSS, Javascript etc.), <b>Templates</b> und <b>Snippets</b>. Snippets sind Code-Schnipsel, die wiederverwendet werden können (um in mehreren Templates benutzt zu werden). Diese Aufteilung wird auch von der Ordnerstruktur gespiegelt. Eine kleine Besonderheit hat Kirby: es kann sich nur ein Theme physisch in einer Kirby-Installation befinden. Also nicht wie in z.B. Wordpress, wo beliebig viele Themes vorhanden sein können, aber nur eins aktiviert werden kann.</p>

<h3>Wie gehts?</h3>

<p>Kirby-Themes werden in HTML und PHP geschrieben. Man muss keine sonderbare Templatesprache - wie Twig beispielsweise - lernen, sondern kann direkt mit seinem Handwerkszeug loslegen. Keep it simple. <br />
Schon kann es losgehen. Die <a href="http://getkirby.com/docs/variables">PHP-Objekte</a> und <a href="http://getkirby.com/docs/helpers">-Funktionen</a> die Kirby bereitstellt sind leicht verständlich und ebenso einfach zu benutzen. Um ein bestimmtes Template für eine bestimmte Art von Content zu benutzen, benennt man dann die Text-Datei wie das Template. Also möchte ich das “article.php” als Template benutzt wird, benenne ich meine Text-Datei “article.txt”.</p>

<p>Das Standard-Template nennt sich in Kirby “default.php” und wird immer dann benutzt, wenn kein passendes Template für den Content gefunden wird. </p>

<p>Nun aber genug Theorie, lasst uns selbst ein kleines Theme bauen! Aufgabe ist ein Template für einen Artikel sowie die nötigen bzw. sinnvollen Snippets anzulegen.<br />
Ausgangspunkt ist der Prototyp unseres Themes, den Fabian erstellt hat (ich hab ihn hier wegen der Übersichtlichkeit etwas gekürzt):</p>

<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="de" class="no-js"&gt;
    &lt;head&gt;
        &lt;meta charset="utf-8"&gt;
        &lt;title&gt;designfrei.trilodge.de&lt;/title&gt;
        &lt;meta name="viewport" content="width=device-width; maximum-scale=1.2; user-scalable=1; initial-scale=1; "&gt;
        &lt;meta name="keywords" content="..."&gt;      
        &lt;meta name="description" content="..."&gt;       
        &lt;meta name="robots" content="index,follow,noarchive"&gt;     

        &lt;link href="css/core.css" rel="stylesheet" media="all"&gt;
        &lt;link href="css/respond.css" rel="stylesheet" media="all"&gt;

        &lt;script src="js/jquery.js"&gt;&lt;/script&gt;
        &lt;script src="js/modernizr.custom.14937.js"&gt;&lt;/script&gt;

    &lt;/head&gt;
    &lt;!--[if IE 7 ]&gt;    &lt;body class="ie ie7"&gt; &lt;![endif]--&gt;
    &lt;!--[if IE 8 ]&gt;    &lt;body class="ie ie8"&gt; &lt;![endif]--&gt;
    &lt;!--[if IE 9 ]&gt;    &lt;body  class="ie ie9"&gt; &lt;![endif]--&gt;
    &lt;!--[if (gt IE 9)|!(IE)]&gt;&lt;!--&gt; &lt;body class="modern"&gt; &lt;!--&lt;![endif]--&gt;

        &lt;div id="Wrapper"&gt;
            &lt;header&gt;
                &lt;h1&gt;&lt;a href="index.html"&gt;designfrei.trilodge.de&lt;/a&gt;&lt;/h1&gt;
            &lt;/header&gt;

            &lt;article&gt;
                &lt;h1&gt;Designfrei&lt;/h1&gt;
                &lt;h2&gt;&lt;span&gt;&lt;i&gt;von&lt;/i&gt; Fabian Tempel&lt;/span&gt;&lt;/h2&gt;

                &lt;p&gt;Es wird Zeit, dass sich hier wieder etwas dreht. Lang genug ist es still gewesen um trilodge.de als Webseite. Wir nehmen es uns schon so lange vor etwas Neues zu machen, aber wie so oft fehlte es an Zeit oder sogar an Motivation. Leider. Das ändert sich jetzt!&lt;/p&gt;
            &lt;/article&gt;

            &lt;nav class="pager clearfix"&gt;
                &lt;h3 class="hidden"&gt;Artikelnavigation:&lt;/h3&gt;
                &lt;a href="#" class="prev"&gt;zum vorherigen Artikel &lt;b&gt;←&lt;/b&gt;&lt;/a&gt;
                &lt;a href="#" class="next"&gt;&lt;b&gt;→&lt;/b&gt; zum nächsten Artikel&lt;/a&gt;
            &lt;/nav&gt;
        &lt;/div&gt;  
        &lt;footer class="info"&gt;
            &lt;div class="content"&gt;                  
                &lt;p&gt;Made with &amp;hearts; &amp; kirby on a mac - &lt;a href="about.html"&gt;Impressum&lt;/a&gt; - © 2013 trilodge.de&lt;/p&gt;
            &lt;/div&gt;
        &lt;/footer&gt;
    &lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>Im ersten Schritt machen wir genau das, was unser Template erledigen soll. Wir fügen die dynamischen Elemente für unseren Artikel ein: Titel, Autor, Text und die Links zum nächsten bzw. vorherigen Artikel.</p>

<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="de" class="no-js"&gt;
    &lt;head&gt;
        &lt;meta charset="utf-8"&gt;
        &lt;title&gt;designfrei.trilodge.de&lt;/title&gt;
        &lt;meta name="viewport" content="width=device-width; maximum-scale=1.2; user-scalable=1; initial-scale=1; "&gt;
        &lt;meta name="keywords" content="..."&gt;      
        &lt;meta name="description" content="..."&gt;       
        &lt;meta name="robots" content="index,follow,noarchive"&gt;     

        &lt;link href="css/core.css" rel="stylesheet" media="all"&gt;
        &lt;link href="css/respond.css" rel="stylesheet" media="all"&gt;

        &lt;script src="js/jquery.js"&gt;&lt;/script&gt;
        &lt;script src="js/modernizr.custom.14937.js"&gt;&lt;/script&gt;
    &lt;/head&gt;
    &lt;!--[if IE 7 ]&gt;    &lt;body class="ie ie7"&gt; &lt;![endif]--&gt;
    &lt;!--[if IE 8 ]&gt;    &lt;body class="ie ie8"&gt; &lt;![endif]--&gt;
    &lt;!--[if IE 9 ]&gt;    &lt;body  class="ie ie9"&gt; &lt;![endif]--&gt;
    &lt;!--[if (gt IE 9)|!(IE)]&gt;&lt;!--&gt; &lt;body class="modern"&gt; &lt;!--&lt;![endif]--&gt;

       &lt;div id="Wrapper"&gt;
            &lt;header&gt;
                &lt;h1&gt;&lt;a href="index.html"&gt;designfrei.trilodge.de&lt;/a&gt;&lt;/h1&gt;
            &lt;/header&gt;

            &lt;article&gt;
                &lt;h1&gt;&lt;?=$page-&gt;title() ?&gt;&lt;/h1&gt;
                &lt;h2&gt;&lt;span&gt;&lt;i&gt;von&lt;/i&gt; &lt;?php echo html($page-&gt;author()) ?&gt;&lt;/span&gt;&lt;/h2&gt;

                &lt;?php echo kirbytext($page-&gt;text()) ?&gt;
            &lt;/article&gt;

            &lt;nav class="pager clearfix"&gt;
                &lt;h3 class="hidden"&gt;Artikelnavigation:&lt;/h3&gt;
                &lt;?php if ($page-&gt;hasPrevVisible()): ?&gt;
                    &lt;a href="&lt;?php echo $page-&gt;prevVisible()-&gt;url() ?&gt;" class="prev"&gt;zum vorherigen Artikel &lt;b&gt;←&lt;/b&gt;&lt;/a&gt;
                &lt;?php endif; ?&gt;
                &lt;?php if ($page-&gt;hasNextVisible()): ?&gt;
                    &lt;a href="&lt;?php echo $page-&gt;nextVisible()-&gt;url() ?&gt;" class="next"&gt;&lt;b&gt;→&lt;/b&gt; zum nächsten Artikel&lt;/a&gt;
                &lt;?php endif; ?&gt;
            &lt;/nav&gt;
        &lt;/div&gt;
        &lt;footer class="info"&gt;
            &lt;div class="content"&gt;                  
                &lt;p&gt;Made with &amp;hearts; &amp; kirby on a mac - &lt;a href="about.html"&gt;Impressum&lt;/a&gt; - © 2013 trilodge.de&lt;/p&gt;
            &lt;/div&gt;
        &lt;/footer&gt;
    &lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>Anstelle des Beispieltextes des Artikels sind nun PHP-Elemente getreten. Im PHP-Objekt <code>$page</code> befinden sich alle Daten der aktuellen Seite, in unserem Fall die Elemente des Artikels.</p>

<p>Aber reicht das schon? Was ist, wenn wir noch ein weiteres Template brauchen? Wären dann Header und Footer nicht doppelt zu pflegen? Also machen wir daraus noch schnell zwei Snippets und schon sieht unser Artikel so aus:</p>

<pre><code>&lt;?php snippet('header') ?&gt;
        &lt;article&gt;
                &lt;h1&gt;&lt;?=$page-&gt;title() ?&gt;&lt;/h1&gt;
                &lt;h2&gt;&lt;span&gt;&lt;i&gt;von&lt;/i&gt; &lt;?php echo html($page-&gt;author()) ?&gt;&lt;/span&gt;&lt;/h2&gt;

                        &lt;?php echo kirbytext($page-&gt;text()) ?&gt;
        &lt;/article&gt;

        &lt;nav class="pager clearfix"&gt;
                &lt;h3 class="hidden"&gt;Artikelnavigation:&lt;/h3&gt;
                &lt;?php if ($page-&gt;hasPrevVisible()): ?&gt;
                &lt;a href="&lt;?php echo $page-&gt;prevVisible()-&gt;url() ?&gt;" class="prev"&gt;zum vorherigen Artikel &lt;b&gt;←&lt;/b&gt;&lt;/a&gt;
                &lt;?php endif; ?&gt;
                &lt;?php if ($page-&gt;hasNextVisible()): ?&gt;
&lt;a href="&lt;?php echo $page-&gt;nextVisible()-&gt;url() ?&gt;" class="next"&gt;&lt;b&gt;→&lt;/b&gt; zum nächsten Artikel&lt;/a&gt;
                &lt;?php endif; ?&gt;
        &lt;/nav&gt;
&lt;?php snippet('footer') ?&gt;
</code></pre>

<p>Snippets lassen sich ganz einfach mittels der Funktion <code>snippet()</code> einbinden. </p>

<p>Das Header-Snippet:</p>

<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="de" class="no-js"&gt;
    &lt;head&gt;
        &lt;meta charset="utf-8"&gt;
        &lt;title&gt;&lt;?php echo $site-&gt;title(); ?&gt;&lt;/title&gt;
        &lt;meta name="viewport" content="width=device-width; maximum-scale=1.2; user-scalable=1; initial-scale=1; "&gt;
        &lt;meta name="keywords" content="&lt;?php echo $site-&gt;keywords(); ?&gt;"&gt;      
        &lt;meta name="description" content="&lt;?php echo $site-&gt;description(); ?&gt;"&gt;       
        &lt;meta name="robots" content="index,follow,noarchive"&gt;     

        &lt;?php echo css('assets/css/core.css') ?&gt;
                  &lt;?php echo css('assets/css/respond.css') ?&gt;


        &lt;?php echo js('assets/js/modernizr.custom.14937.js') ?&gt;
        &lt;?php echo js('assets/js/jquery.js') ?&gt;


    &lt;/head&gt;
    &lt;!--[if IE 7 ]&gt;    &lt;body class="ie ie7"&gt; &lt;![endif]--&gt;
    &lt;!--[if IE 8 ]&gt;    &lt;body class="ie ie8"&gt; &lt;![endif]--&gt;
    &lt;!--[if IE 9 ]&gt;    &lt;body  class="ie ie9"&gt; &lt;![endif]--&gt;
    &lt;!--[if (gt IE 9)|!(IE)]&gt;&lt;!--&gt; &lt;body class="modern"&gt; &lt;!--&lt;![endif]--&gt;

&lt;div id="Wrapper"&gt;
    &lt;header&gt;
        &lt;h1&gt;&lt;a href="&lt;?php echo url() ?&gt;"&gt;&lt;?php echo html($site-&gt;title()) ?&gt;&lt;/a&gt;&lt;/h1&gt;
    &lt;/header&gt;
</code></pre>

<p>Zum Schluss noch das Snippet für den Footer:</p>

<pre><code>        &lt;/div&gt;
        &lt;footer class="info"&gt;
            &lt;div class="content"&gt;            
                &lt;?php echo kirbytext($site-&gt;copyright()) ?&gt;
            &lt;/div&gt;
        &lt;/footer&gt;
        &lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>Kirby bringt zahlreiche Helper-Funktionen mit. Außerdem gibt es noch ein PHP-Objekt, das in allen Templates verfügbar ist: <code>$site</code>. Es enthält die globalen Informationen zur Seite wie Seitentitel oder Footer-Infos. Weitere Informationen zu den Objekten und Funktionen findet ihr in der <a href="http://getkirby.com/docs">Kirby-Dokumentation</a>.</p>

<p>Wie ihr seht, lassen sich mit Kirby sehr schnell eigene Templates bzw. auch ganze Themes erstellen. <br />
Fabian hatte zuerst die Prototypen in reinem HTML und mit Blindtext erstellt. Die Übernahme in die Templates und Snippets war dann erstaunlich einfach. Das liegt vor allem daran, dass Kirby auf eine unsinnige wie auch meist überflüssige Templatesprache verzichtet. </p>

<p>Eine gute Dokumentation oder <a href="http://getkirby.com/docs">schicke Cheat-Sheets</a> tun dann ein Übriges, um schnell sichtbare Ergebnisse zu erzielen.</p>
]]></description>
	</item>
	<item>
		<title><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
Touch by Touch]]></title>
		<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/responsive</link>
		<guid><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/responsive</guid>
		<pubDate>Thu, 07 Feb 2013 09:07:34 +0100</pubDate>
		<description><![CDATA[<p>Man lernt ja bekanntlich nie aus. Warum sollte es dann hier anders sein. Denn während ich das Markup und das CSS für diese Seite schrieb und mich aus <a href="http://www.maddesigns.de">Sven Wolfermanns</a> privatem Open Device Lab bediente, um das flexible Layout zu testen, sind so einige Dinge aufgefallen, die ich gerne teilen möchte, jenseits von 140 Zeichen drüben bei Twitter.</p>

<p><img src="https://designfrei.trilodge.de/content/01-blog/03-responsive/testing.jpg" title="testing" alt="ein Auswahl an mobilen Endger&auml;ten auf einem Schreibtisch" /></p>

<h3>Google Webfonts</h3>

<p>Eigentlich bin ich kein großer Freund der googleschen Schriftsammlung für Webautoren. Ein paar Schmuckstücke kann man dennoch finden, was die hier eingesetzten Fonts unter Beweis stellen wie ich finde. Nutzt man Fonts über <a href="http://www.google.com/fonts">google.com/fonts</a> werden diese normalerweise per <code>link rel="styleheet"</code> im Head der HTML-Seite eingebettet. Es gibt auch noch andere Möglichkeiten. Nun passiert es, dass Amazons Kindle Fire HD genau diese Methode scheinbar gar nicht toll findet, denn weder über <a href="http://www.typekit.com">Typekit</a> noch über Google eingebettete Fonts werden dargestellt. Liegen die Schriften auf dem eigenen Server und werden per <code>@font-face</code> direkt im CSS eingebunden, kann aber das Kindle Fire HD plötzlich Webfonts. Leider lässt sich das "Warum?" nicht klären, da man bei Amazon keine Infos darüber findet. In unserem Fall müssen die User mit einem Kindle halt den Text ohne schicke Fonts lesen.</p>

<h3>iOS und :hover</h3>

<p>Jeder sollte mittlerweile wissen, dass :hover im CSS für iOS-Geräte keine unbedingt so gute Idee sind, zumindest wenn man nicht direkt :focus auch mit definiert. Aber das gehört ja eh zum guten Ton. Der Sven hatte zu diesem Thema schon mal einen <a href="http://www.maddesigns.de/hover-test.html">Testcase</a> angefertigt, in dem er Android und iOS genauer unter die Lupe genommen hat. Es lässt sich festhalten, dass Android eigentlich auf jedem Element einen :hover darstellen kann. Über Sinn oder Unsinn lässt sich streiten. Jedenfalls es geht. Bei iOS sieht das etwas anders aus, hier reagieren nur Hyperlinks und Bilder auf Veränderungen mittels :hover. Noch spannender wird es, wenn man <abbr title="Windows Phone 8">WP8</abbr> auch noch betrachtet. Hier wird ein :hover auf jedem Element ausgelöst, allerdings nur so lange wie sich der Finger wirklich über dem Element befindet. So passiert es schnell, dass man beim Scrollen "nette" Nebeneffekte erzielt. Bei unseren Avatar-Bildern im Footer kann man das sehr gut testen, wenn man will. Hier wird nur per :hover ein <code>transform: scale &amp; rotate</code> zusammen mit <code>transition</code> ausgeführt. Würde man diese Anweisungen auf ein <code>div</code> legen, interpretiert Android das wie gewünscht, bei iOS passiert nichts.</p>

<h3>Testen, testen, testen</h3>

<p>Es hat Spass gemacht den Kollegen und Sven die Gadgets mal für einen Augenblick wegzunehmen und das Design direkt auf den Devices zu testen und zu sehen wie unterschiedlich die Darstellungen tatsächlich sind. Was lernen wir daraus? Emulatoren hin oder her, um sicher gehen zu können, ob ein Layout für die einzelnen Geräte funktioniert, sollte man stets versuchen die für das Projekt relevanten Gadgets als Testgeräte in greifbarer Nähe zu haben.</p>
]]></description>
	</item>
	<item>
		<title><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
Kirby installieren - wie gehts?]]></title>
		<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/kirbyinstall</link>
		<guid><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/kirbyinstall</guid>
		<pubDate>Thu, 07 Feb 2013 09:07:34 +0100</pubDate>
		<description><![CDATA[<p>tl;dr: 1. Hochladen, 2. Los gehts!</p>

<p>Ganz ehrlich, bei <a href="http://getkirby.com">Kirby</a> kann ich nicht wirklich von einer Installation sprechen. Es ist ein dateibasiertes CMS, kommt also ohne Datenbank aus. Eigentlich schon totgesagt überzeugen solche Systeme mit ihrer Einfachheit. Und Kirby macht das mit Bravour. Wenn wir den Installationsprozess von <a href="http://wordpress.org">Wordpress</a>, der wirklich sehr simpel ist, als Maßstab nehmen dann schlägt Kirby das nochmal um Welten. Auf den Server kopieren und los gehts. Schreibrechte möchte der Cache-Ordner noch. Und okay, es gibt auch noch eine Konfigurationsdatei. Aber auch die ist recht übersichtlich und aufs Wesentliche reduziert.</p>

<p><img src="https://designfrei.trilodge.de/content/01-blog/02-kirbyinstall/kirby.jpg" title="kirby" alt="Kirbys Dateistruktur" /></p>

<p>Das Ganze kommt mit einem Nachteil, natürlich. Kirby verfügt nicht über ein schickes Dashboard samt WYSIWYG-Editor wie z.B. Wordpress. Aber Hand aufs Herz braucht man das wirklich immer? <br />
Aber wie wird in Kirby dann Content geschrieben? Im Markdown-Format. Ganz easy.</p>

<p>Während unserer "Erprobungsphase" ist mir noch ein Vorteil aufgefallenen der, je länger ich darüber nach denke, immer unschlagbarer wird. Stellen wir uns folgendes vor: unser Code steht unter Versionskontrolle (z.B. Git) und wir deployen mittels CI-Lösung (wie Jenkins). Problematisch ist in solchen Umgebungen immer das Datenbank-Deployment. Meistens wird dann eine Zwischenlösung wie liquibase eingesetzt. Das ist aber keine perfekte Lösung. Gut das Kirby ohne Datenbank auskommt. Also das Problem besteht schon mal nicht. Aber was noch viel besser ist, wir können so auch unseren kompletten Content unter Versionskontrolle stellen und haben damit auch gleich ein automatisches Backup. So kann auch schick am Content gearbeitet werden und der Content auch in Entwicklungs- und Testumgebung geprüft werden.</p>

<p>Kirby ist also nicht nur leichter zu installieren, es ist auch viel leichter zu betreiben. Na wenn das nichts ist!</p>
]]></description>
	</item>
	<item>
		<title><![CDATA[<br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
Designfrei]]></title>
		<link><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/designfrei</link>
		<guid><br />
<b>Deprecated</b>:  preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in <b>/usr/www/users/trilod/subdomains/designfrei/kirby/lib/kirby.php</b> on line <b>2597</b><br />
https://designfrei.trilodge.de/blog/designfrei</guid>
		<pubDate>Thu, 07 Feb 2013 09:07:33 +0100</pubDate>
		<description><![CDATA[<p><img src="https://designfrei.trilodge.de/content/01-blog/01-designfrei/headimage.jpg" title="Los!" alt="Bleistiftzeichnung auf kariertem Papier - Designfrei 2013 Let's Go" /></p>

<p>Es wird Zeit, dass sich hier wieder etwas dreht. Lang genug ist es still gewesen um trilodge.de als Webseite. Wir nehmen es uns schon so lange vor etwas Neues zu machen, aber wie so oft fehlte es an Zeit oder sogar an Motivation. Leider. Das ändert sich jetzt!</p>

<h3>Neustart unter anderen Vorzeichen</h3>

<p>Martin und ich haben uns die letzten Jahre immer gefragt, welches wohl das beste Tool ist, um wieder Artikel schreiben zu können oder einfach auch mal ein Foto hochzuladen oder einen Kommentar zu verlinken. Die Auswahl ist mittlerweile riesig. Dazu schreibe ich demnächst mal etwas ausführlicher, versprochen.   </p>

<p>Letztendlich haben wir uns nach einer kleinen Testphase für <a href="http://www.getkirby.com">getkirby.com</a> von <a href="http://bastianallgeier.com">Bastian Allgeier</a> entschieden. Klein, flexibel &amp;  schnell und damit genau das, was wir brauchen. </p>

<p><del>Wir starten auch erstmal mit einem freien Theme namens "<a href="http://slacky.geek-rocket.de">Slacky</a>" für kirby von <a href="http://www.geek-rocket.de">Tim Hartmann</a>. Aus gutem Grund, denn wir wollen die Ideen und Inhalte, die schon lange rumliegen endlich lesbar machen. Am "Design" ist es die letzte Zeit immer gescheitert, daher der logische Schritt zum out-of-the-box Layout.</del> <ins>Der ursprüngliche Plan das tolle Theme zu benutzen ist dann doch noch in Planung. Stattdessen erstrahlt unser frisches Journal jetzt in einem eigenen Design inklusive kleinerer Anpassungen für verschiedene Bildschirmgrößen. Das ganze jetzt <i>responsive design</i> zu nennen ginge dennoch etwas zu weit. Wir werden, sofern es die liebe Zeit zulässt, hier und da noch ein paar Veränderungen und Verbesserungen vornehmen. Aber für den Start sind wir sehr zufrieden damit.</ins></p>

<h3>designfrei.trilodge.de</h3>

<p>Um was soll es hier eigentlich gehen? Gute Frage! Auch das war lang genug Streitthema und Blockade gleichermaßen. <br />
Früher war <a href="http://www.trilodge.de">trilodge.de</a> (wir hatten da mal einen Wordpress-Blog in grauer Vorzeit) ein Sammelpunkt für Artikel zum Thema Webentwicklung und Dinge aus unserem alltäglichen Geek-Leben. Traditionen wollen gepflegt werden, deshalb bleiben wir in etwa dabei.</p>

<p>Da ich mir vor kurzem eine neue Spiegelreflexkamera leistete, werde ich sicherlich auch mal darüber schreiben oder auch nur Fotos hochladen. Letztendlich wollen wir das Thema gar nicht weiter eingrenzen. Wer Lust hat die Beiträge zu lesen, der sei herzlich eingeladen dazu. Wer keine Lust hat, liest halt anderswo. Für Diskussionen gibt es Twitter. Social-Dingenskirchen-Buttons werden wir hier im Leben nicht einbauen.</p>

<p><strong>designfrei.trilodge.de startet hiermit das Experiment Neuanfang 2013!</strong> </p>

<p>Martin und ich freuen uns drauf.</p>
]]></description>
	</item>
</channel>
</rss>