Thursday, November 29, 2007
Black Friday Aftermath
Is everyone enjoying their Black Friday goodies? I picked up a "Black Saturday" deal on a 20" Vizio LCD TV. The TV is going into the kitchen. We don't actually have a cable jack in there but we do have Slingbox. We're going to replace our kitchen Audrey with a PC. I'm just waiting for the the D201GLY2 to become more widely available. It's a very low power, micro ATX, passively cooled Celeron based CPU/mobo combo. It'll be perfect for this type of application.
Monday, November 26, 2007
Acronis True Image $19.99 Shipped Free @ Newegg
I use the free version of ATI that comes with Maxtor/Seagate drives. It is a lifesaver and comes in especially handy when I'm building/re-building my HA server which seems to be occurring more frequently right now. The free versions have limited functionality (no incremental backups for example), but the full retail version is a deal for $19.99.
Get it here
Get it here
Thursday, November 15, 2007
Language searching in GMail
Lately, I've been getting a bunch of Ukranian or Russian spam in my GMail account. Apparently, there is now a method of searching your email based on language. In the search box, just put lang:Russian or to make a filter, put that in the Has the words field
Sunday, November 11, 2007
New Toy - GPS Receiver for 700WX
I picked up an IBlue 737 GPS receiver from buy gps now. The receiver is very compact, about the size of a pager and it is very sensitive - it doesn't need to be left on the dash - it works very well in a cup holder or the door handle. It communicates to the 700WX via bluetooth and we use it with Google Maps Mobile and our unlimited data plan. It doesn't have all the extras of a dedicated GPS (like text-to-speech, etc.) - it just tracks your location. However, any place we can Google, we can get turn by turn directions to it from where we are at the moment. Also, since it's so small, there's no large device to tote around or leave in your car baking in 120 degree temps, hoping nobody steals it.
Friday, October 19, 2007
Using VOIP for VR
We haven't been using microphone VR with HAL - just telephone VR - until now. I loaded up Teamspeak on one of our laptops. Teamspeak is software that gamers use to talk to each other across a network. I installed the Teamspeak server on the HA server and the client on both the laptop and the server. This allows us to talk VOIP style from the laptop to the HA server. I added a USB SoundBlaster to the HA server and set the HA Teamspeak client to output to the SoundBlaster. The lineout from the SoundBlaster got connected to the Mic input of the HA server - that input is used by HAL for its microphone VR. Now, if we talk into the laptop microphone, the audio gets sent across the network to the HA server to HAL's VR engine. This client can be added to all pcs around the house so there's no need for distributed microphones.
Friday, September 21, 2007
More AJAX and all that good stuff
For the past month, I've been working on a UI based on the house floorplan. It's integrating all the stuff I've learned with AJAX, PHP and MySQL to show the state of the house at a glance. I'm using DHTML to create layers of stuff that can be made visible (like lighting control) and then hidden when not needed. That way it's not cluttered all the time. Right now, it reflects the following info: motion in each room and how long it's been since there was motion, temperatures and if they're rising or falling, lighting control and status, which cars are home, if mail was delivered, weather/air quality/uv, audio controls and what's playing in each zone, Google calendar items for today, the lottery ;), surveillance camera popups and the past 6 events recorded, security system status, server cpu & drive temps and a little icon that shows that our craigslist bot found something we're looking for. It's a long list but I still want to add MORE while keeping it nice and neat looking.
I'd like to post a video of it in operation at some point, but I'm very pleased with it so far. I wouldn't mind doing this kind of coding for a job. I'm getting tired of designing chips. This seems like a lot more fun to me.
I'd like to post a video of it in operation at some point, but I'm very pleased with it so far. I wouldn't mind doing this kind of coding for a job. I'm getting tired of designing chips. This seems like a lot more fun to me.
Sunday, August 19, 2007
AJAX, PHP & MySQL
After playing around with writing some Google Gadgets, I got to see how easy it is to create pages with AJAX. As a result, I spent the last several weeks adding MySQL to our setup. All status from devices in starCOMUltra are mirrored to a MySQL database. xAP Floorplan scripts have been changed to use MySQL for checking status instead of querying the starCOMUltra COM object directly. It adds an extra layer, but this should make the system more robust as MySQL is more capable to scale as the number of queries grows. It will also allow other apps to keep functioning without erroring out (albeit with stale data) when I take down sCU to do some maintenance.
One thing that can make the number of queries grow is building web pages with AJAX. I've been re-writing our house floorplan control page to present the state of the house updated every 10-15 seconds. Since it pulls data from MySQL instead of the sCU COM object, it leaves sCU to respond to more immediate needs like turning on lights, etc. Using AJAX, I'm reducing the load on the web server since the page no longer does an HTTP refresh. The screen is updated seamlessly since the page doesn't reload entirely and that improves the user experience. I've also converted our TiVo control pages to AJAX so they no longer have the annoying refresh after clicking a button.
This required a move of many pages to Apache instead of IIS, so I'm running both servers. IIS serves ASP and Apache serves AJAX with PHP. This works out well because it offloads IIS which isn't as robust a server.
Overall, this is working out to be a great improvement for our system making it more stable and robust. It's also been a great opportunity to learn about and use AJAX, PHP and MySQL in a real application - much better than learning from canned demos.
One thing that can make the number of queries grow is building web pages with AJAX. I've been re-writing our house floorplan control page to present the state of the house updated every 10-15 seconds. Since it pulls data from MySQL instead of the sCU COM object, it leaves sCU to respond to more immediate needs like turning on lights, etc. Using AJAX, I'm reducing the load on the web server since the page no longer does an HTTP refresh. The screen is updated seamlessly since the page doesn't reload entirely and that improves the user experience. I've also converted our TiVo control pages to AJAX so they no longer have the annoying refresh after clicking a button.
This required a move of many pages to Apache instead of IIS, so I'm running both servers. IIS serves ASP and Apache serves AJAX with PHP. This works out well because it offloads IIS which isn't as robust a server.
Overall, this is working out to be a great improvement for our system making it more stable and robust. It's also been a great opportunity to learn about and use AJAX, PHP and MySQL in a real application - much better than learning from canned demos.
Friday, July 20, 2007
SlimServer Google Gadget Control Video
Sorry no audio on the video. The Google Sidebar is on the right side and I show how it can get the status for various zones in the house. Then we switch to the Guest Room zone, which is already playing and shown in the SlimServer screen in the background (to show the communication between the toolbar & SlimServer). The track is skipped using the sidebar and the changes are eventually reflected on the SlimServer screen when the browser refreshes. Then from the SlimServer screen, the track is skipped and the sidebar shows the updated status. Next, we go back to the previous track using the sidebar gadget.
Then the gadget is popped out from the toolbar and placed on the desktop. The volume is adjusted and reflected when the browser refreshes. Tracks are skipped and more volume adjustments are done before the gadget is popped back into the toolbar.
You can see the lag between controlling via the toolbar and the browser showing updated status because it has to wait for the refresh interval. There's a lot going on behind the scenes. When a button is pressed on the toolbar, an xPL message is sent out by SlimServer with the new track information. xAP Floorplan generates an XML file from the track information in the xPL message. Then the XML file is read using getxmlhttprequest in the gadget, and the status is updated almost immediately.
Right now, it just does basic control, volume and power for SlimServer and MediaNet. Below this media panel on the toolbar are various temperatures pulled from StarCOMUltra via COM. The next gadget lower is a simple lighting control and status, also pulled from StarCOMUltra.
Then the gadget is popped out from the toolbar and placed on the desktop. The volume is adjusted and reflected when the browser refreshes. Tracks are skipped and more volume adjustments are done before the gadget is popped back into the toolbar.
You can see the lag between controlling via the toolbar and the browser showing updated status because it has to wait for the refresh interval. There's a lot going on behind the scenes. When a button is pressed on the toolbar, an xPL message is sent out by SlimServer with the new track information. xAP Floorplan generates an XML file from the track information in the xPL message. Then the XML file is read using getxmlhttprequest in the gadget, and the status is updated almost immediately.
Right now, it just does basic control, volume and power for SlimServer and MediaNet. Below this media panel on the toolbar are various temperatures pulled from StarCOMUltra via COM. The next gadget lower is a simple lighting control and status, also pulled from StarCOMUltra.
Tuesday, July 17, 2007
More Google Desktop Work
I've been adding more automation gadgets to Google Desktop. I've now tied it to starCOMUltra using the COM interface so I can control virtually anything in my system. I'm working on media control and I'll be posting up an updated screen shot soon. It's pretty much like writing ASP pages with a little XML thrown around.
I also picked up a Philips DVP-5982 1080P DVD player from Costco for $60. It's been sitting around while I play around with Desktop stuff.
I also picked up a Philips DVP-5982 1080P DVD player from Costco for $60. It's been sitting around while I play around with Desktop stuff.
Saturday, July 14, 2007
Using Google Desktop Sidebar for Automation
I just wrote a little Google Gadget to create a small control panel on the Google Desktop toolbar. This gadget sends xPL x10.basic messages to control X10 devices. It requires the DLLs for sending xPL commands via ASP - xpl_asp.dll and xqutil.dll - which are bundled in the gadget. Screenshot showing the gadget on the top of the toolbar.
The .gg file format is just a zipfile. Open it up and copy the 2 DLLs to c:\windows\system32. Register the xPL DLL by opening a command prompt and typing "regsvr32 c:\windows\system32\xpl_asp.dll"
If you already have Google Desktop installed, double click xPL.gg to install it. To edit the gadget and put in your own devices, follow these directions. It's probably a better idea to make the Gadget load the device list from an xml file instead, but I leave that as an exercise for you :)
You can use pretty much any ActiveXObject with Google Desktop. I have another example where I instantiated the starCOMUltra COM server.
The .gg file format is just a zipfile. Open it up and copy the 2 DLLs to c:\windows\system32. Register the xPL DLL by opening a command prompt and typing "regsvr32 c:\windows\system32\xpl_asp.dll"
If you already have Google Desktop installed, double click xPL.gg to install it. To edit the gadget and put in your own devices, follow these directions. It's probably a better idea to make the Gadget load the device list from an xml file instead, but I leave that as an exercise for you :)
You can use pretty much any ActiveXObject with Google Desktop. I have another example where I instantiated the starCOMUltra COM server.
Wednesday, July 11, 2007
New Toy - SimpleTech NAS
Just received my SimpleTech 500GB NAS. Rather than do a file server and have a PC running all the time, I decided to get one of these. It comes with 2 USB ports so I can add additional storage via external USB drives as I need space. One thing I wanted was the ability to spin down the drive when not in use. I read a couple places that said it does this, I just need to enable it. It's only 100 Mbit but then so's my home network.
The answering machine continues to perform what HAL is unable to. More shotgun fixes are being offered (try this, try that, try ...), but no diagnosis is being done. In the meantime, I'm testing out Grand Central, which makes HAL voicemail seem almost like my answering machine...
The answering machine continues to perform what HAL is unable to. More shotgun fixes are being offered (try this, try that, try ...), but no diagnosis is being done. In the meantime, I'm testing out Grand Central, which makes HAL voicemail seem almost like my answering machine...
Subscribe to:
Posts (Atom)