Search form

JRT Studio Blog - iSyncr, Android, and other cool stuff

Introduction

Far and away the largest number of support emails we receive for Cheetah Sync have to do with connection issues. Our users will download and install the Cheetah Sync Server on their computer, then open up their Cheetah Sync app on their Android device and hit the Sync Jobs button, and... their computer cannot be found.

We wrote the server and app code specifically to try and make it easy and painless for the Android app to auto-discover the host, and most of the time it works. However, for users for whom it doesn't work right away, almost always it's a firewall issue, either on their wireless router or their computer. This guide is intended to show our users the optimal firewall configuration so that their Android device can easily talk to their PC.

Home Networks vs. Public Networks

It's worth mentioning that corporate, university, or public WiFi hotspots often have a built-in firewall in the wireless router which automatically prevents any kind of network traffic between connected devices. Unfortunately, Cheetah Sync cannot circumvent this kind of network restriction; for this reason we generally recommend our users to use a home wireless network if at all possible.

Windows 7 Firewall

Follow these steps to configure your Windows Firewall in Windows 7:

Open up the Control Panel.

Click on "System and Security".

Click on "Allow a program through Windows Firewall".

Click on "Change settings".

Find "Cheetah Sync" in the list and check both "Home/Work (Private)" and "Public".

Click OK. Click on "Windows Firewall".

Click on "Advanced settings".

Click on "Inbound Rules". Click on "New Rule..."

Click on "Port". Click Next.

Click on TCP. Type "35000" into the "Specific local ports" text field, unless you're using an alternate port number in your server settings. If so, enter that port number. Click Next.

Click on "Allow the connection". Click Next.

Ensure that "Domain", "Private", and "Public" are all checked. Click Next.

Wireless Router Configuration

In some cases, you might need to tweak your wireless router settings in order for Cheetah Sync to connect. This is because some wireless routers might have a built-in firewall preventing traffic, or it might be preventing multicast packets. Steps for configuring your wireless router:

In Cheetah Sync 1.0.4, we are introducing Tasker support. Why did we go through this trouble? Because you can do some pretty powerful things with it! Cheetah Sync is great if you want to sync on a schedule, but what if you want to sync every time you get home? What if you want to sync every time you plug your device into its power cable? Then this is the feature you've been wanting.

Since we have already created this tutorial for iSyncr WiFi, we are just going to use that one. Just click here, and in step 13, enter "com.jrtstudio.SyncFolders.Sync" instead of "com.jrtstudio.iSyncr.WiFi.Sync". That's it!

You can now sync to either the internal storage or SD card. Just head over to http://www.jrtstudio.com/iSyncr-iTunes-for-Android and download the latest Mac version. Once installed, run a sync like you normally would, but now you should see the following dialog which will allow you to select which memory location to sync to.

Just over one year ago, we released the first public beta of iSyncr WiFi 1.0.0 on the Android Market. Since then we've introduced countless bug fixes, improvements, and new features. Here's a quick list of some of the things we've added since our first version:

While searching for iSyncr in the Android Market is not going so well right now, Google has shown it is not doing it on purpose and has shown iSyncr some love. They've featured both iSyncr for Mac and iSyncr WiFi in the Media & Video category. So obviously, I think the addition of featured apps on a per category basis is excellent!

Today we released a new version of iSyncr WiFi, version 1.4.3. This is mainly a maintenance release, with the following additions:

Fix for Droid Eris

The Eris has some brand new file paths for internal / external storage, so we had to add these file paths for the app to detect drives properly.

Evo 3D picture support

The Evo 3D can take 3D photos, which are stored as .mpo files. These files are now scanned by iSyncr WiFi when uploading photos to your computer.

Better detection of metadata changes in songs

This one's a bit tricky to explain, but I'll try. Let's say you sync a playlist to your Android, and then later change the genre of some of your songs to a different genre. Before this change, iSyncr WiFi would compare the songs already on your Android to the ones on your computer by looking at the file sizes, album, artist, and song name. If something else changes in the song metadata, such as the genre, iSyncr WiFi wouldn't know about it and wouldn't re-sync these songs. So in order to sync and pick up these genre changes, you'd have to delete the songs from your Android and then re-sync them.

Obviously this is not ideal, so we added some code to detect when the "last modified date" of the songs on your computer are later than the last modified date of the songs on your Android. If so, they should be re-synced because they have been changed since the last sync.

Everyone knows Google got its start by ranking sites, which gave birth to the Google search engine. That is what they are known for. Being able to return the best results, in the best order, saving users time.

Since then we have seen them move into enhancing users' web experience with products and technologies such as Gmail, Chrome, Docs, Reader, Picasa, etc. After all, one can sell more ad words if people spend more time on the web. Not a bad strategy at all for an advertising company. However, I'm beginning to wonder if they've lost focus and it is affecting what they are known to do best: search. Mainly because it directly effects my company, my contractors, and my family.

Let me illustrate. How do you find something in the Android Market? For the longest time, it was just search and Categories. Google has been trying to make app discovery easier by adding more and more ways of finding apps. But I'd argue the interface is getting cluttered with "New", "Editors", "Trending", "Featured", "Featured Tablet", "Top New", "Top New Paid", "Top Grossing", etc. At some point you just search. The good news is that you have the world's best search company providing the results.

Let's say I want to find an app to sync music to my Android phone. My company, my contractors, and my family hope you do!

Searching "Music Sync", would be what I'd type. I've come to expect that Google will take into account all the variables and return the best results and trust me, I realize this is hard work. As an intern at a company, I wrote a search engine based on Larry and Eric's page rank paper. It was not only difficult to implement, but to make usable. Dev forums have tons of backlinks, but that isn't what you want to show first and foremost. But I digress. Let's just say search is not an easy business. So what are some of the variables Google could use when ranking search results? As it affects me, let me give you some things I'd use to rank apps.

Number of downloads

Number of active installs

Number of ratings

Average rating

Average rating in the past month

Price

Grossing amount

Category

Keywords in description

Page rank of the app name on the web

Page rank of the app name in the Android Market

What does Google use? I certainly don't know. What I do know is searching "music sync" won't return a result for iSyncr, my company's music syncing app, on any of the search result pages. It has more 100,000 downloads with a 4.5 star rating and over 7,000 people have taken the time to rate it. I would assume users would want to see such an app when they search. I know I am biased, but I would expect one of the top music syncing apps to show up somewhere on the four pages of search results for "music sync".

Wait, that doesn't make sense. iSyncr's description says "sync" 10 times and "music" 11 times. That alone warrants iSyncr showing up somewhere in the results, even if it is dead last. It is clearly relevant. Google's job was to sort the results, not cull them.

So what really happened here? From some trial and error, you can figure it out. Search "Music" and only apps from the category "Music & Audio" show up (figure on the right). Well, that is pretty horrible. What if someone has made an app for finding local music shows in your area based on social media sites? Since the app can only be in one category, which do they choose? If they choose "Social", they will never show up in a "music" search.What if it has 50 million downloads? Wouldn't it deserve to show up somewhere when you search "music"?

At this point we are guessing that iSyncr doesn't show up in the query "music sync" because iSyncr is in the "Media & Video" category. In fact, today the PC version is sitting at number two, the WiFi Add-On at number four and the Mac version at number eight. So why is iSyncr in this category? Well, it used to be in the "Music" category, but at some point that split and Google put iSyncr in the new "Media & Video" category. While I could move iSyncr to the "Music & Audio" category, I've been hesitant to because the Android Market is a black box. If I move iSyncr to the "Music & Audio" category, what will happen to its ranking? Will it start as the worst app in "Music & Audio"? If so, that would be a very, very expensive move which could end JRT Studio. So, I've left it in "Media & Video" because iSyncr does sync media and video. It isn't an incorrect category, and iSyncr is sitting high in it. It is staying put for now.

Why has a company built on search failed so badly at this? I don't know. Only showing results from a category if that keyword is used it fundamentally flawed. Let's have some fun with it by searching "music tool". Oops, that would use two categories. What do you think will happen? Click on the preview above to see.

Let's have some more fun. Let's search "music iSyncr".

Remote for iTunes? Um. That is the best and only result for searching for an app that says music 11 times in the description and one of the keywords in its title? Google Google Google. Don't forget how to search.

Verizon has started a practice of including an extra drive when you plug your Android phone in. For my Droid Incredible, this drive shows up as a CD drive and contains Verizon installers for stuff I do not want. Furthermore, I have found no way to get rid of this.
Besides being annoying, this software is confusing some iSyncr users. This tutorial is going to show you what I see and what most likely you see, and how to get around it.

Let's start with a simple screenshot of what my "My Computer" screen looks like before plugging my Verizon phone in.

As you can see, I've got two CD-ROM drives, and that is it. Now I'm going to plug my phone in, but I'm not going to select "Disk Drive" or "Mass Storage" just yet.

Now we can see this "Verizon" CD-ROM drive and an H: drive and an I: drive. At the moment, the H: drive and I: drive cannot be opened. Windows just gives me an error when I try to. However, when I open the Verizon drive, there is just junk in there and not the phone's memory as we would expect when we hit "Disk Drive" or "Mass Storage". I can see how this would confuse a lot of people who just want to use iSyncr, or even drag photos onto their phone.

Now I'm going to pull down the notification window on the phone, and change the connection type to "Disk Drive" or "Mass Storage".

Since I had drivers for the phone installed, I can now open up the H: or I: drives and run iSyncr.exe, which is all I wanted to do to begin with.

We are pleased to announce that we just released the newest version of the iSyncr WiFi app for Android today, version 1.4.2, with several new features.

Custom Amazon MP3 Upload Folder

The biggest new feature we added in this release is the ability to specify the sync folder for uploading Amazon MP3s. Previously, users were stuck using the "amazonmp3" directory on the root of their SD card or internal phone storage. So we just added a new setting that lets users customize the upload folder path.

Simply tap the "Amazon Sync Folder" option in the Settings page to change the upload directory.

By default, the upload folder is set to "amazonmp3" at the base of your SD card and/or internal phone storage. But you can change it to anything you want.

Also note that the path is allowed to contain subdirectories if you add slashes here, for example "/mp3s/upload". But keep in mind that this path is not absolute; it's relative to the base of your storage. So "/mp3s/upload" would actually mean "/mnt/sdcard/mp3s/upload" if your SD card's root file path is at "/mnt/sdcard".

One other good change that goes along with this is that it's no longer necessary for your MP3s to be in the same file/folder structure as Amazon MP3s. Before, each track had to be located on disk in the format ArtistName/AlbumName/SongName.mp3. Now, we simply search all subdirectories of the Amazon MP3 Sync Folder for tracks to upload.

Lastly, I want to mention that even though this feature is called "Upload Amazon MP3s", we also reverse-sync AAC tracks (with the .m4a extension).

Last Sync Status

Another new feature in this release is called the "Last Sync Status". It's fairly self-explanatory: The main screen will now display whether or not the last sync succeeded, and when it occurred: