<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>blog . by . paul</title>
	<atom:link href="http://tickblog.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tickblog.wordpress.com</link>
	<description>my hobby game and software projects</description>
	<lastBuildDate>Wed, 18 Jan 2012 21:57:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='tickblog.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/dd100e5826de6b0b0c4e887ab0a50487?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>blog . by . paul</title>
		<link>http://tickblog.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://tickblog.wordpress.com/osd.xml" title="blog . by . paul" />
	<atom:link rel='hub' href='http://tickblog.wordpress.com/?pushpress=hub'/>
		<item>
		<title>OpenGL experiments</title>
		<link>http://tickblog.wordpress.com/2012/01/18/opengl-experiments/</link>
		<comments>http://tickblog.wordpress.com/2012/01/18/opengl-experiments/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 19:32:45 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[cplusplus]]></category>
		<category><![CDATA[GLSL]]></category>
		<category><![CDATA[native]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[Ragnarok]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=683</guid>
		<description><![CDATA[Recently I have been learning basic realtime 3D graphics using OpenGL ES 2.0, GLSL and C++. This is my first time coding anything more serious in 3D and also OpenGL! In theory this could run on any platform that supports OpenGL ES 2.0; ranging from PCs to Smart Phones. All of the content was used purely for learning purposes. Cross-Platform [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=683&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently I have been learning basic realtime 3D graphics using <a title="OpenGL at Wikipedia" href="http://en.wikipedia.org/wiki/OpenGL" target="_blank">OpenGL ES 2.0</a>, <a title="OpenGL Shading Language at Wikipedia" href="http://en.wikipedia.org/wiki/GLSL" target="_blank">GLSL</a> and <a title="C++ Progamming Language at Wikipedia" href="http://en.wikipedia.org/wiki/C%2B%2B" target="_blank">C++</a>. This is my first time coding anything more serious in 3D and also OpenGL! In theory this could run on any platform that supports OpenGL ES 2.0; ranging from PCs to Smart Phones. All of the content was used purely for learning purposes.</p>
<p style="text-align:center;box-shadow:0 0 10px #555;"><a href="http://tickblog.files.wordpress.com/2012/01/cube_x31.png"><img class="aligncenter wp-image-684" title="3x Cube" src="http://tickblog.files.wordpress.com/2012/01/cube_x31.png?w=712&#038;h=164" alt="" width="712" height="164" /></a><span style="font-size:12px;">Cross-Platform window management using PowerVR VRShell.<br />
Initialization of projection and view matrices with the help of GLM (OpengGL Mathematics).<br />
Rendering 3x colored cubes using a single Vertex Buffer Object. Simple interpolating-color fragment shader.</span></p>
<p style="text-align:center;box-shadow:0 0 10px #555;"><a href="http://tickblog.files.wordpress.com/2012/01/textured_cubes.png"><img class="aligncenter wp-image-689" title="3x Textured Cube" src="http://tickblog.files.wordpress.com/2012/01/textured_cubes.png?w=712&#038;h=227" alt="3x Textured Cube" width="712" height="227" /></a><span style="font-size:12px;">Loading of image data using FreeImage. Rendering of three rotating and textured cubes.</span></p>
<p style="text-align:center;">Used Libraries: <a title="Open Graphics Library for Embedded Systems 2.0" href="http://www.khronos.org/opengles/2_X/" target="_blank">OpenGL ES 2.0</a>, <a title="OpenGL Mathematics" href="http://glm.g-truc.net/" target="_blank">GLM</a>, <a title="FreeImage - a cross platform image loading library" href="http://freeimage.sourceforge.net/" target="_blank">FreeImage</a>, <a title="Object Oriented Input System" href="http://sourceforge.net/projects/wgois/" target="_blank">OOIS</a>, <a title="boost c++ libraries" href="http://www.boost.org/" target="_blank">Boost</a></p>

<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/cube_x3/' title='3x Cube'><img data-attachment-id='739' data-orig-size='907,208' data-liked='0'width="150" height="34" src="http://tickblog.files.wordpress.com/2012/01/cube_x31.png?w=150&#038;h=34" class="attachment-thumbnail" alt="3x Cube" title="3x Cube" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/textured_cubes/' title='3x Textured Cube'><img data-attachment-id='689' data-orig-size='992,313' data-liked='0'width="150" height="47" src="http://tickblog.files.wordpress.com/2012/01/textured_cubes.png?w=150&#038;h=47" class="attachment-thumbnail" alt="3x Textured Cube" title="3x Textured Cube" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/triangles/' title='World Triangles'><img data-attachment-id='696' data-orig-size='1027,789' data-liked='0'width="150" height="115" src="http://tickblog.files.wordpress.com/2012/01/triangles.png?w=150&#038;h=115" class="attachment-thumbnail" alt="World Triangles" title="World Triangles" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/quaternion_based_camera/' title='Single Textured World'><img data-attachment-id='698' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/quaternion_based_camera.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Single Textured World" title="Single Textured World" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/textures/' title='World with multiple textures'><img data-attachment-id='701' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/textures.png?w=150&#038;h=117" class="attachment-thumbnail" alt="World with multiple textures" title="World with multiple textures" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/textures_2/' title='World with invalid texture uvs'><img data-attachment-id='703' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/textures_2.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Fighting Texture Coordinates" title="World with invalid texture uvs" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/textures_3/' title='More invalid texture uvs'><img data-attachment-id='705' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/textures_3.png?w=150&#038;h=117" class="attachment-thumbnail" alt="More invalid texture uvs" title="More invalid texture uvs" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/textures_4/' title='Textured Castle'><img data-attachment-id='706' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/textures_4.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Textured Castle" title="Textured Castle" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/triangle_normals_2/' title='Triangle Normals'><img data-attachment-id='707' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/triangle_normals_2.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Triangle Normals" title="Triangle Normals" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/triangle_normals_3/' title='Triangle Normals mixed with Texture'><img data-attachment-id='708' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/triangle_normals_3.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Triangle Normals mixed with Texture" title="Triangle Normals mixed with Texture" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/vertex_shading/' title='Vertex Shading'><img data-attachment-id='709' data-orig-size='1028,803' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/vertex_shading.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Vertex Shading" title="Vertex Shading" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/vertex_shading_2/' title='More Vertex Shading'><img data-attachment-id='710' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/vertex_shading_2.png?w=150&#038;h=117" class="attachment-thumbnail" alt="More Vertex Shading" title="More Vertex Shading" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/vertex_shading_3/' title='Vertex Shading with blue light color'><img data-attachment-id='711' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/vertex_shading_3.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Vertex Shading with blue light color" title="Vertex Shading with blue light color" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/vertex_shading_3_without/' title='Without Vertex Shading'><img data-attachment-id='712' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/vertex_shading_3_without.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Without Vertex Shading" title="Without Vertex Shading" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/specular/' title='Specular Reflections'><img data-attachment-id='713' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/specular.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Specular Reflections" title="Specular Reflections" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/specular_3/' title='Specular Reflection'><img data-attachment-id='714' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/specular_3.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Specular Reflection" title="Specular Reflection" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/specular_5/' title='Specular Reflections'><img data-attachment-id='715' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/specular_5.png?w=150&#038;h=117" class="attachment-thumbnail" alt="More specular reflections. Smooth!" title="Specular Reflections" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/specular_4/' title='Specular Reflections'><img data-attachment-id='716' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/specular_4.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Specular Reflections" title="Specular Reflections" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/basic_model/' title='Basic Model'><img data-attachment-id='718' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/basic_model.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Basic Model" title="Basic Model" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/smooth_vertex_normals_rendering/' title='Model with Smooth Vertex Normals'><img data-attachment-id='719' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/smooth_vertex_normals_rendering.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Model with Smooth Vertex Normals" title="Model with Smooth Vertex Normals" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/strange_world_1/' title='Strange World'><img data-attachment-id='720' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/strange_world_1.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Strange World" title="Strange World" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/strange_world_2/' title='Slightly less Strange World'><img data-attachment-id='721' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/strange_world_2.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Slightly less Strange World" title="Slightly less Strange World" /></a>
<a href='http://tickblog.wordpress.com/2012/01/18/opengl-experiments/strange_world_4/' title='Strange World'><img data-attachment-id='722' data-orig-size='1028,804' data-liked='0'width="150" height="117" src="http://tickblog.files.wordpress.com/2012/01/strange_world_4.png?w=150&#038;h=117" class="attachment-thumbnail" alt="Strange World" title="Strange World" /></a>

<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/683/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/683/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/683/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=683&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2012/01/18/opengl-experiments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/cube_x31.png" medium="image">
			<media:title type="html">3x Cube</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/textured_cubes.png" medium="image">
			<media:title type="html">3x Textured Cube</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/cube_x31.png?w=150" medium="image">
			<media:title type="html">3x Cube</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/textured_cubes.png?w=150" medium="image">
			<media:title type="html">3x Textured Cube</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/triangles.png?w=150" medium="image">
			<media:title type="html">World Triangles</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/quaternion_based_camera.png?w=150" medium="image">
			<media:title type="html">Single Textured World</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/textures.png?w=150" medium="image">
			<media:title type="html">World with multiple textures</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/textures_2.png?w=150" medium="image">
			<media:title type="html">World with invalid texture uvs</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/textures_3.png?w=150" medium="image">
			<media:title type="html">More invalid texture uvs</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/textures_4.png?w=150" medium="image">
			<media:title type="html">Textured Castle</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/triangle_normals_2.png?w=150" medium="image">
			<media:title type="html">Triangle Normals</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/triangle_normals_3.png?w=150" medium="image">
			<media:title type="html">Triangle Normals mixed with Texture</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/vertex_shading.png?w=150" medium="image">
			<media:title type="html">Vertex Shading</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/vertex_shading_2.png?w=150" medium="image">
			<media:title type="html">More Vertex Shading</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/vertex_shading_3.png?w=150" medium="image">
			<media:title type="html">Vertex Shading with blue light color</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/vertex_shading_3_without.png?w=150" medium="image">
			<media:title type="html">Without Vertex Shading</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/specular.png?w=150" medium="image">
			<media:title type="html">Specular Reflections</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/specular_3.png?w=150" medium="image">
			<media:title type="html">Specular Reflection</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/specular_5.png?w=150" medium="image">
			<media:title type="html">Specular Reflections</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/specular_4.png?w=150" medium="image">
			<media:title type="html">Specular Reflections</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/basic_model.png?w=150" medium="image">
			<media:title type="html">Basic Model</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/smooth_vertex_normals_rendering.png?w=150" medium="image">
			<media:title type="html">Model with Smooth Vertex Normals</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/strange_world_1.png?w=150" medium="image">
			<media:title type="html">Strange World</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/strange_world_2.png?w=150" medium="image">
			<media:title type="html">Slightly less Strange World</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2012/01/strange_world_4.png?w=150" medium="image">
			<media:title type="html">Strange World</media:title>
		</media:content>
	</item>
		<item>
		<title>New Personal Aggregation Website</title>
		<link>http://tickblog.wordpress.com/2011/11/23/new-personal-aggregation-website/</link>
		<comments>http://tickblog.wordpress.com/2011/11/23/new-personal-aggregation-website/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 17:59:05 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=669</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=669&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_670" class="wp-caption aligncenter" style="width: 718px"><a href="http://paul.federrot.at/"><br />
<img class="size-full wp-image-678" title="http://paul.federrot.at/" src="http://tickblog.files.wordpress.com/2011/11/paulfederrot-3.png?w=720" alt="http://paul.federrot.at/"   /></a><p class="wp-caption-text">http://paul.federrot.at/</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/669/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=669&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2011/11/23/new-personal-aggregation-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2011/11/paulfederrot-3.png" medium="image">
			<media:title type="html">http://paul.federrot.at/</media:title>
		</media:content>
	</item>
		<item>
		<title>Absurd Haskell code on github</title>
		<link>http://tickblog.wordpress.com/2011/11/05/absurd-haskell-code-on-github/</link>
		<comments>http://tickblog.wordpress.com/2011/11/05/absurd-haskell-code-on-github/#comments</comments>
		<pubDate>Sat, 05 Nov 2011 17:44:23 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Fractals]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[Sierpinski Triangle]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=640</guid>
		<description><![CDATA[I&#8217;ve created a new github repository for some of my Haskell experiments. Feel free to check out the code: https://github.com/tivtag/Haskell.Absurd.Code<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=640&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created a new github repository for some of my <strong><a title="http://haskell.org/haskellwiki/Haskell" href="http://haskell.org/haskellwiki/Haskell" target="_blank">Haskell</a> </strong>experiments.<br />
Feel free to check out the code: <span style="color:#ff0000;"><strong><a href="https://github.com/tivtag/Haskell.Absurd.Code"><span style="color:#ff0000;">https://github.com/tivtag/Haskell.Absurd.Code</span></a></strong></span></p>
<div id="attachment_642" class="wp-caption aligncenter" style="width: 442px"><a href="http://tickblog.files.wordpress.com/2011/11/sierpinski1.png"><img class="size-full wp-image-642" title="Sierpinski Triangle" src="http://tickblog.files.wordpress.com/2011/11/sierpinski1.png?w=720" alt="Sierpinski Triangle"   /></a><p class="wp-caption-text">Sierpinski Triangle drawn using Haskell</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/640/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=640&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2011/11/05/absurd-haskell-code-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2011/11/sierpinski1.png" medium="image">
			<media:title type="html">Sierpinski Triangle</media:title>
		</media:content>
	</item>
		<item>
		<title>Zelda video&#8217;n shots</title>
		<link>http://tickblog.wordpress.com/2011/08/19/611/</link>
		<comments>http://tickblog.wordpress.com/2011/08/19/611/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 22:49:27 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[The Legend of Zelda: Black Crown]]></category>
		<category><![CDATA[XNA Framework]]></category>
		<category><![CDATA[Black Crown]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[fangame]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[The Legend of Zelda]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[youtube]]></category>
		<category><![CDATA[Zelda]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=611</guid>
		<description><![CDATA[TLoZ: BC is a free offline hack and slash RPG, best compared to Diablo. In BC you hunt for the best items, steadily improving your stats and talents! Here are some new screenshots and a simple gameplay video. Installer Download http://tick.federrot.at/zelda/beta/TheLegendOfZelda_BlackCrown.msi Don&#8217;t forget to get latest patch by using the Zelda Updater! Last patch: 22.11.11<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=611&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;">TLoZ: BC is a free offline <strong>hack and slash</strong> RPG, best compared to Diablo.<br />
In BC you hunt for the best items, steadily improving your stats and talents!</p>
<p style="text-align:center;">Here are some new screenshots and a simple gameplay video.<span style="color:#ffffff;"><br />
</span></p>
<p style="text-align:center;"><strong><span style="color:#ff0000;">Installer Download</span></strong><br />
<a style="font-size:13px;font-weight:normal;" href="http://tick.federrot.at/zelda/beta/TheLegendOfZelda_BlackCrown.msi" target="_blank"><span style="color:#ff0000;">http://tick.federrot.at/zelda/beta/TheLegendOfZelda_BlackCrown.msi</span></a></p>
<p style="text-align:center;"><span style="color:#ffffff;"><span style="color:#000000;">Don&#8217;t forget to get latest patch by using the Zelda Updater! <strong>Last patch: 22.11.11</strong></span></span></p>
<p style="text-align:center;"><img class="wp-image-612 aligncenter" style="color:#000000;border-color:initial;border-style:initial;" title="Zelda Collage" src="http://tickblog.files.wordpress.com/2011/08/collage_1.png?w=500&#038;h=240" alt="" width="500" height="240" /></p>
<p style="text-align:center;"><span style="text-align:center; display: block;"><a href="http://tickblog.wordpress.com/2011/08/19/611/"><img src="http://img.youtube.com/vi/mzC30qypffg/2.jpg" alt="" /></a></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/611/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=611&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2011/08/19/611/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2011/08/collage_1.png" medium="image">
			<media:title type="html">Zelda Collage</media:title>
		</media:content>
	</item>
		<item>
		<title>C# &lt;3 Ruby</title>
		<link>http://tickblog.wordpress.com/2011/04/25/c-3s-ruby/</link>
		<comments>http://tickblog.wordpress.com/2011/04/25/c-3s-ruby/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 12:30:17 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[ironruby]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=520</guid>
		<description><![CDATA[IronRuby allows you to get some of the freedom and expressiveness of Ruby in the .NET biz. world. Recently I&#8217;ve been using it as a simple game scripting language. Warning: This post is a beginner tutorial on how to get started with hosting IronRuby inside your C# application. . . . Step 1 Download the IronRuby [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=520&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>IronRuby allows you to get some of the freedom and expressiveness of <a title="Official Ruby Website " href="http://www.ruby-lang.org/" target="_blank">Ruby</a> in the .NET biz. world. Recently I&#8217;ve been using it as a simple <a title="My Zelda Fan Game now uses IronRuby" href="http://tickblog.wordpress.com/2009/05/17/the-legend-begins/" target="_blank">game scripting</a> language.</p>
<p>Warning: This post is a beginner tutorial on how to get started with hosting IronRuby inside your C# application.<br />
<span style="color:#ffffff;">.</span><br />
<span style="color:#ffffff;">.</span><br />
<a href="http://tickblog.files.wordpress.com/2011/04/csruby1.png"><img class="aligncenter wp-image-555" title="C# loves Ruby" src="http://tickblog.files.wordpress.com/2011/04/csruby1.png?w=180&#038;h=77" alt="C# loves Ruby" width="180" height="77" /></a><br />
<span style="color:#ffffff;">.</span><br />
<strong>Step 1</strong><br />
Download the IronRuby binaries from Codeplex: <a title="IronRuby on Codeplex" href="http://ironruby.codeplex.com/" target="_blank">http://ironruby.codeplex.com/</a> Warning: As of writing this the IronRuby 1.1.3 installer won&#8217;t install the binaries.</p>
<p><strong>Step 2</strong><br />
Add references to IronRuby.dll, Microsoft.Csharp.dll and Microsoft.Scripting.dll to your project.<br />
<span style="color:#ffffff;">.</span><br />
<strong>Step 3</strong><br />
ScriptEngine and ScriptScope are the key classes of the Dynamic Language Runtime that allow us to run Ruby code: (<a href="http://tickblog.files.wordpress.com/2011/04/blogtutorialironruby_rename_to_zip.docx">Download Tutorial Source Code &#8211; Rename to Zip</a>)</p>
<p><pre class="brush: csharp;">
// Tutorial 1:

// Initiate the main object that drives IronRuby:
var engine = IronRuby.Ruby.CreateEngine();

// And here goes the magic:
engine.Execute( &quot;puts 'Meow, from Ruby!'&quot; );
</pre></p>
<p><pre class="brush: csharp;">
// Tutorial 2:
var engine = IronRuby.Ruby.CreateEngine();

// ScriptScopes allow you to capture variables and methods
// within a specific non-global scope.
ScriptScope scope = engine.CreateScope();

// The ScriptScope API allows us to easily set variables
// from .NET:
scope.SetVariable( &quot;score&quot;, 10 );

// You can also use Ruby to set variables:
engine.Execute( &quot;max_score = 10&quot;, scope );

// Let us access the variables now. Note the usage of &quot;%Q/ /&quot;
// as a replacement of &quot; &quot; in our Ruby code.
engine.Execute( &quot;puts %Q/Your score is #{score} of #{max_score}!/&quot;, scope );
</pre></p>
<p><span style="color:#ffffff;">.</span><br />
<strong>Step 4 &#8211; Domain Specific Languages</strong><br />
We can &#8216;teach&#8217; our scripts a set of specialized methods that make it easy to interact with the problem domain. With the help of Ruby&#8217;s expressiveness our scripts will look more like a custom language that is focused on the target domain. See <a href="https://github.com/tivtag/Teta">Teta on github</a> for a text adventure that is build around a Ruby <a title="Wikipedia on Domain Specific Languages" href="http://en.wikipedia.org/wiki/Domain-specific_language" target="_blank">DSL</a>.</p>
<p><pre class="brush: ruby;">
# Here's a silly example from my Zelda fangame:
on_time_changed do |time|
  if time == 'DayBegan' then
    if roll_1_in 100 then
      spawn_item 'Ruby1'

      after_seconds 2 do
         fairy_says &quot;Oh, what's that? Lucky!&quot;
      end
    end
  end
end
</pre></p>
<p><pre class="brush: csharp;">
// Tutorial 3 - how to get started with a Ruby DSL from C#:
var engine = IronRuby.Ruby.CreateEngine();
var scope = engine.CreateScope();

string domain =
    @&quot;
        class Universe
            attr_accessor :underlying_theory
            attr_accessor :groups

            def initialize()
                @groups = []
            end

            def to_s
                %Q/Universe based on #{underlying_theory} is filled with: #{groups}./
            end
        end

        class Group
            attr_accessor :name
            attr_accessor :galaxies

            def initialize()
                @galaxies = []
            end
        end

        class Galaxy
            attr_accessor :name
        end
    &quot;;

// Now teach it about our domain. You could use normal C# classes too.
// But those might be at times be more awkward to access from within Ruby.
engine.Execute( domain, scope );

string dsl =
    @&quot;
        # DSL:
        def universe(hash)
            u = @@current_u = Universe.new()
            u.underlying_theory = hash[:based_on]

            yield if block_given?
            u
        end

        def group(named)
            g = @@currrent_g = Group.new()
            g.name = named

            yield if block_given?
            @@current_u.groups &lt;&lt; g
        end

        def galaxy(named)
            g = Galaxy.new()
            g.name = named

            @@currrent_g.galaxies &lt;&lt; g
        end
    &quot;;

// 'Enable' our tiny DSL:
engine.Execute( dsl, scope );

// And lets use it to create some universes:
string ruby =
    @&quot;
        mt = universe based_on: 'M-Theory' do
            group 'Local group' do
                galaxy 'Milky Way'
                galaxy 'Andromeda Galaxy'
                galaxy 'Triangulum Galaxy'
            end

            group 'Virgo Cluster'
            group 'Centaurus Supercluster'
        end

        hlt = universe based_on: 'HL-Theory' do
            group 'Black Mesa' do
                galaxy 'On a Rail '
                galaxy 'Questionable Ethics'
                galaxy 'Lambda Core'
                galaxy 'Nihilanth'
            end
        end

        et = universe based_on: 'Empty-World Theory'
        [mt, hlt, et]
    &quot;;

// ScriptEngine.Execute returns our list of universes as the result of the ruby code:
dynamic universes = engine.Execute( ruby, scope );

foreach( dynamic universe in universes )
{
    Console.WriteLine();
    Console.WriteLine( universe );
}
</pre></p>
<p><span style="color:#ffffff;">.</span><br />
<strong>Step 5 &#8211; Miscellaneous Notes</strong><br />
I encourage you to use a Test/Specification Driven Development style when working with your Ruby scripts (It is imho a must with dynamic languages). Personally I can&#8217;t yet rate how easy/hard it is to get something like <a title="RSpec Official Website" href="http://relishapp.com/rspec" target="_blank">RSpec</a> running with IronRuby and loose scripts.</p>
<p>The outside image of IronRuby looks a bit shady at the moment. The <a title="Official IronRuby Website" href="http://www.ironruby.net/" target="_blank">official website</a> doesn&#8217;t link to the newest version, and all in all the project is fragmentted over too many different domains. It doesn&#8217;t help that the installer and Visual Studio integration (v 1.1.3) is somewhat bugged. From the inside we&#8217;ve got a very solid product that can get you some of the <span style="color:#ff0000;">Ruby love</span> inside the .NET world. Thanks to the open source community on continuing work on IronRuby and <a title="IronPython" href="http://ironpython.codeplex.com/" target="_blank">IronPython</a>! &lt;3</p>
<p><span style="color:#ffffff;">.</span><br />
<strong>Step 6 &#8211; Additional Resources</strong><br />
<a href="http://tickblog.files.wordpress.com/2011/04/blogtutorialironruby_rename_to_zip.docx">IronRuby Tutorial Source Code &#8211; Rename to Zip</a></p>
<p><a title="IronRuby on Codeplex" href="http://ironruby.codeplex.com/" target="_blank">IronRuby on Codeplex</a><br />
<a title="IronRuby Mailing List" href="http://rubyforge.org/pipermail/ironruby-core/" target="_blank">IronRuby Mailing List</a><br />
<a title="IronRuby Source Code on github" href="https://github.com/IronLanguages" target="_blank">IronRuby Source Code</a><br />
<a title="IronRuby Issue Tracker" href="http://ironruby.codeplex.com/workitem/list/basic?ProjectName=ironruby" target="_blank">IronRuby Issue Tracker</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/520/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/520/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/520/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=520&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2011/04/25/c-3s-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2011/04/csruby1.png" medium="image">
			<media:title type="html">C# loves Ruby</media:title>
		</media:content>
	</item>
		<item>
		<title>2010 in review</title>
		<link>http://tickblog.wordpress.com/2011/01/02/2010-in-review/</link>
		<comments>http://tickblog.wordpress.com/2011/01/02/2010-in-review/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 11:57:40 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Fun Stuff]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[blog stats]]></category>
		<category><![CDATA[Fractals]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=486</guid>
		<description><![CDATA[. Welcome, prime year 2011! 2011=157+163+167+173+179+181+191+193+197+199+211 . . 2010 was a quite exiting year. It was my first year working in the software industry (or even working at all, this is my first job)!. In my free time I was (am) trying to extend my mind to the non-Microsoft world: Ubuntu Ruby (blog post -&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=486&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center;">.</h2>
<h2 style="text-align:center;">Welcome<strong>,</strong><span style="color:#ff0000;"><strong> prime <span style="color:#000000;">year</span> 2011<span style="color:#000000;">!</span></strong></span></h2>
<p style="text-align:center;"><em>2011=157+163+167+173+179+181+191+193+197+199+211</em><br />
<span style="color:#ffffff;">.</span><br />
<a href="http://tickblog.files.wordpress.com/2011/01/fractal-image.png" target="_blank"><img class="aligncenter size-full wp-image-495" style="border:0 none;" title="Fractal Image" src="http://tickblog.files.wordpress.com/2011/01/fractal-image.png?w=720" alt=""   /></a></p>
<p><span style="color:#ffffff;">.</span><br />
<strong>2010 was </strong>a quite <strong>exiting</strong> year. It was my first year working in the software industry (or even working at all, this is <strong>my first job</strong>)!<span style="color:#ffffff;">.</span></p>
<p><strong>In my free time </strong>I was (am) trying to extend my mind to the non-<del>Microsoft</del> world:</p>
<ul>
<li><a title="http://www.ubuntu.com/" href="http://www.ubuntu.com/" target="_blank">Ubuntu</a></li>
<li><a title="http://www.ruby-lang.org" href="http://www.ruby-lang.org" target="_blank">Ruby</a> (blog post -&gt; <a title="https://tickblog.wordpress.com/2010/11/20/introducing-a-text-adventure-or-how-i-learned-ruby/" href="https://tickblog.wordpress.com/2010/11/20/introducing-a-text-adventure-or-how-i-learned-ruby/" target="_blank">here</a>)</li>
<li>Some <a title="https://secure.wikimedia.org/wikipedia/en/wiki/Behavior_Driven_Development" href="https://secure.wikimedia.org/wikipedia/en/wiki/Behavior_Driven_Development">BDD</a> on the technical side with <a title="http://rspec.info/" href="http://rspec.info/" target="_blank">RSpec</a> and <a title="http://cukes.info/" href="http://cukes.info/" target="_blank">Cucumber</a></li>
<li>A bit of <a title="http://www.mongodb.org/" href="http://www.mongodb.org/" target="_blank">MongoDB</a> and <a title="http://rubyonrails.org/" href="http://rubyonrails.org/" target="_blank">Ruby on Rails</a></li>
<li>Physics Game Programming using the <a title="http://farseerphysics.codeplex.com/" href="http://farseerphysics.codeplex.com/">Farseer Physics Engine 3.x</a> (more about this later this year)</li>
<li>And I&#8217;ve taught my father some <a title="http://www.haskell.org" href="http://www.haskell.org" target="_blank">Haskell</a>!</li>
</ul>
<p><strong>At work</strong> I was mostly using C# and C:</p>
<ul>
<li>Micro-controller programming in C using <a title="https://secure.wikimedia.org/wikipedia/en/wiki/Open_AT_OS" href="https://secure.wikimedia.org/wikipedia/en/wiki/Open_AT_OS">OpenAT</a> &#8211; doing position detection using <a title="https://secure.wikimedia.org/wikipedia/en/wiki/Global_Positioning_System" href="https://secure.wikimedia.org/wikipedia/en/wiki/Global_Positioning_System">the GPS</a> (really FUN!)</li>
<li>I&#8217;ve introduced <a title="https://secure.wikimedia.org/wikipedia/en/wiki/Solid_%28object-oriented_design%29" href="https://secure.wikimedia.org/wikipedia/en/wiki/Solid_%28object-oriented_design%29" target="_blank">S.O.L.I.D.</a> and similar design practices. More teaching (fun:)! Also the following technologies; including a new shared in-house base framework:</li>
<li><a title="https://code.google.com/p/autofac/" href="https://code.google.com/p/autofac/">AutoFac</a></li>
<li><a title="http://caliburnmicro.codeplex.com/" href="http://caliburnmicro.codeplex.com/" target="_blank">Caliburn.Micro</a></li>
<li><a title="http://nhforge.org/Default.aspx" href="http://nhforge.org/Default.aspx" target="_blank">NHibernate</a> + <a title="http://fluentnhibernate.org/" href="http://fluentnhibernate.org/" target="_blank">FluentNHibernate</a></li>
</ul>
<p><span style="color:#ffffff;">.</span></p>
<h2>Blog stats</h2>
<p>The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here&#8217;s a high level summary of its overall blog health:</p>
<p><img style="border:1px solid #ddd;background:#f5f5f5;padding:20px;" src="http://s0.wp.com/i/annual-recap/meter-healthy2.gif" alt="Healthy blog!" width="250" height="183" /></p>
<p>The <em>Blog-Health-o-Meter™</em> reads This blog is doing awesome!.</p>
<h2><span style="color:#ffffff;">.</span></h2>
<h2>Crunchy numbers</h2>
<p><a href="http://tickblog.files.wordpress.com/2008/06/invtetris_1.png"><img style="max-height:230px;float:right;border:1px solid #ddd;background:#fff;margin:0 0 1em 1em;padding:6px;" src="http://tickblog.files.wordpress.com/2008/06/invtetris_1.png?w=288" alt="Featured image" /></a></p>
<p>A Boeing 747-400 passenger jet can hold 416 passengers. This blog was viewed about <strong>3,500</strong> times in 2010. That&#8217;s about 8 full 747s.</p>
<p>In 2010, there were <strong>7</strong> new posts, growing the total archive of this blog to 29 posts. There were <strong>10</strong> pictures uploaded, taking up a total of 881kb. That&#8217;s about a picture per month.</p>
<p>The busiest day of the year was April 18th with <strong>48</strong> views. The most popular post that day was <a style="color:#08c;" href="http://tickblog.wordpress.com/2008/06/25/invtetris-inverse-space-two-player-tetris/">InvTetris &#8211; Inverse-Space Two-Player Tetris</a>.</p>
<p><span style="color:#ffffff;">.</span></p>
<h2>Where did they come from?</h2>
<p>The top referring sites in 2010 were <strong>en.wordpress.com</strong>, <strong>bucles.wordpress.com</strong>, <strong>twitter.com</strong>, <strong>tick.federrot.at</strong>, and <strong>zfgc.com</strong>.</p>
<p>Some visitors came searching, mostly for <strong>mathematical shapes</strong>, <strong>fractals</strong>, <strong>fractal</strong>, <strong>inverse tetris</strong>, and <strong>particles</strong>.</p>
<h2><span style="color:#ffffff;">.</span></h2>
<h2>Attractions in 2010</h2>
<p>These are the posts and pages that got the most views in 2010.</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">1</div>
<p><a style="margin-right:10px;" href="http://tickblog.wordpress.com/2008/06/25/invtetris-inverse-space-two-player-tetris/">InvTetris &#8211; Inverse-Space Two-Player Tetris</a> <span style="color:#999;font-size:8pt;">June 2008</span><br />
5 comments</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">2</div>
<p><a style="margin-right:10px;" href="http://tickblog.wordpress.com/2008/04/20/the-propertygrid-as-a-hobbyist-game-progammer/">The PropertyGrid &#8211; a great friend.</a> <span style="color:#999;font-size:8pt;">April 2008</span><br />
1 comment</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">3</div>
<p><a style="margin-right:10px;" href="http://tickblog.wordpress.com/2008/04/22/super-shapes-my-first-wpf-application/">Super Shapes &#8211; my first WPF application</a> <span style="color:#999;font-size:8pt;">April 2008</span><br />
6 comments</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">4</div>
<p><a style="margin-right:10px;" href="http://tickblog.wordpress.com/2008/08/01/fractals-on-the-gpu/">Fractals on the Gpu</a> <span style="color:#999;font-size:8pt;">August 2008</span></p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">5</div>
<p><a style="margin-right:10px;" href="http://tickblog.wordpress.com/2008/10/04/the-legend-of-zelda-black-crown-first-batch-of-images/">The Legend of Zelda : Black Crown | First Batch of Images</a> <span style="color:#999;font-size:8pt;">October 2008</span><br />
2 comments</p>
<div id="_mcePaste" class="mcePaste" style="position:absolute;left:-10000px;top:456px;width:1px;height:1px;overflow:hidden;">
<ul>
<li>And I&#8217;ve taught my father some <a title="http://www.haskell.org" href="http://www.haskell.org" target="_blank">Haskell</a>!</li>
</ul>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/486/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/486/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/486/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=486&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2011/01/02/2010-in-review/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2011/01/fractal-image.png" medium="image">
			<media:title type="html">Fractal Image</media:title>
		</media:content>

		<media:content url="http://s0.wp.com/i/annual-recap/meter-healthy2.gif" medium="image">
			<media:title type="html">Healthy blog!</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2008/06/invtetris_1.png?w=288" medium="image">
			<media:title type="html">Featured image</media:title>
		</media:content>
	</item>
		<item>
		<title>Dark &amp; Light</title>
		<link>http://tickblog.wordpress.com/2010/12/04/dark-light/</link>
		<comments>http://tickblog.wordpress.com/2010/12/04/dark-light/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 16:59:54 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Fun Stuff]]></category>
		<category><![CDATA[black]]></category>
		<category><![CDATA[dark]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[light]]></category>
		<category><![CDATA[white]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=478</guid>
		<description><![CDATA[http://tick.federrot.at/dark/light.html Dark &#38; Light &#8211; a random Java Script arty thing<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=478&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2 style="text-align:center;"><a href="http://tickblog.files.wordpress.com/2010/12/sweet-bitter.png"><img class="aligncenter size-full wp-image-479" title="Sweet and Bitter" src="http://tickblog.files.wordpress.com/2010/12/sweet-bitter.png?w=720" alt=""   /></a><a title="Dark &amp; Light" href="http://tick.federrot.at/dark/light.html"></p>
<p>http://tick.federrot.at/dark/light.html</a></h2>
<p style="text-align:center;">Dark &amp; Light &#8211; a random Java Script arty thing</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/478/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/478/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/478/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=478&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2010/12/04/dark-light/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2010/12/sweet-bitter.png" medium="image">
			<media:title type="html">Sweet and Bitter</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing a ruby adventure in text or how I learn(ed) Ruby</title>
		<link>http://tickblog.wordpress.com/2010/11/20/introducing-a-text-adventure-or-how-i-learned-ruby/</link>
		<comments>http://tickblog.wordpress.com/2010/11/20/introducing-a-text-adventure-or-how-i-learned-ruby/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 17:17:44 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Domain Specific Languages]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Test Driven Learning]]></category>
		<category><![CDATA[Teta]]></category>
		<category><![CDATA[Text Adventure]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=439</guid>
		<description><![CDATA[I am currently studying the Ruby programming language. You know; as a software developer you should learn at-least one new language per year! Ruby is a dynamic multi-paradigm programming language that is really fun to use! This time around I&#8217;ve decided to focus on learning a testing framework for Ruby very early. My choice was the very elegant [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=439&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am currently studying the <strong><a href="http://www.ruby-lang.org/">Ruby</a> programming language</strong>. You know; as a software developer you should learn at-least one new language per year! <strong>Ruby</strong> is a dynamic multi-paradigm programming language that is <span style="color:#ff0000;"><strong>really</strong> <strong>fun</strong></span> to use!</p>
<p>This time around I&#8217;ve decided to focus on learning a <strong>testing</strong> framework for Ruby very early. My choice was the very elegant <a href="http://rspec.info/">rspec</a> specification framework. RSpec, as most great Ruby libraries, uses an (internal) <a href="http://en.wikipedia.org/wiki/Domain-specific_language">Domain Specific Language</a> to describe its application domain; which in RSpecs case is describing the expected behaviour of your application.</p>
<p>At the very beginning of my journey I&#8217;ve used the Interactive Ruby (irb) <a href="http://en.wikipedia.org/wiki/Read-eval-print_loop">REPL</a> (<strong>Read-Eval-Print Loop</strong>) to explore the language. REPLs are a great way to explore your language of choice! Soon after I&#8217;ve started to write tests (or rather specifications) for features of the Ruby language. Personally this didn&#8217;t keep me going for very long; it was quite useful.. but.. I needed an actual project to work on!</p>
<p>Of all the goodies Ruby comes with, its <strong>Meta Programming</strong> features are the most thrilling for me. I wanted to write my own <strong>Domain Specific Language</strong> (DSL) inside Ruby. And thus was born <strong>Teta, </strong>a ruby<strong> te</strong>x<strong>t a</strong>dventure<strong>!</strong></p>
<p>Take a look at <a href="https://github.com/tivtag/Teta/blob/master/lib/data/chapter_1.rb">this link</a> for an example of the DSL. (You can find all of the <a href="https://github.com/tivtag/Teta">source code of Teta</a> on github.)</p>
<p>When I am working on Teta I use three Terminal sessions (in TABs). The <strong>1st TAB</strong> has got <strong>VIM</strong> loaded to edit the source code (Derek Wyatt has got tons of <a href="http://vimeo.com/6999927">great tutorial videos</a> about VIM):</p>
<p style="text-align:center;"><a href="http://tickblog.files.wordpress.com/2010/11/devarea.png"><img class="aligncenter size-full wp-image-444" style="border:0 none white;" title="VIM" src="http://tickblog.files.wordpress.com/2010/11/devarea.png?w=720" border="0" alt="VIM text editor"   /></a></p>
<p><span style="color:#ffffff;">.</span><br />
The <strong>2nd TAB </strong>is used to issue various commands; including executing all rspec specifications or pushing changes to the git repository. I also use it to access the great ruby documentation (using the <strong>ri</strong> command):</p>
<p style="text-align:center;"><a href="http://tickblog.files.wordpress.com/2010/11/specs.png"><img class="aligncenter size-full wp-image-446" style="border:0 none white;" title="Teta Rspec Specifications" src="http://tickblog.files.wordpress.com/2010/11/specs.png?w=720" alt="Teta Rspec Specifications"   /></a></p>
<p><span style="color:#ffffff;">.</span><br />
And finally the <strong>3rd TAB</strong> has got an <strong>interactive ruby</strong> session loaded for exploration and experimentation:</p>
<p style="text-align:center;"><a href="http://tickblog.files.wordpress.com/2010/11/irb.png"><img class="aligncenter size-full wp-image-448" style="border:0 none white;" title="irb" src="http://tickblog.files.wordpress.com/2010/11/irb.png?w=720" alt="Interactive Ruby"   /></a></p>
<p><span style="color:#ffffff;">.</span><br />
But back to learning new languages using <strong>Test Driven Learning</strong>. It was initially a <a href="http://www.replicator.org/content/the-first-api-to-learn-is-the-unit-testing-api-or-have-you-ever-heard-of-test-driven-learnin">blog post</a> by <a href="http://twitter.com/#!/pragmatrix">@pragmatrix</a> that pushed me into the direction of using a testing framework when first learning Ruby. To say the least; it was really worth it!</p>
<p>In case you are like me and don&#8217;t feel like writing tests for language features; then there are some great people who already did this for you. <a href="http://rubykoans.com/">The Ruby Koans</a> walk you along the path to enlightenment:</p>
<p style="text-align:center;"><a href="http://tickblog.files.wordpress.com/2010/11/koan.png"><img class="aligncenter size-full wp-image-452" style="border:0 none white;" title="Ruby Koans" src="http://tickblog.files.wordpress.com/2010/11/koan.png?w=720" alt=""   /></a></p>
<p><span style="color:#ffffff;">.<br />
</span>If <strong>you</strong> also want to<strong> get started </strong>with <strong>Ruby</strong> then I suggest that you get the following <strong>equipment</strong>:</p>
<p>1. <a href="http://www.ubuntu.com/">Ubuntu</a> (<a href="http://www.ubuntu.com/desktop/get-ubuntu/windows-installer">Wubi</a>)<br />
2. <a href="http://www.vim.org/">VIM<br />
</a>3. <a href="http://rvm.beginrescueend.com/">Ruby Version Manager</a> to install..<br />
4. <a href="http://www.ruby-lang.org/">Ruby<br />
</a>5. <a href="http://rspec.info/">RSpec</a> gem as the testing/specification framework<br />
6. <a href="http://git-scm.com/">Git</a> to get data to and from <a href="https://github.com/">github<br />
</a><span style="color:#ffffff;">.<br />
</span>Till then, enjoy the journey \o/</p>
<p><a href="https://github.com/"></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/439/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=439&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2010/11/20/introducing-a-text-adventure-or-how-i-learned-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2010/11/devarea.png" medium="image">
			<media:title type="html">VIM</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2010/11/specs.png" medium="image">
			<media:title type="html">Teta Rspec Specifications</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2010/11/irb.png" medium="image">
			<media:title type="html">irb</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2010/11/koan.png" medium="image">
			<media:title type="html">Ruby Koans</media:title>
		</media:content>
	</item>
		<item>
		<title>Code: Abstract Unit of Work</title>
		<link>http://tickblog.wordpress.com/2010/11/13/code-unit-of-work/</link>
		<comments>http://tickblog.wordpress.com/2010/11/13/code-unit-of-work/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 13:18:25 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Design Patterns & Best Practices]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Data Access]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[NHibernate]]></category>
		<category><![CDATA[Repository]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Unit of Work]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=415</guid>
		<description><![CDATA[Today I&#8217;ve been tinkering about how to best implement the Unit of Work/Repository patterns at the client (service)-side. Warning! This blog post contains experimental source code! What I want: 1. Simple to use. Usage is easy to explain. 2. Doesn&#8217;t leak the underlying data access framework. 3. Supports transactions. 4. Supports multiple parallel units of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=415&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve been <strong>tinkering</strong> about how to best implement the<br />
Unit of Work/Repository patterns at the client (service)-side.</p>
<p><span style="color:#ff0000;">Warning! This blog post contains experimental source code!</span></p>
<p>What I want:<br />
1. Simple to use. Usage is easy to explain.<br />
2. Doesn&#8217;t leak the underlying data access framework.<br />
3. Supports transactions.<br />
4. Supports multiple parallel units of work when required.<br />
5. Manages the session/context scope for me.<br />
Not quite sure whether I need nested UoWs.</p>
<p>Here is what I have come up so far. I&#8217;ll update this post once I figure out something new about all of this.</p>
<p><pre class="brush: csharp;">

// Scoped unit of work:
// 1. Quite simple
// 2. Repositories use the currently active UoW
// 3. Doesn't support multiple UoWs to be active
// 4. Using block scopes the current session/object context
// 5. Repositories are injected using the constructor
using( UnitOfWork.Start() )
{
   var user = this.userRepository.GetUserByName( &quot;Paul&quot; );
   var skill = this.skillRepository.GetSkillByName( &quot;Ruby&quot; );
   user.Award( skill );
}

// Scoped UoW, that also starts a new transaction:
// When the UoW is disposed it will be rolled-back
// unless it has been committed.
using( var uow = UnitOfWork.Start( transaction: true ) )
{
   var user = this.userRepository.GetUserByName( &quot;Paul&quot; );
   var skill = this.skillRepository.GetSkillByName( &quot;Ruby&quot; );
   user.Award( skill );
   uow.Commit();
}

</pre></p>
<p><strong>Update:</strong><br />
If the current Unit of Work is marked to be unique for each thread (<a href="http://msdn.microsoft.com/en-us/library/system.threadstaticattribute.aspx">ThreadStaticAttribute</a>) it can safely handle multiple &#8216;requests&#8217; at the same time. No need for any &gt;special case&lt; handling.</p>
<p>Thanks to <a href="http://twitter.com/#!/pragmatrix">@pragmatrix</a> for pointing this out on Twitter. :)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/415/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=415&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2010/11/13/code-unit-of-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>
	</item>
		<item>
		<title>Twivi</title>
		<link>http://tickblog.wordpress.com/2010/09/14/twivi/</link>
		<comments>http://tickblog.wordpress.com/2010/09/14/twivi/#comments</comments>
		<pubDate>Tue, 14 Sep 2010 17:58:10 +0000</pubDate>
		<dc:creator>tick</dc:creator>
				<category><![CDATA[Fun Stuff]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://tickblog.wordpress.com/?p=402</guid>
		<description><![CDATA[Twivi is a simple visualization of the Twitter universe written using HTML5 and Java Script! Feel free to take a look at the source code. Twivi has been tested on Google Chrome and Mozilla Firefox 4. It won&#8217;t work on Internet Explorer 8 or lower, sorry folks! Animated Version: http://tick.federrot.at/twivi/twivi-a.html Normal Version &#8211; use this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=402&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><span style="color:#ff0000;">Twivi </span>is a simple visualization of the <a href="http://twitter.com/">Twitter</a> universe written<br />
using HTML5 and Java Script! Feel free to take a look at the source code.</p>
<p>Twivi has been tested on Google Chrome and Mozilla Firefox 4.<br />
It won&#8217;t work on Internet Explorer 8 or lower, sorry folks!</p>
<p><img class="aligncenter size-thumbnail wp-image-403" title="Twivi &quot;blackhole&quot;" src="http://tickblog.files.wordpress.com/2010/09/twivi-blackhole.png?w=150&#038;h=150" alt="" width="150" height="150" /></p>
<p><strong>Animated Version</strong>:<br />
<a href="http://tick.federrot.at/twivi/twivi-a.html" target="_self"><span style="color:#ff0000;">http://tick.federrot.at/twivi/twivi-a.html</span></a></p>
<p><strong>Normal Version</strong> &#8211; use this if you&#8217;ve got a slow computer:<br />
<a href="http://tick.federrot.at/twivi/twivi.html" target="_self"><span style="color:#ff0000;">http://tick.federrot.at/twivi/twivi.html</span></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tickblog.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tickblog.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tickblog.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tickblog.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/tickblog.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/tickblog.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/tickblog.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/tickblog.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tickblog.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tickblog.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tickblog.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tickblog.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tickblog.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tickblog.wordpress.com/402/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tickblog.wordpress.com&amp;blog=3527876&amp;post=402&amp;subd=tickblog&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://tickblog.wordpress.com/2010/09/14/twivi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f677118863400e813320f1f34f4c3036?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tick</media:title>
		</media:content>

		<media:content url="http://tickblog.files.wordpress.com/2010/09/twivi-blackhole.png?w=150" medium="image">
			<media:title type="html">Twivi &#34;blackhole&#34;</media:title>
		</media:content>
	</item>
	</channel>
</rss>
