<?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>Student im Urlaub ☕</title>
	<atom:link href="http://www.student-im-urlaub.de/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.student-im-urlaub.de</link>
	<description>亚茨克在亚琛工业大学学习电工</description>
	<lastBuildDate>Sun, 09 May 2010 12:45:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OS X Spotlight stark beschleunigen</title>
		<link>http://www.student-im-urlaub.de/?p=388</link>
		<comments>http://www.student-im-urlaub.de/?p=388#comments</comments>
		<pubDate>Sun, 09 May 2010 12:40:29 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Computerstuff]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=388</guid>
		<description><![CDATA[Unter OSX gibt es so etwas wie ein &#8220;Startmenü&#8221; nicht. Wenn man eine Applikation starten will, dann öffnet man mit Finder einfach den /Applications-Ordner und doppelklickt auf die gewünschte Applikation oder man drückt die Tastenkombination ⌘-Leertaste und gibt die ersten paar Buchstaben seiner Applikation ein. Wenn sie sofort gefunden wurde, drückt man nur noch Enter [...]]]></description>
			<content:encoded><![CDATA[<p><span><span>Unter</span> OSX <span>gibt</span> es so <span>etwas</span> <span>wie</span></span><a href="http://www.student-im-urlaub.de/wp-content/uploads/spotlight_blocklist.png"><img class="alignright size-thumbnail wp-image-389" title="Spotlight-Blockierliste" src="http://www.student-im-urlaub.de/wp-content/uploads/spotlight_blocklist-150x122.png" alt="Spotlight-Blockierliste" width="150" height="122" /></a><span> <span>ein</span> &#8220;<span>Startmenü</span>&#8221; <span>nicht</span>. <span>Wenn</span> man <span>eine</span> <span>Applikation</span> <span>starten</span> will, <span>dann</span> <span>öffnet</span> man <span>mit</span> Fin<span>der</span> <span>einfach</span> den /Applications-<span>Ordner</span> <span>und</span> <span>doppelklickt</span> <span>auf</span> die <span>gewünschte</span> <span>Applikation</span> <span>oder</span> man <span>drückt</span> die <span>Tastenkombination</span> ⌘-<span>Leertaste</span> <span>und</span> <span>gibt</span> die <span>ersten</span> <span>paar</span> <span>Buchstaben</span> s<span>einer</span> <span>Applikation</span> <span>ein</span>. <span>Wenn</span> <span>sie</span> <span>sofort</span> <span>gefunden</span> <span>wurde</span>, <span>drückt</span> man <span>nur</span> <span>noch</span> Enter <span>und</span> sie wird gestartet. Das hat sich bei mir so stark zur Gewohnheit gemacht, dass ich teilweise keinen Dateibrowser mehr benutze (für Dateisystem-Operationen ist das Terminal sowieso benutzerfreundlicher), was wiederum erlaubt zu hinterfragen, ob man so etwas als Benutzer in Zukunft überhaupt wirklich braucht wenn solche Konzepte wie Spotlight sich noch etwas weiterentwickeln.</span></p>
<p><span>Spotlight <span>holt</span> s<span>eine</span> <span>Informationen</span> <span>aus</span> <span>einer</span> <span>Datenbank</span>. <span>Diese</span> <span>Datenbank</span> <span>hält</span> <span>einen</span> Index <span>über</span> <span>alle</span> <span>Dateien</span> <span>auf</span> <span>der</span> <span>Festplatte</span> <span>bereit</span> <span>und</span> <span>wird</span> <span>von</span> <span>Hintergrundprozessen</span> <span>ständig</span> <span>aktuell</span> <span>gehalten</span>.</span></p>
<p><span><span>Allerdings</span> <span>ist</span> Spotlight <span>manchmal</span> <span>langsam</span>. <span>Ich</span> <span>definiere</span> &#8220;<span>langsam</span>&#8221; in <span>diesem</span> Fall <span>mit</span> &#8220;die <span>Ergebnisse</span> <span>erscheinen</span> <span>nicht</span> </span><strong><span><span>sofort</span></span></strong><span>&#8220;. <span>Das</span> <span>kommt</span> <span>einerseits</span> <span>daher</span>, <span>dass</span> <span>der</span> <span>Hintergrundprozess</span>, <span>der</span> die <span>Datenbank</span> <span>aktuell</span> <span>hält</span>, <span>bei</span> <span>manchen</span> <span>Ordnern</span> <span>extrem</span> <span>viel</span> <span>zu</span> tun hat, <span>da</span> <span>sich</span> <span>dort</span> <span>ständig</span> <span>vieles</span> <span>ändert.</span> A<span>ndererseits kommt es</span> <span>daher</span>, <span>dass</span> <span>Suchen</span> in <span>großen</span> <span>Datenbanken</span> <span>geringfügig</span> <span>länger</span> <span>dauert</span>, <span>als</span> in <span>kleinen</span>. Die <span>Laufzeit</span> <span>steigt</span> <span>zwar</span> <span>nicht</span> linear <span>mit</span> <span>der</span> <span>Datenbankgröße</span> (<span>Datenbanken verfügen über einige sehr ausgeklügelte Suchalgorithmen</span>), aber <span>sie</span> <span>steigt</span>.</span></p>
<p><span>Googlen <span>und</span> Ausprobieren hat mir heute die Erkenntnis gebracht, <span>dass</span> es <span>da</span> gewisse <span>Ordner</span> <span>gibt</span>, nach deren Inhalten man eigentlich nie sucht, <span>die</span> <span>sich</span> aber laufend <span>ändern</span>. <span>Wenn</span> man <span>sie</span> <span>von</span> <span>der</span> Indizierung ausschließt, <span>dann</span> lässt Spotlight <span>sich</span> dadurch verblüffend gut beschleunigen.</span></p>
<p><span><span>Man geht folgendermaßen vor: Klick <span>auf</span>  -&gt; </span><strong>Systemeinstellungen</strong><span> -&gt; </span><strong>Spotlight</strong><span> -&gt; </span><strong>Privatsphäre</strong><span>. Mit einem Klick auf &#8220;</span><strong>+</strong><span>&#8221; kann man nun Ordner hinzufügen, die dann später von Spotlight nicht mehr berücksichtigt werden.</span></span></p>
<p><span><span>Hier fügt man nun die Ordner &#8220;</span><strong>~/Library/Application Suppor</strong><span>t&#8221; und &#8220;</span><strong>~/Library/Caches</strong><span>&#8221; hinzu (</span><strong>~</strong><span> ist eine Abkürzung für den eigenen Home-Ordner). In diesen Ordnern ändert sich ständig einiges und als normaler Benutzer schaut man sowieso praktisch nie in die dort liegenden Dateien.</span></span></p>
<p><span><span>Da ich als Software-Entwickler haufenweise SDKs und Frameworks installiert habe, werde ich bei fast jedem Stichwort von Spotlight mit gefundenen Header-Dateien überflutet. Das bleibt aus, wenn man einfach grob &#8220;</span><strong>/Library</strong><span>&#8221; und unter &#8220;</span><strong>/Developer</strong><span>&#8221; alles außer &#8220;</span><strong>/Developer/Applications</strong><span>&#8221; in die Sperrliste hinzufügt.</span></span></p>
<p><span><span>Wer &#8220;Fink&#8221; benutzt (Ein Paketmanager für freie Software für OS X), wird &#8220;</span><strong>/sw</strong><span>&#8221; zur Liste hinzufügen wollen.</span></span></p>
<p>Der zur Datenbank gehörende Hintergrundprozess passt sein Vorgehen beim Indizieren nun automatisch daran an. Die Datenbank muss nicht neu aufgebaut werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=388</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ein Weihnachtsgeschenk 2009</title>
		<link>http://www.student-im-urlaub.de/?p=359</link>
		<comments>http://www.student-im-urlaub.de/?p=359#comments</comments>
		<pubDate>Tue, 29 Dec 2009 20:06:27 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Elektrotechnik]]></category>
		<category><![CDATA[Firmware]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[mikrocontroller]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Uni]]></category>
		<category><![CDATA[Zufall]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=359</guid>
		<description><![CDATA[Ich hatte mir dieses Jahr eigentlich vorgenommen, zu Weihnachten als Geschenk eine selbstgebaute &#8220;Pulsanzeige&#8221; zu bauen, deren Schaltung dann noch in einem dekorativen Gehäuse verbaut werden sollte.  Das &#8220;Praktikum Elektrotechnik 2&#8243;, an dem ich dieses Semester  teilnehme, befasst sich im vierten Versuch mit Funktionsgeneratoren auf Basis von Operationsverstärkern und Grundschaltungen derselbigen. Jedenfalls brachte mich die [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="font-weight: normal; font-size: 13px;">Ich hatte mir dieses Jahr eigentlich vorgenommen, zu Weihnachten als Geschenk eine selbstgebaute &#8220;Pulsanzeige&#8221; zu bauen, deren Schaltung dann noch in einem dekorativen Gehäuse verbaut werden sollte.  Das &#8220;Praktikum Elektrotechnik 2&#8243;, an dem ich dieses Semester  teilnehme, befasst sich im vierten Versuch mit Funktionsgeneratoren auf Basis von Operationsverstärkern und Grundschaltungen derselbigen. Jedenfalls brachte mich die letzte Aufgabenstellung der Versuchsdurchführung, nämlich das Verstärken des Pulssignals aus einer Fingerklammer, auf die Idee so etwas mal zuhause nachzubauen und es dann noch &#8220;Benutzerkompatibel&#8221; für die erwähnte Geschenkidee zu machen. Der Benutzer sollte dann einen Finger in eine Klammer stecken, die seinen Puls über das optische Verfahren abnimmt und die Operationsverstärkerschaltung betreibt dann eine dekorative Lampe die so synchron mit seinem Puls aufleuchtet.</span></h2>
<p>Leider hat es mit der Zeit nicht mehr hingehauen, die Schaltung verschenkfertig zu machen. Es gab ein paar batteriespezifische Probleme und so weiter, von daher habe ich mich nach einem Alternativgeschenk umgesehen.</p>
<p>Bei der Suche bin ich auf eine Reihe Klein-Bastelprojekte gestoßen, die aufeinander aufbauen und sich auf interessantem Wege jeweils verbessern:</p>
<div id="attachment_360" class="wp-caption alignright" style="width: 160px"><a href="http://www.student-im-urlaub.de/wp-content/uploads/darkpumpkin2.jpg"><img class="size-thumbnail wp-image-360" title="Pumpkinschaltung" src="http://www.student-im-urlaub.de/wp-content/uploads/darkpumpkin2-150x90.jpg" alt="" width="150" height="90" /></a><p class="wp-caption-text">Phototransistorschaltung von www.evilmadscientist.com (Bild stammt von dort)</p></div>
<p>Zunächst ist auf <a title="Evil Mad Scientist Homepage" href="http://www.evilmadscientist.com" target="_blank">www.evilmadscientist.com</a> eine Bastelei aufgetaucht, die auf sehr minimalistischem Wege LEDs nur in dunkler Umgebung leuchten lässt (<a title="Schaltung, die Dunkelheit detektiert" href="http://www.evilmadscientist.com/article.php/darkpumpkin" target="_blank">Link zum Artikel</a>). Ein anderer Bastler hat auf <a title="Instructables Homepage" href="http://www.instructables.com" target="_blank">www.instructables.com</a> veröffentlicht, wie er eine kleine LED-Schaltung insofern mit einem Mikrocontroller erweitert hat, dass sie danach flackert wie eine Kerze (<a title="Flackernde LED mittels Mikrocontrollerschaltung" href="http://www.instructables.com/id/Flickering_LED_Candle/step4/Program-your-chip/">Link zur Anleitung</a>).</p>
<p>Ein weiterer Hobbybastler hat dann auf <a title="Hackaday Homepage" href="http://www.hackaday.com" target="_blank">www.hackaday.com</a> veröffentlicht, wie er diese beiden Ideen kombiniert hat, um LEDs nur im Dunklen flackern zu lassen (<a title="Nur in der Dunkelheit flackernde LEDs" href="http://hackaday.com/2008/10/30/flickering-led-circuit/" target="_blank">Link zum Artikel</a>). Die Schaltung bietet auf diesem Stand einen Mikrocontroller, der sich um das Flackern kümmert und einen Fototransistor, der den kompletten Mikrocontroller abschaltet, wenn das Umgebungslicht zu hell ist.</p>
<div id="attachment_361" class="wp-caption alignleft" style="width: 160px"><a href="http://www.student-im-urlaub.de/wp-content/uploads/board2.jpg"><img class="size-thumbnail wp-image-361 " title="Mikrocontrollerschaltung" src="http://www.student-im-urlaub.de/wp-content/uploads/board2-150x52.jpg" alt="" width="150" height="52" /></a><p class="wp-caption-text">Fototransistor mit Mikrocontroller verschaltet auf www.spritesmod.com (Bild stammt von dort)</p></div>
<p>Diese Schaltung wiederum hat der Webmaster von <a title="Sprites Homepage" href="http://www.spritesmods.com">www.spritesmods.com</a> aufgegriffen (<a title="Flackernde LEDs im Dunkeln ohne Fotodiode" href="http://spritesmods.com/?art=minimalism" target="_blank">Link zum Artikel</a>), weil ihm aufgefallen ist, dass die Schaltung auch mit viel weniger Bauteilen funktioniert, wenn man ein interessantes Detail von LEDs ausnutzt:</p>
<p>Wenn man Licht auf eine LED scheinen lässt, dann produziert sie eine Spannung an ihrer Sperrschicht, die in Sperrichtung abfällt. In diesem Moment kann man die LED wie eine kleine Stromquelle, parallel zu einem Kondensator geschaltet, betrachten.<br />
Der Mikrocontroller nutzt diese Tatsache folgendermaßen aus: Er schaltet in gewissen Zeitintervallen die Beleuchtung ab, beschaltet eine LED hochohmig, damit sich eine Spannung anlegen kann, misst sie und entscheidet dann, ob die Lichter danach weiter leuchten sollen oder nicht. Ferner wird der Mikrocontroller nun nicht mehr ausgeschaltet, sondern legt sich einfach &#8220;schlafen&#8221; und wacht später für die nächste Messung wieder auf. Das ist immer noch extrem sparsam.</p>
<div id="attachment_363" class="wp-caption alignright" style="width: 160px"><a href="http://www.student-im-urlaub.de/wp-content/uploads/board_simple.png"><img class="size-thumbnail wp-image-363" title="Vereinfachte Schaltung" src="http://www.student-im-urlaub.de/wp-content/uploads/board_simple-150x58.png" alt="Schaltung, die ohne Phototransistor auskommt" width="150" height="58" /></a><p class="wp-caption-text">Vereinfachte Schaltung von www.spritesmod.com (Bild stammt von dort)</p></div>
<p>Alex von <a title="Alexander Webers Blog" href="http://www.tinkerlog.com" target="_blank">www.tinkerlog.com</a> hat diese Idee wiederum aufgegriffen und ihr mit einer künstlerisch anmutenden Freiform-Verlötung der Bauteile einen wundervollen Hauch von Eleganz und Ästhetik verpasst. (<a title="Geeky Advent" href="http://tinkerlog.com/2009/12/12/geeky-advent/" target="_blank">Link zum Artikel</a>).</p>
<p>Weil mir die Idee so gut gefallen hat, habe ich mich schnell dazu entschieden, sie nachzubauen, zumal man sowas schön verschenken kann.</p>
<p>Allerdings bot die spritesmod.com-Version der Schaltung und Mikrocontroller-Software eine Möglichkeit, die Schwellhelligkeit, bei der die LEDs noch flackern sollen, einzustellen/zu kalibrieren. Die tinkerlog-Version hat darauf verzichtet, um Platz für ein anderes nettes Feature zu bieten: Wenn man den Mikrocontroller resettet, dann leuchtet jeweils eine andere Anzahl an LEDs, was wiederum sehr passend für die verschiedenen Adventswochen ist.</p>
<p>Die Version die ich nachgebaut habe, bot letzteres Feature nicht, zumal die Adventwochen sowieso schon vorbei waren und ich diese Kalibrierung nicht auslassen wollte, zumal der Benutzer meiner Ansicht nach entscheiden sollte, bei welcher Helligkeit er den Kranz schimmern sehen will.<a href="http://www.student-im-urlaub.de/wp-content/uploads/PICT0145.jpg"><img class="alignleft size-thumbnail wp-image-365" title="Nachbau des Geeky Adventlights" src="http://www.student-im-urlaub.de/wp-content/uploads/PICT0145-150x112.jpg" alt="" width="150" height="112" /></a></p>
<p>Jedenfalls habe ich mich heute noch einmal hinter den Sourcecode geklemmt, um Helligkeitskalibrierung <strong>und </strong>Adventskerzenfunktion zu haben.</p>
<p>Das Flackern der Lichter wird  realisiert, indem einfach verschiedene LED-Helligkeiten die in einem Array gespeichert sind, schnell nacheinander auf den LEDs dargestellt werden. Die Werte sind allesamt möglichst zufällig gewählt, um sich dem praktisch zufälligen Flackern einer Kerzenflamme in den ebenso praktisch zufälligen Luftzügen, die man zuhause so hat, anzunähern.</p>
<p>Im Endeffekt lief es darauf hinaus, dass ich so viele Zufallszahlen aus dem Zufallszahlen-Array herausgelöscht habe, dass beide Features auf den Chip passen. Außerdem habe ich die im EEPROM gespeicherten Werte (Kerzen-Anzahl und gespeicherte Schwell-Helligkeit) in eine .eep Datei ausgelagert, die getrennt auf den Chip geflasht werden kann.</p>
<p>Ein Video zeigt ganz gut, dass es keinen deutlichen Unterschied macht, ob es ~150 oder ~250 Zufallswerte sind, die das Flackern erzeugen. Zwei Abschnitte des folgenden Videos sind mit zwei verschieden großen Zufallszahlen-Arrays gemacht. Um ehrlich zu sein, weiß ich selbst nicht mehr, welcher Abschnitt mit welcher Einstellung arbeitet:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/LXA4bxuErhQ&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/LXA4bxuErhQ&#038;fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Nun ja, besonders verwunderlich ist das nicht, zumal das Kerzenflackern ja schon <a title="Kerzenflackern mit ICs" href="http://www.student-im-urlaub.de/?p=135" target="_blank">mit zwei NE556-Bausteinen</a> gut klappt.</p>
<p>Den Sourcecode inklusive dem angepassen Makefile gibt es hier: <a href="http://www.student-im-urlaub.de/wp-content/uploads/advent_modified_sourcecode.zip">Download</a></p>
<p>Video vom fertigen Aufbau:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/JLRaciszcGs&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/JLRaciszcGs&#038;fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=359</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AVR-Programmierung unter OS X</title>
		<link>http://www.student-im-urlaub.de/?p=339</link>
		<comments>http://www.student-im-urlaub.de/?p=339#comments</comments>
		<pubDate>Fri, 28 Aug 2009 18:03:47 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Computerstuff]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Diskriminierung]]></category>
		<category><![CDATA[Elektrotechnik]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[mikrocontroller]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Zitat]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=339</guid>
		<description><![CDATA[Atmel kümmert sich mit kostenloser Software zur komfortableren Entwicklung von Software für die hauseigenen Mikrocontroller ganz gut um seine Kunden. Wenn sie Windows benutzen.
AVR Studio (Homepage, für Windows) kann alles, was das Herz begehrt. Es ist eine Programmierumgebung für C- und Assembler-Programmierer, die zusätzlich das Hochladen und Debugging von Programmcode auf den Chip bietet. Außerdem [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/atmelchip.png"><img class="alignright size-medium wp-image-340" title="atmelchip" src="http://www.student-im-urlaub.de/wp-content/uploads/atmelchip-270x300.png" alt="atmelchip" width="270" height="300" /></a><a title="Atmel Homepage" href="http://www.atmel.com" target="_blank">Atmel</a> kümmert sich mit kostenloser Software zur komfortableren Entwicklung von Software für die hauseigenen Mikrocontroller ganz gut um seine Kunden. Wenn sie Windows benutzen.</p>
<p>AVR Studio (<a title="Link zu AVR Studio" href="http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=2725" target="_blank">Homepage</a>, für Windows) kann alles, was das Herz begehrt. Es ist eine Programmierumgebung für C- und Assembler-Programmierer, die zusätzlich das Hochladen und Debugging von Programmcode auf den Chip bietet. Außerdem ist ein Simulator mitgeliefert, der die Analyse des Chips mit dem man arbeitet, stark vereinfacht und veranschaulicht.</p>
<p>Abgesehen davon dass man, nach einer kurzen Phase der Enttäuschung darüber dass Kunden mit anderen Lieblingsbetriebssystemen nicht bedient werden, fast Neid empfindet, stellt sich nach etwas Recherche aber dann doch durchaus heraus, dass das kein Grund ist, auf Windows umzusatteln. Jeder Nicht-User von Windows hat schließlich seine guten Gründe.</p>
<p>Also um überhaupt erst einmal AVR-Mikrocontroller zu programmieren, braucht man Compiler, Bibliotheken, Header-Dateien, Assembler und das Tool zum Hochladen des Codes.</p>
<h2>Toolchain</h2>
<p><a title="Fink-Projekt Homepage" href="http://finkproject.org/" target="_blank">Fink-Nutzer</a> mögen einfach die diversen AVR-Pakete installieren, das geht schnell und einfach. (Mit Paketnamen: avr-binutils, avr-gcc, avr-libc, avrdude). Ich gehe hier nicht weiter auf Fink ein, da diejenigen, die jetzt nicht wissen wie das geht oder was Fink überhaupt ist, sowieso ein paar mehr Seiten an Doku lesen müssten und da ich es selbst nicht so gemacht habe (Beispielsweise deswegen weil der Assembler den ich haben wollte meines Wissens nach nicht per Fink zu erhalten ist).</p>
<p><a title="Homepage von Objective Development" href="http://www.obdev.at" target="_blank">Objective Development</a> hat ein sehr praktisches Paket herausgebracht: Das <a title="Projektseite des Crosspacks" href="http://www.obdev.at/products/crosspack/index.html" target="_blank">Crosspack</a> bietet alle Tools die man braucht. Gleichermaßen für Intel-Macs wie PPC-Macs.</p>
<p>Jetzt steht man zwar noch ohne GUI-Tools da, aber per Konsole kann man schon losprogrammieren. Mit dem Lieblingstexteditor programmiert man drauf los, kompiliert mit &#8220;avr-gcc&#8221; oder assembliert mit &#8220;avra&#8221;, lädt das Kompilat mit &#8220;avrdude&#8221; hoch und mit selbigem Tool ändert man auch die FUSE-Werte. Das ist nicht unkomfortabel, wenn man sich mit Shellscripten und einem guten Texteditor ausrüstet. (Empfehlung: <a title="VIM Projekt" href="http://www.vim.org/" target="_blank">VIM</a> &#8211; ist bereits vorinstalliert)</p>
<p>Allerdings fehlen noch Syntax-Highlightning, Code-Completion, Upload-Button, FUSE-Editor, Registerbrowser usw.:</p>
<h2>Entwicklungsumgebung</h2>
<p>Beim Crosspack sind bereits Xcode-Templates mitgeliefert, aber da ich jene nicht benutze, bleibt das nur nebenbei erwähnt.</p>
<p>Ich kann <a title="Eclipse Projekt" href="http://www.eclipse.org/" target="_blank">Eclipse</a> wärmstens empfehlen: Es handelt sich um eine Entwicklungsumgebung, die &#8211; da Java-basiert &#8211; auf jedem Betriebssystem heimisch ist und Plugins für jede Programmiersprache und beinahe jedes Framework liefert. Sich an dieses sehr umfangreiche Programm zu gewöhnen ist eine gute Idee, da man sich damit nicht an ein Betriebssystem oder Framework oder ähnliches bindet. Die neueste Version für OS X hängt auch nicht mehr vom Carbon-Framework ab, sondern baut die Oberfläche endlich auf Cocoa auf, was viele Vorteile gebracht hat.</p>
<p>Um Eclipse den Umgang mit AVRs beizubringen, braucht man das entsprechende Plugin: <a title="AVR-Eclipse Projekt" href="http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin" target="_blank">AVR-Eclipse</a>. Auf die Installation gehe ich nicht weiter ein, da sie nicht kompliziert ist und eine Anleitung bald ohnehin schnell veraltet sein kann. Das Wiki der Projektseite bietet eine gute Anleitung.</p>
<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/avr_upload.png"><img class="size-full wp-image-341 alignright" title="avr_upload" src="http://www.student-im-urlaub.de/wp-content/uploads/avr_upload.png" alt="Der praktische Upload-Button!" width="132" height="120" /></a></p>
<p>Als nächstes bringt Eclipse allgemein natürlich den Syntax-Parser, die Code-Completion, Syntax-Highlightning, eine schöne Organisationsstruktur für Projekte, Debuggingmöglichkeiten, Symbolbrowser und so weiter.</p>
<p>AVR-Plugin-spezifischer sind der praktische Upload-Button, der AVR-Device-Explorer, in dem man alle Register, Ports und Interrupts chipspezifisch einsehen kann, die Programmer-Integration (über die man den Typ des Mikrocontrollers übrigens inklusive Taktung automatisch auslesen kann) und die Möglichkeit, alles projektspezifisch einzustellen.</p>
<p>Bilder sagen mehr als tausend Worte:</p>
<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/avr_device_explorer.png"><img class="size-thumbnail wp-image-342 " title="avr_device_explorer" src="http://www.student-im-urlaub.de/wp-content/uploads/avr_device_explorer-150x70.png" alt="Der AVR Device Explorer" width="150" height="70" /></a><a href="http://www.student-im-urlaub.de/wp-content/uploads/fuse_editor1.png"><img class="size-thumbnail wp-image-344" title="fuse_editor" src="http://www.student-im-urlaub.de/wp-content/uploads/fuse_editor1-150x91.png" alt="FUSE-Editor" width="150" height="91" /></a><a href="http://www.student-im-urlaub.de/wp-content/uploads/lockbit_editor.png"><img class="alignnone size-thumbnail wp-image-345" title="lockbit_editor" src="http://www.student-im-urlaub.de/wp-content/uploads/lockbit_editor-150x92.png" alt="lockbit_editor" width="150" height="92" /></a></p>
<p>Wer die Arbeit mit Eclipse bereits gewohnt ist, der wird dieses Plugin sicher mögen.</p>
<p>Wenn allerdings schnell mal ohne großes Terminal-Bla FUSEs ausgelesen/geändert, Kompilat hochgeladen oder ähnliches getan werden soll, dann ist es übertrieben, extra ein Eclipse-Projekt aufzuziehen.</p>
<p>Das perfekte Tool hierfür heißt <a title="AVRFuses Projekt" href="http://www.vonnieda.org/software/avrfuses" target="_blank">AVRFuses</a>. <a href="http://www.student-im-urlaub.de/wp-content/uploads/avrfuses_about.png"><img class="alignright size-medium wp-image-350" title="avrfuses_about" src="http://www.student-im-urlaub.de/wp-content/uploads/avrfuses_about-256x300.png" alt="avrfuses_about" width="256" height="300" /></a></p>
<p>Es ist in C#.NET programmiert, was wiederum bedeutet, dass es unter Windows, Linux (mit Mono) und OS X lauffähig ist.</p>
<p>Da es eine Vielzahl von AVR-Chips unterstützt und an sich recht spartanisch ausgestattet (Es kann das was man braucht und mehr nicht) ist, nutzt man es am besten um schnell mal ein paar Bits zu setzen, wenn man fremde Programme in den eigenen Mikrocontroller schicken will oder ähnliches.</p>
<p>Die eigentlichen Features:</p>
<ul>
<li>Programme hochladen/auslesen</li>
<li>EEPROM hochladen/auslesen</li>
<li>Chip löschen</li>
<li>FUSE-Bits setzen/auslesen</li>
</ul>
<p>Screenshots:</p>
<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/avrfuses_1.png"><img class="alignnone size-thumbnail wp-image-351" title="avrfuses_1" src="http://www.student-im-urlaub.de/wp-content/uploads/avrfuses_1-138x150.png" alt="avrfuses_1" width="138" height="150" /></a><a href="http://www.student-im-urlaub.de/wp-content/uploads/avrfuses_2.png"><img class="alignnone size-thumbnail wp-image-352" title="avrfuses_2" src="http://www.student-im-urlaub.de/wp-content/uploads/avrfuses_2-138x150.png" alt="avrfuses_2" width="138" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=339</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>O2-Kunden: Verbindungsaufbau beschleunigen</title>
		<link>http://www.student-im-urlaub.de/?p=330</link>
		<comments>http://www.student-im-urlaub.de/?p=330#comments</comments>
		<pubDate>Fri, 07 Aug 2009 06:50:13 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[langsam]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[Telefon]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=330</guid>
		<description><![CDATA[Mittlerweile bekommt man kaum noch echte Telefonanschlüsse, sondern eher Telefon über Internet. Die Qualität ist schlechter, der Verbindungsaufbau häufig langsamer, aber es ist billig.
Bei O2 ist es so, dass der Router nach dem Eintippen der Nummer noch fünf Sekunden wartet, bis er loswählt. Vielleicht zögert/überlegt der Benutzer ja noch. Bei früheren Telefonverbindungen war das egal [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/Bild-11.png"><img class="alignright size-full wp-image-331" title="O2-Standardrouter" src="http://www.student-im-urlaub.de/wp-content/uploads/Bild-11.png" alt="O2-Standardrouter" width="171" height="168" /></a>Mittlerweile bekommt man kaum noch echte Telefonanschlüsse, sondern eher Telefon über Internet. Die Qualität ist schlechter, der Verbindungsaufbau häufig langsamer, aber es ist <strong>billig</strong>.</p>
<p>Bei O2 ist es so, dass der Router nach dem Eintippen der Nummer noch <strong>fünf Sekunden</strong> wartet, bis er loswählt. Vielleicht zögert/überlegt der Benutzer ja noch. Bei früheren Telefonverbindungen war das egal &#8211; wenn man über Internet verbunden wird, dann ist das aus technischen Gründen nicht mehr egal.</p>
<p>Als ich letztens auf o2online.de (dort wo man als &#8220;Onlinekunde&#8221; seine Rechnungen und Verbindungsnachweise nachlesen kann) im Hilfe-Abteil herumgesurft bin, habe ich auch folgenden goldenen Tipp gefunden:</p>
<p>Die fünfsekündige Wartezeit des Routers lässt sich unterbrechen, indem man eine Raute (#) an die Nummer anhängt. Der Router wählt dann <strong>sofort</strong> los!</p>
<p>Wer also alle Nummern im digitalen Telefonbuch mit einer Raute am Ende ausstattet, der wartet fortan nicht mehr so lange, bis er verbunden ist.</p>
<p>Das sollte nicht nur bei O2-Kunden klappen, sondern allgemein bei jedem, der einen Router von Zyxel benutzt. Allerdings sind alle mir bekannten Geräte dieses Herstellers so schlecht, dass man sowas eigentlich nur dann haben sollte, wenn der Telekommunikationsanbieter es kostenlos mit dem Anschluss ausliefert.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=330</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lösungen zum Praktikum Informatik 1</title>
		<link>http://www.student-im-urlaub.de/?p=309</link>
		<comments>http://www.student-im-urlaub.de/?p=309#comments</comments>
		<pubDate>Fri, 19 Jun 2009 11:40:00 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Uni]]></category>
		<category><![CDATA[Praktikum]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[RWTH]]></category>
		<category><![CDATA[Studium]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=309</guid>
		<description><![CDATA[Im zweiten Semester des Bachelor-Studiengangs &#8220;Elektrotechnik / Informationstechnik / Technische Informatik&#8221; gibt es ein Programmierpraktikum unter dem Titel &#8220;Praktikum Informatik 1&#8243;.
Ich habe das alles vorgearbeitet um es schnell hinter mir zu haben und hin und wieder Kommilitonen geholfen, wenn sie mich um Hilfe fragten. Auf Dauer lud ich die Sourcecodes einfach aus Bequemlichkeit hoch und [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/Bild-2.png"><img src="http://www.student-im-urlaub.de/wp-content/uploads/Bild-2-150x147.png" alt="Dir listing" title="Dir listing" width="150" height="147" class="alignright size-thumbnail wp-image-317" /></a>Im zweiten Semester des Bachelor-Studiengangs &#8220;Elektrotechnik / Informationstechnik / Technische Informatik&#8221; gibt es ein Programmierpraktikum unter dem Titel &#8220;Praktikum Informatik 1&#8243;.</p>
<p>Ich habe das alles vorgearbeitet um es schnell hinter mir zu haben und hin und wieder Kommilitonen geholfen, wenn sie mich um Hilfe fragten. Auf Dauer lud ich die Sourcecodes einfach aus Bequemlichkeit hoch und durch die bald darauf folgende Verlinkung auf <a href="http://uni.ist.hirnlos.net">uni.ist.hirnlos.net</a> hat sich die entsprechende Adresse schnell und weit verbreitet. Gerade weil das eher ein Bequemlichkeitsakt war, sind die Sourcecodes auch nicht lehrsam dokumentiert. Ich habe einfach nur programmiert was das Praktikumsskript verlangt um dafür meine Testate zu bekommen und das war&#8217;s.</p>
<p>Da mittels Google oft nach &#8220;Student im Urlaub Programmierpraktikum Lösungen&#8221; o.ä. gesucht wird, dieses Blog hier allerdings nicht darauf verlinkt, verlinke ich die Adresse mal in diesem Artikel, um vielen sonst ins Leere gehenden Suchanfragen doch ein Ziel zu geben.</p>
<p>Alle meine Lösungen sind unter <a href="http://www.student-im-urlaub.de/source">http://www.student-im-urlaub.de/source</a> erreichbar.<br />
Ich übernehme weder Haftung für die Richtigkeit der Sourcecodes, noch für Schäden oder irgendwelche unmittelbare Folgen durch Benutzung dieser Programmcodes. (Schließlich bin ich nur Kommilitone und habe sonst nichts mit dem Praktikum am Hut)</p>
<p>Mittlerweile ist diese Quelle auch den Tutoren aufgefallen. Offenbar ist ihnen auch aufgefallen, dass viele den Code einfach kopieren, aber nicht richtig verstehen. Der Sinn dieses Praktikums ist dadurch natürlich für diejenigen, die sowas tun, gebrochen.</p>
<p>Mit ist das prinzipiell völlig egal, zumal wir alle erwachsen genug sind, um selbst zu entscheiden. Wie gesagt, ich schreibe diesen Artikel hier, um ins Leere gehende Suchanfragen zu verhindern.</p>
<p>Sobald das Praktikum vorbei ist, lade ich die Lösungen auf <a href="http://www.bsetitti.de">www.bsetitti.de</a>, das Forum für Kommilitonen dieses Studiengangs, hoch. Das verzögert sich deshalb auf das Ende des Praktikums, weil bis dahin nicht sicher ist, ob noch Änderungen/Korrekturen folgen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=309</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boolesche Ausdrücke vereinfachen</title>
		<link>http://www.student-im-urlaub.de/?p=298</link>
		<comments>http://www.student-im-urlaub.de/?p=298#comments</comments>
		<pubDate>Wed, 27 May 2009 16:36:23 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Computerstuff]]></category>
		<category><![CDATA[Uni]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Elektrotechnik]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[RWTH]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Teilen]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=298</guid>
		<description><![CDATA[Um boolesche Ausdrücke zu vereinfachen, kann man Karnaugh-Veitch-Diagramme benutzen. Die Problematik gibt es praktisch überall, wo es um Low-Level-Logik geht.
Um mein eigenes Verständnis so tief zu treiben, wie es nur geht, habe ich ein Java-Applet dazu programmiert.
Da sich weit und breit im Internet kaum sinnvolle Sourcecodes zu solchen Anwendungen finden lassen, die auch noch Betriebssystem-unabhängig [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/kvdiag.png"><img class="alignright size-thumbnail wp-image-299" title="KV-Diagramme vereinfachen war nie leichter!" src="http://www.student-im-urlaub.de/wp-content/uploads/kvdiag-150x144.png" alt="KV-Diagramme vereinfachen war nie leichter!" width="150" height="144" /></a>Um boolesche Ausdrücke zu vereinfachen, kann man Karnaugh-Veitch-Diagramme benutzen. Die Problematik gibt es praktisch überall, wo es um Low-Level-Logik geht.</p>
<p>Um mein eigenes Verständnis so tief zu treiben, wie es nur geht, habe ich ein Java-Applet dazu programmiert.</p>
<p>Da sich weit und breit im Internet kaum sinnvolle Sourcecodes zu solchen Anwendungen finden lassen, die auch noch Betriebssystem-unabhängig sind, gebe ich den Sourcecode frei.</p>
<p>Die lauffähige Version findet sich unter <a href="http://www.student-im-urlaub.de/kvdes">student-im-urlaub.de/kvdes</a></p>
<p>Und der Sourcecode unter <a href="http://www.student-im-urlaub.de/kvdes/kvdeskiller-2009-05-27.zip">student-im-urlaub.de/kvdes/kvdeskiller-2009-05-27.zip</a></p>
<p>Der Sourcecode darf völlig frei verwendet werden. Meinen Namen bei Weiterverwendung zu erwähnen wäre zwar nett, ist aber nicht nötig.</p>
<p>Viel Spaß damit, falls wer etwas damit anfangen kann. <img src='http://www.student-im-urlaub.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=298</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alle MP3s von einer Webseite holen</title>
		<link>http://www.student-im-urlaub.de/?p=286</link>
		<comments>http://www.student-im-urlaub.de/?p=286#comments</comments>
		<pubDate>Sun, 03 May 2009 16:38:42 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Computerstuff]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=286</guid>
		<description><![CDATA[Manche Musiker bieten ihre Musik im MP3-Format kostenlos zum Download an. Man kann dann mit 30 Mausklicks 30 neue MP3s runterladen.
Aber es ist nervig, für alle MP3s die Maus zu benutzen. Man kann den Vorgang ja auch automatisieren:
wget $(curl http://www.8bitpeoples.com/discography/by/trash80 &#124; awk '/mp3/{print gensub(/^.*(http:.+\.mp3)".*$/, "\\1", $0)}')
Die URL (http://&#8230;.) lässt sich natürlich gegen jede andere ersetzen. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/bild-11.png"><img class="alignright size-full wp-image-289" title="MP3s laden" src="http://www.student-im-urlaub.de/wp-content/uploads/bild-11.png" alt="MP3s laden" width="67" height="64" /></a>Manche Musiker bieten ihre Musik im MP3-Format kostenlos zum Download an. Man kann dann mit 30 Mausklicks 30 neue MP3s runterladen.</p>
<p>Aber es ist nervig, für alle MP3s die Maus zu benutzen. Man kann den Vorgang ja auch automatisieren:</p>
<p><code>wget $(curl http://www.8bitpeoples.com/discography/by/trash80 | awk '/mp3/{print gensub(/^.*(http:.+\.mp3)".*$/, "\\1", $0)}')</code></p>
<p>Die URL (http://&#8230;.) lässt sich natürlich gegen jede andere ersetzen. Das Script sucht im Quellcode nach Adressen von mp3-Dateien.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=286</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimalen WLAN-Kanal ermitteln</title>
		<link>http://www.student-im-urlaub.de/?p=277</link>
		<comments>http://www.student-im-urlaub.de/?p=277#comments</comments>
		<pubDate>Sun, 12 Apr 2009 19:09:39 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Computerstuff]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Funknetzwerk]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Nachbarschaft]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[WLAN]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=277</guid>
		<description><![CDATA[
Wenn man zuhause ein frisches Funknetzwerk aufstellt oder beim bereits laufenden Funknetzwerk Störungen feststellt, dann sollte man sich zunächst zum Konfigurationsdialog des Access Points begeben und sich folgende Frage stellen:
Welchen Kanal stelle ich ein?
Wenn man diese Frage aus dem Bauch heraus beantwortet, dann kann das zur Folge haben, dass man von einem langsamen und störungsbehafteten [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/bild-2.png"><img class="size-full wp-image-282 alignright" title="Histogramme mit AWK" src="http://www.student-im-urlaub.de/wp-content/uploads/bild-2.png" alt="Histogramme mit AWK" width="249" height="165" /></a></p>
<p>Wenn man zuhause ein frisches Funknetzwerk aufstellt oder beim bereits laufenden Funknetzwerk Störungen feststellt, dann sollte man sich zunächst zum Konfigurationsdialog des Access Points begeben und sich folgende Frage stellen:</p>
<p><strong>Welchen Kanal stelle ich ein?</strong></p>
<p>Wenn man diese Frage aus dem Bauch heraus beantwortet, dann kann das zur Folge haben, dass man von einem langsamen und störungsbehafteten heimischen Funknetzwerk genervt wird. Die Ursache? Man funkt auf einem Kanal (Bzw. einer Frequenz), die von mehreren verschiedenen Funknetzwerken benutzt wird.</p>
<p>Also sollte man zunächst die umliegenden Funknetzwerke durchscannen und nachsehen, ob es noch freie oder möglichst wenig benutzte Kanäle gibt.</p>
<p>Da ich mich in den letzten Wochen vermehrt mit diesem Problem konfrontiert sah, habe ich ein kleines Einzeilerskript geschrieben, mit dem man dieses Problem effizient lösen kann:</p>
<p><code>/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s | sed -e 's/^.*-[0-9]\{1,3\} *//g' | awk 'NF &gt; 0{ counts[$1] = counts[$1] + 1; } END { for (word in counts) if (word !~ /SSID/) print "Kanal", word ":", counts[word], "mal"; }' | sort</code></p>
<p>Wegen des airport-Befehls funktioniert es nur auf OS X Systemen.</p>
<p>Die Frage des Kanals ist nun, wenn man sich einen Alias in der .bashrc, .zshrc oder wie auch immer setzt, innerhalb von einer Sekunde geklärt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=277</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ordentlicher Macbook-Touchpad Support</title>
		<link>http://www.student-im-urlaub.de/?p=271</link>
		<comments>http://www.student-im-urlaub.de/?p=271#comments</comments>
		<pubDate>Sat, 04 Apr 2009 13:44:12 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Computerstuff]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Macbook]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=271</guid>
		<description><![CDATA[Das Problem mit Linux ist meistens, dass es zwar prinzipiell alles kann, aber die Distributoren sich überfordert damit zeigen, für jedes Computermodell sinnvolle Standard-Einstellungen zu schaffen.
Bei anderen Betriebssystemen wird das entweder so gelöst, dass der Hersteller den Support nur für eine stark begrenzte Hardware-Vielfalt zu pflegen hat oder sich die Hardware-Hersteller selbst darum kümmern.
In den [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.student-im-urlaub.de/wp-content/uploads/ubuntu_screenshot.png"><img class="alignright size-thumbnail wp-image-275" title="Ubuntu auf dem Macbook" src="http://www.student-im-urlaub.de/wp-content/uploads/ubuntu_screenshot-150x95.png" alt="Ubuntu auf dem Macbook" width="150" height="95" /></a>Das Problem mit Linux ist meistens, dass es zwar prinzipiell alles kann, aber die Distributoren sich überfordert damit zeigen, für jedes Computermodell sinnvolle Standard-Einstellungen zu schaffen.</p>
<p>Bei anderen Betriebssystemen wird das entweder so gelöst, dass der Hersteller den Support nur für eine stark begrenzte Hardware-Vielfalt zu pflegen hat oder sich die Hardware-Hersteller selbst darum kümmern.</p>
<p>In den letzten Tagen boote ich, wenn ich gerade nichts wichtiges zu tun habe, mein Macbook mit Linux und versuche, alles zum Rennen zu bekommen, was wichtig für eine komfortable Bedienung ist.</p>
<p>Fundamental wichtig sind natürlich Grafik und Eingabegeräte. Wenn sie nicht oder nur schlecht funktionieren, dann kann man den Computer bedienen, aber es nervt alles einfach nur.</p>
<p>Zwei Dinge habe ich in den letzten Tagen schön zum Arbeiten bekommen. Ich beziehe mich hierbei auf Ubuntu 8.10.</p>
<p><strong>Touchpad</strong></p>
<p>Unter OS X habe ich mich daran gewöhnt, mit einem Finger per Tap einen Mouseclick auslösen zu können. Zwei Finger: Rechtsklick. Drei Finger: Mittelklick. Und das beste Feature an den Apple-Touchpads schlechthin: Mit zwei Fingern scrollen können &#8211; egal wo auf dem Touchpad die Scrollbewegung beginnt.</p>
<p>Das funktioniert nicht von alleine, aber HAL ermöglicht eine Konfiguration, so dass alles exakt wie unter OS X läuft.</p>
<p>Wichtig ist zunächst, in der /etc/X11/xorg.conf &#8211; falls diese Datei existiert &#8211; alle Einträge zu entfernen, die Touchpads betreffen. Geräte, die hier nicht auftauchen, werden von HAL konfiguriert. Dieser Daemon wird von X.org mittlerweile insofern unterstützt, dass er Geräte sofort nach dem Einstecken konfiguriert.</p>
<p>Damit dieser Trick auch mit Apples Touchpads funktioniert, legt man eine Datei /etc/hal/fdi/policy/appletouch.fdi an, die folgenden Inhalt hat:<br />
<strong><br />
&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243;?&gt;<br />
&lt;deviceinfo version=&#8221;0.2&#8243;&gt;<br />
&lt;device&gt;<br />
&lt;match key=&#8221;info.capabilities&#8221; contains=&#8221;input.touchpad&#8221;&gt;<br />
&lt;match key=&#8221;info.product&#8221; contains=&#8221;appletouch&#8221;&gt;<br />
&lt;merge key=&#8221;input.x11_driver&#8221; type=&#8221;string&#8221;&gt;synaptics&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.SHMConfig&#8221; type=&#8221;string&#8221;&gt;true&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.VertEdgeScroll&#8221; type=&#8221;string&#8221;&gt;false&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.HorizEdgeScroll&#8221; type=&#8221;string&#8221;&gt;false&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.VertTwoFingerScroll&#8221; type=&#8221;string&#8221;&gt;true&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.HorizTwoFingerScroll&#8221; type=&#8221;string&#8221;&gt;false&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.RTCornerButton&#8221; type=&#8221;string&#8221;&gt;false&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.RBCornerButton&#8221; type=&#8221;string&#8221;&gt;false&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.LBCornerButton&#8221; type=&#8221;string&#8221;&gt;false&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.LTCornerButton&#8221; type=&#8221;string&#8221;&gt;false&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.TopEdge&#8221; type=&#8221;string&#8221;&gt;0&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.LeftEdge&#8221; type=&#8221;string&#8221;&gt;0&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.RightEdge&#8221; type=&#8221;string&#8221;&gt;1100&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.BottomEdge&#8221; type=&#8221;string&#8221;&gt;800&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.FingerLow&#8221; type=&#8221;string&#8221;&gt;15&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.FingerHigh&#8221; type=&#8221;string&#8221;&gt;25&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.TapButton1&#8243; type=&#8221;string&#8221;&gt;1&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.TapButton2&#8243; type=&#8221;string&#8221;&gt;3&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.TapButton3&#8243; type=&#8221;string&#8221;&gt;2&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.ClickFinger1&#8243; type=&#8221;string&#8221;&gt;1&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.ClickFinger2&#8243; type=&#8221;string&#8221;&gt;3&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.ClickFinger3&#8243; type=&#8221;string&#8221;&gt;2&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.MinSpeed&#8221; type=&#8221;string&#8221;&gt;0.5&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.MaxSpeed&#8221; type=&#8221;string&#8221;&gt;2.5&lt;/merge&gt;<br />
&lt;merge key=&#8221;input.x11_options.AccelFactor&#8221; type=&#8221;string&#8221;&gt;0.15&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.PalmDetect&#8221; type=&#8221;string&#8221;&gt;true&lt;/merge&gt;</strong></p>
<p><strong> &lt;merge key=&#8221;input.x11_options.MaxTapMove&#8221; type=&#8221;string&#8221;&gt;100&lt;/merge&gt;<br />
&lt;/match&gt;<br />
&lt;/match&gt;<br />
&lt;/device&gt;<br />
&lt;/deviceinfo&gt;<br />
</strong></p>
<p>Die Änderung wird sofort umgesetzt, wenn man mit &#8220;<strong>sudo /etc/init.d/hal restart &amp;&amp; sudo modprobe -r appletouch &amp;&amp; sudo modprobe appletouch</strong>&#8221; den HAL-Server neu startet und das Touchpad-Modul neu lädt.</p>
<p><strong>Grafik</strong></p>
<p>Die 3D-Beschleunigung des Desktops ist spürbar schneller und flüssiger, wenn man die folgende Zeile in den Grafikkarten-Teil der <strong>/etc/X11/xorg.conf</strong> hinzufügt:</p>
<p><strong><br />
Option      &#8220;AccelMethod&#8221;       &#8220;UXA&#8221;<br />
</strong></p>
<p>Diese Beschleunigungsmethode ist bei Ubuntu standardmäßig nicht eingeschaltet, da sie offiziell noch nicht stabil ist. Aber auf meinem Macbook2,1 hat das noch keine Probleme verursacht. Im Gegenteil.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=271</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Knochenmarkspende für Vollidioten</title>
		<link>http://www.student-im-urlaub.de/?p=269</link>
		<comments>http://www.student-im-urlaub.de/?p=269#comments</comments>
		<pubDate>Sun, 01 Feb 2009 22:15:21 +0000</pubDate>
		<dc:creator>Jacek</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Kettenmails]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[StudiVZ]]></category>

		<guid isPermaLink="false">http://www.student-im-urlaub.de/?p=269</guid>
		<description><![CDATA[Wer bei StudiVZ angemeldet ist, bekommt zur Zeit reichlich Spam:
Gesucht 
AB-Rhesus negativ!!! 
wenn ihr nicht helfen könnt, Bitte weitersenden!! 
Wer hat diese Blutgruppe? 
Wegen Leukämieerkrankung dringend gesucht. 
Selber wäre man auch froh wenn&#8217;s weitergeleitet werden würde&#8230;.. 
DRINGEND!!!!!! ! 
Knochenmarkspender Blutgruppe AB Rhfkt. negativ gesucht! 
&#8220;Es hat einen guten Zweck!&#8221; könnte man sagen. Könnte man. Aber wieso habe ich das Gefühl, dass das alles [...]]]></description>
			<content:encoded><![CDATA[<p>Wer bei StudiVZ angemeldet ist, bekommt zur Zeit reichlich Spam:</p>
<blockquote><p>Gesucht </p>
<p>AB-Rhesus negativ!!! <br />
wenn ihr nicht helfen könnt, Bitte weitersenden!! <br />
Wer hat diese Blutgruppe? <br />
Wegen Leukämieerkrankung dringend gesucht. <br />
Selber wäre man auch froh wenn&#8217;s weitergeleitet werden würde&#8230;.. </p>
<p>DRINGEND!!!!!! ! </p>
<p>Knochenmarkspender Blutgruppe AB Rhfkt. negativ gesucht! </p></blockquote>
<p>&#8220;<em>Es hat einen guten Zweck!</em>&#8221; könnte man sagen. Könnte man. Aber wieso habe ich das Gefühl, dass das alles nur Verarschung ist?</p>
<p>Als ich etwa 17 Jahre alt war habe ich eine Probe meines Bluts zur weiteren Untersuchung abgegeben, um in der Deutschen Knochenmarkspenderdatei eingetragen zu werden, so dass man mich kontaktieren kann, falls jemand mein Knochenmark gebrauchen könnte.</p>
<p>Damals informierte ich mich natürlich gründlich über alles, was damit zu tun hat. Die Spende an sich, Krankheiten, die damit geheilt werden können, und &#8211; das Stichwort überhaupt &#8211; <strong>Spenderkriterien!</strong></p>
<p>Wer ist überhaupt als Spender für wen geeignet? Das erste, was man dazu lesen kann oder was dazu gesagt wird, ist, dass die Blutgruppe von Spender/Empfänger <strong>nichts</strong> miteinander zu tun haben müssen.</p>
<p><strong>Der Empfänger des Knochenmarks nimmt die Blutgruppe des Spenders an.</strong> Es geht bei der Suche nach möglichen Spendern also um völlig andere Dinge als die Blutgruppe.</p>
<p>Das wiederum bedeutet, dass der Typ, der über StudiVZ nach einem Knochenmarkspender für seine Freundin sucht, völligen Blödsinn treibt. Kein Arzt würde nach Spendern suchen lassen und dabei den Kreis möglicher Spender durch die Blutgruppe begrenzen.</p>
<p>Ich bitte meine Mitmenschen, die die Kettenmails, die sie verschicken, nicht lesen oder diejenigen, die das schlichtweg nicht wussten, so einen Blödsinn nicht weiterzuschicken. Damit degradiert man die Mails derer, die Hilfegesuche ernst meinen und nervt auch viele Mitmenschen dabei.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.student-im-urlaub.de/?feed=rss2&amp;p=269</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
