Updated TivoRemote

I updated my TivoRemote for Android. It now includes layouts, including the default now being Peanut-style. You can choose from a fitted Peanut or have a full Peanut layout that scrolls.

peanut.png

TivoRemote for Android

I have just recently released my first Android application to the market. TivoRemote allows you to control your Series 3, Tivo HD, and Tivo HD XL DVRs over wifi. Here’s a few screenshots in action:

I have opened forums for support and discussion at http://timhoeck.com/forums/. Also feel free to contact tivoremotesupport@gmail.com for features suggestions or bugs.

Bookmarklets: Recent Google Search Results

I’ve been busy for a while, but I wanted to share a quick tip.

If you haven’t heard of bookmarklets, they are just a bookmark that contains javascript code instead of a link to a website. These bits of code can do trivial tasks to save you time, or add some additional functionality.

I regularly use Google to do advanced search by Day, Week, Month, or Year. This is a very helpful search to make sure you are getting more recent information – instead of something that is years old. This functionality is not on the main google page, so it becomes a pain to go to advanced search, click the hidden section of the advanced features, select the ‘Date, usage rights, numeric range, and more’ then put in my search request.

Instead, I created a couple quick bookmarklets that search Google results in the last Day/Week/Month/Year:

Google Search Day

Google Search Week

Google Search Month

Google Search Year

Feel free to save these, and get back recent results in google.

If you want to create your own quick search bookmarklets for other sites, check out:

http://bookmarklets.com/mk.phtml

The Beginners Guide to Yahoo Pipes: Part 1

Recently, I have begun using Yahoo Pipes to quickly grab data from the web. Yahoo Pipes is a service designed to take in data from the web and manipulate it. Typically, data from the web is retrieved through RSS feeds. If you already use RSS feeds, you may find interest in Yahoo Pipes – but if you attempted to use it, you probably took one look and ran away. My goal is to show you how easy and useful Pipes can be!

An Introduction

Yahoo Pipes allows you to take data from multiple sources on the web (typically from RSS feeds) and manipulate it – you can merge (mash) data together, split data up, get more details, or get less details. You get to pick and choose what is displayed in the end result, a finalized feed.

The possibilities are endless – you can use this for lifestreaming – a combined aggregated feed of all your online activity. You could generate a “master” feed, that has all of your favorite news in one location. Or you can take some of that data – and do something with it.

A little background

If you are not a “Unix geek”, the term pipes might sound odd. From the Unix command line, the idea of “piping” data from one command to another is a common task. It is a powerful way to allow the commands to work together. This term comes from the simple idea that data “flows” from one command to the next, like it would through a pipe. Using this idea, Yahoo has created a tool that can allow a non-programmer to do complex things with data, using a simple graphical interface.

Why is it so great?

You can think of it as programming, without the code. While a little background in programming will certainly speed the learning curve, with a couple tips, you could become quite a little genius at “mashing up” data.

Why do I need to create my own pipes?

There are plenty of premade pipes out there for you to use. They might work well for what you need. But the real power with pipes comes with the ability to customize them the way YOU want them to be – not the way someone else thought was best. Sometimes, you can take a pipe that someone else created, and make a small change, so it does exactly what you wanted.

Let’s Get Started!

If you already have a Yahoo ID, you can go right to the Yahoo Pipes homepage and sign in. If not, go ahead and sign up.

As we begin to create pipes, your main page will show a list of pipes you have already created. Click the Create a pipe button to begin.

We will start with a pretty common use of Pipes – combining multiple RSS feeds. But first, we need to understand the basics of what makes up a pipe.

The Basics

Pipes are made from various modules that tell the pipe exactly what to do.

To create a pipe, each module is connected to the next. Every module will have connectors on them, allowing you to link them together. Depending on the module, it might have an input connector, an output connector, both an input and an output, or multiple inputs or outputs. Data will “flow” through the pipe, outputting from one module, and inputting into the next. If that sounds confusing, don’t worry, it will start to make sense.

Just think of it as a puzzle: some pieces work together, and some don’t, but they all fit together to solve the final puzzle.

Yahoo has provided a bunch of modules for your use, in the following categories:

Source modules – These modules will tell the pipe where to get data from.

User Inputs – These modules allow a user of a finalized pipe to specify certain required information dynamically, such as a url, a userid or search term.

Operators – These modules allow you to manipulate the source data

The URL, String, Date, Location, and Number modules are what I like to call “Helper Modules”, to make working with certain data a little easier.

Getting the Data

Pipe SourcesThe first thing we need to do is get some data. We do this by adding a “Source” – you can see the options that we have here – we can use a few pre-made sources, such as Yahoo Local, Yahoo Search, or Google Base. But we can also pull data from an RSS feed, using the ‘Fetch Feed’ source.

We will use the Fetch Feed source to get some data. Click and drag the Fetch Feed module into the workspace.

Source modules may require you to give it some information, in this case, the URL for the RSS feed. Once you have added the source, type the RSS feed into the text box, telling it where we want to get the data from. I am going to use the CNN Top Stories feed at http://rss.cnn.com/rss/cnn_topstories.rss

You’ll notice that this source module only has a single output connector. Output connectors are on the bottom of the module.

Making the Pipe Connection

Once you have added the source, you should see two boxes available – the Source, and the Pipe Output.

The Source is where we are getting the data from, in this case, a custom RSS feed.

The Pipe Output is where we want to end up, giving us our finalized data output. Notice the Pipe Output only has a single input connector.Input connectors are at the top of the module.

Connect the two modules by clicking and dragging from the Fetch Feed blue output connector, to the Pipe Output blue input connector. The results should look like this:

Congratulations! You have made a Yahoo Pipe! To see our results, we need to click the Pipe Output module, so it is orange, then look in the ‘Debug’ area at the bottom. You should see the results of your rss feed appear.

So far, all this does is give us the same information that a standard RSS feed would. Let’s work on improving that.

Adding Another Feed

What if I want to have multiple feeds combined together to get all my news from one feed? Let’s add another Fetch Feed box to the mix, this time adding MSNBC Top Stories at http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml

I can now see the data from this feed in the debugger at the bottom. Whichever module you click on (the highlighted orange one) is where the debugger window at the bottom will get its results from. This is a good way to make sure you are getting accurate information. If you were to click back on the CNN Fetch Feed, you will see the CNN results. However, our final results (The Pipe Output) is still only “linked” to show the CNN data. Let’s fix that.

Yahoo pipes provides a number of Operators that will allow you to manipulate data. There are some more advanced Operators, but all we want to do right now is combine (or Union) multiple RSS feeds.

Add a Union module into our Pipe:

Now that the Union is in place, you will notice you can connect up to four input modules to the top, and there is one output at the bottom. Let’s re-connect the feeds so they are combined, before going to the pipe output. To disconnect the current connected pipe, just click on the blue dot on Pipe Output, drag it off, and release. Then reconnect the two Fetch Feed modules to the Union input. Finally, connect the Union output to the Pipe Output.

Final Result

A brief review: This pipe is getting the CNN feed data, getting the MSNBC Feed data, then it combines (unions) them, and that data is then the final output for our pipe. Pretty neat, huh?

To make this useful, we are going to do one modification with the pipe. Right now, the results were combined together, but in no particular order. We are going to add a Sort Operator module, so that all the data comes out in the order we want it to.

Drag a Sort module from the Operators group into our workspace, and connect it in between the Union module and the Pipe module. When you connect the Union to the Sort module, it will populate the sort options with the available item details. In our case, we want to sort by the Published Date, or item.pubDate, in descending order – so our results will show the newest item at the top, regardless of whether the item is coming from CNN or MSNBC.


Saving and Running the Pipe

Once we are finished, we can save the pipe for later use. On the top right, click the Properties button, and fill in the information. You can also Publish this pipe, allowing the pipe to be available to the general public:

Click OK, then click the Save button at the top right corner.  You will see a link at the top that says ‘Pipe Saved .. Run Pipe’ – click the Run Pipe to see our final results:

You can see the final pipe that was created here.

Part Two

In Part Two of the series, we will begin to discuss some other source types, accepting user input, and more ways to modify our data – along with what we could do with the data once it has been generated.

Prevent a Disaster! A Remote Backup Service Showdown

How much data do you have on your computer? Is it important to you – no, is it irreplaceable? So much of our data is stored on our computers nowadays, yet so many do not have a plan in place in case of emergencies. Maybe you, like me, have all your data on a separate drive. Maybe you even have it on an external drive. What would happen if you turned on your computer today, to find out that the hard drive has failed?

This very thing happened to me just two weeks ago. For me, it was one of my “backup” drives. I have two secondary 120GB internal drives that I store all my non-system data on. One drive is for miscellaneous files (games, some software, random stuff I would need if I reformatted); it would be a moderate headache to get these files back.

The other drive contains my music collection (also recoverable with painstaking work), along with ALL of my IRREPLACEABLE files – including digital photos and videos from the last 7 or so years, software I have written, custom web sites and images that I have created for a number of projects – all unrecoverable data should something go wrong.

Truth is, this isn’t the first time this has happened. The last time, it turned out to be the not-so-important drive. Did I learn my lesson? Not really. Oh sure, I do the occasional copy and paste files to another location. I probably uploaded some photos somewhere, or e-mailed them in the past. But 90% of the UNRECOVERABLE data is not backed up some place safe.

The worse part is, I am not clueless. I have worked with computers since the age of 5 – I know a number of backup programs for Window, I know about rsync and fuse for *nix. I’ve even priced up NAS devices in the past -  but when it comes down to it, it is just pure laziness.

While having your data backed up locally on another drive (internal or external) is a good idea, an even better solution would be a NAS device with raid/mirroring. This would ensure that should a drive go bad, things would move along smoothly, and I could replace a drive. But NAS devices are expensive, not to mention buying multiple hard drives. Even if you do have a NAS device in place, it is always recommended to have a remote backup. Store your data somewhere other than your home or office. So what is the solution?

Remote storage is something that has recently become more available and affordable to the mainstream users. There are plenty of services out there. The most known right now are probably Carbonite and Mozy.

In the past, I couldn’t even think about paying for remote storage to backup my files.

I was shocked to see just how cheap it was – a number of services are offering unlimited backup or large (100GB+) backup, for $4.95 per month – or about $50 for a year. There are even FREE remote backups available for up to about 5GB (See Microsoft Live Mesh). Not only are these backups remote, but with the advent of Amazon S3 and other similar services, I can rest assured that my data is being backed up, mirrored, and whatever else is required to store data safely.

The scary thing is that there are tons of services out there, and many have not adjusted their prices to the current scale. These services continue to use old architecture, and offer packages that range from about 50-200MB backups. They charge the same price or much more then others that offer unlimited storage!

I don’t have a lot of money to spend! We need to find a common ground – somewhere between price, and reliability. The $4.95 per month is a pretty standard price point – and I am quite comfortable with that price. The question is, what will we get for that price?

I have gone on a crusade to find a reliable, yet inexpensive remote data backup service.

What I am Looking For

Obviously the most important thing when looking for a service would be reliability. Reliability is not necessarily based on pricing though, so I started my search looking for the pricing and features that I wanted. I figured I will try a couple of them out, see which I find to be more reliable – and then make my decision.

While my primary concern is backup, I am really interested in a couple of additional features:

  • A decent web interface, so I can access my files from anywhere
  • Preferably a Win/Mac/Linux client
  • Double as a sharing service, to share pictures and files with friends or family
  • Hopefully multiple PCs supported in the plan, or a relatively inexpensive addon for additional PCs

I have tried a number of services over the past two weeks, and I will give a quick rundown on each.

Mozy is making quite a name for itself as of late,  and it being recommended by a number of people. Pricing is set at $4.95 per month with unlimited storage. Mozy currently supports Windows Vista, XP, 2000, or Mac OS X (10.4 and 10.5).

My first impressions for Mozy were pretty good. I began using ‘MozyHome Free’, which provides you with 2GB of storage for free. If you only need 2GB of storage, then you can use Mozy and have a FREE, remote backup of your files.

The client installation was simple and straightforward. Mozy has pre-configured backup “sets” which will take care of common items to backup such as Email, Browser Favorites, My Documents, Music , Photos and Images, Office files and more. I can easily check off the files I wish to backup, and all files of that type will be backed up. No need to worry about where they are located. Mozy also allows you to setup Rules. Any backup set can contain rules which includes or excludes files by type, size, dates, or names. Of course, you can also just select directories that you want to backup.

Desktop access to Mozy comes through a  additional networked System folder. It is a Restore Only filesystem. You can not read or run files from this folder. It is only to browse through your uploaded files, and restore as necessary. This was a bit disappointing, but somewhat expected.

Backups can be scheduled, and as most services are done incrementally – after the initial upload, only the changes are uploaded to save bandwidth. Any type or file size can be backed up. Files are encrypted on your computer using 448-bit Blowfish encryption, then transferred to the Mozy servers using 128-bit Secure Socket Layer (SSL) encryption. You have the option of using a Mozy key or your own private key to encrypt your data. Note that if you use your own private key, you must be very careful about not losing it because if you do, it’s impossible for Mozy to decrypt your data.

If you delete the working copy on your machine and then run a backup, Mozy will assume that you no longer need a backup copy, since you got rid of the working copy, and will mark the file to be removed after 30 days. A 30 day remote recycle bin, if you will.

MozyHome supports most types of external drives. According to Mozy, it does not support network drives, but if the network drive is part of a server running Windows, then you can install Mozy onto that server and back up the shared drive locally.

The Verdict

An inexpensive, seemingly reliable backup service. A little short on features, but it does its job.

It does support multiple computers at $4.95 per month, per computer. But the other features I was looking for are non-existent. The only web interface to speak of is for file restores – and it only submits a restore request. You still need to wait to get the files – I can imagine what a pain this would be if I needed access to files remotely. There is no sharing options. I have had some slight annoyances with the software as well. Every time you start the software, or go to configuration options, it hangs for a while, “verifying” backup data sets. Additionally, restoring files from the client can be a pain; Searching backed up data is not well integrated. You can use Windows Search (not Live, just the Search Companion) but you cannot restore from it. You would have to search for the file, then go locate the file in your backup “drive” or the client software to restore. When you do find the file to restore, there is no way to compare the different versions prior to the restore request, although it does allow you to restore to a different location, so you can compare without overwriting.

Searching for services to review, I ran across one called ElephantDrive. ElephantDrive stood out to me after reading a recent blog post on their site. The service uses Amazon S3 in the backend, however, during the recent outtage of S3, their service ran smoothly as they also have their own servers in place.

ElephantDrive offers a $4.95 per month for 1 computer. For $9.95 per month, it will cover up to 4 computers – both plans cover unlimited storage. However, the $4.95 plan will only maintain file version history for 30 days – the $9.95 plan will maintain version histories forever.

ElephantDrive features version tracking and allows you to use your own personal encryption key for additional file security. One option available within the configuration allows you to specify to send files immediately – basically meaning your files will be synced online as changes are made, although I doubt that it was their intent. It is not advertised as a synching service.

The Verdict

I found ElephantDrive has just about all the features I am looking for: Multiple computer plan, File Sharing (through through e-mail links), Windows and Mac support (no Linux client yet), and although not overly pretty, they also offer a web interface to your files. Additionally, ElephantDrive has an optional client install called ‘TrunkDrive’ which which will map your storage to a drive – allowing you to access and change your files directly, a huge plus over other services.

I still found the client interface is lacking a few necessary features, such as showing me the speed of transfer. The web interface could use an overhaul as well. Overall though, ElephantDrive is a decent offering.

I would probably choose ElephantDrive over Mozy – for web access to my files, the drive mapping abilities, and I could backup up to four computers for $10.

I only first found out about Hewlett Packard’s service a few days ago. This service also offers a  $4.95 per month, per computer plan for unlimited storage backup. It is also a major company, so you can’t go wrong there.

One thing I noticed right off the bat is it uses .NET – this eliminates the possibility of a Mac/Linux client. Make sense, this is HP – they do Windows PCs.

On the plus side, I was pleasantly surprised when it informed me that it not only did remote backups, but it would do local backups to a network or external drive… double protection, just the way it should be! I skipped the local backup for now, and started ~800MB remote backup. The transfer went smoothly, and a decent speed. At least I think so, because there was no indication of speed during the backup process.

The Verdict

I was sort of disappointed with the interface features. It did contain very basic sharing, allowing you to e-mail a link to your files. However, it is time-limited.

Overall, Upline did what I needed It to do, but after the pretty looks wore off, it seemed a little lackluster. Requiring .NET limits the chances of a Mac or Linux client coming anytime soon. I feel that there are better products out there, including Mozy or ElephantDrive.

Since I am constantly hearing commercials for Carbonite, I figured I would give them a shot as well. Seems like they are ahead of the pack right now, at least publicity wise, for an online storage option. The idea behind Carbonite is to make backing up and restoring extremely simple. I think it accomplishes this – too well.

The problem I find with Carbonite is once installed, it will start backing up. No prompts, no questions other than logging in. This sounds great at first, until you read the FAQs on their website. It does not backup video files, or any files larger than 4gigs, unless you explicitly tell it to. Not only that, Carbonite does not backup files on Networked and Removable drives.

While that wouldn’t be a huge problem for me now, I may wish to add external storage later, and I would certainly want to be able to backup the data on it.

The Verdict

The service itself seemed great. I loved that it gives you visual confirmation of backup by adding little status icons on each folder/file. At $5 per computer backup for unlimited storage, it makes things quite simple – a little too simple for my tastes.

The Future is Synching

There are a number of services out there that not only backup your content, but actually sync your content between multiple machines or users. A few of these include Dropbox, Syncplicity, and SugarSync.

I played with each one, and although carrying a higher price tag, they do make syncing (and backing up in the process) a much better solution. Once these services can reach the price levels of conventional remote backup, they will take off. Dropbox is in beta form, and while the features do seem intriguing, they do not offer any commercial packages at the moment.  Syncplicity also seemed like a well done product, but I have seen a number of blog posts recently in regards to downtime – something I am not looking for at the moment.

SugarSync, however, knocked me back. It is the closest feature-wise to be exactly what I need. SugarSync also uses Amazon S3 in its backend.

Everything that is done, is done well. Sugarsync works really well as a multiple computer sync/backup solution. Once installed, I am able to select the folders to sync with the remote server. Once I finished, it began synching immediately. I than began setting up the client on two laptops at the same time. Again, after selecting what to backup, it started syncing instantly.

One of the nicest features of SugarSync is how it deals with multiple computers. SugarSync gives two options for syncing content between computers – “Lite Sync” and “Full Sync”. If you will only need to access the files, you can use lite sync. If you prefer to keep an actual copy of the files on the other computer, choose the full sync option. This is absolutely perfect – I can still access my desktop files from either laptop – without the need to fill up the hard drives. Not only that, but since the files are stored remotely, I can access them even when the other computers are off. Any changes made will be synced to the desktop once it is on.

SugarSync is even offering mobile support for Windows Mobile, Blackberry, and iPhones. You can access photos and files, as well as sync photos from your phone.

It is not without its flaws, however. Many services allow you to use either the companies “key”, or your own personal key for security – SugarSync has not yet implemented this, although it is on their todo list. Additionally, searching for files is non-existent in the manager software. I guess they assume since you selected the sync folders, you would know where the files should have been. “Deleted Files” are maintained on the server, but they are combined with deleted files from all computers. This will make for a messy list if you are trying to find something you deleted. Combining backup folders for multiple computers also makes for a cluttered, unsortable list. Fixing these issues would make this the killer app.

As mentioned, pricing is a bit more steep. Here’s where “you get what you pay for” – $2.50 per month will score you 10GB of storage. I am looking for around 100GB – that would run me $15 per month. However, it does covers as many computers as you need. It appears their highest plan is 250GB, so if you are looking for more than that, you might be out of luck for now.

The Verdict

I am in love with SugarSync. In hopes that they fix the issues I described, I just might put forth the extra cash to ease my syncing pains. Initially, I began this review looking for backup software, but after realizing the power of syncing services, I am glad that I added them to the mix.

Decision Time!

When all is said and done, I am left with a couple options. I absolutely love SugarSync, but the price is a bit high. If I decide not to pony up for the Sync features, I think my overall choice for backup purposes would be ElephantDrive. It has a “sync feel” to it, since it will upload modifications on change, although it is not implemented as nicely as the built for syncing applications. With the addition of direct file access and web access, I would recommend it.

Other Options

There are a number of other services which some might suggest, including Windows Live Mesh and Amazon S3 or JungleDisk.

I tested Live Mesh, but decided against it because there is no actual plans, it is still in beta, and only offers 5GB. If you are using Windows and are looking for a free solution under 5GB, give it a shot. Additionally, support for Macs, Linux computers and mobile phones seem a ways off.

I am against using Amazon for data storage because they charge per GB – both on storage and bandwidth. Pricing reminds me of a cell phone plan (albeit much cheaper). Amazon in itself requires you to setup your own synchronization solution. JungleDisk takes advantage of that by offering you a client, but you are still charged the full rate for the Amazon S3 service.  I believe a number of resellers using the S3 service will pop up soon enough – with lower pricing to you, the end user. They are actually already there (see ElephantDrive and SugarSync).

What to Watch For

When deciding on a service to use, don’t take my word for it. Most services have a free plan, or at least a trial plan to see how you like it. Put them to the full test. Some things I would watch for:

  • Support for networked or external drives
  • Versioning of Files (a number of services either do not offer file versioning, or put limitations on it)
  • Security of Files (what type of encryption does the service offer, and do they allow personal encryption keys)
  • Multiple Computer support
  • Storage or Bandwidth limitations – some services may say they offer unlimited storage, but what happens if you are storing too much?
  • Syncing support – Is it important to you that the updated files be accessible immediately, or are you just backing up for safety measures?