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

<rss version="2.0"
  xmlns:cc="http://backend.userland.com/creativeCommonsRssModule"
  xmlns:icbm="http://postneo.com/icbm"
>
  <channel>
    <title>bblog</title>
    <link>http://beat.bolli.homeip.net/bblog/</link>
    <description>beating the one-way web</description>
    <image>
      <url>http://drbeat.li/pic/favicon.png</url>
      <title>drbeat.li's logo</title>
      <link>http://drbeat.li/pic/favicon.png</link>
    </image>
    <language>de-ch</language>
    <copyright>Copyright Beat Bolli &lt;bbolli@ewanet.ch&gt;
      siehe/see http://creativecommons.org/licenses/by-nc-sa/1.0/
    </copyright>
    <cc:license>http://creativecommons.org/licenses/by-nc-sa/1.0/rdf</cc:license>
    <generator>blosxom/2.0 (http://www.blosxom.com)</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <icbm:latitude>47.0452</icbm:latitude>
    <icbm:longitude>7.2715</icbm:longitude>
    <item>
      <title>Jubiläum: 40 Jahre Mondlandung</title>
      <link>http://beat.bolli.homeip.net/bblog/hardware/2009/07/20#mond_40</link>
      <pubDate>Mon, 20 Jul 2009 19:06:00 GMT</pubDate>
      <description><![CDATA[ <p><img src="/pic/blog/step_on_moon.jpg" alt="" class="right" style="float:right" /> Heute vor vierzig Jahren war es soweit: &#8220;The Eagle has landed!&#8221;</p>

<p>Ich kann mich noch gut erinnern, wie die ganze Familie Bolli bei unseren Nachbarn Bühlmanns
in der Stube sass und alle gebannt die Live-Reportage verfolgten. Ich durfte bis ca. 2 Uhr wach
bleiben (hey, ich war erst 6 Jahre alt!), bis Neil Armstrong endlich mit beiden Füssen auf
dem Mond stand.</p> ]]></description>
    </item>

    <item>
      <title>A quote from Tom DeMarco</title>
      <link>http://beat.bolli.homeip.net/bblog/software/2009/07/20#quote_demarco</link>
      <pubDate>Mon, 20 Jul 2009 18:38:00 GMT</pubDate>
      <description><![CDATA[ <blockquote><p>So, how do you manage a project without 
controlling it? Well, you manage the 
people and control the time and money. 
You say to your team leads, for example, </p>

<p>&#8220;I have a finish date in mind, and I’m not 
even going to share it with you. When I 
come in one day and tell you the project 
will end in one week, you have to be 
ready to package up and deliver what 
you’ve got as the final product. Your job 
is to go about the project incrementally, 
adding pieces to the whole in the order of 
their relative value, and doing integration
and documentation and acceptance testing
as you go.&#8221;</p>

<p>This might sound like an agile-methods 
prescription, but I’m too far 
away today from the actual building of 
software to recommend at the methods 
level. Rather, I’m advocating a management 
approach, one that might well steer 
the team toward agile methods, at least 
toward the incremental aspects of the 
agile school.</p></blockquote>

<p>&#8212; <a href="http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0709/rW_SO_Viewpoints.pdf">Tom DeMarco</a>,
via <a href="http://www.codinghorror.com/blog/archives/001288.html">Coding Horror</a></p> ]]></description>
    </item>

    <item>
      <title>Velotour rund um den Bodensee</title>
      <link>http://beat.bolli.homeip.net/bblog/familie/2009/07/10#Velotour_Bodensee</link>
      <pubDate>Fri, 10 Jul 2009 18:55:00 GMT</pubDate>
      <description><![CDATA[ <p><a href="/album/-Biketouren/Bodensee+2009-07">Bilder</a></p>

<h4>Tag 0: Aarberg - Schaffhausen - Stein am Rhein</h4>


<ul>
<li>Aarberg - <span class="caps">SBB</span> Lyss - Bern - Schaffhausen (ohne Umsteigen!)</li>
<li>Rheinfall (Neuhausen), Stein am Rhein (ca. 22 km)</li>
<li>sonnig und heiss</li>
<li>das Baden im Rhein leider verpasst, in Diessenhofen wäre es sehr schön gewesen</li>
<li>Spaziergang zum Franziskanerkloster auf der Insel Werd</li>
<li>Übernachtung im <a href="http://www.schwanen-hotel.ch/">Hotel Schwanen</a></li>
</ul>



<h4>Tag 1: Stein am Rhein - Arbon</h4>


<ul>
<li>Steckborn, Kreuzlingen, Konstanz, Mainau, Romanshorn, Arbon (ca. 72 km)</li>
<li>mit Rückenwind gings leichter als erwartet, deshalb die lange Etappe</li>
<li>sonnig und heiss</li>
<li>Übernachtung im Hotel Bellevue</li>
<li>Nachtessen im neu eröffneten Storchen &#8212; sehr empfehlenswert!
<ul>
<li>keine Kreditkarten; das Haus hat (noch) keinen Telefonanschluss ;-)</li>
</ul>
</li>
</ul>



<h4>Tag 2: Arbon - Lindau</h4>


<ul>
<li>Rorschach, Rheineck, Höchst, Bregenz, Lindau (ca. 43 km)</li>
<li>bis am Mittag nur Regen</li>
<li>in Bregenz die Seebühne gesehen, wird vorbereitet für «Aida»</li>
<li>der einzige Hinweis an der Grenze zur Bundesrepublik Deutschland: «Freistaat Bayern»</li>
<li>Übernachtung im Hotel Seerose</li>
<li>Nachtessen in der Alten Post</li>
</ul>



<h4>Tag 3: Lindau - Überlingen</h4>


<ul>
<li>Langenargen, Friedrichshafen, Immenstaad, Meersburg, Überlingen (ca. 53 km)</li>
<li>regnerisch</li>
<li>erhielten Besuch von Evas Mutter, besuchten zusammen das Zeppelinmuseum</li>
<li>lauter schöne Städtchen</li>
<li>Übernachtung im Grünen Baum</li>
</ul>



<h4>Tag 4: Überlingen - Stein am Rhein - Aarberg</h4>


<ul>
<li>Ludwigshafen, Radolfzell, Horn, Stein am Rhein (ca. 50 km)</li>
<li>bewölkt</li>
<li>Essen in Deutschland ist viel billiger als z.B. in Spanien (von der Schweiz ganz zu schweigen!)</li>
<li>Rückreise <span class="caps">SBB</span> Stein am Rhein - Schaffhausen - Bern - Lyss, von da per Rad nach Aarberg</li>
</ul>

 ]]></description>
    </item>

    <item>
      <title>CSS Naked Day!</title>
      <link>http://beat.bolli.homeip.net/bblog/netz/2009/04/09#css_naked_2009</link>
      <pubDate>Thu, 09 Apr 2009 12:17:00 GMT</pubDate>
      <description><![CDATA[ <p>As is good tradition <a href="http://naked.dustindiaz.com/">on this day of the year</a>,
I have cleared out my style sheet. Enjoy the early &#8216;90ies look!</p> ]]></description>
    </item>

    <item>
      <title>April, April!</title>
      <link>http://beat.bolli.homeip.net/bblog/allgemein/2009/04/02#_1_april_2009</link>
      <pubDate>Thu, 02 Apr 2009 08:58:00 GMT</pubDate>
      <description><![CDATA[ <p>Meine alljährliche Sammlung von 1.-April-Scherzen:</p>


<ul>
<li>Slashdot: <a href="http://tech.slashdot.org/article.pl?sid=09%2F03%2F31%2F1950221"><span class="caps">IE8.1 </span>supports Firefox plugins, rendering engine</a></li>
<li>Opera: <a href="http://labs.opera.com/news/2009/04/01/">Introducing Opera face gestures</a></li>
<li>The Register: <a href="http://www.theregister.co.uk/2009/04/01/skype_nsa_backdoor_iphone_deal/print.html">eBay put Skype on iPhone &#8216;to boost price of <span class="caps">NSA </span>backdoor&#8217;</a></li>
<li>Python: <a href="http://www.python.org/dev/peps/pep-0401/"><span class="caps">BDFL</span> Retirement</a></li>
<li>Ubuntu: <a href="http://tuxradar.com/content/ubuntu-rewrite-linux-kernel-using-mono">To rewrite the Linux kernel using Mono</a></li>
<li>Brack.ch: <a href="http://www.brack.ch/tabid/294/Default.aspx?ID=101986">Chipdrive <span class="caps">LRPA</span>-01-CH Biometrics Changer</a></li>
</ul>



<p>Und noch dies:</p>

<blockquote><p><strong>Die neue Rechtschreibereform. Endlich sinnvoll!</strong></p>

<p>Wieder steht eine neue Rechtschreibereform vor der Tür. Nachdem die letzte
gescheitert ist und seither jeder so schreibt, wie er will, kommt nun ein
absolut gesunder und durchdachter Neuansatz von Seiten der Dudenherausgebern
auf den Markt (Erstausgabe vom April 2009 / in der Abteilung Grammatik für
Alle! Seite 15). Wir zitieren:</p>

<p>1. alles wird kleingeschrieben! auch nach einem punkt. viele grafiker haben
es vorgemacht und sind bereits vor jahren als vorreiter der neuen
dudenreform zur kleinschreibung übergegangen. die meisten grafiker behandeln
texte sowieso gerne als grauwerte! aber seit man auch nach punkten
kleinschreiben kann, ist die fehlerquote bei erstklässlern enorm gesunken.</p>

<p>2. dehnungen und schärfungen werden entdehnt und entschärft! diese
gotesgnädige masname eliminirt bereits in der grundschule di gröste
felerursache überhaupt, den den sin der konsonantenverdopelung hat onehin
nimand kapirt.</p>

<p>3. reduktion auf das wesentliche: v und ph werden durch f ersezt! z durch s
und sch wird verkürzt auf s. dadurch wird das alfabet um swei buchstaben
redusirt. das sreiben mit sreibmasinen fereinfacht sich enorm, damit so
wertfole und vor allen dingen ausländise arbeitskräfte der wirtsaft als
angelernte sugefürt werden könen, für ale sweiser, deutse und östereicher,
di di snauze fol fon arbeit haben.</p></blockquote> ]]></description>
    </item>

    <item>
      <title>How to create an empty Git branch</title>
      <link>http://beat.bolli.homeip.net/bblog/software/2009/04/01#git_empty_branch</link>
      <pubDate>Wed, 01 Apr 2009 07:08:00 GMT</pubDate>
      <description><![CDATA[ <p>(Source: <a href="http://gitcasts.com/posts/empty-branches">Empty Branches</a>)</p>

<p>Create a new symbolic reference:</p>

<p><code>git symbolic-ref HEAD refs/heads/&lt;newbranch&gt;</code></p>

<p>Empty the index:</p>

<p><code>git rm --cached -r .</code></p>

<p>Empty the working copy (watch out!):</p>

<p><code>rm -r * .gitignore</code></p>

<p>Commit the empty branch:</p>

<p><code>git commit --allow-empty -m'initial empty branch'</code></p>

<p>Because .gitignore is under Git control, this file can have different content depending
on the current branch, so if you have e.g. your project&#8217;s homepage in a branch of your
source repository, the website&#8217;s .gitignore can be different than the one from the
source branch.</p> ]]></description>
    </item>

    <item>
      <title>bvg@six-card-solutions.com</title>
      <link>http://beat.bolli.homeip.net/bblog/allgemein/2009/04/01#bvg_six</link>
      <pubDate>Wed, 01 Apr 2009 06:58:00 GMT</pubDate>
      <description><![CDATA[ <p>Hey Bärni, ich wünsche dir einen guten Start bei deinem neuen Brötchengeber!</p> ]]></description>
    </item>

    <item>
      <title>Google Zeitgeist</title>
      <link>http://beat.bolli.homeip.net/bblog/netz/2008/12/12#google_zeitgeist</link>
      <pubDate>Fri, 12 Dec 2008 12:16:00 GMT</pubDate>
      <description><![CDATA[ <p>I think these lists, while interesting, are at least inaccurate.
Google should remove the obvious domain names from the lists.
Most people don&#8217;t know the difference between the Google search box
and the browser&#8217;s <span class="caps">URL </span>entry field.</p> ]]></description>
    </item>

    <item>
      <title>A quote from Tim Bray</title>
      <link>http://beat.bolli.homeip.net/bblog/software/2008/12/06#timbray_quote</link>
      <pubDate>Sat, 06 Dec 2008 12:21:00 GMT</pubDate>
      <description><![CDATA[ <blockquote><p>We visited some people at one of the exchanges, and I walked away from that with my mind boggling at their traffic levels, and the number of rows they think it’s reasonable to write into a database in 6½ hours.</p></blockquote>

<p>&#8212; <a href="http://www.tbray.org/ongoing/When/200x/2008/12/05/Fuzzy-New-York">Tim Bray</a></p> ]]></description>
    </item>

    <item>
      <title>A quote from Ian Hickson</title>
      <link>http://beat.bolli.homeip.net/bblog/allgemein/2008/11/11#quote_ian_hickson</link>
      <pubDate>Tue, 11 Nov 2008 13:56:00 GMT</pubDate>
      <description><![CDATA[ <blockquote><p>On our way back the <span class="caps">TSA </span>told me I couldn&#8217;t keep my apple juice.
I asked if I could drink it first. They said only if I went back outside.
I asked if they meant that my apple juice was a danger in the security area
but safe outside, and they confirmed that that was the case.</p></blockquote>

<p>- <a href="http://ln.hixie.ch/?start=1226346088&amp;count=1">Ian Hickson</a></p> ]]></description>
    </item>

    <item>
      <title>April, April!</title>
      <link>http://beat.bolli.homeip.net/bblog/allgemein/2008/04/01#_1_april_2008</link>
      <pubDate>Tue, 01 Apr 2008 10:19:00 GMT</pubDate>
      <description><![CDATA[ <p>Wieder einmal eine kleine Sammlung von 1.-April-Scherzen:</p>


<ul>
<li>Linux Journal: <a href="http://www.linuxjournal.com/video/introducing-beos-journal">Introducing BeOS Journal</a></li>
<li>Google Australien: <a href="http://www.google.com.au/intl/en/gday/index.html">Web-Suche in der Zukunft: gDay™ with <span class="caps">MATE</span>™</a></li>
<li>symlink: <a href="http://www.symlink.ch/article.pl?sid=08%2F04%2F01%2F0016207"><span class="caps">ADSL </span>wird (fast) kostenlos</a> (wen kümmerts? Ich habe seit acht Jahren <a href="http://www.quickline.com">Kabel</a> und bin sehr zufrieden)</li>
<li>Astronomy Picture of the Day: <a href="http://antwrp.gsfc.nasa.gov/apod/ap080401.html">New Space Station Robot Asks to be Called “Dextre the Magnificent”</a></li>
</ul>

 ]]></description>
    </item>

    <item>
      <title>BSOD*: nicht einmal das Fernsehen ist davor sicher!</title>
      <link>http://beat.bolli.homeip.net/bblog/software/windows/2007/11/25#loly</link>
      <pubDate>Sun, 25 Nov 2007 21:18:00 GMT</pubDate>
      <description><![CDATA[ <p><a href="/album/-image/Diverses/bblog/loly-20071125-214832.jpg">
<img src="/album/Diverses/bblog/loly-20071125-214832.jpg" class="bordered bblog" alt="loly-20071125-214832.jpg" /><br />
</a>
Das aktuelle Bild auf unserem <a href="http://www.loly.ch">Lokalfernsehen</a>!</p>




* <a href="http://de.wikipedia.org/wiki/BSOD">BSOD</a>: Blue Screen of Death
 ]]></description>
    </item>

    <item>
      <title>Swisscom: Infrastruktur und Dienste trennen!</title>
      <link>http://beat.bolli.homeip.net/bblog/netz/2007/09/23#swisscom_auftrennen</link>
      <pubDate>Sun, 23 Sep 2007 11:46:00 GMT</pubDate>
      <description><![CDATA[ <p>Um ein von <a href="http://blogg.ch">Fredy Künzler</a> begonnenes <a href="http://www.blogg.ch/index.php?%2Farchives%2F278-Swisscom-aufspalten-statt-zu-100-privatisieren.html">Thema</a>
wieder aufzugreifen: Offenbar funktionert es eben doch!</p>

<blockquote><p>Viviane Reding, the EU media commissioner, this week cited the decision 
to split the networks and services division of BT of the UK as a potential 
template for [European] former state-run telecoms operators&#8230; BT agreed in 
2005 with national regulator Ofcom to create an independent unit responsible 
for giving rivals access to its networks. The division, which BT still owns, 
is obliged to treat competitors on the same basis as its own services. <br />
&#8212; <a href="http://www.ft.com/cms/s/0/1286d526-565a-11dc-ab9c-0000779fd2ac.html">Financial Times</a>
(leider hinter einem Paywall verschwunden), via <a href="http://isen.com/blog/2007/08/structural-separation-in-europe.html">isen.blog</a></p></blockquote>

<p>Als Folge dieses Entscheids können Bewohner von England zwischen <a href="http://isen.com/blog/2007/09/59-internet-providers-to-choose-from.html">über 50 <span class="caps">ISP</span>s auswhlen</a>
und sich denjenigen aussuchen, der ihre Bedürfnisse am besten abdeckt.</p> ]]></description>
    </item>

    <item>
      <title>Using the Midnight commander mc(1) in a screen(1) session</title>
      <link>http://beat.bolli.homeip.net/bblog/software/debian/2007/08/26#mc_f_keys_in_screen</link>
      <pubDate>Sun, 26 Aug 2007 20:36:00 GMT</pubDate>
      <description><![CDATA[ <p>Just a quick note for those people whose function keys don&#8217;t work when they
use the <a href="http://www.ibiblio.org/mc/"><span class="caps">GNU</span> Midnight commander</a> inside a
<a href="http://www.gnu.org/software/screen/">screen</a> session: issuing <code>export TERM=xterm</code>
before starting @mc@ helps!</p>

<p>Maybe this problem is related to my <span class="caps">SSH </span>client PuTTY, but setting <code>TERM</code> fixes it.</p> ]]></description>
    </item>

    <item>
      <title>3b, 3r und zwei andere Geeks an der Assembly 2007</title>
      <link>http://beat.bolli.homeip.net/bblog/software/2007/08/03#assembly2007</link>
      <pubDate>Fri, 03 Aug 2007 17:56:00 GMT</pubDate>
      <description><![CDATA[ <p>Ein paar Kollegen unseres geekinfo-Kollektivs sind dieses Jahr also
tatsächlich nach <a href="http://www.helsinki.fi/en/index.html">Helsinki</a> an die
<a href="http://www.assembly.org/summer07/">Assembly</a> gefahren!</p>

<p>Laufende Updates gibts <a href="http://nostromo.ch">auf 3bs Blog</a>, die Bilder sind
<a href="http://www.nostromo.ch/gallery/assembly-2007">hier</a>.</p> ]]></description>
    </item>

    <item>
      <title>Jonas Gabriel Julmy</title>
      <link>http://beat.bolli.homeip.net/bblog/familie/2007/08/02#jgjulmy</link>
      <pubDate>Thu, 02 Aug 2007 17:40:00 GMT</pubDate>
      <description><![CDATA[ <p>Herzliche Gratulationen und Alles Gute an Julmys zur Geburt ihres Sohnes! Eva wurde nochmals Gotti&#8230;</p> ]]></description>
    </item>

    <item>
      <title>Hochzeitstag #19!</title>
      <link>http://beat.bolli.homeip.net/bblog/familie/2007/07/16#hochzeitstag_19</link>
      <pubDate>Mon, 16 Jul 2007 21:26:00 GMT</pubDate>
      <description><![CDATA[ <p><a href="/album/-image/Familie/Hochzeitstag%202007-07-16/img_4251%20Eva.jpg">
<img src="/album/-thumb/Familie/Hochzeitstag%202007-07-16/img_4251%20Eva.jpg" class="right" alt="Eva vor der Myonen-Funkenkammer in der Sphynx" />
</a>
Heute besuchten Eva und ich das <a href="/album/-Familie/Hochzeitstag+2007-07-16">Jungfraujoch</a>.
Am bisher heissesten Tag des Jahres 2007 war es auf über 3500 Metern immer noch 3 °C &#8220;warm&#8221;.</p>

<p>Wir haben die Zweisamkeit und das geniale Wetter sehr genossen.</p>

<p>PS: Danke an die <a href="http://www.gvb.ch"><span class="caps">GVB</span></a> für die verbilligten Billete&#8230;</p> ]]></description>
    </item>

    <item>
      <title>Abgabe auf Musik-Playern? WTF?</title>
      <link>http://beat.bolli.homeip.net/bblog/medien/2007/07/12#suisa_mp3_tax</link>
      <pubDate>Wed, 11 Jul 2007 22:16:00 GMT</pubDate>
      <description><![CDATA[ <p>Jetzt haben es also die Suisa und Konsorten geschafft, dass auf <span class="caps">DAP</span>s(Digital Audio Player)
<a href="http://www.swissinfo.org/ger/aktualitaet/detail/mp3_Player_werden_teurer.html?siteSect=106&amp;sid=8013016&amp;cKey=1184158556000">Steuern erhoben werden</a>.
Betroffen sind Flash-Player, Geräte mit Harddisk sowie Video-Recorder mit <span class="caps">HD.</span> Die Gebühr soll
zwischen <span class="caps">CHF</span> 30 und 90 kosten, je nach Kapazität.</p>

<p>Damit bezahlt man jetzt also drei Mal Urheberrechtsgebühren: beim Kauf von bespielten CDs,
beim Kauf von Leer-CDs (die werden ja alle für illegal kopierte Musik verwendet, nicht wahr), sowie eben
beim Kauf von Abspielgeräten. Wenn das ganze Geld mindestens den Künstlern verteilt würde,
aber die Studios schöpfen ja den grössten Teil in die eigene Kasse ab&#8230;</p>

<p>Und das alles ausgerechnet am <a href="http://arstechnica.com/news.ars/post/20070710-did-ya-know-its-fair-use-day-july-11-2007.html">Fair-Use Day</a>!</p> ]]></description>
    </item>

    <item>
      <title>﻿GPS-Koordinaten in EXIF-Infos nachführen</title>
      <link>http://beat.bolli.homeip.net/bblog/software/php/2007/05/01#exif_gps_update</link>
      <pubDate>Tue, 01 May 2007 18:27:00 GMT</pubDate>
      <description><![CDATA[ <p>Angeregt durch ein Mail von <a href="http://www.voteagirl.de/">Alexander Klein</a> und
einen Artikel in der aktuellsten <a href="http://www.heise.de/ct/07/10/006/">c&#8217;t 10/2007</a>
will ich jetzt doch noch erklären, wie die <span class="caps">GPS</span>-Positionen aus meinem
<a href="http://www.drbeat.li/bblog/2006/12/13#exif_gps_gmap">ersten Artikel</a>
von der Karte in die Bilder gelangen.</p>

<p>In der <a href="/php/source.php?src=%2Fphp%2Fexifmap.php">Karten-Seite</a> befindet sich ein
<span class="caps">HTML</span>-Formular, das die Eingabe von Breite und Länge erlaubt:</p>




<pre class="code">&lt;form method="post" action="exifupd.php">
    &lt;input type="hidden" name="image" value="&lt;&#63;php echo $image ?>" />
    &lt;label for="lat">Latitude:&lt;/label>
    &lt;input type="text" id="lat" name="lat" />&lt;br />
    &lt;label for="lon">Longitude:&lt;/label>
    &lt;input type="text" id="lon" name="lon" />&lt;br />
    &lt;button type="submit">Update&lt;/button>
&lt;/form>
</pre>




<p>Die Werte im Formular werden per JavaScript im <code>onclick()</code> Event der Karte
gesetzt:</p>

<pre class="code">GEvent.addListener(gMap, 'click', function(obj, pos) {
    document.getElementById('lat').value = pos.lat();
    document.getElementById('lon').value = pos.lng();
});</pre>

<p><a href="/php/source.php?src=/php/exifupd.php"><code>exifupd.php</code></a> setzt die Koordinaten
via ein Python-Skript ins Bild hinein. Die relevante Zeile des Update-Skripts
ist diese:</p>

<pre class="code">exec(&quot;sudo -u me /home/me/bin/gpstag '{$_POST['lat']}' '{$_POST['lon']}' '{$_SERVER['DOCUMENT_ROOT']}{$_POST['image']}'&quot;, $result, $rc);</pre>

<p>Der Python-Skript <a href="/pycgi/webutil.py/html?py=py%2Fgpstag.py">gpstag</a> benötigt
seinerseits <a href="http://www.exiv2.org/">exiv2</a>, ein Kommandozeilen-Tool zum
Bearbeiten von <span class="caps">EXIF</span>-Infos.</p>

<p>Diese zwei Zeilen in <code>/etc/sudoers</code> ermöglichen <code>sudo</code>, dass <code>www-data</code>,
der User, als der mein Webserver läuft, in meinem Namen das Programm <code>gpstag</code>
ausführen darf:</p>



<pre class="file"># Apache may update GPS data in images
www-data        ALL = (me) NOPASSWD: /home/me/bin/gpstag</pre>



<p>Das Bearbeiten von <code>sudoers</code> erfordert root-Rechte und sollte immer mit dem
Befehl <code>visudo</code> geschehen.</p>

<p>Als letztes wird der Update-Skript noch mit einem Eintrag in <code>.htaccess</code>
passwortgeschützt:</p>




<pre class="file"># Password protection for GPS updates

&lt;Files exifupd.php>
    AuthType Basic
    AuthName "GPS Update"
    AuthUserFile /home/me/lib/htpasswd/php
    Require valid-user
&lt;/Files>
</pre>




<p>Wie man ein Passwort-File bereitstellt, ist unter <code>man htpasswd</code> nachzulesen.</p> ]]></description>
    </item>

    <item>
      <title>Neues RAM und Harddisk im Server</title>
      <link>http://beat.bolli.homeip.net/bblog/hardware/2007/04/06#neue_hd</link>
      <pubDate>Thu, 05 Apr 2007 23:41:00 GMT</pubDate>
      <description><![CDATA[ <p>Kürzlich konnte ich in einem alten Server-Rack zwei <span class="caps">SIMM</span>s ausbauen, die
verdächtig nach PC-133 aussahen, das in meinem Server verwendet wird
(ich weiss, das ist ja uralt, aber unter Linux hat Hardware ca. die doppelte
Lebensdauer als unter anderen OSen). Item, die 128 <span class="caps">MB, </span>die der Server hatte,
wurden in letzter Zeit ein wenig knapp, und so hoffte ich, dass die neuen <span class="caps">SIMM</span>s
ein wenig grösser wären, und in der Tat hat mein Server jetzt 512 MB <span class="caps">RAM</span>
(merci Jonas, eine Spende fürs <a href="http://cine6.ch/">Kino</a> folgt)!</p>

<p>Da ich die (kleine!) Kiste gerade offen hatte, habe ich ihr auch gerade eine
neue 80er-HD verpasst. Die alte 40 GB-Scheibe läuft jetzt doch seit über vier 
Jahren non-stop, und hat auch bereits Lesefehler produziert. Bei der Gelegenheit
wollte ich auch die Partitionen optimieren, d.h. keine eigenen Partitionen mehr
für <code>/boot</code> und <code>/usr</code>, nur noch für root, <code>/home</code> und <code>/var</code> (obwohl, wie
<a href="http://3w.homedns.org">3w</a> richtig bemerkt, die Zeiten wohl vorbei sind, als
man mal kurz mit einem zu grossen Logfile die Partition zum Überlaufen brachte, 
zumindest auf einem Home-Server).</p>

<p>Also die neue Platte als <span class="caps">IDE</span>-Slave angehängt, partitioniert, formatiert und mit
<code>cp -r</code> die Dateien kopiert. Ich weiss, es gibt noch <code>rsync</code>, aber ich behaupte
jetzt einfach, dass ein <code>cp</code> alleweil schneller ist, wenn im Ziel noch keine
Dateien vorhanden sind.</p>

<p>Das erste Problem stellte sich (wie bereits das letzte Mal, als ich eine HD in
einem Linux-System ersetzte), als ich <code>lilo</code> beibringen sollte, sich auf <code>/dev/hdb</code>
zu installieren, aber so, dass beim nächsten Booten alles stimmen würde, wenn
ab der neuen Platte gestartet würde, die dann ja <code>/dev/hda</code> hiesse. Nach einigem
<acronym title="Reading The Fine Manual">RTFM</acronym> erledigte aber ein <code>lilo -v -r /mnt</code> diese Aufgabe.
Jetzt noch <code>/etc/fstab</code> angepasst, und alles ist in Butter?!?</p>

<p>Leider nicht, denn ich erhielt früh im Boot-Vorgang die kryptische Fehlermeldung
<code>/usr/lib/yaird/exec/run_init: opening console: No such file or directory</code>.
Unterdessen war 01:20, und ich beschloss, darüber zu schlafen. Die alte Platte
startete unterdessen nämlich auch nicht mehr, irgendwie hatte ich sie mit
meinen <code>lilo</code> Experimenten dauerhaft vom Booten abgehalten :-(</p>

<p>Heute Abend suchte ich im Internet (den Laptop direkt ins Kabelmodem gesteckt;
zum Glück lief auch dort ein <a href="http://www.linux.org">sicheres Betriebssystem</a>!)
nach dieser Meldung und fand schnell Verweise auf <code>yaird</code>, &#8220;Yet another initrd generator&#8221;.
initrd? Das waren doch diese Files, die man dem Kernel mitgeben musste, damit
der seine ersten paar Module fand, mit Hilfe derer er dann ab HD weiterbooten
konnte? Vor Jahren hatte ich in den Kernel-Sourcen gelesen, dass das Format
seit 2.6 dasjenige von <code>cpio</code> sei, aber <code>file initrd.img-2.6.28-4-486</code> sagte
mir, das sei eine <code>gzip</code>-Datei. Also ausgepackt, und jetzt hatte ich tatsächlich
ein <code>cpio</code>-Archiv vor mir. Nach noch mehr <span class="caps">RTFM </span>und einem finalen <code>cpio -i &lt;../initrd</code>
hatte ich den ausgepackten initrd vor mir.</p>

<p>Schliesslich fand ich im Script <code>init</code> zwei Referenzen auf meine alte Root-Partition
<code>/dev/hda6</code>, die jetzt eben <code>/dev/hda1</code> war. Nachdem ich alles wieder verpackt und
gezippt hatte, startete mein System wieder ohne Probleme!</p>

<p>Fazit:</p>


<ul>
<li>Never change a running system!</li>
<li><code>lilo</code> ist gefährlich, vielleicht sollte ich auf <code>grub</code> umsteigen?</li>
<li>Bei HD-Wechseln in Zukunft nicht gleichzeitig die Partitionierung ändern</li>
<li>Zum Glück wurden für die initrd Standard-Tools verwendet</li>
</ul>

 ]]></description>
    </item>

  </channel>
</rss>
