Continuing Symbian Signed Conversation

One of the points I was harping on at and around the Symbian Partner conf were my perceived issued with the Symbian Signed effort. As a developer I get no benefit out of the initiative, but I’ve commonly felt some pained incurred by it. David Wood also just posted about the basic principles of software signing, so apparently it’s on his mind too.

I’ve already put down a bunch of my gripes about the current system. But if we want to break it down to basics, there are a few questions that I think we need to answer about a signing process. I was going to try to lay then down in some form of coherent order, but I have a rapidly evolving situation that needs some tending to. So here they are in jumbled rough form:

  • Signing is trusting. In the SSL world that’s trusting that the server at the end of the connection is owned by the people who are supposed to own it. Who are we trusting in signing a Symbian app?
  • There’s trusting that the app provider isn’t going to do anything nefarious.
  • There’s trusting that the OS will only allow the app to do things it was signed to do (nice bit of work there, I like this part of the signing process actually)
  • There’s trusting that is something goes wrong with the app you can get help.. which is unaddressed.
  • Part of what the carriers/operators really want is a reduction in support calls/cost. This doesn’t help that. Actually, there’s a mistaken perception on the part of users that their carrier/operator is the person to call when an app goes wrong. I don’t call Comcast when a virus screws up my PC
  • Why are these things really important in the mobile world when they’re left to sort themselves out (internet style) in the PC realm? Is it constrained devices and bandwidth really? Or is carrier/operator cost the principal driver?
  • If it’s really constrained devices and bandwidth, why can’t I – the user – manage rights outside of the signing infrastructure? Why doesn’t signing set default rights and let me choose what I want to grant or remove manually after the install?
  • Signing shouldn’t be the only mechanism of trust extension. Look at the Maemo installer for an example of well done application installation process. Installing a package brings in a feed of updates, repository for apt installs actually, that brings in updates. Build the trust mechanism into that, I should be able to trust the people I want to trust. It’s great that the operating system can enforce some set of restrictions for a set of applications signed by an “official source”. But if I want to trust Google directly, let me trust Google.

Damnit, gotta run. Give David some feedback if you can, I think he’s headed in a good direction with this conversation.

Posted in Open Source, Software, Technology | 3 Comments

Misleading Numbers

I found the conclusions based on these numbers quite amusing. Anyone else spot the flaw in the logic that because folks on DeviceAnywhere spend more time testing on the Razr that means that developers are focusing their efforts more on the Razr then the iPhone? That’s not quite the conclusion I draw.

The tricky thing about “the Razr” is that it’s not one phone at all. Spend any time poking around with the phone on different carriers and you’ll find that every carrier and every minor release has different properties. Some carriers have chosen to include some options, others not, others have tweaked them slightly to make them fit into the guidelines for device behavior, etc. It’s a developer nightmare, cause you never know what to expect. And on such a constrained platform to begin with, things like available memory can be severely impacted by the carriers desire to do something as simple as swap out the images being used on the home screen.

On the other hand you have the iPhone. Write an app for the iPhone, it runs on the iPhone. Done.

Now imagine you’re an engineering manager looking at the amount of money you spend to support your application. The global economy is such that most folks are looking to cut costs, so to be responsible you’re trawling though your numbers. What’s your spreadsheet going to have when you look at your porting efforts? The number of users you have on a platform and the cost to maintain the port to that platform. What you’re going to be looking for are platforms where the dollar-per-user cost is high and/or increasing. The iPhone is linear, it costs X dollars to port to iPhone no matter how many users you have. However with the Razr you keep throwing more and more developer and QA time at issues because you need to hit every little variant of the firmware with it’s unique quirks. As your user base grows, the cost of supporting the Razr grows. And in my experience, most applications (social networking and casual games aside) probably don’t really see that many more Razr users then iPhone users despite it having vastly larger distribution numbers.

My take-away from the DeviceAnywhere numbers is “Razr incurring dangerously high engineer and QA costs, if the iPhone base keeps growing existing handsets are in danger of getting dropped.” It’s a funny thing trying to interpret numbers. Assuming that time spent testing for a device means that a business really desires representation on that device is a mistake.

Posted in Community, Software, Technology, ThisIsMobility | 4 Comments

Converting to Open Source

I went to the Symbian Partner Event yesterday, and then grabbed some dinner with a bunch of folks from Symbian and Nokia afterward. Most of what I was interested in hearing about was how they plan to convert to open source. There’s some info up already at the Symbian Foundation website, but that’s all very much marketing oriented material without too much detail about the major important factor – the code. Charles Davies gave a presentation toward the end of the day that laid out some additional details though.

The folks at Symbian and Nokia are just putting together the disparate code bases they work with and trying to unify the layout. They’ve been breaking up the code into sets of modules, it’s looking like there will be about 100 modules all told. The code roughly breaks down into operating system elements, middleware and API elements, application elements, and then some desktop packages. Not everything is going to be open sourced right off the bat, they’ve mentioned that before, due to encumbrances of existing licensed code in the base as it stands. Whole modules will be open sourced however, so that when you get some code it should represent the full set necessary to understand and debug a particular function. I was concerned initially that the open sourcing might follow some kind of horizontal stratification, which would be a lot less useful to anyone looking to dive in and understand how something works.

Which leads to the next question, if you’re a developer at least, can I compile the open source bits and run them somehow? I asked David Wood that later on in the evening, are the parts that aren’t open yet going to come in a binary form that I can use with my own compiled modules to link up a running system? Actually, that is the plan, but the details are still getting worked out it seems. Which would be awesome, I would love to be running a hacked version of my E71 firmware that adds a few functions to the standby screen. However, the partially open model is going to mean that porting to a new platform isn’t something that the standard basement hacker could undertake for a while.

The other interesting bit in his presentation was their approach to branding and ensuring a consistent platform across Symbian based devices. They’re actually putting together a software test suite to exercise the APIs and behavior of a base system and using that as the yardstick for compliance. And the test suite itself is part of what goes out as open source. If your product passes the test suite, you should be good to go. Very nice.

Overall though I think the foundation has some learning to do still about interacting with developers and really enabling a larger ecosystem. Lee Williams, the current Executive Director for the foundation, spent an awful lot of time bashing the Apple and Google store models because they’re old style thinking “control points.” And people need to get away from thinking in terms of control points and start thinking about enabling. So I asked a question about application binary signing, which is an excellent example of control point thinking and a common stumbling block for folks looking to do Symbian development. And his answer was pretty much “Well, that we need because this is telecommunications, and that’s the way telecom works, it’s actually a benefit not a hindrance” and went back to bashing Apple and Google. Booo. Bad form.

Fortunately David Wood and a few folks from Symbian where around later on to pick up the conversation that Lee tried to shut down. Although signing will probably exist going forward in Symbian, they are looking at reworking the mechanism and making things easier for developers. In particular I tend to use the example of getting GPS support into Python for S60. One of the benefits of Python on S60 is supposed to be that you can develop for it without having to get into the details of dealing with the standard SDK (great for me, I don’t use a Windows machine). You cut off that benefit if the developer needs to sign Python modules in order to get access to the interesting functions. In my mind Python is great to enable prototyping and experimentation. Exactly the areas where you would like to expose new and enhanced functionality. I think some of the folks heard the message, but it certainly wasn’t universally received.

Hopefully this is a learning process, and we’ll see the Symbian Foundation folks moving more and more toward genuine open thinking. Right now there seems to be a mix of marketing oriented open thinking together with some deeper understanding of the technical benefits of being open. That’s one of the nice things about being open however, it’s a model that tends to overtake other models.

Posted in Community, Open Source, Software, Technology, ThisIsMobility | 5 Comments

Skyfire 0.85

I’m not allowed to talk yet about what I’ve been working on for the last few months. Odd isn’t it? But information wants to be free fortunately, so here are a few other folks talking about what we’ve been up to:

There’s definitely some stuff we need to work on still. But the ball is steadily rolling, drum beating, people marching, etc. Also a lot going on behind the scenes as we prep for the really real world. We’re not quite there yet (thus the 0.85 version number instead of a 1.0 version number), but the recent release went quite well all things considered. It was one of those tremendous overhauls that touched pretty much everything, and still the system came back up just about on schedule (we ran about 45 minutes over on our 4 hour window) and in working order.

Definitely looking forward to the four days off starting tomorrow though. Thanksgiving break here in the US tomorrow, and then everyone has Friday off for shopping or something. Guess not everyone has their XMas presents drop shipped by Amazon. That’s how I do it though, and I have no issues at all with the technique.

Posted in Browser, Skyfire, ThisIsMobility | Leave a comment

Personalized Economic Metrics

Quick thought for this morning. Now that I’m using Plaxo quite a bit more frequently I’m noticing that information like “number of updated contacts” actually tracks against economic trends pretty well. I’m betting that it tracks different for different people though. Plaxo should provide some tools to filter the people you’re connected to based on stuff like that. How many people have changed their work info in the last week? Who’s got a new job title? Searches and filters like that.

Posted in ThisIsMobility | Leave a comment

Contextually Relevant My Ass

I turned on AdSense ads again. Somewhere in the random failing that was getting getting my blog admin interface working again I apparently overwrote all the customizations that I had done. Not that I make a lot of money from the ads, I just like fooling around with the publisher side of the ad network and keeping an eye on the little differences that pop up. Most interesting thing so far is that the ads up there on “This is Mobility” are for scooters and wheelchairs. It’s not like this site isn’t indexed already. It’s not like I sometimes talk about physical mobility solutions and other times mobile technologies. It’s not like the front page doesn’t right now include terms like Nokia, N810, Linux, carriers, operators, iPhone, etc. What gives? I bet the bidding on the term “mobility” from people selling wheelchairs and rascals is way higher than the bid from folks selling handsets or applications, enough to push out way more contextually relevant inventory just to see if the more highly bidded stuff manages to convert. That it’s even tried however makes me kinda wonder just how much the context really works, and how much the network is based on random flailing. Cover some certain relatively high percentage of the web in your real estate and you’ll get clicks. No matter what you put in there.

Posted in Browser, ThisIsMobility | 2 Comments

Is Mobile Really Global?

One of the most common reactions that “mobile experts” have when new converts start waxing poetic about the iPhone is that the iPhone is just a niche device. “It’s only really popular in the US, you need to start thinking about the billions of devices out there in the market” is something I hear pretty frequently. Especially from people at Nokia. They love to talk raw numbers of handsets, cause that’s the leverage they have. And when someone starts saying things like “think about the bigger market” and “address the global audience” it just seems politically incorrect to disagree with them. I mean, it’s gotta be a small-minded move to think about just the US right?

I’ve made that argument over and over again actually, so I’m intimately familiar with it. It sounds so good, and it gives you a warm fuzzy feeling for thinking expansively. And of course some of the top level numbers seem to support that being a good idea. Hell yea, there are billions of cell phones out there in the world. Why bother going after a market of 7 million when there are billions out there!! Crazy right? So allow me to explain why it makes sense. Cause the entrenched mobile market is in some real danger here, getting actively blindsided by new devices and market models. Fingers in their ears. Vehemently denying that anything has really changed.

The first and foremost is this misconception about addressable audience. People throw around the 3 billion number quite a bit, cause that’s the number of cell phones out there. But that’s not your market size. Spend some time with venture capital guys and you’ll eventually catch them joking with each other about the prototypical entrepreneur who walks into their office and claims their market is “everyone with a television” or “everyone who wears shoes” – breathlessly exclaiming that if they just “capture 1% of the market in the first year they can make 10 billion dollars!!!” It’s pretty ridiculous to think that just because there are X of something out in the market, that your potential market size is X.

First of all not everyone with one product automatically wants a complementary product. Even if it’s a great complementary product. Second of all your market size isn’t just an installed base, it’s installed base and ability to reach the customers who make up that installed base. If you have a small number of customers who are easy to reach sometimes that’s better than a large number of customers who it’s difficult to get to. Don’t take my word for it, read some Steve Blank and let him explain it. A few years ago the only option was to reach a localized audience for high cost, or a global audience for high cost. The decision was pretty easy, go for the larger audience. But now you can reach localized audiences for a much lower initial outlay, so there’s a real decision to be made. I don’t think it’s a done deal to be always going after the global market.

There’s also the need to make money. This was a common topic of conversation at Mobile 2.0 this year again. Sure, emerging markets hold a ton of potential. But how do you make money off addressing them? They’re relatively hard to directly monetize. You can make your application so that it’s relevant and usable by people in Africa and China, but if you’re looking to sell it for a few dollars you cut a bunch of volume out of those markets. So you take the millions of people in those markets and reduce it down to the number of people able and willing to pay a few dollars for an application. I have no idea what the percentages would be, but there isn’t too much disposable income floating around there. There’s an associated cost to the application developer in setting up and maintaining payment systems in different areas. And don’t tell me that going through a third party payment provider allows you to address a global audience cause that’s a lie. I’ve worked on it, and there’s customization to be done for different markets no matter who you use. So don’t even try that one any more, I’m officially calling bullshit on it.

The common answer to that is to monetize through advertising. Awesome. That’s a very engineer friendly answer to the problem. It’s true, most problems can be solved by adding an additional layer of abstraction. Unfortunately someone eventually has to make money, and in this case the additional layer of abstraction just hides the problem instead of reducing it. The reason that advertisers advertise is so that they can make money off the audience. If you weren’t able to make money selling to users why should other advertisers be able to? Sure, there are plenty of cases where the diversity of offerings from an advertising network allows for monetization of an audience where a single seller couldn’t. But if the underlying problem is that the audience doesn’t have money to begin with that changes nothing. The value of an advertising audience is the size of the audience multiplied by the average amount of capital you can extract from a member of that audience. It doesn’t matter how large the audience is, anything times zero is always zero.

And there’s the problem of, you know, actually making your application work globally. Another common theme from the conference again this year was context and making applications use the unique features of being mobile. Mobile isn’t just about taking the desktop web or application and jamming it onto a small screen. You need to build on the unique capabilities of handsets and mobile networks. Unfortunately there’s very little global thinking about how to make that happen. We had a panel of folks at Mobile 2.0 talking about their developer programs, handset manufacturers and carriers/operators. They were talking about how they’re helping developers build for their devices and networks. Seems nice on the surface, but that’s not how things should work. Take development for PCs as a model. If I was looking to develop for PCs and had to join Dell’s developer program to get into about developing for Dells, and then Gateway’s developer program to make my app work on Gateway, and then Toshiba to make my app work on Toshibas – and then have to worry about differences between Comcast and Savis and Internap at the network level. Nothing would ever get done. But when I asked folks working on these program about what they’re doing to provide base consistency so that mobile development could work like PC development I mostly got confused reactions.

So why develop specifically for the iPhone? Omar actually summed it up extremely well at the Mobile Web Wars event a while ago. The iPhone has a full ecosystem. It might be small right now, and it might seem like we’re just exchanging multiple overbearing overlords or a single overbearing overlord. But the iPhone is that juicy segment where development is consistent (cause it’s one OS and one device), there’s a way to reach audience directly (via the AppStore if you can get on there), and the user primarily are in affluent areas where advertisers are looking to spend dollars (and part of a great distinct demographic for the most part on top of that). So fricking start paying attention people. You can’t dismiss the iPhone cause the overall numbers are small (unless you’re a VC, then you can continue to poo-poo the small overall market size all you want, that I’m not going to argue against). The specific numbers are compelling. People are still making noise about the iPhone cause it works.

Of course, this doesn’t change the fact that I’m a bleeding heart mobile booster. And that I would love few things more than to have a real global market for mobile solutions that application developers could actually address. It’s going to take some different thinking however. If you can’t make money from directly selling to customers in emerging markets, and collectively they don’t yet make a compelling audience for media plays, what do you do? Well you could let those users create value and skim some off the collective. Take the Amazon Mechanical Turk as an example. Think of it as a way to do micro-outsourcing. Mob4Hire in particular is applying this to mobile already, with a crowdsourced system for doing mobile application testing in areas where it’s normally difficult to get access to different handsets on particular networks. Fantastic.

I’m also a believer that the best people to build solutions for emerging markets is the people in those markets. That’s the idea behind efforts like FabLab and (though not everyone believes it) One Laptop Per Child. Folks living in developed areas normally aren’t familiar with the particular constraints and challenges that go along with living in these other areas. The best way to service them isn’t to do product development in the traditional sense, but to provide hackable systems that allow users in these areas to tailor what they get to the situations they have to deal with. That’s one of the reasons I hold out a lot of hope still for the Linux based mobility efforts, particularly Android, to help these markets move themselves through the progression so that people stop thinking of them as low yield media targets.

Overall though I think it’s kind of ridiculous for folks inside of mobile to be crapping all over “the iPhone hype” while doing little to nothing to help move mobility as a whole into a state where us application developers really can start to address a global audience.

Posted in Community, Open Source, Technology, ThisIsMobility | 6 Comments

Under the Radar on Nov 12th

At Mobile 2.0 Rudy reminded me that he’s helping to judge the Under the Radar conference again this year. And he encouraged me to come of course, cause I’ve been hiding under a rock for months and that’s unhealthy. He’s correct.

The event takes place November 12th at the Microsoft campus in Mountain View. Here’s the schedule for the day. I see Tim Chang from Norwest is judging again this year as well. I went to the mobile focused event in 2007 and had a great time. Some of Tim’s feedback was fantastic last year, I’m looking forward to seeing his take on the current crop this year.

Some interesting companies in the lineup too. Skout did the social network for us at Mobile 2.0 and it worked out really well. They created a custom network for us. Pull down the network selection box at the top of the Skout page and you’ll see a Mobile 2.0 option. I feel so special! I keep having issues with the Flash based main interface cause I use oddball platforms like Linux on a desktop and the N810. But the mobile interface has been working out great. I was using it from my E71 while wandering around. I’m curious to see how much of their pitch is tilted toward events vs general networking tools.

A bunch of other folks I would like to catch up with too. MoFuse is going to be there, so hopefully I’ll have a chance to meet David face-to-face. We’ve emailed back and forth in a bunch of contexts, but I don’t think we’ve ever been in the same place at the same time. Would be great to meet MG Siegler too. We did a virtual interview around the Mowser/DotMobi hookup, but I’ve never met him in the really real world either. And I’m planning to catch up with Gregory there too to make some plans for future Mobile Monday events out here.

Nice critical mass of folks, and always nice to go to an event I’m not running so that I can spend more time mingling. Things like this are the reason the Bay Area rocks so much.

Posted in Community, Technology, ThisIsMobility | 3 Comments

Small Systems FTW!!

I had heard that there was a great presentation floating around by Steve Yegge about dynamic languages, virtual machines, and optimization. And I forget what got it in front of me, but yesterday I hit the transcript of the talk, definitely recommended reading even though it seems really long.

Stuff that I particularly liked was the talk about JIT optimization techniques (polymorphic inline caches, trace trees. Fantastic! Wish I had more time to keep up on stuff like that), introducing a new (unknown) language, and his commentary about systems optimization and local vs global optimization. I loved this:

Small systems are not only easier to optimize, they’re possible to optimize. And I mean globally optimize.

So when we talk about performance, it’s all crap. The most important thing is that you have a small system. And then the performance will just fall out of it naturally.

Loved it so much I’m considering developing a tattoo design around it. I’ve seen some horrid atrocities committed in the name of optimization, and then seen those systems fail outright at what they were supposed to be doing.

Definitely worth the time to read through. Even if you’re too ADD to read it, at least skim.

Posted in Software, Technology | 1 Comment

Mobile 2.0 Event on Nov 3rd in San Francisco

The topics and schedule are now posted for the 2008 Mobile 2.0 event in San Francisco. We’ve separated out a “Builder Track” in the afternoon with presentations more suited to engineering/technical/design folks, and have an all day long Business track covering topics that should be of interest no matter what role you play. I think it’s still the best value you can find for a day long conference. Online registration is open, hope to see you there!

Posted in Community, ThisIsMobility | 1 Comment