<?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>Buzzword Compliant &#187; How To</title>
	<atom:link href="http://www.buzzwordcompliant.net/category/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.buzzwordcompliant.net</link>
	<description></description>
	<lastBuildDate>Tue, 10 May 2011 19:53:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Apple App Approval Tips Nobody Told Me About</title>
		<link>http://www.buzzwordcompliant.net/2011/05/10/apple-app-approval-tips-nobody-told-me-about/</link>
		<comments>http://www.buzzwordcompliant.net/2011/05/10/apple-app-approval-tips-nobody-told-me-about/#comments</comments>
		<pubDate>Tue, 10 May 2011 19:53:11 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Strategy]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/?p=342</guid>
		<description><![CDATA[Ever since Apple published their (remarkably readable) App Review Guidelines the number of &#8216;Oh My God. My App Got Rejected!&#8217; stories I&#8217;ve seen on a weekly basis from iOS developers has fallen dramatically. Along with this, I&#8217;ve seen a shift in applications being rejected on technical grounds to applications being rejected on the basis of real or perceived Terms of [...]]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td>
<img src="http://www.buzzwordcompliant.net/images/AppStoreReviewGuidelines.jpg">
</td>
<td>
Ever since Apple published their (remarkably readable) <a href="https://developer.apple.com/appstore/resources/approval/guidelines.html">App Review Guidelines</a> the number of &#8216;Oh My God. My App Got Rejected!&#8217; stories I&#8217;ve seen on a weekly basis from iOS developers has fallen dramatically.
<p/>
<p>Along with this, I&#8217;ve seen a shift in applications being rejected on technical grounds to applications being rejected on the basis of real or perceived Terms of Use violations or other quasi legal grounds.
<p/>
</td>
</tr>
</table>
<p>This includes rejections for:</p>
<ul>
<li>&#8220;Scraping&#8221; Content from 3rd party sites</li>
<li>Non official use of a 3rd party API</li>
<li>Concerns over handling of user data</li>
</ul>
<p>Now, while there is no checkbox for &#8216;I cross my heart and hope I&#8217;m not violating any treaties of the land&#8217; during the app submission process there is a &#8216;Review Notes&#8217; section where you can list any steps you&#8217;ve taken to remaining on the right side of the law.
<p/>
<p>For my apps, I&#8217;ve started including all of the following information (when relevant):</p>
<ol>
<li>APIs used, along with links to API terms of service, and just a statement such as: &#8220;This application conforms to the rules and regulations for API usage at NAME OF SERVICE.&#8221;</li>
<li>Links to naming and or branding guidelines for API usage. For instance, Netflix requires that applications using their API have names in the form of &#8220;X for Netflix&#8221; not &#8220;Netflix X&#8221;. </li>
<li>Name and email contact if there are questions / concerns about usage. In particular, I&#8217;ve been involved in some projects where the application we were producing was the &#8216;Official&#8217; application, but it was being published under our company name in association with another provider. So, I included the contact information for the marketing manager at the &#8216;official&#8217; company.</li>
<li>If images, icon sets, etc. are included in the application that may have been used in other applications, I&#8217;ll put a quick note regarding where and how they were licensed.</li>
<li>If the application interacts with an external site that the reviewer may not be familiar with I would include a summary of that site, including things that you might consider obvious.
<p/>An example: I&#8217;ve heard of a couple different applications for interacting with <a href='http://news.ycombinator.com'>Hacker News</a> being rejected for various versions of: &#8220;This seems like it might be shady.&#8221; </p>
<p>If I was submitting such an application, I would definitely put in the review notes a quick paragraph along the lines of: &#8220;Despite the name &#8216;Hacker News&#8217; is not actually about breaking into computers of violating encryption policies, but is a social news site for people interested in startups, programming and interesting technical feats.&#8221;</li>
<li>Lastly, the app store reviewers are poring over hundreds if not thousands of applications a week. It costs you nothing to be polite and human towards them.
<p/>As a reviewer which review notes opening would put you in a more positive frame of mind about an application:</p>
<div style='padding: 16px; background: #efefef'>
Thanks for reviewing my application, to get started here&#8217;s a username and password for you to login and use:
<p/>
<div>username: appletester</div>
<div>password: 1happypuppy</div>
</div>
<p>or </p>
<div style='padding: 16px; background: #efefef'>
username: apple<br/><br />
password: password<br/>
</div>
<p>C&#8217;mon, who doesn&#8217;t like a happy puppy. </p>
</li>
</ol>
<p>Lastly, here is the (lightly redacted) text of the Review Notes section for <a href='http://www.flickscanapp.com'>Flickscan &#8211; Barcode Scanning for Netflix</a>, which was approved first try. </p>
<div style='padding: 16px; background: #efefef'>
This application uses the official Netflix API and complies with the rules and regulations they set out for naming and API utilization. </p>
<p>Please use the following account to Login to Netflix: </p>
<p>email: notarealemail@gmail.com<br />
password: 1happypuppy</p>
<p>If you need DVD barcodes to test with, I&#8217;ve placed some up at: </p>
<p>http://www.buzzwordcompliant.net/flickscan-barcode-tests/</p>
<p>Using the camera to scan images off of the screen can be problematic in certain lighting conditions. It may be necessary to print the barcodes (sorry). For my testing, I scanned over a 1000 physical DVD barcodes and had good success. </p>
<p>Thanks! </p>
<p>Mike Buckbee</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2011/05/10/apple-app-approval-tips-nobody-told-me-about/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Launching: Boingable</title>
		<link>http://www.buzzwordcompliant.net/2011/01/31/launching-boingable/</link>
		<comments>http://www.buzzwordcompliant.net/2011/01/31/launching-boingable/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 07:37:08 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/?p=331</guid>
		<description><![CDATA[On Friday I came across this post asking for people to try and do interesting things with the recently published 11 year data dump of BoingBoing blog posts. For a long time I&#8217;ve been itching to try and use the ruby classifier gem for something cool and I figured that this was my chance. I decided to create a quick [...]]]></description>
			<content:encoded><![CDATA[<p>On Friday I came across <a href="http://www.boingboing.net/2011/01/28/update-on-the-boing.html">this post</a> asking for people to try and do interesting things with the recently published 11 year data dump of BoingBoing blog posts. </p>
<p>For a long time I&#8217;ve been itching to try and use the <a href="http://classifier.rubyforge.org/">ruby classifier gem</a> for something cool and I figured that this was my chance. I decided to create a quick one off website that would let people enter a post title and see if it matched (lexically) the types of things that were previously featured on BoingBoing.</p>
<p>The downloaded JSON representation of the data is 138.4 MB uncompressed. I&#8217;d originally considered trying to use the body text of each post as additional fodder for the comparisons, but as I didn&#8217;t have a lot of time to work on this settled for just the post titles. </p>
<p>To extract the titles from the JSON file I used the following script (which could be easily adapted by anyone wanting to pull other datapoints). </p>
<p><script src="https://gist.github.com/803729.js?file=boingboing_title_exporter.rb"></script></p>
<p>Now, I had a bit of a dilema. I had been planning on using the classifier gem to do a <a href="http://en.wikipedia.org/wiki/Naive_Bayes_classifier">Naive Bayesian classification</a> of the data, but the Bayes classification relies upon training data for each outcome that you want. I had data that could be used to train the classifier on what a BoingBoing post should look like, but the data dump didn&#8217;t include the surely hundreds of thousands of submissions that they received that were completely worthless. </p>
<p>I needed a source of post titles that would closely match the types of submissions that BoingBoing receives and settled on scraping <a href="http://reddit.com/new">Reddit/New</a> for them. They are a similar type of submission and as they mostly haven&#8217;t been voted on they&#8217;re objectively pretty low quality; just the type of thing to be rejected by discriminating BoingBoing editors. </p>
<p>Reddit has a well documented API that&#8217;s kinda sorta RESTlike, an example: querying <a href="http://www.reddit.com/new/.json">http://www.reddit.com/new/.json</a> returns JSON (as you would expect). However, querying <a href="http://www.reddit.com/new/.xml">http://www.reddit.com/new/.xml</a> returns a <emphasis>DIFFERENT</emphasis> representation of the data (it&#8217;s an RSS Feed instead of a custom XML format). </p>
<p>I actually ended up being rather thankful for the RSS format as sorting out the JSON data (which was nested somewhat oddly within itself IMO) was becoming a real chore. So XML + Nokogiri to the rescue and I came up with this script to get a second &#8220;bad&#8221; set of training data.</p>
<p><script src="https://gist.github.com/803737.js?file=reddit_post_scraper.rb"></script></p>
<p>With both sets of data I could now run the classifier, training it what were BoingBoing style posts and what weren&#8217;t.</p>
<p><script src="https://gist.github.com/803741.js?file=boingboing_classifier.rb"></script></p>
<p>Of note is the use of the <a href="http://madeleine.rubyforge.org/">Madeleine gem</a> which persists the training results (otherwise you would have to re-run the training every request to do a classification). I was somewhat shocked how well this worked: I ended up checking the serialized classifier into source control and just using it directly in production &#8211; no need to retrain!. </p>
<p>The above script was then modified into two methods with a &#8220;Classy&#8221;, non ActiveRecord backed model within the Rails application.</p>
<p>The final project is up at: <a href="http://www.boingable.com">http://www.boingable.com</a> if you want to check it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2011/01/31/launching-boingable/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How To: Install a Custom Site Style Sheet in Chrome</title>
		<link>http://www.buzzwordcompliant.net/2011/01/14/how-to-install-a-custom-site-style-sheet-in-chrome/</link>
		<comments>http://www.buzzwordcompliant.net/2011/01/14/how-to-install-a-custom-site-style-sheet-in-chrome/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 02:15:24 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/?p=324</guid>
		<description><![CDATA[Over on Hacker News, user godDLL created a really nice custom style sheet for the site. Called Comfy-Helvetica, the stylesheet makes the Hacker News site look a little cleaner and more readable (at least to me) &#8211; comparison screenshot below: godDLL published the user stylesheet as for Safari, but I&#8217;ve since moved onto Chrome and hadn&#8217;t previously had the desire [...]]]></description>
			<content:encoded><![CDATA[<p>Over on <a href="http://news.ycombinator.com">Hacker News</a>, user <a href="http://news.ycombinator.com/user?id=godDll">godDLL</a> created a really nice custom style sheet for the site. </p>
<p>Called <a href="https://comfy-helvetica.jottit.com/aftermath">Comfy-Helvetica</a>, the stylesheet makes the Hacker News site look a little cleaner and more readable (at least to me) &#8211; comparison screenshot below:
<p><a href="http://www.buzzwordcompliant.net/images/comfy-helvetica.jpg"><img alt="" src="http://www.buzzwordcompliant.net/images/comfy-helvetica.jpg" title="Before + After" class="aligncenter" width="500" height="380" /></a></p>
<p/>
<p>godDLL published the user stylesheet as for Safari, but I&#8217;ve since moved onto Chrome and hadn&#8217;t previously had the desire to use a custom per-site user stylesheet, so I wasn&#8217;t quite sure how.</p>
<p>Here are the steps if anyone else needs them:</p>
<ol>
<li>Install the Chrome Extension <a href="https://chrome.google.com/extensions/detail/fjnbnpbmkenffdnngjfgmeleoegfcffe">Stylish</a></li>
<li>From within the Chrome Menu&#8217;s click Window > Extensions</li>
<li>Click &#8216;Options&#8217; within the Stylish extension listing</li>
<li>Click &#8216;Add New Style&#8217;</li>
<li>Enter &#8216;ComfyHelvetica&#8217; in the name field and check &#8216;Enabled&#8217;</li>
<li>In the &#8216;Code&#8217; block copy and paste the stylesheet from <a href="https://comfy-helvetica.jottit.com/user-css">https://comfy-helvetica.jottit.com/user-css</a></li>
<li>Click the &#8216;Specify&#8217; button and switch the drop down to &#8216;URLs on the domain&#8217; and enter &#8216;news.ycombinator.com&#8217;</li>
<li>Click &#8216;Save&#8217; and Enjoy</li>
</ol>
<p>Your finished config should look like:</p>
<p><img src="http://www.buzzwordcompliant.net/images/stylish-helvetica.jpg" style="border: 2px dashed #ccc"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2011/01/14/how-to-install-a-custom-site-style-sheet-in-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Configure WordPress and Rails within the same Nginx Virtual Server</title>
		<link>http://www.buzzwordcompliant.net/2011/01/04/how-to-configure-wordpress-and-rails-within-the-same-nginx-virtual-server/</link>
		<comments>http://www.buzzwordcompliant.net/2011/01/04/how-to-configure-wordpress-and-rails-within-the-same-nginx-virtual-server/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 10:45:55 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/?p=297</guid>
		<description><![CDATA[For a soon to be announced project I needed to setup a main website/cms with WordPress and then within that same domain also setup a Rails application. This is trickier than it sounds as WordPress on Nginx has some very specific setup requirements in order for pretty URLs to work. There were also lots of tutorials online about how to [...]]]></description>
			<content:encoded><![CDATA[<p>For a soon to be announced project I needed to setup a main website/cms with WordPress and then within that same domain also setup a Rails application. </p>
<p>This is trickier than it sounds as WordPress on Nginx has some very specific setup requirements in order for pretty URLs to work. There were also lots of tutorials online about how to setup WordPress+Nginx and how to setup Rails+Nginx, but nothing with both so I figured I would document it here in the case that it helps someone else.</p>
<p><strong>1. PREREQUISITES</strong></p>
<p>To keep yourself from going crazy, before attempting this, make sure that you have the following installed and working:</p>
<ul>
<li>Nginx + Phusion Passenger</li>
<li>WordPress + FastCGI</li>
<li>Your Rails app working in isolation</li>
</ul>
<p><strong>2. SETUP DIRECTORIES</strong></p>
<p>Lets assume that you have two separate site structures setup parallel to each other. </p>
<p><code>/var/www/wordpress # <--- contains php wordpress site<br />
/var/www/railsapp # <--- contains Ruby on Rails application<br />
</code></p>
<p><strong>3. CREATE SYMLINK</strong></p>
<p>Create a symlink from the WordPress site to the Rails application public directory. It is <emphasis>very important</emphasis> that the symlink points to the "/public" subdirectory of the Rails application.</p>
<p><code>ln -s  /var/www/wordpress/rails /var/www/railsapp/public<br />
</code></p>
<p><strong>4: ADD RAILS DIRECTIVES</strong></p>
<p>We need to tell Nginx to handle our Rails application separate from the PHP+WordPress setup, so it need its own location block. Nginx will check for requests coming in that start with "/rails" and apply the enclosed rules to them. </p>
<p><code><br />
		location /rails {<br />
			passenger_enabled on;<br />
	                passenger_base_uri /rails; # This is referencing the symlink we setup in Step One.<br />
		}<br />
</code></p>
<p><strong>5. PUTTING IT ALL TOGETHER</strong></p>
<p>Below is the entirely of the virtual server declaration for our combined WordPress and Rails site. This would be placed within the http{} section of your nginx.conf. </p>
<p>You may notice two additional passenger+rails directives: <strong>passenger_min_instances</strong> and <strong>passenger_pre_start</strong>, these aren't essential for anything to work, but in concert help the Rails application to quickly respond when the server first starts or after an idle timeout. </p>
<p><script src="https://gist.github.com/764607.js"> </script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2011/01/04/how-to-configure-wordpress-and-rails-within-the-same-nginx-virtual-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Add a Secret Print Only QR Code to your Blog Posts</title>
		<link>http://www.buzzwordcompliant.net/2010/12/19/how-to-add-a-secret-print-only-qr-code-to-your-blog-posts/</link>
		<comments>http://www.buzzwordcompliant.net/2010/12/19/how-to-add-a-secret-print-only-qr-code-to-your-blog-posts/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 19:43:20 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/?p=277</guid>
		<description><![CDATA[I&#8217;ve long been fascinated by QR Codes. I originally wrote about some of their less conventional uses back in 2007 and I was part of the team that put QR Codes on every badge at SXSW 2010. If you&#8217;re not familiar with them, they&#8217;re a type of square barcode that&#8217;s most often used to hold a URL. You scan the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve long been fascinated by <a href="http://en.wikipedia.org/wiki/QR_Code">QR Codes</a>. I originally wrote about some of their <a href="http://www.buzzwordcompliant.net/2007/05/15/databar-not-actually-for-sql-happy-hour/">less conventional uses</a> back in 2007 and I was part of the team that put QR Codes on every badge at SXSW 2010. </p>
<p>If you&#8217;re not familiar with them, they&#8217;re a type of square barcode that&#8217;s most often used to hold a URL. You scan the QR Code with your mobile phone and Boom! you&#8217;re on a webpage, no hunt and pecking a tiny keyboard required. Which is mostly why I&#8217;m so annoyed at seeing them slapped haphazardly on people&#8217;s blogs. </p>
<p>Putting a QR Code on your website is like writing &#8220;You are here.&#8221; on a Post It note and then sticking it to your eyelid. It&#8217;s an accurate if decidedly unhelpful gesture.</p>
<p>However, having a QR Code on a printed page is great because you can always easily get back to the original document (to see if there are new comments, check out what else someone wrote, etc.).</p>
<p>Here&#8217;s how to accomplish showing a QR Code only on a printed webpage using Google&#8217;s Chart API and some print stylesheet declarations:</p>
<p><script src="https://gist.github.com/747627.js?file=QRCoding.html"></script></p>
<p>There are two separate CSS declaration blocks: one for &#8220;screen&#8221; and one for &#8220;print&#8221;. In the screen declaration we&#8217;re hiding the div containing the QR Code, and on the print we&#8217;re displaying it (and hiding a bunch of other items that don&#8217;t make sense on a printed page).</p>
<p>After that, place the code that actually puts the QR Code in the footer (or wherever you want), making sure that the container div&#8217;s id matches that used in the CSS. </p>
<p>The QR Code is created by passing the URL of the current page to the <a href="http://code.google.com/apis/chart/docs/gallery/qr_codes.html">Google Charts API</a>. Because this example is for a WordPress blog, we used the &#8220;the_permalink();&#8221; function to get the current page&#8217;s URL. </p>
<p>If you&#8217;re reading this online you shouldn&#8217;t see a QR Code anywhere, but printed you should find one at the bottom of the page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2010/12/19/how-to-add-a-secret-print-only-qr-code-to-your-blog-posts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To: Deep Search a Twitter User&#8217;s Timeline</title>
		<link>http://www.buzzwordcompliant.net/2010/12/11/how-to-deep-search-a-twitter-users-timeline/</link>
		<comments>http://www.buzzwordcompliant.net/2010/12/11/how-to-deep-search-a-twitter-users-timeline/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 21:43:29 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/?p=265</guid>
		<description><![CDATA[In my last post I recreated a series of Twitter posts between myself and Jeff Atwood about what one of the StackOverflow badges was named. Doing so was tougher than it may have appeared due to the conversation taking place last June (7 months ago). Twitter&#8217;s built-in search features: http://search.twitter.com only goes back a couple weeks. Google&#8217;s search results return [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.buzzwordcompliant.net/2010/12/09/stackoverflows-tenacious-badge-is-named-after-me/">last post</a> I recreated a series of Twitter posts between myself and Jeff Atwood about what one of the <a href="http://www.stackoverflow.com">StackOverflow</a> badges was named. </p>
<p>Doing so was tougher than it may have appeared due to the conversation taking place last June (7 months ago). Twitter&#8217;s built-in search features: <a href="http://search.twitter.com">http://search.twitter.com</a> only goes back a couple weeks. Google&#8217;s search results return some better hits, but pretty fragmented. </p>
<p>So, lacking other options, I whipped up the following ruby script that &#8220;deep searches&#8221; a particular Twitter user&#8217;s past messages looking for a single string.</p>
<p><script src="https://gist.github.com/737620.js"> </script></p>
<p>The script takes advantage of the Twitter&#8217;s API: the magic really happens on line 12 of the above Gist: where the API URL</p>
<p><code></p>
<p>http://api.twitter.com/1/statuses/user_timeline.json?page=#{i}&#038;screen_name=#{screen_name}</p>
<p></code></p>
<p>is called. In this case, I chose to have the response returned as JSON, but because Twitter follows <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> conventions getting XML back instead would have been as easy as changing &#8220;user_timeline.json&#8221; to &#8220;usertimline.xml&#8221; in the URL. </p>
<p>A couple things to note about this script:</p>
<p>One, while it uses the Twitter API, it doesn&#8217;t rely upon you actually being authenticated to it, the calls to &#8220;/statuses/user_timeline&#8221; are free in the sense that they don&#8217;t count against your Twitter action quota. That being said, Twitter will get annoyed with you and block your IP (automatically) if you cross some magic rate limit. To be respectful of their resources, I have the script sleep between calls for 3 seconds. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2010/12/11/how-to-deep-search-a-twitter-users-timeline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running an OpenSource Project &#8211; Sean Cribbs</title>
		<link>http://www.buzzwordcompliant.net/2008/10/24/running-an-opensource-project-sean-cribbs/</link>
		<comments>http://www.buzzwordcompliant.net/2008/10/24/running-an-opensource-project-sean-cribbs/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 20:01:03 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Startups]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/2008/10/24/running-an-opensource-project-sean-cribbs/</guid>
		<description><![CDATA[Sean Cribbs led a very wide ranging talk on how to manage and contribue to an open source project at last weeks Raleigh Ruby Camp. Some things really stuck out to me: 1. The move to Github quieted the number of people who thought they were heavy handed as they could just fork whenever they wanted. 2. Plugins as a [...]]]></description>
			<content:encoded><![CDATA[<p><center><br />
<img src="http://farm4.static.flickr.com/3220/2970070212_ce2a820492.jpg?v=0" /></p>
<p></center></p>
<p><a href="http://seancribbs.com/">Sean Cribbs</a> led a very wide ranging talk on how to manage and contribue to an open source project at last weeks <a href="http://barcamp.pbwiki.com/RaleighRubyCamp">Raleigh Ruby Camp</a>.</p>
<p>Some things really stuck out to me:</p>
<p>1. The move to Github quieted the number of people who thought they were heavy handed as they could just fork whenever they wanted. </p>
<p>2. Plugins as a way to involve people in the project without changing the core. </p>
<p>3. Day job is supporting hacking</p>
<p>4. Building a service business around an open source application seems like a natural type of business.</p>
<p>Links:</p>
<ul>
<li><a href="http://radiantcms.org/">Radiant CMS</a></li>
<li><a href="http://www.wordpress.org">WordPress.org</a></li>
<li><a href="http://www.github.com">Github</a></li>
<li><a href="http://www.codehaus.com">CodeHaus</a></li>
<li><a href="http://upstart.ubuntu.com/">Upstart</a></li>
<li><a href="http://osdir.com/ml/cms.radiant.general/2006-06/msg00227.html">Radiant on Crack</a></li>
<li><a href="http://whytheluckystiff.net/ruby/redcloth/">Redcloth</a></li>
<li><a href="http://www.deveiate.org/projects/BlueCloth">Bluecloth</a></li>
<li><a href="http://github.com/rtomayko/rdiscount/tree/master">Rdiscount</a></li>
</ul>
<p>[audio:http://buzzwordcompliant.s3.amazonaws.com/sean-cribbs.mp3]</p>
<p><a href="http://buzzwordcompliant.s3.amazonaws.com/sean-cribbs.mp3">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2008/10/24/running-an-opensource-project-sean-cribbs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://buzzwordcompliant.s3.amazonaws.com/sean-cribbs.mp3" length="16769485" type="audio/mpg" />
		</item>
		<item>
		<title>How 37 Signals Deploys Their Software</title>
		<link>http://www.buzzwordcompliant.net/2008/10/22/how-37-signals-deploys-their-software/</link>
		<comments>http://www.buzzwordcompliant.net/2008/10/22/how-37-signals-deploys-their-software/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 18:09:57 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[System Administration]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/2008/10/22/how-37-signals-deploys-their-software/</guid>
		<description><![CDATA[I had a great time last Saturday at Raleigh Ruby Camp and met a host of Ruby on Rails developers working on interesting things. One of the discussions that occurred was lead by Mark Imbracio of 37 Signals. I&#8217;ve posted the audio below and have linked to some of the topics that came up in the discussion. The audio quality [...]]]></description>
			<content:encoded><![CDATA[<p><center><br />
<a href="http://twitter.com/markimbriaco"><img src="http://farm4.static.flickr.com/3174/2964923786_8f62e9f843.jpg?v=0" border="0" /></a><br />
</center></p>
<p/>
<p>I had a great time last Saturday at <a href="http://barcamp.pbwiki.com/RaleighRubyCamp">Raleigh Ruby Camp</a> and met a host of Ruby on Rails developers working on interesting things. </p>
<p>One of the discussions that occurred was lead by <a href="http://twitter.com/markimbriaco">Mark Imbracio</a> of 37 Signals. I&#8217;ve posted the audio below and have linked to some of the topics that came up in the discussion. The audio quality and production isn&#8217;t great (you may need to really turn your volume up), but I got quite a bit out of the discussion and you might as well. </p>
<p>Links</p>
<ul>
<li><a href="http://www.capify.org/">Capistrano</a></li>
<li><a href="http://aws.amazon.com/">Amazon Web Services</a></li>
<li><a href="http://www.redhat.com/magazine/009jul05/features/lvm2/">Logical Volume Manager</a></li>
<li><a href="http://www.centos.org">CentOS</a></li>
<li><a href="http://www.xen.org/">Xen</a></li>
<li><a href="http://haproxy.1wt.eu/">HA Proxy</a></li>
<li><a href="http://reductivelabs.com/trac/puppet">Puppet</a></li>
<li><a href="http://adam.blogs.bitscribe.net/2007/05/06/howto-custom-mongrel-handlers/">HowTo: Custom Mongrel Handlers</a>
</ul>
<p>[audio:http://buzzwordcompliant.s3.amazonaws.com/mark-deployment-talk.mp3]</p>
<p><a href="http://buzzwordcompliant.s3.amazonaws.com/mark-deployment-talk.mp3">Download MP3</a></p>
<p>[update 10/23 - fixed broken link to AWS]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2008/10/22/how-37-signals-deploys-their-software/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://buzzwordcompliant.s3.amazonaws.com/mark-deployment-talk.mp3" length="67701366" type="audio/mpg" />
		</item>
		<item>
		<title>How to Run Windows on OS X for free with Sun&#8217;s Virtualbox</title>
		<link>http://www.buzzwordcompliant.net/2008/09/30/how-to-run-windows-on-os-x-for-free-with-suns-virtualbox/</link>
		<comments>http://www.buzzwordcompliant.net/2008/09/30/how-to-run-windows-on-os-x-for-free-with-suns-virtualbox/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 06:49:13 +0000</pubDate>
		<dc:creator>Michael Buckbee</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Mac OSX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Parallels]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare]]></category>

		<guid isPermaLink="false">http://www.buzzwordcompliant.net/?p=148</guid>
		<description><![CDATA[VMWare Fusion and Parallels have been the two dominant OS X virtualization methods for running Windows (or Linux) inside of OS X. While both are great applications, they each cost around $80 US. Recently, Sun Microsystems (makers of Solaris, big purple servers and pony tailed CEO&#8217;s) have unleashed a new virtualization product on the world: VirtualBox, and while it lacks [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vmware.com/products/fusion/">VMWare Fusion</a> and <a href="http://www.parallels.com/landingpage/dskd10_4/?gclid=CPyEjP3rgpYCFQO2FQodHzLzFQ">Parallels</a> have been the two dominant OS X virtualization methods for running Windows (or Linux) inside of OS X.
<p/>
<p>While both are great applications, they each cost around $80 US.
<p/>
<p>Recently, Sun Microsystems (makers of Solaris, big purple servers and pony tailed CEO&#8217;s) have unleashed a new virtualization product on the world: <a href="http://www.virtualbox.org/wiki/Downloads">VirtualBox</a>, and while it lacks many of the features of the other two it&#8217;s free,  easy to use and works reasonably well. </p>
<h3>Step 1: Download</h3>
<p>Download the latest version of VirtualBox for OS X from the <a href="http://www.virtualbox.org/wiki/Downloads">support Wiki</a>.
<p/>
<h3>Step 2: Install VirtualBox</h3>
<p>Mount the Downloaded Disk Image and run the VirtualBox.mpkg file. This should place a VirtualBox.app in your /Applications Directory</p>
<h3>Step 3: Create a Virtual Machine</h3>
<p>Helpful wizards jump up to walk you through creating a new Virtual Machine, but in case you miss them, click the blue &#8220;New&#8221; button in the upper left of the main VirtualBox window and follow the directions. </p>
<p>You will need to make 2 decisions:</p>
<ol>
<li> How much RAM to allocate. I found that 512 was adequate for a stock Windows XP installation. This will vary greatly with what you are attempting to use the virtual machine for, but for cross browser testing and basic usage was fine. </li>
<li> How much HardDrive space to use. The wizard will strongly encourage you to set this &#8220;dynamically&#8221;, meaning that although you may specify that the virtual machine can use up to 25 GB of space it won&#8217;t use that much right away. Instead, it will slowly increase the amount of space taken as you use the virtual machine.
</li>
</ol>
<h3>Step 4: Install Windows </h3>
<p>At the conclusion of the Virtual Machine creation wizard, you will be prompted to begin the Windows installation process. Push F8, partition the hard drive with NTFS, enter your code, choose your TimeZone and an hour of tediousness later you&#8217;ll be dumped at the Windows Desktop.</p>
<p><img src="http://farm4.static.flickr.com/3010/2900970304_de36de755e.jpg" alt="" /></p>
<h3>Step 5: Setup Networking</h3>
<p>By default, the VirtualBox networking was set to Network Address Translation (NAT), where the VirtualBox pretends that it&#8217;s in its own separate network from the network that your Mac is actually running on. While this can be useful in some specialized cases, to just get up and running it&#8217;s not necessary. </p>
<ol>
<li> Shutdown the Windows virtual machine </li>
<li> With the Virtual machine selected. Click &#8220;Settings&#8221; and choose &#8220;Network&#8221;. </li>
<li> Set the Attached value to &#8220;Host Interface&#8221; </li>
<li> Make sure that the correct host interface is set in the bottom of the screen. i.e. if you&#8217;re using wireless select AirPort. If you&#8217;re plugged in, select Ethernet.</li>
<li> Restart the Windows virtual machine and you should be good to go. The machine should pickup an address automatically off of your home network. *</li>
</ol>
<p><img src="http://farm4.static.flickr.com/3178/2900599745_f191df48b8.jpg" alt="" /></p>
<p>* There is a fairly big assumption here that you&#8217;re in a place with a working DHCP server. If this is not the case: you&#8217;re in a Starbucks, Don&#8217;t have Internet access, etc. you&#8217;re going to need to fiddle with the network settings. </p>
<p/>
<p>[updated 9/30/2008] &#8211; I was up too late when I made the original post for this and needed to go back and fix some grammatical and formatting errors.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.buzzwordcompliant.net/2008/09/30/how-to-run-windows-on-os-x-for-free-with-suns-virtualbox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

