• R/O
  • SSH

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

コミットメタ情報

リビジョンb5be57eaccb213e2474d9257a8b3add286c666e1 (tree)
日時2020-03-22 22:29:21
作者Albert Mietus < albert AT mietus DOT nl >
コミッターAlbert Mietus < albert AT mietus DOT nl >

ログメッセージ

PubSub: upgrades demo-slides

変更サマリ

差分

diff -r 3a192e0610d4 -r b5be57eaccb2 _slides/PubSub-demo.slides.html
--- a/_slides/PubSub-demo.slides.html Sun Mar 22 00:11:46 2020 +0100
+++ b/_slides/PubSub-demo.slides.html Sun Mar 22 14:29:21 2020 +0100
@@ -13188,6 +13188,7 @@
1318813188 </style>
1318913189
1319013190 <!-- Custom stylesheet, it must be in the same directory as the html file -->
13191+<link rel="stylesheet" href="SwBMnl-slides.css">
1319113192 <link rel="stylesheet" href="custom.css">
1319213193
1319313194 </head>
@@ -13202,10 +13203,30 @@
1320213203 <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1320313204 </div><div class="inner_cell">
1320413205 <div class="text_cell_render border-box-sizing rendered_html">
13205-<h1 id="Pub/Sub--workshop----Part-I"><strong>Pub</strong>/<em>Sub</em> workshop -- Part I<a class="anchor-link" href="#Pub/Sub--workshop----Part-I">&#182;</a></h1><p>Some demos in python</p>
13206+<h1 id="Pub/Sub--workshop-Demo"><strong>Pub</strong>/<em>Sub</em> workshop Demo<a class="anchor-link" href="#Pub/Sub--workshop-Demo">&#182;</a></h1><p><em>This notebook is part of my
13207+<a href="http://mess.softwarebetermaken.nl">MESS</a>
13208+<a href="http://mess.softwarebetermaken.nl/en/latest/SoftwareCompetence/DesignWorkShops/">Design Workshop</a>
13209+<a href="http://mess.softwarebetermaken.nl/en/latest/SoftwareCompetence/DesignWorkShops/PubSub/">PubSub</a></em>
13210+{<a href="http://mess.softwarebetermaken.nl/en/dev-designworkshop/SoftwareCompetence/DesignWorkShops/PubSub/index.html">DRAFT</a>}</p>
13211+<h2 id="A-complete-PubSub-demo-in-python">A complete PubSub demo in python<a class="anchor-link" href="#A-complete-PubSub-demo-in-python">&#182;</a></h2><p>For instruction to run, or see it as a slideshow, see: <a href="http://mess.softwarebetermaken.nl/en/latest/SoftwareCompetence/DesignWorkShops/PubSub/demo/index.html">http://mess.softwarebetermaken.nl/en/latest/SoftwareCompetence/DesignWorkShops/PubSub/demo/index.html</a>
13212+{<a href="http://mess.softwarebetermaken.nl/en/dev-designworkshop/SoftwareCompetence/DesignWorkShops/PubSub/demo/index.html">Draft</a>}</p>
13213+<hr>
13214+<p><strong>Notes</strong> <em>(in slides-mode):</em></p>
13215+<ul>
13216+<li>Use the <strong>spacebar</strong> to forward to the next slide <em>after</em> selecting (clicking) in this frame. </li>
13217+<li>Or, click the <strong>outer-edge</strong> to open in a new window/tab. And use <strong>'F'</strong> for full-window mode</li>
13218+</ul>
13219+
13220+</div>
13221+</div>
13222+</div></section><section>
13223+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13224+</div><div class="inner_cell">
13225+<div class="text_cell_render border-box-sizing rendered_html">
13226+<h2 id="The-Demo">The Demo<a class="anchor-link" href="#The-Demo">&#182;</a></h2><p>Some demos in python</p>
1320613227 <ol>
1320713228 <li>A complete implementation<ol>
13208-<li>A <strong>Topic</strong>-based, OO-style class</li>
13229+<li>A <strong>Topic</strong> class</li>
1320913230 <li>With a subscribe and a publish method</li>
1321013231 </ol>
1321113232 </li>
@@ -13215,25 +13236,19 @@
1321513236 </ul>
1321613237 </li>
1321713238 <li>Both in function-style and in OO-style<ul>
13218-<li>And, with a mixture </li>
13239+<li>And, in the mixture </li>
1321913240 </ul>
1322013241 </li>
1322113242 </ol>
1322213243 </li>
13223-<li>And using it, by publishing <em>to all</em> <ol>
13244+<li><p>Use it, by publishing <em>to all</em></p>
13245+<ol>
1322413246 <li>Life, interactive; in IPython (&amp; Jupyter) notebook</li>
1322513247 <li><em>Revealjs</em> slides, generated from above</li>
13226-<li>Both the notebook &amp; slides are downloadable</li>
1322713248 </ol>
13249+<p>Both, the notebook &amp; slides are downloadable</p>
1322813250 </li>
1322913251 </ol>
13230-<hr>
13231-<p>Note: to <em>run</em> this yourself, Install:</p>
13232-<ul>
13233-<li>Jupiter (<a href="https://jupyter.readthedocs.io/en/latest/install.html#install">https://jupyter.readthedocs.io/en/latest/install.html#install</a>), via</li>
13234-<li>Anaconda (<a href="https://www.anaconda.com/distribution/">https://www.anaconda.com/distribution/</a>) </li>
13235-<li><strong>Here</strong> <a href="https://repo.anaconda.com/archive/Anaconda3-2020.02-Windows-x86_64.exe">Window 64</a></li>
13236-</ul>
1323713252
1323813253 </div>
1323913254 </div>
@@ -13243,7 +13258,7 @@
1324313258 <div class="text_cell_render border-box-sizing rendered_html">
1324413259 <h2 id="The-basics:-A-Topic-class">The basics: A Topic class<a class="anchor-link" href="#The-basics:-A-Topic-class">&#182;</a></h2><ul>
1324513260 <li>A simple <code>Topic</code> class</li>
13246-<li>And a trivial function which is subscribed</li>
13261+<li>And a trivial function that is use to subscribe</li>
1324713262 </ul>
1324813263
1324913264 </div>
@@ -13296,11 +13311,19 @@
1329613311 </div>
1329713312 </div>
1329813313
13314+</div>
13315+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13316+</div><div class="inner_cell">
13317+<div class="text_cell_render border-box-sizing rendered_html">
13318+<p>Notes: You can ignore <code>Topic.__init__()</code> and <code>Topic.__str__()</code> for now</p>
13319+
13320+</div>
13321+</div>
1329913322 </div></section></section><section><section>
1330013323 <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1330113324 </div><div class="inner_cell">
1330213325 <div class="text_cell_render border-box-sizing rendered_html">
13303-<h1 id="Demo-1">Demo 1<a class="anchor-link" href="#Demo-1">&#182;</a></h1><ul>
13326+<h1 id="Demo-1:-Simple-use">Demo 1: Simple use<a class="anchor-link" href="#Demo-1:-Simple-use">&#182;</a></h1><ul>
1330413327 <li>Create a topic</li>
1330513328 <li>Subscribe <code>demo</code></li>
1330613329 <li>Publish a value</li>
@@ -13357,7 +13380,7 @@
1335713380
1335813381
1335913382 <div class="output_subarea output_stream output_stdout output_text">
13360-<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X7f85ccbcc150&gt;&gt; has new value: HOI
13383+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X192e8f50888&gt;&gt; has new value: HOI
1336113384 </pre>
1336213385 </div>
1336313386 </div>
@@ -13365,11 +13388,20 @@
1336513388 </div>
1336613389 </div>
1336713390
13391+</div>
13392+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13393+</div><div class="inner_cell">
13394+<div class="text_cell_render border-box-sizing rendered_html">
13395+<p><strong>Using</strong> a Topic is trivial:</p>
13396+<p>Once a topic is created and a <em>callback</em> is registerd, that function is called whenever a new value is pubished.</p>
13397+
13398+</div>
13399+</div>
1336813400 </div></section><section>
1336913401 <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1337013402 </div><div class="inner_cell">
1337113403 <div class="text_cell_render border-box-sizing rendered_html">
13372-<h2 id="This-pub/sub-is-smart">This pub/sub is <em>smart</em><a class="anchor-link" href="#This-pub/sub-is-smart">&#182;</a></h2><ul>
13404+<h2 id="1a:-This-pub/sub-is-smart">1a: This pub/sub is <em>smart</em><a class="anchor-link" href="#1a:-This-pub/sub-is-smart">&#182;</a></h2><ul>
1337313405 <li>It will <em>not</em> distribute the same value twice. </li>
1337413406 <li>Unless it is asked to do so (<code>force</code>)</li>
1337513407 </ul>
@@ -13401,7 +13433,7 @@
1340113433
1340213434
1340313435 <div class="output_subarea output_stream output_stdout output_text">
13404-<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X7f85ccbcc150&gt;&gt; has new value: AGAIN
13436+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X192e8f50888&gt;&gt; has new value: AGAIN
1340513437 </pre>
1340613438 </div>
1340713439 </div>
@@ -13434,8 +13466,8 @@
1343413466
1343513467
1343613468 <div class="output_subarea output_stream output_stdout output_text">
13437-<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X7f85ccbcc150&gt;&gt; has new value: FORCE
13438-Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X7f85ccbcc150&gt;&gt; has new value: FORCE
13469+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X192e8f50888&gt;&gt; has new value: FORCE
13470+Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X192e8f50888&gt;&gt; has new value: FORCE
1343913471 </pre>
1344013472 </div>
1344113473 </div>
@@ -13468,8 +13500,80 @@
1346813500
1346913501
1347013502 <div class="output_subarea output_stream output_stdout output_text">
13471-<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X7f85ccbcc150&gt;&gt; has new value: SMART
13472-Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X7f85ccbcc150&gt;&gt; has new value: SMART
13503+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X192e8f50888&gt;&gt; has new value: SMART
13504+Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X192e8f50888&gt;&gt; has new value: SMART
13505+</pre>
13506+</div>
13507+</div>
13508+
13509+</div>
13510+</div>
13511+
13512+</div>
13513+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13514+</div><div class="inner_cell">
13515+<div class="text_cell_render border-box-sizing rendered_html">
13516+<h2 id="1b:-Even-more-smartness">1b: Even more smartness<a class="anchor-link" href="#1b:-Even-more-smartness">&#182;</a></h2><p>This <code>Topic</code> will not subscribe the same function again</p>
13517+
13518+</div>
13519+</div>
13520+</div>
13521+<div class="cell border-box-sizing code_cell rendered">
13522+<div class="input">
13523+<div class="prompt input_prompt">In&nbsp;[9]:</div>
13524+<div class="inner_cell">
13525+ <div class="input_area">
13526+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">t1</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;I&#39;m so smart&quot;</span><span class="p">)</span>
13527+</pre></div>
13528+
13529+ </div>
13530+</div>
13531+</div>
13532+
13533+<div class="output_wrapper">
13534+<div class="output">
13535+
13536+
13537+<div class="output_area">
13538+
13539+ <div class="prompt"></div>
13540+
13541+
13542+<div class="output_subarea output_stream output_stdout output_text">
13543+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X192e8f50888&gt;&gt; has new value: I&#39;m so smart
13544+</pre>
13545+</div>
13546+</div>
13547+
13548+</div>
13549+</div>
13550+
13551+</div>
13552+<div class="cell border-box-sizing code_cell rendered">
13553+<div class="input">
13554+<div class="prompt input_prompt">In&nbsp;[10]:</div>
13555+<div class="inner_cell">
13556+ <div class="input_area">
13557+<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># `demo` is already registered above</span>
13558+<span class="n">t1</span><span class="o">.</span><span class="n">subscribe</span><span class="p">(</span><span class="n">demo</span><span class="p">)</span> <span class="c1"># will silently be ingnored</span>
13559+<span class="n">t1</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;As I call demo only once&quot;</span><span class="p">)</span>
13560+</pre></div>
13561+
13562+ </div>
13563+</div>
13564+</div>
13565+
13566+<div class="output_wrapper">
13567+<div class="output">
13568+
13569+
13570+<div class="output_area">
13571+
13572+ <div class="prompt"></div>
13573+
13574+
13575+<div class="output_subarea output_stream output_stdout output_text">
13576+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo 1&#39; at 0X192e8f50888&gt;&gt; has new value: As I call demo only once
1347313577 </pre>
1347413578 </div>
1347513579 </div>
@@ -13481,14 +13585,22 @@
1348113585 <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1348213586 </div><div class="inner_cell">
1348313587 <div class="text_cell_render border-box-sizing rendered_html">
13484-<h1 id="Demo-2">Demo 2<a class="anchor-link" href="#Demo-2">&#182;</a></h1><p>Now with multiple (4) subscribers (on another topic)</p>
13588+<h1 id="Demo-2:-Multi-use">Demo 2: Multi-use<a class="anchor-link" href="#Demo-2:-Multi-use">&#182;</a></h1><p>Now with multiple subscribers</p>
13589+<ul>
13590+<li>We create (another) Topic: <code>t2</code></li>
13591+<li>And a handfull of (<em>again, trivial</em>) demo-callbacs</li>
13592+</ul>
13593+<p>And subscribe all <em>callbacks</em> to the same <code>t2</code> Topic ...</p>
13594+<p>Then, all are executed as when <code>publish()</code> is called (once).</p>
13595+<hr>
13596+<p><em>It is so easy :-)</em></p>
1348513597
1348613598 </div>
1348713599 </div>
1348813600 </div></section><section>
1348913601 <div class="cell border-box-sizing code_cell rendered">
1349013602 <div class="input">
13491-<div class="prompt input_prompt">In&nbsp;[9]:</div>
13603+<div class="prompt input_prompt">In&nbsp;[11]:</div>
1349213604 <div class="inner_cell">
1349313605 <div class="input_area">
1349413606 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">t2</span><span class="o">=</span> <span class="n">Topic</span><span class="p">(</span><span class="s2">&quot;demo2&quot;</span><span class="p">)</span>
@@ -13501,7 +13613,7 @@
1350113613 </div>
1350213614 <div class="cell border-box-sizing code_cell rendered">
1350313615 <div class="input">
13504-<div class="prompt input_prompt">In&nbsp;[10]:</div>
13616+<div class="prompt input_prompt">In&nbsp;[12]:</div>
1350513617 <div class="inner_cell">
1350613618 <div class="input_area">
1350713619 <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">demo_2</span><span class="p">(</span><span class="n">val</span><span class="p">,</span> <span class="n">topic</span><span class="p">):</span>
@@ -13519,7 +13631,7 @@
1351913631 </div>
1352013632 <div class="cell border-box-sizing code_cell rendered">
1352113633 <div class="input">
13522-<div class="prompt input_prompt">In&nbsp;[11]:</div>
13634+<div class="prompt input_prompt">In&nbsp;[13]:</div>
1352313635 <div class="inner_cell">
1352413636 <div class="input_area">
1352513637 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">t2</span><span class="o">.</span><span class="n">subscribe</span><span class="p">(</span><span class="n">demo</span><span class="p">)</span>
@@ -13535,7 +13647,7 @@
1353513647 </div></section><section>
1353613648 <div class="cell border-box-sizing code_cell rendered">
1353713649 <div class="input">
13538-<div class="prompt input_prompt">In&nbsp;[12]:</div>
13650+<div class="prompt input_prompt">In&nbsp;[14]:</div>
1353913651 <div class="inner_cell">
1354013652 <div class="input_area">
1354113653 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">t2</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;ALL&quot;</span><span class="p">)</span>
@@ -13555,10 +13667,10 @@
1355513667
1355613668
1355713669 <div class="output_subarea output_stream output_stdout output_text">
13558-<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X7f85ccbcc350&gt;&gt; has new value: ALL
13559-Demo 2:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X7f85ccbcc350&gt;&gt; has new value: ALL
13560-Demo 3:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X7f85ccbcc350&gt;&gt; has new value: ALL
13561-Demo 4:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X7f85ccbcc350&gt;&gt; has new value: ALL
13670+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X192e8f50508&gt;&gt; has new value: ALL
13671+Demo 2:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X192e8f50508&gt;&gt; has new value: ALL
13672+Demo 3:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X192e8f50508&gt;&gt; has new value: ALL
13673+Demo 4:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X192e8f50508&gt;&gt; has new value: ALL
1356213674 </pre>
1356313675 </div>
1356413676 </div>
@@ -13566,15 +13678,69 @@
1356613678 </div>
1356713679 </div>
1356813680
13681+</div>
13682+<div class="cell border-box-sizing code_cell rendered">
13683+<div class="input">
13684+<div class="prompt input_prompt">In&nbsp;[15]:</div>
13685+<div class="inner_cell">
13686+ <div class="input_area">
13687+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">t2</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;again&quot;</span><span class="p">)</span>
13688+</pre></div>
13689+
13690+ </div>
13691+</div>
13692+</div>
13693+
13694+<div class="output_wrapper">
13695+<div class="output">
13696+
13697+
13698+<div class="output_area">
13699+
13700+ <div class="prompt"></div>
13701+
13702+
13703+<div class="output_subarea output_stream output_stdout output_text">
13704+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X192e8f50508&gt;&gt; has new value: again
13705+Demo 2:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X192e8f50508&gt;&gt; has new value: again
13706+Demo 3:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X192e8f50508&gt;&gt; has new value: again
13707+Demo 4:: Topic: &lt;&lt;Topic: &#39;demo2&#39; at 0X192e8f50508&gt;&gt; has new value: again
13708+</pre>
13709+</div>
13710+</div>
13711+
13712+</div>
13713+</div>
13714+
13715+</div>
13716+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13717+</div><div class="inner_cell">
13718+<div class="text_cell_render border-box-sizing rendered_html">
13719+<p>Surely, we can add more <em>subscribers</em>, and <em>publish</em> more often ...</p>
13720+
13721+</div>
13722+</div>
1356913723 </div></section></section><section><section>
1357013724 <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1357113725 </div><div class="inner_cell">
1357213726 <div class="text_cell_render border-box-sizing rendered_html">
13573-<h1 id="Demo-3:-OO-subscribers">Demo 3: OO subscribers<a class="anchor-link" href="#Demo-3:-OO-subscribers">&#182;</a></h1><ul>
13574-<li>We can also subscribe a method of a class-instance<ul>
13575-<li>Python will automatically remember the object (self)</li>
13727+<h1 id="Demo-3:-OO-subscribers">Demo 3: OO subscribers<a class="anchor-link" href="#Demo-3:-OO-subscribers">&#182;</a></h1><p>You can also subscribe <em>methods</em>, when you prefer an OO style.
13728+This works the same as with functions: just register the method.</p>
13729+<ul>
13730+<li>We will define a class with a demo-callback</li>
13731+<li>And register it to a new Topic: <code>t3</code></li>
1357613732 </ul>
13577-</li>
13733+
13734+</div>
13735+</div>
13736+</div>
13737+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13738+</div><div class="inner_cell">
13739+<div class="text_cell_render border-box-sizing rendered_html">
13740+<hr>
13741+<p>Notes:</p>
13742+<ul>
13743+<li>Python will automatically remember the object (<code>self</code>)</li>
1357813744 <li>Here, we use a <em>trick</em> (<code>self._no</code>) to show the different instances</li>
1357913745 </ul>
1358013746
@@ -13583,7 +13749,7 @@
1358313749 </div></section><section>
1358413750 <div class="cell border-box-sizing code_cell rendered">
1358513751 <div class="input">
13586-<div class="prompt input_prompt">In&nbsp;[13]:</div>
13752+<div class="prompt input_prompt">In&nbsp;[16]:</div>
1358713753 <div class="inner_cell">
1358813754 <div class="input_area">
1358913755 <div class=" highlight hl-ipython3"><pre><span></span><span class="k">class</span> <span class="nc">Demo</span><span class="p">:</span>
@@ -13608,7 +13774,7 @@
1360813774 </div></section><section>
1360913775 <div class="cell border-box-sizing code_cell rendered">
1361013776 <div class="input">
13611-<div class="prompt input_prompt">In&nbsp;[14]:</div>
13777+<div class="prompt input_prompt">In&nbsp;[17]:</div>
1361213778 <div class="inner_cell">
1361313779 <div class="input_area">
1361413780 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">o</span> <span class="o">=</span> <span class="n">Demo</span><span class="p">()</span>
@@ -13621,7 +13787,7 @@
1362113787 </div>
1362213788 <div class="cell border-box-sizing code_cell rendered">
1362313789 <div class="input">
13624-<div class="prompt input_prompt">In&nbsp;[15]:</div>
13790+<div class="prompt input_prompt">In&nbsp;[18]:</div>
1362513791 <div class="inner_cell">
1362613792 <div class="input_area">
1362713793 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">t3</span> <span class="o">=</span> <span class="n">Topic</span><span class="p">(</span><span class="s2">&quot;OO Demo&quot;</span><span class="p">)</span>
@@ -13634,7 +13800,7 @@
1363413800 </div>
1363513801 <div class="cell border-box-sizing code_cell rendered">
1363613802 <div class="input">
13637-<div class="prompt input_prompt">In&nbsp;[16]:</div>
13803+<div class="prompt input_prompt">In&nbsp;[19]:</div>
1363813804 <div class="inner_cell">
1363913805 <div class="input_area">
1364013806 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">t3</span><span class="o">.</span><span class="n">subscribe</span><span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">demo</span><span class="p">)</span>
@@ -13647,7 +13813,7 @@
1364713813 </div></section><section>
1364813814 <div class="cell border-box-sizing code_cell rendered">
1364913815 <div class="input">
13650-<div class="prompt input_prompt">In&nbsp;[17]:</div>
13816+<div class="prompt input_prompt">In&nbsp;[20]:</div>
1365113817 <div class="inner_cell">
1365213818 <div class="input_area">
1365313819 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">t3</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;class&quot;</span><span class="p">)</span>
@@ -13667,7 +13833,7 @@
1366713833
1366813834
1366913835 <div class="output_subarea output_stream output_stdout output_text">
13670-<pre>&lt;&lt;Demo: ._no=0 at 0X7f85ccc22d10&gt;&gt; got &#39;class&#39; from topic &lt;&lt;Topic: &#39;OO Demo&#39; at 0X7f85d06d6390&gt;&gt;
13836+<pre>&lt;&lt;Demo: ._no=0 at 0X192e8e2b588&gt;&gt; got &#39;class&#39; from topic &lt;&lt;Topic: &#39;OO Demo&#39; at 0X192e8e39d88&gt;&gt;
1367113837 </pre>
1367213838 </div>
1367313839 </div>
@@ -13679,17 +13845,29 @@
1367913845 <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1368013846 </div><div class="inner_cell">
1368113847 <div class="text_cell_render border-box-sizing rendered_html">
13682-<h2 id="Mix-and-Match">Mix and Match<a class="anchor-link" href="#Mix-and-Match">&#182;</a></h2><ul>
13683-<li>As shown, it possible to mix classic functions and <em>objects</em></li>
13684-<li>Again we can subscribe multiple instances</li>
13848+<h1 id="Demo4:--Mix-and-Match">Demo4: Mix and Match<a class="anchor-link" href="#Demo4:--Mix-and-Match">&#182;</a></h1><p>You can mix-&amp;-match all the several uses:</p>
13849+<ul>
13850+<li>Classic functions and <em>objects</em></li>
13851+<li>Register many callbacks<ul>
13852+<li>In this demo, we use a loop to quckly define many callback.</li>
13853+</ul>
13854+</li>
13855+<li>Subscribe after a publication </li>
1368513856 </ul>
1368613857
1368713858 </div>
1368813859 </div>
1368913860 </div></section><section>
13861+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13862+</div><div class="inner_cell">
13863+<div class="text_cell_render border-box-sizing rendered_html">
13864+<h2 id="4.1-many-subscribers">4.1 many subscribers<a class="anchor-link" href="#4.1-many-subscribers">&#182;</a></h2>
13865+</div>
13866+</div>
13867+</div>
1369013868 <div class="cell border-box-sizing code_cell rendered">
1369113869 <div class="input">
13692-<div class="prompt input_prompt">In&nbsp;[18]:</div>
13870+<div class="prompt input_prompt">In&nbsp;[21]:</div>
1369313871 <div class="inner_cell">
1369413872 <div class="input_area">
1369513873 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">t4</span> <span class="o">=</span> <span class="n">Topic</span><span class="p">(</span><span class="s2">&quot;four-10-plys&quot;</span><span class="p">)</span>
@@ -13708,7 +13886,7 @@
1370813886 </div></section><section>
1370913887 <div class="cell border-box-sizing code_cell rendered">
1371013888 <div class="input">
13711-<div class="prompt input_prompt">In&nbsp;[19]:</div>
13889+<div class="prompt input_prompt">In&nbsp;[22]:</div>
1371213890 <div class="inner_cell">
1371313891 <div class="input_area">
1371413892 <div class=" highlight hl-ipython3"><pre><span></span><span class="n">t4</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s1">&#39;Yes&#39;</span><span class="p">)</span>
@@ -13728,20 +13906,106 @@
1372813906
1372913907
1373013908 <div class="output_subarea output_stream output_stdout output_text">
13731-<pre>Demo:: Topic: &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt; has new value: Yes
13732-&lt;&lt;Demo: ._no=1 at 0X7f85ccbe62d0&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13733-&lt;&lt;Demo: ._no=2 at 0X7f85ccbe6310&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13734-&lt;&lt;Demo: ._no=3 at 0X7f85ccbe6350&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13735-&lt;&lt;Demo: ._no=4 at 0X7f85ccbe6390&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13736-&lt;&lt;Demo: ._no=5 at 0X7f85ccbe6410&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13737-&lt;&lt;Demo: ._no=6 at 0X7f85ccbe6450&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13738-&lt;&lt;Demo: ._no=7 at 0X7f85ccbe6490&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13739-&lt;&lt;Demo: ._no=8 at 0X7f85ccbe64d0&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13740-&lt;&lt;Demo: ._no=9 at 0X7f85ccbe63d0&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13741-&lt;&lt;Demo: ._no=10 at 0X7f85ccbe6510&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt;
13742-Demo 4:: Topic: &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt; has new value: Yes
13743-Demo 3:: Topic: &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt; has new value: Yes
13744-Demo 2:: Topic: &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X7f85ccbe6290&gt;&gt; has new value: Yes
13909+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt; has new value: Yes
13910+&lt;&lt;Demo: ._no=1 at 0X192e8f67348&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13911+&lt;&lt;Demo: ._no=2 at 0X192e8f67388&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13912+&lt;&lt;Demo: ._no=3 at 0X192e8f673c8&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13913+&lt;&lt;Demo: ._no=4 at 0X192e8f67408&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13914+&lt;&lt;Demo: ._no=5 at 0X192e8f67488&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13915+&lt;&lt;Demo: ._no=6 at 0X192e8f674c8&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13916+&lt;&lt;Demo: ._no=7 at 0X192e8f67508&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13917+&lt;&lt;Demo: ._no=8 at 0X192e8f67548&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13918+&lt;&lt;Demo: ._no=9 at 0X192e8f67448&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13919+&lt;&lt;Demo: ._no=10 at 0X192e8f675c8&gt;&gt; got &#39;Yes&#39; from topic &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt;
13920+Demo 4:: Topic: &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt; has new value: Yes
13921+Demo 3:: Topic: &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt; has new value: Yes
13922+Demo 2:: Topic: &lt;&lt;Topic: &#39;four-10-plys&#39; at 0X192e8f67308&gt;&gt; has new value: Yes
13923+</pre>
13924+</div>
13925+</div>
13926+
13927+</div>
13928+</div>
13929+
13930+</div></section><section>
13931+<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
13932+</div><div class="inner_cell">
13933+<div class="text_cell_render border-box-sizing rendered_html">
13934+<h2 id="4.2-:-Subscribe-after-1st-publish">4.2 : Subscribe after 1st publish<a class="anchor-link" href="#4.2-:-Subscribe-after-1st-publish">&#182;</a></h2>
13935+</div>
13936+</div>
13937+</div>
13938+<div class="cell border-box-sizing code_cell rendered">
13939+<div class="input">
13940+<div class="prompt input_prompt">In&nbsp;[23]:</div>
13941+<div class="inner_cell">
13942+ <div class="input_area">
13943+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">t42</span> <span class="o">=</span> <span class="n">Topic</span><span class="p">()</span>
13944+<span class="n">t42</span><span class="o">.</span><span class="n">subscribe</span><span class="p">(</span><span class="n">demo</span><span class="p">)</span>
13945+<span class="n">t42</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;fist&quot;</span><span class="p">)</span>
13946+</pre></div>
13947+
13948+ </div>
13949+</div>
13950+</div>
13951+
13952+<div class="output_wrapper">
13953+<div class="output">
13954+
13955+
13956+<div class="output_area">
13957+
13958+ <div class="prompt"></div>
13959+
13960+
13961+<div class="output_subarea output_stream output_stdout output_text">
13962+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;&#39; at 0X192e8f5e248&gt;&gt; has new value: fist
13963+</pre>
13964+</div>
13965+</div>
13966+
13967+</div>
13968+</div>
13969+
13970+</div>
13971+<div class="cell border-box-sizing code_cell rendered">
13972+<div class="input">
13973+<div class="prompt input_prompt">In&nbsp;[24]:</div>
13974+<div class="inner_cell">
13975+ <div class="input_area">
13976+<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Now add subscribe another callback</span>
13977+<span class="n">t42</span><span class="o">.</span> <span class="n">subscribe</span><span class="p">(</span><span class="n">demo_2</span><span class="p">)</span>
13978+</pre></div>
13979+
13980+ </div>
13981+</div>
13982+</div>
13983+
13984+</div>
13985+<div class="cell border-box-sizing code_cell rendered">
13986+<div class="input">
13987+<div class="prompt input_prompt">In&nbsp;[25]:</div>
13988+<div class="inner_cell">
13989+ <div class="input_area">
13990+<div class=" highlight hl-ipython3"><pre><span></span><span class="n">t42</span><span class="o">.</span><span class="n">publish</span><span class="p">(</span><span class="s2">&quot;more and more&quot;</span><span class="p">)</span>
13991+</pre></div>
13992+
13993+ </div>
13994+</div>
13995+</div>
13996+
13997+<div class="output_wrapper">
13998+<div class="output">
13999+
14000+
14001+<div class="output_area">
14002+
14003+ <div class="prompt"></div>
14004+
14005+
14006+<div class="output_subarea output_stream output_stdout output_text">
14007+<pre>Demo:: Topic: &lt;&lt;Topic: &#39;&#39; at 0X192e8f5e248&gt;&gt; has new value: more and more
14008+Demo 2:: Topic: &lt;&lt;Topic: &#39;&#39; at 0X192e8f5e248&gt;&gt; has new value: more and more
1374514009 </pre>
1374614010 </div>
1374714011 </div>
@@ -13753,18 +14017,20 @@
1375314017 <div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
1375414018 </div><div class="inner_cell">
1375514019 <div class="text_cell_render border-box-sizing rendered_html">
13756-<h1 id="That's-all-folks!">That's all folks!<a class="anchor-link" href="#That's-all-folks!">&#182;</a></h1><p><img src="https://upload.wikimedia.org/wikipedia/commons/e/ea/Thats_all_folks.svg" alt="From WikiMedia"></p>
14020+<p><img src="https://upload.wikimedia.org/wikipedia/commons/e/ea/Thats_all_folks.svg" alt="From WikiMedia"></p>
14021+<p>Back to the
14022+<a href="http://mess.softwarebetermaken.nl/en/latest/SoftwareCompetence/DesignWorkShops/PubSub/index.html">main presentation</a></p>
1375714023
1375814024 </div>
1375914025 </div>
1376014026 </div>
1376114027 <div class="cell border-box-sizing code_cell rendered">
1376214028 <div class="input">
13763-<div class="prompt input_prompt">In&nbsp;[20]:</div>
14029+<div class="prompt input_prompt">In&nbsp;[26]:</div>
1376414030 <div class="inner_cell">
1376514031 <div class="input_area">
13766-<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span>
13767-<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Done at:&quot;</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">())</span>
14032+<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">datetime</span><span class="o">,</span> <span class="nn">pytz</span>
14033+<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;These slides are generated at:&quot;</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">(</span><span class="n">pytz</span><span class="o">.</span><span class="n">timezone</span><span class="p">(</span><span class="s1">&#39;Europe/Amsterdam&#39;</span><span class="p">)))</span>
1376814034 <span class="c1">#EoF</span>
1376914035 </pre></div>
1377014036
@@ -13782,7 +14048,7 @@
1378214048
1378314049
1378414050 <div class="output_subarea output_stream output_stdout output_text">
13785-<pre>Done at: 2020-03-21 20:28:52.647403
14051+<pre>These slides are generated at: 2020-03-22 14:15:38.809070+01:00
1378614052 </pre>
1378714053 </div>
1378814054 </div>