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

<channel>
	<title>Programmable Programmer</title>
	<atom:link href="http://gizmoworks.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://gizmoworks.wordpress.com</link>
	<description>I'm thinking about it</description>
	<lastBuildDate>Tue, 13 Dec 2011 20:32:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='gizmoworks.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Programmable Programmer</title>
		<link>http://gizmoworks.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://gizmoworks.wordpress.com/osd.xml" title="Programmable Programmer" />
	<atom:link rel='hub' href='http://gizmoworks.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Flush Internals</title>
		<link>http://gizmoworks.wordpress.com/2011/03/08/flush-internals/</link>
		<comments>http://gizmoworks.wordpress.com/2011/03/08/flush-internals/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 19:01:35 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2011/03/08/flush-internals/</guid>
		<description><![CDATA[State management in Flush (and in games in general)Most games need to manage the current state of a game, be it chess positions or number of cards played or the size of the pot. One could always use an global variable like turn and then set the variable to the next player., However, another approach <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=128&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<div style="background-color:transparent;"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">State management in Flush (and in games in general)</span><br /><span style="font-family:Arial;"><span style="font-size:15px;"><br /></span></span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Most games need to manage the current state of a game, be it chess positions or number of cards played or the size of the pot. One could always use an global variable like turn and then set the variable to the next player., However, another approach could be to use functional programing idioms and let the state flow from one player to the next without having to create any such variable.</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Suppose there is a list of players, then we could recursively work on the list and get to the next player.</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">For example:</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span>(define (play players)</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span>(if &nbsp;(null? players) &lsquo;end</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span> &nbsp;&nbsp;&nbsp;&nbsp;(begin</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span><span> </span>(do-sth (car players))</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span><span> </span>(play (cdr players))))</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Here we recurse on the list players and call do-sth on the first player in the list.</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Here we have completely removed the use for a turn variable. However, in this simplistic example there is no &nbsp;state management. In the game of flush, there are a couple of variables we need to manage, viz. the current size of the pot, the current minimum allowable bet amount and the amount of money each player has and info on whether a player has passed or not. </span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Lets add the first two variable into our example. Also we change do-sth to play? which looks at the cards of the current player and decides whether it wants to play or not. </span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span>(define (play players pot minbet)</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span>(if (null? players) &lsquo;end</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span> &nbsp;&nbsp;&nbsp;(if (play? (car players)</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(play (cdr players) (+ pot minibet) minibet)</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(play (cdr players) pot minibet)</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Now , when a player plays, &nbsp;&nbsp;the size of the pot increases and this information is passed on to the next player .( Note that we don&rsquo;t have the functionality right now to increase the minibet yet.)</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">But a coulple of information are missing like the amount of money player1 has and the pass state of a player. If a player has already passed, it will simply pass all the information to the next player.</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span>(define (play players pot minibet ms ps)</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span>(if (null? players) &lsquo;end</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span> &nbsp;&nbsp;&nbsp;(if (and (car ps) (play? (car players) minibet pot (car ms))</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(play (cdr players) (+ pot minibet) minibet (cdr ms) &nbsp;(cdr ps))</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(play (cdr players) pot minibet (cdr ms) (cdr ps)))))</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Ok, now we&rsquo;ve made a couple of changes. First we added the list ms (money ) and ps (pass status) for each player. The (car ps) is set to true if a player is still playing, so we&rsquo;ve also added that in the if statement. Also we&rsquo;ve added more parameters to the play? function since you need the information on how big the pot is, how much money you have and what the minimum bet is to make your decision. </span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Still a couple of things are missing here. First when you run out of players, it just stops. We&rsquo;ll worry about that later. Another thing that&rsquo;s missing is the new state of money and the pass state. While we have information on the amount of money you have right now, we have no way to record the amount of money you have after you decide to play, Also, if you decide not to play this turn, there is no way to record that info.</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">Lets digress here to talk about some of the idioms of functional programming. Here&rsquo;s a common way to recursively calculate length of a list.</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span>(define (length lst)</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span>(if (null? lst) 0 (+ 1 (length (cdr lst))))</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;">The problem with this is that scheme has to keep track of the recursion and what is left to do. For eg. if you calculate length of a list (1 2 3) it recurs three times, and comes back up three times adding 1 for each recursive call. This problem is usually solved using accumulators.</span>
<p /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span>(define (length-helper lst value)</span><br /><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:baseline;"><span> </span><span> </span>(if (null? lst) </span>  </div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=128&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2011/03/08/flush-internals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>Some updates</title>
		<link>http://gizmoworks.wordpress.com/2011/03/08/some-updates/</link>
		<comments>http://gizmoworks.wordpress.com/2011/03/08/some-updates/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 17:28:57 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2011/03/08/some-updates/</guid>
		<description><![CDATA[Some updates on the callbreak and satori applications. I have finally gotten around to setting up my ec2 server and now callbreak (Seaside version ) and the Satori (github.com/alokthapa/satori) are both available online.&#160; &#160; Link to callbreak : bit.ly/playcallbreak &#160; Link to satori:&#160;http://bit.ly/f5BIrk (although this seems to be broken right now&#8230; ) &#160; Also, I&#8217;ve <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=126&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>Some updates on the callbreak and satori applications. I have finally gotten around to setting up my ec2 server and now callbreak (Seaside version ) and the Satori (github.com/alokthapa/satori) are both available online.&nbsp;</p>
<p>&nbsp;</p>
<p>Link to callbreak : bit.ly/playcallbreak</p>
<p>&nbsp;</p>
<p>Link to satori:&nbsp;<a href="http://bit.ly/f5BIrk">http://bit.ly/f5BIrk</a> (although this seems to be broken right now&#8230; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  )</p>
<p>&nbsp;</p>
<p>Also, I&#8217;ve been working on a scheme implementation for flush (or sth like that), which is played using 3 cards. It&#8217;s available here at github.com/alokthapa/flush so download it and check it out. You will need Racket 5.1 to play the game.&nbsp;</p>
<p>&nbsp;</p>
<p>Enjoy.</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/126/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=126&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2011/03/08/some-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>A web-based teaching application</title>
		<link>http://gizmoworks.wordpress.com/2011/02/02/a-web-based-teaching-application/</link>
		<comments>http://gizmoworks.wordpress.com/2011/02/02/a-web-based-teaching-application/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 00:18:00 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2011/02/02/a-web-based-teaching-application/</guid>
		<description><![CDATA[I was inspired by the way &#8220;The Little Schemer&#8221; was used to teach scheme, with question on the left and answers on the right.&#160;I wondered how hard it would be to build a web app that could teach you in such an interactive way. Not so hard as I later found out, it needed less <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=124&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>I was inspired by the way &#8220;The Little Schemer&#8221; was used to teach scheme, with question on the left and answers on the right.&nbsp;I wondered how hard it would be to build a web app that could teach you in such an interactive way. Not so hard as I later found out, it needed<strong> less than 70 lines</strong> of code to build a prototype. Not only is the code small, but all you need to do is create a &#8220;nodes&#8221; datatype to create your own custom book!&nbsp;</p>
<p>The application first starts with a list of nodes. Each node contains a question to ask and possible responses. Each response can either do nothing (i.e. you move on to the next node in the list), jump you to another named node or have their own child nodes that only they can visit. Each node may or may not have a label, so we can only use them when we need to jump.&nbsp;</p>
<p>Here&#8217;s a small example that tries to teach you French.</p>
<p>
<div class="data type-plain">
<table cellspacing="0" cellpadding="0">
<tr>
<td>
<pre class="line_numbers"><span id="L1">1</span> <span id="L2">2</span> <span id="L3">3</span> <span id="L4">4</span> <span id="L5">5</span> <span id="L6">6</span> <span id="L7">7</span> <span id="L8">8</span> <span id="L9">9</span> <span id="L10">10</span> <span id="L11">11</span> <span id="L12">12</span> <span id="L13">13</span> <span id="L14">14</span> <span id="L15">15</span> <span id="L16">16</span> <span id="L17">17</span> <span id="L18">18</span> <span id="L19">19</span> <span id="L20">20</span> <span id="L21">21</span> <span id="L22">22</span> <span id="L23">23</span> <span id="L24">24</span> <span id="L25">25</span> <span id="L26">26</span> <span id="L27">27</span> <span id="L28">28</span> <span id="L29">29</span> <span id="L30">30</span> <span id="L31">31</span> <span id="L32">32</span> <span id="L33">33</span> <span id="L34">34</span> <span id="L35">35</span> <span id="L36">36</span> <span id="L37">37</span> <span id="L38">38</span> <span id="L39">39</span> <span id="L40">40</span> <span id="L41">41</span> <span id="L42">42</span> <span id="L43">43</span> <span id="L44">44</span> <span id="L45">45</span> <span id="L46">46</span> <span id="L47">47</span> <span id="L48">48</span> <span id="L49">49</span> <span id="L50">50</span> <span id="L51">51</span> <span id="L52">52</span> <span id="L53">53</span> <span id="L54">54</span> <span id="L55">55</span> <span id="L56">56</span> <span id="L57">57</span> <span id="L58">58</span> <span id="L59">59</span> <span id="L60">60</span> <span id="L61">61</span> <span id="L62">62</span> <span id="L63">63</span> <span id="L64">64</span> <span id="L65">65</span> <span id="L66">66</span> <span id="L67">67</span> <span id="L68">68</span> <span id="L69">69</span> <span id="L70">70</span> <span id="L71">71</span> <span id="L72">72</span> <span id="L73">73</span> <span id="L74">74</span> <span id="L75">75</span> <span id="L76">76</span> <span id="L77">77</span> <span id="L78">78</span> <span id="L79">79</span> <span id="L80">80</span> <span id="L81">81</span> <span id="L82">82</span> <span id="L83">83</span> <span id="L84">84</span> <span id="L85">85</span> <span id="L86">86</span> <span id="L87">87</span> <span id="L88">88</span> <span id="L89">89</span> <span id="L90">90</span> <span id="L91">91</span> <span id="L92">92</span> <span id="L93">93</span> <span id="L94">94</span> <span id="L95">95</span> <span id="L96">96</span> <span id="L97">97</span> <span id="L98">98</span> <span id="L99">99</span> <span id="L100">100</span> <span id="L101">101</span> <span id="L102">102</span> <span id="L103">103</span> <span id="L104">104</span> <span id="L105">105</span> <span id="L106">106</span> <span id="L107">107</span> <span id="L108">108</span> <span id="L109">109</span> <span id="L110">110</span> <span id="L111">111</span> <span id="L112">112</span> <span id="L113">113</span> <span id="L114">114</span> <span id="L115">115</span> <span id="L116">116</span> <span id="L117">117</span> <span id="L118">118</span> <span id="L119">119</span> <span id="L120">120</span> <span id="L121">121</span> <span id="L122">122</span> <span id="L123">123</span> <span id="L124">124</span> <span id="L125">125</span> <span id="L126">126</span> <span id="L127">127</span> <span id="L128">128</span> </pre>
</td>
<td width="100%">
<div class="highlight">
<pre />
<div class="line" id="LC1">#lang racket</div>
<div class="line" id="LC2">(require web-server/servlet)</div>
<div class="line" id="LC3">(require web-server/servlet-env)</div>
<div class="line" id="LC4"></div>
<div class="line" id="LC5"></div>
<div class="line" id="LC6">; a teaching web thingy where you can create your own custom teaching libraries.</div>
<div class="line" id="LC7">; </div>
<div class="line" id="LC8">; </div>
<div class="line" id="LC9">; let's call an ask-response an askonce</div>
<div class="line" id="LC10">; askonse contains ask and response</div>
<div class="line" id="LC11">; </div>
<div class="line" id="LC12">; ask can contain text, pics or combinations of either.</div>
<div class="line" id="LC13">; </div>
<div class="line" id="LC14">; response can contain text, and choices.</div>
<div class="line" id="LC15">; </div>
<div class="line" id="LC16">; </div>
<div class="line" id="LC17">; each askonse can have a label so that you can get back to it later.</div>
<div class="line" id="LC18">; </div>
<div class="line" id="LC19">; each response leads to another askonse.</div>
<div class="line" id="LC20">; </div>
<div class="line" id="LC21">; How would it be structured?</div>
<div class="line" id="LC22">; </div>
<div class="line" id="LC23">; 1. you should be able to ask questions and save them to variables. </div>
<div class="line" id="LC24">; </div>
<div class="line" id="LC25">; for eg. you could ask a persons name and reuse it to address the person later on.</div>
<div class="line" id="LC26">; </div>
<div class="line" id="LC27">; askonce -&gt; list of nodes</div>
<div class="line" id="LC28">; ask/responsetext -&gt; some html markup thingy </div>
<div class="line" id="LC29">; car of node -&gt; ask </div>
<div class="line" id="LC30">; cdr of node -&gt; list of possible responses</div>
<div class="line" id="LC31">; last of node (optional) -&gt; label for node</div>
<div class="line" id="LC32">; car of response -&gt; responsetext</div>
<div class="line" id="LC33">; cdr of response (optional) if atom -&gt; go to label</div>
<div class="line" id="LC34">; cdr of response (optional) if list -&gt; a node</div>
<div class="line" id="LC35">; </div>
<div class="line" id="LC36">; </div>
<div class="line" id="LC37">; if no cdr of a response exists, then it moves to the next askonce</div>
<div class="line" id="LC38">; </div>
<div class="line" id="LC39">; </div>
<div class="line" id="LC40">;             </div>
<div class="line" id="LC41">;   </div>
<div class="line" id="LC42">;   </div>
<div class="line" id="LC43"></div>
<div class="line" id="LC44"></div>
<div class="line" id="LC45">(define nodes </div>
<div class="line" id="LC46">&nbsp;&nbsp;'((&quot;how do you do?&quot; ((&quot;not bad! how about you?&quot;)) home)</div>
<div class="line" id="LC47">&nbsp;&nbsp;&nbsp;&nbsp;(&quot;I'm fine thank you!!&quot; </div>
<div class="line" id="LC48">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((&quot;I don't really care!!&quot; home)</div>
<div class="line" id="LC49">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&quot;you're welcome&quot;)))</div>
<div class="line" id="LC50">&nbsp;&nbsp;&nbsp;&nbsp;(&quot;Bonjour&quot; ((&quot;Bonjour! Is that French?&quot;)) bonjour)</div>
<div class="line" id="LC51">&nbsp;&nbsp;&nbsp;&nbsp;(&quot;Oui! Bonjour means 'good morning' in French&quot;</div>
<div class="line" id="LC52">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((&quot;Ahh! Je comprend!&quot;)))</div>
<div class="line" id="LC53">&nbsp;&nbsp;&nbsp;&nbsp;(&quot;What do you think 'bon' in bonjour means?&quot;</div>
<div class="line" id="LC54">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((&quot;umm I don't know...&quot; (&quot;it means 'good'&quot; ((&quot;ahh..&quot;))))</div>
<div class="line" id="LC55">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&quot;I guess it means good&quot; (&quot;awesome&quot; ((&quot;thanks&quot;))))) complicatednode)</div>
<div class="line" id="LC56">&nbsp;&nbsp;&nbsp;&nbsp;(&quot;Ok now what might 'jour' mean?&quot;</div>
<div class="line" id="LC57">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((&quot;night&quot; (&quot;not quite&quot; ((&quot;sorry..&quot;))))</div>
<div class="line" id="LC58">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&quot;day! it means day!&quot; (&quot;awesome&quot; ((&quot;thanks!&quot;))))))</div>
<div class="line" id="LC59">&nbsp;&nbsp;&nbsp;&nbsp;(&quot;too complicated&quot; </div>
<div class="line" id="LC60">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((&quot;yes!&quot; bonjour)</div>
<div class="line" id="LC61">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&quot;not really&quot;)))))</div>
<div class="line" id="LC62"></div>
<div class="line" id="LC63">(define (start request)</div>
<div class="line" id="LC64">&nbsp;&nbsp;(show-nodes nodes request))</div>
<div class="line" id="LC65">&nbsp;&nbsp;</div>
<div class="line" id="LC66">(define atom? </div>
<div class="line" id="LC67">&nbsp;&nbsp;&nbsp;(lambda (x) </div>
<div class="line" id="LC68">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cond </div>
<div class="line" id="LC69">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((null? x) #f)</div>
<div class="line" id="LC70">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((pair? x)   #f)</div>
<div class="line" id="LC71">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(else #t))))</div>
<div class="line" id="LC72"></div>
<div class="line" id="LC73">(define (response-text r) (car r))</div>
<div class="line" id="LC74"></div>
<div class="line" id="LC75">(define (find-node lbl)</div>
<div class="line" id="LC76">&nbsp;&nbsp;&nbsp;&nbsp;(local [(define (find-lbl n)</div>
<div class="line" id="LC77">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(if (null? n) '()</div>
<div class="line" id="LC78">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let ((lblname (last (car n))))</div>
<div class="line" id="LC79">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cond </div>
<div class="line" id="LC80">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((and </div>
<div class="line" id="LC81">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(atom? lblname) </div>
<div class="line" id="LC82">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(eq? lblname lbl)) n)</div>
<div class="line" id="LC83">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(else (find-lbl (cdr n)))))))]</div>
<div class="line" id="LC84">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(find-lbl nodes)))</div>
<div class="line" id="LC85">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div class="line" id="LC86"></div>
<div class="line" id="LC87">(define (node-ask n) (first n))</div>
<div class="line" id="LC88">&nbsp;</div>
<div class="line" id="LC89">(define (response-action r)</div>
<div class="line" id="LC90">&nbsp;&nbsp;(if (pair? (cdr r))</div>
<div class="line" id="LC91">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cadr r)</div>
<div class="line" id="LC92">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'()))</div>
<div class="line" id="LC93">&nbsp;</div>
<div class="line" id="LC94">(define (node-responses n)</div>
<div class="line" id="LC95">&nbsp;&nbsp;(second n))</div>
<div class="line" id="LC96"></div>
<div class="line" id="LC97">(define (node-label n)</div>
<div class="line" id="LC98">&nbsp;&nbsp;(let ((lbl (last n)))</div>
<div class="line" id="LC99">&nbsp;&nbsp;&nbsp;&nbsp;(if (atom? lbl)</div>
<div class="line" id="LC100">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lbl</div>
<div class="line" id="LC101">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'empty-label)))</div>
<div class="line" id="LC102"></div>
<div class="line" id="LC103">(define (has-label? n)</div>
<div class="line" id="LC104">&nbsp;&nbsp;(eq? 'emtpy-label (node-label n)))</div>
<div class="line" id="LC105">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div>
<div class="line" id="LC106">(define (show-nodes n request)</div>
<div class="line" id="LC107">&nbsp;&nbsp;(local [(define (current-node) (car n)) </div>
<div class="line" id="LC108">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(define (response-generator embed/url)</div>
<div class="line" id="LC109">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`(html (head (title &quot;Graph Traversal example&quot;))</div>
<div class="line" id="LC110">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(body</div>
<div class="line" id="LC111">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(p ,(node-ask (current-node)))</div>
<div class="line" id="LC112">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,@(map (lambda (r)</div>
<div class="line" id="LC113">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`(p(a ((href ,(embed/url (new-node-location r)))) ,(response-text r))))</div>
<div class="line" id="LC114">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(node-responses (current-node))))))</div>
<div class="line" id="LC115">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(define (new-node-location resp)</div>
<div class="line" id="LC116">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(let ((action (response-action resp)))</div>
<div class="line" id="LC117">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cond</div>
<div class="line" id="LC118">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((null? action) (lambda (req) (display 'is-null) (show-nodes (cdr n) req)))</div>
<div class="line" id="LC119">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((atom? action) (lambda (req) (display 'is-atom) (show-nodes (find-node action) req)))</div>
<div class="line" id="LC120">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((pair? action) (lambda (req) (display 'is-pair) (show-nodes (cons action (cdr n)) req))))))]</div>
<div class="line" id="LC121">&nbsp;&nbsp;&nbsp;&nbsp;(send/suspend/dispatch response-generator)))</div>
<div class="line" id="LC122"></div>
<div class="line" id="LC123">(serve/servlet start #:quit? #t</div>
<div class="line" id="LC124">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#:listen-ip #f</div>
<div class="line" id="LC125">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#:servlet-path &quot;&quot;</div>
<div class="line" id="LC126">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#:servlet-regexp #rx&quot;&quot;</div>
<div class="line" id="LC127">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#:port 8000)</div>
<div class="line" id="LC128"></div>
</pre>
</div>
</td>
</tr>
</table></div>
</p>
<p>Output:</p>
<p>This is the first page after you run the application. It shows the question of the first node. Since its response does not contain any action, it simply creates a link to the next node.&nbsp;</p>
<p>[[posterous-content:pid___0]]&nbsp;</p>
<p>This page for the second node. There are two possible responses, either you say &#8220;I don&#8217;t care&#8221; which takes you back to the &#8220;home&#8221; node while clicking on &#8220;you&#8217;re welcome&#8221; takes you to the next node.&nbsp;</p>
<p>&nbsp;</p>
<p>[[posterous-content:pid___1]]</p>
<p>&nbsp;</p>
<p>Let&#8217;s skip the next node as it only has one response. Now the fourth node contains two responses each of which sends you to a different node.</p>
<p>[[posterous-content:pid___2]]</p>
<p>If you click on &#8220;umm I don&#8217;t know&#8230;&#8221; , you get to this page.</p>
<p>[[posterous-content:pid___3]]</p>
<p>&nbsp;</p>
<p>and if you click on &#8220;I guess it means good&#8221; link, you get to this page.&nbsp;</p>
<p>[[posterous-content:pid___4]]</p>
<p>&nbsp;</p>
<p>Since, none of the responses above do anything more clicking any of the two link above takes you to the page for the next node.&nbsp;</p>
<p>&nbsp;</p>
<p>Enjoy.</p>
<p>&nbsp;</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=124&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2011/02/02/a-web-based-teaching-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>On The Run</title>
		<link>http://gizmoworks.wordpress.com/2010/12/19/on-the-run/</link>
		<comments>http://gizmoworks.wordpress.com/2010/12/19/on-the-run/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 10:30:28 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2010/12/19/on-the-run/</guid>
		<description><![CDATA[&#160;&#160; (1828 KB) Listen on posterous &#160; &#038;nbsp<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=122&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>&nbsp;&nbsp; (1828 KB)<br /> <a href='http://musicr.posterous.com/on-the-run' style='color:#bc7134;'>Listen on posterous</a></p>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/122/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/122/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/122/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=122&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2010/12/19/on-the-run/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>One More Time</title>
		<link>http://gizmoworks.wordpress.com/2010/12/11/one-more-time/</link>
		<comments>http://gizmoworks.wordpress.com/2010/12/11/one-more-time/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 21:12:02 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2010/12/11/one-more-time/</guid>
		<description><![CDATA[(9275 KB) Watch on posterous Is the timing correct on this one<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=120&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>(9275 KB)<br /> <a href="http://musicappr.posterous.com/one-more-time" style="color:#bc7134;">Watch on posterous</a></p>
</p>
<p>Is the timing correct on this one?</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=120&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2010/12/11/one-more-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>A Jazzy Tune</title>
		<link>http://gizmoworks.wordpress.com/2010/12/08/a-jazzy-tune/</link>
		<comments>http://gizmoworks.wordpress.com/2010/12/08/a-jazzy-tune/#comments</comments>
		<pubDate>Wed, 08 Dec 2010 19:50:27 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2010/12/08/a-jazzy-tune/</guid>
		<description><![CDATA[&#160;&#160; (723 KB) Listen on posterous &#160; I would love it if somebody would work on a solo.&#038;nbsp<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=118&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>&nbsp;&nbsp; (723 KB)<br /> <a href='http://musicappr.posterous.com/a-jazzy-tune' style='color:#bc7134;'>Listen on posterous</a></p>
</p>
<p>&nbsp;</p>
<p>I would love it if somebody would work on a solo.&nbsp;</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/118/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/118/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/118/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=118&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2010/12/08/a-jazzy-tune/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>Jamming with Spencer</title>
		<link>http://gizmoworks.wordpress.com/2010/11/22/jamming-with-spencer/</link>
		<comments>http://gizmoworks.wordpress.com/2010/11/22/jamming-with-spencer/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 16:56:00 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2010/11/22/jamming-with-spencer/</guid>
		<description><![CDATA[(5151 KB) Watch on posterous I make a mistake in the end and it all falls apart, but sounds pretty good till then. Spencer improved both the lead and the song while we were recording it. Pretty cool<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=116&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>(5151 KB)<br /> <a href="http://musicappr.posterous.com/jamming-with-spencer" style="color:#bc7134;">Watch on posterous</a></p>
</p>
<p>I make a mistake in the end and it all falls apart, but sounds pretty good till then. Spencer improved both the lead and the song while we were recording it. Pretty cool.</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=116&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2010/11/22/jamming-with-spencer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>ASP.NET Wrapper Panel</title>
		<link>http://gizmoworks.wordpress.com/2010/10/12/asp-net-wrapper-panel/</link>
		<comments>http://gizmoworks.wordpress.com/2010/10/12/asp-net-wrapper-panel/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 08:59:25 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2010/10/12/asp-net-wrapper-panel/</guid>
		<description><![CDATA[This is a useful control that works like a masterpage but is more lightweight. You can use this control as a wrapper for commonly used html snippets in your code. &#160; This is the code file for the control. &#160; You would use it as follows: The result would be: Now you can focus on <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=114&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<div style="color:#000000;font-family:Arial, Helvetica, sans-serif;font-size:13px;background-color:#ffffff;margin:8px;">
<p>This is a useful control that works like a masterpage but is more lightweight. You can use this control as a wrapper for commonly used html snippets in your code.</p>
</p>
<p>&nbsp;</p>
<p>This is the code file for the control.</p>
<p>&nbsp;</p>
</p>
<p>You would use it as follows:</p>
</p>
<p>The result would be:</p>
</p>
<p>Now you can focus on what&#8217;s important and not worry about the wrapping html code.</p>
<p>Also using the TemplateInstance.Single attribute, you can access controls within your wrapper just as you would without it. If you didn&#8217;t use it, you willl have to access them using the FindControl function on wrapper control.</p>
</p></div>
</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=114&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2010/10/12/asp-net-wrapper-panel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>Added new pages</title>
		<link>http://gizmoworks.wordpress.com/2010/10/12/added-new-pages/</link>
		<comments>http://gizmoworks.wordpress.com/2010/10/12/added-new-pages/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 07:58:26 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2010/10/12/added-new-pages/</guid>
		<description><![CDATA[Just added a couple of pages for some of my projects &#160; Timetrack&#160;and Callbreak&#160; &#160; Enjoy!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=111&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<p>Just added a couple of pages for some of my projects</p>
<p>&nbsp;</p>
<p><a href="http://progprog.posterous.com/pages/timetrack">Timetrack</a>&nbsp;and <a href="http://progprog.posterous.com/pages/callbreak">Callbreak</a>&nbsp;</p>
<p>&nbsp;</p>
<p>Enjoy!</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/111/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/111/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/111/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=111&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2010/10/12/added-new-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
		<item>
		<title>checking out post.ly</title>
		<link>http://gizmoworks.wordpress.com/2010/10/10/checking-out-post-ly/</link>
		<comments>http://gizmoworks.wordpress.com/2010/10/10/checking-out-post-ly/#comments</comments>
		<pubDate>Sun, 10 Oct 2010 17:27:00 +0000</pubDate>
		<dc:creator>gizmoworks</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gizmoworks.wordpress.com/2010/10/10/checking-out-post-ly/</guid>
		<description><![CDATA[<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=109&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gizmoworks.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gizmoworks.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gizmoworks.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gizmoworks.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gizmoworks.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gizmoworks.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gizmoworks.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gizmoworks.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gizmoworks.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gizmoworks.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gizmoworks.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gizmoworks.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gizmoworks.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gizmoworks.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=gizmoworks.wordpress.com&amp;blog=1009804&amp;post=109&amp;subd=gizmoworks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://gizmoworks.wordpress.com/2010/10/10/checking-out-post-ly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d53ae50cd01c8159bbd9c45e10bf1bf7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">arcman</media:title>
		</media:content>
	</item>
	</channel>
</rss>
