<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>I Make Things - Computing</title>
    <link>http://blog.latcarf.com/</link>
    <description>Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    
    <image>
        <url>http://blog.latcarf.com/templates/bulletproof/img/s9y_banner_small.png</url>
        <title>RSS: I Make Things - Computing - Creativity is allowing yourself to make mistakes. Art is knowing which ones to keep.</title>
        <link>http://blog.latcarf.com/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Run Script at Mac OS X Login</title>
    <link>http://blog.latcarf.com/archives/150-Run-Script-at-Mac-OS-X-Login.html</link>
            <category>Mac OS X</category>
    
    <comments>http://blog.latcarf.com/archives/150-Run-Script-at-Mac-OS-X-Login.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=150</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=150</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    I know alot of people want to know how to do this. The solution is usually creating a shell script and naming it with the &#039;.command&#039; extension so it&#039;ll launch the Terminal.&lt;br /&gt;
&lt;br /&gt;
The cleaner way is through a simple &lt;tt&gt;launchd&lt;/tt&gt; plist placed in your &lt;tt&gt;~/Library/LaunchAgents&lt;/tt&gt; folder.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s my example:&lt;br /&gt;
&lt;div class=&quot;bash&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;$ cat ~/Library/LaunchAgents/com.latcarf.loginscript.plist&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;div class=&quot;xml&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;&lt;/span&gt;?xml &lt;span style=&quot;color: #000066;&quot;&gt;version&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;1.0&quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;encoding&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;?&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #00bbdd;&quot;&gt;&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;plist&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;version&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;1.0&quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;dict&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;key&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Label&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/key&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;string&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;com.latcarf.loginscript&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/string&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;key&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;ProgramArguments&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/key&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;array&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;string&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/bin/bash&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/string&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;string&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;/Users/latcarf/Documents/script/loginscript.bash&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/string&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/array&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;key&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;RunAtLoad&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/key&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;true&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/dict&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/plist&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;div class=&quot;bash&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Start it up&lt;/span&gt;&lt;br /&gt;$ launchctl load ~/Library/LaunchAgents/com.latcarf.loginscript.plist&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Or just reboot or logout and back in to kick it off.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Only runs once at login.&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Wed, 06 May 2009 03:28:12 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/150-guid.html</guid>
    
</item>
<item>
    <title>It's not MAC!</title>
    <link>http://blog.latcarf.com/archives/147-Its-not-MAC!.html</link>
            <category>Mac OS X</category>
    
    <comments>http://blog.latcarf.com/archives/147-Its-not-MAC!.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=147</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=147</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    Just a little pet peeve I need to get off my chest.&lt;br /&gt;
&lt;br /&gt;
I know all you PC folks are coming over to the &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt; in droves and that&#039;s a great thing. It&#039;s great for you and for me. You&#039;ll have a much better computing experience (and life in general) on Mac and I&#039;ll still have a job making software for you. So win-win all around!&lt;br /&gt;
&lt;br /&gt;
One little behavior we need to correct though, is how you write about your new computer. In the Windows world it&#039;s normal to write PC, or DELL, or IBM in all capital letters. Heck, in DOS (all caps there too) it&#039;s even proper to write FOLDER NAMES in capital letters as well, isn&#039;t it?&lt;br /&gt;
&lt;br /&gt;
In the &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt; world however, it&#039;s wrong to write &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt; in all caps (and generally wrong to write folder names in all caps - it just looks like you&#039;re yelling). Yeah, I know it&#039;s a hard habit to break; writing &lt;strong&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt;&lt;/strong&gt; vs. MAC. I mean, you&#039;re gonna have to hold down the shift key a little less, and that&#039;s tough, but you should be getting used to doing things with less effort now that you have a Mac, right? Besides, you don&#039;t need to yell about your &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt;. We all know how much better they are (we&#039;ve been using them for years) and &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt; users generally appreciate a little more subtly (you&#039;ll understand that as you get used to using your new &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
Anyway, &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt; is the first three letters in the word &lt;strong&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt;&lt;/strong&gt;intosh, which is a kind of an apple. &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=659&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple&quot;&gt;Apple&lt;/a&gt; makes computers (and other hardware) and a &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt; is a kind of &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=659&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple&quot;&gt;Apple&lt;/a&gt; computer. See the correlation here, kind of witty huh? Anyway, you never see the word Macintosh with all caps for the first three letters: MACintosh. That just looks weird right? Well, using MAC to talk about &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt; computers looks weird too. So, if you could just please &lt;em&gt;not&lt;/em&gt; do that, it would be great.&lt;br /&gt;
&lt;br /&gt;
Oh, before you go there &lt;em&gt;is&lt;/em&gt; one instance where you&#039;ll want to use the all capitals version of the word MAC. That&#039;s when you need to talk about the &quot;quasi-unique&quot; identifier that&#039;s assigned to your network adapter. It&#039;s known as a &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=662&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://en.wikipedia.org/wiki/MAC_address&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;MAC address&quot;&gt;Media Access Control&lt;/a&gt; address. All computers that can connect to a network have these and they&#039;re certainly not limited to &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt;. Hey, I guess you also might want to use the all capitals version MAC when you&#039;re talking about &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=661&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.maccosmetics.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;MAC Cosmetics&quot;&gt;MAC cosmetics&lt;/a&gt; as well, but that has nothing to do with computers.&lt;br /&gt;
&lt;br /&gt;
Ok, so just to make sure we&#039;re on the same page... Use &lt;strong&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=658&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/mac/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Apple Mac&quot;&gt;Mac&lt;/a&gt;&lt;/strong&gt; and &lt;em&gt;not&lt;/em&gt; &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=662&amp;amp;entry_id=147&quot;  onmouseover=&quot;window.status=&#039;http://en.wikipedia.org/wiki/MAC_address&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;MAC address&quot;&gt;MAC&lt;/a&gt; and we&#039;ll all get along great. Thanks!&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 16 Mar 2009 01:43:51 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/147-guid.html</guid>
    
</item>
<item>
    <title>Fink on Leopard With Blocked CVS Port</title>
    <link>http://blog.latcarf.com/archives/142-Fink-on-Leopard-With-Blocked-CVS-Port.html</link>
            <category>Mac OS X</category>
    
    <comments>http://blog.latcarf.com/archives/142-Fink-on-Leopard-With-Blocked-CVS-Port.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=142</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=142</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    Recently I wanted to use &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=648&amp;amp;entry_id=142&quot; title=&quot;http://www.finkproject.org/&quot;  onmouseover=&quot;window.status=&#039;http://www.finkproject.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Fink&lt;/a&gt; on my &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=649&amp;amp;entry_id=142&quot; title=&quot;http://www.apple.com/macosx/&quot;  onmouseover=&quot;window.status=&#039;http://www.apple.com/macosx/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Leopard&lt;/a&gt; machine at work. This sounds simple but there are a few complicating factors. First, there are no Fink binaries for Leopard as of this writing. Ok, so that&#039;s not a big deal, I can compile it easy enough, Fink made an easy to use bootstrap script for that purpose. Secondly, as far as I know, as of this writing, we can&#039;t use rsync mode during Fink&#039;s self update on Leopard. So, the solution is to use &lt;tt&gt;fink selfupdate-cvs&lt;/tt&gt;. This leads to the third problem which comes from the fact that my company is strict about blocking ports. Unfortunately the cvs port 2401 is blocked. Fortunately however, SSH (port 22) is not. So my solution is to temporarily port-forward cvs through ssh to my home server so I can run &lt;tt&gt;fink selfupdate-cvs&lt;/tt&gt; to pull down all the great package descriptions I need for my &lt;tt&gt;fink&lt;/tt&gt; install.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s are my notes on what I did:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bash&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# I needed to find where the cvs urls were set so I grepped in /sw&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; /sw&lt;br /&gt;grep -R fink.cvs.sourceforge.net *&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# That eventually turned up the following potential places to make changes:&lt;/span&gt;&lt;br /&gt;lib/fink/URL/anonymous-cvs:fink.cvs.sourceforge.net:/cvsroot/fink&lt;br /&gt;lib/fink/URL/cvs-repository:fink.cvs.sourceforge.net&lt;br /&gt;lib/fink/URL/developer-cvs:fink.cvs.sourceforge.net:/cvsroot/fink&lt;br /&gt;lib/perl5/Fink/SelfUpdate/CVS.pm:&amp;#160; &amp;#160; &amp;#160; &amp;#160;my &lt;span style=&quot;color: #0000ff;&quot;&gt;$cvsrepository&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;fink.cvs.sourceforge.net:/cvsroot/fink&quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Since I only needed to get package descriptions I figured /sw/lib/fink/URL/anonymous-cvs &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# was the file I wanted change to handle my port-forward solution.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; /sw/lib/fink/URL/&lt;br /&gt;sudo cp anonymous-cvs anonymous-cvs.orig&lt;br /&gt;nano -wz anonymous-cvs&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Here I changed: fink.cvs.sourceforge.net:/cvsroot/fink to: localhost:/cvsroot/fink&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Then it was a simple matter to create an ssh tunnel to an external server where I have &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# the ability to login and its port 2401 is not blocked.&lt;/span&gt;&lt;br /&gt;ssh login@domian.example -L &lt;span style=&quot;color: #cc66cc;&quot;&gt;2401&lt;/span&gt;:fink.cvs.sourceforge.net:&lt;span style=&quot;color: #cc66cc;&quot;&gt;2401&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Finally, I ran the fink update command:&lt;/span&gt;&lt;br /&gt;fink selfupdate-cvs&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Hooray. Now everything works as expected and I probaly don&#039;t need to use it again unless I need&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# to update package descriptions sometime in the future. So, I changed things back:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; /sw/lib/fink/URL/&lt;br /&gt;sudo mv anonymous-cvs anonymous-cvs.custom&lt;br /&gt;sudo mv anonymous-cvs.orig anonymous-cvs&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Probably I should create a shell alias like: finkselfupdatecvs to handle it all when I &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# I find I want to update package descriptions again. But I&#039;m too lazy and besides, that&#039;s&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# why I&#039;ve put it in my blog.&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Tue, 26 Feb 2008 20:05:47 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/142-guid.html</guid>
    
</item>
<item>
    <title>Fix for Tor on Leopard</title>
    <link>http://blog.latcarf.com/archives/136-Fix-for-Tor-on-Leopard.html</link>
            <category>CLI</category>
    
    <comments>http://blog.latcarf.com/archives/136-Fix-for-Tor-on-Leopard.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=136</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=136</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    After installing Mac OS X 10.5 (Leopard) fresh (I won&#039;t go into details &lt;img src=&quot;http://blog.latcarf.com/templates/default/img/emoticons/sad.png&quot; alt=&quot;:-(&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;), I needed to reinstall &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=643&amp;amp;entry_id=136&quot; title=&quot;http://tor.eff.org&quot;  onmouseover=&quot;window.status=&#039;http://tor.eff.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Tor&lt;/a&gt;. I found the &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=644&amp;amp;entry_id=136&quot; title=&quot;http://www.torproject.org/dist/osx/Tor-0.1.2.18-tiger-universal-Bundle.dmg&quot;  onmouseover=&quot;window.status=&#039;http://www.torproject.org/dist/osx/Tor-0.1.2.18-tiger-universal-Bundle.dmg&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Tor expert installer&lt;/a&gt; didn&#039;t quite do what it was supposed to as far as creating the &lt;tt&gt;_tor&lt;/tt&gt; user the daemon runs as (the user ends up a little mangled - check it out after install with &lt;tt&gt;dscl . -read /Users/tor&lt;/tt&gt;) Since Leopard doesn&#039;t use NetInfo (&lt;tt&gt;niutil&lt;/tt&gt;) anymore, I had to manually create the user with DirectoryServices (&lt;tt&gt;dscl&lt;/tt&gt;). Here&#039;s the quick-and-dirty on what I did...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bash&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Create Tor Group and User:&lt;/span&gt;&lt;br /&gt;sudo dscl . -create /Groups/_tor&lt;br /&gt;sudo dscl . -create /Groups/_tor PrimaryGroupID &lt;span style=&quot;color: #cc66cc;&quot;&gt;100&lt;/span&gt;&lt;br /&gt;sudo dscl . -create /Groups/_tor RealName &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Tor Group&quot;&lt;/span&gt;&lt;br /&gt;sudo dscl . -create /Groups/_tor Password &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;*&#039;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;sudo dscl . -create /Users/_tor&lt;br /&gt;sudo dscl . -create /Users/_tor UserShell /usr/bin/false&lt;br /&gt;sudo dscl . -create /Users/_tor RealName &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Tor Server&quot;&lt;/span&gt;&lt;br /&gt;sudo dscl . -create /Users/_tor UniqueID &lt;span style=&quot;color: #cc66cc;&quot;&gt;100&lt;/span&gt;&lt;br /&gt;sudo dscl . -create /Users/_tor PrimaryGroupID &lt;span style=&quot;color: #cc66cc;&quot;&gt;100&lt;/span&gt;&lt;br /&gt;sudo dscl . -create /Users/_tor NFSHomeDirectory /Library/Tor/var/lib/tor&lt;br /&gt;sudo dscl . -create /Users/_tor Password &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;*&#039;&lt;/span&gt;&lt;br /&gt;sudo dscl . -append /Groups/_tor GroupMembership _tor&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
After that, there was still a little more to do to get Tor to run. I needed to create a place for the logs and fix the StartupItems script. Here&#039;s what I did for that...&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bash&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Create the logs directory&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; /var/log&lt;br /&gt;sudo mkdir tor&lt;br /&gt;sudo touch tor/tor.log&lt;br /&gt;sudo chown -R _tor:_tor tor&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Fix perms on the &amp;quot;home&amp;quot; directory&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; /Library/Tor/var/lib&lt;br /&gt;sudo chown -R _tor:_tor tor&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# In /Library/StartupItems/Tor/Tor change TORGROUP from TORGROUP=daemon to:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;TORGROUP=&lt;/span&gt;_tor&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Start the Tor server&lt;/span&gt;&lt;br /&gt;sudo /Library/StartupItems/Tor/Tor start&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Cool. That fixed it. &lt;img src=&quot;http://blog.latcarf.com/templates/default/img/emoticons/cool.png&quot; alt=&quot;8-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; Still not sure whether I want logging in &lt;tt&gt;/var/log/tor&lt;/tt&gt; or &lt;tt&gt;/Library/Tor/var/log/tor&lt;/tt&gt; though... Also, I guess I probably should submit all this to the Tor folks too. I&#039;m so damn lazy.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 03 Dec 2007 04:07:44 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/136-guid.html</guid>
    
</item>
<item>
    <title>Software I Use</title>
    <link>http://blog.latcarf.com/archives/131-Software-I-Use.html</link>
            <category>Mac OS X</category>
    
    <comments>http://blog.latcarf.com/archives/131-Software-I-Use.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=131</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=131</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    I often get people asking me what Mac software I use alot and if there&#039;s anything I can recommend to them. I recently put together a list of stuff I use at work (this doesn&#039;t include the *NIX stuff) for a colleague and figured others might benefit from it.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=635&amp;amp;entry_id=131&quot; title=&quot;http://www.adiumx.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.adiumx.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot;&gt;Adium&lt;/a&gt; - AIM, MSN, Yahoo, .Mac, Jabber, Gadu-Gadu, ICQ, etc... IM client. (open source)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=636&amp;amp;entry_id=131&quot; title=&quot;http://cyberduck.ch/&quot;  onmouseover=&quot;window.status=&#039;http://cyberduck.ch/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot;&gt;Cyberduck&lt;/a&gt; - FTP client (open source)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=637&amp;amp;entry_id=131&quot; title=&quot;http://www.clamxav.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.clamxav.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot;&gt;ClamXav&lt;/a&gt; - Virus Checker (not like you&#039;ll need it) (open source)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=638&amp;amp;entry_id=131&quot; title=&quot;http://www.mozilla.com/en-US/firefox/&quot;  onmouseover=&quot;window.status=&#039;http://www.mozilla.com/en-US/firefox/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot;&gt;Firefox&lt;/a&gt; - Web browser (open source)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=639&amp;amp;entry_id=131&quot; title=&quot;http://iterm.sourceforge.net/&quot;  onmouseover=&quot;window.status=&#039;http://iterm.sourceforge.net/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot;&gt;iTerm&lt;/a&gt; - Terminal Emulator (open source)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=640&amp;amp;entry_id=131&quot; title=&quot;http://www.microsoft.com/mac/otherproducts/otherproducts.aspx?pid=remotedesktopclient&quot;  onmouseover=&quot;window.status=&#039;http://www.microsoft.com/mac/otherproducts/otherproducts.aspx?pid=remotedesktopclient&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot;&gt;Microsoft Remote Desktop Client&lt;/a&gt; - RDC to connect to Windows on Mac (free)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=641&amp;amp;entry_id=131&quot; title=&quot;http://www.videolan.org/vlc/download-macosx.html&quot;  onmouseover=&quot;window.status=&#039;http://www.videolan.org/vlc/download-macosx.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot;&gt;VLC&lt;/a&gt; - Media Player (open source)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=642&amp;amp;entry_id=131&quot; title=&quot;http://www.barebones.com/products/yojimbo/&quot;  onmouseover=&quot;window.status=&#039;http://www.barebones.com/products/yojimbo/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot;&gt;Yojimbo&lt;/a&gt; - Password/etc DB (commercial)&lt;/li&gt;&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Thu, 13 Sep 2007 15:58:01 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/131-guid.html</guid>
    
</item>
<item>
    <title>TkCVS in Mac OS X X11</title>
    <link>http://blog.latcarf.com/archives/130-TkCVS-in-Mac-OS-X-X11.html</link>
            <category>Linux</category>
    
    <comments>http://blog.latcarf.com/archives/130-TkCVS-in-Mac-OS-X-X11.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=130</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=130</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    TkCVS (TkSVN) is one of the best tools I&#039;ve found for visualizing CVS and Subversion branches. Since it is written in Tcl/Tk you can use it on Mac, Linux, and that other OS.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how to install it on Mac for use in the X11 environment and how to integrate it with BBEdit. This assumes you have the X11 environment and BBEdit command line tools (&lt;tt&gt;bbedit&lt;/tt&gt; and &lt;tt&gt;bbdiff&lt;/tt&gt;) installed. Also, you should have a &lt;tt&gt;/usr/local&lt;/tt&gt; directory and it has been added to your &lt;tt&gt;$PATH&lt;/tt&gt;. You&#039;ll have to find out how to do this on your own if you don&#039;t already know how.&lt;br /&gt;
&lt;br /&gt;
Download the &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=634&amp;amp;entry_id=130&quot;  onmouseover=&quot;window.status=&#039;http://www.twobarleycorns.net/tkcvs_8_0_4.tar.gz&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;TkCVS for Unix&quot;&gt;Unix distro&lt;/a&gt; (the latest was 8.0.4 as of this writing) to your Desktop.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Unpack the distro.&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;tar -xvzf tkcvs_8_0_4.tar.gz&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Install into &lt;tt&gt;/usr/local&lt;/tt&gt;&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;cd tkcvs_8_0_4&lt;br /&gt;
sudo ./doinstall.tcl -nox /usr/local&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Launch X11 and launch TkCVS from the &lt;tt&gt;xterm&lt;/tt&gt;. Or, better yet, customize the X11 &quot;Applications&quot; menu and add a command for &lt;tt&gt;tkcvs&lt;/tt&gt; (I set mine to command-t).&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;tkcvs&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Edit the &lt;tt&gt;cvsdiff&lt;/tt&gt; script in the &lt;tt&gt;contrib&lt;/tt&gt; directory.&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;bbedit contrib/cvsdiff&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Find the line: &lt;tt&gt;VDIFF=&quot;gvim -d -f&quot;&lt;/tt&gt; and replace it with:&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;VDIFF=&quot;bbdiff --wait --resume&quot;&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Copy the &lt;tt&gt;cvsdiff&lt;/tt&gt; script in the &lt;tt&gt;contrib&lt;/tt&gt; directory to &lt;tt&gt;/usr/local/bin&lt;/tt&gt;.&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;sudo cp contrib/cvsdiff /usr/local/bin/cvsdiff&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Edit the &lt;tt&gt;.tkcvs&lt;/tt&gt; config file to use the diff wrapper script and &lt;tt&gt;bbedit&lt;/tt&gt; for comparing and editing.&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;bbedit ~/.tkcvs&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Add the following lines to the config file.&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;set cvscfg(editor) &quot;bbedit --wait --resume&quot;&lt;br /&gt;
set cvscfg(tkdiff) &quot;/usr/local/bin/cvsdiff&quot;&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;Launch TkCVS again via X11 &lt;tt&gt;xterm&lt;/tt&gt; and you&#039;re good to go!&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;tkcvs&lt;br /&gt;
&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
Oh yeah. Don&#039;t forget that to cut/copy/paste (etc...) you need to use the control key and not the command key. You&#039;re in X-Windows after all. &lt;img src=&quot;http://blog.latcarf.com/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; 
    </content:encoded>

    <pubDate>Wed, 27 Jun 2007 20:44:38 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/130-guid.html</guid>
    
</item>
<item>
    <title>Vana'diel Time</title>
    <link>http://blog.latcarf.com/archives/129-Vanadiel-Time.html</link>
            <category>Mac OS X</category>
    
    <comments>http://blog.latcarf.com/archives/129-Vanadiel-Time.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=129</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=129</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    I recently started working on a &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=619&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://www.playonline.com/ff11us/intro/about/welcom.html?pageID=about&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Vana&#039;diel&quot;&gt;Vana&#039;diel&lt;/a&gt; (&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=620&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://www.playonline.com/ff11us/index.shtml&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Final Fantasy XI&quot;&gt;Final Fantasy XI&lt;/a&gt;) clock written in &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=621&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://developer.apple.com/cocoa/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Cocoa - Mac OS X&quot;&gt;Cocoa&lt;/a&gt;. My reasoning for doing this (when there really isn&#039;t any need for &lt;i&gt;another&lt;/i&gt; Vana&#039;diel clock) is two-fold:&lt;br /&gt;
1. I want to learn Cocoa and a good way to learn something is to associate it with something you already enjoy (ie. Final Fantasy).&lt;br /&gt;
2. The only Mac OS X Vana&#039;diel clock out there is old, lacks some info I&#039;d like it to have, and doesn&#039;t really have the nicest interface (text only - no eye candy).&lt;br /&gt;
&lt;br /&gt;
The biggest hump for me so far was figuring out how to calculate the time. I looked at some javascript clocks people had written but I didn&#039;t like the fact that they all seem based on some arbitrary date. I wanted something that could go all the way back to the beginning of Vana&#039;diel time. The Vana&#039;diel epoch (the Vana&#039;diel big bang, if you will). I decided, I wanted to write the algorithim myself, differently from all the ways I&#039;ve seen it done. Fortunately, I found a &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=622&amp;amp;entry_id=129&quot;  onmouseover=&quot;window.status=&#039;http://www.miwarre.org/time/index.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Miwarre&#039;s Place&quot;&gt;great resource&lt;/a&gt; explaining some of the critical information needed to understand how Vana&#039;diel time works. Thanks Miwarre! &lt;img src=&quot;http://blog.latcarf.com/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
I wanted to rapidly prototype a simple clock to test my algorithm and I figured I could do it easily and quickly enough using Applescript. I&#039;ve posted the script here for anyone else trying to work with Vana&#039;diel time.&lt;br /&gt;
&lt;br /&gt;
When I re-wrote this for Cocoa, I didn&#039;t use the &quot;seconds since epoch&quot; constant I used here because I found a cleaner way with NSCalendarDate. The jist of it is that I can create an NSCalendarDate object using the &quot;earth&quot; date that corresponds to the Vana&#039;diel epoch date and the effect is the same.&lt;br /&gt;
&lt;br /&gt;
I have to give a big special thanks to my girlfriend who checked my work (by hand!) and found that I&#039;d originally used the wrong value in the unix_seconds_since_epoch_at_vana_epoch (it was missing the extra 86400 seconds for the 1968 leap year). This has since been corrected in this script.&lt;br /&gt;
&lt;br /&gt;
The Applescript simply returns the current Vana&#039;diel date.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;applescript&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; unix_seconds_since_epoch &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; do shell &lt;span style=&quot;color: #b1b100;&quot;&gt;script&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;date &lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&quot;&lt;/span&gt;+%s&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\&quot;&lt;/span&gt;&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; vana_rate_mod &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;25&lt;/span&gt; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;-- Vana time runs 25 times faster than earth time.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; vana_seconds_per_day &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;86400&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; vana_days_per_week &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;8&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; vana_days_per_month &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;30&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;--This value is derived from the amount of seconds that elapsed between the &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;--Vana&#039;diel epoch (0001/01/01 00:00) which is 1967/02/09 15:00 and the &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;--UNIX epoch which is 1970/01/01 00:00. This includes a leap year (1968/02/29) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;--which adds an extra 86400 seconds. Since all calculations are based off seconds &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;--since the UNIX epoch, we need to add this value to any UNIX seconds we use.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; unix_seconds_since_epoch_at_vana_epoch &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;91270800&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;-- Find out the Vana&#039;diel minutes since the Vana&#039;diel epoch.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; vana_seconds_since_epoch &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;unix_seconds_since_epoch + ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; unix_seconds_since_epoch_at_vana_epoch&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; * vana_rate_mod&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; vana_days_since_epoch &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_seconds_since_epoch / vana_seconds_per_day&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; vana_weeks_since_epoch &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_days_since_epoch / vana_days_per_week&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; vana_months_since_epoch &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_days_since_epoch / vana_days_per_month&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_year &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; round &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_days_since_epoch / &lt;span style=&quot;color: #cc66cc;&quot;&gt;360&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; rounding up&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_month &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; round &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_months_since_epoch&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;12&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; rounding up&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_day &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; round &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_days_since_epoch&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;30&lt;/span&gt; rounding up&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_hour &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; round &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_seconds_since_epoch &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; vana_seconds_per_day&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span style=&quot;color: #cc66cc;&quot;&gt;3600&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; rounding down&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_minute &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; round &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_seconds_since_epoch &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; vana_seconds_per_day&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;3600&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span style=&quot;color: #cc66cc;&quot;&gt;60&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; rounding down&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; v_minute &lt;span style=&quot;color: #b1b100;&quot;&gt;is&lt;/span&gt; less than &lt;span style=&quot;color: #cc66cc;&quot;&gt;10&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_minute &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;0&quot;&lt;/span&gt; &amp;amp; v_minute&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;end&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_second &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; round &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_seconds_since_epoch &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; vana_seconds_per_day&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;3600&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; &lt;span style=&quot;color: #cc66cc;&quot;&gt;60&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; rounding down&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; v_second &lt;span style=&quot;color: #b1b100;&quot;&gt;is&lt;/span&gt; less than &lt;span style=&quot;color: #cc66cc;&quot;&gt;10&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_second &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;0&quot;&lt;/span&gt; &amp;amp; v_second&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;end&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; v_wday &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; round &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;vana_days_since_epoch &lt;span style=&quot;color: #000066;&quot;&gt;mod&lt;/span&gt; vana_days_per_week&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; rounding up&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;set&lt;/span&gt; week_days &lt;span style=&quot;color: #b1b100;&quot;&gt;to&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Firesday&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Earthsday&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Watersday&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Windsday&quot;&lt;/span&gt;, ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Iceday&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Lightningsday&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Lightsday&quot;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Darksday&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;v_year &amp;amp; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;/&quot;&lt;/span&gt; &amp;amp; v_month &amp;amp; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;/&quot;&lt;/span&gt; &amp;amp; v_day &amp;amp; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot; &quot;&lt;/span&gt; &amp;amp; ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; v_hour &amp;amp; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;:&quot;&lt;/span&gt; &amp;amp; v_minute &amp;amp; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;:&quot;&lt;/span&gt; &amp;amp; v_second &amp;amp; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;&amp;#160; &quot;&lt;/span&gt; &amp;amp; ¬&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; item &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;v_wday&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;of&lt;/span&gt; week_days&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;as&lt;/span&gt; string&lt;br /&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 18 Jun 2007 19:50:31 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/129-guid.html</guid>
    
</item>
<item>
    <title>Download all Space.com Wallpapers</title>
    <link>http://blog.latcarf.com/archives/125-Download-all-Space.com-Wallpapers.html</link>
            <category>CLI</category>
    
    <comments>http://blog.latcarf.com/archives/125-Download-all-Space.com-Wallpapers.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=125</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=125</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    This is a really quick and dirty script I banged out in about a half-hour to download all the wallpapers at &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=601&amp;amp;entry_id=125&quot;  onmouseover=&quot;window.status=&#039;http://space.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Space.com&quot;&gt;Space.com&lt;/a&gt;. I like reading the articles at &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=601&amp;amp;entry_id=125&quot;  onmouseover=&quot;window.status=&#039;http://space.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Space.com&quot;&gt;Space.com&lt;/a&gt; from time to time and I found the wallpapers there are pretty cool. I wanted to grab them all and use them for my Mac OS X screensaver. Of course, downloading them individually (click, click, click, right-click, save as, etc... - ad infinitum), is a pain in the ass. So, the &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=601&amp;amp;entry_id=125&quot;  onmouseover=&quot;window.status=&#039;http://space.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Space.com&quot;&gt;Space.com&lt;/a&gt; Wallpaper Download (sdcwd) script was born! &lt;img src=&quot;http://blog.latcarf.com/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
The script recursively downloads all the images of the specified size, creating folders for each collection. Just start it and let it run!&lt;br /&gt;
&lt;br /&gt;
I used the following software and versions, you&#039;ll need &lt;tt&gt;&#039;-o&#039;&lt;/tt&gt; support in &lt;tt&gt;grep&lt;/tt&gt; for sure and have &lt;tt&gt;curl&lt;/tt&gt; and &lt;tt&gt;wget&lt;/tt&gt; installed. Of course, if the urls change at &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=601&amp;amp;entry_id=125&quot;  onmouseover=&quot;window.status=&#039;http://space.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Space.com&quot;&gt;Space.com&lt;/a&gt;, this script will be broken. Your mileage may vary.&lt;br /&gt;
&lt;br /&gt;
Software Versions:&lt;br /&gt;
curl - curl 7.13.1&lt;br /&gt;
grep - grep (GNU grep) 2.5.1&lt;br /&gt;
wget - GNU Wget 1.8.2&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;bash&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Space.com Wallpaper Download (sdcwd)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;image_size=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;1280&quot;&lt;/span&gt; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Set this to 640, 800, 1024, or 1280 depending on the image size you want&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;collections=&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;`curl -s http://www.space.com/php/multimedia/downloads/wallpapers/collection.php?&lt;span style=&quot;color: #0000ff;&quot;&gt;collection=&lt;/span&gt;adrian_lark | \&lt;br /&gt;grep -o &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;option value=&amp;quot;collection.php?collection=&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\(&lt;/span&gt;.*&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\)&lt;/span&gt;&amp;quot;&#039;&lt;/span&gt; | \&lt;br /&gt;sed &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;s,option value=&amp;quot;collection.php?collection=&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\(&lt;/span&gt;.*&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\)&lt;/span&gt;&amp;quot;,&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\1&lt;/span&gt;,&#039;&lt;/span&gt;`&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;collection_url=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;http://www.space.com/php/multimedia/downloads/wallpapers/collection.php?collection=&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;image_url=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;http://a52.g.akamaitech.net/f/52/827/1d/www.space.com/entertainment/downloads/spaceart/images/&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;logFile=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;sdcwd.log&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;topDir=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;Space.com_Wallpapers&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;getImages&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;this_collection=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$1&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;collurl=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;${collection_url}${this_collection}&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt; ! -d &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$this_collection&quot;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #b1b100;&quot;&gt;then&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; mkdir &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$this_collection&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$this_collection&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Log&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;----------------------------&quot;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;../$logFile&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$this_collection&quot;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;../$logFile&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;----------------------------&quot;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;../$logFile&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; curl -s &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$collurl&quot;&lt;/span&gt; | grep &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;/php/multimedia/imagedisplay/wallpaper_display.php?pic=.*_$image_size&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\.&lt;/span&gt;jpg&quot;&lt;/span&gt; | \&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; grep -o &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;pic=&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\(&lt;/span&gt;.*.jpg&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\)&lt;/span&gt;&quot;&lt;/span&gt; | \&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; sed &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;s,pic=,$image_url,&quot;&lt;/span&gt; | \&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; tee -a &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;../$logFile&quot;&lt;/span&gt; | \&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; xargs wget -q&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# Log&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&quot;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;../$logFile&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;../$logFile&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; ../&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# If we didn&#039;t download any pics for this directory (maybe the requested size wasn&#039;t available)&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;# remove the empty directory.&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; find &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$this_collection&quot;&lt;/span&gt; -&lt;span style=&quot;color: #000066;&quot;&gt;type&lt;/span&gt; d -empty | xargs rmdir&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;old_dir=&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;`pwd`&quot;&lt;/span&gt;&lt;br /&gt;mkdir &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$topDir&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$topDir&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; this_collection &lt;span style=&quot;color: #b1b100;&quot;&gt;in&lt;/span&gt; $&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;collections&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;@&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;do&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; getImages &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$this_collection&quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000066;&quot;&gt;cd&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;$old_dir&quot;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt; 
    </content:encoded>

    <pubDate>Mon, 09 Apr 2007 01:01:17 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/125-guid.html</guid>
    
</item>
<item>
    <title>Recursively Convert Line-Endings</title>
    <link>http://blog.latcarf.com/archives/124-Recursively-Convert-Line-Endings.html</link>
            <category>CLI</category>
    
    <comments>http://blog.latcarf.com/archives/124-Recursively-Convert-Line-Endings.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=124</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=124</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    &lt;div class=&quot;locution_cli&quot;&gt;&lt;br /&gt;
&lt;font color=&quot;#69C&quot;&gt;$&lt;/font&gt; find . -type f -exec perl -pi -e &#039;s/\r\n?/\n/g&#039; {} \; &lt;font color=&quot;green&quot;&gt;&amp;#172;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Found on &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=586&amp;amp;entry_id=124&quot;  onmouseover=&quot;window.status=&#039;http://madross.com/convert-windows-line-endings-to-unix-os-x/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Madness and Macness&quot; target=&quot;locution&quot;&gt;Madness &amp;amp; Macness&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 07 Mar 2007 22:15:32 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/124-guid.html</guid>
    
</item>
<item>
    <title>OvoLab Phlink</title>
    <link>http://blog.latcarf.com/archives/118-OvoLab-Phlink.html</link>
            <category>Mac OS X</category>
    
    <comments>http://blog.latcarf.com/archives/118-OvoLab-Phlink.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=118</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=118</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    I purchased and finally received an &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=563&amp;amp;entry_id=118&quot;  onmouseover=&quot;window.status=&#039;http://www.ovolab.com/phlink/index.php&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;OvoLab Phlink&quot;&gt;OvoLab Phlink&lt;/a&gt;. I&#039;ve connected it to my Mac Mini (my home automation server) and haven&#039;t gotten much further than running the software and calling it a few times. Eventually, I plan on setting up full control of my home X-10 system but of course, like anything fun, it takes some time to do it.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- s9ymdb:93 --&gt;&lt;img width=&#039;200&#039; height=&#039;74&#039; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://blog.latcarf.com/uploads/misc/ico_phlink.gif&quot; alt=&quot;Phlink Icon&quot; /&gt;So far I&#039;ve noticed some issues with hanging up and not leaving a message. Phlink seems to leave the telephone connected and never really hangs it up. I&#039;m hoping it will be a transient problem - the kind that only happens when you&#039;re playing around with something that isn&#039;t set up properly yet. I noticed a &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=564&amp;amp;entry_id=118&quot;  onmouseover=&quot;window.status=&#039;http://www.ovolab.com/phlink/forum/viewtopic.php?t=1552&amp;amp;highlight=hangup&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Phlink won&#039;t hang up&quot;&gt;few reports&lt;/a&gt; of the same behavior on the &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=565&amp;amp;entry_id=118&quot;  onmouseover=&quot;window.status=&#039;http://www.ovolab.com/phlink/forum/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Phlink forum&quot;&gt;Phlink forum&lt;/a&gt; but never really saw a definitive solution. Further experimentation will certainly be called for. &lt;img src=&quot;http://blog.latcarf.com/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hopefully I&#039;ll get everything set up to the point that I have total control over my house from a few button presses on my cell phone! Isn&#039;t technology great? 
    </content:encoded>

    <pubDate>Fri, 26 Jan 2007 21:49:25 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/118-guid.html</guid>
    
</item>
<item>
    <title>Upgrade Hard Drive on Debian Linux (Sarge)</title>
    <link>http://blog.latcarf.com/archives/110-Upgrade-Hard-Drive-on-Debian-Linux-Sarge.html</link>
            <category>Linux</category>
    
    <comments>http://blog.latcarf.com/archives/110-Upgrade-Hard-Drive-on-Debian-Linux-Sarge.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=110</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=110</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    This weekend I decided to upgrade my Linux server (the same server running this weblog). The machine is a decommissioned corporate Compaq DeskPro EN - 1GHz Pentium III with a 20GB hard drive. When I first installed Debian 3.1 (Sarge) I installed it on the original hard drive. I ran it that way for over two years and finally decided to replace the hard drive with a 300GB one. After doing some Googling on the subject, it seemed like this might not be too hard. Then, this is Linux after all and even the simplest tasks can balloon in complexity depending on the hardware you&#039;re working with. As I worked through the task it seemed a little tough but, in retrospect, it really wasn&#039;t that problematic. Here&#039;s what I did... &lt;br /&gt;&lt;a href=&quot;http://blog.latcarf.com/archives/110-Upgrade-Hard-Drive-on-Debian-Linux-Sarge.html#extended&quot;&gt;Continue reading &quot;Upgrade Hard Drive on Debian Linux (Sarge)&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 10 Sep 2006 23:23:43 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/110-guid.html</guid>
    
</item>
<item>
    <title>Clamcorder Released!</title>
    <link>http://blog.latcarf.com/archives/105-Clamcorder-Released!.html</link>
            <category>Mac OS X</category>
    
    <comments>http://blog.latcarf.com/archives/105-Clamcorder-Released!.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=105</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=105</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    There&#039;s a mini-game in Final Fantasy XI called &quot;clamming.&quot; You dig up items in the sand and drop them into a bucket. Each item has a specific weight and the bucket can only hold so much before it breaks. If you can fill the bucket within five ponzes (the weight unit of Vana&#039;diel - the world in Final Fantasy XI), you can transfer your items in to a larger bucket and continue digging stuff up. If your bucket breaks, you lose anything you&#039;ve dug up so far. At anytime you can stop clamming and save the items.&lt;br /&gt;
&lt;br /&gt;
The mini-game is appealing because it&#039;s got a mixture or skill and chance some items you might find can be worth alot of gil (the monetary unit in Vana&#039;diel). I started clamming for fun and then I got hooked on it and decided I could start making some profit. In the course of clamming, I created a tool that helps me track the weight in my bucket. As things go, it ended up being able to do much more than that.&lt;br /&gt;
&lt;br /&gt;
Today, I finally released it to the public as a free &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=475&amp;amp;entry_id=105&quot;  onmouseover=&quot;window.status=&#039;http://latcarf.com/FFXI/pages/clamcorder.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Clamcorder!&quot; target=&quot;locution&quot;&gt;download&lt;/a&gt;! It&#039;s called &lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=475&amp;amp;entry_id=105&quot;  onmouseover=&quot;window.status=&#039;http://latcarf.com/FFXI/pages/clamcorder.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Clamcorder!&quot; target=&quot;locution&quot;&gt;Clamcorder&lt;/a&gt; (a play on &quot;clamming&quot; and &quot;recorder&quot;). &lt;br /&gt;&lt;a href=&quot;http://blog.latcarf.com/archives/105-Clamcorder-Released!.html#extended&quot;&gt;Continue reading &quot;Clamcorder Released!&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 04 Jun 2006 23:33:48 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/105-guid.html</guid>
    
</item>
<item>
    <title>Convert Date to UNIX Timestamp</title>
    <link>http://blog.latcarf.com/archives/101-Convert-Date-to-UNIX-Timestamp.html</link>
            <category>CLI</category>
    
    <comments>http://blog.latcarf.com/archives/101-Convert-Date-to-UNIX-Timestamp.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=101</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=101</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    I looked all over trying to find an easy way to convert a date to a UNIX timestamp in a shell or perl script. I was disappointed that I didn&#039;t find anything that was easy, sure and didn&#039;t require extra software. Most of my UNIX scripts have to operate on Mac OS X so I don&#039;t concern myself too much about portability and generally try to use what&#039;s already available on the system.&lt;br /&gt;
&lt;br /&gt;
The easiest way I found to convert a date string to a UNIX timestamp is with PHP&#039;s &lt;tt&gt;strtotime&lt;/tt&gt; function. Fortunately, PHP is included on Mac OS X machine at no extra charge! &lt;img src=&quot;http://blog.latcarf.com/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; This one-liner handles the need pretty well.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;&lt;br /&gt;
&lt;font color=&quot;#69C&quot;&gt;$&lt;/font&gt; my_stamp=`php -r \ &lt;font color=&quot;green&quot;&gt;&amp;#172;&lt;/font&gt;&lt;br /&gt;
&#039;fwrite(STDOUT,strtotime(&quot;2006-05-08 15:23:52&quot;));&#039;` &lt;font color=&quot;green&quot;&gt;&amp;#172;&lt;/font&gt;&lt;br /&gt;
&lt;font color=&quot;#69C&quot;&gt;$&lt;/font&gt; echo $my_stamp&lt;/font&gt; &lt;font color=&quot;green&quot;&gt;&amp;#172;&lt;/font&gt;&lt;br /&gt;
1147127032&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The constants: &lt;tt&gt;STDIN&lt;/tt&gt;, &lt;tt&gt;STDOUT&lt;/tt&gt;, and &lt;tt&gt;STDERR&lt;/tt&gt; are predefined to make life easy!&lt;br /&gt;
&lt;br /&gt;
For more info, check out: &quot;&lt;a href=&quot;http://blog.latcarf.com/exit.php?url_id=441&amp;amp;entry_id=101&quot;  onmouseover=&quot;window.status=&#039;http://us3.php.net/features.commandline&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; target=&quot;locution&quot; title=&quot;Using PHP from the command line&quot;&gt;Using PHP from the command line&lt;/a&gt;.&quot;&lt;br /&gt;
&lt;br /&gt; 
    </content:encoded>

    <pubDate>Tue, 09 May 2006 13:39:28 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/101-guid.html</guid>
    
</item>
<item>
    <title>An Easy SQL Search and Replace</title>
    <link>http://blog.latcarf.com/archives/99-An-Easy-SQL-Search-and-Replace.html</link>
            <category>Linux</category>
    
    <comments>http://blog.latcarf.com/archives/99-An-Easy-SQL-Search-and-Replace.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=99</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=99</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    After making some path changes this blog here, I needed to update some of the URLs in previous entries (mainly image URLs). I thought it was going to be tough but it turns out there&#039;s an easy way to do it with a SQL one-liner.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;sql&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;UPDATE&lt;/span&gt; myTable &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SET&lt;/span&gt; myColumn = &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;REPLACE&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;myColumn, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;searchText&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;replaceText&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I love simple solutions! &lt;img src=&quot;http://blog.latcarf.com/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 04 May 2006 13:25:21 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/99-guid.html</guid>
    
</item>
<item>
    <title>Recursively Delete Subversion Properties</title>
    <link>http://blog.latcarf.com/archives/98-Recursively-Delete-Subversion-Properties.html</link>
            <category>CLI</category>
    
    <comments>http://blog.latcarf.com/archives/98-Recursively-Delete-Subversion-Properties.html#comments</comments>
    <wfw:comment>http://blog.latcarf.com/wfwcomment.php?cid=98</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.latcarf.com/rss.php?version=2.0&amp;type=comments&amp;cid=98</wfw:commentRss>
    

    <author>nospam@example.com (Latcarf)</author>
    <content:encoded>
    My conversion from cvs to svn caused a bunch of files to end up with svn:keywords set for Author, Date, Revision, and Id. I recursively deleted the svn:keywords property from all the files with the following command. This could work with other svn property commands as well.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;locution_cli&quot;&gt;&lt;font color=&quot;#69C&quot;&gt;$&lt;/font&gt; cd ~/sandbox/project/ &lt;font color=&quot;green&quot;&gt;&amp;#172;&lt;/font&gt;&lt;br /&gt;
&lt;font color=&quot;#69C&quot;&gt;$&lt;/font&gt; find . ! -path &quot;*svn*&quot; \&lt;br /&gt;
&lt;font color=&quot;#69C&quot;&gt;&amp;gt;&lt;/font&gt; -exec svn propdel &quot;svn:keywords&quot; &quot;{}&quot; \; &lt;font color=&quot;green&quot;&gt;&amp;#172;&lt;/font&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt; 
    </content:encoded>

    <pubDate>Fri, 14 Apr 2006 19:08:47 -0400</pubDate>
    <guid isPermaLink="false">http://blog.latcarf.com/archives/98-guid.html</guid>
    
</item>

</channel>
</rss>