Delivered once every Week. No Spam Ever.

Issue - 174

Worthy Read

Testing microservices systems is significantly more nuanced and complex than testing a traditional monolithic application. Is traditional testing pyramids still relevant? How to verify overall system behavior? Check out our new post: Test Strategy for Microservices.

If you are a beginner, intermediate or even an advanced programmer there is something for you in this book. Please note that this book is not a tutorial and does not teach you Python. The topics are not explained in depth, instead only the minimum required information is given.

Feature Flags are a very simple technique to make features of your application quickly toggleable. The way it works is, everytime we change some behavior in our software, a logical branch is created and this new behavior is only accessible if some specific configuration variable is set or, in certain cases, if the application context respects some rules.
software engineering

Now days, table driven tests are pretty much industry standard. In my workplace, we use table driven tests when we write unit tests (in golang though). Here I shall share a simple code example using pytest that shows how to write table driven tests in Python. In table driven test, what you need to do is, to gather all the tests cases together in a single table. We can use dictionary for each test case and a list to store all the test cases. Instead of discussing it further, let me show you an example.
unit testing

When the PySide project was launched back in 2009, the team decided to use external tools to generate Python bindings from Qt C++ headers. One of the main concerns, besides using a tool that properly handles all the Qt C++ constructs, was the size of the final packages. The previous choice was using templates excessively, hence another alternative was required. After analyzing a few other options the team decided to write their own generator, Shiboken.

A few years ago, I worked on a project that involved collecting data on a variety of global environmental conditions over time. Some of the data sets included cloud cover, rainfall, types of land cover, sea temperature, and land temperature. I enjoyed developing a greater understanding of our Earth by visualizing how these conditions vary over time around the planet. To get a sense of how fun and informative it can be to analyze environmental data over time, let’s work on visualizing global land surface temperatures from 2001 to 2016.

In a rather short session at the 2018 Python Language Summit, Larry Hastings updated attendees on the status of his Gilectomy project. The aim of that effort is to remove the global interpreter lock (GIL) from CPython. Since his status report at last year's summit, little has happened, which is part of why the session was so short. He hasn't given up on the overall idea, but it needs a new approach. Gilectomy has been "untouched for a year", Hastings said. He worked on it at the PyCon sprints after last year's summit, but got tired of it at that point. He is "out of bullets" at least with that approach. With his complicated buffered-reference-count approach he was able to get his "gilectomized" interpreter to reach performance parity with CPython—except that his interpreter was running on around seven cores to keep up with CPython on one.

forge is an elegant Python package for crafting function signatures. Its aim is to help you write better, more literate code with less boilerplate.

Seam carving is a novel way to crop images without losing important content in the image. This is often called “content-aware” cropping or image retargeting.
image processing

Bpython - alternative interactive python interpreter

An Abstract Syntax Tree is a simplified syntactic tree representation of a programming language’s source code. Each node of the tree stands for an statement occurring in the code. This trees don’t show the entire syntactic clutter, just the important information for analyzing the code. If it showed the entire structure it would be a Concrete Syntax Tree, but it’s usually better to simplify it because the information we use when building compilers can be found on an abstract syntax tree.


SmoothLife - 383 Stars, 11 Fork
Continuous Domain Game of Life in Python with Numpy

SleuthQL - 123 Stars, 17 Fork
Python3 Burp History parsing tool to discover potential SQL injection points. To be used in tandem with SQLmap.

pypykatz - 106 Stars, 11 Fork
Mimikatz implementation in pure Python

Emojinator - 65 Stars, 25 Fork
A simple emoji classifier for humans.

R2Plus1D-PyTorch - 65 Stars, 4 Fork
PyTorch implementation of the R2Plus1D convolution based ResNet architecture described in the paper "A Closer Look at Spatiotemporal Convolutions for Action Recognition"

twitchslam - 24 Stars, 0 Fork
Live coding SLAM

python-doctl - 20 Stars, 1 Fork
A Python wrapper for the Digital Ocean CLI utility — doctl.

kasane - 18 Stars, 0 Fork
A simple kubernets deployment manager

Source Code for 'Advanced Data Analytics Using Python' by Sayan Mukhopadhyay - 11 Stars, 2 Fork
The same, much faster.

same-same - 11 Stars, 0 Fork
A git diff highlighter

s3tree - 10 Stars, 0 Fork
Access S3 like a tree.

evt2sigma - 7 Stars, 0 Fork
Log Entry to Sigma Rule Converter

gitDiffTool - 4 Stars, 0 Fork
GitDiffTool is a tool to compare two commits of a gitProject and generate the diff into html. You can read the diff in one html page, the list of modified files on one side and the specifics diff-content on the other.