<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Ryan M. Speers</title>
	<atom:link href="http://rmspeers.com/feed" rel="self" type="application/rss+xml" />
	<link>http://rmspeers.com</link>
	<description>Web and Desktop Application Designer and Programmer</description>
	<pubDate>Sun, 04 Jul 2010 13:13:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Northern New England Metropolitian Medical Response System Website</title>
		<link>http://rmspeers.com/archives/127</link>
		<comments>http://rmspeers.com/archives/127#comments</comments>
		<pubDate>Sun, 27 Jun 2010 14:14:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Web Portfolio]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=127</guid>
		<description><![CDATA[This is a website (nnemmrs.org) based on Drupal which is designed to serve two purposes. First is the goal of providing information the the public. The second part of the site is designed to provide members of the response team with information on news, upcoming events, training, and other team documents. The theme is based [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />This is a website (<a href="http://nnemmrs.org">nnemmrs.org</a>) based on Drupal which is designed to serve two purposes. First is the goal of providing information the the public. The second part of the site is designed to provide members of the response team with information on news, upcoming events, training, and other team documents. The theme is based on Jaded with a modified CSS and images, and the site uses a variety of modules linked together. It also contains a number of custom-written Views.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/127/feed</wfw:commentRss>
		</item>
		<item>
		<title>Journal Article Published</title>
		<link>http://rmspeers.com/archives/115</link>
		<comments>http://rmspeers.com/archives/115#comments</comments>
		<pubDate>Wed, 02 Dec 2009 21:31:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[My Work]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=115</guid>
		<description><![CDATA[Last winter, I wrote a research paper with my classmate Evan Tice &#8216;09 studying the security of computing resources at Dartmouth College. It was very interesting to write, and thanks to Computing Services, we were able to study security logs and do some of our own analysis on the systems to supplement the publicly available [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />Last winter, I wrote a research paper with my classmate Evan Tice &#8216;09 studying the security of computing resources at Dartmouth College. It was very interesting to write, and thanks to Computing Services, we were able to study security logs and do some of our own analysis on the systems to supplement the publicly available information.</p>
<p>A sanitized form of our paper has been published in the Fall 2009 issue of the Dartmouth Undergraduate Journal of Science, and you can read it online <a href="http://dujs.dartmouth.edu/fall-2009/cyber-attacks-on-the-dartmouth-college-network" target="_blank">here</a>. For ease of reading, I have also posted it in the original <a href="http://rmspeers.com/wp-content/uploads/2009/12/final_paper_sanitized.pdf" target="_blank">PDF format</a>, formatted by LaTeX.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/115/feed</wfw:commentRss>
		</item>
		<item>
		<title>Nokia n810 Location-aware Media Blogging</title>
		<link>http://rmspeers.com/archives/54</link>
		<comments>http://rmspeers.com/archives/54#comments</comments>
		<pubDate>Sat, 20 Jun 2009 23:21:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Desktop Portfolio]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=54</guid>
		<description><![CDATA[For Computer Networking, COSC78, the final project involved creating a program to run on a Nokia n810 Internet Tablet, programmed entirely in C, to provide a client side to a location-aware, media-enabled blogging system.
My team of myself and two other students, created this program, of which screenshots are included here. It supports posting text, images, [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />For Computer Networking, COSC78, the final project involved creating a program to run on a Nokia n810 Internet Tablet, programmed entirely in C, to provide a client side to a location-aware, media-enabled blogging system.</p>
<p>My team of myself and two other students, created this program, of which screenshots are included here. It supports posting text, images, and audio to a server, that the program captures. It allows you to draw with the stylus on the screen on a captured image or the canvas. The program displays these posts which are close to the location you are viewing, which is determined by the internal GPS or by you panning on the map. Map images are provided in 3 styles - map, satellite imagery, and a hybrid.</p>
<p><span id="more-54"></span></p>
<p><div id="attachment_64" class="wp-caption aligncenter" style="width: 310px"><a href="http://rmspeers.com/archives/54/picture-11"><img class="size-medium wp-image-64" title="n810 Map View, with markers for posted items" src="http://rmspeers.com/wp-content/uploads/2009/06/picture-11-300x175.png" alt="Graffiti Map View" width="300" height="175" /></a><p class="wp-caption-text">Graffiti Map View</p></div></p>
<p><div id="attachment_63" class="wp-caption aligncenter" style="width: 310px"><a href="http://rmspeers.com/archives/54/picture-2"><img class="size-medium wp-image-63" title="CS78 n810 Sat View" src="http://rmspeers.com/wp-content/uploads/2009/06/picture-2-300x175.png" alt="Graffiti Sat View" width="300" height="175" /></a><p class="wp-caption-text">Graffiti Sat View</p></div></p>
<p><div id="attachment_66" class="wp-caption aligncenter" style="width: 310px"><a href="http://rmspeers.com/archives/54/picture-3"><img class="size-medium wp-image-66" title="n810 Post View" src="http://rmspeers.com/wp-content/uploads/2009/06/picture-3-300x151.png" alt="Graffiti Posting Screen" width="300" height="151" /></a><p class="wp-caption-text">Graffiti Posting Screen</p></div></p>
<p>I am continuing to work on improved stability and features.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/54/feed</wfw:commentRss>
		</item>
		<item>
		<title>Dartmouth Name Directory</title>
		<link>http://rmspeers.com/archives/49</link>
		<comments>http://rmspeers.com/archives/49#comments</comments>
		<pubDate>Fri, 09 Jan 2009 20:10:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Blog]]></category>

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

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

		<category><![CDATA[dartmouth college]]></category>

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

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

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

		<guid isPermaLink="false">http://rmspeers.com/?p=49</guid>
		<description><![CDATA[Dartmouth College uses a system called the Dartmouth Name Directory to handle centralized authentication and to serve as an email directory. This system is closely tied to the rather odd BlitzMail system which is used for all students and staff to do email. The BlitzMail system is compatible to send and recieve regular email, however, [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />Dartmouth College uses a system called the Dartmouth Name Directory to handle centralized authentication and to serve as an email directory. This system is closely tied to the rather odd BlitzMail system which is used for all students and staff to do email. The BlitzMail system is compatible to send and recieve regular email, however, it is not a regular sendmail or postfix server like is normally used. The specalized servers can accept a name, say &#8220;Ryan Speers&#8221; in the &#8220;to&#8221; field, and can translate that into sending it to me. It can also accept &#8220;rms&#8221; and &#8220;rmspeers&#8221; as pointing to me as well as I have defined these aliases. This functionality is great, but is only avalible within the BlitzMail client. Other email programs, like Thunderbird, will not allow you to address an email to only &#8220;rms&#8221;. The LDAP connection to the DND is a step in the right direction, but only works for full names, not the aliases. An ideal system would allow a client like Thunderbird or Apple Mail to fully use the power of the DND. For now, this doesn&#8217;t seem to exist. Any thoughts on creating this are welcome.</p>
<p>For now, I use a DND search plugin for Firefox (should also work in IE, etc). This has the full functionality and I suggest installing it if you are a Dartmouth user. You can my implementation <a href="http://mycroft.mozdev.org/search-engines.html?name=Dartmouth+Name+Directory+Lookup" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/49/feed</wfw:commentRss>
		</item>
		<item>
		<title>Web Tools for German Grammar</title>
		<link>http://rmspeers.com/archives/29</link>
		<comments>http://rmspeers.com/archives/29#comments</comments>
		<pubDate>Thu, 23 Oct 2008 19:22:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[My Work]]></category>

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

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

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

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

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

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

		<guid isPermaLink="false">http://rmspeers.com/?p=29</guid>
		<description><![CDATA[I am currently in my eighth year of studying German, and I want to include some of the most useful resources which I use here.
The first invaluable resource is CanooNet, an online grammar guide and inflection dictionary. I use Canoo every time I am using a verb in a strange setting, or need to double-check [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />I am currently in my eighth year of studying German, and I want to include some of the most useful resources which I use here.</p>
<p>The first invaluable resource is CanooNet, an online grammar guide and inflection dictionary. I use Canoo every time I am using a verb in a strange setting, or need to double-check my inflection of it. The website is canoo.net, however I have also created a Mozilla Search Plugin (also should work on IE), that allows you to quickly search for a verb without going to the page. <span id="more-29"></span>This plugin directs you to the inflection of the verb. If you have not entered a verb, or there is confusion, it will take you to a listing page to select what you actually want to look for. To install this plugin, go <a href="http://mycroft.mozdev.org/search-engines.html?name=canoonet+verb+lookup" target="_blank">here</a>.</p>
<p>The second also invaluable resource is LEO, an online dictionary. You can access it at <a href="http://dict.leo.org/">dict.leo.org</a>. To make the most out of this dictionary, it is important to click on the word you think is the correct entry, which automatically searches for that word and you can make sure it is the right thing for the context you are looking for. Also, a useful icon <img class="alignnone" title="`i` Graphic" src="http://dict.leo.org/i_es.gif" alt="" width="28" height="16" /> appears next to the search results, which you can mouse over. This displays a pronunciation sound-byte, a link to the CanooNet entry, and a link to the full dictionary entry. To learn more about search features on LEO, click <a href="http://dict.leo.org/pages.ende/tipps_en.html?lp=ende&amp;lang=de" target="_blank">here</a>. To get a Firefox/IE search bar plugin for LEO, go <a href="http://mycroft.mozdev.org/search-engines.html?name=leo+de%3C-%3Een" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/29/feed</wfw:commentRss>
		</item>
		<item>
		<title>Simple JavaScript Toggled Divs</title>
		<link>http://rmspeers.com/archives/20</link>
		<comments>http://rmspeers.com/archives/20#comments</comments>
		<pubDate>Tue, 15 Jul 2008 21:19:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Code Snippits]]></category>

		<category><![CDATA[javascript div]]></category>

		<guid isPermaLink="false">http://rmspeers.com/archives/20</guid>
		<description><![CDATA[I have chosen to go with a very simple code snippit to begin what I hope will be a useful repository of original code snippits. Unless I note otherwise, you are welcome to use any code in my &#8220;Code Snippits&#8221; post category. I would greatly appreciate it if you let me know you where using [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />I have chosen to go with a very simple code snippit to begin what I hope will be a useful repository of original code snippits. Unless I note otherwise, you are welcome to use any code in my &#8220;Code Snippits&#8221; post category. I would greatly appreciate it if you let me know you where using the code.<br />
Without further delay, this code allows you to easily put areas (of the div type) on your site that can be collapsed and expanded by clicking on a heading. This manipulation is done using JavaScript. In my code below, I have used functions from the MooTools toolkit (a great toolkit to use if you do much JavaScript). So, the installation is pretty straight forward:<br />
<span id="more-20"></span><br />
<strong>1)</strong> Download the two icon images and save them in the relative path images/icon_add.png and images/icon_remove.png. You can also use your own icons (they should be 16&#215;16 pixels).<br />
<center><a href="http://rmspeers.com/wp-content/uploads/2008/07/icon_add.png" title="Icon - Add"><img src="http://rmspeers.com/wp-content/uploads/2008/07/icon_add.png" alt="Icon - Add" border="0" /><img src="http://rmspeers.com/wp-content/uploads/2008/07/icon_remove.png" alt="Icon - Remove" border="0" /></a></center></p>
<p><strong>2)</strong> <a href="http://mootools.net/download">Download</a> the MooTools script, and upload it to your server. Then, include it in the HTML document you are working with using:<br />
<pre>&lt;script src=&quot;mootools-1.2-core-nc.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre><br />
You can also get only the parts of MooTools you need (for this script Element and Element.Styles) and compress the package into a small file (helps for faster page loading), by using the utility <a href="http://mootools.net/core">here</a>.</p>
<p><strong>3)</strong> Put the following JavaScript into your HTML page. This can go in the head, but does not have to. However, it should be above the first collapsing box in your code.</p>
<p><pre><pre>
&lt;script type=&quot;text/javascript&quot;&gt;
&nbsp;&nbsp;function toggle(id) {
&nbsp;&nbsp;&nbsp;&nbsp;var el = $(id);
&nbsp;&nbsp;&nbsp;&nbsp;var icon = $(id+&#039;_icon&#039;);
&nbsp;&nbsp;&nbsp;&nbsp;if (el.getStyle(&#039;display&#039;) == &#039;none&#039;) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el.setStyle(&#039;display&#039;, &#039;block&#039;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon.set({&#039;src&#039;:&#039;images/icon_remove.png&#039;, &#039;alt&#039;:&#039;[-]&#039;});
&nbsp;&nbsp;&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el.setStyle(&#039;display&#039;, &#039;none&#039;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon.set({&#039;src&#039;:&#039;images/icon_add.png&#039;, &#039;alt&#039;:&#039;[+]&#039;});
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;}
&lt;/script&gt;</pre></pre></p>
<p><strong>4)</strong> Then, each time you wish to put a collapsing box in, use the following code. I have marked the values you need to change. You must change &#8216;ID_NAME&#8217; in three places. Within the code for each box, these 3 places should have the exact same value inserted where I have written &#8216;ID_NAME&#8217;. However, if you use more than one box on a page, you cannot use the same value for ID_NAME the next time.<br />
<pre><pre>
&lt;div onclick=&quot;toggle(&#039;ID_NAME&#039;); return false;&quot; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; style=&quot;border: 1px ridge gray; padding: 2px; background: silver;&quot; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alt=&quot;[+]&quot; id=&quot;ID_NAME_icon&quot; class=&quot;icon_inline&quot; align=&quot;texttop&quot;&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TITLE OF DROPDOWN BOX
&lt;/div&gt;
&lt;div id=&quot;ID_NAME&quot; style=&quot;display: none&quot;&gt;
&nbsp;&nbsp; Content of the div goes here.
&lt;/div&gt;
</pre></pre></p>
<p><strong>5)</strong> The finished result:<br />
<a href='http://rmspeers.com/archives/20/toggled-div-dropdowns/' rel='attachment wp-att-23' title='Toggled Div Dropdowns'><img src='http://rmspeers.com/wp-content/uploads/2008/07/divdropdowns.jpg' alt='Toggled Div Dropdowns' /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/20/feed</wfw:commentRss>
		</item>
		<item>
		<title>Firefox for the Web Developer</title>
		<link>http://rmspeers.com/archives/19</link>
		<comments>http://rmspeers.com/archives/19#comments</comments>
		<pubDate>Tue, 08 Jul 2008 15:27:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Blog]]></category>

		<category><![CDATA[firefox developer web]]></category>

		<guid isPermaLink="false">http://rmspeers.com/archives/19</guid>
		<description><![CDATA[When I develop for the web, my primary browser is Firefox. It is my main browser overall, and has merits such as being standards-complaint, but there are additional bonuses. Add-ons. I will explore some of these today that I regularly use. Some of these are for web developers, while others I believe to be productive [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />When I develop for the web, my primary browser is Firefox. It is my main browser overall, and has merits such as being standards-complaint, but there are additional bonuses. Add-ons. I will explore some of these today that I regularly use. Some of these are for web developers, while others I believe to be productive for any person using the web in every-day life.</p>
<h3><span id="more-19"></span>Web Development</h3>
<h4>Firebug</h4>
<p>This <a href="https://addons.mozilla.org/en-US/firefox/addon/1843" target="_blank">extension</a> allows you to view a console, inspect and edit your HTML code, modify your CSS or client-side scripts, view the DOM, or track your network requests. It doesn&#8217;t just do these things, but it does them elegantly in a simple window at the bottom of your browser. Browsing for HTML elements is easily done by enabling &#8220;inspect&#8221; and mousing over the element on the page itself. HTML and CSS changes take effect immediately, so it is invaluable for fine-tuning your graphical page presentation. The console will display errors, and let you run JS code or functions live on your page. This is helpful for debugging any JS controls on the fly. Furthermore, it is invaluable for debugging Ajax. Any Ajax requests are shown in the console, and can be expanded to show many statistics, including the POST or GET data sent and the response.</p>
<p>This extension has more and more features and uses that I keep on discovering every day. Explore it. Because I can&#8217;t go into enough detail here to pay tribute to its features.</p>
<h4>Web Developer</h4>
<p>This <a href="https://addons.mozilla.org/en-US/firefox/addon/60" target="_blank">toolbar</a> add-on provides a slim toolbar at the top of your browser, but it is packed with menus offering countless helpful features. Some of these can seem random, and some are available through other sources, but most are great features - even if you don&#8217;t use them too often. I suggest modifying your main toolbar to add the &#8220;Web Developer&#8221; button which allows you to quickly show or hide this toolbar as needed.</p>
<p>The toolbar can allow you to easily disable scripts to see how your page will degrade, wipe out your cookies easily, and many things like that to allow you to see how your page may act in other browsers. For those looking for automated compatibility testing, its &#8220;Tools&#8221; menu allows you to run many automated validation tests by submitting your page to online web services (it even lets you validate local pages).</p>
<p>One of my often used tools is the ruler, which helps me get pixel measurements to design on. It can replace images with their alt tags, or display - overlayed on your page - tons of details such as element Ids and class names. You can also ask it to outline tables, block level elements, and more. These are very helpful when debugging your page layout, or just to understand how another webpage has been layed out.</p>
<h3>General Use</h3>
<h4>Speed Dial</h4>
<p><img src="http://speeddial.uworks.net/images/thumb-1.jpg" alt="Speed Dial" align="right" height="203" hspace="2" vspace="2" width="210" />There are so many ways to get where you go on the web. This <a href="https://addons.mozilla.org/en-US/firefox/addon/4810" target="_blank">extension</a> may be great, depending on your personal preferences. I won&#8217;t try to recommend it outright to everyone. I will say, however, that it is greatÂ  if you have about 9 websites you frequent, and want to be able to access them quickly when you launch your browser. Some other people may prefer opening their browser to a portal like iGoogle if they prefer to see news, weather, etc. on browser launch. You can even get the best of both worlds, and set your homepage to something like iGoogle and have Speed Dial load in new tabs and windows.</p>
<p><img src="https://addons.mozilla.org/en-US/firefox/images/addon_preview/5721/3" align="left" height="113" hspace="2" vspace="2" width="179" />Speed Dial is an extension for Firefox that is based off of the Opera feature Speed Dial. It has a grid layout, with buttons that you can fill easily with webpages. It automatically samples the webpage to produce a thumbnail, or lets you specify an image to use. I use it with 9 buttons, and can press [Control] + 0-9 to go to what I want without even clicking.</p>
<p>You may alsoÂ  want to check out Fast Dial which has much the same functionality, and appears to be a bit sleeker.</p>
<h4>del.icio.us Plugin</h4>
<p>Although the new Firefox 3 is helping me to not have to save bookmarks, thanks to the Awesome Bar, it is still good to be able to save my bookmarks, tag and categorize them, and be able to find them from any computer, at any time. Plus, I include my recent bookmarks via RSS feed on this site - as you may have noticed. The free social bookmarking service, del.icio.us helps with all of this.<img src="http://images.del.icio.us/static/img/help/firefox/bookmarks/overBookmarking.jpg" align="left" height="108" hspace="2" vspace="2" width="225" /></p>
<p>However, it has always been an extra step to add a bookmark, even with the browser buttons that would bring you to the right page. Now, with this extension, I can click the special tag button to get an application dialog to input all my information. I could also use the &#8220;star&#8221; icon in the URL bar to tag it as well.<img src="http://images.del.icio.us/static/img/help/firefox/bookmarks/overNew.jpg" align="right" height="190" hspace="2" vspace="2" width="319" /></p>
<p>Now, all my bookmarks can be accesed from online or any computer I have the extension on. There seems to be imperfect real-time syncing between toolbar on multiple computers, but a quick click of the &#8220;Sync Now&#8221; button in preferences cleans that up.</p>
<p><em>Screenshot credit to the developers of the respective add-ons.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/19/feed</wfw:commentRss>
		</item>
		<item>
		<title>Welcome!</title>
		<link>http://rmspeers.com/archives/18</link>
		<comments>http://rmspeers.com/archives/18#comments</comments>
		<pubDate>Mon, 07 Jul 2008 20:17:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

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

		<guid isPermaLink="false">http://rmspeers.com/archives/18</guid>
		<description><![CDATA[Thank you for visiting my personal site. I will maintain my portfolio here, but will also attempt to maintain a blog. The exact focus of this blog is not yet clear even to me. It will be centered on technology - probably ranging from web applications and design to breaking edge discoveries and new devices. [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />Thank you for visiting my personal site. I will maintain my portfolio here, but will also attempt to maintain a blog. The exact focus of this blog is not yet clear even to me. It will be centered on technology - probably ranging from web applications and design to breaking edge discoveries and new devices. It may also wander into non-technology subjects every so often. As I develop it, feedback is certainly welcome on my topics and writing.</p>
<p>Please look around this site, and I hope you enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/18/feed</wfw:commentRss>
		</item>
		<item>
		<title>DebateNet by DebateWare.com</title>
		<link>http://rmspeers.com/archives/8</link>
		<comments>http://rmspeers.com/archives/8#comments</comments>
		<pubDate>Sun, 09 Mar 2008 08:15:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Web Portfolio]]></category>

		<guid isPermaLink="false">http://rmspeers.com/archives/8</guid>
		<description><![CDATA[During my time in the Junior State of America, a debate organization, I noticed the inefficient method of signing up debaters and manageing debates for conventions. I created a system called PETE, which allowed users to create accounts and request debates, after which administrators would approve users for debates on a debate list which they [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />During my time in the Junior State of America, a debate organization, I noticed the inefficient method of signing up debaters and manageing debates for conventions. I created a system called PETE, which allowed users to create accounts and request debates, after which administrators would approve users for debates on a debate list which they had entered.</p>
<p>After this system was in operation for six months or so, I had seen many improvements I wanted to make to it, and at the same time realized to make this a great professional product in a short period of time, I needed another developer to work with me. One day, I began coding the new version which is called DebateNet with Mark Bao as my co-developer. We built the current version which has had many revisions, and are marketing it under the company DebateWare.com.<span id="more-8"></span></p>
<p>The product has been licensed to a few debate organizations, and we have modified it to the specific needs of organizations.</p>
<p>You can visit <a href="http://www.debateware.com" target="_blank">DebateWare.com</a>, however the installations are closed to the public and available for members of the licensing organizations only.  For this reason, I am including screen shots here.</p>
<p><a title="Chapter Management" rel="attachment wp-att-11" href="http://rmspeers.com/archives/8/chapter-management"><img src="http://rmspeers.com/wp-content/uploads/2008/03/debateware_jsa_2.thumbnail.jpg" alt="Chapter Management" /></a><a title="Event Page" rel="attachment wp-att-10" href="http://rmspeers.com/web-portfolio/event-page"><img src="http://rmspeers.com/wp-content/uploads/2008/03/debateware_jsa_1.thumbnail.jpg" alt="Event Page" /></a><a title="Chapter Site" rel="attachment wp-att-12" href="http://rmspeers.com/archives/8/chapter-site"><img src="http://rmspeers.com/wp-content/uploads/2008/03/debateware_jsa_3.thumbnail.jpg" alt="Chapter Site" /></a><a title="Registration - Password Feature" rel="attachment wp-att-13" href="http://rmspeers.com/archives/8/registration-password-feature"><img src="http://rmspeers.com/wp-content/uploads/2008/03/debateware_jsa_4.thumbnail.jpg" alt="Registration - Password Feature" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/8/feed</wfw:commentRss>
		</item>
		<item>
		<title>Tetris in Haskell</title>
		<link>http://rmspeers.com/archives/7</link>
		<comments>http://rmspeers.com/archives/7#comments</comments>
		<pubDate>Sun, 09 Mar 2008 07:30:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Desktop Portfolio]]></category>

		<guid isPermaLink="false">http://rmspeers.com/page/7</guid>
		<description><![CDATA[As a functional programming language, Haskell has some benefits, and some weaknesses. One such weakness is input and output. For my Computer Science 8 class at Dartmouth, my partner and I had to create a game of Tetris for our final project.

The Tetris game was based on some board libraries given to us as part [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />As a functional programming language, Haskell has some benefits, and some weaknesses. One such weakness is input and output. For my Computer Science 8 class at Dartmouth, my partner and I had to create a game of Tetris for our final project.</p>
<p><span id="more-7"></span></p>
<p>The Tetris game was based on some board libraries given to us as part of the assignment. The major tasks included creating pieces, stopping pieces from continually dropping when they hit the board or would go off the screen, making sure left and right moves and rotations would keep the piece entirely on the screen, and deciding when the game is over. In addition, we added on optional components of a pause button, a game over screen, and scoring.</p>
<p><a href="http://rmspeers.com/archives/7/playing-the-game/" rel="attachment wp-att-14" title="Playing the Game"><img src="http://rmspeers.com/wp-content/uploads/2008/03/tetris_haskell_1.thumbnail.jpg" alt="Playing the Game" /></a><a href="http://rmspeers.com/archives/7/losing-the-game/" rel="attachment wp-att-15" title="Losing the Game"><img src="http://rmspeers.com/wp-content/uploads/2008/03/tetris_haskell_2.thumbnail.jpg" alt="Losing the Game" /></a></p>
<p>I am including here some snippits of the code from the assignment as I found creating Tetris in Haskell required some tricky things.</p>
<p>This code sample split down a defined &#8220;Region&#8221; into defined &#8220;Shapes&#8221; and then allowed coordinates to be taken from these for use in calculations. The code is limited to dealing with Rectangles and Polygons, and it eliminates duplicate coordinates to speed up later calculations.<br />
<pre></pre></p>
<p>Using this code, testing for collisions and piece movements was simplified:<br />
<pre></pre></p>
<p>Finally, the Maybe monad - which at first using Haskell seemed like an unneeded alternative for if-then statements - was used many times in this program. Using if-thens may have worked in some places, but the case of and pattern matching allowed by the Maybe type was very helpful. Here is one example, taken from a function which was waiting for a specific keypress to continue:<br />
<pre><pre>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; case e of Just (Key &#039;q&#039; True) -&gt; closeWindow (win uw)
&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;&nbsp; Just (Key &#039;r&#039; True) -&gt; do closeWindow (win uw)
&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;&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; main
&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;&nbsp; _&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; waitForAction uw
</pre></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/7/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
