<?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>Coyote Tracks &#187; announcements</title>
	<atom:link href="http://kagan.mactane.org/blog/tag/announcements/feed/" rel="self" type="application/rss+xml" />
	<link>http://kagan.mactane.org/blog</link>
	<description>The prints of an Internet-enabled coyote.</description>
	<lastBuildDate>Tue, 31 Jan 2012 03:26:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>When Your Computer Catches Fire</title>
		<link>http://kagan.mactane.org/blog/2011/11/13/when-your-computer-catches-fire/</link>
		<comments>http://kagan.mactane.org/blog/2011/11/13/when-your-computer-catches-fire/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 21:12:19 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[bad ideas]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[don't be ridiculous]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[tech support]]></category>

		<guid isPermaLink="false">http://kagan.mactane.org/blog/?p=411</guid>
		<description><![CDATA[Occasionally, I amuse myself by reading Not Always Right. I really shouldn&#8217;t, as it&#8217;s always bad for my opinion of humanity, but sometimes I just can&#8217;t look away. And occasionally, it clues me in to a teachable moment. Like this one, which recently appeared&#160;there: Caller: &#8220;My computer is a fire&#160;risk.&#8221; Me: &#8220;What makes you say&#160;that?&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Occasionally, I amuse myself by reading <a href="http://www.notalwaysright.com/">Not Always Right</a>. I really shouldn&#8217;t, as it&#8217;s always bad for my opinion of humanity, but sometimes I just can&#8217;t look away. And occasionally, it clues me in to a teachable moment. Like <a href="http://notalwaysright.com/100-chance-of-disaster/14402">this one, which recently appeared</a>&nbsp;there:</p>
<blockquote><p><strong>Caller:</strong> &#8220;My computer is a fire&nbsp;risk.&#8221;</p>
<p><strong>Me:</strong> &#8220;What makes you say&nbsp;that?&#8221;</p>
<p><strong>Caller:</strong> &#8220;It gets hot. There are papers near&nbsp;it.&#8221;</p>
<p><strong>Me:</strong> &#8220;If you&#8217;re worried about it, you can move the papers&nbsp;away.&#8221;</p>
<p><strong>Caller:</strong> &#8220;I am moving the papers, but you must send someone to look at&nbsp;it.&#8221;</p>
<p>[More back-and-forth, in which caller reiterates that her computer is "a fire risk" and says the situation is urgent. A technician is dispatched, who eventually reports&nbsp;back:]</p>
<p><strong>Technician:</strong> &#8220;You know that computer that was a fire&nbsp;risk?&#8221;</p>
<p><strong>Me:</strong> &#8220;Yes?&#8221;</p>
<p><strong>Technician:</strong> &#8220;She meant it was on&nbsp;fire.&#8221;</p></blockquote>
<p>This isn&#8217;t the first time I&#8217;ve heard about such mistakes, either. Rinkworks&#8217; &#8220;Computer Stupidities&#8221; sub-site has an entire page devoted to <a href="http://www.rinkworks.com/stupid/cs_smoke.shtml">instances of computers smoking or catching fire</a> (or people being worried that they might). One in particular involves a tech telling a college student over the phone, &#8220;Unplug the computer right now. Your paper is lost. Your floppy drive is lost. If you&#8217;re lucky the Mac will be OK. Unplug it now.&#8221; The student doggedly insists, &#8220;But I don&#8217;t want to lose my paper!&#8221; Then the tech hears someone in the background (presumably the student&#8217;s roommate) scream. Then the dorm fire alarm goes&nbsp;off.</p>
<p>For those who need to be told, I am willing to state, as a computer professional with 15 years of experience in hardware, software, system administration, troubleshooting, and&nbsp;repair:</p>
<p class="notice large">If your computer or computing device ever emits <em>smoke, sparks, or flame</em>: <strong>Unplug it immediately.</strong> Do not bother with &#8220;proper shutdown procedure&#8221;; simply assume all data on it is completely hosed and start emergency fire-prevention procedures. <strong>Unplug its power.</strong> If it&#8217;s a laptop, also yank out its battery. If signs of combustion continue, <strong>use a fire extinguisher or water</strong>, as appropriate.</p>
<p>Unplugging it means there&#8217;s no more electrical power going to it. Many times, that&#8217;s enough to kill the combustion right there&nbsp;&mdash; if you were quick about it, the fire may go out on its own at this point. If it doesn&#8217;t, it is at least <em>no longer an electrical fire</em>. That means if you haven&#8217;t got an ABC fire extinguisher handy, you can still just throw water on the thing, without risking electrocution.</p>
<p>Once it&#8217;s been smoking or sparking, the device is ruined anyway. Understand that <strong>all your data is gone</strong>. (This is why it&#8217;s important to have complete, current backups.) The important thing to do is to make sure the fire doesn&#8217;t spread. Don&#8217;t panic, and don&#8217;t waste any time trying to shut down carefully or in the usual manner&nbsp;&mdash; that will just prolong the&nbsp;fire.</p>
<p>Remember, where computing devices are concerned, <strong>if it smokes, it is toast</strong>. Or it is fried; pick whichever image works better for you. If you let it keep running once it&#8217;s on fire, all you&#8217;re doing is <strong>putting yourself at risk</strong>. Don&#8217;t do&nbsp;it.</p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2011/11/13/when-your-computer-catches-fire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing Hummingbird Version 0.65</title>
		<link>http://kagan.mactane.org/blog/2010/09/19/announcing-hummingbird-version-0-65/</link>
		<comments>http://kagan.mactane.org/blog/2010/09/19/announcing-hummingbird-version-0-65/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 23:03:59 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[Hummingbird]]></category>
		<category><![CDATA[my projects]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=244</guid>
		<description><![CDATA[I see that I never bothered announcing the v0.61 release. That was a minor bug-fix, resolving an issue where Hummingbird would fail if the XML cache file was empty. The latest release is one that allows multiple versions of Hummingbird to run on the same machine without conflict, as long as they&#8217;re using different Twitter [...]]]></description>
			<content:encoded><![CDATA[<p>I see that I never bothered announcing the v0.61 release. That was a minor bug-fix, resolving an issue where Hummingbird would fail if the XML cache file was empty.</p>
<p>The latest release is one that allows multiple versions of Hummingbird to run on the same machine without conflict, as long as they&#8217;re using different Twitter usernames.</p>
<p>In addition, I&#8217;ve changed the destination of auto-hashtag links. Since the hashtags.org service is often a bit flaky, or simply returns useless null results, I&#8217;ve switched to using Twitter&#8217;s own internal search service.</p>
<p>Downloads are available from <a href="/software/hummingbird/">the Hummingbird project page</a>, or using these links:</p>
<p><a href="/software/libraries/download/hummingbird-0.65.tar.gz">hummingbird-0.65.tar.gz</a><br />
<a href="/software/libraries/download/hummingbird-0.65.zip">hummingbird-0.65.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2010/09/19/announcing-hummingbird-version-0-65/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alert: SpamAssassin&#8217;s Year 2010 Bug</title>
		<link>http://kagan.mactane.org/blog/2010/01/06/alert-spamassassins-year-2010-bug/</link>
		<comments>http://kagan.mactane.org/blog/2010/01/06/alert-spamassassins-year-2010-bug/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 04:17:45 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[oops]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[SpamAssassin]]></category>
		<category><![CDATA[system administration]]></category>
		<category><![CDATA[you fail]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=181</guid>
		<description><![CDATA[If you haven&#8217;t been getting as much email as usual this past week, the culprit may be SpamAssassin. It turns out that SpamAssassin 3.2.5 (the current version, released in June of 2008) has a Year&#160;2010&#160;Bug. The problem lies in the core configuration file 72_active.cf, which contains a wide variety of &#8220;currently active&#8221; rules. On line [...]]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t been getting as much email as usual this past week, the culprit may be SpamAssassin. It turns out that SpamAssassin 3.2.5 (the current version, released in June of 2008) has a Year&nbsp;2010&nbsp;Bug.
</p>
<p>The problem lies in the core configuration file <code>72_active.cf</code>, which contains a wide variety of &#8220;currently active&#8221; rules. On line 543, it says:
</p>
<p><code>header FH_DATE_PAST_20XX Date =~ /20[1-9][0-9]/ [if-unset: 2006]</code>
</p>
<p>For those who don&#8217;t read regular expressions, this rule will match any Date: header that contains a string like 201x, 202x, 203x, etc., where &#8220;x&#8221; could be replaced by any digit. So, back in 2008, this rule would catch email that claimed to hail from the year 2010 or later. (Well, up to 2099.)
</p>
<p>Starting on the morning of last Friday, this rule started triggering on pretty much all mail that hadn&#8217;t been delayed, thus adding 3.384 points to every piece of incoming email. Naturally, this could easily push mail over the threshold from &#8220;not spam&#8221; into &#8220;spam&#8221; when it doesn&#8217;t belong there.
</p>
<p>If you&#8217;ve been expecting some mail that hasn&#8217;t arrived, and your mail host uses SpamAssassin, you might want to check your spam folder.
</p>
<p>According to a note on <a href="http://spamassassin.apache.org/">the SpamAssassin project&#8217;s main page</a>, you can easily correct this problem in either of two ways:
</p>

<ol>
<li>If your system is configured to use <code>sa-update</code>, run it now.</li>
<li>Remove the FH_DATE_PAST_20XX rule altogether by putting &#8220;score FH_DATE_PAST_20XX 0&#8243; at the end of your <code>local.cf</code> file.</li>
</ol>

<p>Alternatively, if you&#8217;re the mail administrator, and you don&#8217;t mind setting up a Year&nbsp;2020&nbsp;Bug for yourself, you could always change the part that says <code>Date&nbsp;=~&nbsp;/20[1-9][0-9]/</code> so that it says <code>Date&nbsp;=~&nbsp;/20[2-9][0-9]/</code> instead. After all, stuff that claims to be from years in the future (or past) is likely to be something you don&#8217;t feel like reading. But if you do this, I <em>strongly</em> urge you to find some way to send yourself an alert around December of 2019, warning yourself that you need to fix that problem. (And that may be easier said than done.)
</p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2010/01/06/alert-spamassassins-year-2010-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solutions For Palm Pr&#275; &#8220;Signed Out of Palm Profile&#8221; Endless Loop</title>
		<link>http://kagan.mactane.org/blog/2009/09/30/solutions-for-palm-pre-signed-out-of-palm-profile-endless-loop/</link>
		<comments>http://kagan.mactane.org/blog/2009/09/30/solutions-for-palm-pre-signed-out-of-palm-profile-endless-loop/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:34:44 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[Palm Pre]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=130</guid>
		<description><![CDATA[Yesterday, a wonderful person who goes by the handle of pzil on the Palm Pr&#275; forums gave me a solution to my &#8220;You are signed out, there is no escape&#8221; woes. You can read pzil&#8217;s solution as posted on the Palm forum, but just in case, I&#8217;m also reproducing the meat of it here, in [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, a wonderful person who goes by the handle of pzil on the Palm Pr&#275; forums gave me a solution to my &#8220;You are signed out, there is no escape&#8221; woes. You can read <a href="http://forums.palm.com/palm/board/message?board.id=webossoftware&#038;thread.id=9506#M9563">pzil&#8217;s solution as posted on the Palm forum</a>, but just in case, I&#8217;m also reproducing the meat of it here, in case it helps anyone else.
</p>
<p>Again, I take absolutely no credit for this one; all credit goes to pzil.
</p>
<span id="more-130"></span><blockquote>Phone must be rooted &#8211; I did with the USB cable

<ol>
    <li>root your way in</li>
<li>Invoke sqlite: (I&#8217;m not sure if the db file may be different, but it will be in that dir)<br />
<br />
<strong>sqlite3 /var/palm/data/file_.usr.palm.applications.com.palm.app.firstuse_0/0000000000000003.db</strong><br />
<br />
<strong>update properties set value=&#8217;false&#8217; where name=&#8217;isInvalidToken&#8217;;</strong><br />
<br />
<strong>update properties set value=&#8217;language&#8217; where name=&#8217;screenName&#8217;;</strong><br />
<br />
<strong>.quit</strong></li>

<li>Exit the linux prompt, and reboot your phone</li></ol></blockquote>

<p>I&#8217;ve tried the above, and it worked like a charm. After rebooting, I had to tell the phone that I wanted to speak English (not Spanish), re-agree to the Terms and Conditions, and then sign back in to my Palm Profile. It automatically pre-filled my email address; I had to remember my password. Then the Pr&#275; downloaded my profile data, asked for another reboot, and came back up as if nothing had ever been wrong.
</p>
<p>Two other people on the Pr&#275; forum also claim to have had success with pzil&#8217;s method.
</p>
<p>But what if you don&#8217;t have a rooted Pr&#275;? Well, I got the following email from Palm tech support this morning. The instructions are messy and scary, and I&#8217;m not sure how easily I could follow them if I actually wanted to. I&#8217;m glad I don&#8217;t have to. If anyone tries these, I&#8217;d love to hear about your experience.
</p>
<blockquote><p>Hello Kai,</p>

<p>As you had the issue regarding &#8220;getting signed out and erase all data&#8221; screen on Pr&#275; device, we have found resolution about it.
</p> 
<p>Please follow the below given steps :
</p>
<ol><li>First you need to restart the phone using webOS Doctor which will erase all contents of the phone, including data stored in the USB drive.</li>
<li>Then download the webOS Doctor from palm.com/rom. Make sure that WebOS  doctor will need the phone’s serial number to download the file.</i>
<li>Then insert the USB cable into the AC charger, and insert the AC charger into a wall outlet.</li>
<li>Now remove and reinsert the phone battery.  Please check the link given below to remove and replace battery :<br />
http://kb.palm.com/wps/portal/kb/common/article/44919_en.html<br />
<br />
Then, Press and hold the volume up button, and insert the USB cable into the phone.</li>
<li>A large USB icon should appear on the phone screen.</li>
<li>Then disconnect the USB cable from the AC charger and run webOS Doctor on the computer by clicking Run. 
Note:  Do not connect the USB cable to the computer.</li>
<li>Now click Next in the beginning screen of webOS Doctor, confirm their language selection, and accept the terms and conditions.</li>
<li>Then  select Next to continue. The webOS Doctor will check the system requirements before proceeding. This may take a few minutes.</li>
<li>When prompted by the webOS Doctor, Then connect the phone to the computer with the USB cable. The “Next” button will highlight.</li>
<li>Now select the Next button. The webOS Doctor will recover the phone. Then disconnect the phone when completed.</li>
<li>The phone will restart into Setup. Tap your language on the screen to select it.  Your phone will check the network for voice and data activation.</li>
<li>When the Phone Activated message is displayed, tap Next. To accept the terms and conditions for Palm services, tap Accept.</li>
<li>Tap Sign in With My Profile.

<ul>
<li>Enter your email address.</li>
<li>Enter your password.</li>
<li>Tap Sign In.</li>
</ul></li>
</ol>
<p>If you still face issues, you can get back to us on live chat or you can contact our voice support team at: 877-426-3777. Support is available Mon-Fri from 6:00 AM PST to 8:00 PM PST and Sat-Sun from 8:00 AM PST to 5:00 PM PST.
</p>
<p>Thanks &#038; regards.<br />
Palm chat support.
</p>
</blockquote>

<p>It seems like one of the lessons to be learned from this is: Always root your phone, even if you can&#8217;t imagine what you&#8217;d do with such power. Somewhere down the line, it might come in handy.
</p>
<p>Any other lessons? I&#8217;m open to suggestions.
</p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2009/09/30/solutions-for-palm-pre-signed-out-of-palm-profile-endless-loop/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hummingbird Updated to Version 0.60</title>
		<link>http://kagan.mactane.org/blog/2009/08/20/hummingbird-updated-to-version-0-60/</link>
		<comments>http://kagan.mactane.org/blog/2009/08/20/hummingbird-updated-to-version-0-60/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 02:49:27 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Hummingbird]]></category>
		<category><![CDATA[my projects]]></category>
		<category><![CDATA[oops]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[should have known better]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=109</guid>
		<description><![CDATA[I&#8217;ve always questioned the wisdom of building a startup company based around someone else&#8217;s platform, like Facebook games or Gmail inbox add-ons. You&#8217;re totally at the mercy of the other company. (Many people have found out how silly it was to go up against Microsoft or Apple in just the same way.) And yet, here [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always questioned the wisdom of building a startup company based around someone else&#8217;s platform, like Facebook games or Gmail inbox add-ons. You&#8217;re totally at the mercy of the other company. (Many people have found out how silly it was to go up against Microsoft or Apple in just the same way.)</p>
<p>And yet, here I am with <a href="/software/hummingbird/">Hummingbird</a>, which is totally dependent on Twitter&#8217;s bandwidth. (In my own defense, I can only point out that: a) I wrote it because I needed the functionality; and b) I&#8217;m not building a money-making company around Hummingbird. I&#8217;m just giving it away.)</p>
<p>In the past couple of weeks, I&#8217;ve noticed that Twitter can sometimes take an astonishingly long time to provide an update. Hummingbird works by requesting URLs like <a href="http://twitter.com/statuses/user_timeline/kmactane.xml?count=25">http://twitter.com/statuses/user_timeline/kmactane.xml?count=25</a>, and (up until now) it worked on the assumption that Twitter couldn&#8217;t possibly take longer than 10 or 15 seconds to respond to such a request.</p>
<p>That turns out not to be the case.</p>
<p>In fact, my recent tests have shown that Twitter can sometimes take <em>over 5 full minutes</em> to finish responding to such a request. This is a problem, because the default installation of Hummingbird tries to update its cached data once every 5 minutes. And since I assumed the request would be fulfilled in, at most, 10% of that time, I didn&#8217;t bother building in any concurrency checking.</p>
<p>I&#8217;ve just completely reorganized most of Hummingbird&#8217;s architecture. The interface that a blog owner sees (in the sense of the configuration variables in <code>hummingbird.php</code>, and the calling syntax for blog pages and cron jobs) is still the same. However, all of the code for retrieving data from Twitter has been spun off into a new <code>hummingbird-cache.php</code> file, which can be launched into the background by the rest of Hummingbird, so that it can patiently take as long as it needs to in order to update the blog&#8217;s tweets cache.</p>
<h3>The Major Change This Causes</h3>
<p>In Hummingbird&#8217;s previous incarnations, it would freshen an out-of-date cache before displaying it. The assumption was that every once in a while, someone might have to wait a few more seconds before seeing your blog page. However, everyone would always see an up-to-date record of your tweets. (Where &#8220;up-to-date&#8221; means &#8220;no more than 5 minutes old, absolute tops&#8221;. If you tweet so relentlessly that that&#8217;s a problem, you probably don&#8217;t have enough time to keep up your blog&#8230;)</p>
<p>Now that we know that Twitter can take over 5 minutes to give you the data needed to freshen your tweets cache, that design is not acceptable. Instead, Hummingbird is now committed to showing the contents of your tweets cache as quickly as possible, and <em>only then</em> does it fork the cache-update process into the background.</p>
<p>This means that, <em>if you&#8217;re not using cron</em> or some other automatic job-scheduling facility to run Hummingbird every 5 minutes, visitors who arrive at your blog after a period of inactivity will see an out-of-date, stale listing of your tweets. </p>
<p>If you have a cron job set to keep Hummingbird fresh, you&#8217;ll be fine. (A page view will also trigger an update, so if you get so much traffic that there&#8217;s never a 5-minute period during which your page doesn&#8217;t get hit, you&#8217;ll also be fine.)</p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2009/08/20/hummingbird-updated-to-version-0-60/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An Installation Shell-Script for Palm Pr&#275; Developers</title>
		<link>http://kagan.mactane.org/blog/2009/08/02/an-installation-shell-script-for-palm-pre-developers/</link>
		<comments>http://kagan.mactane.org/blog/2009/08/02/an-installation-shell-script-for-palm-pre-developers/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 22:28:16 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[my projects]]></category>
		<category><![CDATA[Palm Pre]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[shell scripting]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=101</guid>
		<description><![CDATA[Last week, I wrote that I'd been working on a script to easily install homebrew apps on the Palm Pr&#275;. It now looks like there are much better ways to handle such things&#160;&#8212; I've become quite a fan of fileCoaster, myself, and of course webOSQuickInstall is a wonderful piece of work, as well. But just [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, I wrote that I'd been working on a script to easily install homebrew apps on the Palm Pr&#275;. It now looks like there are much better ways to handle such things&nbsp;&mdash; I've become quite a fan of fileCoaster, myself, and of course webOSQuickInstall is a wonderful piece of work, as well. But just in case anyone might find this shell script useful, I'll release it for general use.
</p>
<p><strong>Assumptions</strong>
</p>

<ol>
	<li>You have a web-accessible server where you put your development .ipk files.</li>
	<li>You can ssh into your Pr&#275;.</li>
</ol>

<p><strong>Download</strong>
</p>
<p>You can download the script at <a href="http://kai.mactane.org/software/libraries/download/homebrew.sh">http://kai.mactane.org/software/libraries/download/homebrew.sh</a>.
</p>
<p><strong>Installation</strong>
</p>
<p>Just drop the shell script into your home directory and make it executable. If you want to be able to use the "my" argument, you'll also need to edit the three configuration variables at the beginning: MY_HOSTNAME, STDPATH, and STDVERSION.
</p>
<p><strong>Usage</strong>
</p>
<p>For most purposes, you'll just want to install your own package that you've been working on. Assuming you've set the config variables correctly, you can just type <code>./homebrew.sh my <em>appname</em></code>, where the <em>appname</em> is the base name of your package.
</p>
<p>If you're installing multiple .ipks and you don't need to restart the GUI manager for each one, you can use the "skip" command on all but the last:
</p>
<p><code>./homebrew.sh skip my foo<br />
./homebrew.sh skip my bar<br />
./homebrew.sh skip my baz<br />
./homebrew.sh my quux
</code>
</p>
<p>You can also supply a complete URL: <code>./homebrew.sh http://forums.precentral.net/spe_attachment/download-23971-com.palm.net.precoder.fcoaster_1.0.2_all.ipk</code> will download and install fileCoaster, so you won't have to mess with my script any more.
</p>
<p><strong>What It Does</strong>
</p>
<p>It automates the process of <a href="http://www.webos-internals.org/wiki/Installing_Homebrew_Apps_With_A_Rooted_Pr&#275;">installing homebrew apps with a rooted Pr&#275;</a>, as described on the webOS Internals wiki. Basically, it remounts the root partition in read-write mode, <code>wget</code>s your .ipk file, installs it, does the "Good Housekeeping" backup, remounts the root partition in read-only mode again, and then restarts the GUI manager.
</p>

]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2009/08/02/an-installation-shell-script-for-palm-pre-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Announcing Hummingbird</title>
		<link>http://kagan.mactane.org/blog/2009/05/27/announcing-hummingbird/</link>
		<comments>http://kagan.mactane.org/blog/2009/05/27/announcing-hummingbird/#comments</comments>
		<pubDate>Wed, 27 May 2009 20:01:06 +0000</pubDate>
		<dc:creator>Kai MacTane</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[announcements]]></category>
		<category><![CDATA[my projects]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://kai.mactane.org/blog/?p=57</guid>
		<description><![CDATA[If you read Coyote Tracks*, you&#8217;ve probably noticed that I recently set up a thing over there in the right-hand side that says &#8220;My Latest Tweets&#8221;. At first, that was just a little PHP widget that I&#8217;d hacked together myself. But then I realized it could actually be useful to other people, because it does [...]]]></description>
			<content:encoded><![CDATA[<p>If you read <cite>Coyote Tracks</cite>*, you&#8217;ve probably noticed that I recently set up a thing over there in the right-hand side that says &#8220;My Latest Tweets&#8221;. At first, that was just a little PHP widget that I&#8217;d hacked together myself. But then I realized it could actually be useful to other people, because it does a bunch of things that many of the other &#8220;latest tweets&#8221; widgets in existence <em>don&#8217;t</em> do.</p>
<p>So I decided to get it cleaned up and make a real, distributable software package out of it. That took a few days, especially when I started banging on it, and trying to ensure that it had a prayer of working on anyone else&#8217;s server. Plus there was the time involved for writing the docs.</p>
<p>But now that all of that stuff is done, I am pleased to announce: <a href="/software/hummingbird/">Hummingbird</a>. A lightweight, pretty, and compact gizmo for displaying your latest tweets on a blog or other PHP-powered web page.</p>
<p>* And if you don&#8217;t read <cite>Coyote Tracks</cite>&#8230; what the heck is wrong with you? *g*</p>
]]></content:encoded>
			<wfw:commentRss>http://kagan.mactane.org/blog/2009/05/27/announcing-hummingbird/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

