<?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>LocalDev &#187; Tipps &amp; Tricks</title>
	<atom:link href="http://localdev.de/category/tipps-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://localdev.de</link>
	<description>Web, Desktop &#38; Mobile Development</description>
	<lastBuildDate>Thu, 01 Dec 2011 18:54:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Symfony2: Could not parse object &#8217;303b8a83c87d5c6d749926cf02620465a5dcd0f2&#8242;</title>
		<link>http://localdev.de/2011/08/symfony2-could-not-parse-object-303b8a83c87d5c6d749926cf02620465a5dcd0f2/</link>
		<comments>http://localdev.de/2011/08/symfony2-could-not-parse-object-303b8a83c87d5c6d749926cf02620465a5dcd0f2/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 19:39:29 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony2]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[monolog]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1644</guid>
		<description><![CDATA[Beim updaten meiner Projekte auf Symfony 2.0.1 ist mir eben die folgende Fehlermeldung ins Auge gestochen: Scheinbar gibt es Probleme beim Aktualisieren von monolog. Alle anderen Abhängigkeiten werden ordentlich aktualisiert. Was kann man tun? Ein kurzer Blick in die Ankündigung bringt auch schon die Lösung. Löscht einfach den Ordner vendor/monolog und führt noch einmal bin/vendors [...]]]></description>
			<content:encoded><![CDATA[<p>Beim updaten meiner Projekte auf Symfony 2.0.1 ist mir eben die folgende Fehlermeldung ins Auge gestochen:</p>
<pre class="brush: plain; title: ; notranslate">Could not parse object '303b8a83c87d5c6d749926cf02620465a5dcd0f2'</pre>
<p>Scheinbar gibt es Probleme beim Aktualisieren von <em>monolog</em>. Alle anderen Abhängigkeiten werden ordentlich aktualisiert.</p>
<p><strong>Was kann man tun?</strong></p>
<p>Ein kurzer Blick in die <a href="http://symfony.com/blog/symfony-2-0-1-released" target="_blank">Ankündigung</a> bringt auch schon die Lösung. Löscht einfach den Ordner <code>vendor/monolog</code> und führt noch einmal <code>bin/vendors install</code> aus. Monolog sollte jetzt ebenfalls aktuell sein.</p>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/08/symfony2-could-not-parse-object-303b8a83c87d5c6d749926cf02620465a5dcd0f2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>nginx: Google+ Shortcut</title>
		<link>http://localdev.de/2011/07/nginx-google-shortcut/</link>
		<comments>http://localdev.de/2011/07/nginx-google-shortcut/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 12:34:51 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[rewrite]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1617</guid>
		<description><![CDATA[Google+ wächst nach wie vor, und in diversen Blogs sind bereits Artikel erschienen, wie man eine Adresse nachdem Schema http://domain.de/+ auf das eigene Google+ Profil weiterleiten kann. Die Artikel beschränken sich leider alle auf Apache, so dass sie für mich nicht anwendbar sind, da auf meinen Servern derzeit nur nginx läuft. Mit dem folgenden Code [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://localdev.de/wp-content/uploads/2011/07/Nginx-logo-small.png" alt="" title="Nginx-logo-small" width="180" height="46" class="alignright size-full wp-image-1621" />Google+ wächst nach wie vor, und in diversen Blogs sind bereits Artikel erschienen, wie man eine Adresse nachdem Schema http://domain.de/+ auf das eigene Google+ Profil weiterleiten kann.</p>
<p>Die Artikel beschränken sich leider alle auf Apache, so dass sie für mich nicht anwendbar sind, da auf meinen Servern derzeit nur nginx läuft. Mit dem folgenden Code Schnipsel, klappt es aber auch damit. Schreibt die folgenden drei Zeilen einfach in die Konfiguration des vHosts, und passt die URL zu eurem Google+ Profil entsprechend an.</p>
<pre class="brush: plain; title: ; notranslate">
	location = /+ {
		rewrite ^ https://plus.google.com/110406650492357950182/about?hl=de permanent;
	}
</pre>
<p>Anschließend die Konfiguration neu laden, und schon habt ihr eine einfachere URL für euer Google+ Profil. In meinem Fall ist dies nun die Adresse <a href="http://localdev.de/+" target="_blank">http://localdev.de/+</a> (oder alternativ <a href="http://fabian-martin.de/+" target="_blank">http://fabian-martin.de/+</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/07/nginx-google-shortcut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony2 RC3: messages.fr.xliff: failed to open stream</title>
		<link>http://localdev.de/2011/06/symfony2-rc3-messages-fr-xliff-failed-to-open-stream/</link>
		<comments>http://localdev.de/2011/06/symfony2-rc3-messages-fr-xliff-failed-to-open-stream/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 19:51:20 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony2]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1600</guid>
		<description><![CDATA[Gestern hat Fabien Potencier kurz hintereinander die RC2 und RC3 von Symfony2 veröffentlicht, da es seit der RC1 Probleme mit den Generatoren gibt, die leider auch in der aktuellen RC3 noch nicht vollständig behoben sind. Versucht man ein neues Bundle zu erstellen, erhält man mit der RC3 folgende Fehlermeldung: Die weitere Erstellung des Bundles bricht [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://localdev.de/wp-content/uploads/2011/06/symfony_black_03.png" alt="" title="symfony_black_03" width="150" height="147" class="alignright size-full wp-image-1597" />Gestern hat Fabien Potencier kurz hintereinander die RC2 und RC3 von Symfony2 veröffentlicht, da es seit der RC1 Probleme mit den Generatoren gibt, die leider auch in der aktuellen RC3 noch nicht vollständig behoben sind.</p>
<p>Versucht man ein neues Bundle zu erstellen, erhält man mit der RC3 folgende Fehlermeldung:</p>
<pre class="brush: php; title: ; notranslate">[ErrorException]
Warning: copy(/path/to/project/vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/../Resources/skeleton/bundle/structure/messages.fr.xliff): failed to open stream: No such file or directory in /path/to/project/vendor/symfony/src/Symfony/Component/HttpKernel/Util/Filesystem.php line 44</pre>
<p>Die weitere Erstellung des Bundles bricht nach dieser Meldung ab. Ein Ärgernis, da die neuen Generatoren gut zu nutzen sind, und der neue Bundle Generator alle nötigen Einträge in den Konfigurationsdateien vornimmt.</p>
<p><strong>Workaround</strong></p>
<p>Um die Generatoren nutzen zu können, empfiehlt sich, bis zur Veröffentlichung einer fehlerbereinigten Version, folgende Vorgehensweise.<br />
<span id="more-1600"></span><br />
Wechselt in das Verzeichnis <code>vendor/bundles/Sensio/Bundle/GeneratorBundle/Resources/skeleton/bundle</code> und erstellt dort ein Unterverzeichnis mit dem Namen <code>structure</code>. Kopiert anschließend alle Dateien aus dem erstgenannten, in das neue Verzeichnis.</p>
<p>Die Generatoren sollten nun ohne Probleme durchlaufen.</p>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/06/symfony2-rc3-messages-fr-xliff-failed-to-open-stream/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Symfony2: nginx Konfiguration</title>
		<link>http://localdev.de/2011/06/symfony2-nginx-konfiguration/</link>
		<comments>http://localdev.de/2011/06/symfony2-nginx-konfiguration/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 21:09:05 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony2]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1577</guid>
		<description><![CDATA[Seit heute Nachmittag kann man den ersten Release Candidate des Symfony2 Frameworks testen. Die API sollte ab jetzt keinen allzu großen Änderungen mehr unterworfen sein, so dass man langsam anfangen kann, die ersten Applikationen damit zu entwickeln (ohne nach jedem Update Angst haben zu müssen das nichts mehr funktioniert ). Da ich ein Freund von [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://localdev.de/wp-content/uploads/2011/06/symfony_black_03.png" alt="" title="symfony_black_03" width="150" height="147" class="alignright size-full wp-image-1597" />Seit heute Nachmittag kann man den ersten Release Candidate des Symfony2 Frameworks testen. Die API sollte ab jetzt keinen allzu großen Änderungen mehr unterworfen sein, so dass man langsam anfangen kann, die ersten Applikationen damit zu entwickeln (ohne nach jedem Update Angst haben zu müssen das nichts mehr funktioniert <img src='http://localdev.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).</p>
<p>Da ich ein Freund von eher schlanken Systemen bin, nutze ich als Webserver nginx. Da dieser keine .htaccess Dateien verarbeitet, ist ein wenig Konfigurationsaufwand nötig, um alle Funktionen von Symfony2 optimal nutzen zu können.<br />
<span id="more-1577"></span><br />
Im Folgenden meine Konfiguration von nginx. Diese teilt sich in zwei Dateien auf. Die erste enthält Konfigurationsanweisungen, die für alle vHosts  gleich sind. Die zweite ist vHost spezifisch.</p>
<p><strong>default-symfony2</strong> <small>(/etc/nginx/default-symfony2)</small></p>
<pre class="brush: plain; title: ; notranslate">
location = /favicon.ico {
        log_not_found off;
        access_log off;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
}

location ~ /\.ht {
        deny all;
}

location ~ \.php($|/) {
        include fastcgi_params;

        set $script $uri;
        set $path_info &quot;&quot;;

        if ($uri ~ &quot;^(.+\.php)(/.+)&quot;) {
                set $script $1;
                set $path_info $2;
        }

        fastcgi_param SCRIPT_NAME $script;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/tmp/php-fpm.sock;
}
</pre>
<p><strong>domain.conf</strong><small>/etc/nginx/sites-enabled/domain.conf</small></p>
<pre class="brush: plain; title: ; notranslate">
server {
        server_name example.org *.example.org;
        root /home/www/example.org/web;

        index app.php;

        location / {
                try_files $uri /app.php?$args;
        }

        include defaults-symfony2;
}
</pre>
<p>Passt die Domains entsprechend an, und schon habt ihr eine lauffähige Symfony2 Konfiguration. Tauscht ihr <em>app.php</em> durch <em>app_dev.php</em>, landet ihr direkt im Entwicklermodus.</p>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/06/symfony2-nginx-konfiguration/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Linux: Root Passwort zurücksetzen</title>
		<link>http://localdev.de/2011/05/linux-root-passwort-zurucksetzen/</link>
		<comments>http://localdev.de/2011/05/linux-root-passwort-zurucksetzen/#comments</comments>
		<pubDate>Fri, 20 May 2011 05:36:20 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[passwd]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=72</guid>
		<description><![CDATA[Man stelle sich die folgende Situation vor: In der Firma steht ein Linux Server auf dem wichtige Dienste laufen. Der dafür zuständige Mitarbeiter verlässt, freiwillig oder unfreiwillig, die Firma und nimmt dummerweise das Passwort für den Server mit. Was macht man in solch einem Fall? Die meisten werden wahrscheinlich an den Einsatz einer Live CD [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/pic1.png" title="" class="thickbox" rel="singlepic36" >
	<img class="ngg-singlepic ngg-right" src="http://localdev.de/wp-content/gallery/cache/36__150x150_pic1.png" alt="pic1" title="pic1" />
</a>
Man stelle sich die folgende Situation vor: In der Firma steht ein Linux Server auf dem wichtige Dienste laufen. Der dafür zuständige Mitarbeiter verlässt, freiwillig oder unfreiwillig, die Firma und nimmt dummerweise das Passwort für den Server mit.</p>
<p><strong>Was macht man in solch einem Fall?</strong></p>
<p>Die meisten werden wahrscheinlich an den Einsatz einer Live CD denken, doch es geht einfacher und schneller. Das einzige was wir benötigen, ist <a href="http://de.wikipedia.org/wiki/GRUB" target="_blank">GRUB</a>.<br />
<span id="more-72"></span></p>
<ol>
<li>Startet den PC und drückt bei der Betriebssystemauswahl <em>ESC</em>, um den Boot Vorgang abzubrechen</li>
<li>Wählt das gewünschte Betriebssystem aus und drückt die Taste <em>e</em>.</li>
<li>Ihr seht jetzt die Startparameter. Sucht die Zeile die mit <em>linux</em> bzw. <em>kernel</em> beginnt und platziert den Cursor ans Ende dieser Zeile.</li>
<li>Fügt die folgenden Parameter hinzu.
<pre class="brush: bash; title: ; notranslate">
rw init=/bin/bash
</pre>
</li>
<li>Startet mit <em>STRG + X</em> das System und wartet bis die Kommandozeile erscheint. Wenn ihr alle Schritte korrekt ausgeführt habt, sollte das System ohne Eingabe von Benutzername und Passwort zur Verfügung stehen.</li>
<li>Mit dem folgenden Kommando könnt ihr die Passwörter ändern. Ersetzt <em>USERNAME</em> durch den gewünschten Benutzernamen, z.B. <em>root</em> und bestätigt das Passwort durch doppelte Eingabe.
<pre class="brush: bash; title: ; notranslate">
passwd USERNAME
</pre>
</li>
<li>Nach einem Neustart (mit <em>reboot</em>), könnt ihr euch mit dem neuen Passwort anmelden.</li>
</ol>

<div class="ngg-galleryoverview" id="ngg-gallery-14-72">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-36" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/pic1.png" title=" " class="thickbox" rel="set_14" >
								<img title="pic1" alt="pic1" src="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/thumbs/thumbs_pic1.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-37" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/pic2.png" title=" " class="thickbox" rel="set_14" >
								<img title="pic2" alt="pic2" src="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/thumbs/thumbs_pic2.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-38" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/pic3.png" title=" " class="thickbox" rel="set_14" >
								<img title="pic3" alt="pic3" src="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/thumbs/thumbs_pic3.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-39" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/pic4.png" title=" " class="thickbox" rel="set_14" >
								<img title="pic4" alt="pic4" src="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/thumbs/thumbs_pic4.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-40" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/pic5.png" title=" " class="thickbox" rel="set_14" >
								<img title="pic5" alt="pic5" src="http://localdev.de/wp-content/gallery/linux-root-passwort-zurucksetzen/thumbs/thumbs_pic5.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/05/linux-root-passwort-zurucksetzen/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Windows meldet sich sofort wieder ab</title>
		<link>http://localdev.de/2011/04/windows-meldet-sich-sofort-wieder-ab/</link>
		<comments>http://localdev.de/2011/04/windows-meldet-sich-sofort-wieder-ab/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 19:05:01 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[antivir]]></category>
		<category><![CDATA[F-Secure]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[rescue cd]]></category>
		<category><![CDATA[userinit]]></category>
		<category><![CDATA[Virus]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1524</guid>
		<description><![CDATA[Vor ein paar Tagen berichtete ein Bekannter, das sein Rechner ihn ständig auffordert eine Bank TAN einzugeben. Klarer Fall, er hat sich was eingefangen. Nachdem Antivir sich nicht mehr aktualisieren wollte, hat er es mit der Rescue CD von F-Secure probiert, die auch auf Anhieb 24 Schädlinge gefunden und neutralisiert hat. Soweit so schön, würde [...]]]></description>
			<content:encoded><![CDATA[<p>Vor ein paar Tagen berichtete ein Bekannter, das sein Rechner ihn ständig auffordert eine Bank TAN einzugeben. Klarer Fall, er hat sich was eingefangen. Nachdem Antivir sich nicht mehr aktualisieren wollte, hat er es mit der <a href="http://www.f-secure.com/en_EMEA-Labs/security-threats/tools/rescue-cd/">Rescue CD</a> von F-Secure probiert, die auch auf Anhieb 24 Schädlinge gefunden und neutralisiert hat.</p>
<p>Soweit so schön, würde denn jetzt alles wieder wie üblich funktionieren. Tat es natürlich nicht. Jedes Mal wenn man sich bei Windows angemeldet hat, wurde man prompt wieder abgemeldet.</p>
<p><strong>Auf der Suche nach dem Schuldigen</strong></p>
<p>Die erste Analyse des Problems ist schnell abgeschlossen. Etwas muss sich in den Anmeldeprozess eingebunden haben, und wird nun jedes Mal beim Anmeldeprozess mit ausgeführt bzw. fehlt dank unserer Reinigung und der Anmeldeprozess schlägt deswegen fehl.</p>
<p><span id="more-1524"></span><strong><em>Möglichkeit 1:</em></strong></p>
<p>Der Schädling hat die userinit.exe manipuliert und wird darüber gestartet. Sollte bei neueren Windows Versionen nicht mehr möglich sein, aber man weiß nie.</p>
<p>Kopiert die userinit.exe eines sauberen PCs in euer Windows\System32 Verzeichnis und startet den PC.  Nach der hoffentlich erfolgreichen Anmeldung, solltet ihr die Kommandozeile als Administrator, und mit folgendem Befehl eine Überprüfung der Systemdateien starten.</p>
<pre class="brush: plain; title: ; notranslate">sfc /SCANNOW</pre>
<p>Sollten weitere Dateien verändert worden sein, so müssten sie hierdurch erkannt und durch die richtigen Versionen ersetzt werden.</p>
<p><strong><em>Möglichkeit 2:</em></strong></p>
<p>Ein Trick der schon unter Windows 9x sehr beliebt bei Virenautoren war, ist die Liste der  zu startenden Programme zu erweitern. Bei Windows 9x musste man die win.ini bzw. system.ini ändern, ab Windows 2000 läuft das ganze jedoch über die Registry. Sucht den folgenden Schlüssel und prüft den Inhalt von <em>Userinit</em>.</p>
<pre class="brush: plain; title: ; notranslate">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon</pre>
<p>Der Wert sollte normalerweise wie folgt lauten, achtet auf das Komma am Ende.</p>
<pre class="brush: plain; title: ; notranslate">C:\WINDOWS\system32\userinit.exe,</pre>
<p><strong><em>Möglichkeit 3:</em></strong></p>
<p>Eine weitere Möglichkeit, welche in diesem Fall zutraf, ist das starten als Debugger. Sobald das eigentliche Programm ausgeführt wird, wird unser Schädling mitgestartet.</p>
<p>Sucht in der Registry den folgenden Schlüssel und löscht ihn inkl. aller enthaltenden Werte.</p>
<pre class="brush: plain; title: ; notranslate">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Userinit.exe</pre>
<p>Wollt Ihr Wissen an welcher Stelle sich der Schädling befindet, so findet Ihr den kompletten Pfad in dem Eintrag <em>Debugger</em> unterhalb des vorher genannten Schlüssels.</p>
<p><strong>Wie soll ich die Registry ändern, ich kann mich gar nicht anmelden?</strong></p>
<p>Das ist natürlich ein Problem. Normalerweise bearbeitet man mit regedit die Registrierung. Das steht uns leider nicht zur Verfügung, da die Anmeldung  selbst im abgesicherten Modus fehlschlägt.</p>
<p>Abhilfe schaffen die Ultimate Boot CD und die Ultimate Boot CD for Windows. Beide liefern Registry Editoren mit, die ein Anmelden an Windows unnötig machen.</p>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/04/windows-meldet-sich-sofort-wieder-ab/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>VS 2010 SDK: You must have Microsoft Visual Studio 2010 installed &#8230;</title>
		<link>http://localdev.de/2011/03/vs-2010-sdk-you-must-have-microsoft-visual-studio-2010-installed/</link>
		<comments>http://localdev.de/2011/03/vs-2010-sdk-you-must-have-microsoft-visual-studio-2010-installed/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 21:00:55 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Service Pack]]></category>
		<category><![CDATA[SP1]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1491</guid>
		<description><![CDATA[Immer das Gleiche mit Updates und Service Packs. Irgendwas funktioniert danach nicht mehr. Und natürlich bildet das Service Pack von Visual Studio 2010 da keine Ausnahme. Wer selbst einmal eine Erweiterung für Visual Studio schreiben möchte, sollte bei der Installation aller nötigen Komponenten auf die Reihenfolge aufpassen. Denn nach der Installation des Service Packs, verweigert [...]]]></description>
			<content:encoded><![CDATA[<p>Immer das Gleiche mit Updates und Service Packs. Irgendwas funktioniert danach nicht mehr. Und natürlich bildet das Service Pack von Visual Studio 2010 da keine Ausnahme.</p>
<p>
<a href="http://localdev.de/wp-content/gallery/vs-2010-sdk/vs2010_sdk_error.png" title="" class="thickbox" rel="singlepic35" >
	<img class="ngg-singlepic ngg-right" src="http://localdev.de/wp-content/gallery/cache/35__320x240_vs2010_sdk_error.png" alt="vs2010_sdk_error" title="vs2010_sdk_error" />
</a>
Wer selbst einmal eine Erweiterung für Visual Studio schreiben möchte, sollte bei der Installation aller nötigen Komponenten auf die Reihenfolge aufpassen. Denn nach der Installation des Service Packs, verweigert das Visual Studio SDK die Installation mit der Meldung „You must have Microsoft Visual Studio 2010 installed on your computer before proceeding“.</p>
<p><strong>Was macht man nun?</strong></p>
<p>Die Deinstallation des SP1 wäre natürlich eine Möglichkeit. Eine zeitaufwendige zwar, aber es sollte gehen. Wer sich das ersparen will, sollte <em>regedit</em> öffnen und sich bis zu dem folgenden Schlüssel durchklicken.</p>
<p><em>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\vs\Servicing\10.0</em></p>
<p>Sucht dort nach dem Eintrag <em>SP</em> und ändert den Wert von 1 auf 0. Die Installation des SDK sollte jetzt ohne Probleme durchlaufen. Anschließend den Wert wieder auf 1 setzen, und schon könnt Ihr mit der Entwicklung eurer ersten Erweiterung beginnen.</p>
<p><div class="note"><div class="notetip">Wer sich das Prozedere sparen will, kann natürlich auch das <a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=21307c23-f0ff-4ef2-a0a4-dca54ddb1e21" target="_blank">aktuelle SDK</a> installieren. Danke für den <a href="http://localdev.de/2011/03/vs-2010-sdk-you-must-have-microsoft-visual-studio-2010-installed/comment-page-1/#comment-2425">Tipp</a>.</div></div></p>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/03/vs-2010-sdk-you-must-have-microsoft-visual-studio-2010-installed/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Windows: Verwaltung in Englisch statt Deutsch</title>
		<link>http://localdev.de/2011/03/windows-verwaltung-in-englisch-statt-deutsch/</link>
		<comments>http://localdev.de/2011/03/windows-verwaltung-in-englisch-statt-deutsch/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 21:21:50 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[Lokalisierung]]></category>
		<category><![CDATA[Verwaltung]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1469</guid>
		<description><![CDATA[Da bringt man nach Wochen des Wartens seinen Laptop wieder in Ordnung, und auf einmal ist die Verwaltung in Englisch statt Deutsch. An sich nichts schlimmes, da alles normal funktioniert, und trotzdem ist es etwas, an den man (also ich) sich stören kann. Wie behebt man dieses Problem? Im Grunde ist es ganz einfach, man [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://localdev.de/wp-content/gallery/windows-verwaltung/verwaltung-englisch.png" title="" class="thickbox" rel="singlepic31" >
	<img class="ngg-singlepic ngg-right" src="http://localdev.de/wp-content/gallery/cache/31__240x240_verwaltung-englisch.png" alt="verwaltung-englisch" title="verwaltung-englisch" />
</a>
 Da bringt man nach Wochen des Wartens seinen Laptop wieder in Ordnung, und auf einmal ist die Verwaltung in Englisch statt Deutsch. An sich nichts schlimmes, da alles normal funktioniert, und trotzdem ist es etwas, an den man (also ich) sich stören kann.</p>
<p><strong>Wie behebt man dieses Problem? </strong></p>
<p>Im Grunde ist es ganz einfach, man muss lediglich eine Datei mit dem Namen <em>desktop.ini </em>in die Verwaltung kopieren und den folgenden Inhalt einfügen.</p>
<pre class="brush: plain; light: true; title: ; notranslate">
[LocalizedFileNames]
Memory Diagnostics Tool.lnk=@%SystemRoot%\system32\MdSched.exe,-4001
System Configuration.lnk=@%systemroot%\system32\msconfig.exe,-126
Performance Monitor.lnk=@%SystemRoot%\system32\wdc.dll,-10021
Data Sources (ODBC).lnk=@%SystemRoot%\system32\odbcint.dll,-1310
Windows Firewall with Advanced Security.lnk=@%SystemRoot%\System32\AuthFWGP.dll,-20
services.lnk=@%systemroot%\system32\filemgmt.dll,-2204
Computer Management.lnk=@%SystemRoot%\system32\mycomput.dll,-300
iSCSI Initiator.lnk=@%SystemRoot%\system32\iscsicpl.dll,-5001
Event Viewer.lnk=@%SystemRoot%\system32\miguiresource.dll,-101
Task Scheduler.lnk=@%SystemRoot%\system32\miguiresource.dll,-201
Component Services.lnk=@%systemroot%\system32\comres.dll,-3410
Print Management.lnk=@%systemroot%\system32\pmcsnap.dll,-700
Security Configuration Management.lnk=@%SystemRoot%\system32\wsecedit.dll,-718
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21762
</pre>
<p>Wenn man anschließend die Verwaltung aktualisiert, erscheinen alle Links wieder in Deutsch (zumindest alle, für die es eine Übersetzung gibt).<br />
<span id="more-1469"></span><br />

<a href="http://localdev.de/wp-content/gallery/windows-verwaltung/verwaltung-deutsch.png" title="" class="thickbox" rel="singlepic30" >
	<img class="ngg-singlepic ngg-left" src="http://localdev.de/wp-content/gallery/cache/30__240x240_verwaltung-deutsch.png" alt="verwaltung-deutsch" title="verwaltung-deutsch" />
</a>
<strong>Wie funktioniert das?</strong></p>
<p>In den neueren Versionen von Windows, sind alle Ordnernamen und Verknüpfungen eigentlich in Englisch. Wer öfters mit der Kommandozeile arbeitet, wird dies sicherlich schon bemerkt haben. Der Ordner <em>Benutzer</em> heißt auf einmal <em>Users</em>, <em>Programme</em> heißt <em>Program Files</em> etc.</p>
<p>In der <em>desktop.ini</em> befinden sich die Pfade zu den entsprechenden Übersetzungen. Der Name für die Verknüpfung <em>services.lnk</em> befindet sich z.B. an Position 2204 in der Datei <em>filemgmt.dll</em>.</p>
<pre class="brush: plain; light: true; title: ; notranslate">services.lnk=@%systemroot%\system32\filemgmt.dll,-2204</pre>
<p>Das hat den Vorteil, dass bei Änderung der Desktop Sprache nicht alle Ordner und Verknüpfungen umbenannt werden müssen und alle Verweise innerhalb des Systems weiterhin funktionieren, da diese meistens auf die realen Ordnernamen verweisen.</p>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/03/windows-verwaltung-in-englisch-statt-deutsch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP/.NET/C#: Fehlerhafte SSL Zertifikate ignorieren</title>
		<link>http://localdev.de/2011/02/php-net-csharp-fehlerhafte-ssl-zertifikate-ignorieren/</link>
		<comments>http://localdev.de/2011/02/php-net-csharp-fehlerhafte-ssl-zertifikate-ignorieren/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 20:44:21 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[cURL]]></category>
		<category><![CDATA[Exception]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Zertifikat]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1445</guid>
		<description><![CDATA[Wieder so ein Code Schnipsel den ich häufiger mal brauche und immer wieder vergesse. Bei der Entwicklung neuer Programme nutze ich oft selbst signierte Zertifikate, die aber sinnigerweise von keinem Programm ohne weiteres angenommen werden. Firefox meldet beispielsweise „Diese Verbindung wird nicht vertraut“, .NET wirft eine Exception mit der Meldung „Für den geschützten SSL/TLS-Kanal konnte [...]]]></description>
			<content:encoded><![CDATA[<p>Wieder so ein Code Schnipsel den ich häufiger mal brauche und immer wieder vergesse.</p>
<p>Bei der Entwicklung neuer Programme nutze ich oft selbst signierte Zertifikate, die aber sinnigerweise von keinem Programm ohne weiteres angenommen werden. Firefox meldet beispielsweise „Diese Verbindung wird nicht vertraut“, .NET wirft eine Exception mit der Meldung „Für den geschützten SSL/TLS-Kanal konnte keine Vertrauensstellung hergestellt werden.“  und das cURL Modul von PHP gibt ein leeres Ergebnis zurück.</p>

<a href="http://localdev.de/wp-content/gallery/artikelbilder/ssl_fehler.png" title="" class="thickbox" rel="singlepic29" >
	<img class="ngg-singlepic ngg-center" src="http://localdev.de/wp-content/gallery/cache/29__320x240_ssl_fehler.png" alt="ssl_fehler" title="ssl_fehler" />
</a>

<p>Was am Ende durchaus gewollt ist, stört bei der Entwicklung. Mit den folgenden Code Schnipseln könnt ihr das „Problem“ beheben.<br />
<span id="more-1445"></span><br />
<strong>.NET / C#</strong></p>
<p>Führt am Anfang eurer Applikation, bzw. vor dem Öffnen der ersten Verbindung den folgenden Code aus. Die Verbindungen sollten jetzt ohne Exception aufgebaut werden können.</p>
<pre class="brush: csharp; title: ; notranslate">
ServicePointManager.ServerCertificateValidationCallback =
				new RemoteCertificateValidationCallback(delegate { return true; });
</pre>
<p><strong>PHP / cURL</strong><br />
Beim cURL Modul von PHP müssen die Optionen CURLOPT_SSL_VERIFYHOST und CURLOPT_SSL_VERIFYPEER auf false gesetzt werden, und schon funktioniert die Verbindung und gibt ein Ergebnis zurück.</p>
<pre class="brush: php; title: ; notranslate">
$resCurl = curl_init(&quot;https://localhost/&quot;);
curl_setopt($resCurl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($resCurl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($resCurl, CURLOPT_RETURNTRANSFER, true);
$strReturn = curl_exec($resCurl);
curl_close($resCurl);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/02/php-net-csharp-fehlerhafte-ssl-zertifikate-ignorieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows/TortoiseGit: Ordner wird verwendet</title>
		<link>http://localdev.de/2011/01/windows-tortoisegit-ordner-wird-verwendet-unlocker/</link>
		<comments>http://localdev.de/2011/01/windows-tortoisegit-ordner-wird-verwendet-unlocker/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 19:35:08 +0000</pubDate>
		<dc:creator>Fabian Martin</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tipps & Tricks]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Explorer]]></category>
		<category><![CDATA[TortoiseGit]]></category>
		<category><![CDATA[unlocker]]></category>

		<guid isPermaLink="false">http://localdev.de/?p=1427</guid>
		<description><![CDATA[Wir Windows User machen uns das Leben echt einfach. Für alles muss eine GUI her. Konsole? Ihh, nää, kann ich nicht. Ich brauch eine schicke Oberfläche. Das gilt natürlich auch bei der Arbeit mit der Versionsverwaltung. Selbst wenn es sich um Git dreht, das man eigentlich nur auf der Konsole richtig nutzen kann. Nein, auch [...]]]></description>
			<content:encoded><![CDATA[<p>Wir Windows User machen uns das Leben echt einfach. Für alles muss eine GUI her. Konsole? Ihh, nää, kann ich nicht. Ich brauch eine schicke Oberfläche.</p>
<p>Das gilt natürlich auch bei der Arbeit mit der Versionsverwaltung. Selbst wenn es sich um Git dreht, das man eigentlich nur auf der Konsole richtig nutzen kann. Nein, auch da muss eine GUI her, also greift man zu TortoiseGit.</p>
<p>Commit, Push, Pull, Log, alles kein Problem, aber schon mal versucht auf einem System mit TortoiseGit ein Repository/Projektordner zu löschen?</p>

<a href="http://localdev.de/wp-content/gallery/tortoisegit-ordner-wird-verwendet/ordner-wird-verwendet.png" title="" class="thickbox" rel="singlepic28" >
	<img class="ngg-singlepic ngg-center" src="http://localdev.de/wp-content/gallery/cache/28__320x240_ordner-wird-verwendet.png" alt="ordner-wird-verwendet" title="ordner-wird-verwendet" />
</a>

<p>Wie „erfreulich“ diese Meldung doch ist, und dank TortoiseGit sieht man sie sogar regelmäßig. Was macht man jetzt? Wie bekloppt auf „Wiederholen“ klicken, bis es irgendwann klappt?<br />
<span id="more-1427"></span><br />
Das geht besser und zwar mit Unlocker. Unlocker bindet sich in das Kontext Menü eures Explorers ein, und erlaubt euch, Dateien wieder freizugeben.<br />

<a href="http://localdev.de/wp-content/gallery/tortoisegit-ordner-wird-verwendet/ordner-wird-verwendet-2.png" title="" class="thickbox" rel="singlepic26" >
	<img class="ngg-singlepic ngg-center" src="http://localdev.de/wp-content/gallery/cache/26__320x240_ordner-wird-verwendet-2.png" alt="ordner-wird-verwendet-2" title="ordner-wird-verwendet-2" />
</a>
</p>
<p>Ein Klick auf „Unlocker“ öffnet nach einem kurzen Moment (und ggf. einer <a href="http://de.wikipedia.org/wiki/Benutzerkontensteuerung" target="_blank">UAC</a> Meldung) ein Fenster, in dem Ihr eine Auflistung aller in Benutzung befindlichen Dateien inkl. der schuldigen Programme findet.</p>
<p>
<a href="http://localdev.de/wp-content/gallery/tortoisegit-ordner-wird-verwendet/ordner-wird-verwendet-3.png" title="" class="thickbox" rel="singlepic27" >
	<img class="ngg-singlepic ngg-center" src="http://localdev.de/wp-content/gallery/cache/27__320x240_ordner-wird-verwendet-3.png" alt="ordner-wird-verwendet-3" title="ordner-wird-verwendet-3" />
</a>
<br />
Ein abschließender Klick auf „Alle Freigeben“ und das Repository lässt sich löschen.</p>
<p>Das Tool funktioniert natürlich auch, wenn ein anderes Programm Amok läuft und Dateien und Ordner sperrt. Passt bei der Installation auf, das Installationsprogramm versucht ein paar eBay Verknüpfungen auf eurem Desktop abzulegen. Diese könnt Ihr aber während der Installation abwählen.</p>
<p><strong>Links:</strong></p>
<ul>
<li><a href="http://www.chip.de/downloads/Unlocker-32-Bit_18414122.html" target="_blank">Unlocker (32 Bit) bei Chip.de</a></li>
<li><a href="http://www.chip.de/downloads/Unlocker-64-Bit_43678834.html" target="_blank">Unlocker (64 Bit) bei Chip.de</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://localdev.de/2011/01/windows-tortoisegit-ordner-wird-verwendet-unlocker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

