<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>PyVideo.org - Glen Jarvis</title><link>https://pyvideo.org/</link><description></description><lastBuildDate>Sat, 20 Aug 2016 00:00:00 +0000</lastBuildDate><item><title>BayPiggies June 2016 talk at LinkedIn by Glen Jarvis: Explort Git Internals using Python</title><link>https://pyvideo.org/bay-piggies/baypiggies-june-2016-talk-at-linkedin-by-glen-jarvis-explort-git-internals-using-python.html</link><description>&lt;h3&gt;Description&lt;/h3&gt;&lt;p&gt;Git is a powerful tool for source control. It's often misunderstood and abused. Under the surface Git is an elegant and simple data structure. When you don't understand that data structure, you don't really understand Git. It is flexible enough to give you all the rope that you need to hang yourself in Git hell. However, if you understand it, metaphorical Gordian knots seem simple and Git hell doesn't exist&lt;/p&gt;
&lt;p&gt;Python is an elegant programming language heavily influenced by ABC &amp;quot;a teaching language, a replacement for BASIC....&amp;quot; [1] It's a perfect tool that looks like pseudo-code but executes. However, even with its simplicity, it is one of the most powerful programming languages that exists. It is a perfect language to document and run the Git data structure as we explore it.&lt;/p&gt;
&lt;p&gt;In this talk, we start with a simple explanation of the Git data structure on disk. We then begin live-coding to read those data structures and reconstruct a &lt;cite&gt;git log&lt;/cite&gt; command for any arbitrary git repository without using the &lt;cite&gt;git&lt;/cite&gt; command [2]. When finished, we should have our own working command that does the same thing as &lt;cite&gt;git log&lt;/cite&gt; for any arbitrary repository, on any branch. We'll simply start at &lt;cite&gt;HEAD&lt;/cite&gt; and work our way down the data structure.&lt;/p&gt;
&lt;p&gt;Although it is not &lt;em&gt;useful&lt;/em&gt; to have a Python version of Git, it is &lt;em&gt;fun&lt;/em&gt;. Also, this exploration helps you understand the Git tool on a much deeper level. When you can program something, you can understand it. And, understanding Git helps you be a better developer and collaborator.&lt;/p&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Glen Jarvis</dc:creator><pubDate>Thu, 23 Jun 2016 00:00:00 +0000</pubDate><guid isPermaLink="false">tag:pyvideo.org,2016-06-23:/bay-piggies/baypiggies-june-2016-talk-at-linkedin-by-glen-jarvis-explort-git-internals-using-python.html</guid><category>Bay Piggies</category></item><item><title>Successfully automating your machines in the cloud using Ansible (June 2014)</title><link>https://pyvideo.org/bay-piggies/successfully-automating-your-machines-in-the-cloud-using-ansible-june-2014.html</link><description>&lt;h3&gt;Description&lt;/h3&gt;&lt;p&gt;Abstract:
As we have seen with the previous talk, &amp;quot;Red Pill, Blue Pill Virtual Machines and Virtual Environments&amp;quot; (&lt;a class="reference external" href="https://www.youtube.com/watch?v=xZb3cr1JrMg"&gt;https://www.youtube.com/watch?v=xZb3cr1JrMg&lt;/a&gt;), we can use Python to create virtual machines in the cloud.
But, how do you &amp;quot;stamp&amp;quot; those machines differently? If you need to build a web server, mail server, DNS server, and load balancer, each machine may have the same base image but need to be configured differently.
If you manually configure those machines, what happens when you suddenly have a surge in traffic and need four more web servers? Or, what if one finds a vulnerability in a library like Heartbleed in OpenSSL as we recently encountered. A very safe option would be to rebuild these machines from scratch. If they were built manually, rebuilding these machines within minutes from scratch would be daunting, tedious and error prone.
There are several tools that have been built to fix this problem. Two of the most popular tools (Chef and Puppet) are written in the Ruby programming language. And, especially for the most popular, Chef, one needs somewhat of a familiarity with that language to use the tool.
There are two more tools that are written in Python and are growing in popularity: Salt and Ansible. Ansible requires the least amount of set-up (if any) and has the simplest infrastructure (it simply uses commands over ssh like Fabric does). Ansible is the easiest tool to get started with if you are new to the machine build automation frameworks.
We will start with a newly built machine and obtain it's public IP address. We will configure the ansible_host file with the IP address, and add/build plays (like recipes) to gradually configure that machine so that it is a Django web server running in the cloud. When we are finished, we should have a running machine and a recipe to easily build a seconded machine with a few keystrokes.
P.S. If you haven't previously built an Amazon Web Instance, I highly recommend watching this video in advance of the talk: &lt;a class="reference external" href="https://www.youtube.com/watch?v=xZb3cr1JrMg"&gt;https://www.youtube.com/watch?v=xZb3cr1JrMg&lt;/a&gt;
Speaker:
Bio
===
Glen has been a full-time Python programmer since 2007 and has worked for companies such as IBM, UC Berkeley, Sprint, Informix, and many small start-ups. He has also worked both in the US and in the UK and has had Bioinformatics research published in &amp;quot;Nucleic Acids Research (Oxford Journals)&amp;quot;. He is a certified DBA and has also been certified in Linux/Unix Administration.
He currently works for a start-up, RepairPal (for accurate car repair prices) using Ruby on Rails and Ansible. Additionally, he runs a small start up, Glen Jarvis, LLC, that does online technical training and assists employees obtaining telepresence in their current work place.
Glen is the organizer for the Silicon Valley Python MeetUp Group (&lt;a class="reference external" href="http://www.meetup.com/silicon-valley-python/"&gt;http://www.meetup.com/silicon-valley-python/&lt;/a&gt;) and an active member in the Bay Area Python Interest Group (&lt;a class="reference external" href="http://baypiggies.net/"&gt;http://baypiggies.net/&lt;/a&gt;) organization.
&lt;a class="reference external" href="https://github.com/glenjarvis/"&gt;https://github.com/glenjarvis/&lt;/a&gt;
&lt;a class="reference external" href="https://plus.google.com/u/0/+GlenJarvis/posts"&gt;https://plus.google.com/u/0/+GlenJarvis/posts&lt;/a&gt;
&lt;a class="reference external" href="http://www.linkedin.com/in/glenjarvis"&gt;http://www.linkedin.com/in/glenjarvis&lt;/a&gt;&lt;/p&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Glen Jarvis</dc:creator><pubDate>Thu, 26 Jun 2014 00:00:00 +0000</pubDate><guid isPermaLink="false">tag:pyvideo.org,2014-06-26:/bay-piggies/successfully-automating-your-machines-in-the-cloud-using-ansible-june-2014.html</guid><category>Bay Piggies</category></item><item><title>Explore Git internals using Python | Let's write `git log` in Python</title><link>https://pyvideo.org/pybay-2016/explore-git-internals-using-python-lets-write-git-log-in-python.html</link><description>&lt;h3&gt;Description&lt;/h3&gt;&lt;p&gt;Git is a powerful tool for source control. It's often misunderstood and abused. Under the surface Git is an elegant and simple data structure. When you don't understand that data structure, you don't really understand Git. It is flexible enough to give you all the rope that you need to hang yourself in Git hell. However, if you understand it, you are released from Git hell.
​
Abstract
In this talk, we start with a simple explanation of the Git data structure on disk. We discuss where the local Git repo is stored: &lt;cite&gt;.git&lt;/cite&gt;. From there, we discuss the &lt;cite&gt;config, `HEAD&lt;/cite&gt;, &lt;cite&gt;refs/heads&lt;/cite&gt;, and &lt;cite&gt;objects&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;We use Python to read those data structures and reconstruct a &lt;cite&gt;git log&lt;/cite&gt; command for any arbitrary git repository. When finished, we should have our own working command that does the same thing as &lt;cite&gt;git log&lt;/cite&gt; for any arbitrary repository, on any branch. We'll simply start at &lt;cite&gt;HEAD&lt;/cite&gt; and work our way down the data structure.&lt;/p&gt;
&lt;p&gt;Although it is not &lt;em&gt;useful&lt;/em&gt; to have a Python version of Git, it is &lt;em&gt;fun&lt;/em&gt;. Also, this exploration helps you understand the Git tool on a much deeper level. When you can program something, you can understand it. And, understanding Git helps you be a better developer and collaborator.&lt;/p&gt;
&lt;p&gt;Bio
Glen Jarvis has been programming Python for over 8 years and has been programming in different languages for longer. He has been certified in Linux/Unix administration by UC-Berkeley. He gained the highest certification available for Informix DBAs. He is also certified in MongoDB as Developer and Administrator. He has worked for companies such as IBM, UC-Berkeley, Sprint and Silicon Valley Start-ups. He has worked in the fields of Databases, DataScience, Bioinformatics and Web Technologies.&lt;/p&gt;
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Glen Jarvis</dc:creator><pubDate>Sat, 20 Aug 2016 00:00:00 +0000</pubDate><guid isPermaLink="false">tag:pyvideo.org,2016-08-20:/pybay-2016/explore-git-internals-using-python-lets-write-git-log-in-python.html</guid><category>PyBay 2016</category></item></channel></rss>