<?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>Refactor the Life &#187; Palm</title>
	<atom:link href="http://kunxi.org/archives/category/palm/feed/" rel="self" type="application/rss+xml" />
	<link>http://kunxi.org</link>
	<description>Yet another code monkey blog.</description>
	<lastBuildDate>Wed, 05 Oct 2011 13:00:17 +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>YouTube On the Go</title>
		<link>http://kunxi.org/archives/2007/04/youtube-on-the-go/</link>
		<comments>http://kunxi.org/archives/2007/04/youtube-on-the-go/#comments</comments>
		<pubDate>Sun, 15 Apr 2007 17:44:52 +0000</pubDate>
		<dc:creator>bookstack</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.kunxi.org/archives/2007/04/youtube-on-the-go/</guid>
		<description><![CDATA[Everybody loves YouTube, the hub of short video clips uploaded by the users. It makes more sense to watch YouTube clips than King Kong in the Metro. To watch one small clip, you need to: Install VideoDownloader Firefox Extension Download the video clips to the harddisk Manually convert the .flv to .avi using ffmpeg like [...]]]></description>
			<content:encoded><![CDATA[<p>Everybody loves <a href="http://www.youtube.com">YouTube,</a> the hub of <em>short</em> video clips uploaded by the users. It makes more sense to watch YouTube clips than <em>King Kong</em> in the Metro. To watch one small clip, you need to:</p>
<ol>
<li>Install <a href="http://javimoya.com/blog/youtube_en.php">VideoDownloader Firefox Extension</a></li>
<li>Download the video clips to the harddisk</li>
<li>Manually convert the .flv to .avi using ffmpeg like this <em>ffmpeg -i foo.flv foo.avi</em></li>
<li>Copy to the Treo 650&#8242;s extension card</li>
</ol>
<p>That is quite tedious. I need a tool to automate the above procedures, here come the <a href="http://static.kunxi.org/tubefetch.txt">tubefetch.txt</a>:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">$ .<span class="sy0">/</span>tubefetch.py <span class="re5">&#8211;help</span><br />
TubeFetch: Download the video clips from YouTube<br />
Version 0.1.0. developed by Kun Xi <span class="sy0">&lt;</span>kunxi<span class="sy0">@</span>kunxi.org<span class="sy0">&gt;</span><br />
Usage: tubefetch.py <span class="br0">&#91;</span>options<span class="br0">&#93;</span> files &#8230;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
Examples:<br />
&nbsp; tubefetch.py <span class="re5">-c</span> http:<span class="sy0">//</span>the-url http:<span class="sy0">//</span>the-url2 &#8230;</p>
<p>Options:<br />
&nbsp; <span class="re5">-h</span> <span class="re5">&#8211;help</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;print this information<br />
&nbsp; <span class="re5">-v</span> <span class="re5">&#8211;version</span> &nbsp; &nbsp; &nbsp; version information<br />
&nbsp; <span class="re5">-c</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; convert the flv <span class="kw2">file</span> to avi, needs <span class="kw2">ffmpeg</span></div>
</div>
<p>This script would download the flv files and convert them to avi file automatically, then copy the files to Treo 650 using CardReader, CardExport.</p>
<p>A better solution may go further:</p>
<ul>
<li>Develop a Firefox addon: one-click would download/convert the file to the specified path</li>
<li>Develop a KPilot conduit, download the AVI files to Treo 650&#8242;s extension card when HotSync</li>
</ul>
<p>Well, if I persist the enthusiasm for 3 months, I might roll up the sleeves and go through all the way to do so.</p>
<p><em>Update </em> The <a href="http://www.downloadhelper.net">DownloadHelper</a> plugin is exactly what I am looking for. The author does not address the CJK file name issue, here is the <a href="http://static.kunxi.org/downloadhelper-2.2.1-fx+fl.xpi">modified version</a> to bypass that problem.</p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://kunxi.org/archives/2006/08/rss-feeds-on-th-go/" rel="bookmark">RSS feeds on th go</a></li><li><a href="http://kunxi.org/archives/2007/02/one-is-better-than-two/" rel="bookmark">One is better than two</a></li><li><a href="http://kunxi.org/archives/2007/02/make-it-work/" rel="bookmark">Make it work</a></li><li><a href="http://kunxi.org/archives/2007/05/glory-of-the-old-school/" rel="bookmark">Glory of the Old School</a></li><li><a href="http://kunxi.org/archives/2007/11/howto-convert-chinese-mp3-for-id3-v23-standard/" rel="bookmark">HOWTO convert Chinese MP3 for ID3 v2.3 standard</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://kunxi.org/archives/2007/04/youtube-on-the-go/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Make it work</title>
		<link>http://kunxi.org/archives/2007/02/make-it-work/</link>
		<comments>http://kunxi.org/archives/2007/02/make-it-work/#comments</comments>
		<pubDate>Mon, 12 Feb 2007 18:31:34 +0000</pubDate>
		<dc:creator>bookstack</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://www.kunxi.org/archives/2007/02/make-it-work/</guid>
		<description><![CDATA[The KPilot 3.5.5 once worked fine for my Tungsten T, and it still served for the Treo application installation and backup. Unfortunately, the KPilot could not synchronize the TODO or calendar, the kpilotDaemonn just crashed without a trace, in fact that is my fault, the konqi is not installed in my system. KPilot developers have [...]]]></description>
			<content:encoded><![CDATA[<p>The KPilot 3.5.5 once worked fine for my Tungsten T, and it still served for the Treo application installation and backup. Unfortunately, the KPilot could not synchronize the TODO or calendar, the kpilotDaemonn just crashed without a trace, in fact that is my fault, the konqi is not installed in my system. </p>
<p>KPilot developers have released 3.5.6, and claimed that it has solved lots of long-lasting bug, including <a href="http://www.kunxi.org/archives/2006/11/diagnosis-of-kpilotpalms-messy-text/">my patch</a> as well. However, the KPilot 3.5.6 depends on >=pilot-link-12.0, while pilot-link is buggy for the python and java binding, which is reverse-dependency of JPilot. Anyway, all of them are masked. </p>
<p><a href="http://www.bravotv.com/Project_Runway/">Tim</a> told us &#8220;Make it work&#8221;, let&#8217;s roll the sleeves. </p>
<p>In Gentoo&#8217;s bugzilla, <a href="http://bugs.gentoo.org/show_bug.cgi?id=89823">#89823</a> is attached an unofficial ebuild for pilot-link, just copy it to pilot-link-0.12.2. Since we don&#8217;t really need the python or java binding, just disable the use flag in package.use and leave the patch where is.</p>
<p>Next, build kpilot-3.5.6, it would not compile for GCC 4.1.1. Em, interesting. The bug is straight-forward anyway, the compiler is just picky in doing const cast. With this patch, it works. </p>
<p><strong>UPDATE</strong> Just contacted with kpilot developer, pilot-link has changed the interface in the version bump, so kpilot 3.5.6 is supposed to work fine with pilot-link-0.12.[01], this patch is for pilot-link-0.12.2 only.</p>
<p>Let&#8217;s put the pieces together:<br />
<a href="http://static.kunxi.org/make-it-work/pilot-link-0.12.2.ebuild">pilot-link-0.12.2 ebulild</a>, <a href="http://static.kunxi.org/make-it-work/kpilot-3.5.6.ebuild">kpilot-3.5.6 ebuild</a>, <a href="http://static.kunxi.org/make-it-work/kpilot-3.5.6-const.patch">kpilot-3.5.6-const.patch</a></p>
<p>Now, KPilot 3.5.6 works fine, but put duplicated appointment when HotSync with Treo 650. That is quite annoying, I would like to use <a href="http://www.forest.impress.co.jp/lib/sys/file/filecompare/undup.html">Undup</a> as the work around, then dig into the code later.</p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://kunxi.org/archives/2006/08/sync-palm-via-irda/" rel="bookmark">Sync Palm via IrDA</a></li><li><a href="http://kunxi.org/archives/2006/11/diagnosis-of-kpilotpalms-messy-text/" rel="bookmark">Diagnosis of KPilot/Palm's messy text</a></li><li><a href="http://kunxi.org/archives/2006/10/when-palm-meets-linux/" rel="bookmark">When Palm meets Linux</a></li><li><a href="http://kunxi.org/archives/2006/08/rss-feeds-on-th-go/" rel="bookmark">RSS feeds on th go</a></li><li><a href="http://kunxi.org/archives/2006/01/build-abridge-with-wxgtk-261/" rel="bookmark">Build aBridge with wxGTK 2.6.1</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://kunxi.org/archives/2007/02/make-it-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One is better than two</title>
		<link>http://kunxi.org/archives/2007/02/one-is-better-than-two/</link>
		<comments>http://kunxi.org/archives/2007/02/one-is-better-than-two/#comments</comments>
		<pubDate>Fri, 09 Feb 2007 17:44:42 +0000</pubDate>
		<dc:creator>bookstack</dc:creator>
				<category><![CDATA[Palm]]></category>
		<category><![CDATA[treo 650]]></category>

		<guid isPermaLink="false">http://www.kunxi.org/archives/2007/02/one-is-better-than-two/</guid>
		<description><![CDATA[After 2 weeks eBay hunting, I won a unlocked Treo 650 GSM smartphone eventually, I no longer need to carry my shabby Tungsten T and Nokia phone, one is better than two. This gadget is powered by PalmOS v5.4, Treo Software 1.7b, Firmware 1.51. Palm Inc has recently released one ROM update for the unlocked [...]]]></description>
			<content:encoded><![CDATA[<p>After 2 weeks eBay hunting, I won a unlocked Treo 650 GSM smartphone eventually, I no longer need to carry my shabby Tungsten T and Nokia phone, one is better than two.</p>
<p>This gadget is powered by PalmOS v5.4, Treo Software 1.7b, Firmware 1.51. <a href="http://www.palm.com">Palm Inc</a> has recently released one ROM update for the unlocked phone, SW 1.20 for bug fix. I decided to keep up with the service pack. The stability of Treo 650 has always been an issue in the sphere.</p>
<p>I chose the ROM from <a href="http://www.hi-pda.com">Hi PDA</a> forum, the localization and candies for the newbies have been ripped off to optimize the DB Cache. Download, unpack, copy to the SD Card, hard-reset the device, plugin the card, pray, pray&#8230;, after several reboot, the device is updated and the phone is still usable, unlocked.</p>
<div class="img-shadow">
<img src="/files/treo650-info.png" alt="Treo 650 phone info" />
</div>
<p> <br clear="both"/></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://kunxi.org/archives/2005/09/farewell-palm-os/" rel="bookmark">Farewell, Palm OS</a></li><li><a href="http://kunxi.org/archives/2005/09/tungsten-ts-sync-sucks/" rel="bookmark">Lame Tungsten T's Sync</a></li><li><a href="http://kunxi.org/archives/2007/04/youtube-on-the-go/" rel="bookmark">YouTube On the Go</a></li><li><a href="http://kunxi.org/archives/2006/10/when-palm-meets-linux/" rel="bookmark">When Palm meets Linux</a></li><li><a href="http://kunxi.org/archives/2007/05/glory-of-the-old-school/" rel="bookmark">Glory of the Old School</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://kunxi.org/archives/2007/02/one-is-better-than-two/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Palm meets Linux</title>
		<link>http://kunxi.org/archives/2006/10/when-palm-meets-linux/</link>
		<comments>http://kunxi.org/archives/2006/10/when-palm-meets-linux/#comments</comments>
		<pubDate>Sun, 15 Oct 2006 15:41:05 +0000</pubDate>
		<dc:creator>bookstack</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[kde]]></category>

		<guid isPermaLink="false">http://www.kunxi.org/archives/2006/10/when-palm-meets-linux/</guid>
		<description><![CDATA[Palm is an open platform for handheld computing, especailly PIM. However, the Palm Inc. / Access do not provide any official support for Linux. Thanks to the open source community to bridge the gap between Linux desktop and Palm handheld. Dell Inspiron 700m, Palm Tungsten T, Syba USB Bluetooth Adapter, and Palm Sync cable(not shown [...]]]></description>
			<content:encoded><![CDATA[<p>Palm is an open platform for handheld computing, especailly PIM. However, the <a href="http://www.palm.com">Palm Inc.</a> / <a href="http://www.access-company.com/">Access</a> do not provide any official support for Linux. Thanks to the open source community to bridge the gap between Linux desktop and Palm handheld.</p>
<div class="img-shadow">
<img src="/files/when-palm-meets-linux/when-palm-meets-linux.png" alt="When Palm meets Linux" />
</div>
<div class="img-comment">
Dell Inspiron 700m, Palm Tungsten T, Syba USB Bluetooth Adapter, and Palm Sync cable(not shown in the picture).
</div>
<p><br clear="both"/></p>
<h1>Synchronization</h1>
<p>Palm supports various synchronization accesses, serial, USB, IrDA, Bluetooth, Modem, Lan, Wireless. We would address three most commonly used ways.</p>
<p><strong>USB Synchronization</strong><br />
This is the most common and reliable way to synchronize the device with the desktop.<br />
1. Besides the standard USB support, build USB Serial(usbserial) and USB Handspring driver(visor) drivers into modules.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> USB Serial Converter support<br />
<span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; USB Handspring Visor <span class="sy0">/</span> Palm m50x <span class="sy0">/</span> Sony Clie Driver</div>
</div>
<p>2. Update the udev rule in  /etc/udev/rules.d/10-palm.rules:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0"># Palm Tungsten T</span><br />
<span class="re2">BUS</span>==<span class="st0">&quot;usb&quot;</span>,SYSFS<span class="br0">&#123;</span>product<span class="br0">&#125;</span>==<span class="st0">&quot;Palm Handheld&quot;</span>,<span class="re2">NAME</span>=<span class="st0">&quot;pilot&quot;</span></div>
</div>
<p>If you use Sony&#8217;s CLIE or Handspring&#8217;s Visor, you may take a look at <em>cat /proc/bus/usb/devices</em> to figure out how to identify the device. <strong>After</strong> you push the button of HotSync cradle, or click the BIG button in HotSync application, the device appears as /dev/pilot in Linux desktop.</p>
<p><strong>IrDA Synchronization</strong><br />
Here is a detailed <a href="http://www.kunxi.org/archives/2006/08/sync-palm-via-irda/">HOWTO</a> about IrDA Synchronization.</p>
<p><strong>Bluetooth Synchronization</strong><br />
Check this <a href="http://www.kunxi.org/archives/2006/10/sync-palm-via-bluetooth/">HOWTO</a>.</p>
<h1>Integration with KDE</h1>
<p>TBD</p>
<h1>Developement</h1>
<p>TBD</p>
<h1>Existed problems</h1>
<ul>
<li>KPilot does not convert the string from UTF-8 to zh_CN.gbk back and forth in synchronization <a href="http://www.kunxi.org/archives/2006/11/diagnosis-of-kpilotpalms-messy-text/">(FIXED)</a></li>
<li>Mail plugin works only for legacy Palm mail</li>
</ul>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://kunxi.org/archives/2005/09/farewell-palm-os/" rel="bookmark">Farewell, Palm OS</a></li><li><a href="http://kunxi.org/archives/2006/08/sync-palm-via-irda/" rel="bookmark">Sync Palm via IrDA</a></li><li><a href="http://kunxi.org/archives/2005/09/tungsten-ts-sync-sucks/" rel="bookmark">Lame Tungsten T's Sync</a></li><li><a href="http://kunxi.org/archives/2006/08/rss-feeds-on-th-go/" rel="bookmark">RSS feeds on th go</a></li><li><a href="http://kunxi.org/archives/2006/10/sync-palm-via-bluetooth/" rel="bookmark">Sync Palm via Bluetooth</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://kunxi.org/archives/2006/10/when-palm-meets-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sync Palm via Bluetooth</title>
		<link>http://kunxi.org/archives/2006/10/sync-palm-via-bluetooth/</link>
		<comments>http://kunxi.org/archives/2006/10/sync-palm-via-bluetooth/#comments</comments>
		<pubDate>Fri, 13 Oct 2006 19:30:43 +0000</pubDate>
		<dc:creator>bookstack</dc:creator>
				<category><![CDATA[Palm]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://www.kunxi.org/archives/2006/10/sync-palm-via-bluetooth/</guid>
		<description><![CDATA[We have introduced how to synchronize Palm via IrDA, let&#8217;s move on to the next level: Synchronize Palm via Bluetooth. Kernel matters Linux kernel has built-in support for Bluetooth devices, you could build it into kernel or modules. The following configuration also includes the optional bluetooth headphone support, it does not hurt since everything is [...]]]></description>
			<content:encoded><![CDATA[<p>We have introduced how to synchronize Palm via IrDA, let&#8217;s move on to the next level: Synchronize Palm via Bluetooth.</p>
<h1>Kernel matters</h1>
<p>Linux kernel has built-in support for Bluetooth devices, you could build it into kernel or modules. The following configuration also includes the optional bluetooth headphone support,  it does not hurt since everything is built into modules.</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; Bluetooth subsystem support &nbsp;&#8212;<span class="sy0">&gt;</span><br />
&nbsp;<span class="re5">&#8212;</span> Bluetooth subsystem support <br />
&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; L2CAP protocol support<br />
&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; SCO links support<br />
&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; RFCOMM protocol support<br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="sy0">*</span><span class="br0">&#93;</span> &nbsp; &nbsp; RFCOMM TTY support<br />
&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; BNEP protocol support<br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="sy0">*</span><span class="br0">&#93;</span> &nbsp; &nbsp; Multicast filter support<br />
&nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="sy0">*</span><span class="br0">&#93;</span> &nbsp; &nbsp; Protocol filter support<br />
&nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; HIDP protocol support &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Bluetooth device drivers &nbsp;&#8212;<span class="sy0">&gt;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> HCI USB driver &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="sy0">*</span><span class="br0">&#93;</span> &nbsp; SCO <span class="br0">&#40;</span>voice<span class="br0">&#41;</span> support<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> HCI UART driver</div>
</div>
<p>In the user land, we need to install <a href="http://www.bluez.org">BlueZ</a>, the Linux Bluetooth protocol stack, in Gentoo, just</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">emerge bluez-libs bluez-utils</div>
</div>
<p>We need to  modify <em>/etc/bluetooth/hcid.conf</em> to make it fit into our needs:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">options <span class="br0">&#123;</span><br />
&nbsp; &nbsp; autoinit <span class="kw2">yes</span>;<br />
&nbsp; &nbsp; security user;<br />
&nbsp; &nbsp; pairing multi;<br />
&nbsp; &nbsp; pin_helper <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span>bluepin;<br />
<span class="br0">&#125;</span><br />
device <span class="br0">&#123;</span><br />
&nbsp; &nbsp; name <span class="st0">&quot;BlueZ (%d)&quot;</span>;<br />
&nbsp; &nbsp; class 0&#215;100;<br />
&nbsp; &nbsp; iscan <span class="kw3">enable</span>; pscan <span class="kw3">enable</span>;<br />
&nbsp; &nbsp; lm accept,master;<br />
&nbsp; &nbsp; <span class="kw2">lp</span> hold,sniff,park;<br />
&nbsp; &nbsp; auth <span class="kw3">enable</span>;<br />
&nbsp; &nbsp; encrypt <span class="kw3">enable</span>;<br />
<span class="br0">&#125;</span></div>
</div>
<p><em>bluepin</em> is a PyGTK-based dialog to prompt the password, if you don&#8217;t install X or do not change the PIN whenever a new device is connected, you could just feed the pin directly like this [2]:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">pin_helper <span class="sy0">/</span>etc<span class="sy0">/</span>bluetooth<span class="sy0">/</span>pin;</div>
</div>
<p>in /etc/bluetooth/pin:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">MY Personal Pin</div>
</div>
<p>OK, plugin the bluetooth adpater. Enable your Palm&#8217;s Bluetooth for the first test drive:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">$ hcitool scan<br />
Scanning &#8230;<br />
&nbsp; &nbsp; &nbsp; &nbsp; 00:07:E0:0E:B6:CC &nbsp; &nbsp; &nbsp; My Palm</div>
</div>
<p>OK, at least the Bluetooth adapter works, kernel modules loaded, and BlueZ take actions for the new device. </p>
<p><strong>NOTE</strong>: For the curious users, please check <em>/etc/udev/rules.d/70-bluetooth.rules</em> to demystify the magic.</p>
<h1>Tie a knot</h1>
<p>In Palm side, create a new connection named &#8220;Bluetooth to PC&#8221; in <em>Preference</em> | <em>Connection</em> | <em>New &#8230;</em> like this, then click <em>Device: Tap to find</em>. If this is the first time to bind the handheld and desktop, <em>bluepin</em> would popup to ask for the authentification token.</p>
<div class="img-shadow">
<img src="/files/sync-palm-via-bluetooth/discover-and-bind.png" alt="Discover and Bind" />
</div>
<p><br clear="both"/></p>
<p>Then create a new Network in <em>Preference</em> | <em>Network</em> | <em>New</em> , click <em>Details &#8230;</em>, then click <em>Script &#8230;</em>, and delete all scripts, like this:</p>
<div class="img-shadow">
<img src="/files/sync-palm-via-bluetooth/network-setting.png" alt="Network setting" />
</div>
<p><br clear="both"/></p>
<h1>The light of the tunnel</h1>
<p>Bluetooth synchronization is quite different than the previous two local HotSync, it is a Modem HotSync via dial-up network on bluetooth tunnel. We need to build the dail-in server in Linux side:</p>
<p>Build the kernel modules in <em>Device Drivers </em>| <em>Networking Support</em></p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">&#8230;<br />
<span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; &nbsp; PPP <span class="br0">&#40;</span>point-to-point protocol<span class="br0">&#41;</span> support<br />
<span class="br0">&#91;</span> <span class="br0">&#93;</span> &nbsp; &nbsp; &nbsp; PPP multilink support <span class="br0">&#40;</span>EXPERIMENTAL<span class="br0">&#41;</span><br />
<span class="br0">&#91;</span> <span class="br0">&#93;</span> &nbsp; &nbsp; &nbsp; PPP filtering<br />
<span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; PPP support <span class="kw1">for</span> async serial ports<br />
<span class="sy0">&lt;</span>M<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; PPP support <span class="kw1">for</span> <span class="kw2">sync</span> tty ports<br />
<span class="sy0">&lt;</span> <span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; PPP Deflate compression<br />
<span class="sy0">&lt;</span> <span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; PPP BSD-Compress compression<br />
<span class="sy0">&lt;</span> <span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; PPP over Ethernet <span class="br0">&#40;</span>EXPERIMENTAL<span class="br0">&#41;</span><br />
&#8230;</div>
</div>
<p>In the userland, install the ppp package and enable the ip forwarding:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;">emerge ppp<br />
<span class="kw3">echo</span> <span class="nu0">1</span> <span class="sy0">&gt;</span> <span class="sy0">/</span>proc<span class="sy0">/</span>sys<span class="sy0">/</span>net<span class="sy0">/</span>ipv4<span class="sy0">/</span>ip_forward</div>
</div>
<p>Set up the peer-to-peer network, /etc/ppp/peer/dun</p>
<div class="codesnip-container" >noauth<br />
local<br />
noipdefault<br />
proxyarp<br />
nodefaultroute<br />
noipx<br />
idle 0</p>
<p># Host IP: target IP<br />
192.168.15.100:192.168.15.88</p>
<p>ms-dns 192.168.15.1<br />
netmask 255.255.255.0</p></div>
<p>Gentoo&#8217;s magic <em>bluetooth</em> service would launch the following service for us:</p>
<ul>
<li>hcid: the Host Control Interface daemon to talk with L2CAP kernel module.</li>
<li>sdpd: the Service Discovery Profile daemon to discover nearby bluetooth devices.</li>
<li>pand: the Personal Arean Network daemon to organize an Ad-Hoc PAN.</li>
<li>dund: Dial-up Network daemon to build a virtual serial link for dial-up network.</li>
<li>pppd: Point-to-Point Protocol daemon</li>
</ul>
<p>Edit the /etc/conf.d/bluetooth:</p>
<div class="codesnip-container" >
<div class="bash codesnip" style="font-family:monospace;"><span class="co0"># Bluetooth configuraton file</span><br />
<span class="co0"># Start of hcid (allowed values are &quot;true&quot; and &quot;false&quot;)</span><br />
<span class="re2">HCID_ENABLE</span>=<span class="kw2">true</span><br />
<span class="co0"># Config file for hcid</span><br />
<span class="re2">HCID_CONFIG</span>=<span class="st0">&quot;/etc/bluetooth/hcid.conf&quot;</span><br />
<span class="co0"># Start sdpd (allowed values are &quot;true&quot; and &quot;false&quot;)</span><br />
<span class="re2">SDPD_ENABLE</span>=<span class="kw2">true</span><br />
<span class="co0"># Start hidd (allowed values are &quot;true&quot; and &quot;false&quot;)</span><br />
<span class="re2">HIDD_ENABLE</span>=<span class="kw2">false</span><br />
<span class="co0"># Arguments to hidd</span><br />
<span class="re2">HIDD_OPTIONS</span>=<span class="st0">&quot;&quot;</span><br />
<span class="co0"># Run hid2hci (allowed values are &quot;true&quot; and &quot;false&quot;)</span><br />
<span class="re2">HID2HCI_ENABLE</span>=<span class="kw2">false</span><br />
<span class="co0"># Bind rfcomm devices (allowed values are &quot;true&quot; and &quot;false&quot;)</span><br />
<span class="re2">RFCOMM_ENABLE</span>=<span class="kw2">true</span><br />
<span class="co0"># Config file for rfcomm</span><br />
<span class="re2">RFCOMM_CONFIG</span>=<span class="st0">&quot;/etc/bluetooth/rfcomm.conf&quot;</span><br />
<span class="co0"># Start dund (allowed values are &quot;true&quot; and &quot;false&quot;)</span><br />
<span class="co0"># If you want to use dund, you must install: net-dialup/ppp .</span><br />
<span class="re2">DUND_ENABLE</span>=<span class="kw2">true</span><br />
<span class="co0"># Arguments to dund</span><br />
<span class="re2">DUND_OPTIONS</span>=<span class="st0">&quot;&#8211;listen &#8211;persist &#8211;msdun call dun&quot;</span><br />
<span class="co0"># Start pand (allowed values are &quot;true&quot; and &quot;false&quot;)</span><br />
<span class="re2">PAND_ENABLE</span>=<span class="kw2">true</span><br />
<span class="co0"># Arguments to pand</span><br />
<span class="re2">PAND_OPTIONS</span>=<span class="st0">&quot;&#8211;listen &#8211;role NAP&quot;</span></div>
</div>
<p>Once the bluetooth adpater is plugged in, the corresponding services are launched, you can test the connection with either Merge Ping, or use the command line: <em>Preference</em> | <em>Network</em> | <em>Option</em> | <em>View Log</em>, then write <em>ping www.foo.com</em></p>
<h1>The last, but not the least</h1>
<p>In HotSync | Options | Modem Sync Prefs&#8230;, hightlight <em>Network</em><br />
In HotSync | Options | Primary PC Setup&#8230;</p>
<p>Primary PC Name: <em>leave blank</em><br />
Primary PC Address: <em>IP Address of the computer</em><br />
Subnet Mask: <em>Netmask of your network</em></p>
<p><strong>NOTE</strong> Primary PC Name is parsed by the DNS, the best practice is to leave it blank. </p>
<p>When HotSync, select, <em>Modem</em> and <em>Unix</em> as the network. In the desktop side, use <strong>net:any</strong> to replace /dev/pilot in the previous HotSync settings.</p>
<p><strong>Reference</strong><br />
[1] <a href="http://howto.pilot-link.org/bluesync/index.html">Synchronize your PalmOSï¿½ Handheld over Bluetooth in Linux</a><br />
[2] <a href="http://gentoo-wiki.com/HOWTO_mobile_phone%2C_Bluetooth_and_GNOME">HOWTO mobile phone, Bluetooth and GNOME</a><br />
[3] <a href="http://forums.gentoo.org/viewtopic-t-121109-start-0-postdays-0-postorder-asc-highlight-bluetooth+sync+palm.html">[HOWTO] Bluetooth and Palm (or PocketPC) Network and Sync</a></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://kunxi.org/archives/2006/10/when-palm-meets-linux/" rel="bookmark">When Palm meets Linux</a></li><li><a href="http://kunxi.org/archives/2006/08/sync-palm-via-irda/" rel="bookmark">Sync Palm via IrDA</a></li><li><a href="http://kunxi.org/archives/2007/07/howto-gentoo-20070-on-dell-700m/" rel="bookmark">HOWTO Gentoo 2007.0 on Dell 700m</a></li><li><a href="http://kunxi.org/archives/2006/08/back-to-dell-inspiron-700m/" rel="bookmark">Back to Dell Inspiron 700m</a></li><li><a href="http://kunxi.org/archives/2007/05/poor-mans-wireless-network/" rel="bookmark">Poor man's wireless network</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://kunxi.org/archives/2006/10/sync-palm-via-bluetooth/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Handspring in action</title>
		<link>http://kunxi.org/archives/2006/09/handspring-in-action/</link>
		<comments>http://kunxi.org/archives/2006/09/handspring-in-action/#comments</comments>
		<pubDate>Mon, 11 Sep 2006 18:09:55 +0000</pubDate>
		<dc:creator>bookstack</dc:creator>
				<category><![CDATA[Palm]]></category>
		<category><![CDATA[handspring]]></category>

		<guid isPermaLink="false">http://www.kunxi.org/archives/2006/09/handspring-in-action/</guid>
		<description><![CDATA[It is quite surprising to find the legendary handspring is still in use in GridWorld 2006. The staff scans the bar code on the badge with this gadget, and authenticate whether the visitor is eligible to access the specific session. Here is a picture of it in action: Related Posts:When Palm meets LinuxDebugging Web(3) - [...]]]></description>
			<content:encoded><![CDATA[<p>It is quite surprising to find the legendary handspring is still in use in GridWorld 2006. The staff scans the bar code on the badge with this gadget, and authenticate whether the visitor is eligible to access the specific session. Here is a picture of it in action:</p>
<div class="img-shadow">
<img src="/files/handspring-in-action.jpg" alt="Handspring in action" />
</div>
<p><br clear="both"/></p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://kunxi.org/archives/2006/10/when-palm-meets-linux/" rel="bookmark">When Palm meets Linux</a></li><li><a href="http://kunxi.org/archives/2006/12/debugging-web3-poor-mans-debugger/" rel="bookmark">Debugging Web(3) -  Poor man's debugger</a></li><li><a href="http://kunxi.org/archives/2006/05/tip-expose-on-gentoo/" rel="bookmark">TIP: eXpose on Gentoo</a></li><li><a href="http://kunxi.org/archives/2007/10/learning-django-by-example7-like-a-desktop-application-dnd/" rel="bookmark">Learning Django by Example(7): Act like a desktop application: Dnd</a></li><li><a href="http://kunxi.org/archives/2006/11/debugging-web1-live-http-headers/" rel="bookmark">Debugging Web(1) -  Live HTTP Headers</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://kunxi.org/archives/2006/09/handspring-in-action/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS feeds on th go</title>
		<link>http://kunxi.org/archives/2006/08/rss-feeds-on-th-go/</link>
		<comments>http://kunxi.org/archives/2006/08/rss-feeds-on-th-go/#comments</comments>
		<pubDate>Tue, 08 Aug 2006 01:09:22 +0000</pubDate>
		<dc:creator>bookstack</dc:creator>
				<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Palm]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[plucker]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://kunxi.org/archives/2006/08/rss-feeds-on-th-go/</guid>
		<description><![CDATA[I spend 3 &#8211; 5 hours for transportation weekly, and spend at least 40 minutes to browse/read the subscripted RSS feeds daily. What if I could utilize the trivial time in the metro to read something I am really interested in? Here is one &#8220;just works&#8221; solution. Install Sunrise in the computer, and Plucker in [...]]]></description>
			<content:encoded><![CDATA[<p>I spend 3 &#8211; 5 hours for transportation weekly, and spend at least 40 minutes to browse/read the subscripted RSS feeds daily. What if I could utilize the trivial time in the metro to read something I am really interested in? </p>
<p>Here is one &#8220;just works&#8221; solution. Install <a href="http://sourceforge.net/projects/sunrisexp/">Sunrise</a> in the computer, and <a href="http://www.plkr.org/">Plucker</a> in the Palm. Export my favorite feeds from the RSS reader in OPML format, and import it to Sunrise which would synchronize the feeds and convert them to Plucker format later.</p>
<div class="img-shadow"><img src="/files/rss-feeds-on-the-go/import-opml.png" alt="Import OPML" align="left"/></div>
<p> Download PDB files via <a href="http://cvs.codeyard.net/kpilot/">kpilot</a> to my Palm <a href="http://kunxi.org/archives/2006/08/sync-palm-via-irda/">via IrDA</a>. It works, but it involves in <strong>TOO MUCH</strong> interactivities with the users, you wanna catch the bus or not?</p>
<p>What I need is a cron job running in the background, check, convert and save. Whenever I do a HotSync, the files are updated; or just simply beam them to my Palm. Here is my proposal to work it around:</p>
<ul>
<li>Develop a RSS fetcher/parser using <a href="http://www-128.ibm.com/developerworks/webservices/library/ws-pyth11.html">RSS for Python</a> to fetch the contents.</li>
<li>Develop a wrapper to invoke official Plucker Desktop to convert them to Plucker PDB</li>
<li>Develop a file synchronization plugin for KPilot</li>
<li>Customize a script to beam the files</li>
<li>Develop a init script to glue them together</li>
</ul>
<p>Any suggestions?</p>
<div id="crp_related"><h2>Related Posts:</h2><ul><li><a href="http://kunxi.org/archives/2006/10/when-palm-meets-linux/" rel="bookmark">When Palm meets Linux</a></li><li><a href="http://kunxi.org/archives/2006/08/sync-palm-via-irda/" rel="bookmark">Sync Palm via IrDA</a></li><li><a href="http://kunxi.org/archives/2007/04/youtube-on-the-go/" rel="bookmark">YouTube On the Go</a></li><li><a href="http://kunxi.org/archives/2006/01/howto-import-outlook-contacts-to-kaddressbook/" rel="bookmark">HOWTO import Outlook contacts to KAddressBook</a></li><li><a href="http://kunxi.org/archives/2005/09/farewell-palm-os/" rel="bookmark">Farewell, Palm OS</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://kunxi.org/archives/2006/08/rss-feeds-on-th-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

