<?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"
	>

<channel>
	<title>Creationix Innovations</title>
	<atom:link href="http://blog.creationix.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.creationix.com</link>
	<description>Thoughts, musings, and a sneek peek at the future.</description>
	<pubDate>Mon, 27 Oct 2008 02:24:04 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>haXe is cool</title>
		<link>http://blog.creationix.com/software-languages/haxe-is-cool/</link>
		<comments>http://blog.creationix.com/software-languages/haxe-is-cool/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 02:18:01 +0000</pubDate>
		<dc:creator>Tim Caswell</dc:creator>
		
		<category><![CDATA[Software Languages]]></category>

		<guid isPermaLink="false">http://blog.creationix.com/?p=19</guid>
		<description><![CDATA[I heard of the computer programming language haXe a long time ago when I discovered Neko.  At the time I wasn't at all interested in haXe, it was the lower-level Neko language that intrigued me.  I even set out to create a new web framework in Neko.  I made good progress before my busy life [...]]]></description>
			<content:encoded><![CDATA[<p>I heard of the computer programming language haXe a long time ago when I discovered Neko.  At the time I wasn't at all interested in haXe, it was the lower-level Neko language that intrigued me.  I even set out to create a new web framework in Neko.  I made good progress before my busy life got the better of me.  This semester, as you know I'm taking Advanced Programming Languages and had to learn OCaml as part of the course.  I really like the power and expressivity of the language, but some reason it hasn't caught on mainstream.  My guess is the somewhat difficult syntax and the fact that it's a mostly functional language.  </p>
<p>Well, fast forward to now.  I had to learn haXe this week for work. (Not the first place I expected to learn a new language since we're still using PHP 4).  Adobe had released Flash 10 a little while ago and our file uploader that depended on a flash backend stopped working.  It has something to do with a new security policy and fact that we were using a javascript event to trigger the file dialog.  To make a long story short, I soon found that I would have to repimplement the entire button in flash to get around the new security rules.  I have never done much in flash except for some dabbling in SwishMax some years ago.  I first found Nicholas Canassee's mtasc compiler.  It seemed like a perfect fit.  Here was a small, fast open-source actionscript compiler that could allow me to write flash in my no-ide-and-no-propietary-stuff manner.  After a couple days of overtime trying to get to it work I finally realized that he hadn't finished the compiler and it didn't support event listeners.  These are needed to give the user any kind of feedback when uploading files so I had to scrap that project.</p>
<p>Then I noticed that haXe was the solution I needed.  The reason he had not finished mtasc was because he was working on haXe and it was better.  One day of overtime later I had converted my ActionScript 2.0 upload button to a small haXe program that targeted Flash 9.  It worked like a charm.  Now I decided to give the language a little more serious thought.  I went online and found there was one book on the language and it could be had cheap on Amazon, so I ordered the book.  While ordering the book my wife asked me how long haXe had been around, I didnt know, so I looked it up on Wikipedia.  While there I noticed that it has many of the features from Ocaml that I love.  The cool type system, and pattern matching are two of the important features.  Also being based on ECMA script it felt at home since I spend a lot of time programming in Javscript and love the language, but hate most implementations.</p>
<p>My wife even went on to correct part of the article for haXe in Wikipedia.  Keep in mind she's not a programmer or even a techie and here she is caring enough about some obscure programming language to bother correcting minor parts of the entry.  That's a cool wife!</p>
<p>I look forward to learning more about this seemingly perfect language after my book come in in a week and I finish 4 more school projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creationix.com/software-languages/haxe-is-cool/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Roundabout the Game</title>
		<link>http://blog.creationix.com/software-languages/roundabout-the-game/</link>
		<comments>http://blog.creationix.com/software-languages/roundabout-the-game/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 01:42:44 +0000</pubDate>
		<dc:creator>Tim Caswell</dc:creator>
		
		<category><![CDATA[Software Languages]]></category>

		<guid isPermaLink="false">http://blog.creationix.com/?p=15</guid>
		<description><![CDATA[One day, a few weeks ago, I had decided that it was about time I started making web games again.  Computers are faster, the choice of technology is greater and my skills are better.  Also as an added bonus, this years game conference awarded top scores to simple, non graphic intensive games.This shows a shift [...]]]></description>
			<content:encoded><![CDATA[<p>One day, a few weeks ago, I had decided that it was about time I started making web games again.  Computers are faster, the choice of technology is greater and my skills are better.  Also as an added bonus, this years game conference awarded top scores to simple, non graphic intensive games.This shows a shift in gaming taste to focus on gameplay and not intense graphics.  That's good news for me since I only make simple games that focus on unique gameplay.</p>
<p>So I decided that I'l play with technology at the same time as making the game.  I had originally planned on making the game in SVG/Javascript, but hit a performance issue once I started doing full screen scrolling.  I develop the game on my eeePC since it has a small screen and a slow processor.   That way I'm forced to keep the performance in mind.  After hitting a wall with SVG and not being able to speed up the engine without drasticly cutting features out of my game, I rewrote the engine to use canvas tag.  This was a little faster in Firefox, worked in more browsers, but for some strange reason, crawled to a halt in Safari.  Part of it might be because my Safari was in a WindowsXP guest inside of a VirtualBox hosted by Ubuntu Linux.  My friend on a real windows box didn't have the same problem.<br />
The current released version of the game is at <a title="Click to launch game" href="http://roundabout.creationix.com/" target="_blank">http://roundabout.creationix.com/</a>.  It is under massive development untill I'm able to release my level editor.  For the moment you can play the first three test levels to see some features of the game.  I doubt it runs at all in Internet Explorer since that browser doesn't support the canvas tag.  I even included the js hack that tries to convert it to vml, but still no good with my tests.<br />
Test it out, tell me what you think.  And if anyone is interested in developing levels, let me know and I'll send you a link with an admin account when that part is done.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creationix.com/software-languages/roundabout-the-game/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://blog.creationix.com/software-languages/hello-world/</link>
		<comments>http://blog.creationix.com/software-languages/hello-world/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 22:56:20 +0000</pubDate>
		<dc:creator>Tim Caswell</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Software Languages]]></category>

		<category><![CDATA[Toys and Games]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[welcome]]></category>

		<guid isPermaLink="false">http://blog.creationix.com/?p=1</guid>
		<description><![CDATA[Well, I've finally done it and installed a blog.  In this blog I have a place to publish my thoughts and accomplishments for anyone who may be interested.  Also I plan to start some discussions about Software Engineering topics and projects as I post about them.
First let's hear from my favorite scripting languages:
#/usr/bin/python
print &#34;Hello World\n&#34;
#/usr/bin/ruby
puts [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I've finally done it and installed a blog.  In this blog I have a place to publish my thoughts and accomplishments for anyone who may be interested.  Also I plan to start some discussions about Software Engineering topics and projects as I post about them.</p>
<p>First let's hear from my favorite scripting languages:</p>
<pre class="python"><span style="color: #808080; font-style: italic;">#/usr/bin/python</span>
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Hello World<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span></pre>
<pre class="ruby"><span style="color:#008000; font-style:italic;">#/usr/bin/ruby</span>
<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Hello World<span style="color:#000099;">\n</span>&quot;</span></pre>
<pre class="php"><span style="color: #808080; font-style: italic;">#/usr/bin/php</span>
<a href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">&quot;Hello World<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>;</pre>
<p>Then a blast from the past.  I programmed in QBasic for roughly 6 years.  I've since forgotten it all. I even had to look up the syntax for comments.</p>
<pre class="qbasic"><span style="color: #808080;">' This is Q-Basic</span>
<a href="http://www.qbasicnews.com/qboho/qckCLS.shtml"><span style="color: #000066;">CLS</span></a>
phrase$ = <span style="color: #ff0000;">&quot;Hello World!&quot;</span>
<a href="http://www.qbasicnews.com/qboho/qckLOCATE.shtml"><span style="color: #000066;">LOCATE</span></a> <span style="color: #cc66cc;">13</span>,<span style="color: #cc66cc;">40</span>
<a href="http://www.qbasicnews.com/qboho/qckPRINT.shtml"><span style="color: #000066;">PRINT</span></a> phrase$
<a href="http://www.qbasicnews.com/qboho/qckEND.shtml"><span style="color: #000066;">END</span></a></pre>
<p>And now two of my favorite compiled languages:</p>
<pre class="ocaml"><span style="color: #5d478b; font-style: italic;">(* This is OCaml *)</span>
<a href="http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#VALprint_endline"><span style="">print_endline</span></a> <span style="color: #3cb371;">&quot;Hello world!&quot;</span>;;</pre>
<pre class="csharp"><span style="color: #008080; font-style: italic;">// This is C#</span>
<span style="color: #0600FF;">using</span> <span style="color: #000000;">System</span>;
<span style="color: #FF0000;">class</span> MyClass
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
  <span style="color: #000000;">&#123;</span>
    Console.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Hello World!&quot;</span><span style="color: #000000;">&#41;</span>;
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.creationix.com/software-languages/hello-world/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The LaQs are on the way.</title>
		<link>http://blog.creationix.com/toys-and-games/the-laqs-are-on-the-way/</link>
		<comments>http://blog.creationix.com/toys-and-games/the-laqs-are-on-the-way/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 03:19:50 +0000</pubDate>
		<dc:creator>Tim Caswell</dc:creator>
		
		<category><![CDATA[Toys and Games]]></category>

		<category><![CDATA[construction]]></category>

		<category><![CDATA[japanese]]></category>

		<category><![CDATA[laq]]></category>

		<category><![CDATA[toys]]></category>

		<guid isPermaLink="false">http://blog.creationix.com/?p=5</guid>
		<description><![CDATA[I finally ordered the LaQ construction toys I've been wanting.  I can't wait till they get here.  They're made by a Japanese company so they're hard to find.  My favorite online store www.constructiontoys.com is going out of business and their remaining stock is all half off.  Here are some picture of the kits I ordered.


]]></description>
			<content:encoded><![CDATA[<p>I finally ordered the LaQ construction toys I've been wanting.  I can't wait till they get here.  They're made by a Japanese company so they're hard to find.  My favorite online store www.constructiontoys.com is going out of business and their remaining stock is all half off.  Here are some picture of the kits I ordered.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-9" title="Penguin" src="http://blog.creationix.com/wp-content/uploads/2008/06/085-15050.jpg" alt="Penguin" width="118" height="131" /><img class="alignnone size-full wp-image-8" title="Panda" src="http://blog.creationix.com/wp-content/uploads/2008/06/085-15010.jpg" alt="" width="123" height="119" /><img class="alignnone size-full wp-image-11" title="Chameleon" src="http://blog.creationix.com/wp-content/uploads/2008/06/085-70340.jpg" alt="" width="382" height="200" /><img class="alignnone size-full wp-image-10" title="Eagle" src="http://blog.creationix.com/wp-content/uploads/2008/06/085-70330.jpg" alt="" width="398" height="204" /></p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-7" title="Freestyle Pastel" src="http://blog.creationix.com/wp-content/uploads/2008/06/085-00020.jpg" alt="" width="200" height="200" /><img class="alignnone size-full wp-image-6" title="Freestyle Color" src="http://blog.creationix.com/wp-content/uploads/2008/06/085-00002.jpg" alt="" width="200" height="200" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creationix.com/toys-and-games/the-laqs-are-on-the-way/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OCaml Oh My&#8230;</title>
		<link>http://blog.creationix.com/software-languages/ocaml-oh-my/</link>
		<comments>http://blog.creationix.com/software-languages/ocaml-oh-my/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 00:11:03 +0000</pubDate>
		<dc:creator>Tim Caswell</dc:creator>
		
		<category><![CDATA[Software Languages]]></category>

		<category><![CDATA[ocaml]]></category>

		<category><![CDATA[school]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.creationix.com/?p=3</guid>
		<description><![CDATA[I'm starting my graduate classes finally.  My school has this cool program called Fast Track where you're allowed to take graduate level classes as an undergrad student and get dual credit.  I finally qualified for the program and signed up for as many classes as I could fit in.
One of those classes is one called [...]]]></description>
			<content:encoded><![CDATA[<p>I'm starting my graduate classes finally.  My school has this cool program called Fast Track where you're allowed to take graduate level classes as an undergrad student and get dual credit.  I finally qualified for the program and signed up for as many classes as I could fit in.</p>
<p>One of those classes is one called Advanced Programming Languages.  It's so advanced that I had to get permission from the Associate Dean.  He said no so I went to the teacher and he said he's out of town but it's ok with him as long as I learn OCaml before the class.  So I went back to the Associate Dean and he finally signed for my class.  Now I'm going through OCaml tutorials.  Having a strong background in procedural programming, it's very different for me.  I've done some work in the past with XSLT (a functional language written in xml, yuck) and used the functional parts of PHP, Ruby, and Python.  I've even tried to read the Neko compiler which is self hosting written in NekoML. NekoML is a variant of OCaml, but a little easier.  Well I couldn't read much of it.</p>
<p>Here is my first OCaml program.  It uses nested functions and takes advantage of the rec keyword to control function namespacing:</p>
<pre class="ocaml"><span style="color: #06c; font-weight: bold;">let</span> range a b =
  <span style="color: #06c; font-weight: bold;">let</span> <span style="color: #06c; font-weight: bold;">rec</span> range a b accum =
    <span style="color: #06c; font-weight: bold;">if</span> b &lt; a <span style="color: #06c; font-weight: bold;">then</span> accum
    <span style="color: #06c; font-weight: bold;">else</span> range a <span style="color: #6c6;">&#40;</span>b - <span style="color: #c6c;">1</span><span style="color: #6c6;">&#41;</span> <span style="color: #6c6;">&#40;</span>b :: accum<span style="color: #6c6;">&#41;</span>
  <span style="color: #06c; font-weight: bold;">in</span>
  range a b <span style="color: #6c6;">&#91;</span><span style="color: #6c6;">&#93;</span>;;
&nbsp;
range <span style="color: #c6c;">1</span> <span style="color: #c6c;">10</span>;;</pre>
<p>Pretty cool huh.  I ran it in the interactive interpreter like I do in my scripting languages. The range function defined in the outer can't be used till after it's definition since I didn't include the rec keyword. The inner one uses rec and an extra accumulator so that it will be compiled with tail recursion.  Otherwise my range function would be very limited in what it could do without causing stack overflow.  Once the inner range function is defined, the outer one, which is just a wrapper, can call it directly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creationix.com/software-languages/ocaml-oh-my/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
