Saturday, January 18, 2014

My experiment with Android. Again.

I've been an Apple fanboy for years. I own more Apple devices than most small countries. I recently misplaced my phone at work and brought up Find My iPhone during a meeting and folks looked at me like I had a problem when they saw my list of devices. This didn't even include the ones that aren't on my primary iCloud account. Yes, I have a problem.

I currently use an iPad mini at home to read on/surf in the evenings and my phone is an iPhone 5. So when the rumors of the retina mini came out, I was ready to dive in to get the higher resolution screen, not to mention upgrading the innards from essentially and iPad 2 to an iPad Air. I was not happy, however, when the price tag came out at $399 compared to $329, so in protest I bought a Nexus 7 (2nd gen).

I'm not new to Android. I had a Nook that I rooted back in the day and an original Kindle Fire that I rooted and passed down to my mom. I played with both of them for some period of time, but eventually decided that I preferred the iPad experience over the Android tablets. So would that happen this time around?  Would I have a 4 week honeymoon period again with Android then get bored and go back to iOS?

The first thing I did when I got the device was unlock the bootloader and root it. This was dead simple. Compared to iOS and Jailbreaking, it's a walk in the park. No need to wait around for an exploit to be found because Google gives you the ability to unlock the bootloader, thus allowing you to execute code/install things on the OS prior to Android booting. This makes it easy to boot into recovery and install the su commands required for root access. Also, no restrictions on what version of Android I could run; no version signing like Apple that explicitly locks you into the most current version (at least on current hardware).

So the good and bad about my experiences. These are based off of daily use of the device for a period of about 4 weeks. I'd say I used the device a minimum of an hour a day. I'll start with good:

  • Vivid screen and speed - The Nexus 7's screen is gorgeous.  Colors pop, especially compared to the iPad mini (even the retina Mini, unfortunately).  Everything is clearer and apps open and close very quickly.
  • Back/Home/Task Manager buttons - Android has this down.  Back button works in apps to go back, but also works to take you out of the app (to the home screen).  iOS has no dedicated back button or gesture (unless you're jailbroken where you can use LastApp and or a combination of Activator to accomplish this).  The task manager also has a dedicated button which is much more helpful than the double click on iOS. I despise using a physical home button on iOS (which is why I've used Zephyr for years). 
  • More app flexibility - The Google Play store allows you to download lock screen widgets, notification add-ons, home screen toggles, apps that require root, and questionable apps (such as Media Dog). Apple's eco-system has all of these on lockdown. 
  • Mail Experience - Google's mail client and Exchange client on KitKat 4.4 is great. Swiping to delete is easy, and the letter icons that start with the sender's first name make it easy to tell where mail is from. The compose screen on these messages and keyboard is less than desirable, but being able to see the whole, long subject of a mail message is something iOS does not have.
iOS 7 on the left. Notice long subjects are simply cut off; no wrapping. KitKat on the right shows icons for the sender, full subjects, conversation arrows, categories. 
  • Notifications - I really with iOS would take the notification system from Android. Being able to quickly see new messages, even respond from the notification center is huge. iOS's notification center options, even in iOS 7 and even on a Jailbroken iOS device still pale in comparison to Android.
  • 15 minute returns - If you don't like an App in the Play Store, you can return it within 15 minutes and get your money back. I took advantage of this several times on the quest for Flickr apps. Sadly, I came up empty handed. 
I was pretty happy for the most part with the Nexus, but there were a few things that I could not overlook and kept me going back to iOS.
  • Scrolling - KitKat 4.4.2 still does not have scrolling fixed. Scrolling is jumpy and it's impossible to read things as you scroll as you can on iOS.  Using both TweetCaster twitter client and Facebook on Nexus compared to iOS was a completely different experience. iOS's rubber band scrolling with accurate physics beats Android hands down.
  • App Store - The Play Store is like the Big Lots to Apple's Target. Yes, there are more free apps, but they mostly suck or have ads, and the ad-free versions are always $4.99 (which is more than most iOS App Store apps). I could not find a decent Twitter app that correctly handled TweetMarker locations (so I could use Tweetbot for Mac) or anything that worked anything near as well as Tweetbot on iOS. The apps in the Play store are clunky and feel like enlarged phone apps on the Nexus, where as iPad apps feel like they were built for a tablet.  Using something like the NY Times on Nexus vs iPad was night and day difference. I also searched for other apps to match what I did on my iPad and came up empty handed on a number of occasions (Flicker app that lets you bulk-delete items from your Photostream, an app that lets you FTP/SFTP your images off of your device while adding timestamps to the name keeping track of the ones that have synced, and a decent replacement for Tweetbot). App selection and the quality of the apps in the Play Store felt a few years behind the iOS store. There are apps on my iPad which cannot be duplicated in quality or function to anything in the Google Play store, I tried, I bought, I returned. 
  • Battery Life - Battery life on the Nexus 7 was not what I expected. I even went through the trouble to install different kernels that helped on battery life, setup apps with policies to slumber/terminate apps instead of having them run in the background, etc. Still, an idle Nexus 7 went down about 8% in 12 hours, where as an idle iPad goes down about 2% in 24 hours. I charge my iPad about once very 2 weeks; the Nexus would require more diligence about plugging in.
  • Tap to scroll to top - This may sound like a minor thing, but Android does not have a way to quickly scroll to the top of the screen. You actually have to scroll. iOS offers the ability to double tap the status bar and the current window scrolls to the top. I looked and looked in the XDA forums but nobody had a solution. 
So needless to say I traded in the Nexus 7 and upgraded to an iPad mini retina. I couldn't justify keeping my old iPad mini around for things that didn't work on the Nexus 7 and thus having two devices. The trade in (Nexus 7 and 1st gen iPad mini) should be about the same cost as the retina anyway. Not to mention iOS 7 just got Jailbroken so many of the customizations and things I liked about Android are on their way to iOS. I enjoyed dipping my toe back in to the Android waters and will do it again when my FreedomPop HTC EVO 4G comes (I'm not expecting miracles).

In the meantime, Google needs to focus on enticing developers to create apps that people will switch sides for (something like Tweetbot). They also need to encourage developers to develop tablet apps. I'm wondering if this is difficult because the fragmentation caused by different vendors and screen sizes. Developers aside, Google still has to fix the fluidity and smoothness of their tablet experience. Scrolling should not be jumpy and "switchers" should have much the same experience as they did with iOS or they're going to simply go back like I did.


Sunday, October 28, 2012

Getting rid of Skitch with Jing and Dropbox

To make a long story short, Evernote acquired Skitch, removed all the useful functionality and shut down the old hosting site. Way to go Evernote! You used to be able to take a screenshot, annotate it (blur things out, add comments, arrows pointing to things), upload it to the Skitch website, and have the app automatically copy the image URL directly to your clipboard. This does not work any longer, even with an old copy of the application due to Evernote shutting down the Skitch website.  Because of this, I can no longer use or recommend using Skitch for everyday screenshots that require annotations.

This post will help you move to a different app (Jing), with similar annotation and auto-copy functionality (auto-copy of the direct image URL - sample), and do it for free. Note: if you don't mind that Jing's default hosting service (screencast.com) is limited to 2GB of storage and that it copies the webpage URL (sample) only (you cannot configure Jing to copy the image link directly using the default screencast.com hosting), then you can skip the Dropbox integration steps and simply download Jing.
  1. First off, login to your Skitch account, go to Dashboard and Download Tool. You can request downloads of all of your Skitch uploads. You can later download these and add them to your Dropbox folder or upload them to Jing if you are going to use the default screencast.com hosting.
  2. Download and install Jing from TechSmitch. If you plan on using the screencast.com hosting instead of Dropbox and wish to upload all your old Skitch image files you can also download the screencast.com upload tool.
If you have the same requirement as I to have the auto-copied URL be that of the direct image and not some website hosting the image (as screencast.com does), then you can proceed with the next few steps. If you don't mind using the screencast.com website, then you can skip the rest of this.  
  1. Create a directory in your Dropbox Public folder called Jing (~/Dropbox/Public/Jing).  
  2. Copy any file (maybe your old Skitch images you downloaded?) to this new Dropbox location, right click on the file, in Dropbox Menu select "Copy Public Link". 
  3. Paste this link in a text editor. It should look something like this: https://dl.dropbox.com/u/666666/Jing/tempfile.txt. Copy this link but exclude the temp file name (tempfile.txt in this case). You'll use this later on.
  4. Open Jing, More -> Preferences -> Customize Jing Buttons
  5. New -> Scroll to Right and click on Save.
  6. Change the name to Dropbox.
  7. Change the location to ~/Dropbox/Public/Jing
  8. Change clipboard contents to "Custom Code" and paste the link from step #3 above in both sections and add [filename] to the end of it. For example: https://dl.dropbox.com/u/666666/Jing/[filename]
  9. You can now take screenshots, annotate them (like Skitch), save them to a web location, and auto-copy the image URL only (not the webpage url to the image like the default Screencast website does)
  10. An optional step here is to drag all the downloaded Skitch images into this folder so that you can reference them at some other time. 
That should do it.  One cavet with Dropbox that I have found is that is that the filename Jing uses to name your files is based off of the current date/hour/minute.  Since there's no second on this name - derp, you can only take one screenshot and save it to Dropbox per minute, otherwise your previous screenshot may get overwritten.  This would also open your screenshots up to a filename guessing attack assuming someone wanted to traverse all the dates/times to download your screenshots.  You can always add some additional text to your file name before you save it if either of these issues concern you.  Issues aside, it's still better than using Skitch to screenshot + annotate then another app to upload the picture to the cloud.

Thursday, February 10, 2011

Porting Your Home Number to Google Voice


As of January 25, 2011, Google began allowing individuals to port their mobile numbers to their free Google Voice service. For those of you wishing to port your home number to Google Voice, such an option has not been announced. To get around this limitation, you can use a mobile provider as a middle man in order to allow you to transfer your home number into Google Voice. I recently went through the process and it went off without a hitch. Below are the steps required to get this to work.
  • You need home phone service that has a number that can be ported out. In my case, I was using a pre-paid VoIP provider. My service was expiring in February, so the stars aligned for this to work out. You should not cancel your service or else the port from here will not work. You will need your account number and any PIN or passcodes associated with this account. Check with your provider prior to buying a GoPhone so that you can initiate your port at checkout.

  • You need to purchase a phone from a mobile provider supported by Google Voice for porting. The easiest option for me was an AT&T GoPhone. They frequently have refurbished phones for less than $6 (including shipping!). The only gotcha is that you'll have to add money to your phone (we'll get to this later).
So, assuming you have a home phone number that is active and can be ported, go over to AT&T , select "GoPhone Prepaid" for the service type and buy yourself the cheapest GoPhone you can buy (look for refurbished ones). Buy just the phone (you can remove the pre-paid minute cards from the package before checkout). The GoPhone plan that you choose does not matter; I picked the $0.10/min plan. During checkout, make sure you select the option to port your number to your new GoPhone. The porting option will ask for your account number (for the number your are porting into AT&T), any passcodes or PIN numbers associated with the account, and your SSN (I'm not sure if SSN is needed; I was reluctant to give it since my VoIP provider did not have it; you may be able to fill this in with zeros :)).

Your GoPhone should arrive within 2 days and the port from your current provider should not take longer than a week (it was 4 business days for me). An e-mail from AT&T will indicate that the porting process has been initiated and give you an idea of when it will be complete. They will provide you with a link to http://www.wireless.att.com/lnp for you to keep track of your porting status. Your GoPhone will not work until your port process is complete through (it will say invalid SIM). So it's a waiting game until your port to AT&T is complete.

Return to http://www.wireless.att.com/lnp on the date and time originally provided by AT&T as to when your port would be complete. The status should change to "Confirmed" (and no date will be listed) and there will be a box under this that will initiate a Chat with AT&T customer service (I only saw this box in Firefox, not in Safari). I initiated a chat and provided them the number I wished to port and told them that it was supposed to be completed today. They took my address and name and came back and said that they had finalized the porting process and for me to reboot my phone. I also asked them for my account number should I need to call AT&T back. At this point, it may be worth trying to convince the CSR that you would like a small amount (1-2 minutes) of talk credits added to your account to test your phone (since you only need to be able to have GV call you once to initiate the port). I tried, but was unsuccessful.

Once you reboot your phone, you will be sent a few text messages, one being your PIN number which is used to access the GoPhone website. You will need to go here, login, and add the minimum amount to your account (currently $15). If you were able to convince the CSR to give you a credit, then you can skip this step.

Once your GoPhone is up and running, login to your Google Voice account and click the option beside your phone number to "Change/Port". Enter the number you just ported to AT&T and hopefully it will say that porting is available for your number. If it does not say this, then you may need to wait a day and try again, but in my experience, I was able to port away from AT&T the same day that I ported into AT&T. You will need to provide Google with your AT&T GoPhone account number, name, address, phone number and pay $20 to Google for the port. 24 hours later, your account will be updated with your new phone number, and your old Google Voice number will continue to ring to your account for 90 days.

That's the process in a nutshell. The total cost for me to port to Google Voice from my original VoIP provider was just under $40. Well worth it when you consider it's feature-packed, free service which makes VoIP solutions (like Ooma) even more powerful that much costlier paid solutions.

Sunday, February 21, 2010

Selective mail notification on the iPhone using Prowl and Outlook

The biggest issue for me when moving from the BlackBerry to the iPhone was the fact that selective e-mail notification feature was unavailable. The option for e-mail notification is an all or nothing option which is applied to all e-mail accounts on the iPhone. In order for the iPhone to be taken seriously in the enterprise, this is one issue that Apple will need to resolve. The other problem is that because of Apple's tight Appstore development restrictions, there isn't really a way for a 3rd party application to fill this gap unless you chose to jailbreak your phone and utilize an application like MyProfiles. I recently discovered a decent workaround that allows me to receive push notifications when I receive new e-mail messages from either individuals that I select or based on any criteria I setup within Outlook. This workaround will send a Prowl notification to your iPhone with the From and Subject information of your message. An added benefit of this is that you can turn off Exchange push (since you're getting your pushes via Prowl for the messages you care about) and do a manual check once you get something you care about, thus saving your battery. This is also a nice option to know you have new messages when you are having issues with Exchange push working properly when on your corporate wireless, thus causing your mail to not push properly (because of internal/external IP issues - a known issue).

The first step to this is to download and install Prowl ($2.99) on your iPhone. Prowl is a framework that allows you to send push notifications to your phone using Growl (for either OS X or Windows) or via API applications. I've used Prowl since it was released and used it for IRC messages and various other notification purposes, but never realized that it could be used with Outlook. After you download and install Prowl, you will need to create an account. After you create your account, login via a web-browser (not your iPhone) and go to http://prowl.weks.net and navigate to settings and obtain your API key.

Next, open Outlook (I'm using 2007). Now you will need to tweak some macro security settings by going to Tools -> Trust Center -> Macro Security and set security to Warnings for all Macros. Next, open up the Outlook Visual Basic editor by pressing Alt-F11 or by going to Tools -> Macros -> Visual Basic Editor. When you first open Outlook VBA, it will open the built in VbaProject.OTM and have a built-in class module named ThisOutlookSession. Expand the sections on the left until you see ThisOutlookSession, then double-click on this and paste these lines. Make sure you replace your Prowl API key in the code you put into the VB editor.


Save and close the Visual Basic file. Now you have to go into Outlook and write your rules that you wish to use to determine what you will be notified on. When selecting the rule action, you should have the option to run a script. When you select this action you should now have the option to select one of the 3 routines you just created - Level0Growl, Level1Growl or Level2Growl. The reason for the 3 different routines is so that you can send messages at different notification priorities, thus giving you the ability to have different types of notifications on the iPhone (since each priority has it's own controls).

The last step is to test your rules. Make sure you either include yourself in the email rules or are keying off of a subject that you can easily create. Then, send a message that will trigger your rule to yourself. You should see a Growl message, and then shortly thereafter, you should receive the message on your iPhone. If there is a problem with your VB, then the rule will fail and the VB editor will open up. You can also change things around such as Item.SenderName to Item.SenderAddress if you would prefer to see the e-mail address instead of the sender name.


Once you're sure things are working, you can create more rules and even utilize different priorities for different types of messages (On-Call, Boss, Wife, etc). You will need to make sure that Outlook is always running since these rules are client-side only. This type of selective notification can also be done without Outlook if your Enterprise isn't using Exchange. I'll touch on this in a later post. Please let me know if this works for you!

Tuesday, September 9, 2008

Thinking of using 1and1 for domain transfers? Think again!

I'm a pretty frugal guy (ok, I'm a cheapass). So when it comes to paying money for domain registrations, I typically try to shop around at least once a year and try to find the best deal out there, without trying to compromise the quality of the service being provided. Because I own about about 12 domains, even a few dollars can add up when you think of the yearly costs for multiple domains.

One thing that you may or may not know about domains is that you can pay for multiple years with one registrar, then transfer the domain to another registrar, they add an additional year to your expiration date and they (typically) honor any additional years that you prepaid with your previous registrar.

About a year ago 1and1 was offering $5.99 registrations and transfers. I had also found a coupon code for some percentage off making it a deal that was too good to pass up. I did some research and found mostly complaints of people having issues transferring their domains away from 1and1 (which is a problem with any registrar because they all hate to lose the residual money). So, to fully take advantage of the deal, I moved most of my domains to 1and1; including some domains which were not supposed to expire for several years just to tack on an extra year for a decent price. Luckily, I had moved a single domain over a 2 months before the others to "test the waters", now I'm glad I did.

All was well until for about a year until I received a bill for that single domain I moved over to 1and1. This domain didn't expire until 14-Nov-2008, yet I was billed on 21-Aug-2008 for an additional year. I went round and round with Customer Support and finally got this out of them:

From: 1&1 Internet Support

If a customer has a domain which will expire until 2015 and he wants to transfer it to us, he will pay $x.xx (or whatever the price of the domain is) for the transfer and the domain will be registered until 2016 on the WHOIS.

However, he will still pay a fee every year because our system will not honor multiple year registrations. The expiry date will now be 2016 (increment 1 year from the original expiration date) but he will still pay $x.xx/year.

This is what we call a maintenance fee.

If you have any further questions please do not hesitate to contact us.

After I received this information, I emailed Dreamhost to see what their policy was on domain transfers. This was Dreamhost's response (also, Dreamhost responded in under 5 minutes):

From: DreamHost Customer Support Team

Hello Brian,

No, no! If you have 5 years on a domain, we will not charge you every year! Thats insane!

We will only charge you if you renew the domain for another year. If you have 5 years on a domain, then it does not have to be renewed for 5 years.

Even Dreamhost feels this practice is crazy! So, once I found this out, I decided to move all of my domains that were originally transferred to 1and1 somewhere else sine they all had some period of time that 1and1 was not obeying since they were billing me from when I transferred and not from when the domains actually expired. I really wanted to move them to Dreamhost since I have received nothing but top notch service from them for my main domain and for their hosting services, but the fee of $9.95 is a bit steep (hopefully Dreamhost is listening and can get a bit more competitive here).

I ended up transferring (or, attempting to transfer - this is still on-going) these to Godaddy. I really don't like Godaddy since they have had their own issues (here, here, and here), but they at this point they can't be any worse than 1and1. I also was able to get a deal for transferring so many domains, so it came out to be about $6/domain (including privacy guard for the remainder of the time - including transferred time).

Bottom line: If you're going to transfer a domain to 1and1, be aware that they don't actually honor any additional years you've already paid on your domain. Your expiration date will be extended by 1 year, but you'll still end up paying a "maintainance fee" every year.

Sunday, August 31, 2008

8 years without a change

Yes, I realize that I haven't done anything with my website in about 8 years, probably longer than that. I figured I would spend some time trying to make it look better (ok, maybe not better, but it's easier for me to support). I haven't really added any new content with regards to Christmas Vacation or the Blues Brothers, but I have been adding some content to my Projects Wiki. The wiki is mainly a way for me to do brain dumps of different things I'm working on or been interested in, so I doubt you'll find anything there useful, but you never know.