Skip to content

Instantly share code, notes, and snippets.

(This is the text of the keynote I gave at Startup Riot 2009. Will update when video becomes available.)

Hi everyone, I’m Chris Wanstrath, and I’m one of the co-founders of GitHub.

GitHub, if you haven’t heard of it, has been described as “Facebook for developers.” Which is great when talking about GitHub as a website, but not so great when describing GitHub as a business. In fact, I think we’re the polar opposite of Facebook as a business: we’re small, never took investment, and actually make money. Some have even called us successful.

Which I’ve always wondered about. Success is very vague, right? Probably even relative. How do you define it?

After thinking for a while I came up with two criteria. The first is profitability. We employ four people full time, one person part time, have thousands of paying customers, and are still growing. In fact, our rate of growth is increasing – which means January was our best month so far, and February is looking pretty damn good.

Create a page that allows me to take the links from a post
and store it with their message and the message id.
We could also allow tags or your own description.
Can add by certain users most recent post. <SCARY>
apis to use:
http://twitter.com/statuses/show/id.format { http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0show }
#!/usr/bin/env python
import urllib
import webbrowser
import sys
args = {'command': ' '.join(sys.argv[1:])}
url = 'http://yubnub.org/parser/parse?' + urllib.urlencode(args)
webbrowser.open(url)
output = ''
for line in text.split('\n'):
while len(line) > 80:
pos = line[:80].rfind(' ')
output = output + line[:pos] + '\n'
line = line[pos+1:]
output = output + line + '\n'
print output
- simple
- public over private
- personal vanity
- internet is global
- permalinks
- one important item per page
- don't break the browser
- don't wanker in technology
- a medium is not a grande
- break convention for your users
class CouchObject(object):
'''
Convert between a CouchDB document and Python object.
Create Python objects while maintaining a schema-free database.
Define object properties without storing null fields.
'''
@property
def id(self):
return self._id
Hosting Sphinx docs at GitHub
-----------------------------
Before: Run sphinx-quickstart in docs/
1. Follow "Project Pages" instructions from http://pages.github.com/ to create a gh-pages branch
2. Add Sphinx html build dir as git submodule:
git checkout master
git submodule add -b gh-pages git@github.com:arthurk/django-disqus.git docs/_build/html
= Ruby Packaging Standard
The aim of this document is two-fold. First, to specify a common
structure of how a Ruby package distributed as source (that is, but
not limited to, development directories, version-controlled
repositories, .tar.gz, Gems, ...) should conform to.
Second, to document common and proven ways to structure Ruby packages,
and to point out certain anti-patterns that sneaked into common use.
It is by intent not to innovate.
#!/usr/bin/env python
"""
tug - twitter url generator
for now we only support atom feeds
"""
import urllib, urllib2
import sys
class A(object):
x = 1
def __init__(self):
print self.x
self.x = 2
print self.x
a = A()
b = B()