<div dir="ltr">May I ask us to update this verbiage on BayPIGgies.net. It is technically completely accurate. However, the part of "Until then, please check the mailing list and this website for updates" can be very confusing:<div><br></div><div>







<p class=""><span class="">> Welcome To BayPIGgies</span></p>
<p class=""><span class="">> We are the Silicon Valley-San Francisco Bay Area Python Interest Group.</span></p><p class=""><span class="">> No membership is required and beginners are welcome!</span></p>
<p class=""><span class="">> NOTE: <a href="http://meetup.com/baypiggies">http://meetup.com/baypiggies</a> is currently being run by someone NOT </span></p><p class=""><span class="">> affiliated with baypiggies users group.  We DO NOT CHARGE MEMBERSHIP </span></p><p class=""><span class="">> FEES.  We are trying to negotiate the return of the meetup group. Until then</span></p><p class=""><span class="">>  </span>please check the mailing list and this website for updates.</p><p class=""><span class=""><br></span></p><p class="">The reason I believe this can be confusing is that I am cross-posting this again with this MeetUp site (how we used to do it -- it has much of the same audience). I don't want to discourage those from signing up there -- especially as this is listed as sponsored by BayPIGgies and we link to your website.</p><p class=""><br></p><p class=""><a href="http://www.meetup.com/silicon-valley-python/events/228104282/">http://www.meetup.com/silicon-valley-python/events/228104282/</a></p><p class=""><br></p><p class="">Could say something similar to: "Until then, we are using one of our member's MeetUp sites '<a href="http://www.meetup.com/silicon-valley-python">http://www.meetup.com/silicon-valley-python</a>' to promote BayPIGgies to new members. But, please always use the mailing list and website for the official meeting information"</p><p class=""><br></p><div>Kindest Regards,</div><div><br></div><div><br></div><div><br></div><div>Glen Jarvis</div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 14, 2016 at 10:22 PM, Glen Jarvis <span dir="ltr"><<a href="mailto:glen@glenjarvis.com" target="_blank">glen@glenjarvis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I saw no -1 votes for me stepping up to the plate and corralling cats for our next MeetUp. I even saw a +1, w00t I'm in the black. :)</div><div><br></div><div><br></div><div>Please update BayPIGgies.net:</div><div><br></div><div>Who: Glen Jarvis</div><div>What: Explore Git internals using Python | Let's write "git log" in Python</div><div>When: Thursday, January 28, 2016 7:30 PM</div><div>Where: LinkedIn Corporation / Stierlin Ct. / Mountain View / CA / Exact address and room not yet known</div><div>Why: Because we need to know the airspeed of an unladen swallow</div><div><br></div><div>







<p><span>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.</span></p>
<p><span>Python is an elegant programming language heavily influenced by ABC "a teaching language, a replacement for BASIC...." [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.</span></p>
<p><span>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 `git log` command for any arbitrary git repository without using the `git` command [2]. When finished, we should have our own working command that does the same thing as `git log` for any arbitrary repository, on any branch. We'll simply start at `HEAD` and work our way down the data structure.</span></p>
<p><span>Although it is not *useful* to have a Python version of Git, it is *fun*. 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.</span></p><p><span><br></span></p>
<p><span>About the Speaker</span></p><p><span>=============</span></p><p><span>Glen Jarvis has been programming Python for over 7 years and has been programming in different languages for over twenty years. Before that, he was a highly certified database administrator and has been certified in Linux/Unix administration by UC-Berkeley.</span></p><p><span>He has worked for companies such as IBM, UC-Berkeley, Sprint and many Silicon Valley Start-ups. He has worked in the fields of Databases, Data Science, Bioinformatics and Web Technologies.</span></p><p><span><br></span></p><p><span>Glen has been working for two years at RepairPal, a very successful start-up that gives you free estimates for what your car repair *should* cost [3]. He is currently putting the "Dev" in "DevOps" using Ansible (and Ruby).</span></p><p><span>He additionally owns a consulting and training company, Glen Jarvis, LLC, that mentors budding programmers. Some of his training Videos include How to create a free AWS instance, Ansible Hands-On Training, and An introduction to Test Driven Development. He has also been an open source contributor [4].</span></p><p><br><span></span></p><p><span></span></p><p><span>[1] <a href="http://python-history.blogspot.com/2009/02/early-language-design-and-development.html" target="_blank">http://python-history.blogspot.com/2009/02/early-language-design-and-development.html</a></span></p><p><span>[2] With one small caveat. There is only one plumbing command used to read a binary file `git cat-file`. The rest is ASCII text that we can read/open/manipulate.</span></p><p><span>[3] <a href="http://repairpal.com/" target="_blank">http://repairpal.com/</a></span></p><p><span></span>



























</p><p><span>[4] <a href="https://github.com/glenjarvis/" target="_blank">https://github.com/glenjarvis/</a></span></p></div><div><br></div><div><br></div><div><br></div><div>Also, note that I have cross-posted this on my own company's MeetUp site. Although this is not the BayPIGgies site, the more people that we see RSVP here, the more newcomers will be interested in attending (no one likes being the first one at a party):</div><div> </div><div><br></div><div><a href="http://www.meetup.com/silicon-valley-python/events/228104282/" target="_blank">http://www.meetup.com/silicon-valley-python/events/228104282/</a><br></div>
<div><br></div><div><br></div><div><br></div><div><br></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">







<p>Machines take me by surprise with great frequency. <br></p><p>--Alan Turing</p><p>









</p><p><span>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.<<<<<<<<<<<<<<<<<<</span></p></div></div></div></div></div></div></div>
</div>