<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pre 101 &#187; Programming</title>
	<atom:link href="http://pre101.com/blog/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://pre101.com/blog</link>
	<description>Getting the most from your Palm Pre</description>
	<lastBuildDate>Wed, 12 May 2010 19:11:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Guide to CSS Transitions in webOS</title>
		<link>http://pre101.com/blog/2009/11/10/a-guide-to-css-transitions-in-webos/</link>
		<comments>http://pre101.com/blog/2009/11/10/a-guide-to-css-transitions-in-webos/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 14:03:45 +0000</pubDate>
		<dc:creator>Dan Kurtz</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[transition]]></category>
		<category><![CDATA[webOS]]></category>

		<guid isPermaLink="false">http://pre101.com/blog/?p=483</guid>
		<description><![CDATA[Bringing Styles Into the 4th Dimension
In the old days, in order to make HTML look the way you wanted, you used more HTML. Every element had to be individually styled, using ribbons of FONT and CENTER and B tags. Then CSS came along and gave web developers the ability to group elements into classes with [...]]]></description>
			<content:encoded><![CDATA[<h3>Bringing Styles Into the 4th Dimension</h3>
<p>In the old days, in order to make HTML look the way you wanted, you used more HTML. Every element had to be individually styled, using ribbons of <code>FONT</code> and <code>CENTER</code> and <code>B</code> tags. Then CSS came along and gave web developers the ability to group elements into classes with similar display characteristics. The world heaved a sigh of relief, and developers started making more complicated websites, confident that site styling would not get in the way of functionality.</p>
<p>Then JavaScript and AJAX became popular, and suddenly it became commonplace for elements to have their classes modified by JavaScript, based on the results of AJAX calls from the server. When an element&#8217;s class changes, it is updated instantaneously to reflect the styles associated with the new class. That&#8217;s fine for some stuff, but sometimes you want the transition between classes to be a bit more, um, classy. Let&#8217;s say your site has a login box that remains hidden on a page until a user clicks the &#8220;log in&#8221; link. If you switch the box&#8217;s style from <code>opacity: 0;</code> to <code>opacity: 1;</code>, it will appear right away by default. If you want it to fade in, you have to write a JavaScript function that increments the opacity bit by bit until it reaches 1, and you have to call that function at the same time as you change the class of the login box. If you have a bunch of login boxes on your site, you have to attach that transitional behavior to each one of them manually. Because CSS doesn&#8217;t have the concept of transitioning through time, animation-heavy websites are stuck in the same place that pre-CSS websites were before CSS came along.</p>
<p><strong>CSS transitions</strong> solve this problem by bringing styles into the 4th dimension. CSS transitions allow web developers to specify that if an element has its style modified, the browser should smoothly transition its appearance to the new style, rather than shifting it abruptly. They&#8217;ve been available in WebKit for <a href="http://webkit.org/blog/138/css-animation/">about two years now</a>, and <a href="http://blog.mozbox.org/post/2009/10/12/Some-new-demos">just appeared in Gecko</a> a few weeks ago. Since they&#8217;re not available in most browsers, webOS developers are among the privileged few who can take advantage of them. Here&#8217;s how.<br />
<span id="more-483"></span></p>
<h3>The Basics</h3>
<p>Suppose your login box is 300px wide and you want it to hide offscreen until a user clicks a link, at which point it should get the class <code>active</code> and appear onscreen.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#loginbox</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">300px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">fixed</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-300px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#loginbox</span><span style="color: #6666ff;">.active</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Here&#8217;s a version of that with transitions:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#loginbox</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">300px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">fixed</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-300px</span><span style="color: #00AA00;">;</span>
  -webkit-transition-property<span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
  -webkit-transition-duration<span style="color: #00AA00;">:</span> .5s<span style="color: #00AA00;">;</span>
  -webkit-transition-timing-function<span style="color: #00AA00;">:</span> ease-in<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#loginbox</span><span style="color: #6666ff;">.active</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>And here&#8217;s how it&#8217;d look if you wanted the box to fade in and slide in at the same time:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#loginbox</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">300px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">fixed</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-300px</span>
  opacity<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
  -webkit-transition-property<span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span> opacity<span style="color: #00AA00;">;</span>
  -webkit-transition-duration<span style="color: #00AA00;">:</span> .5s .25s<span style="color: #00AA00;">;</span>
  -webkit-transition-timing-function<span style="color: #00AA00;">:</span> ease-in linear<span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#loginbox</span><span style="color: #6666ff;">.active</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
  opacity<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Here&#8217;s a brief overview of the three <code>-webkit-transition</code> properties used above;</p>
<dl>
<dt>-webkit-transition-property</dt>
<dd>A space-seperated list of the properties that should be animated when they change. You should only use numerical properties. &#8220;top&#8221;, &#8220;width&#8221;, &#8220;border-width&#8221; and &#8220;opacity&#8221; work, but &#8220;display&#8221;, &#8220;text-decoration&#8221; and &#8220;list-style-type&#8221;, for instance, do not. If this property is omitted, all the properties of an element will be animated. This is probably not what you want.</dd>
<dt>-webkit-transition-duration</dt>
<dd>A space-seperated list of the durations of the transitions of the different objects. &#8220;s&#8221; stands for seconds. This is 0s by default, so you need to set it.</dd>
<dt>-webkit-transition-timing-function</dt>
<dd>From the <a href="http://www.w3.org/TR/css3-transitions/">W3C Working Draft</a>:</p>
<blockquote><p>The &#8216;transition-timing-function&#8217; property describes how the intermediate values used during a transition will be calculated. It allows for a transition to change speed over its duration.</p></blockquote>
<p>&#8220;ease-in&#8221; starts slowly and picks up speed at the end. &#8220;linear&#8221; keeps the same speed all the way through.</p>
</dd>
</dl>
<p>And here are some things that <em>aren&#8217;t</em> supported in webOS (as of 1.2.1), but probably will be eventually, since they are part of WebKit 4:</p>
<dl>
<dt>-webkit-transition-delay</dt>
<dd>Allows you to set a delay before the start of the animation.</dd>
<dt>Events</dt>
<dd>Currently, there&#8217;s no way respond when a transition animation finishes, and this is the main drawback of the CSS approach to transitions. WebKit 4 lets objects listen for animation events, which will let you string a bunch of animations together without needing to call setTimeout() to activate each part of the animation.</dd>
</dl>
<p>In addition to the reduced code clutter, CSS transitions can speed up your app, since they are run from native compiled code, rather than from interpreted JavaScript. Don&#8217;t expect miracles, though &#8212; I&#8217;ve found that webOS can only handle a few animations at one time before things get choppy, and the size and complexity of the elements being animated also makes a difference. I was unable to animate a 320&#215;480 image without choppiness. While there is no programmatic way to cancel the animations, they are smart enough to smoothly reverse themselves if an element&#8217;s properties change in the middle of a transition. If the <code>active</code> class is removed from our login box while it&#8217;s still sliding in, it will slide out starting from wherever it happens to be at the moment the class was removed.</p>
<p>For more on the basics of transitions, check out the <a href="http://www.w3.org/TR/css3-transitions/">W3C docs</a>, and keep in mind that all the properties should be prefixed with <code>-webkit-</code> in webOS.</p>
<h3>Advanced Tricks with <code>-webkit-transform</code></h3>
<p>There&#8217;s another advanced CSS property in webOS, called <strong><code>-webkit-transform</code></strong>, that, when combined with CSS transitions, allows for some neat stuff. <code>-webkit-transform</code> is&#8230;well, I think of it as a mini-CSS within CSS. It lets you apply transformations to an element after it&#8217;s been rendered. In webOS, The available transformations (to my knowledge) are translate, scale, rotate and skew. To scale an element to twice its height and rotate it 30 degress (something that&#8217;s been impossible in HTML until now!), do like this:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#myDiv</span> <span style="color: #00AA00;">&#123;</span>
  -webkit-transform<span style="color: #00AA00;">:</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">&#41;</span> rotate<span style="color: #00AA00;">&#40;</span>30deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>The crucial difference between scaling a div with <code>-webkit-transform</code> and scaling by manipulating its width and height is that <code>-webkit-transform</code> will scale (or skew or rotate) the entire rendered div and its children smoothly. For more on -webkit-transform, see <a href="http://www.the-art-of-web.com/css/css-animation/">this post at Art of Web</a>.</p>
<p>You can animate <code>-webkit-transform</code> by passing it to <code>-webkit-transition-property</code>. If you&#8217;re using a WebKit browser, hover over the card below to see an example.</p>
<p><img id="cardexample" src="/blog/wp-content/uploads/2009/11/cardback.jpeg" alt="" /><br clear="all" /></p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#cardexample</span> <span style="color: #00AA00;">&#123;</span>
  -webkit-transition-property<span style="color: #00AA00;">:</span> -webkit-transform<span style="color: #00AA00;">;</span>
  -webkit-transition-duration<span style="color: #00AA00;">:</span> 1s<span style="color: #00AA00;">;</span>
  -webkit-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>0deg<span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#cardexample</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span>
  -webkit-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>180deg<span style="color: #00AA00;">&#41;</span> scale<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">1.5</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">1.5</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Our games <a href="http://www.selfawaregames.com/wordace.html">Word Ace</a> and <a href="http://www.selfawaregames.com/cardace.html">Card Ace</a> use this technique for pretty much every animation in the game. It&#8217;s a lot of fun to describe the behavior of a class in CSS and have elements automatically move around when they&#8217;re changed. There were times when I&#8217;d forgotten that I had set transition properties on an element, and was surprised when it started moving around of its own accord.</p>
<h3>Caveats</h3>
<p>Advanced animations are tricky with CSS. For example, the timers in Word Ace and Card Ace use transitions. In order to start a timer countdown, the yellow timer bar gets two classes set: one to set the bar to &#8220;full&#8221;, and another that sets it to &#8220;empty&#8221; with a transition, so that the width of the bar decreases slowly. My first pass at the code was something like this:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">// CSS
<span style="color: #cc00cc;">#timer-bar</span><span style="color: #6666ff;">.full</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">22px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">yellow</span><span style="color: #00AA00;">;</span>
  -webkit-transition-property<span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">;</span>
  -webkit-transition-duration<span style="color: #00AA00;">:</span> 10s<span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#timer-bar</span><span style="color: #6666ff;">.full</span><span style="color: #6666ff;">.counting-down</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">0</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// JavaScript</span>
<span style="color: #003366; font-weight: bold;">function</span> startTimer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> timerBar <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer-bar'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  timerBar.<span style="color: #660066;">addClassName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'full'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  timerBar.<span style="color: #660066;">addClassName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'counting-down'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>It didn&#8217;t work. The timer bar never went to &#8220;full&#8221;. After some research, I discovered <a href="http://www.frozen-o.com/blog/2009/02/webkit-css-animation-behavior-weirdness.html">a blog post</a> explaining that changes to element styles are batched during an event, and are processed all at once after an event has finished, for performance reasons. In this case, WebKit sees that the classes I&#8217;m adding would set the element&#8217;s width twice, so it only bothers setting the second width &#8212; 0%. If you need to do a multi-step transition this way, you need to chunk the DOM manipulation into different events:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> startTimer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> timerBar <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'timer-bar'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  timerBar.<span style="color: #660066;">addClassName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'full'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  setTimeout<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    timerBar.<span style="color: #660066;">addClassName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'counting-down'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Tricky, huh? This also applies in cases where you need to set a hidden element to <code>display: block;</code> before you move it around.</p>
<h3>In Short&#8230;</h3>
<p>CSS transitions make our games smoother, more lively, and easier to maintain. They&#8217;re not without their pitfalls, but once you master the basics, they&#8217;re an easy, elegant way to add a bit of zest to your UI. For more information (not all of which applies to webOS, unfortunately), see the <a href="http://edr.euro.apple.com/safari/library/documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Transitions/Transitions.html">Safari reference</a> and the <a href="http://www.w3.org/TR/css3-transitions/">W3C working spec</a>.</p>
<p><strong>Dan Kurtz is the webOS developer at <a href="http://selfawaregames.com">Self Aware Games</a>, makers of Word Ace and Card Ace for the Pre and Pixi. Both are online multiplayer card games that make extensive use of the advanced JavaScript and CSS techniques available in webOS.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://pre101.com/blog/2009/11/10/a-guide-to-css-transitions-in-webos/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sprint Open Developers Conference, Part 2</title>
		<link>http://pre101.com/blog/2009/10/28/sprint-open-developers-conference-part-2/</link>
		<comments>http://pre101.com/blog/2009/10/28/sprint-open-developers-conference-part-2/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 06:21:35 +0000</pubDate>
		<dc:creator>Roy Sutton</dc:creator>
				<category><![CDATA[Interface]]></category>
		<category><![CDATA[Phone]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://pre101.com/blog/?p=440</guid>
		<description><![CDATA[The second day at Sprint&#8217;s Open Developer Conference is done.  It was another exhausting but fulfilling day.  Today&#8217;s events had little to do with Palm so there won&#8217;t be too much to report from that angle.  I did get to meet with many great Palm people at the booth they set up in the exhibit [...]]]></description>
			<content:encoded><![CDATA[<p>The second day at Sprint&#8217;s Open Developer Conference is done.  It was another exhausting but fulfilling day.  Today&#8217;s events had little to do with Palm so there won&#8217;t be too much to report from that angle.  I did get to meet with many great Palm people at the booth they set up in the exhibit hall.  And, I&#8217;m happy to report the food at the evening event was several cuts above the food previously available.  Today was focused more on Sprint and the technologies it has invested in and fostered.</p>
<p>There were many concurrent sessions at the event today and I, being but one person, had to choose carefully.  It was difficult and sometimes I feel I chose&#8230; poorly.  However, the first meeting of the morning I chose to attend was Enabling Mobile for Business.  Charnsin Tulyasathien, Sprint Group Manager, started off the session, which included three Sprint partners.  He laid out the case for targeting business customers with mobile applications:  271 million mobile devices, 6.5 million mobile connected laptops, Bank of America&#8217;s mobile banking site has 1 million users.  Mobile is becoming a bigger part of business.</p>
<p>The first partner to speak during that session was Eric Kowalchyk of Intuit.  He outlined Intuit&#8217;s GoPayment system, which provides mobile payment processing.  He spoke about the iterative process they went through to get a payment system that served the needs of mobile professionals in a clear, easy to use manner.  He said:  &#8220;Focus on the end user to end user experience.&#8221;  Next up was Daniel Obodovski, director of business development at Qualcomm.  He talked about Qualcomm&#8217;s location tracking system.  He discussed some pretty interesting applications of location tracking devices.  They are targeting cargo tracking, asset tracking and consumer devices, such as the Best Buy child-tracking solution.  Following Daniel was Steve Hudson of Omnilink, a partner of Qualcomm.  He told us a story about how Delta had lost his luggage and he was able to track it down into a warehouse in Las Vegas.  One of the benefits of network-based LTS is that it doesn&#8217;t require visibility to Satellite, which is very useful for applications such as tracking Alzheimer&#8217;s patients.</p>
<p>Following those three partners Charnsin took the stage again to discuss the particulars of Sprint&#8217;s developer program.  If you are interested in the program visit their site:  <a href="http://developer.sprint.com">http://developer.sprint.com</a> or send e-mail to <a href="mailto:BAP@sprint.com">BAP@sprint.com</a>.  The developer program is free to join for those interested in teaming and co-marketing.</p>
<p>After that session I attended the Alcatel-Lucent presentation on their <a href="http://developer.openapiservice.com/">Open API service platform</a>.  Their API allows for some pretty comprehensive network-based services for mobile applications, including &#8216;<a href="http://en.wikipedia.org/wiki/Geofence">geofencing</a>&#8216;.  One of he opening slides of the presentation discussed the fact that very few applications ever reach a very large user base.  The slide backed up the claim that there are very few iPhone App millionaires.  What Alcatel-Lucent hopes to provide is a framework that will allow app developers to create more compelling applications.  The services included the ability to detect users being online, opt-in tracking and more.  Check out their site above for details.  One thing to note is that although they are planning support for multiple carriers it seemed to be implied that they have not actually signed up other networks.  They demonstrated how a partner developed an opt-in advertising campaign for REI that sent special offers to users who came within one mile of REI stores.</p>
<p>We got a chance to enter the exhibit hall to see the booths set up by Sprint&#8217;s partners.  Of course, for me, the big draw was the Palm booth.  Palm was just setting up the booth when I got there but they were soon up and running, showing off the Pixi and Pre.  Manning the booth were lots of excited and friendly Palm folks.  I got the opportunity to meet my Palm App Catalog rep Rob Katcher, which was really great.</p>
<p>Following this was the keynote speech by Sprint&#8217;s president of network operations Steve Elfman.  Steve addressed the question:  Why Sprint?  The takeaway was that Sprint has the best devices and has taken an open approach.  This is Sprint&#8217;s ninth open developers conference.  He discussed how Sprint moved from a traditional provider-centric approach where they decided everything about what devices would run to what software and services would appear on those devices to a more open approach where the users and manufacturers could define those things.   Sprint has certified 300 non-Sprint devices for use on their network.  He described how they are already testing 4G in select cities and will be rolling it out to more cities.  He then said that Sprint is doing away with the call forwarding fee in mid November.  To drive home why this is important for Sprint subscribers he brought Brad Horowitz of Google onto the stage to discuss Google Voice on Sprint.  It&#8217;s clear that unlike other networks, Sprint is embracing Google Voice and consumer choice.</p>
<p>Following this was a Q&amp;A session with Sprint personnel.  During the Q&amp;A Sprint reaffirmed their commitment to open standards and open services.  They&#8217;re actively looking at how they can support industry standard API&#8217;s, even where it may conflict with technologies they had been supporting, such as Titan, which was intended to be a Java-based mobile platform.  There was also ominous discussion about tiered pricing for data.  Sprint&#8217;s contention was that the unlimited plans were put in place to get people to adopt mobile data and encourage the development and usage of mobile software.  I don&#8217;t see what benefit it would bring customers to limit them at this point.</p>
<p>The next session I attended was on BlackBerry mobile development.  I don&#8217;t have anything to report on this session because I don&#8217;t think anything really stuck with me except that JavaScript will have full access to the services on the device with version 5.0.  After that I attended the discussion on Sprint&#8217;s developer sandbox.  This was a more interesting discussion about a testing platform that allows developers to test their use of Sprint&#8217;s API&#8217;s without having to access their live network.  There&#8217;s a lot of power in the Sprint API so if you&#8217;re looking at developing services that take advantage of Sprint&#8217;s network API&#8217;s you should check this out.  It is important to note that these API&#8217;s can be easily accessed from webOS applications.</p>
<p>I decided to skip the next session to stand in the long line to get a free BlackBerry Tour.  I was successful in getting one, which I added to the HTC Hero I got last night.  Using these two smartphones really makes me appreciate what Palm has done with webOS.  Admittedly, I have not had a chance to really use these devices seriously but what&#8217;s clear is that for a user just picking up the phone for the first time the Pre really shines in usability.</p>
<p>After quickly ducking out of the BlackBerry session I went back to the exhibit hall to see what was going on there.  Again, I made a beeline for the Palm booth and talked some more with the folks there.  Kudos to Palm for having so many people who are excited about what they are doing.  I must say that the dinner they served was a big cut above the lunch and breakfast they offered earlier.</p>
<p>On a more personal note, I had a chance to catch up with a cousin here in California and went to a fantastic ramen shop.  I&#8217;m definitely going to be hunting for ramen shops back home!</p>
<p>Stay tuned for part 3!  Again, you can follow &#8216;live&#8217; on twitter by click here:  <a href="http://twitter.com/Pre101">http://twitter.com/Pre101</a></p>
]]></content:encoded>
			<wfw:commentRss>http://pre101.com/blog/2009/10/28/sprint-open-developers-conference-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sprint Open Developers Conference, Part 1</title>
		<link>http://pre101.com/blog/2009/10/27/sprint-open-developers-conference-part-1/</link>
		<comments>http://pre101.com/blog/2009/10/27/sprint-open-developers-conference-part-1/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 07:09:45 +0000</pubDate>
		<dc:creator>Roy Sutton</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[webOS]]></category>

		<guid isPermaLink="false">http://pre101.com/blog/?p=436</guid>
		<description><![CDATA[Sprint&#8217;s Open Developer Conference is taking place this week in Santa Clara, California.  I had the opportunity to attend this event, which is sponsored by Palm and HTC.  This morning featured a number of sessions about webOS.  I have been &#8216;live-tweeting&#8217; the conference from the twitter account, so tune in if you&#8217;re interested in finding [...]]]></description>
			<content:encoded><![CDATA[<p>Sprint&#8217;s <a href="http://developer.sprint.com/site/global/community/events/2009devcon/2009sprintopendeveloperconference.jsp">Open Developer Conference</a> is taking place this week in Santa Clara, California.  I had the opportunity to attend this event, which is sponsored by Palm and HTC.  This morning featured a number of sessions about webOS.  I have been &#8216;live-tweeting&#8217; the conference from the <a href="http://twitter.com/Pre101">twitter account</a>, so tune in if you&#8217;re interested in finding out what happens tomorrow or to go back and look at some pics from the event.</p>
<p>The first session of the morning featured Ben Galbraith and Dion Almaer of Palm.  They opened the conference by giving a little bit of their background and how they came to Palm.  They went on to discuss more about webOS and what makes it so interesting.  They were then followed by Mitch Allen, Palm&#8217;s CTO, who talked some more about webOS.  Mitch was followed by Geoff Schuller who talked the Palm&#8217;s user interface design.  Geoff was followed by Matthew Hornyak who took us further into UI and how webOS apps interface with the UI components.</p>
<p>Following these sessions Palm brought out the developers of some of their popular apps.  First up was Chris Sepulveda of Pivotal Labs, makers of the popular Twitter client Tweed.  He showed off Tweed and Scoop and talked about why the like developing with the Mojo SDK for webOS.  Chris was followed by Lawrence Davison of Mark/Space, makers of The Missing Sync.  One of the comments Chris made was that they at first viewed the Mojo SDK&#8217;s use of JavaScript as a problem for app development but came to realize that it was a real advantage.  The use technologies built around Web standards allowed one of their IT folks to make the transition to a developer role, which he has carried forward into other applications.</p>
<p>Following a quick demo of The Missing Sync we had Alex Pachikov of Evernote. After a demonstration of some of the features of Evernote Alex talked about how they had developed their own grid view widget for webOS.  He went on to say that they have opened up the Evernote API completely to developers:  The same API they use can be used by others wanting to develop apps to Evernote&#8217;s server-side.  Finally, Dan Kurtz of SelfAware Games did a somewhat trouble-plagued demo of Word Ace and talked about the process behind developing that game and the followup Card Ace.</p>
<p>One thing that was clear is that these developers were excited to be developing for webOS and that they were all able to develop the apps they wanted to develop with the tools Palm has provided.  After a short break they were back to answer some questions from the audience.  Some of the interesting tidbits (as tweeted) were that Pivotal has made available a DOM-less JavaScript unit testing framework called Jasmine and will be soon releasing a tool targeting webOS development called Pockets.  Also, Mark/Space indicated that all the API&#8217;s they&#8217;re using for syncing are the published APIs (as in, they are not using any special Palm-only APIs).  Ben Galbraith also said that Palm is currently synchronizing with the Webkit trunk, which will bring the browser in the Pre up to Webkit 4.  The upside of this would be much better HTML5 support, including more complete Canvas and CSS transition support.</p>
<p>Next up was Stephen Feaster of Palm who gave an introduction to installing the Mojo SDK.  Stephen led the crowd through the development of an application that pulled a feed from Twitter to track <a href="http://www.caltrain.com/">Caltrain</a> delays.  This was followed by Ben and Dion discussing the app distribution channels that will be opened up to developers when the developer program is officially launched in December.  Although we&#8217;ve covered this before, the interesting new bit of information is that they will open up an API to the app distribution feed to allow developers to use the information generated by Palm for new and interesting purposes.</p>
<p>After this, HTC took the stage to show off their upcoming Windows Mobile and Android devices.  During the presentation I asked if HTC would be interested in creating a phone with the webOS platform if Palm were willing to license it.  The response I got indicated that there was definitely some interest in that.  Whether that would be a strategic move for Palm or not is another question.  Certainly Palm has created one of the most talked about smartphone OS&#8217;es and other manufacturers are taking notice.</p>
<p>In the evening, Palm and HTC each had coding conferences.  A great group of Palm staffers were on hand to help people write apps for webOS and to talk with the developers.  One thing that I took away from this is that Palm is really interested in helping out the developer community and that the developer community is really interested in working together to create something great for this platform.  The folks at <a href="http://www.webosschool.com/">webOS School</a> were really helpful for those who were getting going with the Mojo SDK.</p>
<p>It&#8217;s been a long and really fruitful day.  I&#8217;m looking forward to the sessions tomorrow and getting to meet more developers and talk with the folks from Palm.  Tune in tomorrow for more!</p>
]]></content:encoded>
			<wfw:commentRss>http://pre101.com/blog/2009/10/27/sprint-open-developers-conference-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Palm Developer Relations Co-Leader Responds to JWZ</title>
		<link>http://pre101.com/blog/2009/09/29/palm-developer-relations-co-leader-responds-to-jzw/</link>
		<comments>http://pre101.com/blog/2009/09/29/palm-developer-relations-co-leader-responds-to-jzw/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 22:47:28 +0000</pubDate>
		<dc:creator>Pre101</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[developer]]></category>

		<guid isPermaLink="false">http://pre101.com/blog/?p=356</guid>
		<description><![CDATA[Recently Ben Galbraith and Dion Almaer (of Ajaxian.com and Bespin fame) joined Palm to lead developer relations.  They faced their first crisis with Jamie Zawinski&#8217;s well-publicized complaint about Palm&#8217;s app approval process.  Ben has posted an early response to the community on his blog.
Here&#8217;s the long and the short of it:  Jamie Zawinski, also known [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-358" title="webos-dev" src="http://pre101.com/blog/wp-content/uploads/2009/09/webos-dev.png" alt="webos-dev" width="229" height="34" />Recently Ben Galbraith and Dion Almaer (of <a href="http://ajaxian.com">Ajaxian.com</a> and <a href="https://bespin.mozilla.com/">Bespin</a> fame) <a href="http://pdnblog.palm.com/2009/09/ben-galbraith-and-dion-almaer-to-lead-developer-relations-team-at-palm/">joined Palm</a> to lead developer relations.  They faced their first crisis with Jamie Zawinski&#8217;s <a href="http://mobile.slashdot.org/story/09/09/29/0243208/The-Kafka-esque-Nightmare-of-Palm-App-Submission">well-publicized complaint</a> about Palm&#8217;s app approval process.  Ben has posted an early response to the community on his <a href="http://benzilla.galbraiths.org/2009/09/29/thoughts-on-palm-and-jamie-zawinski/">blog</a>.</p>
<p><span id="more-356"></span>Here&#8217;s the long and the short of it:  Jamie Zawinski, also known as JWZ, <a href="http://jwz.livejournal.com/1096401.html">posted his perspective</a> on Palm&#8217;s app approval process.  This process is still in beta and it&#8217;s clear that Jamie is quite frustrated by the process as it has evolved.  It&#8217;s a pretty serious allegation when a developer claims the approval process is so onerous that he&#8217;s going to stop developing for the platform.  As a webOS developer myself I&#8217;ve seen the process, though my experience doesn&#8217;t exactly mirror Jamie&#8217;s.</p>
<p>It seems that Jamie hit a few points in the process where he decided that he did not wish to comply with Palm&#8217;s requirements and decided to push forward hoping to get his way.  Add to that the well-known app backlog and it&#8217;s unsurprising that he became frustrated.</p>
<p>However, Ben insists that they are working on improving the process:</p>
<blockquote><p>We’ve seen some folks assert that Jamie’s case indicates a general pattern at Palm that we don’t really care about developers and aren’t operating in a developer-friendly manner. While we undoubtedly have some work to do here, we hope that people do notice how we treat the “homebrew” community (e.g. <a href="http://www.precentral.net/">PreCentral</a>) and how our current SDK agreement calls out the inspectability and reusability of our own Palm applications. (By the way, several applications from the homebrew community have already made it into our App Catalog.)</p>
<p>While we have yet to finalize and announce our developer program, we hope these points demonstrate our general attitude of embracing developers and empowering them. We’re trying to strike the right balance between locking down our device and making it a free-for-all. Like all great things, this will be an iterative process and we are eager and open to your participation and input to make it better for everyone.</p></blockquote>
<p>What does this mean to non-developers?  Hopefully, it means that Palm is serious about working with developers to simplify the submission process and make it easier to develop quality webOS applications, which will lead to an App Catalog brimming with apps.  I&#8217;m confident that Palm is heading in the right direction, particularly in light of the appointment of Ben and Dion to their post.  Sound off with your perspective below.</p>
<p>Updated:  Corrected Jamie&#8217;s initials.</p>
]]></content:encoded>
			<wfw:commentRss>http://pre101.com/blog/2009/09/29/palm-developer-relations-co-leader-responds-to-jzw/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Palm Mojo SDK Public Release</title>
		<link>http://pre101.com/blog/2009/07/16/palm-mojo-sdk-public-release/</link>
		<comments>http://pre101.com/blog/2009/07/16/palm-mojo-sdk-public-release/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 22:47:05 +0000</pubDate>
		<dc:creator>Pre101</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://pre101.com/blog/?p=106</guid>
		<description><![CDATA[Palm has released the webOS Mojo SDK, making it available to all who are interested in developing applications for Palm's new platform.]]></description>
			<content:encoded><![CDATA[<p>Today,<a href="http://pdnblog.palm.com/2009/07/announcing-webosdev/"> Palm opened up their developer program</a> to all who are interested.  What does this mean to you?  If you&#8217;re a typical user the upshot of this announcement is that more developers will now have (official) access to the tools for creating applications that run on the Palm Pre.  If you&#8217;re a developer who wasn&#8217;t in the Early Access program then it means you will now have access to the resources necessary to begin developing applications.</p>
<p>This is very big news for the Palm Pre community.  One of the complains often leveled against the Pre has been the lack of software available for download from the App Catalog.  Unfortunately, in the short term, we won&#8217;t be seeing too many new applications there as Palm has said that it will be the Fall before they will be approving new applications.</p>
<p>If you&#8217;re interested in developing for the Pre head over to the <a href="http://developer.palm.com/index.php">Palm webOSdev site</a> and register.  I suspect that we&#8217;ll probably also see a good bit of <a href="http://forums.precentral.net/homebrew-apps/">homebrew</a> coming out soon, though the developer agreement seems to prohibit releasing software through other channels than the App Catalog.</p>
]]></content:encoded>
			<wfw:commentRss>http://pre101.com/blog/2009/07/16/palm-mojo-sdk-public-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
