<?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>.simplicity</title>
	<atom:link href="http://www.dotsimplicity.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dotsimplicity.net</link>
	<description>Simple, reliable, simplicity. A software discussion blog</description>
	<lastBuildDate>Sat, 06 Feb 2010 20:34:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Welcome to the world of Haskell!</title>
		<link>http://www.dotsimplicity.net/2010/02/welcome-to-the-world-of-haskell/</link>
		<comments>http://www.dotsimplicity.net/2010/02/welcome-to-the-world-of-haskell/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 20:34:27 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=519</guid>
		<description><![CDATA[In the past three months I have had the pleasure of learning a strange yet interesting new programming language: Haskell. Initially I was quite sceptical about this language. After all, some of the most basic (imperative) concepts I knew looked so hard to implement in Haskell. And the fact that people allegedly had finally found [...]]]></description>
			<content:encoded><![CDATA[<p>In the past three months I have had the pleasure of learning a strange yet interesting new programming language: Haskell. Initially I was quite sceptical about this language. After all, some of the most basic (imperative) concepts I knew looked so hard to implement in Haskell. And the fact that people allegedly had finally found some use for functional programming languages, did not really excite me either. But in the end, Haskell turned out to be quite fun.</p>
<p>In this article I would like to look at some Haskell features I really liked. As I know that most of our readers are not Haskell experts I have decided to keep it quite general and simple.</p>
<h2>Function transformations</h2>
<h3>Function composition</h3>
<p>Function composition is a technique of combining two functions into one function.</p>
<p>f1 . f2</p>
<p>This says that function <i>f1</i> should be applied to the result of applying <i>f2</i> to its first parameter. So, above code could be rewritten to:</p>
<p>(.) f g = h<br />
   where h x = f (g x)</p>
<p>The type of <i>h</i> can be deduced like this:</p>
<p>f :: a -&gt; b<br />
g :: b -&gt; c<br />
&#8211; Thus:<br />
h :: a -&gt; c </p>
<h3>Function application</h3>
<p>Function application is not exactly a very exciting feature, but it is helpful as it helps you to get rid of annoying extra parantheses.</p>
<p>f1 $ f2</p>
<p>This says that function <i>f1</i> should be applied to the result of function <i>f2</i>. Now you are probably what the difference is with <i>f1 f2</i>. </p>
<p>When you simply type <i>f1 f2</i>, <i>f2</i> is considered as a parameter for <i>f1</i> and all of the parameters of <i>f2</i> will be considered as n-ary parameters of <i>f1</i>. When you type <i>f1 $ f2</i> you first apply <i>f2</i> to all the following parameters, and <i>f1</i> is then applied to the result of <i>f2</i>.</p>
<p>So, for example:</p>
<p>sum x y z = x + y + z</p>
<p>successor x = x + 1 &#8212; A better alternative is discussed in the next section!</p>
<p>test1 = successor sum 1 2 3   &#8212; Will not work. After all, you cannot take the successor of a function.<br />
test2 = successor $ sum 1 2 3</p>
<h3>Partial parameterisation</h3>
<p>Partial parameterisation is a technique to partially satisfy a function. This technique can be used to create new specialized functions.</p>
<p>For example, if we would want to declare a function that gives us the successor of the given integer, we could simply write:</p>
<p>successor = (+) 1</p>
<p>or</p>
<p>successor = (+1)</p>
<p>This would make the following example valid:</p>
<p>&gt; successor 41<br />
42<br />
&gt; successor $ successor 41<br />
44</p>
<p><i>successor</i> is of course an incredibly easy example of partial parameterisation, and it might give you the impression that its just a gimmick. However, in combination with function application and function composition its an incredibly useful mechanism. </p>
<p>A slightly more complex example, is a function that gives us the successors of all elements in the given list.</p>
<p>successors = map (+1)</p>
<h2>Operators</h2>
<p>Another cool feature of Haskell is the ability to define your own operators. As this is actually rather simple I am not going to spend much attention to it.</p>
<p>Lets say we would want to express addition and substraction through smilies. It could be done like this:</p>
<p>x ^-^ y = x + y<br />
x -.- y = x &#8211; y </p>
<p>Or with partial parameterisation in our mind:</p>
<p>(^-^) = (+)<br />
(-.-) = (-)</p>
<p>Which would make the following valid:</p>
<p>&gt; 1 ^-^ 2<br />
3<br />
&gt; 3 -.- 1<br />
2</p>
<p>In the latter definition you can see how operators can also be used as functions: you simply put parantheses around them. And the fun thing is that a similar trick can be applied to functions with two parameters:</p>
<p>min :: Int -&gt; Int -&gt; Int<br />
min = (-)</p>
<p>&gt; 3 `min` 1<br />
2</p>
<p>In order to use a function as a operator you have to put backquotes around it.</p>
<p>Again, this might seem like a gimmick, but it can be pretty useful in the field of &#8220;symbolic evaluation&#8221;. But more on that another time.</p>
<h2>Lazy evaluation</h2>
<p>Lazy evaluation is one of the most powerful features, if not the most powerful feature, of Haskell. Lazy evaluation is the technique of delaying a computation until the result is required. This means that the data that is required for a computation is retrieved at the moment that the computation is actually executed. This makes it possible, for example, to work with lists of infinite length without actually computing the complete list. As lazy evaluation is beyond the scope of this article I would like to refer interested readers to <a href="http://en.wikipedia.org/wiki/Lazy_evaluation">Wikipedia</a>, which has a nice article on the matter.</p>
<p>And with that I would like to conclude my first article about Haskell. I hope you enjoyed reading it. And as always: if you have questions or comments feel free to post them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2010/02/welcome-to-the-world-of-haskell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>const unsigned int HOURSINDAY = 37;</title>
		<link>http://www.dotsimplicity.net/2009/12/const-unsigned-int-hoursinday-37/</link>
		<comments>http://www.dotsimplicity.net/2009/12/const-unsigned-int-hoursinday-37/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 01:32:04 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=514</guid>
		<description><![CDATA[The, nowadays, three editors are all so busy. Michael&#8217;s doing lots of stuff at the university considering free open gaming. Maurice is doing a double BSc (Mathematics and Computer Science) and has his own company with a load of work. I have quite a busy job too and need to settle down at a new [...]]]></description>
			<content:encoded><![CDATA[<p>The, nowadays, three editors are all so busy. Michael&#8217;s doing lots of stuff at the university considering free open gaming. Maurice is doing a double BSc (Mathematics and Computer Science) and has his own company with a load of work. I have quite a busy job too and need to settle down at a new place (which I really like, but it could use some paint). To give you an idea of how busy I am, I didn&#8217;t read Questionable Content, XKCD and Zero Punctuation for over 4 (four) weeks. ZOMG&gt;!±±±!!!1.</p>
<p>Thus, there are very few updates, but here&#8217;s futurePosts.peek();</p>
<ol>
<li>The first update I really want to do is work on the Language &#8230; thingie. We still don&#8217;t have a good name for it. Seeing how it can generate words and such it might be a fun tool to play with. Maybe we can generate a word and use that as a name. <img src='http://www.dotsimplicity.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>The second one is about the electronic drumkit. I want to drum so badly but I can&#8217;t fit in in my day, let alone fit enough time to finish the thing, but it shall be done! Sometime in the hopefully near future.</li>
<li>There&#8217;s no three. But post something you want to read/talk about.</li>
</ol>
<p>Anyhow, I know we still have some regular visitors (mostly thanks to Michael I think, his articles are almost always at the top of viewed pages in Google Analytics), and don&#8217;t leave. Sign up for the rss/atom feed so you don&#8217;t have to check each time but get notified. That is if you&#8217;re using a decent rss/atom feed reader, I like Google&#8217;s.</p>
<p>If anyone has any ideas for the Language thingie do post them by the way! Implementations for ideas, ideas only (don&#8217;t feel limited by implementation difficulties), anything really. A little feedback is always nice to get.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/12/const-unsigned-int-hoursinday-37/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re: Language</title>
		<link>http://www.dotsimplicity.net/2009/11/re-language/</link>
		<comments>http://www.dotsimplicity.net/2009/11/re-language/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 12:05:41 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software Idea]]></category>
		<category><![CDATA[Language Recognizer]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=507</guid>
		<description><![CDATA[These features are pending proof of concept implementation. Currently I’m very busy with my study and my job and Maurice is as well so you probably won’t see anything anytime soon. But to be honest, from my side it’s also laziness. But today I sat down and wanted to come up with some algorithms.

Some definitions [...]]]></description>
			<content:encoded><![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">These features are pending proof of concept implementation. Currently I’m very busy with my study and my job and Maurice is as well so you probably won’t see anything anytime soon. But to be honest, from my side it’s also laziness. But today I sat down and wanted to come up with some algorithms.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><span id="more-507"></span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">Some definitions for the following paragraphs:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">Text: any text. Can be a complete book, a word, a sentence, etc.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">LR&lt;Languages&gt;: Language Recognizer for the languages.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;"><span style="white-space: pre;"> </span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">Possible applications of the LR</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<h2>Advanced Texthelper</h2>
<h3>Features</h3>
<h5>Can correct words without a dictionary: recognizes when something probably isn’t a word.</h5>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">A word of length X has an average score of AVG. If there is a word with length X and its score is lower with significance S, then the word probably isn’t a word in the current language. I don’t know how to determine significance S.</p>
<h5>Can correct sentences, since it also recognizes sentence structures.</h5>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">Basically the same as the word recognition, but for sentences.</p>
<h5>Can auto-complete sentences (and parts thereof).</h5>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">Since the LR keeps tracks of how many times a word follows another word, it should be able to predict what word you are going to type, which could speed up writing a text. As you read, a lot of shoulda coulda woulda, but maybe we are clever enough to pull this off.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px;">
<h2>Language Recognizer<span style="white-space: pre;"> </span></h2>
<h3>Features</h3>
<h5>Can tell if text A is more English than text B</h5>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">If text A scores higher on LR&lt;English&gt; than B, A is more likely to be english than B.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;"><em>Test results indicate very few false positives with a simple implementation.</em></p>
<h5>Can help for auto-recognizing if something is human readable text.</h5>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica;">If a text gets a higher score than previous texts, the text is more likely to be human readable text, which is useful for the “recovery” of encrypted text.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/11/re-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HAI! / Language</title>
		<link>http://www.dotsimplicity.net/2009/11/hai-language/</link>
		<comments>http://www.dotsimplicity.net/2009/11/hai-language/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 20:56:29 +0000</pubDate>
		<dc:creator>Maurice</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software Idea]]></category>
		<category><![CDATA[Language Recognizer]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=499</guid>
		<description><![CDATA[Hello World! I&#8217;m Maurice, I&#8217;m new to .simplicity, nice to meet you, etc.
Language
I&#8217;ve been experimenting with some fun stuff lately, it involves language, programming, password-dictionaries, spell checkers, and more   .


Get a file with a lot of words (i.e. a spell checker dictionary).
Count the occurrences of N-letter-groups in those words. (example with N = [...]]]></description>
			<content:encoded><![CDATA[<p>Hello World! I&#8217;m Maurice, I&#8217;m new to .simplicity, nice to meet you, etc.</p>
<h2>Language</h2>
<p>I&#8217;ve been experimenting with some fun stuff lately, it involves language, programming, password-dictionaries, spell checkers, and more <img src='http://www.dotsimplicity.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
<p><span id="more-499"></span></p>
<ol>
<li>Get a file with a lot of words (i.e. a spell checker dictionary).</li>
<li>Count the occurrences of N-letter-groups in those words. (example with N = 3: &#8220;hello&#8221;, hel++, ell++, llo++)</li>
<li>Find high-scoring letter-groups which overlap (ie. &#8220;hel&#8221; + &#8220;ell&#8221; = &#8220;hell&#8221;) to form a word. (Obviously, repeat this to form bigger words)</li>
</ol>
<p>Using an English dictionary, this gives output such as: &#8220;anteringlogratio&#8221;, &#8220;callinesthesional&#8221; and &#8220;prestionistering&#8221;. Altough those words are absolutely not English words (as far as I know), they look pretty English. Cool huh?</p>
<p>It can obviously also create &#8216;fake words&#8217; in other languages, by using other dictionaries. For example, using a Dutch dictionary: &#8220;verderendelijker&#8221;, &#8220;heiderdelijkeren&#8221; and &#8220;eerderingelijkerigen&#8221;. (I&#8217;m Dutch, and I can tell you those words are easy to read and pronounce, altough they mean nothing to me)</p>
<p>I can hear you thinking: &#8220;Nice, but why&#8217;d you ever need to create &#8216;fake words&#8217; ?&#8221;.<br />
Well, for example, we could expand a password-dictionary by generating new passwords from the passwords already in there. This gives new passwords wich are likely to be passwords, instead of the 99% of garbage from a simple brute-forcer.</p>
<p>Also, if we can create words that seem to belong to some language, we can probably also recognize if something could be a real word.</p>
<p>We could create a program wich can tell random sequences of letters and real words apart by giving the words an &#8216;Englishness-score&#8217;, the more it uses high-scoring letter-groups, the higher the score. This might come in handy while brute-forcing a password for some text file. The program could detect if it succesfully decrypted the file, or just got some garbage-output. Or we could create a smart spell checker wich can check and correct words even when they&#8217;re not in the dictionary. If &#8216;hello&#8217; has a much higher score than &#8216;helllo&#8217;, the user probably wanted to type &#8216;hello&#8217;. Or a language-recognizer, if all the words have a higher &#8216;Dutchness-score&#8217; than &#8216;Englishness-score&#8217;, it&#8217;s probably not an English text.</p>
<p>When we take this a level higher, not using words and letter-groups, but sentences and word-groups, the awesomeness grows exponentially. A spell checker could simply correct &#8220;Ive is fun&#8221; to &#8220;Ice is fun&#8221;, but &#8220;Ive been running&#8221; to &#8220;I&#8217;ve been running&#8221;. An internet spider could tell real text apart from those random-keywords-pages. Lots of possibilities.</p>
<p>Anyway, I&#8217;ll try to code some of this stuff to see how well it all works, stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/11/hai-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Gaming Alliance &#8211; Continued</title>
		<link>http://www.dotsimplicity.net/2009/11/free-gaming-alliance-continued/</link>
		<comments>http://www.dotsimplicity.net/2009/11/free-gaming-alliance-continued/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 16:30:10 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Alliance]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=494</guid>
		<description><![CDATA[Some while ago I wrote an article about the Free Gaming Alliance, an organization that could help with the promotion and development of Free Open Source Games. At the time that I wrote that article I was not sure how well it would be received by the public. In the end the reactions turned out [...]]]></description>
			<content:encoded><![CDATA[<p>Some while ago I wrote an article about the <a href="http://www.dotsimplicity.net/2009/06/free-gaming-alliance/">Free Gaming Alliance</a>, an organization that could help with the promotion and development of Free Open Source Games. At the time that I wrote that article I was not sure how well it would be received by the public. In the end the reactions turned out to be fairly positive.</p>
<p>Lets start with a reply to the original article. Some while after the article was published on .simplicity Valentin Anastase from the non-profit organization <a href="http://www.freezingmoon.org/">Freezing Moon</a> replied. He provided a link to two sites, including Freezing Moon&#8217;s, dedicated to free gaming. Freezing Moon comes close to the idea that I sketched in the previous article, but it is not completely the same. Opposed to the Free Gaming Alliance, Freezing Moon actually develops games themselves. While I think that we should first deal with other issues concerning free gaming, I am happy to see an initiative like Freezing Moon and I encourage people to check it out.</p>
<p>Another interesting development can be found at <a href="http://www.opengameart.org/">OpenGameArt.org</a>. OpenGameArt.org is a website that hosts &#8220;free, legal art for open source game projects&#8221;. It started small, but the amount of art has been growing fast. And the art that is being hosted on OpenGameArt.org is certainly not bad; it looks very good. If you are looking for art for your Free Open Source Game or want to support free game art (OpenGameArt.org accepts donations), then definitely check OpenGameArt.org.</p>
<p>So, there are initiatives focused on Free Open Source Gaming, but what about me? Through Sirrf I am trying to improve the Free Open Source Gaming ecosystem. I am wondering if I can have an impact on it in other ways, though.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/11/free-gaming-alliance-continued/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Old Games</title>
		<link>http://www.dotsimplicity.net/2009/10/old-games/</link>
		<comments>http://www.dotsimplicity.net/2009/10/old-games/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 11:34:00 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Gaming]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/2009/10/old-games/</guid>
		<description><![CDATA[I&#8217;m a Gamer, can&#8217;t help it. Lately I&#8217;ve been rediscovering my PSX, while my original is broken, I found a excellent emulator and a neat rom site. With those, I can re-live Medieval times in Medievil one and two, jump on pigs in Tomba, and these are really 2 great games! Why doesn&#8217;t Steam have [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a Gamer, can&#8217;t help it. Lately I&#8217;ve been rediscovering my PSX, while my original is broken, I found a excellent emulator and a neat rom site. With those, I can re-live Medieval times in Medievil one and two, jump on pigs in Tomba, and these are really 2 great games! Why doesn&#8217;t Steam have some sort of PSX emulator with (seperate) games for sale? That&#8217;d be great. <img src='http://www.dotsimplicity.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Games wouldn&#8217;t be expensive and it&#8217;d be hours and hours of fun. So, if you can get a PS 1 or 2 and also the games noted earlier, go get them, you&#8217;re missing out for a few bucks. Also worth noting is Spyro The Dragon, I don&#8217;t recall having so much fun with dragons without brutally slaying them and yelling OOM.</p>
<p>Sorry for the long time no update, hope you are still watching. <img src='http://www.dotsimplicity.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Some small updates after the break.<br />
<span id="more-488"></span></p>
<h2>Medievil</h2>
<p>The first game I decided to play on the emulator. It was decent fun, but the best part was really in the story. It&#8217;s not the depth, but it&#8217;s the humor. The green gargoyles keep mocking you in really funny ways and the text is just top notch. Medievil&#8217;s story telling is for games what Shakespeare&#8217;s was for drama, a thing to strive for.You play Sir Daniel Fortesque who is a hero from long long ago. He battled his way to the evil sorcerer Zarok&#8217;s castle and with his dying breath he killed Zarok. At least, that what&#8217;s the books say. What really happened? Get the game, I don&#8217;t want to spoil that for you. But keep in mind that this is a really funny game. Anyhow, several decades or so later you wake up from the dead because Zarok is at it again and it is up to you to stop the evil sorcerer.</p>
<p>The sound was good! Almost every level has it&#8217;s own theme and they all fit, plus the voice acting! I like it a lot. In the Hall Of Heroes, a bonus-shopping level, each hero has it&#8217;s own accent and funny lines. Good stuff.</p>
<p>The gameplay was decent. Replay value is none, which makes it a short game. My first and only run through the game took me 5 hours. Some annoying things are the jumps: Fortesque can&#8217;t jump that good and you fall to your death way too often. It&#8217;s frustrating, it adds unnecessary repetition to the game. The fighting is more button bashing (or when you have a turbo-button like me, button holding) than strategicly doing stuff. You run, you charge your special attack, you kill the monsters. None of the monsters are a real threat which in the end makes this play more like a platformer and since Sir Dan sucks at jumping and steering him while running isn&#8217;t with the accuracy of a modern day FPS the game doesn&#8217;t score high on gameplay. The game has some wicked weapons and even a shield system which is easy to master and use, but you&#8217;ll never find yourself using it because you&#8217;re invincible as long as you keep hitting attack. It&#8217;s a shame really, the fighting could have made this game a lot more special and fun.</p>
<p>In the end:</p>
<p style="padding-left: 30px;">+Good story!<br />
+Good sound!<br />
+Lots of humor</p>
<p style="padding-left: 30px;">-Plays like a platformer, and not a very fun one.<br />
-No replay value, short playthrough, combined making it a short game.</p>
<p style="padding-left: 30px;">Medievil&#8217;s good sides make up for the suckier parts. Medievil is definitely worth a look: 6 points.</p>
<p>Stay tuned for when I finish my next game! <img src='http://www.dotsimplicity.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/10/old-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.simplicity Code and Java Sigslot Event System</title>
		<link>http://www.dotsimplicity.net/2009/10/simplicity-code-and-java-sigslot-event-system/</link>
		<comments>http://www.dotsimplicity.net/2009/10/simplicity-code-and-java-sigslot-event-system/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 13:09:25 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Sigslot]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=482</guid>
		<description><![CDATA[Today we are launching .simplicity Code. .simplicity Code is a project created to maintain open-source projects from .simplicity that are too small to be considered as full-blown projects, but too big to be considered as simple code snippets. We are launching this project, because we often work on small projects without any other target audience [...]]]></description>
			<content:encoded><![CDATA[<p>Today we are launching <a href="http://code.dotsimplicity.net/">.simplicity Code</a>. .simplicity Code is a project created to maintain open-source projects from .simplicity that are too small to be considered as full-blown projects, but too big to be considered as simple code snippets. We are launching this project, because we often work on small projects without any other target audience than ourselves. These projects are the typical projects that are started out of self-interest. We recognize, though, that the code we write for these projects can be of interest to our visitors. .simplicity Code offers us the opportunity to publish this code, without having to offer complete support as a full-blown project would require. As a matter of fact most projects on .simplicity Code will have limited to no support. That does not mean that you will find junk on .simplicity Code. On the contrary, you will find that the code will be most of the time of the same quality as our bigger projects.</p>
<p><span id="more-482"></span></p>
<p>The first project that you can find on .simplicity Code is the <i>.simplicity Java Sigslot Event System</i>. This is, as the name already says, an implementation of a sigslot event system in Java. A sigslot event system allows the programmer to connect components within a system without that those components know with who they are actually connected. Furthermore this system can also be used as a broadcasting system for sending information to multiple subscribed components. Sigslot event systems can be applied in various different cases, such as component-based entity systems and graphical user interfaces.</p>
<p>But lets look at some example code using the <i>.simplicity Java SigSlot Event System</i>:</p>
<pre class="brush: java;">
// Import classes
import java.applet.Applet;

import java.awt.Graphics;
import java.awt.event.*;

import net.dotsimplicity.events.awt.AWTEventsContainer;

// EventApplet class
public class EventApplet extends Applet
{
    // Public methods
    // Initialize the applet.
    public void init()
    {
       // Create an AWT EventsContainer.
       AWTEventsContainer container = new AWTEventsContainer(&quot;applet&quot;, this);

       // Add a mouse moved event.
       container.addMouseMotionListener();
       container.connectEventSlot(&quot;mouseMoved&quot;, this, &quot;onMouseMoved&quot;);

       // Add a custom event.
       container.createEvent(&quot;print&quot;, String.class);
       container.connectEventSlot(&quot;print&quot;, this, &quot;onPrint&quot;);
       container.emitEventSignal(&quot;print&quot;, &quot;Hello, World!&quot;);
    }

    // Paint the applet.
    public void paint(Graphics g)
    {
       g.drawString(&quot;X: &quot; + this.x + &quot;, Y: &quot; + this.y, 10, 15);
       g.drawString(this.message, 10, 30);
    }

    // Handle mouseMoved events.
    public void onMouseMoved(MouseEvent event)
    {
       this.x = event.getX();
       this.y = event.getY();
       this.repaint();
    }

    // Handle print events.
    public void onPrint(String string)
    {
       this.message = string;
    }

    // Private members
    private static final long serialVersionUID = 1;
    private int x, y;
    private String message;
}

// End of File
</pre>
<p>In the above example we have created an applet that uses our sigslot event system to handle mouseMoved events. Please note that we do not have to implement the MouseMotionListener interface; you are free to only implement those features that you need under whatever name you choose. That means that you no longer have to implement six empty methods if you want to use one feature of the WindowListener, for example.</p>
<p>Furthermore we also use our event system to transmit a signal with the message &#8220;Hello, World!&#8221;. In this particular appliance this is a rather useless operation, but it demonstrates in a simple way how we can use our system for broadcasting. Note that you can also use the relatively simpler EventsContainer for this appliance; this class provides all methods that the AWTEventsContainer provides except for the AWT specific methods.</p>
<p>Well, that is all for now. We hope that .simplicity Code will be of use to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/10/simplicity-code-and-java-sigslot-event-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nick </title>
		<link>http://www.dotsimplicity.net/2009/09/nick/</link>
		<comments>http://www.dotsimplicity.net/2009/09/nick/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 21:55:31 +0000</pubDate>
		<dc:creator>Nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Operating System]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[x64]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=475</guid>
		<description><![CDATA[Hai!
I installed Ubuntu on my laptop a while ago, but didn&#8217;t use my laptop a lot because I had a computer that was about 30 times as fast (P3 Mobile vs. Core 2 Duo). But when I&#8217;m not at home, thus not at my computer, I only have my laptop! And since I&#8217;m far far [...]]]></description>
			<content:encoded><![CDATA[<p>Hai!</p>
<p>I installed Ubuntu on my laptop a while ago, but didn&#8217;t use my laptop a lot because I had a computer that was about 30 times as fast (P3 Mobile vs. Core 2 Duo). But when I&#8217;m not at home, thus not at my computer, I only have my laptop! And since I&#8217;m far far away from home now for my study&#8230; I got to know Ubuntu a bit more.<br />
<span id="more-475"></span><br />
I must say my first few Linux tryouts were.. bad. First try was Fedora Core 3 which was.. nasty. The 14 year old me didn&#8217;t know what packages to get and what not to get, let alone the proper size for a swap partition.</p>
<p>Years later I installed Ubuntu 8, first having tried some setups in a virtual environment. I liked it, and figured I could get used to the nice &#8220;Add/Remove&#8230;&#8221; option in Applications. But my music! The sound sucked. So I tried installing drivers for my Realtek&#8217;97, I think. Installed the driver (I guess), rebooted, tried to log in.. Which failed. I cursed Ubuntu for not letting me log in with a faulty sound driver and promptly reinstalled Windows.</p>
<p>So, now, Ubuntu 9, Jaunty Jackalope&#8230; I like! So much liked it on my laptop that I also installed it on my home PC (the fast one) and I liked it even more. It even basically auto-installed my videocard driver (asked me what version I wanted)! Windows doesn&#8217;t do that, hehe. Windows 7 does I think, but still, +1 for Ubuntu.</p>
<p>There were 2 obstacles:</p>
<ul>
<li> Flash on x64 </li>
<li> Surround Sound </li>
</ul>
<p>Flash was a bit of googling to do. I heard people on Windows x64 had the same problems so&#8230; Nothing to mourn about. Just a bit weird that the Adobe site didn&#8217;t offer a lot of help for x64 (not on the download page anyway). In the end I found the alpha x64 version and it works like a charm&#8230; nah not really. Firefox crashes when I play any game on Kongregate. But it&#8217;s Alpha and it&#8217;ll be fine when the first RC comes around.</p>
<p>Surround sound took me some googling but I figured it out. You need to add the &#8220;Surround&#8221; and some other sliders to the Volume Control and then you&#8217;re done! Man that was easy. Ubuntu took away the driver installing troubles: video and sound. Pretty neat. Now my computer even uses the subwoofer with Youtube vids, something I can&#8217;t get to work in Windows. So again +1.</p>
<p>Enough Ubuntu praise for today. <a href="http://www.ubuntu.com">Now go get your copy.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/09/nick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sirrf version 0.2.1 released!</title>
		<link>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-1-released/</link>
		<comments>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-1-released/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 13:00:59 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Irrlicht]]></category>
		<category><![CDATA[Sirrf]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=465</guid>
		<description><![CDATA[0.2.1 is here, 9 days later the simple irrlicht framework team re-emerges with a feature and bug release. Some bugs have been fixed and some new features introduced, the changes include : 

Script-side GameStates
It is now truely possible to derive from the GameState class (through CGameState) in scripts. A bug in previous versions prevented this, [...]]]></description>
			<content:encoded><![CDATA[<p>0.2.1 is here, 9 days later the simple irrlicht framework team re-emerges with a feature and bug release. Some bugs have been fixed and some new features introduced, the changes include : </p>
<ul>
<li><strong>Script-side GameStates</strong><br />
It is now truely possible to derive from the GameState class (through CGameState) in scripts. A bug in previous versions prevented this, but this bug has now been fixed. </li>
<p></p>
<li><strong>Script-side Components</strong><br />
EntityComponent can be derived from script-side (through CEntityComponent), classes in script can now create components and register them with entities from script or engine side. </li>
<p></p>
<li><strong>Script-side Events</strong><br />
The event system is now integrated into the script engine. Script-side classes can derive from IHasSlots and can register, connect and disconnect from slot events. </li>
<p></p>
<li><strong>Important Bug Fixes: </strong>
<ul>
<li>Construction of entity components with parent is now relatively safe. If you are not sure whether your component has a parent, check it after construction. If the component has no parent, destroy it as quickly as possible </li>
<li>AssetProcessors on windows were never loading assets unless the files were all lowercase, restrictions were irrlicht related but solved. </li>
<li>Minor bug fixes with script side things, Scolor fixes, asset groups on entities and much much more. </li>
</ul>
</ul>
<p></p>
<p><strong>Useful links</strong><br />
SourceForge.net page &#8211; <a href="http://sourceforge.net/projects/sirrf">http://sourceforge.net/projects/sirrf</a><br />
Downloads &#8211; <a href="http://sourceforge.net/projects/sirrf/files/">http://sourceforge.net/projects/sirrf/files/</a> | <a href="http://www.ohloh.net/p/sirrf/download?package=Sirrf">http://www.ohloh.net/p/sirrf/download?package=Sirrf </a><br />
Documentation &#8211; <a href="http://sirrf.sourceforge.net/docs/0.2.1/">API</a> | <a href="http://sourceforge.net/apps/trac/sirrf/wiki/Tutorials/v0.2.1">Tutorials</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-1-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sirrf version 0.2.0 released!</title>
		<link>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-0-released/</link>
		<comments>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-0-released/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 14:44:01 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Irrlicht]]></category>
		<category><![CDATA[Sirrf]]></category>

		<guid isPermaLink="false">http://www.dotsimplicity.net/?p=454</guid>
		<description><![CDATA[The latest release of Sirrf, the Simple Irrlicht Framework, version 0.2.0, is now available for download. In the two months since the previous release a lot of changes have taken place. These changes range from small API changes to major feature additions. The most noticeable changes include:

Asset Management
The biggest new feature is asset management. Assets [...]]]></description>
			<content:encoded><![CDATA[<p>The latest release of Sirrf, the Simple Irrlicht Framework, version 0.2.0, is now available for download. In the two months since the previous release a lot of changes have taken place. These changes range from small API changes to major feature additions. The most noticeable changes include:</p>
<ul>
<li><strong>Asset Management</strong><br />
The biggest new feature is asset management. Assets are managed by the AssetManager class. This manager manages so-called asset groups, which represent a collection of assets (meshes, textures, etc). These assets are retrieved from a directory with the appropriate directory structure. In turn the found assets are processed by asset processors. And at the end of the road, the user can use these assets without having to deal with paths. Furthermore asset management makes it possible to reload all assets in realtime, with direct results on the current scene. Reloading assets is as simple as one function call.</li>
<li><strong>XML-based Entity files</strong><br />
It is now possible to load data concerning entities and their components from XML-files. This means that you can now define a scene through XML-files.</li>
<li><strong>Local Event System</strong><br />
As of version 0.2.0 a HasEvents class, which provides the base for a local event system, is available. The availability of local event systems makes the entire framework more performant. Currently the HasEvents class is used by entities and asset groups.</li>
<li><strong>Microsoft Visual C++ 2008 support</strong><br />
Version 0.2.0 is the first release that officialy supports Microsoft Visual C++ 2008. This should make it easier to set up Sirrf-based projects accros multiple platforms.</li>
</ul>
<p>See the change log for more information regarding the changes in Sirrf version 0.2.0.</p>
<p>This is not the end of Sirrf&#8217;s development, though. Sirrf&#8217;s development will continue and Sirrf will undoubtely become even better in the future. And you, as a Sirrf user, as a member of the Irrlicht community, can help us improve the framework. This can be done by contributing code to the project, but also by testing the framework. Either way, we hope that Sirrf will be of use.<br />
</p>
<p><strong>Useful links</strong><br />
SourceForge.net page &#8211; <a href="http://sourceforge.net/projects/sirrf">http://sourceforge.net/projects/sirrf</a><br />
Downloads &#8211; <a href="http://sourceforge.net/projects/sirrf/files/">http://sourceforge.net/projects/sirrf/files/</a> | <a href="http://www.ohloh.net/p/sirrf/download?package=Sirrf">http://www.ohloh.net/p/sirrf/download?package=Sirrf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dotsimplicity.net/2009/08/sirrf-version-0-2-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
