• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Qcon beijing 2010
 

Qcon beijing 2010

on

  • 864 views

Slide I made last year after attended the Qcon Beijing 2010.

Slide I made last year after attended the Qcon Beijing 2010.
Wish you like it.

Statistics

Views

Total Views
864
Views on SlideShare
864
Embed Views
0

Actions

Likes
0
Downloads
11
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Qcon beijing 2010 Qcon beijing 2010 Presentation Transcript

    • QCon Beijing, TDD, Python, twitter, facebook, agile, js ... #QCon
    • QCon Beijing• 4.23~4.25
    • QCon Beijinghttp://www.qconbeijing.com/agenda.html
    • QCon Beijing• • • • Facebook Memcached • Twitter •• (Agile) • TDD • Agile and Scrum in China •• • Python • F# Scala Erlang Rebol • JavaScript
    • Agenda• Overview• Agile• Twitter• Douglas Crockford• Python
    • OVERVIEW
    • OVERVIEW•••
    • OVERVIEW python•••
    • OVERVIEW python• twitter••
    • OVERVIEW python• twitter• facebook•
    • OVERVIEW•••
    • OVERVIEW•••
    • OVERVIEW Oracle Micros ft•••
    • OVERVIEW Oracle Micros ft•••
    • Agenda• Overview• Agile• Twitter• Douglas Crockford• Python
    • AgileAgile and Scrum in China : Can it work? 4.24
    • Agile
    • What is Agile ?
    • What is Agile ?• 2001 2 17 “ ”• ---•
    • .........17 ...
    • Agile Manifesto • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan
    • What is Agile ?•••
    • 12 Principles of Agile• ,• —— ,• , ,• ,• , ,• ,•••• ,•• ,
    • What is Scrum?•• backlog:• sprint: 30 . backlog,• sprint backlog: sprint• scrumMaster: Scrum• time-box: daily scrum meeting time-box 15• sprint planning meeting: sprint 8 Owner backlog , sprint Product Backlog• Daily Scrum meeting 15 ScrumMaster• Sprint review meeting Sprint Team Sprint Product Owner• Sprint retrospective meeting Sprint
    • Some tips from Practices of an Agile Developer•• 1 4••••••••
    • ...
    • ...
    • Agenda• Overview• Agile• Twitter• Douglas Crockford• Python
    • TwitterTwitter 4.24
    • Twitter - @nk
    • Twitter - @nk
    • Twitter - @nk• exp single table => partition table
    • Twitter - @nk• exp single table => partition table•
    • Twitter - @nk• exp single table => partition table••
    • Twitter
    • Agenda• Overview• Agile• Twitter• Douglas Crockford• Python
    • Douglas Crockford javascript 4.25
    • Crockford• Yahoo! js Douglas Crockford• JavaScript The Good Parts JavaScript• JavaScript Brendan Eich “lambda JavaScript ”• json
    • Crockford Douglas Crockford• IE6• JavaScript• HTML5
    • CrockfordIE6
    • Crockford- IE6
    • Crockford- IE6
    • CrockfordIE6 ... 2010 3 1 IE6 IE6 IE6
    • CrockfordIE6 ... OVER 70% !!!
    • Crockford- IE6
    • Crockford- IE6 again
    • Crockford- JavaScript
    • Crockford- JavaScript Macros Threads Tail Calls
    • Crockford- JavaScript
    • Crockford- JavaScript
    • Crockford- JavaScript
    • CrockfordHTML5
    • CrockfordHTML5 HTML5 ~= HTML +CSS + JSAPI
    • CrockfordHTML5HTML • Semantics (New tags, Link Relations, Microdata) • Web Forms 2.0 (Input Fields) • Multimedia (Audio Tag,Video Tag) • 2D and 3D drawing (Canvas, WebGL, SVG)
    • CrockfordHTML5 • TypographyCSS • Visuals • Transitions, transforms and animations
    • CrockfordHTML5 • Client Side Storage (Web SQL Database, App Cache, Web Storage)JSAPI • Communication (Web Sockets) • Desktop experience (Notifications, Drag and Drop API) • Geolocation
    • CrockfordHTML5 HTML5
    • Crockford- HTML5
    • Crockford- HTML5
    • Crockford- HTML5
    • Agenda• Overview• Agile• Twitter• Douglas Crockford• Python
    • PythonPython web2.0 4.23
    • Python twitter: @hongqn• Python• Python
    • Pythonic
    • Pythonic
    • Pythonic
    • Serverpython -m SimpleHTTPServer
    • web web.py http://webpy.org/
    • web http://flask.pocoo.org/ jinja
    • web• Other frameworks: Quixote, django,leazy ...• http://bitworking.org/news/ Why_so_many_Python_web_frameworks
    • web• Other frameworks: Quixote, django,leazy ...• http://bitworking.org/news/ Why_so_many_Python_web_frameworks the answer is often that it is way too easy to put together one in Python. That certainly seems plausible since there are so many libraries that implement the components of a web framework and if its easy to plug those pieces together then maybe that lowers the bar of entry for new frameworks.
    • web• Other frameworks: Quixote, django,leazy ...• http://bitworking.org/news/ Why_so_many_Python_web_frameworks Templating : kid
    • web• Other frameworks: Quixote, django,leazy ...• http://bitworking.org/news/ Why_so_many_Python_web_frameworks Templating : kid SQL : SQLAlchemy
    • web• Other frameworks: Quixote, django,leazy ...• http://bitworking.org/news/ Why_so_many_Python_web_frameworks Templating : kid SQL : SQLAlchemy Routing : Selector
    • web• Other frameworks: Quixote, django,leazy ...• http://bitworking.org/news/ Why_so_many_Python_web_frameworks Templating : kid SQL : SQLAlchemy Routing : Selector WSGI
    • web• Other frameworks: Quixote, django,leazy ...• http://bitworking.org/news/ Why_so_many_Python_web_frameworks Templating : kid SQL : SQLAlchemy Robaccia (3 hours, 60 Routing : Selector lines) WSGI
    • web • Other frameworks: Quixote, django,leazy ... • http://bitworking.org/news/ Why_so_many_Python_web_frameworks Templating :jinja2SQL :dbop.py + model.py LeazyRouting :dispatcher.py + url.py WSGI
    • doctest - testmod
    • doctest - testmod
    • doctest - testfile file name : example
    • doctest - unittest As your collection of doctest’ed modules grows, you’ll want a way to run all their doctests systematically.
    • doctest - unittest utest1.py utest2.py
    • doctest - unittest
    • doctest - unittest
    • doctest - unittest >>> python utest_driver.py .. --------------------------------------------- Ran 2 tests in 0.043s OK
    • nose easy_install noseextends unittest to make testing easier. http://somethingaboutorange.com/mrl/projects/nose/
    • nose easy_install noseextends unittest to make testing easier. http://somethingaboutorange.com/mrl/projects/nose/ utest1.py utest2.py nosetests bash-3.2$ nosetests --with-doctest .. ------------------------------------ Ran 2 tests in 0.038s OK bash-3.2$
    • nose easy_install noseextends unittest to make testing easier. http://somethingaboutorange.com/mrl/projects/nose/Write your nose test file:nose_test_case.py
    • nose easy_install noseextends unittest to make testing easier. http://somethingaboutorange.com/mrl/projects/nose/Write your nose test file: base$ nosetests nose_test_case.py . ---------------------------------------- Ran 1 test in 0.001s OKnose_test_case.py base$
    • nose easy_install noseextends unittest to make testing easier. http://somethingaboutorange.com/mrl/projects/nose/Write your nose test file: base$ nosetests nose_test_case.py . ---------------------------------------- Ran 1 test in 0.001s OKnose_test_case.py base$ Any function or class that matches the configured testMatch regular expression ((?:^|[b_.-])[Tt]est)
    • numpy >>> numpy.arange(0, 10, 1) array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> numpy.linspace(0, 10, 10) # 0~10, 10 numbers >>> numpy.logspace(0, 2, 10) #1~100,10 numbers >>> a = numpy.arange(4).reshape(2,2) >>> a array([[0, 1], [2, 3]]) >>> numpy.dot(a, a.T) array([[ 1, 3], [ 3, 13]])
    • ipythoniPython http://ipython.scipy.org/doc/stable/html/ bash$ ipython Python 2.5 (r25:51918, Sep 19 2006, 08:49:13) Type "copyright", "credits" or "license" for more information. IPython 0.10 -- An enhanced Interactive Python. ? -> Introduction and overview of IPythons features. %quickref -> Quick reference. help -> Pythons own help system. object? -> Details about object. ?object also works, ?? prints more. In [1]: ls Flask-0.3.1/ memcached-1.4.5/ objc-json/ web.py-0.34/ einstall.py* numpy/ scipy/ In [2]: print "hello world" hello world
    • virtualenvvirtualenv python $ virtualenv --no-site-packages vetest $ cd vetest $ source bin/activate (vetest)fbmac:vetest fengbo$ ls bin include lib (vetest)fbmac:vetest fengbo$ python >>> import BeautifulSoup Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named BeautifulSoup >>> exit() $ sudo easy_install BeautifulSoup $ python >>> import BeautifulSoup >>>
    • C (1)Cython easy_install cython pythondef say_hello(name): Python 2.5.2 (r252:60911, Jan 24 2010, 14:53:14) print "hello, %s" % name [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.cython_test.pyx >>> import pyximport >>> pyximport.install() >>> import cython_test >>> cython_test.say_hello("world") hello, world >>> exit()
    • C (2)Cython easy_install cython setup.pydef say_hello(name): from distutils.core import setup print "hello, %s" % name from distutils.extension import Extension from Cython.Distutils import build_extcython_test.pyx ext_modules = [Extension("hello", ["cython_test.pyx"])] setup( name = Hello world app, cmdclass = {build_ext: build_ext}, compile to .so file ext_modules = ext_modules )
    • C (3)Cython easy_install cython $ python setup.py build_ext --inplace $ ls build cython_test.c cython_test.pyx hello.so setup.py $ python >>> import hello >>> hello.say_hello(“world”) >>> hello, world
    • svn
    • svn svnconfig.py.sample cp config.py
    • svn config.py project_path = “/home/project/xx” try: from local_config import * except ImportError, ex: pass local_config.py project_path = “/home/user/aaa/project/xx”
    • decorator - email
    • decorator -decorator async_func.py
    • decorator -decorator async_func.py
    • decorator -decorator async_func.py
    • decorator - cached
    • decorator - cacheddecorator
    • decorator - cached
    • decorator - cached import inspect
    • decorator - cached import inspect get params dict
    • decorator - cached import inspect get params dict get from mmecache / db
    • decorator - cacheddecorator “uinfo_{uid}” python2.6 “uinfo_{uid}”.format(uid=2)
    • /• :Vim / Emacs / Ulipad• : subversion /mercurial / git• wiki/ / :Trac• : Bitten
    • Agenda• Overview• Agile• Twitter• Douglas Crockford• Python
    • ••• IE6 MUST DIE• HTML5? web• python TDD• decorator
    • More ...• Visit : http://www.qconbeijing.com/
    • END follow me on twitter: @vonbo on : @vonbo