<?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>GreenWave Software</title>
	<atom:link href="http://blog.greenwavesoftware.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.greenwavesoftware.com</link>
	<description>GreenWave Software - Macintosh &#38; iPhone Software</description>
	<lastBuildDate>Fri, 05 Mar 2010 03:43:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Trac on Snow Leopard</title>
		<link>http://blog.greenwavesoftware.com/?p=80</link>
		<comments>http://blog.greenwavesoftware.com/?p=80#comments</comments>
		<pubDate>Fri, 05 Mar 2010 03:42:12 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[MagicBrush-Photo]]></category>
		<category><![CDATA[Trac]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=80</guid>
		<description><![CDATA[I love Trac, but am moving my scm to git (instead of Subversion).  My problem is getting a functional install of Trac with the git-Trac plugin working on my remote server.  To solve that problem, I&#8217;m going to make sure first that I can get a fully functional version running locally.  Here [...]]]></description>
			<content:encoded><![CDATA[<p>I love Trac, but am moving my scm to git (instead of Subversion).  My problem is getting a functional install of Trac with the git-Trac plugin working on my remote server.  To solve that problem, I&#8217;m going to make sure first that I can get a fully functional version running locally.  Here are my notes&#8230;.<span id="more-80"></span><a href="http://trac.edgewall.org/wiki/TracInstall">Starting point</a></p>
<h2>Prereqs:</h2>
<p>Python : I&#8217;m running version 2.6.1 that is included in Snow Leopard.</p>
<p>SetupTools : </p>
<blockquote>
<p>$ svn co http://svn.python.org/projects/sandbox/trunk/setuptools</p>
<p>$ cd setuptools</p>
<p>$ sudo python setup.py install</p>
</blockquote>
<p>Genshi :</p>
<blockquote><p>$ easy_install Genshi</p></blockquote>
<p>Subversion : I&#8217;m already running version 1.6.5 </p>
<h2>Trac Install</h2>
<blockquote><p>$ sudo easy_install Trac</p></blockquote>
<p>Test it out with:</p>
<blockquote><p>tracd &#8211;port 8000 /Path/to/Trac/Porject/Site</p></blockquote>
<p>Everything looks good, but I want the latest version, not version 0.11, so&#8230;.</p>
<blockquote><p>$ sudo easy_install &#8211;upgrade Trac</p></blockquote>
<p>And now everything looks good.  Time for new territory with <a href="http://trac-hacks.org/wiki/GitPlugin">GitPlugin</a>.</p>
<h2>GitPlugin</h2>
<p>Download the <a href="http://trac-hacks.org/changeset/latest/gitplugin?old_path=/&#038;filename=gitplugin&#038;format=zip">source</a>.</p>
<blockquote><p>$ python  setup.py build</p></blockquote>
<blockquote><p>$ sudo python setup.py install</p></blockquote>
<p>Enable the plugin in the trac.ini file for the site:</p>
<blockquote>
<p>[components]</p>
<p># for plugin version 0.11.0.1+</p>
<p>tracext.git.* = enabled </p>
</blockquote>
<p>Point the trac at the git repository:</p>
<blockquote>
<p>[trac]</p>
<p>repository_dir = /var/git/Test.git</p>
<p>repository_type = git</p>
<p>## the following is only for the 0.11 branch</p>
<p>[git]</p>
<p>## let Trac cache meta-data via CachedRepository wrapper; default: false</p>
<p>##cached_repository = true</p>
<p>## disable automatic garbage collection for in-memory commit-tree cache; default: false</p>
<p>persistent_cache = true</p>
<p>## length revision sha-sums should be tried to be abbreviated to (must be >= 4 and <= 40); default: 7</p>
<p>shortrev_len = 6</p>
<p>## executable file name (optionally with path) of git binary; default: &#8216;git&#8217;</p>
<p>git_bin = /usr/local/libexec/git-core/git</p>
</blockquote>
<p>NOTE: the Test.git above needs to be the .git repository directory (i.e. the one containing the file HEAD and config), not the working tree directory that holds the .git/ folder.</p>
<p>Enabling the cached_repository causes an error on Mac OS X 10.6.  Not sure why.</p>
<h2>Success</h2>
<p>I now have an instance of Trac running locally via tracd with git repository support.  I&#8217;ll look at running it under Apache later.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=80</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updating to 10.6SDK part II</title>
		<link>http://blog.greenwavesoftware.com/?p=78</link>
		<comments>http://blog.greenwavesoftware.com/?p=78#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:45:51 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[MagicBrush-Photo]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=78</guid>
		<description><![CDATA[I thought I was ready to dive into the functionality changes/fixes around views, but discovered an incompatibility in saving images in different formats that needed to be corrected first.  
The issue was 10.6 changes how it handles file types pretty significantly from 10.4 and now I needed to be checking the UTI much more [...]]]></description>
			<content:encoded><![CDATA[<p>I thought <a href="http://blog.greenwavesoftware.com/?p=47">I was ready</a> to dive into the functionality changes/fixes around views, but discovered an incompatibility in saving images in different formats that needed to be corrected first.  </p>
<p><span id="more-78"></span>The issue was 10.6 changes how it handles file types pretty significantly from 10.4 and now I needed to be checking the UTI much more carefully.</p>
<p>In the end, it was a simple change to add string checks in my NSDocument class:</p>
<blockquote><p>
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
</p></blockquote>
<p>I needed to check the typeName for a match agains the Document Content Type UTIs inside the apps info.plist.</p>
<h2>But Wait there is more&#8230;.</h2>
<p>Once I got the fix identified and made, I decided I was tired of my <em>svn</em> approach to source code management since I had become used to using <em>git</em> on a more recent project.  </p>
<p>Naturally, it seemed easy enough to migrate from <a href="http://subversion.apache.org/">Subversion</a> to <a href="http://git-scm.com/">Git</a> based on some excellent articles online for the conversion:</p>
<p><a href="//stackoverflow.com/questions/79165/how-to-migrate-svn-with-history-to-a-new-git-repository">StackOverflow &#8211; how to migrate svn repository to git</a></p>
<p><a href="http://www.jonmaddox.com/2008/03/05/cleanly-migrate-your-subversion-repository-to-a-git-repository/">Cleanly Migrate Your Subversion Repository To a GIT Repository.</a></p>
<p>And also some pointers on <a href="http://stackoverflow.com/questions/2337281/how-do-i-do-an-initial-push-to-a-remote-repository-with-git">performing an initial load on a remote repository</a>.</p>
<p>Now, MagicBrush-Photo&#8217;s source code is managed inside new repository on my website and I&#8217;ve got a git-based local directory to work out of.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=78</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Random Thought</title>
		<link>http://blog.greenwavesoftware.com/?p=74</link>
		<comments>http://blog.greenwavesoftware.com/?p=74#comments</comments>
		<pubDate>Sun, 27 Dec 2009 16:49:40 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Concepts]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=74</guid>
		<description><![CDATA[I was just reading some speculation about the rumored Apple Tablet, i.e. iSlate and had this thought about the &#8220;use case we&#8217;re missing&#8221;.  Apple builds value by owing the whole experience and stack (hardware to software).  As the cloud becomes more important to the mobile use case, will they look to own that [...]]]></description>
			<content:encoded><![CDATA[<p>I was just reading some <a href="http://www.tuaw.com/2009/12/18/tuaw-livechat-developing-for-the-possibly-mythical-apple-tabl/">speculation</a> about the rumored Apple Tablet, i.e. <a href="http://www.macrumors.com/2009/12/25/apple-islate-trademark-and-what-is-a-magic-slate/">iSlate</a> and had this thought about the &#8220;use case we&#8217;re missing&#8221;.  Apple builds value by owing the whole experience and stack (hardware to software).  As the cloud becomes more important to the mobile use case, will they look to own that as well?<span id="more-74"></span>First of all, Apple could easily purchase a robust, nationwide data network with available cash.  <a href="http://www.google.com/finance?q=Sprint">Sprint&#8217;s Market Cap</a> at close of trading on 12/24/2009 was $10.51 Billion.  <a href="http://google.brand.edgar-online.com/displayfilinginfo.aspx?filingid=6855302&amp;tabindex=2&amp;type=html">Apple&#8217;s cash equivalents</a> at the end of their last quarter was $34 Billion.  With the debt on Sprint&#8217;s balance sheet, a leveraged buyout could happen without significant depletion of Apple&#8217;s cash reserves.</p>
<h2>So it is financially feasible, but the real question is why?</h2>
<h4>Data Network for media.</h4>
<p>Sprint has a long history of strong data performance especially for <a href="http://www.allbusiness.com/media-telecommunications/movies-sound-recording/6991484-1.html">media</a>.  Their <a href="http://coverage.sprint.com/IMPACT.jsp?">network coverage</a> is at least as good as AT&amp;T&#8217;s 3G data network.</p>
<h4>Always on Cloud</h4>
<p>Once Apple controls its network, moving application data to the cloud becomes an integrated experience for the user.  The concept of a &#8220;Documents&#8221; folder could move to the cloud for access from your iPhone, iSlate, or iMac.  If you don&#8217;t like off-site storage, <a href="http://www.apple.com/mobileme/features/mac.html">&#8220;Back to My Mac&#8221;</a> takes on a whole new meaning.</p>
<h4>Immediate Revenue</h4>
<p>As soon as the AT&amp;T exclusivity for the iPhone ends, Apple could migrate a large number of iPhone users to a 4.0 device running on their own network.  The recurring fees and subscriber increase could bolster the &#8220;former Sprint&#8221; earnings immediately and give Apple 2 years of revenue to further build out its strategic offers leveraging the network.</p>
<h2>On the Negative Side</h2>
<p>Of course, Apple has been pretty consistent in playing to its strengths of hardware and software, so this may be a pretty big stretch from them.  Taking on the management of a 3rd place wireless provider may not be up Steve&#8217;s ally.  Of course, everyone seems to be speculating on <a href="http://www.tuaw.com/2009/12/12/poll-which-industry-should-steve-reinvent-next/">what industry he will re-invigorate next</a>, so maybe it&#8217;s not totally crazy.</p>
<h2>Just a Thought</h2>
<p>So this is just idle speculation on my part, but I can&#8217;t help but think that all of the pundits are missing something in their Apple Tablet speculation.  Adding a &#8220;always on&#8221; network to the mix with Apple&#8217;s penchant for total control would seem to make a new type of media/mobile device much more appealing.  What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=74</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thanksgiving Recipies</title>
		<link>http://blog.greenwavesoftware.com/?p=70</link>
		<comments>http://blog.greenwavesoftware.com/?p=70#comments</comments>
		<pubDate>Wed, 25 Nov 2009 04:29:17 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Thanksgiving]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=70</guid>
		<description><![CDATA[Okay, I&#8217;m a foody.  Now you know.  We have a family tradition (fifth year, so it must be a tradition) to get together with friends that are also foodies and cook it up for Thanksgiving.
Unfortunately, we have developed a list of favorite, &#8220;must have&#8221; dishes, that I end up having to re-find every [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, I&#8217;m a foody.  Now you know.  We have a family tradition (fifth year, so it must be a tradition) to get together with friends that are also foodies and cook it up for Thanksgiving.</p>
<p>Unfortunately, we have developed a list of favorite, &#8220;must have&#8221; dishes, that I end up having to re-find every year.  Enough is enough.  Here they will be captured so I can just retrieve, print, shop and cook in the future.<span id="more-70"></span><br />
<h2>Brine for Turkey</h2>
<p>Brining your bird is the key to delicious flavor and tender, evenly cooked meat.  My favorite write up for brining is at <a href="http://www.bbq-porch.org/turkey09.asp">http://www.bbq-porch.org/turkey09.asp</a></p>
<p>I use a hybrid buttermilk / Old Bay recipe based on &#8220;Part B &#8211; BUTTERMILK BRINED CHICKEN&#8221;</p>
<blockquote><p>
<u>BRINE (portions)</u></p>
<p>1/2 gallon of water </p>
<p>1/2 gallon of buttermilk</p>
<p>1/2 cup kosher salt</p>
<p>1/3 cup brown sugar</p>
<p>2-4 oz per gallon Old Bay seasoning</p>
</blockquote>
<p>I like to brine the birds for 18-24 hours before cooking.  This works great for frying, smoking or baking your turkey.</p>
<h2>Sausage Fennel Stuffing</h2>
<p>This dish is incredible.  It goes well with a nicely fried turkey.</p>
<p>Original recipe is at: <a href="http://www.epicurious.com/recipes/food/views/Sausage-Fennel-Stuffing-15395">http://www.epicurious.com/recipes/food/views/Sausage-Fennel-Stuffing-15395</a></p>
<blockquote><p>
<em>Approximately 12 servings </em></p>
<p><u>Ingredients</u></p>
<p>1 pound sweet Italian sausage, casing discarded</p>
<p>1/2 stick (1/4 cup) unsalted butter</p>
<p>2 medium-large onions, chopped fine</p>
<p>1 1/2 pounds fennel bulbs (sometimes called anise, about 2 medium),  stalks trimmed flush with bulbs and bulbs chopped fine (about 4 1/2  cups)</p>
<p>2 teaspoons fennel seeds, chopped fine</p>
<p>1/4 cup Pernod or other anise-flavored apéritif</p>
<p>2 teaspoons dried thyme, crumbled</p>
<p>2 teaspoons dried tarragon, crumbled</p>
<p>5 cupscorn bread for stuffing or packaged corn bread stuffing</p>
</blockquote>
<blockquote><p><u>Preparation</u></p>
<ol>
<li>In a 10- to 12-inch heavy skillet cook sausage over moderately high heat, stirring and breaking up lumps with a fork, until no longer pink. </li>
<li>Transfer sausage with a slotted spoon to a large bowl.</li>
<li>Add butter to fat remaining in skillet and cook onions, chopped fennel, fennel seeds, and salt to taste over moderate heat, stirring, until fennel is softened, about 10 minutes.</li>
<li>Add apéritif, thyme, and tarragon and cook, stirring, until most liquid is evaporated.</li>
<li>Add mixture to sausage with corn bread or packaged stuffing and toss to combine well.</li>
<li>Season stuffing with salt and pepper and cool completely.</li>
<li>Stuffing may be made 2 days ahead and chilled, covered.</li>
<p> <em>(To prevent bacterial growth do not stuff turkey cavities ahead.)</em></ol>
</blockquote>
<h2>Raisin-Studded Apple Stuffing</h2>
<p>Two stuffings may seem excessive, but this one is excellent as well.</p>
<p>The original recipe is here: <a href="http://allrecipes.com/Recipe/Raisin-Studded-Apple-Stuffing/Detail.aspx">http://allrecipes.com/Recipe/Raisin-Studded-Apple-Stuffing/Detail.aspx</a></p>
<blockquote><p>
<em>Approximately 18 servings</em></p>
<p><u>Ingredients</u></p>
<p>1 cup raisins</p>
<p>1 1/2 cups orange juice, divided</p>
<p>2 cups chopped celery</p>
<p>1 large onion, chopped</p>
<p>1 cup butter or margarine, divided</p>
<p>1 pound bulk Italian sausage</p>
<p>1 (16 ounce) package crushed herb-seasoned stuffing</p>
<p>4 medium tart apples, peeled and chopped</p>
<p>1 cup chopped pecans</p>
<p>2 cups chicken broth</p>
<p>2 teaspoons dried thyme</p>
<p>1/2 teaspoon pepper</p>
</blockquote>
<blockquote><p>
<u>Preparation</u></p>
<ol>
<li>In a saucepan, bring raisins and 1 cup orange juice to a boil.</li>
<li>Remove from the heat; set aside (do not drain).</li>
<li>In a skillet, saute celery and onion in 1/2 cup butter until tender.</li>
<li>Transfer to a large bowl.</li>
<li>In the same skillet, cook sausage over medium heat until no longer pink; drain.</li>
<li>Add sausage, stuffing, apples, pecans, remaining orange juice and remaining butter; add broth, thyme and pepper.</li>
<li>Pour over stuffing mixture; mix well.</li>
<li>Place in two greased 13-in. x 9-in. x 2-in. baking dishes.</li>
<li>Cover and bake at 325 degrees F for 1 hour.</li>
<li>Uncover; bake 10 minutes longer or until lightly browned.</li>
<li>Refrigerate any leftovers.</li>
</ol>
</blockquote>
<h2>Pumpkin Pot De Creme</h2>
<p>Possibly one of the best Thanksgiving desserts ever.  Discovered this at <a href="http://allrecipes.com/recipe/pumpkin-pot-de-creme/detail.aspx">http://allrecipes.com/recipe/pumpkin-pot-de-creme/detail.aspx</a></p>
<blockquote><p>
<em>6 Servings</em></p>
<p><u>Ingredients</u></p>
<p>2 cups whipping cream</p>
<p>1/4 cup sugar</p>
<p>1 teaspoon cinnamon</p>
<p>1/4 teaspoon ground ginger</p>
<p>1/4 teaspoon ground nutmeg</p>
<p>1/4 teaspoon ground cloves</p>
<p>1 cup pumpkin puree</p>
<p>1/2 vanilla bean, split and scraped</p>
<p>1 teaspoon dark rum</p>
<p>5 egg yolks</p>
<p>2 tablespoons white sugar</p>
<p>1/2 cup chopped toasted pecans</p>
<p>1/4 cup maple syrup</p>
</blockquote>
<blockquote><p>
<u>Directions</u></p>
<ol>
<li>Preheat oven to 325 degrees F (165 degrees C).
</li>
<li>Combine the whipping cream, 1/4 cup sugar, cinnamon, ginger, nutmeg, cloves, pumpkin puree, and the vanilla bean pod and seeds in a saucepan over medium-low heat; bring to a simmer; stir in the rum. </li>
<li>Remove from the heat cover and stand 15 minutes.</li>
<li>Beat together the egg yolks and 2 tablespoons sugar.</li>
<li>Stir in 2 tablespoons of the cream mixture.</li>
<li>Pour the egg yolk mixture into the saucepan with the cream mixture to make a custard; stir; simmer 3 to 5 minutes.</li>
<li>Arrange 6 ramekins in a shallow baking dish. Pour the custard evenly into the ramekins. Pour boiling water into the baking dish to half-way up the sides of the ramekins. Loosely cover the baking dish with aluminum foil.</li>
<li>Bake in the preheated oven until the custard is nearly set with a dime-sized circle of jiggly liquid remaining in the center of each ramekin, 25 to 40 minutes.</li>
<li>Allow to sit, loosely covered with aluminum foil, another 30 minutes.</li>
<li>Cover each ramekin with plastic wrap; chill in refrigerator overnight. </li>
<li>Top each custard with pecans and maple syrup (or whipped cream)to serve.</li>
</ol>
</blockquote>
<h2>Cranberries</h2>
<p>This one comes of the cranberry package.  Simple, but delicious.</p>
<blockquote><p>
<u>Ingredients</u></p>
<p>1 quart cranberries</p>
<p>1 cup water</p>
<p>1 3/4 cups sugar</p>
<p>citrus for flavoring (optional)</p>
</blockquote>
<blockquote><p>
<u>Directions</u></p>
<ol>
<li>The general rule is: Use 1/4 as much water as cranberries. Add 1/3 as much sugar as cranberries.</li>
<li>Wash and pick over cranberries, discarding any that are soft.</li>
<li>Bring water to a boil; add berries. Cover and cook over medium low heat until berries have burst outer skin.</li>
<li>Add sugar and boil a few minutes longer.</li>
<li>If desired, cranberries may be strained before sugar is added.</li>
<li>A few tablespoons of freshly squeezed orange or lemon juice may be added along with a little grated citrus peel, if desired. A tablespoon of frozen orange concentrate is also a nice addition.</li>
</ol>
</blockquote>
<h3 class="storytitle">Things we&#8217;re trying this year</h3>
</p>
<h2>Fried Brussels Sprouts with Walnuts and Capers</h2>
<p>Original recipe is at <a href="http://www.foodnetwork.com/recipes/fried-brussels-sprouts-with-walnuts-and-capers-recipe/index.html">http://www.foodnetwork.com/recipes/fried-brussels-sprouts-with-walnuts-and-capers-recipe/index.html</a></p>
<blockquote><p>
<em>6 Servings</em></p>
<p><u>Ingredients</u></p>
<p>Canola oil, for deep-frying</p>
<p>1 clove garlic, minced</p>
<p>4 salt-packed anchovy fillets, rinsed, filleted and minced</p>
<p>1 serrano chile, seeded and minced</p>
<p>1/4 cup red wine vinegar</p>
<p>1 tablespoon honey</p>
<p>2 scallions, white and green parts, thinly sliced on the bias</p>
<p>1/2 cup walnut pieces, toasted and coarsely chopped</p>
<p>1/2 cup extra-virgin olive oil</p>
<p>1 pound Brussels sprouts, trimmed and quartered lengthwise</p>
<p>2 cups loosely packed flat-leaf parsley leaves</p>
<p>2 tablespoons salt-packed capers, rinsed and patted dry</p>
<p>Kosher salt and freshly ground black pepper</p>
</blockquote>
<blockquote><p>
<u>Directions</u></p>
<ol>
<li>Pour enough oil into a medium pot so that the oil comes 3 inches up the sides. Heat the oil to 350 degrees.</li>
<li>While the oil is heating, whisk together the garlic, anchovies, serrano, red wine vinegar, honey, scallions, walnuts and extra-virgin olive oil in a bowl large enough to toss all of the Brussels sprouts.</li>
<li>Keep the bowl near the stovetop.</li>
<li>Working in batches, deep-fry the Brussels sprouts until the edges begin to curl and brown, about 3 minutes.</li>
<li>Drain brussel sprouts as they are removed from oil.</li>
<li>To the last batch, add the parsley and capers <em>(stand back-the capers will pop and sputter!)</em>.</li>
<li>Give the contents of the pot a stir. When the color of the parsley becomes a deeper, more saturated shade of green, about 30 seconds to 1 minute, remove the contents of the pot with a skimmer and place directly in the bowl of dressing.</li>
<li>Toss to coat. Add salt and pepper to taste.</li>
</ol>
</blockquote>
<h2>Mushroom Casserole</h2>
<p>Original recipe at: <a href="http://www.foodnetwork.com/recipes/michael-symon/mushroom-casserole-recipe/index.html">http://www.foodnetwork.com/recipes/michael-symon/mushroom-casserole-recipe/index.html</a></p>
<blockquote><p>
<em>4 to 6 servings</em></p>
<p><u>Ingredients</u></p>
<p>3 pounds sliced porcini mushrooms</p>
<p>1 pound sliced leeks</p>
<p>Salt and freshly ground black pepper</p>
<p>1 tablespoon chopped flat leaf parsley</p>
<p>8 ounces butter</p>
<p>8 ounces heavy cream</p>
<p>8 ounces bread crumbs</p>
</blockquote>
<blockquote><p>
<u>Directions</u></p>
<ol>
<li>Preheat oven to 375 degrees F.</li>
<li>In a casserole, place 1 layer of mushrooms and leeks.</li>
<li>Sprinkle with salt, pepper, and parsley.</li>
<li>Cover with 2 ounces of butter and cream.</li>
<li>Repeat process three more times and cover with bread crumbs.</li>
<li>Bake until mushrooms are tender and crust is golden brown, about 20 minutes.</li>
</ol>
</blockquote>
<h2>Sweet Potato Casserole </h2>
<p>The original recipe is here: <a href="http://www.zarela.com/?p=4957">http://www.zarela.com/?p=4957</a></p>
<blockquote><p>
<em>8 Servings</em></p>
<p><u>Ingredients</u></p>
<p>8 medium sweet potatoes or yams</p>
<p>1 1/2 cups heavy whipping cream</p>
<p>1 1/2 sticks butter, chilled</p>
<p>1 teaspoon salt</p>
<p>1 pound pecan pieces</p>
<p>1 cup packed light brown sugar</p>
</blockquote>
<blockquote><p>
<u>Directions</u></p>
<ol>
<li>Preheat oven to 350º.</li>
<li>Place the sweet potatoes and roast in the oven on a baking sheet guntil soft, about 50 minutes. Let sit until cool enough to handle and peel.</li>
<li>Transfer to the bowl of the food processor fitted with the steel blade and process until smooth.
</li>
<li>Add 6 tablespoons of butter a little at a time.</li>
<li>Add the whipping cream in a thin stream and process until fully incorporated.</li>
<li>Transfer to an ovenproof casserole and smooth out the top.</li>
<li>Make the streusel topping as follows: Spread the pecans on a baking dish and toast for 10 minutes.</li>
<li>Let cool:</li>
<li>Place the pecans and brown sugar in the bowl of the food processor and process with an on/off motion until almost ground.</li>
<li>Cut the remaining butter into pats and add, one at a time, to the pecan mixture</li>
<li>Spread evenly over the sweet potatoes and bake until heated through and golden, about 20 – 25 minutes.</li>
</ol>
</blockquote>
<h3 class="storytitle">Other considerations</h3>
<p>Here are some interesting recipes that probably won&#8217;t make the cut to try this year due to time constraints.</p>
<p><a href="http://www.foodnetwork.com/recipes/ina-garten/pumpkin-roulade-with-ginger-buttercream-recipe/index.html">http://www.foodnetwork.com/recipes/ina-garten/pumpkin-roulade-with-ginger-buttercream-recipe/index.html</a></p>
<p><a href="http://www.foodnetwork.com/recipes/claire-robinson/baby-carrots-with-sweet-ginger-butter-recipe/index.html">http://www.foodnetwork.com/recipes/claire-robinson/baby-carrots-with-sweet-ginger-butter-recipe/index.html</a></p>
<p><a href="http://www.foodnetwork.com/recipes/giada-de-laurentiis/poached-pears-in-honey-ginger-and-cinnamon-syrup-recipe/index.html">http://www.foodnetwork.com/recipes/giada-de-laurentiis/poached-pears-in-honey-ginger-and-cinnamon-syrup-recipe/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=70</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updating to 10.6SDK</title>
		<link>http://blog.greenwavesoftware.com/?p=47</link>
		<comments>http://blog.greenwavesoftware.com/?p=47#comments</comments>
		<pubDate>Wed, 18 Nov 2009 03:04:33 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[MagicBrush-Photo]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=47</guid>
		<description><![CDATA[After completing the conversion to 64-bit, MagicBrush-Photo is &#8220;broken&#8221; since it also relies on the 10.4 SDK and some behavior has changed in 10.6.  Here are a few of the issues and problems that had to be overcome.
Static Analyzer
Once I get an initial compile of the program, I immediately see some compiler warnings and [...]]]></description>
			<content:encoded><![CDATA[<p>After completing the <a href="http://blog.greenwavesoftware.com/?p=42">conversion to 64-bit</a>, <a href="http://www.greenwavesoftware.com/index.php">MagicBrush-Photo</a> is &#8220;broken&#8221; since it also relies on the 10.4 SDK and some behavior has changed in 10.6.  Here are a few of the issues and problems that had to be overcome.<span id="more-47"></span></p>
<h2>Static Analyzer</h2>
<p>Once I get an initial compile of the program, I immediately see some compiler warnings and some strange behavior, so I compile and analyze using the <a href="http://developer.apple.com/mac/library/featuredarticles/StaticAnalysis/index.html">Clang Static Analyzer</a> that is now included with the XCode tools.</p>
<p>&#8220;Boom&#8221; 111 opportunities to review.</p>
<p>What a great way to catch up on code you haven&#8217;t looked at in two years.  I really do suggest it.</p>
<h2>External Frameworks</h2>
<p>I use several external frameworks including eSellerate for my embedded webstore.  Naturally, there are new versions of these frameworks that need to be incorporated to get a clean build under 10.6.</p>
<p>The frameworks:</p>
<ul>
<li><a href="https://publishers.esellerate.net/SalesMgr/eselldownloads/eselldownloads.aspx">eSellerate</a></li>
<li><a href="http://code.google.com/p/gdata-objectivec-client/">Google Data API&#8217;s for Cocoa</a></li>
<li><a href="http://sparkle.andymatuschak.org/">Sparkle</a></li>
</ul>
<h2>Deprecated Methods</h2>
<p>There are many methods that have been deprecated since the original 10.4 build of the app.  Here they are for history.</p>
<p><span style="text-decoration: underline;">+ (void)setKeys:(NSArray *)keys triggerChangeNotificationsForDependentKey:(NSString *)dependentKey</span></p>
<blockquote><p>Configures the receiver to post change notifications for a given property if any of the properties specified in a given array changes. (required) (Deprecated in Mac OS X v10.5 and later. You should use the method <a href="http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Reference/Foundation/Protocols/NSKeyValueObserving_Protocol/Reference/Reference.html#//apple_ref/occ/clm/NSObject/keyPathsForValuesAffectingValueForKey:">keyPathsForValuesAffectingValueForKey:</a> instead.)</p></blockquote>
<p>Under 10.6 the preferred method is found <a href="http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/KeyValueObserving/Concepts/DependentKeys.html#//apple_ref/doc/uid/20002179">here</a></p>
<blockquote><p>You can also achieve the same result by implementing a class method that follows the naming convention keyPathsForvaluesAffecting, where  is the name of the attribute (first letter capitalized) that is dependent on the values. Using this pattern the code in Listing 1 could be rewritten as a class method named keyPathsForValuesAffectingFullName as shown in Listing 2.</p></blockquote>
<p><strong>Listing 2</strong> Example implementation of the keyPathsForValuesAffecting naming convention</p>
<blockquote><p>+ (NSSet *)keyPathsForValuesAffectingFullName</p>
<p>{</p>
<p>return [NSSet setWithObjects:@"lastName", @"firstName", nil];</p>
<p>}</p></blockquote>
<p><span style="text-decoration: underline;">+ (id)stringWithCString:(const char *)cString</span></p>
<blockquote><p>Creates a new string using a given C-string. (Deprecated in Mac OS X v10.4. Use <a href="http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/clm/NSString/stringWithCString:encoding:">stringWithCString:encoding:</a> instead.)</p></blockquote>
<p><span style="text-decoration: underline;">- (void)getCString:(char *)buffer</span></p>
<blockquote><p>Invokes getCString:maxLength:range:remainingRange: with NSMaximumStringLength as the maximum length, the receiver’s entire extent as the range, and NULL for the remaining range. (Deprecated in Mac OS X v10.4. Use <a href="http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/cStringUsingEncoding:">cStringUsingEncoding: </a>or <a href="http://developer.apple.com/mac/library/documentation/cocoa/reference/foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/dataUsingEncoding:allowLossyConversion:">dataUsingEncoding:allowLossyConversion:</a> instead.)</p></blockquote>
<p><span style="text-decoration: underline;">- (NSArray *)directoryContentsAtPath:(NSString *)path</span></p>
<blockquote><p>Returns the directories and files (including symbolic links) contained in a given directory. (Deprecated in Mac OS X v10.5. Use <a href="http://developer.apple.com/Mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSFileManager/contentsOfDirectoryAtPath:error:">contentsOfDirectoryAtPath:error:</a> instead.)</p></blockquote>
<p><span style="text-decoration: underline;">- (BOOL)createDirectoryAtPath:(NSString *)path attributes:(NSDictionary *)attributes</span></p>
<blockquote><p>Creates a directory (without contents) at a given path with given attributes. (Deprecated in Mac OS X v10.5. Use <a href="http://developer.apple.com/Mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSFileManager/contentsOfDirectoryAtPath:error:">createDirectoryAtPath:withIntermediateDirectories:attributes:error:</a> instead.)</p></blockquote>
<p><span style="text-decoration: underline;">- (BOOL)copyPath:(NSString *)source toPath:(NSString *)destination handler:(id)handler</span></p>
<blockquote><p>Copies the directory or file specified in a given path to a different location in the file system identified by another path. (Deprecated in Mac OS X v10.5. Use <a href="http://developer.apple.com/Mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSFileManager/copyItemAtPath:toPath:error:">copyItemAtPath:toPath:error:</a> instead.)</p></blockquote>
<p><span style="text-decoration: underline;">+ (CIContext *)contextWithCGLContext:(CGLContextObj)ctx pixelFormat:(CGLPixelFormatObj)pf options:(NSDictionary *)dict</span></p>
<blockquote><p>Creates a Core Image context from a CGL context, using the specified options and pixel format object. (Deprecated in Mac OS X v10.6.)</p></blockquote>
<p>A solution was found by looking at this <a href="http://developer.apple.com/mac/library/samplecode/CIAnnotation/listing29.html">sample code</a>.</p>
<p>Next up, Window/View Behavior&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=47</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cocoa Sparklines</title>
		<link>http://blog.greenwavesoftware.com/?p=61</link>
		<comments>http://blog.greenwavesoftware.com/?p=61#comments</comments>
		<pubDate>Tue, 17 Nov 2009 04:36:41 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Concepts]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=61</guid>
		<description><![CDATA[Okay, there are tons of sparkline libraries on the web (PHP, Python, Ruby, etc.)  But it does not appear that anyone has implemented them within Cocoa on a Mac so the premiere content creation platform can easily generate these dense collections of information.
So, what would an extension on NSAttributedString look like so sparklines can [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, there are tons of <a href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&amp;topic_id=1&amp;topic=">sparkline</a> libraries on the web (<a href="http://sparkline.org/">PHP</a>, <a href="http://bitworking.org/news/Sparklines_in_data_URIs_in_Python">Python</a>, <a href="http://nubyonrails.com/pages/sparklines">Ruby</a>, etc.)  But it does not appear that anyone has implemented them within Cocoa on a Mac so the premiere content creation platform can easily generate these dense collections of information.</p>
<p>So, what would an extension on <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/AttributedStrings/index.html#//apple_ref/doc/uid/10000036i">NSAttributedString</a> look like so sparklines can be easily embedded in a standard text view?</p>
<p>For that matter, should there be a tagging system so data could be entered easily to render the <a href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&amp;topic_id=1&amp;topic=">sparkline</a>?  </p>
<p>Maybe a custom control that could be inlined in text?</p>
<p>The possibilities abound.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=61</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting to 64 bits</title>
		<link>http://blog.greenwavesoftware.com/?p=42</link>
		<comments>http://blog.greenwavesoftware.com/?p=42#comments</comments>
		<pubDate>Sat, 17 Oct 2009 16:38:06 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[MagicBrush-Photo]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=42</guid>
		<description><![CDATA[It&#8217;s time to spend a little quality time with MagicBrush-Photo and start getting it ready for Snow Leopard.  Step one is getting it ready to handle 64-bit addressing.
The Starting point is Apple&#8217;s own documentation.  It provides as great overview of considerations and reasons to start migrating your code to 64-bit addressing.
Within that document, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time to spend a little quality time with MagicBrush-Photo and start getting it ready for <a href="http://www.apple.com/macosx/">Snow Leopard</a>.  Step one is getting it ready to handle <a href="http://www.apple.com/macosx/technology/#sixtyfourbit">64-bit addressing</a>.<span id="more-42"></span><br />
<a href="http://developer.apple.com/documentation/Cocoa/Conceptual/Cocoa64BitGuide/Introduction/Introduction.html">The Starting point</a> is Apple&#8217;s own documentation.  It provides as great overview of considerations and reasons to start migrating your code to 64-bit addressing.</p>
<p>Within that document, there is a <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/Cocoa64BitGuide/ConvertingExistingApp/ConvertingExistingApp.html">specific reference on migrating an existing application to support 64-bit.</a></p>
<p>A key excerpt is :</p>
<blockquote><p>/Developer/Extras/64BitConversion/ConvertCocoa64 `find . -name &#8216;*.[hm]&#8216; | xargs`</p></blockquote>
<p>As the script runs, it does the following things:</p>
<ul>
<li>It converts most instances of int and unsigned int to NSInteger and NSUInteger, respectively. It doesn&#8217;t convert ints in bit-field declarations and other inappropriate cases. During processing, the script refers to a hardcoded list of exceptions.</li>
<blockquote><p>Important: The script converts instances of int and unsigned int that are properly the types of arguments and return values in POSIX calls. You must be aware of these instances and manually revert them (or leave them alone, if that is more appropriate).</p></blockquote>
<li>It converts most instances of float to CGFloat, again leaving untouched those exceptions specified in a hardcoded list.</li>
<li>It does not convert enum declarations to types with guaranteed fixed sizes (as described in “Enumeration Constants”). You need to fix these declarations by hand.</li>
<li>It flags (with inline warnings) cases that need to be fixed manually. See <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/Cocoa64BitGuide/ConvertingExistingApp/ConvertingExistingApp.html#//apple_ref/doc/uid/TP40004247-CH5-SW2">“Things to Look For During Conversion”</a> for details.</li>
</ul>
<p><strong>Next &#8211; Updating to 10.6 SDK</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=42</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s the buzz?</title>
		<link>http://blog.greenwavesoftware.com/?p=40</link>
		<comments>http://blog.greenwavesoftware.com/?p=40#comments</comments>
		<pubDate>Sat, 25 Apr 2009 03:30:07 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[WWDC]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=40</guid>
		<description><![CDATA[A quick post as I take a break from working on a new app for the iPhone.
It seems that last year, a month before WWDC there was already a buzz in the air around attending and getting a jump on the iPhone market.
I&#8217;m not seeing it this year.  Anyone else feeling the same?
]]></description>
			<content:encoded><![CDATA[<p>A quick post as I take a break from working on a new app for the iPhone.</p>
<p>It seems that last year, a month before WWDC there was already a buzz in the air around attending and getting a jump on the iPhone market.</p>
<p>I&#8217;m not seeing it this year.  Anyone else feeling the same?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=40</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miscellaneous Notes and Links</title>
		<link>http://blog.greenwavesoftware.com/?p=34</link>
		<comments>http://blog.greenwavesoftware.com/?p=34#comments</comments>
		<pubDate>Wed, 11 Feb 2009 04:38:53 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=34</guid>
		<description><![CDATA[Working on my next iPhone App and exploring some infrastructure options.  Here are links to a few resources I&#8217;ve been examining&#8230;.

ObjectiveResource
http://iphoneonrails.com/getting-started
http://www.vimeo.com/3077209
http://iphoneonrails.com/community
Git
	http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
	http://git.or.cz/course/svn.html
	http://groups.google.com/group/gitnub
UI Design Approaches
http://daringfireball.net/2008/11/iphone_likeness
http://www.mobileorchard.com/7-iphone-ui-user-interface-design-resources/
http://mattgemmell.com/2008/10/29/favorites-ui-design
http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00036T

]]></description>
			<content:encoded><![CDATA[<p>Working on my next iPhone App and exploring some infrastructure options.  Here are links to a few resources I&#8217;ve been examining&#8230;.<span id="more-34"></span><br />
<hr />
<h2>ObjectiveResource</h2>
<p><a href="http://iphoneonrails.com/getting-started">http://iphoneonrails.com/getting-started</a><br/><br />
<a href="http://www.vimeo.com/3077209">http://www.vimeo.com/3077209</a><br/><br />
<a href="http://iphoneonrails.com/community">http://iphoneonrails.com/community</a><br/></p>
<h2>Git</h2>
<p>	<a href="http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html">http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html</a><br/><br />
	<a href="http://git.or.cz/course/svn.html">http://git.or.cz/course/svn.html</a><br/><br />
	<a href="http://groups.google.com/group/gitnub">http://groups.google.com/group/gitnub</a></p>
<h2>UI Design Approaches</h2>
<p><a href="http://daringfireball.net/2008/11/iphone_likeness">http://daringfireball.net/2008/11/iphone_likeness</a><br/><br />
<a href="http://www.mobileorchard.com/7-iphone-ui-user-interface-design-resources/">http://www.mobileorchard.com/7-iphone-ui-user-interface-design-resources/</a><br/><br />
<a href="http://mattgemmell.com/2008/10/29/favorites-ui-design">http://mattgemmell.com/2008/10/29/favorites-ui-design</a><br/><br />
<a href="http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00036T">http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=00036T</a><br/></p>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=34</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Talkbubbles 1.2.2</title>
		<link>http://blog.greenwavesoftware.com/?p=33</link>
		<comments>http://blog.greenwavesoftware.com/?p=33#comments</comments>
		<pubDate>Sat, 17 Jan 2009 02:47:56 +0000</pubDate>
		<dc:creator>Chip</dc:creator>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Talkbubbles]]></category>

		<guid isPermaLink="false">http://blog.greenwavesoftware.com/?p=33</guid>
		<description><![CDATA[Talkbubbles version 1.2.2 is available for purchase and updating in the App Store (link).
]]></description>
			<content:encoded><![CDATA[<p>Talkbubbles version 1.2.2 is available for purchase and updating in the App Store (<a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284251831&#038;mt=8">link</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.greenwavesoftware.com/?feed=rss2&amp;p=33</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
