RECENT TOPICS

Python Magic Methods By: Nick Timkovich
Date: Aug. 9, 2018, 6 p.m.

Everything in Python is an object and nothing is special. Python's built-in objects can be added, called, indexed, or with'd, and with a little magic, so can yours! Use of magic methods, those prefixed/suffixed with double underscores, can increase the flexibility of your code while also making it shorter and simpler.

YouTube logo
Mocking with MITM By: Quentin Bayart
Date: Aug. 9, 2018, 6 p.m.

Every developer (eventually) writes tests. Unit tests, Integration tests, End-to-end tests, Regression tests.. All of those tests are necessary but can become a nightmare when you need to refactor some code. I personally don't like the amount of time I spend to manually mock my dependencies / functions / objects. This talk is about a simple docker-compose / pytest / mitm setup which aims at speeding up the mocking process and the maintenance of those mocks when refactoring or when updating the interface of your services. Q&A: Many of you are dealing with this mocking process regularly so you can expect many comments / questions if you come to this talk :) Contact: Quentin Bayart, Software Engineer @ Nielsen qbayart@hawk.iit.edu https://github.com/QuentinBay A couple of days before the presentation, I will push my demo to my github so you should be able to find it there after the presentation.

YouTube logo
Intro to SaltStack By: Erik Johnson
Date: July 12, 2018, 6 p.m.
SaltStack is open-source software for modern IT automation. The project was created in 2012 and today is used by tens of thousands of DevOps and enterprise IT organizations to automate the management of data center infrastructure and application environments. With its core remote-execution functionality, it is flexible enough to run shell commands, perform configuration management tasks, orchestration, and more. Erik Johnson, a SaltStack core developer and Chicago-area native, will demo the basics of how to get started using Salt, as well as how to use its powerful event bus for automation tasks.
Python 3.7 Below the Fold: `mock.seal` By: Aly Sivji
Date: July 12, 2018, 6 p.m.
`unittest.mock` provides a flexible implementation of mock objects we can use to write isolated unit tests. In this lightning talk, we will explore the new `mock.seal()` function that was added in Python 3.7.
Data Classes in Python 3.7: Why and How do They Compare to Existing Solutions? By: Brian Stempin By: Yiu Ming Huynh
Date: July 12, 2018, 6 p.m.
Python prides itself on being a language where “There should be one – and preferably only one – obvious way to do it” (PEP 20). One place where this isn’t really true is when it comes to the question of how to store data. There are several options: dictionaries, tuples, named tuples, vanilla Python classes, and Python classes decorated with the attrs library. PEP 557 adds a new way: Data classes. In this talk we will compare and contrast each approach, give listeners a way to figure out which one is best for their particular project, and share some performance metrics for those who are concerned with speed and memory footprints.
Going with the flow: Intro to Airflow By: Matt Inwood
Date: April 12, 2018, 6 p.m.
Airflow is a great open source resource for managing ETL, or any other scheduled jobs. We'll go over the DAG-Task-Script Hierarchy; job triggers, logging, and the web interface. I'll also talk about some best practices, and different caveats and gotchas that you can come across from my personal experience implementing it.
A Robust Dev-to-Production Workflow for Home Use, Using Jupyter Notebooks and PyTest By: Leon Shernoff
Date: April 12, 2018, 6 p.m.
Working on a substantial Python project at home can be confusing and frustrating. A work environment can suddenly impact the direction of a project in unexpected ways, because of the many stakeholders; but they usually have a robust process in place for actually doing the coding (otherwise nothing gets done). Implementing a solid and productive workflow routine at home can be a challenge, but it is of great benefit for complex projects. This talk uses a sample text-processing project to demonstrate a home workflow design featuring sandboxing in Jupyter notebooks, migration of working routines to project-specific modules and straight-ahead Python files, and writing unit tests for these in PyTest.
Calculating pi using Django and Solidity on the Ethereum Blockchain By: Joshua Herman
Date: April 12, 2018, 6 p.m.
After giving a whirlwind tour of what Ethereum and Solidity are I will show how to use Django and Web3py to deploy a smart contract that performs division.
Introduction to Keras By: Chris Gruber
Date: March 8, 2018, 6 p.m.
Keras is a popular framework for building neural networks in Python. Using Keras, a developer can define and train a neural network in just a few lines of code. Keras also includes a number of pre-built networks to build state-of-the-art models for language translation, image recognition, etc. This talk will consist of an overview of Keras and its features, and a demo in which we build and train a classifier for the MNIST hand-written digit dataset.
mitmproxy: Lift the veil on server-side HTTP(s) interaction By: Ross Heflin
Date: March 8, 2018, 6 p.m.
When writing web frontends there's powerful tools for understanding backend calls made by a website (Network tab in Chrome, Firefox, Webkit'sm Dev Tools and HAR analyzers). These are (reasonably) great for figuring out what requests a browser is making to backend servers & what came back. When dealing with server-side code its somewhat harder to see all requests made to other systems in context of what requests came into the server-side api without instrumenting your code with lots of (often incomplete) logging. During the last 5 years, I've worked through many issues in various languages/frameworks and libraries, where the only common thread was (sometimes complex) communication with other systems over HTTP(S) by using mitmproxy. This talk will cover a variety of use cases, demonstrating some useful capabilities of this versatile tool with minimal (if any) changes to existing code regardless of source language, server-side framework, and HTTP client used.