<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>The Life Unwired</title>
  <link>http://unwiredben.livejournal.com/</link>
  <description>The Life Unwired - LiveJournal.com</description>
  <lastBuildDate>Mon, 09 Jan 2012 08:36:05 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>unwiredben</lj:journal>
  <lj:journalid>1527550</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <atom10:link rel='hub' href='http://pubsubhubbub.appspot.com/' />
  <image>
    <url>http://l-userpic.livejournal.com/79230174/1527550</url>
    <title>The Life Unwired</title>
    <link>http://unwiredben.livejournal.com/</link>
    <width>100</width>
    <height>100</height>
  </image>

<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/304606.html</guid>
  <pubDate>Mon, 09 Jan 2012 08:36:05 GMT</pubDate>
  <title>Webduino update</title>
  <link>http://unwiredben.livejournal.com/304606.html</link>
  <description>I took a few hours today to get back to an old open-source project of mine, the Webduino HTTP server library.  Since I last touched it about 18 months ago, a few developers have &lt;a href=&quot;https://github.com/sirleech/Webduino&quot;&gt;forked it over on GitHub&lt;/a&gt; and even done some pretty cool projects.  &lt;a href=&quot;http://ten-fingers-and-a-brain.com/category/arduino/webduino/&quot;&gt;Martin Lormes has been writing at about his changes&lt;/a&gt;, including favicon.ico support to keep browsers from making extra requests and supporting HTTP basic authentication.  I also saw &lt;a href=&quot;http://www.treeduino.com/index.htm&quot;&gt;a Christmas tree that had its lights controlled by a Webduino-powered form&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I&apos;ve got &lt;a href=&quot;https://github.com/unwiredben/Webduino&quot;&gt;my own fork going over at GitHub&lt;/a&gt; too now, and just checked in a bunch of small fixes that I&apos;d been saving up.  I&apos;ve not had a chance to do tests yet, as I&apos;ve got to dig up some of my hardware from where I left it after my September trip to New York City.</description>
  <comments>http://unwiredben.livejournal.com/304606.html</comments>
  <category>webduino</category>
  <category>arduino</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/304084.html</guid>
  <pubDate>Fri, 16 Dec 2011 19:16:49 GMT</pubDate>
  <title>Ending the &quot;My Tweets&quot; experiment</title>
  <link>http://unwiredben.livejournal.com/304084.html</link>
  <description>I just deleted all the &quot;My Tweets&quot; posts from this LJ account.  I thought it would be useful, but it ended up just annoying me, especially since they still hadn&apos;t fixed the bug where the text around the tweets was Russian instead of English.  However, now that we&apos;re working on releasing webOS as an open source project, I do plan on writing a bit more here about what&apos;s going on.  I&apos;m also working on a big revamp of my personal website that I&apos;ll publicize when ready.</description>
  <comments>http://unwiredben.livejournal.com/304084.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/298662.html</guid>
  <pubDate>Thu, 02 Jun 2011 15:45:33 GMT</pubDate>
  <title>Some Ad-Hoc Web Development Tools</title>
  <link>http://unwiredben.livejournal.com/298662.html</link>
  <description>In my job here at HP, I often need to reproduce bugs in our webOS browser or test out little web services.  There are two tools I&apos;m using more and more for these little ad-hoc tasks.&lt;br /&gt;&lt;br /&gt;First is Dropbox.  I&apos;ve been using Dropbox for a few years now to sync files between my various computers, and it works great for that.  What I&apos;ve been playing with a lot lately is the Public folder.  Anything you put in that folder becomes available to other users or devices via a easily copied URL.  You can use that URL both as HTTP and HTTPS, and it seems to support a wide range of content types without problem.&lt;br /&gt;&lt;br /&gt;My best practice is to put things in subfolders of public with not-easily guessable names.  All the URLs for public items look like &lt;a href=&apos;http://dl.dropbox.com/u/&apos;&gt;http://dl.dropbox.com/u/&lt;/a&gt;&lt;userid&gt;/&lt;path inside=&quot;inside&quot; public=&quot;Public&quot;&gt;, so while you can&apos;t get an index and see all the public items someone has up, putting everything into the root folder means that its easier for people to guess the URLs for items that you might have up.&lt;br /&gt;&lt;br /&gt;To make it easier to get to those URLs on my devices, I tend to use bit.ly (or it&apos;s shorter version, j.mp) to turn the long URL into a short opaque identifier.&lt;br /&gt;&lt;br /&gt;A second useful tool is one I just started using last week: &lt;a href=&apos;http://jsapp.us&apos;&gt;http://jsapp.us&lt;/a&gt;.  I think of this as an equivalent to our own Ares tool, but for node.js server apps.  You get a Bespin-based code editor, some file storage, and an easy way to run your node code on their services.  You wouldn&apos;t want to make giant systems with this, but it&apos;s great for writing a 20 line script to test out HTTP error code generation or user authentication methods.&lt;br /&gt;&lt;br /&gt;A final tool that I find myself using almost every day is our own Ares Debugger.  If you&apos;re doing anything webOS and haven&apos;t tried it, please go to &lt;a href=&apos;http://ares.palm.com/AresDebug&apos;&gt;http://ares.palm.com/AresDebug&lt;/a&gt; and try it out. It will suck the JavaScript right off the device or emulator, let you set breakpoints, single step, and inspect variables.</description>
  <comments>http://unwiredben.livejournal.com/298662.html</comments>
  <category>tools</category>
  <category>technology</category>
  <category>webos</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/298397.html</guid>
  <pubDate>Wed, 22 Sep 2010 18:05:13 GMT</pubDate>
  <title>Five webOS Apps That I Love</title>
  <link>http://unwiredben.livejournal.com/298397.html</link>
  <description>I get to try a lot of webOS applications as part of my job in developer relations.  Sometimes they are beta apps that a developer has sent to me to review.  Sometimes they&apos;re released apps that I&apos;m using to validate new OS releases or hardware.  Sometimes they&apos;re just fun apps that I use for my own productivity and enjoyment.  Here&apos;s five that I always try to reinstall after flashing a device for day-to-day use:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.palm.com/appredirect/?packageid=com.foursquare.foursquare&quot;&gt;Foursquare&lt;/a&gt; - Every week or so, I get really addicted to checking into places for a few days.  Zhephree&apos;s app works very, very well for this task.  It makes me wish that our GPS system would work better, since most of my wait time is for the fix.  The user interface is very slick.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.palm.com/appredirect/?packageid=com.zhephree.neato&quot;&gt;neato!&lt;/a&gt; - Another Zhephree app that&apos;s great.  I don&apos;t always leave this running, but when I need to do some web site debugging, it&apos;s very useful.  It lets me click on a bookmarklet in my browser and have the page almost instantly show up on my device.  It also can be used to send selected text and bring up app pages.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.palm.com/appredirect/?packageid=com.pivotallabs.tweed.us&quot;&gt;Tweed&lt;/a&gt; - It may not be the most stylish Twitter client on webOS, but it&apos;s been very stable and nicely maintained, and it serves me well.  I don&apos;t use the notification feature, as I tend to view Twitter as a pool of data that I can dip into from time to time rather than a email inbox.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.palm.com/appredirect/?packageid=com.drnull.drpodder&quot;&gt;drPodder&lt;/a&gt; - I like listening to podcasts, but I hate having to manage a desktop client to find and download them.  This app does all that for me on the device.  The interface is for the power user, but I love the way it uses system notifications to let you pause and resume your track.  I just wish I could manage my feed list on the web somewhere -- it would be awesome if you could use the Dropbox API to store your drpodder.xml OPML file online.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.palm.com/appredirect/?packageid=com.splashdata.app.splashid&quot;&gt;SplashID&lt;/a&gt; - I was a long-time SplashID user on Palm OS, and I really liked that you could export your records from the desktop to the device.  SplashData hasn&apos;t done a good job of updating this (where is sync!), but I still always load this up.  If I can find a good cloud sync solution that&apos;s supported on webOS, I might switch to it.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.palm.com/appredirect/?packageid=com.geezernetwork.tmapsny&quot;&gt;TMaps - NY&lt;/a&gt; - if you navigate around NY, you need a good subway map.  You especially need one that works when you&apos;re out-of-service.  TMaps fits those needs well.  I&apos;d really love to see a port of the iPhone&apos;s Exit Strategy app which includes street-level apps and advice on where exits are in subway stations, but this will do.&lt;br /&gt;&lt;br /&gt;I&apos;m giving myself a bonus selection with Google Reader.  I&apos;ve tried a few of the client apps that use the API to access my Reader feeds, but I keep coming back to Google&apos;s mobile website for the best experience.  I like that you&apos;re instantly synced with Google&apos;s own database of read/unread articles, and I like the &quot;open drawer&quot; method of moving quickly through a lot of news items.  This isn&apos;t a true app, but I usually use the Browser&apos;s &quot;Page / Add to Launcher&quot; command to make an icon for it.</description>
  <comments>http://unwiredben.livejournal.com/298397.html</comments>
  <category>palm</category>
  <category>useful tip</category>
  <category>webos</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/298086.html</guid>
  <pubDate>Fri, 13 Aug 2010 05:38:53 GMT</pubDate>
  <title>Some Easy PDK Apps</title>
  <link>http://unwiredben.livejournal.com/298086.html</link>
  <description>We just launched the &lt;a href=&quot;http://palmhotapps.com&quot;&gt;PDK Hot Apps leaderboard&lt;/a&gt;; while looking at the growing list of free apps that will pick up a bonus, I had some ideas for some apps that won&apos;t take a lot of time to write but could be useful.&lt;br /&gt;&lt;br /&gt;One is a sign generator.  The SDL library lets you use Truetype fonts that you bundle with your app to draw to the screen.  Take some interesting fonts, add some glow effects, and you can make a nice app for people to make messages that can be seen across a room.  A &quot;party sign&quot; app was one of the big winners in the original Hot Apps promotion, so it would be natural to one-up that with the PDK.&lt;br /&gt;&lt;br /&gt;Another idea is a nice 3D world time app.  Show a nice 3D globe based on the current time with accurate sun charts, maybe allow touches on the screen to rotate the globe with a button to recenter it on the current GPS location.&lt;br /&gt;&lt;br /&gt;A third idea is make a OpenGL ES-based photo viewer with some nice zoom and pan effects, aka Ken Burns mode.  You can build your own copy of libcurl to do HTTP fetching of images, and grab from different Flickr tagged feeds.  The UI might be a little tricky, but you can do a lot with just specializing in your own topics and maybe allowing the user to customize by editing a file read from /media/internal.&lt;br /&gt;&lt;br /&gt;Finally, there&apos;s plenty of fun to be had by porting some of the existing SDL demos and games that are listed at &lt;a href=&apos;http://www.libsdl.org&apos;&gt;http://www.libsdl.org&lt;/a&gt;.  We fully support posting open source software in the catalog, just be sure to use a open source developer account and follow the license.  That might mean adding information to your catalog description on how to get the source and build it yourself and adding notice to the user about the license terms.</description>
  <comments>http://unwiredben.livejournal.com/298086.html</comments>
  <category>programming</category>
  <category>palm</category>
  <category>pdk</category>
  <category>webos</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/297826.html</guid>
  <pubDate>Wed, 28 Apr 2010 08:17:01 GMT</pubDate>
  <title>Weak Linking and Linux Shared Libraries</title>
  <link>http://unwiredben.livejournal.com/297826.html</link>
  <description>This post is about esoteric dynamic linking issues on Linux... feel free to skip it if you&apos;re not a programmer.&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;&lt;br /&gt;The task seemed simple.  Palm had released an early version of a shared library called libpdl.so with version 1.4.0 of webOS.  We had put out an updated library with our PDK that added a few useful calls for developers.  Now, management had asked that we get a few of the in-progress PDK apps ready to put in the catalog to distribute to devices running 1.4.0 and 1.4.1.&lt;br /&gt;&lt;br /&gt;The problem is that if you use one of the new calls, your app won&apos;t even start on the currently shipping OS versions.  The system&apos;s loader will complain about a missing symbol like &quot;PDL_Init&quot;.  What we needed was a way to tell which library version we were using at runtime so apps could hardcode some values for the older devices while still calling the right APIs in the future when we release an OS version that has those calls.&lt;br /&gt;&lt;br /&gt;I pulled an idea out of my toolkit of things to help linkers work correctly, a concept called &quot;weak linking&quot;.  The idea is to tell the compiler and linker that you want to use a function, but it&apos;s OK if it doesn&apos;t actually exist when you link your program together.  In GCC, you do this by marking the function&apos;s prototype with &lt;tt&gt;__attribute__((weak))&lt;/tt&gt;.  At runtime, you check to see if that function is bound to NULL first before calling it, and if it is, you know that no definition was provided so you can do something else.&lt;br /&gt;&lt;br /&gt;I&apos;ve used this for statically-linked libraries in the past, as well as in shared libraries where the weak-linked symbol could be provided by the caller.  However, in this case, I wanted to weak-link with a symbol in a shared library so I could detect if it wasn&apos;t there.&lt;br /&gt;&lt;br /&gt;When I tried this out in a test application, I was surprised to see that if I weak linked PDL_Init, I&apos;d get a non-NULL value for it when run on a device with the older version of libpdl.so that didn&apos;t provide the symbol.  Using the __attribute__((weak)) would allow the app to startup, but I didn&apos;t get the behavior I wanted since a line like &lt;tt&gt;if (PDL_Init != NULL)&lt;/tt&gt; would always be true.  I&apos;d then call PDL_Init, the device would jump to a NULL address, and I&apos;d get a crash.&lt;br /&gt;&lt;br /&gt;What&apos;s going on?  The problem is that the address of PDL_Init wasn&apos;t NULL -- it was the address of the ELF jump table.  My code would jump into the PDL_Init stub, but since the stub wasn&apos;t bound to a symbol since there&apos;s no PDL_Init in the library, we&apos;d just jump to address 0.&lt;br /&gt;&lt;br /&gt;How do you fix this?  I thought about it for a while and was pursuing a complex code path where I&apos;d have the code use dlopen to open the libpdl.so library, then use dlsym to check and load the symbol.  In reading the dlsym man page, I found that instead of using a open library, you can pass the value RTLD_DEFAULT which tells dlsym to just search the libraries that are open.  With this knowledge, I was able to change the check from &lt;tt&gt;if (PDL_Init != NULL)&lt;/tt&gt; to be &lt;tt&gt;if (dlsym(RTLD_DEFAULT, &quot;PDL_Init&quot;) != NULL)&lt;/tt&gt; and things started working again.&lt;br /&gt;&lt;br /&gt;To summarize: __attribute__((weak)) does affect dynamic linking, but you need to use dlsym to check for a symbols existence because the weakly-linked function&apos;s name is bound to the ELF jump table, not to the final address.&lt;br /&gt;&lt;a name=&apos;cutid1-end&apos;&gt;&lt;/a&gt;</description>
  <comments>http://unwiredben.livejournal.com/297826.html</comments>
  <category>programming</category>
  <category>palm</category>
  <category>technology</category>
  <category>linux</category>
  <lj:mood>geeky</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/297567.html</guid>
  <pubDate>Fri, 09 Apr 2010 21:45:41 GMT</pubDate>
  <title>Comment Hack for appinfo.json</title>
  <link>http://unwiredben.livejournal.com/297567.html</link>
  <description>I&amp;nbsp;really like JSON. &amp;nbsp;It&apos;s easy to write, easy to parse, and more compact than XML, and it works great as a way to pass around method parameters and return values.&amp;nbsp; However, it has a big flaw -- there is no way to write a comment in a JSON&amp;nbsp;file.&amp;nbsp; The &lt;tt&gt;//&lt;/tt&gt; and &lt;tt&gt;/*&amp;nbsp;*/&lt;/tt&gt; syntax used by JavaScript isn&apos;t supported, so many JSON&amp;nbsp;parsers will reject files that have them.&lt;br /&gt;&lt;br /&gt;Every application on Palm webOS comes with an appinfo.json file that describes key information like it&apos;s title, where it&apos;s icon lives, and it&apos;s application ID.&amp;nbsp; For some samples I&apos;m doing, I&apos;d like to write some comments in appinfo.json so people know where to change the values for their application.&amp;nbsp; However, I&amp;nbsp;spotted a way out.&amp;nbsp; &lt;a href=&quot;http://developer.palm.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1748&amp;amp;Itemid=43&quot;&gt;Deep in our documentation&lt;/a&gt;, we note that this file can contain other JSON attributes beyond what we specify.&amp;nbsp; So, I realized that no one has to use those elements, and if you name them something ridiculous like &amp;quot;// c1&amp;quot;, they&apos;re unlikely to ever conflict with an application&apos;s use.&amp;nbsp; So now, I&amp;nbsp;can write things like&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;{
&amp;nbsp;&amp;nbsp; &amp;quot;// c1&amp;quot;: &amp;quot;The next attribute, id, defines the permanent ID for your program. Change it!&amp;quot;,
&amp;nbsp;&amp;nbsp; &amp;quot;id&amp;quot; :&amp;nbsp;&amp;quot;com.palmdts.example&amp;quot;,
&amp;nbsp;&amp;nbsp; ...
}&lt;/pre&gt;&lt;br /&gt;without invoking the wrath of the JSON&amp;nbsp;parsers.</description>
  <comments>http://unwiredben.livejournal.com/297567.html</comments>
  <category>json</category>
  <category>palm</category>
  <category>technology</category>
  <category>webos</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/297427.html</guid>
  <pubDate>Tue, 06 Apr 2010 20:13:32 GMT</pubDate>
  <title>Palm Blogging Moves to Official Site</title>
  <link>http://unwiredben.livejournal.com/297427.html</link>
  <description>So, I&amp;nbsp;had a bunch of fellow developer relations people basically jump me this morning, say they like what I&apos;ve been posting, but that it really should go on the official Palm developer blog.&amp;nbsp; I&apos;m cool with that, so effectively immediately, I&apos;ll be moving my Palm webOS-related posts over to &lt;a href=&quot;http://developer.palm.com/blog&quot;&gt;http://developer.palm.com/blog&lt;/a&gt;.&amp;nbsp; I&apos;m going to be reposting the first part of my series there, and we&apos;re getting the FAQ&amp;nbsp;that I&amp;nbsp;posted in part 2 turned into official Plug-In Development Kit documentation.&amp;nbsp; The true second part, the one that actually comes with code, should go up on Thursday -- I&apos;ve been really busy this week with a secret project that you all should learn about soon. :)</description>
  <comments>http://unwiredben.livejournal.com/297427.html</comments>
  <category>work</category>
  <category>palm</category>
  <category>pdk</category>
  <category>technology</category>
  <category>webos</category>
  <lj:mood>accomplished</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/297014.html</guid>
  <pubDate>Tue, 30 Mar 2010 21:21:11 GMT</pubDate>
  <title>Plugin Development Kit, Part 2: FAQs</title>
  <link>http://unwiredben.livejournal.com/297014.html</link>
  <description>Before I&amp;nbsp;jump into my sample code, there are some frequently asked questions about the current 1st beta of the Palm webOS&amp;nbsp;Plugin Development Kit (PDK) that I&amp;nbsp;wanted to collect here.&lt;br /&gt;&lt;br /&gt;Note:&amp;nbsp;this FAQ&amp;nbsp;is about the first release of the PDK.&amp;nbsp; This is not the final version of things that will ship on device.&lt;br /&gt;&lt;br /&gt;(Update 1:&amp;nbsp;clarified camera and microphone access to indicate that you can mix Mojo and PDK&amp;nbsp;to get access to images)&lt;br /&gt;&lt;br /&gt;(Update 2:&amp;nbsp;this FAQ&amp;nbsp;is now an &lt;a href=&quot;http://developer.palm.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=2049&amp;amp;Itemid=408&quot;&gt;official Technical FAQ &lt;/a&gt;and hosted at developer.palm.com.&amp;nbsp; Go &lt;a href=&quot;http://developer.palm.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=2049&amp;amp;Itemid=408&quot;&gt;there&lt;/a&gt; for the up-to-date version.)&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;&lt;strong&gt;Why does nothing happen when I&amp;nbsp;try to launch this PDK application on my device?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Did you run the pdk-device-install script to put the PDK libraries and system support code on your device?&amp;nbsp;&amp;nbsp;If you didn&apos;t, most PDK&amp;nbsp;apps will install but won&apos;t startup.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Can I&amp;nbsp;develop using the Palm webOS&amp;nbsp;Emulator?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Not at this time.&amp;nbsp; PDK&amp;nbsp;applications are compiled to ARM&amp;nbsp;code, while the emulator uses x86 code like your desktop machine.&amp;nbsp; We provide host libraries for Mac OS&amp;nbsp;X and Windows to test most of your PDK application on the desktop, but this doesn&apos;t include support for integrating a PDK component with a Mojo application or calling any system services.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Can I&amp;nbsp;access the microphone using the PDK?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Not at this time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Can I&amp;nbsp;access the camera using the PDK?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Not directly.&amp;nbsp; You can create a hybrid application using both the Mojo SDK and PDK where the Mojo part captures an image to the device storage, then it calls into the PDK&amp;nbsp;component to do further image processing.&amp;nbsp; However, you can&apos;t directly access the data from the camera without going through the Camera app.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why can&apos;t I&amp;nbsp;use the SDL_Image support for loading PNG&amp;nbsp;or JPEG&amp;nbsp;files?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This is a bug in the Mac version of the SDL&amp;nbsp;host libraries.&amp;nbsp; Loading of those images works on the device and in the Windows host.&amp;nbsp; This was a build error with the Mac host code and will be fixed in the next PDK&amp;nbsp;beta release.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why do I&amp;nbsp;get a linker error about &amp;quot;unresolved external symbol _WSACleanup@0&amp;quot; when I&amp;nbsp;build for Windows?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The sample project doesn&apos;t link with the Windows Sockets code from the Windows SDK.&amp;nbsp; Add WS2_32.Lib to your additional dependencies list.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I&amp;nbsp;get a bunch of errors about missing libraries when I&amp;nbsp;build the native version.&amp;nbsp; Is this OK?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Those are warnings about the linker being unable to resolve all of the shared libraries needed for the device build.&amp;nbsp; This is OK; we don&apos;t include all of the shared libraries so we can avoid unneeded dependencies on the version of webOS that&apos;s on the device.&amp;nbsp; There&apos;s no way to silence this warning with the version of GCC&amp;nbsp;that we use, although we&apos;re looking at modifying the local .so files shipped in the PDK in future releases to remove those dependencies.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Will installing OpenSSH&amp;nbsp;on my device through palm-device-installer leave open a security hole?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;While OpenSSH&amp;nbsp;listens to port 22 and the &amp;quot;root&amp;quot;&amp;nbsp;account has no password, your device is safe because the firewalls running on the device only allow connection to port 22 through the USB connection, not through WiFi or the carrier networks.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do I&amp;nbsp;handle the back gesture?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Look at PDL_types.h; you&apos;ll see that the back gesture sends key 27 (the Escape key), while the forward gesture sends key 229.&amp;nbsp; Use PDLK_GESTURE_BACK&amp;nbsp;and PDLK_GESTURE_FORWARD&amp;nbsp;in your code for clarity.&amp;nbsp; You&apos;ll get these in your application as SDL&amp;nbsp;key events.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why doesn&apos;t my application run on the Palm Pixi device?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Our Pixi support is very early in this revision of the PDK, but you should be able to run pdk-device-installer on a Pixi device and do some early testing.&amp;nbsp; Make sure your buildit script is using the settings for the Pixi, the default settings are for the Pre and use ARM&amp;nbsp;instructions that aren&apos;t available on that device.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Can I&amp;nbsp;use the standard C and C++&amp;nbsp;libraries?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Yes, they aren&apos;t listed explcitly in the documentation, but you can rely on the standard C library being available.&amp;nbsp; We ship GLibC 2.5 on the current release of webOS.&amp;nbsp; For C++, there may be an incompatibility issue between the CodeSourcery tools on Windows and the device libraries with this first release which can affect some C++&amp;nbsp;applications, and we&apos;re working on resolving this for a future PDK&amp;nbsp;release.&amp;nbsp; If you do use C++, make sure you use the arm-linux-gnueabi-g++ tool to link your application to ensure that the correct support libraries are included in the output binary.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do I&amp;nbsp;use Unicode strings in my PDK&amp;nbsp;app?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The C language has a easy notation for wide strings using a &amp;quot;L&amp;quot; prefix before the string to tell the compiler to use wide characters.&amp;nbsp; However, there&apos;s a type clash between the standard widths for Linux and the GNU&amp;nbsp;C&amp;nbsp;library versus Windows and SDL.&amp;nbsp; With GCC on Linux, if you use L&amp;quot;string&amp;quot; notation, you&apos;ll get 4-byte large characters since the default wchar_t size on Linux is 32-bits.&amp;nbsp; If you need 16-bit wide characters so you can call the SDL Unicode calls, you&apos;ll either have to convert at runtime or use the -fshort-wchar option to the compiled.&amp;nbsp; If you use the option, make sure you don&apos;t actually use any wchar_t types or calls, since the device&apos;s standard library remains set to 32-bit wchar_t.&amp;nbsp; The L&amp;quot;string&amp;quot; notation with Visual C++&amp;nbsp;on Windows will always give you 16-bit characters.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;If I register a method using PDL_RegisterMojoHandler, when will it get run?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Method handlers are called in a separate thread from the rest of your PDK&amp;nbsp;application.&amp;nbsp; That thread is started when you call PDL_MojoRegistrationComplete and it gets removed during the call to PDL_Quit when your application ends.&amp;nbsp; You need to use thread-safe variable access when sharing data with the main PDK&amp;nbsp;thread that&apos;s used to draw to the screen and handle SDL&amp;nbsp;events.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How do I&amp;nbsp;know when to quit?&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;Your application will receive a SDL_QUIT&amp;nbsp;event when the user has dismissed its card.&amp;nbsp; You shouldn&apos;t exit until you get this event.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;How do I&amp;nbsp;know when my application isn&apos;t in the foreground?&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;When your application is no longer the foreground card, you&apos;ll get a SDL_ACTIVEEVENT&amp;nbsp;event with the active.gain value set to 0.&amp;nbsp; When you&apos;re brought back to the front, you&apos;ll get the same event, but active.gain will be 1.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;In what order do I&amp;nbsp;call PDL_Quit and SDL_Quit when my application exits?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;First call PDL_Quit, then call SDL_Quit.&amp;nbsp; PDL_Quit may use SDL&amp;nbsp;code, so it needs to be shutdown before you shutdown the SDL system.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How should I&amp;nbsp;allocate my display window when using SDL?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;screen = SDL_SetVideoMode(0, 0, 0, 0);&lt;br /&gt;&lt;br /&gt;When you give it a value  of 0; SDL assumes the most optimal size and pixel depth for your  purpose.  This will work on Pixi and the Pre.  On the desktop however;  you will see your app go full-screen which is a little annoying, so you may want to #ifdef this call to explicitly request a 480x320 or 400x320 window for host code.  You  can retrieve the width/height from the SDL surface that is created to modify your applications behavior for the different sizes.&amp;nbsp; (Thanks to ChrisT from Palm for this explanation!)&lt;a name=&apos;cutid1-end&apos;&gt;&lt;/a&gt;</description>
  <comments>http://unwiredben.livejournal.com/297014.html</comments>
  <category>work</category>
  <category>palm</category>
  <category>pdk</category>
  <category>technology</category>
  <category>webos</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/296927.html</guid>
  <pubDate>Fri, 26 Mar 2010 16:20:21 GMT</pubDate>
  <title>My Merit Badges</title>
  <link>http://unwiredben.livejournal.com/296927.html</link>
  <description>&lt;img src=&quot;http://farm3.static.flickr.com/2780/4465180332_4014671898.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;br /&gt;In going through some old clothes, I recently found my sashes and neckerchiefs from my Boy Scout days. I was in Varnell&apos;s Troop 67 from the time I graduated from Webelos to the middle of high school.  I made Eagle when I was 14, about as fast as was possible, mostly through the constant prodding and help of my dad. My Eagle project was renovating a room at the old Varnell school to be the town&apos;s first library; the group cleaned out the room, redid the floor, put up shelves, and got the initial collection of donated books together.&lt;br /&gt;&lt;br /&gt;One of the sashes was my merit badge sash. To earn the various ranks in Scouting, you have to fulfill some rank-dependent requirements, but you also have to earn a certain number of merit badges. Some ranks have specific badges you need, while others are based on your own interests.&lt;br /&gt;&lt;br /&gt;Here&apos;s my list, first the ones required for Eagle:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Camping&lt;/li&gt;&lt;li&gt;Citizenship in the Community&lt;/li&gt;&lt;li&gt;Citizenship in the Country&lt;/li&gt;&lt;li&gt;Citizenship in the World&lt;/li&gt;&lt;li&gt;Communication&lt;/li&gt;&lt;li&gt;Emergency Preparedness&lt;/li&gt;&lt;li&gt;First Aid&lt;/li&gt;&lt;li&gt;Personal Management&lt;/li&gt;&lt;li&gt;Swimming&lt;/li&gt;&lt;/ul&gt;These were the elective badges that I&amp;nbsp;needed to get to 21 earned for Eagle:&lt;ul&gt;&lt;li&gt;Environmental Science&lt;/li&gt;&lt;li&gt;Safety&lt;/li&gt;&lt;li&gt;Fishing&lt;/li&gt;&lt;li&gt;Scholarship&lt;/li&gt;&lt;li&gt;Firemanship (now called Fire Safety)&lt;/li&gt;&lt;li&gt;Coin Collecting&lt;/li&gt;&lt;li&gt;Fingerprinting&lt;/li&gt;&lt;li&gt;Computers&lt;/li&gt;&lt;li&gt;Basketry&lt;/li&gt;&lt;li&gt;Electricity&lt;/li&gt;&lt;li&gt;Public Health&lt;/li&gt;&lt;li&gt;Public Speaking&lt;/li&gt;&lt;/ul&gt;I remember getting a lot of the Eagle-required badges while at Camp Sidney Dew the one summer I went to Scout camp.  That&apos;s where most of the requirements for Basketry, Camping, Swimming, and Safety were done.  Fishing was something my dad loved to do, so it was a natural.  I also had a coin collection with him, so getting that badge was easy.  I think we had a detective come to the troop and lead a fingerprinting workshop and the same thing with a local fireman.  The public health badge was probably due to my aunt Kaye who worked as a blood technician, and public speaking was associated with my work on the debate team in high school.&lt;br /&gt;&lt;br /&gt;In looking back on this list, I&apos;m actually quite surprised how relevant a lot of this was.  I don&apos;t really like camping that much, but I apparently did a bit of it then.  I recently found a stash of electronics part I had when I was in high school; I didn&apos;t do much with them then, but the books I picked up are proving useful now that I&apos;m actually building gadgets and PC boards.&lt;br /&gt;&lt;br /&gt;Scouting was a big influence on my life, and even though it has had it&apos;s share of issues over the years, I hope one day I&apos;ll be able to be active in it again with my own kids.</description>
  <comments>http://unwiredben.livejournal.com/296927.html</comments>
  <category>personal history</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/296495.html</guid>
  <pubDate>Fri, 26 Mar 2010 14:56:56 GMT</pubDate>
  <title>webOS and the Plugin Development Kit, Part 1</title>
  <link>http://unwiredben.livejournal.com/296495.html</link>
  <description>So, I&apos;m finishing my fourth week with the webOS&amp;nbsp;developer relations team.&amp;nbsp; It&apos;s been a really fun and busy ride,&amp;nbsp; I&apos;ve been asserting my presence on the developer forums and many questions have been answered.&lt;br /&gt;&lt;br /&gt;However, I&amp;nbsp;really need to be writing and making sample code.&amp;nbsp; This will help avoid questions and help a lot of people.&amp;nbsp; I&apos;m going to be doing both of those here, with the final product getting polished and put up on the Palm Developer Site eventually.&amp;nbsp; Consider these posts a working draft.&lt;br /&gt;&lt;br /&gt;Our Plugin Development Kit (PDK from here onward) is a set of tools and libraries for making native applications on webOS.&amp;nbsp; Most apps now are written like websites; they have HTML, JavaScript, CSS, and images, and they run inside the special version of WebKit we call LunaSysManager.&amp;nbsp; Native apps, in contrast, are actual compiled code.&amp;nbsp; They&apos;re originally written in C or C++, compiled down to ARM&amp;nbsp;machine language, and run directly on the device.&amp;nbsp; WebKit is still there, but it mostly stays out of the way and just gives the PDK&amp;nbsp;app a window to draw in.&lt;br /&gt;&lt;br /&gt;We&apos;ve got three APIs that are used for PDK apps.&amp;nbsp; The first is SDL (Simple Directmedia Library).&amp;nbsp; Our current release is based on SDL&amp;nbsp;1.2.&amp;nbsp; This API&amp;nbsp;gives you drawing surfaces, 2D primitives, image loading, fonts, events, timers, network access, accelerometer (via joystick APIs), touch screen (via mouse APIs).&amp;nbsp; It&apos;s well described at the &lt;a href=&quot;http://www.libsdl.org/&quot;&gt;libsdl.org website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The second API is PDL&amp;nbsp;(Palm Direct Library, perhaps?).&amp;nbsp; This gives access to some system services like screen orientation, the location system and the device ID number.&amp;nbsp; It also has calls that allow your plugin to register methods that can be called from JavaScript.&amp;nbsp; &lt;a href=&quot;http://developer.palm.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=1990&amp;amp;Itemid=331&quot;&gt;The reference for this is online&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The final API&amp;nbsp;is Open GL&amp;nbsp;ES.&amp;nbsp; We support&amp;nbsp;both version 1.1 and 2.0, although not both in the same program.&amp;nbsp; Open&amp;nbsp;GL&amp;nbsp;ES&amp;nbsp;1.1 has a fixed-function pipeline and works well for a lot of 2D&amp;nbsp;and 3D&amp;nbsp;applications, while ES&amp;nbsp;2.0 uses a programmable shader system which is more complicated for simple programs, but very powerful in its ability to shift vertex transformation and shading into the GPU.&amp;nbsp; I&apos;m still learning the Open GL&amp;nbsp;way, but I&amp;nbsp;hope to blog about my experience getting some GL&amp;nbsp;ES 2.0 sample code running on the device.&lt;br /&gt;&lt;br /&gt;Next time, we explore some basic SDL-based sample code.</description>
  <comments>http://unwiredben.livejournal.com/296495.html</comments>
  <category>work</category>
  <category>palm</category>
  <category>pdk</category>
  <category>technology</category>
  <category>webos</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/296420.html</guid>
  <pubDate>Thu, 25 Feb 2010 14:53:45 GMT</pubDate>
  <title>Heading Back to Palm</title>
  <link>http://unwiredben.livejournal.com/296420.html</link>
  <description>&lt;div style=&quot;float: right; margin-left: 10px; margin-bottom: 10px;&quot;&gt; &lt;a href=&quot;http://www.flickr.com/photos/unwiredben/4386744865/&quot; title=&quot;photo sharing&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2692/4386744865_a461ff274b_m.jpg&quot; alt=&quot;&quot; style=&quot;border: solid 2px #000000;&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style=&quot;font-size: 0.9em; margin-top: 0px;&quot;&gt; &lt;/span&gt;&lt;/div&gt;If you&apos;ve not seen my Twitter feed, you may not know that on Monday, I&apos;m returning to a position with Palm.  I&apos;m heading back to be part of their Developer Relations group, reporting into the dynamic team of Ben and Dion of &lt;a href=&quot;http://ajaxian.com/&quot;&gt;ajaxian&lt;/a&gt; fame that Palm brought in last summer to shake things up with webOS.&lt;br /&gt;&lt;br /&gt;It was a hard decision to leave Mozilla; they&apos;ve been very good to me over the last year, and I feel pretty happy about the 1.0 release of Firefox for Maemo (aka Fennec) that came out in January.  I&apos;ll miss the fun chats on IRC and the visits to their offices in Toronto and Mountain View.&lt;br /&gt;&lt;br /&gt;However, in the last year I found that my real passion lies in communication and teaching.  I&apos;d had a blast with my classes at NYC Resistor, and I&apos;ve loved working with developers in past positions at Metrowerks, PalmSource, and Palm.  Being the expert in an online forum suits me very well.  With that background, I&apos;m looking forward to evangelizing the webOS platform, and I hope that I&apos;ll be able to assist some people in writing great native apps and plugins on the Palm Pre and Pixi phones.&lt;br /&gt;&lt;br /&gt;Wish me luck!  I&apos;ll be posting details on my new Palm webOS developer blog as soon as it is ready to go.&lt;br clear=&quot;all&quot; /&gt;</description>
  <comments>http://unwiredben.livejournal.com/296420.html</comments>
  <category>work</category>
  <category>palm</category>
  <category>mozilla</category>
  <lj:security>public</lj:security>
  <lj:reply-count>6</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/296018.html</guid>
  <pubDate>Thu, 11 Feb 2010 00:36:40 GMT</pubDate>
  <title>Quick note on native Android debugging</title>
  <link>http://unwiredben.livejournal.com/296018.html</link>
  <description>This is for reference by future programmers using Google to find out something on this topic.&lt;br /&gt;&lt;br /&gt;When using gdbserver with the Android 2.0.1 emulator to debug native command line applications, you can get into a situation where it won&apos;t stop the child application, instead letting it run to its death before setting up the debug connection to gdb.&amp;nbsp; I&amp;nbsp;wasn&apos;t able to figure out why this was happening, but rebooting the emulator allowed for the correct operation again.&amp;nbsp; When you start getting communication errors from gdb, a reboot is a good call as other things may be hosed.</description>
  <comments>http://unwiredben.livejournal.com/296018.html</comments>
  <category>work</category>
  <category>mozilla</category>
  <category>android</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/295848.html</guid>
  <pubDate>Tue, 26 Jan 2010 18:12:22 GMT</pubDate>
  <title>Delicious Spicy Spaghetti Squash</title>
  <link>http://unwiredben.livejournal.com/295848.html</link>
  <description>The first time I&amp;nbsp;had spaghetti squash was as a kid; it was mushy and too sweet and just didn&apos;t work for me.&lt;br /&gt;&lt;br /&gt;Fortunately, Annelies reintroduced it to my life a couple of years ago, and I&amp;nbsp;attempted my own version last night.&amp;nbsp; It was really simple and very tasty.&amp;nbsp; You can make it in about fifteen minutes.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Mince garlic.&amp;nbsp; Take a few cloves of garlic, chop into little pits, and fry up those bits on medium heat in a skillet in olive oil.&amp;nbsp; You want little golden crisp pieces, about the same size and crunch as vegan bac&apos;n bits.&lt;/li&gt;&lt;li&gt;Stab the squash.&amp;nbsp; Take a knife and poke about sixteen slits in the squash.&amp;nbsp; I&amp;nbsp;did four rows of four.&lt;/li&gt;&lt;li&gt;Microwave the squash on high for four minutes, turn over, go for four minutes again.&lt;/li&gt;&lt;li&gt;open a can of Rotel tomatoes.&amp;nbsp; You can pick your variety depending on your spice level.&amp;nbsp; If you don&apos;t like spicy, go for diced tomatoes and basil.&lt;/li&gt;&lt;li&gt;Cut the squash in half lengthwise.&amp;nbsp; Use a fork to scoop out the seeds and throw those away.&amp;nbsp; Then use the fork to remove the squash flesh.&amp;nbsp; It will already be stringy, and if you use the fork to scrape out the shell, you&apos;ll have plenty of the squash threads.&lt;/li&gt;&lt;li&gt;Put a portion of squash in a bowl, apply black pepper, salt, Rotel, and some of the garlic bits.&amp;nbsp; Put this back in the microwave for a minute to heat up the sauce.&lt;/li&gt;&lt;li&gt;Enjoy!&amp;nbsp; You can add some grated cheese too to make it more savory.&lt;/li&gt;&lt;/ol&gt;I&amp;nbsp;also tried this with some homemade pesto, but I&amp;nbsp;found that creaminess didn&apos;t go as well with the slightly sweet squash as the tomato mixture.&lt;br /&gt;&lt;br /&gt;Note:&amp;nbsp;using the microwave is key.&amp;nbsp; It allows the squash to cook nicely inside the shell without getting mushy and gives it a great texture.&amp;nbsp; I&amp;nbsp;think the time I&amp;nbsp;had it before where I&amp;nbsp;didn&apos;t like it was because the squash was cut open and cooked on a stove like noodles.</description>
  <comments>http://unwiredben.livejournal.com/295848.html</comments>
  <category>projects</category>
  <category>food</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/295504.html</guid>
  <pubDate>Thu, 14 Jan 2010 00:11:17 GMT</pubDate>
  <title>More Chumby Exploration</title>
  <link>http://unwiredben.livejournal.com/295504.html</link>
  <description>So, the Chumby One has been my main hacking activity for the last few weeks.  Here are some of the things I&apos;ve done:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;made a viewer for items stored in a drop.io &amp;quot;drop&amp;quot; with my fellow NYC Resistor hacker Eric Skiff.  This ended up winning the drop.io hackathon.&amp;nbsp; This is now documented at &lt;a href=&quot;http://code.google.com/p/chumby-dropio/&quot;&gt;http://code.google.com/p/chumby-dropio/&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;made a SMS powered doorbell for NYC Resistor.  This is a mashup of TextMarks (used to receive a text message with the payload &amp;quot;NYCRDOOR R&amp;quot;, Google App Engine (running a couple of Python scripts that implement a simple counter), and a Perl script running on the Chumby (this pings the App Engine scripts looking for a counter change).  When it sees the counter change, it plays a doorbell sound quite loudly.&lt;/li&gt;&lt;li&gt;got a audio monitoring script running on the Chumby&apos;s web server.  You can access this URL from VLC or some other streaming client and listen to what ever is happening near the device.&amp;nbsp; Details at &lt;a href=&quot;http://forum.chumby.com/viewtopic.php?pid=26321#p26321&quot;&gt;http://forum.chumby.com/viewtopic.php?pid=26321#p26321&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;made a Chumby widget to show the password-protected webcam inside the NYC Resistor space.  This required making a proxy on Google App Engine as there&apos;s no way in Flash Lite to specify the Authorization header needed to pull down the picture through the normal loadMovie call.&lt;/li&gt;&lt;li&gt;make some simple one frame Chumby widgets using the free SWF Tools.  I used this to make a NYC Resistor logo widget that&apos;s played from time to time on the device in the space.&lt;/li&gt;&lt;li&gt;mount my music volume over NFS so I can SSH into the Chumby and play music files from the command line. Details at &lt;a href=&quot;http://forum.chumby.com/viewtopic.php?pid=26346#p26346&quot;&gt;http://forum.chumby.com/viewtopic.php?pid=26346#p26346&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;built my own copies of busybox and elinks that give me updated command line utilities and a text-mode web browser on the device. Those are available online at &lt;a href=&quot;http://drop.io/chumby_utils&quot;&gt;http://drop.io/chumby_utils&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;What&apos;s next?  Get a better text editor than the busybox version of vi onto the device.  Make a on-screen clock based on photographs of the MakerBot Watch.  Finish getting DOSBox running on the device.  Make a Twitter feed reader that lets you put QR Codes on the screen for the links in the messages so you can read the linked page on your smartphone.</description>
  <comments>http://unwiredben.livejournal.com/295504.html</comments>
  <category>chumby</category>
  <category>projects</category>
  <category>nyc resistor</category>
  <category>technology</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/295396.html</guid>
  <pubDate>Wed, 30 Dec 2009 15:27:37 GMT</pubDate>
  <title>Upcoming Chumby Class</title>
  <link>http://unwiredben.livejournal.com/295396.html</link>
  <description>&lt;img hspace=&quot;10&quot; align=&quot;right&quot; src=&quot;http://farm3.static.flickr.com/2713/4228648520_b888352fce_m.jpg&quot; alt=&quot;&quot; /&gt;I&apos;ve been playing a lot with the Chumby One I got in December... I like it much more than the original Chumby, and it sits nicely on my desk playing widgets under my monitor.  It also played a huge role in helping me and my friend Eric Skiff win first place in the drop.io hackathon -- our project was &lt;a src=&quot;http://drop.io/chumbyviewer/&quot;&gt;a widget to show photos and voicemails from a user&apos;s &amp;quot;drop&amp;quot;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, I&apos;m taking all this knowledge and giving it back in the form of a class at NYC Resistor in February.  It&apos;s called &amp;quot;Hacking the Chumby Device&amp;quot;, and it&apos;s two hours of hands-on Linux and Flash hacking goodness.  If you want, you can sign up at http://hackingthechumby.eventbrite.com and if you use code &amp;quot;BENCHUMBY&amp;quot;, you&apos;ll get $5 off.</description>
  <comments>http://unwiredben.livejournal.com/295396.html</comments>
  <category>chumby</category>
  <category>projects</category>
  <category>nyc resistor</category>
  <category>technology</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/294990.html</guid>
  <pubDate>Tue, 10 Nov 2009 21:00:39 GMT</pubDate>
  <title>Our Wedding Playlist</title>
  <link>http://unwiredben.livejournal.com/294990.html</link>
  <description>A few people asked about the playlist we used at the wedding reception... I just grabbed the file list off my music player and have posted it under the cut.  We had it running on shuffle, so I&apos;ve got no idea what the order was.&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;8 1/2 Souvenirs - Souvonica&lt;/li&gt;&lt;li&gt;Basia - An Olive Tree&lt;/li&gt;&lt;li&gt;Basia - Miles Away&lt;/li&gt;&lt;li&gt;Beth Orton - Lean on Me&lt;/li&gt;&lt;li&gt;Beth Orton - Touch Me With Your Love&lt;/li&gt;&lt;li&gt;Bettie Seveert - Wide Eyed Fools&lt;/li&gt;&lt;li&gt;Chairlift - Bruises&lt;/li&gt;&lt;li&gt;Cure - Love Song&lt;/li&gt;&lt;li&gt;Dido - Thankyou&lt;/li&gt;&lt;li&gt;Ditty Bops - Sister Kate&lt;/li&gt;&lt;li&gt;Ditty Bops - Walk or Ride&lt;/li&gt;&lt;li&gt;Fiest - I Feel It All&lt;/li&gt;&lt;li&gt;Flight of the Conchords - Foux du Fafa&lt;/li&gt;&lt;li&gt;Frou Frou - Let Go&lt;/li&gt;&lt;li&gt;Ingrid Michaelson - The Way I Am&lt;/li&gt;&lt;li&gt;Iron &amp;amp; Wine - Such Great Heights&lt;/li&gt;&lt;li&gt;Laura Veirs - Galaxies&lt;/li&gt;&lt;li&gt;Laura Veirs - Wildwood Flower&lt;/li&gt;&lt;li&gt;Les Chauds Lapins - Il m&apos;a vue nue&lt;/li&gt;&lt;li&gt;Lisa Loeb - Truthfully&lt;/li&gt;&lt;li&gt;Loom - Song For the Winter Sun&lt;/li&gt;&lt;li&gt;Lush - Sweetness and Light&lt;/li&gt;&lt;li&gt;Moldy Peaches - Anyone Else But You&lt;/li&gt;&lt;li&gt;New Pornographers - Go Places&lt;/li&gt;&lt;li&gt;New Pornographers - Myriad Harbour&lt;/li&gt;&lt;li&gt;New Pornographers - Use It&lt;/li&gt;&lt;li&gt;PJ Harvey - You Said Something&lt;/li&gt;&lt;li&gt;Pink Martini - Let&apos;s Never Stop Falling in Love&lt;/li&gt;&lt;li&gt;Pixies - Here Comes Your Man&lt;/li&gt;&lt;li&gt;Pylon - Crazy&lt;/li&gt;&lt;li&gt;R.E.M. - Finest worksong&lt;/li&gt;&lt;li&gt;R.E.M. - Nightswimming&lt;/li&gt;&lt;li&gt;R.E.M. - Texarkana&lt;/li&gt;&lt;li&gt;Regina Spektor - Eet&lt;/li&gt;&lt;li&gt;Regina Spektor - Folding Chair&lt;/li&gt;&lt;li&gt;Regina Spektor - On The Radio&lt;/li&gt;&lt;li&gt;Sam Phillips - How To Dream&lt;/li&gt;&lt;li&gt;Shawn Colvin - Object of my Affection&lt;/li&gt;&lt;li&gt;She &amp;amp; Him - You Really Got a Hold on Me&lt;/li&gt;&lt;li&gt;Sleater-Kinney - Dance Song 97&lt;/li&gt;&lt;li&gt;Sleater-Kinney - You&apos;re No Rock &apos;n Roll Fun&lt;/li&gt;&lt;li&gt;Sundays - Love&lt;/li&gt;&lt;li&gt;Suzanne Vega - No Cheap Thrill&lt;/li&gt;&lt;li&gt;Talking Heads - (Nothing But) Flowers&lt;/li&gt;&lt;li&gt;Tegan and Sara - Take Me Anywhere&lt;/li&gt;&lt;li&gt;The Arcade Fire - Neighborhood 2 Laika&lt;/li&gt;&lt;li&gt;They Might Be Giants - Birdhouse in Your Soul&lt;/li&gt;&lt;li&gt;They Might Be Giants - Jessica&lt;/li&gt;&lt;li&gt;They Might Be Giants - New York City&lt;/li&gt;&lt;li&gt;They Might Be Giants - Why Does the Sun Shine?&lt;/li&gt;&lt;li&gt;Thomas Dolby - Silk Pyjamas&lt;/li&gt;&lt;li&gt;Venus Hum - Hummingbirds&lt;/li&gt;&lt;li&gt;Yeah Yeah Yeahs - Gold Lion&lt;/li&gt;&lt;/ul&gt;&lt;a name=&apos;cutid1-end&apos;&gt;&lt;/a&gt;</description>
  <comments>http://unwiredben.livejournal.com/294990.html</comments>
  <category>wedding</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/294782.html</guid>
  <pubDate>Fri, 16 Oct 2009 20:10:54 GMT</pubDate>
  <title>Laser-Cut Mozilla Fennec Logo</title>
  <link>http://unwiredben.livejournal.com/294782.html</link>
  <description>&lt;div style=&quot;float: right; margin-left: 10px; margin-bottom: 10px;&quot;&gt; &lt;a href=&quot;http://www.flickr.com/photos/unwiredben/4008950781/&quot; title=&quot;photo sharing&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3508/4008950781_b131bb485c_m.jpg&quot; alt=&quot;&quot; style=&quot;border: solid 2px #000000;&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style=&quot;font-size: 0.9em; margin-top: 0px;&quot;&gt; &lt;/span&gt;&lt;/div&gt;I&apos;ve been wanting to make something with the Fennec logo for a while, so after getting some experience with the NYC Resistor laser cutter for another project, I decided to try my hand at making a laser-cut Fennec.  This one took about four minutes of Epilog laser time, most of it spent in the etching of the details.  I imported the logo from a PDF file into Corel Draw, edited the internal vectors so there were no vectors that would cause cutting, then made a new outline around everything that I marked as a cut line.  The material is opaque blue acrylic, but for a final run of these, I&apos;ll use a very nice transparent blue that we&apos;ve got in our stockroom.&lt;br clear=&quot;all&quot; /&gt;</description>
  <comments>http://unwiredben.livejournal.com/294782.html</comments>
  <category>projects</category>
  <category>photos</category>
  <category>nyc resistor</category>
  <category>mozilla</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/294559.html</guid>
  <pubDate>Tue, 13 Oct 2009 22:23:52 GMT</pubDate>
  <title>Upcoming Classes at NYC Resistor!</title>
  <link>http://unwiredben.livejournal.com/294559.html</link>
  <description>Just a reminder to you all that we&apos;ve got some great classes coming up at NYC Resistor.&lt;br /&gt; &lt;br /&gt; First, this Saturday, Raphael is teaching about the wonders of the Joule Thief! &amp;nbsp;It&apos;s a class about how to pull every bit of current possible out of little batteries. If you want to run something for a long time, check this out. &amp;nbsp;Details at&lt;a href=&quot;http://joulethief.eventbrite.com/&quot; target=&quot;_blank&quot;&gt; http://joulethief.eventbrite.&lt;wbr&gt;&lt;/wbr&gt;com/&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt; On Sunday, Liz and Ryan are leading an Arduino workshop where you get to solder up a Freeduino kit and then make it do amazing things. &amp;nbsp;If you want to get your hands dirty, this is the class to take. &amp;nbsp;There are just a few slots left for this one. &lt;a href=&quot;http://arduino101.eventbrite.com/&quot; target=&quot;_blank&quot;&gt;http://arduino101.eventbrite.&lt;wbr&gt;&lt;/wbr&gt;com/&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; On Sunday, November the 8th, Chris is teaching &amp;quot;CPUs 0b1100101: Intro to computer processors&amp;quot;. &amp;nbsp;We&apos;ve been talking about it here on the list -- it&apos;s all about computer architecture and how those chips that power your computers and devices work. &lt;a href=&quot;http://cpus.eventbrite.com/&quot; target=&quot;_blank&quot;&gt;http://cpus.eventbrite.com/&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; I&apos;m very excited about the Build Your Own Retrocomputer class on November 12th. &amp;nbsp;Vince Briel is coming in from afar to lead a session where you can build one of his kits, including the Replica 1, a clone of the original Apple I. &amp;nbsp;It&apos;s way cooler than having an iPhone. There also will be a bit of an intro on the Parallax Propeller chip that&apos;s used in both the PockeTerm and Replica 1 included. &amp;nbsp;Details at&lt;a href=&quot;http://retrocomputer.eventbrite.com/&quot; target=&quot;_blank&quot;&gt; http://retrocomputer.&lt;wbr&gt;&lt;/wbr&gt;eventbrite.com/&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt; Finally, I&apos;m teaching my popular Webduino class again on November 22nd, just before Thanksgiving. &amp;nbsp;Won&apos;t time with your family go even faster when you&apos;ve got an Arduino acting as a webserver in your home? Come to the class and find out how you can make it happen. &amp;nbsp;It&apos;s online at &lt;a href=&quot;http://webduino.eventbrite.com/&quot; target=&quot;_blank&quot;&gt;http://webduino.eventbrite.&lt;wbr&gt;&lt;/wbr&gt;com/&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt; These classes are fun, and they help keep NYC Resistor alive and in our great space in downtown Brooklyn. &amp;nbsp;Come down and learn.</description>
  <comments>http://unwiredben.livejournal.com/294559.html</comments>
  <category>new york</category>
  <category>electronics</category>
  <category>nyc resistor</category>
  <category>arduino</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/294283.html</guid>
  <pubDate>Fri, 21 Aug 2009 20:54:30 GMT</pubDate>
  <title>Webduino 1.3 update</title>
  <link>http://unwiredben.livejournal.com/294283.html</link>
  <description>(Update:&amp;nbsp;version 1.3.1 is now up due to a nasty bug found over the weekend.&amp;nbsp; I&amp;nbsp;didn&apos;t test as well as I&amp;nbsp;should have.)&lt;br /&gt;&lt;br /&gt;I&apos;ve updated my&amp;nbsp;Webduino web server library to version 1.3.&amp;nbsp; This was prompted by a discussion over on arduino.cc where a user was having problems communicating with the server from his cell phone.&amp;nbsp; I looked at the &amp;quot;read a new character from the network&amp;quot;&amp;nbsp;logic and realized that a slow connection could let the Arduino think the client had finished its request when it really was just waiting on a new packet from the sender.&lt;br /&gt;&lt;br /&gt;When I&amp;nbsp;fixed that, I&amp;nbsp;ran into a new issue.&amp;nbsp; Modern HTTP&amp;nbsp;clients will usually make a request in &amp;quot;keep-alive&amp;quot; mode.&amp;nbsp; This means they don&apos;t close the socket when the finish asking the server for data, but instead keep it alive in case they want to send more requests.&amp;nbsp; So, to determine where I was done reading POST data, I needed to look at the Content-Length header passed with the POST and kill the connection after reading that many bytes.&amp;nbsp; Before, this wasn&apos;t a problem, as I&apos;d just assume the connection was dropped when I didn&apos;t have any new data coming in from the client.&lt;br /&gt;&lt;br /&gt;These fixes are in v1.3, along with some code you can turn on to debug your server&apos;s responses&amp;nbsp;(it does slow things down a bit because the serial output code doesn&apos;t run in the background) and a fix for a possible security hole in parsing POST requests.&lt;br /&gt;&lt;br /&gt;If you&apos;re into it, get the new code from &lt;a href=&apos;http://webduino.googlecode.com&apos;&gt;http://webduino.googlecode.com&lt;/a&gt;.</description>
  <comments>http://unwiredben.livejournal.com/294283.html</comments>
  <category>webduino</category>
  <category>projects</category>
  <category>technology</category>
  <category>arduino</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/293971.html</guid>
  <pubDate>Fri, 07 Aug 2009 17:11:04 GMT</pubDate>
  <title>Translation Party Redneck</title>
  <link>http://unwiredben.livejournal.com/293971.html</link>
  <description>Check out &lt;a href=&quot;http://translationparty.com&quot;&gt;http://translationparty.com&lt;/a&gt; -- they run phrases through Google&apos;s translation service from Japanese to English and back until it gets the same text out of it.  Depending on what you start with, it can be quite funny.  Here&apos;s the translations of Jeff Foxworthy&apos;s classic punchline:&lt;ol&gt;&lt;li&gt;You might be a redneck.&lt;/li&gt;&lt;li&gt;あなたは偏見を持った可能性があります。&lt;/li&gt;&lt;li&gt;You may be prejudiced.&lt;/li&gt;&lt;li&gt;を害することはできない。&lt;/li&gt;&lt;li&gt;Not to harm.&lt;/li&gt;&lt;li&gt;害はない。&lt;/li&gt;&lt;li&gt;There is no harm.&lt;/li&gt;&lt;li&gt;害がないです。&lt;/li&gt;&lt;li&gt;Is no harm.&lt;/li&gt;&lt;li&gt;何ら問題はない。&lt;/li&gt;&lt;li&gt;There is no any problem.&lt;/li&gt;&lt;li&gt;何の問題もないです。&lt;/li&gt;&lt;li&gt;I have no problem.&lt;/li&gt;&lt;li&gt;私は問題を抱えている。&lt;/li&gt;&lt;li&gt;I have a problem.&lt;/li&gt;&lt;li&gt;(then it loops -- we&apos;ve reached equilibrium)&lt;/li&gt;&lt;/ol&gt;Other phrases that elicited chuckles from me include &amp;quot;Where would you like to go on our first date?&amp;quot;, &amp;quot;Come here and give Grandma some sugar.&amp;quot;, and Darth Vader&apos;s line &amp;quot;I find your lack of faith disturbing.&amp;quot; which ends with &amp;quot;We need to worry&amp;quot;.&lt;br /&gt;</description>
  <comments>http://unwiredben.livejournal.com/293971.html</comments>
  <category>weird</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/293797.html</guid>
  <pubDate>Fri, 31 Jul 2009 20:02:27 GMT</pubDate>
  <title>Panning in Mozilla Fennec and IFRAMEs</title>
  <link>http://unwiredben.livejournal.com/293797.html</link>
  <description>On the desktop, scrolling a page involves changing the page&apos;s scroll position.&amp;nbsp; This uses OS-widgets like scrollbars -- the OS&amp;nbsp;will copy part of the page to the new position on screen and ask the browser to draw the part that&apos;s exposed.&lt;br /&gt;&lt;br /&gt;On Fennec, we instead have an off-screen browser instance.&amp;nbsp; We ask it to render parts of the page into a large canvas element that we reposition as the user drags.&amp;nbsp; This canvas is larger than the visible area, so usually a pan won&apos;t show areas beyond the canvas.&amp;nbsp; When the pan is over, we reposition things and redraw so the next pan can proceed as normal.&lt;br /&gt;&lt;br /&gt;This has been the source of a lot of bugs.&amp;nbsp; It&apos;s been fairly easy through kinetic scrolling and zooming to get the browser into a situation where it didn&apos;t fix up the canvas properly or start drawing again, letting the checkerboard or gray background show through.&amp;nbsp; In severe cases, you can get the whole screen to be checkerboard, which effectively hangs the browser as you can&apos;t pan back to any of the controls.&lt;br /&gt;&lt;br /&gt;Recently, one of our summer interns, Roy, has been working with Stuart on a new system to deal with these problems called the Tile Cache.&amp;nbsp; Rather than have one giant canvas, we now have a lot of smaller canvases that we draw into as needed.&amp;nbsp; Tiles can be moved around by the cache so there&apos;s always a cloud of them around the ones visible on screen.&amp;nbsp; It seems to make panning a lot faster, but it&apos;s required a lot of changes to input handling code and user interface code, so it&apos;s not yet landed in our main Fennec development trunk.&lt;br /&gt;&lt;br /&gt;While this has been happening, I&apos;ve been working on a patch to support panning of IFRAME and FRAMESET content.&amp;nbsp; Unfortunately, IFRAME&amp;nbsp;panning is going to be a bit slower than page panning, as we effectively just change the scroll position of the embedded frame, which then causes a lot of the page to be invalidated and redrawn.&amp;nbsp; There are some more complicated techniques that could be explorer for avoiding the whole-area invalidation, but they probably won&apos;t be done for the 1.0 release.&lt;br /&gt;&lt;br /&gt;To get IFRAME panning to work, when you start a drag, we have to dig into the page content and see if your finger has touched a frame element on the screen.&amp;nbsp; If so, we scroll that element based on the finger movement. &amp;nbsp;If you get to the edge, we then move its parent; this is needed to prevent you getting into a situation where you can&apos;t pan over to the controls because you zoomed into a IFRAME&apos;s area.&amp;nbsp; One popular site where the whole page is an IFRAME&amp;nbsp;is Google Mail, so without the overflow movement, it would be easy to get stuck.&lt;br /&gt;&lt;br /&gt;With luck and a lot of code reviews, all of this should land in time for the third beta of Fennec for the Maemo platform.&amp;nbsp; I&amp;nbsp;think it wll be a much better Fennec experience, and with IFRAME&amp;nbsp;scrolling, we&apos;ll do something the other mobile browsers like Safari on the iPhone don&apos;t support.</description>
  <comments>http://unwiredben.livejournal.com/293797.html</comments>
  <category>mozilla</category>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/293424.html</guid>
  <pubDate>Wed, 29 Jul 2009 01:50:20 GMT</pubDate>
  <title>Great Arduino-powered sign at Hacklab.to in Toronto</title>
  <link>http://unwiredben.livejournal.com/293424.html</link>
  <description>&lt;div style=&quot;float: right; margin-left: 10px; margin-bottom: 10px;&quot;&gt; &lt;a href=&quot;http://www.flickr.com/photos/unwiredben/3766989957/&quot; title=&quot;photo sharing&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2539/3766989957_4418a1c2a0.jpg&quot; alt=&quot;&quot; style=&quot;border: solid 2px #000000;&quot; /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style=&quot;font-size: 0.9em; margin-top: 0px;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This sign was made of five surplus LED boards, each one with shift registers to run the rows and separate driver pins for the columns (I could have that backwards).  A small PC handled sending the bitmap data to the Arduino over the USB/serial connection, and it would then push out the data to the shift registers, scanning through all the columns.  Multiple columns weren&apos;t active at the same time, but it scanned so quickly it looked very solid.</description>
  <comments>http://unwiredben.livejournal.com/293424.html</comments>
  <category>electronics</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/293166.html</guid>
  <pubDate>Thu, 23 Jul 2009 14:42:07 GMT</pubDate>
  <title>webOS App Catalog Pricing</title>
  <link>http://unwiredben.livejournal.com/293166.html</link>
  <description>I&apos;ve been reading a number of articles lately about how to price your iPhone application on the iTunes App Store.&amp;nbsp; The big issue seems to be how the race to the bottom is hurting developers and conditioning mobile users to pay as little as possible for software.&lt;br /&gt;&lt;br /&gt;Right now, Palm is in the middle of desiging their App Catalog for the Palm Pre smartphone and future webOS&amp;nbsp;devices.&amp;nbsp; We can see some of their ideas from the current &amp;quot;beta&amp;quot;&amp;nbsp;version, but I&amp;nbsp;really hope they make different choices from Apple here in the final product.&lt;br /&gt;&lt;br /&gt;First, Apple&apos;s store has two main categories for apps:&amp;nbsp;free and paid. &amp;nbsp;The free area is mostly a bunch of &amp;quot;adware&amp;quot; and &amp;quot;lite&amp;quot;&amp;nbsp;versions of more fully featured programs.&amp;nbsp; There are some free interfaces to other services there too, like the Kindle and eReader apps that let dowload books you&apos;ve bought through other web stores.&amp;nbsp; There&apos;s a role for free apps on the Palm App Catalog, and I&amp;nbsp;feel this should be a category.&lt;br /&gt;&lt;br /&gt;However, I think paid should be divided up a bit.&amp;nbsp; I&apos;d look at Amazon&apos;s MP3 store as an inspiration.&amp;nbsp; They have a bargain area (the $4.99 and down page), but they they also break out albums by different price points and have top seller lists for each one.&amp;nbsp; By creating more lists with natural exclusions, they give the ability for more albums to have &amp;quot;top spot&amp;quot;&amp;nbsp;and get exposure.&amp;nbsp; On their &amp;quot;hot lists&amp;quot;, they don&apos;t even list price.&lt;br /&gt;&lt;br /&gt;I&apos;d love to see Palm have a &amp;quot;99-Cent Store&amp;quot;&amp;nbsp;section, perhaps with a bit of a downmarket skinning to it.&amp;nbsp; Set up a social expectation that 99 cents is the price for toy applications, but premium/serious apps are found in a separate part of the store.&amp;nbsp; Perhaps we wouldn&apos;t see as much of a race to the bottom then.&amp;nbsp; Especially with the smaller market that the Pre will have in its first year compared with Apple&apos;s juggernaut, it&apos;s important to make sure that the developers can make some money on the device to get a healthy ecosystem going.</description>
  <comments>http://unwiredben.livejournal.com/293166.html</comments>
  <category>technology</category>
  <category>webos</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://unwiredben.livejournal.com/292985.html</guid>
  <pubDate>Wed, 08 Jul 2009 00:02:51 GMT</pubDate>
  <title>A Few Palm Pre Application Ideas</title>
  <link>http://unwiredben.livejournal.com/292985.html</link>
  <description>As I mentioned on Twitter, I&apos;m one of the lucky developers that are in the Palm webOS developer program.  My status as an ex-Palm-employee probably helped my application stand out a little.  We recently had our developer agreement amended to allow discussion of the development experience in public forums, so here&apos;s my first post on the topic.&lt;br /&gt;&lt;br /&gt;First, from watching the homebrew world, I fully expect that lots of obvious niches will be filled very quickly once the app catalog for the Pre opens up.  There will be scientific calculators, tip calculators, and shopping list apps.  Some one will have a &amp;quot;Drug Wars/Mob Wars&amp;quot; style game, and various dice and puzzle games will quickly appear.  The catalog will look a lot like the early Palm OS days.&lt;br /&gt;&lt;br /&gt;It will take a little longer for more serious programs to appear, both because of the learning curve of webOS and because developers will want to realize a return on their investments.  That means having a larger user pool.&lt;br /&gt;&lt;br /&gt;OK, so what are my ideas right now?  I&apos;ve got a few:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&amp;quot;Required Reading&amp;quot;, a client for a variety of web services that keep track of bookmarks like Read It Later, Delicious, Mozilla Weave, and Newsgator Clippings.  This app would let you view your lists, open the bookmarks in the web browser, and have those links marked as read or visited.&lt;/li&gt;&lt;li&gt;&amp;quot;Memosa&amp;quot;, an application that addresses the problem that you can&apos;t easily migrate your Palm OS memos.  I envision a web service that lets you upload a Palm OS memo database file and returns a RSS feed of the memo entries.  Make this use HTTPS and require a password and you can do one-time conversions.  The Pre app could then download and store the memos locally.&lt;/li&gt;&lt;li&gt;&amp;quot;Couch to 5K Tracker&amp;quot;.  I&apos;ve got an app on my iPod Touch that handles audio cues for the timing of the various C25K runs, but it&apos;s biggest limitation is that you&apos;ve got to start your playlist before you start the app, and if you want to change music, you&apos;ve got to pause and resume your run.  On the Palm Pre, you can just use the multitasking and not have to worry about the timer getting messed up.&lt;/li&gt;&lt;li&gt;&amp;quot;Electronics RefCard&amp;quot;.  This is a simple app to help you figure out the value of resistors and other components by their color markings.  I also imagine having some way to store IC pin outs here for quick reference, and maybe having calculators for Ohm&apos;s Law and parallel/series circuits.&lt;/li&gt;&lt;li&gt;&amp;quot;Photo Puzzle&amp;quot;.  The standard 4x4 block of sliding tiles with one missing.  You get to rearrange them in the right order.  The hook: unscramble your own photos instead of a bunch of numbers.&lt;/li&gt;&lt;li&gt;&amp;quot;IP Toolkit&amp;quot;. Front-end for a web service that lets you ping hosts and do DNS and WHOIS lookups.&lt;/li&gt;&lt;/ol&gt;Some of these are fairly easy to code, and others will take a bit more work.&amp;nbsp;  I&apos;m currently working on the C25K&amp;nbsp;tracker as my first application; it has an immediate appeal to me because I&apos;m going through that training program right now, and there&apos;s some interesting challenges with keeping the device awake to do accurate timing and mixing my alert sounds with the other audio streams.&amp;nbsp; However, I&apos;ve also got some code in place for the Electronics application.&amp;nbsp; I&amp;nbsp;could do a really poor job on that one quickly, but I&apos;d like for it to actually have a nice user interface.&lt;br /&gt;&lt;br /&gt;</description>
  <comments>http://unwiredben.livejournal.com/292985.html</comments>
  <category>projects</category>
  <category>technology</category>
  <category>webos</category>
  <lj:security>public</lj:security>
  <lj:reply-count>11</lj:reply-count>
</item>
</channel>
</rss>

