<?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>Julius Beckmann &#187; Allgemein</title>
	<atom:link href="http://juliusbeckmann.de/blog/category/allgemein/feed" rel="self" type="application/rss+xml" />
	<link>http://juliusbeckmann.de/blog</link>
	<description>Ich bin nicht verrückt, nur technisch begabt ...</description>
	<lastBuildDate>Tue, 07 Sep 2010 18:34:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Meine Tux Auto-Fahne</title>
		<link>http://juliusbeckmann.de/blog/meine-tux-auto-fahne-linux-logo.html</link>
		<comments>http://juliusbeckmann.de/blog/meine-tux-auto-fahne-linux-logo.html#comments</comments>
		<pubDate>Sun, 11 Jul 2010 13:44:49 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=595</guid>
		<description><![CDATA[Jetzt zur WM 2010 in Südafrika gab es kaum ein Auto ohne Auto-Fahnen zu sehen. Dies hat mich auf eine Idee gebracht ...

Ich wollte auch eine Auto Fahne haben, aber nicht mit einer Flagge drauf. Es sollte etwas sein was sonst keiner am Auto wehen hat. Kurz drüber nachgedacht und sofort war Tux im Sinn.
Nach [...]]]></description>
			<content:encoded><![CDATA[<p>Jetzt zur WM 2010 in Südafrika gab es kaum ein Auto ohne Auto-Fahnen zu sehen. Dies hat mich auf eine Idee gebracht ...<br />
<span id="more-595"></span><br />
Ich wollte auch eine Auto Fahne haben, aber nicht mit einer Flagge drauf. Es sollte etwas sein was sonst keiner am Auto wehen hat. Kurz drüber nachgedacht und sofort war Tux im Sinn.</p>
<p>Nach etwas Recherche ließ sich aber keine Auto-Fahne mit Tux oder anderem Linux Bezug finden. Und wenn, dann hat dieser Einzeldruck viel zu viel Geld gekostet. Was also tun?</p>
<p>Dann eben selber machen! Bei Ebay gab es auch komplett weiße Fahnen zu kaufen, von denen ich gleich 3 Stück bestellt habe (Kosten fast nix und man weiß ja nie was noch kommt). Im nächsten Schreibwarenladen 2 Eddings besorgt, einen in Schwarz (col. 001) und den anderen in Gelb (col. 005). Das Gelb habe ich zum Glück etwas heller gekauft, denn es ist auf der Fahne doch erheblich dunkler geworden als gedacht. Mehr braucht man an Utensilien nicht.</p>
<p>Das Bemalen war auch nicht sonderlich schwer. Ein Logo von Tux gesucht (Hier das was ich benutzt habe: <a href="http://juliusbeckmann.de/blog/static/tux-linux-logo-debian-ubuntu-gnu.png">Meine Vorlage</a>), auf die passende Größe skaliert und ausgedruckt. Das Papier dann auf dem Tisch mit Klebeband festgeklebt. Dadrüber dann die abgezogene Fahne auch festgeklebt, damit sie schön plan aufliegt und nicht verrutscht. Da der Fahnenstoff recht durchsichtig war, konnte man einfach Malen nach Zahlen machen. Aber Achtung! Man muss aufpassen denn die Farbe aus den Eddings verläuft etwas im Fahnenstoff, dies war besonders bei den Kanten zu beachten.</p>
<p><a href="http://juliusbeckmann.de/blog/static/1.jpg"><img class="aligncenter size-medium wp-image-597" title="Linux Tux Autofahne Schritt 1" src="http://juliusbeckmann.de/blog/static/1-600x337.jpg" alt="Linux Tux Autofahne Schritt 1" width="600" height="337" /></a></p>
<p>Dazu musste man mit Schwarz sehr vorsichtig sein, denn einmal angemalt bekommt man es nie wieder weg. Ich habe zuerst das Schwarz, dann das Gelb benutzt um saubere Kanten hin zu bekommen.</p>
<p><a href="http://juliusbeckmann.de/blog/static/2.jpg"><img class="aligncenter size-medium wp-image-598" title="Linux Tux Autofahne Schritt 2" src="http://juliusbeckmann.de/blog/static/2-600x337.jpg" alt="Linux Tux Autofahne Schritt 2" width="600" height="337" /></a></p>
<p><a href="http://juliusbeckmann.de/blog/static/31.jpg"><img class="aligncenter size-medium wp-image-602" title="Linux Tux Autofahne Schritt 3" src="http://juliusbeckmann.de/blog/static/31-600x337.jpg" alt="Linux Tux Autofahne Schritt 3" width="600" height="337" /></a></p>
<p>Mit den orangen Flossen war Tux auch fertig. Es musste noch etwas auf der Rückseite nach gemalt werden da die Farbe nicht überall perfekt durchgedrungen ist.</p>
<p><a href="http://juliusbeckmann.de/blog/static/31.jpg"></a><a href="http://juliusbeckmann.de/blog/static/41.jpg"><img class="aligncenter size-medium wp-image-603" title="Linux Tux Autofahne Fertig" src="http://juliusbeckmann.de/blog/static/41-600x337.jpg" alt="Linux Tux Autofahne Fertig" width="600" height="337" /></a></p>
<p>Wieder den Fahnenmast dran und fertig :D</p>
<p><a href="http://juliusbeckmann.de/blog/static/41.jpg"></a><a href="http://juliusbeckmann.de/blog/static/51.jpg"><img class="aligncenter size-medium wp-image-604" title="Linux Tux Autofahne am auto montiert" src="http://juliusbeckmann.de/blog/static/51-600x337.jpg" alt="Linux Tux Autofahne am auto montiert" width="600" height="337" /></a></p>
<p>Ich hoffe dass mir keiner die Fahne kaputt macht. Werde versuchen gut drauf aufzupassen.</p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/meine-tux-auto-fahne-linux-logo.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu: Howto move min/max/close buttons to the right in Ubuntu Lynx 10.4</title>
		<link>http://juliusbeckmann.de/blog/ubuntu-howto-move-minmaxclose-buttons-to-the-right-in-ubuntu-lynx-10-4.html</link>
		<comments>http://juliusbeckmann.de/blog/ubuntu-howto-move-minmaxclose-buttons-to-the-right-in-ubuntu-lynx-10-4.html#comments</comments>
		<pubDate>Sun, 04 Apr 2010 09:42:35 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=591</guid>
		<description><![CDATA[With version 10.4 Ubuntu design team decided to move the minimize/maximize/close buttons to the left. Maybe to look like mac. For everybody who do not like this and want their buttons back on the right, follow the instructions.

Even if the position on the left might have some advantages, here is a instruction for changing them [...]]]></description>
			<content:encoded><![CDATA[<p>With version 10.4 Ubuntu design team decided to move the minimize/maximize/close buttons to the left. Maybe to look like mac. For everybody who do not like this and want their buttons back on the right, follow the instructions.<br />
<span id="more-591"></span></p>
<p>Even if the position on the left might have some advantages, here is a instruction for changing them back.</p>
<p>Go to the "Terminal" or "Shell" and start the Programm:</p>
<div class="codesnip-container" >gconf-editor</div>
<p>Now navigate to:</p>
<div class="codesnip-container" >apps>metacity>general</div>
<p>And change the key <strong>button_layout</strong> from:</p>
<div class="codesnip-container" >maximize,minimize,close:</div>
<p>to</p>
<div class="codesnip-container" >menu:minimize,maximize,close</div>
<p>Even faster is this command you need to run in your terminal/shell:</p>
<div class="codesnip-container" >gconftool-2 --set /apps/metacity/general/button_layout --type string menu:minimize,maximize,close</div>
<p>How this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/ubuntu-howto-move-minmaxclose-buttons-to-the-right-in-ubuntu-lynx-10-4.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Verkaufe Bücher!</title>
		<link>http://juliusbeckmann.de/blog/verkaufe-bucher.html</link>
		<comments>http://juliusbeckmann.de/blog/verkaufe-bucher.html#comments</comments>
		<pubDate>Fri, 19 Mar 2010 08:51:45 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=583</guid>
		<description><![CDATA[Ich habe ein paar Bücher im Regal aussortiert die ich nicht mehr benötige. Schaut euch einfach die Liste an.

Die folgende Liste ist nach besten Wissen und Gewissen angefertigt.
Versandkosten werde zusätzlich und fair erhoben.
Default ist normaler Buchversand der Post, auf Wunsch auch mit Paketdienst.
Professionelle PHP 5-Programmierung: Entwicklerleitfaden für große Webprojekte mit PHP 5 (Broschiert)

Zustand: Mittlere Gebrauchsspuren, [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe ein paar Bücher im Regal aussortiert die ich nicht mehr benötige. Schaut euch einfach die Liste an.<br />
<span id="more-583"></span></p>
<p>Die folgende Liste ist nach besten Wissen und Gewissen angefertigt.<br />
Versandkosten werde zusätzlich und fair erhoben.<br />
Default ist normaler Buchversand der Post, auf Wunsch auch mit Paketdienst.</p>
<h2>Professionelle PHP 5-Programmierung: Entwicklerleitfaden für große Webprojekte mit PHP 5 (Broschiert)</h2>
<p><img src="http://ecx.images-amazon.com/images/I/41DC6HFSKZL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU03_.jpg"><br />
Zustand: Mittlere Gebrauchsspuren, aber sehr gut erhalten.<br />
Preis: 17 Euro + Versand</p>
<h2>Professionelle PHP 5-Programmierung. Entwicklerleitfaden für große Webprojekte mit PHP 5 (Gebundene Ausgabe)</h2>
<p><img src="http://ecx.images-amazon.com/images/I/41MJWTBFVXL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU03_.jpg"><br />
Zustand: Geringe Gebrauchspuren, sehr guter Zustand.<br />
Preis: 17 Euro + Versand</p>
<h2>Webseiten mit PHP 5 und MySQL 4. 111 Lösungen für Ein- und Umsteiger (Taschenbuch)</h2>
<p><img src="http://ecx.images-amazon.com/images/I/510BTSGC35L._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU03_.jpg"><br />
Zustand: In Ordnung, leichte Spuren am Rand.<br />
Preis: 5 Euro + Versand</p>
<p><br/><br/><br/><br/><br/><br/><br/><br/></p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/verkaufe-bucher.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: Opel Corsa C Kurbelwellensensor austauschen</title>
		<link>http://juliusbeckmann.de/blog/howto-opel-corsa-c-kurbelwellensensor-austauschen-anleitung-hilfe.html</link>
		<comments>http://juliusbeckmann.de/blog/howto-opel-corsa-c-kurbelwellensensor-austauschen-anleitung-hilfe.html#comments</comments>
		<pubDate>Fri, 12 Mar 2010 16:00:34 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=567</guid>
		<description><![CDATA[Auf dem Weg nach Hause habe ich es das Erste mal bemerkt. Beim Rollen zu einer Roten Lichtzeichenanlage (Ampel) ist der Motor einfach ausgegangen. Ich hab mir nichts weiter bei gedacht und den Motor wieder gestartet. Doch ab dann hat die Motorkontrolleuchte (MKL) geleuchtet (nicht geblinkt!). Ein paar Kilometer weiter leuchtete dann auch noch die [...]]]></description>
			<content:encoded><![CDATA[<p>Auf dem Weg nach Hause habe ich es das Erste mal bemerkt. Beim Rollen zu einer Roten Lichtzeichenanlage (Ampel) ist der Motor einfach ausgegangen. Ich hab mir nichts weiter bei gedacht und den Motor wieder gestartet. Doch ab dann hat die Motorkontrolleuchte (MKL) geleuchtet (nicht geblinkt!). Ein paar Kilometer weiter leuchtete dann auch noch die Abgaskontrolleuchte (AKL) und der Drehzahlmesser hat nichts mehr angezeigt.<br />
Ab dann war mir klar dass da irgendwas an dem Auto nicht in Ordnung ist.<br />
Wer wissen will wie ich das Auto wieder repariert habe, der lese einfach weiter...<br />
<span id="more-567"></span><br />
<b>Vorab:</b><br />
Ich bin kein KFZ Mechaniker und kann für nichts garantieren. Was Sie an ihrem Auto machen ist Ihr Ding.</p>
<h2>Symptome</h2>
<p>Fangen wir erstmal mit den Symptomen an:<br />
- Motor geht sporadisch aus, lässt sich aber wieder starten<br />
- MKL leuchtet<br />
- AKL leuchtet<br />
- Motor hat weniger Leistung<br />
- Drehzahl im Stand etwas höher als sonst (1200 U/Min statt 900 U/Min)</p>
<h2>Ursache</h2>
<p>Doch was ist die Ursache?<br />
In meinem Fall war es der Kurbelwellensensor.<br />
Dies konnte ich recht leicht über den Fehlercode herausfinden.<br />
Was im Motor passiert ist sollte etwa so gewesen sein:<br />
Der Kurbelwellensensor hat fehlerhafte Werte geliefert und das Steuergerät den Motor deshalb in den "Notmodus" geschaltet. In diesem Modus werden anscheinend die Sensoren größtenteils ignoriert und der Motor mit Standardwerten betrieben. Die Abgaskontrolleuchte fängt an zu leuchten da im Notmodus die Abgaswerte natürlich nicht mehr stimmen.</p>
<h2>Fehlercode auslesen</h2>
<p>Ich habe einen Opel Corsa C, bei meinem Model funktioniert die "Fehlercode ausblinken"-Technik noch. Der Ablauf ist absolut ungefährlich und problemlos machbar, kein Löten/Verkabeln, nichts.<br />
Dazu muss man folgendes machen:<br />
1. Ins Auto setzten<br />
2. Schlüssel ins Schloss stecken<br />
3. Bremse <b>und</b> Gas gleichzeitig mit den Füssen drücken und gedrückt halten<br />
4. Den Schlüssel auf Zündung drehen. (Das ist die Schlüsselposition bevor der Motor angeht)<br />
5. Auf die MKL achten. Nach ein paar Sekunden fängt diese an zu blinken.<br />
6. Mitzählen und notieren wie oft diese Blinkt. (Wer es nicht beim ersten mal schafft kann problemlos von Vorne bei Punkt 1 anfangen)<br />
7. Auswerten was geblinkt wurde.</p>
<p>Das Auswerten funktioniert wie folgt.<br />
Die Leuchte hat beispielsweise so geblinkt: 10-3-3-5 - 10-3-3-5 - 10-3-3-5<br />
Wenn 1 bis 9 mal geblinkt wurde, so ist die Ziffer ensprechend. Bei der 10 ist die Ziffer eine 0.<br />
Es wurde uns also drei mal der Fehlercode 0335 - 0335 - 0335 angezeigt. Ich habe gelesen dass das Auto auch verschiedene Codes anzeigt und nicht immer drei mal den gleichen, also genau aufpassen!</p>
<p>Protipp zum Ausblinken: Video mit dem Handy machen.<br />
Hier das Video von meinem Handy:<br />
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/2PxuAb3nxHs&#038;hl=de_DE&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2PxuAb3nxHs&#038;hl=de_DE&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>Der Fehlercode 0335 bedeutet "0335 Falsches Signal für die Motordrehzahl". Die Ursache für diesen Fehler ist laut Google Analyse der Kurbelwellensensor.<br />
Eine Liste mit Fehlercodes für Opel Motoren findet sich am Ende dieses Artikels.</p>
<h2>Kurbelwellensensor</h2>
<p>Der Kurbelwellensensor ist dazu da um die Drehzahl der Kurbelwelle zu messen damit das Steuergerät den Motor besser steuern kann. Auch wird von hier wohl der Drehzahlmesser gespeist.<br />
Bei älteren Motoren liegt dieser Sensor meist direkt am Drehrad des Keilriemen.<br />
Bei neueren Motoren, wie meinem, wurde der Sensor in den Motorblock integriert.<br />
Vom Sensor geht 1 Kabel mit 2 Adern ab.<br />
<b>Achtung!</b><br />
Da wir an der Elektronik des Autos arbeiten ist es ratsam die Batterie abzuklemmen.<br />
<i>(Hinweis von Jörg aus Ahaus)</i></p>
<p>Laut Forenberichten kostet ein original Ersatzteil zwischen 50 und 100 Euro. Mein original verbauter Sensor war von Bosch und den Ersatz habe ich für insgesamt 18 Euro bei Ebay bekommen. Die Technik in dem Sensor ist nicht wirklich spektakulär, da kann man auch mal Ebay-NoName Kram ausprobieren.</p>
<p>Die Position des Sensor ist nicht ganz einfach zu erklären da er auch nicht von oben bei offener Motorhaube zu sehen ist.<br />
Auf dieser Skizze habe ich versucht die Position zu beschreiben:<br />
<a href="/blog/static/images/auto/corsa_kurbelwellensensor/opel_corsa_kurbelwellensensor_skizze.gif"><br />
<img width="500px" src="/blog/static/images/auto/corsa_kurbelwellensensor/opel_corsa_kurbelwellensensor_skizze.gif" alt="Opel Corsa Kurbelwellensensor Position" /></a><br />
<br style="clear: both;"></p>
<p>Der Sensor ist direkt neben der Antriebswelle für das rechte Vorderrad angebracht. Auf der Seite vom Motor dir dem Beifahrer zugewand ist. Wenn man sich unter das Auto legt kann man das Bauteil recht schnell ausmachen. Hier ein Bild:<br />
<a href="/blog/static/images/auto/corsa_kurbelwellensensor/opel_corsa_kurbelwellensensor_3_text.jpg"><br />
<img width="500px" src="/blog/static/images/auto/corsa_kurbelwellensensor/opel_corsa_kurbelwellensensor_3_text.jpg" alt="Opel Corsa Kurbelwellensensor" /></a><br />
<br style="clear: both;"></p>
<p>Der Ausbau des Sensors ist eigentlich recht einfach, wenn man davon absieht dass man sich irgendwie unter das Auto begeben muss. Man liegt dann direkt unter der Ölwanne und in der Nähe des Auspuffrohres. Also Vorsicht wenn der Motor noch warm ist!<br />
Bei mir kahm übrigens kein Öl beim Ausbau raus, aber der Sensor war leicht eingeölt. Daher auch hier vorsicht da ich nicht sicher bin.</p>
<p>Die eine Schraube die den Sensor fest hält ist eine Aussentorx Schraube. Wer nicht über so einen Schraubenschlüssel verfügt kann dies auch mit einer Rohrzange, oder einem 8er Ring/Gabelschlüssel gemacht werden. Natürlich schön vorsichtig sein und die Schraube heil lassen. Nach fest kommt bekanntlich ab!</p>
<p>Eine Ansicht im Ausgebauten Zustand:<br />
<a href="/blog/static/images/auto/corsa_kurbelwellensensor/opel_corsa_kurbelwellensensor_4.jpg"><br />
<img width="500px" src="/blog/static/images/auto/corsa_kurbelwellensensor/opel_corsa_kurbelwellensensor_4.jpg" alt="Opel Corsa Kurbelwellensensor Ausgebaut" /></a><br />
<br style="clear: both;"></p>
<p>Beim Einbau darauf achten dass der O-Dichtungsring nicht beschädigt wird und dass der Ring+Sensor ein bisschen eingeölt wird damit er sich nicht verkantet.</p>
<h2>Fehlercode entfernen</h2>
<p>Wen die Reparatur erfolgreich war aber das Warnlicht immer noch leuchtet, kann versuchen dieses zu beseitigen in dem die Batterie für einen relativ langen Zeitrum abklemmt wird ( >= 1 Stunde).</p>
<h2>Keine Hebebühne, kein Problem!</h2>
<p>Wer nur einen Wagenheber zur Verfügung hat kann auch damit das Auto anheben. Ich habe noch ein paar Waschbetonplatten sowie meinen Reserverreifen benutzt damit ich unters Auto komme.<br />
<a href="/blog/static/images/auto/corsa_kurbelwellensensor/opel_corsa_kurbelwellensensor_8.jpg"><br />
<img width="500px" src="/blog/static/images/auto/corsa_kurbelwellensensor/opel_corsa_kurbelwellensensor_8.jpg" alt="Opel Corsa Kurbelwellensensor" /></a><br />
<br style="clear: both;"><br />
Auch sehr nützlich hat sich der Kantstein vor dem Haus erwiesen wenn man sich nur mal schnell drunter legen will. Die Holzplatte unter dem Auto war auch etwas bequemer als der nackte Steinboden. Eine alte Decke könnte hier auch helfen.</p>
<h2>Hinweis</h2>
<p>Ich habe diesen Artikel geschrieben nachdem ich selber mehrere Stunden im Internet recherchiert habe. In diesem Artikel wollte ich Leidensgenossen möglichst viel Sucharbeit ersparen. Zwar ist die Anleitung für einen Opel Corsa C geschrieben, sollte sich aber auch auf andere Opelmodelle übertragen lassen.</p>
<p>Ganz besonders würde ich mich über ein Kommentar freuen wenn Ihnen dieser Artikel geholfen hat, oder wenn sie etwas hinzuzufügen haben. Danke im Voraus.</p>
<h2>Liste mit Fehlercodes für Opel Motoren</h2>
<p>0013 Schaltkreis der Lambdasonde offen<br />
0014 Kühlmitteltemperatursensor = Niedrige Spannung<br />
0015 Kühlmitteltemperatursensor = Hohe Spannung<br />
0016 Klopfsensorfehler Kreis 1<br />
0017 Klopfsensorfehler Kreis 2<br />
0018 Klopfsensormodul oder Rechner fehlerhaft<br />
0019 Signal der Motordrehzahl Falsch<br />
0021 Drosselklappenpotentiometer =Spannung Hoch<br />
0022 Drosselklappenpotentiometer =Spannung niedrig<br />
0023 Klopfsensormodul oder Rechner fehlerhaft<br />
0024 Kein Fahrzeuggeschwindigkeitssignal<br />
0025 Einspritzdüse 1 = Spannung Hoch<br />
0026 Einspritzdüse 2 = Spannung Hoch<br />
0027 Einspritzdüse 3 = Spannung Hoch<br />
0028 Einspritzdüse 4 = Spannung Hoch<br />
0029 Einspritzdüse 5 = Spannung Hoch<br />
0031 Kein Signal der Motordrehzahl<br />
0032 Einspritzdüse 6 = Spannung Hoch<br />
0033 Abgasrückführungsventil = Spannung niedrig<br />
0034 Abgasrückführungsventil = Spannung Hoch<br />
0035 Kontrollleuchte = Spannung niedrig<br />
0036 ROZ-Schaltkreis<br />
0037 Massefehler der Warnlampe<br />
0038 Lambdasonde = Spannung niedrig<br />
0039 Lambdasonde = Spannung Hoch<br />
0041 Geschwindigkeitssensor = Spannung niedrig<br />
0042 Geschwindigkeitssensor = Spannung Hoch<br />
0044 Lambdasonde = Gemisch mager<br />
0045 Lambdasonde = Gemisch Fett<br />
0046 Relais der Sekundärluftpumpe = Spannung niedrig<br />
0047 Relais der Sekundärluftpumpe = Spannung Hoch<br />
0048 Batteriespannung niedrig<br />
0049 Batteriespannung Hoch<br />
0051 Rechner fehlerhaft = Speicher<br />
0052 Fehler in der Warnlampenversorgung<br />
0053 Relais der Kraftstoffpumpe = Massefehler<br />
0054 Relais der Kraftstoffpumpe = Versorgungsfehler<br />
0055 Rechner fehlerhaft<br />
0056 Massefehler des Leerlaufventils<br />
0057 Schaltkreis des Leerlaufventils offen<br />
0059 Kodieren der Wegfahrsperre<br />
0061 Massefehler des Tankventils<br />
0062 Tankventil = Versorgungsfehler<br />
0063 Lufteinlassventil = Versorgungsfehler<br />
0063 EST-Zündspule Zylinder 2+3 Spannung niedrig<br />
0064 EST-Anschluss Spannung niedrig<br />
0065 CO- Potentiometer (Motronic) Niedrige Spannung<br />
0065 Zu hohe Temperatur im Rechnergehäuse (Simtec)<br />
0066 CO- Potentiometer = Hohe Spannung<br />
0067 Schalter der Leerlauf Drosselklappe<br />
0068 Leerlauf-Positionsschalter = Spannung Hoch<br />
0068 CO- Potentiometer = Hohe Spannung<br />
0069 Lufttemperatursensor = Niedrige Spannung<br />
0071 Lufttemperatursensor = Hohe Spannung<br />
0072 Drosselklappe = Vollastschalter<br />
0073 Luftmengenmesser = Niedrige Spannung<br />
0074 Luftmengenmesser = Hohe Spannung<br />
0075 Kraftübertragungsschalter = Niedrige Spannung<br />
0076 Kontinuierliche Drehmomentkontrolle<br />
0079 Antriebssteuereinheit<br />
0081 Einspritzventil = Spannung Hoch<br />
0081 Einspritzdüse 1 = Niedrige Spannung<br />
0082 Einspritzdüse 2 = Niedrige Spannung<br />
0083 Einspritzdüse 3 = Niedrige Spannung<br />
0084 Einspritzdüse 4 = Niedrige Spannung<br />
0085 Einspritzdüse 5 = Niedrige Spannung<br />
0086 Einspritzdüse 6 = Niedrige Spannung<br />
0087 Massefehler Relais der Klimaanlage<br />
0088 Relais der Klimaanlage = Versorgungsfehler<br />
0091 Kraftstoffsperre = Spannung niedrig<br />
0091 Heizung der Lambda-Sonde = Hohe Spannung<br />
0092 Kraftstoffsperre = Spannung Hoch<br />
0092 Hallsensor = Falsches Signal<br />
0093 Vierfachantriebsmodul<br />
0093 Hallsensor = Niedrige Spannung ( Motronic )<br />
0093 Kein Signal der Wegfahrsperre ( Simtec )<br />
0094 Hallsensor = Hohe Spannung ( Motronic )<br />
0094 Wegfahrsperre = Falsches Signal ( Simtec )<br />
0095 Motorlastsignal = Spannung niedrig<br />
0098 PTC-Signal = Spannung niedrig<br />
0098 Heizung der Lambdasonde = Niedrige Spannung ( Simtec )<br />
0099 PTC-Signal = Spannung Hoch<br />
0100 Luftmengenmesser<br />
0110 Lufttemperatursensor<br />
0115 Kühlmitteltemperatur<br />
0120 Drosselklappenpotentiometer<br />
0130 Spannung des Stromkreises der Lambda-Sonde<br />
0135 Spannung für das Aufheizen der Lambda-Sonde<br />
0150 Spannung des Stromkreises der Lambda-Sonde<br />
0170 Lambda-Sonde = Gemisch zu Fett<br />
0173 Lambda-Sonde<br />
0201 Spannung der Einspritzdüse 1<br />
0202 Spannung der Einspritzdüse 2<br />
0203 Spannung der Einspritzdüse 3<br />
0204 Spannung der Einspritzdüse 4<br />
0205 Spannung der Einspritzdüse 5<br />
0206 Spannung der Einspritzdüse 6<br />
0230 Relais der Benzinpumpe<br />
0325 Spannung des Klopfsignals Stromkreis 1<br />
0330 Spannung des Klopfsignals Stromkreis 2<br />
0335 Falsches Signal für die Motordrehzahl<br />
0340 Spannung des Hall-Sensors<br />
0351 Zündspannung Zylinder 1+4<br />
0352 Zündspannung Zylinder 2+3<br />
0403 Abgasrückführungsventil<br />
0410 Relais der Sekundärluftpumpe<br />
0411 Sekundärluftdurchfluss<br />
0443 Spannung des Tankventils<br />
0500 Kein Signal des Geschwindigkeitssensors<br />
0505 Spannung der Leerlaufregelung<br />
0550 Spannung der Servolenkung<br />
0560 Spannung der Batterie<br />
0602 Rechnerprogramm<br />
1105 Signal des Drucksensors<br />
1110 Ventil 1 des Ansaugkrümmers<br />
1111 Ventil 2 des Ansaugkrümmers<br />
1112 Blinker = Niedrige Spannung<br />
1113 Ventil 2 des Ansaugkrümmers<br />
1229 Primärstromkreis Versorgungsrelais<br />
1230 Versorgung des Kraftrelais<br />
1326 Höchstgrenze der Klopfregelung am Zylinder 1<br />
1327 Höchstgrenze der Klopfregelung am Zylinder 2<br />
1328 Höchstgrenze der Klopfregelung am Zylinder 3<br />
1329 Höchstgrenze der Klopfregelung am Zylinder 4<br />
1330 Höchstgrenze der Klopfregelung am Zylinder 5<br />
1331 Höchstgrenze der Klopfregelung am Zylinder 6<br />
1340 Mechanische Verstellung des Nockenwellensensors<br />
1405 Spannung des Abgasrückführungsventil<br />
1410 Spannung des Relais der Klimaanlage<br />
1501 Falscher Code der Wegfahrsperre<br />
1502 Signal der Wegfahrsperre<br />
1502 Falsches Signal der Wegfahrsperre<br />
1530 Relais der Klimaanlage<br />
1600 Rechnerprogramm<br />
1601 Hohe Temperatur des Rechners<br />
1602 Klopfsignal Modul<br />
1690 Spannung der Warnlampe<br />
1740 Spannung der Kraftübertragungssteuerung</p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/howto-opel-corsa-c-kurbelwellensensor-austauschen-anleitung-hilfe.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Easy to use and secure PHP hashing Class</title>
		<link>http://juliusbeckmann.de/blog/easy-to-use-and-secure-php-hashing-class.html</link>
		<comments>http://juliusbeckmann.de/blog/easy-to-use-and-secure-php-hashing-class.html#comments</comments>
		<pubDate>Thu, 01 Oct 2009 19:14:42 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Classes]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Hash]]></category>
		<category><![CDATA[Hashing]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=449</guid>
		<description><![CDATA[Why
I created this class because there are too many people still saving simple md5 instead of more secure hashes.
The class should be fully PHP4 and PHP5 compatible and very easy to use. But also extended usage on its complex methods is possible.
Example
The usage of the class should be straight forward.
If you just want to use [...]]]></description>
			<content:encoded><![CDATA[<h3>Why</h3>
<p>I created this class because there are too many people still saving simple md5 instead of more secure hashes.<br />
The class should be fully PHP4 and PHP5 compatible and very easy to use. But also extended usage on its complex methods is possible.</p>
<h3>Example</h3>
<p>The usage of the class should be straight forward.<br />
If you just want to use it, use the methods <strong>hash()</strong> and <strong>check()</strong>.<br />
EXAMPLE:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$secure_hash</span> <span class="sy0">=</span> <span class="kw2">new</span> secure_hash<span class="sy0">;</span><br />
<span class="re0">$hash</span> <span class="sy0">=</span> <span class="re0">$secure_hash</span><span class="sy0">-&gt;</span><span class="me1">hash</span><span class="br0">&#40;</span><span class="st_h">'pass'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$secure_hash</span><span class="sy0">-&gt;</span><span class="me1">check</span><span class="br0">&#40;</span><span class="re0">$hash</span><span class="sy0">,</span> <span class="st_h">'pass'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <br />
&nbsp; <span class="kw1">echo</span> <span class="st0">&quot;Password fits to hash.&quot;</span><span class="sy0">;</span><br />
<span class="kw1">else</span><br />
&nbsp; <span class="kw1">echo</span> <span class="st0">&quot;Password does NOT fit to hash.&quot;</span><span class="sy0">;</span></div>
</div>
<p>That is all you need to know for just using it, but i have to tell, you will miss something important if you stop reading here.<br />
<span id="more-449"></span></p>
<h3>Problem with hashes</h3>
<p>There are several other things included for making hashes from this class even more secure.<br />
First to know is the principle behind the class. A normal <em>md5()</em> is just <strong>one</strong> operation. Today's computer can calculate millions of them in a second (!).<br />
<em>So what to do? </em><br />
You can use <em>sha1()</em> but this is still the same problem.<br />
So we need a technique to slow the hashing process down to a time frame a brute force attack would be much too ineffective.</p>
<p>We generated our example hash:</p>
<div class="codesnip-container" >$sha1$~=<=/<_%=|$71$bdf6a4a8bb2914f6152f31eabf34fd4b8b7f4a74$</div>
<p>The format of the hash simply is:</p>
<div class="codesnip-container" >delimiter = $<br />
$ hashing-mehtod $ salt $ interations $ hash $</div>
<h3>random Salts</h3>
<p>First step for solving this problem is: <strong>using salts</strong><br />
A salt is some random string that is appended to the password to make it more complex. This class generates random salts so rainbowtables will be useless.<br />
In the formated hash the salt is ~=<=/<_%=|.<br />
You can configure length of the salt with:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">var</span> <span class="re0">$salt_len</span> <span class="sy0">=</span> <span class="nu0">4</span><span class="sy0">;</span></div>
</div>
<blockquote><p>Hint: A much longer salt does NOT result a more secure hash.<br />
The salt needs to be stored too so better leave it at 4.</p></blockquote>
<h3>random Iterations</h3>
<p>Second step is: <strong>random iterations</strong><br />
Each hash gets rehashed <em>n</em> times. This makes cracking the hash very difficult because you need specialized software for hashes from this class. Also doing more iterations will take longer, too long for current hardware.<br />
In the formated hash the number of iterations is 71 ($71$).<br />
You can configure this with:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">var</span> <span class="re0">$iter_min</span> <span class="sy0">=</span> <span class="nu0">10</span><span class="sy0">;</span><br />
<span class="kw2">var</span> <span class="re0">$iter_max</span> <span class="sy0">=</span> <span class="nu0">99</span><span class="sy0">;</span></div>
</div>
<h3>unusual hashing methods</h3>
<p>Third step: <strong>Using unusual hashing methods</strong><br />
Our example hash is done with sha1($sha1$), but it is also possible to write<br />
own hashing methods an attacker needs to know first.<br />
Check out "secure_hash_example" for an example.<br />
You can change hash method with:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">var</span> <span class="re0">$hashing_method</span> <span class="sy0">=</span> <span class="st_h">'sha1'</span><span class="sy0">;</span></div>
</div>
<h3>global Salt</h3>
<p>Forth step is: <strong>A global salt</strong><br />
Each password gets its own salt, that is great. But we have to save the salt inside our formated hash. That is baaad because the attacker will get it too. So lets define something the attacker can NOT get with a SQL-Injection.<br />
We define a global salt. This has to be done BEFORE the hashes get created.<br />
This values should NOT CHANGE, or your hashes get incorrect.<br />
So if you want to use a global salt, define it BEFORE FIRST USE and let it stay!</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">var</span> <span class="re0">$salt_global</span> <span class="sy0">=</span> <span class="st_h">''</span><span class="sy0">;</span></div>
</div>
<h3>Permutations</h3>
<p>Fifth step: <strong>using permutations</strong><br />
A permutation is something like this:<br />
The rules this class uses look like "abc|cab". This means, the "a" will become "c", "b"->"a" and "c"->"b".<br />
The principle is something like shuffling the string with a defined rule. This is another thing the attacker needs to know if he wants to crack our hashes.<br />
This feature has to be defined BEFORE FIRST USE! and then let it stay! Otherwise your hashes will become incorrect.<br />
You can define your own permutations at:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">var</span> <span class="re0">$permutate</span> <span class="sy0">=</span> <span class="kw4">true</span><span class="sy0">;</span><br />
<span class="kw2">var</span> <span class="re0">$permutations</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="sy0">.....</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>There is also a method for creating permutations:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">function</span> _new_permutation<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>If you use all these steps you will have a fine solution for the problem with common unsecured hashes. Storing a hash created by this class with all its features enabled should be safe way to store your users passwords.</p>
<h3>Download</h3>
<p><a href="http://juliusbeckmann.de/classes/src/secure_hash/secure_hash.zip">secure_hash.zip</a><br />
<a href="http://juliusbeckmann.de/classes/src/secure_hash/">Source</a><br />
<a href="http://juliusbeckmann.de/classes/secure_hash/">Documentation</a></p>
<p>Hope you enjoy my work.<br />
Get in touch if you have questions or hints.</p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/easy-to-use-and-secure-php-hashing-class.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wordpress - Remote Admin Reset Password Exploit &#124; Wie es dazu kommen konnte</title>
		<link>http://juliusbeckmann.de/blog/wordpress-remote-admin-reset-password-exploit-wie-es-dazu-kommen-konnte.html</link>
		<comments>http://juliusbeckmann.de/blog/wordpress-remote-admin-reset-password-exploit-wie-es-dazu-kommen-konnte.html#comments</comments>
		<pubDate>Tue, 11 Aug 2009 15:53:21 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[Exploit]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=360</guid>
		<description><![CDATA[Wieder einmal eine Lücke in Wordpress. Ich mach mir mal die Mühe und zeige die Umstände wie es dazu kommen konnte.

In der wp-login.php gibt es die Möglichkeit mit den Paramatern: ?action=rp&#38;key=LANGER_KEY ein Passwort zurücksetzten zu lassen. Bedingung hierfür ist jedoch dass der key in der Datenbank gefunden wurde.
Code:
Schauen wir uns mal den Code genauer an:

function [...]]]></description>
			<content:encoded><![CDATA[<p>Wieder einmal eine Lücke in Wordpress. Ich mach mir mal die Mühe und zeige die Umstände wie es dazu kommen konnte.<br />
<span id="more-360"></span></p>
<p>In der wp-login.php gibt es die Möglichkeit mit den Paramatern: ?action=rp&amp;key=LANGER_KEY ein Passwort zurücksetzten zu lassen. Bedingung hierfür ist jedoch dass der key in der Datenbank gefunden wurde.</p>
<h2>Code:</h2>
<p>Schauen wir uns mal den Code genauer an:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw2">function</span> reset_password<span class="br0">&#40;</span><span class="re0">$key</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw2">global</span> <span class="re0">$wpdb</span><span class="sy0">;</span></p>
<p><span class="re0">$key</span> <span class="sy0">=</span> <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st_h">'/[^a-z0-9]/i'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$key</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="kw1">if</span> <span class="br0">&#40;</span> <a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span> <span class="re0">$key</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="kw1">return</span> <span class="kw2">new</span> WP_Error<span class="br0">&#40;</span><span class="st_h">'invalid_key'</span><span class="sy0">,</span> __<span class="br0">&#40;</span><span class="st_h">'Invalid key'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="re0">$user</span> <span class="sy0">=</span> <span class="re0">$wpdb</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>get_row<span class="br0">&#40;</span><span class="re0">$wpdb</span><span class="sy0">-&amp;</span>gt<span class="sy0">;</span>prepare<span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM <span class="es4">$wpdb</span>-&amp;gt;users WHERE user_activation_key = <span class="es6">%s</span>&quot;</span><span class="sy0">,</span> <span class="re0">$key</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">if</span> <span class="br0">&#40;</span> <a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span> <span class="re0">$user</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span><br />
<span class="kw1">return</span> <span class="kw2">new</span> WP_Error<span class="br0">&#40;</span><span class="st_h">'invalid_key'</span><span class="sy0">,</span> __<span class="br0">&#40;</span><span class="st_h">'Invalid key'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="co1">// Generate something random for a password...</span><br />
<span class="re0">$new_pass</span> <span class="sy0">=</span> wp_generate_password<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p>do_action<span class="br0">&#40;</span><span class="st_h">'password_reset'</span><span class="sy0">,</span> <span class="re0">$user</span><span class="sy0">,</span> <span class="re0">$new_pass</span><span class="br0">&#41;</span><span class="sy0">;</span></p>
<p><span class="sy0">...</span></div>
</div>
<h2>Erklärung:</h2>
<p>Der Parameter $key kommt direkt von $_GET['key']. Dieser wird jetzt mit preg_replace() aller Zeichen ausser a-zA-Z0-9 bereinigt. Und hier liegt auch schon das Problem. Dummerweise akzeptiert preg_replace() auch Arrays als Parameter wo dann jeder einzelne Eintrag des Arrays abgearbeitet wird. Link zur PHP Doku: <a href="http://de.php.net/manual/en/function.preg-replace.php">http://de.php.net/manual/en/function.preg-replace.php</a>.</p>
<p>Was manche nicht wissen, es ist möglich auch ein Array per GET zu übergeben. Man müsste dazu in der URL schreiben: &amp;key[]=eintrag.</p>
<p>Wenn man dies nun macht wird nach dem preg_replace $key ein Array sein mit genau einem Element drin. Da aber Arrays mit mindestens einem Element drin als true gewertet werden liefert empty($key) hier false und es wird KEINE Fehlermeldung ausgespuckt.<br />
Was danach passiert ist teils auch nicht so ganz offensichtlich. Im Aufruf von $wpdb-&gt;prepare wird $key benutzt welches, da es ein Array und kein String ist nicht korrekt geparsed welches zu folgender Query führt: "SELECT * FROM jb_v1_users WHERE user_activation_key = ''". Es steht jetzt am Schluss = '' - diese Query findet also den ersten Datensatz in der user Tabelle wo die Spalte user_activation_key leer ist. Dies ist meistens der Admin. Im Nachfolgenden Code wird jetzt das Passwort des Admins geändert was auch schon den ganzen Exploit ausmacht. Der Admin kann sich vorerst nicht mehr einloggen.</p>
<p>Beheben lässt sich das ganze indem der Admin einfach seinen Passwort Hash in der Datenbank ändert und sich so wieder einloggen kann.</p>
<h2>Fix:</h2>
<p>Um diese Lücke zu fixen gibt es mehrere Möglichkeiten:</p>
<p>Wir machen aus:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$key</span> <span class="sy0">=</span> <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st_h">'/[^a-z0-9]/i'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="re0">$key</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$key</span> <span class="sy0">=</span> <a href="http://www.php.net/preg_replace"><span class="kw3">preg_replace</span></a><span class="br0">&#40;</span><span class="st_h">'/[^a-z0-9]/i'</span><span class="sy0">,</span> <span class="st_h">''</span><span class="sy0">,</span> <span class="br0">&#40;</span>string<span class="br0">&#41;</span><span class="re0">$key</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>was uns dann immer einen String zurückliefern wird. Zwar würde im Fall dass $key ein Array ist nachher "Array" drin stehen, aber diesen Key wird bestimmt keiner als user_activation_key  haben.</p>
<p>Oder wir machen aus:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span> <a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span> <span class="re0">$key</span> <span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="kw1">return</span> <span class="kw2">new</span> WP_Error<span class="br0">&#40;</span><span class="st_h">'invalid_key'</span><span class="sy0">,</span> __<span class="br0">&#40;</span><span class="st_h">'Invalid key'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span> <a href="http://www.php.net/empty"><span class="kw3">empty</span></a><span class="br0">&#40;</span> <span class="re0">$key</span> <span class="br0">&#41;</span> <span class="sy0">||</span> <a href="http://www.php.net/is_array"><span class="kw3">is_array</span></a><span class="br0">&#40;</span><span class="re0">$key</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="kw1">return</span> <span class="kw2">new</span> WP_Error<span class="br0">&#40;</span><span class="st_h">'invalid_key'</span><span class="sy0">,</span> __<span class="br0">&#40;</span><span class="st_h">'Invalid key'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
<p>welches die Fehlermeldung ausgeben wird wenn $key fälschlicherweise ein Array ist.</p>
<p>Der Bug ist echt nicht auf den ersten Blick zu sehen, daher auch keine Schande über die Wordpress Programmierer. Mein Rat an dieser Stelle, lieber ein paar mal mehr casten als zu wenig.</p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/wordpress-remote-admin-reset-password-exploit-wie-es-dazu-kommen-konnte.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EEE PC: Bildschirm optimal nutzen unter Ubuntu und Firefox</title>
		<link>http://juliusbeckmann.de/blog/eee-pc-bildschirm-optimal-nutzen-unter-ubuntu-und-firefox.html</link>
		<comments>http://juliusbeckmann.de/blog/eee-pc-bildschirm-optimal-nutzen-unter-ubuntu-und-firefox.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 07:45:05 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[EEE]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Littlefox]]></category>
		<category><![CDATA[optimieren]]></category>
		<category><![CDATA[Platz]]></category>
		<category><![CDATA[Small]]></category>
		<category><![CDATA[Space]]></category>
		<category><![CDATA[Tiny]]></category>
		<category><![CDATA[Tiny Menu]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=286</guid>
		<description><![CDATA[
Asus hat mit seinem EEE PC den Nerv der Zeit getroffen, ultramobile Computer die trotzdem vollwertig nutzbar und vor allem bezahlbar sind. Da ich wegen Arbeit und Studium recht viel unterwegs bin hab ich mir auch solch ein Gerät zugelegt und gleich mein bevorzugtes Betriebssystem Ubuntu in der Version 9.04 aufgespielt. Einziges Manko war dann [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-287" title="aus-eee-pc-900" src="http://juliusbeckmann.de/blog/static/aus-eee-pc-900-200x166.jpg" alt="aus-eee-pc-900" width="200" height="166" /><br />
Asus hat mit seinem EEE PC den Nerv der Zeit getroffen, ultramobile Computer die trotzdem vollwertig nutzbar und vor allem bezahlbar sind. Da ich wegen Arbeit und Studium recht viel unterwegs bin hab ich mir auch solch ein Gerät zugelegt und gleich mein bevorzugtes Betriebssystem Ubuntu in der Version 9.04 aufgespielt. Einziges Manko war dann der etwas kleine Monitor mit seiner mickrigen Auflösung von 1024x600. Leider ist die Oberfläche von Ubuntu und Firefox nicht standardmäßig zum Platzsparen ausgelegt, doch dafür hab ich recht schnell jeweils eine Lösung gefunden. Lesen Sie in dem folgenden Artikel wie ich die von Ubuntu und Firefox verbrauchte Bildschrimfläche um fast 50% verringert habe bei annähernd gleicher Nutzbarkeit.<br />
<span id="more-286"></span><br />
Bei meiner Optimierung und Rechnung gehe ich von einer 1024x600 Auflösung und der Nutzung von Gnome sowie Firefox3 aus. Als unbrauchbare Fläche sehe ich alles außer dem Firefox Sichtbereich der Webseite an, welcher auf den Bildern blau markiert ist.</p>
<h2>Gnome optimieren</h2>
<p><a href="http://juliusbeckmann.de/blog/static/ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-normal.png"><img class="alignleft size-thumbnail wp-image-288" title="ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-normal" src="http://juliusbeckmann.de/blog/static/ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-normal-200x117.png" alt="ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-normal" width="200" height="117" /></a></p>
<p>Der Defaultbildschirm ist leider etwas klobig mit seiner Gnome Leiste oben und unten, sowie dem recht großen Firefox Menu. Die Fläche die wir versuchen zu minimieren mal blau markiert. Dabei handelt es sich um etwa 140 Pixel oben und 26 Pixel unten, recht viel finde ich. <a href="http://juliusbeckmann.de/blog/static/ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-normal-marked.png"><img class="alignright size-thumbnail wp-image-293" title="ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-normal-marked" src="http://juliusbeckmann.de/blog/static/ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-normal-marked-200x117.png" alt="ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-normal-marked" width="200" height="117" /></a>Zuerst kümmern wir uns um Gnome da dies auch alle anderen Programme betrifft.<br />
Um möglichst viel Platz zu sparen versuchen wir die untere Leiste zu entbehren. Die geht recht einfach indem wir die einzelnen gesperrten Objekte auf der Leiste wenn nötig entsperren und auf die obere Leiste ziehen. Um auch oben die Liste mit den geöffneten Fenstern zu haben am besten einfach oben mit <strong>"Zum Panel hinzufügen"</strong> die <strong>Fensterliste</strong> hinzufügen und wie gewünscht positionieren. Das große Menu links oben können wir durch das wesentlich kleinere <strong>"Hauptmenü"</strong> ersetzten. Um den Benutzernamen bei dem Ausknopf rechts oben zu verstecken Rechtsklick drauf und unter <strong>Einstellungen -&gt; Aussehen</strong> das kleine Symbol wählen. Ich war noch so frei und hab mir das Applet "Systemmonitor" eingebaut, damit ich immer im Blick hab wie stark der Rechner ausgelastet ist.</p>
<p>Da mir das Original Ubuntu Thema etwas zu klobig und platzverschwenderisch war habe ich mir mein eigenes zusammengeklickt. Dies kann man recht leicht unter <strong>Menu -&gt; System -&gt; Einstellungen -&gt; Erscheinungsbild</strong> selber machen.<br />
Ich habe zum Beispiel als Fensterinhalt "Mist" genommen, die Fensterrahmen von "Metabox", einige Schriftarten etwas kleiner gemacht und unter Oberfläche -&gt; Knopfbeschriftungen in Werkzeugleisten "Text neben Elementen" ausgewählt. Auf visuelle Effekte habe ich vorerst verzichtet da diese nur Rechenzeit und daher kostbaren Akku verbraucht.</p>
<h2>Firefox optimieren</h2>
<p>Jetzt geht es an den Firefox, dort lässt sich ganz einfach mittels <strong>"Ansicht -&gt; Statusleiste"</strong> die Statusleiste ganz unten ausblenden. Wer diese nicht braucht kann so schon mal Platz sparen. Das gleiche lässt sich mit der Lesezeichen Leiste machen.<br />
<a href="http://juliusbeckmann.de/blog/static/ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-small.png"><img class="alignleft size-thumbnail wp-image-297" title="ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-small" src="http://juliusbeckmann.de/blog/static/ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-small-200x117.png" alt="ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-small" width="200" height="117" /></a><br />
Um das ganze Erscheinungsbild von Firefox kleiner zu bekommen habe ich das Thema <strong>"LittleFox"</strong> installiert. Dies lässt sich hier installieren: <a href="https://addons.mozilla.org/en-US/firefox/addon/307" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/307</a><br />
Um jetzt noch die Firefox Menu Leiste anzupassen kann man das Addon <strong>"Tiny Menu"</strong> installieren. Link: <a href="https://addons.mozilla.org/en-US/firefox/addon/1455" target="_blank">https://addons.mozilla.org/en-US/firefox/addon/1455</a><br />
Danach kann man mittels Rechtsklick auf die Menuleiste -&gt; Anpassen alle Elemente auf den Menu Leisten nach Wunsch verschieben. Ich habe hier wie in Gnome alles in die oberste Leiste gepackt um optimal Platz zu sparen.</p>
<p>Das Ergebnis kann sich sehen lassen. <a href="http://juliusbeckmann.de/blog/static/ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-small-marked.png"><img class="alignright size-thumbnail wp-image-298" title="ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-small-marked" src="http://juliusbeckmann.de/blog/static/ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-small-marked-200x117.png" alt="ubuntu-asus-eee-900-1000-netbook-screen-perfect-fit-size-small-marked" width="200" height="117" /></a> Aus den insgesamt 166 Pixeln sind wir jetzt auf nur noch rund 91 Pixel. Dies entspricht einer Platzersparnis von 45% (!). Da ich immer noch alles bequem erreichen kann ist dies für mich auch kein Verlust an Bedienqualität. Man muss jedoch jetzt beim klicken mit dem Touchpad besonders aufpassen damit man nicht daneben klickt. Man könnte auch einfach die Tastenkombinationen lernen und Anwenden, man glaubt gar nicht wie schnell das damit gehen kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/eee-pc-bildschirm-optimal-nutzen-unter-ubuntu-und-firefox.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMD macht Microcode Update wegen Phenom Kern freischalten Bug</title>
		<link>http://juliusbeckmann.de/blog/amd-macht-microcode-update-wegen-phenom-kern-freischalten-bug.html</link>
		<comments>http://juliusbeckmann.de/blog/amd-macht-microcode-update-wegen-phenom-kern-freischalten-bug.html#comments</comments>
		<pubDate>Fri, 12 Jun 2009 09:43:19 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[AMD]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Microcode]]></category>
		<category><![CDATA[Phenom]]></category>
		<category><![CDATA[X3]]></category>
		<category><![CDATA[X4]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=245</guid>
		<description><![CDATA[
Die aktuellen Prozessoren des Typs Phenom von AMD werden in mehreren Varianten angeboten. Mit 2, 3 und auch 4 Kernen sind diese CPUs zu haben. Ansich handelt es sich bei den 3 Kern CPUs um physische 4 Kern CPUs bei denen ein defekter Kern deaktiviert wurde. Da dadurch auch weniger Leistung aufgenommen wird konnte man [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://juliusbeckmann.de/blog/static/x3.jpg" alt="AMD Phenom X3 CPU Logo" title="AMD Phenom X3 CPU Logo" height="200" class="alignright size-full wp-image-252" /><br />
Die aktuellen Prozessoren des Typs Phenom von AMD werden in mehreren Varianten angeboten. Mit 2, 3 und auch 4 Kernen sind diese CPUs zu haben. Ansich handelt es sich bei den 3 Kern CPUs um physische 4 Kern CPUs bei denen ein defekter Kern deaktiviert wurde. Da dadurch auch weniger Leistung aufgenommen wird konnte man die CPU Frequenz herauftakten um wieder die TDP Werte zu erreichen.</p>
<p>Diesen Umstand könnte man anscheinend umgehen und den deaktivierten Kern eines X3 Phenom wieder aktivieren. Problem daran ist jedoch dass:</p>
<ul>
<li>Der Kern nicht ohne Grund deaktiviert wurde. Es ist also sehr wahrscheinlich dass dieser einen Defekt hat, auch wenn er nicht sofort auffällt.</li>
<li>Durch die höhere Taktung des X3 jetzt die TDP überschritten werden kann. Was auch nicht im Sinne der CPU ist.</li>
</ul>
<p>Anscheinend handelt es sich jedoch nicht um eine Art Patch, sondern eher um einen Fehler seitens des Mainboard Herstellers. (<a href="http://www.computerbase.de/news/hardware/prozessoren/amd/2009/februar/phenom_ii_x3_phenom_ii_x4/">Mehr Infos dazu</a>)</p>
<p>Dass AMD in diesem Fall einen neuen Microcode für die BIOS der Mainboards veröffentlicht ist nur sinnvoll da es sich um einen glasklaren Fehler handelt. Ich glaube dass AMD das nicht macht damit die Leute jetzt nicht nurnoch X3 Phenoms kaufen, die Anzahl der Leute die dies machen werden sollte verschwindend gering sein. Auch will AMD den Leuten wohl nicht verbieten den Kern freizuschalten, wer dies machen will wird es aktuell eh schaffen sich so ein Mainboard zu besorgen und sollte sich den Gefahren bewusst sein. Anderenfalls hoffe ich auf einen umfassenden Lerneffekt.</p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/amd-macht-microcode-update-wegen-phenom-kern-freischalten-bug.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XKCD - #504 Legal Hacks</title>
		<link>http://juliusbeckmann.de/blog/xkcd-504-legal-hacks.html</link>
		<comments>http://juliusbeckmann.de/blog/xkcd-504-legal-hacks.html#comments</comments>
		<pubDate>Sat, 15 Nov 2008 11:37:00 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=155</guid>
		<description><![CDATA[Heute habe ich mal ein Comic meines lieblings Webcomic übersetzt.

]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich mal ein Comic meines lieblings Webcomic übersetzt.</p>
<p><a href="http://juliusbeckmann.de/blog/static/legal_hacks_german.png"><img class="alignnone size-full wp-image-160" title="legal_hacks_german" src="http://juliusbeckmann.de/blog/static/legal_hacks_german.png" alt="" width="740" height="242" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/xkcd-504-legal-hacks.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Umarme mich, ich bin ein Entwickler!</title>
		<link>http://juliusbeckmann.de/blog/umarme-mich-ich-bin-ein-entwickler.html</link>
		<comments>http://juliusbeckmann.de/blog/umarme-mich-ich-bin-ein-entwickler.html#comments</comments>
		<pubDate>Tue, 16 Sep 2008 09:49:55 +0000</pubDate>
		<dc:creator>Julius</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Arbeit]]></category>
		<category><![CDATA[Computer]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Umarmen]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://juliusbeckmann.de/blog/?p=79</guid>
		<description><![CDATA[Fast jeder der mit Computern arbeitet hat schon mal von Ihnen gehört oder kennt sogar einen. Die Rede ist von den doch meist recht unbekannten Menschen die harte anstrengende Arbeit unter teils unmenschlich unlogischen Bedingungen vollbringen müssen.

Für alle Nicht-Entwickler ist dieses Video gedacht, um Ihnen zu zeigen was Entwickler alles durchmachen müssen damit Ihr mit [...]]]></description>
			<content:encoded><![CDATA[<p>Fast jeder der mit Computern arbeitet hat schon mal von Ihnen gehört oder kennt sogar einen. Die Rede ist von den doch meist recht unbekannten Menschen die harte anstrengende Arbeit unter teils unmenschlich unlogischen Bedingungen vollbringen müssen.<br />
<span id="more-79"></span><br />
Für alle Nicht-Entwickler ist dieses Video gedacht, um Ihnen zu zeigen was Entwickler alles durchmachen müssen damit Ihr mit eurem Computer produktiv arbeiten könnt.</p>
<p><embed src="http://blip.tv/play/gYwjwZJqjdEh" type="application/x-shockwave-flash" width="640" height="390" allowscriptaccess="always" allowfullscreen="true"></embed> </p>
<p>Wer will kann gerne zu mir kommen und mich umarmen ...</p>
]]></content:encoded>
			<wfw:commentRss>http://juliusbeckmann.de/blog/umarme-mich-ich-bin-ein-entwickler.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
