Michael Silverman documenting innovation at work


Interfacing with remote controlled outlets


In my apartment all of my lights are controlled via an outlet. These outlets are not connected to a light switch. As a first step towards convenience I purchased an EtekCity wireless outlet and switch. Every Friday these lights are put on a timer until Saturday night. That meant removing the existing outlet adapter and putting on one of the lovely cheap timers for the day. The timers only have a 24 hour cycle so it did not make sense to leave them on for the rest of the week. Within the timer there is also an audible mechanical clicking. There had to be a better solution.

Of course! I already have a wireless light switch. Why not somehow interface with it? A quick search on a hackaday lead me to others who have done similar, such as this and this. It was possible and not too hard.


Sending Text Messages with Perl and Google Voice

It is much easier to send a SMS text message with Perl than you might think. You wouldn't know unless you searched but there is a module out there called Google::Voice. The module allows you to use your Google Voice account from Perl. It's not installed by default with Perl so you will need to install it. The easiest way to do this would be to type

perl -MCPAN -e "install Google::Voice"

This will install Google::Voice and all of it's dependencies.

Now to write a text message is so simple!

use Google::Voice;

#Google login info
my $username    = 'myuser@host.com';
my $password    = "mypasword";

#text message info
my $send_number = "14443216789";
my $send_text   = "I'm a text message!";

#Do Not Edit Below Here!

#create Google::Voice object and login
my $gv_obj = Google::Voice->new->login($username, $password);

#send the text!
$gv_obj->send_sms($send_number => $send_text);

Now say you want to send a text message by calling the script from outside Perl.


Convert PDF to FDX: PDF to Final Draft

For the movie writers out there I created a program to convert a Final Draft PDF back into a Final Draft editable file. I'm now determining the best way to distribute the software. It will be at trial for the first 500 lines and a small fee for the whole script with unlimited usage. If you need a script converted immediately email me and we can work something out.

Update 03/18/2013: I have received great interest in this software. This software has yet to be completed. It is not yet in a format that can be distributed and the accuracy is not 100%. As such, the only option for conversion is emailing me the PDF and I will send you back an FDX. I know that is something many are not comfortable with but that is the best I can do at the moment. Compensation is not necessary though if you feel generous a donation would be greatly appreciated. If you are interested use the link above to contact me

Filed under: Software 4 Comments

Put Your PC Monitor to Sleep With an iPhone


When I go to sleep at night I like it dark. I also keep my computer on 24/7. In the past when going to sleep I would hit the power switch on my monitor. Or more often than not I would leave it on. Now when I'm in bed I click an icon on my iPhone and the monitor turns off. You can have this up and running in 10 minutes.

For this to work, your phone must be wifi enabled and connected to the same network as your PC. I use an iPhone in this example but any phone able to use wifi will work.

Here's what you need:

  • NirCmd: This command line utility is used to put the monitor into sleep. Download - Website
  • QuickPHP: You need to run a web server that supports PHP on your computer. Any server will work. I chose this one because it's lightweight and quick and easy to setup. QuickPHP- Website
  • PHP Source Code: Download
  1. After downloading NirCmd, unzip it and place nircmdc.exe in your system32 directory, i.e. C:\Windows\System32\. Note: Placing an executable in system32 directory is great because then you can access the files from any directory within command line, no need to find the directory first.
  2. Create two new folders. One for the PHP Server and one for your web files. I will use the following directories: C:\PHPServer and C:\PHP
  3. Download QuickPHP and unzip. This program will not install, you must place the program files somewhere. I moved them to C:\PHPServer for easy access.
  4. Download the source code and place it in C:\PHP.
  5. Go to the QuickPHP directory and run QuickPHP.exe - Change the "Root" folder to whatever you choose above as the web file directory (C:\PHP). Note the server port, default 5723.  Hit Start.
  6. For the next step you need to know your local IP address. To get this go to the start menu. Type in "Run" in the search bar and hit enter or simply click the run icon. Where it says "open" type in "cmd" - You now have a command prompt open. You should see something like C:\... type in "ipconfig" - Now look for your the number labeled IPv4 address. It will likely start with 192.168 - This is the number you will use in YOU_IP in the next step.
  7. Get your iPhone and open up Safari. In the address bar, type in http://YOUR_IP:5723 - i.e.
  8. Click the + sign and select "Add to Home Screen"
  9. Want to turn it off? Click:

There are a few ways this could be modified to better suit you: Modify the PHP code to only accept certain IP addresses. The PHP code is very simple and does not protect you from other people on your network turning your monitor off. That is why its useful to use a non-standard port and have a firewall on your network blocking outside traffic. - Alternatively, open a port on your firewall to allow outbound connections. Then use your WAN IP (www.whatismyip.com) to connect to the computer. This removes the need for the phone to be connected to wireless. - Change the filename to blah.php. It would prevent others from turning the monitor off because you then have to access http://YOU_IP:5723/blah.php

Filed under: Software 15 Comments

How To Create a New Device in EAGLE


As you can see in my previous post I want to build a Nixie Clock. The tubes I have are model Z573M. I plan on designing a circuit, testing it, and having the final product manufactured. I only plan on making two clocks, but I want to do it professionally. The problem is, to my knowledge the Z573M does not exist as a part in any circuit designing program. So even for my initial schematic I was running into issues. I decided to use EAGLE because I've heard it's powerful, fairly easy to use, and they have a version that is freeware.

When you are creating a new part in EAGLE you may want to create a new library. This will make it easier to share your part, should you choose to do so.

To create a new library in EAGLE go to File > New > Library.


Stream PC Music to iPhone Over Any Network With Simplify Music

Simplify Media was recently featured in Gizmodo's Essential iPhone Apps: Fall Edition 2009.

This wonderful application allows you to stream your entire music library over the EDGE, 3G or WIFI network.

No need to upload your tracks anywhere! Download the desktop client (Mac & PC compatible) and you will be set up within minutes. You can share your iTunes library, a music folder, Winamp library and even specific playlists. You can also invite up to 30 other Simplify Media users to access your shared library for free.

The iPhone client, Simplify Music 2, cost $5.99 and can be purchased through the app store.

I tested the software in my backyard today as well as traveling on the highway in my car. It's awesome being able to access my 50GB+ library on my iPhone. Never again will I sit in dissapointment thinking "I wish I could hear that song right now, I have it on my PC at home." The sound quality is great and the few second buffer keeps it playing without any interrupts. Definitely worth the money!


Free Alternative to MobileMe: Sync Calendar, Contacts and Files

Google and SugarSync. They will be be our "cloud in the sky."

If you don't already have a Gmail account, Sign Up for one. You will not have to use the account for e-mail. We need it for it's calendar and contact features.

You can use all or parts if this article. Just want calendar synced? Just follow the Calendar part.

On the computer:

Email: .Keeping e-mail in sync between all of your devices is easy with the Internet Message Access Protocol (IMAP). The other commonly used protocol is POP3. POP3 downloads each message locally which is an advantage in case of outages and archival purposes. However we want synchronization. IMAP is great because all the messages are stored and retrieved from the server when requested. If you use a web based email provider then IMAP is already set up although it may need to be enabled in the settings. If you don't, check with your e-mail provider for IMAP settings. When you create an account in Outlook you have the option to select POP3 or IMAP as the protocol, choose IMAP.

Contacts: GO Contact Sync is a free open source program that will automatically sync all of your Outlook contacts with Gmail. Download and install the program. It's use is self explanatory. Enter your account information and which Sync option you would like.  I have Sync Deletion on. My sync option is set to "Merge Prompt" to prompt me before syncing the modifications.

Note: Although the Contact Sync works functionally the Merge options are a bit confusing. I personally don't use it anymore because Google automatically formats contact names (Last, First) which annoys the formatting on the iPhone.

Calendar: Google Calendar Sync. This program automatically syncs your Outlook calendar with Google.

Hard Drive: SugarSync is a website which provides a free 2GB of online space. Their have a utility for Mac, PC and the iPhone. This allows you to share between computers and the iPhone.

the iPhone:

Email: The account will already be using IMAP if it's web based. If not, set up the account as you normally would and select the IMAP protocol. Or if you already configured Outlook to use IMAP, sync the iPhone e-mail accounts with your computer.

Calendar and Contacts: Google has a great guide on setting up the iPhone for Calendar and Contacts Sync.

Note: The phone defaults to show you all of your contacts. That includes ones already on your iPhone, so you may be seeing double. You want to make sure you are using and modifying the Exchange contacts.

When viewing contacts, click the Groups button in the top left corner. You will see your Exchange account listed and select Contacts. Now any adding you do will be synced with your computer.

Hard Drive: Download SugarSync from the appstore.