<?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>CC::Blog &#187; Linux</title>
	<atom:link href="http://ccblog.de/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://ccblog.de</link>
	<description>Nur ein weiteres kleines unbedeutendes Blog</description>
	<lastBuildDate>Sat, 21 Jan 2012 05:41:38 +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>Wegen der Brandgefahr</title>
		<link>http://ccblog.de/2011/12/10/wegen-der-brandgefahr/</link>
		<comments>http://ccblog.de/2011/12/10/wegen-der-brandgefahr/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 19:01:37 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[433MhZ]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[CS2105GO]]></category>
		<category><![CDATA[CS2105GO-M12]]></category>
		<category><![CDATA[Ethernet Shield]]></category>
		<category><![CDATA[Funk]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[Mailversand]]></category>
		<category><![CDATA[MC145010]]></category>
		<category><![CDATA[MC145012]]></category>
		<category><![CDATA[netzwerk]]></category>
		<category><![CDATA[PIN7]]></category>
		<category><![CDATA[Rauchmelder]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Smoke detector]]></category>
		<category><![CDATA[Smoke over IP]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=482</guid>
		<description><![CDATA[
Seit geraumer Zeit sind Rauchmelder in Neubauten ja Pflicht. Macht ja auch durchaus Sinn. Gerade wenn man an solche USV-Aktionen denkt :-) Also muss ein Rauchmelder her. Der Otto-Normal-Nerd möchte aber mindestens irgendwas haben, was sich auch in die Standardhaustechnik integrieren lässt - am besten noch ein Set von mehreren Rauchmeldern. Da gibts es ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p><a href="http://ccblog.de/wp-content/rm120.jpg"><br />
</a>Seit geraumer Zeit sind Rauchmelder in Neubauten ja <a href="http://www.rauchmelder-lebensretter.de/aus-den-bundeslaendern.html" target="_blank">Pflicht</a>. Macht ja auch durchaus Sinn. Gerade wenn man an solche <a href="http://ccblog.de/2011/12/06/smartups-on-fire/">USV-Aktionen</a> denkt <img src='http://ccblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Also muss ein Rauchmelder her. Der Otto-Normal-Nerd möchte aber mindestens irgendwas haben, was sich auch in die Standardhaustechnik integrieren lässt &#8211; am besten noch ein Set von mehreren Rauchmeldern. Da gibts es zig Varianten:</p>
<ol>
<li>Die Billigrauchmelder (um die 5-10 Euro)</li>
<li>Die Billgrauchmelder die per 433MhZ miteinander sprechen (ab 60 Euro im Set mit 4 Stück)</li>
<li>Die teueren Systemrauchmelder die nichts anderes als (2) machen, nur das G*ra oder sonstwas draufsteht.</li>
<li>Die sündhaft teueren Rauchmelder mit eingebauten GSM-Modul (ab ca. 150 Euro aufwärts&#8230;)</li>
</ol>
<p>Gelinde gesagt: Alles doof &#8211; da es entweder meinen Ansprüchen nicht genügt, oder massivst zu teuer ist.</p>
<p>Nun denn erstmal Dinge sichten &#8211; also ab zum Baumarkt und mal einen Rauchmelder der Kategorie &#8220;1&#8243; gekauft. Schimpft sich RM120 und hat schlappe 8,- gekostet. Laut ist das Ding ja, wenn man Zigarettenrauch reinbläst, oder mal den Testknopf drückt &#8211; bringt nur nix, wenn niemand zu hause ist <img src='http://ccblog.de/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  Nach dem öffnen des Geräts, schaut einen ein wenig SMD-Technik (Oha) an, darunter ein IC mit der Aufschrift &#8220;<span class="Apple-style-span" style="font-family: Consolas, Monaco, monospace; font-size: 12px; line-height: 18px; white-space: pre;">CS2105go</span>&#8220;. Wie sollte es anders sein, dazu gibts leider kein Datenblatt. Aber Moment, vielleicht ist der CS2105GO-M12 ja Pinkompatibel mit dem <a href="http://www.alldatasheet.com/datasheet-pdf/pdf/170359/FREESCALE/MC145010.html" target="_blank">MC145010</a> &#8211; Bingo, ist er ! Der MC145010 (manchmal auch MC145012) wird in fast allen Rauchmeldern der Kategorie 1 und 2 (teilweise auch 3) verkauft.</p>
<p>Der aufmerksame Leser merkt was: Bei 2 ist doch eine Vernetzung möglich ! Korrekt, so ist es. Mit anderen Worten: In den Rauchmeldern der Kat.1 ist derselbe IC verbaut, wie in 2, nur das in 1 halt das 433MhZ Modul fehlt. Brauch ich (zumindest jetzt zum Testen) eh erstmal nicht &#8211;  doch dazu später. Der MC145010 verfügt über einen sog. I/O Pin, der bei 2er Rauchmeldern dann das 433MhZ-Modul per TTL-High triggert, sobald es qualmt. Beim 1er liegt PIN7 (I/O) tot herum. Perfekt. Also fix den Ground (-) und PIN7 per Kabel rausgeführt und an den Arduino geklemmt:</p>
<p>&nbsp;</p>
<p style="text-align: left;"><a href="http://ccblog.de/wp-content/rm120.jpg"><img class="aligncenter size-full wp-image-485" style="border-style: initial; border-color: initial;" title="rm120" src="http://ccblog.de/wp-content/rm120.jpg" alt="" width="342" height="448" /></a></p>
<p style="text-align: left;">Links (Schwarz) die Masse &#8211; Also GND direkt mit dem GND des <a href="http://arduino.cc/" target="_blank">Arduino&#8217;s</a> verbinden,</p>
<p style="text-align: left;">Recht (<span style="color: #ff0000;">Rot</span>), etwas fuckeliger, den PIN7 (I/O) des CS2105GO-M12 auf einen Analogen Input-PIN des Mikrocontrollers legen.</p>
<p style="text-align: left;">Auf dem Arduino selbst habe ich derzeit die gute <a href="http://ccblog.de/2011/03/26/betabrite-autonom-via-arduino-ansteuern/" target="_blank">Wohnzimmerinfo-Anzeige</a> am laufen, da ist also schon ein &#8220;<a href="http://www.watterott.com/de/Arduino-Ethernet-Shield" target="_blank">Ethernet-Shield</a>&#8221; drauf. Da dort noch diverse Analoge Ports frei sind, und der Rauchmelder auch direkt deben dem Display wohnen soll, also optimal. Vom Code her gestaltet sich das ganze relativ simpel (siehe unten). Das allerfeinste ist jedoch, dass man nichtmal gegen irgendwelche Vorschriften verstösst, wenn man sich anstelle von Variante 1 für einen Rauchmelder der Variante &#8220;2&#8243; entscheidet. Denn alle Rauchmelder bleiben so wie sie sind (sprich: Die piepen trotzdem). Nur einen, in dem 433MhZ-&#8221;Netz&#8221;, muss man dann an den Arduino anklemmen. Der verbaute Standalone-RM120 piept übrigens auch noch &#8211; denn genau dafür ist PIN7 gedacht: I/O !</p>
<p><code><br />
#include<br />
#include </code></p>
<p>#define SmokePIN 0</p>
<p>int Smoke=0;<br />
boolean mailsent=false;<br />
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };<br />
byte ip[] = { 192,168,0, 100 };</p>
<p>void setup () {<br />
Ethernet.begin(mac,ip);<br />
}</p>
<p>void loop() {<br />
// Read Smokedetector<br />
Smoke=analogRead(SmokePIN);</p>
<p>// GGf. RESET der Variable mailsent</p>
<p>if (Smoke &gt; 900) {<br />
if (mailsent==false) {<br />
firemail();<br />
mailsent=true;<br />
}<br />
}<br />
}</p>
<p>void firemail() {<br />
// IP des Mailservers<br />
byte mserver[] = {192,168,0,101};<br />
Client Mail(mserver,25);<br />
if (Mail.connect()) {<br />
Mail.println(&#8220;HELO arduino.domain.tld&#8221;); /* say hello (statement after helo is needed but irrelevant)*/<br />
Mail.println(&#8220;MAIL From: et_brennt@domain.tld&#8221;); /* identify sender, this should be the same as the smtp server you are using */<br />
Mail.println(&#8220;RCPT To: et_brennt@domain.tld&#8221;); /* identify recipient */<br />
Mail.println(&#8220;DATA&#8221;);<br />
Mail.println(&#8220;To: et_brennt@domain.tld&#8221;); /* identify recipient */<br />
Mail.println(&#8220;Subject: Burning down the House&#8221;); /* insert subject */<br />
Mail.println(&#8220;WARNING &#8211; Smoke detected !&#8221;); /* insert body */<br />
Mail.println(&#8220;.&#8221;); /* end email */<br />
Mail.println(&#8220;QUIT&#8221;); /* terminate connection */<br />
Mail.println();<br />
Mail.stop();<br />
}<br />
}</p>
 <p><a href="http://ccblog.de/?flattrss_redirect&amp;id=482&amp;md5=ca6a3b4f89fb60417b6eb4c2c46363c8" title="Flattr" target="_blank"><img src="http://ccblog.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2011/12/10/wegen-der-brandgefahr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SmartUPS on Fire</title>
		<link>http://ccblog.de/2011/12/06/smartups-on-fire/</link>
		<comments>http://ccblog.de/2011/12/06/smartups-on-fire/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 19:27:46 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Netz]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[1500RM]]></category>
		<category><![CDATA[akku tauschen]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[austauschen]]></category>
		<category><![CDATA[Batterie]]></category>
		<category><![CDATA[Battery]]></category>
		<category><![CDATA[heiss]]></category>
		<category><![CDATA[rbc24]]></category>
		<category><![CDATA[SmartUPS]]></category>
		<category><![CDATA[temperatur]]></category>
		<category><![CDATA[UPS]]></category>
		<category><![CDATA[USV]]></category>
		<category><![CDATA[warm]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=473</guid>
		<description><![CDATA[Args. Was ein pfu. Doch von vorne:
Am Freitag letzter Woche ging es los. Meine gute SmartUPS 1500RM hatte auf einmal Hitzewellen. Woher die kamen ? Keine Ahnung. Entdeckt habe ich das ganze eher durch Zufall, da ich ab und an dann doch mal einen Blick ins cacti werfe. Da sah das ganze dann so ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>Args. Was ein pfu. Doch von vorne:</p>
<p style="text-align: left;">Am Freitag letzter Woche ging es los. Meine gute SmartUPS 1500RM hatte auf einmal Hitzewellen. Woher die kamen ? Keine Ahnung. Entdeckt habe ich das ganze eher durch Zufall, da ich ab und an dann doch mal einen Blick ins cacti werfe. Da sah das ganze dann so aus:<a href="http://ccblog.de/wp-content/usv.png"><img class="aligncenter size-medium wp-image-474" title="usv cacti" src="http://ccblog.de/wp-content/usv-300x150.png" alt="Hitzewellen in der APC 1500 " width="300" height="150" /></a>Interessant in dem Zusammenhang: Die USV wirft erst einen Alert ab ca. 60 Grad Celsius. Meiner Meinung nach &#8211; die sollte sich später noch bestätigen &#8211; viel zu spät. Das Rack, indem sich die APC 1500 befindet, hat übrigens direkte Aussenbelüftung &#8211; im &#8220;Serverraum&#8221; waren es also die ganze Zeit über so um die 16 Grad. Bei den Peaks bin ich dann doch mal &#8216;runter gegangen und hab die Schranktür des Racks aufgemacht, und siehe da: Temp wieder normal.</p>
<p style="text-align: left;">Am Wochenende stand das gute Stück also erstmal unter Beobachtung. Wie man oben erkennt, war es jedoch ruhig. Pünktlich zum Wochenbeginn fing die USV dann aber wieder an zickig zu werden. Da mir dass ganze (wörtlich !) zu heiss wurde, habe ich mich dann entschlossen das Batterypack (ist in so einer Cartridge) zumindest abzuklemmen. Da die Notstromversorgung Hot (!)-Pluggable ist, also kein Problem.</p>
<p style="text-align: left;">Sofern die angeschlossenen Geräte in diesem Zustand (Batterien abgezogen / disconnected) noch laufen, sollte man es tunlichst unterlassen der USV den Strom zu klauen. Nicht nur, dass dann alles aus ist &#8211; das wäre zu einfach &#8211; man bekommt auch keinen Saft wieder auf die USV. Die lässt sich nämlich nur mit angepömpelten Akkus starten (FAIL !!).</p>
<p style="text-align: left;">Also erstmal Ersatzakkus bestellen. Aber € 520,- für &#8216;ne Cartridge (RBC24) mit 4 Moppedakkus ? Ja sind die wahnsinnig bei APC ? Das muss doch günstiger gehen. Geht es: Diverse Händler verkaufen die Akkus einzeln zum Stückpreis von € 20,- . Da die Akkus bisher noch nicht eingetroffen sind, spreche ich da noch keine Empfehlung aus <img src='http://ccblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: left;">Demontage:</p>
<p style="text-align: left;">Ansich nett gedacht. Frontblende der UPS entfernen, 4 Schrauben lösen und dann einfach die Cartridge mit den 4 Bleigelakkus rausziehen. Was aber tun, wenn die Dinger aufgequollen sind ? Mit Gewalt ziehen, hat geholfen. Hier das Resultat:</p>
<p style="text-align: left;"><a href="http://ccblog.de/wp-content/ups2.jpg"><img class="aligncenter size-full wp-image-479" title="RBC24 Deformiert" src="http://ccblog.de/wp-content/ups2.jpg" alt="" width="640" height="478" /></a></p>
<p style="text-align: left;">Nun &#8220;nur noch&#8221; die 4 Akkus aus der Blechwanne entfernen. Haha ! Kein Tutorial, keine versteckte Klammer mit der die Dinger da gehalten werden &#8211; nix. Fühlt sich an wie festgeklebt. So war es auch. Jeder Akku ist mit einem dusseligen doppelseitigem Klebestreifen an der Wanne festgeklebt. (2ter FAIL !!) Also auch hier wieder Gewalt anwenden, und die Dinger vorsichtig mit dem Schraubenzieher anhebeln &#8211; irgendwann kommen die von alleine <img src='http://ccblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Der Sicherheit halber, habe ich die Anschlüsse mal zusammengetaped, isoliert, und mit Nümmerchen versehen. Jeder Platz in der Aluwanne hat dann die korrespondierende Nummer bekommen. Jetzt heisst es warten auf die Ersatzlieferung, und hoffen das der Strom nicht ausfällt.</p>
<p style="text-align: left;">PS: Vor ca. 6 Jahren ist mir mal eine 750er Desktop-SmartUPS unterm Schreibtisch hochgegangen. War nicht lustig. Die musste ich mit dem Topflappen auf den Balkon befördern&#8230; Von daher: Wenn Euch die Akku-Temperatur (Internal Temperature bei APC) komisch vorkommt &#8211; lieber heute als morgen die Akkus wechseln.</p>
 <p><a href="http://ccblog.de/?flattrss_redirect&amp;id=473&amp;md5=891048a819b62136857ba0ddfe638b67" title="Flattr" target="_blank"><img src="http://ccblog.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2011/12/06/smartups-on-fire/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Password expired unter Solaris</title>
		<link>http://ccblog.de/2011/10/26/password-expired-unter-solaris/</link>
		<comments>http://ccblog.de/2011/10/26/password-expired-unter-solaris/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 08:10:32 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[abgelaufen]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[expired]]></category>
		<category><![CDATA[has been expired]]></category>
		<category><![CDATA[passwd]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=456</guid>
		<description><![CDATA[Kennwort unter Solaris "expired" ?

Beim Login per ssh per key-auth kommt nix, und bei einem su - xxx kommt die Meldung "Password for user 'xxx' has expired - use passwd(1) to update it" ? Da gibts eine Loesung:

Einfach auf der Shell (als anderer User) das Tool "login" aufrufen, mit den "alten" Credentials einloggen, und ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>Kennwort unter Solaris &#8220;expired&#8221; ?</p>
<p>Beim Login per ssh per key-auth kommt nix, und bei einem su &#8211; xxx kommt die Meldung &#8220;Password for user &#8216;xxx&#8217; has expired &#8211; use passwd(1) to update it&#8221; ? Da gibts eine Loesung:</p>
<p>Einfach auf der Shell (als anderer User) das Tool &#8220;login&#8221; aufrufen, mit den &#8220;alten&#8221; Credentials einloggen, und schont kommt der Password-Change-Prompt. Gut versteckt das ganze !</p>
 <p><a href="http://ccblog.de/?flattrss_redirect&amp;id=456&amp;md5=1592763167ce00c04b865407d6e0cc33" title="Flattr" target="_blank"><img src="http://ccblog.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2011/10/26/password-expired-unter-solaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BetaBrite autonom via Arduino ansteuern</title>
		<link>http://ccblog.de/2011/03/26/betabrite-autonom-via-arduino-ansteuern/</link>
		<comments>http://ccblog.de/2011/03/26/betabrite-autonom-via-arduino-ansteuern/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 14:44:25 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wetterstation]]></category>
		<category><![CDATA[ansteuern]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[atmega]]></category>
		<category><![CDATA[autonom]]></category>
		<category><![CDATA[betabrite]]></category>
		<category><![CDATA[netzwerk]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=366</guid>
		<description><![CDATA[Sehr cool was mit dem Arduino so alles machbar ist. Um es vorweg zu nehmen: Mit dem Ding habe ich eine Ansteuerung eines BetaBrite LED-Moduls via Netzwerk gebaut (also im "Live-Betrieb" OHNE Rechner benutzbar).

Doch vorne angefangen:

Vor ein paar Jahren hatte ich mir bei eBay ein BetaBrite geschossen - Das ist so eine nette Laufschrift, ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>Sehr cool was mit dem <a href="http://arduino.cc" target="_blank">Arduino</a> so alles machbar ist. Um es vorweg zu nehmen: Mit dem Ding habe ich eine Ansteuerung eines BetaBrite LED-Moduls via Netzwerk gebaut (also im &#8220;Live-Betrieb&#8221; OHNE Rechner benutzbar).</p>
<p>Doch vorne angefangen:</p>
<p>Vor ein paar Jahren hatte ich mir bei eBay ein <a href="http://www.betabrite.com/" target="_blank">BetaBrite</a> geschossen &#8211; Das ist so eine nette Laufschrift, die man zum Leute quälen draussen an seinen Copyshop hängen kann, so man(n) den einen hat. Die Idee war damals die Temperaturdaten meiner <a href="http://wetter.ccblog.de" target="_blank">Wetterstation</a> und ein paar andere Dinge anzeigen zu lassen. Ist aber nie so richtig umgesetzt worden, da mein &#8220;Serverpark&#8221; im Keller steht, und die Anzeige dort natürlich null Nutzwert hat. Vor ein paar Tagen bin ich dann auf das Arduino-Projekt gestossen &#8211; klang (und ist auch) alles sehr vielversprechend:</p>
<p>Eine simple Plattform incl. Entwicklungsumgebung für die ATMEGA-Microcontroller Serie mit massenweise Zubehör. Wer das Ding nicht kennt, einfach mal bei <a href="http://arduino.cc" target="_blank">arduino.cc</a> umschauen. Bezugsquellen sind u.a. <a href="http://www.watterott.com/" target="_blank">watterod</a>, <a href="http://komputer.de" target="_blank">komputer.de</a> oder auch farnell.com, sofern man (bei farnell) denn im Besitz eines Stundentenausweises ist (Die Spareffekte dort sind vernachlässigbar). Der Knaller an dem Ding ist jedoch der Preis. So gibt es den Arduino für ca. 20-28 Euronen incl. Versand zu haben. Der Microcontroller lässt sich über die USB-Schnittstelle (sowohl auf Mac, PC oder Linux) in einer Art C-Dialekt für Kids programmieren (Ist wirklich extremst Easy). Das ganze geht so in Richtung SPS &#8211; daher heisst der Dialekt wohl auch &#8220;Processing&#8221;. Man hat im Template quasi 2 vorgefertigte &#8220;Prozeduren&#8221;:</p>
<ul>
<li> void setup &#8211; wird einmalig aufgerufen, wenn der ATMEGA hochgefahren wird und dient zum initialisieren der Ports, etc.</li>
<li>void loop &#8211; wird, wie der Name schon sagt, im Loop kontinuierlich durchlaufen &#8211; bei mir kamen da direkt Errinerungen an die Lehrzeit wieder hoch (SPS &#8211; Merker setzen und sowas)</li>
</ul>
<p>Hardwaretechnisch verfügt das Ding über 14 Digitale I/O Pins, von denen 6 per PWM ansteuerbar sind (alles TTL-Pegel), sowie 6 Analoge ein/Ausgänge mit einer 8bittigen genauigkeit im A/D bzw. D/A Wandler. Sämtliche Anschlüsse sind auch für Wurstfinger, wie meine, leicht verfügbar, sodass Löten &#8211; wenn man es denn nicht gerade drauf anlegt &#8211; ausfällt.</p>
<p>Zurück zum Titel dieses Eintrags. Zusätzlich zum Board habe ich mir noch eine <a href="http://www.watterott.com/de/Arduino-Ethernet-Shield" target="_blank">Ethernet-Shield</a> gegönnt. Shields sind sowieso die Erfindung hier uberhaupt. Man kann sich das als &#8220;Huckepack&#8221;-Platine vorstellen, die bestimmte Pins des Arduinos belegen und dann weiter Funktionalitäten bereitstellen. Das eth-Shield stellt also einen Netzanschluss zur Verfügung, und genehmigt sich dafür 6 Pins. (Eine gute übersicht über den &#8220;Pinverbrauch&#8221; und verfügbare Shields gibts übrigens bei <a href="http://shieldlist.org/" target="_blank">shieldlist.org</a>). Das Shield selbst lässt sich dann im &#8220;Processing&#8221; über ein paar Simple Funktionen ansteuern / auslesen.</p>
<p>Problematisch beim BetaBrite war, dass dieses über eine RS232 (vulgo: Serielle) Schnittstelle verfügt, der Arduino aber nur TTL-Pegel verarbeiten kann. Es gibt für den Ard. eine Serial-Library, mit der man aus zwei weiteren Pins einen Seriellen Anschluss &#8220;emulieren&#8221; kann, aber ohne korrekte RS232-Pegel ist das suboptimal. Was tun ? Mal ein wenig gekramt, und dann ist mir ein MAX232 zwischen die Finger gekommen &#8211; quasi genau das was man braucht. Die Schaltung mit dem MAX232 ist mehr als simpel (Einfach ausgedrückt konvertiert der 232 die Pegel). Somit steht das ganze Hardwaremässig schonmal. Ethernet-Shield -&gt; Arduino -&gt; MAX232 -&gt; BetaBrite. Fehlt nur noch die &#8220;Software&#8221;. Die Ansteuerung der BetaBrites ist schnell im Netz gefunden (z.B. <a href="http://dens-site.net/betabrite/betabrite.htm" target="_blank">hier</a>, bzw. als PDF direkt beim <a href="http://www.alpha-american.com/9708-8061.html" target="_blank">Hersteller</a>). Der Code auf dem Arduino umfasst gerade mal 2kB (incl. inline-Dokumentation !!!). Falls interesse besteht, stell ich den gerne mal hier ein.</p>
<p>Was kann das ganze jetzt ?</p>
<p>Nun, Der Microcontroller mit Ethernetanschluss &#8220;horcht&#8221; auf TCP-Port 23. Immer wenn sich etwas connected und eine Zeile schreibt, dann gibt der Controller das an das Betabrite weiter. Serverseitig kann ich nun, aus dem Keller heraus <img src='http://ccblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , das BetaBrite ansteuern, wo immer auch Netz verfügbar ist&#8230;<br />
<a href="http://www.flickr.com/photos/int2k/5561336602/"><img src="http://farm6.static.flickr.com/5148/5561336602_11763a74c9_z.jpg" border="0" alt="" /></a></p>
<p><a href="http://www.flickr.com/photos/int2k/5561336434/"><img src="http://farm6.static.flickr.com/5180/5561336434_de0ba4dcc3_z.jpg" border="0" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2011/03/26/betabrite-autonom-via-arduino-ansteuern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pppoe &#8220;Timeout wating for PADO&#8221; / Reconnect</title>
		<link>http://ccblog.de/2011/02/01/pppoe-timeout-wating-for-pado-reconnect/</link>
		<comments>http://ccblog.de/2011/02/01/pppoe-timeout-wating-for-pado-reconnect/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 08:12:47 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[maxfail]]></category>
		<category><![CDATA[options]]></category>
		<category><![CDATA[PADI]]></category>
		<category><![CDATA[PADO]]></category>
		<category><![CDATA[pppoe]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[provider]]></category>
		<category><![CDATA[Reconnect]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[Timeout]]></category>
		<category><![CDATA[zwangstrennung]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=351</guid>
		<description><![CDATA[Na premium. Setze mich heute morgen an den Rechner, und was sehe ich: Kein Internet !

Dass man Abstriche machen muss, wenn man knapp 2 Jahre lang Kabelmodem verwöhnt war, (Kein nervtötender Reconnect / NULL Ausfälle / Konstanter Up/Downstream etc.) hatte ich mir ja schon gedacht. Nunja, seit ca. 3 Wochen bin ich wieder PPP ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>Na premium. Setze mich heute morgen an den Rechner, und was sehe ich: Kein Internet !</p>
<p>Dass man Abstriche machen muss, wenn man knapp 2 Jahre lang Kabelmodem verwöhnt war, (Kein nervtötender Reconnect / NULL Ausfälle / Konstanter Up/Downstream etc.) hatte ich mir ja schon gedacht. Nunja, seit ca. 3 Wochen bin ich wieder PPP over Ethernet User (DSL) mit all seinen &#8220;netten&#8221; Nebeneffekten (siehe oben). Normalerweise reconnected der pppd auch fein nach jedem Disconnect &#8211; nur heute Nacht halt nicht.</p>
<p>Die Analyse (siehe Logauszug) ergibt zwei suspekte Dinge:</p>
<ol>
<li>&#8220;Rausschmiss&#8221; durch den Provider nach 574 Minuten (Normalerweise passiert das nach 24h)</li>
<li>Reconnectversuch durch den PPPD, der jedoch mangels Antwort der Gegenstelle ins leere läuft.</li>
</ol>
<p>Gerade Punkt 2 nervt hier &#8211; denn per default gibt der pppd nach 10 Versuchen auf. Nach etwas googlerei habe ich dann doch die richtige Option gefunden, mit der er unendlich &#8220;PADI&#8221;s schicken soll, um irgendwann dann mal &#8216;nen Connect hinzubekommen. Einfach ein &#8220;<strong>maxfail 0</strong>” in die /etc/ppp/peers/provider eintragen, und schon versucht es der Router bis zum St.Nimmerleinstag</p>
<p><code><br />
Feb  1 03:03:04 pppd[530]: LCP terminated by peer<br />
Feb  1 03:03:04 pppd[530]: Connect time 573.9 minutes.<br />
Feb  1 03:03:04 pppd[530]: Sent [ne Menge] bytes, received </code><code>[noch viel mehr]</code><code> bytes.<br />
Feb  1 03:03:07 pppd[530]: Connection terminated.<br />
Feb  1 03:03:07 pppd[530]: Modem hangup<br />
Feb  1 03:04:12 pppd[530]: Timeout waiting for PADO packets<br />
Feb  1 03:04:43 pppd[530]: PPP session is 350<br />
Feb  1 03:04:43 pppd[530]: Using interface ppp0<br />
Feb  1 03:04:43 pppd[530]: Connect: ppp0 &lt;--&gt; eth2<br />
Feb  1 03:04:49 pppd[530]: Connection terminated.<br />
Feb  1 03:04:49 pppd[530]: Modem hangup<br />
Feb  1 03:05:54 pppd[530]: Timeout waiting for PADO packets<br />
Feb  1 03:06:59 pppd[530]: Timeout waiting for PADO packets<br />
Feb  1 03:08:04 pppd[530]: Timeout waiting for PADO packets<br />
Feb  1 03:09:09 pppd[530]: Timeout waiting for PADO packets<br />
Feb  1 03:10:14 pppd[530]: Timeout waiting for PADO packets<br />
Feb  1 03:11:19 pppd[530]: Timeout waiting for PADO packets<br />
Feb  1 03:12:24 pppd[530]: Timeout waiting for PADO packets<br />
Feb  1 03:13:29 pppd[530]: Timeout waiting for PADO packets<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2011/02/01/pppoe-timeout-wating-for-pado-reconnect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XEN und verlorene Pakete</title>
		<link>http://ccblog.de/2010/11/13/xen-und-verlorene-pakete/</link>
		<comments>http://ccblog.de/2010/11/13/xen-und-verlorene-pakete/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 09:26:26 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[domu]]></category>
		<category><![CDATA[imaps]]></category>
		<category><![CDATA[lost packet]]></category>
		<category><![CDATA[mobile.me]]></category>
		<category><![CDATA[mtu]]></category>
		<category><![CDATA[probleme]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=340</guid>
		<description><![CDATA[Wah !

2 Wochen habe ich mich nun mit verlorenen Paketen herumgequält, die interessanterweise nur bei IMAPs Verbindungen vom LAN ins WAN aufgetreten sind. Jetzt hab ich das ganze mal mit Wireshark analysiert. Ergebnis: Lost packets (Ja wusste ich auch schon).

Des Rätsels Lösung: Nie, ich wiederhole, NIEMALS mit der mtu in einer DomU unter XEN ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>Wah !</p>
<p>2 Wochen habe ich mich nun mit verlorenen Paketen herumgequält, die interessanterweise nur bei IMAPs Verbindungen vom LAN ins WAN aufgetreten sind. Jetzt hab ich das ganze mal mit Wireshark analysiert. Ergebnis: Lost packets (Ja wusste ich auch schon).</p>
<p>Des Rätsels Lösung: Nie, ich wiederhole, NIEMALS mit der mtu in einer DomU unter XEN herumspielen. Einfach auf &#8220;default&#8221; lassen. Jetzt geht es wieder !</p>
]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2010/11/13/xen-und-verlorene-pakete/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WWW::Shorten::Bitly und der SAX &#8211; Parser</title>
		<link>http://ccblog.de/2010/05/29/wwwshortenbitly-und-der-sax-parser/</link>
		<comments>http://ccblog.de/2010/05/29/wwwshortenbitly-und-der-sax-parser/#comments</comments>
		<pubDate>Sat, 29 May 2010 07:16:36 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Bit.ly]]></category>
		<category><![CDATA[clicks]]></category>
		<category><![CDATA[End tag mismatch]]></category>
		<category><![CDATA[expand]]></category>
		<category><![CDATA[nodeKey]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[SAX]]></category>
		<category><![CDATA[shorten]]></category>
		<category><![CDATA[WWW::Shorten::Bitly]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=312</guid>
		<description><![CDATA[Das Perl-Modul WWW::Shorten::Bitly als solches bietet die Moeglichkeit URLs, die zuvor mit bit.ly verkuerzt worden sind, wieder zu "expanden" und auch diverse Clickstatistiken auf diese URLs zu fahren.

Leider hat das Modul ein paar Schoenheitsfehler:

	Beim "Expanden" meint das Modul die Methode "GET" nutzen zu wollen. Die API von bit.ly schreibt hier aber ein "POST" vor. ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>Das Perl-Modul <a href="http://search.cpan.org/dist/WWW-Shorten-Bitly/lib/WWW/Shorten/Bitly.pm">WWW::Shorten::Bitly</a> als solches bietet die Moeglichkeit URLs, die zuvor mit bit.ly verkuerzt worden sind, wieder zu &#8220;expanden&#8221; und auch diverse Clickstatistiken auf diese URLs zu fahren.</p>
<p>Leider hat das Modul ein paar Schoenheitsfehler:</p>
<ol>
<li>Beim &#8220;Expanden&#8221; meint das Modul die Methode &#8220;GET&#8221; nutzen zu wollen. Die <a href="http://code.google.com/p/bitly-api/wiki/ApiDocumentation">API von bit.ly</a> schreibt hier aber ein &#8220;POST&#8221; vor. Das ist recht zuegig gefixed. Einfach in der Zeile 257 (Methode &#8220;expand&#8221; der Version 1.14) aus dem get ein post machen -&gt; Fertig <img src='http://ccblog.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>Beim Aufruf der Methode &#8220;clicks&#8221; auf URLs mit vielen Statistik-Daten (Referrers, etc.) versagt der SAX-Parser auf ganzer Linie. Er quittiert das Parsen mit einer Fehlermeldung a&#8217;la: <code>End tag mismatch (nodeKey != nodeValue) [Ln: x, Col: yyyyy]</code>Das Problem laesst sich dadurch loesen, dass man dem XML::Simple Modul sagt, es soll gefaelligst einen Ordentlichen parser benutzen. z.B. den XML::Parser (der zuvor via cpan installiert werden muss (setzt libexpat1-dev vorraus !)). Wir teilen dies dem Bitly Modul nach dem Einbinden von XML::Simple ueber folgenden String mit: <code>$XML::Simple::PREFERRED_PARSER = 'XML::Parser';</code> &#8230; und oh Wunder: Alles funktioniert</li>
</ol>
<p>In diffs ausgedrueckt sind folgende Aenderungen an WWW::Shorten::Bitly Version 1.14 notwendig:<br />
<code><br />
22a23,24<br />
&gt; $XML::Simple::PREFERRED_PARSER = 'XML::Parser';<br />
&gt;<br />
257c259<br />
&lt;     $self-&gt;{response} = $self-&gt;{browser}-&gt;get($self-&gt;{BASE} . '/expand', [<br />
---<br />
&gt;     $self-&gt;{response} = $self-&gt;{browser}-&gt;post($self-&gt;{BASE} . '/expand', [<br />
</code></p>
<p>Ab nun klappt auch das Auslesen mit dem Modul.</p>
]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2010/05/29/wwwshortenbitly-und-der-sax-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Commandline-Fu</title>
		<link>http://ccblog.de/2010/05/12/commandline-fu/</link>
		<comments>http://ccblog.de/2010/05/12/commandline-fu/#comments</comments>
		<pubDate>Wed, 12 May 2010 05:28:48 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[dateinamen]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[ordner]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[umbennnen]]></category>
		<category><![CDATA[umlaute]]></category>
		<category><![CDATA[verzeichnis]]></category>
		<category><![CDATA[xargs]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=310</guid>
		<description><![CDATA[Sachverhalt: Zig dilettantisch benannte Dateien mit Leerzeichen und Umlauten in wiederrum zig Verzeichnissen (Windeutsch: Ordner).

Wunsch: umbennen der Files mit einem Schlage

Lösung:

Shellscript:

#!/bin/bash
find . -depth -execdir rename 's/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/ /_/g' "{}" \;
find . -depth -execdir rename 's/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ß/ss/g;s/ /_/g' "{}" \;
]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>Sachverhalt: Zig dilettantisch benannte Dateien mit Leerzeichen und Umlauten in wiederrum zig Verzeichnissen (Windeutsch: Ordner).</p>
<p>Wunsch: umbennen der Files mit einem Schlage</p>
<p>Lösung:</p>
<p>Shellscript:<br />
<code><br />
#!/bin/bash<br />
find . -depth -execdir rename 's/ä/ae/g;s/ö/oe/g;s/ü/ue/g;s/ß/ss/g;s/ /_/g' "{}" \;<br />
find . -depth -execdir rename 's/Ä/Ae/g;s/Ö/Oe/g;s/Ü/Ue/g;s/ß/ss/g;s/ /_/g' "{}" \;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2010/05/12/commandline-fu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zonealarm für Linux</title>
		<link>http://ccblog.de/2010/01/14/zonealarm-fur-linux/</link>
		<comments>http://ccblog.de/2010/01/14/zonealarm-fur-linux/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 20:21:40 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=291</guid>
		<description><![CDATA[Einfach nur Göttlich]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p><a href="http://lists.debian.org/debian-user-german/2005/01/msg01637.html" target="_blank">Einfach nur Göttlich</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2010/01/14/zonealarm-fur-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualisierung von Abhängigkeiten</title>
		<link>http://ccblog.de/2010/01/05/visualisierung-von-abhangigkeiten/</link>
		<comments>http://ccblog.de/2010/01/05/visualisierung-von-abhangigkeiten/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 20:15:00 +0000</pubDate>
		<dc:creator>Joerg</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[abhängigkeiten]]></category>
		<category><![CDATA[connect by prior]]></category>
		<category><![CDATA[dot]]></category>
		<category><![CDATA[graphviz]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[visualisieren]]></category>

		<guid isPermaLink="false">http://ccblog.de/?p=283</guid>
		<description><![CDATA[... schonmal versucht Abhängigkeiten grafisch darzustellen ? Am besten noch aus Datenbankcontent ?

Klar, man könnte zu irgendwelchen proprietären MindMap-Tools oder gar zu M$-Visio (oh grauss !) greifen. Dabei geht es mit graphviz in Verbindung mit "dot" soooo einfach. Das Ding ist ehrlich einen Blick wert. Zusammen mit der "Connect by Prior" Clause in Oracle ...]]></description>
			<content:encoded><![CDATA[<p class="wp-flattr-button"></p><p>&#8230; schonmal versucht Abhängigkeiten grafisch darzustellen ? Am besten noch aus Datenbankcontent ?</p>
<p>Klar, man könnte zu irgendwelchen proprietären MindMap-Tools oder gar zu M$-Visio (oh grauss !) greifen. Dabei geht es mit <a href="http://www.graphviz.org/" target="_blank">graphviz</a> in Verbindung mit &#8220;dot&#8221; soooo einfach. Das Ding ist ehrlich einen Blick wert. Zusammen mit der &#8220;<a href="http://www.psoug.org/reference/connectby.html" target="_blank">Connect by Prior</a>&#8221; Clause in Oracle ist das Teil der Knaller schlechthin.</p>
<p>Ein wenig Doku dazu (die original-Doku ist recht schwere Kost) gibt es z.B.</p>
<ul>
<li>in der <a href="http://en.wikipedia.org/wiki/DOT_language#Layout_programs" target="_blank">englischsprachigen Wikipedia</a> (der Deutsche Artikel ist lame)</li>
<li>Im Wiki von <a href="http://wiki.zum.de/Hilfe:Graphviz" target="_blank">&#8220;zum.de&#8221;</a></li>
<li>bei <a href="http://www.wikischool.de/wiki/WikiSchool:Graphviz" target="_blank">WikiSchool</a></li>
<li>das <a href="http://4webmaster.de/wiki/Graphviz-Tutorial" target="_blank">4Webmaster Tutorial </a>(mit Bezug auf das MediaWiki Plugin)</li>
</ul>
<p>Das allerbeste ist, dass <a href="http://www.mediawiki.org/wiki/MediaWiki" target="_blank">MediaWiki</a> das Ding von Haus aus unterstützt, und man derartige Graphen direkt per Wiki-Editor in die Artikel einbetten kann&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ccblog.de/2010/01/05/visualisierung-von-abhangigkeiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

