<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hackerdude &#187; Mac</title>
	<atom:link href="http://www.hackerdude.com/category/os-dependent/mac/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hackerdude.com</link>
	<description>Software Development Blog by David Martinez</description>
	<lastBuildDate>Fri, 17 Sep 2010 18:31:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>iPad &#8211; first impressions</title>
		<link>http://www.hackerdude.com/2010/04/04/ipad-first-impressions/</link>
		<comments>http://www.hackerdude.com/2010/04/04/ipad-first-impressions/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 22:21:52 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[IPad]]></category>
		<category><![CDATA[kindle]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/?p=765</guid>
		<description><![CDATA[My experiences with the iPad so far]]></description>
			<content:encoded><![CDATA[<p>Yesterday I went ahead and picked up an iPad. A lot of people are wondering if it makes sense as a device. Here are my impressions.<br />
<span id="more-765"></span><br />
I've only used it for a few hours now and I have to say I'm impressed. Its use as a big iPod is flawless. It's an excellent at-home-with-kids machine, as I was able to plant it as an impromptu tv while I cooked breakfast. I can imagine it being a great "follow recipe" experience. Using the iPhone for that was a bit awkward. As a computer, it's not so good, but does fill that hole in between nicely.</p>
<p>It was painful to wait for the first time sync which took about two hours on my device (I have a lot of stuff). It's much faster now.</p>
<p>The keyboard is not as bad as the iPhone (I'm typing this on the iPad) but it is no walk in the park to type on either. I bought the apple case for it that makes it incline and I couldn't imagine being able to type fast without it. However the angle it produced forced me to put a small book underneath to avoid carpal tunnel by bringing it closer to my fingers. Although now you can type long texts (the software keyboard is basically a full-travel size, with wider than normal spacing between keys), it's probably a good idea to pick up an external keyboard if you're going to find yourself typing a whole bunch, particularly due to the complete lack of cursor keys. The keyboard is meant to be used with the iPad on a surface though, it's hard to type while also holding the device.</p>
<p>Netflix is simply awesome on it. Release night had some performance problems but they seemed to have been fixed by this morning (everyone trying it out probably).</p>
<p>So far I have browsed the web with it, played some games, read books using Kindle's app and watched netflix. It works fantastically well (speakers are better than on the iPod but not as good as a notebook, headphones are still required in loud environments).</p>
<p>I did get the only ssh app available directly for the iPad to see if I could do work in a pinch. It works but it's still painful (my brain seems to crave the tactile feedback once I get into a command line). I will try it later with a bluetooth keyboard and if that works I'll be getting one to keep in my bag.</p>
<p>I picked up the iWork suite but not having anything pressing that requires it I have only followed tutorials so far. I can already tell the experience of having to sync files through iTunes is not going to cut it though as I have two computers, work and home. I really need to be able to get to any file in my MobileMe at least. Not having the option to do so is, well, disappointing. I wish I had a real finder, even if it did only client AFP. </p>
<p>I also tried the books app, and was able to easily sync epubs I dragged to my library but oddly no PDFs. Sad because I have a lot of those I want to keep as reference. Luckily my iPhone apps (stanza) all work so I can still use the dropbox/stanza trick, though 2x pixellated stanza won't do for the longer term.</p>
<p>All in all, it's an ambitious device and it does take the place of my Kindle in my bag permanently. I will still use the kindle in super-sunny environments and while relaxing in the backyard over the summer, but there is really no reason for it in other circumstances when given the choice. I still love my amazon eBooks though, so I was happy to see that amazon has smartly added the buy option on the iPad version of their app. As I see it most of the flaws are smaller and in the software, so I'm pretty happy and looking forward to those firmware updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2010/04/04/ipad-first-impressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Figure out the encoding of a stream</title>
		<link>http://www.hackerdude.com/2009/10/02/figure-out-the-encoding-of-a-stream/</link>
		<comments>http://www.hackerdude.com/2009/10/02/figure-out-the-encoding-of-a-stream/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 21:30:09 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/?p=598</guid>
		<description><![CDATA[Have you ever seen a stream of data coming from a network, and it has some European accented characters in an encoding you don't recognize? Sometimes bad coding practices or assumptions about encoding when pasting into documents make the encoding on the file not match all or part of the encoding of a document. This [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever seen a stream of data coming from a network, and it has some European accented characters in an encoding you don't recognize? Sometimes bad coding practices or assumptions about encoding when pasting into documents make the encoding on the file not match all or part of the encoding of a document. This is a quick way to find out what encoding(s) match.</p>
<p>It's not fully automated, it still requires your eyes. But it can make a difference when you're writing parsing code and you don't know what to do with some edge cases. Maybe some code like this coupled with a spell checker inside the loop would give you some sense of automation.</p>
<p><span id="more-598"></span>
<ul>
<li>First, install iconv (on a Mac, use sudo port install iconv).</li>
<li>Next, use curl (sudo port install curl if you don't have it) to get the stream and save it to a file, or copy/paste the section you see looking strange.</li>
<li>Now write this program and run it:</li>
</ul>
<pre class="rails"><span style="color:#008000; font-style:italic;">#!/usr/bin/ruby</span>
CHARSETS=<span style="color:#996600;">`iconv -l | xargs`</span>.<span style="color:#CC0066; font-weight:bold;">split</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">' '</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#008000; font-style:italic;">#puts CHARSETS.join(',')</span>
RESULTS=<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
CHARSETS.<span style="color:#5A0A0A; font-weight:bold;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> |charset|
	<span style="color:#008000; font-style:italic;">#puts &quot;Trying: #{charset}&quot;</span>
	RESULTS<span style="color:#006600; font-weight:bold;">&#91;</span>charset<span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#996600;">`cat untitled<span style="color:#000099;">\\</span> thefile.txt | iconv --from-code=#{charset} 2&amp;gt;&amp;#38;1`</span>
<span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
RESULTS.<span style="color:#5A0A0A; font-weight:bold;">each</span><span style="color:#006600; font-weight:bold;">&#123;</span>|charset, result|
	<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;#{charset} - #{result.sub(&quot;</span>\n<span style="color:#996600;">&quot;, ' ')}&quot;</span>
<span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;</pre>
<p>   Now look at the results. Sometimes, more than one may match.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/10/02/figure-out-the-encoding-of-a-stream/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FuzzyCom :: Using DTrace for javascript debug on OS X in firefox</title>
		<link>http://www.hackerdude.com/2009/02/10/fuzzycom-using-dtrace-for-javascript-debug-on-os-x-in-firefox/</link>
		<comments>http://www.hackerdude.com/2009/02/10/fuzzycom-using-dtrace-for-javascript-debug-on-os-x-in-firefox/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 18:14:29 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2009/02/10/fuzzycom-using-dtrace-for-javascript-debug-on-os-x-in-firefox/</guid>
		<description><![CDATA[Vincent Hellot over at FuzzyCom teaches how to use dtrace to trace javascript problems on a Mac (using a specially compiled Firefox binary for OSX). He hints at being able to do it with Ruby on Rails as well. Haven't tried this, but can't wait to do so. This post aims at introducing the DTrace [...]]]></description>
			<content:encoded><![CDATA[<p>Vincent Hellot over at <a href="http://fuzzycom.eu/posts">FuzzyCom</a> teaches how to use dtrace to trace javascript problems on a Mac (using a specially compiled Firefox binary for OSX). He hints at being able to do it with Ruby on Rails as well. Haven't tried this, but can't wait to do so.</p>
<blockquote cite="http://fuzzycom.eu/posts/22">
<p>This post aims at introducing the DTrace debugging tool in the scope of a javascript application. It won&#8217;t get too deep in the wide field of DTrace functions but I hope it will give you an overview of how DTrace can help to solve performance and debugging issues in your javascript applications</p>
<p>[From <a href="http://fuzzycom.eu/posts/22"><cite>FuzzyCom :: Using DTrace for javascript debug on OS X in firefox</cite></a>]
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/02/10/fuzzycom-using-dtrace-for-javascript-debug-on-os-x-in-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Appscript &#8211; Sweet automation</title>
		<link>http://www.hackerdude.com/2009/01/23/ruby-appscript-sweet-automation/</link>
		<comments>http://www.hackerdude.com/2009/01/23/ruby-appscript-sweet-automation/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 00:50:26 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2009/01/23/ruby-appscript-sweet-automation/</guid>
		<description><![CDATA[Yesterday a coworker pointed me to ruby's appscript. I have found it nothing short of amazing. I love my Mac, and many of us like the idea of automating our software, until we try to use AppleScript to do it. To say that Applescript is professional developer unfriendly is an understatement. I like ruby but [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday a coworker pointed me to ruby's appscript. I have found it nothing short of amazing.</p>
<p>I love my Mac, and many of us like the idea of automating our software, until we try to use AppleScript to do it. To say that Applescript is professional developer unfriendly is an understatement. I like ruby but to make ruby and applescript talk requires sending strings to osascript in just the right way and getting the output from osascript back. Not a lot of fun at all.</p>
<p>Enter appscript. <a href="http://appscript.sourceforge.net/" title="Appscript - Ruby applescript automation">Appscript</a> is a ruby library that interfaces with applescript seamlessly.</p>
<p><span id="more-541"></span>
<p>What's pretty amazing is its power after you spend a little while on the irb console and keep using the tab key for autocompletion. It even introspects the dictionary to see what is available at this time. It doesn't always give the right thing but by trying things out and with a bit of logic you always get there. </p>
<p>There's also an app called ASDictionary that will spit out the dictionary with ruby syntax, though I never found the dictionary all that useful anyway (I mean yes, it has definitions for everything, but it seldom provides info on exactly how everything is tied together or examples of use). I personally prefer trying things out on the console.</p>
<p>Here are a few examples of its use. You can do all this on irb immediately after installing it with <strong>sudo gem install appscript</strong>:</p>
<h4>Driving iCal</h4>
<p>This will get all your calendars and print their names:</p>
<pre class="ruby">&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'appscript'</span>
app = Appscript.<span style="color:#9900CC;">app</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;iCal&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
app.<span style="color:#9900CC;">calendars</span>.<span style="color:#9900CC;">get</span>.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> |cal| <span style="color:#CC0066; font-weight:bold;">puts</span> cal.<span style="color:#9900CC;">name</span>.<span style="color:#9900CC;">get</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;</pre>
<p>Just expanding on this concept a little more, you can also grab all the to-dos:  </p>
<pre class="ruby">&nbsp;
app.<span style="color:#9900CC;">calendars</span>.<span style="color:#9900CC;">get</span>.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> |cal|
  cal.<span style="color:#9900CC;">get</span>.<span style="color:#9900CC;">todos</span>.<span style="color:#9900CC;">get</span>.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span>|todo|
    <span style="color:#CC0066; font-weight:bold;">puts</span> todo.<span style="color:#9900CC;">summary</span>.<span style="color:#9900CC;">get</span>
  <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;</pre>
<h4>Automating Safari. Ruby to Applescript to Javascript</h4>
<p>Haven't tried marshaling values back as I'm just exploring, but I don't see why it couldn't.</p>
<pre class="ruby">&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'appscript'</span>
app = Appscript.<span style="color:#9900CC;">app</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;iCal&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
app.<span style="color:#9900CC;">open_location</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;http://www.google.com&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
window = app.<span style="color:#9900CC;">documents</span>.<span style="color:#9900CC;">get</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>
window.<span style="color:#9900CC;">do_JavaScript</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;window.alert('Your title is '+document.title)&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;</pre>
<p>I'm sure you can find some use for this. I already did - I wrote myself a quick cron to add all the JIRA tasks assigned to me to <a href="http://www.omnigroup.com/applications/omnifocus/" title="Omnifocus - Professional Grade Desktop Task Mnagement">Omnifocus</a> if I don't already have them there. I'm looking forward to seeing what else I can put this to use.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/01/23/ruby-appscript-sweet-automation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quick and stupid: Don&#039;t set unlimited on the buffer size of Terminal</title>
		<link>http://www.hackerdude.com/2009/01/14/quick-and-stupid-dont-set-unlimited-on-the-bufer-size-of-terminal/</link>
		<comments>http://www.hackerdude.com/2009/01/14/quick-and-stupid-dont-set-unlimited-on-the-bufer-size-of-terminal/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 18:09:00 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2009/01/14/quick-and-stupid-dont-set-unlimited-on-the-bufer-size-of-terminal/</guid>
		<description><![CDATA[If you're a developer and use Terminal.app, don't set "unlimited" on the buffer size. After a day of using it heavily to review logs and whatnot your computer will be *really* slow. It's Terminal.app keeping in RAM what you did yesterday. Stupid and Obvious, but still figured I'd write it down.]]></description>
			<content:encoded><![CDATA[<p>If you're a developer and use Terminal.app, don't set "unlimited" on the buffer size. After a day of using it heavily to review logs and whatnot your computer will be *really* slow. It's Terminal.app keeping in RAM what you did yesterday. Stupid and Obvious, but still figured I'd write it down.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2009/01/14/quick-and-stupid-dont-set-unlimited-on-the-bufer-size-of-terminal/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bindings, Outlets, Target+Action across multiple NIBs</title>
		<link>http://www.hackerdude.com/2008/12/15/bindings-outlets-targetaction-across-multiple-nibs/</link>
		<comments>http://www.hackerdude.com/2008/12/15/bindings-outlets-targetaction-across-multiple-nibs/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 06:12:49 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2008/12/15/bindings-outlets-targetaction-across-multiple-nibs/</guid>
		<description><![CDATA[I'm a total troublemaker. For my first Core Data app I decided to do something nontrivial (multiple windows referring to a single document). Of course nontrivial means that the Interface Builder can only help me so far. So now I'm stuck trying to get things to work out right. Luckily Patrick Geiller has put together [...]]]></description>
			<content:encoded><![CDATA[<p>I'm a total troublemaker. For my first Core Data app I decided to do something nontrivial (multiple windows referring to a single document). Of course nontrivial means that the Interface Builder can only help me so far. So now I'm stuck trying to get things to work out right. Luckily Patrick Geiller has put together a good explanation of how you can share multiple nibs across an application. Now all I have to do is apply this same data sharing technique to the NSDocument instead.</p>
<blockquote cite="http://parmanoir.com/Bindings,_Outlets,_Target+Action_across_multiple_NIBs">
<p>When using multiple NIBs, we need a common object that will share data among them. That object will hold bindings, outlets, target/action shared across NIBs.</p>
<p>  [From <a href="http://parmanoir.com/Bindings,_Outlets,_Target+Action_across_multiple_NIBs"><cite>Bindings, Outlets, Target+Action across multiple NIBs</cite></a> ]
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2008/12/15/bindings-outlets-targetaction-across-multiple-nibs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating a Git project for XCode/Cocoa apps</title>
		<link>http://www.hackerdude.com/2008/12/15/creating-a-git-project-for-xcodecocoa-apps/</link>
		<comments>http://www.hackerdude.com/2008/12/15/creating-a-git-project-for-xcodecocoa-apps/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 19:51:58 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2008/12/15/creating-a-git-project-for-xcodecocoa-apps/</guid>
		<description><![CDATA[You can always count on somebody to have figured things out before you.. Chrisopher Roach's blog has a nice quick setup guide to get your xcode project in a git repo (gitignores, attributes and basic git push capability). Whenever I setup a new Xcode project, the first thing I do is initialize it as a [...]]]></description>
			<content:encoded><![CDATA[<p>You can always count on somebody to have figured things out before you.. Chrisopher Roach's blog has a nice quick setup guide to get your xcode project in a git repo (gitignores, attributes and basic git push capability).</p>
<blockquote cite="http://christopherroach.com/archives/35">
<p> Whenever I setup a new Xcode project, the first thing I do is initialize it as a Git repository and add some configuration to the project that will make using Git with Xcode a bit less messy.</p>
<p>[From <a href="http://christopherroach.com/archives/35"><cite>christopherroach.com</cite></a> ]
</p></blockquote>
<p>And of course debate has already started on the merits of treating certain things as binary to avoid merging nightmares. &lt;sarcasm&gt;Don't you love XML syntaxes?&lt;/sarcasm&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2008/12/15/creating-a-git-project-for-xcodecocoa-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby, Folder actions and full automation</title>
		<link>http://www.hackerdude.com/2008/09/25/ruby-folder-actions-and-full-automation/</link>
		<comments>http://www.hackerdude.com/2008/09/25/ruby-folder-actions-and-full-automation/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 00:03:37 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2008/09/25/ruby-folder-actions-and-full-automation/</guid>
		<description><![CDATA[I routinely scan my documents as PDFs so I can keep them in a virtual filing cabinet (you know, the whole "paperless office" thing). I use my HP all-in-one software running on a Windows VM inside a Mac (sorry, but the Mac scanning software on HP is complete garbage in my opinion). What bothered me [...]]]></description>
			<content:encoded><![CDATA[<p>I routinely scan my documents as PDFs so I can keep them in a virtual filing cabinet (you know, the whole "paperless office" thing). I use my HP all-in-one software running on a Windows VM inside a Mac (sorry, but the Mac scanning software on HP is complete garbage in my opinion).</p>
<p>What bothered me about this was that all the files scanned always end up named "scan12345.pdf". Because of the way I file, I like having my things as "year/company/year-monty-date.pdf" instead.</p>
<p><span id="more-532"></span></p>
<p>For a while there I was spending hours manually moving files to the correct folders while watching TV or doing another "using half-my-brain" activity. I thought there had to be a better way. I'm a bit handy with software, so I started a little ruby script to do the move for me.</p>
<p>The script uses pdftotext (you can get pdftotext using <a href="http://www.macports.org">MacPorts</a>  ) and ruby to determine information inside the actual PDF (scan them as "searchable PDFs" so it OCRs the text). Once it makes that determination, it does the file move to the appropriate place. A series of Regular expressions inside the script determine what company it belongs to, and a strong date parser takes a look at anything that looks significant enough that has a date attached to it in order to determine an appropriate date IN the scanned document, as opposed to the date of the file (which it uses if it can't find any parsable dates inside the document).</p>
<p>So now I had a script that could do those moves properly, but still didn't want to have to remember to continuously running the script. Here is where the Mac's Folder Actions feature comes in.</p>
<p>Using Folder Actions, I wrote the following script to wait for the file to drop in the folder (the scanning program on the Windows side uses a VMWare shared folder to drop the PDF on a mac folder):</p>
<p>It's not perfect. It uses a delay mechanism to wait for the Windows side to finish writing the PDF (dumb scanning program creates the zero-byte file and waits to fill it until it has run OCR on the whole thing). But because the folder action works on all PDFs on the document, it can pick up the ones it couldn't run pdftotext on the last time, so it's good enough for now. It also has a real problem pulling the correct date on documents where a lot of patterns could be a date (need to work on a good algorithm - I haven't found one yet).</p>
<p>Anyway, here are <a href="http://www.hackerdude.com/wp-content/sample_code/auto_file.rb">the auto_file script</a> and the <a href="http://www.hackerdude.com/wp-content/sample_code/added_scanned_doc.applescript.txt">applescript folder actions script</a> that triggers it.</p>
<p>Hopefully it will be useful for you if you have a similar need or just for learning how you can streamline some of the stuff you do every day with your Mac. Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2008/09/25/ruby-folder-actions-and-full-automation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Some useful OSX Applications</title>
		<link>http://www.hackerdude.com/2008/05/29/some-useful-osx-applications/</link>
		<comments>http://www.hackerdude.com/2008/05/29/some-useful-osx-applications/#comments</comments>
		<pubDate>Fri, 30 May 2008 06:03:45 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2008/05/29/some-useful-osx-applications/</guid>
		<description><![CDATA[Besides the iLife Suite, here are some applications I've found useful lately. Here they are. I will update this in the next few days. These apps I just can't live without (in no particular order): Spanning Sync.- Syncs your Google Calendars and iCal. $25 per year, or one-time $65. Ecto.- If you do a lot [...]]]></description>
			<content:encoded><![CDATA[<p>Besides the iLife Suite, here are some applications I've found useful lately. Here they are. I will update this in the next few days.</p>
<p><span id="more-524"></span></p>
<p>These apps I just can't live without (in no particular order):</p>
<ul>
<li><a href="http://spanningsync.com/" title="Spanning Sync - Sync google calendars">Spanning Sync</a>.- Syncs your Google Calendars and iCal. $25 per year, or one-time $65.</li>
<li><a href="http://infinite-sushi.com/software/ecto/" title="Ecto Blogging Tool">Ecto</a>.- If you do a lot of bloging, you can use TextMate as I have mentioned before, or you can just use a blogging app. This is a good one. $17.49</li>
<li><a href="http://www.circusponies.com/store/index.php?main_page=notebook&amp;sub=publish" title="Notebook">Notebook</a> by Circus Ponies.- A good outliner that also lets you bring in disparate information from the web, link files, etcetera. $49.99</li>
<li><a href="http://www.adiumx.com/" title="Adium Instant Messenger">Adium</a>.- The instant messenger client for OSX that is multiprotocol and open source. Free.</li>
<li><a href="http://www.panic.com/coda/" title="Coda - One Window Web Development">Coda</a>.- An excellent web development app for PHP types. $79</li>
<li><a href="http://fluidapp.com/" title="Site Specific Browser">Fluid</a>.- A lot of us use a lot of different web applications. This lets you make a site-specific browser that only runs on this application. Free.</li>
<li><a href="http://www.pascal.com/software/freeruler/" title="Free Ruler">Free Ruler</a>.- A simple screen ruler. Simple, efficient. Free.</li>
<li><a href="http://www.shinywhitebox.com/home/home.html" title="iShowU - Record your actions into a movie">iShowU</a>.- Records anything going on on your screen into a movie. Excellent for showing "why things aren't working".</li>
<li><a href="http://www.officetime.net/" title="OfficeTime Time tracking software">OfficeTime</a> .- Tracks your time by project. Useful for accurate time accounting. $47.00</li>
<li><a href="http://www.videolan.org/vlc/" title="VLC Video Player">VLC</a>.- A video player that does it all. Because life is too short to worry about video codecs. Free.</li>
<li><a href="http://www.vmware.com/download/fusion/" title="VMWare Fusion">VMware Fusion</a>.- Virtual Machine. Run any intel OS on your Mac. $79.99</li>
<li><a href="http://www.apple.com/iwork/" title="Apple iWork">iWork</a>.- If you don't have giant excel files with Macros and you don't live by the MS Office suite, this is very good. I don't have office on this machine anymore and I don't miss it. $79</li>
<li><a href="http://www.macports.org/" title="The MacPorts project">MacPorts</a>.- Requires the OSX development tools installed. If you are a Linux, Unix or BSD switcher, get this to maintain your more unix-y software. SVN, Git, colordiff, languages. Basically the whole ports tree ported over, plus a lot of Mac-specific stuff. Free and Open Source.</li>
</ul>
<p>Here are others that I have been playing with, which you may find useful or interesting:</p>
<ul>
<li><a href="http://www.journler.com/" title="Journler Journal Software">Journler</a>.- Kind of interesting, journaling software. Lets you keep a journal and add video/audio to it. Some todo type features. $34.</li>
</ul>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2008/05/29/some-useful-osx-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iBank Review</title>
		<link>http://www.hackerdude.com/2007/07/31/ibank-review/</link>
		<comments>http://www.hackerdude.com/2007/07/31/ibank-review/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 05:52:40 +0000</pubDate>
		<dc:creator>David Martinez</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.hackerdude.com/2007/07/31/ibank-review/</guid>
		<description><![CDATA[After my nightmare with Quicken I decided to try many different financial packages. I ended up deciding on iBank 2.3.2. I have been using it for a little while now and here are my impressions. technorati tags: finances osx mac Migrating from Quicken I tried migrating from Quicken (2007 for Mac) 3 times, but it [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://www.hackerdude.com/2007/07/09/osx-personal-finance-software-alternatives/" title="Hackerdude &raquo; OSX Personal Finance Software Alternatives">my nightmare with Quicken</a> I decided to try many different financial packages. I ended up deciding on <a href="http://www.hackerdude.com/2007/07/09/osx-personal-finance-software-alternatives/" title="Hackerdude &raquo; OSX Personal Finance Software Alternatives">iBank 2.3.2</a>. I have been using it for a little while now and here are my impressions.</p>
<p />
<p /><!-- technorati tags begin -->
<p style="font-size:10px;text-align:right;">technorati tags:<br />
<a href="http://technorati.com/tag/funny" rel="finances">finances</a><br />
<a href="http://technorati.com/tag/funny" rel="osx">osx</a><br />
<a href="http://technorati.com/tag/funny" rel="mac">mac</a>
</p>
<p><!-- technorati tags end --></p>
<p><span id="more-513"></span></p>
<h3>Migrating from Quicken</h3>
<p>I tried migrating from Quicken (2007 for Mac) 3 times, but it was my mistake for not checking the help file on how to do it. It turns out all you have to do (after exporting the QIF from Quicken) is to select a checkbox that says "Create Accounts for this file" while on the Open File for Import dialog box. On the final try everything came in and the balances looked sane.</p>
<p>It wasn't a seamless upgrade however - it couldn't tell that the bracketed categories (which in Quicken are actually accounts) are actually meant to be account transfers, so it duplicated the transfers. I spent some time cleaning it and removing the extra transfer (I just set the appropriate account on one of the transactions and zeroed out the other one). At the end I ended up with a bunch of categories with brackets (as many as I had accounts) with zero amounts for me to delete. So do budget a bit of time (maybe 2/3 hours) for this process. I don't see why this couldn't be done automatically, and as most people would be switching from Quicken (unless <a href="http://www.applematters.com/index.php/section/comments/mac-personal-finance-software-disappointment/" title="Apple Matters | Mac Personal Finance Software = Disappointment">they want to add the price of Windows, Parallels and the disk space to the price of Quicken</a>) I think it's worth doing.</p>
<h3>First Impressions and Setting things Up</h3>
<p>The UI is very, very nice, taking advantage of all the OS X features; for example, start typing on the search box on the top right and things immediately get filtered. The program's design is very practical. For example, whenever the account info pane is not open, an automatic spending graph is shown on it. On transactions, an image can be attached, which is extremely useful if your bank's website provides images of your checks. In full OS X style, you just drag the image from the browser to the image field, which is oversized so it can easily be dropped on.</p>
<p><center><img src="http://www.hackerdude.com/wp-content/uploads/2007/07/ibank.png" alt="iBank" height="480" width="640"/></center></p>
<p>Accounts can also be set to a currency. If you live or have business out of the country where you live this is specially useful, as it will download the exchange rates for you and update your account values automatically.</p>
<p>It seems to have some problems with scrolling on my Macbook Pro, especially when I have my second monitor attached and I keep moving the windows back and forth. The UI has crashed on me a few times (I drive software hard). But it's never brought down the file with it. I either Save then quit when things get strange or just force quit. I have lost the last transaction once or twice (usually when pasting a dollar number from the web, during the pressing escape or trying to get out of the "invalid format" error caused by the dollar sign or spaces around it). Compared to what I had to suffer under Intuit's product, however, this is easily suffered, and it only takes a couple of times to learn to avoid it.</p>
<p>Although it lacks "wizard-style" setup for a lot of things, iBank is full of nice details that make things easier after they've been set up. Accounts can be grouped, and the groups nicely subtotal the accounts under it. The account icon also shows an exclamation point when you have provided a minimum balance and it is overdrawn. Debt shows up in red. Categories can be assigned colors.</p>
<h3>Adding Data</h3>
<p>Entering single transactions is as easy as on Quicken. Splits are comparatively annoying to enter but not impossible. Because of the insistence on modeless UIs you usually get in a pickle trying to put the cursor in the right place and such. It's specially annoying that a split puts two rows, but entering a paycheck takes a lot more. It's counterintuitive that you have to go to the parent of the split, right click and select "Split Transaction" again to get a single extra row, instead of right clicking and selecting "New Transaction" from inside the split (which instead creates a whole new "top-level" transaction).</p>
<p>It memorizes the transactions you enter (for auto-suggesting later), but not the ones that you imported. This can be considered either a bug or a feature.</p>
<h4>Importing from Online Accounts</h4>
<p>Quicken and MS Money have what amounts to an <a href="http://en.wikipedia.org/wiki/Oligopoly" title="Oligopoly - Wikipedia, the free encyclopedia">Oligopoly</a> on direct web connection. Having said that, iBank's forums mention they are trying hard to provide direct web connect features. They do open OFX and QIF files after you've downloaded them (and you can associate them to iBank so they open more or less directly). But you still have to go to your bank to download the appropriate transaction files.</p>
<p>Before you consider this a deal killer and go buy Quicken for Mac, review the Mac-specific list of financial institutions on Web Connect, since it is a much smaller list on the Mac, and <a href="http://consumerist.com/consumer/quicken/quicken-claims-to-sync-with-bank-of-america-it-does-unless-you-have-quicken-for-mac-235618.php" title="Quicken: Quicken Claims To Sync With Bank Of America. It Does, Unless You Have Quicken For Mac. - Consumerist">for no good technical reason</a>.</p>
<p>Importing the transactions was relatively painless, about Quicken 98 (for Windows) level - If the QIF file is old style, it shows some of the data and asks you what date format it should use (with a checkbox to remember the decision), and then it provides the pre-imported list. It seems to find duplicates okay. I dedicate a couple of hours a month to just download all the statements. For Bank stuff, I do it once a week but it's only a couple of files so it doesn't take long.</p>
<p>iBank has the concept of Smart Import Rules but it doesn't pre-fill them as you enter the categories. So although you can tell the system to automatically assign the Dining category to items with the word "Restaurant" in them, when you start frantically filling in categories it does not create a corresponding rule for you the way Quicken does.</p>
<h3>Investments</h3>
<p>When I researched the Mac versions of money management apps, investments was the hardest part to get a right feel for. Almost no product seemed to fully work. iBank does pretty well in that respect, although it is by no means perfect.</p>
<p>Portfolio management is very nice. Cost basis are calculated correctly, with First-in/First-out and Average as calculation options. Quotes are downloaded with a single button, and unlike Quicken, which always only uses its own services (and fails to do so on the Mac half the time), this one pretty much always works, and you can use Motley Fool, Yahoo, Google or Excite as your source for quotes. Right clicking on a portfolio item takes you to the appropriate research page for the service you have selected. You can add Indices for tracking (NASDAQ, SP, etc). I only had one problem with BRK-B, which imported as BRK.B and had a problem getting the quote (just a matter of changing the dot to a dash on the ticker after the fact and re-downloading quotes).</p>
<p>The real Achilles heel of this was importing the data for the portfolio on CSV (QIF works fine). When importing the CSV, iBank was expecting a completely different set of columns and I could never import the data. To be fair, I never tried importing data from this particular format under Quicken either.</p>
<h3>Getting Data</h3>
<p>Reporting is strange. You do reporting by doing Graphs. The graphs request the accounts, the categories, interval and currency, and then you have tabs for category pie, cash flow line, a tree view with categories and interval cutoffs, and the list of matching transactions. If you are dependent on accounting-style reports, try them first to make sure you like them.</p>
<p>Budgeting is okay. No auto-budget, but there is a quick keystroke to show the track budget window, with graphs that go green/yellow/red depending on how close you are to the limit.</p>
<p>Like a modern Mac app, it features Smart Accounts. I haven't had the need to use them yet, but I played with them and they work as well as you would expect. You set up the account with a filter of category, amount or date. It doesn't provide an option of match "all" versus match "any" like other applications do however.</p>
<h4>Beautifully Open</h4>
<p>If you are technically inclined however, you will love two things: One, what seems to be full Applescript and Automator support. File commands include the standard open/save, print checks, download quotes, importing. It has data types for accounts, transactions, securities, etcetera. Automator actions include creating account summaries, adding transactions and even sending an SMS message to a Mobile phone with your account data. The <a href="http://www.iggsoftware.com/forums/viewforum.php?f=4" title="IGG Software - iBank Discussion">iBank forums</a> are lively and full of smart people.</p>
<p>If you are more of a low-level database type person, the iBank data file is a Core Data file in sqlite format. So go ahead and write some SQL queries. If you choose this route though try to keep it read-only until you know the data very well, and keep some backups. Now what kind of report you said you really needed?</p>
<h3>Conclusion</h3>
<p>Overall I'm very happy with iBank. It is no Quicken for Windows, but it's much better than the Mac version. It has a lively community around it and the feature set demonstrates experience on the part of the development team on both Mac technology and financial knowledge.</p>
</p>
<p>I'm also happily looking forward to the next version. I expect great things from it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hackerdude.com/2007/07/31/ibank-review/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

