Python Icon

Python

Python is a dynamically typed programming language.
182 Stories
All Topics

Victor Zhou victorzhou.com

A gentle introduction to Visual Question Answering using neural networks

Show us humans a picture of someone in uniform on a mound of dirt throwing a ball and we will quickly tell you we’re looking at baseball. But how do you make a computer come to the same conclusion?

Visual Question Answering

In this post, we’ll explore basic methods for performing VQA and build our own simple implementation in Python

Python github.com

Exploring and understanding Python through surprising snippets

Here’s a fun project attempting to explain what exactly is happening under the hood for some counter-intuitive snippets and lesser-known features in Python.

While some of the examples you see below may not be WTFs in the truest sense, but they’ll reveal some of the interesting parts of Python that you might be unaware of. I find it a nice way to learn the internals of a programming language, and I believe that you’ll find it interesting too!

Tidelift Icon Tidelift

It's the end of Python 2. Are we prepared?

In just a few short months, Python 2 will officially reach the end of its supported life. 💀 This means that anyone building applications in Python will need to have moved to Python 3 if they want to keep getting updates including, importantly, fixes for any security vulnerabilities in the core of Python or in the standard library.

With over 200k Python libraries extant, I have a feeling it’ll be awhile before Python 2 is put out to pasture…

Ned Batchelder nedbatchelder.com

Why your mock doesn’t work

Mocking is a powerful technique for isolating tests from undesired interactions among components. But often people find their mock isn’t taking effect, and it’s not clear why. Hopefully this explanation will clear things up.

Mocking isn’t always the best test isolation technique, but if/when you use it, you might as well use it correctly. Ned’s here to help you do just that.

Python hypothesis.works

Hypothesis seeks to automate your test process

This interesting testing tool was pointed out to me by Ned Batchelder when he was on The Changelog.

It combines human understanding of your problem domain with machine intelligence to improve the quality of your testing process while spending less time writing tests.

At its core, Hypothesis is a modern implementation of property based testing, which came out of the Haskell world 20 (!) years ago.

Hypothesis runs your tests against a much wider range of scenarios than a human tester could, finding edge cases in your code that you would otherwise have missed. It then turns them into simple and easy to understand failures that save you time and money compared to fixing them if they slipped through the cracks and a user had run into them instead.

Python nicolas-hahn.com

One program written in Python, Go, and Rust

This is a subjective, primarily developer-ergonomics-based comparison of the three languages from the perspective of a Python developer, but you can skip the prose and go to the code samples, the performance comparison if you want some hard numbers, the takeaway for the tl;dr, or the Python, Go, and Rust diffimg implementations.

Not only is this a good way to compare programming languages, but it’s a good way to learn a new language if you’re already familiar with one of the others.

Python anvilventures.com

Reverse engineering the Dropbox client

Dropbox’ concept is still deceptively simple. Here’s a folder. Put files in it. Now it syncs. Move to another computing device. It syncs. The folder and files are there now too! The amount of work that goes on behind the scenes of such an application is staggering though.

If you’ve ever wondered how Dropbox works, or you’ve always wanted to reverse engineer some code but didn’t know how to get started, read this.

We managed to successfully reverse engineer Dropbox, write decryption and injection tools for it that work with current Dropbox clients based on Python 3.6 releases and successfully reverse engineer features and enable them.

0:00 / 0:00