<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-7821992909633800111</atom:id><lastBuildDate>Tue, 13 May 2008 01:47:27 +0000</lastBuildDate><title>anoved.net</title><description/><link>http://anoved.net/</link><managingEditor>noreply@blogger.com (Jim)</managingEditor><generator>Blogger</generator><openSearch:totalResults>112</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-8478172705544092132</guid><pubDate>Tue, 13 May 2008 01:47:00 +0000</pubDate><atom:updated>2008-05-12T20:47:28.038-05:00</atom:updated><title>Fox Kits</title><description>&lt;p&gt;Here&amp;#8217;s a video clip my mom took of some little foxes frolicking around their den.&lt;/p&gt;

&lt;p&gt;&lt;object type="application/x-shockwave-flash" width="320" height="240" data="http://www.flickr.com/apps/video/stewart.swf?v=49235" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"&gt; &lt;param name="flashvars" value="intl_lang=en-us&amp;amp;photo_secret=f426367a86&amp;amp;photo_id=2487826802"&gt;&lt;/param&gt; &lt;param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=49235"&gt;&lt;/param&gt; &lt;param name="bgcolor" value="#000000"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=49235" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&amp;amp;photo_secret=f426367a86&amp;amp;photo_id=2487826802" height="240" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description><link>http://anoved.net/2008/05/fox-kits.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-4971288917368570</guid><pubDate>Sun, 11 May 2008 19:51:00 +0000</pubDate><atom:updated>2008-05-11T14:51:27.066-05:00</atom:updated><title>Note Poster</title><description>&lt;p&gt;Here&amp;#8217;s a script to create a new post in &lt;a href="http://www.red-sweater.com/marsedit/"&gt;MarsEdit&lt;/a&gt; from a note selected in &lt;a href="http://www.barebones.com/products/yojimbo/"&gt;Yojimbo&lt;/a&gt;. Why use a script when it&amp;#8217;s already as easy as copy and paste? Well, maybe your computer is running out of paste.&lt;/p&gt;

&lt;pre&gt;&lt;span class="keyword"&gt;tell application&lt;/span&gt; "Yojimbo"
	&lt;span class="keyword"&gt;set&lt;/span&gt; &lt;span class="variable"&gt;_items&lt;/span&gt; &lt;span class="keyword"&gt;to selected items of browser window&lt;/span&gt; 1
	&lt;span class="keyword"&gt;if&lt;/span&gt; (&lt;span class="variable"&gt;_items&lt;/span&gt; &lt;span class="keyword"&gt;is&lt;/span&gt; {}) &lt;span class="keyword"&gt;or&lt;/span&gt; (&lt;span class="variable"&gt;_items&lt;/span&gt; &lt;span class="keyword"&gt;is missing value&lt;/span&gt;) &lt;span class="keyword"&gt;then return&lt;/span&gt;
	&lt;span class="keyword"&gt;set&lt;/span&gt; &lt;span class="variable"&gt;_note&lt;/span&gt; &lt;span class="keyword"&gt;to item&lt;/span&gt; 1 &lt;span class="keyword"&gt;of&lt;/span&gt; &lt;span class="variable"&gt;_items&lt;/span&gt;
	&lt;span class="keyword"&gt;if class of&lt;/span&gt; &lt;span class="variable"&gt;_note&lt;/span&gt; &lt;span class="keyword"&gt;is not note item then return&lt;/span&gt;
&lt;span class="keyword"&gt;end tell&lt;/span&gt;

&lt;span class="keyword"&gt;tell application&lt;/span&gt; "MarsEdit"
	&lt;span class="keyword"&gt;set&lt;/span&gt; &lt;span class="variable"&gt;_post&lt;/span&gt; &lt;span class="keyword"&gt;to make new document&lt;/span&gt;
	&lt;span class="keyword"&gt;set body of&lt;/span&gt; &lt;span class="variable"&gt;_post&lt;/span&gt; &lt;span class="keyword"&gt;to contents of contents of&lt;/span&gt; &lt;span class="variable"&gt;_note&lt;/span&gt;
	&lt;span class="keyword"&gt;set title of&lt;/span&gt; &lt;span class="variable"&gt;_post&lt;/span&gt; &lt;span class="keyword"&gt;to name of&lt;/span&gt; &lt;span class="variable"&gt;_note&lt;/span&gt;
	&lt;span class="keyword"&gt;activate&lt;/span&gt;
&lt;span class="keyword"&gt;end tell&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="applescript://com.apple.scripteditor?action=new&amp;script=tell%20application%20%22Yojimbo%22%0D%09set%20_items%20to%20selected%20items%20of%20browser%20window%201%0D%09if%20%28_items%20is%20%7B%7D%29%20or%20%28_items%20is%20missing%20value%29%20then%20return%0D%09set%20_note%20to%20item%201%20of%20_items%0D%09if%20class%20of%20_note%20is%20not%20note%20item%20then%20return%0Dend%20tell%0D%0Dtell%20application%20%22MarsEdit%22%0D%09set%20_post%20to%20make%20new%20document%0D%09set%20body%20of%20_post%20to%20contents%20of%20contents%20of%20_note%0D%09set%20title%20of%20_post%20to%20name%20of%20_note%0D%09activate%0Dend%20tell"&gt;Click here to open the script directly in Script Editor.&lt;/a&gt; Save it in &lt;code&gt;~/Library/Scripts/Applications/Yojimbo&lt;/code&gt; and you're ready to &lt;a href="http://anoved.net/2007/09/script-runners.html"&gt;run&lt;/a&gt;.</description><link>http://anoved.net/2008/05/note-poster.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-6067230301168574868</guid><pubDate>Sat, 10 May 2008 17:21:00 +0000</pubDate><atom:updated>2008-05-10T12:21:47.425-05:00</atom:updated><title>LDTrim</title><description>&lt;p&gt;LDTrim is a simple program that condenses or formats &lt;a href="http://www.ldraw.org/Article218.html"&gt;LDraw code&lt;/a&gt; by trimming extraneous characters like spaces &amp;ndash; or inserting them to align values in columns.&lt;/p&gt;

&lt;p&gt;LDTrim was developed to help &amp;#8220;pretty-print&amp;#8221; examples for documentation or discussion, but it could also be used to reduce file size or to standardize the format of many models.&lt;/p&gt;

&lt;p&gt;Much of what LDTrim does is already possible with &lt;a href="http://lddp.sourceforge.net/"&gt;LDraw Design Pad&lt;/a&gt;. For example, see &amp;#8220;Trim Lines&amp;#8221; and &amp;#8220;Auto Round Selection&amp;#8221; under the &amp;#8220;Tools&amp;#8221; menu.&lt;/p&gt;

&lt;p&gt;You can print a brief overview of LDTrim's command-line syntax, including options not described here, with &lt;code&gt;ldtrim -help&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;Example&lt;/h3&gt;

&lt;p&gt;Suppose you have saved this LDraw code as &lt;code&gt;sample.ldr&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;1  0    20.000000     0.000000    20.000000     0.000000    -1.000000     0.000000     1.000000     0.000000     0.000000     0.000000     0.000000     1.000000 4085c.dat
1  1    28.000000     7.000000    27.000000     0.000000    -1.000000     0.000000     0.500000     0.000000    -0.866025     0.866025     0.000000     0.500000 3023.dat
1  25    36.000000    -5.000000    11.000000     0.000000    -1.000000     0.000000     0.707106     0.000000    -0.707106     0.707106     0.000000     0.707106 2412b.dat
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Running &lt;code&gt;ldtrim -in sample.ldr -out trimmed.ldr&lt;/code&gt; will save the following as &lt;code&gt;trimmed.ldr&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;1 0 20 0 20 0 -1 0 1 0 0 0 0 1 4085c.dat
1 1 28 7 27 0 -1 0 0.5 0 -0.866025 0.866025 0 0.5 3023.dat
1 25 36 -5 11 0 -1 0 0.707106 0 -0.707106 0.707106 0 0.707106 2412b.dat
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The default behavior is to condense the code as much as possible without modifying the model. Alternatively, you can use LDTrim to reformat code. For instance, &lt;code&gt;ldtrim -precision 2 -width 5 -1 1 -2 3 -in trimmed.ldr -out aligned.ldr&lt;/code&gt; outputs the following as &lt;code&gt;aligned.ldr&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;1   0 20.00  0.00 20.00  0.00 -1.00  0.00  1.00  0.00  0.00  0.00  0.00  1.00 4085c.dat
1   1 28.00  7.00 27.00  0.00 -1.00  0.00  0.50  0.00 -0.87  0.87  0.00  0.50  3023.dat
1  25 36.00 -5.00 11.00  0.00 -1.00  0.00  0.71  0.00 -0.71  0.71  0.00  0.71 2412b.dat
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Giving a minimum field &lt;code&gt;-width&lt;/code&gt; argument implies &lt;code&gt;-justify right&lt;/code&gt;. Similarly, decimal &lt;code&gt;-precision&lt;/code&gt; implies &lt;code&gt;-trim none&lt;/code&gt;, leaving trailing zeros intact. The &lt;code&gt;-1&lt;/code&gt; and &lt;code&gt;-2&lt;/code&gt; options override the minimum width for the first two columns.&lt;/p&gt;

&lt;h3&gt;Batch Mode&lt;/h3&gt;

&lt;p&gt;If LDTrim is given multiple input files, it will process them all, saving the results to files of the same name in the directory given by &lt;code&gt;-out&lt;/code&gt; or &lt;strong&gt;overwriting&lt;/strong&gt; the input files if no output folder is given.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ldtrim -in $LDRAWDIR/parts/*.dat -out /trimmed/parts/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Note that with a single &lt;code&gt;-in&lt;/code&gt; file, &lt;code&gt;-out&lt;/code&gt; is interpreted as a single output file, but with multiple &lt;code&gt;-in&lt;/code&gt; files, &lt;code&gt;-out&lt;/code&gt; is interpreted as a directory to contain the results.&lt;/p&gt;

&lt;h3&gt;Web Interface&lt;/h3&gt;

&lt;p&gt;LDTrim has a rudimentary web interface built in. If the &lt;code&gt;GATEWAY_INTERFACE&lt;/code&gt; environment variable is detected, LDTrim will behave like a CGI script. Specifically, it will print an HTML form with controls that roughly correspond to its command-line options. LDraw code posted via this form (to itself, as the &lt;a href="http://www.w3.org/TR/html401/interact/forms.html#adef-action"&gt;action&lt;/a&gt; &lt;code&gt;ldtrim&lt;/code&gt;) is processed according to the selected options. The results are returned in the same form. &lt;/p&gt;

&lt;p&gt;For the time being, an instance of this interface is available at &lt;a href="http://anoved.net/cgi-bin/ldtrim"&gt;anoved.net/cgi-bin/ldtrim&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Download&lt;/h3&gt;

&lt;p&gt;LDTrim is also available as a platform-independent &lt;a href="http://www.filedropper.com/ldtrim-10-kit"&gt;Starkit&lt;/a&gt; (50 KB) which requires an 8.5 &lt;a href="http://www.equi4.com/tclkit/download.html"&gt;Tclkit&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.filedropper.com/ldtrim-10-mac"&gt;Mac OS X&lt;/a&gt; 2.4 MB&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.filedropper.com/ldtrim-10-linux"&gt;Linux (x86)&lt;/a&gt; 1.5 MB&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.filedropper.com/ldtrim-10-win"&gt;Windows&lt;/a&gt; 686 KB&lt;/li&gt;
&lt;/ul&gt;</description><link>http://anoved.net/2008/05/ldtrim.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-4690179995161831800</guid><pubDate>Thu, 08 May 2008 04:20:00 +0000</pubDate><atom:updated>2008-05-07T23:20:28.682-05:00</atom:updated><title>Candid Sketches</title><description>&lt;p&gt;Drawing people in public is a fun challenge because you've only got a few seconds to nail their form before they walk past or shift position. I think the figures that result are more convincing than many I've drawn from photographs because they're based on natural poses rather than those affected for the camera or the studio.&lt;/p&gt;

&lt;p&gt;It's refreshing to leave faces blank for a change.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://flickr.com/search/?w=93931947%40N00&amp;q=drawing&amp;m=tags&amp;d=posted-20080507-20080507&amp;z=t"&gt;&lt;img src="http://farm3.static.flickr.com/2406/2475377610_f32c1a5d37.jpg" width="500" height="292" alt="Colorized Benchwarmers" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I colored this picture on the computer. Give it a click to look at a few other recent sketches.&lt;/p&gt;</description><link>http://anoved.net/2008/05/candid-sketches.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-1852150906776006961</guid><pubDate>Wed, 30 Apr 2008 19:19:00 +0000</pubDate><atom:updated>2008-05-02T15:18:24.214-05:00</atom:updated><title>Hobbies</title><description>&lt;p&gt;I&amp;#8217;ve often said that I have many hobbies. I &lt;a href="http://flickr.com/photos/anoved/sets/72157594411707764/"&gt;draw&lt;/a&gt;, I write little &lt;a href="http://anoved.net/computers.html"&gt;computer programs&lt;/a&gt;, I play with &lt;a href="http://flickr.com/photos/anoved/1520802743/in/set-72157602497036455/"&gt;Legos&lt;/a&gt;. I work on &lt;a href="http://anoved.net/vehicles.html#truck"&gt;my truck&lt;/a&gt; and in summer I &lt;a href="http://flickr.com/photos/anoved/1096440923/in/set-72157602497503945/"&gt;kayak&lt;/a&gt;. I&amp;#8217;ve run a hundred miles in the past month, and sometimes I even try to play the &lt;a href="http://ma.gnolia.com/people/anoved/bookmarks/hishico"&gt;piano&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Am I an expert at any of these things? Decidedly not. But my expertise develops in step with my entertainment, and perhaps some aspect of these endeavors will someday assist or inspire someone else. (Hell, maybe someday it&amp;#8217;ll even earn me an income.)&lt;/p&gt;

&lt;p&gt;So it was with great interest and optimism that I watched Clay Shirky&amp;#8217;s recent &amp;#8220;&lt;a href="http://blip.tv/file/855937"&gt;Gin, Television, and Social Surplus&lt;/a&gt;&amp;#8221; speech (via &lt;a href="http://www.gusmueller.com/blog/archives/2008/04/clay_shirky:_gin__television__and_social_surplus.html"&gt;Gus Mueller&lt;/a&gt;, who also linked to a &lt;a href="http://www.herecomeseverybody.org/2008/04/looking-for-the-mouse.html"&gt;transcript&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The gist of Clay&amp;#8217;s talk is that television has been an entertaining but unproductive use of the relatively plentiful spare time enjoyed by members of modern society. More importantly, he argues that ambitious projects like Wikipedia represent a total investment of personal time that is negligible in comparison to the time people spend watching TV. He calls this recreational time our &amp;#8220;cognitive surplus&amp;#8221;, and regards it&amp;#8212;rightly, in my opinion&amp;#8212;as an incredible resource that has only begun to be tapped.&lt;/p&gt;

&lt;p&gt;I am enthusiastic about what can be accomplished as more slivers of spare time are spent on pet projects and the mischievous misadventures that beckon from beyond the sofa. Serendipity, meet spontaneity! Curiosity and collaboration are already here.&lt;/p&gt;

&lt;p&gt;Anyway, I admit television is a &lt;a href="http://anoved.net/2008/04/what-we-choose-to-do-with-freedom.html"&gt;popular scapegoat&lt;/a&gt;. It&amp;#8217;s &lt;a href="http://www.hulu.com/battlestar-galactica"&gt;not all bad&lt;/a&gt;, but there should be more to life than a daily cycle of drudgery and reruns. We improve each other&amp;#8217;s lives by pursuing the interests that enrich our personalities and abilities, be at it work, in the back yard, or even on the tube. I am pleased to say that this holds true for every person I know; everyone has some hobby or calling or quirk that contributes to what I know and appreciate about the world. Thank you!&lt;/p&gt;</description><link>http://anoved.net/2008/04/hobbies.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-7559586613706824872</guid><pubDate>Mon, 28 Apr 2008 17:36:00 +0000</pubDate><atom:updated>2008-04-28T12:37:10.335-05:00</atom:updated><title>Toggling Line Numbers and Soft Wrap in TextWrangler</title><description>&lt;p&gt;As with most text editors, &lt;a href="http://www.barebones.com/products/textwrangler/"&gt;TextWrangler&lt;/a&gt; provides many options that allow you to customize the editing interface. Two settings I sometimes change are accessible only as preference options or as toolbar menu items. As I would prefer to toggle these features with a single keystroke, I wrote a pair of scripts to do the job. Two associated keyboard shortcuts later, there&amp;#8217;s no need to display the toolbar or visit the preferences.&lt;/p&gt;

&lt;h3&gt;Toggle Line Numbers&lt;/h3&gt;

&lt;p&gt;This script toggles the &lt;code&gt;show line numbers&lt;/code&gt; property of the frontmost text window.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/textwrangler/linenumbersoff.png" alt="Line Numbers Off" title="" /&gt;
&lt;img src="http://anoved.net/images/textwrangler/linenumberson.png" alt="Line Numbers On" title="" /&gt;&lt;/p&gt;

&lt;h3&gt;Toggle Soft Wrap&lt;/h3&gt;

&lt;p&gt;This script toggles the &lt;code&gt;soft wrap text&lt;/code&gt; property of the frontmost text window.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/textwrangler/linenumbersoff.png" alt="Soft Wrap Off" title="" /&gt;
&lt;img src="http://anoved.net/images/textwrangler/softwrapon.png" alt="Soft Wrap On" title="" /&gt;&lt;/p&gt;

&lt;h3&gt;Download&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://anoved.net/files/textwrangler/ToggleLineNumbers.scpt.zip"&gt;Toggle Line Numbers&lt;/a&gt; 1.3 KB&lt;/li&gt;
&lt;li&gt;&lt;a href="http://anoved.net/files/textwrangler/ToggleSoftWrap.scpt.zip"&gt;Toggle Soft Wrap&lt;/a&gt; 1.3 KB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The color scheme seen in the screenshots is &lt;a href="http://daringfireball.net/projects/bbcolors/schemes/"&gt;Gruber Dark&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Installation&lt;/h3&gt;

&lt;p&gt;Unzip the scripts and put them in &lt;code&gt;~/Library/Application Support/TextWrangler/Scripts&lt;/code&gt;. Keyboard shortcuts can be assigned with the &lt;code&gt;Set Key&lt;/code&gt; button in the &lt;code&gt;Scripts&lt;/code&gt; palette, found under &lt;code&gt;Palettes&lt;/code&gt; in the &lt;code&gt;Window&lt;/code&gt; menu.&lt;/p&gt;</description><link>http://anoved.net/2008/04/toggling-line-numbers-and-soft-wrap-in.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-5077558619275039453</guid><pubDate>Mon, 28 Apr 2008 16:14:00 +0000</pubDate><atom:updated>2008-04-28T11:14:58.866-05:00</atom:updated><title>List splicing with foreach</title><description>&lt;p&gt;Tcl&amp;#8217;s &lt;a href="http://www.tcl.tk/man/tcl8.5/TclCmd/foreach.htm"&gt;foreach&lt;/a&gt; command is commonly used to iterate through items in a list. However, I had not realized that it can step through more than one list at once. Here&amp;#8217;s a handy application of this property based on an &lt;a href="http://www.tcl.tk/man/tcl8.5/TclCmd/foreach.htm#M5"&gt;example&lt;/a&gt; from the documentation:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;proc splice {l1 l2} {
    set s {}
    foreach i $l1 j $l2 {
        lappend s $i $j
    }
    return $s
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This procedure combines two lists into a new list comprised of alternating items from each input:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;% splice {a b c} {1 2 3}
a 1 b 2 c 3&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;One use for this is to join a list of keys to a list of values to establish a &lt;a href="http://www.tcl.tk/man/tcl8.5/TclCmd/dict.htm"&gt;dictionary&lt;/a&gt; or an &lt;a href="http://www.tcl.tk/man/tcl8.5/TclCmd/array.htm"&gt;array&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;% set dimensions [splice {length width height} {10 16 33}]
length 10 width 16 height 33

% dict get $dimensions height
33

% array set d $dimensions
% set d(width)
16&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So if you&amp;#8217;ve got an ordered list of values you&amp;#8217;d like to access as named fields, you can combine it with a list of field names using &lt;code&gt;foreach&lt;/code&gt; and be on your way.&lt;/p&gt;</description><link>http://anoved.net/2008/04/list-splicing-with-foreach.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-3621978082223923444</guid><pubDate>Thu, 17 Apr 2008 02:57:00 +0000</pubDate><atom:updated>2008-04-16T21:57:21.022-05:00</atom:updated><title>Sigma Notation</title><description>&lt;p&gt;The &lt;code&gt;for&lt;/code&gt; loop is a useful control structure common to many programming languages. It repeats some code for each value of a variable in a given range. In C, a &lt;code&gt;for&lt;/code&gt; loop might look like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;for (x=1; x&amp;lt;=10; x=x+1)
{
    /* do something ten times */
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The initial parameter, &lt;code&gt;x=1&lt;/code&gt;, starts a counter at one. The second parameter, &lt;code&gt;x&amp;lt;=10&lt;/code&gt;, means the loop repeats until the counter reaches ten. The last parameter, &lt;code&gt;x=x+1&lt;/code&gt; (sometimes written &lt;code&gt;x++&lt;/code&gt;), explains how to do the counting: add one to the counter each time through the loop.&lt;/p&gt;

&lt;p&gt;In math, sometimes it may be necessary to add up a bunch of a related terms. For example, rather than write out 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10, the problem can be expressed with &lt;a href="http://www.math.montana.edu/frankw/ccp/general/sigma/learn.htm"&gt;sigma notation&lt;/a&gt; as a sort of loop:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/sigma.png" alt="\sum_{x=1}^{10}{x}" title="\sum_{x=1}^{10}{x}" style="border:none;" /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;x=1&lt;/code&gt; below the big sigma starts the counter at one. The number &lt;code&gt;10&lt;/code&gt; above the &amp;Sigma; specifies the final value of the counter. The &amp;Sigma; itself means to add up multiple copies of whatever follows, using integer values of &lt;code&gt;x&lt;/code&gt; ranging from the initial &lt;code&gt;1&lt;/code&gt; to the maximum &lt;code&gt;10&lt;/code&gt; for each copy.&lt;/p&gt;

&lt;p&gt;(The sum is 55.)&lt;/p&gt;

&lt;p&gt;For simple arithmetic, this notation is hardly a simplification. However, if the terms to add are complicated, or if there are many instances of them, you'll find this is clearly a compact and convenient way to express the sum. Plus, the &amp;Sigma; symbol is wicked fun to write.&lt;/p&gt;

&lt;p&gt;The dweebs at Wikipedia have beat the &lt;a href="http://en.wikipedia.org/wiki/Sum#Programming_language_notation"&gt;programming-a-sum example&lt;/a&gt; to death.&lt;/p&gt;</description><link>http://anoved.net/2008/04/sigma-notation.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-6721272456864197007</guid><pubDate>Thu, 17 Apr 2008 01:36:00 +0000</pubDate><atom:updated>2008-04-16T20:36:32.384-05:00</atom:updated><title>What we choose to do with freedom</title><description>&lt;p&gt;On the way home from my evening class, the bus stops to pick up visitors from the county jail. At the prison I can see a few rows of small barred windows uniformly lit by yellow light. The people behind those windows have no choice but to remain in their cells.&lt;/p&gt;

&lt;p&gt;The bus drops me off a few blocks from my apartment. As I walk home, I pass rows of houses whose curtained windows are inevitably lit by the flickering blue light of television screens. The people behind those windows remain seated in their homes by choice.&lt;/p&gt;

&lt;p&gt;So I celebrate the vagrant youths and fading elderly who live in transit on the sidewalks and buses between prison, school, and home. Theirs may be a sorry lot, but at least they have somewhere to go.&lt;/p&gt;</description><link>http://anoved.net/2008/04/what-we-choose-to-do-with-freedom.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-4447126137844715155</guid><pubDate>Wed, 26 Mar 2008 18:57:00 +0000</pubDate><atom:updated>2008-03-27T17:20:36.293-05:00</atom:updated><title>Starpacker</title><description>&lt;p&gt;Starpacker is a utility that helps join &lt;a href="http://www.equi4.com/starkit/index.html"&gt;Starkits&lt;/a&gt; and &lt;a href="http://www.equi4.com/tclkit/index.html"&gt;Tclkits&lt;/a&gt; to create stand-alone &lt;a href="http://anoved.net/2007/10/starkits-and-starpacks.html"&gt;Starpacks&lt;/a&gt;. This can already be done with &lt;a href="http://www.equi4.com/starkit/sdx.html"&gt;SDX&lt;/a&gt;, which is a superior tool in many ways, but Starpacker provides a simpler interface to this particular aspect of SDX.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/starpacker/starpacker-release.png" alt="Starpacker Mac OS X Screenshot" title="" /&gt; &lt;img src="http://anoved.net/images/starpacker/starpacker-windows.png" alt="Starpacker Windows Screenshot" title="" /&gt;&lt;!-- &lt;img src="http://anoved.net/images/starpacker/starpacker-mac-x11.png" alt="Starpacker Mac X11 Screenshot" title="" /&gt;--&gt;&lt;/p&gt;

&lt;p&gt;More extensive &lt;a href="http://anoved.net/files/starpacker/help.text"&gt;help&lt;/a&gt; is included with the program.&lt;/p&gt;

&lt;h3&gt;Demonstration&lt;/h3&gt;

&lt;p&gt;Drag an &lt;a href="http://tcl.tk/starkits/"&gt;application Starkit&lt;/a&gt; onto Starpacker, select a Tclkit, and click Pack to create a stand-alone executable for the indicated platform. The Tclkit is downloaded automatically if needed. (May not work with all Starkits.)&lt;/p&gt;

&lt;p&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler"&gt;&lt;param name="movie" value="http://www.viddler.com/player/220045e4/" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed src="http://www.viddler.com/player/220045e4/" width="437" height="370" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" name="viddler" &gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;

&lt;p&gt;I recommend watching the video full screen for maximum clarity.&lt;/p&gt;

&lt;h3&gt;Download&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://anoved.net/files/starpacker/Starpacker.app.zip"&gt;Starpacker for Mac OS X&lt;/a&gt; 4.68 MB Universal (based on &lt;a href="http://www.equi4.com/pub/tk/8.4.18/tclkit-darwin-univ-aqua.gz"&gt;tclkit-darwin-univ-aqua 8.4.18&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://anoved.net/files/starpacker/starpacker.exe.zip"&gt;Starpacker for Windows&lt;/a&gt; 1.3 MB (based on &lt;a href="http://www.equi4.com/pub/tk/8.4.16/tclkit-win32.exe.gz"&gt;tclkit-win32 8.4.16&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://anoved.net/files/starpacker/starpacker.kit.zip"&gt;Generic Starpacker Starkit&lt;/a&gt; 274 KB (for experimental use with any Tclkit)&lt;/li&gt;
&lt;/ul&gt;</description><link>http://anoved.net/2008/03/starpacker.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-6041427350231660016</guid><pubDate>Wed, 12 Mar 2008 18:21:00 +0000</pubDate><atom:updated>2008-03-12T13:21:39.057-05:00</atom:updated><title>ArtRage System Color Picker</title><description>&lt;p&gt;Here is a script that helps you use a conventional &lt;a href="http://www.google.com/search?&amp;amp;q=%22mac+os+x%22+%22color+picker%22"&gt;color picker&lt;/a&gt; with &lt;a href="http://www.ambientdesign.com/artrage.html"&gt;ArtRage&lt;/a&gt;. Install it in &lt;code&gt;~/Library/Scripts/Applications/ArtRage 2&lt;/code&gt;. When you &lt;a href="http://anoved.net/2007/09/script-runners.html"&gt;run&lt;/a&gt; the script, the system color picker will appear. Once you choose a color, it is automatically entered in ArtRage&amp;#8217;s color picker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://anoved.net/files/ArtRageSystemColorPicker.scpt.zip"&gt;Download System Color Picker for ArtRage 2&lt;/a&gt;&lt;/strong&gt; 3.6 KB&lt;/p&gt;

&lt;p&gt;This script &lt;a href="http://www.apple.com/applescript/uiscripting/01.html"&gt;requires access as an assistive device&lt;/a&gt;.&lt;/p&gt;</description><link>http://anoved.net/2008/03/artrage-system-color-picker.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-3871726947527933429</guid><pubDate>Tue, 04 Mar 2008 14:52:00 +0000</pubDate><atom:updated>2008-04-22T20:23:14.197-05:00</atom:updated><title>Bookmark in Yojimbo for Camino</title><description>&lt;p&gt;I've posted a &lt;a href="http://caminobrowser.org/"&gt;Camino&lt;/a&gt;-compatible version of my venerable &lt;a href="http://anoved.net/bookmark_in_yojimbo.html"&gt;Bookmark in Yojimbo&lt;/a&gt; script.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Revised for &lt;a href="http://caminobrowser.org/releases/1.6/"&gt;Camino 1.6&lt;/a&gt;. New in Camino 1.6 is the ability to add any script in &lt;code&gt;~/Library/Scripts/Applications/Camino&lt;/code&gt; to the toolbar, so you don't even need to use a separate &lt;a href="http://anoved.net/2007/09/script-runners.html"&gt;script runner&lt;/a&gt;.&lt;/p&gt;</description><link>http://anoved.net/2008/03/bookmark-in-yojimbo-for-camino.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-5152702214897242884</guid><pubDate>Tue, 04 Mar 2008 03:52:00 +0000</pubDate><atom:updated>2008-03-03T23:00:50.550-05:00</atom:updated><title>MacFUSE, FTP, and You</title><description>&lt;p&gt;Windows has supported &lt;a href="http://support.microsoft.com/kb/217888"&gt;desktop FTP&lt;/a&gt; for a while. It&amp;#8217;s a useful way to save or retrieve files from other computers. Unfortunately, via the Finder&amp;#8217;s &lt;em&gt;Go&amp;rarr;Connect to Server&lt;/em&gt; menu item, Mac OS X can only mount FTP servers as read-only volumes. One of many excellent third-party FTP clients is required to upload files.&lt;/p&gt;

&lt;p&gt;A streamlined solution is available.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/macfuse/"&gt;Download and install MacFUSE-Core&lt;/a&gt; (for Tiger or Leopard)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/macfusion/"&gt;Download and run MacFusion&lt;/a&gt; (a basic front end)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Choose &lt;em&gt;Quick Mount&amp;rarr;FTP&lt;/em&gt; from the MacFusion menubar item and enter a server address and username. The server is mounted as a regular volume. Not only can you write to it from any application, but all the jazzy Leopard Finder tricks like Quick Look and Cover Flow view work, too (if you&amp;#8217;ve got the bandwidth).&lt;/p&gt;

&lt;p&gt;Again, it&amp;#8217;s worth emphasizing that this system allows you to save images, web pages, and other files directly to your web site without an intermediate FTP program. (It&amp;#8217;s prudent to keep a local copy, of course.) You&amp;#8217;ll find MacFUSE volumes listed under the main &amp;#8220;Computer&amp;#8221; device in file dialogs and the Finder sidebar.&lt;/p&gt;

&lt;p&gt;Lest you think &lt;a href="http://fuse.sourceforge.net/"&gt;FUSE&lt;/a&gt; is just about FTP, take a look at Amit Singh&amp;#8217;s &lt;a href="http://video.google.com/videoplay?docid=3138515991250095768"&gt;introductory video&lt;/a&gt; and &lt;a href="http://www.osxbook.com/book/bonus/chapter11/grabfs/"&gt;GrabFS&lt;/a&gt; for clever examples of what else can be represented as plain old filesystems.&lt;/p&gt;
</description><link>http://anoved.net/2008/03/macfuse-ftp-and-you.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-1126797400851107925</guid><pubDate>Mon, 03 Mar 2008 21:41:00 +0000</pubDate><atom:updated>2008-03-09T12:44:10.249-05:00</atom:updated><title>Remote Applications</title><description>&lt;p&gt;BCC provides &lt;a href="http://apps.sunybroome.edu/"&gt;remote access&lt;/a&gt; to &amp;#8220;licensed campus software&amp;#8221;. This allows students to log in from off campus to use desktop software hosted on campus. I&amp;#8217;m not too familiar with the &lt;a href="http://en.wikipedia.org/wiki/Independent_Computing_Architecture"&gt;protocol&lt;/a&gt;, but it seems like a Windows-oriented combination of &lt;a href="http://anoved.net/2007/04/secure-remote-screen-access-with-vine.html"&gt;VNC&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/X_Window_System"&gt;X&lt;/a&gt;. Happily, clients are available for &lt;a href="http://www.citrix.com/English/SS/downloads/downloads.asp?dID=2755"&gt;many platforms&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;All I had to do to get started was download the Mac OS X &lt;a href="http://www.citrix.com/site/SS/downloads/details.asp?dID=2755&amp;amp;downloadID=3250"&gt;Citrix ICA Client&lt;/a&gt;. Choosing a program from the access page downloads a &amp;#8220;bookmark&amp;#8221; that the client uses to launch the remote application.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s Microsoft Word 2007 running in the background with a local application in the foreground. Sharp eyes may notice minor compression artifacts in the Word window. Connecting from across town, performance is sufficient to get work done.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://anoved.net/images/citrix/wp.png"&gt;&lt;img src="http://anoved.net/images/citrix/wp-small.png" alt="Microsoft Office 2008 Ultimate Pro Premium Remote Ribbon and Bow Edition" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of course, the real benefit of this system is access to specialized professional applications, not word processors. Not all software available on campus is remotely accessible, but some of it is.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://anoved.net/images/citrix/md.png"&gt;&lt;img src="http://anoved.net/images/citrix/md-small.png" alt="AutoCAD Mechanical Desktop 2004" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also access a &lt;a href="http://en.wikipedia.org/wiki/Virtual_machine"&gt;virtual&lt;/a&gt; Windows desktop. Handy for confirming the cross-platform compatibility of &lt;a href="http://anoved.net/2008/02/pascal-triangle.html"&gt;mathematical curios&lt;/a&gt; without the need to maintain a separate PC.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://anoved.net/images/citrix/pt.png"&gt;&lt;img src="http://anoved.net/images/citrix/pt-small.png" alt="Eyeball fork not included" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remote applications of this sort are surely unsuited for many purposes. However, I think it is a viable approach for occasional use, particularly in cases where an institution provides software that isn&amp;#8217;t otherwise practical for its members to obtain. Good for wrapping up projects without hasty trips to the computer lab, I imagine.&lt;/p&gt;</description><link>http://anoved.net/2008/03/remote-applications.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-3831103988685081899</guid><pubDate>Fri, 29 Feb 2008 14:19:00 +0000</pubDate><atom:updated>2008-02-29T09:19:19.243-05:00</atom:updated><title>State Abbreviations Service</title><description>&lt;p&gt;Here&amp;#8217;s a little service for Mac OS X that replaces the selected US state name with its postal abbreviation, or vice versa. If &lt;code&gt;NY&lt;/code&gt; is selected, it will be replaced with &lt;code&gt;New York&lt;/code&gt;. If &lt;code&gt;New York&lt;/code&gt; is selected, it will be replaced with &lt;code&gt;NY&lt;/code&gt;. Case doesn&amp;#8217;t matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="http://anoved.net/files/StateAbbreviations.zip"&gt;Download State Abbreviations Service&lt;/a&gt;&lt;/strong&gt; 63K&lt;/p&gt;</description><link>http://anoved.net/2008/02/state-abbreviations-service.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-9054793615669788457</guid><pubDate>Fri, 29 Feb 2008 06:01:00 +0000</pubDate><atom:updated>2008-02-29T01:04:48.615-05:00</atom:updated><title>A More Perfect Union</title><description>&lt;p&gt;You&amp;#8217;ve heard about the military-industrial complex. Have you heard about the prison-industrial complex? &lt;a href="http://www.nytimes.com/2008/02/28/us/28cnd-prison.html?ex=1361941200&amp;en=35bbf6b24106ee84&amp;ei=5090&amp;partner=rssuserland&amp;emc=rss&amp;pagewanted=all"&gt;One in a hundred Americans are in jail.&lt;/a&gt; You know a hundred people. If none are in jail, consider those who stand on the other side of average. &lt;a href="http://www.youtube.com/watch?v=hfI9B8e9tW4" title="The Man in Black"&gt;Johnny, we miss you.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Speaking of prisons, you&amp;#8217;ve probably heard about Abu Ghraib. &lt;a href="http://www.wired.com/science/discoveries/multimedia/2008/02/gallery_abu_ghraib?slide=1&amp;amp;slideView=3"&gt;I want you to look at some pictures taken there&lt;/a&gt;. Expect blood, shit, unhappy genitalia, and healthy young women smiling over dead bodies&amp;mdash;you know, reassuring evidence of the harsh but justifiable means that keep our world &lt;!-- safety is a fnord --&gt; safe from cruelty and pain.&lt;/p&gt;

&lt;p&gt;I want you to look at those pictures because I want &lt;em&gt;you&lt;/em&gt; (friends, family, acquaintances) to think about how things like that came to happen. I don&amp;#8217;t claim to know, myself, nor am I particularly interested in ascribing blame, but the fact that such events took place, in any context, really bothers me.&lt;/p&gt;

&lt;p&gt;(We now return you to our regularly scheduled program of AppleScripts, LDraw, and, apparently, math!)&lt;/p&gt;</description><link>http://anoved.net/2008/02/more-perfect-union.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-1719689539154789255</guid><pubDate>Thu, 28 Feb 2008 20:52:00 +0000</pubDate><atom:updated>2008-02-28T15:52:20.009-05:00</atom:updated><title>Radians</title><description>&lt;p&gt;I never used to understand &lt;a href="http://en.wikipedia.org/wiki/Radian"&gt;radians&lt;/a&gt;. Sure, I knew how to use them in typical math problems, but splitting a circle into 2&amp;pi; units? Who divides a circle into six point something parts? You&amp;#8217;ve got a useless little slice left over.&lt;/p&gt;

&lt;p&gt;Well, remember the formula to find the circumference, &lt;em&gt;C&lt;/em&gt;, of a circle? It&amp;#8217;s &lt;em&gt;C&lt;/em&gt;&amp;nbsp;=&amp;nbsp;&amp;pi;&lt;em&gt;d&lt;/em&gt;, where &lt;em&gt;d&lt;/em&gt; is the diameter of the circle. The diameter is simply twice the radius &lt;em&gt;r&lt;/em&gt;, so you can also define the circumference as &lt;em&gt;C&lt;/em&gt;&amp;nbsp;=&amp;nbsp;2&amp;pi;&lt;em&gt;r&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Consider a circle whose radius is one (the &lt;a href="http://en.wikipedia.org/wiki/Unit_circle"&gt;unit circle&lt;/a&gt;). Its circumference is simply 2&amp;pi;:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/radians/2pi.png" alt="2pi" /&gt;&lt;/p&gt;

&lt;p&gt;The circumference of a circle is the the distance around its edge. If you don&amp;#8217;t go all the way around the unit circle, the length of the arc you do traverse should be less than 2&amp;pi;, right? It might be &amp;frac14;&amp;pi;, &amp;frac12;&amp;pi; or plain old &amp;pi; if you only go an eighth, a quarter, or a half way around the circle.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/radians/pi4.png" alt="pi4" /&gt; &lt;img src="http://anoved.net/images/radians/pi2.png" alt="pi2" /&gt; &lt;img src="http://anoved.net/images/radians/pi.png" alt="pi" /&gt;&lt;/p&gt;

&lt;p&gt;Look at the wedges created by arcs with these lengths: they describe 45, 90 and 180 degree angles. The radian equivalents of these angles are &amp;frac14;&amp;pi;, &amp;frac12;&amp;pi;, and &amp;pi;.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/radians/angle-pi4.png" alt="angle-pi4" /&gt; &lt;img src="http://anoved.net/images/radians/angle-pi2.png" alt="angle-pi2" /&gt; &lt;img src="http://anoved.net/images/radians/angle-pi.png" alt="angle-pi" /&gt;&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s it. A radian angle measurement is the length of the biggest arc that will fit in unit pacman&amp;#8217;s mouth!&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/radians/pacman60.png" alt="pacman60" /&gt;&lt;/p&gt;

&lt;p&gt;Their close connection with the basic geometry of circles makes radians convenient for a variety of purposes. But don't worry, degrees are cool, too: 360, that&amp;#8217;s what, almost as many days as there are in a year? Close enough for pagan ceremonies and government work!&lt;/p&gt;</description><link>http://anoved.net/2008/02/radians.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-7733699982528519005</guid><pubDate>Tue, 26 Feb 2008 03:55:00 +0000</pubDate><atom:updated>2008-02-25T22:55:41.223-05:00</atom:updated><title>Pascal's Triangle</title><description>&lt;p&gt;Recently I was introduced (or perhaps reintroduced) to &lt;a href="http://www.google.com/search?&amp;amp;q=pascal's+triangle&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8"&gt;Pascal&amp;#8217;s Triangle&lt;/a&gt;, an arrangement of integers that lends itself to a variety of purposes, including &lt;a href="http://library.thinkquest.org/C0110248/algebra/biexpintro.htm"&gt;binomial expansion&lt;/a&gt;. I&amp;#8217;ve written a little program to explore this aspect of the idea.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/pt/pt-mac-general.png" alt="Explanation? Bah. Experiment!" title="" /&gt;&lt;/p&gt;

&lt;h3&gt;Features&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Interactively adjust the degree of the expansion to see the corresponding triangle.&lt;/li&gt;
&lt;li&gt;Change the binomial terms for clarity or convenience.&lt;/li&gt;
&lt;li&gt;Show exponents of the first and zeroth power to illustrate that the total degree of each term matches the degree of the initial expression.&lt;/li&gt;
&lt;li&gt;Show plus symbols in the triangle to emphasize how each row is the basis for the next.&lt;/li&gt;
&lt;li&gt;Mouse-over highlight of corresponding terms in triangle and expansion.&lt;/li&gt;
&lt;li&gt;Binomial expansions to any degree can be computed (although the triangle is only displayed for small values due to limitations of the current layout spacing).&lt;/li&gt;
&lt;li&gt;Click and drag in triangle to scroll or drag divider to adjust size of expansion pane.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Screenshots&lt;/h3&gt;

&lt;p&gt;&lt;a href="http://anoved.net/images/pt/pt-mac.png"&gt;&lt;img src="http://anoved.net/images/pt/pt-mac-small.png" alt="Mac OS X looking at a large expansion" title="" /&gt;&lt;/a&gt; &lt;a href="http://anoved.net/images/pt/pt-win-wine.png"&gt;&lt;img src="http://anoved.net/images/pt/pt-win-wine-small.png" alt="Windows as seen on WINE" title="" /&gt;&lt;/a&gt; &lt;a href="http://anoved.net/images/pt/pt-x11.png"&gt;&lt;img src="http://anoved.net/images/pt/pt-x11-small.png" alt="X11 (has font issues)" title="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Download&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mac OS X: &lt;a href="http://anoved.net/files/pt/pt.app.zip"&gt;pt.app.zip&lt;/a&gt; 2.5M&lt;/li&gt;
&lt;li&gt;Windows: &lt;a href="http://anoved.net/files/pt/pt.exe.zip"&gt;pt.exe.zip&lt;/a&gt; 1.3M&lt;/li&gt;
&lt;li&gt;Other: &lt;a href="http://anoved.net/files/pt/pt.tcl.zip"&gt;pt.tcl.zip&lt;/a&gt; 2.3K or &lt;a href="http://anoved.net/files/pt/pt.kit.zip"&gt;pt.kit.zip&lt;/a&gt; 2.8K; requires &lt;a href="http://www.tcl.tk/software/tcltk/8.5.html"&gt;Tcl/Tk 8.5&lt;/a&gt; or a corresponding &lt;a href="http://www.equi4.com/tclkit/download.html"&gt;Tclkit&lt;/a&gt;, respectively. The Mac OS X and Windows versions are self-contained (and hundreds of times larger, unfortunately).&lt;/li&gt;
&lt;/ul&gt;
</description><link>http://anoved.net/2008/02/pascal-triangle.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-2416896468920866518</guid><pubDate>Sat, 02 Feb 2008 18:06:00 +0000</pubDate><atom:updated>2008-02-02T13:12:54.037-05:00</atom:updated><title>The Trammel Method</title><description>&lt;p&gt;A &lt;em&gt;trammel&lt;/em&gt; is an impediment to freedom or motion. By placing some &lt;a href="http://www.tpub.com/content/draftsman/14276/css/14276_115.htm"&gt;geometric restrictions&lt;/a&gt; on the &lt;a href="http://personal.atl.bellsouth.net/e/d/edwin222/ellipsedevice.htm"&gt;motion&lt;/a&gt; of a pen or pencil, specific types of figures can be drawn. The &lt;em&gt;trammel method&lt;/em&gt; is one of &lt;a href="http://mysite.du.edu/~jcalvert/math/ellipse.htm" title="see the Ellipses and Drawing section"&gt;many&lt;/a&gt; ways to apply this principle to the construction of ellipses (circles and ovals). It&amp;#8217;s particularly handy if you need to draw a large curve without a compass.&lt;/p&gt;

&lt;p&gt;Draw a pair of perpendicular lines where you&amp;#8217;d like to place an ellipse. I&amp;#8217;ve labeled them as  &lt;em&gt;major&lt;/em&gt; (long) and &lt;em&gt;minor&lt;/em&gt; (short) axes.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2237072100/" title="Axes by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2092/2237072100_575a93d181_o.jpg" width="400" height="300" alt="Axes" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On a piece of scrap paper, mark the length of a minor radius. (Place the corner of the scrap paper at one end of the minor axis and mark where the axes cross.)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2236282151/" title="Minor Mark by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2142/2236282151_b5ba400a37_o.jpg" width="400" height="300" alt="Minor Mark" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then mark the length of half the major axis from the same corner.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2237072166/" title="Major Mark by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2327/2237072166_1fa7338647_o.jpg" width="400" height="300" alt="Major Mark" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now slide the minor mark along the major axis and the major mark along the minor axis. (The marks on the scrap paper ride the opposite rails.) Make a dot at the corner of the scrap paper at any position that satisfies these conditions.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2237072218/" title="Marking Dots by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2004/2237072218_90826a9e59_o.jpg" width="400" height="300" alt="Marking Dots" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since the marks on the scrap paper can&amp;#8217;t leave their rails, you&amp;#8217;ll draw a dot right at the tip of an axis whenever the corresponding mark passes through the intersection of axes.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2237072258/" title="Marking Dots... by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2008/2237072258_d693415145_o.jpg" width="400" height="300" alt="Marking Dots..." /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mark dots in each quadrant of the ellipse.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2237072310/" title="Marking More Dots... by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2323/2237072310_6cd64292e3_o.jpg" width="400" height="300" alt="Marking More Dots..." /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See where this is leading? The major mark is still sliding along the minor axis and the minor mark is still sliding along the major axis.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2236282367/" title="Marking Even More Dots... by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2392/2236282367_844c16f424_o.jpg" width="400" height="300" alt="Marking Even More Dots..." /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Eventually, you&amp;#8217;ll have a series of dots describing the perimeter of the ellipse you planned. The more dots you plot, the smoother the outline.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2236282409/" title="Complete by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2136/2236282409_9439281ccc_o.jpg" width="400" height="300" alt="Complete" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All that&amp;#8217;s left to do is connect the dots.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2236282451/" title="Connect the Dots by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2176/2236282451_2756d8ef58_o.jpg" width="400" height="300" alt="Connect the Dots" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A circle is a special sort of ellipse in which the major and minor axes are simply the same length. In this example, I&amp;#8217;ve just drawn one diameter since only one mark is really needed. (Both marks would fall at the same point, technically, anchoring the card to the center of the circle.)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2237072474/" title="Circle by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2022/2237072474_eb305e091c_o.jpg" width="400" height="300" alt="Circle" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This technique is often attributed to Archimedes, mover of worlds. &lt;em&gt;(With a long enough lever, and a place to stand...)&lt;/em&gt;&lt;/p&gt;</description><link>http://anoved.net/2008/02/trammel-method.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-380255239537642488</guid><pubDate>Thu, 31 Jan 2008 19:18:00 +0000</pubDate><atom:updated>2008-01-31T14:18:47.815-05:00</atom:updated><title>MarsEdit Preview</title><description>&lt;p&gt;If you arrange &lt;a href="http://www.red-sweater.com/marsedit/"&gt;MarsEdit&amp;#8217;s&lt;/a&gt; post and preview windows to your liking, don&amp;#8217;t forget that you can choose &lt;code&gt;Save Default Window Size&lt;/code&gt; from the &lt;code&gt;Window&lt;/code&gt; menu to use the same window layout for every session. Together with the automatic &lt;code&gt;Open the Preview window&lt;/code&gt; preference, this provides a nice side-by-side preview interface for each post you edit.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/mepp.png" alt="example screenshot of tiled MarsEdit post and preview windows" title="" /&gt;&lt;/p&gt;</description><link>http://anoved.net/2008/01/marsedit-preview.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-2815945501100235147</guid><pubDate>Wed, 30 Jan 2008 22:38:00 +0000</pubDate><atom:updated>2008-01-30T21:14:43.399-05:00</atom:updated><title>Hacking Leopard Help</title><description>&lt;p&gt;Mac OS X 10.5&amp;#8217;s help viewer application is widely considered to be a piece of crap. Unlike the help viewer in previous iterations of Mac OS X, it presents no Dock icon, no proper menu bar, and exhibits an annoying tendency to obscure the application you needed help with in the first place.&lt;/p&gt;

&lt;p&gt;So, fix it. Or at least have your vengeance by grossly disfiguring it.&lt;/p&gt;

&lt;p&gt;Navigate to &lt;code&gt;/System/Library/CoreServices&lt;/code&gt;. Copy &lt;code&gt;Help Viewer.app&lt;/code&gt; to the Desktop, right-click the copy, and select &lt;code&gt;Show Package Contents&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Open the &lt;code&gt;Contents&lt;/code&gt; folder and open &lt;code&gt;Info.plist&lt;/code&gt;. Change the value of the &lt;code&gt;LSUIElement&lt;/code&gt; property to &lt;code&gt;0&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/hlh/lsuielement.png" alt="lsuielement" title="" /&gt;&lt;/p&gt;

&lt;p&gt;This makes the application&amp;#8217;s Dock icon and menu bar visible. There are definitely some quirks (keyboard shortcuts don&amp;#8217;t seem to work as expected), but it works.&lt;/p&gt;

&lt;p&gt;Next open the &lt;code&gt;Resources&lt;/code&gt; folder and the appropriate subfolder for your localization (&lt;code&gt;English.lproj&lt;/code&gt; in my case). Open &lt;code&gt;HelpWindow.nib&lt;/code&gt; with Interface Builder and select the &lt;code&gt;HelpWindow&lt;/code&gt; item:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/hlh/helpwindownib.png" alt="helpwindownib" title="" /&gt;&lt;/p&gt;

&lt;p&gt;Display the Inspector (from the Tools menu) if it is not already visible and display the Attributes pane. Uncheck &lt;code&gt;Utility&lt;/code&gt; and &lt;code&gt;Non Activating&lt;/code&gt; under Panel Style:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/hlh/panelstyle.png" alt="panelstyle" title="" /&gt;&lt;/p&gt;

&lt;p&gt;This makes the help window look and behave a bit more like a regular window. Unfortunately, I can&amp;#8217;t figure out how to prevent it from floating above other windows (perhaps that behavior is not controlled by the nib file). However, if you check &lt;code&gt;Hide On Deactivate&lt;/code&gt; under Window Behavior in the same Inspector pane, the help window will at least sweep itself out of the way when you bring a different application 
to the front.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://anoved.net/images/hlh/windowbehavior.png" alt="windowbehavior" title="" /&gt;&lt;/p&gt;

&lt;p&gt;Clicking the help viewer&amp;#8217;s Dock icon makes the window visible again, but also creates a new help window.&lt;/p&gt;

&lt;p&gt;To apply your changes, save and close &lt;code&gt;HelpWindow.nib&lt;/code&gt; and drag your copy of &lt;code&gt;Help Viewer.app&lt;/code&gt; back to &lt;code&gt;/System/Library/CoreServices&lt;/code&gt;. You&amp;#8217;ll need to authenticate the copy operation since you really shouldn&amp;#8217;t be diddling around in this directory. (You did make a back up, didn&amp;#8217;t you? Good. Neither did I.)&lt;/p&gt;

&lt;p&gt;You can test your modified copy of Help Viewer before copying it back to CoreServices, of course, but it won&amp;#8217;t handle requests from the Help menu until you do.&lt;/p&gt;

&lt;p&gt;Now when you seek help, Help Viewer will actually show up in the Dock. You&amp;#8217;ll have menus, and you can even open multiple help windows. Unfortunately, the program launches in the background, so you&amp;#8217;ll still have to switch applications with Command-Tab or click the Dock icon to view the requested documentation.&lt;/p&gt;

&lt;p&gt;Please share any corrections, clarifications, or further contributions to the cause! I&amp;#8217;m no Cocoa or Interface Builder expert. Most importantly, minimize the need for constant help consultation by thinking carefully about the use and design of your application. Put reference material in a nice PDF and call it a day.&lt;/p&gt;</description><link>http://anoved.net/2008/01/hacking-leopard-help.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-8046585313071827233</guid><pubDate>Wed, 30 Jan 2008 04:51:00 +0000</pubDate><atom:updated>2008-01-29T23:51:51.428-05:00</atom:updated><title>Msgcat and Mac OS X</title><description>&lt;p&gt;The Tcl core library includes &lt;a href="http://www.tcl.tk/man/tcl8.5/TclCmd/msgcat.htm"&gt;&lt;code&gt;msgcat&lt;/code&gt;&lt;/a&gt;, a package which facilities program &lt;a href="http://en.wikipedia.org/wiki/Internationalization_and_localization"&gt;localization&lt;/a&gt;. &lt;code&gt;msgcat&lt;/code&gt; provides means to define a &lt;em&gt;catalog&lt;/em&gt; of &lt;em&gt;messages&lt;/em&gt; in multiple languages and a procedure to retrieve messages appropriate to a specific &lt;a href="http://www.tcl.tk/man/tcl8.5/TclCmd/msgcat.htm#M14"&gt;locale&lt;/a&gt;, typically determined by cues from the operating system.&lt;/p&gt;

&lt;p&gt;In general, to localize &lt;code&gt;puts "Hello, world!"&lt;/code&gt;, you provide equivalent strings for each supported locale and select the appropriate one at runtime by stating &lt;code&gt;puts [mc "Hello, world!"]&lt;/code&gt;. For example, this command might print &lt;code&gt;¡Hola, mundo!&lt;/code&gt; if the locale is &lt;code&gt;es&lt;/code&gt;. Default strings in the programmer&amp;#8217;s native language can usually be used as keys to the message catalog.&lt;/p&gt;

&lt;p&gt;Anyway, &lt;code&gt;msgcat&lt;/code&gt; looks at a couple environment variables (or the Windows registry) to determine the proper locale. On Mac OS X, this works fine for scripts launched from the command line, but &lt;a href="http://anoved.net/2007/12/minimal-tcltk-mac-application-packages.html"&gt;spiffy desktop applications&lt;/a&gt; don&amp;#8217;t necessarily have access to the same environment variables. If no supported environment variables are available, &lt;code&gt;msgcat&lt;/code&gt; uses the locale implied by the &amp;#8220;Region&amp;#8221; setting of the &amp;#8220;Formats&amp;#8221; pane of Mac OS X&amp;#8217;s &amp;#8220;International&amp;#8221; system preferences. You can query this string from the command line with:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;defaults read 'Apple Global Domain' AppleLocale
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It is also available from within Tcl as the variable &lt;code&gt;::tcl::mac::locale&lt;/code&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;To test localized Tcl desktop applications on Mac OS X without changing your system region, you can define the locale in &lt;code&gt;~/.MacOSX/environment.plist&lt;/code&gt;. Environment variables specified in this file are available to programs launched from the Finder, so &lt;code&gt;msgcat&lt;/code&gt; will see these settings before resorting to the system locale. For instance, to set the locale to &lt;code&gt;es&lt;/code&gt;, add this property to &lt;code&gt;environment.plist&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;key&amp;gt;LANG&amp;lt;/key&amp;gt;
&amp;lt;string&amp;gt;es&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;See &lt;a href="http://developer.apple.com/qa/qa2001/qa1067.html"&gt;QA1067&lt;/a&gt; for more information about &lt;code&gt;environment.plist&lt;/code&gt;, including how to create it if it does not already exist. Note that variables defined in this file will be visible to all programs, and may therefore affect other applications.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Here&amp;#8217;s how I usually comment the code I use to initialize &lt;code&gt;msgcat&lt;/code&gt;:

&lt;pre&gt;&lt;code&gt;# localization courtesy of Message Cat:
#
#  |\        /|      MEOW
#  | \______/ |       MYAU
#  /  _    _  \        MJAU
#  | &amp;lt;l&amp;gt;  &amp;lt;l&amp;gt; |        MIAUW
#  \    __    /       MIAULE
# ----- \/ -----     MIAU
#  --\__/\__/--     MIAO
#
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;mc "MEOW"&lt;/code&gt; thanks to &lt;a href="http://www.flippyscatpage.com/catsmeow.html" title="Don't say I didn't warn you; Google made me do it"&gt;Flippy&amp;#8217;s Cat Page&lt;/a&gt;.&lt;/p&gt;</description><link>http://anoved.net/2008/01/msgcat-and-mac-os-x.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-2264966199554137870</guid><pubDate>Wed, 30 Jan 2008 01:06:00 +0000</pubDate><atom:updated>2008-01-29T20:06:28.726-05:00</atom:updated><title>Workspaces</title><description>&lt;p&gt;Amar Sagoo (author of &lt;a href="http://amarsagoo.info/namely/"&gt;Namely&lt;/a&gt;) finds that a &lt;a href="http://amarsagoo.blogspot.com/2007/12/surface-computing-move-over.html"&gt;tabletop whiteboard&lt;/a&gt; is a useful tool for planning and discussion:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We&amp;#8217;ve found ourselves using it virtually every day, illustrating explanations, walking through calculations and brainstorming design ideas. Visitors will intuitively pick up a pen and start using the whiteboard when explaining things. It somehow seems to invite people to use it more than most whiteboards. However, it’s not only a collaborative tool: it also makes a great scratch-pad when you&amp;#8217;re brainstorming on your own. To ensure that it stays useful, we make an effort to keep the board clean; nothing tends to stay on there for longer than a day or so.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I&amp;#8217;ve got a large roll of packing paper which I use for a similar purpose at my desk. It&amp;#8217;s great to be able to jot down a note or a doodle without pausing to search for paper or an appropriate notebook. As the sheet fills up, I pull it down to reveal a clean area. I&amp;#8217;ve yet to devise an effective spool, but the scroll nevertheless contains an interesting record of spontaneous notes and drawings.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2228831833/" title="Desktop Paper by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2155/2228831833_47cc858dd1_m.jpg" width="240" height="180" alt="Desktop Paper" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that I&amp;#8217;m studying &lt;a href="http://web.sunybroome.edu/courses/civ.html#CIV113"&gt;mechanical drawing&lt;/a&gt;, I&amp;#8217;ve developed an interest in drafting equipment and techniques. Perhaps in the future my desk will receive further augmentation. In the meantime, a fine set of &lt;a href="http://en.wikipedia.org/wiki/Parallel_ruler"&gt;parallel rules&lt;/a&gt; can be made from surplus LEGO:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2229802952/" title="LEGO Parallel Rules by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2137/2229802952_3d8b9a187f_m.jpg" width="240" height="146" alt="LEGO Parallel Rules" /&gt;&lt;/a&gt; &lt;a href="http://anoved.net/files/parallelrules.mpd" title="6.7 KB LDraw MPD"&gt;LDraw File&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lastly, I&amp;#8217;ve fiddled with some of my shelving to make a nice standing work area for my laptop:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/anoved/2228831835/" title="Standing Workstation by anoved, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2219/2228831835_343d8a9fa2_m.jpg" width="180" height="240" alt="Standing Workstation" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It may not be the best arrangement for long sessions, but I&amp;#8217;ve found it surprisingly practical for many tasks. I think that standing up helps me to stay focused. When my mind wanders (as it is wont to do) it is easier to step back and tend to other things than when seated.&lt;/p&gt;

&lt;p&gt;The kitchen table is a good place to get things done, too.&lt;/p&gt;</description><link>http://anoved.net/2008/01/workspaces.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-2984152099202816269</guid><pubDate>Thu, 17 Jan 2008 18:40:00 +0000</pubDate><atom:updated>2008-01-17T13:40:45.476-05:00</atom:updated><title>Yojimbo Tag Companions</title><description>&lt;p&gt;I use this little script when I want to ensure that every &lt;a href="http://www.barebones.com/products/yojimbo/"&gt;Yojimbo&lt;/a&gt; item with a certain tag also has some other tags. For instance, to ensure that every &lt;code&gt;leoben&lt;/code&gt; item is also tagged &lt;code&gt;cylon&lt;/code&gt;, I &lt;a href="http://anoved.net/2007/09/script-runners.html"&gt;run&lt;/a&gt; the script, select &lt;code&gt;leoben&lt;/code&gt; from the first list of tags that appears, and &lt;code&gt;cylon&lt;/code&gt; from the second list.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://anoved.net/files/TagCompanions.scpt.zip"&gt;Download Tag Companions&lt;/a&gt; (4k)&lt;/p&gt;</description><link>http://anoved.net/2008/01/yojimbo-tag-companions.html</link><author>noreply@blogger.com (Jim)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-7821992909633800111.post-4457412964208517083</guid><pubDate>Thu, 17 Jan 2008 00:59:00 +0000</pubDate><atom:updated>2008-01-16T19:59:28.989-05:00</atom:updated><title>Scalable Images with CSS</title><description>&lt;p&gt;If you use &lt;a href="http://en.wikipedia.org/wiki/Em_(typography)"&gt;ems&lt;/a&gt; to define an image&amp;#8217;s &lt;code&gt;&lt;a href="http://www.w3.org/TR/REC-CSS1#height"&gt;height&lt;/a&gt;&lt;/code&gt; property, the image will be scaled relative to an implicit &lt;code&gt;1em&lt;/code&gt; text height.&lt;/p&gt;

&lt;p&gt;For example, here is code to display the same image twice &amp;#8212; first normally, then scaled to exactly five times the normal text height:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;p&amp;gt;Normal: &amp;lt;img src="http://anoved.net/images/cssize/flower.jpg" /&amp;gt;
 Scalable: &amp;lt;img src="http://anoved.net/images/cssize/flower.jpg" style="height:5em;" /&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here is how these images appear:&lt;/p&gt;

&lt;p&gt;Normal: &lt;img src="http://anoved.net/images/cssize/flower.jpg" /&gt;
 Scalable: &lt;img src="http://anoved.net/images/cssize/flower.jpg" style="height:5em;" /&gt;&lt;/p&gt;

&lt;p&gt;Try using your browser&amp;#8217;s controls to increase or decrease the displayed text size. The first instance of the image will remain the same as the neighboring text changes size, but the second instance of the image will grow or shrink with the text, preserving the proportions of the original design.&lt;/p&gt;

&lt;p&gt;I use this trick to fit my impish &lt;a href="http://anoved.net/images/avatar-title.png"&gt;logo&lt;/a&gt; in the title bar at the top of the page regardless of the visitor&amp;#8217;s text size preferences. It works surprisingly well in contemporary browsers, but of course it looks dumb without CSS. The scaling does appear to be off by one pixel at alternating sizes in Safari.&lt;/p&gt;

&lt;p&gt;Worth noting is that &lt;a href="http://opera.com/products/desktop/"&gt;Opera&lt;/a&gt; scales the entire page layout instead of just textual elements, which strikes me as clever and correct.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Comments and technical corrections welcome.&lt;/em&gt;&lt;/p&gt;</description><link>http://anoved.net/2008/01/scalable-images-with-css.html</link><author>noreply@blogger.com (Jim)</author></item></channel></rss>