Tuesday, April 30, 2013

How to Temporarily Unroot Your Android

I previously posted about Flixster not allowing me to watch my Ultraviolet Digital Copy of Dredd since my Galaxy S3 was rooted (CM10.1). I have since seen lots more complaints about apps that block rooted Android phones. Most of these apps have to do with digital media, so the anti-root lockdown isn't surprising... even if it doesn't really make sense. The debate as to why a rooted Android would be blocked from using a specific app is immaterial. The fact is, Android root blocking apps exist and there is something you can do!

It is actually a simple and awesome app called OTA Rootkeeper, by none other than Project Voodoo. The techno-wonder that brought you Voodoo Sound and many other great Android utilities and apps. OTA Rootkeeper allows you to 'unroot' your Android temporarily. It backs up your 'root' and stores it away for safekeeping until you need to go back to using root-required apps like Titanium Backup and Root ExplorerOTA Rootkeeper keeps your phone 'unrooted' as long as you need to use stingy anti-root apps like Flixster, but can restore root on command to set everything back to normal again!

Using OTA Rootkeeper is a very simple 3-step process, though be sure to read all the warnings.... it is not compatible with all Androids and configurations. I am running is on a Galaxy S3 CM10.1.

  1. BACKUP ROOT: Launch the App, give it Superuser permissions and tap 'Protect root'
  2. UNROOT: Tap 'Temp un-root (keeps backup)'
  3. RESTORE ROOT: Tap 'Restore root'


Wednesday, March 27, 2013

How to Switch Between Multiple Accounts for Marvel War of Heroes for Android



Marvel War of Heroes has got me hooked! It is available on both iOS and Android and allows playing between players on both platforms. Like many mobile games out there, this game 'throttles' you as you only have so many energy points or attack points to spend before they recharge. This results in only a few minutes of gameplay at a time before you can't really do anything else and have to wait for your energy/attack to recharge.

You can keep the Marvel War of Heroes gameplay going by setting up multiple accounts and switching between them on your Android. It is as easy as tapping a widget and selecting a different account before you re-launch Marvel War of Heroes! There are a few different ways to do this, but this specific method couldn't be easier!

How do you switch between multiple accounts on Marvel War of Heroes for Android?
*Each account needs a UDID (Unique Device ID). If you create the accounts on different phones, you don't need to worry about this. If you are creating accounts from one phone, you'll need to force the UDID to change which can be done a few different ways. I am not going to explain how to change your UDID. I don't recommend doing it and it can cause issues with other apps that are installed. The best practice is to just create alternate accounts on alternate devices.

Use Titanium Backup Pro and setup multiple profiles for the app.
First of all, Titanium Backup Pro is a must-have Android app (see here and here). The main point here though is that setting up multiple profiles in Titanium Backup is easy and quick.

  1. Select the option to setup/switch profiles toward the bottom right of the main Titanium Backup screen.
  2. Tap "Create a new data profile..." (this is your primary account, so name it appropriately).
  3. Go ahead and make additional profiles for any additional Marvel accounts you have.
  4. Tap Backup/Restore at the top of the main Titanium Backup screen and find Marvel War of Heroes.
  5. Long press on Marvel War of Heroes and select the option "Enable 'multiple profiles' for this app"
  6. Now add the Titanium Backup Data Profile switcher widget to your home screen. You can tap this widget to quickly change between profiles/accounts.
  7. Use the widget to change to one of the alternate accounts you've setup and then re-launch Marvel War of Heroes normally... it will ask you to login. This login will be associated with the currently selected Titanium Backup profile.
  8. Use the widget to change to your primary account and re-launch Marvel War of Heroes. You'll be logged in as your original/primary account.
  9. Now you can easily switch between accounts and keep the game going!
    

Monday, March 25, 2013

ColdFusion and "Reserved Words" for MS Access

While I normally only use SQL Server, Oracle, or PostgreSQL, the need inevitably arises to work with an Access database in ColdFusion. Sometimes it is solely for data migration, sometimes to meet a client's specs, but regardless of the reason... there is this annoying thing that must be dealt with when using Microsoft Access databases: "Reserved Words".

You see the issue is that you can't use Microsoft Access reserved words in ColdFusion queries or they will blow up... and the kicker is: there are a LOT of reserved words. Check out this list of reserved words for Access 2000 alone. This means you will inevitably encounter issues when writing queries.

There is a very simple solution though! Simply escape these reserved words by placing inside [brackets]. For example, a column named DATETIME will need to be referenced as [DATETIME].

Hopefully you found this blog post helpful. Sometimes the simplest solutions are the hardest to find!

Friday, March 22, 2013

How to Dynamically Restrict From/To Dates with jQuery UI Datepicker

It has been awhile since my last post, but things sure have been busy over at Limelight Web Development! Anyway, I figured it was time to update the blog and pass along a useful piece of jQuery magic!

You are probably familiar with jQuery UI Datepicker already. It has a lot of options built in, a couple of which allow you to restrict the selectable 'to' and 'from' dates. The provided examples over at the jQuery UI site are useful on a single implementations, but what if you want to implement this across your entire site and not have to mess with it any more?

Let's assume your forms have a consistent structure across your entire application/site, like so:

 <!-- To/From Date Form Block -->
<form action="/action/" id="myform" method="post" name="myform">
  <div class="horiz">
    <div class="leftColumn">
      <label for="from_date">From:</label>
      <input class="datepicker" name="from_date" type="text" value="" />
    </div>
    <div class="rightColumn">
      <label for="to_date">To:</label>
      <input class="datepicker" name="to_date" type="text" value="" />
    </div>
  </div>
  <div class="submitWrapper">
    <input name="submit_dates" type="submit" value="Submit" /> 
  </div>
</form>

The main requirement being that all date inputs have class "datepicker", all from fields contain "from" in the name attribute and all to fields contain "to" in the name attribute and they are each descendants of a 'form' element. They don't have be direct children as you can see in the example code block above.

Now to implement datepicker across the entire site with automatically restricted maxDate and minDate on the appropriate fields, the following code will do all the work for you. It will make the to-date's minDate the same as the from-date's selected date. It will make the from-date's maxDate the same as the to-date's selected date.


 //jQuery UI Datepicker Universal Config
 $('.datepicker').datepicker({
  showAnim: "slideDown",
  dateFormat: "mm/dd/yy",
  onSelect: function(dateText, inst){
   if( $(this).attr('name').indexOf('from') > -1 ) {
    var $from_date = $(this).datepicker("getDate");
    var $to_date_input = $(this).closest('form').find('.datepicker[name*="to"]');
    $to_date_input.datepicker("option","minDate", $from_date);
   } else if( $(this).attr('name').indexOf('to') > -1 ) {
    var $to_date = $(this).datepicker("getDate");
    var $from_date_input = $(this).closest('form').find('.datepicker[name*="from"]');
    $from_date_input.datepicker("option","maxDate", $to_date);
   }
  }
 });

Thursday, February 14, 2013

Google 'Flaw' Puts Users' Details on Display

A friend recently shared this article with me, entitled "Google 'flaw' puts users' details on display" which was posted at news.com.au. It basically trashes on Google for sharing your personal info with the app developers from which you purchase apps. First of all, the last time I bought something at +Lowe's Home Improvement and used self-checkout I had a camera staring me in the face the whole time. The last time I ordered something from +Amazon.com, I gave them all my personal contact info. An app market mining your info shouldn't be surprising either.. after all you are still a customer buying a product.
That being said, this may be concerning if Google users weren't already used to giving up privacy in return for services. As soon as you signed up for that first Gmail account, you were on board whether you knew it or not. Nothing privacy related should come as a surprise at this point when it comes to Google or any other company. Every time these types of articles pick up steam the biggest shock to me is that people still think this is news. Ever since you plugged your computer into the internet, you were done...

I was shocked the first time I setup a years ago and had to provide personal info including address and phone number to register the computer before using it. Remember the iPad/iPhone setup process (assuming some Apple employee didn't do it for you)? You gave your life story standing there in the Apple Store or at the cell provider just to get setup. It is nothing new.
If you want full privacy, throw away your phone and pull the plug on your internet connection. Otherwise, be prepared to have your identity and everything about you mined by every company out there... especially the ones that provide the services you use every day. If you still get squirmy thinking about Google 'spying' on you when you use services like +Gmail, +Google, and +Google Maps I hate to think of your reaction to the news of Intel's new Internet-TV Set-Top Box which is on its way to market. +Intel will be deploying it with a camera that recognizes you and learns everything it can about you... it is a TV that watches you!
In summary, if you still get unsettled over privacy, Google, the internet, and so on, I don't blame you. I am just saying I waved the white flag a long time ago and in return fully embraced the wave of resulting technology. My advice to you: consider waving the white flag or face the fact that you will be left in the dark ages until you get on board. I doubt this culture of personalized technology is going to slow down any time soon!

    

Friday, January 11, 2013

Google Analytics for Beginners (Charlotte, NC 11/17 @ 11:30AM)

Don't miss my presentation on Google Analytics for Beginners at the next @cnpcharlotte meeting!
  • Have you heard of Analytics, but don't know what it is?
  • Have you been told you need Analytics, but don't know why?
  • Have you ever thought about implementing Analytics, but thought it was too much trouble or too complicated?
  • Moreover, do you currently have Analytics running on your website but don't know what to make of the data or how to access the data you want?
If the answer to any of those questions is "Yes," come on over to the presentation! I will be covering those topics and answering questions. I will also throw in some tips that I use on sites like CartCentric.com.

I have been developing websites since 1998 and was an early adopter of Analytics. Since then I have deployed Analytics onto countless websites and became a Google Analytics Qualified Individual through Google's certification program. I am the Website Development Manager at Limelight Web Development and a member of Charlotte Networking Professionals. Come by and meet everyone, have some good lunch, ask me some Analytics questions, and have a great time!

Location: Villa Antonio Italian Ristorante
                 4707 South Blvd
                 Charlotte, NC 28217

Lunch/Admission: $14

RSVP (optional): Facebook Event Page

Tuesday, January 8, 2013

How to Watch UltraViolet Digital Copy Movies on Your Android

So you just bought a new DVD or Blu-Ray and it includes a Digital Copy/UltraViolet copy... what does that mean? First of all, Digital Copy refers to a digital version you can unlock to watch via iCloud/iTunes... basically for Apple people. Since we are talking about Android, that is not what we are trying to achieve... that is where UltraViolet comes in.

If you unlock the UltraViolet version of the movie, you'll be able to watch it via Vudu (WalMart's media streaming service) which is accessible via your computer/PS3/blu-ray player/smart tv/etc. Unfortunately, Vudu's Android app is not supported across all Android devices. It also has some performance drawbacks (currently at least). The alternative? Watch your UltraViolet copy via Flixster for Android. Flixster is a free app and it can tie to your UltraViolet account to access the digital movies you've unlocked. It won't allow you to stream if you're on a rooted device, so you'll either need to be on a non-rooted Android phone or use something like OTA RootKeeper (as described here and at your own discretion).

Another thing to note is that when you buy a DVD or Blu-Ray with Digital Copy/UltraViolet, you'll have to choose one or the other. You can't access both digital versions and you can only redeem the code once. Apple's Digital Copy is only usable via iTunes/iCloud which greatly limits the devices it can be used on. UltraViolet can be used on many more devices (including Apple products), therefore being more flexible and my suggestion.

Here is a screenshot of my Samsung Galaxy S3 playing the UltraViolet copy of "Dredd" (released today!) via Flixster. The performance has been perfect!