<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>paulbouwer.com</title>
	<atom:link href="http://blog.paulbouwer.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.paulbouwer.com</link>
	<description>life and technology</description>
	<lastBuildDate>Sun, 18 Dec 2011 06:00:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.paulbouwer.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>paulbouwer.com</title>
		<link>http://blog.paulbouwer.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.paulbouwer.com/osd.xml" title="paulbouwer.com" />
	<atom:link rel='hub' href='http://blog.paulbouwer.com/?pushpress=hub'/>
		<item>
		<title>iOS 5.0.1 and over the air software updates</title>
		<link>http://blog.paulbouwer.com/2011/11/13/ios-5-0-1-and-over-the-air-software-updates/</link>
		<comments>http://blog.paulbouwer.com/2011/11/13/ios-5-0-1-and-over-the-air-software-updates/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 16:24:57 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.paulbouwer.com/?p=528</guid>
		<description><![CDATA[The latest software update (5.0.1) of iOS brings with it the first experience of the iOS 5 over the air software updates. And I can say that I am a big fan ! My previously blogged about methods for updating &#8230; <a href="http://blog.paulbouwer.com/2011/11/13/ios-5-0-1-and-over-the-air-software-updates/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=528&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
The latest software update (<a href="http://support.apple.com/kb/DL1472" title="iOS 5.0.1 Software Update" target="_blank">5.0.1</a>) of iOS brings with it the first experience of the iOS 5 over the air software updates. And I can say that I am a big fan !
</p>
<p>
My <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">previously</a> <a href="http://blog.paulbouwer.com/2011/05/02/download-ios-4-3-2-for-updating-multiple-iphone-4-devices/" title="Download iOS 4.3.2 for updating multiple iPhone 4 devices" target="_blank">blogged</a> about methods for updating multiple iPhones in a household are no longer necessary. The 5.0.1 over the air software update was a manageable 44MB and very kind on my bandwidth (even when downloading it more than once to upgrade each phone over our household wireless).
</p>
<h4>iOS 5.0.1 Release Notes</h4>
<blockquote>
<ul>
<li>Fixes bugs affecting battery life</li>
<li>Adds Multitasking Gestures for original iPad</li>
<li>Resolves bugs with Documents in the Cloud</li>
<li>Improves voice recognition for Australian users using dictation</li>
</ul>
</blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/528/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=528&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/11/13/ios-5-0-1-and-over-the-air-software-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>
	</item>
		<item>
		<title>Download iOS 5.0 for updating multiple iPhone 4 devices</title>
		<link>http://blog.paulbouwer.com/2011/11/13/download-ios-5-0-for-updating-multiple-iphone-4-devices/</link>
		<comments>http://blog.paulbouwer.com/2011/11/13/download-ios-5-0-for-updating-multiple-iphone-4-devices/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 15:57:09 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.paulbouwer.com/?p=521</guid>
		<description><![CDATA[When there are multiple iPhones in a household and you want to upgrade them all from a single iOS download via multiple Macs, it can be a bit of a challenge. I have previously blogged about how to do this. &#8230; <a href="http://blog.paulbouwer.com/2011/11/13/download-ios-5-0-for-updating-multiple-iphone-4-devices/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=521&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
When there are multiple iPhones in a household and you want to upgrade them all from a single iOS download via multiple Macs, it can be a bit of a challenge. I have <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">previously</a> <a href="http://blog.paulbouwer.com/2011/05/02/download-ios-4-3-2-for-updating-multiple-iphone-4-devices/" title="Download iOS 4.3.2 for updating multiple iPhone 4 devices" target="_blank">blogged</a> about how to do this. This post contains the link to the new major version (<a href="http://support.apple.com/kb/DL1456" title="iOS 5 Software Update" target="_blank">5.0</a>) of iOS for the iPhone 4 which contains over <a href="http://en.wikipedia.org/wiki/IOS_version_history#iOS_5.x:_Fifth_major_OS_release" title="Wikipedia - iOS 5.x: Fifth major OS release">200 new features</a>.
</p>
<h4>Download URL</h4>
<p>
The iOS 5.0 firmware update file (.ipsw) is available at:
</p>
<ul>
<li>
<a href="http://appldnld.apple.com/iPhone4/041-8358.20111012.FFc34/iPhone3,1_5.0_9A334_Restore.ipsw">http://appldnld.apple.com/iPhone4/041-8358.20111012.FFc34/iPhone3,1_5.0_9A334_Restore.ipsw</a>
</li>
</ul>
<h4>Update</h4>
<p>
Updating each iPhone as per my previous <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">post</a> resulted in a strange <strong>3002</strong> error.
</p>
<p>
I finally managed to solve this by placing the downloaded .ipsw file in the following location on each Mac:</p>
<ul>
<li><code>/Library/iTunes/iPhone Software Updates</code></li>
</ul>
<p>Create the folder if it does not exist. Clicking on the update button in the iPhone Summary page in iTunes will update your iPhone. Repeat with each Mac and iPhone combination.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/521/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/521/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/521/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=521&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/11/13/download-ios-5-0-for-updating-multiple-iphone-4-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>
	</item>
		<item>
		<title>Download iOS 4.3.5 for updating multiple iPhone 4 devices</title>
		<link>http://blog.paulbouwer.com/2011/08/07/download-ios-4-3-5-for-updating-multiple-iphone-4-devices/</link>
		<comments>http://blog.paulbouwer.com/2011/08/07/download-ios-4-3-5-for-updating-multiple-iphone-4-devices/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 18:31:42 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.paulbouwer.com/?p=515</guid>
		<description><![CDATA[When there are multiple iPhones in a household and you want to upgrade them all from a single iOS download via multiple Macs, it can be a bit of a challenge. I have previously blogged about how to do this. &#8230; <a href="http://blog.paulbouwer.com/2011/08/07/download-ios-4-3-5-for-updating-multiple-iphone-4-devices/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=515&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
When there are multiple iPhones in a household and you want to upgrade them all from a single iOS download via multiple Macs, it can be a bit of a challenge. I have <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">previously</a> <a href="http://blog.paulbouwer.com/2011/05/02/download-ios-4-3-2-for-updating-multiple-iphone-4-devices/" title="Download iOS 4.3.2 for updating multiple iPhone 4 devices" target="_blank">blogged</a> about how to do this. This post contains the link to the latest version (<a href="http://support.apple.com/kb/DL1431" title="iOS 4.3.5 Software Update" target="_blank">4.3.5</a>) of iOS for the iPhone 4 which deals with a certificate validation security <a href="http://support.apple.com/kb/HT4824" title="About the security content of iOS 4.3.5 Software Update for iPhone" target="_blank">vulnerability</a>.
</p>
<h4>iOS 4.3.5 Release Notes</h4>
<blockquote>
<p>Fixes a security vulnerability with certificate validation.</p>
</blockquote>
<h4>Download URL</h4>
<p>
The iOS 4.3.5 firmware update file (.ipsw) is available at:
</p>
<ul>
<li>
<a href="http://appldnld.apple.com/iPhone4/041-1966.20110721.V3Ufe/iPhone3,1_4.3.5_8L1_Restore.ipsw">http://appldnld.apple.com/iPhone4/041-1966.20110721.V3Ufe/iPhone3,1_4.3.5_8L1_Restore.ipsw</a>
</li>
</ul>
<h4>Update</h4>
<p>
Update each iPhone as per my previous <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">post</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/515/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/515/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=515&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/08/07/download-ios-4-3-5-for-updating-multiple-iphone-4-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>
	</item>
		<item>
		<title>Download iOS 4.3.3 for updating multiple iPhone 4 devices</title>
		<link>http://blog.paulbouwer.com/2011/05/16/download-ios-4-3-3-for-updating-multiple-iphone-4-devices/</link>
		<comments>http://blog.paulbouwer.com/2011/05/16/download-ios-4-3-3-for-updating-multiple-iphone-4-devices/#comments</comments>
		<pubDate>Mon, 16 May 2011 19:50:41 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.paulbouwer.com/?p=471</guid>
		<description><![CDATA[When there are multiple iPhones in a household and you want to upgrade them all from a single iOS download via multiple Macs, it can be a bit of a challenge. I have previously blogged about how to do this. &#8230; <a href="http://blog.paulbouwer.com/2011/05/16/download-ios-4-3-3-for-updating-multiple-iphone-4-devices/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=471&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
When there are multiple iPhones in a household and you want to upgrade them all from a single iOS download via multiple Macs, it can be a bit of a challenge. I have <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">previously</a> <a href="http://blog.paulbouwer.com/2011/05/02/download-ios-4-3-2-for-updating-multiple-iphone-4-devices/" title="Download iOS 4.3.2 for updating multiple iPhone 4 devices" target="_blank">blogged</a> about how to do this. This post contains the link to the latest version (<a href="http://support.apple.com/kb/DL1358" title="iOS 4.3.3 Software Update" target="_blank">4.3.3</a>) of iOS for the iPhone 4 which aims to placate <a href="http://www.infoq.com/news/2011/04/ios-location" title="Apple Responds to iOS Location Data Concerns" target="_blank">location</a> <a href="http://www.apple.com/pr/library/2011/04/27location_qa.html" title="Apple Q&amp;A on Location Data" target="_blank">data</a> concerns.
</p>
<h4>iOS 4.3.3 Release Notes</h4>
<blockquote>
<p>This update contains changes to the iOS crowd-sourced location database cache including:</p>
<ul>
<li>Reduces the size of the cache</li>
<li>No longer backs the cache up to iTunes</li>
<li>Deletes the cache entirely when Location Services is turned off</li>
</ul>
</blockquote>
<h4>Download URL</h4>
<p>
The iOS 4.3.3 firmware update file (.ipsw) is available at:
</p>
<ul>
<li>
<a href="http://appldnld.apple.com/iPhone4/041-1011.20110503.q7fGc/iPhone3,1_4.3.3_8J2_Restore.ipsw">http://appldnld.apple.com/iPhone4/041-1011.20110503.q7fGc/iPhone3,1_4.3.3_8J2_Restore.ipsw</a>
</li>
</ul>
<h4>Update</h4>
<p>
Update each iPhone as per my previous <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">post</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/471/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=471&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/05/16/download-ios-4-3-3-for-updating-multiple-iphone-4-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>
	</item>
		<item>
		<title>Upgrading a MacBook (13” Aluminum, Late 2008) – Part 2 (HDD)</title>
		<link>http://blog.paulbouwer.com/2011/05/08/upgrading-a-macbook-13%e2%80%9d-aluminum-late-2008-%e2%80%93-part-2-hdd/</link>
		<comments>http://blog.paulbouwer.com/2011/05/08/upgrading-a-macbook-13%e2%80%9d-aluminum-late-2008-%e2%80%93-part-2-hdd/#comments</comments>
		<pubDate>Sun, 08 May 2011 07:23:38 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[MacBook]]></category>

		<guid isPermaLink="false">https://paulbouwer.wordpress.com/?p=220</guid>
		<description><![CDATA[I love my MacBook. It was the first 13” aluminum unibody notebook from Apple and although it was launched as part of the MacBook range it has since migrated to the MacBook Pro range. I run my MacBook through a &#8230; <a href="http://blog.paulbouwer.com/2011/05/08/upgrading-a-macbook-13%e2%80%9d-aluminum-late-2008-%e2%80%93-part-2-hdd/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=220&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
	I love my <a title="MacBook (13-inch, Aluminum, Late 2008) - Technical Specifications" href="http://support.apple.com/kb/sp500" target="_blank">MacBook</a>. It was the first 13” aluminum unibody notebook from <a title="Apple" href="http://www.apple.com" target="_blank">Apple</a> and although it was launched as part of the <a title="Apple - MacBook" href="http://www.apple.com/macbook/" target="_blank">MacBook</a> range it has since migrated to the <a title="Apple - MacBook Pro" href="http://www.apple.com/macbookpro/" target="_blank">MacBook Pro</a> range.
</p>
<p>
	I run my MacBook through a 24” <a title="Samsung SyncMaster T240 - LCD display - TFT - 24&quot;" href="http://reviews.cnet.com/lcd-monitors/samsung-syncmaster-t240-lcd/4505-3174_7-33090369.html" target="_blank">Samsung SyncMaster T240</a> and use the <a title="Apple Keyboard with Numeric Keypad" href="http://store.apple.com/us/product/MB110LL/A" target="_blank">wired keyboard</a> and <a title="Apple Mouse" href="http://store.apple.com/us/product/MB112LL/B?fnode=MTY1NDA1Mg&amp;mco=MTMzNzc4MTc" target="_blank">wired mouse</a>. This gives me a nice desktop setup and when I need to be mobile the 13” form factor is perfect.
</p>
<p>
	Lately I have begun to feel the limits of the stock 2GB RAM and the 160GB HDD. So it is time for an upgrade. This post marks the completion of a 2 part project to upgrade both the RAM and the HDD of my MacBook.
</p>
<ul>
<li><a href="http://blog.paulbouwer.com/2010/10/02/upgrading-a-macbook-13-aluminum-late-2008-part-1-ram/" title="Upgrading a MacBook (13” Aluminum, Late 2008) – Part 1 (RAM)" target="_blank">Part 1 – Upgrade RAM from 2GB to 4GB</a></li>
<li>Part 2 – Upgrade HDD from 160GB to 500GB
	</li>
</ul>
<h4>No Space</h4>
<p>
	Right clicking on <strong>Macintosh HD &gt; Get Info</strong> showed that I had around 5GB of HDD space left on my MacBook. I bought the replacement drive for this little project over a year ago but had been putting off replacing my HDD &#8211; it was finally time &#8230;
</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Macintosh HD Info" border="0" alt="Macintosh HD Info" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_start.png?w=300&#038;h=445" width="300" height="445" />
</p>
<h4>HDD Specifications</h4>
<p>
	I read a number of reviews and posts on various forums and blogs about what an ideal replacement drive would be. I looked at the prices between 320GB and 500GB HDDs (remember this is over a year ago) and finally settled on finding a HDD with a capacity of 500GB. My logic was that the bigger the drive was, the less likely I would have to do this again during my MacBook&#8217;s lifetime.
</p>
<p>
	The next challenge was whether to get a 5400RPM or 7200RPM drive. Again there was heated debate in the forums and on blogs. The two contenders for me were:
</p>
<ul>
<li><a href="http://www.seagate.com/ww/v/index.jsp?vgnextoid=70f4bfafecadd110VgnVCM100000f5ee0a0aRCRD" target="_blank">Seagate Momentus 7200.4 500GB SATA 3.0Gb/s, 16MB Cache, 7200RPM</a></li>
<li><a href="http://www.wdc.com/en/products/products.aspx?id=140" target="_blank">Western Digital Scorpio Blue 500 GB, SATA 3 Gb/s, 8 MB Cache, 5400 RPM</a></li>
</ul>
<p>
	I liked the fact that the drive in my MacBook was so quiet and wanted to maintain that experience. Western Digital advertised WhisperDrive technology on their Scorpio Blue drives which was meant to yield the quietest 2.5 inch drives on the market. This claim seemed to be held up in the forums and since I was not doing anything seriously IO intensive on the MacBook I decided to go with the <strong>5400RPM Western Digital Scorpio Blue 500GB</strong>. I also ensured that the drive was no higher than 9.5mm due to ongoing <a href="https://discussions.apple.com/message/11266912#11266912" title="Do 12.5mm high drives fit in the 13&quot; Aluminum MacBook?" target="_blank">debates</a> on various forums.
</p>
<h4>Cloning the HDD</h4>
<p>
	This is the part of the process that kept me from upgrading months ago. The contents of the existing HDD in the MacBook would have to be cloned to the new HDD. I had read a number of blog posts on using the <a href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html" title="SuperDuper! Heroic System Recovery For Mere Mortals" target="_blank">SuperDuper!</a> or <a href="http://www.bombich.com/" title="Carbon Copy Cloner" target="_blank">Carbon Copy Cloner</a> utilities and it all seemed simple enough &#8211; but I was still a little nervous. I finally settled on using <strong>Disk Utility</strong> which is bundled with <strong>Mac OS X</strong> and is all you really need for cloning your HDD. A simple and easy to understand <a href="http://www.daryncox.com/Blog/post/Cloning-your-Mac-OS-X-hard-drive.aspx" title="Cloning your Mac OS X hard drive." target="_blank">post</a> by Daryn Cox got me started.
</p>
<p>
	I mounted my new 500GB HDD into an external USB enclosure. I fired up Disk Utility via <strong>Applications &gt; Utilities &gt; Disk Utility</strong> and selected the <strong>Restore</strong> tab. I dragged the icon of the existing Macintosh HD from the left pane into the <strong>Source</strong> box and the icon of the new external 500GB HDD from the left pane into the <strong>Destination</strong> box. Ensure that the <strong>Erase destination</strong> checkbox is checked. Double check that your existing HDD is the source and that the new HDD is the destination before proceeding.
</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Disk Utility &gt; Restore" border="0" alt="Disk Utility &gt; Restore" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone01.png?w=640&#038;h=398" width="640" height="398" />
</p>
<p>
	Click the <strong>Restore</strong> button.
</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Confirm Erase of Destination" border="0" alt="Confirm Erase of Destination" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone02.png?w=500&#038;h=194" width="500" height="194" />
</p>
<p>
	Confirm the erasure of the destination drive by clicking on the <strong>Erase</strong> button.
</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Cloning ..." border="0" alt="Cloning ..." src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone03.png?w=640&#038;h=401" width="640" height="401" />
</p>
<p>
	Then wait&#8230; My estimated time fluctuated between 3 and 6 hours initially but I left it running overnight so I&#8217;m not really sure how long it actually took. It is probably better if you don&#8217;t use your MacBook while this operation is taking place.
</p>
<h4>Verify Clone</h4>
<p>
	Once the cloning process has completed you need to verify that the clone was successful. The easiest way to do this is to boot from your new HDD. There are two ways to do this in <strong>Mac OS X</strong>:
</p>
<p><strong>Option1: System Preferences &gt; Startup Disk</strong></p>
<p>
	Navigate to the Startup Disk section of System Preferences. Select the new external 500GB and click the <strong>Restart</strong> button.
</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Startup Disk" border="0" alt="Startup Disk" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone04.png?w=550&#038;h=221" width="550" height="221" />
</p>
<p>
	Confirm the restart by clicking on the <strong>Restart</strong> button.
</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Startup Disk - Restart" border="0" alt="Startup Disk - Restart" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone05.png?w=550&#038;h=239" width="550" height="239" />
</p>
<p><strong>Option 2: Option Key at System Boot</strong></p>
<p>Hold down the option key during system boot.</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Mac - Option Key" border="0" alt="Mac - Option Key" src="http://paulbouwer.files.wordpress.com/2010/12/05-option-update.png?w=240&#038;h=141" width="240" height="141" />
</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Startup Disks" border="0" alt="Startup Disks" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone06.png?w=323&#038;h=192" width="323" height="192" />
</p>
<p>Select the new external 500GB.</p>
<p>Once I had confirmed that my drive had been correctly cloned, it was time to install the new HDD into the MacBook.</p>
<h4>Installing the new HDD</h4>
<p>Apple provide fairly detailed instructions via their support site on how to upgrade your HDD. See <strong>Chapter 3: Boost Your MacBook &gt; Replacing the Hard Disk Drive</strong> of the <a href="http://manuals.info.apple.com/en_US/MacBook_13inch_Aluminum_Late2008.pdf" title="" target="_blank">manual</a> for the MacBook 13&quot; Aluminum (Late 2008). I had my cloned HDD, some decent precision screwdrivers this time around and was ready to begin.</p>
<p><img style="display:inline;border-width:0;" title="Ready to begin" border="0" alt="Ready to begin" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout01.jpg?w=640&#038;h=329" width="640" height="329" /></p>
<h4>Opening up the MacBook</h4>
<p>Turn the MacBook over and push down on the door latch to release the access door. Remove the access door and the battery. The battery has a handy tab on it to make lifting it out of the bay easier.</p>
<p><img style="display:inline;border-width:0;" title="Remove access door and battery" border="0" alt="Remove access door and battery" src="http://paulbouwer.files.wordpress.com/2010/10/image1.png?w=640&#038;h=303" width="640" height="303" /></p>
<p>Make sure to ground yourself before touching anything inside your MacBook.</p>
<p><img style="display:inline;border-width:0;" title="Ground yourself" border="0" alt="Ground yourself" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout02.png?w=399&#038;h=203" width="399" height="203" /></p>
<h4>Removing the old HDD</h4>
<p>The old HDD should be visible on the bottom left of the MacBook.</p>
<p><img style="display:inline;border-width:0;" title="Old HDD" border="0" alt="Old HDD" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout03.jpg?w=500&#038;h=334" width="500" height="334" /></p>
<p>Remove the bracket holding the old HDD using a #00 <a href="http://en.wikipedia.org/wiki/Phillips_drive#Phillips" title="Types of screwdriver - Philips" target="_blank">Philips</a> precision screwdriver. I finally found a decent #00 Philips and the experience removing my HDD was much better than when I upgraded my RAM&#8230; If the only advice you take away from this is to find a really decent precision screwdriver then you will be halfway there.</p>
<p>Lift the old HDD out of the bay using the clear tab and then gently wiggle the connector off the HDD. Remove the mounting screws using a <a href="http://en.wikipedia.org/wiki/Torx" title="Torx screwdrivers" target="_blank">Torx</a> T6 precision screwdriver. Again I will say it &#8211; spend the cash and get a decent screwdriver.</p>
<p><img style="display:inline;border-width:0;" title="Remove old HDD" border="0" alt="Remove old HDD" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout04.png?w=605&#038;h=274" width="605" height="274" /></p>
<p><img style="display:inline;border-width:0;" title="Old HDD removed" border="0" alt="Old HDD removed" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout05.jpg?w=500&#038;h=368" width="500" height="368" /></p>
<h4>Installing the new HDD</h4>
<p>Remove the clear tab from the old HDD and attach to the new HDD. Screw the mounting screws into the new HDD using the Torx T6 screwdriver.</p>
<p><img style="display:inline;border-width:0;" title="New HDD" border="0" alt="New HDD" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout06.jpg?w=500&#038;h=413" width="500" height="413" /></p>
<p>Place the new HDD into the drive bay.</p>
<p><img style="display:inline;border-width:0;" title="New HDD in drive bay" border="0" alt="New HDD in drive bay" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout07.jpg?w=500&#038;h=482" width="500" height="482" /></p>
<p>Replace the bracket using the #00 Philips screwdriver.</p>
<p><img style="display:inline;border-width:0;" title="Replace bracket" border="0" alt="Replace bracket" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout08.png?w=343&#038;h=207" width="343" height="207" /></p>
<p><img style="display:inline;border-width:0;" title="Replace bracket" border="0" alt="Replace bracket" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout09.jpg?w=500&#038;h=370" width="500" height="370" /></p>
<h4>Closing up the MacBook</h4>
<p>Place the battery back into the bay and then replace the access door. Press it down gently until the latch moves to the closed position.</p>
<h4>Confirmation</h4>
<p>
	Switch on the MacBook and make sure it boots. Right clicking on <strong>Macintosh HD &gt; Get Info</strong> now shows my new 500GB HDD and plenty of free space.
</p>
<p>
	<img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="Macintosh HD Info" border="0" alt="Macintosh HD Info" src="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_end.png?w=300&#038;h=442" width="300" height="442" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=220&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/05/08/upgrading-a-macbook-13%e2%80%9d-aluminum-late-2008-%e2%80%93-part-2-hdd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_start.png" medium="image">
			<media:title type="html">Macintosh HD Info</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone01.png" medium="image">
			<media:title type="html">Disk Utility &#62; Restore</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone02.png" medium="image">
			<media:title type="html">Confirm Erase of Destination</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone03.png" medium="image">
			<media:title type="html">Cloning ...</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone04.png" medium="image">
			<media:title type="html">Startup Disk</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone05.png" medium="image">
			<media:title type="html">Startup Disk - Restart</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/05-option-update.png" medium="image">
			<media:title type="html">Mac - Option Key</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_clone06.png" medium="image">
			<media:title type="html">Startup Disks</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout01.jpg" medium="image">
			<media:title type="html">Ready to begin</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/10/image1.png" medium="image">
			<media:title type="html">Remove access door and battery</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout02.png" medium="image">
			<media:title type="html">Ground yourself</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout03.jpg" medium="image">
			<media:title type="html">Old HDD</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout04.png" medium="image">
			<media:title type="html">Remove old HDD</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout05.jpg" medium="image">
			<media:title type="html">Old HDD removed</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout06.jpg" medium="image">
			<media:title type="html">New HDD</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout07.jpg" medium="image">
			<media:title type="html">New HDD in drive bay</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout08.png" medium="image">
			<media:title type="html">Replace bracket</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_swapout09.jpg" medium="image">
			<media:title type="html">Replace bracket</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/macbookhdd_end.png" medium="image">
			<media:title type="html">Macintosh HD Info</media:title>
		</media:content>
	</item>
		<item>
		<title>Download iOS 4.3.2 for updating multiple iPhone 4 devices</title>
		<link>http://blog.paulbouwer.com/2011/05/02/download-ios-4-3-2-for-updating-multiple-iphone-4-devices/</link>
		<comments>http://blog.paulbouwer.com/2011/05/02/download-ios-4-3-2-for-updating-multiple-iphone-4-devices/#comments</comments>
		<pubDate>Mon, 02 May 2011 09:55:59 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://blog.paulbouwer.com/?p=449</guid>
		<description><![CDATA[When there are multiple iPhones in a household and you want to upgrade them all from a single iOS download via multiple Macs, it can be a bit of a challenge. I have previously blogged about how to do this. &#8230; <a href="http://blog.paulbouwer.com/2011/05/02/download-ios-4-3-2-for-updating-multiple-iphone-4-devices/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=449&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
When there are multiple iPhones in a household and you want to upgrade them all from a single iOS download via multiple Macs, it can be a bit of a challenge. I have previously <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">blogged</a> about how to do this. This post contains the link to the latest version of iOS for the iPhone 4.
</p>
<h4>Using a proxy</h4>
<p>
I again used <a href="http://www.charlesproxy.com/" title="Charles Web Debugging Proxy" target="_blank">Charles</a> to capture the url of the <strong>iOS 4.3.2</strong> firmware update file (.ipsw). I had to enable the SOCKS proxy options this time to capture the traffic successfully.
</p>
<p>
Enable the SOCKS proxy in Charles by clicking on <strong>Proxy &gt; Proxy Settings</strong> in the menu and checking the <strong>Enable SOCKS proxy</strong> checkbox in the <strong>Proxies</strong> tab.
</p>
<p>
<img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Enable SOCKS proxy" border="0" alt="Enable SOCKS proxy" src="http://paulbouwer.files.wordpress.com/2011/05/io4-3-2_charles_socksproxy1.png?w=375&#038;h=318" width="375" height="318" />
</p>
<p>
Also check the <strong>Use SOCKS proxy</strong> in the <strong>Mac OS X</strong> tab.
</p>
<p>
<img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Enable SOCKS proxy" border="0" alt="Enable SOCKS proxy" src="http://paulbouwer.files.wordpress.com/2011/05/io4-3-2_charles_socksproxy2.png?w=381&#038;h=179" width="381" height="179" />
</p>
<h4>Download URL</h4>
<p>
The iOS 4.3.2 firmware update file (.ipsw) that iTunes was downloading is clearly visible in Charles:
</p>
<ul>
<li>
<a href="http://appldnld.apple.com/iPhone4/041-0662.20110414.byQ84/iPhone3,1_4.3.2_8H7_Restore.ipsw">http://appldnld.apple.com/iPhone4/041-0662.20110414.byQ84/iPhone3,1_4.3.2_8H7_Restore.ipsw</a>
</li>
</ul>
<p>
<img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="iOS download in Charles" border="0" alt="iOS download in Charles" src="http://paulbouwer.files.wordpress.com/2011/05/ios4-3-2_charlesproxy.png?w=650&#038;h=194" width="650" height="194" />
</p>
<h4>Update</h4>
<p>
Update each iPhone as per my previous <a href="http://blog.paulbouwer.com/2010/12/24/updating-multiple-iphones-with-a-single-ios-4-2-download/" title="Updating multiple iPhones with a single iOS 4.2 download" target="_blank">post</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/449/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/449/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/449/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=449&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/05/02/download-ios-4-3-2-for-updating-multiple-iphone-4-devices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/io4-3-2_charles_socksproxy1.png" medium="image">
			<media:title type="html">Enable SOCKS proxy</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/io4-3-2_charles_socksproxy2.png" medium="image">
			<media:title type="html">Enable SOCKS proxy</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/05/ios4-3-2_charlesproxy.png" medium="image">
			<media:title type="html">iOS download in Charles</media:title>
		</media:content>
	</item>
		<item>
		<title>Git, GitHub and an open source .NET project – Part 5</title>
		<link>http://blog.paulbouwer.com/2011/02/20/git-github-and-an-open-source-net-project-part-5/</link>
		<comments>http://blog.paulbouwer.com/2011/02/20/git-github-and-an-open-source-net-project-part-5/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 11:50:38 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://blog.paulbouwer.com/?p=424</guid>
		<description><![CDATA[I have used the open source enterprise search platform Solr for a number of years now and on a recent project have been using the open source SolrNet .NET client library. The SolrNet library lacked a feature I required when &#8230; <a href="http://blog.paulbouwer.com/2011/02/20/git-github-and-an-open-source-net-project-part-5/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=424&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have used the open source enterprise search platform <a href="http://lucene.apache.org/solr/">Solr</a> for a number of years now and on a recent project have been using the open source <a href="http://code.google.com/p/solrnet/">SolrNet</a> .NET client library. The SolrNet library lacked a <a href="http://code.google.com/p/solrnet/issues/detail?id=83">feature</a> I required when used with the bundled <a href="http://martinfowler.com/articles/injection.html#UsingAServiceLocator">Service Locator</a> implementation. A number of people had been asking for the same feature so I decided to jump in and implement it.</p>
<p>This is the final part of my journey into learning Git, using GitHub and contributing to an open source project.</p>
<ul>
<li><a title="Introduction" href="http://blog.paulbouwer.com/2010/12/27/git-github-and-an-open-source-net-project-introduction/" target="_blank">Introduction</a> </li>
<li><a title="Part 1 – Install Git" href="http://blog.paulbouwer.com/2010/12/28/git-github-and-an-open-source-net-project-part-1/" target="_blank">Part 1 &#8211; Install Git</a> </li>
<li><a title="Part 2 - Set up GitHub" href="http://blog.paulbouwer.com/2010/12/30/git-github-and-an-open-source-net-project-part-2/" target="_blank">Part 2 &#8211; Set up GitHub</a> </li>
<li><a title="Part 3 - Fork project" href="http://blog.paulbouwer.com/2011/01/15/git-github-and-an-open-source-net-project-part-3/" target="_blank">Part 3 &#8211; Fork project</a></li>
<li><a title="Part 4 - Contribute code" href="http://blog.paulbouwer.com/2011/02/13/git-github-and-an-open-source-net-project-part-4/" target="_blank">Part 4 &#8211; Contribute code</a></li>
<li><strong>Part 5 &#8211; Submit pull request</strong></li>
</ul>
<h4>GitHub Workflow</h4>
<p>As I discussed in an earlier post, the typical workflow of contributors to an open source project hosted on GitHub can be a bit intimidating. It involves the following steps:</p>
<ul>
<li>Fork </li>
<li>Clone </li>
<li>Write and commit code </li>
<li>Push </li>
<li>Submit pull request </li>
</ul>
<p>I have gone through forking a project and cloning the repository. Writing and committing code to your local repository. Pushing those changes up to your cloned repository on GitHub. Now all that is left is to submit a pull request to the master project.</p>
<h4>Pull Request</h4>
<p>A <a title="sending pull requests" href="http://help.github.com/pull-requests/" target="_blank">pull request</a> wraps up a number of commits so that another interested party can review them and decide whether or not to include them in a master project. <a title="GitHub" href="https://github.com/" target="_blank">GitHub</a> makes this incredibly easy.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub - pull request" border="0" alt="GitHub - pull request" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest1.png?w=550&#038;h=419" width="550" height="419" /></p>
<p>I navigated to my <strong>paulbouwer/SolrNet</strong> repository on GitHub and after confirming the <a title="SolrNet commits on master branch" href="https://github.com/paulbouwer/SolrNet/commits/master" target="_blank">commit details</a> via the <strong>Commits</strong> tab clicked on the <strong>Pull Request</strong> button.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub - pull request" border="0" alt="GitHub - pull request" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest2.png?w=550&#038;h=442" width="550" height="442" /></p>
<p>I wrote a comment around the commits I was submitting in the pull request. GitHub always makes it clear as to what is going on. Note the <strong>You&#8217;re asking mausch to pull 1 commit into mausch/master from paulbouwer/master</strong>.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub - pull request" border="0" alt="GitHub - pull request" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest3.png?w=550&#038;h=446" width="550" height="446" /></p>
<p>GitHub allows you to verify the commits included in the pull request via the <strong>Commits</strong> tab.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub - pull request" border="0" alt="GitHub - pull request" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest4.png?w=550&#038;h=449" width="550" height="449" /></p>
<p>GitHub allows you to verify the files and diffs on those files included in the pull request via the <strong>Files Changed</strong> tab. I had a number of issues with line ending differences on my files vs the master project &#8211; so a great tip is to pay attention to these. <a title="Mauricio" href="https://github.com/mausch" target="_blank">Mauricio</a> kindly resolved these for me.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub - pull request" border="0" alt="GitHub - pull request" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest5.png?w=550&#038;h=448" width="550" height="448" /></p>
<p>GitHub allows you to preview your pull request message via the <strong>Preview</strong> submenu on the <strong>Preview Discussion</strong> tab. I finally submitted the pull request by clicking on the <strong>Send pull request</strong> button.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub - pull request" border="0" alt="GitHub - pull request" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest6.png?w=550&#038;h=449" width="550" height="449" /></p>
<p>The pull request has now been added to the pull requests queue of the master project <strong>mausch/SolrNet</strong>. GitHub again makes it clear as to what is going on. Note the <strong>paulbouwer wants someone to pull 1 commit into mausch/master from paulbouwer/master</strong>.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub - pull request" border="0" alt="GitHub - pull request" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest7.png?w=550&#038;h=448" width="550" height="448" /></p>
<p>Clicking on the <strong>Pull Requests</strong> tab in the master project <strong>mausch/SolrNet</strong> shows the current pull request queue and confirms that my <a title="Pull Requests queue on mausch/SolrNet" href="https://github.com/mausch/SolrNet/pull/5" target="_blank">pull request</a> is in it.</p>
<h4>Acceptance</h4>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Commits accepted into master project" border="0" alt="Commits accepted into master project" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_masterproject.png?w=550&#038;h=477" width="550" height="477" /></p>
<p>I was notified by GitHub via email that my commit had been accepted by into the master project <strong>mausch/SolrNet</strong>. I <a title="confirming commit into master project" href="https://github.com/mausch/SolrNet/commits/master" target="_blank">confirmed</a> this by clicking on the <strong>Commits</strong> tab on the master project page.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Issue 83 closed" border="0" alt="Issue 83 closed" src="http://paulbouwer.files.wordpress.com/2011/02/git_part5_issueclosed1.png?w=550&#038;h=479" width="550" height="479" /></p>
<p>I also confirmed that the <a title="Issue 83: Support for multi core using ServiceLocator" href="http://code.google.com/p/solrnet/issues/detail?id=83" target="_blank">feature</a> I had worked on was now closed in the SolrNet issues list. It felt good &#8211; my commit had been accepted into the master SolrNet project.</p>
<h4>End of a journey</h4>
<p>This has been an incredible journey and I can highly recommend dedicating some time and code to an open source project. The satisfaction of contributing to a project used by a community is something else. You also get a lot back &#8211; my knowledge of Git has improved and the insight into how other people code and their thought and design processes has been invaluable.</p>
<p>There&#8217;s nothing stopping you &#8211; find a project that you believe in and help out !</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/424/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=424&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/02/20/git-github-and-an-open-source-net-project-part-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest1.png" medium="image">
			<media:title type="html">GitHub - pull request</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest2.png" medium="image">
			<media:title type="html">GitHub - pull request</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest3.png" medium="image">
			<media:title type="html">GitHub - pull request</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest4.png" medium="image">
			<media:title type="html">GitHub - pull request</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest5.png" medium="image">
			<media:title type="html">GitHub - pull request</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest6.png" medium="image">
			<media:title type="html">GitHub - pull request</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_pullrequest7.png" medium="image">
			<media:title type="html">GitHub - pull request</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_masterproject.png" medium="image">
			<media:title type="html">Commits accepted into master project</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part5_issueclosed1.png" medium="image">
			<media:title type="html">Issue 83 closed</media:title>
		</media:content>
	</item>
		<item>
		<title>Git, GitHub and an open source .NET project &#8211; Part 4</title>
		<link>http://blog.paulbouwer.com/2011/02/13/git-github-and-an-open-source-net-project-part-4/</link>
		<comments>http://blog.paulbouwer.com/2011/02/13/git-github-and-an-open-source-net-project-part-4/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 13:52:24 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://blog.paulbouwer.com/?p=359</guid>
		<description><![CDATA[I have used the open source enterprise search platform Solr for a number of years now and on a recent project have been using the open source SolrNet .NET client library. The SolrNet library lacked a feature I required when &#8230; <a href="http://blog.paulbouwer.com/2011/02/13/git-github-and-an-open-source-net-project-part-4/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=359&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have used the open source enterprise search platform <a href="http://lucene.apache.org/solr/">Solr</a> for a number of years now and on a recent project have been using the open source <a href="http://code.google.com/p/solrnet/">SolrNet</a> .NET client library. The SolrNet library lacked a <a href="http://code.google.com/p/solrnet/issues/detail?id=83">feature</a> I required when used with the bundled <a href="http://martinfowler.com/articles/injection.html#UsingAServiceLocator">Service Locator</a> implementation. A number of people had been asking for the same feature so I decided to jump in and implement it.</p>
<p>This is part 4 of my journey into learning Git, using GitHub and contributing to an open source project.</p>
<ul>
<li><a title="Introduction" href="http://blog.paulbouwer.com/2010/12/27/git-github-and-an-open-source-net-project-introduction/" target="_blank">Introduction</a> </li>
<li><a title="Part 1 – Install Git" href="http://blog.paulbouwer.com/2010/12/28/git-github-and-an-open-source-net-project-part-1/" target="_blank">Part 1 &#8211; Install Git</a> </li>
<li><a title="Part 2 - Set up GitHub" href="http://blog.paulbouwer.com/2010/12/30/git-github-and-an-open-source-net-project-part-2/" target="_blank">Part 2 &#8211; Set up GitHub</a> </li>
<li><a title="Part 3 - Fork project" href="http://blog.paulbouwer.com/2011/01/15/git-github-and-an-open-source-net-project-part-3/" target="_blank">Part 3 &#8211; Fork project</a></li>
<li><strong>Part 4 &#8211; Contribute code</strong> </li>
<li><a title="Part 5 - Submit pull request" href="http://blog.paulbouwer.com/2011/02/20/git-github-and-an-open-source-net-project-part-5/" target="_blank">Part 5 &#8211; Submit pull request</a></li>
</ul>
<h4>The feature</h4>
<p>The <a title="Issue 83: Support for multi core using ServiceLocator" href="http://code.google.com/p/solrnet/issues/detail?id=83" target="_blank">feature</a> in SolrNet that I was interested in updating revolved around using the built in <a title="Service Locator" href="http://martinfowler.com/articles/injection.html#UsingAServiceLocator" target="_blank">Service Locator</a> to support multi-tenancy.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="SolrNet Issue 83" border="0" alt="SolrNet Issue 83" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_issue.png?w=550&#038;h=335" width="550" height="335" /></p>
<p>No one had volunteered their time to implement this feature as can be seen by a thread in the <a href="http://groups.google.com/group/solrnet/browse_thread/thread/3a5d0c43c8a1704a">SolrNet Google Group</a>, so I decided to jump in and implement the feature.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="SolrNet Google Group" border="0" alt="SolrNet Google Group" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_googlegroup.png?w=550&#038;h=329" width="550" height="329" /></p>
<h4>Committing the implemented feature</h4>
<p>After implementing the feature I was ready to commit my code to my local repository which was located in my <strong>C:\Projects\GitHub\SolrNet</strong> folder. I ran the <a title="git status" href="http://www.kernel.org/pub/software/scm/git/docs/git-status.html" target="_blank">git status</a> command via the Git Bash shell. This will show any new files that I have created or any changes to existing files that I have made.</p>
<p><code class="instructions">git status</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git status" border="0" alt="git status" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash21.png?w=550&#038;h=274" width="550" height="274" /></p>
<p>The <strong>Changed but not updated</strong> list refers to files that have been modified in the working directory but have not yet been staged. The <strong>Untracked files</strong> list refers to new files in the working directory that Git does not have in a previous snapshot (commit). All these files need to be added to the staging area in preparation for the commit.
<p>The staging area is where changes can be grouped before being committed. This gives you a lot of flexibility in what actually goes into a commit. There is a nice <a title="the staging area" href="http://www.gitready.com/beginner/2009/01/18/the-staging-area.html" target="_blank">explanation</a> on the <a title="git ready" href="http://www.gitready.com/" target="_blank">git ready</a> site.</p>
<p>I ran the <a title="git add" href="http://www.kernel.org/pub/software/scm/git/docs/git-add.html" target="_blank">git add</a> command via the Git Bash shell for each of the files that I needed to add to the staging area.</p>
<p><code class="instructions">git add</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git add" border="0" alt="git add" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash11.png?w=550&#038;h=278" width="550" height="278" /></p>
<p>I then ran the git status command via the Git Bash shell again to confirm that the files were now all in the staging area of my local repository.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git status" border="0" alt="git status" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash31.png?w=550&#038;h=248" width="550" height="248" /></p>
<p>I ran the <a title="git commit" href="http://www.kernel.org/pub/software/scm/git/docs/git-commit.html" target="_blank">git commit</a> command via the Git Bash shell to commit the changes from the staging area. The <strong>-m</strong> switch allows you to specify the commit message. I used the issue details <strong>Issue 83: Support for multi core using ServiceLocator</strong> as my commit message.</p>
<p><code class="instructions">git commit -m</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git commit" border="0" alt="git commit" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash41.png?w=550&#038;h=164" width="550" height="164" /></p>
<p>I ran the git status command again via the Git Bash shell again to confirm that all staged changes had been committed in my local repository.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git status" border="0" alt="git status" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash51.png?w=550&#038;h=161" width="550" height="161" /></p>
<h4>Pushing commits to public repository</h4>
<p>You may have noticed the following message in the last screenshot: <strong>Your branch is ahead of &#8216;origin/master&#8217; by 1 commit</strong>. This is showing that my local repository now has a commit that is not in my public <strong>paulbouwer/SolrNet</strong> repository. To confirm that the name <strong>origin</strong> references my public <strong>paulbouwer/SolrNet</strong> repository I ran the <a title="git remote" href="http://www.kernel.org/pub/software/scm/git/docs/git-remote.html" target="_blank">git remote</a> command via the Git Bash shell. The <strong>-v</strong> switch switches on verbose messages and the <strong>show -n</strong> action and switch specifies the name of the remote.</p>
<p><code class="instructions">git remote -v show -n</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git remote" border="0" alt="git remote" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash61.png?w=550&#038;h=239" width="550" height="239" /></p>
<p>I next ran the <a title="git push" href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" target="_blank">git push</a> command via the Git Bash shell to push my commit to my public <strong>paulbouwer/SolrNet</strong> repository on GitHub. I am pushing my local changes to the master branch on my origin remote. Note that the password here is not your passphrase but your GitHub account password.</p>
<p><code class="instructions">git push</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git push" border="0" alt="git push" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash71.png?w=550&#038;h=194" width="550" height="194" /></p>
<p>A final git status command via the Git Bash shell confirms that my local branch is no longer out of sync with my public <strong>paulbouwer/SolrNet</strong> repository on GitHub.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git status" border="0" alt="git status" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash81.png?w=550&#038;h=137" width="550" height="137" /></p>
<h4>Confirmation</h4>
<p>The commit pushed up to my public <strong>paulbouwer/SolrNet</strong> repository on GitHub is clearly visible under the <a title="GitHub Commits" href="https://github.com/paulbouwer/SolrNet/commits/master" target="_blank">Commits</a> tab. Clicking on the <a title="commit details" href="https://github.com/paulbouwer/SolrNet/commit/9736899c6c00af86a433d49f3a4b5b5e519bc3b1" target="_blank">commit hyperlink</a> for the commit will take you to the details of the commit.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub Commits" border="0" alt="GitHub Commits" src="http://paulbouwer.files.wordpress.com/2011/02/git_part4_github.png?w=550&#038;h=423" width="550" height="423" /></p>
<p>Next is submitting a pull request and getting the code accepted into the master repository &#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/359/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/359/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=359&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/02/13/git-github-and-an-open-source-net-project-part-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_issue.png" medium="image">
			<media:title type="html">SolrNet Issue 83</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_googlegroup.png" medium="image">
			<media:title type="html">SolrNet Google Group</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash21.png" medium="image">
			<media:title type="html">git status</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash11.png" medium="image">
			<media:title type="html">git add</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash31.png" medium="image">
			<media:title type="html">git status</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash41.png" medium="image">
			<media:title type="html">git commit</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash51.png" medium="image">
			<media:title type="html">git status</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash61.png" medium="image">
			<media:title type="html">git remote</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash71.png" medium="image">
			<media:title type="html">git push</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_gitbash81.png" medium="image">
			<media:title type="html">git status</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/02/git_part4_github.png" medium="image">
			<media:title type="html">GitHub Commits</media:title>
		</media:content>
	</item>
		<item>
		<title>Git, GitHub and an open source .NET project &#8211; Part 3</title>
		<link>http://blog.paulbouwer.com/2011/01/15/git-github-and-an-open-source-net-project-part-3/</link>
		<comments>http://blog.paulbouwer.com/2011/01/15/git-github-and-an-open-source-net-project-part-3/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 14:42:28 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">https://paulbouwer.wordpress.com/?p=321</guid>
		<description><![CDATA[I have used the open source enterprise search platform Solr for a number of years now and on a recent project have been using the open source SolrNet .NET client library. The SolrNet library lacked a feature I required when &#8230; <a href="http://blog.paulbouwer.com/2011/01/15/git-github-and-an-open-source-net-project-part-3/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=321&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have used the open source enterprise search platform <a href="http://lucene.apache.org/solr/">Solr</a> for a number of years now and on a recent project have been using the open source <a href="http://code.google.com/p/solrnet/">SolrNet</a> .NET client library. The SolrNet library lacked a <a href="http://code.google.com/p/solrnet/issues/detail?id=83">feature</a> I required when used with the bundled <a href="http://martinfowler.com/articles/injection.html#UsingAServiceLocator">Service Locator</a> implementation. A number of people had been asking for the same feature so I decided to jump in and implement it.</p>
<p>This is part 3 of my journey into learning Git, using GitHub and contributing to an open source project.</p>
<ul>
<li><a title="Introduction" href="http://blog.paulbouwer.com/2010/12/27/git-github-and-an-open-source-net-project-introduction/" target="_blank">Introduction</a> </li>
<li><a title="Part 1 – Install Git" href="http://blog.paulbouwer.com/2010/12/28/git-github-and-an-open-source-net-project-part-1/" target="_blank">Part 1 &#8211; Install Git</a> </li>
<li><a title="Part 2 - Set up GitHub" href="http://blog.paulbouwer.com/2010/12/30/git-github-and-an-open-source-net-project-part-2/" target="_blank">Part 2 &#8211; Set up GitHub</a> </li>
<li><strong>Part 3 &#8211; Fork project </strong></li>
<li><a title="Part 4 - Contribute code" href="http://blog.paulbouwer.com/2011/02/13/git-github-and-an-open-source-net-project-part-4/" target="_blank">Part 4 &#8211; Contribute code</a></li>
<li><a title="Part 5 - Submit pull request" href="http://blog.paulbouwer.com/2011/02/20/git-github-and-an-open-source-net-project-part-5/" target="_blank">Part 5 &#8211; Submit pull request</a></li>
</ul>
<h4>Configure Git Options</h4>
<p>Since I was about to fork a project and start dealing with code it seems like a good time to <a title="First-Time Git Setup" href="http://progit.org/book/ch1-5.html" target="_blank">configure</a> my identity within Git. Git uses your name and email address to sign your commits.</p>
<p>This can be achieved via the Git Bash shell by typing the following commands: </p>
<p><code class="instructions">git config --global user.name &quot;your_full_name&quot;</code> <code class="instructions">git config --global user.email &quot;your_email_address&quot;</code> </p>
<p>The global switch applies this information to all of your projects. If you would like to override options for a particular project leave out the <strong>&#8211;global</strong> switch when in that project.</p>
<p>The following command will list out all your configured options:</p>
<p><code class="instructions">git config --list</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="git config" border="0" alt="git config" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_globaloptions.png?w=400&#038;h=230" width="400" height="230" /></p>
<h4>GitHub Workflow</h4>
<p>The typical workflow of contributors to an open source project hosted on GitHub can be a bit intimidating. It involves the following steps:</p>
<ul>
<li>Fork </li>
<li>Clone </li>
<li>Write and commit code </li>
<li>Push </li>
<li>Submit pull request </li>
</ul>
<p>I&#8217;ll discuss the first two steps (fork, clone) in this post and will cover the remainder in the next two posts.</p>
<h4>Forking the SolrNet Project</h4>
<p>The SolrNet project was created by <a title="GitHub Profile - Mauricio Scheffer" href="https://github.com/mausch" target="_blank">Mauricio Scheffer</a> and is hosted on GitHub at <a href="https://github.com/mausch/SolrNet">https://github.com/mausch/SolrNet</a>. </p>
<p>To contribute code to a project on GitHub typically starts with you having to fork the project. Forking the project creates a copy of the master repository with a complete history under your GitHub account. This is great since it allows you to start contributing code and have the changes publically available to anyone who wants them &#8211; you don&#8217;t need commit access to the master project.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Fork project on GitHub" border="0" alt="Fork project on GitHub" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_forkproject1.png?w=500&#038;h=415" width="500" height="415" /></p>
<p>I navigated to the master project <strong>mausch/SolrNet</strong> page and clicked on the <strong>Fork</strong> button.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Forked project on GitHub" border="0" alt="Forked project on GitHub" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_forkproject2.png?w=500&#038;h=410" width="500" height="410" /></p>
<p>GitHub managed the forking of the master project and created a forked copy for me. It is now available at <a href="https://github.com/paulbouwer/SolrNet">https://github.com/paulbouwer/SolrNet</a>. GitHub also clearly shows that the project has been forked from the original project <strong>mausch/SolrNet</strong>.</p>
<p>Git is a <a title="DVCS (distributed version control system)" href="http://en.wikipedia.org/wiki/Distributed_Version_Control_System" target="_blank">distributed version control system</a> which allows greater flexibility in how developers contribute and collaborate on projects. I don&#8217;t have commit access to the master repository <strong>mausch/SolrNet </strong> so GitHub helped me fork the repository to create a public repository <strong>paulbouwer/SolrNet</strong> to which I have read/commit access. So now I can commit changes into my <strong>paulbouwer/SolrNet</strong> repository and Mauricio can pull any of my commits into the master <strong>mausch/SolrNet</strong> repository (if he wants them).</p>
<h4>Cloning your GitHub repository</h4>
<p>A <a title="Git Community Book - Distributed Workflows" href="http://book.git-scm.com/3_distributed_workflows.html" target="_blank">typical</a> and common <a title="Pro Git  Book - Distributed Workflows" href="http://progit.org/book/ch5-1.html" target="_blank">workflow</a> in Git is to have a private local copy of your public repository. This allows you to have a working space that is under revision control. Once you are happy with the changes you have implemented you can roll them up into a single commit to your public repository and ask the maintainer of the master project to pull your commit into the master repository.</p>
<p>Obtaining a private local copy of your public repository is achieved using the <a title="Manual Page - git clone" href="http://www.kernel.org/pub/software/scm/git/docs/git-clone.html" target="_blank">git clone</a> command. As the name suggests this is a clone of the repository (as opposed to a <a title="svn checkout" href="http://svnbook.red-bean.com/en/1.5/svn.ref.svn.c.checkout.html" target="_blank">checkout</a> in <a title="Subversion" href="http://en.wikipedia.org/wiki/Apache_Subversion" target="_blank">SVN</a>). The cloned repository contains its own copy of the entire history of the project.</p>
<p>First we need the public repository URL from GitHub. I was having some firewall issues with SSH so decided to use my HTTP URL.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="GitHub repository HTTPS URL" border="0" alt="GitHub repository HTTPS URL" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone1.png?w=500&#038;h=212" width="500" height="212" /></p>
<p>I ran the git clone command from the C:\Projects\GitHub folder via Git Bash shell. When prompted for a password enter the key passphrase for the SSH key registered with GitHub.</p>
<p><code class="instructions">git clone https://paulbouwer@github.com/paulbouwer/SolrNet.git</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Clone project" border="0" alt="Clone project" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone2.png?w=400&#038;h=142" width="400" height="142" /></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Confirm files" border="0" alt="Confirm files" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone3.png?w=550&#038;h=437" width="550" height="437" /></p>
<p>This successfully cloned my public <strong>paulbouwer/SolrNet</strong> repository into my C:\Projects\GitHub\SolrNet folder as can be seen above. You can also see that the master branch is the active branch at the moment.</p>
<p>You can also clone a repository via <a title="TortoiseGit" href="http://code.google.com/p/tortoisegit/" target="_blank">TortoiseGit</a> by clicking on <strong>Git Clone &#8230;</strong> on the right click context menu in Windows Explorer in the C:\Projects\GitHub folder.</p>
<p>&#160;<img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="TortoiseGit - Git Clone ..." border="0" alt="TortoiseGit - Git Clone ..." src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone4.png?w=400&#038;h=366" width="400" height="366" /></p>
<p>After providing your SSH key passphrase TortoiseGit will begin the clone.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="TortoiseGit - cloning" border="0" alt="TortoiseGit - cloning" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone5.png?w=500&#038;h=289" width="500" height="289" /></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="TortoiseGit - confirm files" border="0" alt="TortoiseGit - confirm files" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone6.png?w=500&#038;h=497" width="500" height="497" /></p>
<p>TortoiseGit has successfully cloned my public <strong>paulbouwer/SolrNet</strong> repository into my C:\Projects\GitHub\SolrNet folder as can be seen above. This is missing some of the contextual information we saw in the Git Bash shell such as the current active branch. I prefer using the Git Bash shell as it gives me more information and finer grained control. I will continue purely with the Git Bash shell for the rest of this series of posts.</p>
<h4>Adding remotes</h4>
<p>Now that I have a local copy of my repository I need a mechanism to manage changes between it and my public repository <strong>paulbouwer/SolrNet</strong>. I also need to manage changes between my local repository and the master repository <strong>mausch/SolrNet</strong>. This is achieved using the <a title="Working with Remotes" href="http://progit.org/book/ch2-5.html" target="_blank">remotes</a> concept in Git.</p>
<p>From the <a title="Working with Remotes" href="http://progit.org/book/ch2-5.html" target="_blank">Working with Remotes</a> section of the <a title="Pro Git Book" href="http://progit.org/book" target="_blank">Pro Git</a> book:</p>
<blockquote><p>Remote repositories are versions of your project that are hosted on the Internet or network somewhere. You can have several of them, each of which generally is either read-only or read/write for you. Collaborating with others involves managing these remote repositories and pushing and pulling data to and from them when you need to share work</p>
</blockquote>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Master repository on GitHub" border="0" alt="Master repository on GitHub" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_remote1.png?w=500&#038;h=218" width="500" height="218" /></p>
<p>I obtained the HTTP URL of the master repository <strong>mausch/SolrNet</strong>.</p>
<p>I added a link to the master repository using the <a title="git remote" href="http://www.kernel.org/pub/software/scm/git/docs/git-remote.html" target="_blank">git remote</a> command via the Git Bash shell. I used the typical remote name of <strong>upstream</strong> to denote the master repository <strong>mausch/SolrNet</strong>. I used the git remote command to also verify that the remote was added correctly.</p>
<p><code class="instructions">git remote add upstream https://github.com/mausch/SolrNet.git</code> <code class="instructions">git remote –v</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Add and verify remotes" border="0" alt="Add and verify remotes" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_remote2.png?w=450&#038;h=201" width="450" height="201" /></p>
<p>The remote link to the master repository has been successfully added under the name <strong>upstream</strong>. But what is that remote named <strong>origin</strong> and how did it get added? When you clone a repository, Git automatically adds a remote to the repository you have cloned with the name of <strong>origin</strong>.</p>
<p>I then ran the <a title="git fetch" href="http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html" target="_blank">git fetch</a> command via the Git Bash shell. This fetches any changes from my <strong>upstream</strong> remote and pulls them down into my local repository. I did not do this for my <strong>origin</strong> remote since I know that I have just cloned my local repository from it.</p>
<p><code class="instructions">git fetch upstream</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Fetching upstream changes" border="0" alt="Fetching upstream changes" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_remote3.png?w=550&#038;h=180" width="550" height="180" /></p>
<p>The git fetch command fetches changes across all the available branches.</p>
<p>The final step is now to run the <a title="git merge" href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html" target="_blank">git merge</a> command via the Git Bash shell. This will merge the fetched upstream changes into my local repository.</p>
<p><code class="instructions">git merge upstream/master</code></p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Merge upstream changes" border="0" alt="Merge upstream changes" src="http://paulbouwer.files.wordpress.com/2011/01/git_part3_remote4.png?w=500&#038;h=143" width="500" height="143" /></p>
<p>I was only concerned about the <strong>master</strong> branch changes and therefore that is all that I merged in from the <strong>upstream</strong> fetch. You can also see that since I had just forked my public repository and cloned my local repository from that there were no changes to merge in.</p>
<p>Now I have a public repository that I can use for pull requests and an up to date local repository that is ready for me to start coding in. Next is writing some code &#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/321/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/321/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=321&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2011/01/15/git-github-and-an-open-source-net-project-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_globaloptions.png" medium="image">
			<media:title type="html">git config</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_forkproject1.png" medium="image">
			<media:title type="html">Fork project on GitHub</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_forkproject2.png" medium="image">
			<media:title type="html">Forked project on GitHub</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone1.png" medium="image">
			<media:title type="html">GitHub repository HTTPS URL</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone2.png" medium="image">
			<media:title type="html">Clone project</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone3.png" medium="image">
			<media:title type="html">Confirm files</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone4.png" medium="image">
			<media:title type="html">TortoiseGit - Git Clone ...</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone5.png" medium="image">
			<media:title type="html">TortoiseGit - cloning</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_clone6.png" medium="image">
			<media:title type="html">TortoiseGit - confirm files</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_remote1.png" medium="image">
			<media:title type="html">Master repository on GitHub</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_remote2.png" medium="image">
			<media:title type="html">Add and verify remotes</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_remote3.png" medium="image">
			<media:title type="html">Fetching upstream changes</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2011/01/git_part3_remote4.png" medium="image">
			<media:title type="html">Merge upstream changes</media:title>
		</media:content>
	</item>
		<item>
		<title>Git, GitHub and an open source .NET project &#8211; Part 2</title>
		<link>http://blog.paulbouwer.com/2010/12/30/git-github-and-an-open-source-net-project-part-2/</link>
		<comments>http://blog.paulbouwer.com/2010/12/30/git-github-and-an-open-source-net-project-part-2/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 18:42:42 +0000</pubDate>
		<dc:creator>Paul Bouwer</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://blog.paulbouwer.com/?p=284</guid>
		<description><![CDATA[I have used the open source enterprise search platform Solr for a number of years now and on a recent project have been using the open source SolrNet .NET client library. The SolrNet library lacked a feature I required when &#8230; <a href="http://blog.paulbouwer.com/2010/12/30/git-github-and-an-open-source-net-project-part-2/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=284&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have used the open source enterprise search platform <a href="http://lucene.apache.org/solr/">Solr</a> for a number of years now and on a recent project have been using the open source <a href="http://code.google.com/p/solrnet/">SolrNet</a> .NET client library. The SolrNet library lacked a <a href="http://code.google.com/p/solrnet/issues/detail?id=83">feature</a> I required when used with the bundled <a href="http://martinfowler.com/articles/injection.html#UsingAServiceLocator">Service Locator</a> implementation. A number of people had been asking for the same feature so I decided to jump in and implement it.</p>
<p>This is part 2 of my journey into learning Git, using GitHub and contributing to an open source project.</p>
<ul>
<li><a title="Introduction" href="http://blog.paulbouwer.com/2010/12/27/git-github-and-an-open-source-net-project-introduction/" target="_blank">Introduction</a> </li>
<li><a title="Part 1 – Install Git" href="http://blog.paulbouwer.com/2010/12/28/git-github-and-an-open-source-net-project-part-1/" target="_blank">Part 1 – Install Git</a> </li>
<li><strong>Part 2 – Set up GitHub</strong> </li>
<li><a title="Part 3 - Fork project" href="http://blog.paulbouwer.com/2011/01/15/git-github-and-an-open-source-net-project-part-3/" target="_blank">Part 3 &#8211; Fork project</a></li>
<li><a title="Part 4 - Contribute code" href="http://blog.paulbouwer.com/2011/02/13/git-github-and-an-open-source-net-project-part-4/" target="_blank">Part 4 &#8211; Contribute code</a></li>
<li><a title="Part 5 - Submit pull request" href="http://blog.paulbouwer.com/2011/02/20/git-github-and-an-open-source-net-project-part-5/" target="_blank">Part 5 &#8211; Submit pull request</a></li>
</ul>
<h4>What is GitHub ?</h4>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;float:left;padding-top:0;border-width:0;margin:0 12px 0 0;" title="GitHub_Logo" border="0" alt="GitHub_Logo" align="left" src="http://paulbouwer.files.wordpress.com/2010/12/github_logo1.png?w=100&#038;h=45" width="100" height="45" /><a title="GitHub" href="https://github.com/" target="_blank">GitHub</a> is the popular web-based hosting service for projects that use the Git revision control system. It has a large number of project management, code hosting and community based features.</p>
<h4>Sign up for GitHub</h4>
<p>GitHub offers a <a title="Sign up for a free account." href="https://github.com/signup/free" target="_blank">free</a> account for open source projects. This account has an <strong>unlimited</strong> number of </span>public repositories and<span class="Apple-converted-space">&#160;</span>public collaborators. There are also <a title="GitHub plans and pricing." href="https://github.com/plans" target="_blank">plans</a> that cater for private repositories and collaborators.</span></span></p>
<p></span></span><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_GitHubSignup" border="0" alt="Git_Part2_GitHubSignup" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_githubsignup1.png?w=500&#038;h=434" width="500" height="434" /></p>
<p>The source code for the <a href="http://code.google.com/p/solrnet/">SolrNet</a> project is hosted on GitHub so I signed up for the free plan and created myself an account on GitHub.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_GitHubKeys" border="0" alt="Git_Part2_GitHubKeys" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_githubkeys.png?w=500&#038;h=379" width="500" height="379" /></p>
<p>Once you have updated the <strong>Public Profile</strong> and <strong>Email Addresses</strong> sections of your account you will notice that you need to associate an <a title="SSH" href="http://en.wikipedia.org/wiki/Secure_Shell" target="_blank">SSH</a> public key with your GitHub account.</p>
<h4>Generate an SSH key</h4>
<p>Fire up the PuTTY Key Generator executable <strong>puttygen.exe</strong> found in the PuTTY install folder.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_KeyGen1" border="0" alt="Git_Part2_KeyGen1" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen11.png?w=350&#038;h=340" width="350" height="340" /></p>
<p>Select the <b>SSH-2 RSA</b> radio button and ensure that the number of bits is set to <b>1024</b>. Click the <b>Generate</b> button to generate the <a title="Public-key cryptography." href="http://en.wikipedia.org/wiki/Public-key_cryptography" target="_blank">public/private key</a> pair.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_KeyGen2" border="0" alt="Git_Part2_KeyGen2" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen2.png?w=350&#038;h=343" width="350" height="343" /></p>
<p>Cryptography calls for unpredictable <a title="Applications of randomness in cryptography." href="http://en.wikipedia.org/wiki/Applications_of_randomness#Cryptography" target="_blank">random</a> numbers. A simple way to obtain this randomness is to generate it from the user. The PuTTY Key Generator uses random mouse movements to generate randomness.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_KeyGen3" border="0" alt="Git_Part2_KeyGen3" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen3.png?w=350&#038;h=333" width="350" height="333" /></p>
<p>Give the generated key a comment and provide a passphrase. The passphrase provides an <a title="GitHub - Working with key passphrases." href="http://help.github.com/working-with-key-passphrases/" target="_blank">extra layer of security</a> for your key. This is not my actual key but even if it was &#8211; all that is visible here is my public key which is meant for public distribution anyway &#8230;</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_KeyGen4" border="0" alt="Git_Part2_KeyGen4" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen41.png?w=400&#038;h=359" width="400" height="359" /></p>
<p>Create a .ssh folder in your home folder. I created a <strong>C:\Users\paul\.ssh</strong> folder. Save your public key into this folder by clicking on the <strong>Save public key</strong> button.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_KeyGen5" border="0" alt="Git_Part2_KeyGen5" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen51.png?w=400&#038;h=364" width="400" height="364" /></p>
<p>Save the private key into your .ssh folder by clicking on the <strong>Save private key</strong> button.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_KeyGen6" border="0" alt="Git_Part2_KeyGen6" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen6.png?w=400&#038;h=175" width="400" height="175" /></p>
<p>You should now have a public/private SSH key pair for GitHub. My public key is <strong>github_rsa</strong> and my private key is <strong>github_rsa.ppk</strong>. Never let anyone have access to your private key !</p>
<h4>Add public key to GitHub</h4>
<p>Now we are ready to add our newly generated public SSH key to GitHub. <strong>Highlight</strong> the text in the Public key text box and <strong>copy</strong> it to the clipboard (CTRL-C). </p>
<p>&#160;<img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_AddKey1" border="0" alt="Git_Part2_AddKey1" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey12.png?w=400&#038;h=391" width="400" height="391" /></p>
<p>If you have already closed the PuTTY Key Generator I&#8217;ll show you how to load the key back up. Fire up the PuTTY Key Generator executable again and click on the <strong>Load</strong> button.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_AddKey2" border="0" alt="Git_Part2_AddKey2" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey21.png?w=400&#038;h=384" width="400" height="384" /></p>
<p>Select your GitHub private key file and click on the <strong>Open</strong> button.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_AddKey3" border="0" alt="Git_Part2_AddKey3" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey31.png?w=400&#038;h=389" width="400" height="389" /></p>
<p>You&#8217;ll be required to provide your <strong>passphrase</strong> to load the private key.</p>
<p>&#160;<img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_AddKey1" border="0" alt="Git_Part2_AddKey1" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey12.png?w=400&#038;h=391" width="400" height="391" /></p>
<p>Now <strong>highlight</strong> the text in the public key text box and <strong>copy</strong> it to the clipboard (CTRL-C). </p>
<p><img style="padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_GitHubKeys" border="0" alt="Git_Part2_GitHubKeys" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_githubkeys.png?w=500&#038;h=379" width="500" height="379" /></p>
<p>Go back to the <strong>SSH Public Key</strong> section in your GitHub account. Click on the <strong>Add another public key</strong> link.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_AddKey4" border="0" alt="Git_Part2_AddKey4" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey41.png?w=500&#038;h=468" width="500" height="468" /></p>
<p><strong>Paste</strong> (CTRL-V) the public key from your clipboard into the Key text box. Provide a <strong>Title</strong> for your key and click on the <strong>Add key</strong> button.</p>
<p><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Git_Part2_AddKey5" border="0" alt="Git_Part2_AddKey5" src="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey51.png?w=500&#038;h=388" width="500" height="388" /></p>
<p>GitHub is now set up with your SSH public key.</p>
<p>Next is forking the SolrNet project &#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/paulbouwer.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/paulbouwer.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/paulbouwer.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/paulbouwer.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/paulbouwer.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/paulbouwer.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/paulbouwer.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/paulbouwer.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/paulbouwer.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/paulbouwer.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/paulbouwer.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/paulbouwer.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/paulbouwer.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/paulbouwer.wordpress.com/284/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.paulbouwer.com&amp;blog=2559614&amp;post=284&amp;subd=paulbouwer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.paulbouwer.com/2010/12/30/git-github-and-an-open-source-net-project-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8d10d9b0050c6976242bfadb414ca791?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">paulbouwer</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/github_logo1.png" medium="image">
			<media:title type="html">GitHub_Logo</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_githubsignup1.png" medium="image">
			<media:title type="html">Git_Part2_GitHubSignup</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_githubkeys.png" medium="image">
			<media:title type="html">Git_Part2_GitHubKeys</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen11.png" medium="image">
			<media:title type="html">Git_Part2_KeyGen1</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen2.png" medium="image">
			<media:title type="html">Git_Part2_KeyGen2</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen3.png" medium="image">
			<media:title type="html">Git_Part2_KeyGen3</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen41.png" medium="image">
			<media:title type="html">Git_Part2_KeyGen4</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen51.png" medium="image">
			<media:title type="html">Git_Part2_KeyGen5</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_keygen6.png" medium="image">
			<media:title type="html">Git_Part2_KeyGen6</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey12.png" medium="image">
			<media:title type="html">Git_Part2_AddKey1</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey21.png" medium="image">
			<media:title type="html">Git_Part2_AddKey2</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey31.png" medium="image">
			<media:title type="html">Git_Part2_AddKey3</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey12.png" medium="image">
			<media:title type="html">Git_Part2_AddKey1</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_githubkeys.png" medium="image">
			<media:title type="html">Git_Part2_GitHubKeys</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey41.png" medium="image">
			<media:title type="html">Git_Part2_AddKey4</media:title>
		</media:content>

		<media:content url="http://paulbouwer.files.wordpress.com/2010/12/git_part2_addkey51.png" medium="image">
			<media:title type="html">Git_Part2_AddKey5</media:title>
		</media:content>
	</item>
	</channel>
</rss>
