<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>plasticular inscriptor</title>
	
	<link>http://www.plasticstare.com/plains</link>
	<description />
	<lastBuildDate>Tue, 17 Aug 2010 23:57:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/plasticstare" /><feedburner:info uri="plasticstare" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Flash Text Metrics</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/kvq0llR9P4I/</link>
		<comments>http://www.plasticstare.com/plains/2010/08/17/flash-text-metrics/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 23:57:21 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[actionscript]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2010/08/17/flash-text-metrics/</guid>
		<description><![CDATA[via blog.six4rty.ch I like the article at http://blog.six4rty.ch/2010/07/31/as3-multiline-textfields-and-line-metrics/, mainly because of this graphic. I found it somewhere before long ago (maybe the same place) &#8212; it is a big help when dealing with customized text layout situations in flash where you have to do manual baseline aligment and such. Posted via email from micro-plains]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<div class="posterous_bookmarklet_entry"> <a href='http://posterous.com/getfile/files.posterous.com/plains/ljpuIsrJznGcsDckbFoCAoDzyGmgDwcCxqADhcgpxvuCgChszHglDvEnzIdm/media_httpblogsix4rty_xbzbq.jpg.scaled1000.jpg'><img src="http://posterous.com/getfile/files.posterous.com/plains/ljpuIsrJznGcsDckbFoCAoDzyGmgDwcCxqADhcgpxvuCgChszHglDvEnzIdm/media_httpblogsix4rty_xbzbq.jpg.scaled500.jpg" width="500" height="335"/></a>
<div class="posterous_quote_citation">via <a href="http://blog.six4rty.ch/wp-content/uploads/2010/07/text-metrics.jpg">blog.six4rty.ch</a></div>
<p>I like the article at <a href="http://blog.six4rty.ch/2010/07/31/as3-multiline-textfields-and-line-metrics/">http://blog.six4rty.ch/2010/07/31/as3-multiline-textfields-and-line-metrics/</a>, mainly because of this graphic. I found it somewhere before long ago (maybe the same place) &#8212; it is a big help when dealing with customized text layout situations in flash where you have to do manual baseline aligment and such.</p>
</div>
<p style="font-size: 10px;"> <a href="http://posterous.com">Posted via email</a>  from <a href="http://plains.posterous.com/flash-text-metrics">micro-plains</a> </p>
</p></div>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/kvq0llR9P4I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2010/08/17/flash-text-metrics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2010/08/17/flash-text-metrics/</feedburner:origLink></item>
		<item>
		<title>More Orange. Morelomo.</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/fzoVkg6o2oE/</link>
		<comments>http://www.plasticstare.com/plains/2010/07/28/more-orange-morelomo/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 06:58:28 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2010/07/28/more-orange-morelomo/</guid>
		<description><![CDATA[via flickr.com I&#8217;ve been playing around with the MoreLomo app for iPhone&#8230;in lieu of getting a Harenezumi&#8230; Posted via email from Intafonetic]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<div class="posterous_bookmarklet_entry"> <img src="http://posterous.com/getfile/files.posterous.com/intafon/godjfjFhBCHmCourohcaIxEiHBsrgbheaAfHvhnHGlcrgwsCIloDzfAmHyzg/media_httpfarm5static_dpHqB.jpg.scaled500.jpg" width="375" height="500"/>
<div class="posterous_quote_citation">via <a href="http://www.flickr.com/photos/intafon/4839567587/">flickr.com</a></div>
<p>I&#8217;ve been playing around with the MoreLomo app for iPhone&#8230;in lieu of getting a Harenezumi&#8230;</p>
</div>
<p style="font-size: 10px;">  <a href="http://posterous.com">Posted via email</a>   from <a href="http://intafon.posterous.com/more-orange-morelomo">Intafonetic</a>  </p>
</p></div>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/fzoVkg6o2oE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2010/07/28/more-orange-morelomo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2010/07/28/more-orange-morelomo/</feedburner:origLink></item>
		<item>
		<title>ParisWest: Fettes Brot – Bettina (featuring Walter by Mykita)</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/lFusLHOLQ60/</link>
		<comments>http://www.plasticstare.com/plains/2010/07/28/pariswest-fettes-brot-bettina-featuring-walter-by-mykita/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 05:24:50 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2010/07/28/pariswest-fettes-brot-bettina-featuring-walter-by-mykita/</guid>
		<description><![CDATA[via pariswestoptical.blogspot.com This is what happens when I idly look at eyeglass frames&#8230; Posted via email from Intafonerous]]></description>
			<content:encoded><![CDATA[<div class='posterous_autopost'>
<div class="posterous_bookmarklet_entry"> <embed src="http://widgets.vodpod.com/w/video_embed/Groupvideo.1467514" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowscriptaccess="never" wmode="transparent" height="350" flashvars="" width="425" />
<div class="posterous_quote_citation">via <a href="http://pariswestoptical.blogspot.com/2008/08/fettes-brot-bettina-featuring-walter-by.html">pariswestoptical.blogspot.com</a></div>
<p>This is what happens when I idly look at eyeglass frames&#8230;</p>
</div>
<p style="font-size: 10px;">  <a href="http://posterous.com">Posted via email</a>   from <a href="http://intafon.posterous.com/pariswest-fettes-brot-bettina-featuring-walte">Intafonerous</a>  </p>
</p></div>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/lFusLHOLQ60" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2010/07/28/pariswest-fettes-brot-bettina-featuring-walter-by-mykita/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2010/07/28/pariswest-fettes-brot-bettina-featuring-walter-by-mykita/</feedburner:origLink></item>
		<item>
		<title>Fix the Focus Rect for fl.controls.TextInput in AS3</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/Gc4s70dxYds/</link>
		<comments>http://www.plasticstare.com/plains/2009/05/28/fix-the-focus-rect-for-flcontrolstextinput-in-as3/#comments</comments>
		<pubDate>Thu, 28 May 2009 22:35:04 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash as3 component textinput]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=288</guid>
		<description><![CDATA[The AS3 components in CS4 allow for visually showing that the component is focused, using a code generated or libary asset sprite as the focusRect. This can be changed using the focusRect property or through the #setStyle method inherited by all UIComponent's. The outlying size of the focusRect can also be altered by setting the [...]]]></description>
			<content:encoded><![CDATA[<p>The AS3 components in CS4 allow for visually showing that the component is focused, using a code generated or libary asset sprite as the focusRect. This can be changed using the focusRect property or through the #setStyle method inherited by all UIComponent's. The outlying size of the focusRect can also be altered by setting the focusRectPadding style, which designates the number of pixels outside the size of the component that the focusRect sits. Unfortunately, if you are using TextInput, and likely TextArea, setting this padding to 0 results in hiding the focusRect behind the component skin (the grey outline for the TextInput). This is a result of the fact that the UIComponent#drawFocus sets the childIndex of the focusRect sprite to 0, essentially placing it behind the TextInput border. I wanted to create a subclass of TextInput for which I didn't need to reset several defaults every time I used it, so I created the class below, which also fixes the 0 padding focusRect issue.<br />
<span id="more-288"></span></p>
<pre class="brush: as3;">
package {

	import fl.controls.TextInput;
	import fl.managers.IFocusManagerComponent;

	/**
	 * Extends the TextInput component in order to set the default width and
	 * height, and sets the focusRectPadding to 0 (so the focus rectangle lies
	 * directly on top of the grey text input border skin.
	 */
	public class TextInput2 extends TextInput implements IFocusManagerComponent {

		/**
		 * @constructor
		 */
		public function TextInput2() {
			super();
			textField.width = 1;
			textField.height = 1;
			width = 64;
			height = 18;
			setStyle(&quot;focusRectPadding&quot;, 0);
		}

		/**
		 * The UIComponent class, when the component is in focus, creates the
		 * uiFocusRect and sets it at childIndex 0. Unfortunately, the text input
		 * skin is then above the focus rect, and so the focus rect disappears
		 * when the focusRectPadding is 0. This calls the parent implementation,
		 * then ensures that the focus rect is visible by changing its
		 * child index.
		 */
		override public function drawFocus(draw:Boolean):void {
			super.drawFocus(draw);

			if (uiFocusRect != null) {
				setChildIndex(uiFocusRect, numChildren - 1);
			}
		}
	}
}
</pre>
<p>UPDATE: I updated the above script to set the size of the TextField in the TextInput component to be 1x1. This also fixes the problem that the TextField is created as 100x100 pixels when it is first created (as are all dynamically generated text fields). This matters if you wish to use any customized layout (such as the Yahoo astra layout managers), and don't want to have to call drawNow() or wait a frame to finalize layout settings in a UI.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/Gc4s70dxYds" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2009/05/28/fix-the-focus-rect-for-flcontrolstextinput-in-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2009/05/28/fix-the-focus-rect-for-flcontrolstextinput-in-as3/</feedburner:origLink></item>
		<item>
		<title>Line-width on Shapes in Flash, and scale9Grid Results</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/A4i7VDneHAQ/</link>
		<comments>http://www.plasticstare.com/plains/2009/05/20/line-width-on-shapes-in-flash/#comments</comments>
		<pubDate>Wed, 20 May 2009 22:18:42 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[linewidth]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[scale9Grid]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=275</guid>
		<description><![CDATA[A quick note regarding something I've been meaning to post a short note about for a while, for those that might be running into problems resulting from shapes drawn in flash with an outline. I ran into this recently again, so I thought I'd post for any concerned parties out there. Regardless of whether or [...]]]></description>
			<content:encoded><![CDATA[<p>A quick note regarding something I've been meaning to post a short note about for a while, for those that might be running into problems resulting from shapes drawn in flash with an outline. I ran into this recently again, so I thought I'd post for any concerned parties out there.</p>
<p>Regardless of whether or not a shape, such as a rectangle, is drawn in Flash with a hairline border line, or a borderline of 1, the result on an unscaled shape is essentially the same. The crisp outline of the shape is drawn with a pixel width of 1. The downside of this occurs when trying to create pixel perfect UI's, and especially those using shapes with a scalenine grid assigned to them.<br />
<span id="more-275"></span><br />
Using the AS3 drawing API, you can create a rectangle that has a lineStyle with a width of 1, and some fill, which would look something like this:</p>
<pre class="brush: as3; light: true;">var sh:Shape = new Shape();
sh.graphics.lineStyle(1, 0xFF0000);
sh.graphics.beginFill(0xFF6600);
sh.graphics.drawRect(0, 0, 100, 100);
sh.graphics.endFill();
addChild(sh);
trace(&quot;Size: &quot; + sh.width + &quot; x &quot; + sh.height);</pre>
<p>The code above so draws an orange rectangle with a red border that is <em>201</em> pixels wide and <em>101</em> pixels tall. If you don't know why, the reason is because flash draws the line <em>on</em> the pixel width and height of the rectangle with a line size of 1. This makes your shape 201 x 101; thankfully, Flash <em>will</em> report the width and height correctly as 201 x 101.</p>
<p>This gets stickier if you have a shape that is used as a component skin, and has a scale9Grid applied to it. In this case you will likely be working with a component that you <em>expect</em> to take up 200x100 pixels on the stage when you tell it to be that size. However, if the skin used features "line" outlines at its borders, your component will get drawn on the stage with extra pixels. If you dig into the Flash component skins, you will notice that most of the skins use <em>fills</em> for any borders on the shapes (even 1 pixel wide borders) so that the scale9Grid enabled shapes will scale correctly to the pixel. That being said, the proper way to draw the simple skin shape in this case, programmatically, would be:</p>
<pre class="brush: as3; light: true;">
var sh2:Shape = new Shape();
sh2.graphics.beginFill(0xFF0000);
sh2.graphics.drawRect(0, 0, 200, 100);
sh2.graphics.beginFill(0xFF6600);
sh2.graphics.drawRect(1, 1, 198, 98);
sh2.graphics.endFill();
addChild(sh2);
trace(&quot;Size: &quot; + sh2.width + &quot; x &quot; + sh2.height);
</pre>
<p>Incidentally, this also often cleans up some anti-aliasing at the corners of rectangular shapes which I believe is cause by some weirdness in the way the "caps" are drawn on the shapes. (but don't quote me on that...)</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/A4i7VDneHAQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2009/05/20/line-width-on-shapes-in-flash/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2009/05/20/line-width-on-shapes-in-flash/</feedburner:origLink></item>
		<item>
		<title>AS3 ComboBox close error.</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/HftcPJkoiEs/</link>
		<comments>http://www.plasticstare.com/plains/2009/04/13/as3-combobox-close-error/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 17:45:38 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[combobox]]></category>
		<category><![CDATA[flash]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=271</guid>
		<description><![CDATA[Just a quick note for those possibly searching for ComboBox AS3 and "Cannot access a property or method of a null object reference." When using the AS3 ComboBox, the above error will be thrown when the ComboBox loses focus, if the ComboBox is in its open state and it has lost reference to the stage. [...]]]></description>
			<content:encoded><![CDATA[<p>Just a quick note for those possibly searching for ComboBox AS3 and "Cannot access a property or method of a null object reference." When using the AS3 ComboBox, the above error will be thrown when the ComboBox loses focus, if the ComboBox is in its open state and it has lost reference to the stage. In other words, if you have a UI pane that contains the ComboBox, and you are removing the pane, make sure to first call #close() on all instances of the ComboBox, then remove the container from its parent container. (This can be replicated by clicking open the ComboBox, then clicking on the stage.) Unfortunately, the isOpen property for the ComboBox is not publicly accessible, but the #close() method is a NOOP if it is already closed, so just making sure to close it is no big deal. I ran into this error because I was listening for a stage focus event which triggered the immediate removal of the container pane in question, but I didn't find any relevant references in a quick web search, so I thought I'd make a quick post with the solution.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/HftcPJkoiEs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2009/04/13/as3-combobox-close-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2009/04/13/as3-combobox-close-error/</feedburner:origLink></item>
		<item>
		<title>Liven up Livedocs: Search from Quicksilver</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/Lv0AEkkHXgc/</link>
		<comments>http://www.plasticstare.com/plains/2009/04/01/liven-up-livedocs-search-from-quicksilver/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 20:10:07 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[actionscript]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[quicksilver]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[livedocs]]></category>
		<category><![CDATA[techtip]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=263</guid>
		<description><![CDATA[Several months ago I jumped back into AS3 development for flash and I once again, therefore, jumped back into using the actionscript livedocs. LiveDocs are great, but I've always found navigating to them to be a big chore, even from a bookmark in a browser. In addition, the search functionality for LiveDocs to often be [...]]]></description>
			<content:encoded><![CDATA[<p>Several months ago I jumped back into AS3 development for flash and I once again, therefore, jumped back into using the actionscript livedocs. LiveDocs are great, but I've always found navigating to them to be a big chore, even from a bookmark in a browser. In addition, the search functionality for LiveDocs to often be frustrating. The other day it occurred to me, however, that the same search capability used to trigger <a href="http://www.google.com/url?sa=U&amp;start=1&amp;q=http://yubnub.org/&amp;ei=SsbTSbeiMZ-WswOypJ2tCg&amp;sig2=xoz9DuLQzGYPXqMUyfD-9Q&amp;usg=AFQjCNHPiIwr8PXYpzOAd3YbVRqRtPbtuA">yubnub</a> commands from Quicksilver could be implemented to search LiveDocs as well. Check out this tutorial at <a href="http://www.lifeclever.com/quicksilver-yubnub-rapid-web-searches-and-more/">lifeclever</a> to find out how to access yubnub from Quicksilver. The same principle can be used for searching live docs (and for searching the adobe help docs for flash 10 player AS3. Instead of using using the search URL <code>"qss-http://www.yubnub.org/parser/parse?command=***", use the following query URLs in a </code><code>quicksilver </code><code>web search trigger:</code></p>
<p>Flash 9 LiveDocs:  <code>qss-http://www.google.com/search?&amp;btnI&amp;q=site%3Ahttp%3A%2F%2Flivedocs.adobe.com%2Fflash%2F9.0%2FActionScriptLangRefV3%2F+***</code></p>
<p>Flash 10 Help Docs:  <code>qss-http://www.google.com/search?&amp;btnI&amp;q=site%3Ahttp%3A%2F%2Fhelp.adobe.com%2Fen_US%2FAS3LCR%2FFlash_10.0%2F+***</code></p>
<p>Basically, since there is no convenient way I found to use the search mechanisms on the Adobe site, these queries are running a google lucky search on the wildcard applied search term, while restricting the search to the site pertinent to the docs of interest. Running the assigned key command will trigger the Quicksilver text entry box; simply enter the term, such as "vector" for Flash 10, and the google lucky search will be performed. Since the lucky search is restricted to the livedocs and the help docs, the first search result returned will be the frameless html page in the docs for the search term. When searching for the docs for a specific actionscript term, this cuts the search time for a term down to a couple of seconds, which is highly convenient...</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/Lv0AEkkHXgc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2009/04/01/liven-up-livedocs-search-from-quicksilver/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2009/04/01/liven-up-livedocs-search-from-quicksilver/</feedburner:origLink></item>
		<item>
		<title>Quicksilver Adium Message Script</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/d22G7Mzio8w/</link>
		<comments>http://www.plasticstare.com/plains/2008/08/07/quicksilver-adium-message-script/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 03:59:18 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[applescript]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[quicksilver]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=247</guid>
		<description><![CDATA[The Adium plug-in for Quicksilver has been kaput for quite a while now, and I have found myself as of late with folks at work I need to contact who keep themselves in the invisible state in their messenger (like my manager . I have come to loath having to go to Adium and go [...]]]></description>
			<content:encoded><![CDATA[<p>The Adium plug-in for Quicksilver has been kaput for quite a while now, and I have found myself as of late with folks at work I need to contact who keep themselves in the invisible state in their messenger (like my manager <img src='http://www.plasticstare.com/plains/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . I have come to loath having to go to Adium and go to the menu bar with the mouse and select "show offline contacts" and then find the person I want to IM and click their name, then "hide offline contacts" again. I also don't care about having to use the contact list interface anyway, really, if I didn't have to, so I wrote this applescript to use in Quicksilver.</p>
<p>To install, uncompress this script and put it in your ~/Library/Application Support/Quicksilver/Actions directory, and restart Quicksilver.</p>
<p>To use, invoke Quicksilver and type "." to enter text mode. Type all or part of the name of the person you wish to IM. Hit <Tab> and type "Adium" (or "Ad" or "Adi") and select "AdiumContactor" with the arrow keys and hit <Return>.</p>
<p>The script will search for any instance of the text you enter in your contacts, both in their IM names, as well as their display names. If one match is found, it will open an IM window for that contact. If multiple contacts are found, a window will open allowing you to select the one you want, using whatever account it belongs to. (in other words, if you search "bil", you will be able to choose from "Bill Todd", bileInMyStomach@gmail.com, actionscriptAbility@hotmail.com, etc.) Careful using some search terms, such as "com", as it will return all your MSN messenger accounts (whose screennames are defined by the contact's email address)</p>
<p><span class="downloadable"><em>PlasticWare Downloadable ::</em><br />
AdiumContactor for Quicksilver (Aug. 07, 2008)<br />
Download (~10,000 bytes) :: <a href="http://www.plasticstare.com/plasticware/applescript/AdiumContactor.zip">AdiumContactor.zip</a></span></p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/d22G7Mzio8w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/08/07/quicksilver-adium-message-script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/08/07/quicksilver-adium-message-script/</feedburner:origLink></item>
		<item>
		<title>quicksilver, curl, applescript, proxy-config, twitter</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/D62FkWPTvuQ/</link>
		<comments>http://www.plasticstare.com/plains/2008/08/05/quicksilver-curl-applescript-proxy-config-twitter/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 02:11:23 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[applescript]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[quicksilver]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=238</guid>
		<description><![CDATA[This explains how to use Quicksilver to send posts to Twitter from within a firewall. I made this my little lunch project today. First, let's start with the basics. If you set up your work proxy server in your network config, there is not really any way to easily retrieve those settings. Let's say you [...]]]></description>
			<content:encoded><![CDATA[<p>This explains how to use Quicksilver to send posts to Twitter from within a firewall. I made this my little lunch project today. First, let's start with the basics. If you set up your work proxy server in your network config, there is not really any way to easily retrieve those settings. Let's say you are using http://proxy.myco.com:3128 for your http proxy settings. In the Terminal, you have not actually set your http_proxy environment variable. <a href="http://www.cs.usyd.edu.au/%7Emassad/project-proxy-config.html">Mark Assad has proxy-config</a> available for download. You can grab that, put it in one of your path directories, and then in your .bashrc or .zshrc file the following:</p>
<pre class="brush: plain; light: true;">export http_proxy=`proxy-config -h`
export https_proxy=`proxy-config -s`
export ftp_proxy=`proxy-config -f`</pre>
<p>This will set your environment proxy variables to whatever they are currently set to in your Network Preferences. I got part of this also from <a href="http://tomayko.com/writings/os-x-network-location-support-from-the-command-line">Ryan Tomayko's blog</a>.This is important if you are inside a firewall at work.</p>
<p>The simplest way to post a tweet to twitter from the command line would be to do so using cURL. If you don't have cURL installed, you will need to install it. If you aren't familiar with cURL, it is basically a command-line tool for grabbing html documents (or whatever else). See <a href="http://www.plasticstare.com/plains/2008/03/20/copy-and-continue-copying-large-files-over-file-sharing/">this post</a> for another use. I got this idea, as well as the applescript for using it with Quicksilver, from <a href="http://blog.codahale.com/2007/01/15/tweet-twitter-quicksilver/">Coda Hale's blog</a>. Read that post for a full explanation of using Quicksilver and an applescript for posting to twitter from Quicksilver -- it has a pretty thorough explanation.</p>
<p>If you are inside a firewall, however, this will likely fail because the cURL command requires that the proxy settings be provided. So, I took the script from Coda's post, combined it with the comment on his post from Daan Kortenbach, and then enabled that for use with the system's proxy settings. The new script follows:</p>
<pre class="brush: plain;">
using terms from application &quot;GrowlHelperApp&quot;
	-- Register Growl
	on growlRegister()
		tell application &quot;GrowlHelperApp&quot;
			register as application &quot;Tweet&quot; all notifications {&quot;Alert&quot;} default notifications {&quot;Alert&quot;} icon of application &quot;Quicksilver.app&quot;
		end tell
	end growlRegister

	-- Notify using Growl
	-- Example: growlNotify(&quot;This is an Alert&quot;,&quot;This is a test of the Growl Alert System&quot;)
	on growlNotify(grrTitle, grrDescription)
		tell application &quot;GrowlHelperApp&quot;
			notify with name &quot;Alert&quot; title grrTitle description grrDescription application name &quot;Tweet&quot;
		end tell
	end growlNotify
end using terms from

using terms from application &quot;Quicksilver&quot;
	on process text tweet
		tell application &quot;Keychain Scripting&quot;
			set twitter_key to first Internet key of current keychain whose server is &quot;twitter.com&quot;
			set twitter_login to quoted form of (account of twitter_key &amp; &quot;:&quot; &amp; password of twitter_key)
		end tell
		set twitter_status to quoted form of (&quot;status=&quot; &amp; tweet)

                -- I have proxy-config in a directory &quot;~/bin&quot;
		set the_proxy to do shell script &quot;~/bin/proxy-config -h&quot;

		try
			if (the_proxy = &quot;&quot;) then
				set results to do shell script &quot;curl --user &quot; &amp; twitter_login &amp; &quot; --data-binary &quot; &amp; twitter_status &amp; &quot; http://twitter.com/statuses/update.json&quot;
			else
				set results to do shell script &quot;curl --proxy &quot; &amp; the_proxy &amp; &quot; --user &quot; &amp; twitter_login &amp; &quot; --data-binary &quot; &amp; twitter_status &amp; &quot; http://twitter.com/statuses/update.json&quot;
			end if
			growlRegister()
			growlNotify(&quot;Tweet Sent&quot;, tweet)
		on error
			(* In case curl fails for some reason,  alert us *)
			growlRegister()
			growlNotify(&quot;Error&quot;, &quot;There was an error sending your tweet.&quot;)
		end try

	end process text
end using terms from
</pre>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/D62FkWPTvuQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/08/05/quicksilver-curl-applescript-proxy-config-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/08/05/quicksilver-curl-applescript-proxy-config-twitter/</feedburner:origLink></item>
		<item>
		<title>Breakaway Saves My Ears</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/5qSNxWzmlME/</link>
		<comments>http://www.plasticstare.com/plains/2008/07/30/breakaway-saves-my-ears/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 18:15:23 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=235</guid>
		<description><![CDATA[I wrote a post a while back about the pesky habit of my MacBook Pro trying to make me go deaf. I plug my laptop into a stereo via the headphone jack at home and listen to music. In order to get the sound levels right at home, I increase the volume to full volume [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a post a while back about the pesky habit of my MacBook Pro trying to make me go deaf. I plug my laptop into a stereo via the headphone jack at home and listen to music. In order to get the sound levels right at home, I increase the volume to full volume (otherwise I have to turn up the stereo and I get lots of noise and hum). When I leave in the morning, I unplug my laptop and the MacBook resets its volume to the pre-headphone jack volume. Fine. Unfortunately, when I get to work, I plug-in my headphones, start checking email, hit my keyboard command for iTunes play, and proceed to deafen myself with full volume, as the machine automatically resets the system volume to the previous headphone jack volume level.</p>
<p>Today I deafened myself, but upon searching, discovered <a href="http://balthamos.awardspace.com/applications/">Alloc Init</a>, which features a nice little app called <a href="http://www.macupdate.com/info.php/id/23361">Breakaway</a>. The main feature of this app is to pause iTunes or launch the screensaver when the headphone jack status is changed (plugged in or out). However, the nicer thing about the app is that it also allows the user to trigger an applescript on the same events. I created the following script called setVolumeTo20of100:</p>
<p><code>tell application "Finder"<br />
	set volume output volume 20<br />
end tell</code></p>
<p>After creating a custom trigger in Breakaway, my system volume will always be reset to 20 when I plug in something to the headphone jack. Since I don't care about having to increase the volume at home automatically, this is fine for now, since I will most importantly not deafen myself in the morning at work. I will perhaps post an update later that checks the the network preferences for the current location for setting the volume automatically based on location, which will automate things a little more. Meanwhile, I highly recommend this nice little app. (Note: the interface for creating custom triggers is a little clunky, so you may have to play with it a little first, but it does work -- just be patient.)</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/5qSNxWzmlME" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/07/30/breakaway-saves-my-ears/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/07/30/breakaway-saves-my-ears/</feedburner:origLink></item>
		<item>
		<title>resurfacing_2008_r0.2*</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/o0rPXSNNuzc/</link>
		<comments>http://www.plasticstare.com/plains/2008/07/13/resurfacing_2008_r02/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 11:05:52 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[resurface]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=227</guid>
		<description><![CDATA[The second stage of resurfacing the site is "finished." The theme is still based on Sandbox, but I have modified some of the files so far to add some styling content that wasn't possible with the theme as it was. I had considered adding a second theme layer on top of Sandbox and then utilize [...]]]></description>
			<content:encoded><![CDATA[<p>The second stage of resurfacing the site is "finished." The theme is still based on Sandbox, but I have modified some of the files so far to add some styling content that wasn't possible with the theme as it was. I had considered adding a second theme layer on top of Sandbox and then utilize a thin CSS-only styling theme on top of that, but it seemed like overkill. My intent was to try to get as much future code updates from Sandbox for free, but if the theme in progress gets wonky, then it will just be time to rework the site again. At this point, the only files that have really changed are style.css, header.php, footer.php, and sidebar.php. The styling is still incomplete. The next step is to finish flushing out and refining the generic styles, as well as flush out some of the other pieces that need styling, such as the Twitter and Flickr feeds. At that point, it will be time to add in a couple of other things as well.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/o0rPXSNNuzc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/07/13/resurfacing_2008_r02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/07/13/resurfacing_2008_r02/</feedburner:origLink></item>
		<item>
		<title>resurfacing_2008_r0.1*</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/vI4HhY6jvVs/</link>
		<comments>http://www.plasticstare.com/plains/2008/07/11/resurfacing_2008_r01/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 08:44:14 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[resurface]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=226</guid>
		<description><![CDATA[The shame: I realized the other day that the "design" that was current on this site until today had been there for a really long time. Since I have been working on other things and just posting here and there, I had also neglected the fact that there were some massive breakages that just looked [...]]]></description>
			<content:encoded><![CDATA[<p>The shame: I realized the other day that the "design" that was current on this site until today had been there for a <em>really</em> long time. Since I have been working on other things and just posting here and there, I had also neglected the fact that there were some massive breakages that just looked really bad, as if something had been attempted and had failed.</p>
<p>The solution: I decided it was finally time to resurface the site, but do so quickly so as to actually get things working again. So, the current state you see here is the result. Not finished, but at least not entirely broken. I did a little research, and decided that I would try out the <a href="http://www.plaintxt.org/themes/sandbox/">Sandbox theme</a>. I appreciated what they are trying to do, and I also decided that I should go ahead and start basically from scratch with a foundation that has some nice semantic markup to build on.</p>
<p>The project: What you see here in progress is actually a new theme that I am building on top of Sandbox, tentatively called Plastic Laminate, utilizing pretty much just new CSS on top of the existing Sandbox for now, and then I may actually do some reskinning or plugin building as well, to cover any areas missing content I want. That being said, if things look a bit wonky or like a blog with little design effort applied at the moment, that's because its still in transition...</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/vI4HhY6jvVs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/07/11/resurfacing_2008_r01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/07/11/resurfacing_2008_r01/</feedburner:origLink></item>
		<item>
		<title>“Googling” Flash</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/ypJV8H1wqSw/</link>
		<comments>http://www.plasticstare.com/plains/2008/07/01/googling-flash/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 21:25:28 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=223</guid>
		<description><![CDATA[I have to say, this is fairly interesting news. Flash was adopted early by many web-shops wanting to give the user an "integrated media experience" that couldn't be provided by straight html sites. Since then, the tools have been developed to do site analytics of flash web applications, and flash and the flex framework have [...]]]></description>
			<content:encoded><![CDATA[<p>I have to say, this is fairly interesting news. Flash was adopted early by many web-shops wanting to give the user an "integrated media experience" that couldn't be provided by straight html sites. Since then, the tools have been developed to do site analytics of flash web applications, and flash and the flex framework have come a long way toward optimizing development work-flow. Unfortunately, one of the big things that has been missing is search, or rather search recognition; ironically, many Flash sites are really marketing driven advertising sites, yet their content has not historically been searchable through search engines such as Google. A flash site for "Product XYZ" would likely get less of a ranking on search engines than a blog entry discussing XYZ or a flickr image of someone's dog named "XYZ." Looks like Google is looking to level that playing field by now making the move to <a title="google crawls flash" href="http://googleblog.blogspot.com/2008/06/google-learns-to-crawl-flash.html">crawl flash sites</a> as well. Should be interesting to see how this effects search, and where this takes advertising and adwords technologies and the like.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/ypJV8H1wqSw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/07/01/googling-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/07/01/googling-flash/</feedburner:origLink></item>
		<item>
		<title>Document Editing in OSX Preview</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/-x1M0RIYmoM/</link>
		<comments>http://www.plasticstare.com/plains/2008/06/19/document-editing-in-osx-preview/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 22:36:39 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=222</guid>
		<description><![CDATA[The biggest problem I've ever had with PDF files is the fact that I don't own Adobe Acrobat Pro. So when it comes to making multipage designed documents, I've either been stuck doing some creative artboard configuration in Illustrator, or stuck "printing" documents (such as from Photoshop, etc.) to PDF and then using a command [...]]]></description>
			<content:encoded><![CDATA[<p>The biggest problem I've ever had with PDF files is the fact that I don't own Adobe Acrobat Pro. So when it comes to making multipage designed documents, I've either been stuck doing some creative artboard configuration in Illustrator, or stuck "printing" documents (such as from Photoshop, etc.) to PDF and then using a command line script to merge the files together.</p>
<p>I found this nice <a title="macworld preview article" href="http://www.macworld.com/article/132468/2008/04/workingmac2504.html">MacWorld</a> article that discusses some of the newer (or at least new to me) functionality in Preview for OSX, which details some really nice features, including document merging and annotation, as well as some nice formatting features. Looking forward to using this for making designeriffic podcast/mix PDF booklets, multipage Illustrator-formatted resumes, and whatever else.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/-x1M0RIYmoM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/06/19/document-editing-in-osx-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/06/19/document-editing-in-osx-preview/</feedburner:origLink></item>
		<item>
		<title>Quickfix for Quicksilver Triggers Preferences</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/vWM2SGsdodE/</link>
		<comments>http://www.plasticstare.com/plains/2008/06/18/quickfix-for-quicksilver-triggers-preferences/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 00:46:13 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[quicksilver]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=221</guid>
		<description><![CDATA[I saw several references to the problem I was having with the Triggers preferences in Quicksilver in different blogs. At issue? Well, the Triggers preferences would give me a spinner and never load. All the posts I read discussed how the app is not currently in active development and kind of left it at that [...]]]></description>
			<content:encoded><![CDATA[<p>I saw several references to the problem I was having with the Triggers preferences in Quicksilver in different blogs. At issue? Well, the Triggers preferences would give me a spinner and never load. All the posts I read discussed how the app is not currently in active development and kind of left it at that so at first I thought maybe I was just out of luck. Today, I finally got around to trying a couple of things. I don't know what the exact cause was, but for some reason the Triggers.plist file in the Application Support/Quicksilver directory was wonky. I changed its name and restarted Quicksilver and that seemed to fix the problem. I then re-added the same triggers in the prefs pane and was back to work. I *think* it had something to do with conflicting trigger id's or something in the plist file, though I am not sure. In any case, removing the old plist file fixed the issue.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/vWM2SGsdodE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/06/18/quickfix-for-quicksilver-triggers-preferences/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/06/18/quickfix-for-quicksilver-triggers-preferences/</feedburner:origLink></item>
		<item>
		<title>SMS Spam Blockage</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/Ak6KIFEA8Vc/</link>
		<comments>http://www.plasticstare.com/plains/2008/06/13/sms-spam-blockage/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 17:26:45 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=220</guid>
		<description><![CDATA[Until I actually redesign this site and create a way to manage postlets or miniposts or nanoposts... I just thought I would repost this nice little story from the New York Times on blocking SMS spam. As the author points out, the solution is not totally ironclad, but it's good to know that the mobile [...]]]></description>
			<content:encoded><![CDATA[<p>Until I actually redesign this site and create a way to manage postlets or miniposts or nanoposts... I just thought I would repost this nice little story from the New York Times on <a title="block SMS Spam" href="http://www.nytimes.com/2008/06/12/technology/personaltech/12pogue-email.html">blocking SMS spam</a>. As the author points out, the solution is not totally ironclad, but it's good to know that the mobile carriers at least recognize the issue and are starting to act on it. I feel truly weird saying it, but kudos to ATT and Verizon for getting with the program ... and come on, Sprint and Tmobile, get with it!</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/Ak6KIFEA8Vc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/06/13/sms-spam-blockage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/06/13/sms-spam-blockage/</feedburner:origLink></item>
		<item>
		<title>Safari and the Slim VM</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/7X5uvXy3zhc/</link>
		<comments>http://www.plasticstare.com/plains/2008/04/04/safari-and-the-slim-vm/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 06:45:09 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[vmware]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/?p=218</guid>
		<description><![CDATA[Having just acquired the phone, and having finally upgraded to Leopard last weekend, I started using Safari a little to get some bookmarks I wanted on the iPhone. It seemed pretty snappy, although I wasn't really putting it through any grueling paces. Since I was going through the trouble of upgrading my computer, I decided [...]]]></description>
			<content:encoded><![CDATA[<p>Having just acquired the phone, and having finally upgraded to Leopard last weekend, I started using Safari a little to get some bookmarks I wanted on the iPhone. It seemed pretty snappy, although I wasn't really putting it through any grueling paces. Since I was going through the trouble of upgrading my computer, I decided to go ahead and do some early spring cleaning as well, cutting files and unused applications, and applying a draconian filter to my process of eliminating music from my machine. (down to about 22gb of music on an 80gb drive - I promise I am trying) One BIG target for trimming on my machine was my Windows XP virtual machine that I run through Fusion. Fusion has come a long way since I started at VmWare, and I have to say, its a pretty great product (no I can't claim any credit, wrong group). I use this VM everyday at work developing and testing WebAccess (beta 2 just released last Friday), but I swear, for a fairly basic installation, it was taking up nearly 10gb of space on my drive. I was running some tests with a slim XP vm that ran at about 3gb or so (see the article on LifeHacker: <a href="http://lifehacker.com/374376/trim-down-windows-to-the-bare-essentials">http://lifehacker.com/374376/trim-down-windows-to-the-bare-essentials</a>). This slim vm also happened to have Safari 3 (and every other browser you might want to run tests with) installed on it, and since we recently got WebAccess running well on Safari I thought I would give it a spin. I was pretty amazed at what I found.</p>
<p>I ran some comparisons of Safari 3 running WebAccess *in a VM* on my MacBook against Firefox 2 running in OSX. I had heard Safari was fast, but I didn't really believe the hype, and I figured that Safari on Windows would probably be relegated to the land of second class software, like IE always was on the Mac. In all the operations managing a Server 2.0 instance, Safari was by far faster, and in most cases was nearly 3 times faster than Firefox 2. I know that Firefox 3 is supposed to be fast also, but from what I've seen so far its still fairly buggy.</p>
<p>This got me re-evaluating what to use for my daily browsing. I've been using Camino, which I switched to because it used the Gecko rendering engine, but was an OSX native application, so it played (more) nicely in the Mac environment. I had originally switched to Firefox a few years ago because it was the better alternative on the Mac, and well, out of principal, because it wasn't Safari. However, the speed of 3.0 and integration with my new mobile device has got me using it again. Now if only delicious played better with iPhone...</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/7X5uvXy3zhc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/04/04/safari-and-the-slim-vm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/04/04/safari-and-the-slim-vm/</feedburner:origLink></item>
		<item>
		<title>Lebanon, Kansas</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/r1vm6y2SylU/</link>
		<comments>http://www.plasticstare.com/plains/2008/03/30/lebanon-kansas/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 02:52:40 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[conspiracy]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2008/03/30/lebanon-kansas/</guid>
		<description><![CDATA[I decided to try out a couple of 3rd party apps for the iPhone that have to do with taking photos. The ability to glean the location of the phone and the fact that it has a built in camera makes it the perfect candidate for easy geotagged photos. I previewed a few apps. One [...]]]></description>
			<content:encoded><![CDATA[<p>I decided to try out a couple of 3rd party apps for the iPhone that have to do with taking photos. The ability to glean the location of the phone and the fact that it has a built in camera makes it the perfect candidate for easy geotagged photos. I previewed a few apps. One of them was iFlickr, which provides the user with the ability of shooting the photo up to the user's Flickr account as soon as it is taken. This was the only one I could find with this feature, but I was still pretty excited. I was a little disappointed to find out that no Exif data was actually saved (so no date or time info, no camera data, etc.), but I thought it would still be great. Well, it was pretty interesting, although the photo I first took in my apartment was about 5 blocks off, moreso a discrepancy that you would get using the iPhone Maps application.</p>
<p><a href="http://www.flickr.com/photos/intafon/2375369139/" title="lebanon_hybrid by ⌫ uɐλɹ, on Flickr"><img src="http://farm3.static.flickr.com/2286/2375369139_12714abaf9_m.jpg" alt="lebanon_hybrid" style="margin: 0pt 5px 5px 0pt" align="left" height="122" width="240" /></a> Then a strange thing happened. I took a photo at work using iFlickr, and I discovered a mysterious place in cyberspace that to my knowledge was never disclosed by William Gibson. This place is a field outside of rural Lebanon, Kansas, known by some on Google as the Cowboy Stencil Capital of the Universe. In the 2000 census, this small rural town had a population of 300. It is also apparently known as a community suffering from rural flight as documented in a 2006 New York Times article. However, to date, 836 photos have been geotagged to a field about a mile and a half to the northwest of the town center, 3 or more photos probably for each of the remaining citizens of Lebanon. Ostensibly, this is some bug in the iFlickr code where the app gets confused and default to this quaint locale, or, perhaps it is a little joke by the creator of the app. I would like to think that there is some more profound reason, and that this could be a William Gibson plot unfolding before our eyes. Regardless, this is an interesting spacial meta-tagging glitch - when you view my photo on the map, it looks as though tall buildings have sprouted from a field...</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/r1vm6y2SylU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/03/30/lebanon-kansas/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/03/30/lebanon-kansas/</feedburner:origLink></item>
		<item>
		<title>Hiragana, Katakana, Kanji on iPhone</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/UCEy1GcBHKk/</link>
		<comments>http://www.plasticstare.com/plains/2008/03/30/hiragana-katakana-kanji-on-iphone/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 02:18:37 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2008/03/30/hiragana-katakana-kanji-on-iphone/</guid>
		<description><![CDATA[Here is a really quick and rough tutorial for enabling the Japanese keyboard on your iPhone, which allows you to type in hiragana, katakana, and kanji. For some reason, even though there is rumor that the iPhone will be making its way sometime not too far from now to Japan, the Japanese language keyboard is [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a really quick and rough tutorial for enabling the Japanese keyboard on your iPhone, which allows you to type in hiragana, katakana, and kanji. For some reason, even though there is rumor that the iPhone will be making its way sometime not too far from now to Japan, the Japanese language keyboard is not enabled on the device, though its functionality is clearly working and arguably ready to go. (Thanks to the info <a href="http://web.mac.com/mac_scott/OS_X_and_iPhone_Hacks/Step-by-step.html" title="iphonehacks" target="_blank">http://web.mac.com/mac_scott/</a> and some others for getting me the necessary steps to get this working.) This assumes that you aren't afraid to get your hand a little dirty with some command line action on your iPhone. I also claim no responsibility for what *may* happen when performing this task. I'm not sure what damage you could do if things get ugly, so proceed with caution. This addresses the problem that I ran into, wherein I cannot login to the Term-vt100 app for the iPhone, so I had to get creative about how to change a file to enable the Japanese keyboard. My phone is running firmware version 1.1.4; it seems that somewhere 1.1.3 or later, this login problem arose.</p>
<p>The first steps are to jailbreak your phone, and install a few of the necessary apps, including BossPrefs, the BSD Subsystem package, and the OpenSsh client. Once you do this, you can disable Edge, make sure WiFi is enabled,  and enable the SSH service. You will want to do both, as the "alpine" password is well known, and you might as well be as safe as possible about this.</p>
<p>I found the file I needed to change under the /var/mobile directory on the iPhone. When you have started SSH on your iPhone and connected to your wireless router, check the ip address in BossPrefs under WiFi. Fire up the Terminal on your computer also connected to the same network, and enter the following (replace xx.xx.xx.xx with the IP address of your iPhone):</p>
<p><code>scp root@xx.xx.xx.xx:/var/mobile/Library/Preferences/.GlobalPreferences.plist ~/Desktop/GlobalPreferences.plist</code></p>
<p>You will need to enter "alpine" when prompted for the password. Now check to see if GlobalPreferences.plist is now on your Desktop. Now you can edit this file in two ways. Most importantly, in this file, you need to change the "AppleKeyboards" node to also include a node for "ja" in addition to "en_US". You can convert the plist to an XML text file by running the following in the Terminal, and edit the file in your favorite text editor:</p>
<p><code>plutil -convert xml1 ~/Desktop/GlobalPreferences.plist</code></p>
<p>Change the block of text that looks like:</p>
<p><code>&lt;key&gt;AppleKeyboards&lt;/key&gt;<br />
&lt;array&gt;<br />
&lt;string&gt;en_US&lt;/string&gt;<br />
&lt;/array&gt;</code></p>
<p>and add the "ja" node so it looks like:</p>
<p><code>&lt;key&gt;AppleKeyboards&lt;/key&gt;<br />
&lt;array&gt;<br />
&lt;string&gt;en_US&lt;/string&gt;<br />
&lt;string&gt;ja&lt;/string&gt;<br />
&lt;/array&gt;</code></p>
<p>Then to convert it back to binary (the format that it was in), run this in the Terminal:</p>
<p><code>plutil -convert binary1 ~/Desktop/GlobalPreferences.plist</code></p>
<p>However, the *easier* way to edit the file, is to double-click it, which in OSX, should open the file in Property List Editor. Once in there, click the triangle next to "AppleKeyboards". You will see one String with the value "en_US". Click the "New Sibling" button in the editor and type "ja" in the new field provided. Then save.</p>
<p>Once you have edited your prefs file, you need to stick it back on the phone. Run this in the Terminal:</p>
<p><code>scp ~/Desktop/GlobalPreferences.plist root@xx.xx.xx.xx:/var/mobile/Library/Preferences/.GlobalPreferences.plist</code></p>
<p>You will again be prompted for the same password. Once the upload is complete, go to BossPrefs, and turn off SSH and turn back on Edge. Restart your iPhone. You should now be able to type Japanese characters. Go to Notes. You should see a little globe icon next to the space bar. If you click this it will squash the keyboard down some and when you type, you will see options in Japanese charaters for what you are typing. It behaves similarly to typing Japanese on your Mac keyboard. For example, when you type "hanashimasu", you will see "はなします" as an option in the space above the keyboard. Click the globe to toggle between modes.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/UCEy1GcBHKk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/03/30/hiragana-katakana-kanji-on-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/03/30/hiragana-katakana-kanji-on-iphone/</feedburner:origLink></item>
		<item>
		<title>Scraping Source in Safari</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/rM5ZrEIqWLA/</link>
		<comments>http://www.plasticstare.com/plains/2008/03/30/scraping-source-in-safari/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 01:19:22 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[applescript]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[downloadable]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2008/03/30/scraping-source-in-safari/</guid>
		<description><![CDATA[Here is an applescript solution for grabbing the html code from a page online. This is particularly handy if you are trying to grab the code from a page that you need to login to. I am sure there is a much better solution out there, but this one seems to work for me ok. [...]]]></description>
			<content:encoded><![CDATA[<p>Here is an applescript solution for grabbing the html code from a page online. This is particularly handy if you are trying to grab the code from a page that you need to login to. I am sure there is a much better solution out there, but this one seems to work for me ok.</p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showCodeTxt('code-2'); return false;">View as Plain Text<img class="poparrow" src="http://www.plasticstare.com/plains/wp-content/plugins/ig_syntax_hilite/img/poparrow.gif"/></a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-- Define the page to save the document and the url</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set the pageFile to <span style="color:#CC0000;">"/Users/yourUserNameHere/Desktop/safariSource.html"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set the pageUrl to <span style="color:#CC0000;">"http://www.plasticstare.com/"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-- define the applescript to run</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tell application <span style="color:#CC0000;">"Safari"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;activate</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;make new document at end of documents</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;set URL of document <span style="color:#800000;color:#800000;">1</span> to pageUrl</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">end tell</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set web_page_is_loaded to false</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">--check if page has loaded</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">repeat</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;delay <span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">5</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;tell application <span style="color:#CC0000;">"System Events"</span> to tell application process <span style="color:#CC0000;">"Safari"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; if <span style="color:#006600; font-weight:bold;">&#40;</span>name of static text <span style="color:#800000;color:#800000;">1</span> of group <span style="color:#800000;color:#800000;">1</span> of window <span style="color:#800000;color:#800000;">1</span> as text<span style="color:#006600; font-weight:bold;">&#41;</span> begins with <span style="color:#CC0000;">"Contacting"</span> or <span style="color:#006600; font-weight:bold;">&#40;</span>name of static text <span style="color:#800000;color:#800000;">1</span> of group <span style="color:#800000;color:#800000;">1</span> of window <span style="color:#800000;color:#800000;">1</span> as text<span style="color:#006600; font-weight:bold;">&#41;</span> begins with <span style="color:#CC0000;">"Loading"</span> then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-- do nothing</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; else</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;exit repeat</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; end if</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;end tell</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">end repeat</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">tell application <span style="color:#CC0000;">"Safari"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;set siteSource to the source of document <span style="color:#800000;color:#800000;">1</span> as text</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;set theFile to open for access <span style="color:#006600; font-weight:bold;">&#40;</span>pageFile<span style="color:#006600; font-weight:bold;">&#41;</span> as POSIX file with write permission</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;set eof of theFile to <span style="color:#800000;color:#800000;">0</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;write siteSource to theFile</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;close access theFile</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">end tell </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/rM5ZrEIqWLA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/03/30/scraping-source-in-safari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/03/30/scraping-source-in-safari/</feedburner:origLink></item>
		<item>
		<title>Get Out of Jail Free Card</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/TLVyY-9VO7U/</link>
		<comments>http://www.plasticstare.com/plains/2008/03/30/get-out-of-jail-free-card/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 00:36:46 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2008/03/30/get-out-of-jail-free-card/</guid>
		<description><![CDATA[Yes, I am now one of those people I said scare me in an earlier post, having recently acquired a 16gb iPhone. I have to say, out of the box, it has been a pretty interesting experience, as the device very nearly fulfills what I pretty much have wanted for a long time in a [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, I am now one of those people I said scare me in an earlier post, having recently acquired a 16gb iPhone. I have to say, out of the box, it has been a pretty interesting experience, as the device very nearly fulfills what I pretty much have wanted for a long time in a mobile network connected device. I hesitate to gush; there are still some unsettling aspects of it such as the slow Edge network speed and the occasional crash. In fact, the when it crashes it is really annoying because the OS continues to run, but several applications will just refuse to work. Granted, I don't want an iPhone blue screen or that crazy OSX multilingual black shroud crash, but the first time it happens is very unsettling.</p>
<p>I also had a difficult time getting my contacts and calendars to sync. If you are viewing this post with that same problem, I was able to remedy the problem by opening iSync, going to the iSync preferences, and under Advanced - click the "Reset Sync History" button.</p>
<p>The best part about the iPhone is its ability to connect to the internet via any available WiFi hotspot. I navigated all around SF last weekend using the maps functionality and 511.org and hopped around multiple hotspots in the city. Using Muni in this city has never been easier. I have to say, this more than makes up for the lack of speed on the Edge network (at least in a place like SF). AND, I say this with moderate excitement -- BART WiFi is available in some BART stations. I don't know if it is available in all stations, and I don't know why I would ever pull a laptop out of my bag at a station, but its pretty great if you have a WiFi enabled phone.</p>
<p>Of course, the first thing I had to do, mostly out of principal and secondly out of burning curiosity, was to jailbreak the phone. I kept reading posts about "bricking" one's phone that made me a bit timid, but I am 90% sure now that unless you do some serious mischief on your phone, everything is fixable with a restore.  I ended up using ZiPhone 2.6b for my jailbreak operation, which was super smooth. Note: I used only the "Jailbreak" option, the one that says "Best choice for 'official' carriers;"  that is all I know, and I can't help you past there. It did work for me, however, and worked very well. The next thing that was required was to install the community sources in the Installer application loaded onto the phone, which gives you access to the "official" list of 3rd party apps for the iPhone and iPhone Lonely Edition (iPod Touch).</p>
<p>I have to say though, with all the booing that enthusiasts did regarding the iPhone not yet enabling 3rd party apps other than web apps, the web app functionalities are rather nice.  More on that later, but just to say, my favorite web apps so far for Home bookmarking are the most simple, such as google, AA.com (kudos to American Airlines for getting that one right),  and although I don't use it, Twitter has a nice simple interface. Most of the third party native apps are still in their infancy and not terribly impressive. There are a couple that are pretty nice though.</p>
<p>BossPrefs and PocketTouch I think rank as my number 2 best third party apps. PocketTouch aptly allows for simple iPod functions for volume and next/previous functionality using swipe gestures on the touchscreen. It also features a silly but kind of cool function that allows you to play a random track by shaking the phone. (so the next time you see someone on the train shaking their hand in their pocket, don't be so quick to judge...) BossPrefs is great. It does what it is supposed to do, namely that it allows you to turn off and on various network services on your phone, including OpenSsh, if you have that installed.</p>
<p>My number 1 pick so far, however, is MobileScrobbler. If you participate in the whole LastFm thing, you already know what LastFm is and I don't need to explain it; if you don't check it out -- you may or may not like it, but anyway... MobileScrobbler is one of the the most mature apps I have seen so far, and allows you to stream radio via WiFi. Very nice. It probably kills your battery life, but hey...what are you going to do...</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/TLVyY-9VO7U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/03/30/get-out-of-jail-free-card/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/03/30/get-out-of-jail-free-card/</feedburner:origLink></item>
		<item>
		<title>Delicious for WordPress</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/Q5j7haTd2n4/</link>
		<comments>http://www.plasticstare.com/plains/2008/03/30/delicious-for-wordpress/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 23:50:06 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[downloadable]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2008/03/30/delicious-for-wordpress/</guid>
		<description><![CDATA[Props to Rick for this simple way for adding recent delicious bookmark postings to your wordpress sidebar. Download Delicious for WordPress here: http://rick.jinlabs.com/code/delicious/ It was the simplest way I could find to do this. It isn't customizable, other than editing the code yourself, but it does a great job out of the box, and does [...]]]></description>
			<content:encoded><![CDATA[<p>Props to <a href="http://rick.jinlabs.com/code/delicious/" title="delicious for wordpress" target="_blank">Rick</a> for this simple way for adding recent delicious bookmark postings to your wordpress sidebar. Download Delicious for WordPress here: <a href="http://rick.jinlabs.com/code/delicious/" title="delicious for wordpress" target="_blank">http://rick.jinlabs.com/code/delicious/</a></p>
<p>It was the simplest way I could find to do this. It isn't customizable, other than editing the code yourself, but it does a great job out of the box, and does pretty much what you would want it to do anyway, which is post things to your blog that you found interesting, without having to actually write a post about it...hooray for industrious laziness!</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/Q5j7haTd2n4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/03/30/delicious-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/03/30/delicious-for-wordpress/</feedburner:origLink></item>
		<item>
		<title>Don’t buyportablegames.com + paypal sucks</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/tIjXR-uyq6o/</link>
		<comments>http://www.plasticstare.com/plains/2008/03/20/dont-buyportablegamescom-paypal-sucks/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 18:41:35 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2008/03/20/dont-buyportablegamescom-paypal-sucks/</guid>
		<description><![CDATA[Back when it first launched, I thought that Paypal was pretty great, and that it could revolutionize the way that private parties could send cash to each other. I guess that it sort of did, though I doubt any GI's send money back to their families in the states using Paypal, and now there are [...]]]></description>
			<content:encoded><![CDATA[<p>Back when it first launched, I thought that Paypal was pretty great, and that it could revolutionize the way that private parties could send cash to each other. I guess that it sort of did, though I doubt any GI's send money back to their families in the states using Paypal, and now there are more and better ways of sending money using a credit card online. However, I never thought about the fact that it could be used as a good vehicle for passing off counterfeit goods to consumers. It is very good for that, apparently.</p>
<p>A friend of mine was looking for Electroplankton for the Nintendo DS; it is a great little piece of programmatic/musical art, and it is really hard to find. The site buyportablegames.com claimed to have the title new in stock, and the price was decent (not suspiciously low, but a competitive price), so my friend purchased that and Mario Cart for DS, though with a little hesitation because of the fact that the payment method required was Paypal. But hey, Paypal is a reputable and secure way of purchasing goods on the internet right? It is the number one payment method on Ebay, right?</p>
<p>So, after making the purchase and emailing buyportablegames.com twice to get a tracking number, the tracking number was procured, a long number ending in HK. Tracking numbers ending in HK are likely sent via hong kong post, and if you are receiving the goods in the U.S., this means that you really can't track the package. My friend finally received Mario Cart a couple of weeks later, but no Electroplankton. To make things worse, Mario Cart was an illegal counterfeit copy of Mario Cart. Buyportablegames.com sells fake copies of Nintendo games. They are yet another shining example of China's poor management of its markets and total disregard for the consumer. (Why do we have to be careful when purchasing goods from China that we eat, eat out of, brush our teeth with, feed our pets, give our children, and when we want the real thing? Do we have to try to boycott all items from China? Really?)</p>
<p>Since it was clear that Electroplankton was never going to arrive, my friend entered a claim on Paypal and the credit card used for the payment. Paypal was astonishingly not helpful, claiming that:</p>
<blockquote><p>Our investigation into your claim is complete. As stated in our User Agreement, the claims process only applies to the shipment of goods. It does not apply to complaints about the attributes or quality of goods received. Therefore, we are unable to reverse this transaction or issue a refund.</p></blockquote>
<p>Then, to add insult to injury, my friend is now receiving nasty emails from buyportablegames.com, which claim that they knew nothing about the fake products and that since a claim has been made they "cannot" issue a refund for the game not delivered. (a good search online debunks both those claims) So, buyer seriously beware. Paypal apparently knowingly participates and aids in the sale of fraudulent goods and and supports companies that sell knock-offs as if they were new, authentic goods; at the very least, they absolve themselves of any responsibility in the matter. So, to recap:</p>
<blockquote>
<ul>
<li>Don't buy from buyportablegames.com - they will try to rip you off</li>
<li>Don't support Paypal if possible - they support the sale of illegal, patent and copyright infringing goods (yes, information wants to be free, but you should have the right to know you are purchasing couterfeit items)</li>
</ul>
</blockquote>
<p>I'm not saying that you need to only purchase from the big box companies, but if you are purchasing from smaller stores online, make sure that you make your purchase with a credit card that will support your claim in the case where the goods don't arrive or are counterfeit. It seems that Paypal isn't going to help you there.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/tIjXR-uyq6o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/03/20/dont-buyportablegamescom-paypal-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/03/20/dont-buyportablegamescom-paypal-sucks/</feedburner:origLink></item>
		<item>
		<title>Copy and continue copying large files over file sharing</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/sVWQ3dB_dRU/</link>
		<comments>http://www.plasticstare.com/plains/2008/03/20/copy-and-continue-copying-large-files-over-file-sharing/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 18:05:02 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2008/03/20/copy-and-continue-copying-large-files-over-file-sharing/</guid>
		<description><![CDATA[In my experience, there is often a flaky slow server at work that contains vital files on it. This is fine when you need to retrieve files that are small, but what happens when you need to copy a large file? Most of the time these servers don't support ftp protocol and if you are [...]]]></description>
			<content:encoded><![CDATA[<p>In my experience, there is often a flaky slow server at work that contains vital files on it. This is fine when you need to retrieve files that are small, but what happens when you need to copy a large file? Most of the time these servers don't support ftp protocol and if you are on a Mac, you have to connect via smb (Samba) to the share and start copying and hope you don't have to stop, because if you stop the copy, the file disappears from your machine and you can't resume it.</p>
<p>However, I stumbled on this gem the other day:</p>
<blockquote><p><code>curl -C - -O file:///Volumes/samba_share/file/path/here.txt</code></p></blockquote>
<p>Basically, curl allows you to copy a file with url syntax in the terminal. The capital "O" tells curl to copy the file to your desktop with the same name as the file on your server, and the capital "C" tells it to continue where it may have left off. You can monitor the download in the terminal window. If you need to leave work and finish the copy the next day, simply enter the command again in the terminal and it will pick up the copy where it left off.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/sVWQ3dB_dRU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/03/20/copy-and-continue-copying-large-files-over-file-sharing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/03/20/copy-and-continue-copying-large-files-over-file-sharing/</feedburner:origLink></item>
		<item>
		<title>Leaving the Mysterious World Behind</title>
		<link>http://feedproxy.google.com/~r/plasticstare/~3/bruRhso4Ybo/</link>
		<comments>http://www.plasticstare.com/plains/2008/03/18/leaving-the-mysterious-world-behind/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 04:10:54 +0000</pubDate>
		<dc:creator>plains</dc:creator>
				<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://www.plasticstare.com/plains/2008/03/18/leaving-the-mysterious-world-behind/</guid>
		<description><![CDATA[Farewell to futurist and generally odd fellow Arthur C. Clarke who died today at the age of 90. Also best known for "inventing" the telecommunications satellite and his novel 2001, the movie of which he collaborated with Stanley Kubrick, I knew him best in my youth for his television series named "Arthur C. Clarke's Mysterious [...]]]></description>
			<content:encoded><![CDATA[<p>Farewell to futurist and generally odd fellow Arthur C. Clarke who died today at the age of 90. Also best known for "inventing" the telecommunications satellite and his novel 2001, the movie of which he collaborated with Stanley Kubrick, I knew him best in my youth for his television series named "Arthur C. Clarke's Mysterious World" in which he showcased bizarre things everyweek. His ashes will be placed into a mysterious crystal skull and driven into space to the nearest alien inhabited world by a yeti...I hope.</p>
<img src="http://feeds.feedburner.com/~r/plasticstare/~4/bruRhso4Ybo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.plasticstare.com/plains/2008/03/18/leaving-the-mysterious-world-behind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.plasticstare.com/plains/2008/03/18/leaving-the-mysterious-world-behind/</feedburner:origLink></item>
	</channel>
</rss>
