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

<channel>
	<title>GOTO11</title>
	<atom:link href="http://goto11.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://goto11.net</link>
	<description></description>
	<lastBuildDate>Wed, 15 Feb 2012 17:18:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Frequency for iPad</title>
		<link>http://goto11.net/frequency-for-ipad/</link>
		<comments>http://goto11.net/frequency-for-ipad/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 00:59:19 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://goto11.net/?p=482</guid>
		<description><![CDATA[It&#8217;s been six months in the making but we&#8217;re finally live. I, the folks over at Front-ended and the Frequency team in L.A. have been hard at work creating the best online video experience imaginable, and it has arrived! The app aggregates video from hundreds of different sources across the internet and categorizes them into [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been six months in the making but we&#8217;re finally live. I, the folks over at <a href="http://front-ended.com">Front-ended</a> and the <a href="http://itunes.apple.com/us/app/frequency/id465034728?mt=8">Frequency</a> team in L.A. have been hard at work creating the best online video experience imaginable, and it has arrived!</p>

<div class="ngg-galleryoverview" id="ngg-gallery-2-482">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-9" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/frequency/f1.png" title=" " rel="lightbox[set_2]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/frequency/thumbs/thumbs_f1.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-10" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/frequency/f2.png" title=" " rel="lightbox[set_2]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/frequency/thumbs/thumbs_f2.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-11" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/frequency/f3.png" title=" " rel="lightbox[set_2]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/frequency/thumbs/thumbs_f3.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-12" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/frequency/f4.png" title=" " rel="lightbox[set_2]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/frequency/thumbs/thumbs_f4.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-13" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/frequency/f5.png" title=" " rel="lightbox[set_2]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/frequency/thumbs/thumbs_f5.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-14" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/frequency/f6.png" title=" " rel="lightbox[set_2]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/frequency/thumbs/thumbs_f6.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p>The app aggregates video from hundreds of different sources across the internet and categorizes them into different channels &#8211; comedy, news, music, technology and more. You can subscribe to any or all of these channels and they will be presented to you in a beautiful user interface. Everything is updated in real time and you&#8217;ll always see new videos popping in. Get it for FREE on the <a href="http://itunes.apple.com/us/app/frequency/id465034728?mt=8">App Store</a>!</p>
<p><a href="http://itunes.apple.com/us/app/frequency/id465034728?mt=8"><img src="http://goto11.net/wp-content/uploads/2012/01/FrequencyDownload.png" class="blog" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/frequency-for-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nomad Editions &#8211; Original Weekly Magazines for your iPad</title>
		<link>http://goto11.net/nomad-editions-weekly-magazines-for-your-ipad/</link>
		<comments>http://goto11.net/nomad-editions-weekly-magazines-for-your-ipad/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 22:25:57 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[nomad editions]]></category>

		<guid isPermaLink="false">http://goto11.net/?p=443</guid>
		<description><![CDATA[Over the past couple months I&#8217;ve been hard at work creating an iPad application for the NYC-based digital media company Nomad Editions. Nomad is a small team of publishing-industry professionals who have joined forces to create several new original magazines exclusively for the iPad. Subscriptions to each magazine are just $0.99 for a month, for [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past couple months I&#8217;ve been hard at work creating an iPad application for the NYC-based digital media company <a href="http://nomadeditions.com">Nomad Editions</a>. Nomad is a small team of publishing-industry professionals who have joined forces to create several new original magazines exclusively for the iPad. Subscriptions to each magazine are just $0.99 for a month, for which you get 4 issues, or $9.99 for the whole year. Screenshots of the app below.</p>

<div class="ngg-galleryoverview" id="ngg-gallery-1-443">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-1" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/nomad/img-1.png" title=" " rel="lightbox[set_1]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/nomad/thumbs/thumbs_img-1.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-2" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/nomad/img-2.png" title=" " rel="lightbox[set_1]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/nomad/thumbs/thumbs_img-2.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/nomad/img-3.png" title=" " rel="lightbox[set_1]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/nomad/thumbs/thumbs_img-3.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/nomad/img-4.png" title=" " rel="lightbox[set_1]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/nomad/thumbs/thumbs_img-4.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-5" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/nomad/img-5.png" title=" " rel="lightbox[set_1]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/nomad/thumbs/thumbs_img-5.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-6" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/nomad/img-6.png" title=" " rel="lightbox[set_1]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/nomad/thumbs/thumbs_img-6.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-7" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/nomad/img-7.png" title=" " rel="lightbox[set_1]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/nomad/thumbs/thumbs_img-7.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-8" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://goto11.net/wp-content/gallery/nomad/img-8.png" title=" " rel="lightbox[set_1]" >
								<img title=" " alt=" " src="http://goto11.net/wp-content/gallery/nomad/thumbs/thumbs_img-8.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p>You can download the <a href="http://itunes.apple.com/us/app/nomad-editions/id435609018?mt=8&#038;ls=1">Nomad Editions</a> app for free from the App Store (currently iPad only) and subscribe to any or all of the magazines you want via <a href="http://support.apple.com/kb/ht4009">In-App Purchase</a>. Check it out.</p>
<p><a href="http://itunes.apple.com/us/app/nomad-editions/id435609018?mt=8&#038;ls=1"><img src="http://goto11.net/wp-content/uploads/2011/06/NomadDownload.png" class="blog" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/nomad-editions-weekly-magazines-for-your-ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skinning a UIProgressView with drawRect and images</title>
		<link>http://goto11.net/skinning-a-uiprogressview-with-drawrect-and-images/</link>
		<comments>http://goto11.net/skinning-a-uiprogressview-with-drawrect-and-images/#comments</comments>
		<pubDate>Fri, 10 Jun 2011 17:10:09 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[uiprogressview]]></category>

		<guid isPermaLink="false">http://goto11.net/?p=377</guid>
		<description><![CDATA[Here is an easy way that I&#8217;ve come up with to skin the default UIProgressView in an iOS application using just 2 images, and implementing the drawRect: method. This is what the default progress view looks like: &#8230;and here is our custom skinned version. To achieve this you will need 2 images: one for the [...]]]></description>
			<content:encoded><![CDATA[<p>Here is an easy way that I&#8217;ve come up with to skin the default <a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIProgressView_Class/Reference/Reference.html">UIProgressView</a> in an iOS application using just 2 images, and implementing the drawRect: method.<br />
<br />
This is what the default progress view looks like:</p>
<p><img src="http://goto11.net/wp-content/uploads/2011/06/default-ios-progress-vew.png" alt="" title="default-ios-progress-vew" width="349" height="37" class="blog" /></p>
<p>&#8230;and here is our custom skinned version.</p>
<p><img src="http://goto11.net/wp-content/uploads/2011/06/custom-ios-progress-view.png" alt="" title="custom-ios-progress-view" width="349" height="45" class="blog" /></p>
<p>To achieve this you will need 2 images: one for the background, and one for the fill. The images that I&#8217;ve shown here were designed by <a href="http://app-bits.com">Darran Morris</a> so please give credit if you use them.<br />
<br />
<strong>Update:</strong> You can download the images I&#8217;ve used here: <a href="http://goto11.net/wp-content/uploads/2011/06/progress-bar-bg.png">progress-bar-bg.png</a>, <a href="http://goto11.net/wp-content/uploads/2011/06/progress-bar-fill.png">progress-bar-fill.png</a></p>
<p><img src="http://goto11.net/wp-content/uploads/2011/06/custom-progress-view-images.png" alt="" title="custom-progress-view-images" width="450" height="45" class="blog" /></p>
<p>Once you have your images created like mine above, create a new Objective-C class. In your header file make it a subclass of <a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/UIProgressView_Class/Reference/Reference.html">UIProgressView</a>.</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #11740a; font-style: italic;">// CustomProgressView.h</span><br />
<br />
<span style="color: #6e371a;">#import &lt;UIKit/UIKit.h&gt;</span><br />
<br />
<span style="color: #a61390;">@interface</span> CustomProgressView <span style="color: #002200;">:</span> UIProgressView <span style="color: #002200;">&#123;</span> <br />
<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #a61390;">@end</span></div></div>
<p>Next in your implementation file we will create and use our images to draw the progress bar. Note that the images have to be &#8220;stretchable&#8221; in order to work correctly and to be able to render at different widths and heights.</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #11740a; font-style: italic;">// CustomProgressView.m</span><br />
<br />
<span style="color: #6e371a;">#import &quot;CustomProgressView.h&quot;</span><br />
<br />
<span style="color: #6e371a;">#define kCustomProgressViewFillOffsetX 1</span><br />
<span style="color: #6e371a;">#define kCustomProgressViewFillOffsetTopY 1</span><br />
<span style="color: #6e371a;">#define kCustomProgressViewFillOffsetBottomY 3</span><br />
<br />
<span style="color: #a61390;">@implementation</span> CustomProgressView<br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>drawRect<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>CGRect<span style="color: #002200;">&#41;</span>rect <span style="color: #002200;">&#123;</span><br />
<br />
&nbsp; &nbsp; CGSize backgroundStretchPoints <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">4</span>, <span style="color: #2400d9;">9</span><span style="color: #002200;">&#125;</span>, fillStretchPoints <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">3</span>, <span style="color: #2400d9;">8</span><span style="color: #002200;">&#125;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Initialize the stretchable images.</span><br />
&nbsp; &nbsp; UIImage <span style="color: #002200;">*</span>background <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;progress-bar-bg.png&quot;</span><span style="color: #002200;">&#93;</span> stretchableImageWithLeftCapWidth<span style="color: #002200;">:</span>backgroundStretchPoints.width <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;topCapHeight<span style="color: #002200;">:</span>backgroundStretchPoints.height<span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; UIImage <span style="color: #002200;">*</span>fill <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIImage imageNamed<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;progress-bar-fill.png&quot;</span><span style="color: #002200;">&#93;</span> stretchableImageWithLeftCapWidth<span style="color: #002200;">:</span>fillStretchPoints.width <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;topCapHeight<span style="color: #002200;">:</span>fillStretchPoints.height<span style="color: #002200;">&#93;</span>;&nbsp; <br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Draw the background in the current rect</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>background drawInRect<span style="color: #002200;">:</span>rect<span style="color: #002200;">&#93;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Compute the max width in pixels for the fill. &nbsp;Max width being how</span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// wide the fill should be at 100% progress.</span><br />
&nbsp; &nbsp; NSInteger maxWidth <span style="color: #002200;">=</span> rect.size.width <span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #2400d9;">2</span> <span style="color: #002200;">*</span> kCustomProgressViewFillOffsetX<span style="color: #002200;">&#41;</span>;<br />
<br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Compute the width for the current progress value, 0.0 - 1.0 corresponding </span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// to 0% and 100% respectively.</span><br />
&nbsp; &nbsp; NSInteger curWidth <span style="color: #002200;">=</span> <a href="http://www.opengroup.org/onlinepubs/009695399/functions/floor.html"><span style="color: #a61390;">floor</span></a><span style="color: #002200;">&#40;</span><span style="color: #002200;">&#91;</span>self progress<span style="color: #002200;">&#93;</span> <span style="color: #002200;">*</span> maxWidth<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Create the rectangle for our fill image accounting for the position offsets,</span><br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// 1 in the X direction and 1, 3 on the top and bottom for the Y.</span><br />
&nbsp; &nbsp; CGRect fillRect <span style="color: #002200;">=</span> CGRectMake<span style="color: #002200;">&#40;</span>rect.origin.x <span style="color: #002200;">+</span> kCustomProgressViewFillOffsetX,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rect.origin.y <span style="color: #002200;">+</span> kCustomProgressViewFillOffsetTopY,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;curWidth,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;rect.size.height <span style="color: #002200;">-</span> kCustomProgressViewFillOffsetBottomY<span style="color: #002200;">&#41;</span>;<br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #11740a; font-style: italic;">// Draw the fill</span><br />
&nbsp; &nbsp; <span style="color: #002200;">&#91;</span>fill drawInRect<span style="color: #002200;">:</span>fillRect<span style="color: #002200;">&#93;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #a61390;">@end</span></div></div>
<p>That&#8217;s it! Now you can use this progress view like you would any other <a href="http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html">UIView</a> by calling initWithFrame: and passing a CGRect &#8211; and since the images are stretchable you can make it any size you want.</p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/skinning-a-uiprogressview-with-drawrect-and-images/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>How to protect yourself from Firesheep</title>
		<link>http://goto11.net/how-to-protect-yourself-from-firesheep/</link>
		<comments>http://goto11.net/how-to-protect-yourself-from-firesheep/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 18:13:46 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://goto11.net/?p=270</guid>
		<description><![CDATA[Since the launch of Firesheep, it has never been easier to hijack people&#8217;s Facebook, Google, Flickr and various other web accounts. If you are a Firefox user, and you can click a button, congratulations &#8211; you can be a hacker! To put it simply, the vulnerability that Firesheep is taking advantage of (and trying to [...]]]></description>
			<content:encoded><![CDATA[<p>Since the launch of <a href="http://codebutler.com/firesheep">Firesheep</a>, it has never been easier to hijack people&#8217;s <a href="http://facebook.com" >Facebook</a>, <a href="http://google.com">Google</a>, <a href="http://flickr.com">Flickr</a> and various other web accounts. If you are a Firefox user, and you can click a button, congratulations &#8211; you can be a hacker! To put it simply, the vulnerability that Firesheep is taking advantage of (and trying to make aware) is two things: </p>
<ul>
<li>1. Every request that goes through a Wireless (WiFi) Router is a broadcast (think <a href="http://en.wikipedia.org/wiki/Ethernet_hub">Hubs</a>).</li>
<li>2. Browsers will send the same <a href="http://en.wikipedia.org/wiki/HTTP_cookie">cookies</a> to <strong>http</strong>://example.com as <strong>https</strong>://example.com, unless the cookie is marked as secure only.</li>
</ul>
<p>That means if you are checking your Facebook, or searching Google on a public WiFi network (Starbucks for example), any kid running Firesheep could gain access to your accounts with the click of a mouse. Even if the login page is on https, it doesn&#8217;t matter. The second you send a request to <strong>http</strong>://facebook.com or <strong>http</strong>://google.com your session cookies are blasted to the entire network, and are fair game.<br />
<br />
So now that you know a little more about Firesheep and the risks of surfing on public WiFi, what can you do about it? Use an <a href="http://en.wikipedia.org/wiki/Secure_Shell">SSH</a> tunnel. If you have access to an SSH server, which pretty much all web hosting companies give you, then you can set it up as a proxy and securely tunnel all of your web traffic through it. There are several ways to do this, and several different browser plugins to help. I&#8217;m going to show you one method using a Mac or Linux computer with <a href="http://google.com/chrome">Google Chrome</a> and the <a href="https://chrome.google.com/extensions/detail/caehdcpeofiiigpdhbabniblemipncjj">Switchy!</a> plugin.<br />
<br />
The first step is to set up the &#8220;tunnel&#8221;. This is going to involve a proxy running on your local machine that forwards requests through your SSH server, and since SSH is a secure protocol all of that data will be encrypted. To do this, we need to open a Terminal and issue the following command.</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-ND</span> <span style="color: #000000;">9000</span> user<span style="color: #000000; font-weight: bold;">@</span>my-ssh-server.com <span style="color: #000000; font-weight: bold;">&amp;</span></div></div>
<p>If you don&#8217;t have public-key authentication setup then you will be prompted for your SSH password. Afterwards, there will be a SOCKS proxy available at localhost:9000. Now all you need to do is tell your browser to use it. Luckily there is a great little plugin for Chrome called <a href="https://chrome.google.com/extensions/detail/caehdcpeofiiigpdhbabniblemipncjj">Proxy Switchy</a> which you can download from <a href="https://chrome.google.com/extensions/detail/caehdcpeofiiigpdhbabniblemipncjj">here</a>. Once installed we need to set it up. Click on the Switchy icon in your toolbar and choose &#8220;Options&#8221;. We&#8217;re going to create a new profile; call it &#8220;SSH Tunnel&#8221; and select &#8220;Manual Configuration&#8221;. Where it says SOCKS Host, enter 127.0.0.1. Set the port to 9000 and below that select SOCKS v5. When your done, click &#8220;Save&#8221;.<br />
<img class="blog" src="/assets/images/switchy.png" alt="Switchy! Profile" /><br />
Now when you click on the Switchy icon you should see 2 options. <strong>Direct Connection</strong> (no proxy), and the one we just created <strong>SSH Tunnel</strong>.<br />
<img class="blog" src="/assets/images/switchy-2.png" alt="Switchy! Options" /><br />
That&#8217;s it! Now whenever you&#8217;re on public WiFi just open a SSH Tunnel, select that profile from the Switchy menu and all your web browsing will be encrypted &#8211; and when you&#8217;re on a wired or trusted network you can easily switch back.</p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/how-to-protect-yourself-from-firesheep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OneWay now supports Amazon S3</title>
		<link>http://goto11.net/oneway-now-supports-amazon-s3/</link>
		<comments>http://goto11.net/oneway-now-supports-amazon-s3/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 00:47:46 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[amazon s3]]></category>
		<category><![CDATA[oneway]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://goto11.net/?p=108</guid>
		<description><![CDATA[First I would like to thank everyone who donated to OneWay these past couple weeks. I like to work on this project in the little spare time that I have, and the donations definitely help keep me going! Anyways, over the past few weeks I have been mustering up a fairly large update. I am [...]]]></description>
			<content:encoded><![CDATA[<p>First I would like to thank everyone who donated to <a href="/oneway">OneWay</a> these past couple weeks. I like to work on this project in the little spare time that I have, and the donations definitely help keep me going! Anyways, over the past few weeks I have been mustering up a fairly large update. I am happy to announce that you can now upload to <a href="http://aws.amazon.com/s3/">Amazon S3</a> buckets with <a href="/oneway">OneWay</a> 0.5.4! If you already have OneWay installed, you can get this update launching by the Application and choosing <strong>Check for Updates</strong> under the <strong>OneWay</strong> menu. Creating an S3 bookmark is easy, just hit CMD+N (HotKeys also added in this release!), or choose <strong>Upload to &#8230;</strong> in your Finder menu. You&#8217;ll notice a new Bookmark type in the drop-down:</p>
<p><img class="blog" src="/assets/images/blog/oneway-0.5.4-1.png" alt="OneWay Screenshot" /></p>
<p>You&#8217;ll also notice that I&#8217;ve added some snazzy new icons and cleaned up the UI a bit.  Keep the feedback coming, and enjoy the update!</p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/oneway-now-supports-amazon-s3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OneWay gets an update, SSH public-key authentication</title>
		<link>http://goto11.net/oneway-gets-an-update-ssh-public-key-authentication/</link>
		<comments>http://goto11.net/oneway-gets-an-update-ssh-public-key-authentication/#comments</comments>
		<pubDate>Wed, 19 May 2010 00:06:21 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[oneway]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://goto11.net/?p=95</guid>
		<description><![CDATA[Many of you have been asking if OneWay will ever support SSH public key authentication and the answer is &#8220;yes&#8221;. I am releasing it today as part of the 0.5.3 update. Keep the feature requests and bug reports coming and enjoy the app. If you have a previous version of OneWay installed, you can get [...]]]></description>
			<content:encoded><![CDATA[<p>Many of you have been asking if <a href="/oneway">OneWay</a> will ever support SSH public key authentication and the answer is &#8220;yes&#8221;. I am releasing it today as part of the 0.5.3 update. Keep the feature requests and bug reports coming and enjoy the app.</p>
<p><img class="blog" src="/assets/images/blog/oneway-0.5.3.png" /></p>
<p>If you have a previous version of <a href="/oneway">OneWay</a> installed, you can get this update by clicking <strong>Check for Updates</strong> under the &#8220;OneWay&#8221; menu. If you haven&#8217;t download the application yet, you can do so on the <a href="/oneway">project page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/oneway-gets-an-update-ssh-public-key-authentication/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OneWay 0.5.2 Released &#8211; Thank you, Hacker News</title>
		<link>http://goto11.net/oneway-0-5-2-released/</link>
		<comments>http://goto11.net/oneway-0-5-2-released/#comments</comments>
		<pubDate>Sun, 16 May 2010 20:43:56 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hacker news]]></category>
		<category><![CDATA[oneway]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://goto11.net/?p=81</guid>
		<description><![CDATA[After what I feel was a very successful launch of the OneWay app last week, I just want to thank everyone on Hacker News for all the comments, downloads and support. Also, thanks to everyone who emailed me bug reports and feature requests, I do read these and it is because of you that I [...]]]></description>
			<content:encoded><![CDATA[<p>After what I feel was a very successful launch of the <a href="/oneway">OneWay</a> app last week, I just want to thank everyone on <a href="http://news.ycombinator.com">Hacker News</a> for all the comments, downloads and support. Also, thanks to everyone who emailed me bug reports and feature requests, I do read these and it is because of you that I will keep this project going.</p>
<p>That being said, the most popular feature request I received was the ability to, after uploading a file, <a href="http://github.com/nrj/OneWay/issues/#issue/12">copy its URL to the clipboard</a>. I absolutely agree this would be a great feature, so over the weekend I decided to give it a whirl and I&#8217;m releasing it to you today in version 0.5.2.</p>
<p><strong>How it works</strong></p>
<p>In order to use this feature you&#8217;ll have to <strong>enable it</strong> for each of your bookmarks. Create a new bookmark, or edit an existing one by double-clicking it in your list. Click on the &#8220;More&#8221; arrow below the bookmarks directory and check the box labeled &#8220;Enable URL copying for files uploaded to this directory&#8221;.</p>
<p><img class="blog" src="/assets/images/blog/oneway-0.5.2-1.png" alt="Screen 1" /></p>
<p>Now enter the URL for the bookmark in the text box and you&#8217;re done. Now whenever you upload files to that bookmark you can quickly grab the URL by right-clicking on the upload and selecting the Copy URL to Clipboard.</p>
<p><img class="blog" src="/assets/images/blog/oneway-0.5.2-2.png" alt="Screen 2" /></p>
<p><strong>How to get the Update</strong></p>
<p>If you have <strong>already installed</strong> OneWay, simply launch the application and under the <em>OneWay Menu</em> choose &#8220;Check for Updates&#8221; and you should be prompted to install it. If you have <strong>not</strong> yet installed OneWay you can download the 0.5.2 release on the <a href="/oneway">project page.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/oneway-0-5-2-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing OneWay &#8211; A new kind of (S)FTP client for Mac</title>
		<link>http://goto11.net/introducing-oneway/</link>
		<comments>http://goto11.net/introducing-oneway/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 02:22:58 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[oneway]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[sftp]]></category>

		<guid isPermaLink="false">http://goto11.net/?p=1</guid>
		<description><![CDATA[Welcome to my new portfolio! Content is sparse at the moment, but I&#8217;m guessing the reason you&#8217;re here is to download my awesome new Mac App called OneWay. It has been a great little side project of mine for the past 8 months or so. I haven&#8217;t been able to put nearly as much time [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to <a href="/about">my</a> new portfolio! Content is sparse at the moment, but I&#8217;m guessing the reason you&#8217;re here is to download my awesome new Mac App called <a href="/oneway">OneWay</a>. It has been a great little side project of mine for the past 8 months or so. I haven&#8217;t been able to put nearly as much time into it as I would like, but that is always the case when you have a day job, right?</p>
<p>OneWay is <a href="http://github.com/nrj/oneway">open source</a> and is licensed under the <a href="http://www.gnu.org/licenses/gpl-3.0.txt">GNU GPL</a>. If you have a feature request, or you find any bugs, please enter them into my <a href="http://github.com/nrj/oneway/issues">bug tracker</a>.</p>
<p>Enjoy the app!</p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/introducing-oneway/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to bundle a C library with a Cocoa application</title>
		<link>http://goto11.net/how-to-bundle-a-c-library-with-a-cocoa-application/</link>
		<comments>http://goto11.net/how-to-bundle-a-c-library-with-a-cocoa-application/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 02:07:48 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[tutorials]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[libssh2]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.iheartcocoa.com/?p=15</guid>
		<description><![CDATA[Mac OS X ships with a ton of useful C libraries that a Cocoa developer can take advantage of. However different versions of OS X ship with different libraries and different versions. Normally if you&#8217;re not sure a required library or version will be present on a users machine, you would create an installer to [...]]]></description>
			<content:encoded><![CDATA[<p>Mac OS X ships with a ton of useful C libraries that a Cocoa developer can take advantage of. However different versions of OS X ship with different libraries and different versions. Normally if you&#8217;re not sure a required library or version will be present on a users machine, you would create an installer to check for it, and then install it if needed. But one of the great things about developing for the Mac is that you can easily include a dependency, such as a dynamic C library, within the application&#8217;s <em>bundle</em>. For this howto, we are going to build a Cocoa application that uses the C library <a href="http://www.libssh2.org">libssh2</a>. This library does not ship with OS X, but that&#8217;s no problem at all. I&#8217;m going to show you how to bundle it with your application so it will run on any users machine.<br />
<br />
First thing, let&#8217;s create a new Xcode project and call it MySSH. Then create a new Objective-C class and call it TestController.</p>
<p><img class="blog" src="/assets/images/blog/MySSH-1.png" alt="Image 1" /></p>
<p>Next we need to install <a href="http://www.libssh2.org">libssh2</a>. You can do this a couple different ways. The easiest is by grabbing the latest source from <a href="http://www.libssh2.org/snapshots/">here</a> and building it yourself. You could also use a package manager like <a href="http://finkproject.org">Fink</a>, or <a href="http://macports.org">MacPorts</a>. Once installed, we need to locate the dynamic library file called <em>libssh2.1.dylib</em>. I installed from source, so my .dylib file is located in &#8216;/usr/local/lib&#8217;. If you installed with <a href="http://www.macports.org">MacPorts</a> it would be in &#8216;/opt/local/lib&#8217;, and <a href="http://finkproject.org">Fink</a> installs it somewhere under the &#8216;/sw&#8217; directory. Once you find yours we need to drag it into our project and drop it in the &#8220;Linked Frameworks&#8221; directory.</p>
<p><img class="blog" src="/assets/images/blog/MySSH-2.png" alt="Image 2" /></p>
<p>Xcode will prompt you to add the file to your project. Be sure to check the box at that top that says to &#8220;Copy items into destination group&#8217;s folder&#8221; and click &#8220;Add&#8221;.</p>
<p><img class="blog" src="/assets/images/blog/MySSH-3.png" alt="Image 3" /></p>
<p>Next we have to create a new build phase to copy the library file into our application bundle. In Xcode, in the left column under Targets, control-click on the MySSH target and choose &#8216;Add&#8217; → &#8216;New Build Phase&#8217; → &#8216;New Copy Files Build Phase&#8217;. In the popup window select &#8216;Frameworks&#8217; as the destination and then close it.</p>
<p><img class="blog" src="/assets/images/blog/MySSH-5.png" alt="Image 5" /></p>
<p>Now let&#8217;s rename our new build phase from &#8216;Copy Files&#8217; to &#8216;Copy Frameworks&#8217; so it&#8217;s more clear. Next, while holding down the option key, click and drag the <em>libssh2.1.dylib</em> file from the &#8216;Linked Frameworks&#8217; group into our new build phase.</p>
<p><img class="blog" src="/assets/images/blog/MySSH-6.png" alt="Image 6" /></p>
<p>What this does now is every time we build the MySSH target it will copy the <em>libssh2.1.dylib</em> from our project into the &#8216;Frameworks&#8217; directory inside our MySSH.app bundle.<br />
<br />
For the next step we need to open up our Terminal, `cd` into our projects directory where the <em>libssh2.1.dylib</em> file is and run the following command:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">otool <span style="color: #660033;">-L</span> libssh2.1.dylib</div></div>
<p>Linux users will probably recognize this as the `ldd` command. It will display the install name of libssh2 on the top line, followed by the locations of any other libraries it depends on.</p>
<p><img class="blog" src="/assets/images/blog/MySSH-7.png" alt="Image 7" /></p>
<p>The install name for my libssh2 is &#8216;/usr/local/lib/libssh2.1.dylib&#8217; though yours may differ depending on how you installed it. No matter, since we can&#8217;t rely on a user having libssh2 installed in any particular place (or at all) we need to change that path to point to our own <em>libssh2.1.dylib</em> that is in the   MySSH.app bundle. For this we use the <a href="http://developer.apple.com/mac/library/DOCUMENTATION/Darwin/Reference/ManPages/man1/install_name_tool.1.html">install_name_tool</a>. Go back to your terminal and from the same directory run the following:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; install_name_tool <span style="color: #660033;">-id</span> \<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">@</span>executable_path<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>Frameworks<span style="color: #000000; font-weight: bold;">/</span>libssh2.1.dylib \<br />
&nbsp; &nbsp; libssh2.1.dylib</div></div>
<p>This changes the install_name of our library to a relative path. The &#8216;@executable_path&#8217; variable represents the path to our application&#8217;s binary, and one directory up, in &#8216;Frameworks&#8217;, is where our new build phase copies our library file. If you did this correctly, when you run `otool -L libssh2.1.dylib` again you should see our new relative path on the top line.</p>
<p><img class="blog" src="/assets/images/blog/MySSH-8.png" alt="Image 8" /></p>
<p>Now as I mentioned earlier, the other paths below the install name are all the libraries that libssh2 requires. When bundling your application with a library you must guarantee that all its dependencies exist on the users machine at the path listed. For simplicity I&#8217;ve chosen a libssh2 because the libraries that it depends on (libssl, libcrypto, etc.) are all standard on Mac OS X, and are all located in &#8216;/usr/lib&#8217;.<br />
<br />
* <em>Note: If you installed libssh2 with <a href="http://macports.org">MacPorts</a>, pay close attention to the paths listed here. Sometimes when using Macports it will not link against the standard libraries in &#8216;/usr/lib&#8217; but instead the ones in &#8216;/opt/local/lib&#8217;. If your libssh2 is referencing any libraries in &#8216;/opt/local/lib&#8217; you will need to change each one using the following command:</em></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; install_name_tool <span style="color: #660033;">-change</span> \<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$FILE</span> \<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$FILE</span> libssh2.1.dylib</div></div>
<p>Once your terminal output looks like mine above, we can now start using libssh2 in our application. Let&#8217;s go back to Xcode, open our TestController.m and enter the following.</p>
<div class="codecolorer-container objc default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="objc codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6e371a;">#import &quot;TestController.h&quot;</span><br />
<span style="color: #6e371a;">#include &lt;libssh2/libssh2.h&gt;</span><br />
<br />
<span style="color: #a61390;">@implementation</span> TestController<br />
<br />
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>awakeFromNib<br />
<span style="color: #002200;">&#123;</span><br />
&nbsp; &nbsp; <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> <span style="color: #002200;">*</span>version <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/"><span style="color: #400080;">NSString</span></a> stringWithCString<span style="color: #002200;">:</span>libssh2_version<span style="color: #002200;">&#40;</span><span style="color: #2400d9;">0</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>;<br />
&nbsp; &nbsp; NSLog<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;We are using libssh2 version: %@&quot;</span>, version<span style="color: #002200;">&#41;</span>;<br />
<span style="color: #002200;">&#125;</span><br />
<br />
<span style="color: #a61390;">@end</span></div></div>
<p>Build and run your application, and you should see the libssh2 version number logged to your console. Now it may seem like we are done at this point but there is still one more step. Remember how our libssh2 was referencing other libraries on our system? Well our MySSH application is no different. Let&#8217;s go back to our Terminal and take a look. From our projects directory enter the following:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #7a0874; font-weight: bold;">cd</span> build<span style="color: #000000; font-weight: bold;">/</span>Debug<span style="color: #000000; font-weight: bold;">/</span>MySSH.app<span style="color: #000000; font-weight: bold;">/</span>Contents<span style="color: #000000; font-weight: bold;">/</span>MacOS<br />
&nbsp; &nbsp; otool <span style="color: #660033;">-L</span> MySSH</div></div>
<p>Can you spot the problem?</p>
<p><img class="blog" src="/assets/images/blog/MySSH-9.png" alt="Image 9" /></p>
<p>The compiled binary is referencing libssh2 from our install path. To fix this we need to add another build phase to run after we compile. Back in Xcode, in the left column under Targets, control-click on the MySSH target and choose &#8216;Add&#8217; → &#8216;New Build Phase&#8217; → &#8216;New Run Script Build Phase&#8217;. In the popup window add the following code:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #007800;">ABS_PATH</span>=<span style="color: #ff0000;">&quot;/usr/local/lib/libssh2.1.dylib&quot;</span><br />
&nbsp; &nbsp; <span style="color: #007800;">REL_PATH</span>=<span style="color: #ff0000;">&quot;@executable_path/../Frameworks/libssh2.1.dylib&quot;</span><br />
<br />
&nbsp; &nbsp; install_name_tool <span style="color: #660033;">-change</span> <span style="color: #007800;">$ABS_PATH</span> <span style="color: #007800;">$REL_PATH</span> <span style="color: #007800;">$TARGET_BUILD_DIR</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$EXECUTABLE_PATH</span></div></div>
<p>&#8230;keeping in mind that your ABS_PATH might be different than mine &#8211; it is going to be the path that you have listed for libssh2 in the Terminal output above.</p>
<p><img class="blog" src="/assets/images/blog/MySSH-10.png" alt="Image 10" /></p>
<p>Now everytime we build our application, this build phase will change the path your executable looks for libssh2, to the one inside the MySSH.app bundle. That&#8217;s it! Now you can give your application to anyone without them needing to install this library. The application will run completely self contained &#8211; and if the user should decide to remove your application they can simply delete the .app file and the library will be removed along with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/how-to-bundle-a-c-library-with-a-cocoa-application/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>You&#8217;ve got 30 minutes&#8230; to write a Python script</title>
		<link>http://goto11.net/youve-got-30-minutes-to-write-a-python-script/</link>
		<comments>http://goto11.net/youve-got-30-minutes-to-write-a-python-script/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 18:31:45 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[dominos]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://noflashlight.com/?p=3</guid>
		<description><![CDATA[I bet you wished that you had a sweet script that could tell you the status of your dominos pizza order in real time. Well today is your lucky day. dominos.py (right-click and save) Instructions: First download dominos.py. You can right-click the link and select save, or use wget: me@localhost:~ $ wget http://goto11.net/scripts/dominos.py me@localhost:~ $ [...]]]></description>
			<content:encoded><![CDATA[<p>I bet you wished that you had a sweet <a title="dominos.py" href="http://goto11.net/scripts/dominos.py" target="_self">script</a>  that could tell you the status of your dominos pizza order <em>in real time</em>. Well today is your lucky day.</p>
<p><a class="larger" title="dominos.py" href="http://goto11.net/scripts/dominos.py" target="_self">dominos.py</a> (right-click and save)<br />
<img class="blog" title="dominos_py_screen" src="http://goto11.net/assets/images/blog/dominos_py_screen.jpg" alt="screenshot" width="669" height="202" /></p>
<p>Instructions:</p>
<p>First download <a href="http://goto11.net/scripts/dominos.py">dominos.py</a>. You can right-click the link and select save, or use wget:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">me<span style="color: #000000; font-weight: bold;">@</span>localhost:~ $ <span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>goto11.net<span style="color: #000000; font-weight: bold;">/</span>scripts<span style="color: #000000; font-weight: bold;">/</span>dominos.py<br />
me<span style="color: #000000; font-weight: bold;">@</span>localhost:~ $ <span style="color: #c20cb9; font-weight: bold;">chmod</span> +x dominos.py</div></div>
<p>That&#8217;s it. Now all you have to do is <strong>order a pizza</strong>, and then execute this script from the command line like this:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:600px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">me<span style="color: #000000; font-weight: bold;">@</span>localhost:~ $ .<span style="color: #000000; font-weight: bold;">/</span>dominos.py <span style="color: #ff0000;">'your phone number'</span></div></div>
<p>Be sure to keep running the script periodically for the real time status of:</p>
<ul>
<li>When the pizza is being made.</li>
<li>When the pizza is in the oven.</li>
<li>When the pizza is cooked and waiting.</li>
<li>When the pizza is on its way.</li>
<li>When the pizza was delivered.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://goto11.net/youve-got-30-minutes-to-write-a-python-script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

