Knol - google's social knowledge base

Google launched Knol, a social knowledge base similar to wikipedia. The idea looks very promising so I immediately jumped in to check it out.

The interface is (as usual with google) very simple and straightforward, it is very easy to write your own article in a minute.


  • great idea
  • simple (usable, easy to learn, easy to use)
  • google-integrated
  • colaboration (each article has clearly defined owners, authors and reviewers)
  • licensable (for now you can choose from (cc-attribution, cc-attrib-non-commercial, all-rights-reserved)
  • revisioning (versioning)
  • commenting
  • article summary
  • reviews (you can post reviews on anything and link to your review will show up on the original page)
  • referencing
  • adsense integration


  • no tagging? ...oh wait, there's an alternative titles field, but I think this is a bit confusing, the tagging should work more like what we're used to from other google products, e.g. mail, notebook...
  • too long and confusing urls (e.g.http://knol.google.com/k/jazzy-junggle/tagging-best-practice/8d1khziecqie/2#edit - maybe its just me and there's a way to view the article url, but i believe the addressing of the articles should be more clear to the user and/or simpler)
  • lack of semantics (defining meta tags, relations to other articles, etc.)
  • limited presentation options (styling, css, page layout, templating...)
I think Knol is on the right track but still needs a lot of work to become the only and ultimate knowledge base.


Python basics


  • start with (#)


  • numeric (int, float, long, complex)
  • iterator
  • sequence (str, unicode, list, tuple, buffer, xrange)
  • set
  • map
  • file


  • integer=7, long=9999999999L, float=1.34, complex=0+1j


  • 'single quotes', "double quotes", r'raw\n', u'unicode\u0020', 'multi\
    line (end of lines must be escaped)'
    , '''strings in triple quotes can span
    lines without escaping newlines'''
  • can be concatenated ('dirty ' + 'monkey') and repeated (4 * 'lol')
  • literals next to each other are automatically concatenated ('you' 'tube')
  • can be sliced (word[4], word[0:6], word[1:], word[0:-1])
  • cannot be changed (unmutable)
  • ()


Vim cheatsheet


  • normal (command) - enter editor commands (default mode)
  • visual - like normal, but movement commands extend highlighted area
  • select - typing a printable character deletes the selection and starts insert mode
  • insert - everything you type is inserted in the buffer until you press Esc
  • cmdline - you can enter one line of command at the bottom of the window
  • ex - like command line, but after entering a command you remain in the ex mode


without writing changes :q!/ZQ, write changes & quit :wq/:x/ZZ
read :e {file}, write :w {file}
j/k/h/l, word w/b, WORD W/B, word-end e/ge
to first/firstnonempty/last char in line 0/^/$, to first/last line in window H/L
before/at cursor i/a, at line beginning/end I/A, new line below/above o/O
word C-n/C-p, line C-xC-l
d, char at/before cursor x/X, line dd
u, redo C-r, undo changes to current line U
pattern forward/backward //?, word under cursor forward/backward */#, next/prev match n/N
char fF, till tT, match bracket %
repeat command

Google App Engine

Google App Engine is a free webapp hosting service that allows you to create and run web applications on google's infrastructure.


  • free
  • hosted on google's infrastructure
  • easy to get started
  • 500 mb of space
  • Python support (more languages to come)
  • enough CPU and bandwidth for 5 million pageviews/month
  • Datastores as data persistence layer (limited SQL databases)
  • user authentication via Google's Users API (Google accounts)
  • Django web framework with templating support

More info


Tagging best practices

Tagging (folksonomy) is a popular and powerful way of organizing stuff on the web. But as your tagbase grows, it itself needs to get organized...
  1. lowercase (use google, css, zend framework instead Google, CSS, Zend Framework, even with names)
  2. english (describe the object in english words, transcribe all non-english characters and punctuation to alphanumeric characters [a-z0-9], tags like 2006, 90s are ok)
  3. simple (don't use multi-word tags unless it's a name or a well established phrase)
  4. singular (use map, monkey, video instead maps, monkeys, videos)
  5. noun (use drawing, meditation, design instead draw, meditate, designed)
  6. system (build a personal framework, a set of tags based on your areas of interest, level of abstraction, word preference, etc. and stick to it. Ask yourself what's the most appropriate set of tags for your purpose. Remember, whatever object you are tagging, there are possibly millions of tags applicable. Pick only the tags that fit your paradigm)
  7. balance (when tagging an item, choose the most relevant tags from your set. If you are tagging article, ask what is it about, not what's mentioned in it. If you create too few or too many relations, your system becomes ineffective)
  8. action tags (one thing that works for me are action tags like 2check, 2read, 2explore, 2print...)
  9. consistency (whatever rules you pick, stick to them)
  10. reuse (try to reuse words you have already in your tag base before adding new word. Avoid having multiple synonyms with same meaning)
If you are not sure what tags to use, ask yourself "What keywords would I enter into search engine when searching for item like this?".