<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feeds.feedburner.com/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Hammer of Code</title>
	
	<link>http://www.hammerofcode.com</link>
	<description>&gt;&gt;me.become!(:ruby_developer)</description>
	<pubDate>Thu, 06 Nov 2008 06:21:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/HammerOfCode" type="application/rss+xml" /><item>
		<title>Ruby Oneliner: Benchmarking a string concordance</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/444053132/</link>
		<comments>http://www.hammerofcode.com/2008/11/ruby-concordance/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 06:12:36 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/?p=80</guid>
		<description><![CDATA[Just the other week in one of my university Comp. Sci. classes I was asked to use a supplied Linked List to create a Concordance from standard input (in C I might add). The problem wasn&#8217;t necessarily hard, in fact, it was simple enough some friends and I realized it was a great Ruby one-liner [...]]]></description>
			<content:encoded><![CDATA[<p>Just the other week in one of my university Comp. Sci. classes I was asked to use a supplied Linked List to create a Concordance from standard input (in C I might add). The problem wasn&#8217;t necessarily hard, in fact, it was simple enough some friends and I realized it was a great Ruby one-liner candidate; Sure enough this was the result after no more than a minute of jabbering:</p>
<pre class="syntax-highlight:ruby">
hash = Hash.new(0); str.split.each { |m| hash[m] += 1}
</pre>
<p>Well thats all fine and dandy&#8230; A plain old Ruby one-liner. My friend Stef, however, suggested this close alternative:</p>
<pre class="syntax-highlight:ruby">
hash = Hash.new(0); str.scan(/\w+/m) { |m| hash[m] += 1}
</pre>
<p>Whats different? Well Stef&#8217;s code uses a <a title="Regular expression - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Regular_expression" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');">regex</a> scan of a &#8220;m&#8221;ultiline string, then adds 1 to each match in the hash. His regex takes series of 1 or more &#8220;\w&#8221;ord characters to be a match. Whereas my code uses Ruby&#8217;s built-in &#8220;split&#8221; method to split on whitespace, then iterate over the resultant array.</p>
<p>This is how split works:</p>
<pre class="syntax-highlight:ruby">
str = &quot;My name is Ryan.&quot;
str.split #=&gt; [&quot;My&quot;,&quot;name&quot;,&quot;is&quot;,&quot;Ryan.&quot;]
</pre>
<p>For simple strings, like &#8220;My name is Ryan.&#8221;, Stef&#8217;s regex scan works almost identically. For this example we will ignore the fact that &#8220;\w&#8221; won&#8217;t match things like &#8216;-&#8217;, its not really that important at the moment.</p>
<p>As any good Computer Scientists our divergence of methods lead to a great argument&#8230; Which one was better? From my point of view, &#8220;split.each&#8221; is much more readable, clearly (without a regex) splits on whitespace, and is nearly as terse as the regex equivalent. From Stef&#8217;s point of view he A) didn&#8217;t have to use &#8220;each&#8221; and B) had more control over the split. We agreed to disagree, clearly each works best in different situations. Split is best for a simple split, but Scan is far more versatile.</p>
<p>Having put semantics aside we began wrestling over which one would be faster. We threw together this &#8220;Benchmark&#8221; script:</p>
<pre class="syntax-highlight:ruby">
require &#039;benchmark&#039;

str = &quot;1 2 3 4-5 6 7 8-9&quot;
Benchmark.bm do |bm|
bm.report(&quot;split: &quot;) {10000.times do hash = Hash.new(0); str.split.each { |m| hash[m] += 1}; end  }
bm.report(&quot;scan: (\\w+) &quot;) { 10000.times do hash = Hash.new(0); str.scan(/\w+/m) { |m| hash[m] = 1} end  }
bm.report(&quot;scan: (\w+(-\w+)?) &quot;) { 10000.times do hash = Hash.new(0); str.scan(/(\w+(-\w+)?)/m) { |m| hash[m] += 1} end  }
end
</pre>
<p>Here&#8217;s the result of those benchmarks on various Ruby versions:</p>
<pre class="syntax-highlight:ruby">
## Native environment tests - 1.8.7
#Creating one hash and clear it: (hash.clear instead of hash = Hash.new(0))
#                     user     system      total        real
# split:            0.490000   0.150000   0.640000 (  0.656165)
# scan: (\w+)       0.800000   0.180000   0.980000 (  1.003529)
# scan: (w+(-w+)?)  1.390000   0.340000   1.730000 (  1.745792)

#Creating a new hash every time:
#                     user     system      total        real
# split:            0.470000   0.140000   0.610000 (  0.643760)
# scan: (\w+)       0.800000   0.180000   0.980000 (  0.989383)
# scan: (w+(-w+)?)  1.170000   0.260000   1.430000 (  1.457280)

## Variety tests by Stef Penner
#mbp:rubinius stefan$ ruby -v
# -&gt; ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-darwin9.3.0]
#mbp:rubinius stefan$ macruby -v
# -&gt; MacRuby version 0.3 (ruby 1.9.0 2008-06-03) [universal-darwin9.0]
#mbp:rubinius stefan$ jruby -v
# -&gt; ruby 1.8.6 (2008-06-22 rev 6555) [i386-jruby1.1.1]
#mbp:rubinius stefan$ rbx -v
# -&gt; rubinius 0.9.0 (ruby 1.8.6 compatible) (8038487c4) (10/19/2008) [i686-apple-darwin9.5.0]

## Variety tests by Stef Penner
# $ rubinous regx.rb
#                   user     system      total        real
# split:           1.422384   0.000000   1.422384 (  1.422366)
# scan: (\w+)      1.458300   0.000000   1.458300 (  1.458299)
# scan: (w+(-w+)?) 2.127930   0.000000   2.127930 (  2.127929)

# $ ruby regx.rb
#                   user     system      total        real
# split:           0.410000   0.140000   0.550000 (  0.559599)
# scan: (\w+)      0.670000   0.180000   0.850000 (  0.862585)
# scan: (w+(-w+)?) 0.990000   0.270000   1.260000 (  1.268065)

# $ ruby1.9 regx.rb
#                   user     system      total        real
# split:           0.090000   0.000000   0.090000 (  0.096752)
# scan: (\w+)      0.170000   0.000000   0.170000 (  0.164321)
# scan: (w+(-w+)?) 0.280000   0.000000   0.280000 (  0.291374)
# $ macruby regx.rb
#                   user     system      total        real
# split:           0.440000   0.030000   0.470000 (  0.490660)
# scan: (\w+)      4.310000   0.050000   4.360000 (  4.449849)
# scan: (w+(-w+)?) 4.380000   0.040000   4.420000 (  4.503897)

# $ jruby regx.rb
#                   user     system      total        real
# split:           0.456000   0.000000   0.456000 (  0.456000)
# scan: (\w+)      0.261000   0.000000   0.261000 (  0.260000)
# scan: (w+(-w+)?) 0.369000   0.000000   0.369000 (  0.369000)

# $jruby 1.1.3 regx.rb
#                   user     system      total        real
# split:           0.235000   0.000000   0.235000 ( 0.234993)
# scan: (\w+)      0.228000   0.000000   0.228000 ( 0.228318)
# scan: (w+(-w+)?) 0.329000   0.000000   0.329000 ( 0.328884)
</pre>
<p>Its rather interesting to see how each version of ruby compares, yes <a title="Home" href="http://rubini.us/" onclick="javascript:pageTracker._trackPageview('/outbound/article/rubini.us');">Rubinius</a> is slower, but WOW, Ruby 1.9.1 takes only 16% the time 1.8.7 takes!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/11/ruby-concordance/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/11/ruby-concordance/</feedburner:origLink></item>
		<item>
		<title>repurposing the blog</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/444053133/</link>
		<comments>http://www.hammerofcode.com/2008/10/repurposing-the-blog/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 01:21:52 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/?p=77</guid>
		<description><![CDATA[Well as GSoC has come to an end and my interests have moved on. I will be repurposing the blog as a more code/personal-centric blog (it is, THE, hammer of code). If your GSoC RSS keeps nagging you with my annoying posts give me a shout telling me where I&#8217;m getting to you from; I&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p>Well as GSoC has come to an end and my interests have moved on. I will be repurposing the blog as a more code/personal-centric blog (it is, THE, hammer of code). If your GSoC RSS keeps nagging you with my annoying posts give me a shout telling me where I&#8217;m getting to you from; I&#8217;ll remove myself from that feed aggregator.</p>
<p>As for me, I&#8217;ve come upon a new stage of my &#8220;developership&#8221; – I&#8217;ve been learning <a href="http://www.ruby-lang.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ruby-lang.org');" title="Ruby Programming Language">Ruby</a>, <a href="http://www.rubyonrails.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.rubyonrails.org');" title="Ruby on Rails">Rails</a>, CSS, HTML, and a bit of Javascript. (in addition to all the languages I&#8217;ve been learning in school: FP, C, Lisp and Prolog at present). As much as I didn&#8217;t expect I&#8217;ve been exhilarated by web development these last few weeks. I&#8217;ve been spending more and more time with my two good friends Burke and Stef over at <a href="http://www.53cr.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.53cr.com');">Chromium 53</a>; both of whom attend the University of Manitoba with me. They&#8217;ve been doing big things, and it has gotten me excited. I&#8217;m currently playing catch up with Ruby and Rails in hopes of working with those two fine gentlemen (and the way things are going they will need a few helping hands <img src='http://www.hammerofcode.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). </p>
<p>Stay tuned as I may start posting little snips and pieces of code I write or find interesting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/10/repurposing-the-blog/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/10/repurposing-the-blog/</feedburner:origLink></item>
		<item>
		<title>still alive?</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/382016313/</link>
		<comments>http://www.hammerofcode.com/2008/09/still-alive/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 05:06:18 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[school]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/2008/09/still-alive/</guid>
		<description><![CDATA[Well, contrary to how my current weekly post-count must look, I am still alive. Where I last left off I had just finished up the official part of my work on thousand parsec. Since then I travelled a few times, to a family member&#8217;s cabin in Gimli, MB, and into Winnipeg while my wife did [...]]]></description>
			<content:encoded><![CDATA[<p>Well, contrary to how my current weekly post-count must look, I am still alive. Where I last left off I had just finished up the official part of my work on <a href="http://www.thousandparsec.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.thousandparsec.net');" title="Thousand Parsec : News">thousand parsec</a>. Since then I travelled a few times, to a family member&#8217;s cabin in <a href="http://www.gimli.ca/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.gimli.ca');" title="Rural Municipality of Gimli, Manitoba">Gimli, MB</a>, and into <a href="http://www.winnipeg.ca/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.winnipeg.ca');" title="City of Winnipeg : Official City of Winnipeg Homepage : Winnipeg, Manitoba, Canada : Winnipeg.ca (UD)">Winnipeg</a> while my wife did some professional development for work. All the while I was gaming to my hearts content; In my time I played <a href="http://www.us.playstation.com/patapon/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.us.playstation.com');" title="Patapon">Patapon</a>, <a href="http://en.wikipedia.org/wiki/Lumines" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" title="Lumines - Wikipedia, the free encyclopedia">Lumines</a>, <a href="http://en.wikipedia.org/wiki/Geometry_Wars" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" title="Geometry Wars - Wikipedia, the free encyclopedia">Geometries Wars 2</a>, <a href="http://fable.lionhead.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/fable.lionhead.com');" title="Fable">Fable</a> (in anticipation of Fable 2), and am presently playing <a href="http://www.castlecrashers.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.castlecrashers.com');" title="Castle Crashers">Castle Crashers</a> (which I&#8217;m surprised my sister actually enjoys playing with me). In addition I&#8217;ve begun extended support and polishing off TP-risk, particularly some bug fixes, and planning on a substantial fork to work out what I would call unresolvable issues.</p>
<p>Today I wrapped up some errands at the <a href="http://www.umanitoba.ca/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.umanitoba.ca');" title="University of Manitoba">university</a> before I head back to school on thursday. All I can say is I am very much sick and tired of being nickeled and dimed by univesities and the like treating their students like invalids; I&#8217;m a big <em>*</em>*ing boy now, I should be able to use a credit card to pay for things, declare majors, not pay almost $120 for each book I purchase, and finally, I should be treated as if I were responsible for my own decisions. AND SCENE&#8230; (I&#8217;ll cut myself short here, it will get pretty incoherent if I continue)</p>
<p>As for classes I am taking this term; I&#8217;ll be taking:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Discrete_mathematics" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" title="Discrete mathematics - Wikipedia, the free encyclopedia">Discrete Mathematics</a> for Computer Science</li>
<li>Introduction to <a href="http://en.wikipedia.org/wiki/Scientific_computing" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" title="Scientific Computing">Scientific Computing</a></li>
<li>Introduction to <a href="http://en.wikipedia.org/wiki/Artificial_intelligence" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" title="Artificial intelligence - Wikipedia, the free encyclopedia">Artificial Intelligence</a></li>
<li>Programming Practices (a course in C taught by my favorite professor <a href="http://www.zapptek.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.zapptek.com');" title="ZappTek :: The iPod software you need.">M. Zapp</a>)</li>
<li>Programming Language Concepts</li>
</ul>
<p>I&#8217;m not sure how the load of the term will be, but if it isn&#8217;t that much (hopefully my GSoC experience has trained me well) I hope to spend some more time developing myself a decent game engine to start making games on, or perhaps learn <a href="http://www.ruby-lang.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ruby-lang.org');" title="Ruby Programming Language">Ruby</a> or <a href="http://www.python.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.python.org');" title="Python Programming Language -- Official Website">Python</a>, as well as trying to make a dime or two on <a href="http://www.rentacoder.com/RentACoder/DotNet/default.aspx" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.rentacoder.com');" title="Rent A Coder">RentACoder</a>. It is getting late though, I should be off to bed <img src='http://www.hammerofcode.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/09/still-alive/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/09/still-alive/</feedburner:origLink></item>
		<item>
		<title>thats a wrap</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/366003987/</link>
		<comments>http://www.hammerofcode.com/2008/08/thats-a-wrap/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 21:43:39 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[GSoC s]]></category>

		<category><![CDATA[TP]]></category>

		<category><![CDATA[weekly report]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/2008/08/thats-a-wrap/</guid>
		<description><![CDATA[Well things have finally come to an end. As my time with GSoC wraps up I look back and realize how quickly the summer came to an end, and how much fun I had. After my short trip out of province to visit family and friends I arrived home yesterday to finish off the last [...]]]></description>
			<content:encoded><![CDATA[<p>Well things have finally come to an end. As my time with GSoC wraps up I look back and realize how quickly the summer came to an end, and how much fun I had. After my short trip out of province to visit family and friends I arrived home yesterday to finish off the last of my emails and correspondences. Today I exported my screencasts in a higher resolution for the TP media server, and got a few last minute bugs resolved. While I won&#8217;t quit working on Risk I am drawing the line between GSoC and personal work today.</p>
<p>This whole experience has been a real eye opener for me. I&#8217;ve become a lot more confident about my current skill as a programmer, and have also come to see more of the &#8220;big picture&#8221; and where I fit in. While I am still no where near being an expert I think I will now be able to recognize when I get there :P. I&#8217;m very excited to see the effect all this learning has had on me when I return to school this fall; Hopefully I won&#8217;t be butting my head with professors and the like too often, but it is now very clear to me how much my Computer Science training will/has failed me and my fellow students. If only everyone could have to opportunity to work with GSoC and extend themselves as I have. If I were to just complete my degree without GSoC or personal projects I am sure I would be an atrocious programmer.</p>
<p>As time permits I will continue to work on Thousand Parsec and Risk, but I cannot guarantee the same level of commitment as I have put in this summer. My first orders of business will be increased stability (mainly via upcoming AI&#8217;s and their development), improved audio and video (so like everything) for the screencasts, particularly &#8220;basic&#8221;, and in general just being available to help with the ruleset and improve upon it.</p>
<p>As far as I can see (and hope) this summer has been a success and if finances aren&#8217;t a problem I would hope to participate again next summer. If anyone has any issues with Risk don&#8217;t hesitate to email me, as I will never ignore a TP related email.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/08/thats-a-wrap/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/08/thats-a-wrap/</feedburner:origLink></item>
		<item>
		<title>a wrap?</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/357894587/</link>
		<comments>http://www.hammerofcode.com/2008/08/a-wrap/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 00:19:37 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[GSoC s]]></category>

		<category><![CDATA[report]]></category>

		<category><![CDATA[screencasts]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/2008/08/a-wrap/</guid>
		<description><![CDATA[Well as far as actual working days goes today was my last &#8220;pencil up&#8221; day of work. Tomorrow I will be starting a short holiday out of province to visit friends and attend a wedding.

I won&#8217;t launch into a large speech about my time with GSoC and the Thousand Parsec project yet, as things aren&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Well as far as actual working days goes today was my last &#8220;pencil up&#8221; day of work. Tomorrow I will be starting a short holiday out of province to visit friends and attend a wedding.</p>
<p><span id="more-74"></span></p>
<p>I won&#8217;t launch into a large speech about my time with GSoC and the Thousand Parsec project yet, as things aren&#8217;t QUITE done yet. I won&#8217;t be back until the ~12-13 so as far as things have gone I will be in the &#8220;code wrap-up stage.&#8221; Things are generally pretty good, and in the remaining time I will tidy up my code and polish off bonus reinforcements. It is almost too bad that screencasts took to long (I barely finished today), as there are many other &#8220;small&#8221; features I would have liked to integrate (such as BattleXML, inkscape-independant map imports, and other &#8220;Risk&#8221; features.) </p>
<p>I almost forgot to announce the most important thing: I wrapped up production of three Risk screencasts today. Its been a long time coming as far as &#8220;features&#8221; go. I probably spent 3-4 weeks just working mainly on screencasts and related setup (to actually record the screencasts.) In the long run if I were to produce a screencast again I would be wary to proceed without a quality microphone, screencasting software, video-editing software, and a hella-good script. Throw in visiting family and it was a real nightmare trying to get things done. You can find the screencasts on youtube (if you search real hard <img src='http://www.hammerofcode.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) or via the <a href="http://www.thousandparsec.net/wiki/Risk" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.thousandparsec.net');" title="Risk - Thousand Parsec Wiki">TP Wiki Risk entry</a>. Oh heck, I&#8217;ll just include them at the bottom.</p>
<p>Oh and an added note: iMovie &#8216;08 really sucks compared to the older versions.</p>
<p>Basic Gameplay:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/1Zt07LQ81dw&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/1Zt07LQ81dw&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
</p>
<p>Advanced Gameplay:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/iYXl6evskyc&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/iYXl6evskyc&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
</p>
<p>Map Making:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/TpjhikPlMwc&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/TpjhikPlMwc&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/08/a-wrap/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/08/a-wrap/</feedburner:origLink></item>
		<item>
		<title>Weekly Report 12</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/353061914/</link>
		<comments>http://www.hammerofcode.com/2008/08/weekly-report-12/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 22:46:44 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[weekly report]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/2008/08/weekly-report-12/</guid>
		<description><![CDATA[Well having gotten back into the swing of things and well on my way to getting my screencasts done I&#8217;m starting to feel much better. I (think I) have finished my first screencast; having learnt very quickly that a good script is a huge part of successfully taping a good screencast. Second to that is [...]]]></description>
			<content:encoded><![CDATA[<p>Well having gotten back into the swing of things and well on my way to getting my screencasts done I&#8217;m starting to feel much better. I (think I) have finished my first screencast; having learnt very quickly that a good script is a huge part of successfully taping a good screencast. Second to that is practicing a few times. I managed rewrite a good part of my Advanced screencast script and record and edit the screencast again. I just today hashed out almost all of the map making script and should be recording that some time this weekend. Here is a link to the youtube upload (I&#8217;ve noticed it gets rather fuzzy on the upload, but I believe I haven&#8217;t left any crucial things out of the voicework. I can always reproduce at a higher resolution if anyone has a better place to post to):
</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/iYXl6evskyc&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/iYXl6evskyc&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>  </p>
<p>This week also saw the introduction of wormhole support (<a href="http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=f33ad27fbb80a9dbaed9eab200207c32de70a40f" onclick="javascript:pageTracker._trackPageview('/outbound/article/git.thousandparsec.net');" title="git.thousandparsec.net Git - tpserver-cpp.git/commit">commit</a>) which has vastly improved the playability of the ruleset. Other than that this week has been technically quite uneventful; I&#8217;ve learned very quickly how hard screencasting really is. Things still look and feel like they will be on time, but I can definitely say I won&#8217;t have as much time left over as I thought I would.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/08/weekly-report-12/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/08/weekly-report-12/</feedburner:origLink></item>
		<item>
		<title>recording begins</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/351973979/</link>
		<comments>http://www.hammerofcode.com/2008/07/recording-begins/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 22:00:37 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[screencasts]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/2008/07/recording-begins/</guid>
		<description><![CDATA[Well after almost a full weeks worth of meddling, script writing, and the addition of wormholes to RIsk I&#8217;ve finally managed to begin filming my screencasts. As things turned out I quickly realized how useless my scripts actually were, and quickly reverted to &#8220;winging it.&#8221; Since I intend to down the screen captures I don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Well after almost a full weeks worth of meddling, script writing, and the addition of wormholes to RIsk I&#8217;ve finally managed to begin filming my screencasts. As things turned out I quickly realized how useless my scripts actually were, and quickly reverted to &#8220;winging it.&#8221; Since I intend to down the screen captures I don&#8217;t exactly need to worry about screwing up, simple pause, and start again. I have to admit how alien producing a screencast feels for me in general and as part of GSoC. Today I managed to record my advanced screencast and my map making screencast. Since the train is now rolling I see no problem in recording my basic screencast tomorrow. For everyone&#8217;s entertainment I have uploaded to youtube the uncut/unedited recording of my advanced screencast; <strong>please let me know if the panning is too jumpy, the recording is short enough I can redo it with some different configuration to clean that up.</strong>
</p>
<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/YAMoWKDzmxg"></param> <embed src="http://www.youtube.com/v/YAMoWKDzmxg" type="application/x-shockwave-flash" width="425" height="350"></embed></object></p>
<p>
Other than that I am a little confused about how good the screencast needs to be. I don&#8217;t want to seem like a schmuk getting tongue-tied on film, but does the odd slip-up here and there ruin the entire paragraph? Please let me know what you think&#8230;</p>
<p>EDIT: OK, so the audio is pretty quiet, and it sounds like I&#8217;m blasting off to somewhere. I&#8217;ll probably rerecord the audio with better audio, unless I can clean it up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/07/recording-begins/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/07/recording-begins/</feedburner:origLink></item>
		<item>
		<title>back at it</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/349783231/</link>
		<comments>http://www.hammerofcode.com/2008/07/back-at-it-2/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 20:35:00 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[maps]]></category>

		<category><![CDATA[screencasts]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/2008/07/back-at-it-2/</guid>
		<description><![CDATA[Well it is my first day back at work without family meddling around the house. It is a lot easier to get, well, anything done. I spent some time today playing around with clients and finalizing my plans for the screencasts. I&#8217;m very glad to have wormhole support as I now no longer need to [...]]]></description>
			<content:encoded><![CDATA[<p>Well it is my first day back at work without family meddling around the house. It is a lot easier to get, well, anything done. I spent some time today playing around with clients and finalizing my plans for the screencasts. I&#8217;m very glad to have wormhole support as I now no longer need to explain why it is so darn difficult to play Risk :P. Since adding wormhole&#8217;s to the Risk ruleset it is now impossible to play Risk without a fully up-to-date client (including libtpclient-py and libtpproto-py). I&#8217;ve had some difficulty getting a client up and running again in OS X but things have been a breeze on linux. Hopefully the version number of tpclient-pywx can be incremented to force upon everyone Risk compatibility. Other than that I have little today to talk about. My foray into screencasting should begin tomorrow; I&#8217;m sure I&#8217;ll have lots to say about that!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/07/back-at-it-2/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/07/back-at-it-2/</feedburner:origLink></item>
		<item>
		<title>vacationing family has vacated</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/348899112/</link>
		<comments>http://www.hammerofcode.com/2008/07/vacationing-family-has-vacated/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 23:58:40 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[display]]></category>

		<category><![CDATA[maps]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/2008/07/vacationing-family-has-vacated/</guid>
		<description><![CDATA[Rings the bells and spread the word, vacationing family has finally vacated! I am now free from the influence of 4 adults and 5 dogs intruding on my workplace. I have to say I really expected things to go a little better than they did; Originally half of the family was staying at a local [...]]]></description>
			<content:encoded><![CDATA[<p>Rings the bells and spread the word, vacationing family has finally vacated! I am now free from the influence of 4 adults and 5 dogs intruding on my workplace. I have to say I really expected things to go a little better than they did; Originally half of the family was staying at a local campground, but when their time ran up and they were going to leave they found out their trailer was massively out of alignment. They needed to stay an extra 1/2 week for their alignment appointment, and as a result instead of only having 2 people/dogs at the house we had double. I don&#8217;t hate my family or anything, its just too many people and dogs in one place.</p>
<p>As for work things have been delayed but not so much I am behind schedule. It was very exciting to learn that many of the AI &#8216;fellows&#8217; would be working on a Risk AI; It has forced me to think more deeply about how Risk works from an outsiders perspective (and probably going to improve the quality of my screencasts.) I should be recording my screencast&#8217;s video this week, and dubbing this week or next. I also received some positive feedback from my mentor Tyler about my map import code; Surprisingly (since I still undervalue myself as a coder) I was not far from the mark. If I put in a concentrated effort it should only be 1-2 days to really clean up that code. I also received some feedback about comments in my code from Mithro: I&#8217;m not terribly far from the correct path, but I will be &#8220;doxygenating&#8221; my functions most likely in the &#8220;wrap-up&#8221; week that is the last week of GSoC.</p>
<p>Another exciting development from Mithro was the creation of a &#8220;Wormholes&#8221; patch. The patch updates my Risk code to properly draw lines between planets. This development has to be one of the biggest things to happen to Risk this summer. Map imports was big, and cool, but &#8220;Line drawing&#8221; is a huge usability feature that Risk was sorely missing. A big thanks to Mithro and anyone else who aided him (and by proxy, me) in getting Risk to display properly.</p>
<p><img src="http://www.hammerofcode.com/wp-content/2008/07/wormholes.png" alt="Wormholes" title="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/07/vacationing-family-has-vacated/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/07/vacationing-family-has-vacated/</feedburner:origLink></item>
		<item>
		<title>Weekly Report 11</title>
		<link>http://feeds.feedburner.com/~r/HammerOfCode/~3/346056734/</link>
		<comments>http://www.hammerofcode.com/2008/07/weekly-report-11/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 21:53:33 +0000</pubDate>
		<dc:creator>neufelry</dc:creator>
		
		<category><![CDATA[GSoC]]></category>

		<category><![CDATA[weekly report]]></category>

		<guid isPermaLink="false">http://www.hammerofcode.com/2008/07/weekly-report-11/</guid>
		<description><![CDATA[Well as a culmination of many things this week probably turned out to be the biggest waste of time/disappointment of my time with GSoC. As a result of 5 large dogs, 4 adults and 1 baby taking up temporary residency in my home (I think its called &#8220;visiting&#8221;) I&#8217;ve gone from productive to&#8230; well not [...]]]></description>
			<content:encoded><![CDATA[<p>Well as a culmination of many things this week probably turned out to be the biggest waste of time/disappointment of my time with GSoC. As a result of 5 large dogs, 4 adults and 1 baby taking up temporary residency in my home (I think its called &#8220;visiting&#8221;) I&#8217;ve gone from productive to&#8230; well not really much. I did my best to get SOME space here and there to work; I managed to write scripts for my screencasts, and help the AI guys get started making an AI(s) for Risk. (This of course is the only real exciting part of my week.) I did also get to start today in getting the PyOgre client running on my machines, so I can get some good screen shots for Risk. I&#8217;m presently hoping anyone with a plane or helicopter might come and rescue me and my laptop to a more dog/relative-free location&#8230;anyone?</p>
<p>Contrary to last week I can actually link to some commits(<a href="http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=ce806ed1746cb7e75c7a4464747ce0f06345a308" onclick="javascript:pageTracker._trackPageview('/outbound/article/git.thousandparsec.net');" title="git.thousandparsec.net Git - tpserver-cpp.git/commit">first half of scripts</a>, <a href="http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=7007e288725452e3b319605166be3062695b4f79" onclick="javascript:pageTracker._trackPageview('/outbound/article/git.thousandparsec.net');" title="git.thousandparsec.net Git - tpserver-cpp.git/commit">second half</a>, <a href="http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpserver-cpp.git;a=commit;h=c30a5c87ae30bd3bf8bdd816f99c5a4c109919bf" onclick="javascript:pageTracker._trackPageview('/outbound/article/git.thousandparsec.net');" title="git.thousandparsec.net Git - tpserver-cpp.git/commit">map</a>); There have been less and less (commits) now that I am winding down. In fact, my TODO list has dwindeled to a managle 4 items:</p>
<ol>
<li>Clean up SVG map import</li>
<li>Implement awarding continent ownership bonus</li>
<li>Dub audio for JLPs screencast</li>
<li>Record + Dub my own screencasts</li>
</ol>
<p>As for my plans for next week; I plan to get lots done. I&#8217;ll be recording my own screen casts as well as audio for JLP&#8217;s. I may also get around to ownership bonuses and cleaning up my SVG map imports <img src='http://www.hammerofcode.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> Luckily for me family will be leaving Tuesday morning, and I should have a good full week to work! (something I must say I have been missing)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hammerofcode.com/2008/07/weekly-report-11/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.hammerofcode.com/2008/07/weekly-report-11/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.775 seconds -->
