February 20th Meeting Notes

Another Great Meeting (not Clint's words!)!.  We had a full room including three new attendees who work for RedHat (Called Redhatters; Clint is also a Redhatter since he works for Red Hat Global Learning Services.)

We had some pre-meeting conversations and questions that were asked on a couple of topics which were demonstrated and explored.

Clint started off his presentation by talking about the resources available for learning Python.  First off, Books!

Python The Complete Manual - pfffft!  No source code available, many exercises do not work.  Maybe okay on Ubuntu but questionable.  Very poor as a learning tool!

Barns & Nobel Python Programming for dummies ed:  Book is a regurgitation of Python Programing for Dummies.  Uses Anaconda's jupyter-notebook for exercises.  Okay as a step-by-step learning method with lots of explanation.

Murack's Python Programming: Excellent but a bit spendy at $50 and change.  Source code available for both "learning" and complete solutions.  Not tool specific.
ISBN 978-1-890774-97-4

Several members contributed the following free books resources which are also very good:

DiveintoPython.net - pdf with py tutorial files.
DiveintoPython3.net - pdf, updated to Python 3.5

I signed up for one of their free books (actually 3 of them on Python) and I am now being swamped with marketing emails form Packt!  So be warned, you might want to use a junk email address instead of your normal email address.  Pakt books are very good and not inexpensive, as I have purchased their books in the past for use in my teaching.

Clint emphasized the importance of having the code from the various books and websites which allows you to not only perform the exercises and labs but also having the code is a great way to learn by looking at how others have written the code snips.  He has lot of code (py files) to learn from that he has collected over the last month.

OnLine Training:

Udemy - Reasonable - a few marketing emails but that is okay for the price. Mine was $19 for a lifetime of learning Python. Not tool specific.

You Tube - Python 3.4 Programming Tutorials: Excellent but presenter's website has gone dark. :-(  No Source Code.  Not tool specific. Basic programming is small steps, well done.
Watch out for Bucky's humor...

imdb movie database dissection using Python Pandas with video on YouTube:
First visit this link on github which provides the files and a introduction
-download zip file.
-Youtube tutorial: https://www.youtube.com/watch?v=5JnMutdy6Fw
-Member Darin recommends this video highly but also recommends that you view it on a seperate screen while following it in doing the exercises using the downloaded files. The video is 2 hours 24 Minutes in length.


As part of Clint's demo, he showed each of the following tools including executing a short python script.

1.  Anaconda/Conda:

Complete Python environment and you can chose either Python 2 or Python 3 installation file at set of tools and code.  Download is available at https://www.anaconda.com/download/ and it will detect your operating system environment.  Uses own python environment executables which take precedence over locally install distribution executables and idle modules. Anaconda provides the jupyter-notebook which is used by numerous books and videos in learning Python so it essential. The conda component is used for updating conda, anaconda, and panda, in the order to keep your system up-to-date.  This updating process can take some time, on my laptop, it took the better part of an hour.

Good Documentation: https://docs.anaconda.com/anaconda/ and also the underlying "conda" https://conda.io/docs/user-guide/getting-started.html. Jupyter-Notebook is a server-client application where it runs the "server" on your computer and then you use the "client" in the browser of choice.  Jupyter-Notebook support extensive commenting and markdown for documenting your code and then when you are done, you can export the .py file.  When you "quit" Jupyter-Notebook, it is a two step process where you first logout of the browser client closing and saving your work; then you need to go the terminal where started the jupyter-notebook server and you do this by doing a control-c and then a quit "y" to complete the shutdown process.

2.  Geany - Editor/IDE  Excellent for coding/editing code and execution. Basically, an editor with a lot of plug-ins and knows about python including executing python scripts with the results in a second window that you can close.  It is very fast and runs natively, does not require a python environment, just run the scripts as you learn Python.

3.  Idle - Python specific versions (idle3.6, both from Anaconda and distribution.  Great for coding exercises, opening code files, and execution.  Beware that if Anaconda is installed it will run the Anaconda Idle shell which takes precedence.  Example: My laptop is running Fedora 27 and the two paths to idle are:
Anaconda:       /home/tinslecl/anaconda3/bin/idle3.6
Fedora version: /usr/bin/idle3.6
Idle provides an immediate execution window when you run your python code.

4.  PyCharm Community Version from JetBrains - A free, excellent tool, professional coding IDE environment.  Provides a form of "intellisense" provide for completions while typing your code.  JetBrains has been building programing IDE's, first in the Microsoft Environment and now the open source community.  You can get the Community Version for free or buy the paid feature rich professional version for Python. For ubuntu, PyCharm is available directly from their repositories and this article https://howto-ubuntunew.blogspot.com/2017/12/how-to-install-pycharm-20173-in-ubuntu.html will help you in installing it.  

Fedora takes a bit more work at the command line but once installed it is great:
Installing PyCharm Community on 32 or 64 bit Fedora 21/22/23
As root user, create a file pycharm.repo in /etc/yum.repos.d/
vi /etc/yum.repos.d/pycharm.repo
and add below content and save the .repo file

name=Copr repo for PyCharm owned by phracek

Now to install pycharm community version, execute below commands
dnf copr enable phracek/PyCharm
dnf install pycharm-community

5. KDevelop - Very powerful, part of the KDE suite of applications. Advanced project tyep program environments are supported.

6. KDevelop.AppImage - better, "container" version, not distribution specific.  A simple download and your are ready to go:
a) wget -O KDevelop.AppImage https://download.kde.org/stable/kdevelop/5.2.1/bin/linux/KDevelop-5.2.1-x86_64.AppImage
b) chmod +x KDevelop.AppImage
c) ./KDevelop.AppImage # Runs KDevelop from the container.

7. Eclipse & Aptana Studio 3 - Both of these are great IDE environments for coding and free to use however, you may struggle with setting these up and getting all the features to work. Clint used Aptana for developing and maintaining a very large Load Balancer Application written in C++ on Fedora 13.

8. This just in!  Thonny. Learn to code with Thonny — a Python IDE for beginners, https://fedoramagazine.org/learn-code-thonny-python-ide-beginners/. It is available in the Fedora 27 repository, sudo dnf install thonny, and it is installed. For more information https://bitbucket.org/plas/thonny/wiki/Linux where you find installation for other Linux platforms.  On the same site, you will find information for installing on other platforms such Windows.

Some enlightenment on python "virtualenv(ironments)" can be found from these two links.

After Clint's presentation on Python, some additional conversations:

Command Line fun:
curl http://wttr.in/~Boise
Get your weather report at the command line!

Using a raspberrypi sd card pointing to an attached ssd drive.

Ed introduced us to the Shaper, the first hand-held CNC machine which one group member referred to as a "router" which is but it is a very precise router with intelligence on board. It learns, it cuts, very precise components.  Autodesk Fusion is included.  Shaper is not "cheap", prices start at $2,300 (Pre-Sale price) and they are still ramping up manufacturing of the tool. https://shapertools.com/  Ed volunteered to do a demo at a upcoming meeting, possibly in April so stay tuned for that.

Interest was also expressed in an Ansible demo.  We had a Ansible 1.0 demo a couple years back but it is now at Ansible 3.x which a lot of new capabilities.  One person tentatively volunteered but we are looking at other volunteers to do this as well.

Another possible presentation at a future meeting would focus on OpenShift Linux Containers.

Our next meeting will be on March 20th and we are still open as to a presenter/topic to be presented.  If you have something to add to the conversation, please email Clint at c_tinsley@msn.com.

Hope to see you all then.