How to Log in JSON with Logback
Complete example of how to log in JSON with Logback.
How to Debug OpenSSL with Eclipse
Step-by-step instructions on how to debug OpenSSL with Eclipse.
There are two types of CAPTCHAs. Those that are solved by bots and those that will eventually be solved by bots.
It’s hard to tell if a CAPTCHA is secured or not. But, if the text-based CAPTCHA on your website can be decoded with two lines of code (as shown in this article), it’s time to upgrade it.
Approach Two-line approach:
Preprocess the image with convert (ImageMagick).
Use Tesseract - an OCR engine - to extract the text from the image.
Understanding Python Variables
In this article, you will learn the behavior of variables in Python and, in particular, the semantics of the assignment operator (=).
Variables or names? Just before we start, I would like to tell you that what you call a variable in other programming languages is called a name in Python.
Of course not everyone agrees with that, as you can see in this thread. But the official documentation and almost all articles written on the execution model of Python use the word name, so I’ll use it here as well.
Let’s see how a prototype is linked to another object.
Internal Property [[Prototype]] Every object has an internal property named [[Prototype]]. The value of [[Prototype]] is either a reference to another object or null. Example:
a has no prototype.
Choosing the Right Data Structures
About a year ago, I was using NetworkX (a Python package for studying graphs) for one of my projects. While I was working on it, I found that the topological sort implementation in NetworkX was very slow on large-scale instances. So I decided to take a look at it, hoping I can figure out what’s wrong and fix it. In the end, I sped up considerably the implementation. Here is how I did it.
Function Composition in Python
While I don’t consider myself a functional programming guru, all those hours spent in Haskell, Lisp and Scheme definitively changed my way of programming. So, after seeing a lot of unnecessarily complex implementations of function composition in Python on the Web, I decided to write this article to present a simple yet powerful solution that covers all use cases. If you are familiar with function composition, you may want to go to the solution.
How Not to Flatten a List of Lists in Python
You will find lots of solutions on the Web to flatten a list of lists in Python. Most of them take linear time, which is efficient because each element is copied once. But some solutions take more than linear time. In this article, I will explain why one of the simplest solution sum(lst, ) is actually one of the worst solution.
The inefficiency comes from how the + operator (concatenation) is defined on a list: it creates a new list and copies each element into it.