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

<channel>
	<title>Ryan M. Speers</title>
	<atom:link href="http://rmspeers.com/feed" rel="self" type="application/rss+xml" />
	<link>http://rmspeers.com</link>
	<description>Cyber-Security Researcher, Application Developer, and EMT</description>
	<lastBuildDate>Thu, 01 Dec 2011 02:06:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Wireless Security Excuse Bingo</title>
		<link>http://rmspeers.com/archives/211</link>
		<comments>http://rmspeers.com/archives/211#comments</comments>
		<pubDate>Wed, 14 Sep 2011 16:22:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Security Research]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=211</guid>
		<description><![CDATA[Thanks to a retweet by Travis Goodspeed of a retweet by digitalbond and originally by SCADAhacker, I was reminded of Jutta Degener and Matt Blaze&#8217;s security excuse bingo, and agree that it would be entertaining (and somewhat disconcerting probably) to compile a wireless security excuse bingo board, focused specifically on the technologies and the resulting answers [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />Thanks to a <a href="http://twitter.com/#%21/travisgoodspeed/statuses/113078812169879553" target="_blank">retweet</a> by Travis Goodspeed of a retweet by digitalbond and originally by SCADAhacker, I was reminded of <a href="http://www.crypto.com/bingo/pr?seed=67031" target="_blank">Jutta Degener and Matt Blaze&#8217;s security excuse bingo</a>, and agree that it would be entertaining (and somewhat disconcerting probably) to compile a wireless security excuse bingo board, focused specifically on the technologies and the resulting answers used in wireless sensor networks and SCADA systems, etc &#8212; as this relates to my IEEE 802.15.4 and ZigBee focus of late.</p>
<p>I&#8217;d like to gather input from those of you who work or have interaction with this field, and I bet an interesting list may result. I&#8217;ll post my suggestions in comments as well, and a running list can be started.<span id="more-211"></span></p>
<p>Then, when we get enough good ones, I&#8217;ll throw a board together if it looks interesting.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/211/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>USENIX WOOT &#8217;11 Paper: Packets-in-Packets</title>
		<link>http://rmspeers.com/archives/198</link>
		<comments>http://rmspeers.com/archives/198#comments</comments>
		<pubDate>Tue, 28 Jun 2011 15:13:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[My Work]]></category>
		<category><![CDATA[Security Research]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=198</guid>
		<description><![CDATA[&#8220;Packets in Packets: Orson Welles&#8217; In-Band Signaling Attacks for Modern Radios&#8221; marks my first paper in a truly peer-reviewed publication. This was written thanks to some great collaboration with Travis Goodspeed as well as Sergey Bratus, Ricky Melgares, and Rebecca Shapiro in the Dartmouth Trust Lab. Here is the abstract, to give you a brief [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />&#8220;<strong>Packets in Packets: Orson Welles&#8217; In-Band Signaling Attacks for Modern Radios</strong>&#8221; marks my first paper in a truly peer-reviewed publication. This was written thanks to some great collaboration with Travis Goodspeed as well as Sergey Bratus, Ricky Melgares, and Rebecca Shapiro in the Dartmouth Trust Lab.<span id="more-198"></span></p>
<p>Here is the abstract, to give you a brief overview of our work:</p>
<p>&#8220;Here we present methods for injecting raw frames at Layer 1 from within upper-layer protocols by abuse of in-band signaling mechanisms common to most digital radio protocols. This packet piggy-backing technique allows attackers to hide malicious packets inside packets that <em>are permitted</em> on the network. When these carefully crafted Packets-in-Packets (PIPs) traverse a wireless network, a bit error in the outer frame will cause the inner frame to be interpreted instead. This allows an attacker to evade firewalls, intrusion detection/prevention systems, user-land networking restrictions, and other such defenses. As packets are constructed using interior fields of higher networking layers, the attacker only needs the authority to send cleartext data over the air, even if it is wrapped within several networking layers. This paper includes <em>tested examples</em> of raw frame injection for IEEE 802.15.4 and 2-FSK radios. Additionally, implementation complications are described for 802.11 and a variety of other modern radios. Finally, we present suggestions for how this technique might be extended from wireless radio protocols to Ethernet and other wired links.&#8221;</p>
<p>This work stems from some of my research with 802.15.4 security, and specifically some of the tools I produced (Scapy dot15d4, KillerBee extensions, Tmote GoodFET firmware, etc) were used in testing this theory and creating and verifying the results in the paper.</p>
<p>I look forward to discussing this paper more with interested parties, and if anyone wants to discuss it, please contact me.</p>
<p><a href="http://rmspeers.com/wp-content/uploads/2011/06/USENIX_WOOT_11_Speers.pdf">USENIX WOOT 11 PIP</a></p>
<p>UPDATE: Video of <a href="https://db.usenix.org/media/events/woot11/tech/videos/goodspeed.mp4" target="_blank">Travis presenting our paper</a> at USENIX WOOT.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/198/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoodFET Development on Tmote Sky/TelosB (CC2420 Radio)</title>
		<link>http://rmspeers.com/archives/189</link>
		<comments>http://rmspeers.com/archives/189#comments</comments>
		<pubDate>Thu, 24 Mar 2011 23:46:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Security Research]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=189</guid>
		<description><![CDATA[As part of my thesis research on 802.15.4 wireless sensor networks, I have recently become a developer on the GoodFET project. This project was started by Travis Goodspeed and &#8220;is an open-source JTAG adapter, loosely based upon the TI MSP430 FET UIF and EZ430U boards.&#8221; However, as you will see, it has grown into so [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />As part of my thesis research on 802.15.4 wireless sensor networks, I have recently become a developer on the GoodFET project. This project was started by <a href="http://travisgoodspeed.blogspot.com/" target="_blank">Travis Goodspeed</a> and &#8220;is an open-source JTAG adapter, loosely based upon the TI MSP430 FET UIF and EZ430U boards.&#8221; However, as you will see, it has grown into so much more. I started working on the GoodFET CCSPI (ChipCon SPI Flash) client and firmware which Travis had started to support the Tmote Sky and TelosB branded sensor boards. <span id="more-189"></span>These are termed &#8220;motes&#8221; and originally developed at UC Berkley and sold under several names, primarily for wireless sensor network routing/topology research. They consist of a USB FTDI chip, MSP430 processor, CC2420 802.15.4-compliant radio chip, along with other hardware like sensors, EEPROM memory, etc.</p>
<p>Travis has introduced some of the GoodFET port to this platform on <a href="http://travisgoodspeed.blogspot.com/2011/03/goodfet-on-telosb-tmote-sky.html" target="_blank">his post</a>, and basic installation is covered on the appropriate GoodFET hardware <a href="http://goodfet.sourceforge.net/hardware/telosb/" target="_blank">page</a>. I encourage you to read those &#8212; I won&#8217;t repeat everything here. Instead, I&#8217;ll focus on one of the parts of code I wrote, specifically the port of the TinyOS demonstration code <a href="http://www.tinyos.net/tinyos-2.x/apps/RadioCountToLeds/README.txt" target="_blank">RadioCountToLeds</a>. In order to test and validate the GoodFET firmware&#8217;s compatibility with other OS (motes typically run OSs like TinyOS or Contiki, which have more feature bloat than GoodFET), Travis suggested that I port the RadioCountToLeds application &#8212; specifically the transmit end &#8212; to the GoodFET. All code for the GoodFET project consists of &#8220;hacky&#8221; code in files like goodfet.ccspi, and the more refined library code in files like GoodFETCCSPI.py. As features mature and are tested, they are moved into libraries.</p>
<p>The RadioCountToLeds <a href="http://www.tinyos.net/tinyos-2.x/apps/RadioCountToLeds/" target="_blank">code</a> basically requires two devices to be flashed with it, and they maintain a 4Hz counter  broadcasting the value of the counter in an AM packet (a TinyOS abstraction that I find quite frustrating when trying to work with real 802.15.4) over the radio to the other device. The receiving device displays the lower 3 bits of the counter received on it&#8217;s three LED lights (built into mote design boards). This basically validate AM communication and timers for the TinyOS system.</p>
<p>So, how do we pretend to be a TinyOS RadioCountToLeds transmitter? There are two ways, each of which I implemented in <a href="https://goodfet.svn.sourceforge.net/svnroot/goodfet/trunk/client/" target="_blank">goodfet.ccspi</a> (run with verb txtoscount -i or -r). First, we could just send messages at a set interval with different counter values (-i option). The key is that we wanted to make sure that GoodFET was forming valid packets that would be accepted by the receiving TinyOS node. From capturing a TinyOS packet (using  KillerBee which is my main research focus or using the goodfet.ccspi sniff command), we see that the application is sending packets like:<br />
<pre>[0x0f, 0x41, 0x88, 0xFF, 0x22, 0x00, 0xff, 0xff, 0x01, 0x00, 0x3f, 0x06, 0x00, 0xFF]</pre><br />
The two 0xFF bytes are changed to have the correct counter values, and before transmission, a two-byte 802.15.4 FCS sequence must be appended. The 0xFF at index 3 holds the counter value, and the 0xFF at index 13 holds a value one greater than the counter value at index 3. Hmm &#8212; let&#8217;s go with it. With a few tweaks to the GoodFETCCSPI transmission function (RF_txpacket) to make sure checksumming was being handled correctly, this worked.</p>
<p>The second way to play the RadioCountToLeds game is closer to what the actual TinyOS application does, and this is accessible with &#8220;goodfet.ccspi txtoscount -r&#8221;. It waits for an incoming packet from a real TinyOS node and then replays this over the air. Simple enough. The key with receiving is making sure that the CC2420&#8242;s registers are set (ex disable/enable auto-CRC and address validation) correctly to receive the packets. Also note that the CC2420, if auto-CRC is on, changes the FCS bytes in the incoming packet to communicate other information (link quality, RSSI, and one bit to say if the FCS was correct). So, we truncate the incoming packet to only have the MAC header and data payload (aka chop off the FCS data) before re-playing it as auto-CRC is enabled on CC2420 (using the GoodFET function RF_autocrc(1) to set it) and it will recalculate and append the FCS for us.</p>
<p>That is just a brief intro of how the GoodFET firmware and client scripts can easily enable transmit and receive over 802.15.4. I&#8217;ll get around to writing more about my work with parsing/generating 802.15.4 frames (see <a href="http://hg.secdev.org/scapy-com/log?rev=rmspeers" target="_blank">my commits to scapy-com</a>) and some other work with the GoodFET and KillerBee projects to bring 802.15.4 capture and injection to this platform (via killerbee/dev_telsob.py driver support).</p>
<p>Contact me with questions, comments, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/189/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Eris Speedup</title>
		<link>http://rmspeers.com/archives/175</link>
		<comments>http://rmspeers.com/archives/175#comments</comments>
		<pubDate>Thu, 24 Mar 2011 23:02:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=175</guid>
		<description><![CDATA[My old droid Eris was running slowly with the stock Android OS, so I wanted to put Cyanogen on it to achieve a performance boost. I found the instructions for doing so slightly confusing, and I have compiled a single tutorial on how to do this, as basic as possible, thanks to the posts by [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />My old droid Eris was running slowly with the stock Android OS, so I wanted to put Cyanogen on it to achieve a performance boost. I found the instructions for doing so slightly confusing, and I have compiled a single tutorial on how to do this, as basic as possible, thanks to the posts by other people on this topic on various sites, and my own experience.<br />
<span id="more-175"></span></p>
<p>Disclaimer: Before modifying your phone, please make sure that doing so does not violate your contract, corporate IT policy, or any laws. This information is provided only as a reference, and should not be used unless you are allowed to modify your phone&#8217;s OS. Also, make sure you understand what is going on &#8212; this information is provided without any warranty or guarantees!</p>
<ol>
<li>Download MyBackup from the Android Market, and install it.</li>
<li>Run MyBackup, select &#8220;Backup&#8221; and then &#8220;Applications&#8221; and then &#8220;Local (SD Card)&#8221;. Select the applications you want to backup the packages for (you may not want to backup everything&#8230; installing some new may be better&#8230;)</li>
<li>After the Applications backup finishes, click OK and then select &#8220;Backup&#8221; &gt; &#8220;Data&#8221; &gt; &#8220;Local (SD Card)&#8221; again. Select the data you want to backup from the list. If your contacts are all synced to Google, you shouldn&#8217;t need to backup stuff like these or your calendars, but it may not be a bad idea to just in case. After the Data backup finishes, click &#8220;OK&#8221;, and quit MyBackup.</li>
<li>Now you need to gain full access to your phone. Thanks to the developer <a href="http://forum.xda-developers.com/showthread.php?t=742228" target="_blank">jcase, Eclips3, and TeamAndIRC&#8217;s post</a>. Please read it so you see what they have to say and their license on the program they released. Here is what I needed to do.
<ul>
<li>&#8220;download and install this apk <a href="http://dl.dropbox.com/u/8699733/erisone010.apk" target="_blank">http://dl.dropbox.com/u/8699733/erisone010.apk</a> &#8211; VERSION 0.1.0&#8243;</li>
</ul>
<ul>
<li>After installing, open the program &#8220;Eris Rooter&#8221;, read the disclaimer, and click &#8220;I agree, Root Me.&#8221;</li>
<li>Reboot your device (Press power button for a second, then click Shutdown from the menu that appears. Once phone is off, press the power button to turn it back on, and wait for the startup to complete)</li>
</ul>
<ul>
<li>Shutdown your phone.</li>
<li>Hold the Volume UP key (and continue holding it), and press the power button to boot into recovery.</li>
</ul>
</li>
<li>From the Recovery menu, move down to &#8220;Backup/Restore&#8221; and then select &#8220;Nand backup&#8221; using the trackball click. Click trackball again to confirm&#8230; and wait&#8230; until it says &#8220;Backup complete!&#8221;. Press Volume DOWN, and then click on &#8220;Reboot system now&#8221;.</li>
<li>Connect your phone to your computer via USB. If your phone hasn&#8217;t prompted you, go into your notification bar (drag down the bar at the top of your screen) and if you see &#8220;Charge only&#8221; or &#8220;HTC Sync&#8221; click on it and change it so that it is &#8220;Disk drive&#8221;. Your computer should soon mount the phone&#8217;s SD card as a drive (mine named it &#8220;NO NAME&#8221;, but it mounts!)</li>
<li>Drag over the backup files to some directory on your computer, just for extra safe keeping. Techically you don&#8217;t need to do this&#8230; but why not? I dragged over &#8220;rerware&#8221; (MyBackup&#8217;s creation) and &#8220;nandroid&#8221; (from the full phone backup).</li>
<li>Get the new ROM that you want from the internet. Here one option is <a href="http://forum.xda-developers.com/showthread.php?t=685594" target="_blank">KaosFroyo</a>. I used the latest version that was there, which was version 38. Download the ZIP file to your harddrive, and then drag it over to the phone&#8217;s SD card.</li>
<li>Turn off your phone.</li>
<li>Power up your phone in recovery mode (as described above).</li>
<li>Select &#8220;Wipe&#8221;</li>
<li>Select &#8220;Wipe data/factor reset&#8221;, and confirm.</li>
<li>Once done, select &#8220;Wipe Dalvik-cache&#8221;, and confirm. Once done, hit the Volume DOWN button to get to the main menu.</li>
<li>Select &#8220;Flash zip from SD card&#8221;, and select the ZIP file that you just put on your phone. It will ask you to confirm&#8230; and then wait&#8230;</li>
<li>When it is done, select &#8220;Reboot phone now&#8221;</li>
<li>Once your phone is up, you should see an intro configuration screen, etc. Do this.</li>
<li>I suggest reinstalling applications direct from the Android Market instead of restoring from MyBackup. However, if you want data/applications that you saved beforehand using MyBackup, just download this from the Android Market and run it in &#8220;Restore&#8221; mode.</li>
</ol>
<p>If anything goes terribly wrong, this is why you made a Nandroid backup, so just boot into recovery mode and do Backup/Restore and then Nand Restore. Hopefully you won&#8217;t need that though!</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/175/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr Photo Wrapper</title>
		<link>http://rmspeers.com/archives/164</link>
		<comments>http://rmspeers.com/archives/164#comments</comments>
		<pubDate>Sun, 19 Sep 2010 22:35:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code Snippits]]></category>
		<category><![CDATA[My Work]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=164</guid>
		<description><![CDATA[I needed to grab photos off of Flickr (flickr.com, a photo sharing site) in order to place them on a website. In this setup, Flickr takes care of the upload, photo storage, photo serving, etc and your website can access the images on it to use in your content. Flickr offers a way to embed [...]]]></description>
			<content:encoded><![CDATA[<p id="top" />I needed to grab photos off of Flickr (flickr.com, a photo sharing site) in order to place them on a website. In this setup, Flickr takes care of the upload, photo storage, photo serving, etc and your website can access the images on it to use in your content. Flickr offers a way to embed images on your site in a Flash slideshow, but their interface has &#8220;features&#8221; that make it too busy and distracting to use as a simple design element. Also, it doesn&#8217;t handle resizing well, often cutting off your images or the interface&#8217;s buttons.</p>
<p>So, all I wanted was to grab a user&#8217;s public photos from Flickr (by username) and then allow someone to easily display one (or many). Lets look at how you use the classes:</p>
<p><pre><code>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;require_once(&quot;photosFlickr.php&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$flickrphotos = new photosFlickr($flickr_username, &quot;YOUR-API-KEY-HERE&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$photos = $flickrphotos-&gt;getPhotos();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$photoOfInterest = $photos[array_rand($photos, 1)];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$flickrpic = new photoFlickr($photoOfInterest, &quot;YOUR-API-KEY-HERE&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$flickrpic-&gt;setSize($width, $height);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print $flickrpic-&gt;getHTML(true);
</code></pre></p>
<p>Before you start, you need to put two PHP files on your server. One is mine (<a href="http://rmspeers.com/projects/photosFlickr.php.txt">photosFlickr.php</a>) and my code expects to find <a href="http://code.google.com/p/phpflickr/downloads/list">phpFlickr Class 3.0</a> (written by Dan Coulter that you can get at http://phpflickr.com/). Download his files, and upload the one called phpFlickr.php to your website (it is easiest to put it in the same folder as you put my code).</p>
<p>First, we include the code I wrote. Make sure to include the full and correct relative path to the file on your server.<br />
<code>require_once(&quot;photosFlickr.php&quot;);</code></p>
<p>Second, we instantiate an instance of the class that handles multiple photos. We give the constructor the flickr username (as a string), and also your API key (as a string) which you can get for free from Flickr by clicking <a href="http://www.flickr.com/services/apps/create/apply/">here</a>.<br />
<code>$flickrphotos = new photosFlickr($flickr_username, &quot;YOUR-API-KEY-HERE&quot;);</code></p>
<p>Then lets actually use the instance we just created&#8230; the simplest way to do so is to ask for all the public photos (Flickr may only return the first 100 due to how their API works. You can easily modify my code to ask for more.). We do this by calling:<br />
<code>$photos = $flickrphotos-&gt;getPhotos();</code><br />
And we have the list of photos in the array called <i>$photos</i>. But if you look at this array, it is a mess! It is all information that makes sense to Flickr, but not as much to you. Don&#8217;t worry, I have a class to handle that as well.</p>
<p>For our example, lets pick one photo to deal with. We&#8217;ll do this randomly by calling:<br />
<code>$photoOfInterest = $photos[array_rand($photos, 1)];</code><br />
We now have picked the photo we want to work with. You can do this in many ways, the random method is just an example (<i>$photos[0]</i> would give you the first one image Flickr returned, etc.).</p>
<p>Now lets display this picture. We instantiate a photoFlickr instance (note this is different than the photo<strong>s</strong>Flickr instance we used before:<br />
<code>$flickrpic = new photoFlickr($photoOfInterest, &quot;YOUR-API-KEY-HERE&quot;);</code><br />
This will cause my code to make some sense out of the information returned by Flickr.</p>
<p>Optionally, you can decide the size you want to display the picture at. Just call:<br />
<code>$flickrpic-&gt;setSize($width, $height);</code><br />
This provides it the width and height. For example this may look like <i>$flickrpic->setSize(300, 200);</i> but you can also just give it the width (like <i>$flickrpic->setSize(300);</i> and my code will figure out the correct height based on the dimensions of the image.</p>
<p>It will also intelligently choose the image to load from Flickr&#8217;s site. Flickr stores multiple versions of each image (thumbnail, square, medium, large, original) and the code will look through these and pick the smallest one that has dimensions equal or greater than what you need. This means your viewer&#8217;s browser has to load as small a file as possible while still not stretching an image and thus making it look bad.</p>
<p>But you still haven&#8217;t shown anything to your user! You need to display the HTML code for the image. This is done easily by calling:<br />
<code>print $flickrpic-&gt;getHTML();</code><br />
This will output the image tag, with the sizes you specified (if any, otherwise default), and will automatically link the image to it&#8217;s page on Flickr. If you don&#8217;t want it to link to Flickr, just use <i>$flickrpic->getHTML(false);</i>.</p>
<p>That is all!</p>
<p>Please feel free to leave feedback. I&#8217;ll also consider new feature requests. Please alert me to bugs and I&#8217;ll fix and repost ASAP (I know there are some, I just don&#8217;t have time to fix all the edge cases right now).</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/164/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>
		<slash:comments>0</slash:comments>
		</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>
		<category><![CDATA[Security Research]]></category>

		<guid isPermaLink="false">http://rmspeers.com/?p=115</guid>
		<description><![CDATA[Last winter, I wrote a research paper with my classmate Evan Tice &#8217;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 &#8217;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>
		<slash:comments>0</slash:comments>
		</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, [...]]]></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 &#8211; map, satellite imagery, and a hybrid.</p>
<p><span id="more-54"></span></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>
<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>
<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>I am continuing to work on improved stability and features.</p>
]]></content:encoded>
			<wfw:commentRss>http://rmspeers.com/archives/54/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</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>
		<slash:comments>0</slash:comments>
		</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 [...]]]></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>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

