<?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>TheHippo</title>
	<atom:link href="http://blog.thehippo.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thehippo.de</link>
	<description>if (i=1) throw null;</description>
	<lastBuildDate>Tue, 20 Jul 2010 12:36:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Ubuntu: Using Skype with web cam</title>
		<link>http://blog.thehippo.de/2010/07/tools-and-software/ubuntu-using-skype-with-web-cam/</link>
		<comments>http://blog.thehippo.de/2010/07/tools-and-software/ubuntu-using-skype-with-web-cam/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 12:32:42 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[Tools and Software]]></category>
		<category><![CDATA[Cheese]]></category>
		<category><![CDATA[Skype]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Ubuntu 10.04]]></category>
		<category><![CDATA[v4l]]></category>
		<category><![CDATA[Video4Linux]]></category>
		<category><![CDATA[web cam]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=291</guid>
		<description><![CDATA[Back in the days where I used Windows having video and audio conversations with Skype was really easy. Just plug in all the devices and configure the volume of the microphone and you are done. Today I tried the same with my Ubuntu 10.04 installation and I encountered a few problems. This is how I got my [...]]]></description>
			<content:encoded><![CDATA[<p>Back in the days where I used Windows having video and audio conversations with <a title="Skype" href="http://www.skype.com" target="_blank">Skype</a> was really easy. Just plug in all the devices and configure the volume of the microphone and you are done.</p>
<p>Today I tried the same with my <a title="Ubuntu" href="http://www.ubuntu.com" target="_blank">Ubuntu</a> 10.04 installation and I encountered a few problems. This is how I got my webcam working with Skype:<span id="more-291"></span></p>
<ul>
<li>Check if your web cam is working in general. The program <a title="Cheese" href="http://projects.gnome.org/cheese/" target="_blank">Cheese</a> is quite suitable for this task.</li>
<li>Test if Skype works with you cam. Open the options dialogue, go to &#8220;Video&#8221; and click test. If you see yourself, everything is fine <img src='http://blog.thehippo.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>Otherwise create a shell script with the following content:
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3">#!/bin/bash</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re2">LD_PRELOAD=</span>/usr/lib/libv4l/v4l1compat.so &nbsp;/usr/bin/skype</div>
</li>
</ol>
</div>
<p>This script forces Skype to use the <a title="Video 4 Linux" href="http://linuxtv.org/v4lwiki/" target="_blank">Video4Linux</a> drivers instead of the native ones.</li>
<li>If you got this error like this:<br />
<blockquote><p>X Error, request 132, minor 18, error code 8 BadMatch (invalid parameter attributes)</p></blockquote>
<p>Modify you script this way:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3">#!/bin/bash</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">export</span> <span class="re2">XLIB_SKIP_ARGB_VISUALS=</span><span class="nu0">1</span> skype</div>
</li>
<li class="li1">
<div class="de1"><span class="re2">LD_PRELOAD=</span>/usr/lib/libv4l/v4l1compat.so &nbsp;/usr/bin/skype</div>
</li>
</ol>
</div>
</li>
<li>Whenever you start Skype and want to use your web cam use this script to start Skype.</li>
</ul>
<p>P.S.: If you are on a 64bit system you probably need to do this:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re3">#!/bin/bash</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re2">LD_PRELOAD=</span>/usr/lib64/libv4l/v4l1compat.so &nbsp;/usr/bin/skype</div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2010/07/tools-and-software/ubuntu-using-skype-with-web-cam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to run VMware Server under Ubuntu 10.04 LTS</title>
		<link>http://blog.thehippo.de/2010/06/server/vmware-server-ubuntu-10-04/</link>
		<comments>http://blog.thehippo.de/2010/06/server/vmware-server-ubuntu-10-04/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 10:10:16 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Tools and Software]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Ubuntu 10.04]]></category>
		<category><![CDATA[virtual server]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[vmware server]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=258</guid>
		<description><![CDATA[A while ago I used VMware server to running a few virtual instances for testing purposes. Everything worked really flawless. Yesterday I wanted to have some virtual server on my home computer again and encountered many problem with the current version of VMware Server on my Ubuntu 10.04 LTS. There where some problems with the [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I used <a title="VMware server" href="http://www.vmware.com/products/server/" target="_blank">VMware server</a> to running a few virtual instances for testing purposes. Everything worked really flawless. Yesterday I wanted to have some virtual server on my home computer again and encountered many problem with the current version of VMware Server on my Ubuntu 10.04 LTS.<br />
There where some problems with the installation, some to get the VMware console running and also a few the keyboard input on the console.</p>
<p>It took a while to get everything running and I pulled all the information I needed from many different sites. So pulled them all together in this blog entry:<span id="more-258"></span></p>
<ol>
<li>Register at the VMware page. Download the package for VMware server as *.tar.gz. Extract the archive.</li>
<li>Current VMware products do not support the Linux kernel 2.6.32. Therefor you need a patch for the installation archive. Download the patch from the following link and extract it in the parent folder of you VMware download: <a href="http://codebin.cotescu.com/vmware/vmware-server-2.0.x-kernel-2.6.3x-install.sh" target="_blank">VMware patch for Linux kernel 2.6.32</a>. More information could found on <a title="VMware and Linux kernel 2.6.32" href="http://communities.vmware.com/message/1401588#1401588" target="_blank">this page</a> and pages linked on this page.</li>
<li>Run the script with super-user rights. It is quite simple to install. Most of the times you could just hit enter for every question of the installer. At one point the installer ask for a system user which runs the Vmware instances. If you leave it at the default choice, root will be the user. Make sure you have password to log in as root user. (You can set a root password by running the following command on a terminal:<br />
<blockquote><p>sudo passwd root</p></blockquote>
</li>
<li>If you are running a new Ubuntu system you might have get a <a title="Firefox" href="http://www.mozilla-europe.org/en/firefox/" target="_blank">Firefox</a> version &gt;= 3.6. In these versions the VMware console plugin for the browser won&#8217;t work, so download a older version of Firefox from <a title="Older Firefox version download" href="http://www.mozilla.com/en-US/firefox/all-older.html" target="_blank">this page</a> (3.5.9 should be highest working version number).<br />
Extract it somewhere and run it:</p>
<blockquote><p>./firefox -no-remote -P</p></blockquote>
<p>You might create a new Firefox profile (<em>-P</em>) and make sure a new instance of the Firefox is starting (<em>-no-remote</em>)</li>
<li>On a few guest operating systems you might have some trouble with some of the arrow keys of you keyboard. To get them working run this command from a terminal:<br />
<blockquote><p>sudo echo &#8220;xkeymap.nokeycodeMap = true&#8221; &gt;&gt;  /etc/vmware/config</p></blockquote>
<p>You need to run this on the computer where you want to start the VMware console. More Informations could be found <a title="Arrow keys in VMware console" href="http://ubuntuforums.org/showthread.php?t=1116511" target="_blank">here</a>.</li>
<li>Browse to you VMware administration panel (<a title="VMware adminstration panel" href="http://localhost:8222" target="_blank">http://localhost:8222</a> or <a title="VMware adminstration panel" href="https://localhost:8333" target="_blank">https://localhost:8333</a>). Create and start a virtual machine. Install the browser plug-in. Launch the console.</li>
</ol>
<div id="attachment_270" class="wp-caption aligncenter" style="width: 610px"><a href="http://blog.thehippo.de/wp-content/uploads/2010/06/screenshot1.png"><img class="size-large wp-image-270" title="VMware admin &amp; console" src="http://blog.thehippo.de/wp-content/uploads/2010/06/screenshot1-1024x566.png" alt="VMware admin &amp; console" width="600" height="331" /></a><p class="wp-caption-text">VMware admin &amp; console</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2010/06/server/vmware-server-ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript curiosity: mixing function and global scope</title>
		<link>http://blog.thehippo.de/2010/05/programming/javascript-curiosity-mixing-function-and-global-scope/</link>
		<comments>http://blog.thehippo.de/2010/05/programming/javascript-curiosity-mixing-function-and-global-scope/#comments</comments>
		<pubDate>Mon, 31 May 2010 15:05:46 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[curiosity]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[global]]></category>
		<category><![CDATA[scope]]></category>
		<category><![CDATA[var]]></category>
		<category><![CDATA[variable]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=237</guid>
		<description><![CDATA[I am developing with JavaScript for a while and I am used to a lot of it quirks. But even after years of using this language you still find new curiosities. Today a struggled a while with this one. Considering this piece of JavaScript code: var i = 10; function foo&#40;&#41; &#123; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>I am developing with <a title="JavaScript" href="http://en.wikipedia.org/wiki/JavaScript" target="_blank">JavaScript</a> for a while and I am used to a lot of it quirks. But even after years of using this language you still find new curiosities. Today a struggled a while with this one.<br />
Considering this piece of JavaScript code:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">var</span> i = <span class="nu0">10</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> foo<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; i++; <span class="co1">// i is now 11</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;foo1: &quot;</span>+i<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; i = <span class="nu0">0</span>; <span class="co1">// i is now 0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;foo2: &quot;</span>+i<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;global1: &quot;</span>+i<span class="br0">&#41;</span>; <span class="co1">// should be 10</span></div>
</li>
<li class="li1">
<div class="de1">foo<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;global2: &quot;</span>+i<span class="br0">&#41;</span>; <span class="co1">// and now 0</span></div>
</li>
</ol>
</div>
<p>Ok. That&#8217;s fine. Now we change the code a little bit to this one:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">var</span> i = <span class="nu0">10</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> foo<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; i++; <span class="co1">// is now 11</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;foo1: &quot;</span>+i<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> i = <span class="nu0">0</span>; <span class="co1">//create a new variable with value 0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;foo2: &quot;</span>+i<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;global1: &quot;</span>+i<span class="br0">&#41;</span>; <span class="co1">// expect: 10</span></div>
</li>
<li class="li1">
<div class="de1">foo<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;global2: &quot;</span>+i<span class="br0">&#41;</span>; <span class="co1">// expect: 11</span></div>
</li>
</ol>
</div>
<p>What do you expect? I was quite surprised:<span id="more-237"></span></p>
<blockquote><p>global1: 10<br />
foo1: NaN<br />
foo2: 0<br />
global2: 10</p></blockquote>
<p>Why do we get a <strong>Not a Number</strong>? Why is JavaScript not using the global var as in the first example? Why is the global variable <strong>i</strong> not increased, the operation took place before the declaration of the local variable <strong>i</strong>? JavaScript has some &#8220;strange&#8221; rules about variable declaration. Every variable declared within a function is initialised at the beginning of the function, so our function actually would look like this:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">var</span> i = <span class="nu0">10</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> foo<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> i; <span class="co1">//undefined</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; i++; <span class="co1">// undefined + 1 = NaN</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;foo1: &quot;</span>+i<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; i = <span class="nu0">0</span>; <span class="co1">//and now 0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;foo2: &quot;</span>+i<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;global1: &quot;</span>+i<span class="br0">&#41;</span>; <span class="co1">//10</span></div>
</li>
<li class="li2">
<div class="de2">foo<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">console.<span class="me1">log</span><span class="br0">&#40;</span><span class="st0">&quot;global2: &quot;</span>+i<span class="br0">&#41;</span>;<span class="co1">//still 10, because global i has not changed</span></div>
</li>
</ol>
</div>
<p>Looking into the rules of <a title="JSLint" href="http://www.jslint.com/" target="_blank">JSLint</a> which helps to verify JavaScript code to improve the quality of your JavaScript you get a few rules how to safely declare variables:</p>
<ul>
<li>JavaScript allows var definitions to occur anywhere within a function. JSLint is more strict.</li>
<li>JSLint expects that a var will be declared only once, and that it will be declared before it is used.</li>
<li>JSLint expects that a function will be declared before it is used.</li>
<li>JSLint expects that parameters will not also be declared as vars.</li>
<li>JSLint does not expect the arguments array to be declared as a var.</li>
<li>JSLint does not expect that a var will be defined in a block. This is because JavaScript blocks do not have block scope. This can have unexpected consequences. Define all variables at the top of the function.</li>
</ul>
<p>So Remember:<strong> Variables are not initialised when they are declared!</strong></p>
<p>Links:</p>
<ul>
<li>all <a title="JSLint rules" href="http://www.jslint.com/lint.html" target="_blank">JSLint rules</a> for quality JavaScript code.</li>
<li><a title="WTFJS.com" href="http://wtfjs.com/" target="_blank">WTFJS.com</a>, a page collection all kinds of JavaScript curiosities.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2010/05/programming/javascript-curiosity-mixing-function-and-global-scope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moved to GitHub</title>
		<link>http://blog.thehippo.de/2010/03/general/moved-to-github-2/</link>
		<comments>http://blog.thehippo.de/2010/03/general/moved-to-github-2/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 16:27:55 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tools and Software]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[hxGD]]></category>
		<category><![CDATA[hxJson2]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[source controll]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=221</guid>
		<description><![CDATA[I have been interested in git for a while and played around with it a few times and past. Yesterday I finally moved my two open source haXe libraries (hxJson2 and hxGD) to GitHub. (hxGD was hosted on Google Code before.) I really like the ideas of the work flow of git and seriously thinking [...]]]></description>
			<content:encoded><![CDATA[<p>I have been interested in <a title="git" href="http://git-scm.com/" target="_blank">git</a> for a while and played around with it a few times and past.</p>
<p>Yesterday I finally moved my two open source haXe libraries (<a title="hxJson2" href="http://github.com/TheHippo/hxJson2" target="_blank">hxJson2</a> and <a title="hxGD" href="http://github.com/TheHippo/hxGD" target="_blank">hxGD</a>) to GitHub. (hxGD was hosted on Google Code before.) I really like the ideas of the work flow of git and seriously thinking about moving all my private Subversion repositories into git repositories, since there are well working tools to even <a title="git-svn" href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html" target="_blank">import</a> history and branches.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2010/03/general/moved-to-github-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Skype from Pidgin</title>
		<link>http://blog.thehippo.de/2010/03/tools-and-software/use-skype-from-pidgin/</link>
		<comments>http://blog.thehippo.de/2010/03/tools-and-software/use-skype-from-pidgin/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 19:39:32 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[Tools and Software]]></category>
		<category><![CDATA[IM]]></category>
		<category><![CDATA[Instant messager]]></category>
		<category><![CDATA[Pidgin]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Skype]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=202</guid>
		<description><![CDATA[I am using different instant messager protocol. ICQ, IRC, sometimes MSN and Skype. It always bugged me to have 2 programs open. Pidgin for all protocols except Skype and Skype. Today I found a really good working plug-in for Pidgin which allows you to use the most Skype features directly from Pidgin: http://code.google.com/p/skype4pidgin/ You still [...]]]></description>
			<content:encoded><![CDATA[<p>I am using different instant messager protocol. <a title="ICQ" href="http://en.wikipedia.org/wiki/Icq" target="_blank">ICQ</a>, <a title="Internet Relay Chat" href="http://en.wikipedia.org/wiki/Internet_Relay_Chat" target="_self">IRC</a>, sometimes MSN and <a title="Skype" href="http://en.wikipedia.org/wiki/Skype" target="_blank">Skype</a>. It always bugged me to have 2 programs open. <a title="Pidgin" href="http://www.pidgin.im/" target="_blank">Pidgin</a> for all protocols except Skype and <a title="Skype" href="http://www.skype.com" target="_blank">Skype</a>.</p>
<p>Today I found a really good working plug-in for Pidgin which allows you to use the most Skype features directly from Pidgin: <a title="Skype 4 Pidgin" href="http://code.google.com/p/skype4pidgin/" target="_blank">http://code.google.com/p/skype4pidgin/</a></p>
<p>You still need Skype to be running, but you got all you contacts in you Pidgin list. If you make a call the standard Skype dialog appears, all message communication is done via the usual Pidgin conversation windows.</p>
<p><span id="more-202"></span></p>
<div id="attachment_204" class="wp-caption aligncenter" style="width: 545px"><a href="http://blog.thehippo.de/wp-content/uploads/2010/03/skype1.png"><img class="size-full wp-image-204" title="Skype 4 Pidgin" src="http://blog.thehippo.de/wp-content/uploads/2010/03/skype1.png" alt="Skype 4 Pidgin" width="535" height="356" /></a><p class="wp-caption-text">Skype 4 Pidgin</p></div>
<div id="attachment_207" class="wp-caption aligncenter" style="width: 415px"><a href="http://blog.thehippo.de/wp-content/uploads/2010/03/skype.png"><img class="size-full wp-image-207" title="Skype 4 Pidgin" src="http://blog.thehippo.de/wp-content/uploads/2010/03/skype.png" alt="Skype 4 Pidgin" width="405" height="261" /></a><p class="wp-caption-text">Skype 4 Pidgin</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2010/03/tools-and-software/use-skype-from-pidgin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to download a YouTube video and convert it to a mp3 file</title>
		<link>http://blog.thehippo.de/2010/02/tools-and-software/download-youtube-video-convert-mp3/</link>
		<comments>http://blog.thehippo.de/2010/02/tools-and-software/download-youtube-video-convert-mp3/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 21:29:31 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[Tools and Software]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[flv]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[youtube]]></category>
		<category><![CDATA[youtube-dl]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=186</guid>
		<description><![CDATA[How to download a video from Youtube and convert it into a mp3 file? (Or a mpeg video, or&#8230;). The most complicated part was to actually download the flv-movie. After you got this on your harddrive it is quite easy to perform more conversation to diffent file formats. Here the are my instructions for downloading [...]]]></description>
			<content:encoded><![CDATA[<p>How to download a video from <a title="Youtube" href="http://www.youtube.com" target="_blank">Youtube</a> and convert it into a <a title="Wikipedia: mp3" href="http://en.wikipedia.org/wiki/Mp3" target="_blank">mp3</a> file? (Or a mpeg video, or&#8230;). The most complicated part was to actually download the <a title="Wikipedia: FLV" href="http://en.wikipedia.org/wiki/Flash_Video" target="_blank">flv</a>-movie. After you got this on your harddrive it is quite easy to perform more conversation to diffent file formats. Here the are my instructions for downloading and converting to mp3.<span id="more-186"></span></p>
<h1>Downloading</h1>
<p id="clone-url-https">I used a small python script <a title="youtube-dl" href="http://bitbucket.org/rg3/youtube-dl/src/tip/youtube-dl" target="_blank">youtube-dl</a> for downloading the video data.</p>
<ul>
<li>It is available in the Ubuntu repositories
<pre>sudo apt-get install youtube-dl</pre>
</li>
<li> If you encounter some problems you also could do a source checkout from BitBucket (requires that Mercurial is installed):
<pre>hg clone <a class="linkification-ext" title="Linkification: http://bitbucket.org/rg3/youtube-dl/" href="http://bitbucket.org/rg3/youtube-dl/">http://bitbucket.org/rg3/youtube-dl/</a></pre>
</li>
<li>Download the video from a terminal:
<pre> youtube-dl <a class="linkification-ext" title="Linkification: http://www.tube.com/watch?v=videoid" href="http://www.tube.com/watch?v=videoid">http://www.tube.com/watch?v=videoid</a></pre>
</li>
<li>After the download you will find a videoid.flv in your folder</li>
</ul>
<h1>Getting the audio data</h1>
<p>For extracting the audio data I used <a title="ffmpeg" href="http://www.ffmpeg.org/" target="_blank">ffmpeg</a>.</p>
<ul>
<li>If you haven&#8217;t installed it already:
<pre>sudo apt-get install ffmpeg</pre>
</li>
<li>We will extract the audio data to a simple wave file. This file is gonna be large, so make sure you delete it afterwards.
<pre>ffmpeg -i videoid.flv output.wav</pre>
</li>
</ul>
<h1>Converting to MP3</h1>
<p>For converting the wav file to a mp3 file I used <a title="Lame" href="http://lame.sourceforge.net/" target="_blank">lame</a>.</p>
<ul>
<li>Run (the &#8220;-b&#8221; arguments sets the bitrate of the mp3):
<pre>lame -b 192 -h output.wav output.mp3</pre>
</li>
</ul>
<h2>Notes</h2>
<ul>
<li>There a lot of other ways to get the data. Instead of lame you could use <a title="MPlayer" href="http://www.mplayerhq.hu" target="_blank">mplayer</a>, but this way I alway ended with broken mp3 files.</li>
<li>Instead of converting to wave file you also could create a mpeg video and then create the mp3 file directly from this video.</li>
<li>Lame and also ffmpeg have tons of options available from the command line, which could increase speed and quality of the conversation.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2010/02/tools-and-software/download-youtube-video-convert-mp3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Buddy &#8211; a PHPMyAdmin alternative</title>
		<link>http://blog.thehippo.de/2009/12/tools-and-software/sqlbuddy-a-phpmyadmin-alternative/</link>
		<comments>http://blog.thehippo.de/2009/12/tools-and-software/sqlbuddy-a-phpmyadmin-alternative/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 04:05:09 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[Tools and Software]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHPMyAdmin]]></category>
		<category><![CDATA[SQL Buddy]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=169</guid>
		<description><![CDATA[In the last time I am back to a lot of server development. This also means a lot of database engineering. For the most the time I have used PHPMyAdmin for nearly every I have to work with a MySQL database. After a while a got a little bit disappointed, because PHPMyAdmin is a kind [...]]]></description>
			<content:encoded><![CDATA[<p>In the last time I am back to a lot of server development. This also means a lot of database engineering. For the most the time I have used <a href="http://www.phpmyadmin.net" target="_blank">PHPMyAdmin</a> for nearly every I have to work with a MySQL database. After a while a got a little bit disappointed, because PHPMyAdmin is a kind of bloated and sometimes it&#8217;s just take to long to perform a simple operation.<span id="more-169"></span></p>
<h2>The offline alternative</h2>
<p>A looked around for some alternatives and the first found was the MySQL Query Browser which is part of the <a href="http://dev.mysql.com/downloads/gui-tools/5.0.html" target="_blank">MySQL GUI Tools</a>. It is fast (okay, it is a installed application, but still its fast) and very comfortable for editing and creating tables and databases and also okay for just filling / editing some data inside the tables. Also nice is that is free.</p>
<div id="attachment_171" class="wp-caption aligncenter" style="width: 611px"><a href="http://blog.thehippo.de/wp-content/uploads/2009/12/mysql-query-browser-1.png"><img class="size-full wp-image-171" title="MySQL Query Browser" src="http://blog.thehippo.de/wp-content/uploads/2009/12/mysql-query-browser-1.png" alt="MySQL Query Browser" width="601" height="453" /></a><p class="wp-caption-text">MySQL Query Browser - result view</p></div>
<div id="attachment_172" class="wp-caption aligncenter" style="width: 548px"><a href="http://blog.thehippo.de/wp-content/uploads/2009/12/mysql-query-browser-2.png"><img class="size-full wp-image-172" title="MySQL Query Browser" src="http://blog.thehippo.de/wp-content/uploads/2009/12/mysql-query-browser-2.png" alt="MySQL Query Browser - Table option view" width="538" height="384" /></a><p class="wp-caption-text">MySQL Query Browser - Table option view</p></div>
<p>In the MySQL GUI Tools there is also a so called MySQL Administrator which is nice for some statistics, setting up users and creating and restoring backups.</p>
<h2>The online alternative</h2>
<p>There is only one but a big con with the MySQL Query browser. I can not run it on my server, because therefore I needed to open the MySQL port and that one thing I definitely will not do.</p>
<p>So I searched for a while on the web and the tool which looked best for me was <a href="http://www.sqlbuddy.com/" target="_blank">SQL Buddy</a>:</p>
<ul>
<li>PHP-based</li>
<li>makes heavy use of AJAX</li>
<li>enough options for the most common operations</li>
<li>size just 1 MB (instead of 11 MB for the full version of PHPMyAdmin)</li>
</ul>
<div id="attachment_179" class="wp-caption aligncenter" style="width: 620px"><a href="http://blog.thehippo.de/wp-content/uploads/2009/12/SQL-Buddy-1.png"><img class="size-full wp-image-179 " title="SQL Buddy" src="http://blog.thehippo.de/wp-content/uploads/2009/12/SQL-Buddy-1.png" alt="SQL Buddy - result view" width="610" height="437" /></a><p class="wp-caption-text">SQL Buddy - result view</p></div>
<div id="attachment_180" class="wp-caption aligncenter" style="width: 620px"><a href="http://blog.thehippo.de/wp-content/uploads/2009/12/SQL-Buddy-2.png"><img class="size-full wp-image-180 " title="SQL Buddy" src="http://blog.thehippo.de/wp-content/uploads/2009/12/SQL-Buddy-2.png" alt="SQL Buddy - Table option view" width="610" height="437" /></a><p class="wp-caption-text">SQL Buddy - Table option view</p></div>
<p>For the most common tasks SQL Buddy is perfect. It is nearly as fast as installed application and easy to use.</p>
<p>But nobody is perfect, there are few thing I found out, that could not be archived with SQL Buddy. There is no option to create and import xx.sql.bz2 files, and currently no handling of the different storage engines, which means that you could not use foreign keys for example.</p>
<h2>Conclusion</h2>
<p>For you local computer you are okay with the MySQL GUI Tools and SQL Buddy, on the server I will use SQL Buddy but for the more complex tasks I will stick to PHPMyAdmin.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2009/12/tools-and-software/sqlbuddy-a-phpmyadmin-alternative/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minefield &#8211; Firefox preview</title>
		<link>http://blog.thehippo.de/2009/10/tools-and-software/minefield-firefox-preview/</link>
		<comments>http://blog.thehippo.de/2009/10/tools-and-software/minefield-firefox-preview/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 09:10:39 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[Tools and Software]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Sunspider]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=112</guid>
		<description><![CDATA[I make no secret of that I am a big fan of the Firefox web browser. Except of a few things that I will name later I am/was always impressed by the speed improvements that are made over the past few years, which seems very important to me, because many pages you use in you [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-144 alignleft" src="http://blog.thehippo.de/wp-content/uploads/2009/10/minefield-icon.png" alt="Minefield icon" width="128" height="128" /></p>
<p>I make no secret of that I am a big fan of the <a title="Firefox" href="http://www.firefox.com/" target="_blank">Firefox</a> web browser. Except of a few things that I will name later I am/was always impressed by the speed improvements that are made over the past few years, which seems very important to me, because many pages you use in you daily life are more and more based on heavy JavaScript functionalities. A few days ago I decided to give a try to the newest development version of the Firefox &#8211; named <a title="Minefield" href="http://www.mozilla.org/projects/minefield/" target="_blank">Minefield</a> &#8211; and make some tests.<span id="more-112"></span></p>
<h2>Building</h2>
<p>Instead of using a nightly build I decided to to compile it by myself, which was not that hard. If you like to do it yourself could simply follow the instruction on that page: <a title="Simple Firefox build" href="https://developer.mozilla.org/En/Simple_Firefox_build" target="_blank">Simple Firefox build</a>. I used slightly modified the <a title="Configuring Build Options" href="https://developer.mozilla.org/en/Configuring_Build_Options" target="_blank">mozconfig</a> file in hope to get the best performance:</p>
<pre>. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release
mk_add_options MOZ_MAKE_FLAGS="-j4"
ac_add_options --disable-tests
ac add_options --disable-crashreporter</pre>
<h2>Testing</h2>
<p>As performance test I used the <a title="Sunspider JavaScript Benchmark" href="http://www2.webkit.org/perf/sunspider-0.9/sunspider.html" target="_blank">Sunspider JavaScript Benchmark</a> from the <a title="WebKit" href="http://webkit.org/" target="_blank">Webkit</a> developers. To make it short, here are the result for 3 versions of Firefox:</p>
<div id="attachment_116" class="wp-caption aligncenter" style="width: 558px">a<img class="size-full  wp-image-116" title="total results" src="http://blog.thehippo.de/wp-content/uploads/2009/10/totalresults.png" alt="total results" width="548" height="419" /><p class="wp-caption-text">time in milliseconds, faster is better</p></div>
<div id="attachment_115" class="wp-caption aligncenter" style="width: 609px"><img class="size-full wp-image-115" title="Results of different parts of Sunspider benchmark" src="http://blog.thehippo.de/wp-content/uploads/2009/10/partresults.png" alt="Results of different parts of Sunspider benchmark" width="599" height="438" /><p class="wp-caption-text">time in milliseconds, faster is better</p></div>
<h2>Results</h2>
<p>When I switched from from Firefox 3.0.x to the 3.5 branch of Firefox I was really amazed by the performance boost gained through the new JavaScript engine <a title="Tracemonkey on John Resig's blog" href="http://ejohn.org/blog/tracemonkey/" target="_blank">Tracemonkey</a>. As the results above show the next Firefox releases will get another boost. Good news!</p>
<p>P.S.: Other things I like Firefox for is because of all the very useful add-ons, I hardly could imagine  a day as a web-developer without the use of <a title="Firebug" href="http://getfirebug.com/" target="_blank">Firebug</a>. <a title="AdBlock" href="https://addons.mozilla.org/de/firefox/addon/1865" target="_blank">AdBlock</a> saves my nerves every day. <a title="Linkification" href="https://addons.mozilla.org/en-US/firefox/addon/190" target="_blank">Linkification</a>, <a title="TinyURL generator" href="https://addons.mozilla.org/en-US/firefox/addon/10586" target="_blank">TinyURL generator</a> and <a title="Greasemonkey" href="https://addons.mozilla.org/de/firefox/addon/748" target="_blank">Greasemonkey</a> are just a few other I really like and  needed to be named here.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2009/10/tools-and-software/minefield-firefox-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to convert a animated gif into a flash movie</title>
		<link>http://blog.thehippo.de/2009/09/tools-and-software/how-to-convert-a-animated-gif-into-a-flash-movie/</link>
		<comments>http://blog.thehippo.de/2009/09/tools-and-software/how-to-convert-a-animated-gif-into-a-flash-movie/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 14:20:26 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[Tools and Software]]></category>
		<category><![CDATA[animated]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[gif]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[swfmill]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=97</guid>
		<description><![CDATA[Today I tried to load a animated loading animation as a gif image into the Flash Player and discovered that he is not able to play them. It only shows the first frame. My loading.gif: So how to convert this gif animation into a swf file, which the Flash Player could play? (And of course [...]]]></description>
			<content:encoded><![CDATA[<p>Today I tried to load a animated loading animation as a gif image into the Flash Player and discovered that he is not able to play them. It only shows the first frame.<br />
My<em> loading.gif</em>:</p>
<div class="mceTemp mceIEcenter">
<dl id="attachment_98" class="wp-caption aligncenter" style="width: 42px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-98" title="loading.gif" src="http://blog.thehippo.de/wp-content/uploads/2009/09/loading.gif" alt="loading.gif" width="32" height="32" /></dt>
</dl>
</div>
<p>So how to convert this gif animation into a swf file, which the Flash Player could play? (And of course I only want to use open source tools.) It was very easy:<span id="more-97"></span></p>
<ul>
<li>Make sure you have <a title="ImageMagick" href="http://www.imagemagick.org" target="_blank">ImageMagick</a> installed.</li>
<li>Open a console and go to the directory where the gif file is located:
<pre>convert +adjoin -coalesce loading.gif frame%02d.png</pre>
</li>
<li>Now we have a png for every frame of the gif animation. Why png? Because swfmill does not support gif as file format and png it the only available format with support for transparency.</li>
<li>Create a XML file that look similar to this one:
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;utf-8&quot;</span> <span class="re2">?&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;movie</span> <span class="re0">width</span>=<span class="st0">&quot;32&quot;</span> <span class="re0">height</span>=<span class="st0">&quot;32&quot;</span> <span class="re0">framerate</span>=<span class="st0">&quot;25&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;background</span> <span class="re0">color</span>=<span class="st0">&quot;#ffffff&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;frame<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;library<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;clip</span> <span class="re0">id</span>=<span class="st0">&quot;frame00&quot;</span> <span class="re0">import</span>=<span class="st0">&quot;frame00.png&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/library<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;place</span> <span class="re0">id</span>=<span class="st0">&quot;frame00&quot;</span> <span class="re0">depth</span>=<span class="st0">&quot;1&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/frame<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;frame<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;library<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;clip</span> <span class="re0">id</span>=<span class="st0">&quot;frame01&quot;</span> <span class="re0">import</span>=<span class="st0">&quot;frame01.png&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/library<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;place</span> <span class="re0">id</span>=<span class="st0">&quot;frame01&quot;</span> <span class="re0">depth</span>=<span class="st0">&quot;1&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/frame<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;frame<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;library<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;clip</span> <span class="re0">id</span>=<span class="st0">&quot;frame02&quot;</span> <span class="re0">import</span>=<span class="st0">&quot;frame02.png&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/library<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;place</span> <span class="re0">id</span>=<span class="st0">&quot;frame02&quot;</span> <span class="re0">depth</span>=<span class="st0">&quot;1&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/frame<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&#8230;.</div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/movie<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
</div>
</li>
<li>Finally merge the single frame images together with <a href="http://swfmill.org/" target="_blank" title="swfmill">swfmill</a>:
<pre>swfmill simple input.xml output.swf</pre>
</li>
<li>That&#8217;s all.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2009/09/tools-and-software/how-to-convert-a-animated-gif-into-a-flash-movie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suppress Apache to give away too much information</title>
		<link>http://blog.thehippo.de/2009/09/server/suppress-apache-to-give-away-to-much-information/</link>
		<comments>http://blog.thehippo.de/2009/09/server/suppress-apache-to-give-away-to-much-information/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 12:48:53 +0000</pubDate>
		<dc:creator>Hippo</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.thehippo.de/?p=68</guid>
		<description><![CDATA[Just for fun I looked at the headers generated by website I made and where I am responsible for the administration of the Apache server I discovered this: HTTP/1.1 200 OK Date: Sun, 06 Sep 2009 11:44:56 GMT Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 X-Powered-By: PHP/5.2.4-2ubuntu5.7 Connection: close Content-Type: text/html Actually I think no one needs [...]]]></description>
			<content:encoded><![CDATA[<p>Just for fun I looked at the <a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol" target="_blank">headers</a> generated by website I made and where I am responsible for the administration of the <a title="Apache" href="http://httpd.apache.org/" target="_blank">Apache</a> server I discovered this:</p>
<pre>HTTP/1.1 200 OK
Date: Sun, 06 Sep 2009 11:44:56 GMT
Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6
X-Powered-By: PHP/5.2.4-2ubuntu5.7
Connection: close
Content-Type: text/html</pre>
<p>Actually I think no one needs to know which <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a> version is running on this machine and that there also a <a title="SVN" href="http://subversion.tigris.org/" target="_blank">Subversion</a> is running on that machine. Even the name of the operating system and the version of the Apache is not needed in most cases.</p>
<p><strong>So how suppress these information?</strong></p>
<h2><span id="more-68"></span>Disable the &#8220;X-Powered-By&#8221;</h2>
<ul>
<li>Log in to your server as root user.</li>
<li>Open you <em>php.ini</em> file in a editor of you choice. My <em>php.ini</em> is located at <em>/etc/php5/cgi/</em> (as I use <a href="http://blog.thehippo.de/2009/08/server/crashing-virtual-servers-2/" target="_blank">mod_fcgid</a> to server PHP content)</li>
<li>Search and edit:
<pre>; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
expose_php = Off</pre>
<p>If you like you read in the official <a title="expose_php documentation" href="www.php.net/manual/ini.core.php">PHP documentation</a>.</li>
<li>Save and reload you Apache:
<pre>/etc/init.d/apache2 force-reload</pre>
</li>
</ul>
<h2>Disable the &#8220;Server&#8221;-header</h2>
<p>After searching for  while I figured out that disabling the &#8220;Server&#8221;-header is not possible, without recompiling the Apache. (The Apache developers <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=40026" target="_blank">claim this as a feature</a>.)  But you could decide between some level of information that will be provided.</p>
<ul>
<li>If you are not logged in, log in as root user.</li>
<li>Open you Apache configuration, for me it was <em>/etc/apache2/apache2.conf</em></li>
<li>Search for and edit the following lines:
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1"># ServerTokens</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># This directive configures what you return as the Server HTTP response</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Header. The default is &#8216;Full&#8217; which sends information about the OS-Type</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># and compiled in modules.</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1"># Set to one of: &nbsp;Full | OS | Minor | Minimal | Major | Prod</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># where Full conveys the most information, and Prod the least.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">ServerTokens</span> Full</div>
</li>
</ol>
</div>
</li>
<li>Replace the <em>Full</em> with some of the options given in the comment. Here are some examples what these options are meaning:<br />
<table border="0">
<tbody>
<tr>
<td>Full</td>
<td>Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6</td>
</tr>
<tr>
<td>OS</td>
<td>Server: Apache/2.2.8 (Ubuntu)</td>
</tr>
<tr>
<td>Minor</td>
<td>Server: Apache/2.2.8</td>
</tr>
<tr>
<td>Minimal</td>
<td>Server: Apache/2.2</td>
</tr>
<tr>
<td>Major</td>
<td>Server: Apache/2</td>
</tr>
<tr>
<td>Prod</td>
<td>Server: Apache</td>
</tr>
</tbody>
</table>
<p>If you like you could also read the <a title="mod_core documentation" href="http://httpd.apache.org/docs/2.2/mod/core.html#servertokens" target="_blank">official documentation</a>.</li>
<li>Save and reload you Apache:
<pre>/etc/init.d/apache2 force-reload</pre>
</li>
</ul>
<h2>Result</h2>
<p>I had chosen <em>Major</em> in the last step. Now the headers look like this:</p>
<pre>HTTP/1.1 200 OK
Date: Sun, 06 Sep 2009 12:16:40 GMT
Server: Apache/2
Connection: close
Content-Type: text/html</pre>
<p id="firstHeading"><strong>Important note</strong>: This does not improve the security of the server, because you are only hiding information. Maybe you want to read: <a title="Security through obscurity" href="http://en.wikipedia.org/wiki/Security_through_obscurity" target="_blank">Security through obscurity</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thehippo.de/2009/09/server/suppress-apache-to-give-away-to-much-information/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.497 seconds -->
