<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Niklas Rother - XNA, Computer &#38; mehr</title>
	<atom:link href="http://niklas-rother.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://niklas-rother.de</link>
	<description>Ein Blog über XNA, C#, Software, und anderes...</description>
	<lastBuildDate>Tue, 24 Jan 2012 15:35:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dropbox-Backup ohne Client</title>
		<link>http://niklas-rother.de/artikel/dropbox-backup-ohne-client/</link>
		<comments>http://niklas-rother.de/artikel/dropbox-backup-ohne-client/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 15:35:27 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Betriebsyteme]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[skripting]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1561</guid>
		<description><![CDATA[Der offizielle Dropbox Client unter Linux hat ja ein paar kleine Speicherprobleme (und auch andere Probleme), daher hab ich mich nach einer anderen Lösung umgesehen, meine Backups in die Dropbox zu schieben. Den ersten Ansatz habe ich auf der Seite &#8230; <a href="http://niklas-rother.de/artikel/dropbox-backup-ohne-client/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Der offizielle Dropbox Client unter Linux <a title="Warum ich Dropbox für Linux nicht mag" href="http://niklas-rother.de/artikel/warum-ich-dropbox-fur-linux-nicht-mag/">hat ja ein paar kleine Speicherprobleme</a> <a title=".dropbox-dist/dropbox not found" href="http://niklas-rother.de/artikel/dropbox-distdropbox-not-found/">(und auch andere Probleme)</a>, daher hab ich mich nach einer anderen Lösung umgesehen, meine Backups in die Dropbox zu schieben. Den ersten Ansatz habe ich auf der <a href="http://www.andreafabrizi.it/?dropbox_uploader">Seite von Andrea Fabrizi</a> gefunden: Dort gibt es ein Script, mit dem Uploads in die Dropbox auch ohne Client möglich sind.</p>
<p>Das Script lädt die Datei mit cURL über die offzielle Website hoch. Nicht wirklich eine saubere Lösung, funktioniert aber perfekt. Naja, fast: Über die Website sind nur Uploads bis 150MB möglich, meine Backup-Zips sind aber inzwischen schon 188MB groß (ich blogge zu viel <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Daher habe ich mir ein kleines Script gebastelt, das die Dateien durchgeht, und alle die größer als 100MB sind, mit Hilfe von split in Teile á 100MB schneidet. Dabei wird dann einfach ein fortlaufender Buchstabe an den Dateinamen angehängt. Dazu habe ich das Upload Script noch so modifiziert, das es Dateien, die größer als 100MB sind, gar nicht erst hoch lädt (da sie eh nicht verarbeitet werden).</p>
<p><span id="more-1561"></span></p>
<p>Als drittes im Bunde habe ich dann noch ein kleines Script das einen Dump der Datenbank erstellt, und zu guter Letzt noch ein Script, das alle die kleinen anderen Scripte der Reihe nach aufruft (und dabei noch ein VERBOSE Option zum testen durchreicht).</p>
<p>Mit diesem System habe ich jetzt meine Backups hoffentlich im Griff <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Bash-Scripting ist nicht wirklich mein Lieblingsthema&#8230; Aber ich hatte jetzt auch keine Lust das in C++ zu machen <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Soviel zur Theorie, hier sind die ganzen Skripte:</p>
<p>Der Dump der Datenbank:</p>
<pre class="brush: bash; title: ; notranslate">

/usr/bin/mysqldump --all-databases --user=backup --password=verratichnicht &gt; /var/backup/sqldump/backup_full_`date &quot;+%y_%m_%d&quot;`.sql
</pre>
<p>Das Zerteilen der Dateien in kleine Stücke:</p>
<pre class="brush: bash; title: ; notranslate">

#!/bin/bash

function split_dir
{
for i in *; do
if [ -f &quot;$i&quot; ]; then
FILESIZE=$(stat -c%s &quot;$i&quot;)
if [ $FILESIZE -gt &quot;104857600&quot; ]; then
if [ $VERBOSE -eq 1 ]; then
echo &quot;$1 is too big, splitting&quot;
fi
split -a 1 -b 100M $i `basename $i`_
fi
fi

if [ -d &quot;$i&quot; ]; then
local OLD_PWD=$(pwd)
cd &quot;$i&quot;
split_dir &quot;$1/$i&quot;
cd &quot;$OLD_PWD&quot;
fi
done
}

cd $1
split_dir $1
</pre>
<p>Mein modifizierter Dropbox-Uploader: (Nur als Diff, sonst ist das ewig viel Text, das Original gibst <a href="https://github.com/andreafabrizi/Dropbox-Uploader">hier</a>)</p>
<pre class="brush: diff; title: ; notranslate">

26,27c26,27
&lt; LOGIN_EMAIL=&quot;ich@ich.de&quot;
&lt; LOGIN_PASSWD=&quot;supergeheim&quot;
---
&gt; LOGIN_EMAIL=&quot;&quot;
&gt; LOGIN_PASSWD=&quot;&quot;
90c90
&lt;
---
&gt;
101,107c101,102
&lt;     FILESIZE=$(stat -c%s &quot;$UPLOAD_FILE&quot;)
&lt;
&lt;     if [ $FILESIZE -gt 104857800 ]; then #file to big for upload (slighly more than 100M
&lt;          print  &quot;$UPLOAD_FILE is too big, ignoring.&quot;
&lt;     else
&lt;         curl $CURL_PARAMETERS -i -b $COOKIE_FILE -o $RESPONSE_FILE -F &quot;plain=yes&quot; -F &quot;dest=$DEST_FOLDER&quot; -F &quot;t=$TOKEN&quot; -F &quot;file=@$UPLOAD_FILE&quot;  &quot;$UPLOAD_URL&quot;
&lt;         grep &quot;HTTP/1.1 302 FOUND&quot; &quot;$RESPONSE_FILE&quot; &gt; /dev/null
---
&gt;     curl $CURL_PARAMETERS -i -b $COOKIE_FILE -o $RESPONSE_FILE -F &quot;plain=yes&quot; -F &quot;dest=$DEST_FOLDER&quot; -F &quot;t=$TOKEN&quot; -F &quot;file=@$UPLOAD_FILE&quot;  &quot;$UPLOAD_URL&quot;
&gt;     grep &quot;HTTP/1.1 302 FOUND&quot; &quot;$RESPONSE_FILE&quot; &gt; /dev/null
109,116c104,108
&lt;         if [ $? -ne 0 ]; then
&lt;             print &quot; Failed!\n&quot;
&lt;             if [ $END_ON_UPLOAD_ERROR -eq 1 ]; then
&lt;                 remove_temp_files
&lt;                 exit 1
&lt;             fi
&lt;         else
&lt;             print &quot; OK\n&quot;
---
&gt;     if [ $? -ne 0 ]; then
&gt;         print &quot; Failed!\n&quot;
&gt;         if [ $END_ON_UPLOAD_ERROR -eq 1 ]; then
&gt;             remove_temp_files
&gt;             exit 1
117a110,111
&gt;     else
&gt;         print &quot; OK\n&quot;
</pre>
<p>Und jetzt noch das eigentliche Skript, das alle aufruft, und dabei die -v Option durchreicht:</p>
<pre class="brush: bash; title: ; notranslate">

#!/bin/bash

#Helper scripts that calls all the backupscripts.
#-dumps all MySQL DBs
#-split big zip files in /backup
#-uploads all to dropbox

VERBOSE=0

#if the first argument is -v, the verbose mode for this scritp, and all scripts called is enable
if [ &quot;$1&quot; == &quot;-v&quot; ]; then
VERBOSE=1
fi

#create the MySQL dump
if [ $VERBOSE -eq 1 ]; then
echo &quot;Doing DB Dump...&quot;
fi
./backup_db.sh

#split big files
if [ $VERBOSE -eq 1 ]; then
echo &quot;Splitting files...&quot;
fi
env VERBOSE=$VERBOSE ./split_files.sh /var/backup

#upload all
if [ $VERBOSE -eq 1 ]; then
echo &quot;Starting upload...&quot;
./dropbox_uploader.sh -f /var/backup -d /ServerBackup -v
else
./dropbox_uploader.sh -f /var/backup -d /ServerBackup
fi

#done
if [ $VERBOSE -eq 1 ]; then
echo &quot;Done!&quot;
fi
</pre>
<p>Die Krönung wäre jetzt noch ein kleines Programm, das die Dateien auf meinem Rechner erkennt, wieder zusammensetzt, und in die Dropbox schiebt. Aber das kann ich immer noch machen, wenn ich das Backup mal brauche <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Mal sehen, wie sich mein Sammelsurium von Skripten so macht!</p>
<br /><a href="http://niklas-rother.de/?p=1561#comments" title="Comments on &quot;Dropbox-Backup ohne Client&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1561" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/dropbox-backup-ohne-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Richtige Aufentshaltdauer mit Piwik ermitteln</title>
		<link>http://niklas-rother.de/artikel/richtige-aufentshaltdauer-mit-piwik-ermitteln/</link>
		<comments>http://niklas-rother.de/artikel/richtige-aufentshaltdauer-mit-piwik-ermitteln/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 16:28:16 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Ideen & Gedanken]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[aufentshaltdauer]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[piwik]]></category>
		<category><![CDATA[Statistik]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1552</guid>
		<description><![CDATA[Seit geraumer Zeit benutze ich ja nun Piwik, um die Besucherzahlen meiner Website zu messen. Vor ein paar Wochen hat dann ein Beitrag bei virtual-maxim meine Aufmerksamkeit erregt. Dabei ging es darum, das Piwik die Aufenthaltsdauer auf einer Website, und &#8230; <a href="http://niklas-rother.de/artikel/richtige-aufentshaltdauer-mit-piwik-ermitteln/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Seit <a title="Ein paar Neuerungen am Blog [Update]" href="http://niklas-rother.de/artikel/ein-paar-neuerungen-am-blog/">geraumer Zeit</a> benutze ich ja nun Piwik, um die Besucherzahlen meiner Website zu messen. Vor ein paar Wochen hat dann ein <a href="http://www.virtual-maxim.de/piwik-richtige-aufenthaltsdauer-und-absprungrate-anzeigen/">Beitrag bei virtual-maxim</a> meine Aufmerksamkeit erregt. Dabei ging es darum, das Piwik die Aufenthaltsdauer auf einer Website, und damit verbunden die Apsprungrate nicht richtig berechnet. Wenn der Besucher nur eine Seite aufruft, und dann den Tab schließt, wird eine Aktion mit einer Besuchslänge von 0 sek gezählt. Das ist natürlich unschön, weil man ja grade Blog-Artikel länger ließt, ohne auf einen Link zu klicken.</p>
<p>Die Lösung, die auch schon in <a href="http://dev.piwik.org/trac/ticket/2041">Piwiks Trac diskutiert wird</a>, und auch in dem oben verlinkten Artikel vorgestellt wird, ist es, nach einer gewissen Frist einen &#8220;Pulsschlag&#8221; an Piwik zu senden, um anzuzeigen, das der Besucher noch auf der Seite ist. Die Lösung aus dem Artikel hat den Nachteil, das dadurch viele falsche Page-Impression erzeugt werden, weil Piwik (noch) kein API hat, um zu sagen &#8220;Besucher ist noch da&#8221;. Das einzige, was man machen kann, ist, den Klick auf einen Link vorzutäuschen. (Wenn man nicht im Core etwas ändern will).</p>
<p><span id="more-1552"></span></p>
<p>Meine Idee (siehe auch die Kommentare) war es jetzt, darauf zu warten, das der Besucher die Seite verlässt, und erst dann einen &#8220;Klick&#8221; an Piwik zu senden. Damit würde jeder Besucher pro Seite nur zwei Aktionen auslösen, und die Besuchslänge sollte genau erfasst werden (im Gegensatz zum Pulsschlag alle x Sekunden).</p>
<p>Die meisten Browser (Ausnahme: Opera) bieten auch ein passendes Event für diesen Zweck an: onbeforeunload wird ausgelöst, kurz bevor der Browser die Seite verlässt. Darüber werden zum Beispiel Sicherheitsabfragen realisiert. Es gibt zwar auch onunload, aber das wird z.B. von Firefox nicht ausgelöst, wenn man den Browser schließt.</p>
<p>Ich habe jetzt also in meine Website ein kleines bisschen JavaScript eingefügt:</p>
<pre class="brush: jscript; title: ; notranslate">window.onbeforeunload = trackUnloadPage;
function trackUnloadPage()
{
    if(piwikTracker)
    {
        piwikTracker.trackPageView(&quot;unload event&quot;);
    }
}</pre>
</div>
<p>&nbsp;</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2012/01/absprungrate.png" rel="shadowbox[sbpost-1552];player=img;" title="absprungrate"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-medium wp-image-1554" title="absprungrate" src="http://niklas-rother.de/wp-content/uploads/2012/01/absprungrate-300x85.png" alt="" width="300" height="85" /></a>Dieser Code signalisiert Piwik jetzt einen Besuch der Seite &#8220;unload event&#8221;, wenn der Browser geschlossen wird. Wie die Statistik zeigt, funktioniert meine Lösung recht gut.</p>
<p>Seltsamerweise gibt es immer noch (Nicht-Opera) Besucher, die nur eine Aktion auslösen. Evtl. löst ein anderer Browser das Event auch nicht immer aus, oder es kommt zu einer Race-Condition (Browser schon zu, bevor der Aufruf abgeschickt wurde).</p>
<p>Ich hoffe jetzt, das Piwik noch eine API für die &#8220;stillen Events&#8221; bietet, damit sie nicht die anderen Statistiken verfälschen&#8230; Vielleicht werde ich mir den Code auch selber mal ansehen <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<br /><a href="http://niklas-rother.de/?p=1552#comments" title="Comments on &quot;Richtige Aufentshaltdauer mit Piwik ermitteln&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1552" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/richtige-aufentshaltdauer-mit-piwik-ermitteln/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Warum ich Dropbox für Linux nicht mag</title>
		<link>http://niklas-rother.de/artikel/warum-ich-dropbox-fur-linux-nicht-mag/</link>
		<comments>http://niklas-rother.de/artikel/warum-ich-dropbox-fur-linux-nicht-mag/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 16:52:15 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Betriebsyteme]]></category>
		<category><![CDATA[Interressantes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[fehler]]></category>
		<category><![CDATA[hdd]]></category>
		<category><![CDATA[speicher]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1549</guid>
		<description><![CDATA[Genau deshalb: Dropbox hat einen gewissen Hang dazu ein bisschen viel Speicher zu verbrauchen (100% sind 20 GB). Jetzt muss ich mir wohl was anderes überlegen, um meine Backups in die Dropbox zu schieben&#8230;]]></description>
			<content:encoded><![CDATA[<p>Genau deshalb:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2012/01/df-month.png" rel="shadowbox[sbpost-1549];player=img;" title="df-month"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1550" title="df-month" src="http://niklas-rother.de/wp-content/uploads/2012/01/df-month.png" alt="" width="497" height="280" /></a>Dropbox hat einen gewissen Hang dazu ein <em>bisschen</em> viel Speicher zu verbrauchen (100% sind 20 GB).</p>
<p>Jetzt muss ich mir wohl was anderes überlegen, um meine Backups in die Dropbox zu schieben&#8230;</p>
<br /><a href="http://niklas-rother.de/?p=1549#comments" title="Comments on &quot;Warum ich Dropbox für Linux nicht mag&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1549" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/warum-ich-dropbox-fur-linux-nicht-mag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frohe Weihnachten!</title>
		<link>http://niklas-rother.de/artikel/frohe-weihnachten-2/</link>
		<comments>http://niklas-rother.de/artikel/frohe-weihnachten-2/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 12:41:15 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Ideen & Gedanken]]></category>
		<category><![CDATA[Real-Life]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[netcup]]></category>
		<category><![CDATA[steam]]></category>
		<category><![CDATA[weihnachten]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1544</guid>
		<description><![CDATA[Und wieder neigt sich ein Jahr dem Ende entgegen&#8230; Keine Angst, ich fange jetzt nicht gleich, über das Leben zu philosophieren Ich wollte einfach noch mal vor  Weihnachten hier was schreiben, über die Feiertage hat man ja doch nicht so &#8230; <a href="http://niklas-rother.de/artikel/frohe-weihnachten-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Und wieder neigt sich ein Jahr dem Ende entgegen&#8230; Keine Angst, ich fange jetzt nicht gleich, über das Leben zu philosophieren <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Ich wollte einfach noch mal vor  Weihnachten hier was schreiben, über die Feiertage hat man ja doch nicht so viel Zeit dazu.</p>
<p>Was mich dieses Jahr begeistert hat, war die Großzügigkeit vieler Firmen in der Vorweihnachtszeit. Von Apple kennt man es ja schon, das es wieder nach Weihnachten 12 Tage Geschenke gibt, aber auch <a href="http://www.netcup.de/adventskalender/">netcup hatte dieses Jahr einen Adventskalender</a> mit viele wirklich guten Angeboten (aber leider nichts für mich). Die besten Angebote hat aber immer noch <a href="http://store.steampowered.com/">Steam</a>: Da wird momentan richtig was rausgehauen (noch bis zum 1. Januar). Ich hab gestern Half-Life 1, HL1 Opposing Force, HL1 Blue Shift, Team Fortress Classic, Half Life 2 und HL2 Episode 1 für 7,72€ abgestaubt! Und jeden Tag gibt es auf andere Sachen 75% Rabatt. Das hat mich echt umgehauen!</p>
<p>Klar, das ist alles Marketing, aber es ist wirklich eine nette Geste. Also: Freut euch über Geschenke, aber denkt immer daran, was für ein großes Geschenk Gesundheit ist (das habe ich grade wieder am eigenen Leib erfahren). Genießt die Feiertage, kommt ein bisschen zur Ruhe.<span id="more-1544"></span></p>
<p style="text-align: center;"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="size-full wp-image-1545 alignleft" title="1324643032_jingle" src="http://niklas-rother.de/wp-content/uploads/2011/12/1324643032_jingle.png" alt="" width="128" height="128" /><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-1546" title="1324643038_tree" src="http://niklas-rother.de/wp-content/uploads/2011/12/1324643038_tree.png" alt="" width="128" height="128" /></p>
<p style="text-align: center;"><span style="font-size: x-large;"><strong>Frohe Weihnachten 2011!</strong></span></p>
<br /><a href="http://niklas-rother.de/?p=1544#comments" title="Comments on &quot;Frohe Weihnachten!&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1544" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/frohe-weihnachten-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grenzen der Technik II</title>
		<link>http://niklas-rother.de/artikel/grenzen-der-technik-ii/</link>
		<comments>http://niklas-rother.de/artikel/grenzen-der-technik-ii/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 17:13:16 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Interressantes]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[integral]]></category>
		<category><![CDATA[Mathe]]></category>
		<category><![CDATA[ti84+]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1536</guid>
		<description><![CDATA[Interessant&#8230; Nach der 300minütigen Matheklausur wurden wir auf den nächsten Fehler im TI 84+ hingewiesen: Die Aufgabe war es, zu untersuchen, ob das Integral der Funktion in Y1 von 0 bis unendlich existiert (uneigentliches Integral). Und man könnte ja nun &#8230; <a href="http://niklas-rother.de/artikel/grenzen-der-technik-ii/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Interessant&#8230; Nach der 300minütigen Matheklausur wurden wir auf den nächsten Fehler im TI 84+ hingewiesen:</p>

<a href='http://niklas-rother.de/artikel/grenzen-der-technik-ii/screen01-2/' title='SCREEN01' title="SCREEN01"><img src="http://niklas-rother.de/wp-content/uploads/2011/12/SCREEN01.bmp" class="attachment-thumbnail" alt="SCREEN01" title="SCREEN01" /></a>
<a href='http://niklas-rother.de/artikel/grenzen-der-technik-ii/screen02/' title='SCREEN02' title="SCREEN02"><img src="http://niklas-rother.de/wp-content/uploads/2011/12/SCREEN02.bmp" class="attachment-thumbnail" alt="SCREEN02" title="SCREEN02" /></a>
<a href='http://niklas-rother.de/artikel/grenzen-der-technik-ii/screen03/' title='SCREEN03' title="SCREEN03"><img src="http://niklas-rother.de/wp-content/uploads/2011/12/SCREEN03.bmp" class="attachment-thumbnail" alt="SCREEN03" title="SCREEN03" /></a>

<p>Die Aufgabe war es, zu untersuchen, ob das Integral der Funktion in Y<sub>1</sub> von 0 bis unendlich existiert (uneigentliches Integral). Und man könnte ja nun auf die Idee kommen, einfach die größtmögliche Zahl für unendlich einzusetzen: 10<sup>99</sup> mit mehr (oder weniger) kann der Rechner ja <a title="Grenzen der Technik" href="http://niklas-rother.de/artikel/grenzen-der-technik/">bekanntlich </a>nicht umgehen.</p>
<p>Dummerweise gibt es wohl einen Bug in der Software, denn ab 10<sup>5</sup> wird das Integral (das auch in Bild 3 zu sehen ist) leider null&#8230; Die richtige Lösung bekommt man mit der oberen Grenze von 100o: -70. Oder natürlich auch per Hand&#8230;</p>
<br /><a href="http://niklas-rother.de/?p=1536#comments" title="Comments on &quot;Grenzen der Technik II&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1536" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/grenzen-der-technik-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grenzen der Technik</title>
		<link>http://niklas-rother.de/artikel/grenzen-der-technik/</link>
		<comments>http://niklas-rother.de/artikel/grenzen-der-technik/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 14:21:14 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Interressantes]]></category>
		<category><![CDATA[h]]></category>
		<category><![CDATA[Mathe]]></category>
		<category><![CDATA[physik]]></category>
		<category><![CDATA[ti84+]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1533</guid>
		<description><![CDATA[Schon ein wenig blöd, wenn man an einer 300-minütigen Physikklausur sitzt, und einem der Rechner sowas erzählt: Besonders, wenn man grade diese Potenz des planckschen Wirkungsquantum braucht&#8230; Die Ursache ist einfach: h^3 ist weniger als 1E-99, und damit für den &#8230; <a href="http://niklas-rother.de/artikel/grenzen-der-technik/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Schon ein wenig blöd, wenn man an einer 300-minütigen Physikklausur sitzt, und einem der Rechner sowas erzählt:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/11/SCREEN01.bmp" rel="shadowbox[sbpost-1533];player=img;" title="SCREEN01"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1534" title="SCREEN01" src="http://niklas-rother.de/wp-content/uploads/2011/11/SCREEN01.bmp" alt="" /></a>Besonders, wenn man grade diese Potenz des <a href="http://de.wikipedia.org/wiki/Plancksches_Wirkungsquantum">planckschen Wirkungsquantum</a> braucht&#8230; Die Ursache ist einfach: h^3 ist weniger als 1E-99, und damit für den TI84+ leider gleich null&#8230; <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<br /><a href="http://niklas-rother.de/?p=1533#comments" title="Comments on &quot;Grenzen der Technik&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1533" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/grenzen-der-technik/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Kostenlos: Zuma von PopCap</title>
		<link>http://niklas-rother.de/artikel/kostenlos-zuma-von-popcap/</link>
		<comments>http://niklas-rother.de/artikel/kostenlos-zuma-von-popcap/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 16:58:11 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Spiele]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[popcap]]></category>
		<category><![CDATA[zuma]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1521</guid>
		<description><![CDATA[Ein kleiner Hinweis für Freunde von Casual-Spielen: Das allseits beliebte Zuma gibt es in den nächsten Tagen gratis. Man muss sich dazu unter dieser Adresse zu einem Newsletter anmelden. Mailinator Mails wollte er nicht annehmen, 10minutemail schon. Per Mail gibst &#8230; <a href="http://niklas-rother.de/artikel/kostenlos-zuma-von-popcap/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ein kleiner Hinweis für Freunde von Casual-Spielen: Das allseits beliebte Zuma gibt es in den nächsten Tagen gratis. Man muss sich dazu unter <a href="http://www.popcap.com/promos/2011/zuma/free/">dieser Adresse</a> zu einem Newsletter anmelden. Mailinator Mails wollte er nicht annehmen, 10minutemail schon. Per Mail gibst dann einen Link zum Shop, wo man das Spiel gratis &#8220;kaufen&#8221; kann. Da würde ich meine echte Mail-Adresse angeben, denn bei der landet dann die Seriennummer und der Downloadlink.</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/11/freezuma.png" rel="shadowbox[sbpost-1521];player=img;" title="freezuma"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-1522" title="freezuma" src="http://niklas-rother.de/wp-content/uploads/2011/11/freezuma-1024x367.png" alt="" width="640" height="229" /></a>Ich hab so ein ähnliches Spiel vor einiger Zeit mal lange auf meinem iPod gespielt, die Windows-Version wollte mich jetzt grade nicht so vom Hocker hauen. Relativ geringe Auflösung und alles in allem etwas billig gemacht. Typisches Casual-Game halt <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Aber die machen sicher ihr Geld mit diesen Spielen&#8230; Wo wir grad beim Thema sind: Plants vs. Zombies ist auch von PopCap und meiner Meinung nach um Längen besser. Bei Zuma wundert mich das verschenken nicht. Aber schaut es euch ruhig mal an. Gibt es auch für den Mac, BTW <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><span id="more-1521"></span></p>
<p>[<a href="http://stadt-bremerhaven.de/windows-mac-kostenlose-lizenz-fuer-zuma-deluxe">via</a>]</p>
<br /><a href="http://niklas-rother.de/?p=1521#comments" title="Comments on &quot;Kostenlos: Zuma von PopCap&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1521" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/kostenlos-zuma-von-popcap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.dropbox-dist/dropbox not found</title>
		<link>http://niklas-rother.de/artikel/dropbox-distdropbox-not-found/</link>
		<comments>http://niklas-rother.de/artikel/dropbox-distdropbox-not-found/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 16:47:12 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Betriebsyteme]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1518</guid>
		<description><![CDATA[Genau dieses Problem quälte mich gestern nach einem Update der Dropbox Version auf meinem Server (nutze ich für Backups). Die Datei war definitiv da, aber immer wenn ich Dropbox starten wollte, wurde hartnäckig behauptet, die Datei könne nicht gefunden werden. &#8230; <a href="http://niklas-rother.de/artikel/dropbox-distdropbox-not-found/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Genau dieses Problem quälte mich gestern nach einem Update der Dropbox Version auf meinem Server (nutze ich für Backups). Die Datei war definitiv da, aber immer wenn ich Dropbox starten wollte, wurde hartnäckig behauptet, die Datei könne nicht gefunden werden. Nach ein bisschen Suche fand sich dann die Lösung: Offenbar ist die x64-Version falsch kompiliert und will eine x86-Libary laden, was natürlich nicht klappt.</p>
<p><strong>Die Lösung</strong>: Einfach gleich die x86-Version benutzen, die funktioniert einwandfrei&#8230; Warum es zu so einem Fehler kommen kann, weiss ich aber auch nicht&#8230;</p>
<br /><a href="http://niklas-rother.de/?p=1518#comments" title="Comments on &quot;.dropbox-dist/dropbox not found&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1518" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/dropbox-distdropbox-not-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>11.11.11</title>
		<link>http://niklas-rother.de/artikel/11-11-11/</link>
		<comments>http://niklas-rother.de/artikel/11-11-11/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 10:11:29 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Ideen & Gedanken]]></category>
		<category><![CDATA[Interressantes]]></category>
		<category><![CDATA[elf]]></category>
		<category><![CDATA[Statistik]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1516</guid>
		<description><![CDATA[So nachdem ich natürlich verpasst habe, diesen Artikel um 11:11 Uhr zu schreiben, gibst jetzt nachträglich ein paar unnütze Berechnungen: Jedes Jahr hat in jedem Monat einen Tag, der die gleiche Zahl wie der Monat trägt. Macht 12 von 365,2425 Tagen, &#8230; <a href="http://niklas-rother.de/artikel/11-11-11/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So nachdem ich natürlich verpasst habe, diesen Artikel um 11:11 Uhr zu schreiben, gibst jetzt nachträglich ein paar unnütze Berechnungen:</p>
<p>Jedes Jahr hat in jedem Monat einen Tag, der die gleiche Zahl wie der Monat trägt. Macht 12 von <a href="http://de.wikipedia.org/wiki/Jahr">365,2425 Tagen</a>, macht <strong>3,28%</strong> Anteil dieser Tage.</p>
<p>Davon kann man 10 mit nur einer Ziffer schreiben (1.1 &#8211; 9.9 + 11.11). Das macht <strong>2,73%</strong>.</p>
<p>In jedem Jahrhundert gibt es 12 Tage, an denen die Zahlen von Tag, Monat und Jahr (mit zwei Ziffern) genau übereinstimmen. Das sind 12 von 3652,425 Tagen, also <strong>0,32%</strong>. Einer dieser Tage ist bekanntlich heute <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Davon kann man genau einen mit nur einer Ziffer schreiben, nämlich den 11.11.11. Das sind genau <strong>0,00027%</strong>.</p>
<p><span id="more-1516"></span></p>
<p>Weiter geht es in den Jahrtausenden: Dort kommt es wieder genau ein Mal vor, das man nur eine Ziffer benutzen muss, um auch ein Datum mit dreistelliger Jahreszahl zu schreiben: Am 11.11.111, der heute <em>nicht</em> ist&#8230; Das sind grade noch <strong>0,000027%</strong>.</p>
<p>Jetzt wird es richtig groß: Pro &#8220;Jahrzehntausend&#8221; gibt es wieder zwölf Tage, an denen man den Tag bzw. Monat zwei Mal in der Jahreszahl finden, nämlich den 01.01.0101 usw. Das sind unglaubliche <strong>0,00000032%</strong>.</p>
<p>Und schlussendlich gibt es davon wieder genau einen Tag, an dem tatsächlich alle acht Ziffern des Datums die gleiche Zahl zeigen, den 11.11.1111, und das ist an 0,000000027% der Tage der Fall. Da gibst dann auch eine richtig große Party. Ach ne, das war ja schon, und bis zum nächsten Jahrzehntausend ist die Welt ja schon untergegangen. So ein Pech aber auch&#8230;</p>
<p>Das waren die 7 Fakten zum 11.11.11. Warum sieben? <a href="http://www.stupidedia.org/stupi/Weil_Baum">Weil Baum</a></p>
<br /><a href="http://niklas-rother.de/?p=1516#comments" title="Comments on &quot;11.11.11&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1516" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/11-11-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Warnung vor func_instance_origin</title>
		<link>http://niklas-rother.de/artikel/warnung-vor-func_instance_origin/</link>
		<comments>http://niklas-rother.de/artikel/warnung-vor-func_instance_origin/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 11:43:47 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Spiele]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[func_instance_origin]]></category>
		<category><![CDATA[hammer]]></category>
		<category><![CDATA[portal2]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[vbsp]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1513</guid>
		<description><![CDATA[Nur ein kleiner Tipp für alle Portal 2 Mapper, die mit Hammer (dem Editor) eigene Instances bauen wollen: Laut dem Wiki soll man ein func_instance_origin benutzen, um die Mitte der Instance anzugeben. Offensichtlich beachtet aber entweder Hammer oder VBSP (der &#8230; <a href="http://niklas-rother.de/artikel/warnung-vor-func_instance_origin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Nur ein kleiner Tipp für alle Portal 2 Mapper, die mit Hammer (dem Editor) eigene Instances bauen wollen: Laut dem Wiki soll man ein <a href="http://developer.valvesoftware.com/wiki/Func_instance_origin">func_instance_origin</a> benutzen, um die Mitte der Instance anzugeben. Offensichtlich beachtet aber entweder Hammer oder VBSP (der Compiler), das Ding nicht richtig, wodurch die Instance im Spiel dann gegenüber der Anzeige in Hammer verschoben ist. Kann ziemlich nervig sein <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Lösung:</strong> Einfach alle so verschieben, dass der Koordinatenursprung in der Instance da ist, wo man ihn haben will&#8230;</p>
<br /><a href="http://niklas-rother.de/?p=1513#comments" title="Comments on &quot;Warnung vor func_instance_origin&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1513" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/warnung-vor-func_instance_origin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DynamicLua</title>
		<link>http://niklas-rother.de/artikel/dynamiclua/</link>
		<comments>http://niklas-rother.de/artikel/dynamiclua/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 14:10:38 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Meine Programme]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[dynamiclua]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[luainterface]]></category>
		<category><![CDATA[wrapper]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1479</guid>
		<description><![CDATA[So, ich denke es ist Zeit, die Katze aus dem Sack zu lassen, und mein neues Projekt vorzustellen: DynamicLua Kurz ein paar Worte zum Hintergrund: Mit .NET 4.0 wurde die sog. Dynamic Language Runtime (DLR) eingeführt. Die dient zum einen &#8230; <a href="http://niklas-rother.de/artikel/dynamiclua/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://niklas-rother.de/wp-content/uploads/2011/10/dynamiclua_logo.png" rel="shadowbox[sbpost-1479];player=img;" title="dynamiclua_logo"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-full wp-image-1482" title="dynamiclua_logo" src="http://niklas-rother.de/wp-content/uploads/2011/10/dynamiclua_logo.png" alt="" width="244" height="261" /></a>So, ich denke es ist Zeit, die Katze aus dem Sack zu lassen, und mein neues Projekt vorzustellen: <span style="font-size: large;"><strong>DynamicLua</strong></span></p>
<p>Kurz ein paar Worte zum Hintergrund: Mit .NET 4.0 wurde die sog. Dynamic Language Runtime (DLR) eingeführt. Die dient zum einen dazu, es Entwicklern einfacher zu machen, neue Sprache auf .NET Basis zu entwickeln (wie <a href="http://ironpython.net">IronPython</a>/<a title="Die eigene Certificate Authority (CA)" href="http://ironruby.net">IronRuby</a>), hat aber auch ein paar tolle andere Features zu bieten. Eines davon ist das neue Schlüsselwort &#8220;dynamic&#8221;. Es funktioniert ähnlich wie &#8220;var&#8221; kann also jeden Typ annehmen. Wenn man darin aber ein Objekt speichert, das von System.Dynamic.DynamicObject abgeleitet ist, kann man bestimmen was passiert, wenn etwas &#8220;nicht erlaubtes&#8221; passiert, also wenn z.B. eine Methode aufgerufen wird, die es gar nicht gibt. Solche Aufrufe landen dann bei der Methode TryInvokeMember, und die kann dann entscheiden, was passieren soll.</p>
<p>Dieses Konzept habe ich jetzt genutzt, um einen Wrapper für das <a href="http://code.google.com/p/luainterface/">LuaInterface </a>zu schreiben. Das Lua Interface ist eine Library für .NET, die es erlaubt, <a href="http://lua.org">Lua </a>in C# zu benutzen. Dabei kümmert sie sich auch darum, .NET Objekte in Lua abzubilden und vieles mehr. Diese Library ist wirklich unglaublich, man denkt wirklich, Lua hätte was mit Objekten am Hut.</p>
<p><span id="more-1479"></span></p>
<p>Meine Idee war es jetzt, über das LuaInterface eine neue Hülle zu stecken, die es zusammen mit der DLR ermöglicht, Lua noch einfacher in C# (und anderen .NET Sprachen zu benutzen). Hier ein kleines Beispiel:</p>
<pre class="brush: csharp; title: ; notranslate">
// Start a new Lua interpreter
dynamic lua = new DynamicLua.DynamicLua(); //Namespace and class name are the same!
// Run Lua chunks
lua(&quot;num = 2&quot;); //no DoString()!
lua(&quot;str = ’a string’&quot;);
// Read global variables ’num’ and ’str’
double num = lua.num; //No explicit casting, no index operator!
string str = lua.str;
// Write to global variable ’str’
lua.str = &quot;another string&quot;; //No index operator
//Increase a global value
lua.num += 10; //A LOT cleaner
</pre>
<p>Wie man sehen kann wird eine neue Instanz des Interpreters erzeugt, wenn man ihn aufruft wie eine Funktion wird der Lua Code ausgeführt. Variablen aus Lua sind einfach als Eigenschaften des Objektes vorhanden. Es ist kein Problem, .NET Klasse an Lua zu schicken, eine einfache Zuweisung reicht. Noch ein paar der Features:</p>
<ul>
<li>Einfacher Zugriff auf Lua-Variablen</li>
<li>Aufruf von Lua-Funktionen aus C#</li>
<li>C#-Funktionen können in Lua Variablen gespeichert werden</li>
<li>Lua-Table können in C# Variablen gespeichert werden</li>
<li>Lua Metatables können in C# benutzt werden</li>
<li>Open-Source (Apache Lizenz 2.0)</li>
<li>Unit-Tests</li>
</ul>
<p>Ich denke, mit DynamicLua ist es wirklich einfach Lua in C# einzubinden, weil vieles genau so funktioniert, wie man es erwarten würde. Das war zumindest mein Design-Ziel.</p>
<p>Genug der lobenden Worte, alles weitere ist auf der Codeplex-Seite zu finden: <a href="http://dynamiclua.codeplex.com">DynamicLua bei Codeplex</a>. Momentan ist dort die Beta der Version 1.0 zu finden.</p>
<br /><a href="http://niklas-rother.de/?p=1479#comments" title="Comments on &quot;DynamicLua&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1479" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/dynamiclua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>London 2</title>
		<link>http://niklas-rother.de/artikel/london-2/</link>
		<comments>http://niklas-rother.de/artikel/london-2/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 12:35:10 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Real-Life]]></category>
		<category><![CDATA[london]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1475</guid>
		<description><![CDATA[Mangels Internetzugang hier im Hotel wird wohl auch dieser Artikel erst erscheinen, wenn ich wieder zu Hause bin. So, machen wir also weiter mit „Ich schreibe Sachen auf, die mir zu London einfallen&#8221;. So langsam haben wir die wichtigsten Sehenwürdigkeiten &#8230; <a href="http://niklas-rother.de/artikel/london-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Mangels Internetzugang hier im Hotel wird wohl auch dieser Artikel erst erscheinen, wenn ich wieder zu Hause bin. </em></p>
<p>So, machen wir also weiter mit „Ich schreibe Sachen auf, die mir zu London einfallen&#8221;. So langsam haben wir die wichtigsten Sehenwürdigkeiten abgeklappert, auch wenn die Westminster Abbey leider geschlossen war (natürlich nur Freitags&#8230;). Davor hing noch ein Schild, das das zwar eine Kirche sei, aber es ja auch noch andere gibt, und man hier leider nicht umsonst beten kann. Naja, müssen wir wohl die £20 zahlen. Ja tatsächlich, das iPad hat auch eine Taste für das Pfundzeichen <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ganz wichtig war natürlich der Besuch der Apple Stores, auch wenn de gar nicht geplant war. Ist schon beeindruckend dar, ich hatte vorher noch keinen &#8220;richtigen&#8221; Apple Store gesehen. Neben jedem Mac liegt ein iPad 2, das nur dafür da ist, den Preis und ein paar Infos anzuzeigen&#8230; Die haben&#8217;s echt gut da. Ich würde gerne ein paar Fotos zeigen, aber leider hab ich kein Camera Connection Kit, und kann daher nur Fotos mit dem iPad machen. Und da bin ich nicht mal sicher, ob die überhaupt ohne Intenet gespeichert werden. Werden wir ja sehen. </p>
<p><span id="more-1475"></span></p>
<p>So weiter im Text (bzw. im sinnlosen rumgeschreibe). Morgen wollen wir versuchen auf das London Eye zu kommen, das Riesenrad an der Themse. Dummerweise muss man die Karte eine ganze Zeit im Vorraus kaufen, weil der Andrang so groß ist. Das Risenrad braucht eine halbe Stunde für eine Umdrehung, aber es hat am Bode immer noch bestimmt einen Meter pro Sekinde drauf, so dass sie es für jede Kabiene anhalten müssen, wenn die 25 Insassen wechseln. Darus berechen wir: Es ist&#8230;groß. <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Dazu gibt es noch ein 4D Show (mit Zeitmaschiene???), wohingegen es im London Dungeon eine 5D Show geben soll, was mir doch etwas zu denken gibt&#8230;</p>
<p>Jetzt werde wir erst Mal, sehen, dass wir etwas zu Essen bekommen. Mal sehen, vielleicht gibt es ja noch einen dieser wahnsinnig spannenden Einträge, die die Besucherzahlen meines Blogs gleich in verdoppeln werden <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  So wie es aussieht werden wir wohl nicht mehr nach Greewich kommen, auch wenn ich gerne einen Geocache auf dem Nullmeridian gehoben hätte. Wieso schlägt das iPad &#8220;Nullmeridian&#8221; vor, nachdem ich nur &#8220;Null&#8221; eingeben haben? Aber ich drifte ab, und ich glaube wir lassen das ganze jetzt mal.</p>
<br /><a href="http://niklas-rother.de/?p=1475#comments" title="Comments on &quot;London 2&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1475" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/london-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>London</title>
		<link>http://niklas-rother.de/artikel/london/</link>
		<comments>http://niklas-rother.de/artikel/london/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 12:34:40 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Real-Life]]></category>
		<category><![CDATA[london]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1474</guid>
		<description><![CDATA[Hinweis: Leider gibst hier im Hotel kein WLAN, daher werde ich die Artikel (wenn es mehr als dieser eine werden) wohl etwas zeitversetzt veröffentlichen. Außerdem schreibe ich auf dem iPad, ich habe also eine neue Ausrede für die vielen Tippfeheler &#8230; <a href="http://niklas-rother.de/artikel/london/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>Hinweis: Leider gibst hier im Hotel kein WLAN, daher werde ich die Artikel (wenn es mehr als dieser eine werden) wohl etwas zeitversetzt veröffentlichen. Außerdem schreibe ich auf dem iPad, ich habe also eine neue Ausrede für die vielen Tippfeheler <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </em></p>
<p>So, es sind also Herbstferien. Und damit dieser Blog hier nicht allzu sehr ins technische abrutscht, gibt es jetzt ein paar Zeilen aus meinem Urlaubsziel, London. </p>
<p>Momentan bin ich wirklich begeistert von London, eine tolle Stadt. Man merkt den Unterschied zu Deutschland. Die Leute sehen hier besser gekleidet aus, fast alle laufen hier mit modischem Schal rum, wenn nicht gleich mit Anzug. Mir sind bestimmt heute schon 5 kleine Jungen im Anzug entgegengekommen. Verrückt. </p>
<p>Was mich aber richtig begeistert hat, ist die U-Bahn, oder besser die Underground, alias &#8220;the Tube&#8221;. Stationen und Züge machen dem Namen alle Ehre, alles ist rund (und niedrig&#8230;). Die Züge selber sind alle etwas älter, und nicht besonders bequem (weil rund), aber an beiden Seiten mit extrem weichen und bequemen Sitzpolstern ausgestattet. Nicht wie bei uns in der U-Bahn mit diesen harten Plastiksitzen (die dafür wieder ziemlich bequem sind&#8230;). Auch ansonsten wirkt hier alles nicht so perfekt und optimiert wie in Deutschland/Hannover, aber viel herzlicher und gemütlicher. Ist wirklich schwer zu beschreiben, aber es ist toll. </p>
<p><span id="more-1474"></span></p>
<p>Auf der anderen Seite ist hier aber auch alle extrem modern: Wo wir noch Papierkärtchen abstempeln, hat hier jeder eine &#8220;Oysterkard&#8221;, die vermutlich per RFID von der Zugangsschranke erkannt wird. Darauf kann man (wie wir) ein Wochenticket laden, oder ein bisschen Geld, mit dem automatisch bezahlt wird: Die Karte muss beim Betreten und Verlassen einer Station erkannt werden, daraus wird die Fahrstrecke berechnet und automatisch bezahlt. Genial das System. Man kann sogar bei McDonnald mit einem ähnlichen System bezahlen. Klar, man kann auch die Benutzer damit überwachen, aber kann ja auch noch normale Karten kaufen. Ich finde das System jedenfalls großartig. </p>
<p>Damit auch noch eine Schattenseite erwähnt wird: London ist teuer. Verdammt teuer. Das war&#8217;s dann aber auch schon. Ich bin jedenfalls wirklich begeistert von der Stadt. </p>
<p>Wenn ich mir das jetzt so durchlese ist das alles etwas wirr. Naja, ich bin auch schon etwas müde (um 3 aufgestanden&#8230;) Direktkopie meiner Gedanken sozusagen. Das war&#8217;s dann auch schon für heute, ich versuche jetzt noch ein tolles Foto meiner Oystercard anzuhängen (mit dem iPad gemacht!), und sollten wir sehen, wo wir zu Abend essen&#8230;</p>
<p>Ach ja: Wenn <a href="http://obi2.de">du</a> bestanden hast, herzlichen Glückwunsch <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/10/20111020-192223.jpg" rel="shadowbox[sbpost-1474];player=img;"><img src="http://niklas-rother.de/wp-content/uploads/2011/10/20111020-192223.jpg" alt="20111020-192223.jpg" class="alignnone size-full" /></a></p>
<br /><a href="http://niklas-rother.de/?p=1474#comments" title="Comments on &quot;London&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1474" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/london/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Die eigene Certificate Authority (CA)</title>
		<link>http://niklas-rother.de/artikel/die-eigene-certificate-authority-ca/</link>
		<comments>http://niklas-rother.de/artikel/die-eigene-certificate-authority-ca/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 17:30:55 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Betriebsyteme]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ca]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[sicherheit]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[zertifikat]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1466</guid>
		<description><![CDATA[Wer wäre nicht gerne seine eigene CA? Statt teure Zertifikate von VeriSign und Co. zu kaufen, einfach seine Anträge selber unterschreiben! Technisch ist das kein Problem: Auch &#8220;echte&#8221; CAs benutzen selbst unterschriebene Zertifikate, nur die sind eben in allen großen &#8230; <a href="http://niklas-rother.de/artikel/die-eigene-certificate-authority-ca/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://niklas-rother.de/wp-content/uploads/2011/10/gnome-keyring-manager1.png" rel="shadowbox[sbpost-1466];player=img;" title="gnome-keyring-manager[1]"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-full wp-image-1469" title="gnome-keyring-manager[1]" src="http://niklas-rother.de/wp-content/uploads/2011/10/gnome-keyring-manager1.png" alt="" width="128" height="128" /></a>Wer wäre nicht gerne seine eigene CA? Statt teure Zertifikate von VeriSign und Co. zu kaufen, einfach seine Anträge selber unterschreiben! Technisch ist das kein Problem: Auch &#8220;echte&#8221; CAs benutzen selbst unterschriebene Zertifikate, nur die sind eben in allen großen Browsern und Betriebssystemen installiert. Wenn man sich aber die Mühe macht, sein eigenes Root-Zertifikat an allen benutzten Rechnern zu installieren, ist es kein Problem seine eigene CA zu sein. Dabei muss man zwei Sachen beachten:</p>
<ul>
<li>Windows hat zwar einen zentralen Zertifikatsspeicher, aber Firefox und Thunderbird benutzen (jeweils) einen eigenen. Das Zertifikat muss in allen installiert werden.</li>
<li>Es gibt einen unterschied zwischen einer eigenen CA und selbst unterschriebenen Zertifikaten: Die selber abgesegneten Zertifikate muss man alle einzeln bestätigen, wobei hingegen es reicht das eigene Root-Zertifikat zu installieren, um automatisch allen davon unterzeichneten Zertifikaten zu vertauen. Viele Programme generieren bei der Installation selbst-unterschriebene Zertifikate, die man also immer einzeln akzeptieren muss.</li>
</ul>
<p><span id="more-1466"></span></p>
<p>Fangen wir also an! Die Anleitung basiert auf <a href="http://www.tc.umn.edu/~brams006/selfsign.html">dieser Beschreibung</a>. Wir legen uns erst Mal einen neuen Ordner an, und wechseln zu root (hatte ich erwähnt, das ich von Linux rede?). Die Zertifikate sollte nach Möglichkeit nur von root gelesen werden können, daher ist es sinnvoll diesen Benutzer auch zum erstellen zu benutzen.</p>
<pre class="brush: bash; title: ; notranslate">

openssl genrsa -des3 -out ca.key 4096
 openssl req -new -x509 -days 365 -key ca.key -out ca.crt
</pre>
<p>Diese beiden Zeilen generieren zunächst einen privaten Schlüssel in der Datei <em>ca.key</em>, der mit einem Passwort geschützt wird. <strong>Er sollte nicht aus der Hand gegeben werden!</strong> Er ist zwar passwortgeschützt, aber er beinhaltet eben den <em>privaten</em> Schlüssel, den wir zum signieren brauchen. Wem das jetzt allen nichts sagt, macht sich bei Wikipedia schlau: <a href="http://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem">Asymmetrische Kryptosysteme</a>. Kurzfassung: Mit dem privaten Schlüssel kann man nur verschlüsseln, mit dem öffentlichen nur entschlüsseln.</p>
<p>Die zweite Zeile erzeugt jetzt eben diesen öffentlichen Schlüssel, der zusammen mit ein paar Daten zum Aussteller in der Datei <em>ca.crt</em> landen. Alle Texte sind beliebig, wenn man nichts angeben will, reicht ein Punkt (.). Der Parameter hinter days gibt die Gültigkeitsdauer an, ein Jahr ist evtl. etwas kurz, 10 sollten reichen. Dieser Zertifikat wird nun automatisch selber unterschrieben, weil es ja niemanden gibt, der eine CA bestätigen kann.</p>
<p>Jetzt kommt das Erstellen eines neuen Zertifikates dran:</p>
<pre class="brush: bash; title: ; notranslate">

openssl genrsa -des3 -out server.key 4096
 openssl req -new -key server.key -out server.csr
</pre>
<p>Wir erstellen wieder einen Key, der auch mit einem Passwort geschützt wird. Danach erstellen wir statt einem Zertifikat wie oben, einen Certificate-Sign-Request (.csr). Es werden wieder ein paar Daten abgefragt, doch  hier ist es nicht ganz egal, was angegeben wird: <strong>Der CommonName (CN) sollte zum Server passen!</strong> Wenn das nicht der Fall ist, gibt es beim Starten des Servers eine Warnung, und die Client beschweren sich, das es einen Identitätsdiebstal gab, weil Domain und CN eben nicht passen. Für Webserver sollte man hier *.domain.tld angeben (mit den richtigen Werten natürlich), für Mail und FTP Server sollte genau der passende Name angegeben werden. Wenn man auch noch Email-Zertifikate haben will, muss die Email-Adresse hier angegeben werden.</p>
<p>Jetzt spielen wir wieder CA: (Das ist das, wofür die so viel Geld haben wollen:)</p>
<pre class="brush: bash; title: ; notranslate">

openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
</pre>
<p>Wir signieren den Request, den wir grade erstellt haben für 356 Tage (anpassen, 3560 ist besser), und benutzen dabei unser oben erstelltes CA-Zertifikat. Dabei wird auch nach dem Passwort des CA-Private-Keys gefragt, denn der ist zum signieren nötig. Die Seriennummer muss angepasst werden, wenn ein neues Zertifikat für den gleichen Domain ausgestellt wird (z.B. weil es abgelaufen ist): Client speichern das Zertifikat bei der ersten Verbindung und beschweren sich, wenn es sich geändert hat (könnte ja ein Hacker gewesen sein). Wenn die Seriennummer anders ist, gibt es kein Warnung.</p>
<p>Damit landet jetzt das unterschriebene Zertifikat in der Datei <em>server.crt</em>. Wenn man das Zertifikat jetzt in einem Server benutzen will, muss der den privaten Schlüssel beim Start laden, und braucht dazu das Passwort. Wem das zu blöd ist, kann das Passwort auch entfernen, muss dann aber mit geringerer Sicherheit leben. (Der private-key der CA sollte nie entschlüsselt werden!)</p>
<pre class="brush: bash; title: ; notranslate">

openssl rsa -in server.key -out server.key.insecure
</pre>
<p>So, damit ist unser Zertifikat fertig. Damit keine die private-keys klaut ist es keine schlecht Idee, diese nur für root lesbar zu machen. Die CSRs können gelöscht werden.</p>
<p>Nach diesem Muster kann man jetzt beliebig viele Zertifikate signieren. Allen wird vertraut, wenn denn das Root-Zertifikat installiert ist. Unter Firefox/Thunderbird geht das über Einstellungen/Erweitert/Zertifikate anzeigen/Zertifizierungstellen/Importieren (hier muss die öffentliche Datei importiert werden, also die .crt-Datei). Um das CA-Zertifikat Windows näher zu bringen öffnet man die Managment-Konsole per Win+R/mmc Dort wird ein SnapIn hinzugefügt: Strg+M/Zertifikate/Hinzufügen/Eigenes Benutzerkonto/Fertig stellen/OK. Das Zertifikat muss unter &#8220;Vertrauenswürdige Stammzertifizierungsstellen&#8221; (was für ein Wort) eingefügt werden, was unter Kontext-Menü/Alle Aufgaben/Importieren möglich ist.</p>
<p>Fehlen nur noch die Server. Natürlich hängt das jetzt stark von der Software ab, ich erkläre einfach mal das, was ich gemacht habe:</p>
<p><strong>Apache:</strong> In den passenden vHost müssen diese Anweisungen:</p>
<pre class="brush: plain; title: ; notranslate">

SSLEngine On
 SSLCertificateFile /etc/apache2/ssl/server.crt
 SSLCertificateKeyFile /etc/apache2/ssl/server.key
</pre>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/10/root_ca.png" rel="shadowbox[sbpost-1466];player=img;" title="root_ca"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-medium wp-image-1468" title="root_ca" src="http://niklas-rother.de/wp-content/uploads/2011/10/root_ca-300x191.png" alt="" width="300" height="191" /></a>Also private Schlüssel und öffentliches Zertifikat, das dem Client geschickt wird. Danach ist natürlich ein Neustart/Reload von Apache nötig. Was mir leider trotzt langem Ausprobieren <strong>nicht</strong> geglückt ist, ist es meine Website die unter ISPConfig laufen (wie dieser Blog) mit Zertifikaten zu versehen. ISPConfig hat da sein eigenes System, das nicht so richtig will wie ich&#8230; Dennoch sieht es wenigstes für die Admin-Oberfläche jetzt so aus wie auf dem Bild.</p>
<p>Weiter gehts mit <strong>Courier:</strong> Der IMAP Daemon ist ziemlich einfach mit Zertifikaten zu beglücken: Einfach .key und .crt Datei ein eine .pem Datei kopieren (einfach hintereinander), und die Datei nach /etc/courier/imapd.pem schieben. Danach ist natürlich auch ein Neustart fällig.</p>
<p>Wie es mit <strong>Postfix</strong> (SMTP Daemon) geht steht <a href="http://www.ssl-sicherheit.info/ssl-zertifikat-installieren/ssl-einrichtung-unter-postfix.html">hier</a> schon wunderbar.</p>
<p>Als letztes bliebt noch der FTP-Server <strong>Pure-FTPd</strong>: Der hat etwas seltsame Ansichten, weil er keine Konfigurationsdateien benutzt&#8230; Das Zertifikat muss wieder zusammen mit dem Key in die Datei /etc/ssl/private/pure-ftpd.pem (der Dateiname ist einkompiliert), danach muss noch die Datei /etc/pure-ftpd/conf/TLS mit dem Inhalt &#8220;1&#8243; angelegt werden. Nach einem Neustart spricht dann auch der FTP-Server SSL.</p>
<p><strong>Fazit:</strong> Wenn man den Dreh erst Mal raus hat, ist es ziemlich einfach, alles per SSL abzusichern. Langsam beginne ich auch den Sinn hinter Sachen wie S/MIME oder der ePost zu sehen. Mit günstigen Zertifikaten, die nur mit Ausweis ausgestellt werden, wäre das echt praktisch&#8230; (Nicht so wie es die Post macht, aber vom Prinzip her). Wie alles bei Unix/Linux (oder besser im Server Umfeld) funktioniert es echt gut, und ist super durchdacht, wenn man es erst Mal verstanden hat&#8230;</p>
<br /><a href="http://niklas-rother.de/?p=1466#comments" title="Comments on &quot;Die eigene Certificate Authority (CA)&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1466" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/die-eigene-certificate-authority-ca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fischertecknik mit C# steuern</title>
		<link>http://niklas-rother.de/artikel/fischertecknik-mit-c-steuern/</link>
		<comments>http://niklas-rother.de/artikel/fischertecknik-mit-c-steuern/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 09:44:04 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[fischertechnik]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[messkarte]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1462</guid>
		<description><![CDATA[Im Zuge eines Schulprojektes muss ich mit einem PC die Spannungswerte eines Helligkeitssensors aufzeichnen. Also brauche ich in irgendeiner Form eine Messkarte mit Verbindung zum PC. Meine erste Idee war das mein altes Fischertechnik ROBO-Interface, dass mir früher immer treue &#8230; <a href="http://niklas-rother.de/artikel/fischertecknik-mit-c-steuern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Im Zuge eines Schulprojektes muss ich mit einem PC die Spannungswerte eines Helligkeitssensors aufzeichnen. Also brauche ich in irgendeiner Form eine Messkarte mit Verbindung zum PC. Meine erste Idee war das mein altes Fischertechnik ROBO-Interface, dass mir früher immer treue Dienste geleistet hat. Natürlich wollte ich es jetzt nicht in ROBO-Pro programmieren, der grafischen Sprache von Fischertechnik (auch wenn die <em>wirklich</em> gut ist!), denn die hat keine Möglichkeit Daten auf dem PC dauerhaft zu speichern.</p>
<p>Also habe ich mich mal etwas im Netz umgesehen, und bin auf der Seite von Ulrich Müller gelandet, der sich die Mühe gemacht hat, allen möglichen Sprachen Bibliotheken zu schreiben. So gibt es auch ein in C#. Leider ist die Benutzung grade mit Windows 7 etwas kompliziert, daher will ich hier mal kurz erklären, wie es funktioniert. An dieser Stelle noch mal einen Dank an Ulrich Müller, der mit per Mail weiter geholfen hat.</p>
<p><span id="more-1462"></span></p>
<p>Als erstes brauchen wir die USB-Treiber für das Interface, sonst ist gar keine Kommunikation möglich. Alternativ ist auch der Betrieb über COM möglich, aber so richtig ist das ja auch nichts&#8230; Die Treiber werden zusammen mit ROBO Pro installiert, wer die CD aber nicht findet, kann auch auf der Fischertechnik-Seite eine ZIP-Datei mit verschiedenen Hilfemitteln herunterladen, im Ordner /Driver sind dann die Treiber zu finden. Den Download gibt es hier: <a href="http://www.fischertechnik.de/de/home/downloads/Computing.aspx">Fischertechnik Download-Seite</a> (Treibersoftware KeLib).</p>
<p>Jetzt brauchen wir noch eine DLL, die die eigentliche Kommunikation übernimmt, und einen Wrapper in der passenden Sprache. Beides gibt auf der <a href="http://www.ftcomputing.de/sprachen.htm">Seite von Ulrich Müller</a>. Weil die Downloads etwas schwer zu finden sind, erlaube ich mir mal Deep-Links:</p>
<ul>
<li><a href="http://www.ftcomputing.de/zip/umFish40V77.zip">umFish.dll</a></li>
<li><a href="http://www.ftcomputing.de/zip/cs2005fish40setup.exe">FischFace.dll</a></li>
</ul>
<p>Die beiden oben angegebenen Dateien brauchen wir für die Kommunikation. Die Downloads enthalten noch etwas mehr, hauptsächlich Dokumentation. Davon ist auch auf der oben verlinkten Seite einiges zu finden.</p>
<p>Die umFish.dll ist die eigentliche Bibliothek zum steuern des Interfaces, die FishFace.dll nur der Wrapper für C#.</p>
<p>Wir fügen also beide Dateien einem neuen C# Projekt hinzu, und fügen einen Verweis auf die FishFace.dll hinzu. Mit folgendem Code stellen wir eine Verbindung zum Interface her:</p>
<pre class="brush: csharp; title: ; notranslate">using System;
using System.Collections.Generic;
using System.Text;
using FishFace40;

namespace ftTest
{
class Program
{
static void Main(string[] args)
{
FishFace ft = new FishFace();
ft.OpenInterface(IFTypen.ftROBO_first_USB, 0);
}
}
}
</pre>
<p>Mit den Parametern von OpenInterface() kann man die Schnittstelle auswählen, und über die Seriennummer auch mehr als ein Interface ansteuern. Am Ende des Programms sollte dann natürlich auch noch eine CloseInterface() stehen. Die restliche Steuerung ist ziemlich selbst erklärend, darum gehe ich da nicht weiter drauf ein.</p>
<p>Ich persönlich habe jetzt auch ein anderes Interface umgeschwenkt, dass ich von der Schule gestellt bekomme, weil ich die Verbindung zum Fischertechnik-Interface erst nicht hinbekommen habe (falsche Version der umFish.dll). Ist aber trotzdem praktisch, wenn man mal wieder was in der Richtung machen will&#8230;</p>
<p>Wenn ihr noch Fragen habt, einfach in die Kommentare damit.</p>
<br /><a href="http://niklas-rother.de/?p=1462#comments" title="Comments on &quot;Fischertecknik mit C# steuern&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1462" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/fischertecknik-mit-c-steuern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spiel den Profi Coder! [Update]</title>
		<link>http://niklas-rother.de/artikel/spiel-den-profi-coder/</link>
		<comments>http://niklas-rother.de/artikel/spiel-den-profi-coder/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 10:46:32 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Ideen & Gedanken]]></category>
		<category><![CDATA[Interressantes]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[brainfuck]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1453</guid>
		<description><![CDATA[Uhh&#8230; Schon wieder langen nichts geschrieben. Ich habe wirklich zu viel zu tun Naja, etwas kleines neues gibt es doch: Ein Freund fragte mich, ob ich noch diese Website kenne, wo man beliebigen Text eingeben kann, und er dann zum &#8230; <a href="http://niklas-rother.de/artikel/spiel-den-profi-coder/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Uhh&#8230; Schon wieder langen nichts geschrieben. Ich habe wirklich zu viel zu tun <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Naja, etwas kleines neues gibt es doch: Ein Freund fragte mich, ob ich noch diese Website kenne, wo man beliebigen Text eingeben kann, und er dann zum Linux Quelltext würde. Scheinbar hat er das was verwechselt, ich kann mich jedenfalls nicht daran erinnern eine solche Seite gekannt zu haben <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_eek.gif' alt='8-O' class='wp-smiley' /> </p>
<p>Jedenfalls hat er mich auf die Idee gebracht sowas mal zu programmieren, und das ist dabei herausgekommen:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/09/screenshot.png" rel="shadowbox[sbpost-1453];player=img;" title="screenshot"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-1454" title="screenshot" src="http://niklas-rother.de/wp-content/uploads/2011/09/screenshot-1024x499.png" alt="" width="640" height="311" /></a>Geht einfach auf diese Website, und zeigt allen, dass ihr den Linux Kernel aus dem Kopf schreiben könnt:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/09/linux_coding.html"><strong>Update:</strong> </a><a href="http://niklas-rother.de/wp-content/uploads/2011/09/linux_coding1.html">Neue Version: Be a Pro Coder/Hacker</a></p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/09/linux_coding.html">Be a Linux Coder/Hacker</a></p>
<p><span id="more-1453"></span></p>
<p>Der Quelltext den ihr da schreibt stammt aus dem Linux Kernel, aus /kernel/irq/irqdesc.c. Ihr könnt die Seite gerne speichern und den Text ändern, aber er muss vorher für JavaScript escaped werden, und alle Zeilenumbrüche müssen natürlich durch ein &lt;br&gt; ersetzt werden.</p>
<p>Vorschläge für noch &#8220;schlimmere&#8221; Quelldateien im Kernel werden gerne angenommen, aber das Ding ist sauber geschrieben, ich musste schon richtig nach einer &#8220;komplizierten&#8221; Datei suchen. Ach: Der Kernel ist nicht auf kernel.org sondern auf <a href="https://github.com/torvalds/linux">GitHub</a> zu finden!</p>
<p><strong>UPDATE:</strong> Jetzt könnt ihr euch auch an dem FAT-Treiber aus GRUB oder der 99 Bottles of Beer Version in Brainfuck versuchen <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Und der Bug der in den Kommentaren angesprochen wurde, ist auch weg&#8230;</p>
<br /><a href="http://niklas-rother.de/?p=1453#comments" title="Comments on &quot;Spiel den Profi Coder! [Update]&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1453" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/spiel-den-profi-coder/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zwei Trac Installationen zusammenführen</title>
		<link>http://niklas-rother.de/artikel/zwei-trac-installationen-zusammenfuhren/</link>
		<comments>http://niklas-rother.de/artikel/zwei-trac-installationen-zusammenfuhren/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 12:21:09 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1442</guid>
		<description><![CDATA[Als ich vor einiger Zeit ein bisschen mit trac gespielt habe, habe ich zwei Umgebungen (Enviroments) aufgesetzt. Eine für The Kingdom of Darkness und eine für den dazu gehörigen Editor. Das hat sich jetzt im Nachhinein als eine blöde Idee &#8230; <a href="http://niklas-rother.de/artikel/zwei-trac-installationen-zusammenfuhren/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://niklas-rother.de/wp-content/uploads/2011/09/trac_logo1.png" rel="shadowbox[sbpost-1442];player=img;" title="trac_logo"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-full wp-image-1447" title="trac_logo" src="http://niklas-rother.de/wp-content/uploads/2011/09/trac_logo1.png" alt="" width="236" height="73" /></a>Als ich vor einiger Zeit ein bisschen mit <a href="http://trac.edgewall.org/">trac</a> gespielt habe, habe ich zwei Umgebungen (Enviroments) aufgesetzt. Eine für The Kingdom of Darkness und eine für den dazu gehörigen Editor. Das hat sich jetzt im Nachhinein als eine blöde Idee herausgestellt, weil die beiden Projekte sich zu nah sind, und man doch immer wieder die Inhalte aus dem anderen Wiki braucht.</p>
<p>Also wollte ich die beiden zusammenführen. Bei mir ging das ziemlich einfach, darum gibt es jetzt hier eine kleine Anleitung: (Wie immer: Auf eigene Verantwortung, macht ein Backup)</p>
<p><span id="more-1442"></span></p>
<p>Als erstes muss man sich überlegen, was man denn überhaupt alles zusammenfassen will. Folgendes kommt in Betracht:</p>
<ul>
<li>Wiki &#8211; Eine der leichteren Übungen, wenn es denn nicht zwei Seiten mit dem gleichen Namen in beiden trac&#8217;s gibt.</li>
<li>Benutzer &#8211; Hier hängt das Vorgehen von der Autorisierungsmethode ab, das muss jeder selber wissen.</li>
<li>Dateien (Anhänge) &#8211; Auch sehr leicht zu machen, wenn es nicht identische Dateinamen gibt</li>
<li>Repositorys &#8211; sollte machbar sein. Trac kann mit mehr als einem Repository umgehen, oder man fasst die beiden einfach zu einem zusammen. Hier muss man sehen, was das VSC da her gibt.</li>
<li>Changesets &#8211; unproblematisch</li>
<li>Meilensteine, Versionen, etc. Machbar, erfordert aber etwas Handarbeit bzw. Suchen und Ersetzen</li>
<li>Einstellungen/Plugins &#8211; Auch machbar, erfordert aber natürlich Handarbeit.</li>
<li><em>Tickets</em> &#8211; Das ist schwierig. Jede Installation fängt bei 1 an zu zählen, also kollidieren die Nummern. Entweder muss man die Nummern alle um einen Wert erhöhen (wodurch alle Links in Leere laufen), oder, wenn man nicht so viele hat, versuchen, die Tickets des einen möglichst auf die IDs des anderen zu legen, die schon erledigt sind. Damit sind die dann natürlich verloren. Erfordert in beiden Fällen etwas Handarbeit.</li>
</ul>
<p>So nun gehts los. Wir arbeiten uns von einfach nach schwer durch. Als erstes sollte natürlich die Website offline gehen, das kann sonst zu Problemen führen.</p>
<p>Die einfachste Sache sind die Anhänge, denn die liegen einfach im Order /attachments der trac-Umgebung. Die werden einfach in die Ziel-Umgebung kopiert.</p>
<p>Die restlichen Daten legt trac in der Datenbank ab. Die meisten werden wohl eine lokale SQLite-Datenbank verwenden, für andere Typen sollte es analog funktionieren. Die wichtigsten Tabellen sind dabei <em>wiki, attachment </em>und <em>ticket</em>. Wir es <a href="http://reinout.vanrees.org/weblog/2009/05/28/merging-trac.html">hier</a> vorgeschlagen wird, werden die Tabellen einfach exportiert, und in die Zieldatenbank wieder eingelesen.</p>
<p>Wer Debain oder ähnliches benutzt, kann dafür das Paket <em>sqlite3</em> installieren, und diese Befehle benutzen. (Im Wurzelverzeichnis der Quellumgebung)</p>
<pre class="brush: bash; title: ; notranslate">

sqlite3 ./db/trac.db &quot;.dump wiki&quot; &gt; wiki.sql

sqlite3 ./db/trac.db &quot;.dump attachment&quot; &gt; attach.sql

sqlite3 ./db/trac.db &quot;.dump ticket&quot; &gt; ticket.sql

cd ../zieltrac

sqlite ./db/trac.db &quot;.read wiki.sql&quot;

sqlite ./db/trac.db &quot;.read attach.sql&quot;

sqlite ./db/trac.db &quot;.read ticket.sql&quot;
</pre>
<p>Die Anhang-Tabelle sollte dabei fast keine Fehler produzieren, angesehen davon das sie schon existiert. Das Wiki wird ein paar Fehler werfen, weil in jedem trac eine Menge an Wiki-Seite von vornherein existieren, die dann zu Problemen führen. Am besten man schlägt die Zeilennummern in der Dump-Datei nach, um zu sehen, um welche Seite es sich handelt. Wenn doch eine Seite doppelt ist, kann man einfach in der SQL-Datei den Namen ändern (für <em>alle</em> Revisionen), und die Seite sollte dann unter dem Namen zu finden sein.</p>
<p>Was die Tickets betrifft muss sich jeder etwas überlegen, wie ich es oben schon angedeutet hatte. Am schmerzlosesten dürfte es noch sein, einfach alle Ticketnummern um eine gewisse Zahl zu erhöhen, bzw. einfach aus dem Dump zu löschen, dann müsste SQLite neue vergeben.</p>
<p>Wer auch die Änderungen an den Tickets mit Übernehmen will, muss sich dazu die Tabelle <em>ticket_change</em> ansehen, und sich etwas überlegen, um die Nummern passend zurechtzubiegen.</p>
<p>Der Rest ist fast komplett über die Weboberfläche machbar. Wenn es nicht zu viele Meilensteine, Versionen, etc. sind, kann man die einfach per Interface wieder anlegen, und dann per Hand oder Suchen und Ersetzen im Dump den Tickets zuweisen.</p>
<p>Die Repositorys kann man einfach hinzufügen, dann evtl. noch den post-commit Hook anpassen, und ein Resync durchführen. Damit sollten alle Changesets an der richtigen Stelle liegen. Als letztes muss man sich jetzt noch überlegen, ob man noch Plugins usw. übernehmen will, da muss dann halt einfach neu installiert werden.</p>
<p>Wer nicht mit der Konsole hantieren will, dem sei dieses Firefox-Plugin empfohlen: <a href="https://addons.mozilla.org/de/firefox/addon/sqlite-manager/">SQLite Manager</a>. Damit kann man direkt in Firefox SQLite-Dateien editieren. Ich hab noch ein paar Bilder gemacht, die den Prozess erklären sollten:</p>

<a href='http://niklas-rother.de/wp-content/uploads/2011/09/trac_logo1.png' rel='shadowbox[sbalbum-1442];player=img;' title='trac_logo' title="trac_logo"><img width="150" height="73" src="http://niklas-rother.de/wp-content/uploads/2011/09/trac_logo1-150x73.png" class="attachment-thumbnail" alt="trac_logo" title="trac_logo" /></a>
<a href='http://niklas-rother.de/wp-content/uploads/2011/09/trac_merge_1.png' rel='shadowbox[sbalbum-1442];player=img;' title='trac_merge_1' title="trac_merge_1"><img width="150" height="150" src="http://niklas-rother.de/wp-content/uploads/2011/09/trac_merge_1-150x150.png" class="attachment-thumbnail" alt="trac_merge_1" title="trac_merge_1" /></a>
<a href='http://niklas-rother.de/wp-content/uploads/2011/09/trac_merge_2.png' rel='shadowbox[sbalbum-1442];player=img;' title='trac_merge_2' title="trac_merge_2"><img width="150" height="150" src="http://niklas-rother.de/wp-content/uploads/2011/09/trac_merge_2-150x150.png" class="attachment-thumbnail" alt="trac_merge_2" title="trac_merge_2" /></a>
<a href='http://niklas-rother.de/wp-content/uploads/2011/09/trac_merge_3.png' rel='shadowbox[sbalbum-1442];player=img;' title='trac_merge_3' title="trac_merge_3"><img width="150" height="150" src="http://niklas-rother.de/wp-content/uploads/2011/09/trac_merge_3-150x150.png" class="attachment-thumbnail" alt="trac_merge_3" title="trac_merge_3" /></a>
<a href='http://niklas-rother.de/wp-content/uploads/2011/09/trac_merge_4.png' rel='shadowbox[sbalbum-1442];player=img;' title='trac_merge_4' title="trac_merge_4"><img width="150" height="150" src="http://niklas-rother.de/wp-content/uploads/2011/09/trac_merge_4-150x150.png" class="attachment-thumbnail" alt="trac_merge_4" title="trac_merge_4" /></a>

<p><strong>Fazit:</strong> Es ist erstaunlich leicht, auch dank dem guten Datenbank-Design von trac. Und: Neustarten von trac nicht vergessen, sonst wird man die Änderungen nicht sehen.</p>
<br /><a href="http://niklas-rother.de/?p=1442#comments" title="Comments on &quot;Zwei Trac Installationen zusammenführen&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1442" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/zwei-trac-installationen-zusammenfuhren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zufälliges Wort mit .NET</title>
		<link>http://niklas-rother.de/artikel/zufalliges-wort-mit-net/</link>
		<comments>http://niklas-rother.de/artikel/zufalliges-wort-mit-net/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 14:24:49 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[webclient]]></category>
		<category><![CDATA[wikitionary]]></category>
		<category><![CDATA[wort]]></category>
		<category><![CDATA[zufall]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1437</guid>
		<description><![CDATA[Für eine kleine Spielidee brauchte ich ein rein zufälliges Wort. Klingt im ersten Moment etwas trivial, doch woher soll man die Wörter nehmen? Es geht nicht um zufällige Buchstabenkombinationen, sondern um sinnvolle Wörter, am besten Substantive. Die Lösung war dann &#8230; <a href="http://niklas-rother.de/artikel/zufalliges-wort-mit-net/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Für eine kleine Spielidee brauchte ich ein rein zufälliges Wort. Klingt im ersten Moment etwas trivial, doch woher soll man die Wörter nehmen? Es geht nicht um zufällige Buchstabenkombinationen, sondern um sinnvolle Wörter, am besten Substantive.</p>
<p>Die Lösung war dann das <a href="http://de.wikitionary.org">Wikitionary</a>: Das hat, wie jedes auf MediaWiki basierendes Wiki eine API. Dort kann man zwar auch eine zufällige Seite (=Wort) abrufen, aber eben nicht aus einer bestimmten Kategorie. Ich wollte nun aber nur deutsche Substantive. Durch etwas rumsurfen bin dann auch folgende Lösung gekommen:</p>
<p><span id="more-1437"></span></p>
<pre class="brush: csharp; title: ; notranslate">
private static string GetRandomNoun()
{
StringBuilder sb = new StringBuilder(3);
for (int i = 0; i &lt; 3; i++)
{
sb.Append(alphabet[random.Next(26)]);
}

WebClient wc = new WebClient();
wc.Proxy = null;
wc.Headers.Add(HttpRequestHeader.UserAgent, &quot;info@niklas-rother.de&quot;);
string response = wc.DownloadString(String.Format(&quot;http://de.wiktionary.org/w/api.php?action=query&amp;list=categorymembers&amp;cmtitle=Category:Substantiv_%28Deutsch%29&amp;cmsort=sortkey&amp;cmstartsortkey={0}&amp;cmlimit=1&amp;format=xml&quot;, sb.ToString()));

XmlDocument doc = new XmlDocument();
doc.LoadXml(response);

return doc[&quot;api&quot;][&quot;query&quot;][&quot;categorymembers&quot;][&quot;cm&quot;].Attributes[&quot;title&quot;].InnerText;
}
</pre>
<p>Das wichtigste ist dabei DownloadString(), hier wird eine Abfrage an die Wikitionary API gestellt. Dabei wird eine Liste der Kategoriemember abgefragt, doch mit einem kleinen Trick: <em>cmstartsortkey</em> wird auf ein zufälliges Buchstaben-Trippel gesetzt, und dadurch wird nur der Eintrag zurückgegeben, der diesen drei Buchstaben lexikographisch folgt. Man kann auch noch mehr Buchstaben benutzten, aber mit drei Buchstaben sollte man schon viele Wörter erwischen.</p>
<p>Kurze Rechnung: Die Kategorie Substantiv (Deutsch) hat 34.390 Seiten. Aus 3 mal 26 Buchstaben kann man 26<sup>3</sup> = 17.576 Kombinationen machen. Das sind 51%. Man erwischt also theoretisch die Hälfte der Wörter, das sollte reichen. (Ja, ich mag Mathe <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p>Ein paar kleine Fallstricke gibt es noch: Die Wikitionary API will <strong>unbedingt einen UserAgent</strong> haben, also muss man einen setzen, wie oben gesehen. Dort sollte am besten eine Adresse für Beschwerden drin sein, falls sich ein Programm mal selbständig macht&#8230;</p>
<p>Und auch .NET hat noch eine kleine Eigenheit: Wenn man eine neue Instanz von WebClient das erste Mal benutzt, wird versucht einen Proxy zu finden. Das kann bis zu 30sec dauern. Will man nicht warten, setzt man die Eigenschaft Proxy einfach auf null, und verscherzt es sich mit Leuten, die einen Proxy nutzen&#8230;</p>
<p>Und zum Abschluss gibt es noch ein schönes Zufälliges Wort: <em>Presslufthammer</em>! <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley' /> </p>
<br /><a href="http://niklas-rother.de/?p=1437#comments" title="Comments on &quot;Zufälliges Wort mit .NET&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1437" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/zufalliges-wort-mit-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mein Blog in Bildern</title>
		<link>http://niklas-rother.de/artikel/mein-blog-in-bildern/</link>
		<comments>http://niklas-rother.de/artikel/mein-blog-in-bildern/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 11:23:22 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[mein Blog]]></category>
		<category><![CDATA[Statistik]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1430</guid>
		<description><![CDATA[Für die Besucher generiert mein Piwik ja tolle Graphiken, aber was ist mit meinem Blog? Ich habe mich also mal daran gemacht, ein paar SQL-Abfragen gebastelt, und das Ergebnis mit Excel in ein paar Diagramme gebannt. Hier sind sie also: &#8230; <a href="http://niklas-rother.de/artikel/mein-blog-in-bildern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Für die Besucher generiert mein Piwik ja tolle Graphiken, aber was ist mit meinem Blog? Ich habe mich also mal daran gemacht, ein paar SQL-Abfragen gebastelt, und das Ergebnis mit Excel in ein paar Diagramme gebannt. Hier sind sie also:</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/08/posts.png" rel="shadowbox[sbpost-1430];player=img;" title="posts"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1434" title="posts" src="http://niklas-rother.de/wp-content/uploads/2011/08/posts.png" alt="" width="475" height="283" /></a><strong>Anzahl der Posts über Zeit</strong>. So wie es aussieht produziere ich ziemlich regelmäßig, mein Ziel ist ja auch mindestens ein Post pro Woche. (Auch wenn es jetzt grade mehr sind <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/08/kommentare_zeit.png" rel="shadowbox[sbpost-1430];player=img;" title="kommentare_zeit"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1432" title="kommentare_zeit" src="http://niklas-rother.de/wp-content/uploads/2011/08/kommentare_zeit.png" alt="" width="798" height="407" /></a><strong>Anzahl der Kommentare über Zeit.</strong> Über die Kommentare kann man das nicht sagen, besonders zu einem Zeitpunkt gab es sehr viele Kommentare. Was da los war zeigt das nächste Bild:</p>
<p><span id="more-1430"></span></p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/08/kommentare.png" rel="shadowbox[sbpost-1430];player=img;" title="kommentare"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1431" title="kommentare" src="http://niklas-rother.de/wp-content/uploads/2011/08/kommentare.png" alt="" width="790" height="498" /></a><strong>Kommentare pro Post.</strong> Besonders viele Kommentare gab es an Verbesserungsvorschlägen, und an verständnisvoll-wütenden Kommentaren zu meinem Serverumzug. Noch mal genau soviele wie für &#8220;Serverumzug abgeschlossen&#8221; entfallen auf einen anderen Beitrag zu dem Thema, den ich <a title="Wo ist der Artikel?" href="http://niklas-rother.de/artikel/wo-ist-der-artikel/">nicht zeigen darf</a>. Da diese beiden Punkte beiden zeihtnah waren, gibt es da so viele Kommentare. Und wer schreibt die so?</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/08/kommentatoren.png" rel="shadowbox[sbpost-1430];player=img;" title="kommentatoren"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1433" title="kommentatoren" src="http://niklas-rother.de/wp-content/uploads/2011/08/kommentatoren.png" alt="" width="684" height="411" /></a><strong>Anzahl der Kommentare pro Person.</strong> Naja, ähm, ich schreibe die meisten&#8230; Gefolgt von <a href="http://nkreipke.wordpress.com/">Nico</a>, und einem SimpleScreenshot Ideengeber.</p>
<p>So mehr sinnvolle Statistiken sind mir nicht mehr eingefallen&#8230; War aber auch mal interessant. <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><a href="http://niklas-rother.de/?p=1430#comments" title="Comments on &quot;Mein Blog in Bildern&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1430" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/mein-blog-in-bildern/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mein Video Workflow</title>
		<link>http://niklas-rother.de/artikel/mein-video-workflow/</link>
		<comments>http://niklas-rother.de/artikel/mein-video-workflow/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 11:36:17 +0000</pubDate>
		<dc:creator>Niklas</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[animationen]]></category>
		<category><![CDATA[film]]></category>
		<category><![CDATA[lightworks]]></category>
		<category><![CDATA[powerpoint]]></category>
		<category><![CDATA[schneiden]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://niklas-rother.de/?p=1426</guid>
		<description><![CDATA[Ich hatte ja schon mal darüber geschrieben, das ich den diesjährigen Urlaubsfilm nicht wie letztes Jahr mit Pinnacle VideoSpin schneiden will, sondern mit Lightworks. Damals war ich mir nicht so sicher, da das Programm doch sehr professionell ist, und es &#8230; <a href="http://niklas-rother.de/artikel/mein-video-workflow/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ich hatte ja <a title="Lightworks Beta: Nichts für Hobbyfilmer" href="http://niklas-rother.de/artikel/lightworks-beta-nichts-fur-hobbyfilmer/">schon mal</a> darüber geschrieben, das ich den diesjährigen Urlaubsfilm nicht wie letztes Jahr mit <a title="Der VideoSpin Bug" href="http://niklas-rother.de/artikel/der-videospin-bug/">Pinnacle VideoSpin</a> schneiden will, sondern mit <a title="Der VideoSpin Bug" href="http://lightworksbeta.com/">Lightworks</a>.</p>
<p>Damals war ich mir nicht so sicher, da das Programm doch sehr professionell ist, und es mir an Effekten fehlte. Doch jetzt habe ich mich mal rangewagt, und ich denke es war eine gute Entscheidung. Allerdings habe ich nicht alles in Lightworks gemacht, sondern mir noch ein paar Zusatzprogramme zu Hilfe genommen.</p>
<p>Los geht es mit dem Import. Den kann Lightworks zwar per FireWire direkt von der Kamera, aber ich wollte eigentlich nach Szenen getrennte Clips, und ich gehe davon aus, das Lightworks dann nur einen endlos langen Streifen produziert. Den Import hat also Windows direkt und ohne Probleme übernommen. Kamera anschließen, komplettes Band einlesen lassen, und eine Stunde später hat man 12,5 GB an Video in einer AVI Datei.</p>
<p><span id="more-1426"></span></p>
<p>Praktischerweise speichert die Kamera die aktuelle Uhrzeit mit auf dem Band (obwohl ich gar nicht wusste, das sie eine Uhr hat&#8230;), und diese Daten landen auch in der AVI Datei. Das ist das Stichwort für <a href="http://www.chip.de/downloads/Scenalyzer-3.52_13000791.html">Scenalyser</a>. (Der Link für zur Freeware Version) Das kleine Programm schneidet die riesen Datei anhand der Uhrzeiten in einzelne Szenen. Hat bei mir perfekt funktioniert. Weitere 12,5 GB AVI Dateien&#8230;</p>
<p>Jetzt kommt schon Lightworks in Spiel. Hier werden die Datei erst mal importiert (weitere 12,5 GB&#8230;) und dann in Bins sortiert und dann geschnitten. Ein paar Tipps:</p>
<ul>
<li>Um Cue-Points auf dem Audio Kanal zu setzen, immer die <strong>rechte</strong> Maustaste benutzen!</li>
<li>Vollbild Vorschau gibt&#8217;s mit F12.</li>
<li>Wer Überblendeffekte will, muss die beiden Clips erst etwas kürzen (damit sie sich später überlagern können), das macht Lightworks nicht von selbst (wie viele andere Programme)</li>
<li>Gelb ist keine gute Farbe für &#8220;Greenkeying&#8221;&#8230; Haut ist auch gelb&#8230;</li>
<li>Im Kontextmenü eines Edits kann man &#8220;Audio Waveforms&#8221; aktivieren. Praktisch, wenn man den Ton nur bei Kommentaren haben will, und sonst Musik überblenden will.</li>
<li>Wenn Lightworks abstürzt, kein Problem, es speichert nach jedem Klick.</li>
<li>Wer die Videodateien auch auf die C: Platte packen will, muss das erst im Disk Manager erlauben!</li>
</ul>
<p>Wenn man das erst mal drauf hat, geht es recht gut mit Lightworks. Teilweise konnte ich allerdings keine Keyframes setzen, das fand ich etwas blöd.</p>
<p>Der nächste Punkt waren Fotos. Ich habe rund 120 Fotos im Urlaub gemacht, und ein paar (~50) sollten auch in den Film. Zwar kann Lightworks theoretisch mit Fotos umgehen, in der Praxis ist das aber sehr umständlich. Daher habe ich mich nach einem <a href="http://nkreipke.wordpress.com/2010/07/06/orthographiekrise/">Diashowprogramm </a>umgesehen, aber wurde überrascht: Picasa hat das schon eingebaut! Zwar nicht ganz perfekt, aber ausreichend. Das Video wird leider als WMV gespeichert, die Lightworks nicht importieren kann.</p>
<p>Also dachte ich mir, wandle ich es mit FormatFactory eben in ein AVI um. Leider ist das Bild dann komplett grün und der Ton ist weg. Warum auch immer&#8230; Die Lösung war es dann das Video in MOV umzuwandeln. Das kann Lightworks zwar importieren, aber jedesmal wenn ich das Video abspielen will, stürzt es fast ab <img src='http://niklas-rother.de/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Als letztes fehlten dann noch Titel, Abspann und ein paar Einblendungen im Film. Theoretisch kann Lightworks hier eine externe &#8220;CG Application&#8221; (Computer Graphics?) aufrufen, aber das klappt &#8211; auch mangels eines solchen Programmes &#8211; nicht. Doch man muss nur ein bisschen improvisieren: Benutzen wir doch einfach PowerPoint. Animationen sollten damit kein Problem sein, und es kann auch Videos exportieren. Auch dazu ein paar Tipps:</p>
<ul>
<li>Man kann den Folienhintergrund zwar transparent machen, aber dann ist er im Video weiß. Lieber das bekannte Magenta benutzen, das kann man in Lightworks dann per Colorkeying super entfernen.</li>
<li>PowerPoint ist mächtig &#8211; aber es kennt keine Keyframes. Ich bin mit meinen einfachen Überblendungen schon an den Rand der Möglichkeiten gestoßen.</li>
<li>PowerPoint kennt zwar Animationspfade, aber es kann keine Linie entlang eines Pfades zeichnen. Kann kann nur versuchen Linien in grade Stücke zu schneiden, und die dann per &#8220;Wischen&#8221; einzublenden</li>
<li>Man kann beim Export angeben, wie lange jede Folie angezeigt werden soll. Die Zeit zählt nicht erst wenn die Animationen vorbei sind, sondern ab Anfang. Wer also den grade animiert eingeblendeten Titel noch stehen lassen will, sollte die Zeit nicht zu kurz wählen.</li>
</ul>
<p>Ansonsten habe ich aber mit PowerPoint schöne Animationen hinbekommen, auch wenn ich wirklich  an die Grenzen des Programmes (oder meiner Kenntnisse) gestoßen bin.</p>
<p><a href="http://niklas-rother.de/wp-content/uploads/2011/08/export.png" rel="shadowbox[sbpost-1426];player=img;" title="export"><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-medium wp-image-1428" title="export" src="http://niklas-rother.de/wp-content/uploads/2011/08/export-300x246.png" alt="" width="300" height="246" /></a>So, Film fertig geschnitten, nun geht es an den Export. Sollte ja kein großes Problem sein&#8230; Ist es an sich auch nicht: Exportbutton anklicken, Format und Edit wählen, fertig. Doch was muss ich da sehen: In der von Lightworks exportierten Datei war das Bild zweimal übereinander drin! Und natürlich entsprechen gestaucht&#8230; Hieran bin ich beinahe verzweifelt, bis ich im Lightworksforum die Lösung gefunden habe: Man muss in den Projekteinstellungen, die &#8220;Display Optimisation&#8221; von &#8220;Fields&#8221; auf &#8220;Frames&#8221; stellen. Warum auch immer&#8230;</p>
<p>Naja, eine halbe Stunde später war die Datei dann fertig, und konnte mit dem DVD Maker von Windows auf eine DVD gebannt werden. Nur wie hat es Lightworks geschafft, aus 12,5 GB Ausgangsmaterial (62min) 40 GB Film zu machen (33min). Halbe Länge, viermal so viele Daten&#8230;WTF?!</p>
<p>Ich habe also etwas mehr Programme gebraucht, aber mit diesem Setup konnte ich eigentlich meine Vorstellungen gut umsetzen. Nur PowerPoint ist etwas problematisch &#8211; und das einzige Programm das nicht kostenlos ist. Leider kenne ich keine mächtigere Alternative, die auch gratis bzw. in meinem Besitz ist.</p>
<br /><a href="http://niklas-rother.de/?p=1426#comments" title="Comments on &quot;Mein Video Workflow&quot;"><img src="http://niklas-rother.de/wp-content/plugins/feed-comments-number/image.php?1426" alt="Comments" /></a>]]></content:encoded>
			<wfw:commentRss>http://niklas-rother.de/artikel/mein-video-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

