[omaha] Python Workshops @ DoSpace Group

Wes Turner wes.turner at gmail.com
Thu Jan 7 11:51:17 EST 2016


On Tue, Jan 5, 2016 at 8:35 PM, Burch Kealey via Omaha <omaha at python.org>
wrote:

> I apologize for the delay.  We release a new version of our software on
> Friday - switching to a C# harness with Python code when we need to be
> brilliant!
>
>
> I don't disagree with anything said below.  I just wanted to be sure to
> advocate for the person who does not want to be perfect - just get
> something done.
>
> Here is an example of something that I think underscores the issues
>
>
> http://stackoverflow.com/questions/34603348/how-to-add-a-key-value-list-to-a-json-dict/34603502#34603502
>
> I am Pynewbie.  So ShadowRanger is ignoring the fact that it takes a ton
> of knowledge to even think of the word parser.  Further, I went and looked
> at the links and tried to read the example and I was feeling overwhelmed.
> So I get the best solution would be ShadowRanger's but second best works
> often.  If you are building production code then developing an parser might
> be worth the investment but if you have this messy file you need now and
> you are a scientist then second best is probably your path.
>

*Scipy-lectures, Python Documentation, awesome-python-testing*

Rosalind.info has a number of introductory Python exercises and algorithms.
The glossary is really helpful.

* | Glossary: http://rosalind.info/glossary/
* | Docs: Rosalind Python Village problem list view:
http://rosalind.info/problems/list-view/?location=python-village

* http://rosalind.info/problems/ini3/ #  solved by 11511
  * Click to Expand
* http://rosalind.info/problems/ini6/ #  "Dictionaries" solved by 5565


* http://www.scipy-lectures.org/intro/language/python_language.html
* https://docs.python.org/2/tutorial/datastructures.html#sets
* http://www.scipy-lectures.org/intro/language/basic_types.html#dictionaries
* https://docs.python.org/2/tutorial/datastructures.html#dictionaries
*


*Set Theory*
* | Wikipedia: https://en.wikipedia.org/wiki/Set_theory
* | Wrdrdocs:
https://wrdrd.com/docs/consulting/knowledge-engineering#set-theory
** | *RosalindProblem: Introduction to Set Operations:
http://rosalind.info/problems/seto/

*Graphs*
* | Wikipedia:
* | Wrdrddocs:
https://wrdrd.com/docs/consulting/knowledge-engineering#graphs


*Topological Sorting*
* | Wikipedia: https://en.wikipedia.org/wiki/Topological_sorting
* | Wrdrddocs:
https://wrdrd.com/docs/consulting/knowledge-engineering#topological-sorting
* Rosalind.info > Glossary > "Algo: Topological Sorting"
  http://rosalind.info/glossary/algo-topological-sorting/



> We will talk more about this at the meeting.  I will observe now and talk
> about this in the meeting that ppt slides are not so good for kids - okay
> for adults but not for kids.  I make my kids write down anything that I
> think I want on a slide.
>


*Jupyter and Learning*
* | Wrdrddocs:
https://wrdrd.com/docs/consulting/education-technology#jupyter-and-learning
* | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter
* | Wrdrdtools: https://wrdrd.com/docs/tools/#jupyter-drive # GDrive storage


*nbgrader*
* | Wrdrdtools: https://wrdrd.co* m/docs/tools/#nbgrader
* | Wrdrdtools:
https://wrdrd.com/docs/consulting/education-technology#nbgrader

*RISE*
* | Src: https://github.com/damianavila/RISE

RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension [ live_reveal ]

Reveal.js
* | Homepage: http://lab.hakim.se/reveal-js/#/
* | Source: https://github.com/hakimel/reveal.js/


> Please understand, I am not being critical I just want to make these
> observations because I am a cranky middle aged man.
>

Are you preparing students for a problem-solving business-like scientific
context and/or for creative problem solving?

* Linked Curricula Graphs
  #RDFa #JSONLD
  https://westurner.org/opengov/us/ne/index#linked-curricula-graphs


* *schema.org/Course <http://schema.org/Course>*
  #RDFa #JSONLD
  https://westurner.org/opengov/us/ne/index#schema-org-course




.. index:: Graphs
.. _graphs:

Graphs
````````
| Wikipedia: `<https://en.wikipedia.org/wiki/Graph_(abstract_data_type)>`__
| Wikipedia: `<https://en.wikipedia.org/wiki/Graph_(mathematics)>`__
| Wikipedia: `<https://en.wikipedia.org/wiki/Graph_theory>`__
| Docs: https://en.wikipedia.org/wiki/Conceptual_graph
| WikipediaCategory: `<https://en.wikipedia.org/wiki/Category:Graphs>`__
| WikipediaCategory:
`<https://en.wikipedia.org/wiki/Category:Graph_data_structures>`__
| WikipediaCategory: `<https://en.wikipedia.org/wiki/Category:Graph_theory>`__

A graph is a :term:`system` of nodes connected by edges;
an abstract data type for which there are a number of
suitable data structures.

* A node has edges.
* An edge connects nodes.

* Edges of **directed graphs** flow in only one direction;
  and so require two edges with separate attributes
  (e.g. 'magnitude', 'scale'

  | Wikipedia: https://en.wikipedia.org/wiki/Directed_graph

* Edges of an **undirected graph** connect nodes
  in both directions (with the same attributes).

  | Wikipedia: `<https://en.wikipedia.org/wiki/Graph_(mathematics)#Undirected_graph>`__

* Graphs and :ref:`trees` are **traversed** (or *walked*);
  according to a given algorithm (e.g. :ref:`DFS`, :ref:`BFS`).

* Graph nodes can be listed in many different *orders*
  (or with a given *ordering*):

  * Preoder
  * Inorder
  * Postorder
  * Level-order

* There are many :ref:`data structure <data structures>`
  representatations for :ref:`graphs`.

* There are many data serialization/marshalling
  formats for graphs:

  * Graph edge lists can be stored as adjacency :ref:`matrices <matrix>`.
  * :ref:`NetworkX` supports a number of graph storage formats.
  * :ref:`RDF` is a :ref:`standard semantic web <semantic web standards>`
    :ref:`linked data` format for :ref:`graphs`.
  * :ref:`JSON-LD` is a :ref:`standard semantic web <semantic web standards>`
    :ref:`linked data` format for :ref:`graphs`.

* There are many :ref:`Graph Databases` and :ref:`triplestores`
  for storing graphs.

* A cartesian product has an interesting graph representation.
  (See :ref:`compression algorithms`)


.. index:: NetworkX
.. _networkx:

NetworkX
~~~~~~~~~~~
| Wikipedia: https://en.wikipedia.org/wiki/NetworkX
| Homepage: https://networkx.github.io/
| Source: git https://github.com/networkx/networkx
| Docs: https://networkx.github.io/documentation.html
| Docs: https://networkx.github.io/documentation/latest/
| Docs: https://networkx.github.io/documentation/latest/tutorial/
| Docs: https://networkx.github.io/documentation/latest/reference/classes.html
| Docs: https://networkx.github.io/documentation/latest/reference/algorithms.html

NetworkX is an :ref:`open source` graph algorithms library
written in :ref:`Python`.


>
> ________________________________________
> From: Omaha <omaha-bounces+bkealey=mail.unomaha.edu at python.org> on behalf
> of Jeff Hinrichs - DM&T via Omaha <omaha at python.org>
> Sent: Tuesday, January 5, 2016 12:42 AM
> To: Omaha Python Users Group
> Cc: Jeff Hinrichs - DM&T
> Subject: Re: [omaha] Python Workshops @ DoSpace Group
>
> @Steve, given the enthusiasm for youth programming at the last meeting, the
> first course I thought we'd work on, py100, for beginning / new programmers
> who are interested in learning Python with a class time of 2 hours (1.5
> actual) with a goal of a lab/student exercise every 12 minutes.  I figure
> on average 8 minutes per lab giving 4 minutes of lecture and slides per
> lab.  All of which is complete speculation at this point but I believe the
> twice as much lab as talk is a valid starting point. *wink*    It is a very
> fundamental programming with Python where one of our goals should be to do
> no harm if an attendee wants to go farther.
>
> @adam, There is absolutely no reason why we couldn't create classes for
> other categories of students.  My working idea is PySchool, some courses
> (if we get there) can have pre-requisites others ,like py100, will have no
> pre-reqs.
>
>
>
> On Mon, Jan 4, 2016 at 6:12 PM, Steve Young via Omaha <omaha at python.org>
> wrote:
>
> > Adam brought up a good point to consider.  Are you aiming for people with
> > little to no programming experience (which is what I was thinking) or
> > experienced programmers wanting to learn python?
> >
> > Steve
> >
> > On Mon, Jan 4, 2016 at 8:04 AM, Adam Schaal via Omaha <omaha at python.org>
> > wrote:
> >
> > > *I should clarify this terrible sentence:*
> > > "For example, if you have defined methods/functions and tell them to
> > create
> > > their own, I think it's far more likely that they'll copy the way
> you've
> > > created a method/function, then to fill our it's inner workings. "
> > >
> > > *What I meant to say was:*
> > > "For example, if you have defined methods/functions and tell them to
> > create
> > > their own, I think it's far more likely that students would enjoy
> copying
> > > the way these are already created in the file then filling our the
> inner
> > > workings of one created for them."
> > >
> > >
> > >
> > >
> > > On Mon, Jan 4, 2016 at 8:00 AM, Adam Schaal <adam at scha.al> wrote:
> > >
> > > > When I go to a workshop like this, I tend to have more fun/interest
> if
> > > I'm
> > > > challenged.  While I appreciate the fact that you'd like to introduce
> > > > excellent coding practices by having a majority of the file coded, I
> > > > encourage you to leave a good chunk to the user.  For example, if you
> > > have
> > > > defined methods/functions and tell them to create their own, I think
> > it's
> > > > far more likely that they'll copy the way you've created a
> > > method/function,
> > > > then to fill our it's inner workings.  Perhaps, that's already what
> you
> > > > were thinking, but I just wanted to clarify.
> > > >
> > > > Learning Python was extremely applicable when I was solving ACM-like
> > > > algorithm challenges - I like the idea of converting programmers into
> > > > python devs - maybe even in other fields.  I think that a
> > > challenge/problem
> > > > like that where a programmer can clearly see python's advantages over
> > > other
> > > > languages would be a valuable asset to the class.
> > > >
> > > > With all this said, I'm still a relative beginner - maybe even your
> > > target
> > > > demo - so take what I say with a grain of salt.
> > > >
> > > > Adam Schaal
> > > >
> > > >
> > > > On Sun, Jan 3, 2016 at 11:11 PM, Jeff Hinrichs - DM&T via Omaha <
> > > > omaha at python.org> wrote:
> > > >
> > > >> Burch,
> > > >> I think you are hitting the nail on the head. And it is good that
> you
> > > are
> > > >> pointing out that the goal might appear to be too geared to a
> > > programming
> > > >> as a profession.  I am glad that you said something, because I am
> > > looking
> > > >> to approach this the other way round.  That is to inspire
> programming
> > in
> > > >> other professions.   With the current push on in the sciences for
> > > >> repeatable results in data analysis, I would think that within the
> > next
> > > >> decade that anyone who works with data for a profession (not
> > > programmer's
> > > >> but analysts, scientists, etc.) would be ill equipped if they can't
> > > >> wrangle
> > > >> data.
> > > >>
> > > >> To that end, many just like you and myself (when I attended college,
> > you
> > > >> only received 1 credit hour for a language class.  They were
> > graduating
> > > >> Computer Scientists not programmers.) pick up a language or other
> > tool,
> > > >> based on our ability and the reference material that we have at hand
> > (or
> > > >> online).  And that first exposure sits like concrete, as you stated.
> > The
> > > >> example you sited about file handling is very insightful and I think
> > > lends
> > > >> credence to my goal of making the first contact for those new to
> > > >> programming as positive as we can.
> > > >>
> > > >> My goal is to have the examples that we show to the class be as good
> > as
> > > we
> > > >> can make them.  Be written in a way that lends itself to good
> > convention
> > > >> and best current practices.  So that when we show students example
> > code
> > > --
> > > >> it is of good quality, not a questionable example that was thrown
> > > together
> > > >> to demonstrate one thing while completely ignoring all other good
> > > >> practices.  I believe the examples we pick for use in these still
> > > >> fictional
> > > >> classes should show not only what we want to demonstrate on the
> micro
> > > >> level
> > > >> but also be a good example on the macro level.  So that if a
> > > >> student/attendee used one of our examples as a starting point for
> > > >> something
> > > >> bigger, they would be on good footing.   When people first start
> > > >> programming we don't write code as much as borrow it from other
> > places.
> > > >> *wink*   My goal is to create the best quality code examples, that
> > they
> > > >> can
> > > >> borrow for other things.
> > > >>
> > > >> Also, for beginners a blank file is too much.  The examples I've
> come
> > up
> > > >> with so far require that they fill in the missing pieces,
> concatenate
> > > some
> > > >> strings here, finish out the function body there, but the rest of
> the
> > > code
> > > >> should be stellar because we wrote it for them.  Doc strings where
> > they
> > > >> belong, conventions followed for naming variables (no more i, j, k
> > which
> > > >> dominate in Fortran or x and y like it is a math problem)with
> > > descriptive
> > > >> names.  So that when the time comes for a student to create a
> variable
> > > out
> > > >> of thin air they will be more likely to be descriptive too.  But
> even
> > if
> > > >> they don't use descriptive names students won't be berated, what
> > matters
> > > >> is
> > > >> that code does what is intended.
> > > >>
> > > >> As for testing, I am not going to try and sell you on it.  (Like
> > backup
> > > >> and
> > > >> restore, most are not concerned until the ugly happens.) I am not
> even
> > > >> planning on talking about it in these opening workshops.  However,
> > that
> > > >> doesn't mean I am going to favor code examples that are not
> testable.
> > > Far
> > > >> from it.  Everyone of my current example exercises has associated
> > tests.
> > > >> The students won't run the tests but my agent, sam will.  When they
> > > finish
> > > >> an exercise I'll know, as sam will let me know their code is running
> > and
> > > >> passing the tests.  That also requires that the creator of the
> > specific
> > > >> lab
> > > >> write in a way that is testable.  However, none of this is a burden
> to
> > > the
> > > >> student as they are not going to be running the tests or even
> thinking
> > > >> about creating testable code but they'll be learning it
> subliminally.
> > > >>
> > > >> And now that I've used the word, subliminal -- I just realized that
> > was
> > > my
> > > >> goal all the time.  In each example, given on a slide or as an
> > exercise
> > > >> there is the part that you are talking about discretely.  Focusing
> on
> > > that
> > > >> topic.  However, the surrounding and supporting code is also
> teaching
> > > and
> > > >> informing the student.  That is the part that needs more love in
> just
> > > >> about
> > > >> every example I've seen on the internet.
> > > >>
> > > >> If none of this made sense or you still don't agree (However, I
> think
> > > that
> > > >> I'm tripping over myself agreeing with you.) please say so.  The
> point
> > > of
> > > >> this thread is to have a conversation where we can flesh out some
> > > >> reasonable goals and then see if we can meet them.  So if you are
> > > reading
> > > >> this and have an opinion, a point, a question then please, please
> > chime
> > > >> in.
> > > >>
> > > >>
> > > >>
> > > >>
> > > >> On Sun, Jan 3, 2016 at 8:36 PM, Burch Kealey via Omaha <
> > > omaha at python.org>
> > > >> wrote:
> > > >>
> > > >> >
> > > >> > I will make an observation - this is not meant to be critical but
> I
> > > want
> > > >> > you (collectively) to chew on it.  If I want to learn to be a
> > > >> programmer I
> > > >> > would look for a well structured learning path.  If I want to
> learn
> > to
> > > >> do
> > > >> > things to make my life easier I am not sure I want to take the
> same
> > > >> path as
> > > >> > if I wanted to learn to be a programmer.
> > > >> >
> > > >> > This note is sent in response to both Jeff's and Wes's posting.
> > > Please
> > > >> I
> > > >> > am not trying to be critical but you guys are programmers by
> > training
> > > >> and
> > > >> > vocation I am not.  I don't have the time to learn to be a
> > programmer.
> > > >> > Unit Tests, what the heck are those?  Why do I care?
> > > >> >
> > > >> > I ask a question on SO and a bunch of idiots jump up and are
> > critical
> > > >> for
> > > >> > the fact that my code is not PEP 8 compliant - okay it makes them
> > feel
> > > >> good
> > > >> > but it does not help me.  For example, for the longest time ( say
> 5
> > > >> years)
> > > >> > when I opened and read a file I would do this
> > > >> >
> > > >> > mydata = open('some file path','r').readlines()
> > > >> >
> > > >> > That is not PEP 8 compliant (I don't think), but when I first
> > Googled
> > > to
> > > >> > learn how to open a file and read the contents into a list - I
> think
> > > >> this
> > > >> > is the webpage I found
> > > >> >
> > > >> > http://openbookproject.net/pybiblio/tips/wilson/loadingfile.php
> > > >> >
> > > >> > It was only this year that I took the time to learn the right way
> > > >> >
> > > >> > with open('some file path','r') as f_handle:
> > > >> >     data = f_handle.readlines()
> > > >> >
> > > >> > Why did I not bother learning the right way before this year, I
> was
> > > too
> > > >> > busy learning how to do other things and it was working for me.
> Why
> > > >> did I
> > > >> > even bother learning the right way, because I got sick of the way
> > the
> > > >> > conversation would get channeled if I had a question or comment
> > about
> > > >> > something and the pros would say well you are not opening the file
> > > >> right.
> > > >> > My response is who gives a drat, that is not the problem, but they
> > are
> > > >> > stuck on that issue.
> > > >> >
> > > >> > I am probably not explaining this well - certainly you want to
> teach
> > > >> > people the right way but I would be careful about how far you take
> > it.
> > > >> Our
> > > >> > software is used by over 5,000 people and I have never written a
> > unit
> > > >> test
> > > >> > (have no clue).  I know that is not a big number but it is the
> > amazing
> > > >> > thing about Python.
> > > >> >
> > > >> > Don't cringe, drink some OJ!
> > > >> >
> > > >> > Just an observation.
> > > >> >
> > > >> > Happy New Year
> > > >> >
> > > >> > Burch
> > > >> > ________________________________________
> > > >> > From: Omaha <omaha-bounces+bkealey=mail.unomaha.edu at python.org>
> on
> > > >> behalf
> > > >> > of Wes Turner via Omaha <omaha at python.org>
> > > >> > Sent: Sunday, January 3, 2016 8:12 PM
> > > >> > To: Omaha Python Users Group
> > > >> > Cc: Wes Turner
> > > >> > Subject: Re: [omaha] Python Workshops @ DoSpace Group
> > > >> >
> > > >> > https://wrdrd.com/docs/tools/#python
> > > >> > * http://learnxinyminutes.com/docs/python/ # ./git
> > > >> >
> > > >> > "[omaha] For Python beginners"
> > > >> > https://mail.python.org/pipermail//omaha/2015-May/001816.html
> > > >> >
> > > >> > * http://docs.python.org/tutorial
> > > >> > *
> > > https://scipy-lectures.github.io/intro/language/python_language.html
> > > >> > * https://github.com/audreyr/cookiecutter-
> > > >> > <https://github.com/audreyr/cookiecutter-pypackage>pypackage
> > > >> > <https://github.com/audreyr/cookiecutter-pypackage>
> > > >> >
> > > >> >   *Create and test a package w/ git[hub] and CI"
> > > >> >
> > > >> > * Rosalind [Bioinformatics] exercises are outstanding
> > > >> >   1. they're already set up for online grading/points
> > > >> >   2. you get to learn about the domain
> > > >> >   * | Homepage: http://rosalind.info/
> > > >> >   * https://wrdrd.com/docs/consulting/data-science#rosalind
> > > >> >
> > > >> > * "How to create and *test* a package for your Rosalind solutions"
> > > >> >
> > > >> >    * "Testing as a core scientific process #126"
> > > >> > https://github.com/scipy-lectures/scipy-lecture-notes/issues/126
> > > >> >
> > > >> >    * TDD first!
> > > >> >       [null] hypothesis, code, test!, [commit]
> > > >> >
> > > >> >       *
> > > >> >
> > > >>
> > >
> >
> https://westurner.org/wiki/awesome-python-testing.html#workflow-evolution
> > > >> >
> > > >> >          *
> > > >> >
> > > https://wrdrd.com/docs/consulting/education-technology#jupyter-and-tdd
> > > >> >           *
> > > >> > https://wrdrd.com/docs/consulting/education-technology#nbgrader
> > > >> >
> > > >> > [omaha] November 18 Meeting - Celebrate and Plan!
> > > >> > https://mail.python.org/pipermail/omaha/2015-November/001943.html
> > > >> >
> > > >> > > The software carpentry lessons are great (and designed for group
> > > >> > instruction IIUC):
> > > >> > > * https://software-carpentry.org/lessons.html
> > > >> >
> > > >> > ...
> https://westurner.org/opengov/us/ne/#cs-skills-for-stem-fields
> > :
> > > >> >
> > > >> > *
> > > >>
> > https://wrdrd.com/docs/consulting/software-development#computer-science
> > > >> > To all of who offered to help in any form with giving Python
> > > workshops @
> > > >> > DoSpace,
> > > >> >
> > > >> > I've been hammering out some ideas for a class targeted at those
> new
> > > to
> > > >> > programming in particular.
> > > >> >
> > > >> > We should probably start a conversation about it and see what we
> can
> > > put
> > > >> > together.
> > > >> >
> > > >> > Here are some goals, because we need to have something to measure
> > > >> against:
> > > >> >
> > > >> > * should allow for students to do something with Python as soon as
> > > >> possible
> > > >> > - don't want them bored and inattentive.
> > > >> >
> > > >> > * The See/Do affect of examples should have the following
> qualities:
> > > >> >
> > > >> >   * be pep8 compliant (only deviating when we are teaching a
> > specific
> > > >> > topic.)
> > > >> >
> > > >> >   * be easy to test.  No example has print or input in the middle
> > of a
> > > >> > function other than main or one designed to deal with user
> > > interaction.
> > > >> > Too many examples mix I/O with processing leaving students with a
> > > knack
> > > >> for
> > > >> > writing hard to test code.  (All example code and problems should
> > have
> > > >> an
> > > >> > associated test suite [py.test] to accompany them.)
> > > >> >
> > > >> >   * Should emphasize DRY and only deviate when showing them undry
> > > >> > situations and how to correct.
> > > >> >
> > > >> >   * Early coding problems are often quite boring, so there should
> be
> > > >> some
> > > >> > sort of setup for them, a backstory, to get the students invested
> in
> > > >> their
> > > >> > solution.  For Example - learning comparison operators -- "Sam is
> a
> > > >> young
> > > >> > AI with untrained neural nets and we need to write a module to
> help
> > > >> train
> > > >> > him had to organize two things so he can put them on a shelf in
> > > order."
> > > >> >  Sounds a lot more interesting than write a function that
> compares 2
> > > >> things
> > > >> > and output them in order from smallest to largest. *yawn*
> > > >> >
> > > >> >
> > > >> > So what are your ideas?  What are you willing to help out with?
> > We'll
> > > >> need
> > > >> > material reviewers, testers and trainers and TAs for actual
> classes.
> > > >> >
> > > >> >
> > > >> > I believe someone has offered to be our DoSpace ambassador. Sorry,
> > > but I
> > > >> > didn't write down your name at the meeting.  Would you speak up
> once
> > > >> again.
> > > >> >
> > > >> >
> > > >> > --
> > > >> > Best,
> > > >> >
> > > >> > Jeff Hinrichs
> > > >> > 402.218.1473
> > > >> > _______________________________________________
> > > >> > Omaha Python Users Group mailing list
> > > >> > Omaha at python.org
> > > >> > https://mail.python.org/mailman/listinfo/omaha
> > > >> > http://www.OmahaPython.org
> > > >> > _______________________________________________
> > > >> > Omaha Python Users Group mailing list
> > > >> > Omaha at python.org
> > > >> > https://mail.python.org/mailman/listinfo/omaha
> > > >> > http://www.OmahaPython.org
> > > >> > _______________________________________________
> > > >> > Omaha Python Users Group mailing list
> > > >> > Omaha at python.org
> > > >> > https://mail.python.org/mailman/listinfo/omaha
> > > >> > http://www.OmahaPython.org
> > > >> >
> > > >>
> > > >>
> > > >>
> > > >> --
> > > >> Best,
> > > >>
> > > >> Jeff Hinrichs
> > > >> 402.218.1473
> > > >> _______________________________________________
> > > >> Omaha Python Users Group mailing list
> > > >> Omaha at python.org
> > > >> https://mail.python.org/mailman/listinfo/omaha
> > > >> http://www.OmahaPython.org
> > > >>
> > > >
> > > >
> > > _______________________________________________
> > > Omaha Python Users Group mailing list
> > > Omaha at python.org
> > > https://mail.python.org/mailman/listinfo/omaha
> > > http://www.OmahaPython.org
> > >
> > _______________________________________________
> > Omaha Python Users Group mailing list
> > Omaha at python.org
> > https://mail.python.org/mailman/listinfo/omaha
> > http://www.OmahaPython.org
> >
>
>
>
> --
> Best,
>
> Jeff Hinrichs
> 402.218.1473
> _______________________________________________
> Omaha Python Users Group mailing list
> Omaha at python.org
> https://mail.python.org/mailman/listinfo/omaha
> http://www.OmahaPython.org
> _______________________________________________
> Omaha Python Users Group mailing list
> Omaha at python.org
> https://mail.python.org/mailman/listinfo/omaha
> http://www.OmahaPython.org
>


More information about the Omaha mailing list