<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atomfull.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="0.3" xml:lang="en-US">
  <title>Stake Ventures</title>
  <tagline mode="escaped" type="text/html" />
  <id>tag:stakeventures.com,2005:Typo</id>
  <generator url="http://stakeventures.com">StakeVentures</generator>
  <link href="http://stakeventures.com/" rel="alternate" type="text/html" />
  <modified>2008-04-18T13:10:07-04:00</modified>
  <creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><link rel="start" href="http://feeds.feedburner.com/StakeVentures" type="application/atom+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-280</id>
    <issued>2008-04-18T12:38:57-04:00</issued>
    <modified>2008-04-18T13:10:07-04:00</modified>
    <title>You are the one who will change the world, not the next president</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/272998785/you-are-the-one-who-will-change-the-world-not-the-next-president" rel="alternate" type="text/html" />
    <dc:subject>Morale</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;&lt;a href="http://www.flickr.com/photos/pelle/316549264/" title="Dolores Park by pelleb, on Flickr"&gt;&lt;img src="http://farm1.static.flickr.com/103/316549264_f7a276b718.jpg" width="500" height="146" alt="Dolores Park" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s easy to get swept into the excitement of the electoral process no matter where you live in the world. In the past couple of months I&amp;#8217;ve found myself swept into the excitement for a candidate for the coming US presidential election, who I in reality have very few things to agree with and probably wouldn&amp;#8217;t ever vote for anyway. This because he has a certain charisma and a message that says &amp;#8220;Lets change this crap!!!&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;However anytime I get deeper into following that process something happens to immediately yank me back to reality and realize that it doesn&amp;#8217;t really matter anyway who sits in the White House or who is busy inserting their &lt;a href="http://en.wikipedia.org/wiki/Pork_barrel"&gt;pork barrel&lt;/a&gt; into bills in Congress.&lt;/p&gt;


	&lt;p&gt;What is important is that we the entrepreneurs, coders and inventors who are actually changing the world keep doing our jobs.&lt;/p&gt;


	&lt;p&gt;Sometimes it seems unimportant and frivolous for us to be obsessive about the latest standards, rails plugins or variation of a social video startup. However this is how every single great change to the world has happened over the last couple of hundred years.&lt;/p&gt;


	&lt;p&gt;Let me repeat that:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Every important world change has been made by people like &lt;span class="caps"&gt;YOU&lt;/span&gt;!!!&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Also if you don&amp;#8217;t think you should have illusions of grandeur remember:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Every large and well known change depends on thousands of other small improvements also made by people like &lt;span class="caps"&gt;YOU&lt;/span&gt;!!!&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;&lt;em&gt;Note. I say &lt;span class="caps"&gt;YOU&lt;/span&gt; as the people who read this blog tend to be entrepreneurial and/or geek type of people. If you happen to be a politician or bureaucrat I&amp;#8217;m sorry, I&amp;#8217;m not talking to you.&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;The obsessive nerd thinking over some small technical detail to move us as a planet ahead or a big mouth entrepreneur who refused to give up and ends up bringing down the last generation of entrepreneurs who had grown fat and complacent.&lt;/p&gt;

&lt;h3&gt;Why are we well off&lt;/h3&gt;


	&lt;p&gt;Those of us in the west are well off and lead comfortable lives not due to some 19th century president, king or prime minister. We grew to where we are because of nerds like &lt;a href="http://en.wikipedia.org/wiki/James_Watt"&gt;James Watt&lt;/a&gt;, innovative bankers like &lt;a href="http://en.wikipedia.org/wiki/Nathan_Mayer_Rothschild"&gt;Nathan Rothchild&lt;/a&gt; and single minded entrepreneurs like &lt;a href="http://en.wikipedia.org/wiki/Andrew_Carnegie"&gt;Andrew Carnegie&lt;/a&gt;.&lt;/p&gt;


	&lt;h3&gt;Why is the world changing for the better&lt;/h3&gt;


	&lt;p&gt;You are part of the current generation who is bringing this amazing economical and social development to the rest of the world.&lt;/p&gt;


	&lt;p&gt;The web, mobile  phones, YouTube and email are amongst the thousands of new technologies that are breaking age old barriers that kept people poor. People who before were ignored and poor are now all of a sudden taking their voice, demanding change, taking charge and pushing their own economies forward.&lt;/p&gt;


	&lt;p&gt;This isn&amp;#8217;t just happening in the developing world. In the US politician&amp;#8217;s are now in a new uncertain world, where people don&amp;#8217;t necessarily just accept what&amp;#8217;s going on.&lt;/p&gt;


	&lt;p&gt;More and more people are also finding that the barriers to entry to independence for themselves if getting to a lower and lower level letting more and more people make step off the corporate ladder and start businesses for them selves, thus creating a positive feedback loop for change.&lt;/p&gt;


	&lt;p&gt;Some of the people occasionally blamed for this development were &lt;a href="http://en.wikipedia.org/wiki/William_Shockley"&gt;William Shockley&lt;/a&gt; the inventor of the Transistor, &lt;a href="http://en.wikipedia.org/wiki/Gordon_Moore"&gt;Gordon Moore&lt;/a&gt; cofounder of Intel, Bill Gates, Linus Torvalds, Sergey Brin and Larry Page.&lt;/p&gt;


	&lt;p&gt;However every one of these famous names built upon the work of thousands of other amazingly smart innovative geeks and entrepreneurs who might not have received the fame, but were equally responsible in bringing about a huge change to this world.&lt;/p&gt;


	&lt;p&gt;I find it entertaining and to a certain extent cool when someone like &lt;a href="http://www.scripting.com/"&gt;Dave Winer&lt;/a&gt; devotes so much of his time right now to the Obama campaign, when he has probably done way more to change the world for good than any presidential candidate ever will by inventing the blog and &lt;span class="caps"&gt;RSS&lt;/span&gt; .&lt;/p&gt;


	&lt;h3&gt;Loosers are also world changers&lt;/h3&gt;


	&lt;p&gt;You are also responsible even if your particular startup or technology didn&amp;#8217;t take off, as competition with you is what brought the winners ahead. I worked at Alta Vista early on, Google beat them into a pulp but they and others helped build the foundation that Google succeeded on.&lt;/p&gt;


	&lt;h3&gt;What&amp;#8217;s the point Pelle&lt;/h3&gt;


	&lt;p&gt;So what exactly is my point on this rant. It&amp;#8217;s alright to get all heated up about political campaign, just remember that your real job is improving the world. 6 billion people are depending on it. Keep doing what you do best one line of code at a time, one new blog post at a time and one new idea at a time.&lt;/p&gt;


	&lt;p&gt;Even if you haven&amp;#8217;t got a ground breaking business idea, submitting a patch to a rails plugin that will make it easier for someone who does could be a more important step towards changing the world than who you vote for in November.&lt;/p&gt;

&lt;p class="agree2_ad"&gt;&lt;a href="http://agree2.com?referrer=0"&gt;Create, negotiate and accept legally binding contracts for free with our Agree2 service.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=RzhnPbG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=RzhnPbG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=P0NEcZG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=P0NEcZG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=M6fsEIG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=M6fsEIG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=lgIz9Xg"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=lgIz9Xg" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=SVvExvg"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=SVvExvg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/272998785" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/04/18/you-are-the-one-who-will-change-the-world-not-the-next-president</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-279</id>
    <issued>2008-04-15T08:46:25-04:00</issued>
    <modified>2008-04-15T17:42:36-04:00</modified>
    <title>Living it up on the cheap in Denmark</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/270688166/living-it-up-on-the-cheap-in-denmark" rel="alternate" type="text/html" />
    <dc:subject>Global</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;As I&amp;#8217;m currently in Denmark for a while I&amp;#8217;ve had to with even worse prices of groceries than normal due to the apparent sickness of my good old US$. I thought I might as well write a little guide for how you can save a krone or two if you are staying in Denmark for an extended time.&lt;/p&gt;


	&lt;p&gt;Copenhagen is normally rated ad one of the 3 most expensive cities in the world, but you can get buy reasonable if you know how.&lt;/p&gt;


	&lt;p&gt;My &lt;a href="http://stakeventures.com/articles/2006/02/02/bootstrappers-guide-for-denmark"&gt;Bootstrappers guide for Denmark&lt;/a&gt; has become very popular with foreigners trying to grasp the red tape involved with running a business here, so hopefully this might be a fun little guide, whether you&amp;#8217;re coming for a week or staying on permanently.&lt;/p&gt;

&lt;h2&gt;Groceries&lt;/h2&gt;


	&lt;p&gt;If you&amp;#8217;re used to large nice supermarkets like you have in most countries you are in for a surprise here. Laws limit the sizes of supermarkets and department stores, but even more important the neighborhood discount stores are now the most popular place to do grocery shopping.&lt;/p&gt;


	&lt;h3&gt;Discount Supermarkets&lt;/h3&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/pelle/2416250456/" title="Netto by pelleb, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2300/2416250456_a8a8cac239.jpg" width="500" height="375" alt="Netto" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;The five chains I know of in Denmark are &lt;a href="http://netto.dk"&gt;Netto&lt;/a&gt;, &lt;a href="http://fakta.dk"&gt;Fakta&lt;/a&gt;, &lt;a href="http://aldi.dk"&gt;Aldi&lt;/a&gt;, &lt;a href="http://lidl.dk"&gt;Lidl&lt;/a&gt; and &lt;a href="http://rema1000.dk"&gt;Rema 1000&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Of these Netto and Fakta are Danish although you might have seen Netto in amongst other countries England. Rema 1000 is Norwegian (Thanks Trond). The rest are German chains. Netto and Aldi are the most common and just about every neighborhood has one. After that Aldi. Lidl and Rema 1000 are not very common in Copenhagen, but I believe they are very common in Jutland.&lt;/p&gt;


	&lt;p&gt;Aldi are by the way the owners of &lt;a href="http://traderjoes.com/"&gt;Trader Joes&lt;/a&gt; in the US.&lt;/p&gt;


	&lt;p&gt;Anyway the Danish tabloid &lt;a href="http://www.extrabladet.dk"&gt;Extra Bladet&lt;/a&gt; have compared prices for a bunch of different groceries as of April 2008 here:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080414-egmf6wxdtiw1utpkeixbk2h64p.jpg" alt="discountpriser danmark"/&gt;&lt;/p&gt;


	&lt;p&gt;Discount stores are great for your basic daily shopping as well as their special offers. The standard grocery assortment is quite small compared to a US supermarket. However their weekly offers &amp;#8220;Tilbud&amp;#8221; are what make them kind of fun. Go to each of their web sites above and view their weekly catalog containing special offers. The offers range from Oreo Cookies to cheap laptops.&lt;/p&gt;


	&lt;h3&gt;Important note regarding international Credit Cards&lt;/h3&gt;


	&lt;p&gt;One important note when going to the Danish discount stores. They do not accept international credit cards. You will need either cash or the Danish debit card Dankort. I&amp;#8217;ve seen many a foreigner being turned away at the cash register for this reason.&lt;/p&gt;


	&lt;h3&gt;You buy the bag and bag yourself&lt;/h3&gt;


	&lt;p&gt;Other important note for at least Americans is that you have to buy your bags and bag your groceries yourself. After having been abroad for 14 years my first time in Netto ended up as a stare down between me and the woman behind the cash register. I was waiting for her to bag my groceries and she was waiting for me to do so with the bag I hadn&amp;#8217;t bought.&lt;/p&gt;


	&lt;h3&gt;Meat and where to buy it&lt;/h3&gt;


	&lt;p&gt;The discount stores have a few choices that you might use, however they aren&amp;#8217;t normally very good.&lt;/p&gt;


	&lt;p&gt;Better yet would be to check the more upscale supermarkets &lt;a href="http://fotex.dk"&gt;F&amp;oslash;tex&lt;/a&gt;, &lt;a href="http://irma.dk"&gt;Irma&lt;/a&gt; and &lt;a href="http://superbrugsen.dk"&gt;SuperBrugsen&lt;/a&gt;. They normally have good quality meats available. You will notice their normal prices are quite expensive, however they almost always have good offers going on.&lt;/p&gt;


	&lt;p&gt;F&amp;oslash;tex and SuperBrugsen often have a pick 3 packs of meat for 100kr deals. Irma normally have will have one or two offers on beef that is worth while. As in California TriTip steaks are great deals and are known as Cullotte or Cuvette steg.&lt;/p&gt;


	&lt;p&gt;Another option that is very popular with many foreigners but often less so with Danes are the Hallal butchers. Most areas with large muslim populations such as Vesterbro and N&amp;oslash;rrebro in Copenhagen have good ones. They are normally best for buying mutton and veal. It&amp;#8217;s normally good quality and cheaper than the supermarkets.&lt;/p&gt;


	&lt;h3&gt;Vegetables&lt;/h3&gt;


	&lt;p&gt;The discount supermarkets have the basics and are normally fairly cheap. The larger supermarkets such as F&amp;oslash;tex have a good selection of vegetables and fruits but are often 50% or more expensive.&lt;/p&gt;


	&lt;p&gt;Again you might want to go into Vesterbro and N&amp;oslash;rrebro for  your favorite Turkish green grocer. They normally have a good collection of fruits and vegetables for good prices. Pick up some Olives or Hummus from the deli conter as well. I love these places.&lt;/p&gt;


	&lt;h3&gt;Ethnic foods&lt;/h3&gt;


	&lt;p&gt;As mentioned earlier Vesterbro and N&amp;oslash;rrebro have lots of Turkish butchers and green grocers.&lt;/p&gt;


	&lt;p&gt;Vesterbro in the part closest to the central train station have several great Thai and Chinese shops. None of them are too expensive.&lt;/p&gt;


	&lt;p&gt;On Peter Hvitfeldts Straede in central Copenhagen you will find a small American grocery store next to a English shop that also carries Aussie and South African groceries.&lt;/p&gt;


	&lt;p&gt;A neat place I discovered are the Polish grocery stores. I think there is one on N&amp;oslash;rregade close to N&amp;oslash;rreport station. They have great cheap Polish beer, interesting soups, sausages etc.&lt;/p&gt;


	&lt;h2&gt;Booze and where to buy it&lt;/h2&gt;


	&lt;p&gt;Generally speaking the supermarkets have a good selection of wines at suprisingly affordable prices. Even with the current dollar rate it&amp;#8217;s cheaper to buy good wine in Denmark than in the US. There are lots of great wines in the 30-50kr range.&lt;/p&gt;


	&lt;p&gt;The normal beer brands like Tuborg and Carlsberg are available everywhere. The discount supermarkets have their own Danish brewed beers that are pretty cheap at around 2kr. Some of them aren&amp;#8217;t bad. They are cheap enough to try them all. If you are close to Lidl, they have great German beers available for 4-6kr.&lt;/p&gt;


	&lt;p&gt;You can often fine drinkable vodka and gin at most of the discount supermarkets for around 70kr. Look out for special offers on premium brands. In particular F&amp;oslash;tex and Irma have occasional great offers.&lt;/p&gt;


	&lt;h2&gt;Bottle deposits&lt;/h2&gt;


	&lt;p&gt;Bottle deposits in Denmark has been a part of life for years. It&amp;#8217;s 1kr for a beer bottle or can and 3kr for a large soda bottle. In Denmark there is no need to feel embarrassed when standing in line in front of the bottle deposit machine with the career winos, students and basically everyone.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/pelle/2415427643/" title="Bottle return machine by pelleb, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2159/2415427643_2f98ba17d1.jpg" width="375" height="500" alt="Bottle return machine" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Every supermarket has one of these machines. You basically fill it with your cans and bottles one at the time (bottom first). When you&amp;#8217;re done press the button and it prints a receipt that you can exchange for cash or use to pay for more beer.&lt;/p&gt;


	&lt;h2&gt;Transport&lt;/h2&gt;


	&lt;h3&gt;Public Transport&lt;/h3&gt;


	&lt;p&gt;The public transport system is great and consists in Copenhagen of busses, trains and the metro system. All of them use the same tickets.&lt;/p&gt;


	&lt;p&gt;I recommend that you never buy a single ticket unless you of course only need a single ticket. A single 2 zone ticket costs 20kr. So it&amp;#8217;s much better to buy a 10 clip multi ticket know as a klippekort. A standard 2 zone one costs 125kr in Denmark. You can buy these in many news stands&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re here for more than a week it&amp;#8217;s almost always worthwhile getting a 1 month pass, which costs 310kr for 2 zones which allows unlimited travel for 30 days within the 2 zones that you pick. You need to bring a passport photo with you and buy these at train stations.&lt;/p&gt;


	&lt;h3&gt;Cars&lt;/h3&gt;


	&lt;p&gt;At nearly 200% tax buying a car is ridiculously expensive. Renting them as well. However if you&amp;#8217;re in Denmark for less than a year there are good options. If you are a foreigner want to buy a car or bring your own with you have the option to register it using special tags known as &amp;#8220;gr&amp;aelig;nseplader&amp;#8221;. These allow you to cut most of the import duties. I don&amp;#8217;t know the details myself, but you should be able to ask a car dealer about it.&lt;/p&gt;


	&lt;p&gt;Similarly most large car rental agencies have special offers for non residents. You probably need to call them up to ask for it, but it will be cheaper and comes with such luxuries as unlimited milage.&lt;/p&gt;


	&lt;p&gt;Please add your own tips in the comments.&lt;/p&gt;

&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/38f8f05d70c7d84f28e349e3a16f8444bdaf4ea8"&gt;Create a simple NDA with zero legalese in no time at all and for free at our service Agree2.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=hgkJP0G"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=hgkJP0G" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=poIwUDG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=poIwUDG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=QjS64FG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=QjS64FG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=bj6yEug"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=bj6yEug" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=5I0evmg"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=5I0evmg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/270688166" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/04/15/living-it-up-on-the-cheap-in-denmark</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-278</id>
    <issued>2008-04-05T09:17:38-05:00</issued>
    <modified>2008-04-13T12:56:56-04:00</modified>
    <title>Video of Keynote Panel at RubyFools 2008 in Copenhagen</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/264578256/video-of-keynote-panel-at-rubyfools-2008-in-copenhagen" rel="alternate" type="text/html" />
    <dc:subject>Programming</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;Featuring Dr Nic, Matz, Evan Phoenix, Kim Dalsgaard and Aslak Hellesh&amp;oslash;j.&lt;/p&gt;


&lt;embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-8874453241810577386&amp;#38;hl=en" flashvars=""&gt; &lt;/embed&gt;

	&lt;p&gt;Sorry for the dodgy sound quality. Need to get decent equipment at some point.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; &lt;a href="http://s3.amazonaws.com/stakeventures.com/RubyFools.mp4"&gt;I&amp;#8217;ve made a higher quality mp4 version of this available here&lt;/a&gt; Please let me know if this doesn&amp;#8217;t work.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/b4f9a904efaab5ad71f695824c997c332b955876"&gt;Share your confidential code safely with a Source Code Confidentiality Agreement on our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=Ib7UlaG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=Ib7UlaG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=tx2HrJG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=tx2HrJG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=zZ8s5ZG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=zZ8s5ZG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=1UDqNog"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=1UDqNog" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=6Rmszhg"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=6Rmszhg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/264578256" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/04/05/video-of-keynote-panel-at-rubyfools-2008-in-copenhagen</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-277</id>
    <issued>2008-03-26T01:06:20-05:00</issued>
    <modified>2008-03-26T01:06:23-05:00</modified>
    <title>It wont hold up in court</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/258120370/it-wont-hold-up-in-court" rel="alternate" type="text/html" />
    <dc:subject>Agree2</dc:subject>
    <dc:subject>Legal</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;Rafe Needleman wrote a review of Agree2 today: &lt;a href="http://www.webware.com/8301-1_109-9903269-2.html"&gt;Agree2 creates binding legal documents that won&amp;#8217;t hold up in court&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I am proud of his comments about the technical aspects of the site, however the title about the legal documents that not hold up in court I find problematic. That said, I am really glad Rafe brought this up. There are plenty of myths and misunderstandings about this.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Technically, I have no beef with the service. I think it&amp;#8217;s pretty cool, actually. But although I&amp;#8217;m not a lawyer and even though I hate trying to decipher legal agreements when I need to, the service&amp;#8217;s tacit encouragement to create my own non-lawyer-approved agreements scares the bejeezus out of me. Sure, I could write an agreement between me and someone I&amp;#8217;m hiring to re-wire my house. And if the contractor I&amp;#8217;m working with were new, he or she might even sign it. But it would still, probably, be a crappy agreement. A court might agree that the electronic edits and signatures were binding, but that doesn&amp;#8217;t mean the agreement would be legally sound. Certainly it wouldn&amp;#8217;t be complete.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;h2&gt;I object to the title&lt;/h2&gt;


	&lt;p&gt;Saying that Agree2 agreements don&amp;#8217;t hold up in court is like saying agreements written in Microsoft Word, don&amp;#8217;t hold up in court.&lt;/p&gt;


	&lt;p&gt;Agree2 is a media and a framework for you to write agreements. We take care of all phases of the contract from drafting, versioning, inviting and legal binding acceptance from the parties. We provide evidence as Rafe points out in a very easy to use manner and allow you to come back and find your contracts in the same place 2 years later.&lt;/p&gt;


	&lt;p&gt;We hope to foster a community of people to share contract templates. People have already been doing this for many years, informally emailing word documents around.&lt;/p&gt;


	&lt;p&gt;Due to California law, we can not take an active part in analyzing the contract text. However we try to provide as many tools as possible for this to be easy for you and your advisors to do.&lt;/p&gt;


	&lt;p&gt;The &lt;a href="http://oauth.net"&gt;OAuth&lt;/a&gt; standards group recently used Agree2 to create their &lt;a href="https://agree2.com/declarations/oauth-non-assertion-covenant"&gt;OAuth Non-Assertion Covenant and Author&amp;#8217;s Contribution License&lt;/a&gt;. This has been signed by amongst others Digg, Twitter, Google and &lt;span class="caps"&gt;AOL&lt;/span&gt;. I am sure Google&amp;#8217;s legal department would not allow them to use Agree2, if they found a problem with it.&lt;/p&gt;


	&lt;h2&gt;Contracts are not between your lawyers, they are between the parties&lt;/h2&gt;


	&lt;p&gt;A common misunderstanding about contracts is that they have to be scary legal documents written by lawyers.&lt;/p&gt;


	&lt;p&gt;First of all a contract is not the document itself. It is the concept of an agreement the two parties have. The written contract is a handy document that writes down the terms of the agreement in such a way that there aren&amp;#8217;t misunderstandings of each parties duties.&lt;/p&gt;


	&lt;p&gt;We perform contracts everyday. Many of them through our actions like ordering a meal in a restaurant others written like signing a credit card slip or accepting a user agreement.&lt;/p&gt;


	&lt;p&gt;Generally speaking it is a good idea to write contracts into a document to avoid disputes in the future. This is the whole reason behind writing a contract down. Avoiding disputes. If a dispute should happen in the future this document is used by a dispute resolution institution such as arbitrators or courts.&lt;/p&gt;


	&lt;h2&gt;Opaque legalese is all about fear and power&lt;/h2&gt;


	&lt;p&gt;When I have had to sign long contracts in the past, I can be pretty certain that the person giving me the contract doesn&amp;#8217;t understand it one bit. They expect that I don&amp;#8217;t understand it either. These contracts still serve their purpose, by keeping us both too frightened to cause a dispute.&lt;/p&gt;


	&lt;p&gt;That said disputes still happen, and they happen mostly because there is some disagreement between the parties about what &lt;a href="http://tp://www.amazon.com/gp/product/0805082239?ie=UTF8&amp;#38;tag=talkorg-20&amp;#38;linkCode=as2&amp;#38;camp=1789&amp;#38;creative=9325&amp;#38;creativeASIN=080508223"&gt;The Party of the First Part&lt;/a&gt; or some such legalese foolishness actually means. (&lt;a href="http://blog.extraeagle.com/2007/12/30/how-to-write-plain-english-contracts/"&gt;See more&lt;/a&gt;)&lt;/p&gt;


	&lt;p&gt;Courts are used to standard legalese terms, that is true. There are complex hidden meanings between these. However they are also perfectly able to understand plain English. More importantly if you write your contract in Plain English yourself you are probably less likely to end up in court in the first place, because you and the other party both understand your duties under the contract.&lt;/p&gt;


	&lt;h2&gt;Lawyers are needed for many things&lt;/h2&gt;


	&lt;p&gt;There are definitely cases where you want to bring in lawyers. I think it&amp;#8217;s definitely a good idea for large complex contracts. Please do &lt;span class="caps"&gt;NOT&lt;/span&gt; write up a term sheet for a large investment yourself. However in most cases it is a good idea to write the meat of the contract yourself and then have a lawyer go over it. You can then use this a private (or public) template within Agree2 and have the best of both worlds.&lt;/p&gt;


	&lt;p&gt;However it doesn&amp;#8217;t make any sense whatsoever to have pay $400ph for a lawyer to go over a contract worth $500 to you. If you are doing this repeatedly have him go over your template.&lt;/p&gt;


	&lt;p&gt;Many contracts that should be documented end up being agreed over a phone or in a brief email instead to avoid the hassle of form documents and lawyers. Agree2 gives you a much better option than either.&lt;/p&gt;


	&lt;p&gt;We are planning a feature in the future where you can give lawyers access to review your contracts and templates.&lt;/p&gt;


	&lt;h2&gt;Government requirements&lt;/h2&gt;


	&lt;p&gt;Most contracts can and should be simple. There are however a few types of contracts where complexity is mandated by law. In particular apartment leases and employment contracts, where just about every state/country have specific legal requirements.&lt;/p&gt;


	&lt;h2&gt;More reading&lt;/h2&gt;


	&lt;p&gt;I have written extensively on this before &lt;a href="http://blog.extraeagle.com/2007/10/09/contracts-are-relationships-with-strings-attached/"&gt;Contracts are relationships with strings attached&lt;/a&gt;, &lt;a href="http://stakeventures.com/articles/2006/08/17/pragmatic-contract-law-for-entrepreneurs"&gt;Pragmatic Contract Law for entrepreneurs&lt;/a&gt; and &lt;a href="http://stakeventures.com/articles/2006/08/22/understanding-and-preparing-for-jurisdictions"&gt;Understanding and Preparing for Jurisdictions&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Contract"&gt;Wikipedia on Contracts&lt;/a&gt; is also a great resource. Finally talk to your lawyer. Also remember that I am not a lawyer myself.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/37a9d0507479e9d5fa48f24c47126bb73bfef40d"&gt;Create a Software Development Agreement with our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=MF8Sp1F"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=MF8Sp1F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=Zv8V42F"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=Zv8V42F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=SHiYGvF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=SHiYGvF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=wyMiOsf"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=wyMiOsf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=MEIgl9f"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=MEIgl9f" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/258120370" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/03/26/it-wont-hold-up-in-court</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-276</id>
    <issued>2008-03-25T21:40:45-05:00</issued>
    <modified>2008-03-25T21:40:48-05:00</modified>
    <title>Social User Interface Design at SnapSummit</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/258036908/social-user-interface-design-at-snapsummit" rel="alternate" type="text/html" />
    <dc:subject>Programming</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;The first talk of the day at &lt;a href="http://www.snapsummit.com/"&gt;SnapSummit&lt;/a&gt; was 
&lt;a href="http://bokardo.com"&gt;Josh Porter, Founder, Bokardo Design&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;These are just my fairly sparse notes and commentaries.&lt;/p&gt;


	&lt;p&gt;It is very different designing for multi way communication systems like Social Web sites than the traditional one way or two way communication approaches.&lt;/p&gt;


	&lt;p&gt;Josh highlights 5 key rules to getting it right:&lt;/p&gt;


	&lt;h3&gt;1. The &lt;a href="http://del.icio.us"&gt;Del.icio.us&lt;/a&gt; Lesson&lt;/h3&gt;


	&lt;p&gt;Everyone was talking about tags. But in reality the user&amp;#8217;s weren&amp;#8217;t using it for the the folksonomy, but about saving bookmarks.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;Personal value precedes network value.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;You have to provide a valuable service even if no one else uses it. This makes sure that people start creating content and come back. The social aspects build on top of that and not the other way around. YouTube and Flickr are also great examples of this.&lt;/p&gt;


	&lt;p&gt;2. Tie Behavior to Identity&lt;/p&gt;


	&lt;p&gt;Josh gives an example of 2 different Amazon reviews with one person using real name and other made up. The real name is more trusted. So make sure that the things your users do are tied back to them.&lt;/p&gt;


	&lt;p&gt;The Ebay Feedback Profile is a great example. The whole thing is tied to a users behavior, they manage this without users using  a real name only screen names.&lt;/p&gt;


	&lt;p&gt;3. Give recognition&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s important to recognize and award your top users, to give further encouragement for users to interact.&lt;/p&gt;


	&lt;p&gt;Classic example were &lt;a href="http://digg.com"&gt;Digg&amp;#8217;s&lt;/a&gt; Top Diggers page. This was eventually removed as top diggers essentially kept digging each others stories. This was good for early growth, but not all that good when they had a large user base.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;Recognition seems to work better when it comes from the group and isn&amp;#8217;t permanent.&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;To avoid Digg&amp;#8217;s situation it is important that your algorithm puts priority on new contributions.&lt;/p&gt;


	&lt;p&gt;Threadless is good at ensuring this by having set end dates.&lt;/p&gt;


	&lt;p&gt;4. Show Causation&lt;/p&gt;


	&lt;p&gt;Netflix are great at this. Show effect of what actions. Do this explicitly.&lt;/p&gt;


	&lt;p&gt;Basically spell out what your users need to do to get benefits of the site.&lt;/p&gt;


	&lt;p&gt;5. Leverage Reciprocity&lt;/p&gt;


	&lt;p&gt;Make the interaction itself rewarding.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&amp;#8220;Why do people leave reviews?&amp;#8221;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;First response from many people in interviews are &amp;#8220;I like to help people&amp;#8221;, but dig down and you find that people are interested in other aspects such as &amp;#8220;I like to see how many people read my reviews&amp;#8221; etc.&lt;/p&gt;


	&lt;p&gt;They are not just giving, but receiving a lot in return. Some of this is the input of other users, but also&lt;/p&gt;


	&lt;p&gt;LinkedIn: Very high percentage of people who you review review you back.&lt;/p&gt;


	&lt;p&gt;Top Amazon reviewer Harriet Clausner has reviewed 14000 books. 7 books a day. While Amazon doesn&amp;#8217;t expire reputation, it is putting more and more emphasis on high quality revies.&lt;/p&gt;


	&lt;p&gt;Josh has a new book coming out called &amp;#8220;Designing for the social web&amp;#8221;. I&amp;#8217;m sure it will be a worthwhile read. He also twitters at &lt;a href="http://twitter.com/bokardo"&gt;bokardo&lt;/a&gt;&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="http://agree2.com?referrer=0"&gt;Create, negotiate and accept legally binding contracts for free with our Agree2 service.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=tcZzk3F"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=tcZzk3F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=fHw0QGF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=fHw0QGF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=4Aa3QWF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=4Aa3QWF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=K8UcWgf"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=K8UcWgf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=rjwAPzf"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=rjwAPzf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/258036908" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/03/25/social-user-interface-design-at-snapsummit</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-275</id>
    <issued>2008-03-18T01:46:55-05:00</issued>
    <modified>2008-03-18T16:23:03-05:00</modified>
    <title>A review of FireEagle's OAuth UI</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/253470105/a-review-of-fireeagles-oauth-ui" rel="alternate" type="text/html" />
    <dc:subject>Legal</dc:subject>
    <dc:subject>Data Portability</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;&lt;a href="http://fireeagle.yahoo.net/"&gt;FireEagle&lt;/a&gt; is Yahoo&amp;#8217;s great new location web service which was recently launched into beta.&lt;/p&gt;


	&lt;p&gt;This review will not cover the &lt;span class="caps"&gt;API&lt;/span&gt;. A great little intro for this can be found in &lt;a href="http://blog.bitfluent.com/post/28517435"&gt;Interfacing a Rails App to Fire Eagle&lt;/a&gt; by &lt;a href="http://blog.bitfluent.com/"&gt;Kamal&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I have previously written tutorial on writing &lt;a href="http://stakeventures.com/articles/2008/02/23/developing-oauth-clients-in-ruby"&gt;OAuth Clients in Ruby&lt;/a&gt;  or &lt;a href="http://stakeventures.com/articles/2007/11/26/how-to-turn-your-rails-site-into-an-oauth-provider"&gt;Turning your Rails site into an OAuth Provider&lt;/a&gt;. So I won&amp;#8217;t go over any code here.&lt;/p&gt;


	&lt;p&gt;This is strictly about the user interface of FireEagle OAuth implementation. The FireEagle team &lt;a href="http://www.plasticbag.org/"&gt;Tom&lt;/a&gt;, &lt;a href="http://mojodna.net"&gt;Seth&lt;/a&gt; and &lt;a href="http://anarchogeek.com/"&gt;Rabble&lt;/a&gt; have done an excellent job thinking about the UI and how it affects the security and privacy.&lt;/p&gt;


	&lt;p&gt;Which is great as most of the rest of us involved in &lt;a href="http://oauth.net"&gt;OAuth&lt;/a&gt; have been worrying more about standards and implementations than usability. In reality Usability is one of those very important things that the security world tends to forget. So let&amp;#8217;s learn from FireEagle&amp;#8217;s example.&lt;/p&gt;

&lt;h2&gt;Registering your application&lt;/h2&gt;


	&lt;p&gt;Firstly you need to make the sale to the application developers. FireEagle does this well. They let us know that FireEagle is nothing without the developer. More important they explain clearly the two main use cases for application developers.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/pelle/8kj8/fire-eagle-applications-youve-created"&gt;&lt;img src="http://img.skitch.com/20080318-q72864hqq4t8yw6m9hpwka13du.preview.jpg" alt="Fire Eagle - Applications you've created" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;We at &lt;a href="https://agree2.com"&gt;Agree2&lt;/a&gt; have a couple of interesting uses for this, so we&amp;#8217;ll go ahead and register.&lt;/p&gt;


	&lt;p&gt;The registration is pretty clear. There are both security details and also information for including your application in their Application Gallery in the future&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/pelle/8kjm/fire-eagle-create-a-new-application"&gt;&lt;img src="http://img.skitch.com/20080318-rhnfde39wjb3b7t5hyghkq5xqm.preview.jpg" alt="Fire Eagle - Create a New Application" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;Of particular note are these settings which are one of the hints that the team have really thought about how OAuth integrates in their application.&lt;/p&gt;


	&lt;p&gt;Asking the developer what it is they need permission to do, allows FireEagle to ask the correct questions to the user later on.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080318-en86e2riaea3t53cdcsf1y2fsw.jpg" alt="Fire Eagle - Edit Application"/&gt;&lt;/p&gt;


	&lt;p&gt;Finally the application provides all the details to the developer of their consumer keys and secrets. Nothing particularly new here, however they do automatically create an AccessToken  for the developer which is a pretty nice innovation that I also recently implemented (stole) into &lt;a href="http://agree2.com"&gt;Agree2&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;I am assuming that this AccessToken is basically the same as if I went and created an AccessToken manually. Anyone know if this has different rights?&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; Seth from the FireEagle team wrote me to say:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;It does indeed have different rights.  The access token provided on that page is a &amp;#8220;general purpose access token&amp;#8221;, which allows clients access to the &amp;#8216;lookup&amp;#8217;, &amp;#8216;recent&amp;#8217;, and &amp;#8216;within&amp;#8217; methods (and not &amp;#8216;user&amp;#8217; and &amp;#8216;update&amp;#8217;, as it doesn&amp;#8217;t correspond to a user).  Conceptually, this token is used for queries done &amp;#8220;on behalf of the application&amp;#8221; rather than &amp;#8220;on behalf of the user&amp;#8221;.&lt;/p&gt;
	&lt;/blockquote&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/pelle/8kjw/fire-eagle-applications-youve-created"&gt;&lt;img src="http://img.skitch.com/20080318-cqctpdass71inmyph6u16tfw91.preview.jpg" alt="Fire Eagle - Applications you've created" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;Anyway it&amp;#8217;s pretty easy to plug this into your application using any number of libraries for just about any language out there.&lt;/p&gt;


	&lt;h2&gt;End user Token Authorization&lt;/h2&gt;


	&lt;p&gt;This is what happens when a Client Application asks a user to authorize them access to their data in FireEagle. A user would be redirected by the Client Application to this screen.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/pelle/8kj6/fire-eagle-authorize-application"&gt;&lt;img src="http://img.skitch.com/20080318-mi1r2tx7smjsyudhcdtfij94yg.preview.jpg" alt="Fire Eagle - Authorize Application" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;It is great the way it provides a very clear UI explaining the user without too much text exactly what it is they are giving them access to. FireEagle has a really neat way of describing various degrees of precision in sharing your location such as &amp;#8220;exact location&amp;#8221; or &amp;#8220;my current neighborhood&amp;#8221;. See below for the full list.&lt;/p&gt;


	&lt;p&gt;For a simple app like FireEagle it is possible to provide such a concise interface. We are still trying to figure out exactly what we should do in Agree2, as there are lots of potential ways this could be done.&lt;/p&gt;


	&lt;h2&gt;Managing your tokens&lt;/h2&gt;


	&lt;p&gt;Allowing users to manage their tokens is equally important. It provides a list of applications you have issued tokens to. As well as a plain English explanation of the permissions you have given them.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/pelle/8kmg/fire-eagle-my-applications"&gt;&lt;img src="http://img.skitch.com/20080318-qmw9y4ay11175h8qbwx23ihe8.preview.jpg" alt="Fire Eagle - My Applications" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;Editing your settings allows you to change permissions for the application.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/pelle/8kmm/fire-eagle-my-applications"&gt;&lt;img src="http://img.skitch.com/20080318-t4xyasy8mu49ns1iyktjde8kyd.preview.jpg" alt="Fire Eagle - My Applications" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;h2&gt;Privacy in General&lt;/h2&gt;


	&lt;p&gt;While this hasn&amp;#8217;t got anything to do with OAuth in itself. Their general privacy settings are also very important. You can really see how the team has thought about Privacy here.&lt;/p&gt;


	&lt;p&gt;There is a prominent &amp;#8220;Hide Me&amp;#8221; button, which allows you to instantly &amp;#8220;duck&amp;#8221; out of site. Think of it like a mute button for FireEagle. This isn&amp;#8217;t necessarily useful in all applications, but have a look at your own application if you can&amp;#8217;t implement something like this. I assume technically speaking it disables all your AccessTokens until you enable them again.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/pelle/8jmw/fire-eagle-my-privacy"&gt;&lt;img src="http://img.skitch.com/20080318-21xpjiuqng36x8g7494mndpcc.preview.jpg" alt="Fire Eagle - My Privacy" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;It is also quick and easy to get rid of your location trail. For an application like FireEagle containing potentially delicate data, this is very important.&lt;/p&gt;


	&lt;p&gt;Another important aspect is that they automatically implement a timeout functionality. So if you forgot all about FireEagle it will automatically switch off your token&amp;#8217;s access at an expiry date unless you specifically renew them.&lt;/p&gt;


&lt;div class="thumbnail"&gt;&lt;a href="http://skitch.com/pelle/8jmj/fire-eagle"&gt;&lt;img src="http://img.skitch.com/20080318-njs56yfcjik199jeh14jyw1gkt.preview.jpg" alt="Fire Eagle" /&gt;&lt;/a&gt;&lt;/div&gt;

	&lt;p&gt;All in all FireEagle is a great example of implementing OAuth completely into the Application but also on how to think of privacy in a way that I haven&amp;#8217;t seen before in web applications.&lt;/p&gt;


	&lt;p&gt;We&amp;#8217;re thinking how we can do just a good job in &lt;a href="https://agree2.com"&gt;Agree2&lt;/a&gt;. Hopefully the FireEagle team aren&amp;#8217;t to upset if we borrow and extend some of the new UI patterns they have come up with.&lt;/p&gt;

&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/38f8f05d70c7d84f28e349e3a16f8444bdaf4ea8"&gt;Create a simple NDA with zero legalese in no time at all and for free at our service Agree2.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=YvanDxF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=YvanDxF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=zSSmgQF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=zSSmgQF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=3mfj53F"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=3mfj53F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=HSLqn8f"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=HSLqn8f" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=y6u7Yhf"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=y6u7Yhf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/253470105" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/03/18/a-review-of-fireeagles-oauth-ui</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-274</id>
    <issued>2008-03-11T13:24:39-05:00</issued>
    <modified>2008-03-11T13:24:42-05:00</modified>
    <title>BAP TV - Solo Techsupportitis</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/249654473/bap-tv-solo-techsupportitis" rel="alternate" type="text/html" />
    <dc:subject>Anti-patterns</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;Here is my second video about Bootstrapping AntiPatterns based on the post &lt;a href="http://stakeventures.com/articles/2005/06/03/bap-2-solo-techsupportitis"&gt;Solo techsupportitis&lt;/a&gt; I posted a couple of years ago.&lt;/p&gt;


&lt;object width="425" height=" 353"&gt;&lt;param name="movie" value="http://seesmic.com/Standalone.swf?video=594VU0V9Lj"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed src="http://seesmic.com/Standalone.swf?video=594VU0V9Lj" type="application/x-shockwave-flash" allowFullScreen="true" wmode="transparent" allowScriptAccess="sameDomain" width="425" height=" 353"&gt;&lt;/embed&gt;&lt;/object&gt;

	&lt;p&gt;Find the full series here: &lt;a href="http://stakeventures.com/articles/2005/11/29/bootstrap-anti-patterns-roundup-the-first-10"&gt;Bootstrap Anti Patterns roundup &amp;#8211; the first 10&lt;/a&gt;&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/b4f9a904efaab5ad71f695824c997c332b955876"&gt;Share your confidential code safely with a Source Code Confidentiality Agreement on our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=7LInTWF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=7LInTWF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=prwQ4bF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=prwQ4bF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=VQyHrrF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=VQyHrrF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=7l91grf"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=7l91grf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=N36JtRf"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=N36JtRf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/249654473" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/03/11/bap-tv-solo-techsupportitis</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-273</id>
    <issued>2008-03-10T21:57:11-05:00</issued>
    <modified>2008-03-10T21:57:14-05:00</modified>
    <title>BAP TV Bootstrapping a business vs playing a business</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/249245052/bap-tv-bootstrapping-a-business-vs-playing-a-business" rel="alternate" type="text/html" />
    <dc:subject>Anti-patterns</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;As everyone is talking about tips for startups at the moment, I thought I&amp;#8217;d maybe start a video conversation about it on &lt;a href="http://www.seesmic.com"&gt;Seesmic&lt;/a&gt;. It&amp;#8217;s based on a fairly popular series of blog posts I did a few years go called &lt;a href="http://stakeventures.com/articles/category/anti-patterns"&gt;Bootstrapping Anti-Patterns&lt;/a&gt;&lt;/p&gt;


&lt;object width="425" height=" 353"&gt;&lt;param name="movie" value="http://seesmic.com/Standalone.swf?video=ajCNRG6NFM"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed src="http://seesmic.com/Standalone.swf?video=ajCNRG6NFM" type="application/x-shockwave-flash" allowFullScreen="true" wmode="transparent" allowScriptAccess="sameDomain" width="425" height=" 353"&gt;&lt;/embed&gt;&lt;/object&gt;

	&lt;p&gt;If you have a Seesmic account and are bootstrapping, please reply with your own experiences. Otherwise feel free to reply here.&lt;/p&gt;


	&lt;p&gt;The original article is here &lt;a href="http://stakeventures.com/articles/2005/05/29/bap-1-bootstrapping-a-business-vs-playing-a-business"&gt;Bootstrapping a business vs playing a business&lt;/a&gt;. An overview of it can be found here &lt;a href="http://stakeventures.com/articles/2005/11/29/bootstrap-anti-patterns-roundup-the-first-10"&gt;Bootstrap Anti Patterns roundup &amp;#8211; the first 10&lt;/a&gt;&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/37a9d0507479e9d5fa48f24c47126bb73bfef40d"&gt;Create a Software Development Agreement with our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=ot36CbF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=ot36CbF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=TczkCqF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=TczkCqF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=bkxjWnF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=bkxjWnF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=DdLvXYf"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=DdLvXYf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=wJ1QQ8f"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=wJ1QQ8f" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/249245052" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/03/10/bap-tv-bootstrapping-a-business-vs-playing-a-business</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-272</id>
    <issued>2008-03-07T12:03:47-05:00</issued>
    <modified>2008-03-07T12:03:49-05:00</modified>
    <title>My new Penryn Mac Book Pro</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/247483956/my-new-penryn-mac-book-pro" rel="alternate" type="text/html" />
    <dc:subject>Gadgets</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;&lt;a href="http://www.flickr.com/photos/pelle/2314292161/" title="MacBook Pro unboxing by pelleb, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3034/2314292161_de8d62fdbe.jpg" width="500" height="375" alt="MacBook Pro unboxing" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;After much deliberation I finally bought the top of the line &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;#38;location=http%3A%2F%2Fwww.amazon.com%2FApple-MacBook-MB134LL-Processor-SuperDrive%2Fdp%2FB0013FLTNS%3Fie%3DUTF8%26s%3Dpc%26qid%3D1204908552%26sr%3D1-23&amp;#38;tag=talkorg-20&amp;#38;linkCode=ur2&amp;#38;camp=1789&amp;#38;creative=9325"&gt;Penryn MacBook Pro&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=talkorg-20&amp;amp;l=ur2&amp;amp;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt; (affiliate link).&lt;/p&gt;


	&lt;p&gt;I very nearly bought the &lt;a href="http://stakeventures.com/articles/2008/01/29/will-i-become-a-macbook-airhead"&gt;&lt;span class="caps"&gt;SSD&lt;/span&gt; MacBook Air&lt;/a&gt;, but I guess sense entered my head when they released new MacBook Pro&amp;#8217;s last week and I ordered it that same morning.&lt;/p&gt;


	&lt;p&gt;So far I&amp;#8217;ve been very happy with it. My unscientific tests say that it&amp;#8217;s about 7 times faster than my old 1.5GHz PowerBook in running &lt;a href="http://rspec.info"&gt;RSpec&lt;/a&gt;, which is where most of my &lt;span class="caps"&gt;CPU&lt;/span&gt; is used normally. It also does it without my &lt;span class="caps"&gt;CPU&lt;/span&gt; meter going crazy.&lt;/p&gt;


	&lt;p&gt;Other nice things is the updated keyboard layout. It is now the same as my beloved &lt;a href="http://stakeventures.com/articles/2007/08/20/the-apple-keyboard-is-fantastic"&gt;Apple &lt;span class="caps"&gt;USB&lt;/span&gt; Keyboard&lt;/a&gt;. I would have liked it to use the new style keyboard though like the MacBook Air. But it&amp;#8217;s still a very nice keyboard.&lt;/p&gt;


	&lt;p&gt;The new multitouch pad is nice. I&amp;#8217;m not too convinced I will be using Zoom and Rotate a lot, but the 3 finger swipe is great. I&amp;#8217;m using &lt;a href="http://wcrawford.org/2008/02/28/everytime-i-think-about-you-i-touch-my-cell/"&gt;MultiClutch&lt;/a&gt; in TextMate to swipe between tabs thanks to &lt;a href="http://twitter.com/al3x/statuses/767792546"&gt;Alex Payne&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Most importantly I feel kind of free and unburdened with it. During Rails development autotest tells growl pops up almost immediately to tell me about an error within a few seconds of hitting Command S on a source file.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.newsfirerss.com/"&gt;NewsFire&lt;/a&gt; is finally usable again with my millions of feeds. &lt;a href="http://www.seesmic.com"&gt;Seesmic&lt;/a&gt; seems to work rather than bring my computer to a halt.&lt;/p&gt;


	&lt;p&gt;Basically I&amp;#8217;m a happy guy. My conclusion is, if you are still on a PowerBook or maybe even on a first generation MacBook Pro, now is the time to upgrade. If you have a year old model, wait a bit.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="http://agree2.com?referrer=0"&gt;Create, negotiate and accept legally binding contracts for free with our Agree2 service.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=LefpX0F"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=LefpX0F" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=2iLpfqF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=2iLpfqF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=GLH5kpF"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=GLH5kpF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=6xhy41f"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=6xhy41f" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=SvTxHmf"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=SvTxHmf" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/247483956" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/03/07/my-new-penryn-mac-book-pro</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-271</id>
    <issued>2008-02-23T17:32:33-05:00</issued>
    <modified>2008-02-23T18:02:38-05:00</modified>
    <title>Developing OAuth clients in Ruby</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/240107149/developing-oauth-clients-in-ruby" rel="alternate" type="text/html" />
    <dc:subject>Programming</dc:subject>
    <dc:subject>Data Portability</dc:subject>
    <dc:subject>Agree2</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;On the request of many people here is a quick guide to developing &lt;a href="http://oauth.net"&gt;OAuth&lt;/a&gt; Consumer Application (Consumer==Client in OAuth Speak) in Ruby.&lt;/p&gt;


	&lt;p&gt;I will be using &lt;a href="https://agree2.com"&gt;Agree2&lt;/a&gt; as the sample application here, so feel free to go &lt;a href="https://agree2.com/users/new"&gt;Register&lt;/a&gt; and load up a irb session to follow along. You could also do the same with &lt;a href="http://twitter.com/oauth"&gt;Twitter&amp;#8217;s OAuth&lt;/a&gt; or any other OAuth server.&lt;/p&gt;


	&lt;p&gt;The general process is:&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;Register your consumer application with the OAuth compliant service to receive your Consumer Credentials (This is only done once)&lt;/li&gt;
		&lt;li&gt;You initiate the OAuth Token exchange process for a user by requesting a &lt;a href="http://code.google.com/p/oauth-plugin/wiki/RequestToken"&gt;RequestToken&lt;/a&gt; from the Service&lt;/li&gt;
		&lt;li&gt;You store the &lt;a href="http://code.google.com/p/oauth-plugin/wiki/RequestToken"&gt;RequestToken&lt;/a&gt; in your database or in the users session object&lt;/li&gt;
		&lt;li&gt;You redirect your user to the service providers authorize_url with the RequestToken&amp;#8217;s key appended&lt;/li&gt;
		&lt;li&gt;Your user is asked by the service provider to authorize your RequestToken&lt;/li&gt;
		&lt;li&gt;Your user clicks yes and is redirected to your CallBack &lt;span class="caps"&gt;URL&lt;/span&gt;&lt;/li&gt;
		&lt;li&gt;Your callback action exchanges the &lt;a href="http://code.google.com/p/oauth-plugin/wiki/RequestToken"&gt;RequestToken&lt;/a&gt; for an &lt;a href="http://code.google.com/p/oauth-plugin/wiki/AccessToken"&gt;AccessToken&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;Now you can access your users data by performing http requests signed by your consumer credentials and the AccessToken.&lt;/li&gt;
		&lt;li&gt;????&lt;/li&gt;
		&lt;li&gt;&lt;span class="caps"&gt;PROFIT&lt;/span&gt;!!!&lt;/li&gt;
	&lt;/ol&gt;


	&lt;h3&gt;Get your Consumer Credentials&lt;/h3&gt;


	&lt;p&gt;Once you are logged in to &lt;a href="https://agree2.com"&gt;Agree2&lt;/a&gt; click the &lt;a href="https://agree2.com/oauth"&gt;Manage OAuth Applications&lt;/a&gt; link in the footer:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080222-xtsxck1dhph4dmjmsijcw29t8i.preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;All OAuth capable applications require you to register your own application first to get your consumer credentials:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080223-bs9ugxuwh6r34rxc6q1utxeghn.preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Click &lt;a href="https://agree2.com/oauth/new"&gt;Register your application&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080222-gdwdhb9ras2i88trwqx41eq3km.preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;Enter the name of your application, the url of your application, the callback url and an optional support url.&lt;/p&gt;


	&lt;p&gt;The callback url is the url that Agree2 redirects to after a user has authorized a token for you. For now just enter a url like http://myapp.com/oauth_client/callback. Click register and hey presto:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080222-r3jmsmwi2322xyes67i5amg4yt.preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;These are your applications Consumer Credentials.&lt;/p&gt;


	&lt;h3&gt;Hooking up your code&lt;/h3&gt;


	&lt;p&gt;As we are nice guys here at &lt;a href="https://agree2.com"&gt;Agree2&lt;/a&gt; also provides actual sample Ruby code on the credentials screen. I will go through this step by step.&lt;/p&gt;


	&lt;p&gt;First of all you need to install the oauth gem (make sure you have at least 0.2.2):&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;sudo gem install oauth&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Your code needs to require the gem and the consumer part of the library:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;gem 'oauth'
require 'oauth/consumer'&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Instantiate your Consumer object with your credentials:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;@consumer=OAuth::Consumer.new "AVff2raXvhMUxFnif06g", 
                              "u0zg77R1bQqbzutAusJYmTxqeUpWVt7U2TjWlzbVZkA", 
                              {:site=&amp;gt;"https://agree2.com"}&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now request a token from Agree2. This method actually performs a signed http request to https://agree2.com/oauth/request_token :&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;@request_token=@consumer.get_request_token&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now you need to redirect the user to the authorize_url&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re in irb just output the url:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;@request_token.authorize_url&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;In a real rails application you would perform a redirect:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;redirect_to @request_token.authorize_url&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;The user will be taken to this screen to authorize the token:&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://img.skitch.com/20080222-dpbsuhd17wf7yne7ecjt93ekh9.preview.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;I think we need to work a bit on the user interface for this. But it does work. The user authorizes the token. and the user is redirected to the callback url you specified earlier.&lt;/p&gt;


	&lt;p&gt;In your callback action you now need to exchange the request token for an AccessToken:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;@access_token=@request_token.get_access_token&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now you are ready to do whatever you wanted to do:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;# Request all your users agreements
@response=@access_token.get "/agreements.xml"&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;The access token object has all the normal http request methods and returns a standard ruby http response.&lt;/p&gt;


	&lt;p&gt;Our next step is to integrate this with ActiveResource. This is being worked on now. Once this is done I will update this tutorial.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/38f8f05d70c7d84f28e349e3a16f8444bdaf4ea8"&gt;Create a simple NDA with zero legalese in no time at all and for free at our service Agree2.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=nSJHAOE"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=nSJHAOE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=CKrxJyE"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=CKrxJyE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=TbMHoQE"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=TbMHoQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=3TB8ple"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=3TB8ple" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=KL7HiXe"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=KL7HiXe" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/240107149" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/02/23/developing-oauth-clients-in-ruby</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-270</id>
    <issued>2008-02-21T14:50:31-05:00</issued>
    <modified>2008-02-21T14:51:14-05:00</modified>
    <title>Don't indenture employee nr. 4</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/238982618/dont-indenture-employee-nr-4" rel="alternate" type="text/html" />
    <dc:subject>Think outside the rounded box</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;&lt;a href="http://www.flickr.com/photos/pelle/443071964/" title="I wouldn't want this falling down over me by pelleb, on Flickr"&gt;&lt;img src="http://farm1.static.flickr.com/184/443071964_d6d133f043.jpg" width="500" height="375" alt="I wouldn't want this falling down over me" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;I see &lt;a href="http://www.daviddalka.com/createvalue/2008/02/20/google-creates-alumni-relations-program-manager-position/"&gt;Google is creating a Alumni Relations Program&lt;/a&gt; to help create a informal network of ex Google employees.&lt;/p&gt;


	&lt;p&gt;I think this is a great idea. I&amp;#8217;ve always thought that current employees should be (but rarely are) thought of as potential future ambassadors, business partners and clients.&lt;/p&gt;


	&lt;p&gt;Alumni such as the PayPal alumni, often go do great things together based on their informal network. Rarely does the originating startup benefit at all from these often very strong networks.&lt;/p&gt;


	&lt;p&gt;I think the following 2 problems are what causes this.&lt;/p&gt;


	&lt;h3&gt;Tight knit startup cultures and traitors&lt;/h3&gt;


	&lt;p&gt;Good startups have a very strong team culture. We&amp;#8217;re all in this together, we&amp;#8217;re taking the same risks, working the same hours, living the same dream.&lt;/p&gt;


	&lt;p&gt;This culture is great and important but it also has the very natural side effect of turning people who leave to pursue other dreams into traitors.&lt;/p&gt;


	&lt;p&gt;There are these awkward moments before the traitor leaves, where no one really wants to talk about it. After the person leaves, he is a natural scape goat when the server crashes as an after affect of that 3am hacking session a few weeks ago.&lt;/p&gt;


	&lt;p&gt;All in all it&amp;#8217;s about as uncomfortable as a divorce, with many of the same symptoms.&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;m not quite sure how to avoid this. But one way would be to actually discuss these things when the employee starts. Lets realize that it&amp;#8217;s a real possibility that employee nr 4 in a hot San Francisco Startup might get a more interesting offer or start his own shop in 6 months time. It has been known to happen.&lt;/p&gt;


	&lt;p&gt;Rather than all the uncomfortable silences you should rather look at this as an opportunity. Talk openly about where they employee is going and what he&amp;#8217;s going to be doing. Encourage him to stop by for lunch in the future, who knows there may very well be something that the 2 startups involved can do together in the future. Even informally.&lt;/p&gt;


	&lt;p&gt;He should be your ambassador and a potential future partner. You might even want to pay a small monthly retainer for him to help out an hour or two a month in case a problem comes up only he knows how to do.&lt;/p&gt;


	&lt;h3&gt;How stock option vesting affect alumnis&lt;/h3&gt;


	&lt;p&gt;Traditionally startups have been desperate to retain employees for as long as possible. One of the ways this is done is by offering stock options with long vesting periods. This means you would have to stay in the company for say 2 years before you could exercise (sell) your stock options.&lt;/p&gt;


	&lt;p&gt;This I think is a mistake. I have known many people who really want to move on and do something else often for them selves, but who have felt stuck and bitter due to this contract. You often hear the term indentured servant being thrown around.&lt;/p&gt;


	&lt;p&gt;What happens is one of 3 things:&lt;/p&gt;


	&lt;ol&gt;
	&lt;li&gt;The employee sticks out the vesting period, making money from the options. He&amp;#8217;s a happy man. However he still might leave shortly after he is able to exercise his options.&lt;/li&gt;
		&lt;li&gt;The employee sticks it out for the vesting period. His stock options are fully vested but worthless. He is bitter that he wasted 2 years of his life on this, when he said no to other offers or he could have started his own shop.&lt;/li&gt;
		&lt;li&gt;The employee leaves early for a better opportunity feeling bitter that he left the stock options. Often this kind of employee starts bad mouthing the old startup. The founder was a fool, the VC&amp;#8217;s destroyed it whatever. Typical drunk bar talk in the Bay Area.&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;Now the Alumni program Google has fits well with them as their alumni probably come under the first item above. Their alumni are happy, they made out well and now want to experience new things.&lt;/p&gt;


	&lt;h3&gt;A better solution&lt;/h3&gt;


	&lt;p&gt;I know nothing about stock option law etc. But I can&amp;#8217;t help thinking that a more flexible approach to stock options for employees (and freelancers even) might hold part of the solution.&lt;/p&gt;


	&lt;p&gt;Is it possible to vest someone bit by bit on a quarterly basis? Maybe vest entirely within a year, but from the outset offer bonus stock options if you make it to year 2. That small change itself might make stock options feel more like carrots than shackles. Less bitterness.&lt;/p&gt;


	&lt;p&gt;Once an employee leaves, why not allow some kind of limited stock option plan as part of being part of the informal alumni network and/or being on retainer.&lt;/p&gt;


	&lt;p&gt;I know there are all kinds of solutions to this. However I feel that too often very innovative startups keep doing things the way they always have been done in the valley. Without questioning why.&lt;/p&gt;


	&lt;p&gt;This has been another piece in my blog series &lt;a href="http://stakeventures.com/articles/category/think-outside-the-rounded-box"&gt;Think outside the Rounded Box&lt;/a&gt;.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/b4f9a904efaab5ad71f695824c997c332b955876"&gt;Share your confidential code safely with a Source Code Confidentiality Agreement on our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=Q5hH1ZE"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=Q5hH1ZE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=t7QJNlE"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=t7QJNlE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=5mDu2tE"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=5mDu2tE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=Ab3oU0e"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=Ab3oU0e" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=ZMU1TYe"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=ZMU1TYe" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/238982618" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/02/21/dont-indenture-employee-nr-4</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-269</id>
    <issued>2008-02-01T15:42:51-05:00</issued>
    <modified>2008-02-01T15:42:55-05:00</modified>
    <title>MacBook SSD may actually be one of the fastest MacBooks</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/227446897/macbook-ssd-may-actually-be-one-of-the-fastest-macbooks" rel="alternate" type="text/html" />
    <dc:subject>Gadgets</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;Yes it expensive, but the first early benchmarks and user reports are trickling in now and it looks very impressive indeed. This adds even more fuel into the &lt;a href="http://stakeventures.com/articles/2008/01/29/will-i-become-a-macbook-airhead"&gt;internal MacBook controversy I&amp;#8217;m facing&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.macrumors.com"&gt;MacRumors&lt;/a&gt; user &lt;a href="http://forums.macrumors.com/member.php?u=155251"&gt;bjdraw&lt;/a&gt; posted &lt;a href="http://forums.macrumors.com/showpost.php?p=4875118&amp;#38;postcount=11"&gt;XBench marks for the MacBook Air 1.8GHz &lt;span class="caps"&gt;SSD&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;Was just at the Apple store playing with the 1.8 &lt;span class="caps"&gt;SSD&lt;/span&gt;. I downloaded xBench and ran the test. The overall disk score was 48, which is faster than any Apple laptop benched recently by Engadget .&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;&lt;a href="http://forums.macrumors.com/member.php?u=59398"&gt;Salty Pirate&lt;/a&gt; also tried it out:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;The &lt;span class="caps"&gt;SSD&lt;/span&gt; is wicked fast. Programs load almost instantly. Faster than on my &lt;span class="caps"&gt;MBP 2&lt;/span&gt;.4 with a 200GB 7200 disk. I have changed my mind and I am gonna get the &lt;span class="caps"&gt;SSD&lt;/span&gt; &lt;a href="http://forums.macrumors.com/showpost.php?p=4874446&amp;#38;postcount=8"&gt;link&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;&lt;a href="http://forums.macrumors.com/member.php?u=155573"&gt;Viper&lt;/a&gt; says:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;I think you would notice a performance difference&amp;#8230;.what i have read is that opening itunes with the &lt;span class="caps"&gt;SSD&lt;/span&gt; takes &lt;1 bounce of the dock icon, while with the 1.6/80 it takes 2-3 bounces....since this action is mostly reading from the HDD and not processor intense, you can infer that the SSD is much faster. &lt;a href="http://forums.macrumors.com/showpost.php?p=4874438&amp;#38;postcount=7"&gt;link&lt;/a&gt;&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;h3&gt;Suitability for development&lt;/h3&gt;


	&lt;p&gt;Assuming that you can weed your stuff down to fit on the 64GB model, what about development speed.&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;SSD&lt;/span&gt; drives are fast at anything except random access writes, which I think is what goes on when you compile code and run lots of inserts and updates in a database. Can anyone provide an opinion on this? It&amp;#8217;s not that I&amp;#8217;m going to be hosting on it, but it would be nice if autotest speeds aren&amp;#8217;t adversely affected by it as I talked about in my &lt;a href="http://stakeventures.com/articles/2008/01/29/will-i-become-a-macbook-airhead"&gt;previous MacBook Air Post&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;For easy reading here are the XBench Bench marks:&lt;/p&gt;


&lt;pre&gt;Results    59.23    
    System Info        
        Xbench Version        1.3
        System Version        10.5.1 (9B2324)
        Physical RAM        2048 MB
        Model        MacBookAir1,1
        Drive Type        MCCOE64GEMPP MCCOE64GEMPP
    CPU Test    99.61    
        GCD Loop    198.48    10.46 Mops/sec
        Floating Point Basic    91.95    2.18 Gflop/sec
        vecLib FFT    82.14    2.71 Gflop/sec
        Floating Point Library    82.87    14.43 Mops/sec
    Thread Test    134.99    
        Computation    132.25    2.68 Mops/sec, 4 threads
        Lock Contention    137.85    5.93 Mlocks/sec, 4 threads
    Memory Test    148.00    
        System    147.16    
            Allocate    196.92    723.16 Kalloc/sec
            Fill    121.83    5923.81 MB/sec
            Copy    140.85    2909.18 MB/sec
        Stream    148.84    
            Copy    139.04    2871.77 MB/sec
            Scale    138.74    2866.37 MB/sec
            Add    160.25    3413.70 MB/sec
            Triad    160.42    3431.74 MB/sec
    Quartz Graphics Test    107.74    
        Line    111.96    7.45 Klines/sec [50% alpha]
        Rectangle    120.42    35.95 Krects/sec [50% alpha]
        Circle    97.44    7.94 Kcircles/sec [50% alpha]
        Bezier    109.91    2.77 Kbeziers/sec [50% alpha]
        Text    101.95    6.38 Kchars/sec
    OpenGL Graphics Test    18.27    
        Spinning Squares    18.27    23.18 frames/sec
    User Interface Test    113.53    
        Elements    113.53    521.06 refresh/sec
    Disk Test    47.26    
        Sequential    40.82    
            Uncached Write    33.92    20.83 MB/sec [4K blocks]
            Uncached Write    46.51    26.32 MB/sec [256K blocks]
            Uncached Read    27.24    7.97 MB/sec [4K blocks]
            Uncached Read    97.00    48.75 MB/sec [256K blocks]
        Random    56.13    
            Uncached Write    21.06    2.23 MB/sec [4K blocks]
            Uncached Write    52.85    16.92 MB/sec [256K blocks]
            Uncached Read    990.68    7.02 MB/sec [4K blocks]
            Uncached Read    259.96    48.24 MB/sec [256K blocks]&lt;/pre&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/37a9d0507479e9d5fa48f24c47126bb73bfef40d"&gt;Create a Software Development Agreement with our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=xsHuZLE"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=xsHuZLE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=iwnzd6E"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=iwnzd6E" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=ug4Qs8E"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=ug4Qs8E" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=SVI4Bge"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=SVI4Bge" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=GxuvYje"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=GxuvYje" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/227446897" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/02/01/macbook-ssd-may-actually-be-one-of-the-fastest-macbooks</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-268</id>
    <issued>2008-01-30T05:44:04-05:00</issued>
    <modified>2008-01-30T05:45:36-05:00</modified>
    <title>Important OAuth for Ruby milestone</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/225831207/important-oauth-for-ruby-milestone" rel="alternate" type="text/html" />
    <dc:subject>Programming</dc:subject>
    <dc:subject>Data Portability</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;Today I released the new version of the &lt;a href="http://code.google.com/p/oauth-plugin/"&gt;OAuth Rails plugin&lt;/a&gt; . This finally supports the new &amp;#8220;all together now&amp;#8221; release of the &lt;a href="http://oauth.rubyforge.org"&gt;OAuth Ruby Gem&lt;/a&gt;, which &lt;a href="http://twitter.com/blaine"&gt;Blaine Cook&lt;/a&gt; and me have worked hard to merge together from our previous incarnations.&lt;/p&gt;


	&lt;p&gt;I previously posted a guide to &lt;a href="http://stakeventures.com/articles/2007/11/26/how-to-turn-your-rails-site-into-an-oauth-provider"&gt;how to turn your rails site into an OAuth Provider&lt;/a&gt;, which should still be pretty much be correct as there haven&amp;#8217;t been too many changes to the api that you would use within your rails application.&lt;/p&gt;


	&lt;p&gt;See the &lt;a href=":http://code.google.com/p/oauth-plugin/"&gt;OAuth Plugin Documentation&lt;/a&gt; for more detailed installation instructions.&lt;/p&gt;


	&lt;p&gt;If you are using the plugin or gem please join the &lt;a href="http://groups.google.com/group/oauth-ruby"&gt;OAuth-Ruby Google Group&lt;/a&gt;&lt;/p&gt;


	&lt;h3&gt;Updating&lt;/h3&gt;


	&lt;p&gt;If you have previously installed the plugin you need to first update your OAuth gem to the latest version. I&amp;#8217;m afraid you also do need to rerun the generator. There haven&amp;#8217;t been any changes to the view code so you can leave them be if you&amp;#8217;ve made your own changes.&lt;/p&gt;


	&lt;h3&gt;Credits&lt;/h3&gt;


	&lt;p&gt;The new OAuth gem was basically a merge of my previous gem which we merged with the Blaine&amp;#8217;s original OAuth code, which is used on &lt;a href="http://twitter.com/oauth"&gt;Twitter&lt;/a&gt;. Large chunks of this has been written by &lt;a href="http://larryhalff.com/"&gt;Larry Halff&lt;/a&gt; and &lt;a href="http://jesseclark.com/blog/"&gt;Jesse Clark&lt;/a&gt; of &lt;a href="http://wiki.ma.gnolia.com/OAuth"&gt;Ma.gnolia&lt;/a&gt;. Further help and patches came from amongst other people &lt;a href="http://blog.geobliki.com/"&gt;Pat Cappelaere&lt;/a&gt;, &lt;a href="http://kaboomerang.com/"&gt;Jon Crosby&lt;/a&gt;, &lt;a href="http://mojodna.com"&gt;Seth Fitzsimmons&lt;/a&gt; and &lt;a href="http://myelin.co.nz/"&gt;Phillip Pearson&lt;/a&gt;.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="http://agree2.com?referrer=0"&gt;Create, negotiate and accept legally binding contracts for free with our Agree2 service.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=Xv03vxD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=Xv03vxD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=euT7GxD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=euT7GxD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=i4YiclD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=i4YiclD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=ltptP1d"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=ltptP1d" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=82OK9zd"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=82OK9zd" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/225831207" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/01/30/important-oauth-for-ruby-milestone</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-267</id>
    <issued>2008-01-29T05:12:07-05:00</issued>
    <modified>2008-01-29T05:15:17-05:00</modified>
    <title>Will I become a MacBook Airhead?</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/225148855/will-i-become-a-macbook-airhead" rel="alternate" type="text/html" />
    <dc:subject>Gadgets</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;&lt;a href="http://www.flickr.com/photos/pelle/2202199230/" title="MacBook Air by pelleb, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2141/2202199230_65df12ed9d.jpg" width="500" height="266" alt="MacBook Air" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Much has been said about the pros and cons of the &lt;a href="http://www.apple.com/macbookair/"&gt;MacBook Air&lt;/a&gt;. Lot of strong opinions are out there. I just thought I&amp;#8217;d add my 2 cents to this as I&amp;#8217;m starting to consider this be the replacement for my 3 year old 15&amp;#8221; Powerbook G4.&lt;/p&gt;


	&lt;p&gt;My plan was to get one of the next generation MacBook Pro&amp;#8217;s when they become available. But now I&amp;#8217;m really becoming really tempted at the &lt;span class="caps"&gt;MBA&lt;/span&gt; instead.&lt;/p&gt;


	&lt;p&gt;Now, my 5 main activities on my computer is coding, browsing, email, music and IM (which includes twitter). I rarely do any kind of 3d graphics and never play any games, so I&amp;#8217;m not too worried about 3D performance.&lt;/p&gt;


	&lt;p&gt;Looking at various benchmarks the &lt;span class="caps"&gt;MBA&lt;/span&gt; is already way faster than my PowerBook on almost everything except disk and opengl. Which sounds good to me.&lt;/p&gt;


	&lt;p&gt;The two areas that give me trouble performance wise right now is ruby performance both when doing local mongrel requests as well as rspec. Running a single pass of all our specs for &lt;a href="https://agree2.com"&gt;Agree2&lt;/a&gt; on my PB gives me:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Finished in 991.699454 seconds&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;My partners 2GHz Core MacBook Pro gives runs the same set of specs like this:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Finished in 105.491531 seconds&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;If I can get my rspec speed down to somewhere under 2 minutes I would be happy.&lt;/p&gt;


	&lt;p&gt;My biggest problem is the drive size. My iTunes library is about 100GB, so I would have to cut that well down. Maybe even down to around 20GB. My guess this should be doable. I wish iTunes would allow you to partition your music library.&lt;/p&gt;


	&lt;p&gt;I love the size of the &lt;span class="caps"&gt;MBA&lt;/span&gt;. I travel a lot and carry my PB out with me on client meetings all the time. The keyboard is nice and the screen perfectly adequate on the &lt;span class="caps"&gt;MBA&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;All of this said if Apple releases a new &lt;span class="caps"&gt;MBP&lt;/span&gt; in the next month I&amp;#8217;ll probably change my mind and go with the safe choice. My guess is I will have made a decision and ordered a MB(P|A) by early March.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/38f8f05d70c7d84f28e349e3a16f8444bdaf4ea8"&gt;Create a simple NDA with zero legalese in no time at all and for free at our service Agree2.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=kdVyozD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=kdVyozD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=3bvAwrD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=3bvAwrD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=V34NplD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=V34NplD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=Mc7nTNd"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=Mc7nTNd" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=8tsbrzd"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=8tsbrzd" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/225148855" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/01/29/will-i-become-a-macbook-airhead</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-266</id>
    <issued>2008-01-25T14:41:44-05:00</issued>
    <modified>2008-01-25T14:41:48-05:00</modified>
    <title>Burn your checkbook!!</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/223098826/burn-your-checkbook" rel="alternate" type="text/html" />
    <dc:subject>Money</dc:subject>
    <dc:subject>Think outside the rounded box</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;Please, please, please get with the program. Checks are ancient pre industrial age relics that still hang around in a few places in the world. Unfortunately the worlds most dynamic economy the US is still addicted to checks. This makes this article extremely US centric, but it also affects non US readers who do business with US businesses.&lt;/p&gt;


	&lt;p&gt;I also want to say that I am not in anyway targeting any specific clients of mine here. This is a generic problem and based on conversations I have had with other US based freelancers. That said, with the exception of one client all my US clients have insisted on using checks.&lt;/p&gt;


	&lt;p&gt;I am targeting web 2.0 businesses here in particular. We are constantly asking other people to &amp;#8220;think outside the box&amp;#8221; and do things transparently and online. Paying people with checks is basically the least transparent and online thing we do as part of doing business. There are great alternatives that we can and should use.&lt;/p&gt;


	&lt;h3&gt;What is so wrong with checks you might ask?&lt;/h3&gt;


	&lt;p&gt;Everyone uses them? First the obvious:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Snail mail is so 1980s&lt;/li&gt;
		&lt;li&gt;I have better things to do than go stand in line at a bank (thats such an old fashioned activity)&lt;/li&gt;
		&lt;li&gt;Relatively high risk for recipient&lt;/li&gt;
		&lt;li&gt;Slow clearing. In particular for international payments.&lt;/li&gt;
		&lt;li&gt;For international payments the recipient (and his bank) is likely to say &amp;#8220;what is this thing you call a check?&amp;#8221; (See &lt;a href="http://jlaine.net/2007/7/27/a-tale-of-a-cheque"&gt;Jarkko&amp;#8217;s experience trying to deposit a US check in Finland&lt;/a&gt;)&lt;/li&gt;
	&lt;/ul&gt;

&lt;h3&gt;So why do people use checks?&lt;/h3&gt;


	&lt;ul&gt;
	&lt;li&gt;Is there any other way to pay?&lt;/li&gt;
		&lt;li&gt;Habit&lt;/li&gt;
		&lt;li&gt;Intentional delays &amp;#8211; Hopefully by the time he receives the check, the check I just received will have cleared.&lt;/li&gt;
		&lt;li&gt;Float &amp;#8211; earn interest on the money until the victim/supplier is able to clear it.&lt;/li&gt;
		&lt;li&gt;My accountant told me to do so&lt;/li&gt;
		&lt;li&gt;There is not an easy way to send payments electronically in the US&lt;/li&gt;
		&lt;li&gt;It is the cheapest option&lt;/li&gt;
	&lt;/ul&gt;


	&lt;h3&gt;Alternatives?&lt;/h3&gt;


	&lt;p&gt;PayPal and &lt;span class="caps"&gt;ACH&lt;/span&gt; transfers are the best alternative for US businesses. For international transactions PayPal is good if it&amp;#8217;s available in the recipients country, otherwise &lt;span class="caps"&gt;SWIFT&lt;/span&gt; transfers are available all over the world. If you are worried about cost, ask the payee if he&amp;#8217;d be willing to go 50%/50%.&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;ACH&lt;/span&gt; is only good within the US but is a fairly cheap option. &lt;span class="caps"&gt;ACH&lt;/span&gt; is the network that is normally used for payroll, but it is actually also the backend network used for clearing of checks, so it really is very economical. The downside is that there may be a day or two&amp;#8217;s clearing of funds. Ask your bank how to do it. I believe most banks should be able to offer it. My bank Wells Fargo sent me a &lt;span class="caps"&gt;RSA&lt;/span&gt; Secure ID to be able to do &lt;span class="caps"&gt;ACH&lt;/span&gt; payment, which they call DirectPay. To send someone money this way all you need is the name, &lt;span class="caps"&gt;ABA&lt;/span&gt; number and account number of the recipients bank account.&lt;/p&gt;


	&lt;p&gt;PayPal has been around now for nearly 10 years and is a great option. It&amp;#8217;s easy, it&amp;#8217;s quick, it&amp;#8217;s safe, it&amp;#8217;s the Web 2.0 of money. Use it. The downside that the recipient may have to pay up to 2.9% transaction cost. I know personally I&amp;#8217;ll happily absorb that cost for the convenience of not having to waste an hour going to the bank. A non obvious benefit with PayPal is that if you can use your credit card and receive air miles, that potentially could add up.&lt;/p&gt;


	&lt;h3&gt;Habit&lt;/h3&gt;


	&lt;p&gt;Not an excuse, get over it.&lt;/p&gt;


	&lt;h3&gt;Intentional delays&lt;/h3&gt;


	&lt;p&gt;First of all the intentional delays might be fine for the struggling cash strapped startup juggling large faceless suppliers such as the phone company etc. However as a startup your core suppliers are likely to be various kinds of human resources such as programmers and designers who you work closely with. I think this is highly disrespectful. Freelancers are just as likely to be cash strapped as you are. The way to deal with this is to be honest with your suppliers.&lt;/p&gt;


	&lt;p&gt;While we all would like to be paid on time, we all live and understand the realities of being a startup. Give us a heads up with an estimated time of payment and we are probably happier than hearing the &amp;#8220;check is in the mail&amp;#8221; defense for the 10th time.&lt;/p&gt;


	&lt;h3&gt;Float&lt;/h3&gt;


	&lt;p&gt;This is also an intentional delay and a really stupid one for most startups. Unless you are operating at the scale of a business like PayPal, the few dollars you make in extra interest is really not worth pissing off your suppliers.&lt;/p&gt;


	&lt;h3&gt;My account told me to write checks&lt;/h3&gt;


	&lt;p&gt;I&amp;#8217;ve heard this over the years. Checks makes the accountants life easier. Seriously. That is just a load of cr*p. You already handle book keeping and receipts for all sorts of electronic transfers. Besides providing email receipts, PayPal and Banks have this innovative feature called a statement. It has all the information you or your account needs to match transactions with invoices.&lt;/p&gt;


	&lt;p&gt;As small businesses we often take everything our accountants and lawyers say as gospel, remember they are people just like us. They are however way more traditional thinking and less likely to question status quo, than your average founder of a revolutionary social web 2.0 startup. Question the advise they give you.&lt;/p&gt;


	&lt;h3&gt;There is not an easy way to send payments electronically in the US&lt;/h3&gt;


	&lt;p&gt;See the section on alternatives. There are 2 very good options that you probably already use for other things.&lt;/p&gt;


	&lt;h3&gt;But checks are cheap&lt;/h3&gt;


	&lt;p&gt;Firstly &lt;span class="caps"&gt;ACH&lt;/span&gt; payments are pretty cheap. I already mentioned that many suppliers are happy to absorb the extra transaction cost of paypal.&lt;/p&gt;


	&lt;p&gt;However checks are not cheap. Ok it might take you a few minutes to write one out and put it in an envelope. However think about the recipient. It costs me about an hours worth of lost earnings to go to my bank and deposit a check. That is a pretty heavy transaction cost for me.&lt;/p&gt;


	&lt;h3&gt;Burn your check book!!&lt;/h3&gt;


	&lt;p&gt;Just say no to the check option. There really is no excuse for you to pay people (yes suppliers are people too) by check. If you have been annoyed at some point having to go deposit a check, stop the cycle and don&amp;#8217;t do it for your own suppliers. Almost every other aspect of our life is handled electronically and you as a visionary entrepreneur should know better.&lt;/p&gt;

&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/b4f9a904efaab5ad71f695824c997c332b955876"&gt;Share your confidential code safely with a Source Code Confidentiality Agreement on our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=A7XDNTD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=A7XDNTD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=xlCZVVD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=xlCZVVD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=qzfDYQD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=qzfDYQD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=RKKNYqd"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=RKKNYqd" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=cOjM9vd"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=cOjM9vd" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/223098826" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/01/25/burn-your-checkbook</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-265</id>
    <issued>2008-01-25T13:32:48-05:00</issued>
    <modified>2008-01-25T13:32:53-05:00</modified>
    <title>Think outside the rounded box</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/223067208/think-outside-the-rounded-box" rel="alternate" type="text/html" />
    <dc:subject>Think outside the rounded box</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;Living in &lt;span class="caps"&gt;SOMA&lt;/span&gt; San Francisco like I do, you often feel (rightly or wrongly) that you are part of this massive revolution. Earlier it was labelled the &amp;#8220;dot com/bomb&amp;#8221; revolution, now it&amp;#8217;s more likely to be the &amp;#8220;social network&amp;#8221; or &amp;#8220;Web 2.0&amp;#8221; revolution.&lt;/p&gt;


	&lt;p&gt;It can be argued that some of this is nothing more than just another reality distortion field, but with some critical thinking I think these are all part of a longer and very real revolution happening in both society and economics.&lt;/p&gt;


	&lt;p&gt;You do get some very smart people here (and elsewhere of course) thinking about real innovation in a number of fields. There is one thing though I have noticed and that is outside the world of their exact field of interest (data portability, video sharing, project management etc) the majority of the startups do very little innovation in the day to day aspects of their business.&lt;/p&gt;


	&lt;p&gt;My plan here is to create a new category in my blog like I originally did with &lt;a href="http://stakeventures.com/articles/category/anti-patterns"&gt;Bootstrappers Anti-Patterns&lt;/a&gt; which I&amp;#8217;m calling &lt;a href="http://stakeventures.com/articles/category/think-outside-the-rounded-box"&gt;Think outside the Rounded Box&lt;/a&gt;, where I will try to talk about some of the silly old habits that even real innovators unfortunately still follow.&lt;/p&gt;


	&lt;p&gt;These are based on a combination of my own experiences and talking over the last year to lots of different people working with and in the &amp;#8220;social network&amp;#8221; or &amp;#8220;Web 2.0&amp;#8221; revolution.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/37a9d0507479e9d5fa48f24c47126bb73bfef40d"&gt;Create a Software Development Agreement with our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=2m1RZyD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=2m1RZyD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=CT1a1VD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=CT1a1VD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=Kr4JxQD"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=Kr4JxQD" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=X4rmmsd"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=X4rmmsd" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=gMTeeTd"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=gMTeeTd" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/223067208" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2008/01/25/think-outside-the-rounded-box</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-264</id>
    <issued>2007-11-27T04:10:07-05:00</issued>
    <modified>2008-01-25T13:19:57-05:00</modified>
    <title>More OAuth for Rails</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/191172132/more-oauth-for-rails" rel="alternate" type="text/html" />
    <dc:subject>Data Portability</dc:subject>
    <dc:subject>Programming</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;I&amp;#8217;ve made a few changes today to make it easier for other people to create OAuth Rails plugins using my core library.&lt;/p&gt;


	&lt;p&gt;The most important change is that I have pulled out most of the juice in the plugin into an &lt;a href="http://oauth.rubyforge.org/"&gt;OAuth &lt;span class="caps"&gt;GEM&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;This means you now need to install the gem before you can use the plugin:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;sudo gem install oauth&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Easy.&lt;/p&gt;


	&lt;p&gt;I have also moved the plugin repository around a bit. I&amp;#8217;m sorry if you&amp;#8217;ve alredy installed it. I made a mistake when I first created it. Now it should have a better url for installing as a plugin:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;script/plugin install http://oauth-plugin.googlecode.com/svn/trunk/oauth_plugin&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;I have updated the instructions in my last post &lt;a href="http://stakeventures.com/articles/2007/11/26/how-to-turn-your-rails-site-into-an-oauth-provider"&gt;How to turn your rails site into an OAuth Provider&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Last but not least I started an &lt;a href="http://groups.google.com/group/oauth-ruby"&gt;oauth-ruby mailing list&lt;/a&gt; for Ruby specific implementation issues. Rails developers tend not to be scared of trying new things and it would be better to leave questions about integrating them with specific authentication libraries etc to a separate list.&lt;/p&gt;


	&lt;p&gt;If you are interested in the actual standard you should also join the main &lt;a href="http://groups.google.com/group/oauth"&gt;OAuth&lt;/a&gt; list.&lt;/p&gt;


	&lt;p&gt;Phew. off to bed. If you have questions and you&amp;#8217;re at the SF Ruby meetup today come up and say hi.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="http://agree2.com?referrer=0"&gt;Create, negotiate and accept legally binding contracts for free with our Agree2 service.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=LJcGhbB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=LJcGhbB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=PHHawPB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=PHHawPB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=KBfM8FB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=KBfM8FB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=QH1J6eb"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=QH1J6eb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=itL1Qxb"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=itL1Qxb" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/191172132" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2007/11/27/more-oauth-for-rails</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-263</id>
    <issued>2007-11-26T01:35:38-05:00</issued>
    <modified>2008-01-25T13:19:21-05:00</modified>
    <title>How to turn your rails site into an OAuth Provider</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/190602944/how-to-turn-your-rails-site-into-an-oauth-provider" rel="alternate" type="text/html" />
    <dc:subject>Data Portability</dc:subject>
    <dc:subject>Programming</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;&lt;strong&gt;This has been updated on the Nov 27th 2007. Please read below if you have already installed it&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://oauth.net"&gt;OAuth&lt;/a&gt; is the great new standard allowing your users to use your application to talk to their accounts on other applications. I won&amp;#8217;t go more into it here as it&amp;#8217;s pretty well covered on the &lt;a href="http://oauth.net"&gt;OAuth&lt;/a&gt; site.&lt;/p&gt;


	&lt;p&gt;I have created an &lt;a href="http://code.google.com/p/oauth-plugin/"&gt;OAuth Rails Plugin&lt;/a&gt; and an &lt;a href="http://oauth.rubyforge.org"&gt;oauth gem&lt;/a&gt; which will help you to create both oauth providers and consumers.&lt;/p&gt;


	&lt;h3&gt;Consumers and Providers&lt;/h3&gt;


	&lt;p&gt;I will cover consumers in another post, but it&amp;#8217;s probably a good idea to explain what the difference is:&lt;/p&gt;


	&lt;p&gt;A consumer is an application that uses another web applications data. For example for a mashup. It is mainly intended for web applications, but there is nothing to stop you from writing say a &lt;a href="http://code.google.com/p/oauthconsumer/wiki/UsingOAuthConsumer"&gt;way cool Mac client in Cocoa&lt;/a&gt; as well.&lt;/p&gt;


	&lt;p&gt;A provider is a web application that the consumer wants to access.&lt;/p&gt;


	&lt;p&gt;The classic example is a photo printing site as a consumer and a photo site (like Flickr) as the provider.&lt;/p&gt;


	&lt;h3&gt;Provider features&lt;/h3&gt;


	&lt;p&gt;The plugin can generate an oauth provider that supports the following out of the box:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;User can register their own applications to receive consumer key/secret pairs.&lt;/li&gt;
		&lt;li&gt;Provider supports standard best practises out of the box hmac-sha1 etc.&lt;/li&gt;
		&lt;li&gt;Users can manage and revoke tokens issued in their name&lt;/li&gt;
		&lt;li&gt;Easy before filter to provide oauth protection on your actions&lt;/li&gt;
	&lt;/ul&gt;

&lt;h3&gt;Install the plugin&lt;/h3&gt;


	&lt;p&gt;This plugin currently requires Rails 2. If someone would like to make it Rails 1.2 compatible. Please feel free to submit patches.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;&lt;span class="caps"&gt;NEW&lt;/span&gt;&lt;/strong&gt; First install the oauth gem:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;sudo gem install oauth&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Then install the plugin:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;script/plugin install http://oauth-plugin.googlecode.com/svn/trunk/oauth_plugin&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;You also need an authentication plugin that is compatible with &lt;a href="http://technoweenie.stikipad.com/plugins/show/Acts+as+Authenticated"&gt;acts_as_authenticated&lt;/a&gt;, &lt;a href="http://agilewebdevelopment.com/plugins/restful_authentication"&gt;restful_authentication&lt;/a&gt; or &lt;a href="http://identity.eastmedia.com/identity/show/Restful%20OpenID%20Authentication"&gt;restful_openid_authentication&lt;/a&gt;.&lt;/p&gt;


	&lt;h3&gt;Lets create your provider&lt;/h3&gt;


	&lt;p&gt;The generator is not very flexible at the moment. So it doesn&amp;#8217;t really allow you to change names for models and controllers.&lt;/p&gt;


	&lt;p&gt;Type:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;script/generate oauth_provider&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This creates OauthController and a few different models.&lt;/p&gt;


	&lt;p&gt;Until I figure out how to do this automatically you need to enter the following into your routes.rb&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;map.oauth '/oauth',:controller=&amp;gt;'oauth',:action=&amp;gt;'index'
map.authorize '/oauth/authorize',:controller=&amp;gt;'oauth',:action=&amp;gt;'authorize'
map.request_token '/oauth/request_token',:controller=&amp;gt;'oauth',:action=&amp;gt;'request_token'
map.access_token '/oauth/access_token',:controller=&amp;gt;'oauth',:action=&amp;gt;'access_token'
map.test_request '/oauth/test_request',:controller=&amp;gt;'oauth',:action=&amp;gt;'test_request'&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;You also need to add a few associations to your user object:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;has_many :client_applications
has_many :tokens, :class_name=&amp;gt;"OauthToken",:order=&amp;gt;"authorized_at desc",:include=&amp;gt;[:client_application]&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Now run your migrations and start your server:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;rake db:migrate
script/server&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;And your oauth provider is now up and running on &lt;a href="http://localhost:3000/oauth"&gt;http://localhost:3000/oauth&lt;/a&gt; to start registering a client application.&lt;/p&gt;


	&lt;h3&gt;Protect your actions&lt;/h3&gt;


	&lt;p&gt;I recommend that you think about what your users would want to provide access to and limit oauth for those only. For example in a &lt;span class="caps"&gt;CRUD&lt;/span&gt; controller you may think about if you want to let consumer applications do the create, update or delete actions. For your application this might make sense, but for others maybe not.&lt;/p&gt;


	&lt;p&gt;If you want to give oauth access to everything a registered user can do, just replace the filter you have in your controllers with:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;before_filter :login_or_oauth_required&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;If you want to restrict consumers to the index and show methods of your controller do the following:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;before_filter :login_required,:except=&amp;gt;[:show,:index]
before_filter :login_or_oauth_required,:only=&amp;gt;[:show,:index]&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;If you have an action you only want used via oauth:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;before_filter :oauth_required&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;All of these places the tokens user in current_user as you would expect.&lt;/p&gt;


	&lt;p&gt;Please bear in mind this is still early days and their maybe some major bugs and or changes coming. But please help me test the code.&lt;/p&gt;


	&lt;p&gt;There are also 2 other implementations:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Choon Keat&amp;#8217;s &lt;a href="http://code.google.com/p/oauth4r/"&gt;OAuth4R&lt;/a&gt; which is a rails plugin for both creating providers and consumers. Choon and I are talking about how we can merge things.&lt;/li&gt;
		&lt;li&gt;Blaine&amp;#8217;s original &lt;a href="http://oauth.googlecode.com/svn/code/ruby/oauth/"&gt;OAuth&lt;/a&gt;. This is the original ruby library as used at Twitter. It is not very well documented at the time of writing and consists mainly of base ruby library instead of full Rails integration. Have a look at it, it may suit you.&lt;/li&gt;
	&lt;/ul&gt;

&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/38f8f05d70c7d84f28e349e3a16f8444bdaf4ea8"&gt;Create a simple NDA with zero legalese in no time at all and for free at our service Agree2.&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=qdw3UvB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=qdw3UvB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=ThIlE0B"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=ThIlE0B" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=ix30poB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=ix30poB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=5l3kj6b"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=5l3kj6b" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=rk8krkb"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=rk8krkb" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/190602944" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2007/11/26/how-to-turn-your-rails-site-into-an-oauth-provider</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-262</id>
    <issued>2007-11-07T11:45:49-05:00</issued>
    <modified>2007-11-07T11:45:51-05:00</modified>
    <title>Eran's great example of how to do a financial model</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/181167004/erans-great-example-of-how-to-do-a-financial-model" rel="alternate" type="text/html" />
    <dc:subject>Money</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;&lt;a href="http://hueniverse.com"&gt;Eran&lt;/a&gt; of &lt;a href="http://oauth.net"&gt;OAuth&lt;/a&gt; fame has &lt;a href="http://www.hueniverse.com/hueniverse/2007/11/playing-with-nu.html"&gt;published his financial models&lt;/a&gt; for his previous business model for &lt;a href="http://nouncer.com/"&gt;Nouncer&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://www.hueniverse.com/photos/uncategorized/2007/11/01/costmodel_2.jpg" alt="" /&gt;&lt;/p&gt;


	&lt;p&gt;I&amp;#8217;d like to thank him for this as it&amp;#8217;s something that people normally don&amp;#8217;t publish, so you sometimes get a feeling that you&amp;#8217;re working in the dark. He&amp;#8217;s changed his business model considerably now so he&amp;#8217;s happy to publish it.&lt;/p&gt;


	&lt;p&gt;The structure is surprisingly similar to what we have, with a few differences though. Anyway go check it out if you&amp;#8217;re struggling with your own. It&amp;#8217;s a great tool to have.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/b4f9a904efaab5ad71f695824c997c332b955876"&gt;Share your confidential code safely with a Source Code Confidentiality Agreement on our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=1Tq9NsB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=1Tq9NsB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=BkRLphB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=BkRLphB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=7Xs6PGB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=7Xs6PGB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=szYRVGb"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=szYRVGb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=dIuHfzb"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=dIuHfzb" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/181167004" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2007/11/07/erans-great-example-of-how-to-do-a-financial-model</feedburner:origLink></entry>
  <entry>
    <author>
      <name>pelle</name>
    </author>
    <id>tag:stakeventures.com,2005:Typo-261</id>
    <issued>2007-11-04T21:41:41-05:00</issued>
    <modified>2007-11-04T21:41:47-05:00</modified>
    <title>The new Instant Ruby API for Agree2 Templates</title>
    <link href="http://feeds.feedburner.com/~r/StakeVentures/~3/179835729/the-new-instant-ruby-api-for-agree2-templates" rel="alternate" type="text/html" />
    <dc:subject>Agree2</dc:subject>
    <dc:subject>Programming</dc:subject>
    <content mode="escaped" type="text/html">&lt;p&gt;How do you get from this:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36235961@N00/1865445242" title="View 'An Agree2 Template' on Flickr.com"&gt;&lt;img src="http://farm3.static.flickr.com/2370/1865445242_fa9cb3bbba.jpg" alt="An Agree2 Template" border="0" width="500" height="206" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;To this:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;# This creates an agreement from the template
@agreement=Agree2::OptionForHolderToBuyAssetTemplate.prepare( :holder =&amp;gt;"John Doe",
    :asset =&amp;gt;"Consulting by Pelle Braendgaard",
    :amount =&amp;gt;"10",
    :units =&amp;gt;"hours",
    :price =&amp;gt;"$100/h",
    :valid_to =&amp;gt;"1 month from now")

# invite the parties
@party=@agreement.invite("johndoe@mailinator.com","John","Doe")
@party=@agreement.invite("pelle@stakeventures.com","Pelle","Br&amp;amp;aelig;ndgaard")

# Change something in the contract
@agreement.amount=20
@agreement.save

# Mark it as being final and ready to accept
@agreement.finalize
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Hint try clicking on the &lt;a href="http://blog.extraeagle.com/2007/11/04/new-instant-ruby-api-for-agree2-templates/"&gt;Instant Ruby &lt;span class="caps"&gt;API&lt;/span&gt;&lt;/a&gt; in your Agree2 template:&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.flickr.com/photos/36235961@N00/1865445224" title="View 'Agree2 Template alternative formats' on Flickr.com"&gt;&lt;img src="http://farm3.static.flickr.com/2350/1865445224_aafa1f34bf.jpg" alt="Agree2 Template alternative formats" border="0" width="256" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;Read more in the &lt;a href="http://blog.extraeagle.com/2007/11/04/new-instant-ruby-api-for-agree2-templates/"&gt;New Instant Ruby &lt;span class="caps"&gt;API&lt;/span&gt; for Agree2 Templates&lt;/a&gt; post on the &lt;a href="http://blog.extraeagle.com"&gt;Extra Eagle Blog&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Later on this week I will explain how we did it and how you can create an Instant Ruby &lt;span class="caps"&gt;API&lt;/span&gt; in your own rails application.&lt;/p&gt;



&lt;p class="agree2_ad"&gt;&lt;a href="https://agree2.com/masters/37a9d0507479e9d5fa48f24c47126bb73bfef40d"&gt;Create a Software Development Agreement with our free web service Agree2&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=6RbYKpB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=6RbYKpB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=Lbe953B"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=Lbe953B" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=uQK7CkB"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=uQK7CkB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=0IQGy2b"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=0IQGy2b" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StakeVentures?a=nN3J5yb"&gt;&lt;img src="http://feeds.feedburner.com/~f/StakeVentures?i=nN3J5yb" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StakeVentures/~4/179835729" height="1" width="1"/&gt;</content>
  <feedburner:origLink>http://stakeventures.com/articles/2007/11/04/the-new-instant-ruby-api-for-agree2-templates</feedburner:origLink></entry>
</feed>
