React Native Packager TypeError: Cannot read property ‘root’ of null

While working on Find&Save‘s Cash Dash Inbox feature which is built using React Native I started the node packager and launched the app into SIM but got this error as soon as the app attempted to load the bundle:

TypeError: Cannot read property 'root' of null

Turns out the issue was an outdated watchman. Ok so off to brew update

stevet:iPhoneGeo strefethen$ brew update
Error: undefined method `link_overwrite' for #<Class:0x007fdb697392d0>

Doh! Looks like I ran into a “hole not many people should fall into“. Anyhoo, as suggested let’s try that again:

stevet:iPhoneGeo strefethen$ brew update
Already up-to-date.
stevet:iPhoneGeo strefethen$ brew upgrade watchman
==> Upgrading 1 outdated package, with result:
watchman 3.7.0
==> Upgrading watchman
==> Downloading https://homebrew.bintray.com/bottles/watchman-3.7.0.yosemite.bottl
######################################################################## 100.0%
==> Pouring watchman-3.7.0.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/watchman/3.7.0: 9 files, 240K

Whala now the packager is happy again.

Updating SSL certificate on Google AppEngine

A year ago at Google announced HTTPS as a ranking signal and following suit  I added SSL support to aroundairports.com and a few days ago I received an renewal email from GoDaddy for the cert. I recalled setting SSL up on AppEngine was a royal PITA and aligning the stars just so took several hours over a few days spelunking around the web to piece together the right steps. So this year I couldn’t quire recall all of the details though I had written a few key pieces of information down which really helped.

First, a few useful blog post including SSL for custom domains, and this Undocumented Guide to SSL for AppEngine. Once you’ve generated your key it will work for SSL cert updates so you don’t need to go through those steps again assuming you still have your *.key.pem file! With the new certs simply concatenate the files together and upload it with your PEM encoded key file (see above blog posts to create the key).

You need to select both your certificate bundle.crt and your PEM encoded key file then click UPLOAD on the Google Apps for Domains dashboard .

SSL Certificate upload

Platform for Retailers Targeted Local Deals and Notifications

Cash Dash Inbox
Find&Save Cash Dash Inbox

In November ’14 the Wanderful Media team launched a new feature within our Find&Save mobile apps called Cash Dash, a geographically targeted offer platform giving retailers the opportunity to reach consumers at key locations while out shopping. Using location aware features on iOS and Android the platform is able to suggest offers while users are out-and-about shopping. Leveraging our data on hundreds of retailers and hundreds of thousands of retailer locations as well as shopping malls all across the U.S. the platform provides retailers a rich ability to reach consumers at or near their stores with customized messaging and unique offers to help draw them in.

Find&Save’s Geo-Offer Platform is built to provide retailers a wide variety of customization options in terms of location targeting, custom messaging, deep linking, notification timing and more. These geo-notifications tie neatly into our mobile applications and offer retailers a wide range of choices for messaging consumers at the right time and location. For example, during the 2014 Black Friday shopping season we ran a custom geo-campaign for Gamestop alerting users of a special offer on a Microsoft XBOX when near their stores. We’ve also provided retailers options to educate users on upcoming store closings which can occur as a result of a merger and help direct them to the nearest alternate location.

Building a mobile geo-notification platform poses a variety of challenges on both iOS and Android with each platform having its own idiosyncracies. For example, both OS’s restrict the number of locations any one application can geo-fence at a time which means that as a device moves around it needs to utilize these precious resources carefully (think garbage collecting) to provide relevant notifications at the right locations when hundreds of thousands of locations exist. In addition to location there are a variety of other factors which play a role in presenting geo-notifications including time of day, day of the week, and open hours of the target retailer location/mall. Another factor is that some retail locations are quite large with potentially hundreds of stores. Our system takes all of these things into account and offers retailers a wide variety of mechanisms to reach their customers at or near their stores or even their competitors locations.

Cash Dash offers are now available on the web as well here.

Find&Save Android Appappstore

Error launching Google Chrome for React Native Debugging

Logged under “want to remember this for later” dept.:

Thanks to this thread for the tip.

I’ve ran into this error while trying to enable debugging via Chrome using React Native v0.4.3:

/Users/strefethen/github/iPhoneGeo/Pods/React/packager/launchChromeDevTools.applescript:686:689: script error: Expected class name but found property. (-2741)

On my machine it seems the issue stems from a change to launchChromeDevTools.applescript where it refers to “Chrome” when it used to refer to “Google Chrome”. The above error message occurred when selecting “Debug in Chrome” from the React Native Development menu in the simulator. Switching line 13:

tell application "Chrome"

to...

tell application "Google Chrome"

Find&Save iPhone Application Gets a Facelift

My team at Wanderful Media has been hard at work on our latest update to our Find&Save iPhone application which we recently pushed to the AppStore and is now available for download. FindnSave iPhone AppWe took a fresh approach to the app’s design focusing on improving user engagement and making finding local sales quick and easy.

We’ve added a lot of features in this release with some of the highlights including:

  • Visual design with larger pictures
  • Local Store-wide offer content a.k.a Featured
  • Removed the requirement for Location Services (approx. 10% of users denied this)
  • Easy sharing of offers
  • Seasonal/Holiday a.k.a. Now! content
  • Image zoom on offer detail pages
  • Geo-notifications for sales around shopping malls
  • Offer browse history
  • Buy Now links on 1000’s of offers

One factor in our redesign was reducing the need for the Hamburger/slide menu and adding a tab bar for faster access to various slices of content. Within days of making these changes it was interesting to read some supporting evidence from an article published on the The Next Web UX designers: Side drawer navigation could be costing you half your user engagement saying:

On the other hand, if your app has multiple views that users will engage with somewhat equally, then side navigation could be costing you a great deal of your potential user engagement, and interaction with those part of the app accessed via the side menu.

As you can see in the screenshot we’ve not completely done away with the Hamburger yet but we’re continuing to focus on quick access to our core content. Even in just the few days this version (v1.5) has been in the AppStore we’ve started to see positive numbers on engagement. We’ve also applied changes to how we approach users for push notifications drawing some advice from an article by Clusters founder via techcrunch:

Our biggest takeaway: don’t ask a user for access until you really need it, and make sure it’s crystal clear what they will get in return.

One of our biggest behind the scenes changes has been refactoring our iOS codebase moving to support a Universal Binary that will help us leverage code across iPad/iPhone and keep evolving both applications more quickly. While this has been a big release it’s really just a first step as we have a large backlog of features and improvements to come making for a busy and interesting summer.

Please make iOS lock screen camera access optional via Settings

My request to Apple on the camera icon on the iOS Lock Screen:

The camera icon on the iOS lock screen is to a child like a Fart Gun from Despicable Me 2 which is to say they can’t stop using it.

Please, make it an option.

If you have young children you can likely relate, if not you should really see the movie it’s quite funny.

But seriously. Can we get an option here?

I’d prefer not to repeatedly have dozens of blurry, pictures of the carpet, couch, floor, ceiling, siblings, goofy faces, all variety of inanimate objects and alas things which shall remain nameless streaming to all my other iDevices let alone getting shared on the big screen via Apple TV.

Seriously, an option. Please.

Found this quote from a data researcher at Microsoft interesting:

I don’t make decisions from my gut. I make decisions based on as much information as possible, and then I make them with the least emotion I can

David Rothschild

Google SERP Ignoring Ad to Content Ratio “Guidelines”

While doing some SEO research this morning I ran the Google search pictured below…

Having spent considerable time building sites/businesses that rely on Adsense as part of their revenue stream I can think of a number of Google algorithmic penalties this ad/content ratio seems to violate.

Can you?

Google ad to content ratio problem

Relevant article from Search Engine Land:

Have The Same Ad-To-Organic Ratio As Google Search? Then You Might Be Safe From The Top Heavy Penalty

Matt goes on to add this disclaimer:

Hmm, guess I’m a cynic though I just tried lots of searches, most with brand names as I’m working on a shopping site, all had ads just like what’s pictured above. While percentage wise there are probably large numbers of searches that do not have ads that doesn’t mean ones that do should so blatantly violate the ad/content ratio.

Nike Shoes
Levi Jeans
etc. etc.

[Updated: Dec. 6, 2013] Moz Blog has an interesting article speculating on Google’s next steps in 2014 with a nice analysis of these relatively new ads. Peter goes on to add:

This new format has been running on mobile browsers for a while now, and Google’s widespread testing makes it look like a foregone conclusion for desktop search. This change will have huge implications on both organic and paid CTR in 2014, regardless of the final form.

Dr. Peter J. Meyers – November 2013