<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
  <channel>
    <title>Software Everywhere</title>
    <link>http://www.pikesoft.com/blog/</link>
    <description></description>
    <!-- optional tags -->
    <language>en-us</language>           <!-- valid langugae goes here -->
    <generator>Nucleus CMS v3.33</generator>
    <copyright>©</copyright>             <!-- Copyright notice -->
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://www.pikesoft.com/blog//nucleus/nucleus2.gif</url>
      <title>Software Everywhere</title>
      <link>http://www.pikesoft.com/blog/</link>
    </image>
    <item>
 <title><![CDATA[What's the next Java GUI?]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=228</link>
<description><![CDATA[<a href="http://www.jroller.com/wparrott/entry/webkit_for_swt_java_js">Wayne Parrot thinks it's going to be HTML5</a>. His work on WebKit for SWT aims to prove it:<br />
<blockquote>We have implemented a bidirectional bridge that allows you to implement JS objects in Java and to interact with JS objects from Java. This feature has turned out to be very useful as we are leveraging the power of HTML5 technologies in a much more dramatic and efficient manner from Java now. This is a dev strategy that I have wanted to leverage for sometime. I'm so impressed by what is possible that I'll make a controversial claim that if you are a Java UI developer and are not paying attention to the advances in web UI technology then prepare yourself to be blown away in a very short order by much more capable and productive UI developers that understand how to use new killer web UI features on the desktop.</blockquote>WebKit's growing dominance in the mobile space (iPhone, Android, S60 and now Palm webOS) as well as the desktop make this a pretty intriguing UI option for Java developers&#8212;more so than JavaFX, perhaps.  I like JavaFX script, but it wasn't the first dynamic scripting language specifically designed to complement Java for the purpose of developing RIAs.  That was JavaScript, which already has great mindshare and energy that shows no sign of flagging.  One can't help but wonder about JavaFX while the very future of Sun itself seems so uncertain.<br />
<br />
Speaking of RIA's, a call-out to Jo Ritter for his recent comment on R<b>M</b>As&#8212;<a href="http://picisblog.blogspot.com/2008/09/rich-internet-applications-go-mobile.html">Rich <b>Mobile</b>Net Applications</a>. This application model, which spans mobile and the desktop by introducing the <a href="http://www.redmonk.com/jgovernor/2008/02/05/osgi-and-the-rise-of-the-stackless-stack-just-in-time/">stackless Java stack</a>, is finally hitting some mainstream handsets thanks to ProSyst and Sprint.  But let's get serious: that can't possibly come to pass until there is an entry for Rich MobileNet Application in Wikipedia, guys!  Get on it!]]></description>
 <category>Mobile User Interface</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=228</comments>
 <pubDate>Sun, 12 Apr 2009 13:21:39 -0600</pubDate>
</item><item>
 <title><![CDATA[Keep an eye on Project Blinki]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=225</link>
<description><![CDATA[Just a quick callout to the budding open source <a href="http://www.eclipse.org/proposals/firefly/">Blinki project at Eclipse Foundation</a> (formerly known as FireFly). What caught my attention:<br />
<blockquote>the FireFly project will develop next-generation technologies and frameworks to support the creation of mobile web applications that look and behavior similarly to native applications and are able to interact with device services such as GPS, accelerometers and personal data.</blockquote><br />
It looks like Genuitec (of MyEclipse fame) is leading this initiative.  The first thing that's they've released is an <a href="http://fireflymobile.wordpress.com/2009/03/03/webkit-for-swt-released/">SWT browser widget that uses the WebKit rendering engine</a>.  From <a href="http://www.jroller.com/wparrott/entry/webkit_for_swt_released">Wayne Parrot's blog</a>: <br />
<blockquote>The WebKit for SWT browser API provides all the basic browser use-cases that you would expect. Additionally the cool features of WebKit such as HTML5, CSS3, V8 engine, and other things are now accessible from Java.</blockquote><br />
<a href="http://code.google.com/p/v8/">V8 is the super-fast open source JavaScript engine</a> that Google developed for its Chrome browser.  It's worth noting that it's been optimized not just for x86 processors, but for ARM Linux.  Think Android... or the <a href="http://en.wikipedia.org/wiki/Palm_Pre">Palm Pre with its webOS platform</a>.<br />
<br />
Last week I mentioned that Mobile OSGi (specifically the Sprint Titan platform) would be a great starting place for the open source community to create a knock-off of the Palm webOS mobile platform.  Now that the bindings between a Java runtime and the WebKit HTML5 rendering engine are in place the community is quite a bit closer... and webOS isn't even in the wild yet.  The beauty of the OSS version would be that developers could write code not just at the JavaScript front-end as the Mojo SDK will allow, but they could also write Java modules that run as services in the middleware tier&#8212;or even native Linux or Win32 modules encapsulated in OSGi bundles.  For Palm fans who read my blog, think webOS (or something much like it) running not just on the Pre, but on the Treo Pro with Windows Mobile under the hood.<br />
<br />
I'd like to think that developments like this will force Palm to release an SDK that opens its own middleware layer.  For webOS to get the most traction in the market Palm needs to leverage the architecture's natural advantages as a service oriented mobile platform. Android's Achilles heal is the weak component model and attenuated, non-standard affordance for apps to provide services to each other (i.e. be "mashed up").  If Palm doesn't go after that weak point early in the evolution of webOS, it won't take long before others make the first move.<br />
<br />
UPDATE: The new Blinki blog is <a href="http://blinkimobile.wordpress.com/">here</a>. Watch it.]]></description>
 <category>Mobile OSGi</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=225</comments>
 <pubDate>Mon, 23 Mar 2009 10:26:00 -0600</pubDate>
</item><item>
 <title><![CDATA[MapQuest4Mobile]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=223</link>
<description><![CDATA[Working at MapQuest for the last year and a half has been an extraordinary opportunity for me in that the mobile applications I create there are targeted to an audience of 40 million people who use MapQuest.com at least once a month.  A slight downside of being associated with the top brand in online maps and directions is that I'm not as free to talk about my work as I am when the signature on my paycheck is my own.  That fact&#8212;and being on a small team that does daily battle with outfits the likes of Google&#8212;helps explain why I haven't posted on Software Everywhere as often as I like.<br />
<br />
This week we had a new release of the <a href="http://www.mapquest.com/mq4m">MapQuest4Mobile</a> application that has been my main "baby" over the last year, and the marketing folks asked if I'd like to blog about it.  I still can't say much about what's coming next (aside from "you're gonna like it!") but at least you can get a feel for what I've been up to during this "heads-down" period of time.  Check out <a href="http://blog.mapquest.com/2009/03/19/save-is-the-new-print-using-the-enhanced-mapquest4mobile-w/">my post on the MapQuest blog</a>, and if you've got a supported BlackBerry device, check out <a href="http://www.mapquest.com/mq4m">MapQuest4Mobile</a>!<br />
<br />
(Pay no attention to the name on the MapQuest blog entry&#8212;it's me.  I guess the "author" of the posts in the blogging application MapQuest uses is always the name of the guy in marketing who pushes the "Publish" button.)<br />
]]></description>
 <category>General</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=223</comments>
 <pubDate>Fri, 20 Mar 2009 13:04:13 -0600</pubDate>
</item><item>
 <title><![CDATA[Sprint points the way out of the mobile wilderness]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=220</link>
<description><![CDATA[The sleeping giant of the mass market is finally waking to the realization that mobile phones are personal computers.  Software developers have been waiting for this day a long time&#8212;longer than most expected&#8212;but the sad irony of the situation is that the mobile software opportunity is now mired in software itself.  Application developers aiming to target this broadening swath of mobile users are spread too thin to innovate: they spend most of their time and resources reinventing wheel after wheel and porting their applications to platform after incompatible platform.  In sharp contrast to the circumstance of developers on the Web where interoperability and shared componentry are the norm, mobile developers find themselves corralled and Balkanized by scores of incompatible languages, runtimes, profiles, browsers, rendering engines, and SDKs, to say nothing of the fragmentation that makes the same API feature in any of these "platforms" work differently on each of a handful of different devices.  <br />
<br />
Allow me to do some back-of-an-envelope math to underscore the magnitude of the predicament.  Consider five hypothetical independent software vendors developing five applications&#8212each different but sharing five features in common.  Just to put us in the realm of the concrete, suppose the features are real-time location awareness, consumption of RSS, rendering of complex animated graphics, instant messaging, and network presence.  Each ISV wants their applications to run on 100 handsets spread across five mobile platforms: iPhone, Android, S60, BlackBerry and Palm webOS. (The execs said no budget for Windows Mobile, MIDP, BREW, JavaFX, Palm OS, WebKit browsers, etc.)   Thankfully, some of the platforms have proprietary built-in components that implement these features and a couple have SDKs in the same programming language.  Even so, if you work out the porting permutations, the total amount of <i>duplicated</i> effort across these companies could easily outstrip the effort of developing the differentiating features by two orders of magnitude.<br />
<br />
Let's face it: while this crushing fragmentation persists (cloaked in the excuse of "differentiation" and "personalization") mobile technology will not only lag behind web technology, it will hold back the Web itself.<br />
<br />
Many have blamed the carriers' pursuit of differentiation-at-any-cost for this perverse state of affairs.  So who would have thought that Sprint-Nextel would be the first to chart a course out of this mire, still less to blaze a trail for developers across two million mass-market and up-market handsets this year?  That is the significance of the Sprint Titan platform, the first mobile environment built on the proposition that real mobile innovation comes not from herding developers into a better silo (even an open source one) but from enabling them tie many APIs together dynamically using a universal component framework.  Titan is not a new operating system.  It's <a href="https://developer.sprint.com/site/global/develop/technologies/sprint_titan/p_sprint_titan.jsp">middleware that runs just above the OS</a>, enforcing Lego-like interoperability among components&#8212even for code written in different languages&#8212and providing a service-oriented architecture so any developer can offer their own APIs for others to build on.  <br />
<br />
I've started working with Titan a bit and I'm really inspired by the possibilities.<br />
<br />
Technically, Titan is comprised of an unusually powerful Java ME runtime environment (CDC/FP), a dynamic component framework (OSGi), a remote device management agent (OMA-DM compliant), and a basic kit of service components, called "bundles" in OSGi parlance.  A few words about what each of these is bringing to the table:<br />
<br />
<ul><li><b>Java ME CDC</b> is a big step up from what's on most phones today.  Critically for Titan, it supports Java Standard Edition features like shared libraries, custom classloaders, invoking native code, and rich APIs for graphics and UI.</li><li><b>OSGi</b> is the same dynamic component framework that has made the Eclipse development environment easy for developers and tool vendors to extend with hundreds of plug-ins. But OSGi didn't originate with desktop-class hardware in mind: it came from the world of embedded devices. OSGi bundles are written in Java, but they can include native code to expose special OS or device features.  They can also implement bindings to other languages like JavaScript, ActionScript, or JavaFX, enabling code written in these languages to access the same features.  Titan is <i>not</i> just another Java SDK. It's greatest potential may be as an extensible mobile RIA platform.</li><li><b>Remote management</b> is part of the OSGi Mobile spec and a key to making mobile software development more agile. Application updates on many mobile phones today are so disruptive to users that most companies are rightfuly afraid to impose updates more than twice a year. Combined with OSGi's unique capability of updating components without restarting the VM, remote management should enable no-touch updates of rich client apps of the painless sort usually reserved for web applications.  The agility advantage of "release early, release often" may finally be available to mobile software shops.</li><li><b>Service bundles</b> are where Titan surpasses mobile Java platforms like MIDP (even MIDP 3) and Android.  For example, if Titan is running on an OS with a native GUI toolkit like Windows Mobile or S60 (or a desktop OS, for that matter) it can expose that toolkit as a service using eSWT and the embedded Rich Client Platform bundles.  I believe you could develop entire applications in native code with the thinnest of Java wrappers to allow install/start/stop/update lifecycle management by the framework to maximize performance. Still more interesting, Titan ships with an HTTP service that is a full-fledged Java servlet container.  This enables applications that use the browser to render the UI but have JavaScript bindings into system capabilities that web applications can't normally access: local databases, GPS, Bluetooth, the camera, etc.  Where mobile browsers usually render the Web as a pale shadow of their desktop counterparts, the mobile Web on a Titan handset can be combined with mobile phone capabilities in ways never seen in a desktop browser.</li></ul><br />
In it's 1.0 release Titan has been implemented for Sprint's Windows Mobile Pro handsets, including the Palm Treo Pro, slated for release on Sprint this weekend. It supports writing apps in Java with a native Windows GUI (eRCP) or multi-tier web UI apps that use the browser engine for the front-end and Servlets running on the internal HTTP service for the business logic and access to features like GPS location. But insiders are saying that this middleware will stretch very broadly across Sprint's handset portfolio as well as devices designed for the XOHM WiMAX network, so we can expect that bundles for additional application models are in the works.  Flash Lite seems like an obvious candidate, as does LWUIT.  I've seen a presentation that hints that JavaFX could be a frontend on some Titan phones that Sprint releases.  <br />
<br />
The beauty of it is that no one has to wait for Sprint to implement new bundles and start embedding them in the firmware.  If Sun wants to package JavaFX as an OSGi bundle, developers could add JavaFX apps to Titan phones that had no such support when they were released.  I've already suggested that Palm give serious consideration to implementing its webOS middleware as a collection of OSGi bundles for portability.  But even an indy developer could mash up some open source and homebrew libraries, create a new application model for Titan and share it with other developers.  I predict that a Titan phone will be the first to run a knock-off of Palm's webOS developed by the open source community.<br />
<br />
Creating your own SDK may not sound like a very practical idea for the average mobile developer (maybe only slightly manic ones like myself!) but building apps using middleware bundles that provide easy access to popular web services from Google, Yahoo, Amazon, Facebook, AOL and Twitter will be an exciting proposition for any developer.  We can guess those vendors as well as smaller web startups will soon be populating Titan's bundle ecosystem with plug-ins for everything from messaging to mapping in a bid to extend their reach, leveraging the creativity of third parties to build the apps they couldn't&#8212;or wouldn't think to&#8212;build themselves.<br />
<br />
Beyond the technical capability Titan provides to build applications by mashing up components, the question of how components can be published and optionally monetized is key to the success of Titan as a driver for mobile application innovation.  Vendors like the ones just mentioned are likely to offer free bundles to developers that want to build on their services.  And open source bundles will surely abound&#8212they already do.  But what about a marketplace where developers can sell components they have developed to each other?  Possibly even a payments service on the device to enable component vendors to implement monthly recurring charges or micropayments to monetize highly complex or valuable components.  I hope Sprint is giving some thought to this, because creating a great business model for developing components will make the difference between Titan being disruptive or just deeply interesting.  And I'm also interested to understand what security policies Titan will implement and how Sprint will deal with testing and certifying bundles that aren't themselves applications, but middleware services for other applications to consume. Trustability of components will be critical to creating a vibrant market and a new era for component-based mobile application development.<br />
<br />
By the way, check out <a href="http://mobileosgi.blogspot.com/">Jo Ritter's blog</a> for one of the best sources of information about Mobile OSGi and Titan.]]></description>
 <category>Mobile OSGi</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=220</comments>
 <pubDate>Fri, 13 Mar 2009 07:22:00 -0600</pubDate>
</item><item>
 <title><![CDATA[Tough times for Aceeca]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=218</link>
<description><![CDATA[My favorite company in the industrial handheld hardware business is, like many of the rest of us, seeing some tough economic times.  In their latest newsletter they have announced they're having to sell the company jet:<br />
<br />
 <br />
<br />
These guys are old friends and we haven't sent much business their way in a while, so after reviewing things with the CFO (who I'm sleeping with by the way*) I've decided that Pikesoft will make an offer on the Aceeca jet to replace one from our own aging fleet:<br />
<br />
<br />
<br />
I hope Alex's jet has WiFi like ours do.<br />
<br />
*Usually with a 50lb dog between us.<br />
<br />
<br />
<br />
]]></description>
 <category>General</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=218</comments>
 <pubDate>Mon, 2 Mar 2009 12:27:54 -0600</pubDate>
</item><item>
 <title><![CDATA[How Palm will storm the desktop with webOS]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=214</link>
<description><![CDATA[<div class="leftbox"></div><br />
It was hard to know where to start in talking about all the exciting software development prospects for the Palm Pre and webOS.  I began by speculating about an eventual Java SDK for webOS, which would be a heck of a left hook to follow the Mojo SDK's right jab.  But I'm getting ahead of myself.  Even just considering the JavaScript SDK they have already announced Palm has put themselves in an astonishing strategic position that I'm surprised no one is talking about.  By building a system using de facto cross-platform standards like JavaScript, WebKit, Java and Jetty, Palm has made a great platform for creating companion applications that can run on <i>any desktop</i>&#8212Windows, Mac, or Linux&#8212leveraging the same code that runs on the handset.  You won't see Apple being able to deliver iPhone applications to the desktop like that any time soon, at least not for the 90% of personal computer users that don't own Macs.<br />
<br />
Palm has prepared us not to expect desktop synchronization via cable or cradle like what Palm OS users have been accustomed to since the beginning.  But the Pre is among other things a modernization of the original Palm concept of having always-on-you personal information management, updated to the reality that much of people's personal information now lives in the cloud. The desktop is still going to be the command center for most people's digital life and Palm knows it.  So gazing into my crystal ball, let me tell you how the desktop story will in fact unfold:<br />
<blockquote>LAS VEGAS, CTIA Wireless 2009, Apr 1, 2009 - Palm, Inc. (NASDAQ: PALM) today announced the Palm Desktop Companion, an application that brings to the Windows and Mac desktop the same integrated calendar and contacts found on the Pre smartphone.... Desktop Companion uses [crystal ball is clouding a bit here] to keep your calendar and contacts synchronized automatically without the use of cables or cradles.  [Did I make out the phrase "peer-to-peer" when the crystal hazed over in that moment?  Or was there a faint trace about a "secure web service"?  Oh well, the future is coming through clearly again now.]<br />
<br />
SUNNYVALE, CA - May 15, 2009 - Palm, Inc. (NASDAQ: PALM) today announced that the Mojo SDK will not only enable third party developers to write applications for webOS devices like the Pre smartphone, but to deploy the same applications to the Palm Desktop Companion.... "The SDK enables webOS developers that follow some simple SDK guidelines to build applications that 'unfold' naturally on computers with larger screens for the extra ease and efficiency of the full desktop experience" says Palm's VP of Developer Services Horton Hooville....  [The image dimmed for a moment there... not sure I got that name right.] <br />
<br />
MOUNTAIN VIEW, Calif - June 23, 2009 - Three days ahead of the scheduled release of Palm's Pre smartphone, Google, Inc. (NASDAQ: GOOG) announced the release of GMail and Google Docs for the Pre as well as for the Palm Desktop Companion.... This announcement brings Google's popular mail service to the Pre as well as instant access to all of your office documents at any time.  When at their desktop, users of Palm Desktop Companion now have access to Gmail and the ability to view and edit documents, presentations and spreadsheets even when they are offline....  <br />
<br />
BARCELONA, GSMA Mobile World Congress, Feb 15, 2010 - Palm, Inc. (NASDAQ: PALM) today announced the Foleo Pro Mobile Companion... The Foleo Pro runs properly configured applications created for the Pre without modification, but with the same ease of use found in the Palm Desktop Companion application.</blockquote><br />
The unfolding UI concept would be the key to making application screens that stack on the phone to display side-by-side in the familiar "master-detail" layout seen in applications like the original Palm Desktop and Microsoft Outlook.  I blogged some thoughts about this idea way back in Sept 2005 in <a href="http://www.pikesoft.com/blog/index.php?itemid=10">one of my very first posts</a>, complete with a lame mock-up to illustrate.  It's simple, really.  Many, if not most mobile applications provide a "master" or "list" view of the data from which the user selects an item and then navigates to a screen that displays the details of the selected item with additional options for manipulating it. If these master and detail screens (or "cards" as Palm now seems to like calling them) are identified as having this relationship in the code by using an API that binds the selection in the master view to what is displayed in the detail view, all it takes to spread the stacked cards across a larger surface so they are viewable side-by-side is a little CSS.  Making a desktop version of a webOS application might involve no additional coding at all, just some care to follow certain design guidelines.  <br />
<br />
The main work for Palm would be to create a native application that hosts the webOS environment on each system they want to support and provides some hooks into system services so that things like calendar event reminders work from the desktop. From what I can glean from looking at the <a href="http://www.pikesoft.com/blog/index.php?itemid=207">leaked screenshots of the SDK in action</a>, most of the hard work of developing this desktop presence has already been done since it went into developing the webOS middleware already on the Pre. That's the main reason I'm optimistic that Palm could pull this off during this period of severely strapped resources.  <br />
<br />
They would also want to integrate their application store in the desktop companion app, since the desktop is clearly the easiest and most engaging way to search for and try out applications.  Letting application shoppers try an application in a simulated Pre phone launched from the desktop app would be a great way to break down the natural resistance to trying something new.  I also believe there are opportunities to make installation of the application to the phone slicker and smoother than we've seen on other platforms using a desktop companion app like this.<br />
<br />
Of course, some mobile phone features that Pre applications could use like the microphone, camera, voicemail, SMS and GPS would not be natively supported on most desktop computers.  But if Palm or a third party were to implement peer-to-peer communication between the Pre and "Palm Desktop Companion" it wouldn't be much of a stretch to make even these phone features usable from the desktop.  While you're at your desk you could receive SMS messages, proxied by your phone, and answer them using the keyboard and mouse already at your fingertips.  With that link to the phone in place, seeing voicemails show up in the inbox of the desktop companion and being able to listen to them there might be a modest effort that extends Palm's story about total integration of messaging and contacts one notch further.  Desktop web searches or mapping applications could be localized by clicking a "near my current location" toggle that geocodes a GPS fix retrieved from the Pre in your pocket and adds the location data to the query.  <br />
<br />
What a spectacle it would be to see Palm show up out of nowhere as one of the players in the hotly contested cloud computing arena. And not just to show, but to conquer a niche because their AJAX APIs expose unique messaging, location, even voice and camera functions on the mobile that only their position as a mobile software/hardware integrator makes possible!<br />
<br />
Am I getting carried away now?  Perhaps a bit.  I may have compressed the timeline for these developments to unfold. But my bet is that their webOS strategy gives Palm a long enough lever to move some surprising mountains, even in their current weakened state. If they share the vision I've described, the key success factor in realizing it will be a peerless commitment to enabling the success of third party developers so that Palm has a strong ecosystem to pass the baton to.  Palm's success in the 90's was built on stellar developer support and it's revival today must be built the same way. Early indications give hope that <a href="http://arstechnica.com/news.ars/post/20090109-the-pres-got-mojo-a-developer-speaks-about-palms-new-sdk.html">Palm gets this</a>.<br />
<br />
If Palm declines to offer a C/C++ or Java SDK and loses some developers in order to focus their energies on getting webOS and the Mojo SDK a place on the desktop, it'll be hard for me to feel all that disappointed.  For that, I'll brush off my JavaScript skills and get right to work.]]></description>
 <category>Palm</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=214</comments>
 <pubDate>Tue, 20 Jan 2009 18:39:12 -0600</pubDate>
</item><item>
 <title><![CDATA[Is that a Java application server running on your Palm Pre?]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=207</link>
<description><![CDATA[BoyGeniusReport has <a href="http://www.boygeniusreport.com/gallery/handsets/palm-webos-sdk/">leaked some screenshots</a> of someone using what looks like the Palm webOS SDK, complete with revealing console output. (You should know that a normal person looking at that gallery would be admiring at all the pretty UI pictures, of which there are many, but I'm most fascinated with the debug console.) The console shows the JavaScript code making requests using a "luna://" protocol to a Jetty web application server running locally, which in turn uses file I/O to access files with .json extensions in a Linux-like file system. It's not a sure thing I suppose, but it's a pretty darned good bet that we're seeing something very close to what happens when a webOS application is running on a real device like the Pre smartphone. If that's the case we've learned quite a bit, and can guess even a bit more.<br />
<br />
First, at least as far as the application framework is concerned, the software on a Pre looks an awful lot like a Linux web server and nothing at all like Android, ALP or any other Linux-based mobile platform we've seen.  Second, the server code that is running in the development environment is Jetty, which is Java.  That makes sense from the standpoint of enabling developers to use Mac or Windows workstations but maybe there's a native C/C++ server running on the actual device. I doubt it.  I say there's a Java app server running on the phone, too, inside a nice Java runtime.  Why?  <br />
<br />
Well first, why not?  Java is secure, stable, runs on all kinds of processors and OSes, including x86 PCs and Macs and a billion or so mobile phones.  Palm didn't have time to mess around with porting or reinventing the wheel. Second, as I pointed out  back in <a href="http://www.pikesoft.com/blog/index.php?itemid=196">Sept '07 when the Foleo was cancelled</a>, Palm was hiring Java engineers for...<br />
<blockquote>implementation of Java based mobile system software on new product development project. Responsible for all mobile development (design through implementation and release), working with other device engineers and design lead on overall system architecture and design.</blockquote><br />
There have also been ads for Java web services engineers, but ads like the one above told me to expect that Palm's new Linux system would be "Java based."  And I'm more sure than ever now that it is.<br />
<br />
Here's what else we know: it's not a J2ME MIDP environment on the Pre like the ones on most other phones.  To run an application server it's at least a CDC environment with Foundation Profile, which means it's pretty beefy and has a lot of the power of the underlying Linux system available to it.  That doesn't necessarily mean that Palm will be letting 3rd parties write applications that run in the Java runtime as opposed to WebKit, but they certainly could.  <br />
<br />
This is where I get really intrigued, though.  See, Palm's first carrier partner is Sprint.  Sprint has been on the forefront of an idea to make mobile devices first class citizens on the web by enabling them to run "desktop class" software.  The way they are doing this is through a platform they call Titan <a href="http://newsreleases.sprint.com/phoenix.zhtml?c=127149&amp;p=irol-newsArticle_newsroom&amp;ID=1234093">released just last month</a>.  Titan puts a powerful Java environment together with a technology called OSGi, which is the special sauce.  It's a service platform that enables developers to create software by plugging together software components.  For example, Sprint's Titan platform includes a web server module to enable iPhone-like widgets (hmmm).  Because the server is running inside the OSGi container, widgets can interoperate with other components in the container: components for GPS location, messaging, multimedia, etc (hmmmm!).  <br />
<br />
The novel service-oriented architecture of webOS bears more than a passing resemblance to Titan.  And I can't think of a better way for Palm to have put it all together than with OSGi, just as Sprint did. Loyal readers know I've been waiting years for OSGi to go mainstream on mobile phones. There are so many good reasons, for it, especially for Palm:<br />
<br />
<ul><li>OSGi fixes some unfortunate limitations of Java ME: incompatibility with standard Java packages, no shared libraries, no long-running services, no loading of classes that weren't installed with the app, no intercommunication between applications, no app updates without reinstalling the entire application, etc. Seems like half the places you think there should be a door there's a blank wall.</li><li>OSGi also solves many of the problems that motivated these limitations in the first place, mostly having to do with challenges of delivering high reliability, manageability and security in an open component-based platform, long a sort of holy grail for software development</li><li>OSGi is designed for remote management.  It would be ideal for performing firmware, software, or configuration updates over-the-air.  Such updates could originate from Palm, from a carrier wanting to deploy a new service or app, a third party developer, or possibly an enterprise customer wanting to update an application or setting across all their users.  This capability would give Palm one of the advantages that RIM has traditionally held in the smartphone market.</li><li>OSGi is ideal for delivering the same service with the same code across multiple platforms.  If Palm is serious about delivering web services and plans to keep their Windows Mobile smartphone line they can reuse the Java service components they develop for the Pre on their WinMo phones.  This can be true even when OS-specific native resources are involved. For example there is a powerful framework called RCP for creating Java GUI applications that can run on Windows Mobile, desktop Windows, Mac OS or Linux--all with a native UI provided by the underlying system.  RCP and OSGi are the technologies that enable the Eclipse development environment to run fast with native look-and-feel on Windows, Mac and Linux desktops. Let me be clear here: <i>It's totally feasible with OSGi under the hood for webOS applications and any special services that Palm develops for the Pre to also run on Windows Mobile, and that Java apps with native Windows Mobile GUIs could be developed using RCP that leverage the identical service software</i>.  I'd think that would be a pretty compelling proposition for Palm.</li><li>OSGi makes Android's IPC-based component model look slow, weak and restrictive.  OSGi communicates with its bundles by ordinary method calls, a much better way to enable the kind of mash-ups that have made Android attractive to developers.</li><li>OSGi is a mature, open standard with strong industry backing, a sizable catalog of mostly free plug-ins, and considerable buzz among developers</li></ul><br />
So what to make of this?  Has Palm jumped on the OSGi train?  There's no way to really know at this point. All I really know is that if <i>I</i> were going to develop a system like webOS I would certainly use OSGi, and that some pretty smart guys I know at Sprint (and Nokia, by the way) came to the same conclusion.  Keep in mind, if Palm is packing some OSGi goodness it doesn't mean it will all be open to developers when the first SDK is released.  If they allow third party Java components at all there will likely be a digital signing requirement.  But the day an SDK is available for Java as well as JavaScript developers, and we can target both webOS <i>and</i> Windows Mobile smartphones, Palm will be in a superb position to build a developer ecosystem that draws deeply and broadly on the talent that powers Web 2.0 today.<br />
<br />
Oh, and I'll be there, too, heh.  With bells on.]]></description>
 <category>Palm</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=207</comments>
 <pubDate>Tue, 13 Jan 2009 01:27:00 -0600</pubDate>
</item><item>
 <title><![CDATA[Palm webOS applications are not "web apps"]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=204</link>
<description><![CDATA[I've been seeing a number of folks describing applications for the <a href="http://developer.palm.com/">just-announced Palm webOS</a> as "web apps." It's understandable given the name and some of the technologies mentioned at CES, but it's quite misleading.  I posted an explanation of this on PalmInfocenter and figured I would post it here as well (with a few edits) since what Palm has really done is create an interesting new fusion between web and locally installed applications.<br />
<br />
First of all, a web application runs in a browser, which is a piece of software that's optimized first and foremost for making requests to a server on the Internet and rendering the responses as a web page. Browsers have gradually been twisted or tortured with plugins to playback media, use cookies as local databases, and integrate with other apps on the machine, but to operate reliably and safely on the Internet they're necessarily somewhat crippled in using features of the system or hardware. Just because Palm said that webOS apps can be written with HTML, CSS and JavaScript doesn't mean they run in a browser or have the limitations of a web browser.  Those are technologies for rendering a GUI that can--and have been--used outside the confines of the browser, and Palm is doing just that.<br />
<br />
Secondly, people should understand that HTML 5 goes <i>well</i> beyond what we're accustomed to thinking of as HTML. It includes APIs for immediate-mode 2D drawing, video playback, offline databases, drag-and-drop--pretty cutting edge stuff. Palm is certainly the first company to release a mobile product based on HTML 5, and even modern desktop browsers only implement parts of the spec, often through optionally installed plugins like Google Gears.<br />
<br />
As for JavaScript, it's a general programming language that is separate from the HTML document object model that it's most commonly associated with. Palm has already stated that they have extended that model to enable access to local databases on the phone and handling of notifications of system events, and there's no reason they couldn't expose much of the system API that way if they chose to. Sure, you're not going to be able to write hardware drivers in JavaScript but while some developers have good reasons for wanting to do such things a little sandboxing can a good thing on a device connected to the wild, wild Internet. A developer who partnered with Palm told the press at CES that "<a href="http://www.gearlog.com/2009/01/ces_2009_palm_tre_to_support_s.php">everything he did before in Visual Studio he could do in Javascript on the Pre</a>."  If he was much of a Visual Studio developer at all that means there's a lot more than the HTML DOM being scripted there.<br />
<br />
Next, there's the complaint that JavaScript and HTML are interpreted and therefore slow.  But remember, webOS applications aren't running in a browser, so there's nothing that says any of this need be interpreted. Palm knows all about compiling HTML applications into native code: they developed tools and APIs for doing this on the Palm VII back in 1999 and presumably own patents on it. They called these "web clipping" applications, and they displayed in the launcher and ran as first-class native applications on Palm devices, not as interpreted scripts in an HTML browser. <br />
<br />
Now JavaScript may not be a lot of fun to code and debug, compared to a statically compiled language like Java or even C/C++.  But let's remember that we don't have an SDK yet. Until we do we have no idea if JavaScript is the <i>only</i> API or if there are other ways to access more of the system APIs. Obviously there <i>are</i> other ways to access system APIs, which developers will discover on their own if Palm doesn't document them, but for now it's too early to say.  I have a suspicion that a Java runtime is lurking in there somewhere and Palm didn't want to mention it yet for fear of comments about Palm being "late to the mobile Java party."  J2ME, Danger, RIM, Android, JavaFX, Sprint Titan... the advance of mobile Java may be exciting for mobile Java developers but to everyone else a new Java SDK sounds warmed over, and Palm's had enough of that kind of talk.<br />
<br />
If you watched any of the announcement you know that webOS is <i>also</i> intended for delivering a cutting edge web app experience, but that has to do with the browser they developed. It should also be clear that applications originally written for the web using JS/HTML/CSS (like GMail, BaseCamp, Facebook, etc.) should be easy to port to webOS <i>and</i> be enhanced to run in offline mode, due to webOS's HTML 5 support for offline databases.  <br />
<br />
All this starts to blur the distinction between "web apps" and "local apps," and that's where I think we're going with the mobile web.  My friend <a href="http://weblog.cenriqueortiz.com/mobility/2009/01/10/update-diagram-on-mobile-applications-browser-lightweight-local-based-apps/">Enrique Ortiz seems to agree</a>.  Nice to see good old Palm pushing out the frontier once again.<br />
]]></description>
 <category>Palm</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=204</comments>
 <pubDate>Mon, 12 Jan 2009 17:01:46 -0600</pubDate>
</item><item>
 <title><![CDATA[Palm comes roaring back]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=200</link>
<description><![CDATA[The consensus seems to be that Palm way outstripped expectations in their announcement of the new webOS and Pre smartphone yesterday.  The stock soared from $3.40 to over $6.00 after the CES demo.  Here's a taste of <a href=http://www.pcpro.co.uk/news/244962/palm-announces-killer-phone.html">how the mainstream tech media responded</a>.<br />
<br />
I've always been of the mind that Palm had more fight in them than most were giving credit, but while I was expecting something pretty special... well, let's just say I was positively floored--especially by the new webOS.  <br />
 <br />
Let me just dispense with all the customary caveats and qualifications that should attend opinions about a product this new and untried, because I think the folks at Palm deserve a standing ovation. To put it plainly, Palm just leapfrogged right over both Apple and Google.  The Pre doesn't just have an elegant, simple gesture interface: it has the physical keyboard that Apple couldn't bear to let "mar" the iPhone's monolithic slabness. And word has it that the Pre is 4 times faster than the iPhone. Palm apparently still knows better than anyone how to get performance out of mobile hardware: you don't start with a desktop OS and whittle it down, you build for mobile from the ground up.  <br />
<br />
As for the Google comparison, webOS sounds a lot like where Google seems to be headed with Chrome, Gears, etc: a web-based operating system.  Except Chrome, Gears, etc. aren't an OS yet and they don't run on mobile handsets in any case.  Poll position to Palm for the first of a new breed of mobile web device, melding some of the best features of the browser with the hardware integration and I/O options only installed applications can deliver (a fusion not unlike one I <a href="http://www.pikesoft.com/blog/index.php?itemid=165">predicted</a> Palm would bring to market, based on various clues they gave back in 2007).  Palm also has the advantage over Android that they build and tightly integrate the hardware with the system, something Google seems to show no stomach for doing.  Hardware/OS integration is one reason why Apple lapped Microsoft so easily, so it's great to see Palm finally putting this to full advantage again.  <br />
 <br />
I'm thrilled that webOS seems in places to be one of the earliest and best implementations of a UI concept that I've evangelized <a href="http://www.pikesoft.com/blog/index.php?itemid=152">here</a> and <a href="http://www.pikesoft.com/blog/index.php?itemid=166">here</a>: what I called uninspiringly "the mobile command line." Check out <a href="http://www.pcpro.co.uk/news/245052">this part of the demo</a> to see what I was talking about here, beautifully realized by the Palm designers and engineers.  I love the simplicity, power and efficiency of text-based interaction on my PC, but it's on my mobile that it <i>really</i> brings the walls tumbling down.  You're looking at the future of the mobile UI.<br />
<br />
I will switch to Sprint and buy a Pre the day they hit the shelves, and I'm <i>very</i> interested in seeing the SDK. <br />
<br />
Palm has their mojo back.  <br />
]]></description>
 <category>Palm</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=200</comments>
 <pubDate>Fri, 9 Jan 2009 22:01:00 -0600</pubDate>
</item><item>
 <title><![CDATA[Have mobile apps had their moment?]]></title>
 <link>http://www.pikesoft.com/blog/index.php?itemid=198</link>
<description><![CDATA[Mike Mace has written a piece titled <a href="http://mobileopportunity.blogspot.com/2008/02/mobile-applications-rip.html">Mobile Applications, RIP</a> that seems far wide of the mark to me.  He says that user-installed "native" mobile applications (as distinguished from web applications) have been so crushed by platform fragmentation and restrictive carrier certification requirements that the only remaining platform with a viable business model for mobile is the web.  <br />
<br />
Must be a Silicon Valley thing, because that's sure not been my experience.  Nor it seems has it been Barbara Ballard's over at Little Springs Design, which has its foot in both the Java app and web app markets. <a href="http://www.littlespringsdesign.com/blog/2008/02/18/java-me-is-dead-long-live-java-me/">She wrote recently</a>:<br />
<blockquote>This quarter is not particularly different from other quarters: we get far more work designing applications than designing web sites.</blockquote><br />
She goes on to explain why browser applications still aren't cutting it for her customers:<br />
<blockquote><ul><li>Because they need to store some of their application logic and/or data locally</li><li>Because the app or data needs to be available without the network</li><li>Because the application would be dreadfully slow as a web app</li><li>Because they are creating a push messaging client that needs more rich interaction than simple SMS (and better interoperability than MMS)</li></ul></blockquote><br />
I don't think  Barbara or I disagree with Mike about the challenges of fragmentation and certification, but I see things finally starting to get exciting for mobile developers, not dying out.  Seems to me that all the really great new opportunities in mobile software involve applications that need access to the native hardware:  <br />
<br />
<ul><li>LBS is finally taking off. (This is where I work these days and I get calls and emails asking for GPS apps all the time.)</li><li>Mobile payments look poised to break out of Asia and into North America</li><li>Companies are rushing to use QR codes  to build the "<a href="http://en.wikipedia.org/wiki/Physical_world_hyperlinks">Internet of Things</a>", for which your mobile will be the mouse you "click" to gain access.</li><li>Three words that make the above two items even more interesting: near-field radios.</li><li>Multimodal user interfaces are finally looking ready for prime-time, so people can mix voice and button-clicks to create, search, and interact with their personal data and data in the cloud</li><li>Best of all, mass market mobile phone users are starting to "get" the idea that their mobiles really <i>can</i> run applications and they're installing them to stay connected with their favorite social networks</li></ul><br />
Fragmentation is certainly not a reason for developers to retreat to the browser.  The mobile web is incredibly fragmented, whereas Java ME fragmentation has been significantly reduced.  And Java is looking like the new lingua franca of smartphones, too: RIM, Danger, Motorola, Google, and (rumor has it) Palm have all opted to make advanced (i.e. beyond MIDP) Java runtimes their primary smartphone application frameworks.  A well-written Java ME application aimed at mass market feature phones is pretty easy to port to more advanced Java environments.  The definition of "well-written Java ME application" will be a developer topic that I address very soon.<br />
<br />
The carrier barrier does indeed make things tough&#8212especially for "Long Tail" applications that address small niches.  But we shouldn't forget that the carriers control the browser just as much as they do any other free-standing app.  We know they are more than willing to control what parts of the web you can access without paying them a "toll." The only thing that's making web applications freer from carrier control right now for users who <i>do</i> pay that toll is that these apps aren't (yet) threatening any revenue streams or generating revenue from which the carriers can extract their pound of flesh.<br />
<br />
Fortunately, as I watch the carriers struggle for ways to reduce subscriber churn and see widening cracks in the walls around their gardens, I'm more confident than ever that they will not be able to keep the forces arrayed against them out.  That topic will have to wait for future posts.  Suffice it to say for now that from where I stand there seems to be more good work for mobile developers today than ever.  And I'm not talking about mobile web developers.]]></description>
 <category>Mobile Technology</category>
<comments>http://www.pikesoft.com/blog/index.php?itemid=198</comments>
 <pubDate>Mon, 25 Feb 2008 07:49:10 -0600</pubDate>
</item>
  </channel>
</rss>