<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7274575752918075592</id><updated>2012-03-13T13:46:43.424+01:00</updated><category term='Ubuntu 11.10'/><category term='Mathematik'/><category term='System'/><category term='Betriebssystem'/><category term='Krimi'/><category term='ehrlose Berufe'/><category term='Newsletter'/><category term='Java'/><category term='OO'/><category term='Test'/><category term='Templates'/><category term='PHP'/><category term='Canvas'/><category term='Flash'/><category term='Graphics'/><category term='Mittelalter'/><category term='Menü'/><category term='Marketing'/><category term='IE'/><category term='NP-hart'/><category term='Ubuntu'/><category term='Informatiker'/><category term='PHP5'/><category term='Video'/><category term='HTML5'/><title type='text'>Technischer Fortschritt</title><subtitle type='html'>Neues aus der Entwicklung des Internet</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-6488886942419484477</id><published>2012-03-13T13:46:00.000+01:00</published><updated>2012-03-13T13:46:43.434+01:00</updated><title type='text'>Über Open Source Web-Analyse</title><content type='html'>Lange Zeit habe ich mich dagegen gesträubt, die Besucher meiner Website durchzuanalysieren und schon gar nicht wollte ich deren Daten an eine der globalen Datensammelstellen weitergeben.&lt;br /&gt;&lt;br /&gt;Doch es gibt ja inzwischen gute Alternativen zu den allbekannten zentralen Webanalyse-Tools, die zum Beispiel auf &lt;a href="http://www.gutestun.org/google/17-google-analytics-alternativen-7/"&gt;http://www.gutestun.org/google/17-google-analytics-alternativen-7/&lt;/a&gt; gut zusammengefasst werden.&lt;br /&gt;&lt;br /&gt;Letztendlich überzeugt hat mich dann &lt;a href="http://de.piwik.org/" target="_blank"&gt;Piwik&lt;/a&gt;: In tatsächlich nur 5 Minuten installiert bietet es in übersichtlicher Form alle Analysemöglichkeiten, die ich mir (als zugegebener Nicht-Profi im Marketing) wünschen kann. Das Ganze als Open Source und ohne dass die Daten meiner Besucher den Server verlassen müssen.&lt;br /&gt;&lt;br /&gt;Dafür Daumen hoch!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-6488886942419484477?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/6488886942419484477/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/03/uber-open-source-web-analyse.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/6488886942419484477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/6488886942419484477'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/03/uber-open-source-web-analyse.html' title='Über Open Source Web-Analyse'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-395653723740860986</id><published>2012-03-06T17:37:00.002+01:00</published><updated>2012-03-06T20:29:18.629+01:00</updated><title type='text'>Über Kamera-ISO-Werte bei Samsung Android Smartphones</title><content type='html'>Heute schrieb ich an einer Kamera-App für mein Galaxy S2 Smartphone. Dabei habe ich relativ schnell festgestellt, dass das „offizielle“ Android SDK keine Schnittstelle zum Ändern der ISO-Einstellung der Kamera anbietet. Die mitgelieferte Samsung Kamera-App bietet diese Einstellung aber an.&lt;br /&gt;&lt;br /&gt;Es gibt noch ein paar weitere Einstellungen in der Samsung-App, die über die offizielle Android-API nicht abgebildet werden. &lt;br /&gt;&lt;br /&gt;Also habe ich mich gefragt: Wie komme ich auch in eigenen Apps an diese „versteckten“ Parameter? Das Internet konnte mir diesmal nicht helfen: Es gibt zwar viele mit dem gleichen Problem, aber niemand scheint eine Lösung zu haben.&lt;br /&gt;&lt;br /&gt;Also mache ich mir einfach mal das Reflection-Interface von Java zu Nutze:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;camera = Camera.open();&lt;br /&gt;Camera.Parameters p = camera.getParameters();&lt;br /&gt;&lt;br /&gt;Method[] mm = p.getClass().getMethods();&lt;br /&gt;for(Method m : mm) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String ps = "";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(Class c: m.getParameterTypes()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ps += "[" + c.getName() + "] ";&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; String r = m.getReturnType().getName(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; debug(m.getName() +": "+ ps + "-&amp;gt;" + r, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Und siehe da: Die Camera.Parameters-Klasse im Galaxy S2 offenbart alle möglichen öffentlichen Methoden: setISOValue, setMemColorEnhance, setSaturation, setContrast, setContinousAf u.v.m. zusammen mit ihren entsprechenden Gettern.&lt;br /&gt;&lt;br /&gt;Getestet habe ich bislang setISOValue: Tatsächlich bringt setISOValue("100") , setISOValue("200"), setISOValue("400"), setISOValue("800") genau den Effekt, den man aus der Systemapp kennt.&lt;br /&gt;&lt;br /&gt;Ich teste weiter…&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-395653723740860986?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/395653723740860986/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/03/uber-iso-werte-bei-samsung-android.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/395653723740860986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/395653723740860986'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/03/uber-iso-werte-bei-samsung-android.html' title='Über Kamera-ISO-Werte bei Samsung Android Smartphones'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-2017803201373588668</id><published>2012-01-31T17:34:00.000+01:00</published><updated>2012-02-01T10:51:30.136+01:00</updated><title type='text'>Über Symfony 2, Twig, Inheritance und Widgets</title><content type='html'>Ich war noch nie ein besonders großer von von Template-Engines (siehe &lt;a href="http://technischer-fortschritt.blogspot.com/2012/01/uber-php-template-engines.html"&gt;http://technischer-fortschritt.blogspot.com/2012/01/uber-php-template-engines.html&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Umso mehr habe ich mich darüber gefreut, dass die Engine „Twig“, die bei Symfony 2 mitgeliefert wird, einen sehr ausgereiften Eindruck macht und mit der &lt;a href="http://twig.sensiolabs.org/doc/templates.html#template-inheritance" target="_blank"&gt;Template Inhertitance&lt;/a&gt; auch ein sehr wirksames Instrument zur Strukturierung von Templates mitliefert.&lt;br /&gt;&lt;br /&gt;Typischerweise benutzt man Template Inhertitance, um ein Grundgerüst für eine Seite oder den Teil einer Seite zu definieren, um dieses Grundgerüst in Kind-Templates dann zu erweitern. Dabei geht die Kontrolle über den Seitenaufbau vom Kind-Template aus: Es entscheidet eigenständig, welches Basislayout es erweitern möchte (siehe auch &lt;a href="http://twig.sensiolabs.org/doc/tags/extends.html#dynamic-inheritance" target="_blank"&gt;Dynamic Inheritance&lt;/a&gt;)und überschreibt gegebenenfalls die Angaben des Eltern-Template.&lt;br /&gt;&lt;br /&gt;Was aber ist mit dem „umgekehrten“ Fall, den man am ehesten mit einem &lt;a href="http://de.wikipedia.org/wiki/Kompositum_%28Entwurfsmuster%29" target="_blank"&gt;Kompositum&lt;/a&gt; in der OOP vergleichen kann?&lt;br /&gt;&lt;br /&gt;Ein Beispiel: Ich möchte in meinem Projekt Videos einbinden und habe mir dazu ein Template geschaffen, das einen Videoplayer mit allem Schnick und Schnack definiert. Ich nenne das ein &lt;b&gt;Widget&lt;/b&gt;: Ein kleines Snippet auf der Seite, das aber neben dem reinen HTML-Anteil noch spezifischen Javascript- und CSS-Code mitbringt. Wenn ich mich recht erinnere, bezeichnete Symfony 1 das ganz ähnlich.&lt;br /&gt;&lt;br /&gt;Ein Twig-Template dazu könnte etwa so aussehen:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;{% block javascripts %}&lt;/pre&gt;&lt;pre&gt;    &amp;lt;script src="video.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;{% endblock %}&lt;br /&gt;{% block stylesheets %}&lt;/pre&gt;&lt;pre&gt;    &amp;lt;link href="video-js.css" rel="stylesheet" type="text/css"&amp;gt;&amp;lt;/link&amp;gt;&lt;br /&gt;{% endblock %}&lt;br /&gt;&lt;br /&gt;{% block body %}&lt;br /&gt;    &amp;lt;video class="video-js vjs-default-skin" controls="controls" height="264"&lt;/pre&gt;&lt;pre&gt;    id="example_video_1" preload="none" width="640"&amp;gt; poster="test.png" data-setup="{}"&amp;gt;&lt;/pre&gt;&lt;pre&gt;        &amp;lt;source src="test.mp4" type="video/mp4"&amp;gt;&amp;lt;/source&amp;gt;&lt;/pre&gt;&lt;pre&gt;    &amp;lt;/video&amp;gt;&lt;/pre&gt;&lt;pre&gt;{% endblock %}&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;&lt;br /&gt;Jeder mit ein paar Grundkenntnissen wird jetzt sagen: Kein Problem, das Template kannst Du doch einfach mit „include“ einbinden. Doch das geht leider fehl: Sowohl der Javascript- als auch der CSS-Block werden so nicht interpretiert, sondern einfach ignoriert. Im Ergebnis stehen das &lt;b&gt;&amp;lt;script&amp;gt;&lt;/b&gt;- und das &lt;b&gt;&amp;lt;link&amp;gt;&lt;/b&gt;-Tag plötzlich mitten in der Seite, anstatt an den dafür vorgesehenen Stellen im Header.&lt;br /&gt;&lt;br /&gt;Klar könnte ich jetzt anfangen und mehrere Templates für meinen Videoplayer definieren: Eines für die Header-Includes (JS/CSS) und eines für den eigentlichen HTML-Part. Schön ist anders.&lt;br /&gt;&lt;br /&gt;Übrigens macht der Einsatz von &lt;a href="https://github.com/kriswallsmith/assetic" target="_blank"&gt;Assetic&lt;/a&gt; das Ganze auch nicht besser, sondern sorgt an dieser Stelle höchstens für unübersichtlicheren Code.&lt;br /&gt;&lt;br /&gt;Bin ich blind? Was habe ich übersehen? Oder ist das Kompositum-Muster einfach in Twig nicht vorgesehen? Dabei kommt es mir so wichtig vor. Ich stehe ratlos vor diesem Phänomen und bin für jede Hilfe dankbar...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-2017803201373588668?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/2017803201373588668/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-symfony-2-twig-inheritance-und.html#comment-form' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/2017803201373588668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/2017803201373588668'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-symfony-2-twig-inheritance-und.html' title='Über Symfony 2, Twig, Inheritance und Widgets'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-3373526519624749474</id><published>2012-01-19T13:19:00.002+01:00</published><updated>2012-01-22T21:57:18.726+01:00</updated><title type='text'>Über Typografie in Social Media Networks</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FH-3qI39Q4s/TxgLMKjcXjI/AAAAAAAAAWk/JORoAfbxzWU/s1600/Bastian+Frank+%2528bastian_frank%2529+auf+Twitter+2012-01-19+13-22-09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-FH-3qI39Q4s/TxgLMKjcXjI/AAAAAAAAAWk/JORoAfbxzWU/s1600/Bastian+Frank+%2528bastian_frank%2529+auf+Twitter+2012-01-19+13-22-09.png" /&gt;&lt;/a&gt;&lt;/div&gt;Im Zeitalter digitaler Medien wird Schrift als Kommunikationsmedium immer wichtiger. Doch der digitale Prozess bei Twitter &amp;amp; Co. lässt Lektoren und Schriftsetzer außen vor: Was getippt ist, wird auch sofort veröffentlicht.&lt;br /&gt;&lt;br /&gt;Das ist schade, denn dabei geht die Lesbarkeit des Textes oft verloren.&lt;br /&gt;&lt;br /&gt;Ich bin selbst kein Fachmann in diesem Gebiet, sondern Techniker. Doch es gibt ein paar einfache Regeln, die jeder befolgen kann, um Texte im Netz lesbarer zu gestalten.&lt;br /&gt;&lt;br /&gt;Lasst uns das Netz ein wenig lesefreundlicher machen!&lt;br /&gt;&lt;h4&gt;Was jeder machen kann…&lt;/h4&gt;Nicht alles, was typografisch denkbar wäre, ist in Social Media Networks machbar. So sollte man von &lt;a href="http://de.wikipedia.org/wiki/Ligatur_%28Typografie%29" target="_blank"&gt;Ligaturen&lt;/a&gt; die Finger lassen und auch beim &lt;a href="http://de.wikipedia.org/wiki/Unterschneidung_%28Typografie%29" target="_blank"&gt;Kerning&lt;/a&gt; und dem &lt;a href="http://de.wikipedia.org/wiki/Zeilenabstand" target="_blank"&gt;Zeilenabstand&lt;/a&gt; muss man sich auf die Vorgaben verlassen.&lt;br /&gt;&lt;br /&gt;Dennoch habe ich auf &lt;a href="http://typefacts.com/"&gt;http://typefacts.com/&lt;/a&gt; einige Regeln aufgespürt, die sich ohne weiteres auch in einem Tweet umsetzen lassen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Gedanken- und Bindestriche&lt;/b&gt; unterscheiden: „-“ ist nunmal kürzer als „–“ und deshalb zum Binden von Worten und nicht, um Gedanken voneinander zu trennen.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Auslassungen&lt;/b&gt; als echtes „…“-Zeichen und nicht als drei Punkte „...“ schreiben.&lt;/li&gt;&lt;li&gt;&lt;b&gt;„Echte“ &lt;/b&gt;&lt;b&gt;Anführungszeichen&lt;/b&gt; statt der "hässlichen" Doppelstriche benutzen. Auch die »französischen« Anführungszeichen sind hübsch, aber man sollte sich auf eine Variante einigen.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Voraussetzungen&lt;/h4&gt;Damit die typografischen Sonderzeichen funktionieren, muss der gesamte Text-Workflow in &lt;a href="http://de.wikipedia.org/wiki/UTF-8" target="_blank"&gt;UTF-8 &lt;/a&gt;stattfinden. Das ist normalerweise automatisch der Fall, wenn man die Websites der großen Social Media Networks benutzt. &lt;br /&gt;&lt;h4&gt;Mehr Informationen&lt;/h4&gt;Wahrscheinlich gibt es nun eine Heerschar von typografisch Ausgebildeten, die angesichts meiner einfachen Ratschläge die Hände über dem Kopf zusammenschlagen – aber hey, ich bin schließlich nur Informatiker.&lt;br /&gt;&lt;br /&gt;Wer zuverlässigere Informationen sucht, ist bei  &lt;a href="http://typefacts.com/"&gt;http://typefacts.com/&lt;/a&gt; gut aufgehoben. Auch Tastaturkürzel für Mac und Windows sind dort zu finden, um die Zeichen schnell eingeben zu können.&lt;br /&gt;&lt;br /&gt;Übrigens: Für Ubuntu-User sind die Sonderzeichen besonders einfach zu erreichen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;» – AltGr + y &lt;/li&gt;&lt;li&gt;« – AltGr + x&lt;/li&gt;&lt;li&gt;„ – AltGr + v&lt;/li&gt;&lt;li&gt;“ – AltGr + b&lt;/li&gt;&lt;li&gt;– – AltGr + -&lt;/li&gt;&lt;li&gt;… – AltGr + .&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-3373526519624749474?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/3373526519624749474/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-typografie-in-social-media.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/3373526519624749474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/3373526519624749474'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-typografie-in-social-media.html' title='Über Typografie in Social Media Networks'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-FH-3qI39Q4s/TxgLMKjcXjI/AAAAAAAAAWk/JORoAfbxzWU/s72-c/Bastian+Frank+%2528bastian_frank%2529+auf+Twitter+2012-01-19+13-22-09.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-6151989574876145408</id><published>2012-01-14T19:54:00.002+01:00</published><updated>2012-01-14T19:54:41.848+01:00</updated><title type='text'>Über Social Media Cookies</title><content type='html'>Es gibt Stimmen, die behaupten, die Cookies von Social Media Netzwerken sind &lt;a href="http://www.heise.de/newsticker/meldung/Facebook-vs-Datenschuetzer-Streit-um-Like-Button-geht-weiter-1338660.html" target="_blank"&gt;datenschutzrechtlich bedenklich&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ganz und gar unbedenklich in dieser Beziehung sind diese Social Media Cookies:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-USkqC_Mnvmk/TxHO6EDtKMI/AAAAAAAAAWc/oyLkbOXnd6E/s1600/fb.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="244" src="http://3.bp.blogspot.com/-USkqC_Mnvmk/TxHO6EDtKMI/AAAAAAAAAWc/oyLkbOXnd6E/s320/fb.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Alles, was man dazu benötigt, ist ein wenig &lt;a href="http://essknete.de/" target="_blank"&gt;Essknete&lt;/a&gt;, einen Backofen und natürlich die entsprechende Geduld beim Modellieren.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-6151989574876145408?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/6151989574876145408/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-social-media-cookies.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/6151989574876145408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/6151989574876145408'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-social-media-cookies.html' title='Über Social Media Cookies'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-USkqC_Mnvmk/TxHO6EDtKMI/AAAAAAAAAWc/oyLkbOXnd6E/s72-c/fb.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-8955362952082885156</id><published>2012-01-14T13:40:00.003+01:00</published><updated>2012-01-14T13:40:47.917+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='Marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='Newsletter'/><title type='text'>Über Werbevideos in Mails</title><content type='html'>Über den &lt;a href="http://paper.li/zoom4media" target="_blank"&gt;zoom4media Daily&lt;/a&gt; bin ich heute auf einen zwar alten, aber doch ganz interessanten Artikel gestoßen: &lt;a href="http://smedio.com/2010/06/04/will-html5-boost-video-email-marketing/"&gt;http://smedio.com/2010/06/04/will-html5-boost-video-email-marketing/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Nun ist es für mich wohl bekannt, dass neue Technologien von Marketing-Fachleuten schnell aufgegriffen und weitergesponnen werden, das ist schließlich ihr Job. Doch als Informatiker darf ich mich ohne jede Scham mit den technischen Aspekten neuer Ideen auseinandersetzen, und manchmal kümmere ich mich dabei auch um die Bedürfnisse der Nutzer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Werbemails an sich&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An sich ist Email-Marketing eine feine Sache und jeder hat sich sicherlich daran gewöhnt, mittels diverser Filter und automatisierter Löschoperationen die eingehenden Werbemails auf ein Minimum zu reduzieren.&lt;br /&gt;&lt;br /&gt;Standardmäßig&lt;a href="http://kb.mozillazine.org/Privacy_basics_%28Thunderbird%29" target="_blank"&gt; blockieren Programme wie Thunderbird auch die Darstellung externer Inhalte in Mails&lt;/a&gt;, so dass jeder noch so ausgefeilt gestaltete Newsletter vermutlich beim unbedarften Nutzer mehr einen bleibenden Eindruck wegen der vielen Lücken hinterlässt als wegen seines dargestellten Inhalts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Jetzt auch noch Videos?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Da frage ich mich, wem es tatsächlich nutzt, jetzt auch noch Videos in Mails zu versenden. Ganz abgesehen davon, dass das Medium Mail als schnelle, unkomplizierte Möglichkeit des Nachrichtenaustausches damit endgültig ad absurdum geführt wird, kann ich persönlich mir kein Video vorstellen, das ich beim Öffnen einer Mail sehen möchte.&lt;br /&gt;&lt;br /&gt;Viel lieber wäre es mir, wenn ich Werbemails bekäme, die mich auch inhaltlich interessieren, egal ob sie nun Videos enthalten oder nicht.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-8955362952082885156?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/8955362952082885156/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-werbevideos-in-mails.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/8955362952082885156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/8955362952082885156'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-werbevideos-in-mails.html' title='Über Werbevideos in Mails'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-7168476000329566624</id><published>2012-01-14T11:53:00.000+01:00</published><updated>2012-01-14T22:24:04.904+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mittelalter'/><category scheme='http://www.blogger.com/atom/ns#' term='NP-hart'/><category scheme='http://www.blogger.com/atom/ns#' term='Mathematik'/><category scheme='http://www.blogger.com/atom/ns#' term='Krimi'/><category scheme='http://www.blogger.com/atom/ns#' term='Informatiker'/><category scheme='http://www.blogger.com/atom/ns#' term='ehrlose Berufe'/><title type='text'>Über Informatiker</title><content type='html'>Die Gerber des Mittelalters und die Informatiker der Neuzeit verbindet eine eigentümliche Gemeinsamkeit: Einerseits sind ihre Produkte hoch angesehen und nehmen einen wichtigen Stellenwert in der Gesellschaft ein. Doch der eigentliche Produktionsprozess weckt regelmäßig Unverständnis bis hin zur Ablehnung.&lt;br /&gt;&lt;br /&gt;Müsste man die Informatik angesichts dieser Eigenschaft also den „&lt;a href="http://de.wikipedia.org/wiki/Unehrlicher_Beruf" target="_blank"&gt;ehrlosen Berufen&lt;/a&gt;“ zuordnen?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Über den Kundenkontakt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es heißt, man könne Informatiker nicht auf Kunden loslassen. Zu verkopft, zu theoretisierend, zu unverständlich sei doch die Sprache des Informatikers, als dass man einem Kunden zumuten könne, mit ihm ein Gespräch zu führen.&lt;br /&gt;&lt;br /&gt;Das ist richtig. Warum auch sollte ich mich mit einem Kunden über das Laufzeitverhalten des von ihm gewünschten Algorithmus unterhalten? Spätestens bei einem Satz wie „das Problem, das Sie gelöst haben wollen, ist &lt;a href="http://de.wikipedia.org/wiki/NP-Schwere" target="_blank"&gt;NP-hart&lt;/a&gt; und lässt sich deshalb deterministisch nicht in polynomieller Zeit lösen“ steigt selbst der gutmütigste Gesprächspartner aus.&lt;br /&gt;&lt;br /&gt;So bleibt oft nur die Flucht in Vergleiche und Metaphern, immer in der Hoffnung, der Kunde möge daraus die richtigen Schlüsse ziehen. An dieser Stelle wollte ich eigentlich jedem Informatiker &lt;a href="http://de.wikipedia.org/wiki/Thomas_Mann" target="_blank"&gt;Thomas Mann&lt;/a&gt;, den Meister der Symbolik und Metaphern, dringend ans Herz legen, besinne mich aber ob der Komplexität seiner Schachtelsätze eines Besseren und empfehle statt dessen, sich auf einfache, leicht verständliche Bilder aus der Lebenswirklichkeit der Gesellschaft zurückzuziehen, wie etwa meine immer gern hergenommenen Vergleiche aus dem Automobilhandwerk.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Über die Arbeitsmoral&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es heißt, Informatiker fangen frühestens gegen Mittag zu arbeiten an. Diese Aussage wird immer begleitet von einem Gesichtsausdruck zwischen Belustigung und Verärgerung, der sich je nach mimischem Talent des Sprechers zu grotesken Fratzen steigert.&lt;br /&gt;&lt;br /&gt;Belustigung, weil man hier doch die wahre Schwachstelle aller Informatiker meint gefunden zu haben: Faul und bräsig verfolgen sie eine Komm-ich-heute-nicht-komme-ich-morgen-Taktik und verzögern so durch diese Unart nicht nur jedes Projekt, sondern stellen damit doch ihre Unfähigkeit, sich in gesellschaftliche Raster einzupassen, aufs Beste zur Schau.&lt;br /&gt;&lt;br /&gt;Verärgerung, weil doch eigentlich jeder gerne so frei wäre, sich seine Arbeitszeit völlig nach eigenem &lt;i&gt;Gusto&lt;/i&gt; einzuteilen, und wer weiß wann der durchschnittliche Steuerbeamte morgens anfangen würde, hätte er nur die Möglichkeit selbst zu wählen.&lt;br /&gt;&lt;br /&gt;Dabei fühle ich mich völlig unschuldig. Mein Arbeitstag beginnt gewöhnlich zwischen 8 und 9 Uhr, und oft sind diese morgendlichen Stunden die produktivsten des ganzen Tages. Dass ich mir dabei den Luxus leiste, auch mal im Morgenrock bei mehreren Tassen Kaffee die ersten Stunden im Homeoffice zu bestreiten, tut dieser Produktivität keinen Abbruch – ganz im Gegenteil – und möge an anderer Stelle besprochen werden.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Über Maschinen&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;„Komm doch mal vorbei, irgendetwas stimmt mit meinem Computer nicht.“ – Welcher Informatiker hat diesen Satz nicht schon 'zig mal, selbst von besten Freunden, gehört?&lt;br /&gt;&lt;br /&gt;Ganz abgesehen davon, dass man ja allein aus Gründen der Höflichkeit auch befreundete Ärzte nicht darum bittet, sich bei einem Glas Wein schnell mal das Furunkel an intimer Stelle anzusehen, sitzen die Bittsteller hier doch einem allgemein verbreiteten Irrtum auf.&lt;br /&gt;&lt;br /&gt;Um es mit den Worten des berühmten Informatikers &lt;a href="http://de.wikipedia.org/wiki/Edsger_Wybe_Dijkstra" target="_blank"&gt;Edsger W. Dijkstra&lt;/a&gt; zu sagen: „&lt;i&gt;Informatica gaat net zo min over computers, als astronomie over telescopen&lt;/i&gt;“ (In der Informatik geht es genauso wenig um Computer wie in der Astronomie um Teleskope). Will heißen: Belästige mich nicht mit Deinen völlig langweiligen und geistig ermüdenden Technik-Problemen!&lt;br /&gt;&lt;br /&gt;Sicher, das mag jetzt etwas überspitzt daherkommen, zumal man ob der Technikbegeistertheit zahlloser Programmierer schnell den Eindruck gewinnt, dass es eben &lt;i&gt;gerade&lt;/i&gt; um die Computer, Smartphones, und Tablets geht. Lassen Sie sich, geneigter Leser, gesagt sein: Ein echter Informatiker der alten Schule wird sich immer lieber mit der &lt;a href="http://de.wikipedia.org/wiki/OSI-Modell" target="_blank"&gt;Theorie des WLAN&lt;/a&gt; beschäftigen als mit dem Grund, weshalb es gerade jetzt keine Verbindung herstellt. Doch selbst Informatiker sind nicht ganz immun gegen die allgegenwärtigen Marketingbemühungen der großen Technikhersteller.&lt;br /&gt;&lt;br /&gt;Dabei kann kein noch so gut gestaltetes Smartphone jemals die Eleganz und Schönheit eines gut formulierten Algorithmus erreichen. Beispielhaft sei hier nur der &lt;a href="http://de.wikipedia.org/wiki/Dijkstra-Algorithmus" target="_blank"&gt;Dijkstra-Algorithmus&lt;/a&gt; genannt, mit dessen Hilfe Routenplaner Sie von München nach Berlin navigieren können. Dijkstra hat diesen Algorithmus übrigens bereits 1959 veröffentlicht, ganz sicher ohne die Zuhilfenahme eines navigierenden GPS-Smartphones.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Über den Geist&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nachdenken, ja denken insgesamt, ist, glaubt man der allgemeinen Berichterstattung, eine in der heutigen Zeit kaum noch praktizierte Tätigkeit.&lt;br /&gt;&lt;br /&gt;Sich mehrere Stunden mit nichts als sich selbst und seinen Gedanken in einen Sessel zur Lösung eines Problems zurückzuziehen, um beim Brüten über den logischen Rätseln auch mal in ein Nickerchen zu verfallen, ist eine Verhaltensweise, die man – wenn überhaupt – nur noch von altenglischen Krimihelden kennt. Allen voran &lt;a href="http://de.wikipedia.org/wiki/Hercule_Poirot" target="_blank"&gt;Hercule Poirot&lt;/a&gt;, der nie jemals zur Waffe, sondern immer nur zu seinen grauen Zellen gegriffen hat.&lt;br /&gt;&lt;br /&gt;„Ich arbeite ausschließlich mit dem Gehirn.“ ist deshalb ein Satz, den man nur noch selten hört. Warum eigentlich nicht? Es gibt doch nichts befriedigenderes, als Kraft eigener Gedanken ein Problem von allen Seiten so lange zu durchdenken, bis es sich löst wie Alexander der Große den gordischen Knoten.&lt;br /&gt;&lt;br /&gt;Da scheint es nicht verwunderlich, dass der Wirtschaft das Belohnen geistiger Leistung genauso wenig ins Konzept passt wie man aus einem &lt;a href="http://de.wikipedia.org/wiki/Quadratur_des_Kreises" target="_blank"&gt;Kreis ein Quadrat&lt;/a&gt; machen kann (worüber es sich übrigens nicht mehr nachzudenken lohnt, da dieses Problem bewiesenermaßen unlösbar ist).&lt;br /&gt;&lt;br /&gt;So stösst es im Allgemeinen auf Unverständnis, wenn Informatiker behaupten, nur etwa 20% der Zeit in einem Projekt mit der eigentlichen Programmierung zu verbringen und den Rest der Zeit mit Gesprächen – und eben Nachdenken. Dies ist sicherlich ein Wert, den man unbedarften und ökonomisch orientierten Kunden besser nicht so direkt mitteilt, da sonst schnell der Wunsch entstehen könnte, die Endrechnung auf ein Fünftel zu reduzieren.&lt;br /&gt;&lt;br /&gt;Wer übrigens ganz bewusst die Technik des Denkens und Nachdenkens wiederbeleben möchte, dem empfehle ich die &lt;a href="http://de.wikipedia.org/wiki/Millennium-Probleme" target="_blank"&gt;Millenium-Probleme&lt;/a&gt; der Mathematik, an denen sicher jeder Grübler lange Zeit seine Freude haben wird.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Über die Gesellschaft&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Und so bleibt dem Rest der Bevölkerung weiter nur die Verwunderung über diese absonderliche, vergeistigte und arbeitsscheue Gruppe von Menschen, deren Produkte dem allgemeinen Bedarf stets etwa 40 Jahre voraus sind und deren größte Zufriedenheit sich alleine durch die Beschäftigung mit den eigenen Gedanken einstellt.&lt;br /&gt;&lt;br /&gt;Bitte, seien Sie nachsichtig. Auch wenn Sie den Beruf des Informatikers genauso wenig verstehen und achten wie die Menschen im Mittelalter den des Gerbers, so ist das Arbeitsumfeld des Informatikers (von Krümeln in der Tastatur abgesehen) meist recht sauber und deshalb weit weniger menschenfeindlich als gemeinhin angenommen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-7168476000329566624?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/7168476000329566624/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-informatiker.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/7168476000329566624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/7168476000329566624'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-informatiker.html' title='Über Informatiker'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-7773075712073424698</id><published>2012-01-11T23:16:00.000+01:00</published><updated>2012-01-12T10:10:24.211+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Betriebssystem'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu 11.10'/><category scheme='http://www.blogger.com/atom/ns#' term='Menü'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='System'/><title type='text'>Über Ubuntu 11.10 und das System Menu</title><content type='html'>Wegen des Umstiegs auf die angeblich viel bessere Benutzeroberfläche „Unity“ musste Ubuntu 11.10 einiges an Kritik einstecken. Ein Wechsel zur klassischen Gnome-Ansicht ist nicht vorgesehen...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Zurück zum Bewährten&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wer sich trotzdem die Gnome-Shell mit der klassischen Ansicht installiert hat, bekommt die gewohnten „Anwendungen“- und „Orte“-Menüs zurück. Das „System“-Menü am oberen Bildrand wurde von den Gnome-Entwicklern aber ersatzlos gestrichen.&lt;br /&gt;&lt;br /&gt;Wer gar nicht ohne leben kann, der kann die Datei&lt;i&gt; ~/.config/menus/applications.menu&lt;/i&gt; von Hand anpassen. Meine Datei sieht jetzt so aus:&lt;br /&gt;&lt;br /&gt;&lt;div class="codeBlock"&gt;&amp;lt;!DOCTYPE Menu&lt;br /&gt;&amp;nbsp; PUBLIC '-//freedesktop//DTD Menu 1.0//EN'&lt;br /&gt;&amp;nbsp; 'http://standards.freedesktop.org/menu-spec/menu-1.0.dtd'&amp;gt;&lt;br /&gt;&amp;lt;Menu&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Name&amp;gt;Applications&amp;lt;/Name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MergeFile type="parent"&amp;gt;/etc/xdg/menus/applications.menu&amp;lt;/MergeFile&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Menu&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Name&amp;gt;alacarte-made&amp;lt;/Name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Directory&amp;gt;alacarte-made.directory&amp;lt;/Directory&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Menu&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DefaultLayout inline="false"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Menu&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Name&amp;gt;Settings&amp;lt;/Name&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;MergeFile type="path"&amp;gt;/etc/xdg/menus/settings.menu&amp;lt;/MergeFile&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Menu&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&amp;lt;/Menu&amp;gt;&lt;/div&gt;Die fetten Zeilen habe ich eingefügt. Damit bekommt man zwar sein gewohntes System-Menu nicht ganz zurück, aber immerhin innerhalb des „Anwendungen“-Menü einen neuen Punkt „Settings“, unter dem die gewohnten Einträge des System-Menüs zu finden sind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-7773075712073424698?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/7773075712073424698/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-ubuntu-1110-und-das-system-menu.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/7773075712073424698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/7773075712073424698'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-ubuntu-1110-und-das-system-menu.html' title='Über Ubuntu 11.10 und das System Menu'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-8651045416186808352</id><published>2012-01-11T15:50:00.000+01:00</published><updated>2012-01-12T10:22:45.270+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Test'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML5'/><category scheme='http://www.blogger.com/atom/ns#' term='Graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='Canvas'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Über das HTML5 Canvas Objekt</title><content type='html'>&lt;i&gt;Das Canvas-Objekt ist sicherlich eine der spannendsten Neuerungen des HTML5-Standards. Bislang wird es aber noch kaum eingesetzt.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Die Grundidee von HTML war und ist, dass sich beliebige Texte mit Hilfe einfach zu erlernender Markierungen quasi „von selbst“ layouten. Doch natürlich gibt es zahlreiche Anwendungen, bei denen man pixelgenaue Kontrolle über das Geschehen am Bildschirm braucht.&lt;br /&gt;&lt;br /&gt;Genau diese Lücke füllt das Canvas-Objekt, das zum HTML5-Standard gehört. Ähnlich wie bei Java-Graphics-Objekten lässt sich mit Canvas-Objekten ein Bereich der HTML-Seite mit sehr elementaren Grafikbefehlen selbst gestalten. Da es vom Internet Explorer (IE) bis einschließlich Version 8 nicht unterstützt wird, hat es bislang allerdings (leider) eher ein Nischendasein geführt. Mit der Einführung des IE 9 wird sich das ändern.&lt;br /&gt;&lt;br /&gt;Bis dahin haben interessierte Entwickler die Möglichkeit, dem IE über Umwege das Canvas-Objekt beizubringen:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://flashcanvas.net/" target="_blank"&gt;http://flashcanvas.net/&lt;/a&gt; - Mit dieser Javascript-Bibliothek lässt sich ein Canvas-Objekt mittels Flash auch im IE simulieren. Das funktioniert nicht für alle Anwendungsfälle, aber doch oft ausreichend für einfache Grafikanwendungen. &lt;/li&gt;&lt;/ul&gt;Außerdem sehr sinnvoll:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html" target="_blank"&gt;http://blog.nihilogic.dk/2009/02/html5-canvas-cheat-sheet.html&lt;/a&gt; - auf nur einem Blatt alle Informationen zur Schnittstelle des (doch recht komplexen) Canvas-Objekts.&lt;/li&gt;&lt;li&gt;&lt;a href="http://philip.html5.org/tests/canvas/suite/tests/" target="_blank"&gt;http://philip.html5.org/tests/canvas/suite/tests/&lt;/a&gt; - Damit kann man seinen eigenen Browser auf Kompatibilität mit dem Canvas-Objekt testen. &lt;/li&gt;&lt;/ul&gt;Persönlich nutze ich das Canvas-Objekt schon sehr lange und bin gespannt, wann es sich komplett gegen andere Technologien durchsetzen wird.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-8651045416186808352?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/8651045416186808352/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-die-moglichkeiten-des-html5-canvas.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/8651045416186808352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/8651045416186808352'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-die-moglichkeiten-des-html5-canvas.html' title='Über das HTML5 Canvas Objekt'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-7902948832595043143</id><published>2012-01-11T15:31:00.000+01:00</published><updated>2012-01-22T22:00:16.788+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Templates'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP5'/><title type='text'>Über PHP Template Engines</title><content type='html'>An sich klingt es nach einer feinen Sache: PHP Template Engines versprechen, Inhalte von der Technik zu trennen und damit die Entwicklung zu vereinfachen. Was ist da dran?&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Unübersichtlicher Markt&lt;/h4&gt;Template-Engines für PHP gibt es wie Sand am Meer. Allen voran das Urgestein „&lt;a href="http://www.smarty.net/" target="_blank"&gt;Smarty&lt;/a&gt;“, aber auch neuere Entwicklungen wie „Twig“, das bei &lt;a href="http://symfony.com/" target="_blank"&gt;Symfony 2&lt;/a&gt; gleich mitgeliefert wird, buhlen um die Gunst der Entwickler.&lt;br /&gt;&lt;br /&gt;Dabei wird leicht übersehen, dass PHP selbst schon als „Template-Engine“ angelegt ist: Die Zusammensetzung von statischem HTML-Code mit dynamischen Inhalten war von jeher Ziel bei der Entwicklung der Sprache, wie schon das ausgeschriebene Kürzel andeutet (PHP = „PHP: &lt;a href="http://de.wikipedia.org/wiki/Hypertext"&gt;Hypertext&lt;/a&gt; &lt;a href="http://de.wikipedia.org/wiki/Pr%C3%A4prozessor"&gt;Preprocessor&lt;/a&gt;“). Das macht zusätzliche Engines eigentlich überflüssig.&lt;br /&gt;&lt;br /&gt;Trotzdem werden Engines mit eigener Syntax immernoch wie &lt;i&gt;Sauer Bier&lt;/i&gt;™ angepriesen: &lt;a href="http://it-republik.de/php/news/Template-Engines-vs.-PHP-058161.html"&gt;http://it-republik.de/php/news/Template-Engines-vs.-PHP-058161.html &lt;/a&gt; &lt;br /&gt;&lt;h4&gt;Unübersichtlicher Code&lt;/h4&gt;Warum sich dann ausgerechnet in PHP so viele Engines entwickeln und halten konnten, ist nicht ganz einfach zu beantworten.&lt;br /&gt;&lt;br /&gt;Einerseits hielt man die volle Mächtigkeit von reinen PHP-Templates wohl für zu komplex und damit auch zu unsicher, als dass man einen Grafikdesigner oder Webseiten-Producer damit konfrontieren könnte. Andererseits waren die sog. „Short Tags“, die zum Produzieren übersichtlicher PHP-Templates erforderlich sind, lange Zeit verpöhnt – übrigens ohne echten Grund –, so dass man nach Alternativen Ausschau hielt.&lt;br /&gt;&lt;br /&gt;Als letztes mag sicherlich auch der Spieltrieb vieler Programmierer dazu geführt haben, dass das Thema Template Engines in immer neuer Variation aufgelegt wurde.&lt;br /&gt;&lt;br /&gt;Dabei wurde lange Zeit gar nicht berücksichtigt, dass Template Engines alleine das Problem echter Trennung von Logik und Inhalt gar nicht lösen: Sie trennen als reine Textersetzungsautomaten allerhöchstens HTML-Code vom restlichen Text und sind deshalb auf einer eher technischen als logischen Ebene angesiedelt.&lt;br /&gt;&lt;br /&gt;In der Folge sind PHP-Projekte, die sich allein auf eine reine Template-Engine als Strukturierungshilfsmittel verlassen, oft nicht viel übersichtlicher als reiner &lt;a href="http://de.wikipedia.org/wiki/Spaghetticode" target="_blank"&gt;Spaghetticode&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Land in Sicht!&lt;/h4&gt;Doch es ist Licht am Ende des Tunnels:Auch PHP-Entwickler haben erkannt, dass es längst bessere Methoden gibt, Übersicht in den eigenen Code zu bringen. Frameworks wie Symfony, die sich an bekannten Standards orientieren, helfen auch unerfahrenen Entwicklern, das eigene Projekt besser und langfristig zu managen.&lt;br /&gt;&lt;br /&gt;Wenn sich nun noch möglichst viele Entwickler entschließen könnten, ihren geliebten Template-Engines einfach eine Absage zu erteilen und stattdessen auf PHP Bordmittel zurückgriffen, wäre viel geholfen: Niemand müsste sich mehr in die absurde Syntax von Template-Engines einarbeiten und die Webserver danken es mit mehr Performance.&lt;br /&gt;&lt;br /&gt;Nur die Entwickler der vielen Template-Entinges wären plötzlich arbeitslos ... aber wäre das wirklich so schlimm?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-7902948832595043143?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/7902948832595043143/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-php-template-engines.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/7902948832595043143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/7902948832595043143'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-php-template-engines.html' title='Über PHP Template Engines'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7274575752918075592.post-2808713375086175287</id><published>2012-01-11T14:20:00.000+01:00</published><updated>2012-01-12T10:20:47.467+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP5'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'>Über das Image von PHP</title><content type='html'>PHP ist unbestritten &lt;b&gt;die&lt;/b&gt; Programmiersprache des World Wide Web. Ein Großteil der Open-Source-Software für das Internet wurde und wird nach wie vor in dieser Programmiersprache geschrieben: Ob WordPress oder Wikipedia, es gibt zahlreiche Beispiele für sehr erfolgreiche Projekte, die mit PHP umgesetzt wurden.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Als Sprache nicht ernst zu nehmen?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dabei ist diese Entwicklung alles andere als selbstverständlich: PHP wurde lange Zeit als Programmiersprache für „Script-Kiddies“ verspottet. Hauptsächlich die mangelhafte Objektorientierung, wenig durchdachte Sprachfeatures und inhärente Sicherheitsmängel waren oft Grund zur Kritik.&lt;br /&gt;&lt;br /&gt;Doch PHP hat sich auf breiter Basis gegen eine nicht minder mächtige Konkurrenz wie Java, Ruby on Rails oder das vergleichweise neue node.js durchgesetzt. Die Gründe sind wohl vor allem in der extrem leichten Erlernbarkeit von PHP zu suchen.&lt;br /&gt;&lt;br /&gt;All dies führte jedoch in der Vergangenheit zu eklatanten Qualitätsmängeln selbst bei sehr bekannten PHP-Projekten, die immer wieder mit Sicherheitslücken in die Schlagzeilen gerieten.&lt;br /&gt;&lt;br /&gt;Dabei hat sich viel getan: Seit der Version 5 beherrscht PHP eine vernünftige Syntax für Objektorientierung und seit 5.3 auch eine Erweiterung für Namespaces, die man am ehesten mit Java Packages vergleichen kann. Sogar anonyme Funktionen und Closures haben inzwischen Einzug in die Syntax gehalten.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Gute Beispiele sind Mangelware&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dennoch habe ich den Eindruck, dass diese neuen Features nur langsam – wenn überhaupt – von der Entwicklergemeinde angenommen werden. Es gibt so leuchtende Beispiele wie Doctrine 2, das ohne Namespaces gar nicht mehr funktioniert und den Entwickler damit zwingt, auch den eigenen Code moderner zu gestalten. Doch insgesamt lassen sich diese guten Beispiele an einer Hand abzählen.&lt;br /&gt;&lt;br /&gt;Zur Misere tragen dabei auch zahlreiche Provider bei, die bis heute nicht bereit oder in der Lage sind, die PHP-Versionen auf ihren Servern aktuell zu halten. So ist PHP5.2 oft noch Stand der Dinge, während die wichtige Version 5.3 mit Namespaces und Closures bereits seit über zweieinhalb Jahren auf dem Markt ist. Die Version 5.4, die wieder zahlreiche wichtige Neuerungen bringt, steht bereits in den Startlöchern.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Was bringt die Zukunft?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ob PHP dabei in der Lage ist, seine tragene Rolle im Bereich das Web auszubauen, hängt meines Erachtens im Wesentlich davon ab, ob es gelingt, die neuen Features auf breiter Basis in den Praxisbetrieb zu überführen. Noch hängen zu viele über die Jahre gewachsene Quellcodes an veralteten Konzepten.&lt;br /&gt;&lt;br /&gt;Jeden PHP-Entwickler kann ich nur ermuntern, Namespaces und Closures auszuprobieren. Sie tragen wesentlich dazu bei, den eigenen Code schneller und übersichtlicher und damit letzten Endes auch sicherer zu gestalten.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7274575752918075592-2808713375086175287?l=technischer-fortschritt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technischer-fortschritt.blogspot.com/feeds/2808713375086175287/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-das-image-von-php.html#comment-form' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/2808713375086175287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7274575752918075592/posts/default/2808713375086175287'/><link rel='alternate' type='text/html' href='http://technischer-fortschritt.blogspot.com/2012/01/uber-das-image-von-php.html' title='Über das Image von PHP'/><author><name>Bastian Frank</name><uri>http://www.blogger.com/profile/15411616193744621719</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
