<?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>Michael Baierl &#187; tech</title>
	<atom:link href="http://blog.mbaierl.com/tag/tech/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.mbaierl.com</link>
	<description>Blog von Michael Baierl</description>
	<lastBuildDate>Wed, 25 Jan 2012 09:17:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Wipe the phone clean!</title>
		<link>http://blog.mbaierl.com/2010/12/wipe-the-phone-clean.html</link>
		<comments>http://blog.mbaierl.com/2010/12/wipe-the-phone-clean.html#comments</comments>
		<pubDate>Wed, 01 Dec 2010 09:32:37 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://blog.mbaierl.com/?p=795</guid>
		<description><![CDATA[But maybe wiping the phone clean and starting over is the best overall option sometimes. Hey, it&#8217;s a phone! Why should I need to worry about memory management, background tasks and hung processes? Oh, it&#8217;s an Android phone, yes, you have to take care of that on your own. Because it is &#8220;open&#8221;. Uhm. I [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>But maybe wiping the phone clean and starting over is the best overall option sometimes.</p></blockquote>
<p>Hey, it&#8217;s a phone! Why should I need to worry about memory management, background tasks and hung processes? Oh, it&#8217;s an Android phone, yes, you have to take care of that on your own. Because it is &#8220;open&#8221;. Uhm.</p>
<p>I personally love my closed iPhone, which just works.</p>
<p>Recommended <a href="http://www.tested.com/news/when-you-should-give-your-android-phone-a-factory-reset/1409/">reading for Android users</a>, via <a href="http://daringfireball.net/linked/2010/11/30/android-reset">John Gruber</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2010/12/wipe-the-phone-clean.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>kmem russian roulette</title>
		<link>http://blog.mbaierl.com/2010/11/kmem-russian-roulette.html</link>
		<comments>http://blog.mbaierl.com/2010/11/kmem-russian-roulette.html#comments</comments>
		<pubDate>Tue, 09 Nov 2010 16:16:29 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[quote]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://blog.mbaierl.com/?p=766</guid>
		<description><![CDATA[Aquillar&#62; hey, you guys ever play kmem russian roulette? Agnostos&#62; I don&#8217;t believe I have. care to explain the details? Aquillar&#62; dd if=/dev/urandom of=/dev/kmem bs=1 count=1 seek=$RANDOM Aquillar&#62; keep executing until system crashes Aquillar&#62; person that crashes system has to buy beer Agnostos&#62; lol Agnostos&#62; I wonder if I can sneak that into a server [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Aquillar&gt; hey, you guys ever play kmem russian roulette?<br />
Agnostos&gt; I don&#8217;t believe I have. care to explain the details?<br />
Aquillar&gt; dd if=/dev/urandom of=/dev/kmem bs=1 count=1 seek=$RANDOM<br />
Aquillar&gt; keep executing until system crashes<br />
Aquillar&gt; person that crashes system has to buy beer<br />
Agnostos&gt; lol<br />
Agnostos&gt; I wonder if I can sneak that into a server startup script here.</p></blockquote>
<p>(from <a href="http://bash.org/?926695">bash.org</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2010/11/kmem-russian-roulette.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPad Version 0</title>
		<link>http://blog.mbaierl.com/2010/10/ipad-version-0.html</link>
		<comments>http://blog.mbaierl.com/2010/10/ipad-version-0.html#comments</comments>
		<pubDate>Fri, 22 Oct 2010 09:52:16 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[ted]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.mbaierl.com/?p=745</guid>
		<description><![CDATA[So fangen gute Artikel an: Ein Auditorium in Kalifornien. Der Redner trägt Brille, Jeans und einen schwarzen Rollkragenpulli. Er hat sein neues Spielzeug mitgebracht. Mit beiden Händen fuchtelt er auf dem Bildschirm herum, sortiert Fotos, vergrößert sie mit zwei Fingern und staucht sie wieder zusammen. „Es gibt keine Bedienungsanleitung. Es passiert genau, was man erwartet.“ [...]]]></description>
			<content:encoded><![CDATA[<p>So fangen gute Artikel an:</p>
<blockquote><p>Ein Auditorium in Kalifornien. Der Redner trägt Brille, Jeans und einen schwarzen Rollkragenpulli. Er hat sein neues Spielzeug mitgebracht. Mit beiden Händen fuchtelt er auf dem Bildschirm herum, sortiert Fotos, vergrößert sie mit zwei Fingern und staucht sie wieder zusammen. „Es gibt keine Bedienungsanleitung. Es passiert genau, was man erwartet.“ Er dreht einen virtuellen Globus, zoomt heran, alles in einer einzigen, flüssigen Bewegung. Die anwesenden Fachleute sind verwirrt, als schauten sie einem Magier zu. Langsam dämmert ihnen, dass sie dem Beginn einer neuen Ära beiwohnen. „Wo ist Dein Labor?“, ruft einer. „Ich bin Forscher an der New York University“, antwortet der Redner. Sein Name: Jeff Han. (Source: <a href="http://www.heise.de/ct/artikel/Die-Aufholjagd-beginnt-1083182.html">heise.de</a>)</p></blockquote>
<p>Aber: Jeff wer? Nicht Steve Jobs?</p>
<p>Interessant ist dass der <a href="http://www.ted.com/talks/jeff_han_demos_his_breakthrough_touchscreen.html">beschriebene Vortrag</a> schon im Februar 2006 gehalten wurde, weit bevor das iPad überhaupt angekündigt wurde&#8230; iPad Version 0 quasi &#8211; und viele der Gestures auf dem großen Screen sind heute in der iPad Photo app zu finden. Das Video ist sehr zu empfehlen, nicht nur für Apple Fanboys!</p>
<div style="text-align: center"><object width="334" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/JeffHan_2006-medium.flv&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/JeffHan-2006.embed_thumbnail.jpg&#038;vw=320&#038;vh=240&#038;ap=0&#038;ti=65&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=jeff_han_demos_his_breakthrough_touchscreen;year=2006;theme=top_10_tedtalks;theme=tales_of_invention;theme=what_s_next_in_tech;theme=presentation_innovation;theme=ted_under_30;event=TED2006;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="334" height="326" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/JeffHan_2006-medium.flv&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/JeffHan-2006.embed_thumbnail.jpg&#038;vw=320&#038;vh=240&#038;ap=0&#038;ti=65&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=jeff_han_demos_his_breakthrough_touchscreen;year=2006;theme=top_10_tedtalks;theme=tales_of_invention;theme=what_s_next_in_tech;theme=presentation_innovation;theme=ted_under_30;event=TED2006;"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2010/10/ipad-version-0.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#8217;m going to delete all mail</title>
		<link>http://blog.mbaierl.com/2010/04/im-going-to-delete-all-mail.html</link>
		<comments>http://blog.mbaierl.com/2010/04/im-going-to-delete-all-mail.html#comments</comments>
		<pubDate>Sun, 25 Apr 2010 08:18:19 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://blog.mbaierl.com/?p=578</guid>
		<description><![CDATA[A great tip: When you go on vacation, set up an autoreply that says, &#8220;I&#8217;m on vacation until x/x/2010. When I get back, I&#8217;m going to delete all the email that arrived while I was gone, so if this note is important, please send it to me again after that date.&#8221; Something I&#8217;ll try next [...]]]></description>
			<content:encoded><![CDATA[<p>A great tip:</p>
<blockquote><p>When you go on vacation, set up an autoreply that says, &#8220;I&#8217;m on  vacation until x/x/2010. When I get back, I&#8217;m going to delete all the  email that arrived while I was gone, so if this note is important,  please send it to me again after that date.&#8221;</p></blockquote>
<p>Something I&#8217;ll try next time I&#8217;ll go on vacation&#8230;</p>
<p>Read the full story called <a href="http://sethgodin.typepad.com/seths_blog/2010/04/8-things-i-wish-everyone-knew-about-email.html">8 things I wish everyone knew about email</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2010/04/im-going-to-delete-all-mail.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My opinion on the iPad</title>
		<link>http://blog.mbaierl.com/2010/01/my-opinion-on-the-ipad.html</link>
		<comments>http://blog.mbaierl.com/2010/01/my-opinion-on-the-ipad.html#comments</comments>
		<pubDate>Fri, 29 Jan 2010 16:18:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://test.mbaierl.com/2010/01/my-opinion-on-the-ipad.html</guid>
		<description><![CDATA[On Wednesday the mysterious Apple iPad has been announced. Phase 2. And because a lot of people know that I&#8217;m an Apple fanboy and feel the urge to discuss &#8220;what does not work on the iPad and why it is crap&#8221; with me I&#8217;d like to finally outline a few thoughts about this device&#8230;. What [...]]]></description>
			<content:encoded><![CDATA[<p>On Wednesday the mysterious <a href="http://www.apple.com/ipad/">Apple iPad</a> has been announced. <a href="http://pogue.blogs.nytimes.com/2010/01/27/the-apple-ipad-first-impressions/">Phase 2</a>. And because a lot of people know that I&#8217;m an <a href="http://www.uberreview.com/2008/01/25-signs-that-you-might-be-an-apple-fanboy.htm">Apple fanboy</a> and feel the urge to discuss &#8220;what does not work on the iPad and why it is crap&#8221; with me I&#8217;d like to finally outline a few thoughts about this device&#8230;.</p>
<p><img class="alignright" style="margin-top: 0px;margin-right: auto;margin-bottom: 10px;margin-left: auto;text-align: center;width: 326px;height: 202px;border: 0px initial initial" src="http://mbaierl.com/blog/uploaded_images/best_experience_20100127-769192.png" border="0" alt="" width="326" height="202" /><span style="font-weight: bold;font-size: 130%">What the iPad is and what it is not</span></p>
<ul>
<li>The iPad is <span style="font-weight: bold">not a computer replacement</span>. It is not meant to be your only computer in a household. Yes, it might work out for some special cases (my mum, my dad) but the average geek will still need a separate computer for development, hacking etc.</li>
<li>The iPad <span style="font-weight: bold">does support multi-tasking</span>. You can listen to music while browsing the Web. All well-coded applications will remember the application state, so going to a link while reading a mail will open up the very same mail once you open up the mail application again. <a href="http://en.wikipedia.org/wiki/Instant_messaging">IM</a> has proven to work very well using Push notifications and I bet there will be better support for Push in the next release of the iPad OS (list all notifications etc.).</li>
<li>The iPad cannot <span style="font-weight: bold">make phone calls</span> and therefore is also <span style="font-weight: bold">no cell phone replacement</span>. Well, you can make calls using i.e. Skype and a Bluetooth headset. Who wants such a large cell phone anyway? I never really understood that kind of comment&#8230;. it&#8217;s no phone at all! The iPad is a iPod Touch on steroids and targets unusable, slow <a href="http://en.wikipedia.org/wiki/Netbook">Netbooks</a> with Windows on it. So it is also no cell phone replacement.</li>
<li>The iPad has three (3!) different <span style="font-weight: bold">keyboards</span>. You can use the onscreen keyboard, which (according to my experience with the iPhone) will work very well in most cases. As alternatives you can use a Bluetooth keyboard or use the <a href="http://www.apple.com/ipad/specs/#accessories">keyboard-dock</a>. Plenty of options for faster typing.</li>
<li>The <span style="font-weight: bold">pricing</span> is quite ok &#8211; yes, you can get laptops for the same price, but take into account the quality of these low-end devices. Apple stuff is always a bit more expensive (no need to complain!), but on the other hand you get a device that just works. No fiddling with Firewalls, no <a href="http://en.wikipedia.org/wiki/Windows_Registry">RegEdit</a>, all stuff that you don&#8217;t really need.</li>
</ul>
<p><span style="font-size: 130%"><span style="font-weight: bold">What I miss on the iPad</span></span><br />
These features would make the iPad of real use to me and I think they are missing in the current version of the device:</p>
<ul>
<li><span style="font-weight: bold">Wireless sync</span>. I don&#8217;t see any reason for plugging the iPad to my computer to sync music and videos. Why can&#8217;t it sync over the air (when it is plugged to a power source)?</li>
<li><span style="font-weight: bold">Multi-User support</span>. No need for two iPads in our household, but two separated user accounts would be great.</li>
<li><span style="font-weight: bold">Airtunes support</span> to stream music directly to the speakers, instead of just remote-controlling the MacBook.</li>
<li>A <span style="font-weight: bold">front-mounted camera </span>would be great for Skype or iChat video conferencing. Eventually also to detect who is using the iPad (see multi-user support above).</li>
<li><span style="font-weight: bold">Cheaper e-Books</span>. I don&#8217;t understand why I should pay the same price for an e-Book as for a paper book. The publisher saves money on printing, I have to buy a reader&#8230; so get cheaper!</li>
<li><span style="font-weight: bold">Tethering through an iPhone</span>. I have an iPhone, so why do I need an additional 3G contract? Let me tether through the iPhone, because contract in Austria allow me to use my 3GB monthly volume how I want to use it. Could also use the iPhone GPS location&#8230;</li>
</ul>
<p><span style="font-size: 130%"><span style="font-weight: bold">Will I buy it?</span></span><br />
Let me quote someone here:</p>
<blockquote><p>To hell with it! It&#8217;s not something I need. It doesn&#8217;t solve  any problems I have. I can resist. I am strong. I may be &#8220;Mr. Mac,&#8221; but  I am also &#8220;Mr. Practical.&#8221;<br />
Which is exactly what I said when the iPhone came out. 3 days later I  was in the Apple Store eagerly holding out my credit card to anyone who  would take it. <span style="font-size: 85%">(<a href="http://www.tuaw.com/2010/01/26/some-personal-thoughts-about-the-apple-tablet/">source</a>)</span></p></blockquote>
<p>So: <span style="font-weight: bold">I don&#8217;t know yet</span>.  Most probably I&#8217;ll skip the first generation and wait for an upgrade.  It is also depending on the iPhone 4 which is to be released this summer  (yes, my contract is finally over!) and what features it offers. And of course what features Apple will add to the iPad over time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2010/01/my-opinion-on-the-ipad.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Unit-tests are way cool!</title>
		<link>http://blog.mbaierl.com/2009/03/unit-tests-are-way-cool.html</link>
		<comments>http://blog.mbaierl.com/2009/03/unit-tests-are-way-cool.html#comments</comments>
		<pubDate>Tue, 31 Mar 2009 08:15:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://test.mbaierl.com/2009/03/unit-tests-are-way-cool.html</guid>
		<description><![CDATA[Unit-tests are what saves a developers ass &#8211; and each app should have them, if it makes sense. So it depends But for the project I&#8217;m working on right now it made sense, the perfect subject for unit testing. Or do you remember almost 100 different cases and conditions which might break if you change [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0pt 0pt 10px 10px;float: right;width: 215px;height: 115px" src="http://mbaierl.com/blog/uploaded_images/unit-tests-702976.png" alt="" border="0" /><a href="http://en.wikipedia.org/wiki/Unit_testing">Unit-tests</a> are what saves a developers ass &#8211; and each app should have them, <a href="http://www.joelonsoftware.com/items/2009/01/31.html">if it makes sense</a>. So <a href="http://en.wikipedia.org/wiki/Project_management">it depends</a> <img src='http://blog.mbaierl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>But for the project I&#8217;m working on right now it made sense, the perfect subject for unit testing. Or do you remember almost 100 different cases and conditions which might break if you change code? In my case I rewrote about 30% of the <a href="http://en.wikipedia.org/wiki/Java_Servlet">servlet</a> code to be better structured and being capable of implementing a new requirement. Large parts where <a href="http://en.wikipedia.org/wiki/Spagetti_code">Spaghetti code</a> without class inheritance or good usage of objects&#8230; subject to be thrown away or rewritten.<br />After trying the code for the first time after the rewrite the simple, <a href="http://search.cpan.org/%7Egaas/libwww-perl-5.825/lib/LWP.pm">LWP</a> based unit tests immediately showed me where I had to &#8220;tweak&#8221; the code &#8211; and now that they again show a green <span>PASSED</span> I&#8217;m confident that it really works in production as well.</p>
<p>That&#8217;s how it should be &#8211; being confident that changes did not break any other part of the code.<br /><span style="font-weight: bold">Unit tests are way cool!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2009/03/unit-tests-are-way-cool.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Logwatch for PHP errors, the Apache error log and MySQL</title>
		<link>http://blog.mbaierl.com/2009/03/logwatch-for-php-errors-the-apache-error-log-and-mysql.html</link>
		<comments>http://blog.mbaierl.com/2009/03/logwatch-for-php-errors-the-apache-error-log-and-mysql.html#comments</comments>
		<pubDate>Fri, 27 Mar 2009 16:54:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://test.mbaierl.com/2009/03/logwatch-for-php-errors-the-apache-error-log-and-mysql.html</guid>
		<description><![CDATA[Logwatch is a very flexible and customizable log watching system for lazy system administrators. It checks the logfiles regularly and sends custom mail reports &#8211; very useful and way better than daily manual checking of the logs. Unfortunately the configuration for MySQL, PHP and the Apache error_log is missing; so let me share the configuration [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.logwatch.org/">Logwatch</a> is a very flexible and customizable log watching system for lazy system administrators. It checks the logfiles regularly and sends custom mail reports &#8211; very useful and way better than daily manual checking of the logs.</p>
<p>Unfortunately the configuration for MySQL, PHP and the Apache error_log is missing; so let me share the configuration scripts:</p>
<p><span style="font-weight: bold;font-size:130%">Logwatch configuration for PHP</span><br />Interestingly there is no logwatch configuration for PHP error_log files &#8211; and all a search revealed are some <a href="http://jr.terragate.net/Public/logwatch/php/">outdated files</a> which don&#8217;t work anymore. Here are the adopted files that allow you to get notified about PHP errors:
<ul>
<li><a href="http://mbaierl.com/blog/files/logwatch/logfiles_php.conf">logfiles_php.conf</a> &#8211; place this file in /etc/logwatch/conf/logfiles/php.conf and adopt the path to the php error_log file (or just use the Apache error_log)</li>
<li><a href="http://mbaierl.com/blog/files/logwatch/services_php.conf">services_php.conf</a> &#8211; place this file in /etc/logwatch/conf/services/php.conf</li>
<li><a href="http://mbaierl.com/blog/files/logwatch/scripts_php">scripts_php</a> &#8211; place this file in /etc/logwatch/scripts/php and make it executable</li>
</ul>
<p><span style="font-weight: bold;font-size:130%">Logwatch configuration for MySQL</span><br />Also a configuration for MySQL is missing in the default configuration; here are the configuration files:
<ul>
<li><a href="http://mbaierl.com/blog/files/logwatch/logfiles_mysql.conf">logfiles_mysql.conf</a> &#8211; place this file in /etc/logwatch/conf/logfiles/mysql.conf and adopt the path to the MySQL logfile</li>
<li><a href="http://mbaierl.com/blog/files/logwatch/services_mysql.conf">services_mysql.conf</a> &#8211; place this file in /etc/logwatch/conf/services/mysql.conf</li>
<li><a href="http://mbaierl.com/blog/files/logwatch/scripts_mysql">scripts_mysql</a> &#8211; place this file in /etc/logwatch/scripts/mysql and make it executable</li>
</ul>
<p> <span style="font-weight: bold;font-size:130%">Logwatch configuration for Apache&#8217;s error_log</span><br />Now hat really made me wonder is the at the httpd access_log is monitored but the <a href="http://osdir.com/ml/log.logwatch.devel/2007-07/msg00010.html">error_log is left out</a>, so no details about errors are included in the logs. This configuration ignores PHP errors and includes all httd errors in the logwatch output:
<ul>
<li><a href="http://mbaierl.com/blog/files/logwatch/logfiles_http-error.conf">logfiles_http-error.conf</a> &#8211; place this file in /etc/logwatch/conf/logfiles/http-error.conf and adopt the path to the httpd error_log file accordingly</li>
<li><a href="http://mbaierl.com/blog/files/logwatch/services_http-error.conf">services_http-error.conf</a> &#8211; place this file in /etc/logwatch/conf/services/http-error.conf</li>
<li><a href="http://mbaierl.com/blog/files/logwatch/scripts_http-error">scripts_http-error</a> &#8211; place this file in /etc/logwatch/scripts/http-error and make it executable</li>
</ul>
<p>To test that the individual scripts work use this command:<br />
<blockquote>/usr/sbin/logwatch &#8211;detail high &#8211;print &#8211;service $SERVICE &#8211;range today &#8211;debug 0</p></blockquote>
<p>Replace $SERVICE with either php, mysql or http-error and set debug to 5 if you want to see more (but not too much) debugging information.</p>
<p>All the logwatch configuration scripts for MySQL, PHP and the Apache error_log can be found <a href="http://mbaierl.com/blog/files/logwatch/">here</a>.</p>
<p><span style="font-style: italic">Update:</span> There was an error in the scripts_mysql file, fixed now.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2009/03/logwatch-for-php-errors-the-apache-error-log-and-mysql.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Debugging using Apache as proxy</title>
		<link>http://blog.mbaierl.com/2009/03/debugging-using-apache-as-proxy.html</link>
		<comments>http://blog.mbaierl.com/2009/03/debugging-using-apache-as-proxy.html#comments</comments>
		<pubDate>Wed, 18 Mar 2009 10:53:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://test.mbaierl.com/2009/03/debugging-using-apache-as-proxy.html</guid>
		<description><![CDATA[While the follow up article of &#8220;Must-have tools for HTML, JavaScript and AJAX development and debugging&#8221; (which has also been translated to Chinese, Japanese and Korean) is not written yet I want to share a useful trick that helps debugging live Web applications by injecting custom files into them. The problem is how to test [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mbaierl.com/blog/uploaded_images/http_proxy-706079.png"><img style="margin: 0pt 0pt 10px 10px;float: right;cursor: pointer;width: 200px;height: 108px" src="http://mbaierl.com/blog/uploaded_images/http_proxy-706077.png" alt="" border="0" /></a>While the follow up article of &#8220;<a href="http://www.ibm.com/developerworks/library/wa-jstools/">Must-have tools for HTML, JavaScript and AJAX development and debugging</a>&#8221; (which has also been translated to <a href="http://www.ibm.com/developerworks/cn/web/wa-jstools/">Chinese</a>, <a href="http://www.ibm.com/developerworks/jp/web/library/wa-jstools/index.html">Japanese</a> and <a href="http://www.ibm.com/developerworks/kr/library/wa-jstools/">Korean</a>) is not written yet I want to share a useful trick that helps debugging live Web applications by injecting custom files into them.</p>
<p>The <span style="font-weight: bold">problem</span> is how to test a new version of a JavaScript library on a production system without even touching the system itself in any way. Testing with local copies of the HTML pages work fine for a few files but does not scale very well, and staging systems might not be properly configured or really tell you if something works on the production system (bugs always just happen in production, right?).<br />Another problem with debugging JavaScript on production system is that the files might be <a href="http://developer.yahoo.com/yui/compressor/">compressed</a>, which makes debugging in Firebug almost impossible &#8211; variable names are shortenend and line numbers don&#8217;t make sense any more &#8211; would be great to have the uncompressed version instead&#8230;</p>
<p>The <span style="font-weight: bold">solution</span> is using a local proxy and replacing certain requests with local files. That way custom files can be injected based on regular expressions and tests can be performed on the production site or even on sites without access to the system itself.<br />While <a href="http://www.fiddlertool.com/">Fiddler</a> works great on Windows and <a href="http://www.charlesproxy.com/">Charles Proxy</a> does the same on OSX I want to present the poor man&#8217;s solution which makes use of any local Apache installation (i.e. <a href="http://www.mamp.info/">MAMP</a>).</p>
<p>The required changes in the httpd.conf are:<br />
<blockquote># Enable proxy requests<br />ProxyRequests On<br />ProxyVia On<br />&lt;Proxy *&gt;<br />      # Secure the proxy to allow localhost requests only<br />      Order deny,allow<br />      Deny from all<br />      Allow from 127.0.0.1<br />      Allow from ::1</p>
<p>      # replace some files with local copies<br />      RewriteEngine On<br />      RewriteRule myfile.js http://localhost:8888/test/myfile.source.js [P]</p>
<p># Disable caching<br />      ExpiresActive On<br />      ExpiresDefault &#8220;now&#8221;<br />&lt;/Proxy&gt;</p></blockquote>
<p>Lets go through the changes line by line:<br />The first two lines enable the Apache Proxy support (ProxyRequests On); the &lt;Proxy *&gt; block then configures the proxy further. As stated in the <a href="http://httpd.apache.org/docs/2.0/mod/mod_proxy.html">documentation</a> multiple times it is a good thing to secure the server, that&#8217;s why only access from localhost is permitted. The important part are now the <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule">RewriteRule</a>s &#8211; they proxy certain requests to the local server instead of the remote server, in the sample above all requests that contain myfile.js will be replaced by the version served from the local server. This could as well be any other remote machine serving the file, as the request is proxied again ([P] flag). Finally caching is avoided by setting all files to expire right now (while this adds more load to the proxy it is not that bad to do during testing).</p>
<p><a href="http://mbaierl.com/blog/uploaded_images/firefox-proxy-712366.png"><img style="margin: 0pt 0pt 10px 10px;float: right;cursor: pointer;width: 200px;height: 166px" src="http://mbaierl.com/blog/uploaded_images/firefox-proxy-712362.png" alt="" border="0" /></a>Now the proxy has to be used in the browser or application of choice; once the proxy settings are changed within the <a href="http://support.mozilla.com/en-US/kb/Options+window#Connection">networks settings</a> the access log of Apache should become quite busy when browsing around and, depending on your mod_rewrite settings above, some requests should be replaced with the local copy of a file, making debugging way easier.</p>
<p>Of course the drawbacks of the poor man&#8217;s solution are that Apache has to be reloaded in case the RewriteRules change and changing the configuration is not as comfortable as with the dedicated proxy solutions mentioned above. Nevertheless this solution works, is fast and very reliable&#8230; and free <img src='http://blog.mbaierl.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2009/03/debugging-using-apache-as-proxy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The worlds coolest data center</title>
		<link>http://blog.mbaierl.com/2008/12/the-worlds-coolest-data-center.html</link>
		<comments>http://blog.mbaierl.com/2008/12/the-worlds-coolest-data-center.html#comments</comments>
		<pubDate>Tue, 09 Dec 2008 16:24:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://test.mbaierl.com/2008/12/the-worlds-coolest-data-center.html</guid>
		<description><![CDATA[Until today I did not know that data centers can be that cool &#8211; but check out this article about the server location in Stockholm. Looks like directly out of a James Bond movie: A nuclear bunker below Stockholm. Submarine engines as backup power source. Simulated daylight and greenhouses. In my opinion the provider Bahnhof [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mbaierl.com/blog/uploaded_images/datacenter-728997.jpg"><img style="margin: 0px auto 10px;text-align: center;cursor: pointer;width: 400px;height: 254px" src="http://mbaierl.com/blog/uploaded_images/datacenter-728983.jpg" alt="" border="0" /></a>Until today I did not know that data centers can be that cool &#8211; but check out <a href="http://royal.pingdom.com/2008/11/14/the-worlds-most-super-designed-data-center-fit-for-a-james-bond-villain/">this article</a> about the server location in Stockholm. Looks like directly out of a James Bond movie:
<ul>
<li>A nuclear bunker below Stockholm.</li>
<li>Submarine engines as backup power source.</li>
<li>Simulated daylight and greenhouses.</li>
</ul>
<p>In my opinion the provider <a href="http://www.bahnhof.se/">Bahnhof</a> built one of the coolest data centers ever &#8211; let&#8217;s see what <a href="http://oesterreich.orf.at/ooe/stories/323416/">Google builds up in Austria</a>.</p>
<p><a href="http://royal.pingdom.com/2008/11/14/the-worlds-most-super-designed-data-center-fit-for-a-james-bond-villain/">Original article</a> &#8211; <a href="http://www.bahnhof.se/pionen/gallery/">more pictures</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2008/12/the-worlds-coolest-data-center.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Could not find symbol&#8221; made me crazy today</title>
		<link>http://blog.mbaierl.com/2008/12/could-not-find-symbol-made-me-crazy-today.html</link>
		<comments>http://blog.mbaierl.com/2008/12/could-not-find-symbol-made-me-crazy-today.html#comments</comments>
		<pubDate>Tue, 02 Dec 2008 22:21:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://test.mbaierl.com/2008/12/could-not-find-symbol-made-me-crazy-today.html</guid>
		<description><![CDATA[My EAR package worked fine, until tonight during the deployment to another server infrastructure. How hard can a simple EAR update be? &#8220;Could not find symbol&#8221; somewhere next to a simple line initializing log4j. It complained about missing the Logger class.A check in the EAR file revealed that the required jar files are all there. [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://en.wikipedia.org/wiki/EAR_%28file_format%29">EAR</a> package worked fine, until tonight during the deployment to another server infrastructure. How hard can a simple EAR update be? <span style="font-weight: bold">&#8220;Could not find symbol&#8221;</span> somewhere next to a simple line initializing <a href="http://logging.apache.org/log4j/1.2/index.html">log4j</a>. It complained about missing the <a href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Logger.html">Logger</a> class.<br />A check in the EAR file revealed that the required jar files are all there. Still this error. But why?</p>
<p>Finally I figured out that the <a href="http://en.wikipedia.org/wiki/Manifest_file">manifest file</a> included all of the required libraries in the classpath but missed the &#8220;.&#8221; to include the current directory as well, after adding it everything worked out:<br />
<blockquote>Class-Path: log4j.jar lib.jar .</p></blockquote>
<p>Took some time to perform a simple upgrade of an existing EAR file&#8230; because of such a simple error &#8211; so ensure your MANIFEST.MF file contains the dot!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mbaierl.com/2008/12/could-not-find-symbol-made-me-crazy-today.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: blog.mbaierl.com @ 2012-02-07 12:17:23 -->
