My current development rig includes my Surface Book and two external monitors and it always bugged me that I couldn’t setup different wallpapers on each monitor. So I did a little research and found out, that while it is not obvious, Microsoft did provide a way to make it happen without the need of any third party software.
Step 1: Multi-select (ctrl-click) the photos you want to use and right click one of them and select “Set as Desktop Background.” Your pictures should now be distributed across you monitors,
Step 2: Open the Run command by right clicking the Start Icon and selecting Run. Then type “control /name Microsoft.Personalization /page pageWallpaper” in the Run dialog and click OK. This is a hidden page that cannot be accessed from the control panel.
Step 3: Click the Clear All button to deselect all pictures (this prevents windows from cycling through the select pictures). Then you can right click on each picture and assign it to the monitor of your choice.
Since I stated my foray back into home automation, I have been looking for a good whole house audio solution. For a long time I have been wanting the holy grail of whole house audio, a system that will play what I want, where I want, when I want. There are a few different approaches to this problem. First, and the one I has always lusted after, is a dedicated multi-source/multi-output controller. This type of system lets you connect a variety of inputs and then through some sort of remote control, usually an in wall keypad, and then pick which audio source goes to which sets of speakers. This system has been around for many years and is still the choice for most high end home automations, but there are some drawbacks as well. First the system requires the purchase of a main controller and keypads for every location from where you want to control the system. You also need to install speakers and speaker wire to all of the rooms where you want to play music. While I considered a system like this, I ultimately decided to go with a newer option that has a lower barrier to entry. I decided to go with wireless speakers, specifically Sonos speakers. The Sonos speakers let me send various online music sources to one or more speakers as well as letting me use local music files as a source. I chose Sonos because of their reputation for great sounding speakers and the fact that they have been around for a while and there are quite a bit of information available on how to hack them. I went with two of their cheapest speakers to start with, the PLAY 1 series, and they sound impressive for their size. I compared them against my much more expensive Focal bookshelf speakers and they not only held their own, but I feel they surpassed them on certain musical passages. Sync’ing the music between the speakers is seamless and I can detect no delay. The integration to my home automation system has been hit and miss. The basics are all there and work great. I can control the playback from my harmony remote, I can trigger sound files from my SmartThings hub, or I can schedule them to come on or go off at a certain time. The only issue I have with the Sonos speaker system is that there is currently not a way to send audio from an unsupported audio source. I really want to be able to send my audiobook to my speakers, but there is no official way to do it without buying more expensive equipment from Sonos. They provide a line in on their $500 PLAY 5 speaker, or I can get their $300 hub that also has a line-in. I don’t have the need for either at the moment and feel like there should be a way to make this happen. I am playing around with the idea of making a PC act as an Apple AirPlay target that then streams the input as HTTP Live stream which would allow me to subscribe to the stream as a radio station in the Sonos software. I hope to post some follow up articles that document my solution, but until them I guess I had better get back to work on figuring everything out.
Always striving for perfection...sounds like a good thing...right? There may be times when the struggle to achieve perfection is good, but I find that most of the time it is a hindrance in my career. Most agree that you often learn the most from your mistakes, but the very nature of a perfectionist is that they fear making mistakes. Don't get me wrong, I make plenty of mistakes, but I find it hard to willingly go down a path that I am not sure is the correct one. I must make concerted efforts to not get stuck in endless loops of planning, designing and gold plating my software. My biggest struggle on a new project is getting out of the starting gate. My perfectionist nature wants to have every aspect of the app defined and understood to the nth degree. I don't want to start on something because I know as soon as I do, I will see the problems and have to re-work my beautiful code over and over until it is a mass of unintelligible spaghetti code that makes me want to cry. The easiest way for me to get past this is to convince myself that I am first going to write a prototype that I will throw away when I understand what is needed. Even though I know that there is a very slim chance that I will ever just toss aside the code and start from scratch, it is a metal release that gives me the freedom to make the mistakes I need and to start cranking out code without the mental handcuffs of perfectionism. Following this pattern has forced me to learn to refactor intelligently and taught me the things that are difficult to refactor and should be considered before jumping in. Cleanly refactoring is a separate skill set and will take time to learn to do well, but it is a valuable one and well worth the time spent. Don't let a desire for perfection stop you from trying, for an imperfect thing is almost always better than a perfect nothing.
I have been into home automation for the past 20 years, but it has always been the realm of the tolerant, adventurous, and highly geeky. I had taken a break from actively following the progress of the industry for the last few years, but I recently felt the home automation madness returning, so I pulled out my wallet and took the plunge once again. What I have discovered surprised me, home automation is going main stream. I found that most of the products I wanted to play with were available at my local Best Buy and that there was a very impressive selection of options. The first thing that I wanted to try automating was the lighting in my house. In the past I had looked at what I needed to make a reliable easy to use lighting control system, and it was going to be well outside of my budget to implement a Creston or Lutron system. I was aware of the Philips Hue system and thought that it might be a viable solution for what I was wanting, and sure enough it looked like an amazing solution to my simple needs. I was looking for a lighting system that would not only let me automate turning on/off and dimming, but I loved the idea of being able to change the colors to fit my mood. As I continued my research into the Hue system, I discovered LIFX, an alternative that seemed to render colors better, so that is the system the I have started with. Each light bulb is an IoT device that connects to the Internet and is controllable over Wi-Fi. The bulbs are impressive and the flexibility they give me makes me a happy camper. I have just setup my living room so far, but I already notice how they make my life just a little easier, I don’t have to go around to each lamp and turn it on or off and I can schedule them to turn off based on time or some activity. It is a little thing, but its all the little things that make or break how a day goes. Each time I see all my lights come on because it is starting to get dark outside and I don’t have to lift a finger to light the room, I smile and and think about how we live in an amazing age and get inspired to do even more. It is easy to take things for granted and I am sure that the newness will wear off, but for now I am enjoying my first foray back into home automation. I am sure there are many more “investments” to be made in this area so stay tuned.
I had a strange SQL server connection issue the other day, and I thought I would document it. I started working at a new client's site and needed to connect to their SQL server. At first everything seemed to work fine, but after I left the connection idle for a while I would lose the connection and could only reconnect if I rebooted my machine. After struggling with the problem for a couple of days I discovered I could reset my network adapter a few times and be able to reconnect to the server. After getting tired of jumping through these hoops just to get some work done, I dove in deeper and finally discovered that the SQL server was resolving to a different IP address when it was having problems. I put an entry for the SQL server in my HOSTS file and BAM everything was working. I reported this to the client's IT department and sure enough there was a problem with their DNS server. So just keep the DNS in mind if you are ever having intermittent connectivity problems.