<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.hoenzb
{mso-style-name:hoenzb;}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle19
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Every language is a response to a need to express concepts of computation in a higher level form. Certain concepts are more easily expressed through one language
than another. An aspect to consider is what were the new concepts being discussed at the time the language was defined and how were those discussions brought into the design of the language. This is usually taught in a “Survey of Programming Languages†class,
typically taught mid-way through the undergraduate CS curriculum. I would argue however that it should be revisited in the graduate curriculum since there is such a rich intersection of psychology, hardware and theoretical computation here.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Anyway, on to why is Java different from Python? Let’s look at Java’s background.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Java came along at the time C and C++ (think of the latter as “C with Classesâ€, not the templated behemoth of today) were being used to build large multi-team
systems and people were running into problems. In addition Smalltalk had shown the world that object oriented design, and languages that could express objects as a core part of the language, were much more productive for programmers to use. Both Smalltalk
and C had problems with blowing up if you violated the expectations for data types. And the larger the problem being programmed the more interfaces and the more chance for an error.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">In C the classic error was the buffer overflow. Your code would copy a string passed to it without checking the length. If the passed string was too long it
would happily keep copying characters into memory that was meant for something else. If the something else was a return address the routine would return and happily try to execute whatever was at the address pointed to by the characters of the passed in string,
often leading to a system crash. This could be handled in a meta- sort of way by tight design specifications but the language had no concepts for expressing these. Another problem for implementation of higher level ideas was that there was no good way to
work with pointers to functions. You might know the types of the variables to pass (although a cast could change this information) but the meaning was spread among documentation, code and header files.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">In C++ the pointer to a function became hidden behind an object reference and that made it much easier to combine these into higher level structures. But try/catch/throw
was just getting good implementations. A problem here was that anything could throw for any reason and the catch clause, often in another team’s code, wasn’t necessarily expecting what was coming at it.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Smalltalk was a language way ahead of its time. Graphics libraries were defined with the language, not an add-on. Variables had no fixed type and types were
mutable. A method could be passed a string and change the variable to an int and the caller would have to deal with it. This made for an elegant way to implement a string-to- integer routine but also made for hard to find bugs. In the early 90s I worked
on a Unix project that wrote the UI in Smalltalk and the network back end in C. I was leader of the C team and with some work implemented a network API in three months. In the same 3 months the front end team completed the whole front end - something that
would have taken twice as many people a year to do in X-windows code. The C team then became the test team and the Smalltalk team transitioned from development to bug fixing. And there were bugs galore. Put a string into an int field and the system crashed.
Input your date in a format the date object didn’t handle and the system crashed. And many more I can’t remember. After 6 months we had found one bug in the C code and so many in the front end that the whole development team was still in place. It was getting
harder to crash the system so management declared victory and the system was deployed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">This is the environment that Java was designed in. The creators of Java wanted a language that could be used by multiple teams, a language that could tackle
the issues that had made large scale programming hard.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">They made several decisions that 20 years later look very good. The Object was made first class and was central to the language. Calling and return types were
explicitly defined. There was a first class value for null (instead of the pointer to 0 that had to be explicitly checked in C). Once they were created variables didn’t change type. The language was ported to different architectures by compiling to an intermediate
form that was executed by a virtual machine. While not a new idea (it had been tried 15 years before with Pascal but had performance problems) the increase in hardware capabilities made it successful this time around.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Some other ideas were walked back over the years as it became clear that they made programming harder. Type conversions were originally explicit and “float aVar
= 1;†would give a syntax error since you were assigning an int to a float variable.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Because of the problem with loosey throw-catch in C++ the language required that any explicitly thrown exception be declared in the method signature and that
the caller be coded to their catch what was being thrown or in turn declare that it might throw the exception. This created brittle hierarchies of routines that could not easily be re-architected. Today most language designers consider it a dead end feature.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Another thing the language introduced was a rich standard library that followed the ideas that were expressed in the Gang of Four pattern book. You were not
supposed to call an object directly, you called it through an interface that hid the implementation from the calling code. The linker therefore did not have to resolve the entire hierarchy of types, as in C++, but could stop at an interface.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">This had an effect on the growing culture of Java programming. If an interface was good when you were calling a hierarchy of types it was good to use it when
you called anything because who knew when you might want to evolve the code in the future and having an interface would make such changes easier. If single character variables were cryptic then forty character ones, like the long names in the library, were
good.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Java became a language that you wrote wordy programs in. Ease of expression had a lowered importance and instead types, objects, and interfaces had to be defined
in an off-line design process before implementation.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">(Now to answer your question about Java vs Python)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Python stole many of its ideas from Smalltalk and Perl, emphasizing quick development. Types are not as loose as in Smalltalk but compared to Java they are quite
loose. Instead of defined interfaces to classes Python uses duck typing. Unlike the wordiness of Java small tightly focused methods are favored.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">You can still write Java style code in Python but won’t run as well and will take longer to write.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Calibri",sans-serif;color:#1F497D">Phil Robare<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Chicago [mailto:chicago-bounces+proba=allstate.com@python.org]
<b>On Behalf Of </b>Carl Karsten<br>
<b>Sent:</b> Saturday, December 03, 2016 12:50 PM<br>
<b>To:</b> The Chicago Python Users Group <chicago@python.org><br>
<b>Subject:</b> Re: [Chicago] Teaching Java people Python.<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">I am curious... (and know nothing about Java other than I don't really want to invest much time leaning about Java)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Are there best practice or conventions or norms or something that are good for Java but not other languages? if so, Why?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">And this may be the point of this thread, but seems like it is a given and you are looking for a formal de-programming of someone that has been brainwashed.
<br>
<br>
<br>
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
<br>
<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Sat, Dec 3, 2016 at 1:35 AM, Jason Wirth <<a href="mailto:wirth.jason@gmail.com" target="_blank">wirth.jason@gmail.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">All of the answers have been great, thank you. <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I'm quite familiar with all of Raymond Hettinger's talks, as well as Jack's talk, and Fluent Python. Those are my go-to sources for this. They address the issue, but somewhat indirectly. T summarized it best. I was hoping for a more targeted
comparison addressing Java specifically; something like this, bit with much more depth (he didn't even touch on getters/setters) --
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__antrix.net_static_pages_python-2Dfor-2Djava_online_&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=zPHtj4cZx8nfaLlg221q6Dlns49M552YnsEyr3Mv4hU&e=" target="_blank">
https://antrix.net/static/pages/python-for-java/online/</a>. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The Module Of The Week and standard library references are even good for Python devs. I often forget how much is in there. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888"><o:p> </o:p></span></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="color:#888888"><br clear="all">
</span><span class="hoenzb"><o:p></o:p></span></p>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="color:#888888"><br>
-- <br>
Jason Wirth<br>
<a href="mailto:wirth.jason@gmail.com" target="_blank">wirth.jason@gmail.com</a></span><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Fri, Dec 2, 2016 at 6:32 PM, Aaron Elmquist <<a href="mailto:elmq0022@umn.edu" target="_blank">elmq0022@umn.edu</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">I will second the Fluent Python book. I have it and think it's great. He makes great use of the built-in data structures and the standard library on general. <o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Dec 2, 2016 5:59 PM, "Tanya Schlusser" <<a href="mailto:tanya@tickel.net" target="_blank">tanya@tickel.net</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">For the Java-to-Python, Luciano Ramalho's Fluent Python (<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__shop.oreilly.com_product_0636920032519.do&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=CFxr_N84-j9-tbwoD3rYxhXy1eYUJval6XrUqvZjJUw&e=" target="_blank">http://shop.oreilly.com/product/0636920032519.do</a>)
specifically was written for émigrés from other languages :-) and apparently knocks it out of the park.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">For the Python-to-Java; implementing the same thing in different languages/APIs was a job requirement for me ... we tested ideas in Python, then the junior people (me...) had to translate to a different language for production...it was
a fast way to bypass conceptual questions and cut straight to the differences between languages.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Maybe try converting a Hadoop streaming job using Python to Java?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Here's a Python entry point (this is for the old API but the newer docs are confusing to me):
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__docs.aws.amazon.com_ElasticMapReduce_latest_DeveloperGuide_UseCase-5FStreaming.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=6jiiAEQbVOmt0IBFS49UmBroLY0cE01ix079FuYl0y0&e=" target="_blank">
http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UseCase_Streaming.html</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">On Fri, Dec 2, 2016 at 11:00 AM, <<a href="mailto:chicago-request@python.org" target="_blank">chicago-request@python.org</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">Send Chicago mailing list submissions to<br>
<a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
or, via email, send a message with subject or body 'help' to<br>
<a href="mailto:chicago-request@python.org" target="_blank">chicago-request@python.org</a><br>
<br>
You can reach the person managing the list at<br>
<a href="mailto:chicago-owner@python.org" target="_blank">chicago-owner@python.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of Chicago digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
1. Teaching Java people Python. (Jason Wirth)<br>
2. Re: Teaching Java people Python. (Jordan Bettis)<br>
3. Re: Teaching Java people Python. (Tathagata Dasgupta)<br>
4. Re: Teaching Java people Python. (Carl Karsten)<br>
5. Re: Teaching Java people Python. (Randy Baxley)<br>
6. Re: Teaching Java people Python. (Michael Tamillow)<br>
7. Re: Teaching Java people Python. (Allan LeSage)<br>
8. Re: Teaching Java people Python. (Chris Foresman)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Fri, 02 Dec 2016 00:14:15 +0000<br>
From: Jason Wirth <<a href="mailto:wirth.jason@gmail.com" target="_blank">wirth.jason@gmail.com</a>><br>
To: The Chicago Python Users Group <<a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a>><br>
Subject: [Chicago] Teaching Java people Python.<br>
Message-ID:<br>
<<a href="mailto:CAEwvNMibfucHo3hehdyK1DF6BqNCg-MFSF59oNEe%2B%2BOEFX9_GQ@mail.gmail.com" target="_blank">CAEwvNMibfucHo3hehdyK1DF6BqNCg-MFSF59oNEe++OEFX9_GQ@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Say a hard-core Java programmer wants to learn Python. Is there a specific<br>
go-to resource that addresses the differences without wasting time on basic<br>
programming concepts.<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_pipermail_chicago_attachments_20161202_e108c8b7_attachment-2D0001.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=htjRoZdTwiHLq4mbNVvo7U4qiHQ6_y_pbQHJVdCCC3A&e=" target="_blank">http://mail.python.org/pipermail/chicago/attachments/20161202/e108c8b7/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Thu, 01 Dec 2016 18:20:59 -0600<br>
From: Jordan Bettis <<a href="mailto:jordanb@hafd.org" target="_blank">jordanb@hafd.org</a>><br>
To: <a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a><br>
Subject: Re: [Chicago] Teaching Java people Python.<br>
Message-ID: <<a href="mailto:5840BE6B.3070705@hafd.org" target="_blank">5840BE6B.3070705@hafd.org</a>><br>
Content-Type: text/plain; charset="windows-1252"; Format="flowed"<br>
<br>
The tutorial on <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__python.org&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=sotya0IU9jBNK47swF2LE5Z_5RE351SocPZmz2r9YDU&e=" target="_blank">
python.org</a> is a reasonably good intro and it doesn't<br>
waste a lot of time trying to explain what an if statement is:<br>
<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.python.org_3_tutorial_controlflow.html-23if-2Dstatements&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=4L4pvRv0dtzJXzIXO-JXaNDrjJRSJKif2iqounAjIAw&e=" target="_blank">https://docs.python.org/3/tutorial/controlflow.html#if-statements</a><br>
<br>
Python has an interactive shell but I'd recommend installing ipython if<br>
you want to use it to work through the examples.<br>
<br>
On 12/01/2016 06:14 PM, Jason Wirth wrote:<br>
> Say a hard-core Java programmer wants to learn Python. Is there a<br>
> specific go-to resource that addresses the differences without wasting<br>
> time on basic programming concepts.<br>
><br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_pipermail_chicago_attachments_20161201_82f56a14_attachment-2D0001.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=epUWsCflmaIw1g4J08rT9SnbQVdmp4VuvURkr5hR-BY&e=" target="_blank">http://mail.python.org/pipermail/chicago/attachments/20161201/82f56a14/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Fri, 02 Dec 2016 00:43:33 +0000<br>
From: Tathagata Dasgupta <<a href="mailto:tathagatadg@gmail.com" target="_blank">tathagatadg@gmail.com</a>><br>
To: The Chicago Python Users Group <<a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a>><br>
Subject: Re: [Chicago] Teaching Java people Python.<br>
Message-ID:<br>
<<a href="mailto:CAB32_MNv%2Bdc-9udnaHQgqX2YvuK3gH7Q-%2BCWgrj5RODyXSPJiw@mail.gmail.com" target="_blank">CAB32_MNv+dc-9udnaHQgqX2YvuK3gH7Q-+CWgrj5RODyXSPJiw@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
I think Jason is talking about people who write Python that smell<br>
(terribly) of Java (version < 8).<br>
We happen to know quite a few who do this ;)<br>
Other than Raymond Hettinger's famous pycon 2013 talk<br>
<<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3DOSGv2VnC0go&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=0Rvh_hmWpz77sOlkz9Qlbw9yqiuYHdZHzTbVlc4SvHU&e=" target="_blank">https://www.youtube.com/watch?v=OSGv2VnC0go</a>>,
this<br>
<<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__dirtsimple.org_2004_12_python-2Dis-2Dnot-2Djava.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=-OEYLwLvldQzhFkDhUfoBpRgp6lbX7L46RwpIk1-Az4&e=" target="_blank">http://dirtsimple.org/2004/12/python-is-not-java.html</a>>
article, what would<br>
you recommend?<br>
I think talking to some of these seasoned Java developers in the language<br>
of design patterns could work.<br>
Alex Martelli's talk <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3D0vJJlVBVTFg&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=yAoTl1qZocbApZSRrGqz1Qvkuv1izU-aIx2FNx-0ksM&e=" target="_blank">https://www.youtube.com/watch?v=0vJJlVBVTFg</a>>
on<br>
Python design patterns.<br>
<br>
On Thu, Dec 1, 2016 at 6:29 PM Jordan Bettis <<a href="mailto:jordanb@hafd.org" target="_blank">jordanb@hafd.org</a>> wrote:<br>
<br>
> The tutorial on <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__python.org&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=sotya0IU9jBNK47swF2LE5Z_5RE351SocPZmz2r9YDU&e=" target="_blank">
python.org</a> is a reasonably good intro and it doesn't<br>
> waste a lot of time trying to explain what an if statement is:<br>
><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.python.org_3_tutorial_controlflow.html-23if-2Dstatements&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=4L4pvRv0dtzJXzIXO-JXaNDrjJRSJKif2iqounAjIAw&e=" target="_blank">
https://docs.python.org/3/tutorial/controlflow.html#if-statements</a><br>
><br>
> Python has an interactive shell but I'd recommend installing ipython if<br>
> you want to use it to work through the examples.<br>
><br>
><br>
> On 12/01/2016 06:14 PM, Jason Wirth wrote:<br>
><br>
> Say a hard-core Java programmer wants to learn Python. Is there a specific<br>
> go-to resource that addresses the differences without wasting time on basic<br>
> programming concepts.<br>
><br>
><br>
> _______________________________________________<br>
> Chicago mailing listChicago@python.orghttps://<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=nS1Vy24jnTkqavGZTmrzdNUCKh15GDZq3J3RwV2fAKk&e=" target="_blank">mail.python.org/mailman/listinfo/chicago</a><br>
><br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_pipermail_chicago_attachments_20161202_2bb902fc_attachment-2D0001.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=HIcWKpsu4IGXrA5FXbOKqVyRbhR4PITOQ6MujFzEJaE&e=" target="_blank">http://mail.python.org/pipermail/chicago/attachments/20161202/2bb902fc/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 4<br>
Date: Thu, 1 Dec 2016 19:02:30 -0600<br>
From: Carl Karsten <<a href="mailto:carl@personnelware.com" target="_blank">carl@personnelware.com</a>><br>
To: The Chicago Python Users Group <<a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a>><br>
Subject: Re: [Chicago] Teaching Java people Python.<br>
Message-ID:<br>
<<a href="mailto:CADmzSSih3_V38EOXfw4vH9Ei0Wb2L%2BoLMpU-UY0mYwyNZk2S8Q@mail.gmail.com" target="_blank">CADmzSSih3_V38EOXfw4vH9Ei0Wb2L+oLMpU-UY0mYwyNZk2S8Q@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
"Using Ripley and Python's Read Evaluate Print Loop, lead a group though<br>
the basic Python syntax. The assumption is they know about programming and<br>
need to be introduced to Python." - <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_CarlFK_Ripley_&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=LLopi_kWSwnOQ0uVtxbg170Z-5hEoj93XGoBwIMdE5k&e=" target="_blank">
https://github.com/CarlFK/Ripley/</a><br>
<br>
> addresses the differences<br>
<br>
I wonder if that is really a good use of time. That sounds to me like<br>
"forget what you have learned over the last 5 years" which is going to be<br>
really hard.<br>
<br>
I suspect time is better used just teaching good python.<br>
<br>
But I should leave this to someone who has studied how to teach.<br>
<br>
<br>
<br>
On Thu, Dec 1, 2016 at 6:43 PM, Tathagata Dasgupta <<a href="mailto:tathagatadg@gmail.com" target="_blank">tathagatadg@gmail.com</a>><br>
wrote:<br>
<br>
> I think Jason is talking about people who write Python that smell<br>
> (terribly) of Java (version < 8).<br>
> We happen to know quite a few who do this ;)<br>
> Other than Raymond Hettinger's famous pycon 2013 talk<br>
> <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3DOSGv2VnC0go&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=0Rvh_hmWpz77sOlkz9Qlbw9yqiuYHdZHzTbVlc4SvHU&e=" target="_blank">https://www.youtube.com/watch?v=OSGv2VnC0go</a>>,
this<br>
> <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__dirtsimple.org_2004_12_python-2Dis-2Dnot-2Djava.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=-OEYLwLvldQzhFkDhUfoBpRgp6lbX7L46RwpIk1-Az4&e=" target="_blank">http://dirtsimple.org/2004/12/python-is-not-java.html</a>>
article, what<br>
> would you recommend?<br>
> I think talking to some of these seasoned Java developers in the language<br>
> of design patterns could work.<br>
> Alex Martelli's talk <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3D0vJJlVBVTFg&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=yAoTl1qZocbApZSRrGqz1Qvkuv1izU-aIx2FNx-0ksM&e=" target="_blank">https://www.youtube.com/watch?v=0vJJlVBVTFg</a>>
on<br>
> Python design patterns.<br>
><br>
> On Thu, Dec 1, 2016 at 6:29 PM Jordan Bettis <<a href="mailto:jordanb@hafd.org" target="_blank">jordanb@hafd.org</a>> wrote:<br>
><br>
>> The tutorial on <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__python.org&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=sotya0IU9jBNK47swF2LE5Z_5RE351SocPZmz2r9YDU&e=" target="_blank">
python.org</a> is a reasonably good intro and it doesn't<br>
>> waste a lot of time trying to explain what an if statement is:<br>
>><br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.python.org_3_tutorial_controlflow.html-23if-2Dstatements&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=4L4pvRv0dtzJXzIXO-JXaNDrjJRSJKif2iqounAjIAw&e=" target="_blank">
https://docs.python.org/3/tutorial/controlflow.html#if-statements</a><br>
>><br>
>> Python has an interactive shell but I'd recommend installing ipython if<br>
>> you want to use it to work through the examples.<br>
>><br>
>><br>
>> On 12/01/2016 06:14 PM, Jason Wirth wrote:<br>
>><br>
>> Say a hard-core Java programmer wants to learn Python. Is there a<br>
>> specific go-to resource that addresses the differences without wasting time<br>
>> on basic programming concepts.<br>
>><br>
>><br>
>> _______________________________________________<br>
>> Chicago mailing listChicago@python.orghttps://<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=nS1Vy24jnTkqavGZTmrzdNUCKh15GDZq3J3RwV2fAKk&e=" target="_blank">mail.python.org/mailman/listinfo/chicago</a><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Chicago mailing list<br>
>> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
>><br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
><br>
><br>
<br>
<br>
--<br>
Carl K<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_pipermail_chicago_attachments_20161201_17b575fa_attachment-2D0001.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=X9hx3azP_wJjuDF8aPns1KQVpmqolrF_lL11Pg-feJg&e=" target="_blank">http://mail.python.org/pipermail/chicago/attachments/20161201/17b575fa/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 5<br>
Date: Thu, 1 Dec 2016 19:20:58 -0600<br>
From: Randy Baxley <<a href="mailto:randy7771026@gmail.com" target="_blank">randy7771026@gmail.com</a>><br>
To: The Chicago Python Users Group <<a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a>><br>
Subject: Re: [Chicago] Teaching Java people Python.<br>
Message-ID:<br>
<CAMqL=ihSgv8XHC_FHnrGFtCPfchhP5OKYX_ba0R2H=<a href="mailto:VEtfOiaw@mail.gmail.com" target="_blank">VEtfOiaw@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Beazley's 2013 Pycon talk might be a good jump start<br>
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__pyvideo.org_pycon-2Dus-2D2013_learn-2Dpython-2Dthrough-2Dpublic-2Ddata-2Dhacking.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=qrffWijPLqubnfRHcLSyOSPMJ6M5XriZEps0fb80veY&e=" target="_blank">http://pyvideo.org/pycon-us-2013/learn-python-through-public-data-hacking.html</a><br>
<br>
On Thu, Dec 1, 2016 at 6:14 PM, Jason Wirth <<a href="mailto:wirth.jason@gmail.com" target="_blank">wirth.jason@gmail.com</a>> wrote:<br>
<br>
> Say a hard-core Java programmer wants to learn Python. Is there a specific<br>
> go-to resource that addresses the differences without wasting time on basic<br>
> programming concepts.<br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
><br>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_pipermail_chicago_attachments_20161201_7900ad7f_attachment-2D0001.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=2KxpqSxaFK2vj25jfaGoiK3OSQZtfIU2BehPTRxeMAc&e=" target="_blank">http://mail.python.org/pipermail/chicago/attachments/20161201/7900ad7f/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 6<br>
Date: Thu, 1 Dec 2016 23:38:15 -0600<br>
From: Michael Tamillow <<a href="mailto:mikaeltamillow96@gmail.com" target="_blank">mikaeltamillow96@gmail.com</a>><br>
To: The Chicago Python Users Group <<a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a>><br>
Subject: Re: [Chicago] Teaching Java people Python.<br>
Message-ID: <<a href="mailto:E713DA93-27CD-4EEA-82C4-2A45E6B6241F@gmail.com" target="_blank">E713DA93-27CD-4EEA-82C4-2A45E6B6241F@gmail.com</a>><br>
Content-Type: text/plain; charset="us-ascii"<br>
<br>
Just on the topic of learning new things, I think it is a good idea to follow the same paths as people who are already doing it - skip forward when things are too easy, and step back when things become difficult to comprehend.<br>
<br>
But I would say the best way to make a jump like that is to just read source code. Ask questions about the source code through google. There are tons of mature packages already with anaconda, just bust one open and try to understand it.<br>
<br>
Sent from my iPhone<br>
<br>
> On Dec 1, 2016, at 7:20 PM, Randy Baxley <<a href="mailto:randy7771026@gmail.com" target="_blank">randy7771026@gmail.com</a>> wrote:<br>
><br>
> Beazley's 2013 Pycon talk might be a good jump start <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__pyvideo.org_pycon-2Dus-2D2013_learn-2Dpython-2Dthrough-2Dpublic-2Ddata-2Dhacking.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=qrffWijPLqubnfRHcLSyOSPMJ6M5XriZEps0fb80veY&e=" target="_blank">
http://pyvideo.org/pycon-us-2013/learn-python-through-public-data-hacking.html</a><br>
><br>
>> On Thu, Dec 1, 2016 at 6:14 PM, Jason Wirth <<a href="mailto:wirth.jason@gmail.com" target="_blank">wirth.jason@gmail.com</a>> wrote:<br>
>> Say a hard-core Java programmer wants to learn Python. Is there a specific go-to resource that addresses the differences without wasting time on basic programming concepts.<br>
>><br>
>> _______________________________________________<br>
>> Chicago mailing list<br>
>> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
>><br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_pipermail_chicago_attachments_20161201_4d516791_attachment-2D0001.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=9ueYMe1LJ6JnJ-Von8eaJpG2dz81XSAUQoHZEzaIMho&e=" target="_blank">http://mail.python.org/pipermail/chicago/attachments/20161201/4d516791/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 7<br>
Date: Fri, 2 Dec 2016 09:12:14 -0600<br>
From: Allan LeSage <<a href="mailto:allanlesage@gmail.com" target="_blank">allanlesage@gmail.com</a>><br>
To: The Chicago Python Users Group <<a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a>><br>
Subject: Re: [Chicago] Teaching Java people Python.<br>
Message-ID:<br>
<<a href="mailto:CACrkd54vU4xJXjgcUwv-Vdwu_GA3XYJMxEM1MR3yKxMGwutiPg@mail.gmail.com" target="_blank">CACrkd54vU4xJXjgcUwv-Vdwu_GA3XYJMxEM1MR3yKxMGwutiPg@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Concerning Java smells, this Stop Writing Classes<br>
<<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__pyvideo.org_pycon-2Dus-2D2012_stop-2Dwriting-2Dclasses.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=IrgQmeFNT2MjP93tAD8pHs0mMGoDMNvM5d2UUXnbz_Q&e=" target="_blank">http://pyvideo.org/pycon-us-2012/stop-writing-classes.html</a>>
talk really<br>
emphasizes the clarity and simplicity of Python for devs who come from more<br>
verbose langs.<br>
<br>
On Thu, Dec 1, 2016 at 6:43 PM, Tathagata Dasgupta <<a href="mailto:tathagatadg@gmail.com" target="_blank">tathagatadg@gmail.com</a>><br>
wrote:<br>
<br>
> I think Jason is talking about people who write Python that smell<br>
> (terribly) of Java (version < 8).<br>
> We happen to know quite a few who do this ;)<br>
> Other than Raymond Hettinger's famous pycon 2013 talk<br>
> <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3DOSGv2VnC0go&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=0Rvh_hmWpz77sOlkz9Qlbw9yqiuYHdZHzTbVlc4SvHU&e=" target="_blank">https://www.youtube.com/watch?v=OSGv2VnC0go</a>>,
this<br>
> <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__dirtsimple.org_2004_12_python-2Dis-2Dnot-2Djava.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=-OEYLwLvldQzhFkDhUfoBpRgp6lbX7L46RwpIk1-Az4&e=" target="_blank">http://dirtsimple.org/2004/12/python-is-not-java.html</a>>
article, what<br>
> would you recommend?<br>
> I think talking to some of these seasoned Java developers in the language<br>
> of design patterns could work.<br>
> Alex Martelli's talk <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3D0vJJlVBVTFg&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=yAoTl1qZocbApZSRrGqz1Qvkuv1izU-aIx2FNx-0ksM&e=" target="_blank">https://www.youtube.com/watch?v=0vJJlVBVTFg</a>>
on<br>
> Python design patterns.<br>
><br>
> On Thu, Dec 1, 2016 at 6:29 PM Jordan Bettis <<a href="mailto:jordanb@hafd.org" target="_blank">jordanb@hafd.org</a>> wrote:<br>
><br>
>> The tutorial on <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__python.org&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=sotya0IU9jBNK47swF2LE5Z_5RE351SocPZmz2r9YDU&e=" target="_blank">
python.org</a> is a reasonably good intro and it doesn't<br>
>> waste a lot of time trying to explain what an if statement is:<br>
>><br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.python.org_3_tutorial_controlflow.html-23if-2Dstatements&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=4L4pvRv0dtzJXzIXO-JXaNDrjJRSJKif2iqounAjIAw&e=" target="_blank">
https://docs.python.org/3/tutorial/controlflow.html#if-statements</a><br>
>><br>
>> Python has an interactive shell but I'd recommend installing ipython if<br>
>> you want to use it to work through the examples.<br>
>><br>
>><br>
>> On 12/01/2016 06:14 PM, Jason Wirth wrote:<br>
>><br>
>> Say a hard-core Java programmer wants to learn Python. Is there a<br>
>> specific go-to resource that addresses the differences without wasting time<br>
>> on basic programming concepts.<br>
>><br>
>><br>
>> _______________________________________________<br>
>> Chicago mailing listChicago@python.orghttps://<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=nS1Vy24jnTkqavGZTmrzdNUCKh15GDZq3J3RwV2fAKk&e=" target="_blank">mail.python.org/mailman/listinfo/chicago</a><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Chicago mailing list<br>
>> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
>><br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
><br>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_pipermail_chicago_attachments_20161202_5eeec018_attachment-2D0001.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=Z7GqupDaMufGKvRzDgFCKC_3xG-DK2p1VZIfLSCGcag&e=" target="_blank">http://mail.python.org/pipermail/chicago/attachments/20161202/5eeec018/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 8<br>
Date: Fri, 2 Dec 2016 09:42:16 -0600<br>
From: Chris Foresman <<a href="mailto:foresmac@gmail.com" target="_blank">foresmac@gmail.com</a>><br>
To: The Chicago Python Users Group <<a href="mailto:chicago@python.org" target="_blank">chicago@python.org</a>><br>
Subject: Re: [Chicago] Teaching Java people Python.<br>
Message-ID: <<a href="mailto:2A938CBA-8BF3-47C2-9120-8C1742EA0D08@gmail.com" target="_blank">2A938CBA-8BF3-47C2-9120-8C1742EA0D08@gmail.com</a>><br>
Content-Type: text/plain; charset="us-ascii"<br>
<br>
What would you recommend for Python devs that need to learn Java (besides applying for a different job :P )?<br>
<br>
<br>
Chris Foresman<br>
<a href="mailto:foresmac@gmail.com" target="_blank">foresmac@gmail.com</a><br>
<br>
<br>
<br>
<br>
> On Dec 2, 2016, at 9:12 AM, Allan LeSage <<a href="mailto:allanlesage@gmail.com" target="_blank">allanlesage@gmail.com</a>> wrote:<br>
><br>
> Concerning Java smells, this Stop Writing Classes <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__pyvideo.org_pycon-2Dus-2D2012_stop-2Dwriting-2Dclasses.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=IrgQmeFNT2MjP93tAD8pHs0mMGoDMNvM5d2UUXnbz_Q&e=" target="_blank">http://pyvideo.org/pycon-us-2012/stop-writing-classes.html</a>>
talk really emphasizes the clarity and simplicity of Python for devs who come from more verbose langs.<br>
><br>
> On Thu, Dec 1, 2016 at 6:43 PM, Tathagata Dasgupta <<a href="mailto:tathagatadg@gmail.com" target="_blank">tathagatadg@gmail.com</a> <mailto:<a href="mailto:tathagatadg@gmail.com" target="_blank">tathagatadg@gmail.com</a>>> wrote:<br>
> I think Jason is talking about people who write Python that smell (terribly) of Java (version < 8).<br>
> We happen to know quite a few who do this ;)<br>
> Other than Raymond Hettinger's famous pycon 2013 talk <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3DOSGv2VnC0go&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=0Rvh_hmWpz77sOlkz9Qlbw9yqiuYHdZHzTbVlc4SvHU&e=" target="_blank">https://www.youtube.com/watch?v=OSGv2VnC0go</a>>,
this <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__dirtsimple.org_2004_12_python-2Dis-2Dnot-2Djava.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=-OEYLwLvldQzhFkDhUfoBpRgp6lbX7L46RwpIk1-Az4&e=" target="_blank">http://dirtsimple.org/2004/12/python-is-not-java.html</a>>
article, what would you recommend?<br>
> I think talking to some of these seasoned Java developers in the language of design patterns could work.<br>
> Alex Martelli's talk <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3D0vJJlVBVTFg&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=yAoTl1qZocbApZSRrGqz1Qvkuv1izU-aIx2FNx-0ksM&e=" target="_blank">https://www.youtube.com/watch?v=0vJJlVBVTFg</a>>
on Python design patterns.<br>
><br>
> On Thu, Dec 1, 2016 at 6:29 PM Jordan Bettis <<a href="mailto:jordanb@hafd.org" target="_blank">jordanb@hafd.org</a> <mailto:<a href="mailto:jordanb@hafd.org" target="_blank">jordanb@hafd.org</a>>> wrote:<br>
> The tutorial on <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__python.org&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=sotya0IU9jBNK47swF2LE5Z_5RE351SocPZmz2r9YDU&e=" target="_blank">
python.org</a> <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__python.org_&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=3dEkBv_2SGTTJQqsF6k6HNhQc2mx6OMYE8Op2zGjEbI&e=" target="_blank">http://python.org/</a>>
is a reasonably good intro and it doesn't waste a lot of time trying to explain what an if statement is:<br>
><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.python.org_3_tutorial_controlflow.html-23if-2Dstatements&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=4L4pvRv0dtzJXzIXO-JXaNDrjJRSJKif2iqounAjIAw&e=" target="_blank">
https://docs.python.org/3/tutorial/controlflow.html#if-statements</a> <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__docs.python.org_3_tutorial_controlflow.html-23if-2Dstatements&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=4L4pvRv0dtzJXzIXO-JXaNDrjJRSJKif2iqounAjIAw&e=" target="_blank">https://docs.python.org/3/tutorial/controlflow.html#if-statements</a>><br>
><br>
> Python has an interactive shell but I'd recommend installing ipython if you want to use it to work through the examples.<br>
><br>
><br>
> On 12/01/2016 06:14 PM, Jason Wirth wrote:<br>
>> Say a hard-core Java programmer<br>
>> wants to learn Python. Is there a specific go-to resource that<br>
>> addresses the differences without wasting time on basic<br>
>> programming concepts.<br>
>><br>
>><br>
>> _______________________________________________<br>
>> Chicago mailing list<br>
>> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a> <mailto:<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a>><br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a> <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a>><br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a> <mailto:<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a>><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a> <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a>><br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a> <mailto:<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a>><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a> <<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a>><br>
><br>
><br>
> _______________________________________________<br>
> Chicago mailing list<br>
> <a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">
https://mail.python.org/mailman/listinfo/chicago</a><br>
<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__mail.python.org_pipermail_chicago_attachments_20161202_74f0a460_attachment-2D0001.html&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=m127rD0JlSoEi2LwdazcadOq5APxCY0TLNXcdn8qzuM&e=" target="_blank">http://mail.python.org/pipermail/chicago/attachments/20161202/74f0a460/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a><br>
<br>
<br>
------------------------------<br>
<br>
End of Chicago Digest, Vol 136, Issue 2<br>
***************************************<o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org" target="_blank">Chicago@python.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
Chicago mailing list<br>
<a href="mailto:Chicago@python.org">Chicago@python.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__mail.python.org_mailman_listinfo_chicago&d=DQMFaQ&c=gtIjdLs6LnStUpy9cTOW9w&r=VXIryE9UwJGlNMLzgMzDT4_t2NMrZf6alSphHwSEwC0&m=Cw7u_Y0VfiYexn6CP4Y0mcMlcDU7P07Pl-gJZjCrJz4&s=_1LS-VQcJpa7ssltu_Y3apvSkkkq4PMDK7PluY92wS0&e=" target="_blank">https://mail.python.org/mailman/listinfo/chicago</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<br>
-- <o:p></o:p></p>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Carl K<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>