<?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>Tim Groeneveld &#187; Experimental</title>
	<atom:link href="http://timg.ws/category/experimental/feed/" rel="self" type="application/rss+xml" />
	<link>http://timg.ws</link>
	<description>&#039;cause everyone loves a geek</description>
	<lastBuildDate>Wed, 14 Sep 2011 14:40:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3-beta3-19254</generator>
		<item>
		<title>New Installer Skeleton</title>
		<link>http://timg.ws/2011/09/15/new-installer-skeleton/</link>
		<comments>http://timg.ws/2011/09/15/new-installer-skeleton/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 14:40:59 +0000</pubDate>
		<dc:creator>Tim Groeneveld</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Holidays]]></category>

		<guid isPermaLink="false">http://timg.ws/?p=630</guid>
		<description><![CDATA[Ever written a web application, wondering what will happen months down the track when a client (or even *gasp* you) need to install your web application? I am working on a new installer skeleton (if you will) which will allow you to very simply create a fully functional installer for your slightly complicated web applications. [...]]]></description>
			<content:encoded><![CDATA[<p>Ever written a web application, wondering what will happen months down the track when a client (or even <i>*gasp*</i> you) need to install your web application?</p>
<p>I am working on a new installer skeleton (if you will) which will allow you to very simply create a fully functional installer for your slightly complicated web applications.</p>
<p>Basically, you can provide the user with different modules. Modules are either required or optional. Modules can define what forms they will show to the user. When a modules form is shown to a user, it gets the chance to run code (via a function in the module&#8217;s include file) to both before the user is asked to input any data and after. Also, a separate function can be used to validate that the user has entered correct code.</p>
<p>The installer is (almost) completely modular. I should have an awesome release over the next coming weeks&#8230; here is a sneak peak.</p>
<p><img src="http://timg.ws/wp-content/uploads/2011/09/installer.png" alt="" title="installer" width="803" height="518" class="aligncenter size-full wp-image-631" /></p>
]]></content:encoded>
			<wfw:commentRss>http://timg.ws/2011/09/15/new-installer-skeleton/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CrazyCode and up all night</title>
		<link>http://timg.ws/2010/01/19/crazycode-and-up-all-night/</link>
		<comments>http://timg.ws/2010/01/19/crazycode-and-up-all-night/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 08:00:46 +0000</pubDate>
		<dc:creator>Tim Groeneveld</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[experimental]]></category>

		<guid isPermaLink="false">http://timg.ws/?p=359</guid>
		<description><![CDATA[Do the words &#8220;Crazy Code and up all night&#8221; describe you? Prefer the night more then you do the sunlight? The site CrazyCode is for you! This blog is all about any subject technical. I am trying to find a few contributing editors to also help along with writting articles for the site, so if [...]]]></description>
			<content:encoded><![CDATA[<p>Do the words &#8220;Crazy Code and up all night&#8221; describe you? Prefer the night more then you do the sunlight? The site <a href="http://www.crazycode.ws/">CrazyCode</a> is for you! This blog is all about any subject technical. I am trying to find a few contributing editors to also help along with writting articles for the site, so if you have anything crazy happen to you, please don&#8217;t be affraid to share.</p>
]]></content:encoded>
			<wfw:commentRss>http://timg.ws/2010/01/19/crazycode-and-up-all-night/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cluster 101: Building your first dumb cluster</title>
		<link>http://timg.ws/2009/11/12/cluster-101-building-your-first-dumb-cluster/</link>
		<comments>http://timg.ws/2009/11/12/cluster-101-building-your-first-dumb-cluster/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 13:09:05 +0000</pubDate>
		<dc:creator>Tim Groeneveld</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[www]]></category>

		<guid isPermaLink="false">http://timg.ws/?p=324</guid>
		<description><![CDATA[I would like to introduce you tonight to a x-part series (I don&#8217;t know how many parts there are at the moment, we will see as time progresses) entitled &#8220;How to build a www cluster in x days&#8220;. In this series, we will be looking at a wide variety of different techniques that can be [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to introduce you tonight to a x-part series (I don&#8217;t know how many parts there are at the moment, we will see as time progresses) entitled &#8220;<strong>How to build a www cluster in x days</strong>&#8220;.</p>
<div id="_mcePaste">In this series, we will be looking at a wide variety of different techniques that can be used to create a cluster for hosting your next large project on.</div>
<div id="_mcePaste">When I talk about clusters, I like to categorise them into two particular sections: dumb and intellegent clusters. A dumb cluster is a group of machines that essentially know very little of their surroundings. They do not take into account how many machines are currently running, where the machines are located or how the data is to be devlivered to it&#8217;s location. Put simply: you set it up, and it works. No complex heartbeat configurations (except when necessary) and nothing fancy.</div>
<div></div>
<div>Intelligent clusters on the other hand know alot of information about where other machines on the network are. They know where the vistor to the website is coming from, and what the fastest way is to deliver content to that user.</div>
<div></div>
<div id="_mcePaste">Put simply: a &#8220;dumb cluster&#8221; is a group of machines that are set up to deliver content. If one machine goes down, the load balancer will detect this and bring that node out of the server pool until it is reported back up again. an &#8220;intelegent cluster&#8221; knows where the user is visiting. It can take into consideration what the shortest internet route is to it&#8217;s desired location, or what route should be taken to get the best availible speeds.</div>
<div></div>
<div id="_mcePaste">In this series, we will be looking more at the dumb clustering side of things. Dumb clusters are easy to set up, and well, if you really want an intellegent cluster, hire me :] So lets look at what we are going to discuss in this series.</div>
<div id="_mcePaste"></div>
<div>
<ol>
<li>Setting up our first webserver</li>
<li>Setting up our shared filesystem</li>
<li>Setting up our http/https load balancer</li>
<li>Setting up our mail server</li>
<li>Setting up our backup system</li>
<li>Setting up our mysql cluster</li>
<li>Setting up our shell server</li>
<li>Setting up our TCP/IP load balancer</li>
</ol>
</div>
<div id="_mcePaste">For the purpose of writing this series, I will be using Xen installed on my machine, using CentOS 5.4 as the base opperating system. At any one time, I will have up to five domains running on Xen. I will be testing loads and response times using my laptop.</div>
<div></div>
<div id="_mcePaste"><em>Stay tuned, the first part of the series comes on Tuesday.</em></div>
]]></content:encoded>
			<wfw:commentRss>http://timg.ws/2009/11/12/cluster-101-building-your-first-dumb-cluster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Synergy working propperly on Windows XP / Ubuntu</title>
		<link>http://timg.ws/2009/06/11/getting-synergy-working-propperly-on-windows-xp-ubuntu/</link>
		<comments>http://timg.ws/2009/06/11/getting-synergy-working-propperly-on-windows-xp-ubuntu/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 02:05:17 +0000</pubDate>
		<dc:creator>Tim Groeneveld</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[hints]]></category>
		<category><![CDATA[Synergy]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://timg.ws/?p=285</guid>
		<description><![CDATA[At Digital Pacific, where I work, I do all my work on three computers. It&#8217;s a nice life looking at three monitors all the time, however, it is not the coolest thing in the world when you have three keyboards in front of you. When I moved here, I already knew about Synergy, it&#8217;s great [...]]]></description>
			<content:encoded><![CDATA[<p>At Digital Pacific, where I work, I do all my work on three computers. It&#8217;s a nice life looking at three monitors all the time, however, it is not the coolest thing in the world when you have three keyboards in front of you.</p>
<p>When I moved here, I already knew about Synergy, it&#8217;s great software.</p>
<p>My setup is comprised of a Windows XP (32-bit) machine, Kubuntu [7.04] Intrepid (32-bit) machine and a Kubuntu [9.04] Jaunty (64-bit) machine. The machine that runs all my applications that I write is the new Kubuntu 9.04 machine. To allow my keyboard and mouse to be used over all three of these machines, I have the Windows XP machine run the Synergy server, and all the Linux machines run the client. The reason I have Windows XP run the server is because it&#8217;s usually the machine that&#8217;s off. That might sound strange, but I do alot of work from home, and it seems useless to have a server running that is not needed to be on the machine.</p>
<p>One thing that really used to annoy me with this setup however was the Windows machine would detect all keyboard repeats, but the Linux machines would not detect up, down, page up and page down repeated key presses. You could imagine as a programmer that this could get quite annoying while writing code.</p>
<p>This morning I got frustrated at the Linux machines and I decided it was time to go and compile my own version, with a few patches I found around the net to fix this issue.</p>
<p>Being the package Nazi that I am, I don&#8217;t really like to install anything, unless it&#8217;s installed with <em>some sort</em> of package management. This is how to rebuild Synergy, and get a perfect .deb that you can install <img src='http://timg.ws/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote>
<pre># wget 'http://internode.dl.sourceforge.net/sourceforge/synergy2/synergy-1.3.1.tar.gz'
# tar -xvf synergy-1.3.1.tar.gz
# wget http://ftp.de.debian.org/debian/pool/main/s/synergy/synergy_1.3.1-5.diff.gz
# gunzip synergy_1.3.1-5.diff.gz
# wget http://coderazzi.net/linux/synergy.patch/synergy-coderazzi.patch
# patch -P0 &lt;../synergy-coderazzi.patch
# sudo apt-get install patch build-essential
# cd synergy-1.3.1/
# patch -p0 &lt;../synergy-coderazzi.patch
# chmod +x debian/rules debian/control

Edit debian/rules and after the line that says:
<strong>CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)"</strong>
Add the following line:
find . -type f -name Makefile | xargs perl -pi -e "s/-Werror//g"

# sudo dpkg-buildpackage
# cd ../
# dpkg -i synergy_1.3.1-5*.deb</pre>
</blockquote>
<p>After doing this, and restarting the Synery clients, you will have <em>perfect</em> key responses between all the machines.</p>
<p>Thanks to <a href="http://coderazzi.net/linux/synergy.patch/index.htm">http://coderazzi.net/linux/synergy.patch/index.htm</a> for providing the great patch for this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://timg.ws/2009/06/11/getting-synergy-working-propperly-on-windows-xp-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Xen experience</title>
		<link>http://timg.ws/2008/08/08/my-xen-experience/</link>
		<comments>http://timg.ws/2008/08/08/my-xen-experience/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 22:35:12 +0000</pubDate>
		<dc:creator>Tim Groeneveld</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://timg.ws/?p=91</guid>
		<description><![CDATA[No! When I Xen, I am not talking about a relationship to foreign material. Well, that is &#8211; not exactly. Xen is an open source hypervisor. Think: VMware, but much, much cooler. I was talking to Tim Post, about a project that I was completing for ShareSource2. Basically, the conversation came to the point where [...]]]></description>
			<content:encoded><![CDATA[<p>No! When I Xen, I am not talking about a relationship to foreign material. Well, that is &#8211; not exactly. <a href="http://www.xensource.com/"><strong>Xen</strong></a> is an open source hypervisor. Think: VMware, but much, much cooler.</p>
<p>I was talking to <a href="http://echoreply.us/">Tim Post</a>, about a project that I was completing for <a href="http://beta.sharesource.org/">ShareSource2</a>. Basically, the conversation came to the point where I said that I was using <a href="http://www.openvz.org/"> </a><a href="http://timg.ws/wp-admin/">OpenVZ</a> for my server virtualization. Tim then came to me and said “Why don’t you just use Xen”.</p>
<p>Well, I was not born yesterday &#8211; I did tell him that I had <em>tried</em> Xen, and that when I tried it &#8211; it just <strong>refused</strong> to work.</p>
<p>Then Tim pointed me to Xen unstable, a mercurial repository containing a version of Xen that does not need a new CPU to actually boot up.</p>
<p>Xen unstable, the version I checked out yesterday, is actually tagged as being “3.2.0-rc4″, which probably means that it is coming it’s way to becoming a nice stable Xen product that people other then me have actually been able to use.</p>
<p>This is what I used on my Debian to be able to install a Xen-enabled kernel:</p>
<blockquote><p>~# mkdir Xen<br />
~# cd Xen<br />
~# hg clone http://xenbits.xensource.com/xen-unstable.hg<br />
[[ wait for around 3 minutes while it grabs Xen's history<br />
~# cd xen-unstable.hg<br />
~# apt-get install bin86 bcc<br />
~# make world<br />
[[ Note: this step will also check out a <strong>2.6.18.8-xen</strong> kernel ]]<br />
~# sudo make install</p></blockquote>
<p>Then I had to add an entry to my /boot/grub/menu.lst which looked like this:</p>
<blockquote><p>title Xen 3.2 / XenLinux 2.6<br />
kernel /boot/xen-3.gz console=vga<br />
module /boot/vmlinuz-2.6.18.8-xen root=UUID=66559e96-e405-4a1d-be28-b8caf5b5b89d ro console=tty0<br />
module /boot/initrd-2.6.18.8-xen.img</p></blockquote>
<p>Reboot, select my new kernel, and faster then you can say “WOW IT WORKS” it was booting me into a brand new (well, actually, my OpenVZ kernel was 2.6.20 &#8211; so a brand old) kernel</p>
<p>To try Xen out, just go over to <a href="http://jailtime.org/">http://jailtime.org</a> and download an image of a nice operating system (I chose CentOS 5.1). When you have downloaded your image, do the following:</p>
<blockquote><p>tar -xvf {downloaded image name}<br />
ls -lar<br />
xen create -c {smallest file (usually)}</p></blockquote>
<p>and Voila! First thing you should be introduced to is a nice Grub screen welcoming you to your Xen experience.</p>
<p>I am still as of today yet to actually have built my own Archlinux or Frugalware Xen image. If anyone knows how to do this successfully, please drop me a line or leave a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://timg.ws/2008/08/08/my-xen-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails</title>
		<link>http://timg.ws/2008/07/27/ruby-on-rails/</link>
		<comments>http://timg.ws/2008/07/27/ruby-on-rails/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 06:48:51 +0000</pubDate>
		<dc:creator>Tim Groeneveld</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[experiments]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://timg.ws/?p=14</guid>
		<description><![CDATA[A good friend of mine, Jordan Bracco recently forced me to rediscover Ruby on Rails. He told me that the new version, 1.9 is &#8220;5000x faster&#8221;, so I thought, well, why not! The last version of Ruby I tried was either version 1.7 or 1.8, and it was not really something that I would say [...]]]></description>
			<content:encoded><![CDATA[<p>A good friend of mine, <a href="http://lifeisdead.net/">Jordan Bracco</a> recently forced me to rediscover <strong>Ruby on Rails</strong>. He told me that the new version, 1.9 is &#8220;5000x faster&#8221;, so I thought, well, why not!</p>
<p>The last version of Ruby I tried was either version 1.7 or 1.8, and it was not really something that I would say rocked my boat. It was slow, and just plain did not do (at that time what I though) I wanted.</p>
<p>Me being a version freak &#8211; and a speed freak, decided that I would go to the Ruby, check out their CVS repository out (seriously, these guys need to update to mercurial, <a href="http://hg.mozilla.org/">just like Mozilla has</a>!) and compiled Ruby&#8217;s latest trunk version.</p>
<p>The speed speaks for it&#8217;s self. A basic &#8220;Hello World&#8221; <a href="http://www.rubyonrails.org/"><strong>Ruby on Rails</strong></a> app does 700 requests a second, while a basic &#8220;Hello World&#8221; in PHP does 800. For this use case, yes, PHP is faster, but what you have to remember is that Ruby on Rails is much, much, much more sophisticated in terms of functionality.</p>
<p>I recently rewrote a page that is on ShareSource.org, and it is almost twice as fast. The difference here, is that the Ruby rewrite had <strong>no cache</strong>. Every single hit with <em>Apache benchmark</em> was generated <strong>on demand</strong>, while the PHP version of the ShareSource.org page in question was kept in cache for five minutes.</p>
<p>Aaaahhh, I am loving Ruby already.</p>
]]></content:encoded>
			<wfw:commentRss>http://timg.ws/2008/07/27/ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Anouncing MyBanco!</title>
		<link>http://timg.ws/2008/07/26/anouncing-mybanco/</link>
		<comments>http://timg.ws/2008/07/26/anouncing-mybanco/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 05:55:33 +0000</pubDate>
		<dc:creator>Tim Groeneveld</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[MyBanco]]></category>
		<category><![CDATA[experiments]]></category>
		<category><![CDATA[MyInfo]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://timg.ws/?p=6</guid>
		<description><![CDATA[Ever wanted to run your own bank? Well, my new [experimental] web application allows you to do exactly that. While some may say that I just have way too much time on my hands, others might just say that I should get top marks for my IPT [Information Processing Technology] assignment. We had to build [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://timg.ws/wp-content/uploads/2008/07/money.png"><img class="size-medium wp-image-7 alignleft" title="Money!" src="http://timg.ws/wp-content/uploads/2008/07/money.png" alt="" width="250" height="162" /></a>Ever wanted to run your own bank? Well, my new [experimental] web application allows you to do <strong>exactly</strong> that. While some may say that I just have <em>way</em> too much time on my hands, others might just say that I should get top marks for my <strong>IPT</strong> [Information Processing Technology] assignment.</p>
<p>We had to build a database system, which implemented relational databases, and I thought, well, I could make my very own banking software, and fulfil one of my many dreams: to run my own bank.</p>
<p>The software, written in PHP was a testing ground for many new things that I have wanted to go and try, but never really had a project to try them out on.</p>
<p>I must say that MyBanco would have to be the first application that I have written with the mindset of handling around 700 transactions every second.</p>
<p>MyBanco uses a backend for it&#8217;s database which I have dubbed &#8216;MyInfo&#8217;. MyInfo is a JSON-RPC like protocol, which is easy to use, and can send multiple packets (I just thought then it might have been better to call these chunks&#8230; hmmmm) all at once, and get a response from all those packets. Think of it as a easy to read and faster to pharse version of XML-RPC.</p>
<p>I will chat at MyBanco a little more later, when the time is right, but for the moment this post will do <img src='http://timg.ws/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>(hope you like the new blog!)</p>
]]></content:encoded>
			<wfw:commentRss>http://timg.ws/2008/07/26/anouncing-mybanco/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

