<?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>My Piece of the Inter(.)net &#187; Roomie!</title>
	<atom:link href="http://mypieceoftheinter.net/tag/roomie/feed" rel="self" type="application/rss+xml" />
	<link>http://mypieceoftheinter.net</link>
	<description>A place for my geekish ramblings or whatever I find interesting.</description>
	<lastBuildDate>Mon, 16 Jan 2012 16:35:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Happy days! The new Roomie website is usable!</title>
		<link>http://mypieceoftheinter.net/archives/2210</link>
		<comments>http://mypieceoftheinter.net/archives/2210#comments</comments>
		<pubDate>Mon, 16 Jan 2012 16:35:03 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Roomie Website]]></category>
		<category><![CDATA[Roomie!]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/2210</guid>
		<description><![CDATA[Available at http://roomiebot.com, the new Roomie website works!&#160; I use the website to turn lights and things on and off from my desktop computer, laptop, smartphone, and and old still-has-a-browser iPod touch.&#160; I spend most of my time on the Devices page, which lists all of the devices in all home automation networks on my [...]]]></description>
			<content:encoded><![CDATA[<p>Available at <a href="http://roomiebot.com">http://roomiebot.com</a>, the new Roomie website works!&#160; I use the website to turn lights and things on and off from my desktop computer, laptop, smartphone, and and old still-has-a-browser iPod touch.&#160; </p>
<p>I spend most of my time on the Devices page, which lists all of the devices in all home automation networks on my account.&#160; (Right now I only have a single Z-Wave network, but in theory I could have a potpourri of different networks that include other existing home automation frameworks, IR transceivers, and—I dunno—USB missile launchers?)</p>
<p>Anyway, the UI all works, and dynamically updates when a devices state changes.&#160; Cool!</p>
<p><img style="display: inline" title="roomie_devices" alt="roomie_devices" src="http://mypieceoftheinter.net/wp-content/uploads/2012/01/roomie_devices.png" width="730" height="1118" /></p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/2210/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More on Roomie&#8217;s website rewrite</title>
		<link>http://mypieceoftheinter.net/archives/2205</link>
		<comments>http://mypieceoftheinter.net/archives/2205#comments</comments>
		<pubDate>Sun, 11 Dec 2011 19:13:39 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Entity Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Roomie!]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/2205</guid>
		<description><![CDATA[As stated in my previous post about Roomie, I’ve been using a lot of brain juice to rewrite Roomie’s website.&#160; I wrote the original website in ASP.NET with Web Forms, which was pretty standard for the time.&#160; Although technology like ASP.NET MVC and the Entity Framework existed in some form, they weren’t even on my [...]]]></description>
			<content:encoded><![CDATA[<p>As stated in my <a href="http://mypieceoftheinter.net/archives/2201">previous post</a> about Roomie, I’ve been using a lot of brain juice to rewrite Roomie’s website.&#160; I wrote the original website in ASP.NET with Web Forms, which was pretty standard for the time.&#160; Although technology like <a href="http://en.wikipedia.org/wiki/Asp.net_mvc">ASP.NET MVC</a> and the <a href="http://en.wikipedia.org/wiki/Entity_Framework">Entity Framework</a> existed in some form, they weren’t even on my radar.&#160; So after some coding and hacking and pushing through unfamiliar problems, I eventually got a workable website.&#160; (This website, though not the final version, is pictured in <a href="http://mypieceoftheinter.net/archives/2111">this post</a>.)</p>
<p>After merging all of Roomie’s desktop and web components into one self-aware Visual Studio solution, learning a ton of new technology, and a little trial and error, I now have the Roomie desktop client talking directly to the new website.&#160; Best of all, I can locally debug everything which means that I can get quicker feedback on code changes and (shrug?) even develop offline.&#160; Below I have a simple example pictured.&#160; A more impressive example is when I tell the Roomie desktop client to say something using text-to-speech, but obviously that would not convey over a screenshot.</p>
<p><a href="http://mypieceoftheinter.net/wp-content/uploads/2011/12/Roomie-MVC3-Tasks-working1.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Roomie MVC3 Tasks working" alt="Roomie MVC3 Tasks working" src="http://mypieceoftheinter.net/wp-content/uploads/2011/12/Roomie-MVC3-Tasks-working_thumb1.png" width="800" height="479" /></a></p>
<p>  <span id="more-2205"></span>
<p>The Roomie desktop client communicates with the Roomie web service using a custom protocol that I developed.&#160; Both the server side (web service) and client side (Roomie desktop client) reference the same Visual Studio project to do the communication, so I am guaranteed protocol agreement.&#160; It’s really satisfying to add some functionality or refactor in one place and have the changes propagate to every related component.</p>
<p>Yaaaaay programming!</p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/2205/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hey! Roomie is still here.</title>
		<link>http://mypieceoftheinter.net/archives/2201</link>
		<comments>http://mypieceoftheinter.net/archives/2201#comments</comments>
		<pubDate>Wed, 23 Nov 2011 00:09:40 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/2201</guid>
		<description><![CDATA[Woooh!&#160; I have not blogged about Roomie in a looong time!&#160; Just like I came to a dead-end with Roomie’s desktop client component and re-wrote it, I came to a dead-end with Roomie’s web component.&#160; I started out using ASP.NET, C#, and Web Forms.&#160; Web Forms made it really easy for me to do web [...]]]></description>
			<content:encoded><![CDATA[<p>Woooh!&#160; I have not blogged about Roomie in a looong time!&#160; Just like I came to a dead-end with Roomie’s desktop client component and <a href="http://mypieceoftheinter.net/archives/1978">re-wrote it</a>, I came to a dead-end with Roomie’s web component.&#160; I started out using ASP.NET, C#, and Web Forms.&#160; Web Forms made it really easy for me to do web development using my experience programming desktop applications with WinForms.&#160; Last year I reached the limits of what WinForms would offer, and I needed something more powerful.&#160; I discovered <a href="http://asp.net/mvc">ASP.NET MVC</a>, which was totally new and strange and awesome.&#160; But woes, the darn thing updates all the time!&#160; That’s great, except that I was learning MVC2 while MVC3 was in development.</p>
<p>Needless to say, I was daunted by the huge task of migrating the whole Roomie website over from an old technology.&#160; I also wanted to take the opportunity to learn more about CSS, and JavaScript, jQuery, AJAX, LINQ, the .NET Entity Framework, and anything else that I didn’t know I needed to know.&#160; All of that is still in progress, but I am not to the point where I have started a new website, though it is not live yet.</p>
<p>Pretty!    <br /><a href="http://mypieceoftheinter.net/wp-content/uploads/2011/11/Roomie-MVC3.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Roomie MVC3" alt="Roomie MVC3" src="http://mypieceoftheinter.net/wp-content/uploads/2011/11/Roomie-MVC3_thumb.png" width="800" height="512" /></a></p>
<p>  <span id="more-2201"></span>
<p>Here’s a sample of the main layout using the Razor view engine:</p>
<p><a href="http://mypieceoftheinter.net/wp-content/uploads/2011/11/Roomie_MVC3_Layout_Example.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Roomie_MVC3_Layout_Example" alt="Roomie_MVC3_Layout_Example" src="http://mypieceoftheinter.net/wp-content/uploads/2011/11/Roomie_MVC3_Layout_Example_thumb.png" width="800" height="351" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/2201/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another novel (and silly) use for Roomie</title>
		<link>http://mypieceoftheinter.net/archives/2160</link>
		<comments>http://mypieceoftheinter.net/archives/2160#comments</comments>
		<pubDate>Mon, 11 Oct 2010 16:35:46 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[RoomieScript]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/2160</guid>
		<description><![CDATA[I’ve been working (rather obsessively) on Roomie for the past week.&#160; In specific, I have rewritten the XML-based protocol that allows the desktop client to communicate with the web service.&#160; (Say “hi” to it here.)&#160; The new library (which I call WebCommunicator) is sooo much easier to use than my old one, but still has [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been working (rather obsessively) on Roomie for the past week.&#160; In specific, I have rewritten the XML-based protocol that allows the desktop client to communicate with the web service.&#160; (Say “hi” to it <a href="http://roomie.somewhatgeeky.com/communicator/">here</a>.)&#160; The new library (which I call WebCommunicator) is sooo much easier to use than my old one, but still has all the nifty (and important) encryption and anti-hacking features.&#160; I will eventually publish the protocol as an independent library.&#160; (Give me a bit to use it more and work out all the kinks.)</p>
<p>But enough technical talk.&#160; Lets get to <em>serious business.</em>&#160; Here I have a little RoomieScript that I wrote, just as a proof of concept. </p>
<p><span style="font-family: monospace; white-space: nowrap; color: blue">&lt;<span style="color: maroon">RoomieScript</span>&gt;       <br />&#160; &lt;<span style="color: maroon">ZWave.PowerOff</span>&#160;<span style="color: red">DeviceName</span>=&quot;<span style="color: black"><b>Coffee Pot</b></span>&quot; /&gt;       <br />&#160; &lt;<span style="color: maroon">Core.Loop</span>&gt;       <br />&#160;&#160;&#160; &lt;<span style="color: maroon">ZWave.WaitForChange</span>&#160;<span style="color: red">DeviceName</span>=&quot;<span style="color: black"><b>Coffee Pot</b></span>&quot; <span style="color: red">PollInterval</span>=&quot;<span style="color: black"><b>5 Seconds</b></span>&quot; /&gt;       <br />&#160;&#160;&#160; &lt;<span style="color: maroon">ZWave.PowerOff</span>&#160;<span style="color: red">DeviceName</span>=&quot;<span style="color: black"><b>Coffee Pot</b></span>&quot; /&gt;       <br />&#160;&#160;&#160; &lt;<span style="color: maroon">RoomieBot.TextDavid</span>&#160;<span style="color: red">Text</span>=&quot;<span style="color: black"><b>No coffee!</b></span>&quot; /&gt;       <br />&#160; &lt;/<span style="color: maroon">Core.Loop</span>&gt;       <br />&lt;/<span style="color: maroon">RoomieScript</span>&gt;       <br /></span></p>
<p> <span id="more-2160"></span>
<p>Here Roomie waits until the coffee maker is turned on, then turns it off and sends me a <em>terse</em> text message. Yes, it works!&#160; And yes, I do use Roomie for legitimate things, but ah… it’s so just that much fun to be dumb.</p>
<p>Interested in beta testing Roomie?&#160; Send me a message.</p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/2160/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roomie gets some CSS schooling</title>
		<link>http://mypieceoftheinter.net/archives/2111</link>
		<comments>http://mypieceoftheinter.net/archives/2111#comments</comments>
		<pubDate>Fri, 25 Jun 2010 04:30:45 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/2111</guid>
		<description><![CDATA[This week I have been furiously re-writing a few key elements of the Roomie website.&#160; Specifically, I scrapped the old device button controls, which you can see here. They were ok, but they were very rigid in use, offering only two different pictures to back the buttons.&#160; Zooming on mobile devices didn’t work so great [...]]]></description>
			<content:encoded><![CDATA[<p>This week I have been furiously re-writing a few key elements of the <a href="http://mypieceoftheinter.net/tag/roomie">Roomie</a> website.&#160; Specifically, I scrapped the old device button controls, which you can see <a href="http://mypieceoftheinter.net/archives/2078">here</a>. They were ok, but they were very rigid in use, offering only two different pictures to back the buttons.&#160; Zooming on mobile devices didn’t work so great either, since the images were PNGs, <a href="http://en.wikipedia.org/wiki/Raster_graphics">raster graphics</a>.&#160; Now I have created a button framework entirely in CSS, HTML, and ASP.NET controls.&#160; Because of this, I can easily create new kinds of controls completely in code, and they even zoom cleanly as well.&#160; My original vision for this was to enable the user to create “virtual device controls”, which would display next to the regular device controls.</p>
<p><a href="http://mypieceoftheinter.net/wp-content/uploads/2010/06/Roomie_home_automation_main_site_on_iPad.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Roomie home automation main site on an iPad" alt="Roomie home automation main site on an iPad" src="http://mypieceoftheinter.net/wp-content/uploads/2010/06/Roomie_home_automation_main_site_on_iPad_thumb.png" width="640" height="480" /></a> </p>
<p> <span id="more-2111"></span>
<p>As you can see above, I have the <a href="http://roomie.somewhatgeeky.com">Roomie website’s main page</a> displaying on an iPad.&#160; The first two controls are an example of the new feature.&#160; Before I go to bed I might want to click the “set alarm” button, which would run a RoomieScript that I wrote that wakes me up in the morning.&#160; The same deal goes for coffee. (Of course, making coffee is also part of the alarm routine.)&#160; It would be easy to imagine many other virtual devices.&#160; Eventually I will likely make a “basement” device, which would have buttons like “Movie” for nice movie lighting, “all on”, “all off”, and of course, “PAAARRTAAYY!”</p>
<p>I mentioned that these controls were highly customizable in code.&#160; In the <a href="http://en.wikipedia.org/wiki/C_(programming_language)">C#</a> <a href="http://en.wikipedia.org/wiki/ASP.NET#Code-behind_model">code-behind</a> I can set the size of these controls with pixel precision.&#160; That came in really handy when I made an iPad-specific page, which resizes the controls to be just the right width to fill the screen horizontally and high enough for easy pressing with a finger.&#160; A tweak of the sizes only takes a few seconds.</p>
<p><a href="http://mypieceoftheinter.net/wp-content/uploads/2010/06/Roomie_home_automation_touch_site_on_iPad.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Roomie home automation touch site on an iPad" alt="Roomie home automation touch site on an iPad" src="http://mypieceoftheinter.net/wp-content/uploads/2010/06/Roomie_home_automation_touch_site_on_iPad_thumb.png" width="360" height="480" /></a> </p>
<p>All of this has been a really good learning experience for me, and of course I am <em>far</em> from done.&#160; I’ve applied so much of what I’ve learned writing Roomie, which is just for fun, to other projects at work and in school.&#160; If you want to help test Roomie, <a href="http://davidmcgrath.com/contact">send me an email</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/2111/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Joys of WebDev (and Google Chrome software updates?)</title>
		<link>http://mypieceoftheinter.net/archives/2089</link>
		<comments>http://mypieceoftheinter.net/archives/2089#comments</comments>
		<pubDate>Mon, 10 May 2010 18:34:39 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[Mizilla Firefox]]></category>
		<category><![CDATA[Roomie Website]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[Websites Web Development]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/2089</guid>
		<description><![CDATA[I was just working on Roomie (instead of studying for exams) and I cam across a very strange error. I was making some very benign changes to the navigation bar on the left side of the website, when I refresh the page to see the “on/off” buttons interchanged for the favicon (stretched horribly, of course).&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>I was just working on <a href="http://roomie.somewhatgeeky.com/images/on-off_250.png">Roomie</a> (instead of studying for exams) and I cam across a very strange error.</p>
<p><a href="http://mypieceoftheinter.net/wp-content/uploads/2010/05/joys_of_webdev_chrome.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Joys of Webdev" alt="Joys of Webdev" src="http://mypieceoftheinter.net/wp-content/uploads/2010/05/joys_of_webdev_chrome_thumb.png" width="640" height="435" /></a> </p>
<p>  <span id="more-2089"></span>
<p>I was making some very benign changes to the navigation bar on the left side of the website, when I refresh the page to see the “on/off” buttons interchanged for the <a href="http://en.wikipedia.org/wiki/Favicon">favicon</a> (stretched horribly, of course).&#160; I refreshed the page in <a href="http://www.google.com/chrome">Chrome</a>, verified the URL of the image, and finally looked at just the image.&#160; Then I looked at the URL.&#160; The favicon?&#160; How strange.&#160; I viewed the URL in <a href="http://www.mozilla.com/firefox/">Firefox</a>, and saw the correct picture.&#160; Next I viewed the URL in Incognito Mode in Chrome.&#160; Again the correct picture.&#160; How could the image appear differently?</p>
<p><a href="http://mypieceoftheinter.net/wp-content/uploads/2010/05/joys_of_webdev_chrome_lolwut.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="lol wut" alt="lol wut" src="http://mypieceoftheinter.net/wp-content/uploads/2010/05/joys_of_webdev_chrome_lolwut_thumb.png" width="640" height="302" /></a> </p>
<p>I can’t be sure, but I think the problem could be with Google Chrome’s updating mechanism.&#160; After trying various troubleshooting techniques, including restarting the browser, I went to the about page to see if the thing had updated.&#160; It seemed like it had, but to make sure I went to my laptop.</p>
<p><a href="http://mypieceoftheinter.net/wp-content/uploads/2010/05/Google_Chrome_update.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Google Chrome Update" alt="Google Chrome Update" src="http://mypieceoftheinter.net/wp-content/uploads/2010/05/Google_Chrome_update_thumb.png" width="557" height="338" /></a> </p>
<p>So that seems to be it.&#160; Restarting and/or clearing the browsing cache fixed the problem.&#160; It’s nice that Chrome updates so transparently, but apparently it doesn’t always work perfectly.</p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/2089/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RoomieRemake woke me up and made me coffee!</title>
		<link>http://mypieceoftheinter.net/archives/2078</link>
		<comments>http://mypieceoftheinter.net/archives/2078#comments</comments>
		<pubDate>Mon, 26 Apr 2010 13:45:45 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Home Server]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Roomie Website]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[ThinkStick]]></category>
		<category><![CDATA[Z-Wave]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/2078</guid>
		<description><![CDATA[I recently rearranged the Z-Wave modules in my house to devices that I care about controlling more.&#160; I put one on the coffee maker so that I could preload it and either schedule it to turn on or turn it on through the Roomie website, which would be good for if I were heading home [...]]]></description>
			<content:encoded><![CDATA[<p>I recently rearranged the <a href="http://en.wikipedia.org/wiki/Z-wave">Z-Wave</a> modules in my house to devices that I care about controlling more.&#160; I put one on the coffee maker so that I could preload it and either schedule it to turn on or turn it on through the Roomie website, which would be good for if I were heading home sometime and wanted a fresh cup waiting for me.&#160; I also put a module on my <a href="http://mypieceoftheinter.net/archives/1821">computer monitors</a> and speakers, which are in my bedroom.&#160; This lets a script turn them off when I go to bed and back on right before a script wakes me up with music. </p>
<p>This morning <a href="http://mypieceoftheinter.net/archives/1978">RoomieRemake</a> woke me up with two short scripts.&#160; And hey, more news!&#160; I used the recently-updated website (which I’ve apparently never directly blogged about) to write the scripts.&#160; Here’s a screenshot of that.</p>
<p>&#160;<a href="http://mypieceoftheinter.net/wp-content/uploads/2010/04/roomie_wake_up_script.png"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Roomie website with wake up scripts" alt="Roomie website with wake up scripts" src="http://mypieceoftheinter.net/wp-content/uploads/2010/04/roomie_wake_up_script_thumb.png" width="537" height="480" /></a> </p>
<p>Here’s the script that ran on Dreaming Nest, my <a href="http://mypieceoftheinter.net/archives/1899">Home Server</a>, which has a ThinkStick USB Z-Wave controller.</p>
<p>  <span id="more-2078"></span>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">RoomieScript</span><span style="color: blue">&gt;
  &lt;</span><span style="color: #a31515">Timing.WaitUntil </span><span style="color: red">Hour</span><span style="color: blue">=</span>&quot;<span style="color: blue">8</span>&quot; <span style="color: red">Minute</span><span style="color: blue">=</span>&quot;<span style="color: blue">50</span>&quot; <span style="color: blue">/&gt;
  &lt;</span><span style="color: #a31515">ZWave.PowerOn </span><span style="color: red">DeviceName</span><span style="color: blue">=</span>&quot;<span style="color: blue">Coffee Pot</span>&quot; <span style="color: blue">/&gt;
  &lt;</span><span style="color: #a31515">Timing.WaitUntil </span><span style="color: red">Hour</span><span style="color: blue">=</span>&quot;<span style="color: blue">8</span>&quot; <span style="color: red">Minute</span><span style="color: blue">=</span>&quot;<span style="color: blue">59</span>&quot; <span style="color: blue">/&gt;
  &lt;</span><span style="color: #a31515">ZWave.PowerOn </span><span style="color: red">DeviceName</span><span style="color: blue">=</span>&quot;<span style="color: blue">Monitor and Speakers</span>&quot; <span style="color: blue">/&gt;
  &lt;</span><span style="color: #a31515">Timing.WaitUntil </span><span style="color: red">Hour</span><span style="color: blue">=</span>&quot;<span style="color: blue">9</span>&quot; <span style="color: red">Minute</span><span style="color: blue">=</span>&quot;<span style="color: blue">15</span>&quot; <span style="color: blue">/&gt;
  &lt;</span><span style="color: #a31515">ZWave.PowerOff </span><span style="color: red">DeviceName</span><span style="color: blue">=</span>&quot;<span style="color: blue">Coffee Pot</span>&quot; <span style="color: blue">/&gt;
&lt;/</span><span style="color: #a31515">RoomieScript</span><span style="color: blue">&gt;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>&#160;</p>
<p>Here is the script that ran on Rory, the desktop computer in my bedroom.</p>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">RoomieScript</span><span style="color: blue">&gt;
  &lt;</span><span style="color: #a31515">Timing.WaitUntil </span><span style="color: red">Hour</span><span style="color: blue">=</span>&quot;<span style="color: blue">9</span>&quot; <span style="color: blue">/&gt;
  &lt;</span><span style="color: #a31515">Output.OpenFile </span><span style="color: red">Path</span><span style="color: blue">=</span>&quot;<span style="color: blue">F:/music/playlists/Driving in Spring.wpl</span>&quot; <span style="color: blue">/&gt;
&lt;/</span><span style="color: #a31515">RoomieScript</span><span style="color: blue">&gt;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/2078/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hey! Roomie isn&#8217;t dead either!</title>
		<link>http://mypieceoftheinter.net/archives/1978</link>
		<comments>http://mypieceoftheinter.net/archives/1978#comments</comments>
		<pubDate>Fri, 12 Feb 2010 04:39:38 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Arcadia]]></category>
		<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[FRI]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio Express]]></category>
		<category><![CDATA[Z-Wave]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/1978</guid>
		<description><![CDATA[After completely rewriting FRI from scratch (and renaming it Arcadia), I have decided to rewrite my other big project, Roomie.&#160; This absolutely needed to be done.&#160; Roomie had some good functionality, but I had hit the limit for its extensibility.&#160; Roomie’s engine was a monolithic blob of ugly code, with very little room to make [...]]]></description>
			<content:encoded><![CDATA[<p>After completely rewriting <a href="http://mypieceoftheinter.net/tag/FRI">FRI</a> from scratch (and renaming it <a href="http://mypieceoftheinter.net/tag/Arcadia">Arcadia</a>), I have decided to rewrite my other big project, <a href="http://mypieceoftheinter.net/tag/roomie">Roomie</a>.&#160; This absolutely needed to be done.&#160; Roomie had some good functionality, but I had hit the limit for its extensibility.&#160; Roomie’s engine was a monolithic blob of ugly code, with very little room to make it into a full scripting language with features like custom functions and if statements.&#160; My redesign of Roomie, which I call RoomieRemake for now, is completely expandable, is properly multithreaded, and has all of the potential to be a robust, featurefull scripting language.&#160; Just like Arcadia, I am proud to declare that RoomieRemake shares absolutely no code with its predecessor.&#160; Not even a single copy/pasted line of code!&#160; More on that in a bit, but first an end scenario:     <br /><img style="display: inline" title="Roomie Text Message" alt="Roomie Text Message" src="http://mypieceoftheinter.net/wp-content/uploads/2010/02/roomie_bot_text_message.png" width="240" height="400" /> </p>
<p> <span id="more-1978"></span>
<p>I’m not sure why I instinctively personify computers as needy and with low self esteem, but anyway…</p>
<p>In rewriting Roomie, I built up the infrastructure in the core engine to allow me to easily add commands.&#160; In the old Roomie, I tried to organize commands’ code as best I could, but I still ended up with big files with lots of functions, and a hulking switch statement at the top.    </p>
<p>Here is the switch statement for the <a href="http://en.wikipedia.org/wiki/Z-Wave">Z-Wave</a> commands code file:</p>
<p><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Old Roomy: Ugly switch statement of doom" alt="Old Roomy: Ugly switch statement of doom" src="http://mypieceoftheinter.net/wp-content/uploads/2010/02/ugly_command_switch1.png" width="579" height="618" /> </p>
<p>There was also another junction point higher up the line that would decide which kind of command was being called.&#160; In RoomieRemake, I do things a bit more generically.&#160; Every command is represented by a class, which all derive from a “Command” class.&#160; That means I can just have this:    <br /><img style="display: inline" title="Roomie Remake: more elegant command selection" alt="Roomie Remake: more elegant command selection" src="http://mypieceoftheinter.net/wp-content/uploads/2010/02/roome_better_command_selection.png" width="741" height="156" /> </p>
<p>As I continue development I will optimize things like command selection, but the point here is that I don’t have a whole bunch of special cases for different kinds of commands.&#160; This is just part of the code that makes a command run, of course, but part of the redesign included breaking up functionality into neat, orderly bundles.&#160; The master list of commands is populated dynamically with <a href="http://en.wikipedia.org/wiki/Reflection_(computer_science)">reflection</a>.</p>
<p>A big time-waster in the old Roomie was validating variables, so in my new approach that is all handled in the definition of a higher-level “Command” class, while subclasses of Command register what arguments they expect, their types, and even default values if applicable.</p>
<p>Here is the old code for the ZWave.PowerOn and ZWave.PowerOff commands.&#160; Look at all of the duplicate code.&#160; Several times after redesigns I would have to go and manually change many lines of very similar code.</p>
<p><img style="display: inline" title="Old Roomie: repetative code" alt="Old Roomie: repetative code" src="http://mypieceoftheinter.net/wp-content/uploads/2010/02/roomie_repetative_code.png" width="596" height="674" /> </p>
<p>Comparing that to the new approach, here is the ZWave.PowerOn command:</p>
<p><img style="display: inline" title="Roomie Remake: conciseness via inheritance" alt="Roomie Remake: conciseness via inheritance" src="http://mypieceoftheinter.net/wp-content/uploads/2010/02/roomie_code_conciseness_via_inheritance.png" width="542" height="247" />     <br />By the time the command class is actually defined, Command has been abstracted into ZWave command, which has been further abstracted to SingleZWaveDeviceControlCommand.&#160; Verbose, sure, but by the time I get to defining the command, I know that all of the validating of variables and finding of the device and connecting to the ZWave controller have already been taken care of.&#160; Plus, if I ever want to add functionality to a group of similar commands, I can just write in the code in a parent class’s definition.&#160; That’s inheritance and type safety at work.</p>
<p>You might have noticed that I didn’t include the whole method signature in the above screenshot.&#160; That’s because it’s reaaallly long.&#160; Some might see this as a disadvantage, but a big problem I had with the old Roomie is not having enough information to work with to make the proper decisions.&#160; Basic commands recieve as arguments the CommandInterpreter that is calling them, a Scope object that represents the nested scopes containing variables, and an XmlNode containing the original command XML.&#160; (Did you remember that RoomieScript is an XML based scripting language?)</p>
<p>That Z-Wave command was already really abstracted, with arguments defined in higher abstract classes, so here’s an example of a command that derives directly from Command:    <br /><img style="display: inline" title="New Roomie: Output.Print command" alt="New Roomie: Output.Print command" src="http://mypieceoftheinter.net/wp-content/uploads/2010/02/image.png" width="503" height="282" /> </p>
<p>Here the constructor calls a method defined in the Command class that defines an argument of type String.&#160; By the time Execute_Definition is called, the engine has already verified that the Text argument is specified.&#160; If there’s a problem, the engine reacts appropriately.&#160; The CommandInterpreter, which represents a thread, doesn’t care about all of these extensions to Comamnd, of course.&#160; It simply calls the selected command’s “Execute” method, which is concrete in the base Command class.</p>
<p>Finally, here’s a shot of the two Solution Explorer windows.&#160; On the left is the old Roomie, and on the right is RoomieRemake.&#160; You can see that in the remake, extra functionality is in other projects, which RoomieRemake hooks into as plugins at runtime.&#160; That way, anyone could write a pluggin for Roomie.</p>
<p><img style="display: inline" title="Roomie vs. Roomie Remake" alt="Roomie vs. Roomie Remake" src="http://mypieceoftheinter.net/wp-content/uploads/2010/02/roome_vs_roomie_remake.png" width="588" height="591" /> </p>
<p>SO that’s what I’m working on.&#160; I hope to release this sometime in the near future.&#160; If you’re interested in testing, either Roomie or Arcadia, shoot me an email.&#160; If you think I’m a huge <a href="http://en.wikipedia.org/wiki/Nerd">nerd</a>, well you’re wrong.&#160; I’m more accurately a gigantic <a href="http://en.wikipedia.org/wiki/Geek#Reclamation_and_self-identification">geek</a>, but you could call me a dork anyway. <img src='http://mypieceoftheinter.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/1978/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Roomie Mobile Update</title>
		<link>http://mypieceoftheinter.net/archives/1962</link>
		<comments>http://mypieceoftheinter.net/archives/1962#comments</comments>
		<pubDate>Thu, 28 Jan 2010 17:51:37 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Demos]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Roomie Mobile]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[Smart Homes]]></category>
		<category><![CDATA[Zune HD]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/1962</guid>
		<description><![CDATA[Remember Roomie?&#160; Today I updated Roomie Mobile.&#160; This version includes a second dimming option and more touch-friendly buttons.&#160; Check it out in the video below. (link)]]></description>
			<content:encoded><![CDATA[<p>Remember <a href="http://mypieceoftheinter.net/tag/roomie">Roomie</a>?&#160; Today I updated Roomie Mobile.&#160; This version includes a second dimming option and more touch-friendly buttons.&#160; Check it out in the video below.</p>
<p><a href="http://mypieceoftheinter.net/wp-content/uploads/2010/01/Roomie_Mobile_on_Zune_HD.jpg"><img style="border-bottom-color: ; border-top-color: ; display: inline; border-right-color: ; border-left-color: " title="Roomie Mobile on a Zune HD" alt="Roomie Mobile on a Zune HD" src="http://mypieceoftheinter.net/wp-content/uploads/2010/01/Roomie_Mobile_on_Zune_HD_thumb.jpg" width="640" height="480" /></a> </p>
<p> <span id="more-1962"></span>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1e23bdcc-5eff-481b-aeab-3539cb07cd90" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/Jx4H5Z8u5ew&amp;hl=en"></param><embed src="http://www.youtube.com/v/Jx4H5Z8u5ew&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p>(<a href="http://www.youtube.com/watch?v=Jx4H5Z8u5ew">link</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/1962/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roomie is getting more powerful!</title>
		<link>http://mypieceoftheinter.net/archives/1768</link>
		<comments>http://mypieceoftheinter.net/archives/1768#comments</comments>
		<pubDate>Tue, 04 Aug 2009 02:37:51 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[RoomieScript]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Z-Wave]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/?p=1768</guid>
		<description><![CDATA[I&#8217;ve been making more improvements to Roomie (which I still haven&#8217;t released). Now a RoomieScript can send a RoomieScript to another computer. This makes collaborated scripts much easier. The script below gets two of my computers, the Home Server and Desktop Computer, to wake me up in the morning. The Home Server handles the Z-Wave [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been making more improvements to Roomie (which I still haven&#8217;t released). Now a RoomieScript can send a RoomieScript to another computer. This makes collaborated scripts much easier. The script below gets two of my computers, the Home Server and Desktop Computer, to wake me up in the morning. The Home Server handles the Z-Wave stuff—turning the lights on and off—and the Desktop Computer handles the music.</p>
<p><span id="more-1768"></span></p>
<p><span style="font-family: monospace; white-space: nowrap; color: blue">&lt;<span style="color: maroon">roomieScript</span>&gt; </p>
<p>&#160; <span style="font-style: italic; color: grey">&lt;!&#8211;&#160; this sends a script to the Desktop Computer&#160; &#8211;&gt;</span> </p>
<p>&#160; <span style="font-style: italic; color: grey">&lt;!&#8211;&#160; it&#8217;s really just to confirm that both computers are turned on&#160; &#8211;&gt;</span> </p>
<p>&#160; &lt;<span style="color: maroon">webScripts.sendScript</span>&#160;<span style="color: red">targetComputerName</span>=&quot;<span style="color: black"><b>Desktop Computer</b></span>&quot;&gt; </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">speak</span>&gt; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: black"><b><br />
        <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; all set! </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </b></span></p>
<p>&#160;&#160;&#160; &lt;/<span style="color: maroon">speak</span>&gt; </p>
<p>&#160; &lt;/<span style="color: maroon">webScripts.sendScript</span>&gt; </p>
<p>&#160; <span style="font-style: italic; color: grey">&lt;!&#8211; wait until the morning&#160; &#8211;&gt;</span> </p>
<p>&#160; &lt;<span style="color: maroon">waitUntil</span>&#160;<span style="color: red">hour</span>=&quot;<span style="color: black"><b>6</b></span>&quot; <span style="color: red">minute</span>=&quot;<span style="color: black"><b>0</b></span>&quot; <span style="color: red">second</span>=&quot;<span style="color: black"><b>0</b></span>&quot; /&gt; </p>
<p>&#160; <span style="font-style: italic; color: grey">&lt;!&#8211;&#160; send a script to Home Server to handle the lights &#8211;&gt;</span> </p>
<p>&#160; &lt;<span style="color: maroon">webScripts.sendScript</span>&#160;<span style="color: red">targetComputerName</span>=&quot;<span style="color: black"><b>Home Server</b></span>&quot;&gt; </p>
<p>&#160;&#160;&#160; <span style="font-style: italic; color: grey">&lt;!&#8211;&#160; dim the Door Lamp and Desk Light on slowly and simultaniously&#160; &#8211;&gt;</span> </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">insertScript</span>&#160;<span style="color: red">runInNewThread</span>=&quot;<span style="color: black"><b>yes</b></span>&quot;&gt; </p>
<p>&#160;&#160;&#160;&#160;&#160; <span style="font-style: italic; color: grey">&lt;!&#8211;&#160; dim the Bed Lamp on faster than the Bed Lamp&#160; &#8211;&gt;</span> </p>
<p>&#160;&#160;&#160;&#160;&#160; &lt;<span style="color: maroon">zWave.slowDimOn</span>&#160;<span style="color: red">module</span>=&quot;<span style="color: black"><b>Bed Lamp</b></span>&quot; <span style="color: red">durration</span>=&quot;<span style="color: black"><b>280</b></span>&quot; /&gt; </p>
<p>&#160;&#160;&#160; &lt;/<span style="color: maroon">insertScript</span>&gt; </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">insertScript</span>&#160;<span style="color: red">runInNewThread</span>=&quot;<span style="color: black"><b>yes</b></span>&quot;&gt; </p>
<p>&#160;&#160;&#160;&#160;&#160; &lt;<span style="color: maroon">zWave.slowDimOn</span>&#160;<span style="color: red">module</span>=&quot;<span style="color: black"><b>Door Lamp</b></span>&quot; <span style="color: red">durration</span>=&quot;<span style="color: black"><b>120</b></span>&quot; /&gt; </p>
<p>&#160;&#160;&#160; &lt;/<span style="color: maroon">insertScript</span>&gt; </p>
<p>&#160;&#160;&#160; <span style="font-style: italic; color: grey">&lt;!&#8211;&#160; wait an hour and a half, then turn off all the lights&#160; &#8211;&gt;</span> </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">waitFor</span>&#160;<span style="color: red">seconds</span>=&quot;<span style="color: black"><b>5400</b></span>&quot; /&gt; </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">zWave.powerOff</span>&#160;<span style="color: red">module</span>=&quot;<span style="color: black"><b>Desk Light</b></span>&quot; /&gt; </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">zWave.powerOff</span>&#160;<span style="color: red">module</span>=&quot;<span style="color: black"><b>Door Lamp</b></span>&quot; /&gt; </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">zWave.powerOff</span>&#160;<span style="color: red">module</span>=&quot;<span style="color: black"><b>Bed Lamp</b></span>&quot; /&gt; </p>
<p>&#160; &lt;/<span style="color: maroon">webScripts.sendScript</span>&gt; </p>
<p>&#160; &lt;<span style="color: maroon">webScripts.sendScript</span>&#160;<span style="color: red">targetComputerName</span>=&quot;<span style="color: black"><b>Desktop Computer</b></span>&quot;&gt; </p>
<p>&#160;&#160;&#160; <span style="font-style: italic; color: grey">&lt;!&#8211;&#160; wait three minutes after the light dimming has begun, then play music&#160; &#8211;&gt;</span> </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">waitFor</span>&#160;<span style="color: red">seconds</span>=&quot;<span style="color: black"><b>180</b></span>&quot; /&gt; </p>
<p>&#160;&#160;&#160; &lt;<span style="color: maroon">openFile</span>&#160;<span style="color: red">path</span>=&quot;<span style="color: black"><b>F:/music/playlists/Wake Up.wpl</b></span>&quot; /&gt; </p>
<p>&#160; &lt;/<span style="color: maroon">webScripts.sendScript</span>&gt; </p>
<p>&lt;/<span style="color: maroon">roomieScript</span>&gt; </p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/1768/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roomie Mobile Demo</title>
		<link>http://mypieceoftheinter.net/archives/1634</link>
		<comments>http://mypieceoftheinter.net/archives/1634#comments</comments>
		<pubDate>Tue, 26 May 2009 03:24:34 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[Smart Homes]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Z-Wave]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/1634</guid>
		<description><![CDATA[Since school is out and work hasn’t started yet, I have finally been able to catch up on some coding.&#160; I know it’s geeky, but it’s fun!&#160; Today I made some updates to Roomie, adding variables and functions to RoomieScript, the scripting language that the Roomie desktop application interprets.&#160; Since I got a smart phone [...]]]></description>
			<content:encoded><![CDATA[<p>Since school is out and work hasn’t started yet, I have <em>finally</em> been able to catch up on some coding.&#160; I know it’s geeky, but it’s fun!&#160; Today I made some updates to Roomie, adding variables and functions to <a href="http://mypieceoftheinter.net/archives/1578">RoomieScript</a>, the scripting language that the Roomie desktop application interprets.&#160; Since I got a smart phone I have become in mobile development.&#160; Today I took an hour or so to develop a <a href="http://roomie.somewhatgeeky.com/mobile/">mobile version</a> of the <a href="http://roomie.somewhatgeeky.com">Roomie website</a>.&#160; (Right now both websites are technically open to the public, but without the desktop application, which I have yet to release, the websites are useless to outsiders.)    <br /><img style="display: inline" title="Roomie Mobile in Internet Explorer &amp; Windows Mobile 6.1 Professional" alt="Roomie Mobile in Internet Explorer &amp; Windows Mobile 6.1 Professional" src="http://mypieceoftheinter.net/wp-content/uploads/2009/05/roomie-mobile-in-internet-explorer.png" width="240" height="400" /></p>
<p>Here’s a video:</p>
<p> <span id="more-1634"></span>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:4f1c7d78-4924-4fb7-80a2-8c572dfc3748" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/QlDxAgy1HA4&amp;hl=en"></param><embed src="http://www.youtube.com/v/QlDxAgy1HA4&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p><a href="http://www.youtube.com/watch?v=QlDxAgy1HA4">YouTube link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/1634/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RoomieScript demo</title>
		<link>http://mypieceoftheinter.net/archives/1578</link>
		<comments>http://mypieceoftheinter.net/archives/1578#comments</comments>
		<pubDate>Wed, 15 Apr 2009 17:02:33 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Demos]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[ControlThink]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[RoomieScript]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[X10]]></category>
		<category><![CDATA[Z-Wave]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/archives/1578</guid>
		<description><![CDATA[I gave a presentation for my ENGE 1104 (Exploration of a Digital Future) class about home automation.&#160; My team members talked about X10, Z-Wave, ControlThink’s SDK, and some project ideas.&#160; I gave a brief overview of a project that I have been working on sporadically for a couple years, Roomie.&#160; In doing so, I for [...]]]></description>
			<content:encoded><![CDATA[<p>I gave a presentation for my ENGE 1104 (Exploration of a Digital Future) class about home automation.&#160; My team members talked about <a href="http://en.wikipedia.org/wiki/X10_(industry_standard)">X10</a>, <a href="http://en.wikipedia.org/wiki/Z-wave">Z-Wave</a>, <a href="http://controlthink.com/zwavesdk.htm">ControlThink’s SDK</a>, and some project ideas.&#160; I gave a brief overview of a project that I have been working on sporadically for a couple years, <a href="http://redirect.somewhatgeeky.com/?token=roomie">Roomie</a>.&#160; In doing so, I for created some documentation, so I figured I’d publish some of it here.&#160; Here is an example of RoomieScript and it’s execution:   <br /><img style="display: inline" title="RoomieScript sample" alt="RoomieScript sample" src="http://mypieceoftheinter.net/wp-content/uploads/2009/04/roomiescript-sample1.png" width="640" height="640" /></p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/1578/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roomie! Voice Recognition Demo</title>
		<link>http://mypieceoftheinter.net/archives/493</link>
		<comments>http://mypieceoftheinter.net/archives/493#comments</comments>
		<pubDate>Mon, 26 May 2008 02:56:23 +0000</pubDate>
		<dc:creator>David McGrath</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Roomie!]]></category>
		<category><![CDATA[Voice Command]]></category>
		<category><![CDATA[Z-Wave]]></category>

		<guid isPermaLink="false">http://mypieceoftheinter.net/?p=493</guid>
		<description><![CDATA[Here is a demo of one of the things a program that I am working on can do:]]></description>
			<content:encoded><![CDATA[<p>Here is a demo of one of the things a program that I am working on can do:</p>
<p><script src="http://flash.revver.com/player/1.0/player.js?mediaId:912480;affiliateId:119657;backColor:#020E82;frontColor:#FFFFFF;gradColor:#436EE6;width:480;height:392;shareUrl:revver;" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://mypieceoftheinter.net/archives/493/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

