Archive for the ‘Business strategies’ Category

Trying out BlackBerry App World

For fun, I’ve submitted one of my sample games (Ladybug Maze) to BlackBerry App World.  This is mostly an experiment to try out how BlackBerry App World works — I doubt many people will pay $2.99 for this simple little game. But who knows? 😉


Reality vs. best practices (and getting from one to the other)

If you’ve spent any time studying best practices in software engineering, it can be jarring to discover how far the reality of software production often diverges from the ideal.  It isn’t rare to see code in production — stuff that’s critical to a company’s business — that isn’t even under version control, much less documented with bug-fixes tracked to requirements, testing infrastructure in place, etc.

Personally, I like doing reverse-engineering (restoration of lost knowledge) — taking a bundle of mysterious old code and figuring out exactly how it works and what it’s doing, so that it can be upgraded or replaced.  I’ve done it for more than one company.  However (at the risk of cutting down on the need for this sort of work), I’ll tell you that it’s cheaper to fix “free-fall code” while you still have the engineers who designed it on hand, before a reverse-engineering effort becomes necessary.  It’s a little like an old building with electrical wiring that’s not up to code:  replacing all the wiring seems expensive for something that yields no visible results, yet it’s cheaper than leaving the old wiring in place to catch fire and burn the building down.

How does free-fall code get all the way to production?  In my experience, there are a couple of main causes:  Continue reading

Mobile Zoo!!!

My planned post for today was going to be some interaction exercises (either HTTP or SMS — I hadn’t decided), but it looks like I won’t have anything post-worthy on that front before Wednesday at the earliest (I got sidetracked this weekend by some household tasks), so instead I’ll tell you about playing with the new alpha download from MobileZoo. It should be kosher to blog about this since I don’t see any way this could be a competitor to MobileScope.

I’ve chosen this topic not only because I find MobileZoo’s concept intriguing, but also on the principle that — since this is a new blog — I give preferential treatment to anyone who leaves a comment on my blog. Even if the comment is just an ad for your new start-up. 😉  (As long as the comment is relevant to my post of course.)  My goal is to get so many comments that the welcome default comment from “Mr. WordPress” drops out of the “Recent Comments” section of my sidebar. Sure I could just delete it, but that would be cheating…

The idea of MobileZoo appears to be the creation of a centralized database of all of the precise specs a Java developer might need to optimize an application for a given handset (including which JSRs are supported with version numbers if applicable, plus screen and canvas size and colors, etc.). All of this information is harvested by a MIDlet along the same lines as the MIDlet I posted the other day only more extensive, gathering up every bit of information about the handset that is accessible via Java. Then the MIDlet sends this information to MobileZoo. It looks like the revenue model is to offer a premium service and/or a stats-gathering library to registered developers. (Or maybe they’re just planning to get paid through putting ads on their site?)

So, I downloaded their jar of goodies to try it out.

The first thing I noticed was that the download is a jar file alone. I guess that’s okay since this product/service is aimed at developers, and one can reasonably expect that a Java ME developer would know how to take a jar file from his local PC and get it installed on a handset. However, personally I don’t have a cable or other simple way of connecting my handset directly to my PC, so I ended up writing my own jad (descriptor) file for it. For that I had to open the jar file and copy a bunch of lines out of the mainfest file and then add the jar size and jar url attributes by hand. Then I uploaded the files to my site so I could download them onto my handset from there. Since this project depends on persuading as many people as possible to run this program on their handsets, MobileZoo might want to make their MIDlet available on a WAP page (if it isn’t already) and post the URL on their main page. There’s no reason not to do that since it would only take a few minutes to add this feature to their site, and it might make it easier for some novice developers and other random users.

It’s pretty clear that it’s an alpha. Some of the links on the site don’t work, the “français” page is the same as the English page, there are grammatical errors, etc. (Of course I’m hardly one to taalk — I’ve noticed that my previous blog entry is riddled with typos, but I can’t go back and correct it without screwing up the formatting on the code sample because of the screwey blog editing software. But that’s an unrelated minor squabble between me and Mr. WordPress. 😉 .) Anyway, every good idea has to start somewhere.

I was almost a little hesitant to run this program on my handset, since it’s an unknown application that I just happened to download off the Internet that’s going to read information from my handset and then send that information to some unknown site on the Internet. However — given Java’s security system — I don’t think there’s really much danger that a MIDlet running with the “untrusted” security level can do any harm. (I know it’s running as “untrusted” since there’s no digital signature in the jad file I wrote for it…) I double-checked the PIM API JavaDoc to make sure that an untrusted MIDlet can’t read information from my addressbook without asking for permission, so I know they’re not even trying to harvest my contacts’ phone numbers for some nefarious marketing purposes or something. Even so, since I’m not much of a trusting soul I guess, I ran it first on the WTK to see what it was going to do. (There it had a strange Exception, but ran anyway.)

And here’s the result.

Amusingly, the program failed to identify my handset as a Sagem — it looks like this is the first Sagem they’ve captured stats for.

All in all, this looks like a fun idea. My one concern would be to wonder how they’ll persuade enough people to install and run their program. It costs the user effort and network time, and the user doesn’t get much in return except detailed developer-level information about the local handset. I guess that’s enough to make it interesting for me, but for how many others? Maybe they should reward the user by showing an animation of a dancing monkey during the upload? Hehe, just kidding, but it seems like it would be a good idea to somehow make this little procedure more cool and fun so kids will recommend it on forums or mySpace or whatever… 😉

Strategies and Mobilists

I’ve just added the “Carnival of Mobilists” to my little reading list over on the side there. It’s interesting stuff — a lot of discussions on the different mobile technologies out there and where the industry is going.

The funny thing is that for me, reading about where the industry is going and what various companies are up to has always been kind of like eating broccoli (or whatever your least-favorite-yet-good-for-you vegetable is…). Yet I’ve discovered that for some reason it’s more interesting on blogs. It seems kind of counterintuitive that reading things that random people have posted for free would be more interesting than serious news outlets, but it makes sense: A lot of news in the standard press consists of (maybe slightly modified) press releases, and it’s hard tell anything from a press release except that the P.R. departments of the companies involved want you to think that this new product or merger or whatever is the greatest thing since sliced bread. Whereas the bloggers tell what they think of the prospects of various technologies and why. Plus a lot of them are writers promoting themselves, so they’re skilled and motivated to write something interesting.

I’m not sure I really fit in with that particular blogging carnival since my interest here is more to get down in the guts of new technologies to see on how to apply them in practice, and only occasionally come up for air to tell you what I think of them and how they compare to related technologies. Off the top of my head yesterday I came up with a list of eleven little projects I’d like to try and write about here. So I should probably go find myself a carnival of mobile software engineering blogs. 😉 But it’s good to get some added perspective by reading the higher-level tech business blogs.

I have one little thing to say about macro business strategy though, and that’s that I think it’s cool that mobiles are starting to follow the rest of the Internet in the direction of having a big draw be socializing through content uploading and interacting with other users. It makes sense that a lot of this online interaction would be entirely mobile-based (i.e. there are people you play a game with on your mobile, but you don’t necessarily play a P.C. game at home against the same people). However, I’m more excited about the prospect of mobile applications having a tie-in with existing communities on the Internet.

For one thing, it’s difficult to build a community from scratch through mobile interaction, except for cases like games where the application provides a natural framework/activity. I can’t really see getting hooked on, say, a forum through my handset just because I can’t see that many posts at once, and what’s more it’s a pain to type a post on that tiny keyboard. But people who are already hooked on Internet communities are a great potential market for mobile services.

It’s almost kind of funny that the classic example program for an online service was originally the “real-time stock quotes” program. Probably many engineers (like me!) have a difficult time relating to people wanting such a thing (see above about how fascinated I am by business news). At least since the year 2000 anyway. Whenever I read tutorials implementing that service, I mostly just relate to the exercise on the “sell software to people who have money” principle.

On the other hand, I can easily see wanting to have a mobile client to stay up-to-the-minute on the latest posts on favorite blogs, forums, and wikis. My classic example program for an online service would be one that gives real-time blog stats for those neurotic bloggers who compulsively check their stats every twenty minutes. Not that I know anybody like that. Anyway, I’m totally exaggerating. I mean every five minutes.

It’s not clear how one could make money off such a thing, but identifying the market is an important step. Then comes a fun little engineering exercise known as designing the billing model… 😉