<?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>Mac Fanatic &#187; Featured</title>
	<atom:link href="http://www.macfanatic.net/blog/category/featured/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.macfanatic.net/blog</link>
	<description>All Mac, All the Time</description>
	<lastBuildDate>Wed, 08 Feb 2012 21:46:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>TipCounter 1.0 Now Available</title>
		<link>http://www.macfanatic.net/blog/2011/03/07/tipcounter-1-0-now-available/</link>
		<comments>http://www.macfanatic.net/blog/2011/03/07/tipcounter-1-0-now-available/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 03:10:21 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=6276</guid>
		<description><![CDATA[TipCounter is finally available for sale in iTunes for iPhone &#38; iPod Touch!  Catering specifically to bartenders &#38; servers, TipCounter makes it a breeze to keep track of your tips during shifts and see just how much money you&#8217;re bringing home. Tip Counter is the easiest way to keep track of tips from any job. [...]]]></description>
			<content:encoded><![CDATA[<p>TipCounter is finally available for sale in iTunes for iPhone &amp; iPod Touch!  Catering specifically to bartenders &amp; servers, TipCounter makes it a breeze to keep track of your tips during shifts and see just how much money you&#8217;re bringing home.</p>
<p>Tip Counter is the easiest way to keep track of tips from any job. Easily input the amount you made and how long you worked during your shift to see earning statistics and manage your income better!</p>
<p>For more information and screenshots, check out the tipcounter website at <a href="http://www.tipcounterapp.com">http://www.tipcounterapp.com</a> or follow <a href="http://twitter.com/tipcounterapp">@tipcounterapp</a> on twitter.</p>
<p>To purchase your copy of TipCounter for $1.99 USD, <a href="http://itunes.apple.com/us/app/tip-counter/id418749608?mt=8&amp;ls=1">click here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2011/03/07/tipcounter-1-0-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing PharosPHP &#8211; PHP Development Framework</title>
		<link>http://www.macfanatic.net/blog/2011/01/02/introducing-pharosphp-php-development-framework/</link>
		<comments>http://www.macfanatic.net/blog/2011/01/02/introducing-pharosphp-php-development-framework/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 07:40:19 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=2995</guid>
		<description><![CDATA[I&#8217;d like to introduce my first open source project, entitled PharosPHP.  PharosPHP is a lightweight Object-Oriented framework aimed at providing common and useful functionality to developers, in order to create powerful and flexible applications quickly. Overview I create custom web applications for a living and found myself needing a common toolset across projects.  I looked [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to introduce my first open source project, entitled <a href="http://www.PharosPHP.com">PharosPHP</a>.  PharosPHP is a lightweight Object-Oriented framework aimed at providing common and useful functionality to developers, in order to create powerful and flexible applications quickly.</p>
<h2>Overview</h2>
<p>I create custom web applications for a living and found myself needing a common toolset across projects.  I looked into existing frameworks such as <a href="http://kohanaframework.org/" target="_blank">Kohana</a>, <a href="http://cakephp.org/" target="_blank">CakePHP</a>, and <a href="http://codeigniter.com/" target="_blank">CodeIgnitor</a> &#8211; but ultimately found they were still slightly too complex for my needs and the level of understanding I needed to create robust and reliable applications time and again.  In addition to that, I am responsible for maintaining roughly 6 years worth of prior development work based upon an in-house framework and wanted to carry over as much of the old framework as possible to help myself and future developers in the company.</p>
<h2>PharosPHP</h2>
<p>Unfortunately, my original goal of maintaining as much of the previous code base became less and less achievable as the framework matured under my care due to the inflexibility and poor-foresight when the framework was developed several years prior.  Currently, there is roughly 20% original code/concept in the framework, but much of the philosophy for simple web application development has been preserved and improved upon.</p>
<p><a href="http://rubyonrails.org/" target="_blank">Ruby on Rails</a> and <a href="http://codeigniter.com/" target="_blank">CodeIgnitor</a> were both huge inspirations for this framework.  RoR has a very elegant, simple, &#8220;convention over configuration&#8221; approach to application development and PharosPHP adopted this approach 100%.  The framework is lightweight and transparent enough to allow developers to understand what is going on deep inside the core, but encourages developers to leave it alone and just use the defaults &#8211; application development will be faster and uniform across projects with this approach.</p>
<h2>Features</h2>
<p>The PharosPHP framework focuses on providing a core set of functionality to developers, upon which most web applications can be built quickly and reliably.  A list of the included technologies, methodologies and projects include:</p>
<ul>
<li><a href="http://www.phpactiverecord.org/" target="_blank">PHP Active Record</a></li>
<li><a href="http://jquery.com/" target="_blank">jQuery</a></li>
<li><a href="http://www.swfupload.org/" target="_blank">SWFUpload</a></li>
<li><a href="http://particletree.com/features/php-quick-profiler/" target="_blank">PHP Quick Profiler</a></li>
<li><a href="http://www.phpguru.org/downloads/Rmail/Rmail%20for%20PHP/" target="_blank">RMail</a></li>
<li><a href="http://components.symfony-project.org/yaml/" target="_blank">YAML</a></li>
<li><a href="http://code.google.com/p/php-excel-reader/" target="_blank">MSFT Excel support</a></li>
<li>Apple PLIST support</li>
<li><a href="http://tinymce.moxiecode.com/" target="_blank">TinyMCE</a></li>
</ul>
<p>These projects bring several features to PharosPHP, and in addition PharosPHP provides:</p>
<ul>
<li>MVC architecture</li>
<li>RoR style models, via PHP Active Record (requires PHP 5.3+)</li>
<li>View rendering, buffering, partials, layouts</li>
<li>Fully configurable Routing API</li>
<li>Core System Actions (Hooks) API</li>
<li>framework / application code separation</li>
<li>Authentication framework</li>
<li>Robust caching framework</li>
<li>Modules API for distributing plugins</li>
</ul>
<h2>Open Source Project</h2>
<p>PharosPHP is an open source <a href="http://github.com/macfanatic/PharosPHP" target="_blank">project hosted on GitHub</a>.  If you are interested in contributing or using PharosPHP for your next application development project, please go grab yourself a copy or get started contributing today!</p>
<h2>Get Started</h2>
<p>To get started with PharosPHP today, head on over to <a href="http://www.PharosPHP.com">http://www.PharosPHP.com</a> for more information, code examples, and documentation!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2011/01/02/introducing-pharosphp-php-development-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Interview with Cinder iPhone Developer Patrick Burleson</title>
		<link>http://www.macfanatic.net/blog/2010/03/08/interview-with-cinder-iphone-developer-patrick-burleson/</link>
		<comments>http://www.macfanatic.net/blog/2010/03/08/interview-with-cinder-iphone-developer-patrick-burleson/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 14:24:12 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=2661</guid>
		<description><![CDATA[I recently wrote about BitBQ&#8217;s acquisition of LittleSnapper for iPhone, now Cinder, that was originally developed by Realmac software.  Being a very light LittleSnapper user myself, I was interested in who had taken interest in the application and wanted to get to know Patrick just a little better. He agreed to answer some questions I put together, [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://www.macfanatic.net/blog/2010/03/03/littlesnapper-for-iphone-now-cinder/" target="_blank">recently wrote about BitBQ&#8217;s acquisition of LittleSnapper for iPhone</a>, now <a href="http://bitbq.com/cinder/" target="_blank">Cinder</a>, that was originally developed by <a href="http://www.realmacsoftware.com/" target="_blank">Realmac software</a>.  Being a very light LittleSnapper user myself, I was interested in who had taken interest in the application and wanted to get to know Patrick just a little better. He agreed to answer some questions I put together, including:</p>
<ul>
<li>Personal and company background</li>
<li>Talks about the Cinder acquisition</li>
<li>Talks about transferring an existing app from one company to another</li>
<li>Rates experience with Apple and the iTunes Store</li>
<li>Advertising tips</li>
<li>Gives his favorite Mac and iPhone apps</li>
</ul>
<p>Read after the break for Patrick&#8217;s answers.</p>
<p><span id="more-2661"></span></p>
<h2>&#8220;Please provide some general company background information&#8221;</h2>
<p>I started BitBQ back in August to be my company to create iPhone and Mac software. Since I started it up, I&#8217;ve acquired FitnessTrack, Emergency Information and LittleSnapper for iPhone (now Cinder). I did the acquisitions as a sort of kick start, but I have a couple of my own original apps in the works.</p>
<h2>&#8220;What is your personal expertise? Are you a software developer, business man, or something else entirely?”</h2>
<p>I&#8217;m a software developer, something I&#8217;ve been doing for over 14 years. Ranging from Perl to Java to .NET and of course Cocoa. Writing software is my passion and I love what the iPhone and Mac platforms provide in terms of feeding that passion.</p>
<h2>&#8220;What prompted the Cinder acquisition from Realmac Software?&#8221;</h2>
<p>It all started with a chat I was having with the original developer about what updates were planned for LittleSnapper for iPhone and learning they were looking to find someone who wanted to acquire it. As a user who loved LittleSnapper for iPhone, I jumped at the chance. We worked out the terms and as they say, the rest is history.</p>
<h2>&#8220;Do you personally use the ember web service?&#8221;</h2>
<p>Yes I do. I own LittleSnapper and now Cinder and use both to upload to Ember. I don&#8217;t use it as much as some people do, but I also can&#8217;t share a lot of the screenshots and other things I grab due to the sensitive nature of the images.</p>
<h2>&#8220;What exactly goes into transferring an application to another company, with Apple involved?&#8221;</h2>
<p>Having done this twice now, the dance is pretty simple: unless you have literally bought the entire company, there&#8217;s nothing Apple will do. You are forced to remove the original app and upload a brand new app. It can have the same name, once the original app has been removed. I had to do that with FitnessTrack.</p>
<p>What that means for users is that they have to be aware that the old app is going away and that there will be a new app showing up soon they&#8217;ll need to get to continue to receive updates. To alleviate some of the pain from this transition period, I&#8217;ve now tried two approaches. For FitnessTrack, I ran the app at 40% off on re-introduction to the app store and for Cinder, I&#8217;m running it for free for 2 weeks. The audience for Cinder is a lot larger considering the popularity of LittleSnapper for iPhone, so I wanted to make sure everyone has a chance to get it before I make it a paid app.</p>
<h2>&#8220;How would you rate your happiness with the iTunes App Store?&#8221;</h2>
<p>That&#8217;s a tough one. There are days I absolutely love it. I have Apple taking care of all the harder parts of software delivery: collecting payment, bandwidth, installation, etc. Then there are the days it&#8217;s infuriating. Like the current issue with Cinder not being able to be installed on iPod Touches because of a misconfiguration I can&#8217;t change on the back end without Apple&#8217;s intervention.</p>
<p>Of late, review times have dropped significantly, so that&#8217;s making me and a lot of other developers much happier. It&#8217;s still annoying when you have any hiccup in the process because the response delays are hard to put up with.</p>
<h2>&#8220;What, if any, advertising outlets have you used to promote your applications, and how would you rate those?&#8221;</h2>
<p>I ran a Fusion Ad for FitnessTrack just after the start of the new year. In conjunction with that ad run, I put FitnessTrack on sale for 40% off. While FitnessTrack certainly saw increased traffic and a slight increase in sales, they did not cover the cost of the ad. Before I did the ad, I got the advice of others that had run Fusion Ads and they warned me that it takes a long and sustained ad campaign to have any effect. I still considered it a net win just for the additional exposure to an larger audience. But I won&#8217;t be running any ads any time soon, so I&#8217;m going to have to find other ways to get the word out about my apps.</p>
<h2>&#8220;Are there any other applications you see now that you are thinking of acquiring?&#8221;</h2>
<p>I&#8217;ve been asked this by a few people. To be honest, the LittleSnapper for iPhone acquisition came as a total shock and I certainly wasn&#8217;t seeking it out. For my first acquisition, I did reach out to Justin Williams over at Second Gear to see if he was interested in selling his apps since I knew he was very frustrated with the whole App Store situation.</p>
<p>As of now, I don&#8217;t see any more app acquisition on the horizon for BitBQ. I&#8217;ve got a couple of apps in development, one for the iPhone and one for the Mac, that I&#8217;m planning on getting released this year. With that many apps, I&#8217;ve got a lot of work to keep me busy.</p>
<h2>&#8220;How long have you been using a Mac?&#8221;</h2>
<p>I first started using the Mac in 1992 on a Classic II in my journalism class. I quickly became the system administrator for the room full of Macs ( a mix of Classic IIs and SE/30s ). Those days, I was supporting System 7 and Pagemaker 4 back when it was owed by Aldus.</p>
<p>During my Mac &#8220;dark ages&#8221; (OS 9 till 10.3), I went off to work on Sun workstations and Windows machines. Once 10.4 Tiger hit, I could no longer resist coming back to the Mac. With my love of Unix and great software, the Mac was the place to be. It also helped that I could do any development I wanted on the machines. That was made even easier with the switch to Intel and the release of VMWare Fusion and Parallels. Now I didn&#8217;t even need to have Windows machines around. And I&#8217;m happy to say my house went back to Mac only in 2006.</p>
<h2>&#8220;What is your favorite Mac software application?&#8221;</h2>
<p>Wow, that&#8217;s a hard one to answer, I have so many favorites. How about a short list? <a href="http://nothirst.com/moneywell/" target="_blank">MoneyWell from No Thirst Software</a>, <a href="http://www.red-sweater.com/marsedit/" target="_blank">MarsEdit from Red Sweater Software</a>, <a href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html" target="_blank">SuperDuper! from Shirt Pocket Software</a>, <a href="http://www.secondgearsoftware.com/today/" target="_blank">Today from Second Gear</a>, <a href="http://www.rogueamoeba.com/pulsar/" target="_blank">Pulsar from Rouge Amoeba</a>, <a href="http://www.newsgator.com/individuals/netnewswire/" target="_blank">NetNewsWire from NewsGator</a>, <a href="http://getconcentrating.com/" target="_blank">Concentrate from Made By Rocket</a>, <a href="http://www.mcubedsw.com/software/codecollectorpro" target="_blank">Code Collector Pro from MCubed Software</a>, <a href="http://agilewebsolutions.com/products/1Password" target="_blank">1Password from Agile Web Solutions</a>, <a href="http://www.atebits.com/tweetie-mac/" target="_blank">Tweetie from Atebits</a>, <a href="http://www.panic.com/transmit/" target="_blank">Transmit from Panic</a>, and finally <a href="http://www.busymac.com/" target="_blank">BusyCal from BusyMac</a>.</p>
<p>Ok, so not such a short list, but a list of software I use daily outside of Apple&#8217;s apps. Every part of my day is made easier because of that list of software.</p>
<h2>&#8220;What is your favorite iPhone software application?&#8221;</h2>
<p>My favorite iPhone app is <a href="http://www.atebits.com/tweetie-iphone/" target="_blank">Tweetie 2</a>. It&#8217;s so well executed and has introduced so many awesome UI concepts. Beyond Mail, that&#8217;s the app I launch the most.</p>
<h2>Wrapping Up</h2>
<p>I want to thank Patrick for taking time out of his busy schedule to write up some excellent answers detailing a few questions I really was in the dark about.  Be sure to check out Cinder, for publishing to the wonderful web service Ember, now.  You can grab a free copy until March 17, 2010!</p>

<a href='http://www.macfanatic.net/blog/2010/03/08/interview-with-cinder-iphone-developer-patrick-burleson/cinder_accounts/' title='cinder_accounts'><img width="75" height="75" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/cinder_accounts-150x150.png" class="attachment-thumbnail" alt="cinder_accounts" title="cinder_accounts" /></a>
<a href='http://www.macfanatic.net/blog/2010/03/08/interview-with-cinder-iphone-developer-patrick-burleson/cinder_home/' title='cinder_home'><img width="75" height="75" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/cinder_home-150x150.png" class="attachment-thumbnail" alt="cinder_home" title="cinder_home" /></a>
<a href='http://www.macfanatic.net/blog/2010/03/08/interview-with-cinder-iphone-developer-patrick-burleson/cinder_share_menu/' title='cinder_share_menu'><img width="75" height="75" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/cinder_share_menu-150x150.png" class="attachment-thumbnail" alt="cinder_share_menu" title="cinder_share_menu" /></a>
<a href='http://www.macfanatic.net/blog/2010/03/08/interview-with-cinder-iphone-developer-patrick-burleson/cinder_snap_info/' title='cinder_snap_info'><img width="75" height="75" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/cinder_snap_info-150x150.png" class="attachment-thumbnail" alt="cinder_snap_info" title="cinder_snap_info" /></a>

<p>&nbsp;</p>
<h2>Links</h2>
<div><a href="http://bitbq.com/cinder/buy.html" target="_blank">Cinder iPhone App</a> [iTunes Store Link]</div>
<div><a href="http://bitbq.com/cinder/" target="_blank">BitBQ Website</a></div>
<div><a href="http://www.realmacsoftware.com/" target="_blank">Realmac Software</a></div>
<div><a href="http://emberapp.com/" target="_blank">Ember Web Service</a></div>
<div><a href="http://twitter.com/CinderApp" target="_blank">Follow Cinder App</a> [Twitter]</div>
<div><a href="http://twitter.com/emberapp" target="_blank">Follow Ember </a>[Twitter]</div>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2010/03/08/interview-with-cinder-iphone-developer-patrick-burleson/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MacHeist NanoBundle 2</title>
		<link>http://www.macfanatic.net/blog/2010/03/04/macheist-nanobundle-2/</link>
		<comments>http://www.macfanatic.net/blog/2010/03/04/macheist-nanobundle-2/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 14:35:19 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=2621</guid>
		<description><![CDATA[MacHeist is know for giving consumers a great deal on awesome Mac software.  The NanoBundle 2 is a collection of 7 great Mac applications, valued at over $260 separately, for just $19.95! Now&#8217;s your chance to get great Mac applications, such as: MacJournal ($39.95) MacJournal is the perfect app for you if you do any [...]]]></description>
			<content:encoded><![CDATA[<p>MacHeist is know for giving consumers a great deal on awesome Mac software.  The NanoBundle 2 is a collection of 7 great Mac applications, valued at over $260 separately, for just $19.95!</p>
<p>Now&#8217;s your chance to get great Mac applications, such as:</p>
<h2>MacJournal ($39.95)</h2>
<table align="left">
<tbody>
<tr>
<td><img class="size-full wp-image-2629" title="macjournal" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/macjournal.png" alt="" width="85" height="89" /></td>
<td>MacJournal is the perfect app for you if you do any amount of writing, whether it’s blogging, writing a journal, a password-protected private diary, or anything else you can think of.</td>
</tr>
</tbody>
</table>
<h2>RipIt ($19.95)</h2>
<table align="left">
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-2628" title="ripit" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/ripit.png" alt="" width="90" height="90" /></td>
<td>It seems like forever since you were manually popping a CD into a player to listen to music. So why are you still doing this for your DVDs? RipIt makes it virtually effortless to import your DVDs to your Mac…simply pop in a disc and it does all the work for you, automatically.</td>
</tr>
</tbody>
</table>
<h2>Clips ($27)</h2>
<table align="left">
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-2627" title="clips" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/clips.png" alt="" width="88" height="88" /></td>
<td>Clips is copy &amp; paste reinvented. Forget about each new copied item erasing your clipboard: copy everything you might want to paste, and paste whatever you’d like when you need it from your clipboard manager.</td>
</tr>
</tbody>
</table>
<h2>CoverScout ($39.95)</h2>
<table align="left">
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-2626" title="coverscout" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/coverscout.png" alt="" width="83" height="83" /></td>
<td>In a nutshell, CoverScout enables you to get all the missing cover art for your prized music collection within minutes. Make those ugly gray gaps in iTunes a thing of the past.</td>
</tr>
</tbody>
</table>
<h2>Flow ($25)</h2>
<table align="left">
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-2625" title="flow" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/flow.png" alt="" width="86" height="82" /></td>
<td>Are you still using Transmit, an app that dates all the way back to MacOS 8? Well, if so, then it’s time to make room for the new kid in town… Flow.</td>
</tr>
</tbody>
</table>
<h2>Tales of Monkey Island ($34.95)</h2>
<table align="left">
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-2624" title="monkeyisland" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/monkeyisland.png" alt="" width="80" height="80" /></td>
<td>Tales of Monkey Island is a five-episode adventure game saga featuring mighty pirate Guybrush Threepwood and his motley crew. The game pulls the legendary franchise thundering and plundering into the modern era with an epic storyline conceived by some of the same team that dreamed up the original LucasArts games.</td>
</tr>
</tbody>
</table>
<h2>RapidWeaver ($79)</h2>
<table align="left">
<tbody>
<tr>
<td><img class="alignnone size-full wp-image-2623" title="rapidweaver" src="http://www.macfanatic.net/blog/wp-content/uploads/2010/03/rapidweaver.png" alt="" width="90" height="87" /></td>
<td>RapidWeaver is widely regarded as the best website creation app out there. Even better than Apple’s very own iWeb.</td>
</tr>
</tbody>
</table>
<h2>Past Reviews &amp; Information</h2>
<p>I used to use RapidWeaver to manage this site, a few years ago.  The software is very elegant and powerful, and easy enough to allow people who do not understand the slightest thing about making websites to create stunning websites with ease.  Please check out a few words of my praise for RapidWeaver <a href="http://www.macfanatic.net/blog/2007/04/29/rapidweaver-35-review/">here</a>.</p>
<p>I have also written a review of Flow FTP back in 2008, which you can <a href="http://www.macfanatic.net/blog/2008/04/04/flow-review-exciting-new-ftp-client/">catch here</a>.</p>
<p>And most importantly, check out <a href="http://www.macheist.com/" target="_blank">MacHeist.com</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2010/03/04/macheist-nanobundle-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>That&#8217;s What She Said Jokes &#8211; Now Available!</title>
		<link>http://www.macfanatic.net/blog/2010/02/15/thats-what-she-said-jokes-now-available/</link>
		<comments>http://www.macfanatic.net/blog/2010/02/15/thats-what-she-said-jokes-now-available/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 15:57:06 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Site Related]]></category>
		<category><![CDATA[That's What She Said Jokes]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=2565</guid>
		<description><![CDATA[Enjoy the world&#8217;s best joke on your iPhone or iPod Touch. Browse both user submitted and featured scenarios focusing on That&#8217;s What She Said! Get involved by submitting your own That&#8217;s What She Said funnies and commenting and rating hilarious entries submitted by others just like you! Be sure to check out all the features [...]]]></description>
			<content:encoded><![CDATA[<p>Enjoy the world&#8217;s best joke on your iPhone or iPod Touch. Browse both user submitted and featured scenarios focusing on That&#8217;s What She Said! Get involved by submitting your own That&#8217;s What She Said funnies and commenting and rating hilarious entries submitted by others just like you!</p>
<div class="gallery">
<ul>
<li> <a href="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/1.jpg"><br />
<img src="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/1.jpg" alt="" width="72" height="72" /><br />
</a></li>
<li> <a href="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/2.jpg"><br />
<img src="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/2.jpg" alt="" width="72" height="72" /><br />
</a></li>
<li> <a href="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/3.jpg"><br />
<img src="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/3.jpg" alt="" width="72" height="72" /><br />
</a></li>
<li> <a href="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/4.jpg"><br />
<img src="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/4.jpg" alt="" width="72" height="72" /><br />
</a></li>
<li> <a href="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/6.jpg"><br />
<img src="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/6.jpg" alt="" width="72" height="72" /><br />
</a></li>
<li> <a href="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/7.jpg"><br />
<img src="http://www.macfanatic.net/blog/wp-content/uploads/2010/02/7.jpg" alt="" width="72" height="72" /><br />
</a></li>
</ul>
</div>
<p>Be sure to check out all the features of the only application for iPhone and iPod Touch delivering Thats What She Said Jokes to your device on the official site at <a href="http://twss.macfanatic.net">http://twss.macfanatic.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2010/02/15/thats-what-she-said-jokes-now-available/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing the Apple iPad</title>
		<link>http://www.macfanatic.net/blog/2010/01/27/introducing-the-apple-ipad/</link>
		<comments>http://www.macfanatic.net/blog/2010/01/27/introducing-the-apple-ipad/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 20:05:29 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=2497</guid>
		<description><![CDATA[Today Apple introduced the newest product, the Apple iPad.  The age of the Apple tablet has arrived. 9.7&#8243; multi-touch display and 0.5&#8243; thick. 10 hour battery life. Apple designed and produced A4 processor.  16, 32 or 64GB of flash memory.  Wifi. Bluetooth. Runs most existing iPhone and iPod Touch applications. 3G service provided via AT&#38;T [...]]]></description>
			<content:encoded><![CDATA[<p>Today Apple introduced the newest product, the Apple iPad.  The age of the Apple tablet has arrived.</p>
<p>9.7&#8243; multi-touch display and 0.5&#8243; thick. 10 hour battery life. Apple designed and produced A4 processor.  16, 32 or 64GB of flash memory.  Wifi. Bluetooth. Runs most existing iPhone and iPod Touch applications. 3G service provided via AT&amp;T for an additional $130USD, with no contract and unlimited data at $29.99USD/month.</p>
<p>The Apple tablet is quite impressive, especially with the level of detail and polish that has went into the updated applications provided on the device.  The best way to sum up today&#8217;s event is to quote Scott Forstall, Senior VP of iPhone Software:</p>
<blockquote><p>&#8220;There&#8217;s going to be a new gold rush for app developers.&#8221;</p></blockquote>
<p>And from Bob Mansfield, Senior VP of Hardware:</p>
<blockquote><p>&#8220;We build battery techology, we build chip technology, we build software.  And we bring all those things together in a way that no one else can do it.&#8221;</p></blockquote>
<p>Be sure to watch the video and read all the documentation at <a href="http://www.apple.com/ipad/" target="_blank">http://www.apple.com/ipad/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2010/01/27/introducing-the-apple-ipad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Add Application to Dock &#8211; Cocoa NSApplication Category</title>
		<link>http://www.macfanatic.net/blog/2009/12/02/add-application-to-dock-cocoa-nsapplication-category/</link>
		<comments>http://www.macfanatic.net/blog/2009/12/02/add-application-to-dock-cocoa-nsapplication-category/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 14:00:50 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=1823</guid>
		<description><![CDATA[The need to quickly add my application to a user&#8217;s Dock arose while working on a project for a client a few months back.  I was intrigued by the code (first encounter with NSAppleScript as the big one) and took some time to sit down and refine what I had originally pieced together into something [...]]]></description>
			<content:encoded><![CDATA[<p>The need to quickly add my application to a user&#8217;s Dock arose while working on a project for a client a few months back.  I was intrigued by the code (first encounter with NSAppleScript as the big one) and took some time to sit down and refine what I had originally pieced together into something more usable.</p>
<p>What I eventually settled upon was writing a few category methods for NSApplication, allowing you to easily check and see if your app is already in the user&#8217;s Dock, or add your application to the users Dock (doesn&#8217;t allow for precise placement).</p>
<p>NSApplication-MacFanatic.h adds the following 4 methods:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #a61390;">@interface</span> <span style="color: #400080;">NSApplication</span> <span style="color: #002200;">&#40;</span>MacFanatic<span style="color: #002200;">&#41;</span>
&nbsp;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span>addApplicationToDock;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span>applicationExistsInDock;
&nbsp;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span>addApplicationToDock<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSString</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>path;
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span>applicationExistsInDock<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSString</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>path;
&nbsp;
<span style="color: #a61390;">@end</span></pre></div></div>

<h2 style="margin-top:40px">Examples</h2>
<hr />To quickly see if your application is in the user&#8217;s Dock:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSApplication</span> sharedApplication<span style="color: #002200;">&#93;</span> applicationExistsInDock<span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
	<span style="color: #11740a; font-style: italic;">// App is in dock</span>
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>To quickly add your application to the user&#8217;s Dock:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSApplication</span> sharedApplication<span style="color: #002200;">&#93;</span> addApplicationToDock<span style="color: #002200;">&#93;</span>;</pre></div></div>

<p>These first two methods should undoubtedly come in handy, but as I was originally writing an installer and needed to add the application I was installing, not the currently running application (the installer), to the Dock, so there are yet two more methods for checking a specific application by passing a path.</p>
<p>Checking to see if Atlas is in the user&#8217;s Dock:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSApplication</span> sharedApplication<span style="color: #002200;">&#93;</span> applicationExistsInDock<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;/Applications/Atlas.app&quot;</span><span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
	<span style="color: #11740a; font-style: italic;">// Atlas is in dock</span>
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>Adding Atlas to the user&#8217;s Dock:</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSApplication</span> sharedApplication<span style="color: #002200;">&#93;</span> addApplicationToDock<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;/Applications/Atlas.app&quot;</span><span style="color: #002200;">&#93;</span>;</pre></div></div>

<h2 style="margin-top:40px">Inner Workings</h2>
<p>Here&#8217;s a quick peak at the method for determining if the application is currently in the user&#8217;s Dock:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>44
45
46
</pre></td><td class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span> applicationExistsInDock <span style="color: #002200;">&#123;</span>
	<span style="color: #a61390;">return</span> <span style="color: #002200;">&#91;</span>self applicationExistsInDock<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSBundle</span> mainBundle<span style="color: #002200;">&#93;</span> bundlePath<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
</pre></td><td class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span> applicationExistsInDock<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSString</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>path <span style="color: #002200;">&#123;</span>
&nbsp;
	<span style="color: #400080;">NSString</span><span style="color: #002200;">*</span> app <span style="color: #002200;">=</span> <span style="color: #a61390;">nil</span>;
&nbsp;
	<span style="color: #400080;">NSUserDefaults</span> <span style="color: #002200;">*</span> defaults <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSUserDefaults</span> standardUserDefaults<span style="color: #002200;">&#93;</span>;
	<span style="color: #002200;">&#91;</span>defaults addSuiteNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;com.apple.Dock&quot;</span><span style="color: #002200;">&#93;</span>;
&nbsp;
	<span style="color: #400080;">NSArray</span><span style="color: #002200;">*</span> apps <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>defaults objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;persistent-apps&quot;</span><span style="color: #002200;">&#93;</span>;
	<span style="color: #a61390;">for</span> <span style="color: #002200;">&#40;</span> <span style="color: #400080;">NSDictionary</span><span style="color: #002200;">*</span> d <span style="color: #a61390;">in</span> apps <span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
		app <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>d objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;tile-data&quot;</span><span style="color: #002200;">&#93;</span> objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;file-data&quot;</span><span style="color: #002200;">&#93;</span> objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;_CFURLString&quot;</span><span style="color: #002200;">&#93;</span>;
		<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span> <span style="color: #002200;">&#91;</span>app isEqualToString<span style="color: #002200;">:</span>path<span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
			<span style="color: #a61390;">return</span> <span style="color: #a61390;">YES</span>;
		<span style="color: #002200;">&#125;</span>
	<span style="color: #002200;">&#125;</span> <span style="color: #a61390;">return</span> <span style="color: #a61390;">NO</span>;
&nbsp;
<span style="color: #002200;">&#125;</span></pre></td></tr></table></div>

<h2 style="margin-top:40px">Some Notes</h2>
<p>All of these methods are based on absolute paths &#8211; not application identifiers.  So if the user is running your application from the Desktop and has an alias to your application in the /Applications folder, it will return false.  Doesn&#8217;t matter that the user has two copies of your application.</p>
<p>Love to get some feedback on this, it&#8217;s my finest code contribution on the blog to date I believe.  I&#8217;ve refined this a good bit, but it could use some more love I&#8217;m sure.  I hope to hear that someone has used this in a project!</p>
<h2 style="margin-top:40px">Updates</h2>
<p>This was marked as Tiger compatible code, but I noticed I&#8217;m using Fast Iteration, which was introduced in Leopard.  For Tiger compatibility, just change a few lines:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
</pre></td><td class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">BOOL</span><span style="color: #002200;">&#41;</span> applicationExistsInDock<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSString</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>path <span style="color: #002200;">&#123;</span>
&nbsp;
	<span style="color: #400080;">NSString</span><span style="color: #002200;">*</span> app <span style="color: #002200;">=</span> <span style="color: #a61390;">nil</span>;
&nbsp;
	<span style="color: #400080;">NSUserDefaults</span> <span style="color: #002200;">*</span> defaults <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSUserDefaults</span> standardUserDefaults<span style="color: #002200;">&#93;</span>;
	<span style="color: #002200;">&#91;</span>defaults addSuiteNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;com.apple.Dock&quot;</span><span style="color: #002200;">&#93;</span>;
&nbsp;
	<span style="color: #400080;">NSArray</span><span style="color: #002200;">*</span> apps <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>defaults objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;persistent-apps&quot;</span><span style="color: #002200;">&#93;</span>;
	<span style="color: #400080;">NSDictionary</span><span style="color: #002200;">*</span> d <span style="color: #002200;">=</span> <span style="color: #a61390;">nil</span>;
	<span style="color: #400080;">NSEnumerator</span><span style="color: #002200;">*</span> e <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>apps objectEnumerator<span style="color: #002200;">&#93;</span>;
&nbsp;
	<span style="color: #a61390;">while</span> <span style="color: #002200;">&#40;</span> d <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>e nextObject<span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
		app <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>d objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;tile-data&quot;</span><span style="color: #002200;">&#93;</span> objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;file-data&quot;</span><span style="color: #002200;">&#93;</span> objectForKey<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;_CFURLString&quot;</span><span style="color: #002200;">&#93;</span>;
		<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span> <span style="color: #002200;">&#91;</span>app isEqualToString<span style="color: #002200;">:</span>path<span style="color: #002200;">&#93;</span> <span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
			<span style="color: #a61390;">return</span> <span style="color: #a61390;">YES</span>;
		<span style="color: #002200;">&#125;</span>
	<span style="color: #002200;">&#125;</span> <span style="color: #a61390;">return</span> <span style="color: #a61390;">NO</span>;
&nbsp;
<span style="color: #002200;">&#125;</span></pre></td></tr></table></div>

<p>The download has been updated to contain the new code.</p>
<h2 style="margin-top:40px">Downloads</h2>
<p class="download">Grab the .h and .m files in <a href="/downloads/software/samplecode/NSApplication-Additions.zip">this zip (10.4+)</a></p>
<p class="download">Example <a href="/downloads/software/samplecode/Add-to-Dock.zip">Xcode project (Xcode 3.2, 10.6+)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2009/12/02/add-application-to-dock-cocoa-nsapplication-category/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>4 Years Online &#8211; New Site</title>
		<link>http://www.macfanatic.net/blog/2009/11/27/4-years-online-new-site/</link>
		<comments>http://www.macfanatic.net/blog/2009/11/27/4-years-online-new-site/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 22:53:31 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Site Related]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=1682</guid>
		<description><![CDATA[4 years &#8211; almost. The first iteration of the site debuted in December 2005.  The www.macfanatic.net domain was purchased and running in March 2006.  Sometime that summer I moved from Rapidweaver to WordPress, if I remember correctly.  The site design, quality, and features have all undergone numerous changes over the years.  For a few years [...]]]></description>
			<content:encoded><![CDATA[<p>4 years &#8211; almost.</p>
<p>The first iteration of the site debuted in December 2005.  The www.macfanatic.net domain was purchased and running in March 2006.  Sometime that summer I moved from Rapidweaver to WordPress, if I remember correctly.  The site design, quality, and features have all undergone numerous changes over the years.  For a few years (until September 2007) my main focus was podcasting.  All 72 episodes are still available through <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=117263405">iTunes</a>, or you can just browse the Podcast posts themselves <a href="http://www.macfanatic.net/blog/category/podcasts/">here</a>.</p>
<p>To highlight just a few of the new features in version 4 of the site:</p>
<ul>
<li>Updated Color Pallet &#8211; This will most likely be randomized in a few weeks, to go with an orange, green or blue feel to the site.</li>
<li>Revitalized Search &#8211; Have an &#8220;Apple-style&#8221; search field that quickly shows you related results, grouped together as posts, pages, or comments.</li>
<li>Better Size &#8211; For all those out there on smaller (or rather, standard &#8211; read &#8220;not macbook&#8221;) screens, the site works better</li>
<li>Improved Features area &#8211; You can now page back and forth through my featured posts, instead of waiting on them to change every few seconds</li>
<li>Improved Twitter Integration &#8211; You can now more easily see what I&#8217;m tweeting (which is usually quite often) and easily follow me</li>
<li>Buttons for sharing content on popular social networking sites such as Digg, Facebook, MySpace, Twitter, LinkedIn, and more</li>
<li>Improved Syntax Formatting &#8211; Posts containing code, whether it&#8217;s PHP, C, Cocoa, jQuery, or anything else, will be nicely formatted</li>
<li>PRMac Integration &#8211; I&#8217;m now serving up select press releases distributed through PRMac.com</li>
<li>Advertising &#8211; Now supporting ads! If you&#8217;re interested in advertising on the site, let me know and we&#8217;ll talk pricing. I&#8217;m very flexible.</li>
<li>Many many other smaller things &#8211; stuff you&#8217;ll notice when browsing content, posting comments or sharing with friends</li>
</ul>
<p>I&#8217;d love to hear what you think about the new design and anything I could do to further improve it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2009/11/27/4-years-online-new-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Matt-Brewer.com</title>
		<link>http://www.macfanatic.net/blog/2009/10/16/matt-brewer-com/</link>
		<comments>http://www.macfanatic.net/blog/2009/10/16/matt-brewer-com/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 19:47:24 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Site Related]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=1617</guid>
		<description><![CDATA[I just launched a new site, www.matt-brewer.com for my personal freelance and presence on the web. I&#8217;d welcome any critique of the design!]]></description>
			<content:encoded><![CDATA[<p>I just launched a new site, <a href="http://www.matt-brewer.com">www.matt-brewer.com</a> for my personal freelance and presence on the web.</p>
<p>I&#8217;d welcome any critique of the design!</p>
<p><img src="http://www.macfanatic.net/blog/wp-content/uploads/2009/10/Screen-shot-2009-10-16-at-3.32.37-PM.png" alt="Screen shot 2009-10-16 at 3.32.37 PM" title="Matt Brewer.com" class="alignnone size-full wp-image-1618" style="width:675px"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2009/10/16/matt-brewer-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Snow Leopard Review</title>
		<link>http://www.macfanatic.net/blog/2009/09/02/ars-technica-snow-leopard-review/</link>
		<comments>http://www.macfanatic.net/blog/2009/09/02/ars-technica-snow-leopard-review/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 12:00:20 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=1516</guid>
		<description><![CDATA[I thought I would highlight what I found to be the most interesting points from the Snow Leopard Ars Technica review, for those who couldn&#8217;t make it through the 23 page review and provide a few thoughts on the OS overall. Read after the break for a list of UI and usability changes as well [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I would highlight what I found to be the most interesting points from the <a title="View the &quot;Ars Technica Snow Leopard Review&quot;" href="http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars" target="_blank">Snow Leopard Ars Technica </a>review, for those who couldn&#8217;t make it through the 23 page review and provide a few thoughts on the OS overall.</p>
<p>Read after the break for a list of UI and usability changes as well as a list of interesting changes for Cocoa developers, including code samples.</p>
<p><a title="View the &quot;Ars Technica Snow Leopard Review&quot;" href="http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars" target="_blank"><img class="alignnone size-full wp-image-1517" style="margin:25px; 0px 25px 18px;" title="Snow Leopard Ars Technica Review" src="http://www.macfanatic.net/blog/wp-content/uploads/2009/09/snow_leopard_ars-thumb-640xauto-8029.jpg" alt="Snow Leopard Ars Technica Review" /></a></p>
<p><span id="more-1516"></span></p>
<h1>User Centric Thoughts</h1>
<hr />Through the first half of this article, I&#8217;ll focus on user interface changes and just general usability improvements in the OS.</p>
<h2>Dock</h2>
<p>There were several changes to the Dock, but the one I found the most interesting (and didn&#8217;t know before reading) was the &#8220;Minimize windows into the application icon&#8221; option.  Instead of little windows appearing in the Dock, when clicking the application icon you are shown a list of minimized windows.  Very reminiscent of Windows and the task bar (as there is no preview, only the window title), but surely useful for those out there who minimize lots of windows.</p>
<h2>Finder</h2>
<p>The Finder was completely rewritten for Snow Leopard and should provide a strong foundation moving forward.  There is heavy use of Core Animation in the new Finder, meaning that it just &#8220;looks prettier&#8221; most of the time.  There are animations when renaming files on your Desktop for instance.  And a feature that I personally love:</p>
<blockquote><p>List view also has a few enhancements—accidental, incidental, or otherwise. The drag area for each list view item now spans the entire line. In Leopard, though the entire line was highlighted, only the file name or icon portion could be dragged. Trying to drag anywhere else just extended the selection to other items in the list view as the cursor was moved. I&#8217;m not sure whether this change in behavior is intentional or if it&#8217;s just an unexamined consequence of the underlying control used for list view in the new Cocoa Finder. Either way, thumbs up.</p></blockquote>
<p>Overall the Finder looks very similar to the Leopard version, but is more responsive and has a feature here and there that reminds you that this is a new version.</p>
<h2>Radnom Refinements</h2>
<p>This is just an assortment of interesting tidbits I picked up while reading.</p>
<ul>
<li>Safari runs plugins as separate processes. If a plugin crashes, Safari won&#8217;t.</li>
<li>Menlo is the new default font for Monospaced fonts (S<a href="http://www.macfanatic.net/blog/2009/06/15/programming-fonts/">ee my article here</a>)</li>
<li>Resolution Independence still sucks</li>
<li>Core Location support &#8211; your Mac can find itself</li>
<li>Wake from Sleep feature &#8211; with a Time Capsule or AirPort Extreme station, you can access contents from a sleeping Mac over the local network at any time.  Works great with the &#8220;Back to my Mac&#8221; feature.</li>
<li>No <a href="http://en.wikipedia.org/wiki/ZFS" target="_blank">ZFS</a> support</li>
</ul>
<h1 style="margin-top:45px;">Developer Centric Thoughts</h1>
<hr />Here on out is several points of interest for developers.</p>
<h2>File Compression</h2>
<p>Snow Leopard introduces per file compression to the HFS+ file system used by Apple.</p>
<h3>Resource Forks &amp; Extended File Attributes</h3>
<p>To bring file compression to the already fragile HFS+ file system and maintain backwards compatibility, Apple stores the compressed file data in resource forks, and either compressed or uncompressed in extended file attributes.  What this means:</p>
<blockquote><p>And where can the complete contents of a potentially large file be hidden in such a way that pre-Snow Leopard systems can still copy that file without the loss of data? Why, in the resource fork, of course. The Finder has always correctly preserved Mac-specific metadata and both the resource and data forks when moving or duplicating files. In Leopard, even the lowly cp and rsync commands will do the same. So while it may be a little bit spooky to see all those &#8220;empty&#8221; 0 KB files when looking at a Snow Leopard disk from a pre-Snow Leopard OS, the chance of data loss is small, even if you move or copy one of the files.</p></blockquote>
<h3>Performance Gains</h3>
<p>You might first think that all this file compression would either waste space or waste CPU cycles.  John from Ars Technica proposes that given the known fact that the physical motions of a hard drive are the slowest part of modern computers, storing the compressed data in resource forks and extended attributes makes sense because that data is stored in one of two locations on the disk.  And because these two areas are frequently used, the read/write head of the hard drive is close by and has less moves to make and can be quicker.  Also, because the two files are accessed so frequently, caching occurs providing even greater performance benefits.</p>
<h2>QuickTime X</h2>
<p>Snow Leopard introduced a completely rewritten 64-bit API for QuickTime.  The new QuickTime X Player is nice and fancy, but the underlying API has underwent the knife.  QuickTime debuted in 1991 and after 18 years has finally seen a significant update.</p>
<h3>64 Bit</h3>
<p>The interesting part is the new QuickTime X API in QTKit is smart.  The API is optimized for playback and is 64 bit only.  Transparently, if an application needs features that QTKit (QuickTime X) cannot deliver (and there are many currently), QTKit will revert to the previous QuickTime 7 API.  And if a developer writes a 32 bit application and wants to use the newer QuickTime X API, QTkit will just spawn another process that is 64 bit to deliver content back to the 32 bit application, all transparently. The user will get the best experience with the least amount of effort from the developer, which is always a win.</p>
<h2>File System API Unification</h2>
<p>Briefly, between POSIX functions, CoreFoundation, and Cocoa itself, there are several ways to access data about the filesystem.  Currently there is no unified approach to fetch all this data.</p>
<p>When opening a file in Leopard Preview, there are:</p>
<blockquote>
<ul>
<li>Four conversions of an FSRef to a file path</li>
<li>Ten conversions of a file path to an FSRef</li>
<li>Twenty-five calls to getattrlist()</li>
<li>Eight calls to stat()/lstat()</li>
<li>Four calls to open()/close()</li>
</ul>
</blockquote>
<p>Snow Leopard will use NSURL for all file system operations, instead of strings representing file paths.  To the end user, this means the user could move a file and the application wouldn&#8217;t lose track of it as the NSURL has a unique identifier that is not based on file location alone.</p>
<h2>Clang and LLVM</h2>
<h3>Performance Gains</h3>
<blockquote><p>Clang brings with it the two headline attributes you expect in a hot, new compiler: shorter compile times and faster executables. In Apple&#8217;s testing with its own applications such as iCal, Address Book, and Xcode itself, plus third-party applications like Adium and Growl, Clang compiles nearly three times faster than GCC 4.2. As for the speed of the finished product, the LLVM back-end, whether used in Clang or in LLVM-GCC, produces executables that are 5-25% faster than those generated by GCC 4.2.</p></blockquote>
<h3>Static Analyzer</h3>
<p>The static analyzer is the single best feature in Snow Leopard as far as I&#8217;m concerned.  Essentially Xcode is smarter and can analyze all ways your code might interact to determine errors in your logic.  Unprecedented.</p>
<p>Read more about my thoughts on the static analyzer in Xcode 3.2 <a href="http://www.macfanatic.net/blog/2009/08/28/xcode-3-2-static-analysis/">here</a>.</p>
<h2>Blocks</h2>
<p>Blocks are an extension to C based languages, currently only supported by Apple in it&#8217;s 4 compilers shipping with Snow Leopard.  Essentially, blocks are a way to pass a &#8220;block&#8221; of code.  Not the same as a function, which has it&#8217;s own scope.</p>
<h3>Example</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #a61390;">FILE</span> <span style="color: #002200;">*</span>fp <span style="color: #002200;">=</span> <span style="color: #a61390;">fopen</span><span style="color: #002200;">&#40;</span>filename, <span style="color: #bf1d1a;">&quot;r&quot;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>fp <span style="color: #002200;">==</span> <span style="color: #a61390;">NULL</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
  <span style="color: #a61390;">perror</span><span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">&quot;Unable to open file&quot;</span><span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span>
<span style="color: #a61390;">else</span> <span style="color: #002200;">&#123;</span>
  <span style="color: #a61390;">char</span> line<span style="color: #002200;">&#91;</span>MAX_LINE<span style="color: #002200;">&#93;</span>;
&nbsp;
  <span style="color: #a61390;">while</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">fgets</span><span style="color: #002200;">&#40;</span>line, MAX_LINE, fp<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
    work;
    work;
    work;
  <span style="color: #002200;">&#125;</span>
&nbsp;
  <span style="color: #a61390;">fclose</span><span style="color: #002200;">&#40;</span>fp<span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span></pre></td></tr></table></div>

<p>The example above is boilerplate code and assumes you want to do some &#8220;work;&#8221; with the line once you&#8217;ve read it in from a file.  By using blocks, you could create a function that takes the filename and a block, simplifying moving through the file greatly.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;">foreach_line<span style="color: #002200;">&#40;</span>filename, <span style="color: #002200;">^</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">char</span> <span style="color: #002200;">*</span>line<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
  work;
  work;
  work;
<span style="color: #002200;">&#125;</span><span style="color: #002200;">&#41;</span>;</pre></div></div>

<h3>API Use</h3>
<p>John informs us that Apple uses blocks in over 100 new API calls that would simply not be possible prior to Snow Leopard.</p>
<h2>Threading and Grand Central Dispatch</h2>
<p>The age old problem in computing:</p>
<blockquote><p>This is the enemy: hardware with more computing resources than programmers know what to do with, most of it completely idle, and all the while the user is utterly blocked in his attempts to use the current application.</p></blockquote>
<p>Grand Central Dispatch makes great progress in helping developers alleviate the headaches in asynchronously executing tasks in their application.</p>
<h3>Overview</h3>
<p>Essentially, Grand Central Dispatch (GCD) is a system level library that manages a global pool of available threads, and grabs tasks from queues your application sets up.  The more resources the system has available, the more threads GCD has free and the faster it can grab tasks from your application queues.  Since the system is managing the threads, there is no application overhead for thread management and the possibility of too many threads, and yet your application can get the last bit of performance from the system by using all available resources.  All automatically.</p>
<blockquote><p>Let&#8217;s say a program has a problem that can be split into eight separate, independent units of work. If this program then creates four threads on an eight-core machine, is this an example of creating too many or too few threads? Trick question! The answer is that it depends on what else is happening on the system.</p>
<p>If six of the eight cores are totally saturated doing some other work, then creating four threads will just require the OS to waste time rotating those four threads through the two available cores. But wait, what if the process that was saturating those six cores finishes? Now there are eight available cores but only four threads, leaving half the cores idle.</p></blockquote>
<p>There is a performance gain here is as well.  If you were managing threads at your application level, you have to create and release threads as you use them.  GCD uses a global thread pool, so the threads are always active.  Whether or not they are working is the only change.  By simply maintaining active threads, the system can pull just a little bit more performance from the system.</p>
<h3>First Example</h3>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>IBAction<span style="color: #002200;">&#41;</span>analyzeDocument<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSButton</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>sender
<span style="color: #002200;">&#123;</span>
  <span style="color: #400080;">NSDictionary</span> <span style="color: #002200;">*</span>stats <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>myDoc analyze<span style="color: #002200;">&#93;</span>;
  <span style="color: #002200;">&#91;</span>myModel setDict<span style="color: #002200;">:</span>stats<span style="color: #002200;">&#93;</span>;
  <span style="color: #002200;">&#91;</span>myStatsView setNeedsDisplay<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;
  <span style="color: #002200;">&#91;</span>stats release<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>The above method is a simple action called by a button click that will analyze a document and display the results.  Under normal circumstances this would be nearly instantaneous.  However, if a user attempted to analyze a very large document, the processing still takes place on the main event processing thread and the application appears to hang.  Refactoring this to use threads and avoid race conditions, with callbacks for analyzeComplete would be a mess and most developers would balk at the trouble to make this four line method asynchronous.  However, with GCD and Blocks, it becomes trivial.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>IBAction<span style="color: #002200;">&#41;</span>analyzeDocument<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSButton</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>sender
<span style="color: #002200;">&#123;</span>
  dispatch_async<span style="color: #002200;">&#40;</span>dispatch_get_global_queue<span style="color: #002200;">&#40;</span><span style="color: #2400d9;">0</span>, <span style="color: #2400d9;">0</span><span style="color: #002200;">&#41;</span>, <span style="color: #002200;">^</span><span style="color: #002200;">&#123;</span>
    <span style="color: #400080;">NSDictionary</span> <span style="color: #002200;">*</span>stats <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>myDoc analyze<span style="color: #002200;">&#93;</span>;
    dispatch_async<span style="color: #002200;">&#40;</span>dispatch_get_main_queue<span style="color: #002200;">&#40;</span><span style="color: #002200;">&#41;</span>, <span style="color: #002200;">^</span><span style="color: #002200;">&#123;</span>
      <span style="color: #002200;">&#91;</span>myModel setDict<span style="color: #002200;">:</span>stats<span style="color: #002200;">&#93;</span>;
      <span style="color: #002200;">&#91;</span>myStatsView setNeedsDisplay<span style="color: #002200;">:</span><span style="color: #a61390;">YES</span><span style="color: #002200;">&#93;</span>;
      <span style="color: #002200;">&#91;</span>stats release<span style="color: #002200;">&#93;</span>;
    <span style="color: #002200;">&#125;</span><span style="color: #002200;">&#41;</span>;
  <span style="color: #002200;">&#125;</span><span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>Now when the user clicks the &#8220;Analyze&#8221; button, a block is placed on the application queue to be processed as soon as possible.  This block analyzes the document, and once that is complete, the block placed onto the event queue with &#8221; dispatch_async()&#8221; will be called, therefore updating the UI.  Simply wonderful.</p>
<h3>Second Example</h3>
<p>Here is a truly gorgeous example from John.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #a61390;">for</span> <span style="color: #002200;">&#40;</span>i <span style="color: #002200;">=</span> <span style="color: #2400d9;">0</span>; i <span style="color: #002200;">&amp;</span>lt; count; i<span style="color: #002200;">++</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
    results<span style="color: #002200;">&#91;</span>i<span style="color: #002200;">&#93;</span> <span style="color: #002200;">=</span> do_work<span style="color: #002200;">&#40;</span>data, i<span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span> 
&nbsp;
total <span style="color: #002200;">=</span> summarize<span style="color: #002200;">&#40;</span>results, count<span style="color: #002200;">&#41;</span>;</pre></div></div>

<p>Taking this simple for() loop and making it execute asynchronously with GCD is actually quite simple.</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;">dispatch_apply<span style="color: #002200;">&#40;</span>count, dispatch_get_global_queue<span style="color: #002200;">&#40;</span><span style="color: #2400d9;">0</span>, <span style="color: #2400d9;">0</span><span style="color: #002200;">&#41;</span>, <span style="color: #002200;">^</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">size_t</span> i<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
    results<span style="color: #002200;">&#91;</span>i<span style="color: #002200;">&#93;</span> <span style="color: #002200;">=</span> do_work<span style="color: #002200;">&#40;</span>data, i<span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
total <span style="color: #002200;">=</span> summarize<span style="color: #002200;">&#40;</span>results, count<span style="color: #002200;">&#41;</span>;</pre></div></div>

<p>I love it.</p>
<h3>GCD Conclusion</h3>
<p>John sums up the importance and far reaching effects of GCD on the future of Mac OS X.</p>
<blockquote><p>When I first heard about Grand Central Dispatch, I was extremely skeptical. The greatest minds in computer science have been working for decades on the problem of how best to extract parallelism from computing workloads. Now here was Apple apparently promising to solve this problem. Ridiculous.</p>
<p>But Grand Central Dispatch doesn&#8217;t actually address this issue at all. It offers no help whatsoever in deciding how to split your work up into independently executable tasks—that is, deciding what pieces can or should be executed asynchronously or in parallel. That&#8217;s still entirely up to the developer (and still a tough problem). What GCD does instead is much more pragmatic. Once a developer has identified something that can be split off into a separate task, GCD makes it as easy and non-invasive as possible to actually do so.</p></blockquote>
<h2>Cocoa Framework Changes of Interest</h2>
<ul>
<li>The faster shutdown time for Snow Leopard is partly possible due to the system <em>killing</em> your application.  You can mark your application as needed to properly shut down and stall the process.  However if you don&#8217;t, your application will be sent the SIGKILL signal.</li>
<li>NSCashe class</li>
<li>NSBlockOperation class</li>
<li>Hefty work to NSURL</li>
<li>Gesture and multitouch event support</li>
<li>Ability to set desktop images</li>
<li>Block-based sheet APIs</li>
<li>Block-based enumerations for lines, words, and the like in NSString and NSAttributedString</li>
<li>New NSPropertyList APIs with better error handling and performance</li>
<li>Core Data integration with Spotlight</li>
<li>Read more at the <a href="http://developer.apple.com/mac/library/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_6.html#//apple_ref/doc/uid/TP40008898-SW5" target="_blank">Mac Dev Center</a> from Apple</li>
</ul>
<h1 style="margin-top:45px">More Reading</h1>
<hr />
<h3>Full Ars Technica Review</h3>
<p>Read the complete <a title="View the &quot;Ars Technica Snow Leopard Review&quot;" href="http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars" target="_blank">Snow Leopard Ars Technica </a> review.</p>
<p>Many thanks to John for the very complete review and insight into Snow Leopard.  All code examples in my article were taken from his.</p>
<h3>Ars Technica Archives</h3>
<ul>
<li><a href="http://arstechnica.com/apple/reviews/2006/03/osx-fiveyears.ars">Five years of Mac OS X</a>, March 24, 2006</li>
</ul>
<ul>
<li> <a href="http://arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars">Mac OS X 10.5 Leopard</a>, October 28, 2007</li>
<li> <a href="http://arstechnica.com/apple/reviews/2005/04/macosx-10-4.ars">Mac OS X 10.4 Tiger</a>, April 28, 2005</li>
<li> <a href="http://arstechnica.com/apple/reviews/2003/11/macosx-10-3.ars">Mac OS X 10.3 Panther</a>, November 9, 2003</li>
<li> <a href="http://arstechnica.com/apple/reviews/2002/09/macosx-10-2.ars">Mac OS X 10.2 Jaguar</a>, September 5, 2002</li>
<li> <a href="http://arstechnica.com/apple/reviews/2001/10/macosx-10-1.ars">Mac OS X 10.1</a> (Puma), October 15, 2001</li>
<li> <a href="http://arstechnica.com/apple/reviews/2001/04/macos-x.ars">Mac OS X 10.0</a> (Cheetah), April 2, 2001</li>
</ul>
<ul>
<li> <a href="http://arstechnica.com/apple/reviews/2000/10/macos-x-beta.ars">Mac OS X Public Beta</a>, October 3, 2000</li>
<li> <a href="http://arstechnica.com/apple/news/2000/06/macos-x-qa-1.ars">Mac OS X Q &amp; A</a>, June 20, 2000</li>
<li> <a href="http://arstechnica.com/apple/reviews/2000/05/mac-os-x-dp4.ars">Mac OS X DP4</a>, May 24, 2000</li>
<li> <a href="http://arstechnica.com/apple/reviews/2000/02/mac-os-x-dp3.ars">Mac OS X DP3: Trial by Water</a>, February 28, 2000</li>
<li> <a href="http://arstechnica.com/apple/reviews/2000/01/macos-x-gui.ars">Mac OS X Update: Quartz &amp; Aqua</a>, January 17, 2000</li>
<li> <a href="http://arstechnica.com/apple/reviews/1999/12/macos-x-dp2.ars">Mac OS X DP2</a>, December 14, 1999</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2009/09/02/ars-technica-snow-leopard-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fever &#8211; Awesome News From the Haveamint.com Developer</title>
		<link>http://www.macfanatic.net/blog/2009/06/17/fever-awesome-news-from-the-haveamint-com-developer/</link>
		<comments>http://www.macfanatic.net/blog/2009/06/17/fever-awesome-news-from-the-haveamint-com-developer/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 03:26:14 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=1429</guid>
		<description><![CDATA[If you have ever used Mint for your site statistics, you have a pretty good idea of the high quality software coming from Shaun Inman.  However, Shaun has outdone himself this time with a completely different take on RSS feeds and news management. Shaun&#8217;s motivation for developing Fever: What if, instead of mentally processing hundreds [...]]]></description>
			<content:encoded><![CDATA[<p>If you have ever used Mint for your site statistics, you have a pretty good idea of the high quality software coming from<a href="http://shauninman.com/" target="_blank"> Shaun Inman</a>.  However, Shaun has outdone himself this time with a completely different take on RSS feeds and news management.</p>
<p>Shaun&#8217;s motivation for developing Fever:</p>
<blockquote><p>What if, instead of mentally processing hundreds of headlines your feed reader did that heavy—we’re talking pre-coffee—lifting and just told you what everyone was collectively talking about? And what if it weighted those “hot” topics and aggregated the ensuing discussions in your feeds together?</p></blockquote>
<p>Fever is very different from any other RSS readers out there for several reasons.  The most interesting (and yet useful) feature of Fever is where the application lives.  To throw a buzz word around, Fever lives in the &#8220;Cloud&#8221;.  There is a relatively painless install that gets a copy of Fever on your web server.  And because Fever lives in the cloud, it can always be up to date and stay in sync no matter what device you view it on.  I could end my review there, but I&#8217;ll continue.</p>
<h2>Installation</h2>
<p>Installation couldn&#8217;t be simpler (unless Shaun could somehow setup a database on your server for you, which he can&#8217;t).  You register for an account on <a href="http://feedafever.com/" target="_blank">http://feedafever.com/</a>, download a couple files and then throw them up on your server.  Then, let Fever connect to your MySQL database and make sure all is good to go before directing you through paypal and installing itself on your server.  Then you&#8217;re ready to import feeds in OPML format from your current news reader.  Seamless install for a web app.  30 USD gets you 1.x upgrades, which happen automatically I might add.  Point to take home, Shaun has set a new standard here.  I was impressed by the installation process alone.</p>
<h2>Completely New Way of Looking at your News</h2>
<p><img src="http://www.macfanatic.net/blog/wp-content/uploads/2009/06/Picture-1.png" style="width:675px"/><br />
I have tons and tons of RSS feeds.  And frankly, I don&#8217;t get that much out of them anymore because there is just so much to look at and I don&#8217;t have enough time in my day.  Shaun&#8217;s innovation hit home here.  First, your feeds are essentially organized into two classes, kindling and sparks.  Kindling are the feeds that you are hot about and don&#8217;t want to miss any action.  You can easily get unread counts and organize by group if you wish.  Sparks are feeds that essentially throw in duplicate data.</p>
<p>For my Mac news, I subscribe to several sites, which pretty much post the same thing over and over.  Before, this was a huge pain, but with Fever, it&#8217;s actually a plus.  If there are 5 sites that have posted almost the same thing, then obviously it&#8217;s important.  So it&#8217;s &#8220;hot&#8221;, maybe around 101F.  I&#8217;ll see a grouping of those 5 related articles under one heading, and I can view whatever ones I wish for further reading.  Taking that concept, I want to place feeds that &#8220;add fire&#8221; to my Kindling in Sparks, reinforcing what I really want to see.  So when I look at the &#8220;Hot&#8221; area, I see related articles grouped by temperature.  The more buzz on the internet over whatever, the hotter it will be and it will be higher on my list.  Truly remarkable thinking.</p>
<h2>iPhone</h2>
<p>Shaun took the time to make a truly stellar iPhone interface for the Fever app as well.  For me, this was just icing on the cake.  I have tried so many RSS readers on my iPhone and was disappointed time after time.  I mainly wanted something that would keep my read items in sync between my Mac and iPhone.  Since Fever is a hosted application online in the &#8220;cloud&#8221;, it can just keep chugging away checking for updates and when I launch my bookmarked Fever on my iPhone, I get a nice interface and get the syncing for free.</p>
<h2>Extras</h2>
<p>Shaun provides a nice bookmarklet that sets in your browser&#8217;s bookmarks bar so when visiting a page you want to subscribe to in Fever, just click the bookmarklet and choose a group to add it to (or to your sparks) and off you go.  Clean and simple.</p>
<p>There is also a beautiful icon to go with <a href="http://fluidapp.com/" target="_blank">Fluid.app</a> (now free), an application that basically creates a super simple Safari window with it&#8217;s own menu bar and icon that sits in your dock.  Nice thing about this is you get the gorgeous icon in your dock, including amazingly enough, a dock unread count.  Crazy.</p>
<p>And to make sure that Fever is more up to date than you are, Shaun even provides you with a short snippet to add to your server&#8217;s cron manager, so you can have your feeds update every 15 minutes with ease.  Fever will keep checking even if you&#8217;re not around and when you load the page, you&#8217;re all ready to go.  That is the last piece of the puzzle for me, I love it.</p>
<h2>For More&#8230;</h2>
<p>I highly encourage you to check out <a href="http://feedafever.com/" target="_blank">http://feedafever.com/</a> for more information.  There is a lot of great information along with a quick demo video to get you running.  This was an exceptional 30 bucks spent on my part and I hope that the web gets wind of this soon.  Shaun has a great product on his hands.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2009/06/17/fever-awesome-news-from-the-haveamint-com-developer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Things Review</title>
		<link>http://www.macfanatic.net/blog/2009/01/26/things-review/</link>
		<comments>http://www.macfanatic.net/blog/2009/01/26/things-review/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 02:11:53 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=1361</guid>
		<description><![CDATA[I&#8217;ve been using Things from Cultured Code for about 2 months now, and can&#8217;t imagine getting a thing done without it.  Things was a very natural, yet amazingly useful step in getting more out of my Mac. There seems to be a flood of GTD (getting things done) applications available for the Mac lately.  There [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using Things from Cultured Code for about 2 months now, and can&#8217;t imagine getting a thing done without it.  Things was a very natural, yet amazingly useful step in getting more out of my Mac.</p>
<p>There seems to be a flood of GTD (getting things done) applications available for the Mac lately.  There is OmniFocus from the OmniGroup, which doesn&#8217;t seem to fit my needs at all.  A little too professional and over the top.  I need something very flexible and that will get me up and running quickly.  Then there is a new application about to debut from The Potion Factory, entitled The Hit List.  The Hit List takes another unique approach to task management, and I&#8217;m sure that I&#8217;ll be taking a look at it more closely in the future.  </p>
<h2>Ease of Use</h2>
<p>I think that one area Things excels in is ease of use.  You can customize the system-wide shortcut to create a new task, no matter what application you&#8217;re currently using.  Just hit that keyboard shortcut and a small window pops up, letting me give it a title, pressing a couple keys to tag, drag an email, website, contact or file into the notes area, set a due date if I wish and I&#8217;m done and back to working on what I was doing.</p>
<p><img style="margin-left:23px;" title="Things New Task" src="http://www.macfanatic.net/blog/wp-content/uploads/2009/01/picture-1.png" alt="Creating a new task with Things " /></p>
<p>Organizing your tasks couldn&#8217;t be simpler.  There are a few focus areas: &#8220;Today&#8221;, &#8220;Next&#8221;, &#8220;Someday&#8221;, &#8220;Scheduled&#8221; and &#8220;Projects&#8221;.  Today obviously contains what you&#8217;ve deemed you should focus on today.  If you set dates on your tasks, they default to automatically showing up in Today on the day they are due.  You can make a task show up several days ahead, if that&#8217;s what you wish.  &#8221;Next&#8221; just represents what you&#8217;re not working on today, but is upcoming in a few days or weeks.  A nice overview of what you&#8217;ll be tackling soon.  &#8221;Scheduled&#8221; lets you create repeating tasks at your leisure, great for finances, or create a task that you&#8217;re just not ready to start on.  Just create that task in scheduled and it&#8217;ll show up when you can actually get started on it.  </p>
<p>Projects lets you organize your tasks according to what you&#8217;re working on.  Your tasks show up here (and in Today, just separated off by the project).  Just another way to separate your tasks.  Areas follow the same principle, allowing you to group similar tasks according to maybe work, school, or a hobby.</p>
<p>There&#8217;s support for People, allowing you to add teammates and keep up with what they&#8217;re working on.  If you have Leopard, Things can place your tasks as To-Do items in iCal, which can be handy.  There&#8217;s great support for dropping just about anything you can find in the Notes section of a task: drop a webpage to view later, a file that you need, a contact from address book, or an email to view.  Nice way to get everything you need grouped together so when you&#8217;re ready to tackle the task, everything is there in one place.</p>
<p>Tasks don&#8217;t just die when you&#8217;re done, they go to the logbook.  A simple way to look up information about past projects, who completed what, what that website was, etc.</p>
<p><img class="aligncenter size-full wp-image-1374" title="Things Screenshot" src="http://www.macfanatic.net/blog/wp-content/uploads/2009/01/picture-21.png" alt="Things Screenshot"  style="width:675px;" /></p>
<h2>Tagging</h2>
<p>What allows Things to offer such great flexibility is its great support for tagging.  I can create a task, and assign it to as many tags as I want.  Then, the smart filter bar at the top lets me quickly see all tasks sharing whatever tags I want.  I can assign a group to a set of tags, so those tasks always show up there, easily manage tags and the hierarchy (for instance, have my classes under &#8220;School&#8221; and my work projects under &#8220;Work&#8221;).  </p>
<p>Open up the tag manager to see what shortcuts have been assigned to each tag.  In my case, I can quickly select a group of tasks and press &#8220;w&#8221; to assign them the &#8220;Work&#8221; tag.  I have a few of these memorized and it makes creating new tasks much quicker, even though Things already has great auto-complete support built in for your tags. </p>
<h2>Things for iPhone</h2>
<p>I think we are starting to see a trend in Mac software: applications that want to take advantage of the Mac and provide a full set of features will undoubtedly provide an iPhone companion.  In this case, the iPhone version of Things is just as full featured as the Mac version, letting you very easily view your tasks for today, upcoming, or someday.  You can quickly enter a new task, great support for quickly tagging, set a due date, etc.  And when your Mac and iPhone are on the same wireless network, Things will automatically sync the two devices.  Overall a great iPhone application that makes using Things just that much more useful for me.  Things for iPhone will set you back $9.99 USD.</p>
<h2>Conclusion</h2>
<p>Things for Mac and iPhone work wonderfully together.  They provide you with a seamless way to stay on top of everything you need to be tackling in your busy life.  At $60 USD for both apps, it&#8217;s a little pricy for some.  But compared to similar offerings already available, the level of fit and finish, and the enthusiasm of the development team, I&#8217;m sure there will be plenty of new features and more exciting things to come, making Things the #1 task management and organization application for the Mac.</p>
<h2>Links</h2>
<p><a href="http://culturedcode.com/things/" target="_blank">Things from Cultured Code</a></p>
<p><a href="http://macapper.com/2009/01/19/interview-jurgen-schweizer-of-cultured-code/" target="_blank">Interview with Things Developer</a></p>
<p><a href="http://www.omnigroup.com/applications/omnifocus/" target="_blank">OmniFocus from OmniGroup</a></p>
<p><a href="http://www.potionfactory.com/blog/2009/01/08/hit-list-public-preview" target="_blank">The Hit List from Potion Factory</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2009/01/26/things-review/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Biologically Inspired Computation Series</title>
		<link>http://www.macfanatic.net/blog/2008/11/28/biologically-inspired-computation-series/</link>
		<comments>http://www.macfanatic.net/blog/2008/11/28/biologically-inspired-computation-series/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 17:50:14 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/?p=1308</guid>
		<description><![CDATA[This is a series of 4 simulators, all written in Cocoa, experimenting with topics such as artificial intelligence with neural networks, cellular automaton, and genetic algorithms.  The full source, along with project description and detailed implementation guidelines are included with each project.   Activation/Inhibition Cellular Automaton This is a simulator written in Cocoa for running [...]]]></description>
			<content:encoded><![CDATA[<p>This is a series of 4 simulators, all written in Cocoa, experimenting with topics such as artificial intelligence with neural networks, cellular automaton, and genetic algorithms.  The full source, along with project description and detailed implementation guidelines are included with each project.</p>
<p> </p>
<p><a href="http://www.macfanatic.net/blog/2008/10/03/activationinhibtion-cellular-automaton-simulator-posted/">Activation/Inhibition Cellular Automaton</a></p>
<p>This is a simulator written in Cocoa for running a series of experiments and creating Excel files with the results.  Activation/Inhibition CAs are similar to how a cell on a zebra determines if it should be white or black.  There is no overall governing authority, yet patterns arise naturally.  Intermediate example of using Cocoa classes such as open/save panels, notifications and the file manager.  Excellent for examining how to code complex mathematical formulas and summations in C code.</p>
<p> </p>
<p><a href="http://www.macfanatic.net/blog/2008/11/27/hopfield-network-simulator/">Hopfield Network</a></p>
<p>This is a simulator written in Cocoa to test the relationship between the number of stored patterns in a Hopfield Network and the accuracy with which they are remembered.  A very interesting exercise making use of NSOperation and NSOperationQueue for simple multithreading and general Cocoa design patterns such as using a delegate.</p>
<p> </p>
<p><a href="http://www.macfanatic.net/blog/2008/12/01/back-propagation-neural-network/">Back Propagation Neural Network</a></p>
<p>Another Cocoa simulator written to investigate the relationship between parameters for a network.  Given a set of data, can train the network to recognize that data.  Then from there, the network can &#8216;solve&#8217; a problem.  In this simulation, there are two mathematical equations that are solved with this network.  Illustrates custom views, multithreading, and more.</p>
<p> </p>
<p><a href="http://www.macfanatic.net/blog/2008/12/02/genetic-algorithms">Genetic Algorithms</a></p>
<p>The last Cocoa simulator in the series, written to investigate the relationship between input parameters for a given population of organisms over several generations.  Parameters include the probability of mutation in the offspring&#8217;s chromosomes, number of chromosomes per individual, how much sharing of chromosomes occurs when two individuals mate, and creating your own fitness function to quantify the &#8216;best fit&#8217; individual based upon the DNA.  Multithreading and general Cocoa design patterns.</p>
<p> </p>
<h3>Going Further</h3>
<p>I find this general area of computer science very interesting and would love to spend time researching and learning more about neural networks and genetic algorithms.  If you have any suggestions or comments about the code or projects in general, I&#8217;d love to hear from you, so <a href="mailto:matt@macfanatic.net">drop me an email</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2008/11/28/biologically-inspired-computation-series/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shit Boots &#8211; Card Game Online</title>
		<link>http://www.macfanatic.net/blog/2008/04/10/shit-boots-card-game-online/</link>
		<comments>http://www.macfanatic.net/blog/2008/04/10/shit-boots-card-game-online/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 16:44:26 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.macfanatic.net/blog/2008/04/10/shit-boots-card-game-online/</guid>
		<description><![CDATA[I have finally put my semester&#8217;s work online for everyone to enjoy and critique. My friends and I came up with a new game this past summer and this semester I&#8217;ve created a 2-player online version. It&#8217;s a ton of fun and I would appreciate any feedback you have. I do have a few more [...]]]></description>
			<content:encoded><![CDATA[<p>I have finally put my semester&#8217;s work online for everyone to enjoy and critique.</p>
<p>
<img src="http://www.macfanatic.net/blog/wp-content/uploads/2008/04/teaser-2.jpg" width="696" height="482" alt="teaser-2.jpg"  style="width:675px"/></p>
<p>My friends and I came up with a new game this past summer and this semester I&#8217;ve created a 2-player online version. It&#8217;s a ton of fun and I would appreciate any feedback you have. I do have a few more ideas in the works, as well as <a href="http://boots.macfanatic.net/help/" target="_blank">expanded documentation</a>, but all in good time. I plan to officially release it into the wild this July.</p>
<p>Quick overview of the game:</p>
<ul>
<li>You&#8217;re dealt 9 cards, 3 of which you don&#8217;t see</li>
<li>Then you pick 3 cards to save for the end of the game</li>
<li>You can only play cards of equal or greater value each turn</li>
<li>2&#8242;s, 8&#8242;s, and Joker&#8217;s are wild</li>
<li>Aces are high</li>
<li>First player to completely go out of cards wins.</li>
</ul>
<p></p>
<p><a href="http://boots.macfanatic.net/play.html">Start playing now!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.macfanatic.net/blog/2008/04/10/shit-boots-card-game-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

