<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:large">One of my screen scraper friends (always reading) just forwarded this link:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:large"><br></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><a href="https://www.1843magazine.com/features/code-to-joy">https://www.1843magazine.com/features/code-to-joy</a></font><br></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4">A highly literate middle aged writer tackles programming from zero and winds up in Python after a pilgrimmage through Javascript, and uses the Twitter API.  He meditates on what learning to code might mean to a fully developed adult such as himself (connects to Andragogy **).</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4">Nicholas Tollervey, sometime edu-sig poster and Micro:bit avatar, is very much a hero in this story, living up to the ideal of a Pythonista as </font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4">(A) not religiously dogmatic (re "language wars") yet </font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4">(B) having enthusiasm for sharing Python (without too much proselytizing). </font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4">Bravo on a stellar performance!</font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4">Quincy Larson of freeCodeCamp fame is another champion of openness and accessibility (and good advice).  I get his emails in my inbox with gratitude, though I don't follow all the links (helpfully labeled with estimated reading times, for my internal scheduler -- thanks for the meta-data!).</font></div><div class="gmail_default"><br></div><div class="gmail_default"><span style="font-family:arial,helvetica,sans-serif;font-size:large">In the interests of sparking some edu-sig type discussion (this could fork to a new thread), the author Andrew Smith writes:</span><br></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><span style="color:rgb(0,0,0);font-family:"Milo serif pro",serif;font-size:18px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:300;letter-spacing:-0.1px;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">"Variables are best (if imperfectly) understood as the vessels within which pieces of data are contained, ready to be worked on. Of many possible data types, the most straightforward are numbers and strings, string being the name given to text."</span></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><span style="color:rgb(0,0,0);font-family:"Milo serif pro",serif;font-size:18px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:300;letter-spacing:-0.1px;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><br></span></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif" size="4"><span style="text-align:start;text-indent:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">In my classes I readily acknowledge the "variable as container" metaphor is apt, and agree that Python objects take up memory and so object == container (with id) is OK too.</font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">However, the name --> object mapping of a namespace is better imagined as "luggage tag -> suitcase" relationship. It's not like the Python name itself is the container on the heap.</font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">The object in memory is a possibly fat heavy suitcase, stuffed with stuff (e.g. an HttpResponse).  However the name is more a label, like a luggage tag on a suitcase (and this is the point).</font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">Name : Object :: Luggage Tags :: Suitcase</font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">One suitcase (object) may have many names (connects to garbage collection discussion).  However at any one moment, a name points to only one object (the same name in different modules, both running, still count as different names -- scope matters).</font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">So yeah, the object itself is a "container" but what it contains may be tags to other objects.  </font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4" style=""><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">Without this separation of "names" from "objects" there's an inevitable tendency to imagine copies, as how can we have two bowls or boxes with exactly the same content.  </font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4" style="">We don't have a visual metaphor for "two suitcases containing exactly the same clothes at the same time".  </font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">But we do understand "one suitcase having two or more luggage tags."</font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4" style=""><font face="arial, sans-serif">Surely we have two copies, albeit clones of the same thing.  Not so in Python though.  Python is biased against making </font>gratuitous<font face="arial, sans-serif"> copies of anything.  Keep is spare! (sparse if possible).  Don't clutter memory with excessive redundancy.</font></font></div><div class="gmail_default" style="text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4" style=""><font face="arial, sans-serif"><br></font></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4" style="">Kirby</font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4"><br></font></div><div class="gmail_default" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-transform:none;white-space:normal;word-spacing:0px;text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><font face="arial, helvetica, sans-serif" size="4">** </font></div><div class="gmail_default" style="text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><a href="http://4dsolutions.net/presentations/pycon2013.pdf">http://4dsolutions.net/presentations/pycon2013.pdf</a><br></div><div class="gmail_default" style="text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div><div class="gmail_default" style="text-align:start;text-indent:0px;text-decoration-style:initial;text-decoration-color:initial"><br></div></span></font></div></div>