annotate source/europython-2010-tutorial.rst @ 41:630e8132250e

europython-2010-tutorial.rst: Drafted this page.
author Jonathan Fine <jfine@pytex.org>
date Sat, 10 Jul 2010 19:26:48 +0100
parents
children d3ef1c9d4ca2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
41
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
1 EuroPython 2010 Tutorial
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
2 ========================
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
3
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
4 Time, date and location
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
5 -----------------------
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
6
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
7 This tutorial will take place on Saturday 17th July, from 2pm to
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
8 5.45pm in Lecture Room 2, the Birmingham Conservatoire, Birmingham,
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
9 UK.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
10
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
11
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
12 Installed software
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
13 ------------------
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
14
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
15 Participants should bring with them a laptop computer with the
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
16 following installed:
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
17
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
18 1. The Firefox web browser, with the Firebug add-on.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
19
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
20 2. A programmer's editor, preferably with a JavaScript mode.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
21
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
22 3. A command line JavaScript interpreter.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
23
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
24 * For Linux I suggest SpiderMonkey.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
25
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
26 .. code-block:: bash
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
27
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
28 $ sudo apt-get install spidermonkey-bin # Ubuntu
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
29
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
30 * For Windows and Mac I suggest JSDB, from
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
31 http://www.jsdb.org/download.html. It also works on Linux.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
32
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
33 4. This documentation, downloaded from
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
34 `Bitbucket downloads <http://bitbucket.org/jfine/javascript-for-python-programmers/downloads>`_.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
35
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
36 5. The Python documentation, download from
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
37 `Python docs site <http://docs.python.org/download.html>`_.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
38
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
39
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
40 Timetable
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
41 ---------
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
42
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
43 The tutorial consist of two 90 minutes sessions, separated by a 15
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
44 minute break.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
45
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
46 I hope to run six sessions, each 30 minutes long. I hope each session
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
47 will be 15 minutes of me talking followed by 15 minutes of
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
48 programming.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
49
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
50 The topics I'm intending to cover are
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
51
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
52 We start at 2pm prompt, with software already installed if possible.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
53
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
54 1. Demonstration and discussion of the counters example application.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
55
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
56 2. JavaScript gotchas.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
57
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
58 3. Objects and inheritance, class basics.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
59
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
60 Here we have a 15 minute break.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
61
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
62 4. JavaScript's *this* pseudo-variable (including *call* and *apply*).
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
63
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
64 5. Closures, modules and memory leaks.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
65
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
66 6. Delegation.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
67
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
68 We finish at 5.15pm.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
69
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
70
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
71 Is this tutorial for me?
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
72 ------------------------
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
73
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
74 This tutorial aimed at Python web developers who already know a bit of
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
75 JavaScript, and who need to understand JavaScript better.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
76
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
77 The tutorial has two related objectives. One is a good understanding
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
78 of the counters example. The other is a good understanding of the
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
79 things that make JavaScript so different from Python (apart from
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
80 JavaScript being the only language supported by web browsers).
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
81
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
82 If you're thinking of taking this tutorial take the :doc:`gotcha-quiz`
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
83 and read through the :doc:`counters-example`. If you understand
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
84 what's there a bit, and would like to understand it more, then this
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
85 tutorial is for you.
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
86
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
87 Let me know
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
88 -----------
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
89
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
90 If you're going to attend the tutorial, I'd appreciate an email from
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
91 you that tells me a little bit about yourself and what you'd like to
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
92 get from the tutorial. If you have specific questions about
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
93 JavaScript, I'd like to here them also. (I can be contacted at
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
94 Jonathan.Fine1 at gmail.com.)
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
95
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
96 You can also, I believe, just turn up on the day, if there is
630e8132250e europython-2010-tutorial.rst: Drafted this page.
Jonathan Fine <jfine@pytex.org>
parents:
diff changeset
97 space. Don't forget to install the software on your laptop.