Come Hang in the Treehouse
December 27, 2011 by dave@kiwiluv.com · Leave a Comment
I
I’m a developer, not a designer. I’ve always aspired to improve my front end skills. I have very strong opinions on how things should look, how site navigation should work, etc. Sadly, I have absolutely no ability to code any UI except for an unstyled steaming pile of HTML. I started watching the DOCTYPE podcast, hosted by Nick Pettit and Jim Hoskins in an effort to get some insight into the mysterious world of design. I had just caught up on their back catalog when I noticed that the last episode was posted back in March of 2011. Hmmm.
Like any reasonable person, I simply assumed that Nick and Jim had been abducted by aliens and went on about my business. Then, in one of the numerous podcasts I listen to I found a clue to their whereabouts. Turns out the alien abduction thing wasn’t far off. They’re both being held captive at Carsonified, I’m sure being subjected to strange medical experiments, probing, etc.
More importantly, when not being researched they are contributing to Carsonified’s latest creation, Treehouse (teamtreehouse.com). This used to be know as Think Vitamin Membership, but they’ve apparently re-positioned it, pumped some more resources in it and got Jim and Nick on-board to produce instructional video content.
Basically, Treehouse is an online subscription service with some pretty high production quality content on web design, web development and iOS development. Having been deprived of my instructional video fix, I joined up and am now addicted. Like a video game, Treehouse awards you badges for successful completion of quizzes and code challenges. Being the completionist I am, I’m going through all of the content even if I know the subject well. In doing so I’m finding out that the things I know well, maybe I didn’t know as well as I thought I did. Even if you’re experienced in any of the tracks the offer, it’s worth going through them again.
Although new and a work in progress, the content and site is very polished. Some of the videos haven’t been changed to the new Treehouse branding, but who cares? I’m sure they’ll get to it. The code challenges work well and the quizzes are somewhat evil in that if you get one wrong, or go review the material, the quiz resets so you have to answer all the randomly selected questions again. I did encounter a bug. One of the initial code challenges was to add a simple <div> to the body of an HTML page. I did it correctly, but Treehouse didn’t agree. I then pasted the example code into the box and it still thought it was incorrect. Refreshing the page and starting again fixed the problem though.
Treehouse starts at the absolute beginning for all topics, so if you’re a more experienced developer you might not find the initial stuff useful. If so, just take the quiz without watching the videos. Word on the street is that Facebook is looking at the Treehouse profiles and badge collections to identify potential recruits, so your Treehouse badges might turn into good resume bullet points at some point.
One thing that bothers me about Treehouse is that their mascot is a tree frog. Tree frogs creep me out. They never blink. What’s up with that?
Weinre for Mobile Web Debugging
May 11, 2011 by dave@kiwiluv.com · Leave a Comment
This is a video on Weinre from Jonathan Stark. He used this in a demo at Philly ETE which was very impressive. More importantly, while most people pronounce this “Winery”, Jonathan pronounces it “Weiner” which I find hysterical. I found this while checking out his blog. I’m in the middle of his book “Building iPhone Apps with HTML, CSS and JavaScript” which, so far, I highly recommend.
I’ve decided to switch one of the apps I’m working on from a native Objective-C implementation to this approach using PhoneGap to package it natively. The app in question is very content heavy, so I think it lends itself to a web-centric approach.
As soon as I’m finished, I’m going to put a post comparing the process between Objective-C native development and PhoneGap. I plan on making many inflammatory statements and then posting the link to Hacker News (the finest spelling and grammar checker on the planet). I can always rely on HN readers to correct my punctuation, and if I’m lucky call me an idiot (see last post).
More importantly, if you’re trying to debug a web app on an iPhone you’ve got to give Weinre a look. It’s way better than the alternatives!
HP Veer – How Dead is WebOS?
May 8, 2011 by dave@kiwiluv.com · 14 Comments
I got this in an email the other day. Since the demise and assimilation of Palm by HP, I’d largely forgotten WebOS. However, this triggered a few thoughts (I have fewer than you would think).
I’ve been noticing how frameworks such as PhoneGap (a popular HTML/CSS/JavaScript framework) are becoming popular for cross platform mobile development. I remembered that WebOS was actually one of the first platforms to adopt that approach. I also remember that, at the time, it was criticized for being hard to develop for. Times are definitely changing…
I followed the yellow brick road to the HP WebOS developer center. I have to say, a couple of things impressed me.
The WebOS Product Lineup
Remember when it was just the Palm Pre? Well, it’s not much bigger now but doesn’t look bad.
Now that I’m lugging an HTC Thunderbolt or iPhone around, I really miss smaller phones. Charging the battery every four hours is also a big downer on that damn Thunderbolt.
The Veer is just my size. I check email, Twitter and Yammer frequently. Sometimes I text, but I rarely watch a ton of media so the big screen on these larger smart-phones is just a nuisance. But I digress. HP has a small, medium and tablet form factor. If they’re serious I’d be surprised if an iPhone-esque form factor weren’t also in the works.
The Development Suite
They provide a complete SDK which integrates with Xcode for OS X users. For mainstream app development, PhoneGap seems to be the weapon of choice. Also included in the SDK is a Plugin Development Kit (PDK) which allows native (compiled) development for OpenGL/SDL in C/C++. This is intended for high performance graphics for games, etc. but is also useful for more intensive processing which may not be JavaScript’s forte.
Another Smartphone Platform, Seriously?
Does WebOS matter anymore? To be clear, we see this as a race for third place in the smart-phone market (sorry RIM/Blackberry…the PlayBook won’t save you).
Personally, after Windows Phone 7‘s recent missteps (phone bricking, lolly-gagging over updates, etc.) I’d put my money on WebOS. iOS and Android will continue to dominate for the foreseeable future. WebOS may get traction depending on how skillfully HP markets it and to what degree they provide compelling devices. It’ll be a tough road for them.
From a developer’s standpoint, this proliferation of smart-phone platforms is maddening. Each has its own tech stack for developers to deal with. That fragmentation is driving developers to embrace frameworks such as PhoneGap, which WebOS has wholeheartedly adopted. In other words if you’re producing iOS and Android apps with PhoneGap, supporting WebOS devices isn’t much of a stretch. Supporting Windows Phone 7 is a completely different story at the moment. Even iOS, which ordinarily has to be programmed in the unholy spawn of Smalltalk and C (Objective-C), is supported by these frameworks less some of the stranger native controls (I’m looking at you UIPickerView).
What Now?
I don’t know about the rest of you, but here’s our evil plan:
- Stay focused on iOS (I have to take horse tranquilizers to cope with Objective-C) and Android.
- Get up to speed on PhoneGap and other HTML/CSS/Javascript platforms.
- Keep an eye on the market acceptance of the new devices HP is introducing.
Like I said, my bet is on WebOS over Windows Phone 7. WebOS even beat Windows Phone 7 in the single most important determination of the success of any mobile platform.
The availability of Angry Birds.
======================================================
Update 8/24/2011 – Following a fascinating earthquake that started in Virginia, shook Philly (even I felt it napping in my office) and heading west, HP announces that they are ceasing operations of the WebOS business unit. That means one of two things:
1. Yep, it’s dead.
2. HP has other sinister plans in a software-only realm.
Either way, if you’re a WebOS developer I urge you to use those skills and pump them into another platform. Things are going to get ugly.
Smart Phone GPS Quality
December 29, 2010 by dave@kiwiluv.com · Leave a Comment
These guys are pushing smartphone GPS capabilities to their limit. The typical consumer may not notice, but there’s a wide quality variation among iPhones and Android devices…check it out on David Lokshin’s blog. He’s uncovered the dirt that Steve Job’s will never speak of…
MonoTouch iPhone Development
November 7, 2010 by dave@kiwiluv.com · 1 Comment
In general, and this is not a universal truth, but in most cases products with obnoxious monkey’s in their logos are pretty good. Despite this hard to dispute observation, I have been reluctant to try MonoTouch out. MonoTouch is a development enviornment for iPhone which allows you to develop in C#/.NET.
Recently, some respected colleagues prompted me to give it a shot. I didn’t need much motivation aside from their assurances that it didn’t suck, because after years of trying to peacefully coexist with Objective C, I’m about ready to give up. When OS X came out, I recall thinking “Cool…now I can teach myself to program for this…what fun.” Then I cracked open the Objective C book and had to be put on oxygen. This is my impression of Objective C…
Yep, NeXT took C, a perfectly serviceable computer language and grafted alien DNA into it to make it Object Oriented. Ever see the Telepod accident in the movie “The Fly” that produced Brundlefly? Objective C is the computer language equivalent.
My next confession is a difficult one to make. I like C# and .NET. I’m comfortable with C# having been a Java developer back in the 90′s when Java was cool and not funded by the Yahoo Toolbar (what’s up with that Java?) and spent a few years doing ASP.NET. C# was a very skillful ripoff of that highly successful, but aging, language. All in all, a decent language. Yes, I make fun of .NET developers, having been one myself, but the thought of coding for iPhone in C# rather than Objective C (shudder) had a lot of appeal. So off I went to download MonoTouch.
Installation
I thought a good first step would be to install it. I don’t read instructions, so I downloaded the trial package, installed it, then could not find it. Eventually I realized that MonoTouch requires separate downloads of the Mono SDK and MonoDevelop IDE. Probably should have read the instructions, but eventually I got everything installed. MonoDevelop 2.4 elected to annoy me by informing me that a new version was available…which prompted me to download MonoDevelop 2.4. I went through that about 8 times before I caught on….
On to the Code
With everything installed, I decided not to stray too much from the introductory tutorial. It is a bit out of date, but hopefully not too many pitfalls. I was presented with an easy to follow create solution wizard.
Hitting the ‘OK’ button caused it to crunch and grind and produced the following code framework.
using System;
using System.Collections.Generic;
using System.Linq;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace HelloiPhone
{
public class Application
{
static void Main (string[] args)
{
UIApplication.Main (args);
}
}
// The name AppDelegate is referenced in the MainWindow.xib file.
public partial class AppDelegate : UIApplicationDelegate
{
// This method is invoked when the application has loaded its UI and its ready to run
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
// If you have defined a view, add it here:
// window.AddSubview (navigationController.View);
window.MakeKeyAndVisible ();
return true;
}
// This method is required in iPhoneOS 3.0
public override void OnActivated (UIApplication application)
{
}
}
}
I can actually read this…because it’s not Objective-C!
Building the UI
The wizard had created a MainWindow.xib file. Double clicking on it launched the old, familiar Interface Builder. The tutorial prompts you to create a button and label on the blank window and wire them to the app delegate handlers. I won’t go into it as we’re focusing on MonoDevelop, but it’s done in the usual way for iPhone development.
Adding Behavior – First Glitch
We have our connections to the UI elements, but not much is going on now. The tutorial makes the following statement…
“We are going to create two class outlets in the application delegate. Each outlet that we create in the user interface will be reflected as a property in a partial class in the MainWindow.designer.xib.cs file.”
Hmmm…mine didn’t. I don’t have references to my new button and label objects anywhere in the C# code, so needless to say I can’t proceed to adding any behavior. Remember what I said about reading the instructions? The installation section of the MonoTouch documentation also said this in large friendly RED letters:
“* You MUST install the latest release of Mono before installing MonoTouch“
Bummer…I was really hoping to blame the tool rather than my own stupidity…:(.
Adding Behavior – Next Try
Here we go again. After reinstalling the MonoTouch package AFTER having installed Mono, I recreated my steps from before with the new solution name RTFM. EUREKA! Just kidding, the %#$%!^* still didn’t work! Still highly motivated to avoid Objective-C at all costs, I re-read the various installation commentaries for both Mono, MonoTouch and MonoDevelop and found this critical, but well hidden, pearls of wisdom again in large friendly RED letters.
“* You MUST use the MonoTouch version of MonoDevelop from the above link, or the version from MonoDevelop’s built-in updater, since it may contains fixes that are not in MonoDevelop 2.4.”
There’s no easy way of determining if you have installed MonoDevelop 2.4 or MonoDevelop 2.4 iPhone enabled. I followed the link from the MonoTouch page and reinstalled MonoDevelop. I created RTFMPartDeux and…gasp…something was different. Like Groundhog Day…different is good. The MainWindow.xib.designer.cs file was in a heirarchy under MainWindow.xib!
Sure enough, when I retraced my steps the MainWindow.xip.designer.cs file created references to my button and label objects which I could use to add some behavior in the ApplicationDelegate.
Adding Behavior – Finally!
Ok, with all my prior screw ups rectified, I added the following handler to the app per the tutorials instructions.
int ntaps = 0;
button.TouchDown += delegate {
label.Text = "I have been tapped " + (++ntaps) + " times";
};
This time, building and running it worked fine with the finished masterpiece looking like this…
The Verdict
Too early to tell, but I’m impressed so far. All of the problems I encountered were self inflicted so I can’t really blame MonoTouch for anything other than having instructions which are not idiot proof (I’m an exceptional idiot). Now that I’ve got an app that counts upward when you hit a button, I will implement a gene sequencing application to reverse engineer the human genome complete with 3D molecular rendering to see if it really is a solid solution.
My only reservation at present is any hidden quirks that would not surface after man weeks of development. I’ll be test driving this a bit more in upcoming days to stretch it’s capabilities a bit and see what I find.
Android Beats iPhone in Market Share
May 14, 2010 by dave@kiwiluv.com · Leave a Comment
For the first time, NPD’s reported that Android has taken over 2nd place from the iPhone in market share in the US smartphone market. Market share computations are fertile ground for fanboy battles, but obviously all the hot new Android phones hitting the market are giving Android some serious traction. So, now it’s…
- Blackberry (not for long I suspect)
- Android
- iPhone
I see more and more corporate users with iPhones these days so I’m pretty sure Blacberry’s days are numbered. If The Windows Phone 7 devices are as cool (and un-Microsoftesque) as they appear the landscape’s going to change radically. Can’t wait.
Check out the full NPD report:
This Just in From the Dept. of I’ll Believe it When I See It – iPhone 4G
April 20, 2010 by dave@kiwiluv.com · Leave a Comment
Please please please let it be true!
iPhone 4 – Post Hype
April 10, 2010 by dave@kiwiluv.com · Leave a Comment

Apple has been pretty busy. Hot on the heels of the much hyped and very beautiful (but useless?) iPad comes the announcement of iPhone OS 4. We do software development for Android and iPhone and some of our products definitely work better on Android because of some of the features that have been missing from iPhone 4.
But first the suck. Here’s what we didn’t get:
- Flash support in Safari. No surprise there…Steve wants Flash’s head on a pike outside his office in Cupertino.
- An iPhone for Verizon. While the rest of the planet uses GSM, Verizon’s CDMA network in the little backwater of the US still has the best performance and coverage.
- Ads. Oh wait…we did get those. Crap.
- Backward compatibility. iPhone OS 4 is only possibly compatible with the iPhone 3G and iPod Touch Second Generation. Why? The hardware simply isn’t as capable. On the positive side, at least you’ll get ads on those platforms…woo hoo!
The big news is ads. Just kidding. The big news is that iPhone 4 will support multitasking. In some ways, the Apple applications like Mail and Messaging always did, but third party developers were not permitted to use the secret sauce making this possible.
Another nice thing is a file system/folder structure. This will allow better organization of documents and will eliminate the need for application developers to implement their own faux-file system within the application.
Apple has also beefed up some applications, added an iBook reader and various other miscellaneous things that we don’t really care about, but you might. All in all welcome changes. The folks at Gizmodo have the complete rundown here.
Compelling, but I’m not about to run out and get an iPhone until I don’t have to use it on the AT&T network. Still, as a developer multitasking alone is enough to keep me writing code for this phone.
And best of all…ads!
Geodelic for Android and iPhone
April 2, 2010 by dave@kiwiluv.com · Leave a Comment
Most of the applications out there to help you find something still suck. Geodelic is the first one I really liked. This app is available for both iPhone and Android and provides a categorized carousel view of businesses near you. So, if you just landed in Bratislava and want to find the nearest Pizza Hut (good luck with that by the way), just fire up Geodelic (assuming you iPhone or Android works internationally…iPhone should be fine) and select the restaurant category.
I must admit that there is some overlap with our first product and this one, but I have to give kudos where they are due. This application is very good and if you want to have one on your phone that works well for finding a variety of businesses, this is my pick.
Have a look at the review on AppJudgement from the folks at Revision3:
Geodelic…keep up the great work and I forgive you for having a PHP site. If traveling in Bratislava, please get some real food.
iPhone on Verizon?
March 30, 2010 by dave@kiwiluv.com · Leave a Comment
Please say it’s true…
http://news.cnet.com/8301-30686_3-20001453-266.html?part=rss&subj=news&tag=2547-1_3-0-20
Every year, we are taunted by rumors of an iPhone on Verizon. The iPhone is a device, which through it’s sheer awesomeness can overcome the burden of a mediocre network. Now, yet again, it’s coming to Verizon.
Let us all pray to the gods of mobile devices that this is real this time!







