changeset 163:9fdd2e763356

Add rendered HTML slides
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sat, 15 Sep 2012 14:01:11 +0200
parents d2292b860f11
children c2b302dcbf64
files slides.html
diffstat 1 files changed, 338 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slides.html	Sat Sep 15 14:01:11 2012 +0200
@@ -0,0 +1,338 @@
+<!DOCTYPE html>
+<!-- saved from url=(0034)http://127.0.0.1:8080/+slides/Home -->
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link type="text/css" href="docs/slides.css" rel="stylesheet">
+<link type="text/css" href="docs/pygments.css" rel="stylesheet">
+
+<title>Home</title>
+</head><body style="font-size: 28.71875px; "><div class="slide" style="display: block; "><h1>JavaScript dla Programistów Pythona</h1><p id="line_0"><br>
+</p><p id="line_2"><b><a href="mailto:pycon%40sheep%2Eart%2Epl" class="external mail" title="mailto:pycon@sheep.art.pl">Radomir Dopieralski</a></b>
+</p><p id="line_4"><i>Grupa Allegro</i>
+</p><p id="line_6">PyConPl 2012</p></div><div class="slide" style="display: none; "><h1>JavaScript</h1><ul id="line_0"><li>1995</li><li>Brendan Eich, Netscape</li><li>10 dni</li><li>Mocha → LiveScript → JavaScript → ECMAScript</li></ul></div><div class="slide" style="display: none; "><h1>Konsola</h1><a name="head-0-1"></a><h2 id="line_0">Linux</h2><ul id="line_1"><li>node.js</li><li>rhino</li></ul><div class="highlight"><pre><span id="line_4"><span class="nv">$ </span>js
+</span></pre></div><a name="head-0-2"></a><h2 id="line_7">MacOS X</h2><p id="line_8">/System/Library/Frameworks/JavaScriptCore.framework/<br>Versions/Current/Resources/jsc
+</p><a name="head-0-3"></a><h2 id="line_10">Windows i inne</h2><p id="line_11"><a href="http://www.jsdb.org/" class="external" title="http://www.jsdb.org">http://www.jsdb.org</a></p></div><div class="slide" style="display: none; "><h1>Zen Pythona</h1><ul id="line_0"><li>Piękne jest lepsze niż brzydkie.</li><li>Wyrażone wprost jest lepsze niż domniemane.</li><li>Proste jest lepsze niż złożone.</li><li>Złożone jest lepsze niż skomplikowane.</li><li>Płaskie jest lepsze niż wielopoziomowe.</li><li>Rzadkie jest lepsze niż gęste.</li><li>Czytelność się liczy.</li><li>Sytuacje wyjątkowe nie są na tyle wyjątkowe, aby łamać reguły.</li><li>Choć praktyczność przeważa nad konsekwencją.</li></ul></div><div class="slide" style="display: none; "><h1>Zen Pythona c.d.</h1><ul id="line_0"><li>Błędy zawsze powinny być sygnalizowane.</li><li>Chyba że zostaną celowo ukryte.</li><li>W razie niejasności powstrzymaj pokusę zgadywania.</li><li>Powinien być jeden – i najlepiej tylko jeden – oczywisty sposób na zrobienie danej rzeczy.</li><li>Choć ten sposób może nie być oczywisty jeśli nie jest się Holendrem.</li><li>Teraz jest lepsze niż nigdy.</li><li>Chociaż nigdy jest często lepsze niż natychmiast.</li><li>Jeśli rozwiązanie jest trudno wyjaśnić, to jest ono złym pomysłem.</li><li>Jeśli rozwiązanie jest łatwo wyjaśnić, to może ono być dobrym pomysłem.</li><li>Przestrzenie nazw to jeden z niesamowicie genialnych pomysłów – miejmy ich więcej!</li></ul></div><div class="slide" style="display: none; "><h1>Ściągawka z Pythona</h1><ul id="line_0"><li>zmienne są etykietami, nie pojemnikami</li><li>wartości, nie zmienne, mają typy</li><li>wszystko jest dynamiczne</li><li>wszystko jest obiektem</li></ul></div><div class="slide" style="display: none; "><h1>Zasięg zmiennej</h1><ul id="line_0"><li>Zmienne lokalne <code>locals()</code></li><li>Zmienne globalne <code>globals()</code></li><li>Zmienne wbudowane <code>buildins</code></li></ul></div><div class="slide" style="display: none; "><h1>Funkcja jako parametr</h1><div class="highlight"><pre><span id="line_1"><span class="k">def</span> <span class="nf">lowercase</span><span class="p">(</span><span class="n">s</span><span class="p">):</span>
+</span><span id="line_2">    <span class="k">return</span> <span class="n">s</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
+</span><span id="line_3">
+</span><span id="line_4"><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="s">'a'</span><span class="p">,</span> <span class="s">'B'</span><span class="p">,</span> <span class="s">'c'</span><span class="p">]</span>
+</span><span id="line_5"><span class="n">my_list</span><span class="o">.</span><span class="n">sort</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="n">lowercase</span><span class="p">)</span>
+</span><span id="line_6"><span class="k">print</span> <span class="n">my_list</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Wiązanie metod</h1><div class="highlight"><pre><span id="line_1"><span class="k">def</span> <span class="nf">call_with_a</span><span class="p">(</span><span class="n">method</span><span class="p">):</span>
+</span><span id="line_2">    <span class="n">method</span><span class="p">(</span><span class="s">'a'</span><span class="p">)</span>
+</span><span id="line_3">
+</span><span id="line_4"><span class="n">my_list</span> <span class="o">=</span> <span class="p">[]</span>
+</span><span id="line_5"><span class="n">call_with_a</span><span class="p">(</span><span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">)</span>
+</span><span id="line_6"><span class="k">print</span> <span class="n">my_list</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Domknięcia</h1><div class="highlight"><pre><span id="line_1"><span class="k">def</span> <span class="nf">create_get_set</span><span class="p">():</span>
+</span><span id="line_2">    <span class="n">value</span> <span class="o">=</span> <span class="p">[</span><span class="bp">None</span><span class="p">]</span>
+</span><span id="line_3">    <span class="k">def</span> <span class="nf">get</span><span class="p">():</span>
+</span><span id="line_4">        <span class="k">return</span> <span class="n">value</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+</span><span id="line_5">    <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="n">new_value</span><span class="p">):</span>
+</span><span id="line_6">        <span class="n">value</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_value</span>
+</span><span id="line_7">    <span class="k">return</span> <span class="n">get</span><span class="p">,</span> <span class="nb">set</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Zmienna liczba argumentów</h1><div class="highlight"><pre><span id="line_1"><span class="k">def</span> <span class="nf">get_arguments</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+</span><span id="line_2">    <span class="k">return</span> <span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span>
+</span><span id="line_3">
+</span><span id="line_4"><span class="n">get_argumenst</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">four</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
+</span></pre></div><div class="highlight"><pre><span id="line_8"><span class="n">my_list</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
+</span><span id="line_9"><span class="n">my_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s">'four'</span><span class="p">:</span> <span class="mi">5</span><span class="p">}</span>
+</span><span id="line_10">
+</span><span id="line_11"><span class="n">get_arguments</span><span class="p">(</span><span class="o">*</span><span class="n">my_list</span><span class="p">,</span> <span class="o">**</span><span class="n">my_dict</span><span class="p">)</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Przecinki</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="p">[</span>
+</span><span id="line_2"><span class="p">...</span> <span class="mi">1</span><span class="p">,</span>
+</span><span id="line_3"><span class="p">...</span> <span class="mi">2</span><span class="p">,</span>
+</span><span id="line_4"><span class="p">...</span> <span class="mi">3</span><span class="p">,</span>
+</span><span id="line_5"><span class="p">...</span> <span class="p">]</span>
+</span><span id="line_6"><span class="o">&gt;</span> <span class="nx">a</span>
+</span><span id="line_7"><span class="p">[</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span> <span class="p">]</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Klamry</h1><p id="line_0">Dobrze
+</p><div class="highlight"><pre><span id="line_2"><span class="k">return</span> <span class="p">{</span>
+</span><span id="line_3">    <span class="nx">javascript</span><span class="o">:</span> <span class="s2">"fantastic"</span>
+</span><span id="line_4"><span class="p">};</span>
+</span></pre></div><p id="line_7">Źle
+</p><div class="highlight"><pre><span id="line_9"><span class="k">return</span>
+</span><span id="line_10"><span class="p">{</span>
+</span><span id="line_11">    <span class="nx">javascript</span><span class="o">:</span> <span class="s2">"fantastic"</span>
+</span><span id="line_12"><span class="p">};</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Średniki</h1><div class="highlight"><pre><span id="line_1"><span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">getNode</span><span class="p">();</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parent</span><span class="p">;</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parent</span><span class="p">)</span>
+</span><span id="line_2"><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">node</span><span class="p">)</span>
+</span></pre></div><div class="highlight"><pre><span id="line_6"><span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">getNode</span><span class="p">();</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parent</span><span class="p">;</span> <span class="nx">node</span> <span class="o">=</span> <span class="nx">node</span><span class="p">.</span><span class="nx">parent</span><span class="p">);</span>
+</span><span id="line_7"><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">node</span><span class="p">);</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>W razie niejasności powstrzymaj pokusę zgadywania</h1><p id="line_0">…</p></div><div class="slide" style="display: none; "><h1>Obiekt globalny</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">global</span> <span class="o">=</span> <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span> <span class="p">}</span> <span class="p">())</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">global</span><span class="p">.</span><span class="nx">global_variable</span> <span class="o">=</span> <span class="mi">5</span>
+</span><span id="line_3"><span class="mi">5</span>
+</span><span id="line_4"><span class="o">&gt;</span> <span class="nx">global_variable</span>
+</span><span id="line_5"><span class="mi">5</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Domyślnie globalne</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="nx">variable</span> <span class="o">=</span> <span class="mi">3</span> <span class="p">}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">()</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="nx">variable</span>
+</span><span id="line_4"><span class="mi">3</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">g</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">local_variable</span> <span class="o">=</span> <span class="mi">3</span> <span class="p">}</span>
+</span><span id="line_6"><span class="o">&gt;</span> <span class="nx">g</span><span class="p">()</span>
+</span><span id="line_7"><span class="o">&gt;</span> <span class="nx">local_variable</span>
+</span><span id="line_8"><span class="nx">ReferenceError</span><span class="o">:</span> <span class="nx">local_variable</span> <span class="nx">is</span> <span class="nx">not</span> <span class="nx">defined</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Przestrzenie nazw</h1><p id="line_0">Przestrzenie nazw to jeden z niesamowicie genialnych pomysłów – miejmy ich więcej!
+</p></div><div class="slide" style="display: none; "><h1>Owijanie w funkcję</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">global_variable</span><span class="p">;</span>
+</span><span id="line_2">
+</span><span id="line_3"><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
+</span><span id="line_4">
+</span><span id="line_5"><span class="kd">var</span> <span class="nx">local_variable</span><span class="p">;</span>
+</span><span id="line_6">
+</span><span id="line_7"><span class="p">...</span>
+</span><span id="line_8">
+</span><span id="line_9"><span class="p">}())</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Równość</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="mi">1</span> <span class="o">==</span> <span class="mi">1</span>
+</span><span id="line_2"><span class="kc">true</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="mi">1</span> <span class="o">==</span> <span class="s1">'1'</span>
+</span><span id="line_4"><span class="kc">true</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="mi">0</span> <span class="o">==</span> <span class="s1">''</span>
+</span><span id="line_6"><span class="kc">true</span>
+</span><span id="line_7"><span class="o">&gt;</span> <span class="mi">0</span> <span class="o">==</span> <span class="kc">false</span>
+</span><span id="line_8"><span class="kc">true</span>
+</span><span id="line_9"><span class="o">&gt;</span> <span class="s1">'0'</span> <span class="o">==</span> <span class="mi">0</span>
+</span><span id="line_10"><span class="kc">true</span>
+</span><span id="line_11"><span class="o">&gt;</span> <span class="s1">'0'</span> <span class="o">==</span> <span class="s1">''</span>
+</span><span id="line_12"><span class="kc">false</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Dodawanie</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="s1">'a'</span> <span class="o">+</span> <span class="s1">'b'</span>
+</span><span id="line_2"><span class="s1">'ab'</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span>
+</span><span id="line_4"><span class="mi">3</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="s1">'1'</span> <span class="o">+</span> <span class="mi">2</span>
+</span><span id="line_6"><span class="s1">'12'</span>
+</span><span id="line_7"><span class="o">&gt;</span> <span class="mi">1</span> <span class="o">+</span> <span class="s1">'2'</span>
+</span><span id="line_8"><span class="s1">'12'</span>
+</span><span id="line_9"><span class="o">&gt;</span> <span class="s1">''</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">+</span> <span class="mi">2</span>
+</span><span id="line_10"><span class="s1">'12'</span>
+</span><span id="line_11"><span class="o">&gt;</span> <span class="o">+</span><span class="s1">'1'</span> <span class="o">+</span> <span class="mi">2</span>
+</span><span id="line_12"><span class="mi">3</span>
+</span><span id="line_13"><span class="o">&gt;</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>
+</span><span id="line_14"><span class="s1">'1,23,4'</span>
+</span><span id="line_15"><span class="o">&gt;</span> <span class="p">{}</span> <span class="o">+</span> <span class="p">{}</span>
+</span><span id="line_16"><span class="s1">'[object Object][object Object]'</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Wyrażone wprost</h1><p id="line_0">Wyrażone wprost jest lepsze niż domniemane.</p></div><div class="slide" style="display: none; "><h1>Not a number</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="mi">3</span> <span class="o">*</span> <span class="s1">'a'</span>
+</span><span id="line_2"><span class="kc">NaN</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="kc">NaN</span> <span class="o">+</span> <span class="mi">1</span>
+</span><span id="line_4"><span class="kc">NaN</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="k">typeof</span> <span class="kc">NaN</span>
+</span><span id="line_6"><span class="s1">'number'</span>
+</span><span id="line_7"><span class="o">&gt;</span> <span class="mi">3</span> <span class="o">*</span> <span class="s1">'a'</span> <span class="o">===</span> <span class="kc">NaN</span>
+</span><span id="line_8"><span class="kc">false</span>
+</span><span id="line_9"><span class="o">&gt;</span> <span class="kc">NaN</span> <span class="o">==</span> <span class="kc">NaN</span>
+</span><span id="line_10"><span class="kc">false</span>
+</span><span id="line_11"><span class="o">&gt;</span> <span class="nb">isNaN</span><span class="p">(</span><span class="kc">NaN</span><span class="p">)</span>
+</span><span id="line_12"><span class="kc">true</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Ukryte błedy</h1><ul id="line_0"><li>Błędy zawsze powinny być sygnalizowane.</li><li>Chyba że zostaną celowo ukryte.</li></ul></div><div class="slide" style="display: none; "><h1>Konwersje</h1><table id="line_0"><thead><tr><th> Typ </th><th> Python </th><th> JavaScript </th></tr></thead><tbody><tr><td> String </td><td> <code>str(x)</code> </td><td> <code>'' + x</code> </td></tr><tr><td> Float </td><td> <code>float(x)</code> </td><td> <code>+x</code> </td></tr><tr><td> Integer </td><td> <code>int(x)</code> </td><td> <code>Math.round(x)</code> </td></tr><tr><td> Boolean </td><td> <code>bool(x)</code> </td><td> <code>!!x</code> </td></tr><tr><td> Object </td><td> - </td><td> <code>Number(x)</code>, <code>String(x)</code> </td></tr><tr><td> Array/List </td><td> <code>list(x)</code> </td><td> <code>Array.prototype.slice.call(x)</code> </td></tr></tbody></table></div><div class="slide" style="display: none; "><h1>Czytelność</h1><p id="line_0">Czytelność się liczy.</p></div><div class="slide" style="display: none; "><h1>Podobieństwa</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'A'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'apple'</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'A'</span><span class="p">]</span>
+</span><span id="line_4"><span class="nx">apple</span>
+</span></pre></div><div class="highlight"><pre><span id="line_8"><span class="gp">&gt;&gt;&gt; </span><span class="n">pyo</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_9"><span class="gp">&gt;&gt;&gt; </span><span class="n">pyo</span><span class="p">[</span><span class="s">'A'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'apple'</span>
+</span><span id="line_10"><span class="gp">&gt;&gt;&gt; </span><span class="n">pyo</span><span class="p">[</span><span class="s">'A'</span><span class="p">]</span>
+</span><span id="line_11"><span class="go">'apple'</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Klucze</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'1'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'one'</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+</span><span id="line_4"><span class="nx">one</span>
+</span></pre></div><div class="highlight"><pre><span id="line_8"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_9"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="p">{},</span> <span class="nx">b</span> <span class="o">=</span> <span class="p">{};</span>
+</span><span id="line_10"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="nx">a</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'apple'</span>
+</span><span id="line_11"><span class="nx">apple</span>
+</span><span id="line_12"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="nx">b</span><span class="p">]</span>
+</span><span id="line_13"><span class="nx">apple</span>
+</span><span id="line_14"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'[object Object]'</span><span class="p">]</span>
+</span><span id="line_15"><span class="nx">apple</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Brak wartości</h1><div class="highlight"><pre><span id="line_1"><span class="gp">&gt;&gt;&gt; </span><span class="n">pyo</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_2"><span class="gp">&gt;&gt;&gt; </span><span class="n">pyo</span><span class="p">[</span><span class="s">'dne'</span><span class="p">]</span>
+</span><span id="line_3"><span class="gt">Traceback (most recent call last):</span>
+</span><span id="line_4">  File <span class="nb">"&lt;stdin&gt;"</span>, line <span class="m">1</span>, in <span class="n">&lt;module&gt;</span>
+</span><span id="line_5"><span class="gr">KeyError</span>: <span class="n">'dne'</span>
+</span></pre></div><div class="highlight"><pre><span id="line_9"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_10"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'dne'</span><span class="p">]</span>
+</span><span id="line_11"><span class="kc">undefined</span>
+</span><span id="line_12"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'dne'</span><span class="p">]</span> <span class="o">===</span> <span class="k">void</span> <span class="mi">0</span>
+</span><span id="line_13"><span class="kc">true</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Undefined</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kc">undefined</span>
+</span><span id="line_2"><span class="kc">undefined</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="k">typeof</span> <span class="kc">undefined</span>
+</span><span id="line_4"><span class="s1">'undefined'</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="kd">var</span> <span class="kc">undefined</span> <span class="o">=</span> <span class="mi">1</span>
+</span><span id="line_6"><span class="o">&gt;</span> <span class="kc">undefined</span>
+</span><span id="line_7"><span class="mi">1</span>
+</span><span id="line_8"><span class="o">&gt;</span> <span class="k">typeof</span> <span class="kc">undefined</span>
+</span><span id="line_9"><span class="s1">'number'</span>
+</span><span id="line_10"><span class="o">&gt;</span> <span class="k">void</span> <span class="mi">0</span>
+</span><span id="line_11"><span class="kc">undefined</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Atrybuty</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">jso</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'a'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'apple'</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">.</span><span class="nx">a</span>
+</span><span id="line_4"><span class="nx">apple</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">.</span><span class="nx">b</span> <span class="o">=</span> <span class="s1">'banana'</span>
+</span><span id="line_6"><span class="nx">banana</span>
+</span><span id="line_7"><span class="o">&gt;</span> <span class="nx">jso</span><span class="p">[</span><span class="s1">'b'</span><span class="p">]</span>
+</span><span id="line_8"><span class="nx">banana</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Iterowanie po obiekcie</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="nx">obj</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'a'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'b'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'c'</span><span class="o">:</span> <span class="mi">3</span><span class="p">}</span>
+</span><span id="line_2"><span class="p">{</span> <span class="nx">a</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="nx">b</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">c</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">}</span>
+</span><span id="line_4"><span class="nx">a</span>
+</span><span id="line_5"><span class="nx">b</span>
+</span><span id="line_6"><span class="nx">c</span>
+</span><span id="line_7"><span class="o">&gt;</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">prototype</span><span class="p">.</span><span class="nx">d</span> <span class="o">=</span> <span class="mi">4</span>
+</span><span id="line_8"><span class="mi">4</span>
+</span><span id="line_9"><span class="o">&gt;</span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">}</span>
+</span><span id="line_10"><span class="nx">a</span>
+</span><span id="line_11"><span class="nx">b</span>
+</span><span id="line_12"><span class="nx">c</span>
+</span><span id="line_13"><span class="nx">d</span>
+</span><span id="line_14"><span class="o">&gt;</span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">key</span> <span class="k">in</span> <span class="nx">obj</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nx">obj</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">key</span><span class="p">))</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">key</span><span class="p">)</span> <span class="p">}}</span>
+</span><span id="line_15"><span class="nx">a</span>
+</span><span id="line_16"><span class="nx">b</span>
+</span><span id="line_17"><span class="nx">c</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Array</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">a</span> <span class="o">=</span> <span class="k">new</span> <span class="nb">Array</span><span class="p">(</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">)</span>
+</span><span id="line_2"><span class="p">[</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span> <span class="p">]</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">b</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">]</span>
+</span><span id="line_4"><span class="p">[</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span> <span class="p">]</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="nx">a</span><span class="p">[</span><span class="mi">6</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'d'</span>
+</span><span id="line_6"><span class="s1">'d'</span>
+</span><span id="line_7"><span class="o">&gt;</span> <span class="nx">a</span>
+</span><span id="line_8"><span class="p">[</span> <span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">,</span> <span class="p">,</span> <span class="p">,</span> <span class="p">,</span> <span class="s1">'d'</span> <span class="p">]</span>
+</span><span id="line_9"><span class="o">&gt;</span> <span class="nx">a</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span>
+</span><span id="line_10"><span class="kc">undefined</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Iterowanie po tablicy</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">array</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'a'</span><span class="p">,</span> <span class="s1">'b'</span><span class="p">,</span> <span class="s1">'c'</span><span class="p">]</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">array</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="o">++</span><span class="nx">i</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">array</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p">}</span>
+</span><span id="line_3"><span class="nx">a</span>
+</span><span id="line_4"><span class="nx">b</span>
+</span><span id="line_5"><span class="nx">c</span>
+</span><span id="line_6"><span class="o">&gt;</span> <span class="nx">array</span><span class="p">.</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">element</span><span class="p">,</span> <span class="nx">index</span><span class="p">,</span> <span class="nx">array</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">element</span><span class="p">)</span> <span class="p">})</span>
+</span><span id="line_7"><span class="nx">a</span>
+</span><span id="line_8"><span class="nx">b</span>
+</span><span id="line_9"><span class="nx">c</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Definiowanie funkcji</h1><div class="highlight"><pre><span id="line_1"><span class="kd">function</span> <span class="nx">f</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">z</span><span class="p">)</span> <span class="p">{</span>
+</span><span id="line_2">    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span>
+</span><span id="line_3">    <span class="k">return</span> <span class="nx">y</span><span class="p">;</span>
+</span><span id="line_4"><span class="p">}</span>
+</span></pre></div><div class="highlight"><pre><span id="line_8"><span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">z</span><span class="p">)</span> <span class="p">{</span>
+</span><span id="line_9">    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span>
+</span><span id="line_10">    <span class="k">return</span> <span class="nx">y</span><span class="p">;</span>
+</span><span id="line_11"><span class="p">}</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Powinien być jeden</h1><p id="line_0">Powinien być jeden – i najlepiej tylko jeden – oczywisty sposób na zrobienie danej rzeczy.</p></div><div class="slide" style="display: none; "><h1>Holender</h1><p id="line_0">Choć ten sposób może nie być oczywisty jeśli nie jest się Holendrem.</p></div><div class="slide" style="display: none; "><h1>Wywołanie funkcji</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">z</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">x</span><span class="p">);</span> <span class="k">return</span> <span class="nx">y</span> <span class="p">}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+</span><span id="line_3"><span class="mi">1</span>
+</span><span id="line_4"><span class="mi">2</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+</span><span id="line_6"><span class="mi">1</span>
+</span><span id="line_7"><span class="kc">undefined</span>
+</span><span id="line_8"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">()</span>
+</span><span id="line_9"><span class="kc">undefined</span>
+</span><span id="line_10"><span class="kc">undefined</span>
+</span><span id="line_11"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
+</span><span id="line_12"><span class="mi">1</span>
+</span><span id="line_13"><span class="mi">2</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Wywołanie metody</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">z</span><span class="p">)</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="k">this</span><span class="p">);</span> <span class="k">return</span> <span class="nx">x</span> <span class="p">}</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+</span><span id="line_4"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span>
+</span><span id="line_5"><span class="mi">1</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>this</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="k">this</span> <span class="p">}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">()</span>
+</span><span id="line_3"><span class="p">...</span>
+</span><span id="line_4"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_5"><span class="o">&gt;</span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span> <span class="o">=</span> <span class="nx">f</span>
+</span><span id="line_6"><span class="o">&gt;</span> <span class="nx">o</span>
+</span><span id="line_7"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span>
+</span><span id="line_8"><span class="o">&gt;</span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span><span class="p">()</span>
+</span><span id="line_9"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Zmienna lista argumentów</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">arguments</span> <span class="p">}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+</span><span id="line_3"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span>
+</span><span id="line_4">  <span class="s1">'1'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span>
+</span><span id="line_5">  <span class="s1">'2'</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span>
+</span><span id="line_6"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">()</span>
+</span><span id="line_7"><span class="p">{}</span>
+</span><span id="line_8"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+</span><span id="line_9"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span> <span class="p">}</span>
+</span><span id="line_10"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">).</span><span class="nx">forEach</span><span class="p">(</span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">)</span>
+</span><span id="line_11"><span class="nx">TypeError</span><span class="o">:</span> <span class="nb">Object</span> <span class="err">#</span><span class="o">&lt;</span><span class="nb">Object</span><span class="o">&gt;</span> <span class="nx">has</span> <span class="nx">no</span> <span class="nx">method</span> <span class="s1">'forEach'</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Sytuacje wyjątkowe</h1><p id="line_0">Sytuacje wyjątkowe nie są na tyle wyjątkowe, aby łamać reguły.</p></div><div class="slide" style="display: none; "><h1>Call i Apply</h1><div class="highlight"><pre><span id="line_1"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">arguments</span><span class="p">);</span> <span class="k">return</span> <span class="k">this</span> <span class="p">}</span>
+</span><span id="line_2"><span class="o">&gt;</span> <span class="kd">var</span> <span class="nx">o</span> <span class="o">=</span> <span class="p">{}</span>
+</span><span id="line_3"><span class="o">&gt;</span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span> <span class="o">=</span> <span class="nx">f</span>
+</span><span id="line_4"><span class="o">&gt;</span> <span class="nx">o</span><span class="p">.</span><span class="nx">m</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+</span><span id="line_5"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'1'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'2'</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span>
+</span><span id="line_6"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span>
+</span><span id="line_7"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">o</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+</span><span id="line_8"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'1'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'2'</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span>
+</span><span id="line_9"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span>
+</span><span id="line_10"><span class="o">&gt;</span> <span class="nx">f</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">o</span><span class="p">,</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span>
+</span><span id="line_11"><span class="p">{</span> <span class="s1">'0'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'1'</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="s1">'2'</span><span class="o">:</span> <span class="mi">3</span> <span class="p">}</span>
+</span><span id="line_12"><span class="p">{</span> <span class="nx">m</span><span class="o">:</span> <span class="p">[</span><span class="nb">Function</span><span class="p">]</span> <span class="p">}</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Klasa Point</h1><div class="highlight"><pre><span id="line_1"><span class="k">class</span> <span class="nc">Point</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
+</span><span id="line_2">    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
+</span><span id="line_3">        <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">x</span>
+</span><span id="line_4">        <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">=</span> <span class="n">y</span>
+</span><span id="line_5">
+</span><span id="line_6">    <span class="k">def</span> <span class="nf">move</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dx</span><span class="p">,</span> <span class="n">dy</span><span class="p">):</span>
+</span><span id="line_7">        <span class="sd">"""Move point by changes dx and dy."""</span>
+</span><span id="line_8">
+</span><span id="line_9">        <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">+=</span> <span class="n">dx</span>
+</span><span id="line_10">        <span class="bp">self</span><span class="o">.</span><span class="n">y</span> <span class="o">+=</span> <span class="n">dy</span>
+</span><span id="line_11">
+</span><span id="line_12">    <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+</span><span id="line_13">        <span class="k">return</span> <span class="s">'&lt;Point(</span><span class="si">%d</span><span class="s">, </span><span class="si">%d</span><span class="s">)&gt;'</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">x</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">y</span><span class="p">)</span>
+</span><span id="line_14">
+</span><span id="line_15"><span class="n">mypoint</span> <span class="o">=</span> <span class="n">Point</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
+</span><span id="line_16"><span class="n">mypoint</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
+</span><span id="line_17"><span class="k">print</span> <span class="n">mypoint</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>create()</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">create</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
+</span><span id="line_2">    <span class="kd">var</span> <span class="nx">f</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{};</span>
+</span><span id="line_3">    <span class="nx">f</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="nx">parent</span><span class="p">;</span>
+</span><span id="line_4">    <span class="k">return</span> <span class="k">new</span> <span class="nx">f</span><span class="p">();</span>
+</span><span id="line_5"><span class="p">};</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>bind()</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">bind</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">method</span><span class="p">)</span> <span class="p">{</span>
+</span><span id="line_2">    <span class="k">return</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
+</span><span id="line_3">        <span class="k">return</span> <span class="nx">method</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">obj</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span>
+</span><span id="line_4">    <span class="p">};</span>
+</span><span id="line_5"><span class="p">}</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Obiekt nadrzędny</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">point</span> <span class="o">=</span> <span class="p">{};</span>
+</span><span id="line_2">
+</span><span id="line_3"><span class="nx">point</span><span class="p">.</span><span class="nx">__init__</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">)</span> <span class="p">{</span>
+</span><span id="line_4">    <span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">=</span> <span class="nx">x</span><span class="p">;</span>
+</span><span id="line_5">    <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">=</span> <span class="nx">y</span><span class="p">;</span>
+</span><span id="line_6"><span class="p">};</span>
+</span><span id="line_7">
+</span><span id="line_8"><span class="nx">point</span><span class="p">.</span><span class="nx">move</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">dx</span><span class="p">,</span> <span class="nx">dy</span><span class="p">)</span> <span class="p">{</span>
+</span><span id="line_9">    <span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">+=</span> <span class="nx">dx</span><span class="p">;</span>
+</span><span id="line_10">    <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">+=</span> <span class="nx">dy</span><span class="p">;</span>
+</span><span id="line_11"><span class="p">};</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Konstruktor</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">Point</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
+</span><span id="line_2">    <span class="nx">instance</span> <span class="o">=</span> <span class="nx">create</span><span class="p">(</span><span class="nx">point</span><span class="p">);</span>
+</span><span id="line_3">    <span class="nx">instance</span><span class="p">.</span><span class="nx">__init__</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span>
+</span><span id="line_4">    <span class="k">return</span> <span class="nx">instance</span><span class="p">;</span>
+</span><span id="line_5"><span class="p">};</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>__repr__</h1><div class="highlight"><pre><span id="line_1"><span class="nx">point</span><span class="p">.</span><span class="nx">toString</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
+</span><span id="line_2">    <span class="k">return</span> <span class="s1">'&lt;Point('</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">x</span> <span class="o">+</span> <span class="s1">', '</span> <span class="o">+</span> <span class="k">this</span><span class="p">.</span><span class="nx">y</span> <span class="o">+</span> <span class="s1">')&gt;'</span><span class="p">;</span>
+</span><span id="line_3"><span class="p">};</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Faktoria konstruktorów</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">make_constructor</span> <span class="p">(</span><span class="nx">parent</span><span class="p">)</span> <span class="p">{</span>
+</span><span id="line_2">    <span class="k">return</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
+</span><span id="line_3">        <span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="nx">create</span><span class="p">(</span><span class="nx">parent</span><span class="p">);</span>
+</span><span id="line_4">        <span class="nx">instance</span><span class="p">.</span><span class="nx">__init__</span><span class="p">.</span><span class="nx">apply</span><span class="p">(</span><span class="nx">instance</span><span class="p">,</span> <span class="nx">arguments</span><span class="p">);</span>
+</span><span id="line_5">        <span class="k">return</span> <span class="nx">instance</span><span class="p">;</span>
+</span><span id="line_6">    <span class="p">};</span>
+</span><span id="line_7"><span class="p">};</span>
+</span><span id="line_8">
+</span><span id="line_9"><span class="nx">Point</span> <span class="o">=</span> <span class="nx">make_constructor</span><span class="p">(</span><span class="nx">point</span><span class="p">);</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Piękne</h1><p id="line_0">Piękne jest lepsze niż brzydkie.</p></div><div class="slide" style="display: none; "><h1>Przecieki w MSIE</h1><div class="highlight"><pre><span id="line_1"><span class="nb">document</span><span class="p">.</span><span class="nx">onload</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
+</span><span id="line_2">    <span class="kd">var</span> <span class="nx">element</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">'content'</span><span class="p">);</span>
+</span><span id="line_3">    <span class="nx">element</span><span class="p">.</span><span class="nx">onclick</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
+</span><span id="line_4">        <span class="nx">element</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">background_color</span> <span class="o">=</span> <span class="s1">'pink'</span><span class="p">;</span>
+</span><span id="line_5">    <span class="p">};</span>
+</span><span id="line_6"><span class="p">};</span>
+</span></pre></div><ul id="line_9"><li>element → onclick</li><li>onclick → element</li></ul></div><div class="slide" style="display: none; "><h1>Linkowanie w HTML</h1><div class="highlight"><pre><span id="line_1"><span class="nt">&lt;script </span><span class="na">src=</span><span class="s">"/static/hello.minified.js?v=1234"</span><span class="nt">&gt;&lt;/script&gt;</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Require</h1><div class="highlight"><pre><span id="line_1"><span class="kd">var</span> <span class="nx">http</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'http'</span><span class="p">);</span>
+</span><span id="line_2"><span class="kd">var</span> <span class="nx">handler</span> <span class="o">=</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">request</span><span class="p">,</span> <span class="nx">response</span><span class="p">)</span> <span class="p">{</span>
+</span><span id="line_3">  <span class="nx">response</span><span class="p">.</span><span class="nx">writeHead</span><span class="p">(</span><span class="mi">200</span><span class="p">,</span> <span class="p">{</span><span class="s1">'Content-Type'</span><span class="o">:</span> <span class="s1">'text/plain'</span><span class="p">});</span>
+</span><span id="line_4">  <span class="nx">response</span><span class="p">.</span><span class="nx">end</span><span class="p">(</span><span class="s1">'Hello World\n'</span><span class="p">);</span>
+</span><span id="line_5"><span class="p">};</span>
+</span><span id="line_6"><span class="kd">var</span> <span class="nx">server</span> <span class="o">=</span> <span class="nx">http</span><span class="p">.</span><span class="nx">createServer</span><span class="p">(</span><span class="nx">handler</span><span class="p">);</span>
+</span><span id="line_7"><span class="nx">server</span><span class="p">.</span><span class="nx">listen</span><span class="p">(</span><span class="mi">1337</span><span class="p">,</span> <span class="s1">'127.0.0.1'</span><span class="p">);</span>
+</span></pre></div></div><div class="slide" style="display: none; "><h1>Źródła</h1><ul id="line_0"><li><a href="http://js4py.rtfd.org/" class="external" title="http://js4py.rtfd.org">http://js4py.rtfd.org</a> – Jonathan Fine</li><li><a href="http://crockford.com/" class="external" title="http://crockford.com">http://crockford.com</a> – Douglas Crockford</li><li>”JavaScript: The Good Parts“ – Douglas Crockford</li><li><a href="https://developer.mozilla.org/" class="external" title="https://developer.mozilla.org">https://developer.mozilla.org</a> – Mozilla</li><li><a href="http://nodejs.org/" class="external" title="http://nodejs.org">http://nodejs.org</a> – Node.js</li></ul></div>
+<script src="docs/jquery.js"></script>
+<script src="docs/slides.js"></script>
+</body></html>