New CEO (kind of), new lay-off. Shouldn’t be a surprise: every time there’s a new boss in town layoffs and shakeups aren’t to be excluded, particularly in Mozilla.

Back in the Valley.
Gosh, I already feel exhausted and depressed by the mere thought of getting into the work shitshow again.

“Quando perdiamo il diritto di essere differenti, perdiamo il privilegio di essere liberi”

Which roughly translates to: “when we lose the right to be different, we also lose the privilege of freedom”

This powerful sentence was used by the President of Republic of Italy Sergio Mattarella on December 31st 2019 when he addressed the whole nation.

Not sure about you but I find it utterly beautiful and inspiring.

Today I spent most of the day jumping around to reach Naples downtown: the sheer decay of the whole region here is beyond upsetting.

Unfortunately it’s also because of me and people like me: we decided to leave altogether; by doing so we gave free reign to whoever stayed behind... the braindeads and the douchebags.

So you know: my time off here in Italy has been spent with noise canceling headphones on and white noise.

The thing that’s killing my patience the most here at home in Naples is the sheer amount of noise. Not even at home one can have quiet: the motherfucker upstairs has an escape room. Unbelievable.

Now we can add that to our pool; it's as easy as pie...:

def main():
list_of_slow_callables = []

'''Add an egregous number of slow functions to our list.'''
for i in range(100):

"""The cool part: kickoff the executor using the default number
of worker threads (at most 32).
with concurrent.futures.ThreadPoolExecutor() as tp:
for func in list_of_slow_callables:

Let's start with our ol' fashioned function...

def legacy_long_function():
'''This is a dummy long function, replace it with your stuff.'''
logging.debug('Really, not doing anything particular for several seconds...')

for i in range(10):
logging.debug(f'Tick {i}')

logging.debug('Ok, I\'m done')

Need a quick (and not that dirty) way to parallelize some Python call?

Here's how to do it: just submit (add) your function to the ThreadPoolExecutor.

Every callable (functions, ndr) submitted to the pool returns a Future. But you don't really need to care about that for now.

Talking is cheap, though, let me show you the code.

(This is gonna be a short thread)

In the past few years the Python release schedule changed quite a bit and it might become a bit complicated to understand what version to pick.

In general:

* there's a major version per year
* a major version is supported for up to 5 years

To get a graphical idea of this concept, bookmark this page:

The current major version (the one you should all target for new stuff) is Python 3.8.

Opening mastodon while I’m at home in Italy and finding very little activity is just another proof that my followanza is mostly American.

Only a quick update for all the Python folks in the land:


I've been thinkering with the Alexa SDK: ffs, it's such a boring technology...

This is certainly gonna be the year of Linux on the desktops.

My first important action in 2020 is to come clean and finally tell the world that I deem method chaining a cancer in software development.


Ah. I feel better now.

So yeah, merry 2020 fellow tooters! Here in Italy 🇮🇹 it’s 1am of January 1st 2020 already.

Hope to see some of you IRL!

Ma’ is really getting impossible to get along with. Jeeez...

Show more

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!