Part of building mobile web apps is understanding the myriad of mobile analytics and in part visualizing the data to shed light on trends that my otherwise be difficult to see in tabular data or even a colorful cohort table. I’ve been building a dashboard using R, RStudio, Shiny, and Shiny Dashboards aggregating data from MSSQL, Postgres, Google Analytics, and Localytics.
I previously blogged about building a dashboard using R and as with learning any new programming language there are a set of essential tasks to figure out before you can be very productive so I thought I’d post the set of bookmarks I’ve cycled through as I learn R.
Recently, I’ve been building a dashboard for Find&Save using R, RStudio and Shiny Dashboards and one of our core mobile metrics is 30 day active users for both iOS and Android which I can get from Localytics (our analytics platform) via their API. Googling around I found I’m not reinventing the wheel (via SO) though I did run into a problem where the response failed to convert properly thus the post.
Here’s the original function from SO with some slight tweaks for my needs:
Short post to get this indexed as we didn’t find it elsewhere on the web.
While working to ship a new release of the Find&Save Android app we ran into a crash on launch which only occurred in our release build. The crash was in JSCExecutor.cpp which is part of React Native and left very few hints as to what was wrong with no call stack, Crashlytics logs etc. The only error we had was:
ReactNativeJNI: Check failed: *m_isDestroyed JSCExecutor::destroy() must be called before its destructor
For some reason React Native truncates fatal error message to 75 chars which is a bit of a bummer when you’re looking at a Crashlytics report like this:
“Unhandled JS Exception: undefined is not an object (evaluating ‘this.props….”
A few weeks ago I decided to upgrade an aging Motorola SB5101 cable modem to a new Motorola SURFboard 400 Series SB6141. After the obligatory call to Comcast to register the new MAC address everything was going swimmingly until I turned off the lights and suddenly landed in the world of TRON. The entire room was basked in cool blue light from the “stupidly, ridiculously, blindingly bright” LED’s. Seriously, they’re that bad and more, blinking incessantly and with a case full of holes it nearly filled the room. Continue reading
At work I’m in the midst of upgrading Find&Save to Xcode 7 and in this post I thought I would capture the issues I ran into while migrating our app to the latest build tools. I decided to keep my Xcode 6 install by renaming it “Xcode 6” and installing Xcode 7 along side it and all that worked pretty seamlessly (though keep reading because the AppStore updates will bite you). Once installed I opened our project workspace and hit Project | Build and thus began the journey of our migration.
A few weeks ago my son woke me up early to remind me that we had a date to capture the sunrise on a timelapse in Santa Cruz.
Here are our results using a Sony a7II (390 photos):
In XCode I ran into an error which was the result of a (my) bad merge that caused this problem when building an app:
/bin/sh: /Users/strefethen/github/iPhoneGeo/Build/iPhoneGeo/Build/Intermediates/iPhoneGeo.build/Debug-iphonesimulator/iPhoneGeo.build/Script-22C5773E1BB449FF00E72A71.sh: (null): bad interpreter: No such file or directory
The issue was that the Shell command for the Build Phase had gotten removed:
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