week 31, 2021

The Unknown Features of Python's Operator Module

At the first glance Python's operator module might not seem very interesting. It includes many operator functions for arithmetic and binary operations and a couple of convenience and helper functions. They might not seem so useful, but with help of just a few of these functions you can make your code faster, more concise, more readable and more functional. So, in this article we will explore this great Python module and make the most out of the every function included in it.

Source: The Unknown Features of Python's Operator Module, an article by Martin Heinz.

Shards of Earth

Idris has neither aged nor slept since they remade his mind in the war. And one of humanity’s heroes now scrapes by on a freelance salvage vessel, to avoid the attention of greater powers.

Eighty years ago, Earth was destroyed by an alien enemy. Many escaped, but millions more died. So mankind created enhanced humans ­such as Idris - who could communicate mind-to-mind with our aggressors. Then these ‘Architects’ simply disappeared and Idris and his kind became obsolete.

Now, Idris and his crew have something strange, abandoned in space. It’s clearly the work of the Architects – but are they really returning? And if so, why? Hunted by gangsters, cults and governments, Idris and his crew race across the galaxy as they search for answers. For they now possess something of incalculable value, and many would kill to obtain it.

In the evening I started in Shards of Earth, The Final Architecture Book 1 by Adrian Tchaikovsky. Having read and enjoyed a lot his Children of Time series I look forward to this new series.

Working with Postgres types

In episode 2 of this series I noted that the languages in which I’m writing Postgres functions share a common type system. It took me a while to understand how types work in the context of Postgres functions that can return sets of records and can interact with tables and materialized views.

Source: Working with Postgres types, an article by Jon Udell.

Rust: First Thoughts

come to Rust having spent most of my career writing Java or (Java/Type)script. Many moons ago in high school and university I did C and C++ but have happily forgotten most of that. I’ve also recently built some small projects in Go, which is the most interesting and common comparand for Rust (a nice comparison can be found here).

Source: Rust: First Thoughts, an article by Alex Poulos.

The Black Prism: good

In the evening I finished The Black Prism, Lightbringer book 1 by Brent Weeks. I did enjoy the book a lot but from what I recall I liked the Night Angel Series slightly better. Still, I would recommend this book and for certain I am going to read the rest of the Lightbringer series.

On Unix composability

Unix provides fairly simple means of composing programs, and over time I appreciate this feature more and more, however there are some caveats. This article is my personal collection of noteworthy examples, ending with a discussion.

Source: On Unix composability, an article by Přemysl Eric Janouch.

NumPy views: saving memory, leaking memory, and subtle bugs

If you’re using Python’s NumPy library, it’s usually because you’re processing large arrays that use plenty of memory. To reduce your memory usage, chances are you want to minimize unnecessary copying,

NumPy has a built-in feature that does this transparently, in many common cases: memory views. However, this feature can also cause higher memory usage by preventing arrays from being garbage collected. And in some cases it can cause bugs, with data being mutated in unexpected ways.

To avoid these problems, let’s learn how views work and the implications for your code.

Source: NumPy views: saving memory, leaking memory, and subtle bugs, an article by Itamar Turner-Trauring.

Python's ChainMap: Manage Multiple Contexts Effectively

Sometimes when you’re working with several different dictionaries, you need to group and manage them as a single one. In other situations, you can have multiple dictionaries representing different scopes or contexts and need to handle them as a single dictionary that allows you to access the underlying data following a given order or priority. In those cases, you can take advantage of Python’s ChainMap from the collections module.

Source: Python's ChainMap: Manage Multiple Contexts Effectively, an article by Leodanis Pozo Ramos.

What’s Next for Object-Oriented Perl?

But there’s a new kid on the block. Curtis “Ovid” Poe has been spearheading Corinna, an effort “to bring effective OO to the Perl core and leapfrog [emphasis his] the capabilities of many OO languages today.” No CPAN modules, no chain of dependencies; just solid OO features and syntax built-in. And while Corinna is a ways off from shipping, Paul “LeoNerd” Evans (maybe I should get a cool nickname too?) has been implementing some of these ideas as new Perl keyword syntax in his Object::Pad module.

Source: What's Next for Object-Oriented Perl?, an article by Mark Gardner.

The Ultimate Guide to Software Project Estimation

Over the past 10 years, our team has planned hundreds of development projects. As you’d expect, we’ve gotten better and better at it! Our Software Development Estimation Tool started life as a spreadsheet, before progressing into a recently updated online tool (or mini web app). This article discusses how to use the estimation tool for software development, as well as the underlying methodology that powers it. In particular, how looking at every project through two lenses (team planning and tasks) can improve your understanding of the software project’s cost and timeline.

Source: The Ultimate Guide to Software Project Estimation, an article by Damien Filiatrault.

Learn Git!

So now you understand a certain programming language and you are writing code and coffee is your new best friend. But everywhere there is code, you see Git. They say a true developer must know Git and here you are, knowing nothing about Git, but longing to getting started.

I have to admit, Git is as complex as it is popular. However, you don't need to know the whole 160+ commands of Git to use it well. Here is a short but sure tutorial that will teach you the most used feature of this world-famous version control system.

Source: Learn Git!, an article by Angelo Verlain.

Git Does Not Have Branches

Okay, this is not another git rant. Git has taken the world by storm, and anyone complaining should go sit in a corner, and stop wasting our time.

This post is an explanation of the most important quirk in git terminology and how it affects everything you do in version control. You see, while “branch” is a central keyword in git — git in fact does not have branches.

Source: Git Does Not Have Branches.