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

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>onli blogging - Technikzeugs</title>
    <link>http://www.onli-blogging.de/</link>
    <description></description>
    <dc:language>de</dc:language>
    <generator>Serendipity 1.7 - http://www.s9y.org/</generator>
    <managingEditor>mail@onli-blogging.de</managingEditor>
<pubDate>Tue, 21 May 2013 05:34:15 GMT</pubDate>

    <image>
        <url>http://www.onli-blogging.de/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: onli blogging - Technikzeugs - </title>
        <link>http://www.onli-blogging.de/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Die Brainstormabschaffung ist eine Bankrotterklärung</title>
    <link>http://www.onli-blogging.de/index.php?/1303/Die-Brainstormabschaffung-ist-eine-Bankrotterklaerung.html</link>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1303/Die-Brainstormabschaffung-ist-eine-Bankrotterklaerung.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1303</wfw:comment>

    <slash:comments>23</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1303</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;http://brainstorm.ubuntu.com/&quot; title=&quot;Popular ideas - Ubuntu brainstorm&quot;&gt;Ubuntu Brainstorm&lt;/a&gt; war im Kerngedanke ein großartiges Projekt. Die Ideen all der Nutzer anzuzapfen, die täglich Ubuntu benutzen, und durch ein Wahlsystem die Ideen gefiltert an die Entwickler weiterzugeben, ist Participatory Design in Reinform. Es ist aber auch die kleine Form des PD, bei dem die Nutzer als Experten ihrer spezifischen Softwarenutzung gesehen werden, aber abgesehen von diesem ersten Input nicht weiter an der Ausgestaltung ihrer Idee beteiligt sind.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Ubuntu Brainstorm war eine faire Abmachung: &lt;strong&gt;Ihr Nutzer gebt uns Entwickler Ideen, und dafür kreisen wir Entwickler ab und an über diese Ideensammlung und implementieren manche der Ideen.&lt;/strong&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Jono Bacon &lt;a href=&quot;http://www.jonobacon.org/2013/05/16/on-brainstorm/&quot; title=&quot;On Brainstorm  |  jonobacon@home&quot;&gt;tut nun so&lt;/a&gt;, als sei das untypisch für Open Source. Das funktionierende Modell sei, dass der Nutzer möglichst weit beteiligt ist, am besten selbst Mockups und Patches bereitstellt und so die Integration seiner Idee vorantreibt. In dem Artikel zur Brainstorm-Abschaltung schreibt Bacon auch klar, dass das alternative Modell bei Ubuntu nicht funktionierte. Die Ideen wurden von den Entwicklern ignoriert, und weil die Existenz des Brainstorms die soziale Erwartung hervorgerufen habe, dass die Ideen auch umgesetzt würden (wie überraschend), sei das für die Nutzer frustrierend und insgesamt schädlich gewesen. Er schreibt das so:
&lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;whiteline&quot;&gt;Some time ago the Technical Board took a work item to try to solve this problem by regularly curating the most popular items in brainstorm with a commentary around technical feasibility, but the members of the TB unfortunately didn’t have time to fulfill this. As such, brainstorm turned into a big list of random ideas, ranging from the sublime to the ridiculous, and largely ignored by the Ubuntu development process. 
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;...
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;In other words, just because an idea is popular doesn’t necessarily mean it is interesting enough for a developer to want to implement it. Secondly, brainstorm started to garner an unrealistic social expectation that popular ideas would be automatically added to the TODO list of prominent Ubuntu developers, which was never the case.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Das dürfte auch stimmen, seine Schilderung unterschlägt allerdings, dass das Brainstorm-Tool genau für diese nun als unrealistisch bezeichnete Erwartung da war und genau so angekündigt wurde: Als Möglichkeit normaler Nutzer, ihre Ideen einzubringen, über sie abstimmen zu lassen und gute und machbare Ideen von Entwicklern umsetzen zu lassen. So stand das damals beispielsweise in der &lt;a href=&quot;http://netsplit.com/2008/02/28/ubuntu-brainstorm-announced/&quot; title=&quot;Ubuntu Brainstorm Announced! | netsplit.com&quot;&gt;Ankündigung&lt;/a&gt;:
&lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;break&quot;&gt;The development team can now take the pulse on the most pressing user issues and propose the ideas as topics at the Ubuntu Development Summits and ultimately as specifications. Ubuntu development is in turn driven by detailed specifications written up in the wiki and tracked as blueprints in Launchpad&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Es ist kein Wunder, dass die Nutzung des Tools zurückging, wenn Ideen von den Entwicklern eben nicht aufgegriffen wurden.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Es gibt natürlich Projekte, die nach Bacons vermeintlichem Ideal  funktionieren, und es gibt einige wenige Nutzer, die sich tatsächlich so einbringen können. Doch im Großen ist das illusorisch und absurd. Ein Nutzer mit einer guten Ideen muss in einem in meinen Augen idealen Projekt nicht wissen, wie sie umsetzbar ist, er muss ganz sicher keine Mockups designen, er muss nur einen Entwickler finden, der in der Idee Potential sieht und sie für umsetzbar hält. Und bereit ist, das dafür notwendige zu tun. Und genau für diesen ersten Schritt des Nutzers versprach Ubuntu Brainstorm Hilfe - das gleichzeitig auch noch mit verschiedenen Mitteln dabei helfen sollte, Ideen der Nutzer zu strukturieren und sie in eine spezifikationsähnliche Form zu bringen.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Es ist nun nicht so, dass es keine Projekte gibt, die tatsächlich so nutzergetrieben funktionieren. Serendipity z.B. wird seit Jahren so weiterentwickelt. Das Spamblock-Bayes-Plugin kam genau so zustande: Ein Nutzer schlug die Idee vor, kleinerChemiker baute ein entsprechendes Plugin, ich brachte es zum Laufen, vervollständigte es und pflege es seitdem gelegentlich. Und Serendipity ist keine Ausnahme mit diesem Entwicklungsmodell (bei dem natürlich auch die Entwickler eigene Ideen einbringen und eine Beziehung zu der Idee haben müssen), ich sehe so etwas immer wieder. Es ist ab einem gewissen Entwicklungsstadium meinem Eindruck nach eher die Norm als die Ausnahme, dass neue Features aus Nutzerideen entstehen.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Natürlich steht ein solches PD-Tool auch in einem größeren Zusammenhang: In einem Projekt, das ganz bewusst eben nicht PD betreibt, sondern im Großen nur die Ideen der Entwicklung und Projektleitung umsetzt, hat ein solches Tool keinen Wert. Ich sage das ohne Wertung, es geht nicht darum, was Unity, Mir oder Ubuntu Phone taugen. Es geht darum, dass diese Entwicklung des Ubuntu-Projekts nicht aus der Nutzerschaft kam, sondern von oben - und ohne jegliche Einflussmöglichkeit, sogar mit explizit geäußerter Nicht-Beeinflussbarkeit - festgelegt wurde.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Es ist also völlig richtig von Ubuntu, Brainstorm abzuschalten. Es ist etwas schade für mich, weil ich immer mal wieder darauf als Beispiel für PD verwies. Aber es ist für die Nutzer gut, wenn sie nicht länger getäuscht werden, sondern klar ist: Einfach eine gute Idee an die Entwickler weiterzugeben reicht nicht, um sie umsetzen zu lassen, muss vom Nutzer schon mehr kommen. Es heißt auch: Ubuntu hat keine Entwickler, die immer wieder auf den Brainstorm schauen und daraus Ideen umsetzen. Weder gibt es dafür Freiwillige, noch will Canoncial jemanden dafür bezahlen. Diese Art der Nutzerbeteiligung, diese Form von Participatory Design, wird nicht umgesetzt. &lt;strong&gt;Die Abmachung gilt nicht mehr.&lt;/strong&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Diesen Umstand muss man nicht gut finden. &lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 16 May 2013 22:41:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1303/guid.html</guid>
    
</item>
<item>
    <title>Hackernews verbessern</title>
    <link>http://www.onli-blogging.de/index.php?/1302/Hackernews-verbessern.html</link>
            <category>Technikzeugs</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1302/Hackernews-verbessern.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1302</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1302</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;https://news.ycombinator.com/news&quot; title=&quot;Hacker News&quot;&gt;Hackernews&lt;/a&gt; ist eine meiner Haupt-Nachrichtenquellen, aber die Seite an sich ist weder hübsch noch funktionsreich. Und auch wenn eine Beschränkung auf Kernfunktionen sinnvoll sein kann, gibt es eine Reihe von fehlenden Funktionen, die ich zu den notwendigen dazuzähle. Die von mir genutzten Erweiterungen:
&lt;/p&gt;&lt;h4&gt;Alternatives Design&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;http://userstyles.org/styles/71445/better-hacker-news-design&quot; title=&quot;Better Hacker News Design - Themes and Skins for Ycombinator - userstyles.org&quot;&gt;Dieses Design&lt;/a&gt; habe ich &lt;a href=&quot;http://userstyles.org/styles/71445/better-hacker-news-design&quot; title=&quot;Better Hacker News Design - Themes and Skins for Ycombinator - userstyles.org&quot;&gt;schonmal vorgestellt&lt;/a&gt;. Inzwischen hab ich es ein paarmal überarbeitet, Bugs gefixt, und mich daran gewöhnt. Würde behaupten, dass es sich für mich bewährt hat. Am besten &lt;a href=&quot;https://chrome.google.com/webstore/detail/stylish/fjnbnpbmkenffdnngjfgmeleoegfcffe&quot; title=&quot;Chrome Web Store - Stylish&quot;&gt;Stylish&lt;/a&gt; für die Installation nutzen.
&lt;/p&gt;&lt;h4&gt;Kommentarbenachrichtigungen per Mail&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Tatsächlich bin ich nicht mehr nur stummer Leser, meine eigenen Submissions wurden nicht völlig ignoriert und ab und an kommentiere ich. Um Antworten auf die eigenen Kommentare mitzubekommen und nicht unhöflicherweise zu ignorieren, ist &lt;a href=&quot;http://hnnotify.com/&quot; title=&quot;HN Notify | Email Reply Notifications for Hacker News&quot;&gt;HN Notify&lt;/a&gt; großartig. Man bekommt jeweils eine Email mit dem Kommentar zugesandt.
&lt;/p&gt;&lt;h4&gt;Subdomains anzeigen&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Bei einigen Domains mach HN das nun selbst, aber nicht bei allen - Mit dieser &lt;a href=&quot;https://chrome.google.com/webstore/detail/hacker-news-show-full-dom/amenlkcfjlmchdpogjmdolblcjlcmdbp&quot; title=&quot;Chrome Web Store - Hacker News - Show Full Domain&quot;&gt;Chrome-Erweiterung&lt;/a&gt;/&lt;a href=&quot;https://userscripts.org/scripts/show/121512&quot; title=&quot;Show Full Domain on Hacker News posts for Greasemonkey&quot;&gt;diesem userscript&lt;/a&gt; (ich hab die Erweiterung irgendwo anders installiert) wird immer die volle Domain angezeigt, wodurch man manchmal schneller mitbekommt, welcher Art der Artikel ist. War besonders wichtig für Google+-Posts, bei denen früher nur google.com als Ursprungs-URL angezeigt wurde. Dieser spezielle Fall ist nun von HN gelöst, aber ähnliche Fälle gibt es immer wieder.
&lt;/p&gt;&lt;h4&gt;Upvotes farbig symbolisieren&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;Artikel mit den meisten Upvotes sind nicht automatisch die mit der besten Platzierung. Im Hintergrund werkelt ein Algorithmus, der zum einen das Karma des Nutzers einberechnet und illegitime Upvotes aussortiert, aber vor allem den Artikeln ein immer stärker werdendes Gewicht zuordnet, sodass alte Artikel mit der Zeit von der Startseite verschwinden. &lt;a href=&quot;https://chrome.google.com/webstore/detail/hacker-news-colors/adailobllebnhioglgkmaioilhlkdden&quot; title=&quot;Chrome Web Store - Hacker News Colors&quot;&gt;Diese Erweiterung&lt;/a&gt; zeigt einen sich je nach Anzahl der Upvotes von gelb nach rot  verfärbenden Balken an, wodurch diese Information viel schneller aufgenommen werden kann und zusammen mit der Platzierung auf der Seite das Gewicht und damit das Alter des Artikels gezeigt wird. Die neueste der von mir genutzten Modifikationen, muss sich erst noch bewähren, finde ich aber bisher sehr hübsch. Und passt nicht schlecht zu meinem Design. &lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 16 May 2013 15:58:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1302/guid.html</guid>
    
</item>
<item>
    <title>Serendipity 1.7</title>
    <link>http://www.onli-blogging.de/index.php?/1301/Serendipity-1.7.html</link>
            <category>Technikzeugs</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1301/Serendipity-1.7.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1301</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1301</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Zuerst ein Hinweis auf einen Bug, auf &lt;a href=&quot;http://board.s9y.org/viewtopic.php?f=3&amp;t=19295&quot; title=&quot;    s9y: 1.6-&amp;gt;1.7: blogurl missing (Bugs) &amp;bull; Serendipity PHP Blog    &quot;&gt;den hier&lt;/a&gt;. Zur Vermeidung nach dem Upgrade auf 1.7 einfach in der Konfiguration die Option &quot;URL zum Blog&quot; nachtragen, oder die Einstellungen bis 1.7.1 nächste Woche komplett nicht anfassen. Hat mir fast Spaß gemacht, den erst halb zu fixen, nur um dann mit meinem Patch selbst in den Bug zu rennen und im Bus auf die Lösung des Problems zu kommen. Wer während meines Nachdenkens mein Gesicht gelesen hätte, hätte mich wahrscheinlich für etwas sonderbar gehalten.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Ansonsten ist 1.7 genau wie in der &lt;a href=&quot;http://blog.s9y.org/archives/247-Serendipity-1.7-released.html&quot; title=&quot;Serendipity 1.7 released  - Serendipity&quot;&gt;Releaseankündigung&lt;/a&gt; beschrieben in erster Linie ein Release, das notwendig wurde, weil die weiteren Änderungen von PHP 5.x Änderungen bei Serendipity notwendig machten, größtenteils der Pointerkram. Interessanter sind die neuen Funktionen und Anpassungen:
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Smarty 3 ist an so viel Stellen schöner zu schreiben als die Vorgängerversion, dass ich schon eine Weile nur noch Smarty 3-Templates produziere. Schon das neue foreach alleine wäre das Upgrade wert.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Mir besonders wichtig ist die &lt;a href=&quot;http://www.onli-blogging.de/index.php?/1181/Stabile-Archiv-URLs-in-Serendipity.html&quot; title=&quot;Stabile Archiv-URLs in Serendipity - onli blogging&quot;&gt;&quot;stable archives&quot;-Option&lt;/a&gt;. Google weniger unnötige Änderungen zuzumuten und von Google kommende Leser besser finden zu lassen, was sie suchen, hat mich sofort überzeugt und setzte ich deswegen besonders gerne um. Habe auch noch keine Blogsoftware bewusst wahrgenommen, die das ebenfalls richtig macht.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Und dass Dateien ohne Dateiendungen von der Mediendatenbank jetzt korrekt erkannt werden dürfte für mich hilfreich sein.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Alles in allem ein kleines Release, das sich aber auf jeden Fall lohnt. Der Autoupdater hat übrigens bei mir einwandfrei funktioniert. &lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 14 May 2013 20:43:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1301/guid.html</guid>
    <category>serendipity</category>

</item>
<item>
    <title>Boot beschleunigen: e4rat statt ureadahead</title>
    <link>http://www.onli-blogging.de/index.php?/1300/Boot-beschleunigen-e4rat-statt-ureadahead.html</link>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1300/Boot-beschleunigen-e4rat-statt-ureadahead.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1300</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1300</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Mein PC ist nicht alt, aber die genutzte Festplatte schon. Daher rechne ich gar nicht mit einem wirklich schnellen Ubuntu-Start, und tatsächlich habe ich den auch nicht. Doch &lt;a href=&quot;http://sourceforge.net/projects/e4rat&quot; title=&quot;e4rat | Free System Administration software downloads at SourceForge.net&quot;&gt;e4rat&lt;/a&gt; hilft ein bisschen: Vorher dauerte der Bootprozess bis zum Start von X 55 Sekunden, nach Durchlaufen &lt;a href=&quot;http://www.howtogeek.com/69753/how-to-cut-your-linux-pcs-boot-time-in-half-with-e4rat/&quot; title=&quot;  How To Cut Your Linux PC&amp;#8217;s Boot Time in Half With E4rat&quot;&gt;der Anleitung&lt;/a&gt; sind es 45. Nicht schlecht.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Anleitung in kurz:
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;ureadahead deinstallieren&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;sudo apt-get remove ureadahead&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;&lt;a href=&quot;http://sourceforge.net/projects/e4rat/files/&quot; title=&quot;e4rat -  Browse Files at SourceForge.net&quot;&gt;e4rat herunterladen&lt;/a&gt; und installieren:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;sudo dpkg -i Downloads/e4rat_0.2.3_i386.deb&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Dann&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;init=/sbin/e4rat-collect &lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;zur &#039;&quot;linux ...&quot;-Zeile in der &lt;strong&gt;/boot/grub/grub.cfg&lt;/strong&gt; hinzufügen, neustarten. &lt;code&gt;init=/sbin/e4rat-collect&lt;/code&gt; wieder entfernen
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Schließlich die Festplatte umfragmentieren lassen: Starten in der Wiederherstellungskonsole (oder &#039;single&#039; zum normalen Booteintrag anfügen) und &lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;e4rat-realloc /var/lib/e4rat/startup.log&lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;solange ausführen, bis die Meldung kommt, dass keine Verbesserungen mehr möglich seien.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;In die  &lt;strong&gt;/etc/default/grub&lt;/strong&gt; dann noch&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;init=/sbin/e4rat-preload&lt;/pre&gt;&lt;p class=&quot;break&quot;&gt;zur GRUB_CMDLINE_LINUX_DEFAULT hinzufügen und mit einem&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;sudo update-grub&lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;Grub aktualisieren
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;&lt;em&gt;Nachtrag:&lt;/em&gt; Man beachte &lt;a href=&quot;http://www.onli-blogging.de/index.php?/1300/Boot-beschleunigen-e4rat-statt-ureadahead.html#c4798&quot; title=&quot;&quot;&gt;Anaximanders Kommentar&lt;/a&gt; , das sollte manchmal wiederholt werden. &lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 09 May 2013 13:05:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1300/guid.html</guid>
    
</item>
<item>
    <title>Wenn Daten einfach weg sind</title>
    <link>http://www.onli-blogging.de/index.php?/1299/Wenn-Daten-einfach-weg-sind.html</link>
            <category>Technikzeugs</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1299/Wenn-Daten-einfach-weg-sind.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1299</wfw:comment>

    <slash:comments>7</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1299</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Wenn die Festplatte kaputt geht, ist hoffentlich noch ein Backup auf einer anderen Platte. Wenn die Wohnung abbrennt, sind beide Platten kaputt und alle Daten weg. So gesehen sollten ins Internet ausgelagerte Daten eigentlich sicherer vor Verlust sein - Daten in der Cloud werden redundant in verschiedenen Rechenzentrums gespeichert, um durch Unfälle verloren zu gehen muss viel passieren. 
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Doch was schützt vor Fehler und Willkür des Cloudbetreibers? Nichts. Zahlt man nichts für den Dienst - und selbst wenn, was ändert das groß an der Machtverteilung - sind die Daten nicht unter eigener Kontrolle. Kein origineller Gedanke, nichts neues, aber aus gegebenem Anlass: Alle meine +1 sind weg. Ich bin nicht bei Google+ angemeldet, aber +1 wurden und werden trotzdem auf der &lt;a href=&quot;https://profiles.google.com/onli89/plusones&quot; title=&quot;&quot;&gt;Google-Profilseite&lt;/a&gt; gesammelt, nur ist da jetzt eben nur noch eines, das neue. 
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Die +1 hab ich genutzt, um die Linkliste hier rechts im Blog zu befüllen und im gesamten war das inzwischen ein recht volles Archiv meiner Meinung nach wichtiger Artikel, ein Blick aufs Zeitgeschehen quasi aus meiner Perspektive und mit relativ vielen Erinnerungen verknüpft, was damals von mir dazu gedacht wurde.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Temporärer Fehler? Gelöschte Daten? Keine Ahnung, aber dass nur ein einziges auftaucht riecht nach gelöschten Daten. Und ich bin völlig machtlos - keine echte Supportoption auf der Seite (Feedback geben != Support), die Einstellungen führen zu einer Fehlerseite (schon immer, wohl weil kein Google+-Nutzer).
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Trotz allem, das sind nichtmal wichtige Daten. Alle Emails gelöscht, das wäre schlimm (immerhin hab ich ein nicht zu altes Offline-Backup, trotzdem wäre viel weg), Account gesperrt, das wäre katastrophal. Es wird Zeit, die wirklich wichtigen Dinge wie die Email-Adresse selbst zu besitzen. Vielleicht kann man die ja anfangs auf die Google-Mail umleiten. Wenn Mailserver nur nicht so fürchterlich wären, dann könnte man das gleich ganz selbst hosten - und würde die Daten wahrscheinlich durch einen Festplattenfehler im dann einzigen Rechenzentrum verlieren… &lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 06 May 2013 19:27:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1299/guid.html</guid>
    
</item>
<item>
    <title>Modmic</title>
    <link>http://www.onli-blogging.de/index.php?/1298/Modmic.html</link>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1298/Modmic.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1298</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1298</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;An der Uni habe ich Zugang zu einem 3D-Drucker. Herausgekommen ist das hier:
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;https://picasaweb.google.com/lh/photo/Q4DA_4Qj-Qk0Qu16XEmRf9MTjNZETYmyPJy0liipFm0?feat=embedwebsite&quot; title=&quot;Picasa Web Albums - onli onli&quot;&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-6DpBK85kGvQ/UX_LJZ9zDJI/AAAAAAAACiI/TQ60fyhADEg/s800/modmic-prototyp.jpg&quot; height=&quot;424&quot; width=&quot;800&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Es ist ein Halter für ein Ansteck-Mikrofon, der seitlich an den Kopfhörer geklebt wird. Hintergrund ist, dass ich der Empfehlung des hifi-forums gefolgt bin und statt eines Headsets einen &lt;a href=&quot;http://www.thomann.de/de/superlux_hd681_b.htm&quot; title=&quot;Superlux HD-681 B&quot;&gt;Kopfhörer&lt;/a&gt; samt &lt;a href=&quot;http://www.amazon.de/K%C3%B6nig-Ansteckmikrofon-Befestigung-Krawatte-Revers/dp/B009P1VC5W&quot; title=&quot;&quot;&gt;Ansteckmikrofon&lt;/a&gt; gekauft habe. Im Grunde war das auch eine gute Idee, besonders der Kopfhörer ist wirklich besser als deutlich teurere Headsets. Aber das Anstecken des Mikrofons hat mich irgendwann genervt, vor allem nachdem der Plastikhalter abgebrochen ist.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Der Prototyp ist zusammengeklebt. Natürlich habe ich zuerst wesentlich kompliziertere Lösungen mit Steckverbindungen und Gelenken gebaut, so richtig haben die aber bisher noch nicht funktioniert. Wie einfach die Lösung jetzt ist sieht man vielleicht besser am CAD-Modell:
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;https://picasaweb.google.com/lh/photo/7S5dYupbWPM6Zz3YDqB8A9MTjNZETYmyPJy0liipFm0?feat=embedwebsite&quot; title=&quot;Picasa Web Albums - onli onli&quot;&gt;&lt;img src=&quot;https://lh3.googleusercontent.com/-HnAxHi8cp80/UX_LJcrm-wI/AAAAAAAACiI/wKpZNfqVgwo/s800/modmic.png&quot; height=&quot;458&quot; width=&quot;800&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;&lt;a href=&quot;http://www.wings3d.com/&quot; title=&quot;Wings 3D | A Polygon Modeler&quot;&gt;Wings3D&lt;/a&gt; hat sich für mich als absoluten CAD-Anfänger als gutes Werkzeug erwiesen, um unter Ubuntu das Modell zu erstellen. Blender war mir von Anfang an zu kompliziert und zu störrisch für diese eigentlich einfache Aufgabe. Bei Google Sketchup wurde mir nicht klar, ob die kostenlose Version des Programms alles nötige kann. Freecads Oberfläche blieb für mich völlig undurchschaubar. &lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Mit Wings3D dagegen kamen recht schnell erste Modelle zustande. Die Basisblöcke können per Rechtsklick eingefügt und einfach durch den Raum geschoben werden. Das Manipulieren der Linien, Flächen und Punkte wurde mir sofort klar. Außerdem das einzige Programm, dessen Kamerasteuerung intuitiv funktioniert. Böse Stolperfalle jedoch ist die &quot;Hole&quot;-Funktion zum Einfügen von Löchern in Objekte: Die blendet Vektoren nur aus, aber entfernt sie nicht, was bei späterer Manipulation des Objekts unspeicherbare Modelle produziert. Dass man sie nicht wirklich nutzen soll findet man im Forum, dass stattdessen die &quot;Intrude&quot;- und &quot;Inset&quot;-Funktionen, angewandt gleichzeitig auf die gegenüberliegenden gleichgroßen Seiten eines Modells, die Aufgabe erledigen, war schon schwerer herauszufinden.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Beeinflusst vom &lt;a href=&quot;http://www.modmic.com/&quot; title=&quot;AntLion Audio &amp;mdash; Welcome&quot;&gt;AntLion-Modmic&lt;/a&gt;.

&lt;/p&gt;&lt;p class=&quot;break&quot;&gt; &lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 30 Apr 2013 15:56:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1298/guid.html</guid>
    
</item>
<item>
    <title>Leichte Software - Eine Definition</title>
    <link>http://www.onli-blogging.de/index.php?/1293/Leichte-Software-Eine-Definition.html</link>
            <category>HCI</category>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1293/Leichte-Software-Eine-Definition.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1293</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1293</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Martin hat in seinem Blog einen englischsprachigen Artikel &lt;a href=&quot;http://blog.martin-graesslin.com/blog/2013/04/what-makes-a-lightweight-desktop-environment-lightweight/&quot; title=&quot;What makes a &amp;#8220;lightweight&amp;#8221; desktop environment lightweight? | Martin&amp;#039;s Blog&quot;&gt;What makes a “lightweight” desktop environment lightweight?&lt;/a&gt; geschrieben. In ihm kommt er zu dem Schluss, dass das Attribut &quot;leichtgewichtig&quot; willkürlich sei und eigentlich keine Bedeutung habe.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Ich mag den Artikel. Martin tut so, als würde er den Begriff nicht verstehen, und ich glaube, dass er sich da bewusst seiner eigenen instinktiven Deutung des Begriffes widersetzt  - und er übersieht völlig die mich sehr erheiternde Ironie darin, wenn ausgerechnet ein KDE-Entwickler mit dem Bild leichter Software nichts anfangen kann (was ich tatsächlich nicht böse meine). Aber zusammen mit seinem Ausschlussverfahren, das ziemlich gut beschreibt, was leichte Software ist (nur zum gegenteiligen Schluss kommt), und den Kommentaren ergibt sich ein gutes Gesamtbild, das in meinen Augen den Begriff wirklich schön zeichnet. Ich nehme das mal und mische es hier mit meiner eigenen Definition.
&lt;/p&gt;&lt;h4&gt;1. Leichte Software ist subjektiv&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Offensichtlich geht es nicht um das Gewicht der Software und nicht um die Größe des Codes. Software mit einem Gewicht zu belegen kann angesichts ihrer inhärenten Gewichtslosigkeit nur ein emotionaler Begriff sein, der eine Brücke schlägt zu Erfahrungen im rl. Und das ist ein guter Anhaltspunkt bei der Deutung des Begriffes. Wenn etwas im echten Leben schwer ist, tragen wir schwer daran, haben Probleme, es zu bewegen, beschleunigt es nicht so schnell wie ein leichteres Objekt mit der gleichen Antriebskraft; alles geeignete Analogien zu unserer jeweiligen subjektiven Erfahrung mit Software.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Martin begab sich auf die Suche einer festen Definition von leichter Software und scheiterte daran, eine solche zu finden. Wenn Software auf der und der Hardware so und so gut läuft, dann ist die Software leichtgewichtig - das wird man seltenst irgendwo lesen. Da es ein Attribut ist, das die Bewertung des Nutzers wiedergibt, ist es für jeden Nutzer eine andere Hardware und eine andere Eigenschaft, die das Attribut rechtfertigt. Das kann der Start der Software selbst sein: Wenn eine Desktopumgebung mehrere Sekunden zum Starten braucht, fühlt sich das nicht schnell, nicht leicht an. Es kann aber auch wesentlich weiter gehen. Es kann sogar technisch versierte Nutzer geben, welche die Abhängigkeiten oder den Code selbst heranziehen - das dürfte die Ausnahme sein, soll hier aber Beispiel dafür sein, wie subjektiv die Klassifikation sein kann.
&lt;/p&gt;&lt;h4&gt;2. Leichte Software ist effizient&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;Aber es gibt durchaus offizielle Definitionen der Benutzbarkeit von Software, die mit dem Begriff leichtgewichtiger Software verknüpfbar sind. Nach ihnen hat Martin seiner Beschreibung nach nur nicht gesucht und sie auch nicht zufällig gefunden. &lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Sie verbirgt sich in &lt;strong&gt;Effektivität&lt;/strong&gt;, &lt;strong&gt;Effizenz&lt;/strong&gt; und &lt;strong&gt;Nutzerzufriedenheit&lt;/strong&gt;, dem Dreiklang der HCI nach DIN ISO 9241. &lt;/p&gt;&lt;dl&gt;&lt;dt&gt;&lt;strong&gt;Effektivität&lt;/strong&gt;:&lt;/dt&gt;
&lt;dd&gt;Die Möglichkeit, mit dem Werkzeug eine Aufgabe überhaupt zu erledigen.&lt;/dd&gt; 
&lt;dt&gt;&lt;strong&gt;Effizienz&lt;/strong&gt;:&lt;/dt&gt;
&lt;dd&gt; Wie schnell und wie einfach die Aufgabe zu erledigen ist.&lt;/dd&gt; 
&lt;dt&gt;&lt;strong&gt;Nutzerzufriedenheit&lt;/strong&gt;:&lt;/dt&gt;
&lt;dd&gt;Der Begriff erklärt sich selbst, wird von den vorherigen Faktoren beeinflusst, aber nicht alleine von ihnen bestimmt.&lt;/dd&gt;  
&lt;/dl&gt;&lt;p class=&quot;whiteline&quot;&gt;Eine Kategorisierung von Software als leicht ist nun eine Einstufung dieser Software in der zweiten Kategorie, Effizenz. Denn vergleicht man zwei verschiedene Programme und hält das eine für leichtgewichtig, das andere aber nicht, impliziert man damit meist, dass beide der gleichen Aufgabe dienen. Effektivität kann es also nicht sein. Und Zufriedenheit ist zuwenig mit der eigentlichen funktionalen Eigenschaft der Software verknüpft, um das zu beschreiben (auch wenn das sicher mit hereinspielt). Es geht also darum, wie einfach und wie schnell etwas zu machen ist. Und klar: Geht etwas mit wenigen Klicks in einer überschaubaren Oberfläche und ohne störende Ruckler, geht es in der Regel effizienter, als sei dem nicht so. Und genau das kann leichte Software sein: Solche, die nicht ruckelt und solche, die eine Aufgabe schnell und einfach erledigen lässt.
&lt;/p&gt;&lt;h4&gt;3. Was leicht ist, wird relativ zur Hardware definiert&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Wenn eine Desktopumgebung dazu führt, dass der Browser nur träge reagiert - dieser aber unter einer anderen annehmbar schnell läuft - ist sie sicher nicht leicht. Dieses Phänomen kann ich wunderbar auf &lt;a href=&quot;http://www.onli-blogging.de/index.php?/1110/Totalschaden.html#c3115&quot; title=&quot;Totalschaden - onli blogging&quot;&gt;dem Thinkpad R50&lt;/a&gt; mit Unity und E17 beobachten. Während sich unter Unity alles zäh und träge anfühlt, beim Fenstermanagement, beim Aufruf des Dashs und den Hovereffekten des Docks, aber auch beim Surfen im Browser, ist es unter E17 gut erträglich, flüssig sogar, sodass man einwandfrei mit ihm arbeiten kann (ich hatte ihn z.B. auf dem ictf dabei). Offensichtlich ist Unity derart fordernd, dass die Oberfläche langsam gerendert wird und für die eigentliche Aufgabe nicht genug Ressourcen übrig bleiben. Das Gegenteil  leichter Software.
&lt;/p&gt;&lt;h4&gt;4. Leichte Software hat keinen (wahrnehmbaren) bloat&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Aber auch, wenn die GUI der Software viele Elemente hat und überladen wirkt, kann das zu dem Nutzereindruck führen, nicht leichtgewichtig zu sein. Das war nebenbei ja schon immer eine Lektion, die KDE nicht lernen wollte. Zum einen, weil leichte Software ein emotionaler Begriff und eine Analogie ist,  zum anderen, weil es um die Effizenz beim Ausführen einer Aufgabe geht, ist es nicht alleine Geschwindigkeit der Software - eine Kerbe, in die Martin gerne schlägt, wenn er von Optimierungen für neue Hardware redet. Es geht um die Aufgabe und den Weg dahin, und eine klar steuerbare (noch so ein HCI-Begriff) GUI hilft dem Nutzer dabei, eine Aufgabe effizient zu erledigen.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Es geht hier wohlgemerkt nicht um Konfigurierbarkeit. IceWM und viele andere kleine, leichte Fenstermenager sind stärker konfigurierbar als jede Desktopumgebung. Trotzdem wirken sie leichter, schon weil sie in jeder Hinsicht schneller sind - und auch, weil ihre Konfigurationsmöglichkeiten in Textdateien versteckt sind.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Wobei sich das nicht auf GUIs beschränkt: Die Komplexität der Konfiguration und die Performance des Tools können auch bei Programmen mit Text-UI bewirken, nicht als leichtgewichtig wahrgenommen zu werden. Programmiersprachen sind gar ein völlig eigenes Kapitel.
&lt;/p&gt;&lt;h4&gt;Zusammenfassend: Leichte Software ist viel und wenig&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Viele Programme können leicht wirken und viele Faktoren wirken sich hier aus. Der Eindruck kann sich ergeben, wenn etwas besonders flüssig läuft. Eine gute Energieeffizienz kann helfen, wenn der Nutzer gerade darauf achtet, z.B. weil unter Linux im Gegensatz zu Windows der Lüfter des Laptops nur in Ausnahmefällen zu hören ist oder der Akku länger hält. Wenn Software auf vielen alten System läuft, ist sie leicht, bzw diese ist es, die  auf der alten Hardware am besten/schnellsten/flüssigsten läuft - aber nicht solche Software, die sich erstmal an einem 5-minütigen Splashfenster abrackert (übrigens ein Anti-Pattern in der Interfacegestaltung).
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Das kann man umdrehen: Wenn ein Programm eine simple, klare Oberfläche mit wenigen Elementen hat, kann dies den Eindruck leichter Software hervorrufen. Verstärkt noch, wenn der Stil der Software schlicht ist - und meinem Eindruck nach insbesondere, wenn die Oberfläche zwar schlicht, aber gleichzeitig hübsch und auch noch responsiv ist. Sind die Hardwareanforderungen gering, ist Software leicht. Erfordert die Software wenig Vorwissen, ist die Software ebenfalls leicht - auch so kann man den Begriff anwenden, wobei hier sich leicht als einfach mit leicht als leichtgewichtig vermengt
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Man kann das alles in eine vereinfachende Faustregel als Fazit zusammenpacken: Läuft Software schnell auf alter und neuer Hardware des Nutzers und hat keine Oberfläche, die eine gegenteilige Atmosphäre schafft (z.B. durch langsame Animationen oder der Komplexität des Workflows), dann wird sich beim Nutzer der Eindruck ergeben, dass die Software leichtgewichtig ist.&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;  &lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 16 Apr 2013 08:03:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1293/guid.html</guid>
    
</item>
<item>
    <title>Ruby/Sinatra-Anwendung auf AppFog laufen lassen</title>
    <link>http://www.onli-blogging.de/index.php?/1292/RubySinatra-Anwendung-auf-AppFog-laufen-lassen.html</link>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1292/RubySinatra-Anwendung-auf-AppFog-laufen-lassen.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1292</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1292</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Beim letzten mal war &lt;a href=&quot;http://www.onli-blogging.de/index.php?/1289/RubySinatra-Anwendung-fuer-Heroku-anpassen.html&quot; title=&quot;Ruby/Sinatra-Anwendung für Heroku anpassen - onli blogging&quot;&gt;die versuchte Nutzung von Cloudhosting&lt;/a&gt; mit Heroku ein Reinfall. Relativ viel Arbeit für ein Scheitern an der Performance. Doch es gibt Alternativen zu Heroku, und &lt;a href=&quot;https://www.appfog.com/&quot; title=&quot;AppFog - PaaS for public and private clouds&quot;&gt;AppFog&lt;/a&gt; ist eine, die mir sehr gut gefällt.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Auch AppFog unterstützt einen kostenlosen Account, bietet aber wesentlich mehr als Heroku: 2 GB statt 512 MB Ram, 8 Instanzen statt einem Worker und 8 mögliche sogenannte Services, darunter verschiedene Datenbanken. Es gibt auch Einschränkungen, die bei Heroku nicht erwähnt werden: 5 GB Traffic im Monat und ein Maximum von 100 Requests pro Sekunde. Unterschiedlich sind die Datenbanklimits und das Accountmodell: 100 MB bei AppFog gegen 10k Reihen bei Heroku, und AppFogs Ressourcen gelten accountweit, Herokus pro Anwendung. Völlig entfällt die ziemlich kritische Beschränkung, keine Hintergrundthreads laufen lassen zu können.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Wie gesagt, ich halte das AppFog-Angebot für wesentlich besser.
&lt;/p&gt;&lt;h4&gt;Instanz einrichten&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;Doch nicht nur das Hosting selbst ist besser, auch die &lt;a href=&quot;https://docs.appfog.com/&quot; title=&quot;AppFog Documentation&quot;&gt;Dokumentation&lt;/a&gt; drumrum gefiel mir besser. Sie ist auch schnell zusammengefasst. Statt direkt mit git wird mit einem Tool namens af gearbeitet:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;gem install af
af login&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Vom Kontrollzentrum kann die Beispielanwendung als .zip heruntergeladen werden. Mit ihr wird auch schnell klar, was sonst noch zu tun ist. Wieder muss eine &lt;strong&gt;Gemfile&lt;/strong&gt; angelegt werden. Meine:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;source :rubygems

gem &quot;sinatra&quot;
gem &quot;thin&quot;
gem &#039;pg&#039;
gem &#039;json&#039;
gem &#039;nokogiri&#039;
gem &#039;rest-client&#039;
gem &#039;haml&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Ein &lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;bundle install&lt;/pre&gt;&lt;p class=&quot;break&quot;&gt;später kann die Anwendung per &lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;af update APPFOG-SERVERNAME&lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;hochgeladen werden. Die app.rb kann mit jeder anderen Datei ersetzt werden, welche Datei ausgeführt werden muss, wird durch das &lt;code&gt;require &#039;sinatra&#039;&lt;/code&gt; erkannt - sehr nett!
&lt;/p&gt;&lt;h4&gt;Datenbank aktivieren&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;Da &lt;a href=&quot;http://rsspusher.eu01.aws.af.cm/&quot; title=&quot;rsspusher - push feed-updates to you&quot;&gt;die Anwendung&lt;/a&gt; vom letzten mal schon für PostgresSQL angepasst war, blieb das natürlich als Datenbank gesetzt. Die Datenbank kann im Kontrollzentrum als Service aktiviert und dort benannt werden. Dann werden die Einloggdaten als Umgebungsvariable der Anwendung gegeben, und diesmal gibt es tatsächlich ordentlichen Beispielcode (mit dem kleinen Fehler, dass dort im Original :username statt :user steht):&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;services = JSON.parse(ENV[&#039;VCAP_SERVICES&#039;])
postgresql_key = services.keys.select { |svc| svc =~ /postgresql/i }.first
postgresql = services[postgresql_key].first[&#039;credentials&#039;]
postgresql_conn = {:host =&gt; postgresql[&#039;hostname&#039;], :port =&gt; postgresql[&#039;port&#039;], :user =&gt; postgresql[&#039;user&#039;], :password =&gt; postgresql[&#039;password&#039;], :dbname =&gt; postgresql[&#039;name&#039;]}
@db = PG.connect(postgresql_conn)&lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;Ansonsten gelten natürlich die gleichen &lt;a href=&quot;http://www.onli-blogging.de/index.php?/1289/RubySinatra-Anwendung-fuer-Heroku-anpassen.html&quot; title=&quot;Ruby/Sinatra-Anwendung für Heroku anpassen - onli blogging&quot;&gt;Hinweise&lt;/a&gt; wie bei Heroku, wenn von sqlite aus umgestellt werden muss.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Gut funktionierte bei Heroku der Zugriff auf die Datenbank von außen. Auch bei AppFog ist das gut gelöst, wobei ich die Lösung erst finden musste. Das Stichwort ist &lt;a href=&quot;https://docs.appfog.com/services/tunneling&quot; title=&quot;Tunneling - AppFog Documentation&quot;&gt;Tunnelling&lt;/a&gt;: &lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;gem install caldecott
af services
af tunnel DATENBANKNAME&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;h4&gt;Fazit&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;AppFog hatte natürlich den Vorteil, dass durch den vorherigen Versuch mit Heroku mir ziemlich klar war, wie das alles funktionieren müsste - reduzierte Verwirrung führt schnell zu einem besseren Eindruck. Aber auch ohne diesen Vorteil ist AppFog meiner Meinung nach klar die bessere Wahl: &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Wesentlich umfangreicheres kostenloses Angebot...&lt;/li&gt;
&lt;li&gt;...mit tatsächlich deutlich besserer Performance.&lt;/li&gt;
&lt;li&gt;Klarer strukturierte Dokumentation, inklusive Beispielcode für die Datenbankanbindung (wie kann sowas fehlen?).&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Aber der wichtigste Vorteil von AppFog ist, dass meine Anwendung hier funktionierte und auf Heroku nicht. Und das lag höchstwahrscheinlich am Serverstack und damit an Heroku, nicht an der Anwendung selbst (wie erwähnt konnte ich Herokus Analysetool nicht testen). &lt;a href=&quot;http://rsspusher.eu01.aws.af.cm/&quot; title=&quot;rsspusher - push feed-updates to you&quot;&gt;Rsspusher&lt;/a&gt; trägt sich bei verschiedenen PuSH- bzw rssCloud-Hubs als Abonnent ein, und dieses Eintragen muss bei beiden Protokollen jedes mal bestätigt werden, indem von dem Hub ein GET an rsspusher geschickt wird, wobei die so gesendete Challenge zurückgegeben werden muss. Das war auf dem Entwicklungsrechner kein Problem, das war auf AppFog kein Problem, aber unter Heroku lief das jedes mal in ein das Zeitlmit von 2 bzw 3 Sekunden, weil die Anfrage laut Log im Heroku-Stack alleine solange hängen blieb. Ich weiß nicht, ob das an dem einzelnen Worker hing (eigentlich ist das kein Grund, ein Worker kann mehrere Anfragen parallel bearbeiten), aber das war definitiv kein guter Eindruck.  &lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 13 Apr 2013 08:13:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1292/guid.html</guid>
    
</item>
<item>
    <title>Ruby/Sinatra-Anwendung für Heroku anpassen</title>
    <link>http://www.onli-blogging.de/index.php?/1289/RubySinatra-Anwendung-fuer-Heroku-anpassen.html</link>
            <category>Code</category>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1289/RubySinatra-Anwendung-fuer-Heroku-anpassen.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1289</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1289</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Heroku ist eine Cloud-Plattform und war eine ganze Weile die einzige mir bekannte Plattform mit einem kostenlosen Tarif (ohne behaupten zu wollen, dass es damals nichts anderes gab). Da mir Ruby und besonders Sinatra sehr gut gefällt und Heroku für Ruby eine Weile der Cloudhoster-Vorzeigekandidat war, wollte ich schon vor einiger Zeit &lt;a href=&quot;http://www.pc-kombo.de/&quot; title=&quot;&quot;&gt;eine Anwendung&lt;/a&gt; von mir dort laufen lassen. Damals scheiterte ich - das ganze Ruby-Universum war mir noch zu neu - aber inzwischen habe ich ein anderes Projekt erfolgreich portiert. Man muss allerdings einiges beachten, was genau halte ich hier mal fest.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Alles hier gilt für Ubuntu 12.04.
&lt;/p&gt;&lt;h4&gt;Heroku einrichten&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Herokus Seite ist der einfache Part. Auf &lt;a href=&quot;https://www.heroku.com/&quot; title=&quot;Heroku | Cloud Application Platform&quot;&gt;https://www.heroku.com/&lt;/a&gt; einen Account anlegen und der &lt;a href=&quot;https://devcenter.heroku.com/articles/quickstart&quot; title=&quot;Getting Started with Heroku | Heroku Dev Center&quot;&gt;Anleitung&lt;/a&gt; folgen:
&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh    # Heroku-Tools installieren
heroku login    # einloggen und public ssh-keys hochladen&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Nun der rubyspezifische Teil (&lt;a href=&quot;https://devcenter.heroku.com/articles/ruby&quot; title=&quot;Getting Started with Ruby on Heroku | Heroku Dev Center&quot;&gt;diese Anleitung&lt;/a&gt;). Für die Verwaltung der gems muss eine Datei &lt;strong&gt;Gemfile&lt;/strong&gt; im Anwendungsverzechnis angelegt werden. Der Inhalt:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;source :rubygems
gem &#039;sinatra&#039;
gem &#039;pg&#039;
# die weiteren genutzten gems
&lt;/pre&gt;&lt;p class=&quot;break&quot;&gt;Wer aus der Rails-Welt kommt, kennt das wohl. Die Datei dann auch nutzen:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;bundle install&lt;/pre&gt;&lt;p class=&quot;break&quot;&gt;Außerdem fehlt noch die &lt;strong&gt;config.ru&lt;/strong&gt; mit diesem Inhalt:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;web: bundle exec rackup config.ru -p $PORT&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Damit sind die benötigten Dateien zusammen. Dies alles nun in git festhalten und heruko übergeben:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;git init
git add .
git commit -m &quot;init&quot;
heroku create
git push heroku master&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Um später Updates an heroku zu sende, diesen Schritt ohne &lt;code&gt;git init&lt;/code&gt; und &lt;code&gt;heroku create&lt;/code&gt; ausführen

&lt;/p&gt;&lt;h4&gt;Postgresql installieren&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Leider kann heroku nicht die von mir bevorzugte SQL-Datenbank nutzen, sqlite. Stattdessen muss man Postgresql nutzen, was mir eigentlich gar nicht passte - mir sind die nicht-dateibasierten Datenbank zu konfigurationslastig. So ist auch postgresql etwas knifflig einzurichten. Immerhin sollte der Wechsel der Performance der Anwendung gut tun.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Auf Heroku ist die postgresql-Datenbank schnell aktiviert:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;heroku addons:add heroku-postgresql:dev&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Um aber den Code weiter lokal testen zu können und den Datenbank-Remotezugriff nutzen zu können, muss Postgresql auch lokal installiert werden. Dafür installiert man das Paket &lt;strong&gt;postgresql&lt;/strong&gt;. Die Datenbank muss aber noch konfiguriert werden. Am einfachsten ist &lt;a href=&quot;https://help.ubuntu.com/community/PostgreSQL#Alternative_Server_Setup&quot; title=&quot;PostgreSQL - Community Ubuntu Documentation&quot;&gt;dieser Weg&lt;/a&gt;:
&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;sudo -u postgres createuser --superuser $USER
sudo -u postgres psql
postgres=# \password $USERNAME    # des Hauptnutzers, unter dem entwickelt wird
postgres=# \q
createdb $USER    &lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;Hier wird eine Datenbank so eingerichtet, dass der Hauptnutzer sich mit einem &lt;strong&gt;psql&lt;/strong&gt; in die Datenbank einwählen kann.
&lt;/p&gt;&lt;h4&gt;Datenbankcode für Postgresql anpassen&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Nun muss noch der Code angepasst werden. Wer hier ein ORM nutzt, findet dafür in der Doku Code. Wer wie ich direkt mit SQL-Statements arbeiten will, der hat es etwas schwerer. Funktionierenden Beispielcode fand ich gar nicht.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Zuerst braucht man den Datenbankpfad. Ein &lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;heroku config | grep HEROKU_POSTGRESQL&lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;sollte einen String der Form &lt;code&gt;postgres://USERNAME:PASSWORD@ec2-107-...-213.compute-1.amazonaws.com:5432/d9...rnr&lt;/code&gt; zurückgeben. Diesem können nun die Datenbankdaten entnommen werden.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Im Ganzen: Ich habe eine database.rb, vorher ein Wrapper für sqlite. Vorher:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;class Database
    def initialize()
        begin
            @@db    # create a singleton - if this class-variable is uninitialized, this will fail and can then be initialized
        rescue
            @@db = SQLite3::Database.new &quot;rssnotifier.db&quot;

            begin
                puts &quot;creating Database&quot;
                @@db.execute &quot;CREATE TABLE IF NOT EXISTS watches(
                     ...
       
                @@db.execute &quot;PRAGMA foreign_keys = ON;&quot;
                @@db.results_as_hash = true
            rescue =&gt; error
                puts &quot;error creating tables: #{error}&quot;
            end
        end
    end

def getPages(subscribed)
        begin
            pages = []
            @@db.execute(&#039;SELECT DISTINCT url FROM watches WHERE subscribed = ?&#039;, subscribed ? 1 : 0) do |row|
                pages.push(Page.new(row[&quot;url&quot;]))
            end
            return pages
        rescue =&gt; error
            puts &quot;error getting pages: #{error}&quot;
        end
    end

    ...
&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Umgestellt auf postgresql:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;class Database
    def initialize()
         db = URI.parse(ENV[&#039;DATABASE_URL&#039;] || &#039;postgres://USERNAME:PASSWORD@ec2-107-...-213.compute-1.amazonaws.com:5432/d9...rnr&#039;)
         @db = PG::Connection.open(:dbname =&gt; db.path[1..-1], :user =&gt; db.user, :password =&gt; db.password, :port =&gt; db.port, :host =&gt; db.host, :sslmode =&gt; &#039;require&#039;)
         #@db = PG::Connection.open(:dbname =&gt; &#039;onli&#039;, :user =&gt; &#039;onli&#039;, :port =&gt; 5433)     # lokaler Zugriff

         begin
              puts &quot;creating Database&quot;
              @db.exec &quot;CREATE TABLE IF NOT EXISTS watches(
                                ....
         rescue =&gt; error
                puts &quot;error creating tables: #{error}&quot;
         end
    end

def getPages(subscribed)
        begin
            pages = []
            @db.exec(&#039;SELECT DISTINCT url FROM watches WHERE subscribed = $1&#039;, [subscribed] ? [1] : [0]) do |results|
                results.each do |row|
                    pages.push(Page.new(row[&quot;url&quot;]))
                end
            end
            return pages
        rescue =&gt; error
            puts &quot;error getting pages: #{error}&quot;
        end
    end

    ...&lt;/pre&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Eine Liste der Änderungen:&lt;/p&gt;&lt;ol&gt;
  &lt;li&gt;Kein Singleton für die Verbindung nutzen! Das führte zu ziemlich widerlichen SSL-Fehlern und es dauerte ewig, bis ich darauf kam, dass es daran lag (übrigens kein Heroku-spezifischer Bug).&lt;/li&gt;
  &lt;li&gt;Die Datenbankkonfiguration wird aus der Datenbankurl geparst (abgeleitet aus der &lt;a href=&quot;https://devcenter.heroku.com/articles/rack#using-activerecord&quot; title=&quot;Deploying Rack-based Apps | Heroku Dev Center&quot;&gt;Doku&lt;/a&gt;). Da habe ich mir Beispielcode (ohne ActiveRecord) in der Doku und einen schöneren Weg, ohne Parsen des Datenbankpfades, erhofft.&lt;/li&gt;
  &lt;li&gt;exec ersetzt execute.&lt;/li&gt;
  &lt;li&gt;Man beachte den zusätzlichen |results|-Zwischenschritt.&lt;/li&gt;
  &lt;li&gt;(Nicht im Code) Postgresql beherrscht kein INSERT OR REPLACE. Stattdessen erst ein UPDATE, dann ein INSERT ausführen.&lt;/li&gt;
  &lt;li&gt;Die Parameterersetzung hat eine andere Syntax: $X statt ? und Übergabe eines einzelnen Arrays statt der einzelnen Argumente.&lt;/li&gt;
   &lt;li&gt;Den Code zum Zugriff auf die lokale Datenbank habe ich der Einfachheit halber hier festgehalten (den muss man nämlich auch erstmal finden). Man beachte den Port, der nicht der Standardport ist!&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Die Anpassungen an den SQL-Queries selbst ist nicht zu schlimm, größtenteils scheint sqlite3 eine Submenge von postgresql zu sein. Bei den Datumsfunktionen bin ich dagegen direkt auf Rubycode umgestiegen.
&lt;/p&gt;&lt;h4&gt;Lohnt das?&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;Durchaus ein Haufen Aufwand, vor allem ohne diese Anleitung. Für meine Anwendung hat sich das ganze nichtmal gelohnt, heroku war schlicht zu langsam und die mit meiner Anwendung kommunizierenden Dienste liefen immer(!) in Timeouts. Wenn der freie Plan nichtmal zum Testen ohne jegliche Last reicht, ist das kein gutes Zeichen. Um festzustellen, an welcher Stelle die Anwendung hakt, bietet heroku mit &lt;strong&gt;New Relic&lt;/strong&gt; die laut Liste nötigen Daten, ebenfalls mit einem kostenlosen Tarif - aber um den zu aktivieren, wird trotzdem eine Kreditkarte gefordert. Die ich weder besitze noch zu diesem Zeitpunkt angeben wollen würde.&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Und so reizvoll die Skalierbarkeit solch einer Cloudplattform auch ist: Die Preise sind heftig. Ein eigener Server hat da echte Vorteile. &lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 06 Apr 2013 08:58:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1289/guid.html</guid>
    
</item>
<item>
    <title>Wächst das Internet exponentiell?</title>
    <link>http://www.onli-blogging.de/index.php?/1284/Waechst-das-Internet-exponentiell.html</link>
            <category>Technikzeugs</category>
            <category>Zeitgeschehen</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1284/Waechst-das-Internet-exponentiell.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1284</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1284</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;break&quot;&gt;Die Telekom will Trafficbegrenzungen für normale DSL-Anschlüsse einführen, so geht es derzeit durch &lt;a href=&quot;http://www.gamersglobal.de/news/66673/deutsche-telekom-ag-erwaegt-volumenbegrenzung-bei-dsl&quot; title=&quot;Deutsche Telekom AG: Erwägt Volumenbegrenzung bei DSL - News | GamersGlobal&quot;&gt;die&lt;/a&gt; &lt;a href=&quot;https://blog.fefe.de/?ts=afb2e9d3&quot; title=&quot;Fefes Blog&quot;&gt;Medien&lt;/a&gt;. Und auf dem Telekom-Blog wird dazu ein &lt;a href=&quot;http://blogs.telekom.com/2013/03/22/neue-spielregeln-fuer-dsl/&quot; title=&quot;Neue Spielregeln für DSL? | Blogs.Telekom&quot;&gt;Nicht-Dementi&lt;/a&gt; veröffentlicht, das nur sagt, dass solche Tarife noch nicht eingeführt wurden, ohne Distanzierung von diesen Plänen. Verwiesen wird dabei auf einen Spiegel-Artikel mit den Worten:&lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;break&quot;&gt;Auf der einen Seite wächst das &lt;a href=&quot;http://www.spiegel.de/netzwelt/web/weltweiter-datenverkehr-soll-sich-bis-2016-vervierfachen-a-836495.html&quot; title=&quot;Weltweiter Datenverkehr soll sich bis 2016 vervierfachen - SPIEGEL ONLINE&quot;&gt;Datenvolumen&lt;/a&gt; exponentiell.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Doch stimmt das? Der Spiegel-Artikel gibt das gar nicht so einfach einfach her.
&lt;/p&gt;&lt;h4&gt;Definition: Wachstum&lt;/h4&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a title=&quot;By Exponential.png: Lunkwill derivative work: McSush (Exponential.png) [Public domain or CC0], via Wikimedia Commons&quot; href=&quot;https://commons.wikimedia.org/wiki/File%3AExponential.svg&quot;&gt;&lt;img width=&quot;512&quot; alt=&quot;Exponential&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Exponential.svg/512px-Exponential.svg.png&quot;/&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Was bedeutet exponentielles Wachstum überhaupt? Bei exponentiellem Wachstum wächst etwas immer stärker, je mehr da ist, um einen festen Prozentsatz. 2^x wäre eine solche Wachstumsfunktion: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 ... Man muss sich klarmachen, dass dies bei großen Werten im realen Leben extrem katastrophal sein kann - z.B. beim Ölverbrauch. Hätten wir einen festen Ölvorrat und wüchse unser Verbrauch exponentiell, stünden wir irgendwann an dem Punkt, an dem am nächsten Tick der gesamte verbliebene Ölvorrat verbraucht würde - genau das macht das Peak-Oil-Szenario so erschreckend.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Lineares Wachstum ist einfacher. Wächst etwas immer um den gleichen Wert, wächst es linear - beispielsweise wenn jemand jeden Tag eine Liegestütze mehr macht.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Polynomiales (kubisches) Wachstum (meine Vermutung: Internetwachstum entspricht eher sowas) sieht exponentiellem Wachstum ähnlich, hat aber nicht diese enorme Steigerung am Ende des Graphen. x³ ist das Beispiel im Graphen: 1, 8, 27, 64, 125, 216, 343, 512. Etwas, das immer mehr immer mehr wird, jedoch später mit immer geringerem prozentualem Wachstum.
&lt;/p&gt;&lt;h4&gt;Trafficentwicklung des Internets&lt;/h4&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Der &lt;a href=&quot;http://www.spiegel.de/netzwelt/web/weltweiter-datenverkehr-soll-sich-bis-2016-vervierfachen-a-836495.html&quot; title=&quot;Weltweiter Datenverkehr soll sich bis 2016 vervierfachen - SPIEGEL ONLINE&quot;&gt;Spiegel-Artikel&lt;/a&gt; gibt das exponentielle Wachstum also gar nicht so einfach her. Denn der fasst die Studie so zusammen:&lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;break&quot;&gt;Bis 2016 werde sich das durch die weltweiten Computernetze transportierte Datenvolumen vervierfachen&lt;/p&gt;&lt;/blockquote&gt;&lt;p class=&quot;break&quot;&gt;Eine Vervierfachung ist aber noch nicht exponentielles Wachstum. Exponentielles Wachstum ist irgendwas^x, eine Vervierfachung ist 4*x. Man sieht mein Problem auch schön auf dem (per &lt;a href=&quot;http://www.ciscovni.com/vni_forecast/index.htm&quot; title=&quot;Cisco VNI Resources&quot;&gt;Cisco-Tool&lt;/a&gt;) erstelltem Graph der &lt;a href=&quot;http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11-481360_ns827_Networking_Solutions_White_Paper.html&quot; title=&quot;Cisco Visual Networking Index: Forecast and Methodology, 2011-2016&amp;#160; [Visual Networking Index (VNI)] - Cisco Systems&quot;&gt;Trafficprognosedaten&lt;/a&gt;:&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;&lt;a href=&quot;https://picasaweb.google.com/lh/photo/lyRKKl7Xuvq4gAMNsW4tYtMTjNZETYmyPJy0liipFm0?feat=embedwebsite&quot; title=&quot;Picasa Web Albums - onli onli&quot;&gt;&lt;img src=&quot;https://lh6.googleusercontent.com/-YESORfjwzko/UU3MjdnXJUI/AAAAAAAACfM/8351MLqF_-s/s800/vnigraph.jpg&quot; height=&quot;675&quot; width=&quot;420&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Die Linie für z.B. Nordamerika sieht linear aus. Ist das im gesamten wirklich exponentielles Wachstum?
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Hier noch die Daten des Gesamttraffics aus &lt;a href=&quot;http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11-481360_ns827_Networking_Solutions_White_Paper.html&quot; title=&quot;Cisco Visual Networking Index: Forecast and Methodology, 2011-2016&amp;#160; [Visual Networking Index (VNI)] - Cisco Systems&quot;&gt;dem Whitepaper&lt;/a&gt; per Wolfram:
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;https://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427eit3bcek8r7&quot; title=&quot;30.734, 43.441, 54.812, 69.028, 87.331, 110.282&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;&lt;img src=&quot;https://www.wolframalpha.com/share/img?i=d41d8cd98f00b204e9800998ecf8427eit3bcek8r7&amp;f=HBQTQYZYGY4TQM3BGZRTSNJRHEYDCM3EHE4WEMZXMJRWMMDFGQ3Aaaaa&quot; \&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Das sind 30.734, 43.441, 54.812, 69.028, 87.331, 110.282 PB per Monat.&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Und immerhin: Das Wachstum erhöht sich im Laufe der Zeit. Jährlich wächst der Traffic um 13, 11, 15, 18, 23 PB per Monat. Lineares Wachstum können wir also ausschließen. Aber ist das nun exponentiell oder polynomial?
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Sieht man das am Steigungsgraph der Interpolation?&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;&lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427e6rstcqqu9&quot; title=&quot;derivative 7.313&amp;#x2b;33.6549 x-13.3688 x&amp;#x5e;2&amp;#x2b;3.52083 x&amp;#x5e;3-0.404708 x&amp;#x5e;4&amp;#x2b;0.0188167 x&amp;#x5e;5 from x&amp;#x3d;1 to 6&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;&lt;img src=&quot;http://www.wolframalpha.com/share/img?i=d41d8cd98f00b204e9800998ecf8427e6rstcqqu9&amp;f=HBQTQYZYGY4TOM3CGRSGMMBWGAYDCM3EHFQTGMBXMVTGEMZZGRQQaaaa&quot; \&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Ich nicht.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Exponentielles Wachstum ist Wachstum um einen festen Prozentsatz. Und prozentual ist das bei den gegebenen Werten Wachstum um &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427e1p6s0r4uk0&quot; title=&quot;30&amp;#x2a;x&amp;#x3d;43&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;43%&lt;/a&gt;, &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427ehjdd17l9us&quot; title=&quot;43&amp;#x2a;x&amp;#x3d;54&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;25%&lt;/a&gt;, &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427e3b8oo8372i&quot; title=&quot;54&amp;#x2a;x&amp;#x3d;69&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;27%&lt;/a&gt;, &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427e6vdaho7q0p&quot; title=&quot;69&amp;#x2a;x&amp;#x3d;87&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;26%&lt;/a&gt;, &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427ei3nbk9qks&quot; title=&quot;87&amp;#x2a;x&amp;#x3d;110&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;26%&lt;/a&gt;. Das ist also praktisch &lt;strong&gt;exponentielles Wachstum&lt;/strong&gt;, abgesehen von der Abweichung im ersten und zweiten Jahr. Die prozentualen Wachstumswerte als Chart:
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;img src=&quot;http://chart.googleapis.com/chart?chxr=1,2011,2016&amp;chxs=1,676767,11.5,0,lt,676767&amp;chxtc=1,10&amp;chxt=y,x&amp;chs=500x400&amp;cht=lxy&amp;chco=0000FF&amp;chd=t:-1|43,25,27,26,26&amp;chg=-1,-1,1,1&amp;chls=2&amp;chtt=Internetwachstum+in+%25&quot; width=&quot;500&quot; height=&quot;400&quot; alt=&quot;Internetwachstum in %&quot; /&gt;


&lt;/p&gt;&lt;h5&gt;Nebenbei: Mathematisch erschlagen&lt;/h5&gt;&lt;p class=&quot;whiteline&quot;&gt;Hier hatte ich zuerst die &lt;a href=&quot;http://www.wolframalpha.com/input/?i=interpolate+30%2C+43%2C+54%2C+69%2C+87%2C+110&quot; title=&quot; interpolate 30, 43, 54, 69, 87, 110 - Wolfram|Alpha&quot;&gt;Interpolation&lt;/a&gt; genommen und mir mit großen x angesehen. Aber eine Interpolation per Polynom kann doch nur polynomiales Wachstum zeigen, oder? Und Wolfram kann auch nicht einfach die &lt;a href=&quot;http://www.wolframalpha.com/input/?i=30%2C+43%2C+54%2C+69%2C+87%2C+110%2C+...&quot; title=&quot; 30, 43, 54, 69, 87, 110, ... - Wolfram|Alpha&quot;&gt;Fortsetzung dieser Reihe&lt;/a&gt; berechnen, was ich einfach mal als Hinweis auf nicht-exponentielles Wachstum nahm.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Man kann auch versuchen, das &lt;a href=&quot;http://www.matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=66823&quot; title=&quot;MP-Forum: polynomiales oder exponentielles Wachstum (Matroids Matheplanet)&quot;&gt;per Hand zu berechnen&lt;/a&gt;. Und vergessen wir dabei einfach mal den Wachstumsabfall - es geht also um das Wachstum 11, 15, 18, 23  der Werte 43, 54, 69, 87, 110.
&lt;/p&gt;&lt;dl&gt;
&lt;dt&gt;&quot;Es gibt ein m&gt;1, so dass für n&gt;=n_0 stets (a_n+1)/(a_n) &gt;=m ist, dann liegt exponentielles Wachstum vor (man zeigt leicht a_n&gt;= C m^n)&quot;&lt;/dt&gt;
&lt;dd&gt;
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;54/43 &gt;= m&lt;/li&gt;
&lt;li&gt;69/54 &gt;= m&lt;/li&gt;
&lt;li&gt;87/69 &gt;= m&lt;/li&gt;
&lt;li&gt;110/87 &gt;= m&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Ja, ein solches m existiert:
&lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427erlgsbdf1fc&quot; title=&quot;54&amp;#x2f;43 &amp;gt;&amp;#x3d; m, 69&amp;#x2f;54 &amp;gt;&amp;#x3d; m, 87&amp;#x2f;69 &amp;gt;&amp;#x3d; m, 110&amp;#x2f;87 &amp;gt;&amp;#x3d; m, m&amp;gt;1&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;&lt;img src=&quot;http://www.wolframalpha.com/share/img?i=d41d8cd98f00b204e9800998ecf8427erlgsbdf1fc&amp;f=HBQTQYZYGY4TMM3BGY3DKNBVGYYDCM3EHFRTQNTGGRRTGMJRGQZQaaaa&quot; \&gt;&lt;/a&gt;
Demnach wächst das Internet exponentiell.&lt;/dd&gt;

&lt;dt&gt;&quot;Gibt es M&gt;0 und p mit: für n&gt;=n_0 ist stets a_n&gt;M n^p, dann hat man mindestens polynomiales Wachstum.&quot;&lt;/dt&gt;
&lt;dd&gt;Das ist auf deutsch die simple Überlegung: Finden wir ein Polynom, das weniger stark wächst als die gegebenen Werte?
Gut, prüfen wir das. Das zu lösende Gleichungssystem:
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;43 &gt; M * 1^p&lt;/li&gt;
&lt;li&gt; 54 &gt; M * 2^p&lt;/li&gt;
&lt;li&gt; 69 &gt; M * 3^p&lt;/li&gt;
&lt;li&gt; 87 &gt; M *4^p&lt;/li&gt;
&lt;li&gt;110 &gt; M * 5^p&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Und ja, solche p und M &lt;a href=&quot;http://www.wolframalpha.com/input/?i=43+%3E+M+*+1%5Ep%2C+54+%3E+M+*+2%5Ep%2C++69+%3E+M+*+3%5Ep%2C++87+%3E+M+*4%5Ep%2C+110+%3E+M+*+5%5Ep%2C+M+%3E+0%2C+p+%3E+1&quot; title=&quot; 43 &amp;gt; M &amp;#x2a; 1&amp;#x5e;p, 54 &amp;gt; M &amp;#x2a; 2&amp;#x5e;p,  69 &amp;gt; M &amp;#x2a; 3&amp;#x5e;p,  87 &amp;gt; M &amp;#x2a;4&amp;#x5e;p, 110 &amp;gt; M &amp;#x2a; 5&amp;#x5e;p, M &amp;gt; 0, p &amp;gt; 1 - Wolfram|Alpha&quot;&gt;scheinen&lt;/a&gt; zu existieren:
&lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427ec73cs9np4h&quot; title=&quot;43 &amp;gt; M &amp;#x2a; 1&amp;#x5e;p, 54 &amp;gt; M &amp;#x2a; 2&amp;#x5e;p,  69 &amp;gt; M &amp;#x2a; 3&amp;#x5e;p,  87 &amp;gt; M &amp;#x2a;4&amp;#x5e;p, 110 &amp;gt; M &amp;#x2a; 5&amp;#x5e;p, M &amp;gt; 0, p &amp;gt; 1&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;&lt;img src=&quot;http://www.wolframalpha.com/share/img?i=d41d8cd98f00b204e9800998ecf8427ec73cs9np4h&amp;f=HBQTQYZYGY4TQM3BGZRTSNJRHEYDCM3EHFQTMNBZMM3TOMDFG42Aaaaa&quot; \&gt;&lt;/a&gt;&lt;/dd&gt;

&lt;dt&gt;&quot;Gibt es M und p mit: für n&gt;=n_0 ist stets a_n&lt;=M n^p, dann hat man höchstens polynomiales Wachstum.&quot;&lt;/dt&gt;
&lt;dd&gt;Finden wir ein Polynom, das stärker wächst als die gegebenen Werte?
&lt;/p&gt;&lt;ol&gt;&lt;li&gt;43 &lt;= M * 1^p&lt;/li&gt;
&lt;li&gt; 54 &lt;= M * 2^p&lt;/li&gt;
&lt;li&gt; 69 &lt;= M * 3^p&lt;/li&gt;
&lt;li&gt; 87 &lt;= M *4^p&lt;/li&gt;
&lt;li&gt; 110 &lt;= M * 5^p&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;
Und ja, auch solche M und p &lt;a href=&quot;http://www.wolframalpha.com/input/?i=43+%3C%3D+M+*+1%5Ep%2C+54+%3C%3D+M+*+2%5Ep%2C++69+%3C%3D+M+*+3%5Ep%2C++87+%3C%3D+M+*4%5Ep%2C+110+%3C%3D+M+*+5%5Ep%2C+M+%3E+0%2C+p+%3E+1&quot; title=&quot; 43 &amp;lt;&amp;#x3d; M &amp;#x2a; 1&amp;#x5e;p, 54 &amp;lt;&amp;#x3d; M &amp;#x2a; 2&amp;#x5e;p,  69 &amp;lt;&amp;#x3d; M &amp;#x2a; 3&amp;#x5e;p,  87 &amp;lt;&amp;#x3d; M &amp;#x2a;4&amp;#x5e;p, 110 &amp;lt;&amp;#x3d; M &amp;#x2a; 5&amp;#x5e;p, M &amp;gt; 0, p &amp;gt; 1 - Wolfram|Alpha&quot;&gt;gibt es&lt;/a&gt;:
&lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427eldunk6kv56&quot; title=&quot;43 &amp;lt;&amp;#x3d; M &amp;#x2a; 1&amp;#x5e;p, 54 &amp;lt;&amp;#x3d; M &amp;#x2a; 2&amp;#x5e;p,  69 &amp;lt;&amp;#x3d; M &amp;#x2a; 3&amp;#x5e;p,  87 &amp;lt;&amp;#x3d; M &amp;#x2a;4&amp;#x5e;p, 110 &amp;lt;&amp;#x3d; M &amp;#x2a; 5&amp;#x5e;p, M &amp;gt; 0, p &amp;gt; 1&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;&lt;img src=&quot;http://www.wolframalpha.com/share/img?i=d41d8cd98f00b204e9800998ecf8427eldunk6kv56&amp;f=HBQTQYZYGY4TQM3BGZRTSNJRHEYDCM3EHFQTMOBUMVTGCMDFG43Qaaaa&quot; \&gt;&lt;/a&gt;
Demnach wächst das Internet nicht exponentiell, sondern polynomial.&lt;/dd&gt;
&lt;/dl&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Und dadurch wird klar: Diese Formeln sind für echte Folgen, nicht für ein paar Werte, und helfen hier nicht weiter. Sie sagen nur, dass man die Werte sowohl exponentiell als auch polynomial fortsetzen kann.
&lt;/p&gt;&lt;h4&gt;Trafficentwicklung in Deutschland&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;Aber es geht in der Diskussion um Volumenbegrenzungen für DSL-Anschlüsse ja gar nicht um das ganze Internet. Es geht um DSL-Anschlüsse in Deutschland, und ohne mobiles Internet, ohne die Internetisierung der Entwicklungsländer, kann das alles ja schon wieder ganz anders aussehen. Oben im Cisco-Graph sah das Wachstum für Deutschland sehr linear aus.&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Aber es geht ja ein bisschen genauer. 
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Aus der &lt;a href=&quot;http://www.ciscovni.com/vni_forecast/advanced.html&quot; title=&quot;Cisco VNI Downloads&quot;&gt;Advanced-Version&lt;/a&gt; des Cisco-Tools kommen die genauen Daten: Traffic bis 2016 ohne mobiles Internet und nur für Deutschland. Zugunsten der Telekom mische ich Business und Consumer-Segment, auch wenn es bei diesen Tarifen wahrscheinlich nur um Consumer gehen wird (so ganz sicher kann man sich eben nicht sein). Das sieht so aus&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;https://picasaweb.google.com/lh/photo/JExxSgtdzH7sD5XNTaMImdMTjNZETYmyPJy0liipFm0?feat=embedwebsite&quot; title=&quot;Picasa Web Albums - onli onli&quot;&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-i2r9qgIzStU/UU5QHmV_buI/AAAAAAAACfw/kgB1GF8Q3mU/s800/vnigraph.jpg&quot; height=&quot;435&quot; width=&quot;420&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Die genauen Werte sind 1196.9, 1748.6, 2175.3, 2744.6, 3370.2, 4040.4.  Das Wachstum also 552, 427, 569, 626, 670. Wieder sich steigerndes Wachstum, abgesehen von dem Einbruch auf 2013.  So sieht die Ableitung der Interpolationsfunktion aus (interessante Abweichung):&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427e11o091a0tv&quot; title=&quot;derivative -529.8&amp;#x2b;2945.5 x-1649.64 x&amp;#x5e;2&amp;#x2b;495.579 x&amp;#x5e;3-68.3083 x&amp;#x5e;4&amp;#x2b;3.57083 x&amp;#x5e;5  from x&amp;#x3d;1 to 6&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;&lt;img src=&quot;http://www.wolframalpha.com/share/img?i=d41d8cd98f00b204e9800998ecf8427e11o091a0tv&amp;f=HBQTQYZYGY4TSM3BGZRTSZDGGEYDCM3EHFQTOM3CMMYTCMDDHFRQaaaa&quot; \&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Das ist Wachstum um &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427ed7ab44r1uv&quot; title=&quot;1196.9&amp;#x2a;x&amp;#x3d;1748.6&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;46%&lt;/a&gt;, &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427e5v3ekumct1&quot; title=&quot;1748.6&amp;#x2a;x&amp;#x3d;2175.3&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;24%&lt;/a&gt;, &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427e270phvjsml&quot; title=&quot;2175.3&amp;#x2a;x&amp;#x3d;2744.6&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;26%&lt;/a&gt;, &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427eo3ho3mlvu0&quot; title=&quot;2744.6&amp;#x2a;x&amp;#x3d;3370.2&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;22%&lt;/a&gt;, &lt;a href=&quot;http://www.wolframalpha.com/share/clip?f=d41d8cd98f00b204e9800998ecf8427eo3a173bp29&quot; title=&quot;3370.2&amp;#x2a;x&amp;#x3d;4040.4&amp;ndash;Wolfram|Alpha Clip &#039;n Share&quot;&gt;19%&lt;/a&gt;. Also: Nein, bei dem Wachstumsabfall am Ende ist das &lt;strong&gt;eher kein exponentielles Wachstum&lt;/strong&gt;, sondern polynomiales.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Als Chart:&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;img src=&quot;http://chart.googleapis.com/chart?chxr=1,2011,2016&amp;chxs=1,676767,11.5,0,lt,676767&amp;chxtc=1,10&amp;chxt=y,x&amp;chs=500x400&amp;cht=lxy&amp;chco=0000FF&amp;chd=t:-1|46,24,26,22,19&amp;chg=-1,-1,1,1&amp;chls=2&amp;chtt=Festnetz-Internetwachstum+in+Deutschland+in+%25&quot; width=&quot;500&quot; height=&quot;400&quot; alt=&quot;Festnetz-Internetwachstum in Deutschland in %&quot; /&gt;


&lt;/p&gt;&lt;h4&gt;Fazit&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;Zuerst: Ja, die Cisco-Daten sagen aus, dass das Internet insgesamt exponentiell wächst (wenn Internet == Traffic). Nicht jedoch das deutsche Internet ohne Mobilfunk, um das es bei der DSL-Volumenbegrenzungsdiskussion geht.  Aber auch das deutsche Internet wächst nicht linear, sondern es wächst der Prognose nach von 26% bis 19% im Jahr, was immer noch gewaltiges Wachstum ist. Das könnte für die Telekom tatsächlich eine Herausforderung sein - um das richtig zu bewerten müsste man die Kapazitäten kennen. Trotzdem deuten die Daten daraufhin, dass sich die Situation für die Telekom im DSL-Bereich in Zukunft eher entspannen wird, wenn das prozentuale Wachstum tatsächlich weiterhin abnimmt. Dementsprechend halte ich den simplen Hinweis auf exponentielles Wachstum des Internets für irreführend.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;&lt;em&gt;PS: Danke an &lt;a href=&quot;https://www.robertnitsch.de/blog/&quot; title=&quot;brauch&amp;#039;sch | privater Blog, persönliche Ansichten und Meinungen&quot;&gt;Robert&lt;/a&gt; und &lt;a href=&quot;https://weltenwandel.wordpress.com/&quot; title=&quot;WeltenWandel | Gewandelte Welten wandeln Welten &amp;#8211; oder &amp;#8211; Die Welt im Wandel&quot;&gt;Hartmut&lt;/a&gt; für eure Hilfe beim Erstellen des Artikels.&lt;/em&gt; &lt;/p&gt; 
    </content:encoded>

    <pubDate>Sun, 24 Mar 2013 15:18:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1284/guid.html</guid>
    
</item>
<item>
    <title>Bash: echo mit Umbrüchen</title>
    <link>http://www.onli-blogging.de/index.php?/1283/Bash-echo-mit-Umbruechen.html</link>
            <category>Code</category>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1283/Bash-echo-mit-Umbruechen.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1283</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1283</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;break&quot;&gt;Weil ich es &lt;a href=&quot;http://www.onli-blogging.de/index.php?/1282/iCTF-2013-netflow.html&quot; title=&quot;iCTF 2013 -  { netflow: [] } - onli blogging&quot;&gt;das nächste mal&lt;/a&gt; sicher wieder brauche:&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;So gibt man einen String in der Originalformatierung aus:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;test=&quot;abc
def&quot;
echo -e &quot;$test&quot;   
abc
def&lt;/pre&gt;&lt;p class=&quot;break&quot;&gt;Genauso in Backticks:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;test2=$(echo -e &quot;$test&quot; | sed &#039;s/[ad]/z/g&#039;)
echo -e &quot;$test2&quot;
zbc
zef&lt;/pre&gt;&lt;p class=&quot;break&quot;&gt;Wobei auch die doppelten Anführungszeichen gehen:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;test2=&quot;$(echo -e &quot;$test&quot; | sed &#039;s/[ad]/z/g&#039;)&quot;
echo -e &quot;$test2&quot;
zbc
zef
&lt;/pre&gt;&lt;p class=&quot;break&quot;&gt; &lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 23 Mar 2013 08:32:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1283/guid.html</guid>
    
</item>
<item>
    <title>iCTF 2013 -  { netflow: [] }</title>
    <link>http://www.onli-blogging.de/index.php?/1282/iCTF-2013-netflow.html</link>
            <category>Technikzeugs</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1282/iCTF-2013-netflow.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1282</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1282</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Ich komme gerade vom &lt;a href=&quot;http://www.ictf2013.net/&quot; title=&quot;&quot;&gt;iCTF 2013&lt;/a&gt;. 
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Das Szenario war wie folgt: Auf einem isolierten Server liefen eine Reihe von (größtenteils Python-)Diensten, z.B. ein kleines Blogsystem und ein Spiel. Die Teams schreiben Exploits, um über die enthaltenen Sicherheitslücken an die Flaggen (spezielle Strings) zu kommen, führen diese aber nicht selbst aus, sondern übermitteln sie an die Spielleiter, die in einem eigenen Dienst die Exploits dann gegen die Dienste der anderen laufen lassen. Entdeckt ein Team, dass ein anderes gerade auf eine eigene Flagge zugegriffen hat, kann es das melden und so auch dafür Punkte bekommen.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Die Exploits zu finden war durchaus eine Herausforderung. Kurz vor Ende wurde noch ein echtes entdeckt, konnte aber nicht mehr rechtzeitig programmiert werden, ein anderes Exploit funktionierte unerklärlicherweise nicht und ein drittes wurde zwar übermittelt, aber nicht mehr ausgeführt. Das war durchaus schade.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Mich hat die Verteidigung gereizt. Relativ früh bemerkten wir, dass Flaggen aus dem Pseudo-Blogsystem ausgelesen wurden. Das Schema war relativ simpel: Flaggen lagen als Datei in blogsystem/flags, die Artikel des Blogsystems als Datei gespeichert in blogsystem/posts, und die Angreifer schafften es, in die blogsystem/posts.metadata Javascript einzuschleusen, das dann vom (node-)Server ausgeführt wurde und die Flaggen in die posts geschrieben hat. Also schrieb ich ein Bash-Skript, dass sekündlich alle Posts auf Flaggen durchsucht, bei entdeckter Flagge das Änderungsdatum der Datei protokolliert und an meinen Rechner schickte (per netcat). Dort lief dann ein Skript, das aus dem netflow-Protokoll die id desjenigen auslas, der zu dem Zeitpunkt des Angriffs auf den Port des Blogsystems zugegriffen hat. Wegen &lt;a href=&quot;http://mechanize.rubyforge.org/&quot; title=&quot;mechanize-2.6.0 Documentation&quot;&gt;mechanize&lt;/a&gt; erledigten ruby-Skript das Ausfüllen der Formulare, wieder ein Bashskript steuerte die beiden Rubyskripte und nahm die Angriffszeitpunkte entgegen.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Das hat auch ganz gut funktioniert, obwohl es in dem Trubel unwahrscheinlich lang gedauert hat, die Skripte zum Laufen zu kriegen (mein letztes Bash-Skript ist ne Weile her). Oder es hätte ganz gut funktioniert, wenn nicht die ganze Zeit die Infrastruktur ausgefallen wäre. In den letzten Stunden sah das netflow-Log so aus:&lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;{ 
&quot;netflow&quot;: [] 
}&lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;Das machte das Schreiben der Skripte nicht einfacher (json mit Bash parsen erfordert grep und sed, und das muss man schon wirklich gegen Livedaten testen) und machte die ganze Bemühungen für die Katz, weil das fertige Skript ohne Angreifer-Log dann ja auch nichts reporten konnte. 
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Trotzdem kamen aus dieser Ecke, vor dem Zusammenbruch der Infrastruktur, unsere Punkte, und das könnte man das nächste mal sicher noch verbessern (Intrusion-Detection-System verwenden und direkt Wireshark einrichten).  &lt;/p&gt; 
    </content:encoded>

    <pubDate>Sat, 23 Mar 2013 01:58:20 +0100</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1282/guid.html</guid>
    
</item>
<item>
    <title>Speicherverbrauch kleiner Fenstermanager unter Precise</title>
    <link>http://www.onli-blogging.de/index.php?/1281/Speicherverbrauch-kleiner-Fenstermanager-unter-Precise.html</link>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1281/Speicherverbrauch-kleiner-Fenstermanager-unter-Precise.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1281</wfw:comment>

    <slash:comments>11</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1281</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;&lt;img src=&quot;http://chart.googleapis.com/chart?chxt=y&amp;chbh=a&amp;chs=600x400&amp;cht=bvg&amp;chco=A2C180,FF9900,0000FF,E5ECF9,80C65A,990066,F3F33C,AA0033,4D3006&amp;chd=t:1|3|3|4.5|7|16|35|36|70&amp;chdl=dwm|jwm|Blackbox|IceWM|Openbox|Fluxbox|E17|LXDE|XFCE&amp;chtt=Speicherverbrauch in MB&quot; width=&quot;600&quot; height=&quot;400&quot; alt=&quot;Speicherverbrauch in MB&quot; /&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;http://www.onli-blogging.de/index.php?/1225/Speicherverbrauch-und-Startzeit-unter-Precise.html&quot; title=&quot;Speicherverbrauch und Startzeit unter Precise - onli blogging&quot;&gt;Wieder&lt;/a&gt; Daten, die nicht von mir sind (&lt;a href=&quot;https://l3net.wordpress.com/2013/03/17/a-memory-comparison-of-light-linux-desktops/&quot; title=&quot;A Memory Comparison of Light Linux Desktops | l3net - a layer 3 networking blog&quot;&gt;Quelle&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=5415120&quot; title=&quot;A Memory Comparison of Light Linux Desktops | Hacker News&quot;&gt;via&lt;/a&gt;).
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Die Werte sind klein, aber auch anders errechnet als die von mir &lt;a href=&quot;http://www.onli-blogging.de/index.php?/327/Speicherverbrauch-und-Bootzeit-unter-Ubuntu.html&quot; title=&quot;Speicherverbrauch und Bootzeit unter Ubuntu - onli blogging&quot;&gt;damals&lt;/a&gt;, denn hier wurde nur der Speicherverbrauch der Fenstermanager selbst angeschaut, nicht des Gesamtsystems. &lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Für mich ist es interessant zu sehen, wie die Vermutungen und Trends von damals sich bewahrheitet und gehalten haben: XFCE ist immer noch deutlich speicherhungriger als die Alternativen, insbesondere LXDE, was wiederum deutlich größer ist als die echten kleinen Fenstermanager. Und E17 kann mit LXDE mithalten, was schön zu sehen ist - das war bei der letzten Messung nur zu erhoffen. &lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 21 Mar 2013 17:02:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1281/guid.html</guid>
    
</item>
<item>
    <title>Die Wehwehchen der Anderen</title>
    <link>http://www.onli-blogging.de/index.php?/1278/Die-Wehwehchen-der-Anderen.html</link>
            <category>Linux</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1278/Die-Wehwehchen-der-Anderen.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1278</wfw:comment>

    <slash:comments>21</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1278</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;whiteline&quot;&gt;Unity, Adware, Mir und Rolling Releases - es gab und gibt viel zu diskutieren und zu streiten im Ubuntuland. Vielleicht beruhigt da der Blick über den Tellerrand: Auch andere Distributionen und Projekte hatten in letzter Zeit ihre Probleme, und manche davon waren unschön. Unschön genug, um Mitleid zu haben, und sich darüber zu freuen, dass dieser Kelch bisher an uns vorbeigingen.
&lt;/p&gt;&lt;h4&gt;Fedora 18: Das Anaconda-Desaster&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;Vielleicht hätte eine Orientierung an den Qualitätskriterien des &lt;a href=&quot;http://www.deesaster.org/&quot; title=&quot;deesaster.org&quot;&gt;Wikigotts Dee&lt;/a&gt; das verhindert (na, wie komm ich darauf?), aber so hatte Fedora 18 nach Release wohl mehr als nur kleinere Qualitätsprobleme. So viele, dass sie ein äußerst &lt;a href=&quot;http://www.dedoimedo.com/computers/fedora-18-kde.html&quot; title=&quot;      Fedora 18 Spherical Cow review - Bad bad bad    &quot;&gt;spaßiges Review provozierten&lt;/a&gt;. Marke:&lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;strong&gt;Desktop effects&lt;/strong&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Did not work, at all. Nothing.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Aber es war der Installer Anaconda, der so richtig missraten zu sein scheint. Unter der Abschnittsüberschrift &quot;Installation - Worst ever&quot; finden sich Fundstücke wie&lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;break&quot;&gt;You enter a world of smartphone-like diarrhea that undermines everything and anything that is sane and safe in this most important of software configuration steps.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Wer das für übertrieben hält - und nun gerade ansetzen will, mich für die Auswahl dieses doch offensichtlich verwerflichen Reviews zu flamen - dem seien die Screenshots und die ausführliche Beschreibung ans Herz gelegt. Von &lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;break&quot;&gt;Confirmation buttons show everywhere, text is spread about, the fonts size and placement is equally chaotic. I could not think of any way to make this any uglier or less friendly.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class=&quot;break&quot;&gt;zu &lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;break&quot;&gt;It gets worse once you hit the installation destination nonsense. You get disks represented visually. That&#039;s it. Not by their names. By identical icons with labels that refer to actual disk models. Not /dev/sda or /dev/sdb, which is what you expect. No. You get the manufacturer&#039;s model strings. And I happen to have two identical disks. So which is which? I&#039;ll give you a hint, the two disks are shown in reverse order, /dev/sdb first, /dev/sda second. What moronity.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class=&quot;break&quot;&gt;bis &lt;/p&gt;&lt;blockquote&gt;&lt;p class=&quot;break&quot;&gt;Let us not forget bad alignment, fonts and all that. And then, it says below, before continuing to the next step, but there&#039;s no next step, no buttons. Look at the lost equity. Look at the stupidity of that whole deal. If software could contract disease, it would be suffering right now from Ebola, AIDS and Typhus, all at the same time.&lt;/p&gt;&lt;/blockquote&gt;&lt;p class=&quot;whiteline&quot;&gt;ist alles dabei und wird alles gezeigt.
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;&lt;a href=&quot;https://picasaweb.google.com/lh/photo/GGmnsQwcx3ep7VqWA9hYUdMTjNZETYmyPJy0liipFm0?feat=embedwebsite&quot; title=&quot;Picasa Web Albums - onli onli&quot;&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-jOc1IKB4F1Y/UUCnDngd3uI/AAAAAAAACdU/IIiPsGh1BT4/s800/fedora-18-installer-steps.jpg&quot; height=&quot;412&quot; width=&quot;680&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Der geneigte Ubuntunutzer mit vagen Wissen durch Hörensagen über Fedora mag sich nun wundern: &quot;Dass Fedora früher Probleme mit dem Installer hatte ist mir neu, woher kommen die Probleme jetzt?&quot; Und tatsächlich ist das eine Situation, die dem kritischen Ubuntunutzer bekannt vorkommen könnte: Er wurde neu designt. Von Designern. Über einen längeren Zeitraum wurde versucht, mit geballter Designpower Anaconda einfacher, sicherer und besser zu machen - insbesondere bei Máirín Duffy habe ich das aus der Ferne &lt;a href=&quot;http://blog.linuxgrrl.com/2011/06/16/making-fedora-easier-to-use-the-installer-ux-redesign/&quot; title=&quot;Making Fedora easier to use &amp;amp; the Installer UX redesign | Máirín Duffy&quot;&gt;von Anfang&lt;/a&gt; an verfolgt. Und was auf dem virtuellen Papier noch halbwegs vernünftig klang, wurde mit einer falschen Annahme hier, einer vermeintlichen Erleichterung dort und insbesondere inkonsistenter Umsetzung zu einem &lt;a href=&quot;http://www.knetfeder.de/linux/index.php?id=143&quot; title=&quot;Pinguinzubehör: Fedora 18 angetestet – (k)eine Usability-Katastrophe&quot;&gt;weithin gescholtenen&lt;/a&gt; Projekt, das wohl sogar &lt;a href=&quot;http://www.phoronix.com/scan.php?page=news_item&amp;px=MTIxODk&quot; title=&quot;[Phoronix] Fedora 18 Isn&#039;t Looking Too Good, Anaconda Problems&quot;&gt;das Release&lt;/a&gt; verzögert hat.
&lt;/p&gt;&lt;h4&gt;Java: Die unsichere Sprache&lt;/h4&gt;&lt;p class=&quot;whiteline&quot;&gt;So kritisch Usability-Probleme, Machtspiele und Technologiefragen auch sein mögen - es geht immer noch kritischer. Beispielweise könnte eine Programmiersprache dafür bekannt werden, inhärent unsicher zu sein. Auf dem besten Weg ist Oracles Java-Projekt: Da nutzen &lt;a href=&quot;http://www.informationweek.com/aroundtheweb/security/supercritical-java-zeroday-exploits-two/73622f475a757a524a5a34624773437256312b736f513d3d&quot; title=&quot;Around the Web - Super-critical Java zero-day exploits TWO bugs -- &quot;&gt;Super-kritische Java-Exploits&lt;/a&gt; gleich zwei Bugs, und das war nicht der erste in letzter Zeit. Da bekommt selbst eine &lt;a href=&quot;http://java-0day.com/&quot; title=&quot;Java 0day countdown&quot;&gt;extra Webseite&lt;/a&gt; zum Beantworten der Frage &quot;How Long Is It Since The Last Java Zero Day Was Discovered?&quot; eine echte Daseinsberechtigung.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Die Propagandawirkung wird verschärft durch Oracles Hintergrund. Oracle kaufte Sun, und auch wenn Sun durchaus selbst Probleme mit der Entwicklergemeinde hatte, wurde Java in den letzten Jahren eine weitgenutzte Programmiersprache - insbesondere auch im akademischen Umfeld. Trotz all der Kritik, welche die Sprache durch ihren Boilerplate-Lastigkeit immer wieder abbekommt. Doch Oracle tat einiges dafür, weiteren Wachstumserfolg zu verhindern: Direkt wurde Google für ihre Java-Nutzung in Android verklagt, was ein äußerst interessantes &lt;a href=&quot;http://www.groklaw.net/article.php?story=20120531172522459&quot; title=&quot;Groklaw - Oracle v. Google - Judge Alsup Rules APIs Not Protected By Copyright - UPDATE 1 ~mw&quot;&gt;API-Copyright-Urteil&lt;/a&gt; gegen Oracle provozierte - und viele abschreckte, Java auch nur in Betracht zu ziehen. Als ob Oracle  nicht schon für seine absurde Entscheidung, &lt;a href=&quot;http://www.cuddletech.com/blog/pivot/entry.php?id=1120&quot; title=&quot;The Blog of Ben Rockwood&quot;&gt;Solaris proprietär zu machen&lt;/a&gt;, verhasst genug wäre. &lt;/p&gt;&lt;p class=&quot;whiteline&quot;&gt;Die Zero-Days-Exploits jetzt passen da nur zu gut ins Bild des eben auch unfähigen, geldgierigen und unethischen Giganten.
&lt;/p&gt;&lt;h4&gt;Und sonst?&lt;/h4&gt;&lt;p class=&quot;break&quot;&gt;Welches Projekt hatte noch Ärger? Um ehrlich zu sein, an Streitthemen in der Linuxgemeinde ist in den News fast immer Ubuntu beteiligt. Vielleicht habe ich ja was übersehen? Wenn ja,  ab in die Kommentare damit - Ubuntu ist manchmal fürchterlich, aber das wenigstens nicht alleine. &lt;/p&gt; 
    </content:encoded>

    <pubDate>Fri, 15 Mar 2013 08:44:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1278/guid.html</guid>
    
</item>
<item>
    <title>Chrome verbieten, Zoomen zu verbieten</title>
    <link>http://www.onli-blogging.de/index.php?/1277/Chrome-verbieten,-Zoomen-zu-verbieten.html</link>
            <category>Technikzeugs</category>
    
    <comments>http://www.onli-blogging.de/index.php?/1277/Chrome-verbieten,-Zoomen-zu-verbieten.html#comments</comments>
    <wfw:comment>http://www.onli-blogging.de/wfwcomment.php?cid=1277</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.onli-blogging.de/rss.php?version=2.0&amp;type=comments&amp;cid=1277</wfw:commentRss>
    

    <author>nospam@example.com (onli)</author>
    <content:encoded>
    &lt;p class=&quot;break&quot;&gt;Seiten können mit der CSS-Anweisung &lt;/p&gt;&lt;pre class=&quot;code&quot;&gt;-webkit-text-size-adjust: none&lt;/pre&gt;&lt;p class=&quot;whiteline&quot;&gt;verhindern, dass Texte in Chrome beim Zoomen vergrößert werden. Mir ist nicht ganz klar, warum solch ein offensichtlich Accessibility-feindliches Feature in den Browser kommt. Gutes Beispiel war dieser ansonsten interessante Artikel über &lt;a href=&quot;http://globaldev.co.uk/2013/03/ruby-2-0-0-in-detail/&quot; title=&quot;Ruby 2.0.0 in Detail&quot;&gt;Ruby 2.0&lt;/a&gt; (inzwischen wurde die Seite gefixt): Egal wie weit hineingezoomt wurde, der mit 13px definitiv zu kleine Text blieb immer gleich groß - besonders ungut, weil &lt;a href=&quot;https://chrome.google.com/webstore/detail/ireader/ppelffpjgkifjfgnbaaldcehkpajlmbc&quot; title=&quot;Chrome Web Store - iReader&quot;&gt;iReader&lt;/a&gt; - sonst die beste Lösung für solche Fälle - den Inhalt nicht erkennt.
&lt;/p&gt;&lt;p class=&quot;break&quot;&gt;Wie kommt man auf solchen Unsinn? Wie auch immer, natürlich gibt es eine Lösung - mehrere sogar. Die komfortabelste ist diese &lt;a href=&quot;https://chrome.google.com/webstore/detail/webkit-text-size-adjust-r/jgfjnnljbpgajihjcajeiabjomhmjhec&quot; title=&quot;Chrome Web Store - Webkit-Text-Size-Adjust Remover&quot;&gt;Erweiterung&lt;/a&gt;, die &lt;code&gt;-webkit-text-size-adjust&lt;/code&gt; einfach für alle Elemente auf &lt;code&gt;auto !important&lt;/code&gt; setzt (&lt;a href=&quot;http://stackoverflow.com/questions/7649811/how-to-disable-webkit-text-size-adjust-with-javascript&quot; title=&quot;css - How to disable webkit-text-size-adjust with JavaScript - Stack Overflow&quot;&gt;via&lt;/a&gt;). &lt;/p&gt; 
    </content:encoded>

    <pubDate>Thu, 14 Mar 2013 08:37:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.onli-blogging.de/index.php?/1277/guid.html</guid>
    
</item>

</channel>
</rss>
