Musings on Business and Tech

Category — mobile

Is Swift Ready for Prime Time?

To long-time Objective-C developers – especially those with an interest in modern programming languages – Swift is a very welcome and exciting step forward. At the same time, it can be frustrating at times due to the (current) state of the developer tools.

This is from Duolingo’s thorough and fair assessment of the pros and cons of building a production app in Swift. I myself have been burned too many times by Swift in recent months (having to rewrite classes in Objective-C when things didn’t go as planned) to consider it production-ready. But I’m glad to see that Duolingo is having success with it.

January 15, 2015   No Comments

Why mobile web apps are slow

Drew Crawford, in a long but well-researched essay on mobile app performance:

Think about iPhone 4S web development as [an]…environment that runs at 1/50th the speed of its desktop counterpart.  Per the benchmarks, you incur a 10x performance penalty for being ARM, and another 5x performance penalty for being JavaScript. Now weigh the pros and cons of working in a non-JavaScript environment that is merely 10x slower than the desktop.

July 10, 2013   No Comments

The 5 Worst Practices of the Mobile Web

My friend Michael McWatters tweeted his frustration today that there is no way change your Twitter password on their mobile site. I’ve butted up against this issue in the past, and the fact that you can’t even switch between the mobile and full site on their is immensely annoying (in fact, there isn’t even a footer on the site!).

With smartphone penetration growing ever higher, it’s increasingly important for companies not just to build mobile sites, but to build them well. Mobile sites can no longer play second fiddle to their desktop brethren. Over the past few months I’ve become increasingly sensitive to, and bugged by, the degree to which so many mobile sites are so badly implemented. With that in mind, here are my 5 “worst” practices of the mobile web.

  1. Don’t give users the choice of using the full site – not letting users choose to use the full site on their mobile device is presumptuous at best, and crippling at worst. Just because the screen is small doesn’t mean you don’t want to be able to access all of a site’s features in a pinch. On the iPhone anyway, browsing a full website is often very tolerable and should at least be an option for users. This is related to #2, which is…
  2. Don’t cripple your mobile site – while it may be true than on a dumb phone you likely do not need or want to access all of a site’s features on the go, on a smartphone you often do. A mobile site no longer needs to be a list of the 10 most visited pages on a site. Let’s start building mobile sites that allow access to some more advanced features like changing your password.
  3. Show an interstitial ad for your mobile app – have you ever clicked on a link on your phone only to be brought to an interstitial ad for a site’s mobile app, instead of the article you were trying to read? And of those times, how many times have you gone immediately to download the app instead of just closing out the ad and trying to read the article you were interested in?
  4. Don’t redirect from your mobile domain to the full site on a desktop browser – many sites with mobile domains will redirect you to it using browser detection. But many of those do not do the reverse redirect (i.e., visiting the mobile site on a desktop browser doesn’t redirect back to the full version). Being forced to view a mobile site on a desktop browser is torture.
  5. Redirect to your mobile domain, but not the specific page – all this redirecting has its place, but it’s so easy to get it wrong. On many occasions I have clicked on a link on my phone, gotten redirected to a mobile domain, and instead of it going to the article I was trying to read, I get placed on the homepage of the mobile site. So frustrating!

The mobile web is certainly in its infancy, but that’s no excuse for giving users such broken experiences. It’s 2011 and it’s imperative now that mobile sites are just as beautiful, simple, and elegant as the devices used to navigate them. If you have to choose between offering a mobile site that suffers from any of the worst practices listed above, and having no mobile site at all, choose the latter.


August 29, 2011   No Comments

Mapping Transit Delays With Ushahidi

MTA Delays Crowdmap

I woke up at 5 this morning to the news that the two subway lines in my neighborhood were still not running, more than 36 hours after the “Boxing Day Blizzard” had begun in New York City. The question then was, well, what is running?

The awful MTA site wasn’t much help, especially with regard to the buses. It offered cryptic and non-specific messages like:

Due to ongoing snow related conditions, all MTA bus express services are running with system wide delays. There is no limited stop bus service in all boroughs.

There was no indication of how any one specific bus route was faring.

My neighborhood’s Yahoo group was abuzz with conversations about which trains and buses were and weren’t running, but the information was unorganized and freeform, because it was happening over email.

And while the MTA probably had a good internal grasp of which lines were having issues, they were not doing a good job of disseminating that information. Ideally their website should have been providing real-time geo-located incident reports so that any commuter could look at a map and quickly determine what the best route was to wherever they had to go. Even more ideal would have been, as my friend Michael McWatters suggested, a trip planner that could re-route you away from the suspended lines and to the freely-moving ones. But, at the very least, even just a little bit more detail would’ve been nice.

So this morning I thought to myself, this is exactly what crowdsourcing is good at. And I remembered hearing about a mapping tool called Ushahidi, which was put to good use during the crisis that followed the Haitian earthquake back in January. Indeed crisis mapping is a very powerful idea, and Ushahidi is leading the charge with their open source application that’s free to download and deploy, as well as with Crowdmap, their hosted version of Ushahidi that is also, surprisingly, free.

In the span of about an hour, I put up a site up using Crowdmap called I entered all the subway service changes from the MTA site, and told a few people about it. It got a little bit of Twitter buzz, but only one person submitted a report other than me. I think I was a little late to the game (I should’ve set it up on Sunday), but, it turns out, the tool also has a few shortcomings specific to this particular use case.

First, the tool was built for incidents whose geography is best described as a point (a latitude/longitude coordinate pair). But transit delays are best described as lines. When service is disrupted, there is a starting coordinate and ending coordinate for that event. Ushahidi had no good way of representing this, so I ended up just putting in two points for every incident. It was kind of a hack, and it also was misleading–the issue itself spanned an entire length of subway or bus line, not just the endpoints. I imagine that anyone who might’ve submitted a report would have run into the same issue, and I also suspect there are some incidents that are best described by a polygon instead of a point or a line.

Similar to the incidents being specified by a point in geographical space rather than a line, they are also represented by points in time rather than durations. Transit delays have a finite duration (even if the duration isn’t known up front). I would love if you could set incidents to expire after a certain amount of time (24 hours maybe?) rather than requiring an admin to go back in to the system and either edit or delete the incident. The overhead can be prohibitive.

Another issue is that it’s somewhat difficult to submit reports. You have to visit the website and submit a form. Actually that’s not really true–Ushahidi supports reporting via Twitter hashtags, SMS, or mobile apps (though there isn’t an iOS app yet). These are decent options, but you don’t really get the good geo-location data this way. It’s probably only a matter of time before the mobile options for Ushahidi reporting get really good, but for now it’s a bit clunky.

Despite these issues, though, it’s really interesting to see how far this kind of technology has come. It’s also interesting to think about how many different mature platforms Ushahidi is built on: there’s Linux, Apache, MySQL, PHP, the Google Maps API, the Twitter API, SMS, Email, RSS, probably many others. It’s pretty staggering when you think about it, and all I really had to do to set it up was press a “submit” button on a web page.

Even though the Haiti earthquake was a big moment in the spotlight for Ushahidi, I think we have yet to hear the last of them. They are building an amazing tool and I’m excited to see how it can evolve and continue to help communities deal with local crises and civic emergencies.

Related articles

December 28, 2010   1 Comment

The Next Phase is Not Web 3.0

O’Reilly Media’s Web 2.0 Summit, which took place over the last few days in San Francisco, got me thinking, why is the web still only in version 2.0?

Tim O’Reilly himself coined the phrase Web 2.0 back in 2004 for his first conference of the same name. It was defined by an evolution in front end technologies like AJAX and bubble letters, back-end technologies like web services and RSS feeds, and business models like crowdsourcing and software as a service.

So given that we’re 6 years in to Web 2.0, when will we get to Web 3.0? The answer is never. No one will ever start calling it Web 3.0. For one thing, it’s not catchy. Web 2.0 has a certain ring to it that Web 3.0 doesn’t. Also, I think it will be difficult for people to come to a consensus on when technologies have evolved enough to move to a new version number. Web 2.0 was coined by a single person. Web 3.0 would have to be more organic. We much more likely to describe future “versions” of the web in descriptive phrases rather than numbers.

Tim Berners-Lee has always been against this nomenclature anyway. His alternative to “Web 2.0″ was the “Read/Write Web,” because of the way in which users became empowered to contribute en masse to the data on the internet. And in 2006, when asked what Web 3.0 would be, he said that a component of it would be “The Semantic Web,” or “a web of data that can be processed directly and indirectly by machines.” In other words, a web in which the machines can glean meaning from the data, in addition to simply manipulating it.

But I would argue that we are already at the next evolution of the web, and yet it’s not about semantics. It’s about context. This new phase of the web has largely been catalyzed by two breakthroughs: advances in the power and reach of mobile computing, as well as what Mark Zuckerberg calls “the social graph.” Both of these lend not meaning but context to data, and that is a very powerful thing.

Mobile devices can contextualize data around locations, photos, video, and audio (among other things). And of course the social graph connects data to people. The “Internet of Things,” as it continues to grow, will increasingly connect data to objects (shall we call it the “object graph?”). Although context is a step in the direction of semantics, we are still a ways away from getting machines to the point where they can interpret meaning from this data.

Indeed the “web” isn’t even about machines anymore. What was once a network of machines connected by wires is now a network of people, places and things connected by context. There is a new network growing atop the old.

Perhaps the semantic web will come in version 4.0 (although we still won’t call it that). But I think the best characterization of the most recent evolution of the web is the “Contextual Web” (I am not the first to call it such). Twitter, Facebook, Foursquare, the iPhone, Android, and many other prominent technologies can fall under this term, and I think it best describes the current proliferation of mobile and social technology that is spawning so many new and interesting businesses.

Enhanced by Zemanta

November 18, 2010   2 Comments

iTunes could not backup the iPhone “iPhone” because the backup session failed.

I got this error today while syncing my iPhone 3G with iTunes 9.2 today:

iTunes could not backup the iPhone “iPhone” because the backup session failed.

Re-seating the USB cable and restarting iTunes did not help. A Google search revealed various fixes having to do with firewall settings or 3rd party application conflicts, but none applied to my situation.

Ultimately I solved the issue by running a manual backup of the iPhone by right-clicking (or control-clicking) the iPhone in the Devices section of iTunes and choosing “Back Up.” Once that completed I was able to sync without getting the error.

UPDATE: According to the comments on this post, it may help if you first delete the old backup by choosing Preferences –> Devices –> Delete Backup. You should copy your old backup somewhere else before you do this. Your backup is stored in the Users/[username]/Library/Application Support/MobileSync/Backup folder on Mac, or C:\Documents and Settings\[username]\Application Data\Apple Computer\MobileSync\Backup on Windows.

UPDATE 2: According to the comments, Windows users may need to change their computer’s time zone to fix this issue.

UPDATE 3: According to the comments, Windows users may also need to kill the AppleMobileBackup.exe process and restart iTunes.

UPDATE 4: According to the comments, Windows users may also need to run iTunes as an administrator. Go to Computer>local disc (c:)>Program Files>iTunes>iTunes.exe then right click and run iTunes.exe as administrator a (iOS 4.0.1 itunes 9.2.15 on Vista)

June 18, 2010   173 Comments

Apple Screws Developers Once Again

Pardon my French, but the iPhone platform is so tight, if you shoved a lump of coal up its ass, in two weeks you would have a diamond.

The iPhone is a miraculous piece of technology–one that will be remembered for a long time as having changed the face of mobile computing, and computing in general. But lately I’m thinking it might be time to switch to an Android phone when my AT&T contract is up this fall.

I know of course it isn’t exactly breaking news that the platform is so closed, but for a long time I was happy to put up with Apple’s draconian policies because the iPhone is just that good. But then things began going bad and my frustrations started to mount.

First it was my battery dying, for which the best solution seemed to be to pay Apple $80 to just get a new phone. Really? Is a replaceable battery really too complicated for the average user?

Then, yesterday, Steve Jobs announced iPhone OS Version 4.0, which will at long last include support for multitasking. Hurrah! Except for the fact that my 3G phone doesn’t have the hardware specs to support it. Not being able to run apps like Pandora in the background has continually irked me, and now that this functionality is finally coming I don’t even get to share in the fun? My phone isn’t that old…

Lastly, and this very well might be the nail in the coffin for me, on the day that the world celebrated something as banal as multitasking on a computing device, Apple went and quietly updated its developer agreement to prohibit apps built using “intermediary translation” tools. From the new developer agreement:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

This prohibition includes tools such as the forthcoming Adobe Packager for iPhone, which would have allowed Flash developers to transcode their work to Objective-C, or alcheMo, a tool that translates Java ME applications to Obj-C. Technologies like these have been instrumental in driving the more than 150,000 apps currently in the App Store.

What could Apple’s motivations possibly be here? I know Steve Jobs has a thing against Flash (for good reason) but could this rule just be in place to spite Adobe? Are the apps created using these tools any less stable than apps created in Objective C, C, C++? I don’t know, but my gut says it has nothing to do with the language used and everything to do with the developer behind it.

This also got me thinking that Apple’s best all around product is not the iPhone, but OS X. Sure, it’s not as “open” as other *nix systems, but it’s night and day compared with the iPhone. And it was an incredible feat of engineering and business planning to pull the bottom out of the Mac platform, replace it with an entirely new architecture and transition nearly all their existing customers within the span of a few years. Not to mention the fact that they somehow managed to simplify a *nix system to the point that my father, mother, wife and sisters-in-law essentially need zero support from me.

In my frustration today I decided to jailbreak my iPhone. It was easy and I’m really glad I did it. I already got wifi tethering working, so now I have a Mifi in my pocket. I think for people like me who like to tinker, iPhone might just be too much of a (shiny) black box.

Read Adobe Apps: Easier to Pass Through the ‘i’ of a Needle | Gadget Lab |

Reblog this post [with Zemanta]

April 9, 2010   No Comments

What is the “Internet of Things?”

The video below, from IBM’s Smarter Planet blog, is a fascinating glimpse at what the future of the internet might look like, when interconnected things begin to outnumber interconnected people. ReadWriteWeb has also given a lot of attention of late to the Internet of Things, including a post called 8 Ways to Better Understand the Internet of Things, and startups like thingd and stickybits are aiming to exploit the current explosion in smartphone usage by reducing the friction inherent in trying to annotate the world’s “stuff.”

What does it mean when IBM talks about a “smarter planet?”

When we talk about a smarter planet, you can say that it has two dimensions. One is to be more efficient, be less destructive, to connect different aspects of life which do affect each other in more conscious and deliberate and intelligent ways. But the other is also to generate fundamentally new insights, new activity, new forms of social relations. So you could look at the planet as an information, creation and transmission system, and the universe was hearing its information but we werent. But increasingly now we can, early days, baby steps days, but we can actually begin to hear the planet talking to us.

Watch The Internet of Things.

Reblog this post [with Zemanta]

March 22, 2010   1 Comment

More Google Coolness: In Stock Nearby?

Two months ago, I wrote on this blog:

I want an app that will show me all the stores near me that not only carry a particular product, but also let me sort by price and filter by availability…I realize this is not a trivial task, as it would entail mining tons of inventory data from an insane number of stores, many of which aren’t even tracking their inventory, and those that do are using a wide variety of systems. But here’s where the prediction comes in: this would be a perfect challenge for a company like Google to take on (I mean, hey, they mapped the freaking Earth, Moon and Mars already; no job is too big for them.)

Yesterday, Google announced “In Stock Nearby,” a new feature they added to Product Search for mobile.

We’re happy to announce that as of today, if you’re searching for a product that is sold by participating retailers, including Best Buy, Sears, Williams-Sonoma, Pottery Barn, or West Elm, you can just look for the blue dots in the search results to see if it’s available in a local store. If you see a blue dot, you can tap on the adjacent “In stock nearby” link, and you’ll be taken to the seller’s page where you’ll see whether the item is “In Stock” or has “Limited Availability” near you.

Official Google Mobile Blog: In stock nearby? Look for the blue dots.

Reblog this post [with Zemanta]

March 12, 2010   No Comments

Location Privacy Goes to Washington

Nice roundup yesterday from ReadWriteWeb on the recent congressional hearing regarding location based services and end user privacy. Key takeaways:

  • Most location-based services have privacy controls that are too limited, and privacy policies are not readily accessible
  • Some are recommending that the Electronic Communications and Privacy Act be updated to include protections for location information
  • “There is as yet no data on teens’ mobile social mapping or LBS use,” but texting is huge among kids so it is likely that mobile location sharing will grow in that age group

Location Privacy Goes to Washington.

Reblog this post [with Zemanta]

March 9, 2010   No Comments