Shots Fired: Playing Catch-up

“So, when I see Apple drop the price of their struggling, lightweight productivity apps, I don’t see a shot across our bow, I see an attempt to play catch up.”
– Frank Shaw, Microsoft VP of communications

I didn’t even think of it this way but he has a point. The Verge also noted:

“Surface and Surface 2 both include Office, the world’s most popular, most powerful productivity software for free and are priced below both the iPad 2 and iPad Air respectively,” Shaw writes. “Making Apple’s decision to build the price of their less popular and less powerful iWork into their tablets not a very big (or very good) deal.”

I’m not a big fan of Office, prefer the better collaborative Google Drive [who would have guessed?], but am definitely not an iWork fan as it is even less collaborative [unless you have friends/collaborators only with Macs] so I don’t have a dog in this fight but it is definitely an interesting perspective.

I initially did take this as a shot at Microsoft but Shaw makes some good points. What say you?

Copy of a rip off is a shameless rip?

Let the [Apple] media tell it and you’ll believe Samsung copied Apple’s “Hello” commercial but…then again…the original iPhone commercial was a rip off.

Will Park way back in the olden days of 2007 wrote Apple Ripped Off Their 2007 Oscar’s iPhone Commercial which had this quote from Christian Marclay regarding Telephones from 1995 and how Apple handled it:

So, according to Marclay, Apple “approached us [about using Telephones] and I said no, and then they just went ahead. The way they dealt with the whole thing is pretty sleazy.”

Guess it is a copy of a rip off.

In response to:

Ok, that’s enough. I think you get the idea.


Then there’s the truth

I’ve been through numerous debates on Android malware. The truth never fit the narrative spit out by, of all people, virus companies.

Then today…the truth:

 Based on the data from tracking over one and a half billion app installs Google obtained convincing evidence that the rate of “potentially harmful apps” installed is stable at about 1,200 per million app installs, or about 0.12%.

It’s verrrrry easy to read a headline about Android malware and respond with “open” jokes. Let’s see how many post the truth.

Android vs iOS: Product dev

I ran across this post by Audiobox through +Matias Duarte and enjoyed these nuggets:

For reference, Google’s developer instructions for how to set up beta testing are ~350 words. Apple’s? 2800.

That’s critical. Google’s alpha/beta updates from May rocked my world too.

Worlds apart:

According to Apple, iOS app beta testers who run into crashes are expected to sync their device to iTunes, find a CrashReporter logs folder on their computer, and then email a log file to the developer.

Android testers hit “send” on a popup.

0-60 (asterisks mine):

Android, by comparison, is a breath of fresh air. […] Trying the very first build of your app on real hardware is as easy as hitting “Run.” No provisioning profiles. No developer accounts. No bull**.


While everyone else is building for iOS and wasting weeks in the App Store submit-review-deny-resubmit doldrums, you could be racing ahead on Android, where app burnout hasn’t yet set in.

That’s because the best part, the dirty little secret, is that Android users are starved for beautiful apps.

Yes. Exactly. The beautiful apps desire is strong on Android and it is the right time to build beautiful apps.

Obviously iOS is a great platform but the approaches are literally night and day. I do like what I’m seeing in XCode 5 and iOS 7 dev [posts coming soon] for native dev but 0-60 has changed much.

Facebook goes all in on Play Beta Testing


Beginning today, the Android beta program will give users who opt-in access to the latest versions of Facebook for Android before the general release. Our goals with this program are to expand our pool of testers and gain feedback across a more diverse set of devices. Just by using the app and reporting issues, beta testers will be able to help us improve performance on a wide variety of Android devices we may have  otherwise been unable to test at scale.

Facebook posted this today. It falls in line with my thinking on Google’s efforts. Simply put and IMHO…the Play Store definitely provides one of the best developer experiences.

Google Play Developer Console – Alpha Testing

Google Play Developer Console – Alpha Testing

I was impressed by the Google Play Developer Console announcements surrounding alpha/beta testing. At work and on other personal/contracting projects I use TestFlight. They just added Android support but with the latest updates to the Developer Console…I’m not as intrigued as I once was. After seeing so many great sessions at I/O 2013, I found myself itching to test things out so I started sketching my Windows 8 app Timely (easily the fastest to dev out of the bunch) for a port to Android (native).

In another post I’ll detail different tidbits about porting the app to Android but in this post I want to focus on the testing. (more…)

JavaScript Taste Test Follow-up

JSTT has updated their site to showcase what happened at the event. Check out the video and the details in the text to get an idea of what happened and how it all went down.


That’s what you can do with HTML5 and JavaScript!”


PS – There is a pretty awesome quote from a cool fella at the bottom. 😉

Published Windows 8 Apps

Published Windows 8 Apps

I am now the proud developer of 3 Windows Store apps and I’m excited about it. It isn’t about getting rich, although I’m looking for those avenues, but more about the process/approach used to launch them. (more…)

WordPress comment_form saving to wrong post

This was a doozy but it turned out to be a simple fix. I don’t yet know the cause but have seen a few rumblings of the W3 Total Cache plugin being the culprit.

In a custom them, you call comment_form to add the default WP comment form. You can do all sorts of changes but customizing is pretty difficult. It will automatically call comment_id_fields which adds the hidden fields for the parent comment (comment_parent; for comment replies) and post id (comment_post_ID; for the comment to attach it to).

I believe W3T is the problem because comments worked just fine before using it and the problem I found was the comment_post_ID defaulted to one number and never changed. Something was wonky but the fix was super simple.

comment_form takes two arguments: $args and $post_id. Yep…easy enough…just pass the second argument and you’re good to go for any post you want to add a comment to.

<?php comment_form( $args, get_the_ID() ); ?>

That’s it. get_the_ID refers to the current page/post ID, while in The Loop, so it’ll always be there. Just update your themes comments.php and enjoy the fix.

Hopefully this helps someone else as Google was sparse on results for this specific problem.

HolidayJS FTW

HolidayJS FTW

Yesterday I attended my first all javascript conference. It was hosted at Gangplank in Chandler, AZ and was a top notch event. I believe there were about 65+ attendees out of the 100 registered. It wasn’t just a conference though…it was a hackfest! This was my first time in a hackfest and it was a fun learning experience so I thought I’d share my thoughts.


The morning started with sessions. It started with a session on mobility by @PJ_Newton of WellBeingCorps. I’ve long tried to remember to hold good posture but PJ showed a lot of new things I could try while I keep failing to achieve good posture. 🙂

Following PJ was @UHDUH (Chris Cowan) of Plus 3 Network with an intro to Node.js. I was already somewhat familiar with Node.js but Chris covered more details in how they use Node at +3. The main point I took away was asynchronous data calls being better than a typical synchronous backend language. While Node isn’t the only way to achieve this, it was interesting to see this as a selling point.

Next, @MONTESLU (Luis Montes) took on HTML5 Boilerplate but it wasn’t really a boilerplate talk as much as it was a talk about a lot of the new things you can do in HTML5 (WebRTC, audio/video APIs, etc). It was a good demonstration of what’s possible in HTML5 though. The most hilarious statement I heard all day was WebRTC was the final nail in Flash’s coffin (not like DRM content is important or anything). It was so funny because he followed that with a graphic showing how poorly supported it is, as of this post. You can do some awesome things, that we’ve seen a million times over…in Flash, with WebRTC,in a supported browser, but you can’t nail a coffin with weak nails. Just saying. 😉 Great preso though and, sans the connection issues, some awesome demos.

I probably got the most out of the next session by @WEAREFRACTAL (Aaron Murray of Fractal). His talk, Full Stack Javascript, was tops to me not because of the content, per se, but the theory/approach. Aaron and Contra (his partner) have 92 public repos on GitHub. The number isn’t the impressive part, although it is impressive, it is the separation of specific code to libraries to complete their projects. They are DRYing things up tremendously as they code by creating separate libraries. One of their top used repos is their boilerplate, since they use it for every project. I’ll touch more on this later but it opened my eyes to not just using popular boilerplates but creating boilerplates for yourself to smooth the start of a project.

@eschoff (aka Contra; a 20 year old, top notch dev) followed Aaron with a preso on Websocket Patterns. This is one of the most impressive features of Node: the simplicity of implementing sockets. Contra has done a solid amount of work with sockets and is realllllly big on sockets replacing normal normal HTTP since the connection doesn’t close. Great preso but I’m not sold on dropping REST at this point. It is 100% supported so why bother with sockets AND basic HTTP calls? The future is bright though.

Then we grubbed. This deserves a section of its own so read more below. 😀

@eburley (Eric Burley), my engineering manager at WebFilings, presented Testing Javascript with Jasmine. I didn’t rank this one as a favorite because…well…I get it from Eric all the time, especially on GitHub pull requests when I don’t have something tested. 😀 Aside from that, I think he did a phenomenal job explaining not just how Jasmine works but how to test and, most importantly, when to test. If you’re writing any JS heavy apps, you need to test.

@robrich (Rob Richardson of Richardson & Sons) finished the sessions with a talk on Agile.  From a presentation perspective it was somewhat weird ’cause he used a text editor to type his talking points as he went. The content was solid, as I’m a big believer in Agile now (thx WebFilings), but typing as you present was a new one for me. Solid job though. Rob also served as a team member in the hackfest portion of the day.

Overall, the sessions were great. The outright love of NodeJS was expected but I didn’t think people were using it for traditional web apps. I came out of it with a greater respect for NodeJS but when you see a direct connection.query(“SELECT something FROM somwhere”) after having used ActiveRecord…you walk away far from convinced to switch. As noted above, it is early on so I’m sure people will build better modules for it but right now I have no interest in building a web app in Node.


INCREDIBLE!!!!! I have never been to a conference with a better lunch; real talk. This was an amazing spread right up my alley. I mean: fried catfish, pulled pork, fried chicken, salad, red beans & rice, macaroni and cheese (two different one’s, not plain either), an awesome habañero sauce, and more. A…mazing!

Needless to say…there were a TON of seconds going around. San Tan Brewery was an amazing caterer for the event.


Being my first time doing such an event, I was a bit unsure of the best way to handle it. After doing it, I’m much more equipped to do so as now I see how important every minute is for finishing the project.

I was teamed with @Rob_Rich, Jeff Plummer, Demitrio Herrera, and Jon Thomas. We struggled to come to a decision on what to build then once we did it took a minute to get the ball rolling. My biggest goof was with Require.js when I couldn’t get a controller to be included properly because I used “require(…) vs define(…)” in the controller file. :-/ That was a major waste of time along with another goof on using a directive but I ended up ditching that and broke all kinds of rules with my controller manipulating the DOM but it wasn’t a “pretty code” contest. 😉

We didn’t really get rolling until well into 5 PM. No prob until you realize we were presenting at 6. lol. Our Connect4JS (source) game was finished in the last few minutes and took 3rd place for a prize of PeepCode 5-pack, which is awesome. 1st place all won Nexus 7s and 2nd took home Lumia 800s (not sure the exact model number).

The swag, as a whole, was pretty sweet. I walked away with a free Manning Book (which one TBD), a pretty sweet MailChimp shirt (just like the 1st one here), and PeepCode videos.

Final Thoughts

I think I’m in love with hackfests. 🙂 If they are all as quality as this one, I’ll attend as many as I can. This was fun and was a great job by @simpulton (Lukas Ruebbelke) and everyone else involved.

I forgot to make note of the Nexus 10 one of the devs won. He was also on the winning team so he won a Nexus 7 as well. The swag at this thing was off the hook!

Google TV v3 Looks Shaweeet!!

I love my GTVs but have been waiting on it to mature. This update gets it about 85% to where I want it to be and I can’t wait to upgrade my Revue units. It is by far more useful than my Apple TV (I loathe changing TV inputs) already and this just takes it to another level.