<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Sean Sheedy&apos;s Blog</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/" />
<modified>2008-01-30T06:12:00Z</modified>
<tagline></tagline>
<id>tag:weblogs.java.net,2008:/blog/sean_sheedy/414</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2008, sean_sheedy</copyright>
<entry>
<title>A &quot;Fragmentation Program Office&quot;?</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2008/01/a_fragmentation.html" />
<modified>2008-01-30T06:12:00Z</modified>
<issued>2008-01-30T06:11:48Z</issued>
<id>tag:weblogs.java.net,2008:/blog/sean_sheedy/414.9093</id>
<created>2008-01-30T06:11:48Z</created>
<summary type="text/plain">A lot has been blogged about fragmentation in the mobile space, but in certain areas, progress seems glacial.  Discussions at the MEDD conference suggest the need for a central role to coordinate work on the many facets of fragmentation.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<p>The MEDD conference was exactly what I thought it would be: learning about cool stuff (SunSPOTS!), meeting old friends and making new ones.  And it turned out that one topic stood out above the rest - confronting fragmentation in the mobile space.
</p><p>
Looking at the <a href="http://www.javelinfeedback.com/sun/report.jsp?rid=cb2839853379894b0c1f29a70e7f2fea">lightning talk feedback</a> we find the most highly rated lightning talk was possibly Terrence Barr's "Do We Need a Mobile Developer Alliance"?  Were the ratings also votes for making such an alliance a reality?
</p>]]>
<![CDATA[<p>
The direction of the last sessions of both days suggests that the answer is "yes".  The <a href="">technical session feedback</a> shows that among the highest rated sessions were the panel on "Developing and Deploying Content in the Real World", and the "Fish Bowl" on the last day, both of which dove into the topic of fragmentation and never left it.
</p><p>
Undoubtedly, the current <a href="http://www.java.net/pub/pq/193">java.net poll</a> was inspired by this theme.  As of this writing, by far, voters believe that the two greatest sources of fragmentation relief are the manufacturers, and Sun.  Why aren't operators, who could team together to coordinate signing and certification requirements, considered a group that can solve this major point of fragmentation?
</p><p>
One answer lies in the Fish Bowl conversation.  One developer spoke about how fragmentation was really a problem, but what was really killing him was all the signing and certification hurdles they had to face.  In other words, we have different perceptions as to what constitutes fragmentation and what doesn't.
</p><p>
The point is that it is really hard to discuss fragmentation when we don't even have a common language to describe it or can agree on its scope.
</p><p>
This came up again in an open discussion on fragmentation at Sun's offices on Friday.  (More to come on that once the meeting notes are written up.)  One of the participants mentioned that their company actually had a comprehensive glossary of fragmentation-related terms, but nobody else in the meeting was aware of it.  
</p><p>
Even the discussion of fragmentation is fragmented, with major corporations in this space aware of it, but discussing it, raising it as an issue, or actively pursuing programs to address it in relative isolation.  Some of that work has been effective (such as JSR-248, in pulling together many JSRs under one umbrella), but other work has been duplicative or has not happened at all.  It is kind of like building a wheel with a some good spokes, some broken spokes, some missing spokes, and no hub.
</p><p>
Part of the reason that industry collaboration does not exist in many areas is that when people do want to collaborate with their competitors to solve a joint problem, their managers only hear the word "competitor" and big caution flags come out.
</p><p>
There are many aspects of fragmentation that need to be addressed, and it will require work by ALL of the parties listed in the java.net poll.  There are several crucial things that must happen for this to occur:
</p>
<ul>
<li>A common definition and understanding of the problem must occur (hub)</li>
<li>The problem needs to be divided into pieces that can be easily described (spokes)</li>
<li>Environments that bring competitors together to address each piece need to be created (spokes)</li>
<li>Coordination must occur to avoid duplication and enable communication between groups tackling different areas of the problem (hub), yet</li>
<li>There must be enough freedom for ad-hoc groups that have the support of the community to run with whatever part of the problem they want to (spokes)</li>
</ul>
<p>
I have considered the JCP to be a good place to center a "Fragmentation Program Office" to lead? manage? keep track of? launch? different fragmentation reduction efforts.  But judging from the response to the java.net survey and the apparent call for a Developer Alliance at the MEDD conference, a hub for defragmentation activity could spring from anywhere the community will accept it to be.
</p>]]>
</content>
</entry>
<entry>
<title>SunSPOTs and ham radio</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2008/01/sunspots_and_ha.html" />
<modified>2008-01-23T23:41:46Z</modified>
<issued>2008-01-23T23:41:39Z</issued>
<id>tag:weblogs.java.net,2008:/blog/sean_sheedy/414.9047</id>
<created>2008-01-23T23:41:39Z</created>
<summary type="text/plain">This week I drove from San Diego to get to the MEDD conference and used ham radio&apos;s APRS to track my position - SunSPOTs could be a really cool addition to this space.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[This week I decided to drive from San Diego to Santa Clara to this week's MEDD conference rather than fly home and back again.  This gave me the opportunity to try out a new ham radio product called the TinyTrak4 which is about to be released by its creator, <a href="http://byonics.com">Byon Garrabrant</a>.
<br><br>
The TinyTrak4 provides me with an APRS setup in my car to track my position as I moved along.  (I also beaconed that I could be reached by voice on 144.39 MHz, which is the ham radio national calling frequency for two meters, and kept a second radio on for that purpose.)
<br><br>
Links:
<br><br>
<a href="http://map.findu.com/ai4id">Present location</a><br>
<a href="http://www.findu.com/cgi-bin/map-near.cgi?call=ai4id">Ham stations near me</a><br>
<a href="http://www.findu.com/cgi-bin/dmap.cgi?&offsetx=20&offsety=-90&scale=1.3%20%20%20%20%20%20%20%20&width=640&height=&height&map=usa.mp&last=24&nocall=1">APRS users around the country</a><br>
<br>
Now, there is a really cool product called the <a href="www.byonics.com/tinytrak4">TinyTrak4</a> which has been through a year of beta testing (that's my TT4 on Byon's web page) and is about to go live.  You hook up a GPS receiver to the TT4 and it creates packets and uses smart beaconing to send it into the ham radio APRS network via an attached ham radio.
<br><br>
The TT4 can do more than this, and one of the cool things about the TT4 is that it can take sensor data and attach it to these packets.
<br><br>
There are devices called "digipeaters" which hams set up to hear radios like mine, and retransmit them, the idea being that other radios in the area can more easily hear them.  Transmissions can go over multiple hops or none at all depending on the path that the user sets in the tracker.
<br><br>
Furthermore, there are "i-gates" which are receivers hooked up to the Internet, which take packets (that are not flagged to not be gated) and post them to the Internet, where you can look at them on maps such as at the above links.
<br><br>
There are 30,000 or so APRS users out there, and a device that can include sensor data with a scheduled transmission is useful.  This brings us to the other neat feature of the TT4, which is that it can be used as a data modem or "TNC" as it is known in ham radio speak.
<br><br>
APRS is not only used for tracking yourself (in fact, use of this mode with no other information is discouraged by some because it really does not contribute much other than a spot on a map, and does lead to more congestion of the channel.)  Some other uses include letting people know how you can be contacted (as I did, by including the frequency I'd listen to), or send messages back and forth (many APRS systems are capable of messaging), or transmit weather station information, or many other uses.
<br><br>
What I wanted to put out there is that the SunSPOT is a device that is easily programmable using Java and has a number of interesting sensors that are of interest to hams, the original Makers.  Temp sensor, accelerometer, inputs/outputs, etc.  What could be done if you connect a highly programmable sensor like this to a network like APRS?  What could you get from a network of sensors working simultaneously or that can receive and act on messages sent to it remotely?]]>

</content>
</entry>
<entry>
<title>Open Discussion of Developer Issues</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2008/01/open_discussion.html" />
<modified>2008-01-17T12:09:49Z</modified>
<issued>2008-01-17T12:07:58Z</issued>
<id>tag:weblogs.java.net,2008:/blog/sean_sheedy/414.9005</id>
<created>2008-01-17T12:07:58Z</created>
<summary type="text/plain">Because so many community leaders will be in town for the MEDD conference next week, Terrence Barr has reserved a room from 9 AM to 1 PM on Friday January 25th for a discussion of issues facing individual developers.  If you have an interest in this aspect of the community, read on.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[Over the years, there has been much written and spoken about the challenges facing mobile developers.  This will be no different in some of the sessions and in the hallways at the <a href="https://developerdays.dev.java.net/">Mobile & Embedded Developer Days</a> conference and at <a href="http://barcamp.org/BarCampME">BarCampME</a> in Santa Clara next week.
<br><br>
To facilitate converting talk into action, a room has been been reserved from 9 AM to 1 PM on Friday January 25th near the MEDD site for an extended face-to-face discussion.
<br><br>
The timing coincides with the conclusion of the MEDD conference to take advantage of the momentum caused by the conference, and so that members of the community who are flying in to attend the MEDD conference can participate in this discussion.  
<br><br>
The discussion is not limited to any particular technology or aspect of the mobile application ecosystem.  
<br><br>
The agenda is fluid but is looking something like this:
<ul><li>
Introductions - getting to know each other and why we are interested in developer issues</li>
<li>Vision/Goals - what would we like to accomplish in the interests of developers?  In 2008?  In the next quarter?</li>
<li>Recent Activity - What was attempted last year that worked or did not work?</li>
<li>From Talk to Action - Blogging and writing articles has helped us understand but not necessarily led to change.  What new *actions* can we take during the next quarter towards reaching these goals?</li>
</ul><br>
We might only reach the second agenda item, but leaving with a better knowledge of who is genuinely interested in addressing mobile developer issues, having a common vision, and sharing email addresses and phone numbers, will in itself be a great first step.
<br><br>
If you are interested in attending, please email Terrence, or myself at developermeeting@gmail.com.]]>

</content>
</entry>
<entry>
<title>Pack your sleeping bags!</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2008/01/minibarcamp_col.html" />
<modified>2008-01-15T11:25:05Z</modified>
<issued>2008-01-15T11:24:30Z</issued>
<id>tag:weblogs.java.net,2008:/blog/sean_sheedy/414.8993</id>
<created>2008-01-15T11:24:30Z</created>
<summary type="text/plain">The MiniBarCamp, &quot;BarCampME&quot;, which bridges the two days of the Mobile &amp; Embedded Developer Days conference, is on!</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[Pack your sleeping bags!  The MiniBarCamp, "BarCampME", which bridges the two days of the <a href="https://developerdays.dev.java.net/">Mobile & Embedded Developer Days</a> (MEDD) conference, is on!
<br><br>
My friend Dan Green is due a big Thank You from me and everyone who will participate, because late last week he found a secret FooCamp/BarCamp veteran who came through with the support we needed to make it happen.
<br><br>
The MiniBarCamp starts at 8:30 PM Wednesday January 23rd, after the MEDD dinner, and runs until 8:30 AM the next morning.  Information can be found here:
<br><br>
<a href="http://barcamp.org/BarCampME">BarCampME</a>
<br><br>
In case you were wondering, here is the Wikipedia entry for <a href="http://en.wikipedia.org/wiki/BarCamp">BarCamp</a>.
<br><br>
Thank you Terrence Barr and Roger Brinkley for putting this on the MEDD agenda!!!]]>

</content>
</entry>
<entry>
<title>Android&apos;s &quot;do not fragment&quot; clause...</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/11/androids_do_not.html" />
<modified>2007-11-07T18:59:27Z</modified>
<issued>2007-11-07T18:59:20Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.8594</id>
<created>2007-11-07T18:59:20Z</created>
<summary type="text/plain">According to a PC World article, Open Handset Alliance members have agreed &quot;not to fragment nor do things that would result in different versions of the platform.&quot;  Why is this unacheivable, yet at the same time, essential for eliminating fragmentation in both Android and Java ME?</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<p>
The OHA members have signed an <a href="http://www.pcworld.com/article/id,139331-c,nonwindowsoss/article.html">anti-fragmentation clause.</a>  "They've basically agreed not to fragment nor do things that would result in different versions of the platform", says Rich Miner in the PC World interview.  And the JCP has that too - called MSA.  But as Java ME developers know very well, there are many facets to fragmentation extending beyond the platform and well into the surrounding ecosystem.
</p><p>
A strict "do not fragment" clause is impossible to implement without putting every aspect of the platform and ecosystem through a committee, or relinquishing creativity and possibly IP to a central authority.  This is because the other face of fragmentation is called innovation and differentiation.
</p><p>
If many vendors are playing similar roles in the ecosystem then I don't care if there is an anti-fragmentation clause in OHA, you are going to see some fragmentation.  Some of this is beneficial: you need to allow new features to appear in devices and new services to be offered.  "Fragmentation management" is needed so you don't eliminate the innovative process when eliminating redundancies that appear as a result of that process. 
</p><p>
What this clause is, however, is a huge, essential step in the right direction.  It establishes a positive spirit of cooperation.  It reminds competing parties why they need to be at the table.  It justifies discussions on processes throughout the ecosystem, such as application certification, signing processes, distribution, rewarding the creation of new features and services, open issue tracking and sharing, collaboration on documentation and developer support, interoperability testing and "bake offs", etc.
</p><p>
One of my objectives in <a href="http://phonedeveloper.com/ec">my candidacy</a> for one of the <a href="https://www.jcpelection2007.org:443/jcp/election_ballot">open Java ME EC seats</a> is to drive the EC to expand its scope to address the areas of fragmentation that go beyond the platform.  Having everyone sit down and sign a "do not fragment" statement, no matter how symbolic, is perhaps a great way to set the tone for the collaboration required to do what everyone already wants: turn the symbolism in concrete practices.</p>]]>

</content>
</entry>
<entry>
<title>On the Android announcement - a bullet list</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/11/on_the_android.html" />
<modified>2007-11-06T18:01:43Z</modified>
<issued>2007-11-06T18:01:29Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.8586</id>
<created>2007-11-06T18:01:29Z</created>
<summary type="text/plain">A friend in the industry asked me for my opinion on the Android news, and this was my response.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<ul><li>Android has existed for probably about 4 years, created by people who have real handset experience, so a delivery timeframe of 2H08 is not unreasonable.  Google acquired Android back in August 2005 and it had already been running for 22 months by then.
</li><li> 
<a href="http://www.theregister.co.uk/2007/03/16/google_phone_confirmed"> This old (March 2007) article</a> tells us perhaps more technically than most of the news about the phone that came out in the past day.
</li><li>
Given that article's date, and its lack of mention of a lot of other players, and the growing leaks of Gphone news in the press prior to the announcement, the other players in the announcement were probably brought on board shortly after this and probably have been working on this coming on 4-6 months...
</li><li>Sun was noticeably absent but <a href="http://blogs.sun.com/jonathan/entry/congratulations_google">Jonathan Schwartz blogged his full support yesterday</a> and promised full support in NetBeans.  This is really great news for Java developers.
</li><li>
If you peruse the press releases from the companies in <a href="http://www.openhandsetalliance.com">Open Handset Alliance</a> you will find <a href="http://www.sonivoxrocks.com/google.html">a little more tech info</a> which shows that it's a Java play as far as developers are concerned and quite possibly that Linux will not be exposed to developers (or at least not to anyone but close partners.)  Could be wrong about that last part, and this is what we're all dying to see in the Nov 12 release of the SDK.
</li><li>
This is underscored by the presence of <a href="www.esmertec.com">Esmertec</a> and <a href="www.aplixcorp.com/en/index.html">Aplix</a> who have created the Java ME platforms for a lot of mobile phones.
</li><li>
If you look closely at all the companies in the OHA list, and do a little dreaming, you can piece together a vision for a handset with some pretty intense and <b>useful</b> capabilities that will be yet another nail in the coffin of Frankenphones we have to live with today.  (I'll provide my definition of Frankenphones later, but the short answer is that it is what you get when product managers are allowed to make major functional and design decisions for handsets.)
</li><li>
The presence of Nuance as part of the voice solution suggests that this may provide a stepping stone towards giving the VOIP industry the vision it needs to get out of its saturated but under-realized state.  Personal IVRs may be right around the corner.  Home phones where you have one line that rings through your whole house and you can't make a call while someone else is on the phone will be as passé and unacceptable as <a href="http://en.wikipedia.org/wiki/Party_line_%28telephony%29">party lines</a> would be (though you might see stuff like Selective Ring, since you may want all handsets in the house to ring, but need to know who in the house it is for.) OK, maybe this is stretch here, but VOIP is an industry ready for a focusing as much as applications and technologies we are discussing here have focused mobile data after its early fits in starts in the late 90s and early 2000s.
</li><li>
Expect to see telephony integration in the PC taken to the next step as a fallout of this.
</li><li>
That they cobbled together 34 companies for the OHA announcement so secretly is amazing.  The NDA must have some pretty big teeth.  Even people who should have been involved in this did not know about its full extent until yesterday.
</li><li>
Apple has proven that a sufficiently sized outsider is a gorilla in this space and will ravage the china shop if ignored.
</li><li>
You cannot ignore Google; they are a bigger gorilla than Apple both in market cap (about 40% greater) and arguably, penetration of their respective industries, depending on what industries you consider.
</li><li>
Still, there must be a pretty darn good business case for the parties involved in Google's pitch deck.  I would love to see an unedited version of that.
</li><li>
Not to mention that those on the OHA missed the iPhone boat, so there may be a bit of fear of not being on board for this "second chance".  Operators are saying that they <a href="http://www.washingtonpost.com/wp-dyn/content/article/2007/11/05/AR2007110500434.html?hpid=sec-tech">
recognize the days of closed phones are nearing the end</a> (this is mentioned a ways down in the article by one of those interviewed.)
</li><li>
How open is OHA?  At the end of the FAQ on the alliance on www.openhandsetalliance.org is an email for questions about joining OHA.  Of course, I sent them an email asking what the process is for joining.  (I already know the general answer, but why not get an official one?)
</li><li>
Interesting that Qualcomm is on the list, obviously because of chipset implications, but also because this directly competes with their relatively closed BREW business.  What does this spell for BREW?
</li><li>
Also interesting, but not surprising, that AT&T is not joining, but they already have their own pet gorilla.
</li><li>
Nokia is also not on the list which is also not surprising as it has its own plans for a soup-to-nuts ecosystem around its handsets as evidenced by its <a href="http://www.informationweek.com/showArticle.jhtml?articleID=202300072">
recent location acquisitions</a>.  At last month's CTIA conference, NAVTEQ held a full day session which emphasized the many yet-unrealized possibilities surrounding location, including taking location to the pedestrian level - which is where Google will play with Android.  In the <a href="http://online.wsj.com/public/article/SB119427874851482602-dRUEzo9NiIUNdCT3PjiTceTk28o_20071206.html?mod=tff_main_tff_top">
Wall Street Journal</a>, Nokia said they already have an open system in their high end phones.
</li><li>
<a href="http://www.pcmag.com/article2/0,1759,2212426,00.asp">PC Magazine reports</a> that OHA members are not dropping other OSs for Android.
</li><li>
Additionally, there are <a href="http://www.azcentral.com/business/consumer/articles/1106biz-googlephones06-ON.html">reports</a> that signing on to the alliance does not mean that a company will create a "google phone".  This makes sense, as Google said that it did not want to build a phone - it would probably not want to deal with phones any more than it wants to deal with a Google PC - but it does need an environment that meets its needs.
</li><li>
So given this, and with OHA's website not really being more than a link or two deep, is OHA more than a bunch of press releases?  Today, probably not.  Will they eventually standardize this work, or push the standards work out to places like the JCP, W3C, OMA, IETF, 3GPP and CDG?
</li><li>
I also have to comment that the video on the OHA website plays like the tours of Pixar in the DVD extras of films like Toy Story.  Don't all the robots look just totally cool?
</li><li>
Finally, a reference to the JCP.  Opening a dialog with OHA should be a priority - if Android has meat (which it does by all indications) then working with them is going to be imperative.
</li></ul>
<p>
Note that this is all written before seeing the Android SDK.  However, there are a lot of smart people behind this, and with people like Jonathan Schwartz supporting it (who probably has insight into what is under the covers - I will leave the commentary on this for others), there will probably be some very interesting stuff for Java developers.
</p>
<p>
Sean
</p>

]]>

</content>
</entry>
<entry>
<title>Voting is Good but Making Your Voice Heard is Better</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/11/voting_is_good.html" />
<modified>2007-11-01T23:46:54Z</modified>
<issued>2007-11-01T23:46:49Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.8544</id>
<created>2007-11-01T23:46:49Z</created>
<summary type="text/plain">After spending several years in the Java ME standards circuit for a major operator, I&apos;m running for one of the open Executive Committee seats as an Individual.  I&apos;d really like to know what burning topics Java ME developers would like to see the winning candidates bring to the EC.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<p>After spending several years in the Java ME standards circuit for a major operator, I'm now on my own as a consultant, and running for one of the open Executive Committee seats as an Individual.  I'd really like to know what burning topics Java ME developers would like to see the winning candidates bring to the EC.</p>

<p>Java ME has been fabulously successful with well over 2 Billion devices shipped.  A lot is being done right, but it does not mean that the platform is without issues.  Some are longstanding, and current EC members tell me that the desire for correcting them is universal.  However, the nature of corporate life makes initiating these discussions difficult.  How do you tell your boss that you need travel budget to discuss fragmentation with your biggest competitors?  "You're going to discuss <i>what</i> with <i>who?</i>"</p>

<p>An Individual can facilitate discussions on these issues.  They have the advantage of not having corporate encumbrances.  They are freer to start conversations among competitors to bring those to the table who need to be there for change to happen.  They can highlight other Members' public actions that demonstrate their commitment to the Community Process, without being accused of "aiding the enemy."  They are freer to question private actions within the EC that undermine those public actions, without burning vendor/customer relationships.</p>

<p>In my <a href="http://phonedeveloper.com/ec">position statement</a>, I listed many potential objectives, but with only 15 people in the EC, you have to <b>focus</b> in order to get anything done.  So I am interested in hearing what people consider to be the first issue for a new EC member to raise after they are elected to the Executive Committee.</p>

<p>In the JCP, a Community with over 700 members, about 2/3 are Individual Members and of the remaining 1/3, a significant number are smaller companies.  However, between the EC and MSA - the two bodies that drive ME - all but one member is a large corporation.  This is not to say that these companies do not represent developers.  From personal experience I know they do, but developer interests are represented through a corporate lens.  </p>

<p>What do individual developers want to accomplish when that lens is removed?</p>]]>

</content>
</entry>
<entry>
<title>SE/EE Executive Committee Candidates</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/11/seee_executive.html" />
<modified>2007-11-01T22:26:46Z</modified>
<issued>2007-11-01T22:26:38Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.8543</id>
<created>2007-11-01T22:26:38Z</created>
<summary type="text/plain">Being focused on Java ME, I found that after perusing the candidate list for the SE/EE EC on http://jcpelection2007.org, I still was not sure who to vote for.  So I put this together to be able to compare the candidates and understand their motivations for running for an EC seat.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>

<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<p>Being focused on Java ME, I found that after perusing the candidate list for the SE/EE EC on <a href="http://jcpelection2007.org">jcpelection2007.org</a>, I still was not sure who to vote for.  So I put this together to be able to compare the candidates and understand their motivations for running for an EC seat.  </p>

<p>I'm posting this so that maybe a few people or the candidates themselves can help fill this out, or comment on who they are voting for and why.</p>

<p>All candidates should be commended for selecting EC participation as their way of contributing to the Java community and helping to guide Java's future.</p>

<p>I paraphrased what I found in their candidate statements and things they linked to, so there are bound to be errors.  Please let me know if you find any and I will correct them. </p>

<p>For each, a couple of questions came to mind and are listed.  For example, I was hoping to see more information in the candidates statements about why they were running for a seat - only two of the seven candidates provided this information.</p>

<p>Disclaimer: I am a <a href=http://phonedeveloper.com/ec>candidate</a> for a seat on the <a href=https://www.jcpelection2007.org:443/jcp/election_ballot>Java ME EC</a>.</p>

<p>Voting ends 11/12.  </p>]]>
<![CDATA[<p><b>CodeGear (Borland)</b></p>

<ul>History:
<li>JBuilder developer tools</li>
<li>First all-Java development environment</li>
<li>Helped define the Java beans specification</li>
</ul>

<ul>JSRs:
<li>compiler, debugger, ejb, servlets, jsp, jsf, jbi</li>
<li>JCP EC for...?</li>
</ul>

<ul>Goals for the EC:
</ul>

<ul>Goals for Java:
</ul>

<ul>Rep:
<li>Ravi Kumar, Principal Architect, Java tools group</li>
<li>David Intersimone, VP Developer Relations, Chief Evangelist - responsible for CodeGear developer network - 6M SW developers</li>
</ul>

<ul>Questions:
<li>What are your goals for your EC participation?</li>
<li>What do you plan to do to change Borland's past EC participation stats?</li>
</ul>

<p>=============</p>

<p><b>Eclipse Foundation, Inc</b></p>

<ul>History:
<li>Hosts Eclipse projects, 100% in Java</li>
<li>Tooling support for JSRs</li>
</ul>

<ul>JSRs:
<li>220, 222, 235, 291, 317</li>
<li>New JCP member, joined in 2007</li>
</ul>

<ul>Goals for the EC:
<li>Open source licensing of Java technologies</li>
<li>Maintaining a culture of openness and innovation</li>
</ul>

<ul>Goals for Java:
</ul>

<ul>Rep:
<li>None mentioned on the election site</li>
</ul>

<ul>Questions:
<li>Who do you plan to send to EC meetings, and what are their credentials?</li>
<li>What specifically do you propose regarding "maintaining a culture of openness and innovation"?</li>
</ul>

<p>==============</p>

<p><b>Ericsson AB</b></p>

<ul>History:
<li>Mobile device and infrastructure provider</li>
<li>Contributing to the open source community</li>
</ul>

<ul>JSRs:
<li>Currently participating in 21 JSRs including 281 and 319.</li>
<li>JCP EC for past six years</li>
</ul>

<ul>Goals for the EC:
<li>Offer technology leadership</li>
<li>Evolve the JCP</li>
<li>(from website) "presently ramping up our engagement in JCP".</li>
</ul>

<ul>Goals for Java:
<li>Promote Java as the technology of choice for the telecom industry</li>
</ul>

<ul>Rep:
<li>Jens Jensen, spec lead for JSR-319</li>
</ul>

<ul>Questions:
<li>In what ways do you wish to see the JCP evolve?</li>
<li>Where do you plan to provide technology leadership?</li>
<li>In what ways are you ramping up your engagement in the JCP?</li>
</ul>

<p>================</p>

<p><b>Google Inc.</b></p>

<ul>History:
<li>It's Google</li>
<li>Extensive use of the Java platform</li>
</ul>

<ul>JSRs:
<li>Participated actively in 23 JCP EGs</li>
<li>JCP EC for past 3 years</li>
</ul>

<ul>Goals for the EC:
</ul>

<ul>Goals for Java:
<li>Deeply believes in giving back to the community</li>
</ul>

<ul>Rep:
<li>Joshua Bloch, Chief Java Architect and author of a number of Java books, previously Distinguised Engineer at Sun</li>
</ul>

<ul>Questions:
<li>What are your objectives for your JCP EC participation?</li>
</ul>

<p>=================</p>

<p><b>Interface21, Inc.</b></p>

<ul>History:
<li>Creator and supporter of Spring framework</li>
</ul>

<ul>JSRs:
<li>JSF 2.0, JDO 2.0, JPA 2.0, Servlet 2.3, Java EE 6.0, JMX</li>
</ul>

<ul>Goals for the EC:
</ul>

<ul>Goals for Java:
</ul>

<ul>Rep:
<li>Rod Johnson, author or several best-selling Java EE books and top speaker at JavaOne, Java Champion and EG member including Java EE 6</li>
</ul>

<ul>Questions:
<li>What are your reasons for running for a position on the EC?  What are your EC objectives?</li>
</ul>

<p>=======================</p>

<p><b>Klaus Meffert (Individual)</b></p>

<ul>History:
<li>Works for Brandt & Partner (software consulting and implementation) on Java and SAP.</li>
<li>Author of a book on JUnit</li>
</ul>

<ul>JSRs:
</ul>

<ul>Goals for the EC:
</ul>

<ul>Goals for Java:
</ul>

<ul>Rep:
<li>Self</li>
</ul>

<ul>Questions:
<li>What are your goals for your EC participation?</li>
</ul>

<p>====================</p>

<p><b>Perret Pierre-Henry (Individual)</b></p>

<ul>History:
<li>Works for Cross Systems in Switzerland.</li>
</ul>

<ul>JSRs:
</ul>

<ul>Goals for the EC:
</ul>

<ul>Goals for Java:
</ul>

<ul>Rep:
<li>Self</li>
</ul>

<ul>Questions:
<li>What are your objectives for your EC participation?</li>
</ul>]]>
</content>
</entry>
<entry>
<title>A Call for &quot;Open Enrollment&quot; for MSA (Mobile Service Architecture) Advanced</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/10/a_call_for_open.html" />
<modified>2007-10-24T12:46:33Z</modified>
<issued>2007-10-24T12:46:26Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.8486</id>
<created>2007-10-24T12:46:26Z</created>
<summary type="text/plain">MSA Advanced has no Individual Experts on its Expert Group, and here are a few reasons why it can.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<p>MSA Advanced is chartered to define the next generation Mobile Java platform.  So, it seems logical to get the experience and expertise of many users and citizens and developers into the discussions surrounding this new platform.  </p>

<p>However, there are no individual experts in MSA Advanced.</p>

<p>The problem is that once an Expert Group (EG) has been selected, it's common for a JSR to stop accepting participants and remain closed at the discretion of the spec leads.  Somehow this EG formed without Individual experts.  MSA Advanced's web page on JCP.org shows that it started in summer 2004, and was scheduled to finish a little over a year later.  A lot has changed in the mobile space since then, and the individual perspective would contribute valuable insights.  </p>

<p>There is a precedent for joining JSRs after "open enrollment" ends.  Motorola's Mike Milikich, the spec lead for MIDP3, has an open-door policy for any JCP member wanting to get involved with that JSR.  The result is that many eyeballs have improved the richness and quality of the specification.  The "too many cooks" problem has not materialized.</p>

<p>In his keynote at JavaOne 2006, Jonathan Schwartz said, "This is not a heavy-weight corporate kind of environment. You go to <a href="http://JCP.org">JCP.org</a>, you register as an individual . . . We want to make sure that all voices are heard in the process . . . This is not about corporations defining a technology platform, this is about users and citizens and developers defining that platform."</p>

<p>I know many of the participants in MSA Advanced.  They are intelligent and kind, and they and their companies have repeatedly demonstrated how much they value the role and the input of individual developers.  Furthermore, MIDP3 has shown that there is great value in the contributions of individual developers in the EG process.  Maybe a little reminder of this is all that is needed for the MSA Advanced EG to announce "open enrollment" in the very near future.</p>

<p><br />
</p>]]>

</content>
</entry>
<entry>
<title>How Java M&amp;E Developer Days came about...</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/10/javaone_me_anno.html" />
<modified>2007-10-03T20:46:15Z</modified>
<issued>2007-10-02T20:28:12Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.8358</id>
<created>2007-10-02T20:28:12Z</created>
<summary type="text/plain">Well THIS is exciting - after spearheading a &quot;what do you think about this&quot; email discussion among some M&amp;E luminaries, Roger Brinkley has officially announced the call for papers for &quot;Java Mobile &amp; Embedded Developer Days&quot;.  It&apos;s on!  Given the buzz among the experts who were included during the formation of this event, it&apos;s not one to be missed...</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<p>Finally, everything I'd like to see in a <a href="https://developerdays.dev.java.net/">mobile & embedded developer-focused Java conference</a>.</p>

<p>It started in mid-June with this email from Roger to folks like CEO and Eric Giguere:</p>

<p>"Terrence and I are thinking of starting a Mobile & Embedded Conference that would occur some time in the late fall/early winter. This would be a conference solely devoted to Mobile & Embedded developers..."</p>]]>
<![CDATA[<p>Heck, every one of us in this space had been thinking how great a focused conference like this would be, and it certainly came out in the responses to this email.</p>

<p>Roger is very sensitive to keeping this developer focused and keeping the costs down to make it easier for individual developers to attend.  Which means it's being held in Sun's Santa Clara campus auditorium - save boatloads on venue and instead spend it on unlimited pizza and bottomless sodas... </p>

<p>Seriously, given the excitement generated every time Roger has written about this, it's inevitable that there will be key Java ME experts roaming the halls at this conference.  This means not only great sessions, but also those great late evening discussions over beer with Java giants, that I look so forward to at standards meetings and at JavaOne.  The folks Roger consulted live and work around the world, so I expect a lot of people will be flying in for this one.</p>

<p>So yeah, this announcement is just a call for papers now, but I think it's safe to say that waking up early on November 1 when registration opens is a good idea... how many people can the Sun campus auditorium possibly hold?</p>]]>
</content>
</entry>
<entry>
<title>Making your point on standards matters</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/09/making_your_poi.html" />
<modified>2007-09-18T21:26:01Z</modified>
<issued>2007-09-18T21:25:56Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.8271</id>
<created>2007-09-18T21:25:56Z</created>
<summary type="text/plain">The MIDP3 Expert Group (JSR-271) is meeting this week, and if you have something on your mind that you want the EG to take notice of, now would be a good time to act.  Feel strongly about something?  Try the personal approach.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<p>The MIDP3 Expert Group (JSR-271) is meeting this week, and if you have something on your mind that you want the EG to take notice of, now would be a good time to act.  Feel strongly about something?  Try the personal approach.</p>

<p>The <a href="http://www.jcp.org/en/jsr/detail?id=271">MIDP3</a> spec lead, <a href="http://jcp.org/en/press/news/specLeadStars/commFocus_stars_milikich">Mike Milikich</a>, has done an outstanding job getting the individual developer's perspective by making the EG easy for individual JCP members to join.  Additionally, many of the manufacturers and operators in the EG have close ties with their companies' developer and partner programs, and speak from the perspective of developer needs.  Mike has actively encouraged the surfacing of developer perspectives since MIDP3 began.</p>

<p>Yet with all this work, developers tend to be underrepresented on MIDP3 and Java ME JSRs in general, simply because it is generally not feasible for individuals to travel around the globe to standards meetings on their own dime.  Although operators and manufacturers try to speak from the developer perspective, it is not the same as representing <b>yourself</b>.</p>

<p>One way to get heard in MIDP3 is to email the EG at jsr-271-comments@jcp.org.  Received just before this week's face-to-face meeting, your email will be fresh on the minds of the EG members.</p>

<p>But if you really want to make a point, make a personal connection with a like-minded EG member.  Take a look at the list of participants on the JSR's home page at <a href="http://jcp.org/en/jsr/detail?id=271">jcp.org</a>. Google any individuals you find and shoot them an email, or better yet, dig further, find a phone number, and call them.  You'd be surprised how few people actually do this.  It really does make a difference and makes traveling to these meetings that much more worthwhile.  </p>

<p>Remember that individual EG members cannot represent other individuals (and please don't share any of your IP), but we most certainly can raise points that we feel are important to the community.  The personal approach is hardly used yet is one of the most effective methods for getting your voice heard.</p>]]>

</content>
</entry>
<entry>
<title>MIDP3 EG face-to-face wraps up</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/06/midp3_eg_faceto.html" />
<modified>2007-06-27T05:12:30Z</modified>
<issued>2007-06-27T05:12:25Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.7745</id>
<created>2007-06-27T05:12:25Z</created>
<summary type="text/plain">The MIDP3 Face to Face meeting in Madrid wrapped up with a fun evening tour of Madrid led by EG member Oscar Gutierrez from Vodafone Spain.  Oscar led us on a walking tour and took us to the real local hangouts, free from tourists.  Yet another reason to join an EG...</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<img src="http://blog.seansheedy.com/wp-content/uploads/176/2007/06/making-a-point.jpg"/>
<br>
Another MIDP3 Expert Group face-to-face meeting wrapped up today.  I have to say, although I went as an individual JCP member and paid my own way to Spain, it was worth every moment - the friendships, the networking, the feeling of accomplishment as we worked through spec issues, dusting off high school foreign language skills, being able to have intelligent conversations with geniuses in the mobile space...  it was wonderful.  There was a LOT of working going on - many people tired if not burned out from all the travel, the 9 1/2 hour days, the office email that one must attend to back at the hotel - all of this making the time after hours that much more anticipated.
<br><br>
<img src="http://blog.seansheedy.com/wp-content/uploads/176/2007/06/eg-before-drinks.jpg"/>
<br>Speaking of after-hours activities, unlike other standards bodies, you don't find JSR EGs running off to boondoggles in the French Riviera or Thailand - they generally meet in ordinary cities in Europe or somewhere in the US, alternating continents each meeting.  Someone from the EG volunteers to host a meeting in one of their offices, pays for food to be catered, and takes folks out to dinner one night for the "EG Dinner" (which prospective EG hosts should know is NOT mandatory.)
<br><br>
<img src="http://blog.seansheedy.com/wp-content/uploads/176/2007/06/bar-me-kay-cuihtlauac-oscar.jpg"/>
<br>
Before and after meetings, some of us explore the city we've come to for our meetings...]]>
<![CDATA[  In Reston last year, I hosted a pre-EG ski trip to Snowshoe.  This was far from a big deal - two EG members and myself piled into my minivan and drove for 5 hours to a cheap motel, watching movies on a 17" monitor strapped to the back of the driver's seat, stopping at McDonalds along the way.  Waking up in the morning to find it pouring rain; getting to the top of the mountain to find not rain but zero visibility fog; discovering that it only went down the top 50 feet of the mountain - and being rewarded for our troubles with a great day of skiing.
<br>
<br>
Our meetings this week wrapped up with a walking tour and bar hop of Madrid led by Oscar Gutierrez, the representative from Vodafone Spain, and we were fortunate enough to have Kay Glahn, one of the spec leads from MSA, join us.  I think we were better off than many tourists who do not have the luxury of Spanish tour guide to show us where the locals eat and drink, away from the tourists and their trappings.
<br><br>
Tomorrow it is time for skiing... yes, skiing, in Madrid, 85-degree-summertime-Madrid.  I have most of the day free before my flight home, and a few of us are going to head to Europe's largest indoor ski slope, kept at -2C all year long, located just outside Madrid.
<br><br>
<img src="http://blog.seansheedy.com/wp-content/uploads/176/2007/06/cathedral.jpg"/>
<br>
Why am I going on about this?  Because I was the only individual developer at the meeting.  We really need more developers providing the developer perspective to standards discussions.  Everyone else was corporate, as in operators and manufacturers.  We developers cannot just sit back and monitor KVM-INTEREST for what's going on, we need to get involved by attending these meetings and asking for what we need.  It is definitely not us-versus-them - it turns out that we're all thinking very much alike.  It's a matter of explaining our side of the story.
<br><br>
<img src="http://blog.seansheedy.com/wp-content/uploads/176/2007/06/stefano-sean-roger-ivan-web.jpg"/>
<br>
I hope I have given a few folks some additional incentives to monitor JSRs and sign up to go when there is a call for participants at an expert group face-to-face meeting.  Once again, it's easy for me to snap pictures and show you the after-hours highlights.  A lot of work gets done in the meetings - we're talking 9 to 10 hour sessions - and after all this, people have to get back to their hotels and check the days' email and do the other work they're expected to do.  But it sure helps when you can take a little time out of a busy EG schedule and relax.]]>
</content>
</entry>
<entry>
<title>Clarifying the MIDP3 pauseApp proposal</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/06/clarifying_the.html" />
<modified>2007-06-20T12:30:35Z</modified>
<issued>2007-06-20T12:29:57Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.7689</id>
<created>2007-06-20T12:29:57Z</created>
<summary type="text/plain">Thanks to publicity by Enrique Ortiz, the MIDP3 pauseApp proposal got some healthy discussion on KVM-INTEREST.  In this post I&apos;ve tried to summarize and address developer comments, and hopefully clarify some misconceptions about the proposal.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[The intent of this post is to summarize and address the developer comments regarding the <a href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/06/message_from_mi.html">MIDP3 proposal to deprecate <code>pauseApp</code></a>, and hopefully clarify some misconceptions about the proposal.  I want to thank Enrique Ortiz for using his position in the industry to help get the message on this topic out to developers via <a href="http://www.cenriqueortiz.com/weblog/">his blog</a> and post to <a href="http://archives.java.sun.com/cgi-bin/wa?A0=KVM-INTEREST">KVM-INTEREST</a> which is reflected in the <a href="http://forums.java.net/jive/thread.jspa?messageID=222061">Mobile & Embedded forums</a> at java.net.
<br><br>
Mike Milikich, the MIDP3 EG lead, has asked for developer input on two specific questions:
<ul><li>What percentage of your applications implement pauseApp, and for the ones that do, what functionality is present in pauseApp?</li>
<li>For any applications that implement pauseApp, what would be the effect of running that application in an environment in which pauseApp was never called?
</li></ul>
If you don't make it through this rather long post, these are the two most pressing questions at this point.
<br><br>
Also, I will be going to next week's MIDP3 face-to-face meeting.  If there is a particular aspect of this topic or any other you would like me to emphasize, post a reply, or call me at +1-703-771-8527.  The developer community is underrepresented in face-to-face meetings because of the substantial time and financial burden that attending these presents, and frankly we need more of the "street smarts" experience of developers.
<br><br>

<strong>What is driving the proposal?</strong>
<br><br>
The MIDP3 <code>pauseApp</code> proposal revolves around these points:]]>
<![CDATA[<ol><li>MIDP3 is introducing <strong>new APIs</strong> to provide better homes for the functionality that implementers have burdened <code>pauseApp</code> with in non-portable ways.</li>
<li>MIDP3 is also introducing concurrency, and is trying to eliminate the ability of a platform to place a MIDlet into a PAUSED state (that is, cease providing CPU time to threads, or arbitrarily pull resources).
<li>The proposal proponents wish to force implementers to stop the overloading of <code>pauseApp</code>, which is creating fragmentation between devices, by closing this loophole, while providing standardized methods to accomplish the same tasks.</li>
<li>The Expert Group wishes to learn <em>all the different ways that developers have been using <code>pauseApp</code></em> so that no one gets left out in the cold, either by addressing concerns through these new APIs, or if the impact is severe enough, dropping the proposal.</li></ol>
The EG literally realized that when these were accomplished, there would be nothing left for <code>pauseApp</code> or the related methods to do.  Therefore, <code>pauseApp</code>, <code>resumeRequest</code>, and <code>notifyPaused</code> would essentially have nothing but a legacy purpose, and could become no-ops for applications written for MIDP3.
<br><br>
And to the legacy point, the EG has discussed whether or not implementations should be allowed to continue to provide legacy functionality for these APIs, if the MIDlet is labeled "MIDP-2.x" or earlier.  It's totally legal by the MIDP1/2 spec and TCK to make these methods no-ops (and this is what Nokia does); if MIDP3 mandates this for ALL implementations, how much of a problem will it be for you to port your application to a MIDP3 device?
<br><br>  

<strong>Is the EG "removing" pauseApp?</strong>
<br><br>
<strong>No!</strong> The interpretation of the word "deprecate" has turned this into a real debate.  The proposal includes the use of the deprecation as a <strong>tool</strong> to remind people that this has occurred via compiler warnings - not to remove the API.  We're thinking more along the lines of <a href="http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/deprecation/deprecation.html">this definition</a>, keeping in mind that eventual removal of the API is not going to happen any time soon because of the huge impact this would have on existing applications.
<br><br>
I'm afraid that I inadvertently started the idea that the EG was removing <code>pauseApp</code> with the title of my original post (Message from MIDP3: Goodbye pauseApp!)  What I meant was, goodbye to all the issues it has caused, and I'll be happy never to have to include an empty <code>pauseApp method</code> in my MIDlets again.  (The new API is removing the <code>abstract</code> modifier to make that possible.)
<br><br>

<strong>What is replacing the functionality that <code>pauseApp</code> is overloaded with?</strong>
<br><br>
The MIDP1/2 specification provides the <code>pauseApp</code>, <code>notifyPaused</code> and <code>resumeRequest</code> methods for the following purposes:
<ol><li>To allow a MIDlet to be signaled that the implementation has placed it into the PAUSED state</li>
<li>To allow a MIDlet to signal that is wishes to be placed into the PAUSED state</li>
<li>To allow a MIDlet to signal that it wishes to be removed from the PAUSED state</li>
</ol>
This begs the question, what exactly does it mean to be PAUSED.  The answer has been subject to different interpretations since MIDP 1.0.  In my original post, I pointed out that the PAUSED state existed so that early implementers would be better able to use MIDP on platforms not originally designed for it.  If an implementation being built in 2000 really needed CPU time for a phone call, it could simply call <code>pauseApp</code>, halt execution, take back memory and other resources, and handle the phone call.
<br><br>
In 2007, handsets are designed with Java ME in mind, and many implementers have solutions to the phone call problem.  MIDP3 is introducing concurrency so a MIDlet's thread can execute even when it does not have the display and other MIDlets are running.
<br><br>
There is an argument that the PAUSED state must exist to allow MIDP3 to run on the lowest common denominator of devices, but if you look at where MIDP has gone since MIDP1, it has basically priced itself out of that market.  MIDP has found its niche and it is not at the bottom of the market.  New VMs such as the Squawk VM are filling that gap.  I'd be happy to argue about this in a different thread.
<br><br>
So with no PAUSED state (outside of that prior to the first call of <code>startApp</code>), that leaves us with the ways <code>pauseApp</code> has been <strong>overloaded</strong> by implementers in non-portable ways:
<ol><li>As a signal that the app is about to lose the UI, as during an incoming phone call</li>
<li>And in other ways that implementations are leveraging <code>pauseApp</code>.  This is a key area where the EG is trying to find out if the APIs in MIDP3 are covering these cases sufficiently - please provide these cases!</li>
</ol>

<strong><code>pauseApp</code> provided me with a way of doing (x) - how can I do that in MIDP3?</strong>
<br><br>
The signal that the app is about to lose the display for a phone call is one interpretation that permeates the iDEN platform, which was the first US Java ME platform launched in 2001.  The low level lcdui class <code>Canvas</code> provides <code>hideNotify</code> as a notification that you've lost the display, but there was no equivalent high level API notification - you had to poll <code>Screen.isShown</code>, which was possible in the PAUSED state on the iDEN platform (iDEN has allowed threads to run in PAUSED state since alpha in 2000) but this is kind of hard to do when threads are stopped in other platforms.  Providing a way to be notified of display state changes is a major feature addition in MIDP3 that was not ready in time for the early draft review, but is planned for the upcoming public review.  This is one area where MIDP3 is replacing functionality in <code>pauseApp</code> that is not implemented consistently across the ME universe.
<br><br>
As far as detecting an incoming phone call, on iDEN that was a guess, because <code>pauseApp</code> could be called for a number of reasons, including when the user actually paused the application through the device's application manager.
<br><br>
As <a href="http://forums.java.net/jive/thread.jspa?messageID=222061#222160">noted in the discussion</a>, there are many other reasons that a phone may lose control of the display.  Some of these can be handled through the new mechanisms in MIDP3 or existing mechanisms in other JSRs (Bluetooth, etc) and hopefully (a point for another entire debate!) these implementers get it right and the TCKs catch where they got it wrong.  The new <code>javax.microedition.event</code> package should be of great help here.  The <code>EventData</code> class includes things like <code>BATTERY_LEVEL, EXTERNAL_POWER, and VOICE_CALL</code> (events outside of MIDP's purview, such as those related to SMS, are the domain of other JSRs.)  Developers should look at other fields in this class by downloading the early draft review from the <a href="http://jcp.org/en/jsr/detail?id=271">JSR-271 page</a> at JCP.org, and let the EG know what else they'd like to see.
<br><br>

<strong>Won't this break compatibility between MIDP 1/2 and MIDP3?</strong>
<br><br>
Actually, the way pauseApp is currently defined and implemented, we have incompatibility today between platforms, with developers creating porting layers run by porting teams to deal with these incompatibilities whenever a new device comes out.  Defining new APIs that replace the non-portable behaviors in <code>pauseApp</code> with standardized behavior is the whole point of this.
<br><br>
The <code>pauseApp</code> mechanism is so loosely defined that nothing today is preventing an implementer from changing their <code>pauseApp</code> behavior when they move to a new platform (and I know cases where this has happened.)  They will still pass the TCK with flying colors.  There is no way to bolster the TCK the way these APIs are currently defined - they were deliberately left open to allow the widest range of platforms to implement MIDP, back at the turn of the century.
<br><br>
There is a question that developers need to weigh in on, and that is whether or not implementers of MIDP3 would be allowed (or forced) to retain compatibility with applications written for MIDP 1/2 platforms.  In other words, if an app was written to deal with a specific platform's implementation of pauseApp, it might have a chance of running on a new MIDP3 platform without modification.
<br><br>
While this sounds good on the outside, there are several major issues with this, including:
<ul><li>This requirement could greatly increase the complexity of certain MIDP3 implementations and emulators.</li>
<li>The requirement for apps to work in MIDP3 as they did in MIDP2 is not testable by a TCK.</li>
<li>A particular implementer may have several implementations that are legal but incompatible, so the requirement would be impossible to comply with.</li>
</ul>
The EG is strongly leaning towards the simpler solution of making this change apply regardless of how a MIDlet is labeled.  This means that if your existing application is, for example, counting on <code>pauseApp</code> for a particular notification and will misbehave if <code>pauseApp</code> is not called when that behavior occurs, then your application will need to be rewritten before it will run on that new device.
<br><br>
It would be good to know the extent of this issue, and how bad it really is given that many apps (unfortunately) need to be touched whenever a new version of a device comes out.  Some posters commented that a <code>pauseApp</code>-related change was relatively minor compared to some of the other porting issues they encounter when bringing a new device onboard.
<br><br>

<strong>What areas has this thread suggested that the EG has to look into more/respond to?</strong>
<br><br>
One area is the interruption of MIDlets (loss of display and/or keyboard) to various notifications by the platform:
<ul>
<li>Presentation of a permissions request</li>
<li>Low battery</li>
<li>Out of coverage</li>
<li>Incoming call - request to accept it</li>
<li>Incoming notifications</li>
<li>Bluetooth and other device changes</li>
</ul>
MIDP3 does provide the <code>javax.microedition.event</code> API for notification of events, but there is no coupling between the new Display notifications to allow a MIDlet to determine <em>why</em> they were interrupted.
<br><br>
I feel that trying to find a cause for every interruption leads an exercise in boiling the ocean.  Still, it is useful to provide some coupling between the <code>DisplayListener</code> API and the <code>event</code> mechanism if for no other reason than knowing that it is the same event coming from two different perspectives, possibly in different order on different platforms.
<br><br>
How to couple events from other JSRs that also lead to a DisplayListener event is another question.
<br><br>

<strong>In conclusion... isn't this a <a href="http://forums.java.net/jive/thread.jspa?messageID=222061#222422">minor issue</a> in the bigger fragmentation picture?</strong>
<br><br>
Simon Maspero's response to <a href="http://blogs.forum.nokia.com/view_entry.html?id=577">Hartti Suomela's Forum Nokia Blog</a> on this topic summed it up well: 
<br><br>
<quote>...the point is not really to know if pauseApp is necessary or not, but to make sure that every device will behave the same.</quote>
<br><br>
Fragmentation spans many areas of the Java ME ecosystem and needs to be addressed in a coordinated way.  This will help in one small way, but there are many other points of fragmentation, including broken behavior, operator certification hurdles, barriers to certain APIs, user interface differences between MIDlet and native, phones interrupting apps for who knows what, etc.  And, many people will tell you that not all fragmentation is bad.  Some of it comes from the necessity of providing new features before a standard can be wrapped around them.  Some of it comes from the need to provide flexibility to allow implementations to flourish.  <code>pauseApp</code> is an example of the latter whose time has passed and is no longer needed. 
<br><br>
MSA addresses certain points of fragmentation but only a subset of those encountered.  Individual companies <a href="https://meapplicationdevelopers.dev.java.net/fragmentation.html">like Sun</a>, every company who is on MSA, and other standards organizations like 3G Americas are also very concerned and making progress.  
<br><br>
But the largest fragmentation issues cannot be solved by a single company or JSR.  The issue of fragmentation must be taken up at the industry level and be a legitimate coordinated effort involving all in the Java ME ecosystem.  It <a href="http://blog.seansheedy.com/?p=26">especially needs to involve developers</a> who don't have time to participate in EGs because they are too busy getting code out the door.  It needs to solve the problem of getting input from these key people, who can't afford to fly around the world to meetings on their own dime.
<br><br>
It cannot be solved in closed JSRs where none of the members are developers working at the street level where these issues are encountered.  It is the biggest threat to Java ME because it stops budding developers in their tracks and eats away at the investment we've made into Java ME.
<br><br>
Finally, I want to say that actively bringing dialog from an active JSR expert group, which is closed, out to the community in order to get feedback, is something that MIDP has done before, and is an experiment that should happen more often.  Thanks to <a href="http://jcp.org/en/press/news/specLeadStars/commFocus_stars_milikich">Mike Milikich</a>, the 271 spec lead, for opening this up and letting us bypass the normal JCP rules that allow JSRs to operate in a closed manner.
]]>
</content>
</entry>
<entry>
<title>Message from MIDP3: Goodbye pauseApp!</title>
<link rel="alternate" type="text/html" href="http://weblogs.java.net/blog/sean_sheedy/archive/2007/06/message_from_mi.html" />
<modified>2007-06-14T16:48:29Z</modified>
<issued>2007-06-14T05:13:38Z</issued>
<id>tag:weblogs.java.net,2007:/blog/sean_sheedy/414.7630</id>
<created>2007-06-14T05:13:38Z</created>
<summary type="text/plain">Should pauseApp be deprecated?  How might this impact you?  To reduce fragmentation in an age of more capable devices, the MIDP3 Expert Group has created new notifications such as DisplayListener, and would like to know what the community thinks and what other platform-specific capabilities might be lost if pauseApp is never called.</summary>
<author>
<name>sean_sheedy</name>

<email>sean@theSheedys.com</email>
</author>
<dc:subject>Community: Mobile &amp; Embedded</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://weblogs.java.net/blog/sean_sheedy/">
<![CDATA[<p><em><strong>[Clarification and developer bias</strong>: The EG is providing finer grained notification functionality such as DisplayListener (see the EDR javadoc) that will move some of the platform-dependent functionality overloaded into pauseApp (and NOT defined in the MIDP specification), into platform-independent APIs whose behavior IS defined by the specification.  In other words, if the capability provided by pauseApp is better provided elsewhere, isn't the natural result that can we reduce the confusion and fragmentation around pauseApp by making it a no-op (as implementations like Nokia's already do today?)</p>

<p>So the question to developers could be, what platform-specific stuff are developers doing with pauseApp that MIDP3 may need to accommodate if pauseApp is never called?</p>

<p>And if that capability is provided elsewhere, pauseApp's remaining function is to allow the environment to notify the MIDlet that the MIDlet is about to lose CPU time.  Do we, as developers really implementations be able to "pause" us, to stop our threads, given that today's platforms are powerful enough to allow them to get at least some CPU time?  What reasons might we want to keep the Paused state around? <strong>]</strong></em></p>

<p>To help reduce fragmentation, the MIDP3 expert group wishes to deprecate <code>MIDlet.pauseApp</code>, and wants your input - <em>especially</em> if you are negatively impacted.  The idea is not to remove the API, but simply require that implementations never call it, and eliminate the need for developers to provide an empty <code>pauseApp</code> method.</p>

<p>There are several questions that the expert group would like the community to weigh in on. They are:</p>

<ol><li>Are there any VM/platform providers who will be severely impacted by this change? That is, is <code>pauseApp</code> woven into their implementations so deeply, or required by the nature of their platforms, that not being able to signal a MIDlet with <code>pauseApp</code> would create fundamental issues?
</li><li>Are there any software developers whose applications would require fundamental and expensive changes in order to run in an environment where <code>pauseApp</code> is never called?
</li><li>Are there any other impacts the EG should consider?
</li><li>Should this apply regardless of whether or not the MIDlet is designated MIDP3?  That is, should platforms be permitted to provide legacy <code>pauseApp</code> functionality to MIDlets indicating MicroEdition-Profile less than MIDP-3.0?
</li></ol>

<p>I suppose we're not expecting a huge outcry of opinion on this, but if you have something to say about it or are impacted, definitely say so.  You can leave a comment here and/or email the MIDP3 EG at jsr-271-comments@jcp.org.  This post is rather long, so if something jumps out at you, comment on it; don't feel you need to read or understand the whole thing before doing so.</p>

<p>A copy of the proposed API javadoc can be found at <a href="http://seansheedy.com/standards/midp3/pauseApp/MIDlet.html"><br />
http://seansheedy.com/standards/midp3/pauseApp/MIDlet.html</a>.<br />
</p>]]>
<![CDATA[<p>(You can scroll to the bottom of this post for the deprecation proposal from Roger Riggs as posted in the MIDP3 artifacts tracker.)</p>

<p><br />
<strong>Why does <code>pauseApp</code> exist in the first place?</strong></p>

<p>One of the reasons this API exists is to provide a tool to help applications deal with platforms that cannot concurrently run MIDlets and handle key native events such as phone calls.  By calling <code>pauseApp</code>, an environment informs the MIDlet about entry into the PAUSED state.  What the platform requires of a MIDlet is not defined in MIDP and is platform dependent.  In the PAUSED state, a platform may deny a MIDlet all CPU time, or require that it give up resources so that the platform can do other things - or none of these.   <code>pauseApp</code> was designed to give early implementers one less excuse for not including MIDP in those early mobile devices!</p>

<p><strong>Why is <code>pauseApp</code> no longer considered technically necessary?</strong></p>

<p>As Moore's Law has made devices more sophisticated, the need for this accommodation has diminished.  Platforms are able to perform multiple tasks without completely shutting down MIDlets.  The possibility of errant MIDlets forced designers to place the responsibility of releasing resources on the implementation, not the application.  APIs now provide listeners to help MIDlets learn about and manage the acquisition and loss of resources.  MIDlets are expected to register listeners for notification of events that impact them. Essentially, <code>pauseApp</code> is no longer needed in MIDP 3.0.  However, this dialog arises out of the MIDP3 EG's concern about backwards compatibility issues.</p>

<p><strong>How do various platforms handle <code>pauseApp</code> today?</strong></p>

<p><code>pauseApp</code> has been a source of confusion and misinterpretation for both implementers and developers. The implementations of <code>pauseApp</code> are quite varied.  On some devices, <code>pauseApp</code> signals that the MIDlet has a limited amount of time to release resources before losing all CPU time. In others, <code>pauseApp</code> is called when the system is about to lose the display and keypad to some other process like an incoming call, but all threads created by the MIDlet continue to execute. Finally, some implementations never call <code>pauseApp</code> throughout the life of the MIDlet!</p>

<p><strong>What else is impacted?</strong></p>

<p>The deprecation includes <code>resumeRequest</code>, which is defined as merely a hint from the application that it be resumed from a paused state. <code>resumeRequest</code> also has varied implementations and generally cannot be relied upon across platforms - sometimes it does nothing, and sometimes it is obtrusive.  With <code>pauseApp</code> eliminated, <code>resumeRequest</code> is no longer necessary.  <code>notifyPaused</code> also has little meaning.</p>

<p>Roger’s proposal also requires that an <code>IllegalStateException</code> be thrown when MIDlets labeled MIDP 3 call these methods. Is it necessary that these methods throw an exception, possibly introducing instability in applications that have been “upgraded” to use some other MIDP3 APIs? Is it sufficient for <code>notifyPaused</code> and <code>resumeRequest</code> to simply return without doing anything?  As these were only hints anyway, simply ignoring them is an option.</p>

<p><code>pauseApp</code>'s <code>abstract</code> qualifier will be removed so that developers no longer need to include an empty <code>pauseApp</code> method in their MIDlet class.</p>

<p><strong>Why do some of us want to get rid of <code>pauseApp</code></strong>?</p>

<p>This opportunity to eliminate <code>pauseApp</code> is an opportunity to decrease platform fragmentation.  EG members seem to prefer to be rid of <code>pauseApp</code> and all the baggage it carries, regardless of what MIDP version a MIDlet is written for.  Deprecating pauseApp for ALL MIDlets running on MIDP3 platforms would accelerate the elimination of this point of fragmentation.  But it could break some existing apps.  Is the value of eliminating this point of fragmentation greater the cost of rewriting some (how many?) applications that may be broken by this change (in other words, to paraphrase the great Spock, are the needs of the many greater than the needs of the few?)</p>

<p><strong>What is the impact to VM/platform implementers?</strong></p>

<p>Actually, because of the wide range of behaviors for present implementations, this is the key area where the EG wants to get feedback.</p>

<p>One aspect under debate is whether or not deprecation should apply to all MIDlets, or only those labeled as MIDP-3.0 MIDlets.  For example, at least one implementation contains an LOC (Licensee Open Class - aka OEM class or proprietary API) that depends on the present <code>pauseApp</code> functionality.  As explained to the EG, this implementation requires MIDlets to release resources provided by the LOC when <code>pauseApp</code> is called.  This is consistent with the definition of <code>pauseApp</code>.  Deprecating <em>pauseApp</em> only for MIDlets labeled MIDP3 would allow these implementations to retain this behavior for MIDP 2 content. </p>

<p>However, there is nothing preventing an implementer from ignoring this legacy behavior anyway.  While the present proposal requires that MIDP 1 & 2 applications “continue to function as before", it’s impractical, if not impossible, to build a TCK test that can verify this. In fact, an implementation that formerly called <code>pauseApp</code> for MIDP2 implementations, when moving to MIDP3, could cease calling <code>pauseApp</code> altogether, and would still pass the TCK and be fully MIDPx compliant. Calls to <code>notifyPaused</code> and <code>resumeRequest</code> could simply do nothing, if these implementations never call <code>pauseApp.</code></p>

<p><strong>What is the impact to developers?</strong></p>

<p>The EG seems to feel that the impact to developers will generally be positive.  Many developers already have to deal with different implementations of <code>pauseApp</code>, and this change is simplifying.</p>

<p>Developers who are writing apps for many devices are probably leveraging porting layers. Whenever a new handset appears on their radar, a porting team adapts the porting layer to accommodate it. The porting teams should find the elimination of calls to pauseApp simplifying.  (Question to porting teams: is this simplifying?)</p>

<p>Apps that may be most impacted are those written for devices that were hand chosen for a particular set of capabilities.  A subset of these will depend on pauseApp to be called for some device-specific reason or another, that the EG is not aware of.  The EG would like these developers to speak up and let us know how they are impacted.</p>

<p>For example, a recurring theme that I saw on the iDEN platform, was that some developers wanted to see their application return promptly to the display after a phone call completed. On iDEN platforms, these applications were using <code>pauseApp</code> as a signal that they were losing the display, and employed strategies such as repeatedly calling <code>resumeRequest</code> in order to get their application surfaced again when the call ended.  This was a very device-dependent solution, enabled by this particular interpretation/implementation of <code>pauseApp</code> and <code>resumeRequest</code>.</p>

<p>Another example is that some developers use <code>notifyPaused</code> as a means of telling the implementation that they no longer need the display.  However, this functionality is not defined nor guaranteed by the MIDP1/2 specifications, and in fact does not work in all devices.  The lcdui package in MIDP3 will better define how applications can indicate that they no longer need a display. </p>

<p><strong>What is the question the EG has for developers?</strong></p>

<p>The question to developers is, how are you impacted, and would you prefer reducing fragmentation by</p>

<ul><li>deprecating <code>pauseApp</code> only for MIDP3-labeled apps</li>
<li>deprecating <code>pauseApp</code> regardless of version, or</li>
<li>not deprecating <code>pauseApp</code>?</li></ul>

<p>and why?</p>

<p>What are your opinions?  What other impacts have we forgotten?</p>

<p>------</p>

<p><strong>Roger Riggs' <code>pauseApp</code> deprecation proposal:</strong></p>

<p>The function of MIDlet.pauseApp has been the source of confusion to developers and implementors and seems to have<br />
limited value. Further its use by the AMS has been a cause of fragmentation across implementations.</p>

<p>On several occasions it has been suggested to deprecate use of pauseApp.</p>

<p>In order to more fully evaluate the changes and the impact the attachment contains javadoc with the updates needed to<br />
MIDlet class and package documentation and diffs between the proposed javadoc and the previous javadoc. Please read and<br />
comment.</p>

<p>For convenience the proposal is:<br />
<ul><li>For backward compatibility with MIDP 2.0, the function of pauseApp cannot be removed completely. MIDP 2.0 applications<br />
must continue to function as before.<br />
</li><li>Changes (for MIDP 3.0 MIDlet suites only):<br />
<ul><li>The pauseApp method MUST not be called.<br />
</li><li>The pauseApp method will be changed to remove the “abstract” qualifier so MIDlet suites do not need to provide an<br />
empty pauseApp method.<br />
</li><li>The notifyPaused and resumeRequest methods are modified throw IllegalStateException (only for MIDP 3.0 MIDlets)<br />
</li><li>However, the package documentation must retain a complete description of the PAUSED state and required behavior for<br />
MIDP 2.0 MIDlet suites.<br />
</li><li>Also included in the diffs; deprecate of the MIDlet.checkPermission method in favor of AccessController.<br />
checkPermission (for MIDP 3.0 MIDlet suites only).<br />
</li></ul></ul></p>]]>
</content>
</entry>

</feed>