Openness and the OAuth Legal Dance 2
I’m sitting at the OAuth Summit held at Yahoo in Santa Clara. We’ve had a brief discussion about the IPR policy negotiation process that has been going on in the background between a few core OAuth people and legal departments in various large companies (most notably Yahoo, Google and Microsoft).
Briefly the IPR policy allows employees at large companies to collaborate on the standard while promising to not sue anyone who uses their companies Intellectual Property through use of the standard. So basically Yahoo can’t come sue anyone using OAuth for using some patented algorithm they submitted to OAuth.
The IPR policy is important and good work. That said the current second revision of this is essentially a secret document that will be presented signed, sealed and delivered to us b-list members of the community in a week or twos time.
The community created the OAuth Non-Assertion Covenant and Author’s Contribution License which all the original OAuth spec signers have signed with the exception of Yahoo.
Eran told us today that apparently Yahoo stalled the process in their legal department as they needed a more detailed agreement. This is fine and great feedback, however these comments should somehow be made public so we the community also can follow it and make comments.
I realize that most developers don’t want to follow this, however it is important that it is transparent and googlable. I suggest a OAuth-legal group, the same way OpenID does or a continuation of the existing IPR License on Agree2 which does offer comments, versioning and a full transparent audit trail.
One comment I was given was that we should let lawyers talk with lawyers. I have to call bullshit on that. These kinds of things are way too important to be left in the hand of lawyers without any kind of external oversight.
Gabe has been doing a great job representing us (the OAuth community), however there are lots of people with opinion on this who would like to follow it and voice occasional opinions. Those of us who are building businesses around OAuth based services need to feel comfortable that we aren’t going to be screwed by some indecipherable legalese in the future. More important if there are disputes in the future the negotiation trail is key for solving them.
The final comment I heard is that large companies like Yahoo and Microsoft don’t want to make it public that they are negotiating this. I’m sorry that is even greater bullshit, thats pre-cluetrain, pre internet thought.
Get with the program. Yahoo has more to loose by not using OAuth than us in the OAuth community have to loose by them not joining us. I’m sorry if thats the way it’s done, I don’t care. This is not the world of industrial age negotiation in smoke filled private lounges. You guys are all internet companies for god sake.
OAuth is about open transparent simple standards for creating a infrastructure thats open to all of us and not just Google, Yahoo and Microsoft. Any negotiations behind it should be too.
Update July 2nd, 2008 Here is the latest version of the OAuth Non-Assertion Covenant and Author’s Contribution License For OAuth Specification 1.0
RSpactor compatibility with newish RSpec versions
RSpactor is one of the greatest tools out there for developing Rails apps on the Mac (Yes it’s Mac only) using RSpec. It works just like autotest, just with out any configuration and without using more resources than absolutely necessary.
Andreas is working on a next generation Cocoa based tool, which looks great. I know many of us are using the original command line version of it still, which unfortunately broke, when the RSpec team introduced some API changes. No worries though, I’ve forked the older command line version on Git which you can also install as a gem:
sudo gem install pelle-rspactor --source http://gems.github.com
Lessons learnt as a Ruby Programmer playing with Google AppEngine
I suppose I should write a detailed post at some point about this. But here are a couple of notes from working intermittently on Talk.org in the last couple of weeks.
First of all Python is definitely not Ruby. It is very different in many ways. So just accept that and get on with it. Ruby still puts a much larger smile on my face than Python does, but that might be inexperience.
Secondly Django is not at all like rails, even though most python guys seem to claim it is. Pylons seemed much more rails like. However I decided to stick with Django as it’s always good to learn something new.
The best resource I found for getting started was this example project Wuzhere that was demonstrated at Google IO. It is really a great guide to get your head around structuring your project. In particularly coming from Rails, I learnt way more just reading through this code than reading various tutorials on the web. A key piece of code to simplify your life as a rails guy coming over to Django is their view.py class, which acts kind of like a rails render method.
You should use the Django Google App Engine Helper if you are doing Django which is described in this little tutorial. However the approach to laying out your application taken by the Wuzhere developers seemed more logical to me than the approach suggested by the Google App Engine helpers.
Generally speaking I like the AppEngine design. The models are great even if they require you to think a bit differently about the design of your data model. I don’t see a clever way of doing callbacks on the models like with activerecord, but I suspect that something similar would be possible with clever use of Decorators
I would like to say though that while I am still a novice at Django/Python it does seem to me that there are design decisions in both that I’m not quite happy about. Once I’ve worked more with it I’ll see if I still feel that way and can formulate it a bit better.
Talk.org OpenSourced and stats from Keynote 2
To make Talk.org a playground for more than just me, I’ve decided to open source it. You can find it on GitHub
I have released it as GPL3 as I think it makes sense for an app like Talk.org that we all get to learn from our experiences.
I will do my best to bring as many new features people create into the live application as possible. However be aware that at some point I may want to put some unobtrusive ads or something on it to make to pay future AppEngine bills. You have been warned. But then again you could do so yourself if you so please.
Anyway, it is a fairly simple app at the moment and is not seing large amount of use, however a fair amount of people came to try it out during the Stevenote.
These are the performance graphs from the Google AppEngine Dashboard:
The requests seem to take about 500ms each, which should improve once memcache is working properly again:
So far we have 58 users who have posted in total 166 posts. Not bad really for a tiny app, originally written last Friday over breakfast.
So far the todo list is:
- Allow users to pick their own nickname when signing up (right now it relies on what Google gives me, which is wrong)
- Atom/RSS/JSON support
- OAuth
- Followers
- Tracking
Concensus seems to be that the best way to do IM/SMS support is for a 3rd party server todo it via OAuth/HTTP as AppEngine doesn’t yet support XMPP. This is obvious as a great separate project for some Erlang geek out there.
Just in time for the Keynote my new Google App Engine Twitter clone Talk.org 1
Well it’s not exactly a twitter clone as you can’t follow or track anyone. There is no IM or SMS support either. However you are able to do some of what you would do on Twitter. So it might come in helpful during Steve Job’s keynote if Twitter goes down. Go to Talk.org to try it out.
This is my first little play project using Google Appengine
Right now it just uses Google Accounts, so for most people you don’t even need to sign up.
So what’s next for Talk.org
My original plan for this was not for it to go the Twitter clone way. There are a few features that I think might be more fun to do than trying to be an exact clone of twitter.
Following and Tracking should not be too overly complicated features to add. But I may endup being wrong about that. From my understanding Twitter’s real scalability problems are from these two features and not the messaging plat form itself.
I’m thinking that unless they’re well designed these may endup presenting problems even on AppEngine. Of course they would only be a problem if you got people with extremely large amount of followers.
I can’t see implementing IM and SMS in the current architecture of AppEngine. However it might be possible to create a separate messaging server using Amazon EC2.
There is also a really annoying bug in Memcache on AppEngine that pretty much excludes the use of the Memcache API until it’s fixed. They are working on it so lets see.
I don’t want to use too much time on this, maybe just an hour or two a week in the future, but I think I may post the code to GitHub as soon as I get it cleaned up a bit.
Nassim Taleb's Top 10 Life Tips 1
Great interview with my favorite author Nassim Taleb at The Times.
I will write my own review of his theories at some point and how they apply to startups, but until then he gives these 10 tips in the above interview that I think spell them out pretty well.
Taleb’s top life tips
1. Scepticism is effortful and costly. It is better to be sceptical about matters of large consequences, and be imperfect, foolish and human in the small and the aesthetic.
2. Go to parties. You can’t even start to know what you may find on the envelope of serendipity. If you suffer from agoraphobia, send colleagues.
3. It’s not a good idea to take a forecast from someone wearing a tie. If possible, tease people who take themselves and their knowledge too seriously.
4. Wear your best for your execution and stand dignified. Your last recourse against randomness is how you act — if you can’t control outcomes, you can control the elegance of your behaviour. You will always have the last word.
5. Don’t disturb complicated systems that have been around for a very long time. We don’t understand their logic. Don’t pollute the planet. Leave it the way we found it, regardless of scientific ‘evidence’.
6. Learn to fail with pride — and do so fast and cleanly. Maximise trial and error — by mastering the error part.
7. Avoid losers. If you hear someone use the words ‘impossible’, ‘never’, ‘too difficult’ too often, drop him or her from your social network. Never take ‘no’ for an answer (conversely, take most ‘yeses’ as ‘most probably’).
8. Don’t read newspapers for the news (just for the gossip and, of course, profiles of authors). The best filter to know if the news matters is if you hear it in cafes, restaurants… or (again) parties.
9. Hard work will get you a professorship or a BMW. You need both work and luck for a Booker, a Nobel or a private jet.
10. Answer e-mails from junior people before more senior ones. Junior people have further to go and tend to remember who slighted them.
Vote No to the screw your local Taqueria Proposition 3
I try to leave politics out of this blog, but I feel really upset about the Proposition 98/99 vote coming up here in California on June 3rd. Any non California residents feel free to ignore this unless you want to learn more about the screwy politics of this state. The Rastas may have invented the term Politrixians, but California politics seem to have perfected it.
Proposition 98 and 99 are 2 referendums to change the California Constitution to supposedly disallow Eminent Domain. The first one Proposition 98 is called EMINENT DOMAIN. LIMITS ON GOVERNMENT AUTHORITY. and the second one Proposition 99 is called EMINENT DOMAIN. LIMITS ON GOVERNMENT ACQUISITION OF OWNER-OCCUPIED RESIDENCE. So on the outset they sound very similar.
Before we even get to the differences between them…
What is Eminent Domain?
Eminent Domain is basically when the government takes private property for public use. The US Constitutions guarantees that this can only be for public use and can only be done for just compensation. Basically if they take your property they must pay fair market price for it.
Unfortunately in the past century governments have radically expanded what public use means. This is where the trickiness comes in. Local governments have come to believe taking your house and selling it to a mall developer is a public good as it could increase the tax base.
Kelo v City of New London
This whole thing was thrown into the public view a couple of years back when the US Supreme Court basically said this was valid in the court case Kelo vs New London. Where a the New London city council took away 15 homes from their private owners to give to a private developer. Not strangely there was a huge uproar about this and lots of states started passing laws to limit this kind of thing.
Eminent Domain Abuse in California
Drew Carey has made a great videos about a specific case in California, that provide a great introduction to why and how this is done in this state and good alternatives to it:
Also see this one National City: Eminent Domain Gone Wild and this article about How the New York Times forced 55 business out using Eminent Domain to build their new office.
What you can see here is that most of the victims of this are small businesses. Exactly the kind of small businesses that we like here in San Francisco. The local Taqueria, the neighborhood bar, the Filipino grocery shop and hey maybe even your local neighborhood web startup.
Help us review the new Agree2 User Agreement
We are getting very close to leaving beta for Agree2 and have to create a new user agreement. We’re doing this publicly and hope for feedback from you.
Please see the official announcement of this on the Extra Eagle blog.
You are the one who will change the world, not the next president 1
It’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’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’t ever vote for anyway. This because he has a certain charisma and a message that says “Lets change this crap!!!”.
However anytime I get deeper into following that process something happens to immediately yank me back to reality and realize that it doesn’t really matter anyway who sits in the White House or who is busy inserting their pork barrel into bills in Congress.
What is important is that we the entrepreneurs, coders and inventors who are actually changing the world keep doing our jobs.
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.
Let me repeat that:
Every important world change has been made by people like YOU!!!
Also if you don’t think you should have illusions of grandeur remember:
Every large and well known change depends on thousands of other small improvements also made by people like YOU!!!
Note. I say YOU 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’m sorry, I’m not talking to you.
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.
Living it up on the cheap in Denmark 6
As I’m currently in Denmark for a while I’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.
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.
My Bootstrappers guide for Denmark 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’re coming for a week or staying on permanently.








