<?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>Josh On Design &#187; palm</title>
	<atom:link href="http://www.joshondesign.com/category/palm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joshondesign.com</link>
	<description>Art, Design, and Usability for Software Engineers</description>
	<lastBuildDate>Wed, 25 Jan 2012 16:44:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>HP to Open Source webOS</title>
		<link>http://www.joshondesign.com/2011/12/09/hp-to-open-source-webos/</link>
		<comments>http://www.joshondesign.com/2011/12/09/hp-to-open-source-webos/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 22:40:26 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[palm]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=549</guid>
		<description><![CDATA[Today the other shoe dropped. Fortunately it was a soft slipper, not the steel toed boot to the head I had feared.  HP is open sourcing webOS. What does this mean? Well, I honestly don&#8217;t know yet. There is a huge amount of planning to be done, but it could be the start of something [...]]]></description>
			<content:encoded><![CDATA[<p>Today the other shoe dropped. Fortunately it was a soft slipper, not the steel toed boot to the head I had feared.  HP is open sourcing webOS.</p>
<p>What does this mean? Well, I honestly don&#8217;t know yet. There is a huge amount of planning to be done, but it could be the start of something great.  We will have to see. It will be a busy Christmas, that&#8217;s for sure.</p>
<p>In the meantime I&#8217;m working on a few other projects that I hope to share with you soon. Stay tuned. Thanks!</p>
<p>- josh</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2011/12/09/hp-to-open-source-webos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This gives me a sad</title>
		<link>http://www.joshondesign.com/2011/10/24/this-gives-me-a-sad/</link>
		<comments>http://www.joshondesign.com/2011/10/24/this-gives-me-a-sad/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 00:13:21 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[palm]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=525</guid>
		<description><![CDATA[Richard Kerris leaving HP for &#8220;an opportunity outside&#8221;]]></description>
			<content:encoded><![CDATA[<p><a style="font-weight: bold; font-size: 18px;" href="http://www.precentral.net/richard-kerris-leaving-hp-an-opportunity-outside" onclick="pageTracker._trackPageview('/outgoing/www.precentral.net/richard-kerris-leaving-hp-an-opportunity-outside?referer=');">Richard Kerris leaving HP for &#8220;an opportunity outside&#8221;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2011/10/24/this-gives-me-a-sad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hidden Treasure: AppBundler</title>
		<link>http://www.joshondesign.com/2011/09/22/hidden-treasure-appbundler/</link>
		<comments>http://www.joshondesign.com/2011/09/22/hidden-treasure-appbundler/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 03:39:20 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[amino]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[palm]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=480</guid>
		<description><![CDATA[When working on big projects I often create little projects to support the larger effort. Sometimes these little projects turn into something great on their own.  It&#8217;s time for me to tell you about one of them: AppBundler. AppBundler is a small tool which packages up Java (client side) apps with a minimum of fuss. [...]]]></description>
			<content:encoded><![CDATA[<p>When working on big projects I often create little projects to support the larger effort. Sometimes these little projects turn into something great on their own.  It&#8217;s time for me to tell you about one of them: <strong>AppBundler.</strong></p>
<p>AppBundler is a small tool which packages up Java (client side) apps with a minimum of fuss. From a single app description it can generate Mac OSX .app bundles, Windows .EXE files, JNLPs (Java Web Start), double clickable jars; and as of yesterday evening: webOS apps!  I start the project to support Leonardo Sketch but I think it&#8217;s time for AppBundler to stand on it&#8217;s own.</p>
<p>&nbsp;</p>
<p><span id="more-480"></span></p>
<p>Packaging Java apps has historically been an exercise in creative swearing.  The JVM provides no packaging mechanism other than double clickable jars, which are limited and feel nothing like native apps. Mac and Windows have their own executable formats that involve native code, and Sun has never provided tools to support them.  Java Web Start was supposed to solve this, but it never took off the way the creators hoped and has it&#8217;s own idiosyncrasies. Long term we will have more a more environments with Java available but with different native package systems. Add in native libs, file extension registration, and other metadata; and now you&#8217;ve got a real problem. After hacking Ant files for years to deal with the issue I decided it was finally time to encode my build scripts and Java lore into a new tool that will solve the issue once and for all. Thus AppBundler was born.</p>
<p>&nbsp;</p>
<h3>How it works</h3>
<p>You create a simple XML descriptor file for your application. It lists the jars that make up your app along with some metadata like the App name and main class. It can optionally include icons, file extensions, and links to native libraries.</p>
<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;app name="Amino Particles"&gt;     &lt;jar name="Amino2.jar"/&gt;     &lt;jar name="amino_sdl.jar"/&gt;     &lt;jar name="examples.jar" main-class="com.joshondesign.amino.examples.Particles"/&gt; &lt;property name="com.joshondesign.amino.impl" value="sdl"/&gt;     &lt;native name="sdl"/&gt; &lt;/app&gt; </code></pre>
<p>&nbsp;</p>
<p>Then you run AppBundler on this file from the command line along with a list of directories where the jars can be found. In most apps you have a single directory with all of your jars, plus the app jar itself, so you usually only need to list two directories.  You also specify which output format you want or &#8211;all for all of them.  Here&#8217;s what it looks like called from an ant script (command line would be the same).</p>
<pre><code> &lt;java             classpath="lib/AppBundler.jar;lib/XMLLib.jar"             classname="com.joshondesign.appbundler.Bundler" fork="true"&gt;             &lt;arg value="--file=myapp.xml"/&gt;             &lt;arg value="--target=mac"/&gt;             &lt;arg value="--outdir=dist/"/&gt;             &lt;arg value="--jardir=lib/"/&gt;             &lt;arg value="--jardir=build/jars/"/&gt;     &lt;/java&gt; </code></pre>
<p>AppBundler will then generate the executable for each output format.</p>
<h3>What it does</h3>
<p>For Mac it will create a <strong>.APP</strong> bundle containing your jars, then include a copy of the JavaApplicationStub and generate the correct Info.plist files (Mac specific metadata files), and finally zip up the bundle.  For Windows it uses JSmooth to generate a <strong>.EXE</strong> file with an icon and class path.  For Java WebStart it will generate the JNLP file and copy over the jars.  For double click jar files it will actually squish all of your jars together into a single jar with the right META-INF files.  And all of the above works with native libraries like JOGL too. For each target it will set the correct library paths and do tricky things like decompress native libs into temp directories. Registering for file extensions and requesting JREs mostly works.</p>
<h3>What about webOS?</h3>
<p>All of the platforms except webOS ship with a JVM or one can be auto-installed on demand (the Windows EXEs do this).  There is no such option for webOS, however. webOS has a high level HTML 5 based SDK and a low level C based PDK.  To run Java on webOS you&#8217;d have to provide your own JVM and class libraries, so that&#8217;s exactly what I&#8217;ve done. The full OpenJDK would be too big to run on a lightweight tablet, and a port would take a team of people months to do. Instead I cross compiled the amazing open source JVM Avian to ARM.  Avian was meant to be embedded and already has an ARM port, so compiling it was a snap.</p>
<p>Avian can use the full OpenJDK runtime, but it also comes with it&#8217;s own minimal classpath.jar that provides the bare minimum needed to run Java code.  Using the smaller runtime meant we wouldn&#8217;t have a GUI like Swing, but using Swing would require months of AWT porting anyway, which I wasn&#8217;t interested in doing. Instead I created a new set of Java bindings to SDL (<a href="http://en.wikipedia.org/wiki/Simple_DirectMedia_Layer" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Simple_DirectMedia_Layer?referer=');">Simple DirectMedia Layer</a>), a low level graphics API available on pretty much every platform.  Then I created a port of <a href="http://goamino.org/" onclick="pageTracker._trackPageview('/outgoing/goamino.org/?referer=');">Amino</a> (my 2D scene graph library) to run on top of SDL.  It sounds complicated (and it was, actually), but the scripts hide the complexity. The end result is a set of tools to let you write graphical apps with Java on webOS.  Amino already has ports to Java2D and HTML 5 Canvas (and OpenGL is in the works), so you can easily create cross platform graphics apps. And now with AppBundler you can easily package them as well. Interestingly, Avian runs on desktops nicely, so putting Java apps into the Mac App Store might now be possible. There&#8217;s already some enterprising developers trying to get Avian working on iOS.</p>
<h3>How you can help.</h3>
<p>While functional, I consider AppBundler to be in an alpha state.  There&#8217;s lots of things that need work. In particular it needs Linux support (generate rpms or debs?) and a real Ant task instead of the Java exec commands you see above. I would also like to have it be included in Maven and any other useful repo.  And as a final request (as long as I have you here), I need some servers to run builds tests on. I have already have Hudson running on a Linux server. I&#8217;d love it if someone could run a Hudson slave for me on their Windows or Mac server. And of course we need lots of testing and bug fixes. If you are interested please join the mailing list.</p>
<h3>Client Java Freedom</h3>
<p>AppBundler is another facet of my efforts to let help Java provide a good user experience everywhere.  Apps should always feel native, and that includes the installation and start experience.  I&#8217;ve used AppBundler to provide native installs of <a href="http://leonardosketch.org/" onclick="pageTracker._trackPageview('/outgoing/leonardosketch.org/?referer=');">Leonardo Sketch</a> on every desktop platform. I hope AppBundler will help you do the same.</p>
<p>Enjoy!</p>
<p>-Josh</p>
<p>&nbsp;</p>
<h3>References:</h3>
<ul>
<li>AppBundler <a href="http://hudson.joshy.org:9001/job/Amino%20Support/lastSuccessfulBuild/artifact/" onclick="pageTracker._trackPageview('/outgoing/hudson.joshy.org_9001/job/Amino_20Support/lastSuccessfulBuild/artifact/?referer=');">download</a></li>
<li>Leonardo Sketch (&amp; AppBundler) <a href="http://groups.google.com/group/leonardosketch-dev?pli=1" onclick="pageTracker._trackPageview('/outgoing/groups.google.com/group/leonardosketch-dev?pli=1&amp;referer=');">developer mailing list</a></li>
<li><a href="http://oss.readytalk.com/avian/" onclick="pageTracker._trackPageview('/outgoing/oss.readytalk.com/avian/?referer=');">Avian</a>, embedded JVM</li>
<li><a href="http://jsmooth.sourceforge.net/" onclick="pageTracker._trackPageview('/outgoing/jsmooth.sourceforge.net/?referer=');">JSmooth</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2011/09/22/hidden-treasure-appbundler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java + SDL + Avian + webOS = Magically Delicious</title>
		<link>http://www.joshondesign.com/2011/08/31/java-sdl-avian-webos-magically-delicious/</link>
		<comments>http://www.joshondesign.com/2011/08/31/java-sdl-avian-webos-magically-delicious/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 22:35:21 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[graphics]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[palm]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=474</guid>
		<description><![CDATA[Mmmwaa haa haa. It lives! I&#8217;ve gotten Java to run on webOS natively with a new set of Java SDL bindings. That means it just *might* time to start a new project. Read on for how it works and how you could help. &#160; For a while I&#8217;ve been following an open source project called [...]]]></description>
			<content:encoded><![CDATA[<p>Mmmwaa haa haa. It lives! I&#8217;ve gotten Java to run on webOS natively with a new set of Java SDL bindings. That means it just *might* time to start a new project. Read on for how it works and how you could help.</p>
<p>&nbsp;</p>
<p><span id="more-474"></span>
<p>For a while I&#8217;ve been following an open source project called <a href="http://oss.readytalk.com/avian/" onclick="pageTracker._trackPageview('/outgoing/oss.readytalk.com/avian/?referer=');">Avian</a>. It&#8217;s a very lightweight and highly portable JVM that can run almost anywhere. Recently I tried a new build and was able to get the ARM port running on webOS! &nbsp;This is good news because Avian can run pretty much any Java code if you supply it with the right runtime (it can optionally work with the OpenJDK libs).</p>
<p>Now, of course getting a command line app it run is not very interesting. Really we want to talk to the screen to make some real graphical applications. So that brings us to part two: SDL.</p>
<p>If you&#8217;ve been doing desktop programming for a while you&#8217;ve probably heard of <a href="http://www.libsdl.org/" onclick="pageTracker._trackPageview('/outgoing/www.libsdl.org/?referer=');">SDL</a>, the Simple DirectMedia Library. It&#8217;s a fairly low level graphics and audio API that runs pretty much everywhere, including on webOS. &nbsp; But, of course, like many low level APIs it&#8217;s built in C. So if I want to use Java I need to some wrapper to call it. &nbsp;The existing wrappers out there are very old and didn&#8217;t work well on Mac, so it was time to build my own.</p>
<p>Over the weekend I learned how to use <a href="http://www.swig.org/" onclick="pageTracker._trackPageview('/outgoing/www.swig.org/?referer=');">Swig</a>, a JNI wrapper generator and successfully ran my new SDL wrappers on Mac, Linux, and webOS. &nbsp;Here&#8217;s a quick screenshot:</p>
<p>&nbsp;</p>
<p><img title="Screen Shot 2011-08-31 at 3.28.52 PM.png" src="http://www.joshondesign.com/wp-content/uploads/2011/08/aminoScreen-Shot-2011-08-31-at-3.28.52-PM.png" border="0" alt="Screen Shot 2011 08 31 at 3 28 52 PM" width="400" height="250" /></p>
<p>it&#8217;s not much but it proves that everything is working.</p>
<p>So what&#8217;s the next step? &nbsp;Honestly&#8230; I don&#8217;t know. I created this specifically to let me code Java on webOS, but the SDL bindings would probably be useful for cross platform desktop applications as well. &nbsp;We could port Amino to it, or do some funky multitouch stuff. It would certainly be great for people creating games. I need your advice.</p>
<p>What would you like to do with this library? What higher level APIs would you like? If you have any ideas of what you&#8217;d do with this lib, or would like to contribute to the project (help on Windows compilation would be greatly appreciated), then please message me on twitter: <a href="http://twitter.com/#!/joshmarinacci" onclick="pageTracker._trackPageview('/outgoing/twitter.com/_/joshmarinacci?referer=');">@joshmarinacci</a>.</p>
<p>Thanks!</p>
<p>- Josh</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2011/08/31/java-sdl-avian-webos-magically-delicious/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>webOS Canvas Improvements for the HP TouchPad</title>
		<link>http://www.joshondesign.com/2011/08/05/webos-canvas-improvements-for-the-hp-touchpad/</link>
		<comments>http://www.joshondesign.com/2011/08/05/webos-canvas-improvements-for-the-hp-touchpad/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 18:39:16 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[palm]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=438</guid>
		<description><![CDATA[Hot on the heels of my Canvas talk at OSCON (which went very well. Much thanks to everyone who attended), I&#8217;ve put up a post on the developer blog about the great new Canvas stuff in webOS 3.0. &#160;Most importantly, speed has been doubled for certain drawing operations! I&#8217;m very proud of the graphics team [...]]]></description>
			<content:encoded><![CDATA[<p>Hot on the heels of my Canvas talk at OSCON (which went very well. Much thanks to everyone who attended), I&#8217;ve put up a post on the developer blog about the great new Canvas stuff in webOS 3.0. &nbsp;Most importantly, speed has been <strong>doubled</strong> for certain drawing operations! I&#8217;m very proud of the graphics team here at Palm.</p>
<p>You can read the full description of the changes <a href="http://developer.palm.com/blog/2011/08/whats-new-for-html-canvas-in-webos-3-0/" onclick="pageTracker._trackPageview('/outgoing/developer.palm.com/blog/2011/08/whats-new-for-html-canvas-in-webos-3-0/?referer=');">here</a>.</p>
<p>- Josh</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2011/08/05/webos-canvas-improvements-for-the-hp-touchpad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boom. It&#8217;s Action Time</title>
		<link>http://www.joshondesign.com/2011/06/30/boom-its-action-time/</link>
		<comments>http://www.joshondesign.com/2011/06/30/boom-its-action-time/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 05:57:19 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[palm]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=418</guid>
		<description><![CDATA[The TouchPad is on it&#8217;s way to stores, the catalog is full of apps, and Jesse finally went to sleep. &#160;It is done. Well, not really done per se. This is a marathon and we&#8217;ve only made our first dip in the water. It&#8217;s a seven course meal that begins with the first mile. It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.hpwebos.com/us/" onclick="pageTracker._trackPageview('/outgoing/www.hpwebos.com/us/?referer=');">TouchPad</a> is on it&#8217;s way to stores, the catalog is full of apps, and Jesse finally went to sleep. &nbsp;It is done.</p>
<p>Well, not really <em>done per se</em>. This is a marathon and we&#8217;ve only made our first dip in the water. It&#8217;s a seven course meal that begins with the first mile. It&#8217;s both a floor wax <em>and</em> a dessert topping. And was it over when the Germans bombed Pearl Harbor? <strong>Hell no!</strong> And it ain&#8217;t over now!</p>
<p>I&#8217;m serious, though, when I say that 10 years from now 90% of people will use a tablet computer as their main computing device. &nbsp;And a big chunk of those will be running webOS. &nbsp;This is just getting started.</p>
<p>I&#8217;d like to really congratulate both the Developer Relations team that I&#8217;m on and the larger webOS organization.&nbsp;I am so proud to be a part of this group.&nbsp;Shipping a product like this has been a dream of mine for a very long time.&nbsp;To make something quality and tangible.&nbsp;To improve the&nbsp;computing user experience for the regular user and help developers build new and amazing things. &nbsp;Things no one has ever seen before.</p>
<p>Tomorrow is the realization of that dream for me.&nbsp;Tomorrow I will walk into Best Buy and see people using a product that I helped bring into existence. It will have some great apps in the catalog that I helped usher to market. I&#8217;m especially proud of our educational titles like <a href="http://www.brainpop.com/" onclick="pageTracker._trackPageview('/outgoing/www.brainpop.com/?referer=');">BrainPop</a> (<a href="https://developer.palm.com/appredirect/?packageid=com.brainpop.brainpop" onclick="pageTracker._trackPageview('/outgoing/developer.palm.com/appredirect/?packageid=com.brainpop.brainpop&amp;referer=');">app</a>) and the first official tablet app for the <a href="http://www.khanacademy.org/" onclick="pageTracker._trackPageview('/outgoing/www.khanacademy.org/?referer=');">Kahn Academy</a> (<a href="https://developer.palm.com/appredirect/?packageid=org.khanacademy" onclick="pageTracker._trackPageview('/outgoing/developer.palm.com/appredirect/?packageid=org.khanacademy&amp;referer=');">app</a>).</p>
<div></div>
<div></div>
<p>Now of course I know how the sausage is made. I know the features that <em>didn&#8217;t</em> make it in. The bugs that were fixed right after the deadline. The chaos behind the curtain. &nbsp; It&#8217;s just the nature of software. You&#8217;re never done. But a great guy once said: <a href="http://www.folklore.org/StoryView.py?story=Real_Artists_Ship.txt" onclick="pageTracker._trackPageview('/outgoing/www.folklore.org/StoryView.py?story=Real_Artists_Ship.txt&amp;referer=');">&#8220;Real artists ship&#8221;</a>. And I heard his underdog products ended up doing pretty well.</p>
<p>And another great guy I know just said: &#8220;THIS is our iMac, and this is where it starts, not finishes. And while we have a lot of work left to do, getting here means we&rsquo;ve accomplished a hell of a lot, too.&#8221;</p>
<div></div>
<div></div>
<p>And if that doesn&#8217;t work for you then here, <a href="http://www.youtube.com/watch?v=B10BxYZqa1Q" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=B10BxYZqa1Q&amp;referer=');">have some tasty pudding</a>!</p>
<p>Go Huge Palm!</p>
<hr/>
<p>For my gracious younger readers, a brief history lesson from one of the classics of cinema</p>
<p><iframe frameborder="0" width="480" height="312" src="http://www.dailymotion.com/embed/video/x403sf"></iframe><br /><a href="http://www.dailymotion.com/video/x403sf_was-it-over-when-the-germans-bombed_fun" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dailymotion.com/video/x403sf_was-it-over-when-the-germans-bombed_fun?referer=');">Was it over when the Germans bombed Pearl Harbor</a> <i>by <a href="http://www.dailymotion.com/thefastlane2hell" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.dailymotion.com/thefastlane2hell?referer=');">thefastlane2hell</a></i></p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2011/06/30/boom-its-action-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON and Mobile Portland Trip Report</title>
		<link>http://www.joshondesign.com/2010/07/27/oscon-and-mobile-portland-trip-report/</link>
		<comments>http://www.joshondesign.com/2010/07/27/oscon-and-mobile-portland-trip-report/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 23:23:37 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[palm]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=264</guid>
		<description><![CDATA[Greetings Earthlings! Today&#8217;s the first day I haven&#8217;t been traveling, so I can finally catch my breath and write down some notes. It&#8217;s been a helluva week. Last week I drove to Portland for OSCON to give several presentations and be involved in general geekery (if you follow me on Twitter, that&#8217;s why you saw [...]]]></description>
			<content:encoded><![CDATA[<p>Greetings Earthlings!</p>
<p>Today&#8217;s the first day I haven&#8217;t been traveling, so I can finally catch my breath and write down some notes.  It&#8217;s been a helluva week. Last week I drove to Portland for OSCON to give several presentations and be involved in general geekery (if you <a href="http://twitter.com/joshmarinacci" onclick="pageTracker._trackPageview('/outgoing/twitter.com/joshmarinacci?referer=');">follow me on Twitter</a>, that&#8217;s why you saw so many posts tagged with <a href="http://twitter.com/#search?q=%23oscon" onclick="pageTracker._trackPageview('/outgoing/twitter.com/_search?q=_23oscon&amp;referer=');">#oscon</a>)</p>
<p><span id="more-264"></span></p>
<h3>Monday</h3>
<p>	Due to a cat emergency (Nori is fine now) I arrived mid-afternoon, missing the tutorial sessions for the day. I spent the rest of the day working on slides and met with some of my new HP co-workers. I have to say the HP guys have been great to work with. They are very enthusiastic about what we can build with webOS.</p>
<h3>Tuesday and PJUG</h3>
<p>	The morning was spent in the Erlang three hour technical session. I love OSCON because I can learn about things completely out of my element. Knowing nothing about Erlang before I can now build a basic multi-threaded program in it. It&#8217;s got some very interesting concepts. It feels like a mix between Lisp and Prolog. Functional and match based.
</p>
<p>	Tuesday evening I gave a presentation to the Portland Java User&#8217;s Group. For the first half of the talk I went over long term trends towards mobile devices, tablets, etc. and the shift away from PCs as the primary computing interface. Then I dove into how the mobile web solves the N-device problem with some technical tips and UI guidelines for mobile devices (use stylesheets, have large click areas, pare functionality down).  For the last part I covered Palm&#8217;s take, covering Ares, our mobile browser, our app ecosystem, and when it&#8217;s appropriate to do one over the other. (And how webservices are the answer for everything :).  I&#8217;ll have slides for this talk up soon.
</p>
<p>Afterwards we went downstairs where the Oracle dev outreach rep bought us all beer, then headed out for some Voodoo Doughnuts.  <em>ButterFinger doughnut for the win!</em></p>
<h3>Wednesday</h3>
<p>Wednesday morning we showed up to the expo floor early to get everything set up. I brought a bunch of Palm T-Shirts, a box of webOS books, about 80 aluminum water bottles, and 10 phones.  The booth was very well attended and Ares was a big hit. I <em>definitely</em> need to get more of these nice water bottles, at least for the pacific northwest. We have so many bikers and hikers here, people use these things constantly.
</p>
<p>Wednesday morning HP had a session covering all of the ways HP is involved in open source. I did a 12 minute segment covering webOS architecture, app development options, our catalog, and a 5 minute Ares demo. (yes, only 12 minutes for all of it!)  At the end we gave away a couple of phones to people who asked good questions.  (This is a lesson to attendees. <em>Always stay till the end!</em>)
</p>
<h3>Book signing</h3>
<p>	OSCON is run by O&#8217;Reilly. Since I wrote Swing Hacks for them five years ago they asked me to do a book signing at the Powell&#8217;s booth. As I expected no one wanted me to sign a five year old book on an even older technology, but I did have a nice time chatting with the guys at Powell&#8217;s (an excellent local Portland bookseller with one store dedicated to technical books).
</p>
<h3>Thursday</h3>
<p>	Thursday I took the day off to spend time with my wife in Portland. Primarily Nordstrom&#8217;s. We must have priorities.
</p>
<h3>Friday</h3>
<p>	Friday morning I did my personal session on <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13788" onclick="pageTracker._trackPageview('/outgoing/www.oscon.com/oscon2010/public/schedule/detail/13788?referer=');">Marketing Your Open Source Project on a Shoestring Budget</a> Attendance is generally lower on the last day, so I wasn&#8217;t surprised to see only about 25 people there. I wish O&#8217;Reilly had put me into a smaller room though, as it was built for about 250 and felt very empty.  The talk was very well received by the audience, though. Several came up to me later telling me how much they liked it. Definitely something to repeat in the future. I&#8217;ll have the slides up soon.</p>
<p>Next I attended &#8220;<a href="http://www.oscon.com/oscon2010/public/schedule/detail/14113" onclick="pageTracker._trackPageview('/outgoing/www.oscon.com/oscon2010/public/schedule/detail/14113?referer=');">Repent Repent, the 2038 crisis is almost upon us</a>&#8221; a tongue in cheek talk about the Y2038 problem where unix dates will roll over to 1901. Finally I saw the humorous  keynote on <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13699" onclick="pageTracker._trackPageview('/outgoing/www.oscon.com/oscon2010/public/schedule/detail/13699?referer=');">The World&#8217;s Worst Inventions</a>.  Describing it can&#8217;t do it justice. <a href="http://www.youtube.com/watch?v=EyRdnV1D-mI&#038;feature=player_embedded#!" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/watch?v=EyRdnV1D-mI_038_feature=player_embedded&amp;referer=');">Just go watch it</a>.
</p>
<p>	Friday night my dinner guests bailed on me (or rather, hard crashed after 8 days of conference, poor guys) so Jen and I went out for some excellent Portland Sushi. I tweeted about it and someone showed up to join us. Go Twitter!  Saturday morning we packed up, had a breakfast at a local cafe (<a href="http://miloscitycafe.com/default.aspx" onclick="pageTracker._trackPageview('/outgoing/miloscitycafe.com/default.aspx?referer=');">Milo&#8217;s Cafe</a>, *highly* recommended. huevos rancheros &#038; crab cakes were awesome!), then drove home.
</p>
<h3>Monday: Mobile Portland</h3>
<p>The rest of Saturday and Sunday I was pretty much a zombie, but Monday afternoon I drove back up to Portland for yet <em>another</em> event. Jason Grigsby, who has worked on some high profile mobile apps, is the leader of <a href="http://mobileportland.com/" onclick="pageTracker._trackPageview('/outgoing/mobileportland.com/?referer=');">MobilePortland.com</a>, a local mobile developers group. A week ago their July meeting speaker plans fell through so he asked me if I&#8217;d talk to them about webOS while I was in town for OSCON (not realizing I live only 2 hours away).
</p>
<p>So Monday I drove up to Portland and gave a 1 hour presentation that leaked into about 2 hours followed by Thai food afterwards with some of the crew. I gave them an overview of webOS, the development options, then spent quite a time in Ares showing how easy it is to build for.  During a lengthy Q&#038;A session they asked some really good questions and we got to dive into how the developer experience is very important for us. I also met some HP developers from Vancouver, two reporters, and a writer for PreCentral. It&#8217;s amazing how many mobile related people live in Portland.
</p>
<p><a href="http://www.ustream.tv/recorded/8537473" onclick="pageTracker._trackPageview('/outgoing/www.ustream.tv/recorded/8537473?referer=');">UStream recording of my session here</a></p>
<p>Whew. I think it&#8217;s time for some coffee or a nap.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2010/07/27/oscon-and-mobile-portland-trip-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Palm Dev Days Recovery</title>
		<link>http://www.joshondesign.com/2010/04/26/palm-dev-days-recovery/</link>
		<comments>http://www.joshondesign.com/2010/04/26/palm-dev-days-recovery/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 05:01:41 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[palm]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=216</guid>
		<description><![CDATA[I&#8217;m writing this from a hotel room in SunnyVale, recovering from the tremendous event we put on for our dedicated developers at Palm&#8217;s first ever webOS developer event last Friday and Saturday. The turnout was great. Over 100 developers paid their own money to drive, fly, and chopper in to Palm HQ. I taught an [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m writing this from a hotel room in SunnyVale, recovering from the tremendous event we put on for our dedicated developers at Palm&#8217;s first ever webOS developer event last Friday and Saturday. The turnout was great. Over 100 developers paid their own money to drive, fly, and chopper in to Palm HQ.  I taught an intro to webOS session for the entire first day, then answered questions and attended sessions the second. Topping it all with dinner at a local brew pub was a splendid idea.
</p>
<p>My great thanks to my fellow Developer Relations Team and the many dedicated engineers who came to present, answer questions, and socialize with our developers.  I know it meant a lot to the attendees to have such a personal connection with Palm.  Extra special thanks to our CEO, John Rubenstein who personally addressed the developers at the end of the first day.
</p>
<p>All in all, a great success. Slides and photos are forthcoming. Now time to sleep for a few days until next week when I&#8217;ll be speaking on HTML 5 at the Web 2.0 conference.
</p>
<p>- Josh</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2010/04/26/palm-dev-days-recovery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>webOS, the OS built from the web</title>
		<link>http://www.joshondesign.com/2010/04/15/webos-the-os-built-from-the-web/</link>
		<comments>http://www.joshondesign.com/2010/04/15/webos-the-os-built-from-the-web/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 19:37:08 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[palm]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=202</guid>
		<description><![CDATA[There&#8217;s been a ton of talk lately about several mobile operating systems and their problems, such as language restrictions, fragmentation, and anti-competitive practices. It&#8217;s never a good idea to talk bad about your competition, so I&#8217;ll take this opportunity to simply say a few things about the webOS (the OS that powers Palm&#8217;s Pre and [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s been a ton of talk lately about several mobile operating systems and their problems, such as language restrictions, fragmentation, and anti-competitive practices.  It&#8217;s never a good idea to talk bad about your competition, so I&#8217;ll take this opportunity to simply say a few things about the webOS (the OS that powers Palm&#8217;s Pre and Pixi phones) that you might not know.
</p>
<p><span id="more-202"></span>
<p><i>As always, I am writing this as Josh the blogger. <strong>These are my opinions alone</strong> and do not reflect the opinions of Palm Inc.</i></p>
<ul>
<li><strong>webOS devices are part of the web, not tethered to a desktop computer.</strong><br />
You install apps through the web. You your data is backed up to the web. OS updates come through the web. Your address book is a merged view of your contacts living in the web.  You <strong>never</strong> have to <em>sync</em> to a desktop computer. I know some Pixi users who have never once plugged their phones into a computer, because their phone is already a part of the web.</li>
<li><strong>The webOS treats it&#8217;s users like grown ups: they can install any apps they want.</strong>  <em>What if the app duplicates a built in app?</em> <strong>Fine</strong>. <em>What if the app isn&#8217;t in the on device catalog?</em> <strong>Fine</strong>: you can install apps from the web or beta feeds without any restrictions and do the marketing on your own. <em>What if the app hasn&#8217;t been reviewed, came from my cool programmer friend, and might hose my device?</em>  Well, if you enter the developer code into your phone then you&#8217;ve accepted the risk and can install any app you want.  There&#8217;s a whole community of people making cool but unauthorized apps. They are called the Homebrew community, and Palm encourages them. <strong>You&#8217;re an adult. You can make the decision of what to install on your phone.</strong></li>
<li><strong>The webOS lets you use any language you want to develop apps.</strong><br />
While Palm doesn&#8217;t provide tools for languages other than JavaScript, C, &#038; C++, there are no restrictions against using any other language. Our new <a href="http://developer.palm.com/index.php?option=com_content&#038;view=article&#038;layout=page&#038;id=1936" onclick="pageTracker._trackPageview('/outgoing/developer.palm.com/index.php?option=com_content_038_view=article_038_layout=page_038_id=1936&amp;referer=');">PDK</a> gives you a clean POSIX layer with direct &#038; standard access to input (SDL), the screen (OpenGL), and device services (API bridge). There&#8217;s nothing stopping you from porting a C# compiler or a Lua interpreter. Developers are free to use whatever tools they wish. The results are what matter. Good apps are good apps.</li>
<li><strong>The webOS doesn&#8217;t have fragmentation.</strong><br />
All webOS devices run the same OS, regardless of form factor. They are all updated over the air, for free, in all countries and carriers. This means that 99% of webOS devices have the current version of the OS within a few weeks. There is no fragmentation of the operating system across devices or form factors. This lets developers focus on making great apps, not waste time supporting 18 versions of the OS.</li>
<li><strong>The webOS is built from the DNA of the web.</strong>  Yes this includes using HTML, JavaScript and CSS as the primary application development layer, but it&#8217;s more than that. I can just start typing to have my question answered by wikipedia. The address book contains your contacts that live on the web. If my wife changes her Facebook profile photo, my phone is automatically updated. I can write an app that links to other apps through Javascript calls.  The web is about connections to the people and services you care about, not just HTML pages.  So is the webOS.</li>
</ul>
<p>At Palm we care greatly about the end customer experience. We are also developers, so we care greatly about the developer experience. And most importantly, we don&#8217;t see the two at odds.  Happy developers create great apps that create happy customers. It&#8217;s a win, win.  That&#8217;s why we are doing everything we can to make happy developers. We don&#8217;t always do everything perfectly, but when something is broken we do our best to fix it and be transparent. It&#8217;s how the web works and it&#8217;s how the webOS works.</p>
<p>So, as a developer, I hope you&#8217;ll think about the benefits and freedoms of the webOS, and consider it for your next mobile application.</p>
<p>references</p>
<ul>
<li><a href="http://developer.palm.com/index.php" onclick="pageTracker._trackPageview('/outgoing/developer.palm.com/index.php?referer=');">Palm&#8217;s Developer Center</a></li>
<li><a href="http://developer.palm.com/index.php?option=com_content&#038;view=article&#038;layout=page&#038;id=1936" onclick="pageTracker._trackPageview('/outgoing/developer.palm.com/index.php?option=com_content_038_view=article_038_layout=page_038_id=1936&amp;referer=');">PDK: Plugin Development Kit</a></li>
<li><a href="http://palmhotapps.com/" onclick="pageTracker._trackPageview('/outgoing/palmhotapps.com/?referer=');">Palm&#8217;s Hot Apps competition</a></li>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2010/04/15/webos-the-os-built-from-the-web/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Palm Developer Day and OSCON</title>
		<link>http://www.joshondesign.com/2010/04/09/palm-developer-day-and-oscon/</link>
		<comments>http://www.joshondesign.com/2010/04/09/palm-developer-day-and-oscon/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 20:58:29 +0000</pubDate>
		<dc:creator>Josh Marinacci</dc:creator>
				<category><![CDATA[palm]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.joshondesign.com/?p=189</guid>
		<description><![CDATA[A big part of my new job at Palm is education, in the form of tutorials, blogs, and of course speaking at conferences. Two new speaking engagements have recently come up. Palm Developer Day and OSCON. Read on for details. Palm Developer Day This month I&#8217;ll be doing the day long Introduction to WebOS session. [...]]]></description>
			<content:encoded><![CDATA[<p>A big part of my new job at Palm is education, in the form of tutorials, blogs, and of course speaking at conferences. Two new speaking engagements have recently come up. Palm Developer Day and OSCON. Read on for details.</p>
<p><span id="more-189"></span><br />
<h3>Palm Developer Day</h3>
<p>This month I&#8217;ll be doing the day long <a href="http://developer.palm.com/blog/2010/04/palm-developer-day-agenda/" onclick="pageTracker._trackPageview('/outgoing/developer.palm.com/blog/2010/04/palm-developer-day-agenda/?referer=');">Introduction to WebOS</a> session. In this session I&#8217;ll take you from zero to 60 in about five hours, giving you everything you need to know to make great apps for the webOS.  <del>This Developer Day is now sold out,</del><i>(we&#8217;ve expanded. see below)</i>  but we are planning to do it again later this year after we work out the kinks. We also plan to video record the sessions and put them on the web. Stay tuned for more details.</p>
<h3>Update</h3>
<p>I thought we were sold out for the Palm Dev Day, I&#8217;ve just heard that we have expanded the capacity and reopened registration.  Space is going fast, so <a href="https://secure1.regsvc.com/registration/index.aspx?TYPE=E&#038;ID=2&#038;LC=&#038;PIN=&#038;REF=&#038;dbGUID=9A3C79FD-7BAA-4866-BFBD-E1385AA7935C&#038;" onclick="pageTracker._trackPageview('/outgoing/secure1.regsvc.com/registration/index.aspx?TYPE=E_038_ID=2_038_LC=_038_PIN=_038_REF=_038_dbGUID=9A3C79FD-7BAA-4866-BFBD-E1385AA7935C_038&amp;referer=');">sign up now!</a></p>
<h3>OSCON</h3>
<p>Yes, I&#8217;ll be at O&#8217;Reilly&#8217;s <a href="http://www.oscon.com/oscon2010" onclick="pageTracker._trackPageview('/outgoing/www.oscon.com/oscon2010?referer=');">Open Source Convention</a> again this summer. In addition to attending (a scant 2 hours from my house this time!) I&#8217;ll also be speaking on <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13788" onclick="pageTracker._trackPageview('/outgoing/www.oscon.com/oscon2010/public/schedule/detail/13788?referer=');">Marketing your Open Source Project on a Shoestring Budget</a>.  I&#8217;ll discuss different ways you can get the word out without breaking your budget, and throw in a few case studies. </p>
<p>If you&#8217;ve never been to OSCON before and live in the Pacific NorthWest I highly recommend attending. It&#8217;s a great opportunity to get out of your particular technology bubble and experience what the rest of the tech world has to offer.  I went two years ago and learned about Jython, Arduino, Trac, an extreme unit testing; all worlds away from my usual Java / JavaFX background.
</p>
<p>The conference is July 19th-23rd, and I&#8217;ll be speaking Friday morning. If you make it here be sure to let me know so I can buy you a beer. (Oh yeah, Portland has some of the best microbrews in the country).</p>
<p>A splendid time is guaranteed for all!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joshondesign.com/2010/04/09/palm-developer-day-and-oscon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

