All things considered, I’ve had a pretty easy life. Both of my parents were in the military when I was born, but I’ve moved around very little. I was born in Virginia Beach, but I moved to Northern Virginia when I was a baby. When I was 4 I moved to Florida where my mom retired to be a full time mother. About two years later my family moved back to where we were living before, and the next time I moved was when I went to Virginia Tech to pursue a computer science degree. I didn’t realized it until later, but I had unwittingly followed in my parent’s footsteps, both of whom had received degrees in computer science. I noticed that I was attracted to men when I was 12 or 13, but I didn’t come out to even myself until college… there’s a separate story of shame and denial there that is maybe more another time. I came out to my parents when I was 19, and through trial and error and being critical of myself and what is good for me, I had a handful of boyfriends over my four years in college, each of whom was a better match than the previous. Now I am a graduate who has a job that he loves and someone whom he will marry one day. I’ve had a lot of advantages in my life, but I have used them well. I am in the process of buying from my parents, the house that I live in now with my three roommates, plus my partner, and we are a family.
I’ve been working on Roomie all day, fixing up things here and there. Here’s another silly demo. It uses the WebHook.SendScript and Computer.Speak commands to simulate a conversation between my laptop and my TV.
Silly. Here’s a screenshot of the Roomie web interface displaying the script. I did a lot of refactoring today, and I am so close to being able to un-XMLify RoomieScript and make it look like a real programming language.
Available at http://roomiebot.com, the new Roomie website works! 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.
I spend most of my time on the Devices page, which lists all of the devices in all home automation networks on my account. (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?)
Anyway, the UI all works, and dynamically updates when a devices state changes. Cool!
As stated in my previous post about Roomie, I’ve been using a lot of brain juice to rewrite Roomie’s website. I wrote the original website in ASP.NET with Web Forms, which was pretty standard for the time. Although technology like ASP.NET MVC and the Entity Framework existed in some form, they weren’t even on my radar. So after some coding and hacking and pushing through unfamiliar problems, I eventually got a workable website. (This website, though not the final version, is pictured in this post.)
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. Best of all, I can locally debug everything which means that I can get quicker feedback on code changes and (shrug?) even develop offline. Below I have a simple example pictured. 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.
Woooh! I have not blogged about Roomie in a looong time! 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. I started out using ASP.NET, C#, and Web Forms. Web Forms made it really easy for me to do web development using my experience programming desktop applications with WinForms. Last year I reached the limits of what WinForms would offer, and I needed something more powerful. I discovered ASP.NET MVC, which was totally new and strange and awesome. But woes, the darn thing updates all the time! That’s great, except that I was learning MVC2 while MVC3 was in development.