Alexa Controlled Motorized Drawer

Now that I’ve integrated Alexa into my custom Arduino based RV control system, I’ve been looking for unusual ways to leverage motors. An opportunity recently presented itself. I use a Varidesk standing desk at work, and I really like it. So I’ve been thinking about how to setup a standing desk in my RV.

My computer is currently setup on a booth table that converts to a bed. So my initial thought was to replace the solid pedestal with some sort of motorized post. This would be great, but I was unable to find any motorized pedestals that can raise and lower far enough. Too bad, because having Alexa “make the bed” would be pretty cool.

Hand drawn design for piano cabinet

Piano cabinet sketch

So upon further thought, I decided to build a stand-up desk area on the wall near the booth where I have my piano setup. Measuring the height of the stand-up desk that I use at work, I realized that I could build a shelf above the piano, and make a drawer for the piano to slide out from under it when I’m playing piano.

PianoCabinet1 PianoCabinet2

So work is underway on the cabinet.

And then it occurred to me. If this isn’t an opportunity for gratuitous use of Alexa controlled motors, then I don’t know what is! So my plan at this point is to use some very low cost stepper motors to slide the piano drawer in or out using voice commands. Can you say “Alexa, ask My RV to hand me that piano”.

Why I’m Firing TimeWarner Cable TV

I’ve been pretty dissatisfied with TimeWarner cable for a long time. Some of this stems from having run across several lousy contractors/technicians. But my more recent complaints include:

  1. A very high number of bugs in their DVR programming.
    It seems that each DVR code update fixes one or two bugs, but always adds a few new bugs. They evidently do not test their code before delivering it to my DVR. I say this because I typically find bugs within minutes of using the updated code. I can’t recall a time when there weren’t bugs in my DVR, even after exchanging units, trying different models, etc. As the director of a large group of programmers, I know that I shouldn’t be discovering their bugs for them. That’s what Software Testing and QA is all about.
  2. Dishonest technical support
    They appear to have a standard response of “Oh, we fixed something in our back-end (or database).” I’ve heard this multiple times in situations where it was pretty clear to me that this was a stalling tactic, or an item on their support check-list. For example, on New Year’s day I was unable to watch video-on-demand, including trailers. I suspect that a lot of folks were home that day, and the high volume of on-demand streaming overloaded their back-end systems. I remember thinking at the time “this will be resolved tomorrow when everyone goes back to work”. Well, a few days later I started getting recorded phone calls informing me that “they had done some investigating and fixed some settings in their database, would I please retry the problem to see if it had been fixed.” Sheesh. Liars.
  3. Automated, nagging phone calls. They’re using computer generated phone calls to repeatedly call me day and night. I scheduled a technician to come out as a result of the New Years outage, but I’ve also been having low signal problems (intermittent pixellation). Now their computer is calling me with a recorded message lying to me about having “fixed the problem”, and would I please confirm and call them back at some stated phone number, otherwise my technician appointment might be cancelled. The message is fairly short, and the phone number stated twice before hanging up. WTF? How about giving me a chance to write the number down? To make matters worse, their computer wouldn’t leave a message when I didn’t answer, so I couldn’t even get the number from replaying their message. Does anybody at TimeWarner every try using their own service?

On the one hand, they provide the fastest internet service in my area. The RV park where my RV is currently parked provides cable hookups at the site, so TimeWarner is conveniently available to me when not traveling. And it’s pretty time consuming and inconvenient to switch provides (eg. cable to Dish or DirecTV). However, I feel like I’m not being a responsible consumer by continuing to subscribe to such an unethical, incompetent company.

Most of the people I know switched to Dish, DirecTV, or U-Verse long ago. Since I live in an RV, my options are somewhat limited. I don’t have the option of U-Verse, and until recently the mobile antennas available for Dish and DirecTV only support 1 channel viewing/recording. This has changed recently though, so I’ll be investigating my options and making a switch to Dish or DirecTV.

As inconvenient and expensive as it will be to switch, I refuse to continue to support a company that treats its customers like this.

TimeWarner, your monopoly on cable service is not enough to keep me as a customer. Get your act together or go out of business.

Follow up note 1/15/14

We had Dish installed last week and have been delighted. I’m sorry that I waited so long to make the switch. Primetime Anytime is awesome, and the responsiveness of the box to the remote is astounding. Installation was a breeze. We called on Saturday, and they installed it on Monday morning!

Not much blogging activity during 2013

2013 is winding down. I’ve been fairly busy blogging and writing technical stuff over on iOSUnitTesting.com, finishing up a new lynda.com course, and managing the best group of iOS developers on the planet. I haven’t posted here since last March.

I’m going to try to start doing more blogging here, keeping it more personal. Look for my iOS unit testing musing and reporting over at my iOS Unit Testing website. I’m going to try to keep this website more personal, talking about vacations, hobbies, family, travels, and travails.


Our First RV Headache

After the heavy rains earlier this week, we’ve had to really check out the RV for leaks. We didn’t find any major leaks. However, we did find evidence of a significant amount of old water damage. When we purchased the RV we were told that there had been a leak along the front, but that it had been fixed. It turns out that there had been a significant amount of water damage, rot, and mold which had not been fixed.

Rotting floor

So we rolled up our sleeves and got to work this weekend.

We had to completely dismantle the closet doors and shelves to get at the rear panels. Upon pulling up the carpet we realized that we’d need to replace the flooring, at least for the back part.

Rotting wood in closet

Rotting wood behind closet rear wall

The framework behind the rear wall panelling was rotten, so we had to replace it.

We looked into using teak, but this appeared cost prohibitive. Instead we’ve opted to go with an inexpensive hardwood and paint it with Kilz.

It appears that the closet was built before the front end fiberglass end cap was installed. We really didn’t want to remove any outside panels, so we were delighted to find that we could reach everything containing rot from inside. Thank you Jesus.

I’ll post more pictures as we go.

Adding Website Workshops Forum

I’m looking into selection of a forum (bulletin board) for use with Build a Website Workshops as well as for my WordPress plugin. For Workshops I want something that integrates nicely with Joomla! but I may choose something different for my WordPress plugins since it needs to integrate nicely with WordPress 🙂
At first glance, Joo!BB looks attractive. However, forum.joomla.org uses phpBB. I’m guessing that this might be because they selected phpBB long ago, and it doesn’t make sense to switch even if there are better options now.
I’m going to try installing joo!BB on my BuildAWebsiteWorkshops.com site and see how it works.

Installing Win 7 in Boot Camp

This morning I replaced my Macbook Pro’s internal optical drive. Back when it went out, I opted to be cheap and use an external drive at about half the cost of replacing the internal drive. Since then I had tried to install Windows 7 into Boot Camp using the external drive, and kept running into problems. I had attributed the problems to the optical drive being external. Now with the fixed internal drive I gave it another try.

I’ve been running Windows 7 under Parallels for awhile now. Parallels allows installation using the raw .iso file, so this was easy.

I’ve also upgraded my Macbook Pro’s internal hard disk to 500G, so I thought I’d recreate my boot camp partition since I have plenty of space now.

It turns out that the problems that I’ve been having were not caused by the external drive, but by the .iso format used by MS (this is an MSDN image). So after searching around a bit, I came across various instructions for fixing it. All of the instructions I found however required a Windows system, which I currently do not have.

I have a Parallels Windows simulator on my Mac, so I considered running the instructions in Parallels. I also found some blogs commenting that this approach had worked. However, while searching this it occurred to me that if running things within Parallels worked ok, then why did I need to bother installing boot camp, which is really quite inconvenient anyways.

The only real reason that I have for wanting to run boot camp is to get better performance for running my C&C style games. So I decided to reinstall them into an XP Parallels session and see how the performance compared to running the Mac version of the games (which isn’t very good). The results were quite good. I can run the PC version of C&C3 KR full screen at 1680 x 1050 with medium rendering settings without audio hiccups or obvious video glitches.

So I deleted my boot camp partition and will simply use Parallels 5 for running Windows XP and Windows 7. I also have a Ubuntu session. I’m a happy camper.

Back from the Holidays

The past few weeks I’ve been studying and working with WordPress and Joomla!

I’ve brought up our church and band websites on the latest WordPress, and am somewhat unhappy with the user experience that is presented to other authors (eg. my wife). This prompted me to take a look at Joomla! Lynda.com provides a tutorial on it, so I went through it. There is a steeper learning curve on Joomla! but it appears to be much better suited to supporting multiple, less skilled authors. There doesn’t appear to be as much information available (yet) on how to create and modify templates and plugins, but I’m diving in anyways.

I going to convert my BuildAChurchWebsite website to Joomla! and see how that works.

iPhone Development

I’m going to use this time between jobs to learn how to program the iPhone. Since I’m already familiar with Cocoa development, I believe it is going to be fairly easy.

On Tuesday I picked up a copy of the “iPhone Application Development for Dummies” book by Neal Goldstein. I’m already on chapter 11. This book is great, especially for someone like me that already has some Cocoa experience. The coding information is minimal which would probably bother me if I wasn’t already familiar with Cocoa. But it is perfect in my case. It gets me right to what I need to know.

There are a couple example applications which are real applications that the author has submitted to the App Store. I’m going to customize the first for use on my own iPhone by including my picture in it, and making some other cosmetic changes.

The iPhone development environment is amazing. This reminds me of how things were when Microsoft first released Visual Basic. A big difference is that although simple applications can be very easily and quickly created and deployed (like VB) there is a professional strength language beneath it (Objective-C vs. Basic) which will allow full blown application development.

I am really loving this! Thank you God for giving me the time off to go learn this.

Diving into Planning Center Online

First Impressions

My first impression of Planning Center Online (PCO) was “OMG! This program does everything that I’ve wanted to do with my custom band website”. So I registered for a free account to give it a spin.

Unfortunately the free account does not allow uploading chord sheets or MP3 files. So I upgraded to a 30 day trial of the $14.95/mo ‘lite’ account.

Creating a Lineup

At this point I’m a bit stumped. What I wanted to do was create a lineup for next Sunday’s service and enter the 6 songs that we will be doing. I entered the list of band members no problem. However it became confusing when I tried to create a lineup.

First I created a new ‘Service’ which I called ‘Sunday Service’. Then I selected ‘create a new plan’. This displayed a dialog with a dropdown list that included only ‘No Template’. There is also a ‘Quantity’ dropdown. I’m not sure what this is for. I guess you can create multiple, duplicate plans here.

No Template Plan

Ok, so I guess that it is ok to create a plan from ‘No Template’, so I click on ‘accept’ to create a plan from ‘No Template’.

Step 1: Add Times

This displays what appears to be a very helpful prompt which states “Step 1: Add Times…” with an arrow pointing upwards to the left to a small blue dot with a triangle in it. I would guess that this means that I should click on the blue dot. However, doing so only causes the triangle to alternately point to the right or downwards. So with confusion setting in, I read the message all the way to the end where there is a line of smaller text which says “Hint: Do you like keyboard-shortcuts? If so hit Ctrl-Alt-T to add a time!”. So I hit Ctrl+Alt+T and nothing happens. I’m wondering now if this isn’t working because I’m on a Macbook Pro. In any case, I’m stumped at this step so I’ll go over to help.


I click on the ‘help’ link in the upper right. This gets me a list showing ‘Tutorial Videos’, ‘Support Forums’, ‘E-Mail Support’, or ‘Phone Support’.
I’ve already watched all of the videos, although I’ll guess that my question might be answered in one of them but I’ve forgotten or didn’t notice this particular step. But the videos are pretty long, so I think I’ll try the forum to see if I can get a quick answer to ‘Add Times”.

Online Forum

After clicking on ‘Support Forums’ I get a page which says ‘There are no current topics in this discussion group’. This is a bit confusing, but I ignore it and enter my ‘Add Times’ search in the ‘Search this group’ textbox. This gets me a couple of pages of hits, none of which appear to address my question. I’m guessing that it searched for the individual occurrence of the words “add” and “times”. So I retry my search, this time putting “Add Times” in double quotes. This yields a smaller list of 9 items. One of these items is labeled ‘Keyboard shortcuts’ where I learn that “If you are on a mac, the Alt key is the Option key…” so I’m guessing that Alt-Option-T is supposed to work on my MBP.
I check out another entry labeled ‘same service, two times’ and I get the answer that I need to ‘Just click add a time and enter …’. So now I go back and look at the dialog, and sure enough, further over in the left column is a ‘Times’ box with ‘+ add a time’. This allows me to enter my lineup date and time.

Adding A Time

So now I select my date for next Sunday from a helpful calendar widget, and enter my times for 11:00 and 12:00. I make the common mistake of leaving 12:00 as ‘am’. I get a helpful message informing me that my ‘Starts at must be before ending time’. So I change 12:00am to 12:00pm.

Step 2: Adding Items

Now I get the helpful message informing me that step 2 is to add items to the plan, and gives me the keyboard shortcuts. I’m thinking that I’ll need a header for each song category (Intro, Congregationals, etc). Once again the keyboard shortcuts don’t appear to work for me (Ctrl+Option+H), but hovering over either ‘add an item’ link displays a list of items to add, so I elect to add a header and call it ‘Intro’, and then select ‘add an item’ and select ‘song’ to enter the Intro song.

Add A Song

The Add A Song dialog that is displayed is blank. This makes sense since I haven’t added any songs. So I click on ‘add a song’ and I get a ‘New Song’ window. Our first song is ‘Not to Us’ by Chris Tomlin, so I enter the song title into the ‘CCLI # or Title:’ field. After typing just a few characters, I’m presented with a list of songs matching the characters typed so far. Very cool. I love Ajax. By the time I get to ‘Not To’ the only option is the song that I want, so I stop and click on it. This fills in the CCLI number for me, and lists a single arrangement in the key of B. I click ‘Save’ and nothing happens. So I click on the ‘plans’ tab and it returns me to the plan I’m working on.
There are several icons that appear to the right of the song name whenever I hover anywhere over the line.
The first icons looks like a cartoon balloon. There’s no flyover help, so I click it to see what it does. This displays a window ‘Not To Us Comments’. There is an option to subscribe to comments about this item, or this plan, or this service. Very nice. So I elect to subscribe to all comments for the service type, and enter a simple comment. This creates the comment, and a new field to add a new comment forum-style. Upon closing the window I see that the balloon icon now has a number 1 in it indicating that there is 1 comment regarding this song. Extra very nice.
The 2nd icon is a pencil, and as one would expect this displays an edit window. Lots of stuff here, a little confusing. There’s a place to link media, select arrangements, and add various notes. I’m going to leave this alone, and cancel back.
The 3rd icon is a red X which I can guess is to delete the song from the lineup. I try this, and sure enough I get a confirmation window. I cancel this.
The 4th icon is a musical note. Clicking this takes me to the ‘songs’ tab and the dialog which I saw when I originally added the song.
I notice now that the comment ballon is displayed now even without hovering over the line. This is another nice touch.

At this point I’m quite impressed with PCO, having worked through the few stumbling points. I continue to add the other songs in similar fashion as above. Now that I’ve done one already, the other 5 songs enter in under a couple minutes total.

Adding MP3 Files

This turns out to be fairly simple. Files can either be uploaded to the PCO site
or a link established from PCO to a separate site. Since I already have a lot of
MP3 files on my band site, I’ll establish a link to them from within PCO.

The only tricky aspect to this is the fact that an MP3 can be associated with the song itself or with a particular arrangement. This is a nice feature, but does make it a bit less simple.

Adding Chord Sheets

PCO has a very nice facility for adding chord sheets.
Standard chord sheet text can be cut/pasted into PCO, and PCO will
intelligently parse them to recognize the chord lines. PCO will then allow
transposing them.

iPhone App

PCO has a free iPhone application which makes it easy to view the current
week’s lineup. I was a comment in the App Store complaining that the MP3
files couldn’t be played, but it works for me, so maybe that is an outdated
comment, or maybe it depends on how the MP3 file was posted/linked.
PCO does have a switch to disable file downloads, and allow only streaming.
So maybe that was the cause in that particular case.


I love it. I’m going to switch over to using PCO for our band’s weekly
lineups. I’ll probably revamp the existing band website to provide a link
to PCO, as well as provide the MP3 files which PCO will link to.