<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>hurikhan&#039;s Thoughts</title>
	<atom:link href="http://hurikhan77.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://hurikhan77.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Wed, 19 Sep 2012 09:05:28 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='hurikhan77.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>hurikhan&#039;s Thoughts</title>
		<link>http://hurikhan77.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://hurikhan77.wordpress.com/osd.xml" title="hurikhan&#039;s Thoughts" />
	<atom:link rel='hub' href='http://hurikhan77.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Weichere Mausbeschleunigung ab Xorg 1.7</title>
		<link>http://hurikhan77.wordpress.com/2010/06/08/weichere-mausbeschleunigung-ab-xorg-1-7/</link>
		<comments>http://hurikhan77.wordpress.com/2010/06/08/weichere-mausbeschleunigung-ab-xorg-1-7/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 08:25:11 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Xorg]]></category>
		<category><![CDATA[acceleration]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[settings]]></category>
		<category><![CDATA[xinput]]></category>
		<category><![CDATA[xorg]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=170</guid>
		<description><![CDATA[Seit Xorg 1.7 werden die Bewegungen der Maus &#8220;vorhersehbarer&#8221; berechnet und in Zeigerbewegungen auf dem Bildschirm umgesetzt, was vor allem das &#8220;über das Ziel hinausschießen&#8221; des Mauszeigers bei Systemen unter Last beheben soll. Einhergehend gibt es ein neues empfohlenes Beschleunigungsprofil, welches allerdings noch nicht Standard ist, aber schon getestet werden kann. Dieses Profil läßt sich [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=170&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Seit Xorg 1.7 werden die Bewegungen der Maus &#8220;vorhersehbarer&#8221; berechnet und in Zeigerbewegungen auf dem Bildschirm umgesetzt, was vor allem das &#8220;über das Ziel hinausschießen&#8221; des Mauszeigers bei Systemen unter Last beheben soll. Einhergehend gibt es ein neues empfohlenes Beschleunigungsprofil, welches allerdings noch nicht Standard ist, aber schon getestet werden kann. Dieses Profil läßt sich mit dem &#8220;xinput&#8221;-Programm oder auch per Hal-Konfiguration aktivieren. Ich habe es bei mir per Hal-Konfiguration aktiviert:</p>
<p><code><span style="color:#339966;">$ cd /etc/hal/fdi/policy</span></code></p>
<p><code><span style="color:#339966;">$ ls *.fdi</span><br />
10-ntfs3g.fdi 10-ntfs-policy.fdi 30-x11-input.fdi</code></p>
<p><code> </code></p>
<p><code><span style="color:#339966;">$ sudo vi 30-x11-input.fdi</span><br />
&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;deviceinfo version="0.2"&gt;<br />
&lt;match key="info.capabilities" contains="input.mouse"&gt;<br />
&lt;merge key="input.x11_driver" type="string"&gt;evdev&lt;/merge&gt;<br />
<span style="color:#ff9900;"> &lt;merge key="input.x11_options.AccelerationProfile" type="string"&gt;2&lt;/merge&gt;</span><br />
&lt;/match&gt;<br />
&lt;match key="info.capabilities" contains="input.keys"&gt;<br />
&lt;merge key="input.xkb.layout" type="string"&gt;de&lt;/merge&gt;<br />
&lt;merge key="input.xkb.variant" type="string"&gt;deadgraveacute&lt;/merge&gt;<br />
&lt;merge key="input.xkb.options" type="string"&gt;compose:rwin&lt;/merge&gt;<br />
&lt;merge key="input.xkb.autorepeat" type="string"&gt;500 30&lt;/merge&gt;<br />
&lt;/match&gt;<br />
&lt;/deviceinfo&gt;</code></p>
<p>Interessant ist hier die Zeile mit dem AccelerationProfile. Profil Nr. 2 ist hier das neue Profil. Eine gleichnamige Option kann natürlich auch direkt in die xorg.conf eingetragen werden bei dem jeweiligen Gerät. Die übrigen Zeilen legen die Konfiguration für meine Tastatur fest.</p>
<p>Damit ich nicht erst neu starten muß, oder um mit den Einstellungen zu experimentieren, habe ich mir xinput installiert, und dort zunächst das Gerät gesucht:</p>
<p><code><span style="color:#339966;">$ sudo emerge -ua xinput</span><br />
<span style="color:#339966;"> $ xinput list</span><br />
⎡ Virtual core pointer id=2 [master pointer (3)]<br />
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]<br />
⎜ ↳ HID 046a:0027 id=6 [slave pointer (2)]<br />
⎜ ↳ HID 046a:0027 id=7 [slave pointer (2)]<br />
⎜ ↳ <span style="color:#ff9900;">Logitech USB Optical Mouse id=9 [slave pointer (2)]</span><br />
⎣ Virtual core keyboard id=3 [master keyboard (2)]<br />
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]<br />
↳ HID 046a:0027 id=8 [slave keyboard (3)]<br />
↳ Power Button id=10 [slave keyboard (3)]<br />
↳ Power Button id=11 [slave keyboard (3)]</code></p>
<p><code><span style="color:#339966;">$ xinput list-props "Logitech USB Optical Mouse"</span><br />
Device 'Logitech USB Optical Mouse':<br />
Device Enabled (115): 1<br />
<span style="color:#ff9900;"> Device Accel Profile (234): 0</span><br />
Device Accel Constant Deceleration (235): 1.000000<br />
...</code></p>
<p><code> </code></p>
<p><code><span style="color:#339966;">$ xinput set-prop "Logitech USB Optical Mouse" "Device Accel Profile" 2</span></code></p>
<p>Vermutlich sollte man anschließend die Mausbeschleunigung wieder ein wenig zurücknehmen, falls man diese vorher höher gestellt hat, da der Beschleunigungseffekt nun früher und graduell einsetzt statt wie vorher ab einer gewissen Schwelle und schlagartig.</p>
<br />Einsortiert unter:<a href='http://hurikhan77.wordpress.com/category/linux/gentoo/'>Gentoo</a>, <a href='http://hurikhan77.wordpress.com/category/linux/'>Linux</a>, <a href='http://hurikhan77.wordpress.com/category/linux/xorg/'>Xorg</a> Tagged: <a href='http://hurikhan77.wordpress.com/tag/acceleration/'>acceleration</a>, <a href='http://hurikhan77.wordpress.com/tag/mouse/'>mouse</a>, <a href='http://hurikhan77.wordpress.com/tag/settings/'>settings</a>, <a href='http://hurikhan77.wordpress.com/tag/xinput/'>xinput</a>, <a href='http://hurikhan77.wordpress.com/tag/xorg-2/'>xorg</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/170/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=170&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2010/06/08/weichere-mausbeschleunigung-ab-xorg-1-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>Kein Sound mehr in KDE seit PulseAudio-Update?</title>
		<link>http://hurikhan77.wordpress.com/2009/12/14/kein-sound-mehr-in-kde-seit-pulseaudio-update/</link>
		<comments>http://hurikhan77.wordpress.com/2009/12/14/kein-sound-mehr-in-kde-seit-pulseaudio-update/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 11:20:48 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PulseAudio]]></category>
		<category><![CDATA[Sound]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=162</guid>
		<description><![CDATA[Das war schwer, da es nicht alle meine Rechner betraf. Die Lösung war am Ende ganz einfach: Konsole starten, alsamixer ausführen und den PulseAudio-Channel unmuten. Siehe Screenshot: Veröffentlicht in Gentoo, KDE Tagged: KDE, Linux, PulseAudio, Sound, Update<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=162&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Das war schwer, da es nicht alle meine Rechner betraf. Die Lösung war am Ende ganz einfach: Konsole starten, alsamixer ausführen und den PulseAudio-Channel unmuten. Siehe Screenshot:</p>
<p><a href="http://hurikhan77.files.wordpress.com/2009/12/alsamixer.png"><img class="aligncenter size-medium wp-image-163" title="alsamixer in der KDE-Konsole" src="http://hurikhan77.files.wordpress.com/2009/12/alsamixer.png?w=300&h=164" alt="" width="300" height="164" /></a></p>
<br />Veröffentlicht in Gentoo, KDE Tagged: KDE, Linux, PulseAudio, Sound, Update <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=162&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2009/12/14/kein-sound-mehr-in-kde-seit-pulseaudio-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>

		<media:content url="http://hurikhan77.files.wordpress.com/2009/12/alsamixer.png?w=300" medium="image">
			<media:title type="html">alsamixer in der KDE-Konsole</media:title>
		</media:content>
	</item>
		<item>
		<title>Rediscover Your Music on a Rant</title>
		<link>http://hurikhan77.wordpress.com/2009/11/22/rediscover-your-music-on-a-rant/</link>
		<comments>http://hurikhan77.wordpress.com/2009/11/22/rediscover-your-music-on-a-rant/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 00:30:28 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Amarok]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Rant]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=154</guid>
		<description><![CDATA[The new Amarok 2.2.1 is great. Editing metadata finally seems not to disturb Amarok&#8217;s stability and doesn&#8217;t make the collection scanner choke and eat endless amounts of memory. And finally I can use it as the coolest &#8220;ambient&#8221; music player again: Party mode is back. Err, okay it was back before &#8211; BUT: it finally [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=154&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The new <a href="http://amarok.kde.org/es/node/708">Amarok 2.2.1</a> is great. Editing metadata finally seems not to disturb Amarok&#8217;s stability and doesn&#8217;t make the collection scanner choke and eat endless amounts of memory. And finally I can use it as the coolest &#8220;ambient&#8221; music player again: Party mode is back. Err, okay it was back before &#8211; BUT: it finally works. Not to forget to mention its performance has vastly improved. To conclude these words: Yeah, it&#8217;s finally back on my desktop. Thank you, dear Amarok team. Great job!</p>
<p>But of course my increased usage puts the spot on all the bad things I start to discover. It&#8217;s my contribution to an ongoing rant on Amarok. There are some things I hate. And I really hate them. At least there seems to be no more show-stoppers now (or I didn&#8217;t discover them yet). Here is what I hate:</p>
<p><strong>The Redesign of the Toolbar</strong></p>
<p>That is really annoying. What did you guys think when you moved the playlist buttons to the middle? This makes in no way sense to me, because:</p>
<ul>
<li>I have my Amarok OSD in the top center of the screen &#8211; exactly where the buttons are. Changing the track covers the buttons. I fixed this by changing to the slim toolbar but I miss the big buttons then (which I hated when they first came up btw).<br />
<img class="aligncenter size-full wp-image-157" title="The slim toolbar" src="http://hurikhan77.files.wordpress.com/2009/11/slim-toolbar.png?w=780" alt=""   /></li>
<li style="text-align:left;">It is waste of screen real estate. Come on? We are all going to have widescreens. And what do you guys do? You make a redesign targetted to good old 4:3 times: Less width, more height. The now-ultra-long progress bar looks ugly. The new layout has no place for important and/or useful buttons and info texts which could&#8217;ve been put there otherwise. In the end it&#8217;s totally counter-productive to the 3-column widescreen layout of Amarok. Please change that.<br />
<img class="aligncenter size-full wp-image-156" title="The new Amarok toolbar" src="http://hurikhan77.files.wordpress.com/2009/11/amarok-toolbar1.png?w=780" alt=""   /></li>
</ul>
<p><strong>Strange Bugs</strong></p>
<p>Many new bugs have been introduced, some old annoying bugs still remain:</p>
<ul>
<li>You cannot remove track numbers from the metadata. Once set, they will always remain there. Trying to remove them and tabbing to the next field simply make the numbers reappear. Clicking on &#8220;save&#8221; while still in the field also doesn&#8217;t help &#8211; it&#8217;s just ignored and reset to the previous value. Does nobody use the metadata editor that it is treated such poorly?</li>
<li>Using the metadata editor often results in Amarok to freeze for some seconds (the sound however continues to play, so it&#8217;s not that annoying).</li>
<li>The playlist still has strange ideas of what should be grouped together and what not &#8211; most often when you remove a track from the playlist.</li>
<li>ALL MY SONGS ARE ZERO SECONDS LONG?! No, I can&#8217;t believe that! BTW: The progress bar shows interesting timing information because of that. I first thought this was one of the hard-to-understand inventions of the developers before I realized that it is directly connected to the zero-second long tracks. See the above screenshots.</li>
<li>Removing the current played track from the playlist makes Amarok jump to the start of the playlist instead of stepping to the &#8220;next&#8221; song. It&#8217;s annoying. I step into that pitfall over and over again (removing a track and skipping to next song afterwards). Argh!</li>
<li>I&#8217;m pretty clueless about how the replay-gain feature works. Where&#8217;s the automatic gain scanner and volume adjustment I so much loved in Amarok 1.4? I have the suspicion that this setting simply does nothing. My collection has replay-gain tags but songs come out of my speakers at surprisingly (and disturbing) different volume levels. I consider that non-working and thus a bug.</li>
</ul>
<p><strong>Final Words</strong></p>
<p>You lucky guys: I&#8217;m still hoping. No wrong&#8230; I&#8217;ve got hope again. Seems you are finally concentrating on fixing bugs instead of inventing strange new features. Hmm, oh well &#8211; wrong again. Your new toolbar is a strange new invention. At least you fixed some annoying bugs. Yeah, probably in the end, perhaps, maybe you rock&#8230; Keen on the next release. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br />Veröffentlicht in Amarok, KDE Tagged: Amarok, Bugs, KDE, Rant <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/154/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=154&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2009/11/22/rediscover-your-music-on-a-rant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>

		<media:content url="http://hurikhan77.files.wordpress.com/2009/11/slim-toolbar.png" medium="image">
			<media:title type="html">The slim toolbar</media:title>
		</media:content>

		<media:content url="http://hurikhan77.files.wordpress.com/2009/11/amarok-toolbar1.png" medium="image">
			<media:title type="html">The new Amarok toolbar</media:title>
		</media:content>
	</item>
		<item>
		<title>Bremerhaven mit 3D-Gebäuden in GoogleEarth</title>
		<link>http://hurikhan77.wordpress.com/2009/06/16/bremerhaven-mit-3d-gebauden-in-googleearth/</link>
		<comments>http://hurikhan77.wordpress.com/2009/06/16/bremerhaven-mit-3d-gebauden-in-googleearth/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 10:19:50 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Bremerhaven]]></category>
		<category><![CDATA[GoogleEarth]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[columbuscenter]]></category>
		<category><![CDATA[hafen]]></category>
		<category><![CDATA[leuchtturm]]></category>
		<category><![CDATA[modelle]]></category>
		<category><![CDATA[radarturm]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=125</guid>
		<description><![CDATA[Faszinierend finde ich, daß für Bremerhaven bereits die ersten 3D-Gebäude auftauchen. Auch in der Umgebung (z.B. Grundschule Schiffdorf). In Bremerhaven sind aktuell zu sehen &#8211; allerdings noch nicht alles sehr detailliert oder hübsch: Columbus Center, AWI, Radarturm, Simon-Loschen-Leuchtturm und einige Museumsschiffe. Vom Columbus Center sind leider nur die Türme drin, nicht der gesamte Komplex inklusive [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=125&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-127" style="margin:4px;" title="Alter Hafen Bremerhaven in GoogleEarth mit 3D-Gebäuden, Sicht auf Radarturm" src="http://hurikhan77.files.wordpress.com/2009/06/bhv.jpg?w=300&h=203" alt="Alter Hafen Bremerhaven in GoogleEarth mit 3D-Gebäuden, Sicht auf Radarturm" width="300" height="203" />Faszinierend finde ich, daß für Bremerhaven bereits die ersten 3D-Gebäude auftauchen. Auch in der Umgebung (z.B. Grundschule Schiffdorf). In Bremerhaven sind aktuell zu sehen &#8211; allerdings noch nicht alles sehr detailliert oder hübsch: Columbus Center, AWI, Radarturm, Simon-Loschen-Leuchtturm und einige Museumsschiffe. Vom Columbus Center sind leider nur die Türme drin, nicht der gesamte Komplex inklusive Parkgarage und Einkaufspassage. Außerdem schweben ein paar verwaiste Striche im Himmel. Aber ich bin mir sicher, daß die Gebäude sowieso noch nicht fertig sind und noch daran gefeilt wird.</p>
<p>Ich möchte allen 3D-Bastlern hiermit zur guten Arbeit gratulieren und natürlich motivieren, damit weiter zu machen. Ich hätte fast Lust, selbst ein paar Gebäude beizusteuern, was wohl mit Google Sketchup recht einfach zu erledigen wäre &#8211; aber leider keine Zeit, mich damit auseinanderzusetzen.</p>
<p>Falls ihr noch weitere Gebäude entdeckt oder einstellt, so hinterlaßt doch hier einen Kommentar.</p>
<p>Das Bild links/oben ist © Google 2009 sowie weiterer auf dem Bildausschnitt genannter Rechteeigentümer.</p>
<br />Veröffentlicht in Bremerhaven, GoogleEarth, Internet Tagged: 3d, Bremerhaven, columbuscenter, GoogleEarth, hafen, leuchtturm, modelle, radarturm <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=125&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2009/06/16/bremerhaven-mit-3d-gebauden-in-googleearth/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>

		<media:content url="http://hurikhan77.files.wordpress.com/2009/06/bhv.jpg?w=300" medium="image">
			<media:title type="html">Alter Hafen Bremerhaven in GoogleEarth mit 3D-Gebäuden, Sicht auf Radarturm</media:title>
		</media:content>
	</item>
		<item>
		<title>Basic Apache Performance Tips</title>
		<link>http://hurikhan77.wordpress.com/2009/06/12/basic-apache-performance-tips/</link>
		<comments>http://hurikhan77.wordpress.com/2009/06/12/basic-apache-performance-tips/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 20:36:24 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Administratorleben]]></category>
		<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Webserver]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[passenger]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[vhosting]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=116</guid>
		<description><![CDATA[Anyone mass-hosting virtual domains on apache knows the problems. Over the time I collected some basic and important performance tips which I want to give back to the community in aggregated form. Sorry, that I don&#8217;t remember all sources of information &#8211; so I will mention none. Google will help you. Here&#8217;s the list: Turn [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=116&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Anyone mass-hosting virtual domains on apache knows the problems. Over the time I collected some basic and important performance tips which I want to give back to the community in aggregated form. Sorry, that I don&#8217;t remember all sources of information &#8211; so  I will mention none. Google will help you. Here&#8217;s the list:<span id="more-116"></span></p>
<ol>
<li><strong>Turn off safe_mode if you are using php</strong> &#8211; it takes about 50-70% of script cpu time for no increased security if you are using mod_itk or other per-user solutions. Especially php scripts doing many file system lookups gain much from this. Instead configure open_base_dir properly.</li>
<li><strong>Combine your per-vhost logging into one monolithic site-wide log file.</strong> Just remove your CustomLog from all your vhosts and put it in the global context. Prepend your LogFormat with %v instead and use the apache-bundled split-logfile to split your logs into seperate files just before your statistics analyzer (e.g. webalizer, analog). This boosted performance by a magnitude of two on a 200-300 vhosts config.</li>
<li><strong>Use piped logging instead of direct file logging.</strong> It adds one process per log file but it gets you out of the need to rotate your logs and doing a pervasive sighup per log rotation. I found that sighup&#8217;ing your apache may accumulate orphaned apache-processes over time thus increasing pressure on the vm and bringing apache to its MaxClients limits. As a free gain it totally eliminates nightly restart-behaviour of fcgi and passenger applications. Combine this with point 2. Apache provides its own piped logger: rotatelogs.</li>
<li><strong>Don&#8217;t use mod_php with a threaded mpm</strong> as it tends to segfault. I&#8217;d recommend mod_itk as it allows per-user vhosting without fiddling with mod_fcgi or suphp which can become heavy duty for your apache server. Plus it enables you to use .htaccess which is common practice while suphp and php-cgi don&#8217;t. However, your mileage may vary. If you are hosting just a single or a few apps on php, a threaded mpm or mod_fcgi may be a more performant solution.</li>
<li><strong>Use mod_disk_cache</strong> and point it to a seperate disk/partition. Important: Be sure to set CacheDirLength to &#8220;2&#8243; and use a flat hierarchy (means use &#8220;CacheDirLevels 1&#8243;) as the htcacheclean run will take ages otherwise. You may wonder why I recommend mod_disk_cache over mod_mem_cache? Because mod_mem_cache doesn&#8217;t share caching between apache processes which in turn makes it nothing more than a memory hogger as it rarely serves the same file twice during the process life-time. Although mod_disk_cache does seemingly expensive file system accesses it greatly benefits from two facts: The cache is shared between all processes &#8211; even improved by the systems file cache. Not to forget: Apache can stream requests directly from the system disk cache using the kernels sendfile extension &#8211; bypassing user land and directly connecting the filesystem driver to your network driver. This whole setup is called &#8220;reverse proxying&#8221;. It is important to setup mod_disk_cache for each vhost seperatly or you will run into problems on per-user setups. Don&#8217;t forget to setup an ionice&#8217;d nightly cronjob for htcacheclean. You also need to load mod_cache (the frontend) to use mod_disk_cache (the backend).</li>
<li>To benefit from point 5&#8242;s full power you need your applications to <strong>setup appropriate Expires, Etag and Cache-Control headers</strong>. Use mod_expires to set this up for static and semi-static content. Side-note: Only Cache-Control &#8220;public&#8221; makes use of this mod_disk_cache (it&#8217;s solely client-side otherwise) &#8211; be sure to set it as long as your application&#8217;s security policies allow that.</li>
<li><strong>Don&#8217;t turn off Etag support in apache</strong> if you are serving off a single apache instance and local filesystem &#8211; although instructed to do so at other places. Etags work perfectly fine on such setups.</li>
<li><strong>Use mod_passenger to host rails, rack or wsgi</strong> (e.g. django) applications. Passenger watches current demands of your applications and spawns instances automatically or shuts them down. There&#8217;s no easier way to setup rails. And it&#8217;s fast. You may also want to use its &#8220;global queuing&#8221; feature. It probably beats proxy and fcgi solutions on apache although I didn&#8217;t benchmark it. I evaluated fcgi once before and failed fatally concerning performance.</li>
<li><strong>Turn off unused apache modules</strong> &#8211; e.g. mod_python, mod_ruby, and maybe also mod_perl. You probably don&#8217;t need them if you use cgi or passenger for these languages and thus make no sense to spawn them with every new process. That&#8217;s just waste of valuable resources.</li>
<li><strong>Use YSlow</strong> firefox plugin to evaluate your visitors experience &#8211; especially the network module.</li>
<li><strong>Split off logging and caching to seperate partitions</strong> (preferrably physically seperate).</li>
<li><strong>Watch memory usage of your apache processes.</strong> It tends to accumulate on graceful restarts or wrongly set MaxClients settings. Tune the settings until it feels right. To be on the safe side you can setup something like munin to watch the load avg and memory usage of apache and do an emergency full restart of apache in case it is exceeding limits. Keep in mind that it is perfectly fine to exceed the limits for short times so don&#8217;t set the limits too low and don&#8217;t watch a too short time span.</li>
<li><strong>Setup mysql to allow to support your MaxClients setting</strong> and allow persistent connections. Current mysql versions support a huge pile of parallel connections without performance problems. Go <a title="MySQL Performance Blog" href="http://www.mysqlperformanceblog.com/" target="_blank">read the mysql performance blog</a> for further improvement on this point. It&#8217;s a valuable source of information.</li>
</ol>
<br />Veröffentlicht in Administratorleben, FastCGI, MySQL, PHP, Ruby, Ruby on Rails, Security, Webserver Tagged: apache, logging, MySQL, passenger, performance, PHP, rails, Ruby, vhosting <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=116&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2009/06/12/basic-apache-performance-tips/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>Gerade aktuell: Abzocke im Internet</title>
		<link>http://hurikhan77.wordpress.com/2009/06/04/gerade-aktuell-abzocke-im-internet/</link>
		<comments>http://hurikhan77.wordpress.com/2009/06/04/gerade-aktuell-abzocke-im-internet/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 01:12:00 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Abzocke]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Jugendliche]]></category>
		<category><![CDATA[Internet-Falle]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=106</guid>
		<description><![CDATA[Ein jugendlicher Bekannter schrieb mich gerade an, daß er von 99downloads abgezockt wurde. Dort wird ihm unterstellt, unter Angabe falscher Daten einen offensichtlichen Betrugsversuch begangen zu haben. Belegt wird das ganze mit der offensichtlich richtigen IP. Es geht um 60€ zzgl. Mahngebühren. Die Aufforderung sei die letzte außergerichtliche Mahnung. Außerdem würde die Mail auf dem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=106&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ein jugendlicher Bekannter schrieb mich gerade an, daß er von <strong>99downloads</strong> abgezockt wurde. Dort wird ihm unterstellt, unter Angabe falscher Daten einen offensichtlichen Betrugsversuch begangen zu haben. Belegt wird das ganze mit der offensichtlich richtigen IP. Es geht um 60€ zzgl. Mahngebühren. Die Aufforderung sei die letzte außergerichtliche Mahnung. Außerdem würde die Mail auf dem E-Mail-Weg zugestellt werden, weil die postalische Adresse offensichtlich nicht stimmt. Tja, Harry Potter soll nun verklagt werden.<span id="more-106"></span></p>
<p>Denn mein Bekannter ist als Jugendlicher völlig zurecht möglichst anonym im Internet unterwegs. Man gibt möglichst nirgends den richtigen Namen an, und erst recht nicht die richtige Adresse oder das Geburtsdatum. Das Recht hat er sich auch bei 99downloads genommen. Auf die entstehenden Kosten wird nur beiläufig am Seitenrand hingewiesen, zwischen irrelevanten und uninteressanten Produktdaten (Name, Hersteller, Sprache etc) und einem riesigen &#8220;100% Virenfrei&#8221; Banner. Bitte, wer liest denn da noch den kleinen Text dazwischen? Die ganze Aufmerksamkeit wird auf das großflächige Anmeldeformular links gelenkt &#8211; Name, Geburtsdatum, E-Mail und das übliche Blabla mit AGBs, das eh jeder aus Gewohnheit schon anklickt.</p>
<p style="text-align:center;"><img class="size-full wp-image-108 alignnone" title="99downloads" src="http://hurikhan77.files.wordpress.com/2009/06/99downloads.png?w=780" alt="99downloads"   /></p>
<p>Als Belohnung gibt es eine E-Mail, die ich nicht gesehen habe, aber an der sicher an prominenter Stelle der Anmeldelink steht und irgendwo weit unten nochmal eine AGB-Textwüste &#8211; aber bestimmt kein deutlicher Hinweis auf die entstehenden Kosten und ein Abo über 12 Monate. (Quelle: [1] <a href="http://www.verbraucherschutz.tv/internet/99downloadsde" target="_blank">http://www.verbraucherschutz.tv/internet/99downloadsde</a>)</p>
<p><strong>Widersprüchlich ist bei genauerer Betrachtung:</strong></p>
<ol>
<li>Das Widerrufsrecht verfällt mit Anklicken des Links. Ich dachte, das wäre 14 Tage in Deutschland?</li>
<li>Die Dienste können erst nach Vorauskasse genutzt werden laut verschleiertem Text auf dem Anmeldeformular. Aha? Aber die E-Mail kam sofort, und das Widerrufsrecht verfällt mit anklicken des Links und der Vertrag wird dadurch gültig? Das ist ja interessant.</li>
<li>War ja klar, daß das sofort in einer Mahnung münden muß. Die Rechnung konnte schließlich nicht postalisch zugestellt werden.</li>
</ol>
<p><strong>Grundsätzlich empfehle ich hier folgendes, rein prophylaktisch:</strong></p>
<ol>
<li>Einen Browser verwenden, der solche Seiten vorab über einen Filter prüft und Werbung ausblendet, z.B. Firefox mit <a href="https://addons.mozilla.org/de/firefox/addon/1865" target="_blank">AdBlock-Plugin</a> und <a href="https://addons.mozilla.org/de/firefox/addon/3456" target="_blank">WOT-Plugin (Web of Trust)</a>. [3]</li>
<li>Nicht auf blinkende Werbung gucken und Download-Portalen immer kritisch gegenüber stehen. Lieber den Hersteller ermitteln über Google und Vergleich mehrerer Download-Seiten. Direkt beim Hersteller gibt es die Software dann meist ohne Zwangsregistrierung und kostenlos.</li>
<li>Video-Codecs muß man normalerweise nicht herunterladen. Und den Flashplayer kann meist jeder Browser selbst installieren ohne Link auf bunte Downloadseiten (im Zweifelsfall einen anderen Browser testen).</li>
<li>Das <a href="http://pack.google.de/" target="_blank">Google-Pack</a> kann einen Haufen nützliche Alltagssoftware in einem Rutsch ohne lästige Zwischendialoge installieren und ohne Angaben von Benutzerdaten und hält diese sogar auf dem aktuellen Stand (naja, zumindest halbwegs). Ist einen Blick wert&#8230;</li>
</ol>
<p><strong>Konkret wäre hier wohl am ehesten folgendes zu empfehlen:</strong></p>
<ol>
<li>Auf Mahnungen und Inkasso-Schreiben nicht reagieren &#8211; vor allem nicht, wenn denen die Postadresse und der richtige Name nicht bekannt ist. Solange keine Aufforderung von Gericht kommt (per Post!, nicht per E-Mail), hat das weder Hand noch Fuß und verläuft sich meist im Sande.</li>
<li>Den E-Mail-Absender blockieren.</li>
<li>Falls man noch nicht volljährig ist, können die Eltern eine Erklärung über die Rückgängigmachung des ungewollten Vertrages fordern &#8211; ein angeblich verfallenes Widerrufsrecht ist dann irrelevant.</li>
<li>Keine Sorge wegen der IP &#8211; die Kundendaten müssen in einem langen und teuren gerichtlichen Verfahren eingefordert werden bei eurem Provider. Das lohnt den Aufwand meist nicht, so daß die Sache eh im Sand verläuft und außer Drohgebärden nichts passiert.</li>
<li>Im Falle solcher Preisverschleierungstaktiken haben die Kläger keine Chance, euch ans Hemd zu gehen. Die Aussichten auf einen Sieg vor Gericht sind so gering, daß keine kostenverursachenden Verfahren angefangen werden &#8211; schon gar nicht für 60€.</li>
</ol>
<p><strong>Ganz anders sieht es dagegen aus</strong>, wenn ihr wissentlich unter Angabe falscher Daten einen kostenpflichtigen Dienst in Anspruch nehmt &#8211; nicht auf Mahnungen zu reagieren, ist also kein Freifahrtschein. Es kommt immer auf die Situation und die Vorgeschichte an. Bewahrt deshalb alles auf (E-Mails von der Anmeldung, Screenshots) und holt euch damit eine zweite Meinung ein.</p>
<p><strong>Nachdem das geklärt wäre</strong>, möchte ich mir doch in eigener Sache nochmal die Formulierung der Webseite zu Gemüte führen:</p>
<blockquote><p>Auf 99downloads.de finden Sie 99 der aktuellsten Downloads gängiger Internet Free- und Software. Nach der Anmeldung zu unserem Service steht Ihnen der direkte und indirekte Download der gewünschten Software zur Verfügung. In unserem Angebot finden Sie gängige Internet-Browser, aktuelle Grafik-Programme, lizenzfreie Office-Programme und Medientools. Wir verlinken Sie direkt auf die Seite des Herstellers und stellen Ihnen prägnante Informationen rund um das jeweilige Programm zur Verfügung.</p></blockquote>
<p>Hust! Ich soll für einen Dienst, der mir 99 Download-Links zu <strong>direkt zu den Herstellern</strong> bietet 60€ pro Jahr berappen? Mensch, ich könnte richtig Kohle machen, wenn ich auf meiner Seite dafür nur 2€ pro Monat nehmen würde &#8211; monatlich kündbar. Tztz&#8230;</p>
<p>Weiter bezweifle ich, daß es soetwas wie <strong>&#8220;lizenzfreie Office-Programme&#8221;</strong> gibt. Gemeint ist hier wahrscheinlich <strong>OpenOffice, GIMP, Firefox</strong> und Co. Und ich bin mir ziemlich sicher, daß diese Software unter einer <strong>freien Lizenz wie der GPL oder ähnlich</strong> steht &#8211; also keineswegs lizenzfrei. Was hier wahrscheinlich gemeint war, aber verschleiert werden sollte: &#8220;Entschuldigen Sie, daß wir Sie für diese kostenlose (nicht lizenzfreie) Software um 60€ ärmer machen wollen &#8211; aber wir halten Sie einfach für zu dumm und uns zu schlau.&#8221;</p>
<p><strong>Psychologisch betrachtet</strong></p>
<p>Hat sich schon jemand Gedanken gemacht, in welche Situation gerade Kinder mit dieser Art Drohungen gebracht werden? Stichworte wie &#8220;Gericht&#8221;, &#8220;Strafverfahren&#8221;, &#8220;Mahnung&#8221;, &#8220;zusätzliche Kosten&#8221;, &#8220;Inkasso&#8221; und Verweise auf Pseudo-Urteile sind nicht gerade das, womit ein Kind gern vor seine Eltern tritt. Alles ist gut genug formuliert, das sogar Erwachsene Probleme haben, die Situation richtig einzuschätzen, aber dennoch verständlich wird, wie &#8220;ernst&#8221; die Lage ist. Womöglich wird das Geld noch irgendwie heimlich aufgetrieben, damit die Eltern nichts erfahren und man sie dort nicht auch noch mit hineinzieht. An schlimmere Dinge, die sich ein Kind in einer solchen Situation antun könnte, möchte ich gar nicht denken.</p>
<p><strong>Postscriptum</strong></p>
<p>Bitte geht auf solche Abzockermaschen mit Drohgebärden nicht ein. Tätig werden muß man erst bei einem richterlichen Beschluß. Nehmt keinen Kontakt mit dem Rechnungssteller auf, da dieser oftmals erst dann Euren richtigen Namen und die richtige Adresse erfährt &#8211; oder zumindest genug Daten, um das dann rauszubekommen. Eine Beschwerde über die Abzockerei bei der Bank, an welche man auf ein dort geführtes Konto diese Rechnung begleichen soll, kann allerdings helfen. Falls ihr noch nicht volljährig seid, wendet euch an eure Eltern. Diese können den Vertrag außerdem für unwirksam erklären lassen. Bewahrt alles auf, Screenshots, E-Mails, &#8230; &#8211; so könnt ihr jedem zeigen, wie leicht man abgezockt werden kann und daß es absolut nicht eure Schuld ist.</p>
<p><em>Die oben genannten Texte stellen meine persönliche Meinung dar und sind aus Wut (da meine Familie auch selbst schon einmal betroffen war) sicher etwas spitz formuliert und sehr zielgerichtet auf 99downloads. Aber der Text läßt sich ganz leicht allgemein auf Abzockfallen im Internet abbilden und gilt daher auch für Hausaufgabenverzeichnisse, Lebenszeitberechnungen, andere kostenpflichtige &#8220;Downloadverzeichnisse&#8221;, Verkauf geistigen Eigentums Dritter </em><em>(welche dieses anderweitig kostenlos darbieten, z.B. Opensource, Freeware)</em><em> ohne jeglichen Eigenaufwand in Form von Support/Druck einer Anleitung/sonstiges Engagement&#8230; Die Liste könnte sicher noch einige Zeit so weiter gehen.</em></p>
<p>Weitere Quellen:</p>
<p>[1] <a href="http://www.verbraucherschutz.tv/internet/99downloadsde" target="_blank">http://www.verbraucherschutz.tv/internet/99downloadsde</a><br />
[2] <a href="http://jugendinfo.de/themen.php/_/28097/abzocke-im-internet.html" target="_blank">http://jugendinfo.de/themen.php/_/28097/abzocke-im-internet.html</a><br />
[3] <a href="https://addons.mozilla.org/de/firefox/" target="_blank">https://addons.mozilla.org/de/firefox/</a></p>
<br />Veröffentlicht in Abzocke, Internet, Jugendliche Tagged: Abzocke, Internet-Falle <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=106&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2009/06/04/gerade-aktuell-abzocke-im-internet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>

		<media:content url="http://hurikhan77.files.wordpress.com/2009/06/99downloads.png" medium="image">
			<media:title type="html">99downloads</media:title>
		</media:content>
	</item>
		<item>
		<title>AdoDBRecord updated to version 0.5</title>
		<link>http://hurikhan77.wordpress.com/2009/02/05/adodbrecord-updated-to-version-05/</link>
		<comments>http://hurikhan77.wordpress.com/2009/02/05/adodbrecord-updated-to-version-05/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 19:20:07 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[AdoDBRecord]]></category>
		<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[AdoDB]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toolkit]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=96</guid>
		<description><![CDATA[This update of AdoDBRecord adds vastly improved functionality to the framework: The most interesting features are associations and association proxies. Customization is another important feature which makes the framework easier adoptable to legacy applications. The finder API has been reworked to accept options and is more flexible now. This will be improved even more during [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=96&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This update of <a href="http://hurikhan77.wordpress.com/2008/07/21/activerecord-look-alike-written-in-php-using-adodb/">AdoDBRecord</a> adds vastly improved functionality to the framework: The most interesting features are associations and association proxies. Customization is another important feature which makes the framework easier adoptable to legacy applications. The finder API has been reworked to accept options and is more flexible now. This will be improved even more during the next versions. You can access properties directly now instead of using the attributes array or functions. The association proxies make use of this &#8211; they act like properties. Models can be scoped now to provide standard finder options.</p>
<p><a href="http://wiki.github.com/kakra/adodbrecord">Read more in the wiki&#8230;</a></p>
<br />Veröffentlicht in AdoDBRecord Tagged: ActiveRecord, AdoDB, API, Database, Framework, PHP, Programming, Toolkit <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=96&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2009/02/05/adodbrecord-updated-to-version-05/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>AdoDBRecord updated to version 0.4</title>
		<link>http://hurikhan77.wordpress.com/2008/08/28/adodbrecord-updated-to-version-04/</link>
		<comments>http://hurikhan77.wordpress.com/2008/08/28/adodbrecord-updated-to-version-04/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 08:08:21 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[AdoDBRecord]]></category>
		<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[AdoDB]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toolkit]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=77</guid>
		<description><![CDATA[This update of AdoDBRecord adds many functions like STI, testing framework, compatibility to both PHP4 and PHP5, inflectotion framework and inflectors, and some more. Read more in the wiki&#8230;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=77&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This update of <a href="http://hurikhan77.wordpress.com/2008/07/21/activerecord-look-alike-written-in-php-using-adodb/">AdoDBRecord</a> adds many functions like STI, testing framework, compatibility to both PHP4 and PHP5, inflectotion framework and inflectors, and some more.</p>
<p><a href="http://github.com/kakra/adodbrecord/wikis">Read more in the wiki&#8230;</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hurikhan77.wordpress.com/77/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hurikhan77.wordpress.com/77/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=77&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2008/08/28/adodbrecord-updated-to-version-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>SecurePoint Appliances: Paßwort zurücksetzen</title>
		<link>http://hurikhan77.wordpress.com/2008/08/18/securepoint-appliances-paswort-zurucksetzen/</link>
		<comments>http://hurikhan77.wordpress.com/2008/08/18/securepoint-appliances-paswort-zurucksetzen/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 10:43:18 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Administratorleben]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SecurePoint]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=71</guid>
		<description><![CDATA[Aktuelle SecurePoint-Appliances bringen nicht mehr die Standard-Linux-Umgebung mit Befehlen wie &#8220;passwd&#8221; und ähnlich mit sich. Hier das Paßwort zurückzusetzen gestaltet sich als schwierig; hinzukommt, daß die kleineren Appliances keinen Monitor- und Tastaturanschluß besitzen und zudem von CompactFlash booten. Der serielle Anschluß gibt zwar die Linux-Konsole aus, jedoch erst, wenn der Kernel läuft. Um die Paßwörter [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=71&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Aktuelle <a href="http://www.securepoint.de/">SecurePoint-Appliances</a> bringen nicht mehr die Standard-Linux-Umgebung mit Befehlen wie &#8220;passwd&#8221; und ähnlich mit sich. Hier das Paßwort zurückzusetzen gestaltet sich als schwierig; hinzukommt, daß die kleineren Appliances keinen Monitor- und Tastaturanschluß besitzen und zudem von CompactFlash booten. Der serielle Anschluß gibt zwar die Linux-Konsole aus, jedoch erst, wenn der Kernel läuft. Um die Paßwörter der Datenbank ändern zu können, muß man jedoch die Appliance im Restore-Mode booten &#8211; außer man möchte seine Konfiguration verlieren. In letzterem Fall kann man natürlich per Rescue-Image neu installieren.</p>
<p>Das wollte ich allerdings nicht (war relativ aufwändig und gewachsen). Der Trick war, die CF-Karte auszubauen und in einen USB-Kartenleser einzubauen. Als nächstes benötigt man <a href="http://www.virtualbox.org/">VirtualBox</a>. Man richtet nun in VirtualBox ein virtuelles Festplatten-Image mit Verweis auf ein echtes Device ein. Das geht allerdings nicht über die GUI. Deshalb wechselt man ins Verzeichnis <em>~/.VirtualBox/VDI</em> und gibt nun dort folgenden Befehl ein:</p>
<p><code>VBoxManage internalcommands createrawvmdk -filename "SecurePointDisk1.vmdk" -rawdisk /dev/sdc -register</code></p>
<p><em>&#8220;/dev/sdc&#8221;</em> ist hier durch das Device der eingelegten CF-Karte zu ersetzen. Da dies in der Regel nur als <em>&#8220;root&#8221;</em> zugreifbar ist, muß man entweder VirtualBox als <em>root</em> starten (würde ich <span style="text-decoration:underline;">nicht</span> machen) oder den Eigentümer des Devices mittels <em>&#8220;chown&#8221;</em> auf den eigenen User umbiegen (würde ich empfehlen). Wichtig ist: <span style="text-decoration:underline;">Keinesfalls die CF-Karte irgendwie mounten!</span></p>
<p>Nun legen wir eine virtuelle Maschine über die VirtualBox-GUI an. Dort verbinden wir den <em>&#8220;Primary Master&#8221;</em> mit der eben angelegten <em>&#8220;SecurePointDisk1&#8243;</em>. Weiter dürfen keine IDE-Geräte verbunden werden &#8211; auch keine CD. Das Image booten wir nun. Nun geht es größtenteils <a href="http://www.securepoint.de/support/topic.php?id=566">nach Leitfaden von SecurePoint</a> weiter:</p>
<p>Im Grub-Menü muß der zweite Menüpunkt (&#8220;change configuration&#8221;) gewählt werden. Aber bitte noch nicht starten, sondern erst mit Tastendruck auf &#8220;e&#8221; editieren. Am Ende der Kernelzeile müssen wir den <em>Primary Master</em> auf den <em>Secondary Master</em> umbiegen, da sich dieser nicht in VirtualBox verbinden läßt, SecurePoint hier aber die CF-Karte erwartet. Dazu ergänzen wir folgendes:</p>
<p><em>&#8220;ide0=0x1e8,0x3ee,14&#8243;</em> (brauchen wir gleich noch einmal)</p>
<p>Nun eine Leerzeile am Ende der Liste anfügen und in dieser <em>Ctrl+X</em> drücken. Das Image bootet nun. Der Name der zu bootenden Konfiguration ist <em>&#8220;none&#8221;</em>. Den Namen der anderen Konfiguration bitte notieren &#8211; wir brauchen ihn gleich. Wahrscheinlich heißt sie <em>&#8220;wizard&#8221;</em>. Nun die Konfiguration <em>&#8220;none&#8221;</em> booten. Die Appliance ändert die Boot-Parameter und startet neu. Diesmal den ersten Grub-Menüpunkt booten &#8211; nicht vergessen, wieder den Parameter <em>&#8220;ide0=&#8230;&#8221;</em> zu ergänzen<em>.</em></p>
<p>Am Ende des Boot-Vorgangs dauert es ggf. ein paar Sekunden, bis die Netzwerk-Geräte konfiguriert sind &#8211; kurz warten also, es stört sonst die Eingabe. Jetzt mit User <em>&#8220;admin&#8221;</em> und Paßwort <em>&#8220;insecure&#8221;</em> anmelden. Man befindet sich nun auf der CLI.</p>
<p>Hier kann mit dem Befehl <em>&#8220;config load&#8221;</em> die richtige Konfiguration geladen werden, das Paßwort nach Anleitung von SecurePoint mit <em>&#8220;change user&#8221;</em> geändert werden (für <em>&#8220;admin&#8221;</em>) und die Konfiguration anschließend gespeichert (<em>&#8220;config save&#8221;</em>) und als aktiv gesetzt (<em>&#8220;config set&#8221;</em>) werden.</p>
<p>Jetzt kann die Appliance mit <em>&#8220;reboot&#8221;</em> neu gebootet werden und wir lassen sie zum Test einmal komplett in VirtualBox hochfahren (bitte wieder <em>&#8220;ide0=&#8230;&#8221;</em> ergänzen) und versuchen uns einzuloggen. Alles sollte nun wieder klappen und wir können VirtualBox beenden und die Karte wieder im Gerät einbauen.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hurikhan77.wordpress.com/71/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hurikhan77.wordpress.com/71/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=71&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2008/08/18/securepoint-appliances-paswort-zurucksetzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>AdoDBRecord updated to version 0.3</title>
		<link>http://hurikhan77.wordpress.com/2008/07/28/adodbrecord-updated-to-version-03/</link>
		<comments>http://hurikhan77.wordpress.com/2008/07/28/adodbrecord-updated-to-version-03/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 13:14:23 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[AdoDBRecord]]></category>
		<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[AdoDB]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toolkit]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=66</guid>
		<description><![CDATA[This update to AdoDBRecord incorporates a convenience method update_attributes() which updates and saves the record comfortably in one pass and returns the result of save() back to the caller. Read more in the wiki&#8230;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=66&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This update to <a href="http://hurikhan77.wordpress.com/2008/07/21/activerecord-look-alike-written-in-php-using-adodb/">AdoDBRecord</a> incorporates a convenience method update_attributes() which updates and saves the record comfortably in one pass and returns the result of save() back to the caller.</p>
<p><a href="http://github.com/kakra/adodbrecord/wikis">Read more in the wiki&#8230;</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hurikhan77.wordpress.com/66/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hurikhan77.wordpress.com/66/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=66&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2008/07/28/adodbrecord-updated-to-version-03/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>Ehemaligenfest an der CvO</title>
		<link>http://hurikhan77.wordpress.com/2008/07/25/ehemaligenfest-an-der-cvo/</link>
		<comments>http://hurikhan77.wordpress.com/2008/07/25/ehemaligenfest-an-der-cvo/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 10:48:01 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Feste]]></category>
		<category><![CDATA[Freunde]]></category>
		<category><![CDATA[Schule]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=46</guid>
		<description><![CDATA[Am 2. Oktober 2008 findet um 19 Uhr am Bremerhavener Oberstufengymnasium &#8220;Carl von Ossietzky&#8221; das dritte Ehemaligenfest statt. Noch bin ich mir nicht schlüssig, ob ich hingehe. Aber ehemalige Schuldkameraden dürfen mich in der Kommentarfunktion gern davon überzeugen. Flyer-Download<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=46&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Am 2. Oktober 2008 findet um 19 Uhr am Bremerhavener Oberstufengymnasium &#8220;Carl von Ossietzky&#8221; das dritte Ehemaligenfest statt. Noch bin ich mir nicht schlüssig, ob ich hingehe. Aber ehemalige Schuldkameraden dürfen mich in der Kommentarfunktion gern davon überzeugen. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><a title="http://www.stabi.hs-bremerhaven.de/cvo-gyo/pe/index.php?module=downloads&amp;action=download&amp;id=175" href="http://www.stabi.hs-bremerhaven.de/cvo-gyo/pe/index.php?module=downloads&amp;action=download&amp;id=175">Flyer-Download</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hurikhan77.wordpress.com/46/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hurikhan77.wordpress.com/46/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=46&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2008/07/25/ehemaligenfest-an-der-cvo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>AdoDBRecord updated to version 0.2</title>
		<link>http://hurikhan77.wordpress.com/2008/07/25/adodbrecord-updated-to-version-02/</link>
		<comments>http://hurikhan77.wordpress.com/2008/07/25/adodbrecord-updated-to-version-02/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 10:15:54 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[AdoDBRecord]]></category>
		<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[AdoDB]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toolkit]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=56</guid>
		<description><![CDATA[AdoDBRecord has been updated to version 0.2. This update incorporates delete(), destroy() and create() methods and thus makes it more usable. Read more in the wiki&#8230;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=56&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://hurikhan77.wordpress.com/2008/07/21/activerecord-look-alike-written-in-php-using-adodb/">AdoDBRecord</a> has been updated to version 0.2. This update incorporates delete(), destroy() and create() methods and thus makes it more usable.</p>
<p><a href="http://github.com/kakra/adodbrecord/wikis">Read more in the wiki&#8230;</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hurikhan77.wordpress.com/56/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hurikhan77.wordpress.com/56/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/56/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/56/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=56&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2008/07/25/adodbrecord-updated-to-version-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>ActiveRecord look-alike written in PHP using AdoDB</title>
		<link>http://hurikhan77.wordpress.com/2008/07/21/activerecord-look-alike-written-in-php-using-adodb/</link>
		<comments>http://hurikhan77.wordpress.com/2008/07/21/activerecord-look-alike-written-in-php-using-adodb/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 16:05:51 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[ActiveRecord]]></category>
		<category><![CDATA[AdoDB]]></category>
		<category><![CDATA[AdoDBRecord]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Toolkit]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=48</guid>
		<description><![CDATA[Since I developed with Rails using the ultra-comfortable ActiveRecord I felt the need for a similar solution in PHP. Googling around I found some people saying this is impossible. That&#8217;s true: Ruby&#8217;s OOP implementation is in many ways superior to PHP&#8217;s. But anyway I decided: Some of ActiveRecords comfort must be possible in PHP. I&#8217;ve [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=48&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Since I developed with Rails using the ultra-comfortable ActiveRecord I felt the need for a similar solution in PHP. Googling around I found some people saying this is impossible. That&#8217;s true: Ruby&#8217;s OOP implementation is in many ways superior to PHP&#8217;s.</p>
<p>But anyway I decided: Some of ActiveRecords comfort must be possible in PHP. I&#8217;ve decided to build on AdoDB for PHP since it already does the heavy lifting of database abstraction very good.</p>
<p>The interface is currently very limited and should be very self explanatory. For all interested hackers I&#8217;ve set up a git repository at <a href="http://github.com/kakra/adodbrecord/">GitHub</a> and would be very interested on your feedback.</p>
<p>This project grew out of the need to ease up database development in an already existing legacy application. It&#8217;s not meant as an exact ActiveRecord replacement in PHP &#8211; just similar in convenience.</p>
<p>Just follow this link: <a href="http://github.com/kakra/adodbrecord/">http://github.com/kakra/adodbrecord/</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hurikhan77.wordpress.com/48/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hurikhan77.wordpress.com/48/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/48/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/48/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=48&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2008/07/21/activerecord-look-alike-written-in-php-using-adodb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>Ruby-Scripte mittels FCGI unter Lighttpd ausführen</title>
		<link>http://hurikhan77.wordpress.com/2008/05/08/ruby-scripte-mittels-fcgi-unter-lighttpd-ausfuhren/</link>
		<comments>http://hurikhan77.wordpress.com/2008/05/08/ruby-scripte-mittels-fcgi-unter-lighttpd-ausfuhren/#comments</comments>
		<pubDate>Thu, 08 May 2008 20:11:47 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=47</guid>
		<description><![CDATA[Im Netz habe ich nach einer längeren Google-Recherche endlich einen universellen FCGI-Wrapper für Ruby-Scripte gefunden. Meistens stößt man nur auf Rails-Lösungen, aber das war einfach Overkill in diesem Fall. Ich wollte einfach nur ein kleines Script, daß Query-Parameter einem Kunden zuordnet und mittels ActiveRecord in eine Tabelle schreibt. Anschließend sollte ein ActionMailer noch eine Mail [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=47&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Im Netz habe ich nach einer längeren Google-Recherche endlich einen universellen FCGI-Wrapper für Ruby-Scripte gefunden. Meistens stößt man nur auf Rails-Lösungen, aber das war einfach Overkill in diesem Fall. Ich wollte einfach nur ein kleines Script, daß Query-Parameter einem Kunden zuordnet und mittels ActiveRecord in eine Tabelle schreibt. Anschließend sollte ein ActionMailer noch eine Mail versenden. Gestoßen bin ich letztenendes auf folgende Seite:</p>
<p><a title="http://derrick.pallas.us/ruby-cgi/" href="http://derrick.pallas.us/ruby-cgi/">FastCGI Ruby dispatcher</a>:</p>
<blockquote><p>There was always Ruby on Rails, but I didn&#8217;t want an application server, just applications. To that end, I created a very lightweight FastCGI server that executes Ruby scripts referenced by lighttpd directly in a binding context that only imports the CGI object for the request. <a href="http://derrick.pallas.us/">(Derrick Pallas)</a></p></blockquote>
<p>Also genau das, was ich haben wollte. Funktionierte auch auf Anhieb prima. Aber nur der erste Aufruf liefert die Parameter wirklich an mein Script aus. Beim zweiten Aufruf bleibt der Parameter-Hash leer. Das ist der Codeschnippsel bisher:</p>
<p><code>#!/usr/bin/env ruby</code></p>
<p><code>puts cgi.header</code></p>
<p><code>require 'yaml'<br />
require 'rubygems'<br />
require 'active_record'<br />
require 'action_mailer'</code></p>
<p><code>[...]</code></p>
<p><code>ActiveRecord::Base.logger = Logger.new(STDERR)<br />
ActiveRecord::Base.colorize_logging = false</code></p>
<p><code>config = YAML.load_file('.../database.yml')<br />
ActiveRecord::Base.establish_connection(config['...'])</code></p>
<p><code>params = cgi.params.select { |q,| %w{system keyword udh smstext absender time client}.include? q }<br />
params = Hash[*params.flatten]</code></p>
<p><code>[...]</code></p>
<p>Einige Dinge hab ich jetzt mal bewußt weggelassen und nur das grundsätzliche Gerüst übergelassen. Sobald ich den Bug &#8211; falls es einer ist &#8211; gelöst habe, erscheint hier nochmal Feedback. Außerdem stellt sich mir noch die Frage, ob der FCGI-Wrapper so in dieser Weise wirklich einen Performance-Gewinn darstellt. Immerhin läd er die FCGI-Klasse im Voraus und hält einmal geöffnete Scripte als MMap-Objekte bereit. Der eigentliche Boot-Vorgang des Scripts (ActiveRecord initialisieren) wird aber jedes Mal ausgeführt. Hier ist Rails dann eben doch spezialisierter.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hurikhan77.wordpress.com/47/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hurikhan77.wordpress.com/47/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=47&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2008/05/08/ruby-scripte-mittels-fcgi-unter-lighttpd-ausfuhren/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
		<item>
		<title>Mehrere Rails-Anwendungen pro VHost auf Lighttpd</title>
		<link>http://hurikhan77.wordpress.com/2008/04/17/mehrere-rails-anwendungen-pro-vhost-auf-lighttpd/</link>
		<comments>http://hurikhan77.wordpress.com/2008/04/17/mehrere-rails-anwendungen-pro-vhost-auf-lighttpd/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 12:56:49 +0000</pubDate>
		<dc:creator>hurikhan77</dc:creator>
				<category><![CDATA[Administratorleben]]></category>
		<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://hurikhan77.wordpress.com/?p=45</guid>
		<description><![CDATA[Wer es schonmal versucht hat, Ruby on Rails unter Lighttpd zum Laufen zu bekommen, wird wissen, daß dies im Prinzip super einfach ist. Sobald man aber eine Rails-Anwendung in einem Unterverzeichnis der Domain laufen lassen möchte, bekommt man gewaltige Kopfschmerzen. Alle googlebaren Tricks führen entweder dazu, daß man beim Deployment Code ändern muß, böse Hacks [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=45&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Wer es schonmal versucht hat, Ruby on Rails unter Lighttpd zum Laufen zu bekommen, wird wissen, daß dies im Prinzip super einfach ist. Sobald man aber eine Rails-Anwendung in einem Unterverzeichnis der Domain laufen lassen möchte, bekommt man gewaltige Kopfschmerzen. Alle googlebaren Tricks führen entweder dazu, daß man beim Deployment Code ändern muß, böse Hacks in den Routen vornehmen muß oder an Stellen Hack&#8217;s einbaut, die nicht nötig sind.</p>
<p>Sogar Lighttpd selbst bringt einen solchen Hack mit, der beim Request das Prefix von der URL entfernt und dem Rails-Dispatcher so vorgauckelt, er würde im Hauptverzeichnis laufen. Dies führt zwar dazu, daß die Routen richtig erkannt werden, dafür muß bei allen Links in den Templates das Prefix manuell ergänzt werden. Kategorie: Buh! *thumbsdown* Die Idee war für mich gestorben.</p>
<p>Der nächste Hack führt eine Variable ein, die je nach Situation im Rails-Quellcode entweder gesetzt oder eben wieder gelöscht wird, um den Routen-Generator und den Routen-Parser zu überlisten. Auf so einen Blödsinn hatte ich keine Lust.</p>
<p>Nach dem Studium des Quellcodes fand ich heraus, daß es eine Variable RAILS_RELATIVE_URL_ROOT gibt, die man im Environment selbst setzen kann und die unter Apache sogar per Autodetect durch Rails selbst gesetzt wird. Weil Lighttpd aber etwas anders funktioniert, ist das dort nicht einsetzbar.</p>
<p>Anders gesprochen: Wenn ich also diese Variable händisch setze, müßte Rails ja damit klar kommen. Ist leider nicht so, Rails weiß überhaupt nichts davon, daß diese Variable gesetzt ist, wenn man den dokumentierten Weg für die Einstellungen des FCGI-Servers geht:</p>
<p><code> 9 fastcgi.server = (<br />
10       ".fcgi" =&gt; (<br />
11             "localhost" =&gt; (<br />
12                   "min-procs" =&gt; 1,<br />
13                   "max-procs" =&gt; 5,<br />
14                   "socket" =&gt; approot + appname + "/tmp/lighttpd.socket",<br />
15                   "bin-path" =&gt; "/usr/bin/ruby " + approot + appname + "/public/dispatch.fcgi",<br />
16                   "bin-environment" =&gt; ( "RAILS_ENV" =&gt; "production", "RAILS_RELATIVE_URL_ROOT" =&gt; "/" + appname ))))</code></p>
<p>Dies ist wegen einer schlecht dokumentierten Eigenschaft des FCGI-Protokolls zum Scheitern verurteilt, da der Rails-FCGI-Dispatcher zum Zeitpunkt der Ausführung keinen Zugriff auf diese Variable mehr hat. Der Trick ist, die Variable aus dem &#8220;bin-environment&#8221;-Array herauszunehmen und mit dem Lighttpd-Modul &#8220;mod_setenv&#8221; zu setzen. Der komplette Code-Schnippsel für die Rails-Konfiguration in Lighttpd sieht dann wie folgt aus:</p>
<p><code> 5 server.error-handler-404 = "/" + appname + "/dispatch.fcgi"<br />
6 alias.url = ( "/" + appname =&gt; approot + appname + "/public" )<br />
7 index-file.names = ( "index.html", "dispatch.fcgi" )<br />
8 setenv.add-environment = ( "RAILS_RELATIVE_URL_ROOT" =&gt; "/" + appname )<br />
9 fastcgi.server = (<br />
10       ".fcgi" =&gt; (<br />
11             "localhost" =&gt; (<br />
12                   "min-procs" =&gt; 1,<br />
13       "max-procs" =&gt; 5,<br />
14                   "socket" =&gt; approot + appname + "/tmp/lighttpd.socket",<br />
15                   "bin-path" =&gt; "/usr/bin/ruby " + approot + appname + "/public/dispatch.fcgi",<br />
16                   "bin-environment" =&gt; ( "RAILS_ENV" =&gt; "production" ))))</code></p>
<p>Den etwas umständlichen &#8220;bin-path&#8221;-Aufruf führe ich so aus, damit sich Grsec und PaX im Kernel eines Hardened-Linux nicht über Ausführungsrechte in einem potentiell unsicheren Verzeichnis beschweren. Andere Lighttpd-Rails-Beispiele im Netz starten hier direkt den FCGI-Dispatcher ohne den Interpreter explizit anzugeben. Die Variablen &#8220;approot&#8221; und &#8220;appname&#8221; sind vorher entsprechend zu besetzen. Auch &#8220;server.document-root&#8221; sollte noch richtig gesetzt werden (passiert bei mir in einer seperaten Config-Datei und fehlt hier deshalb).</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hurikhan77.wordpress.com/45/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hurikhan77.wordpress.com/45/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hurikhan77.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hurikhan77.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hurikhan77.wordpress.com&#038;blog=459588&#038;post=45&#038;subd=hurikhan77&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hurikhan77.wordpress.com/2008/04/17/mehrere-rails-anwendungen-pro-vhost-auf-lighttpd/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/89e9043b4c06df706c865bedc2559575?s=96&#38;d=wavatar&#38;r=PG" medium="image">
			<media:title type="html">hurikhan77</media:title>
		</media:content>
	</item>
	</channel>
</rss>