The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

149 lines
6.6 KiB

+++
title = "Links for 2020-04-29"
date = 2020-04-29
[taxonomies]
tags = ["links", "python", "top", "bash", "legacy", "rewrite", "refactor",
"tribes", "factory", "git", "branches", "trim", "dairy", "journal",
"programming", "caches", "gnome", "screen recording", "requirements", "vim",
"password manager", "google", "adsense"]
+++
Python 3.9, A Nice Top in Pure Bash, Rewriting a Legacy System, Programming
Tribes, Feature Factory, Python Function Overload, Clean Git Branches,
Journaling for Devs, What Programming Is, Caches, GNOME Screen Recording,
Requirements, VIM Password Manager, Google AdSense Ransom.
<!-- more -->
# [New Features in Python 3.9 You Should Know About](https://martinheinz.dev/blog/21)
The great feature coming in Python 3.9 is the dictionary shortcut (`|`, as in
`new_dict = dict1 | dict2`), but there are few more incoming changes.
I talked about the future of Python on [PyCaxias](https://pycaxias.org/) this
year, and I pointed that Python grew a lot when it entered the web development
area and now that it is getting into the machine learning area, there will be
changes coming into the language to support this.
And if you ignore the dict operator, there is _a lot_ of things related to ML.
# [BashTop: Linux resource monitor](https://github.com/aristocratos/bashtop)
When I first receive the link for this, I thought "I bet it looks like any
other bash script". But no, it has a well designed interface and loops
interesting as heck.
# [Avoid rewriting a legacy system from scratch, by strangling it](https://understandlegacycode.com/blog/avoid-rewriting-a-legacy-system-from-scratch-by-strangling-it/)
So you don't know how to replace your monolith with another monolith? Here is
one idea: Create the same API, put a gateway in front of the old system and
slowly reroute calls to the new service.
# [3 tribes of programming](https://josephg.com/blog/3-tribes/)
It's kinda funny seeing articles that try to pinpoint developers in certain
categories and end up just splitting everyone.
But this one kinda makes sense, if you're willing to put a random label on
yourself.
# [12 Signs You’re Working in a Feature Factory](https://cutle.fish/blog/12-signs-youre-working-in-a-feature-factory)
Ah, the good old ways of just pushing buttons and pumping features, with no
regard to process or anything else.
If you're starting your dev career, at some point you'll work in one of those,
and recognizing you're in such situation may help your future.
# [Function overloading in Python](https://arpitbhayani.me/blogs/function-overloading)
Ah, the joys of using decorators to add features to the language. In this
case, using decorators, you can add function overloading to Python, and even
if it is based on the number of arguments, one could extend this to use the
type hints for figuring out the function (with some work, I reckon).
# [git-trim: Automatically trims your branches whose tracking remote refs are merged or gone](https://github.com/foriequal0/git-trim)
Keeping your GIT branches clean is good for your health. Removing those stupid
"fix-this" and "fix-that" after they were merged, but not removing "develop"
and "master" can be hard work.
This small app helps keeping everything nice and tidy.
# [Always Be Journaling](https://letterstoanewdeveloper.com/2018/12/14/always-be-journaling/)
Today in "Things I Know I Should Be Doing But I Don't": Journaling.
I've seen this "pattern" a few times: Take notes of everything you're doing;
take notes of problems you solve; keep notes of discussions you had. Those are
all important and can save your butt in the future.
# [Programming is not a goal.](https://ralsina.me/weblog/posts/programming-is-not-a-goal.html)
I was kinda expecting the "Programming is not a goal, providing value for your
customers is", but this is way more direct than you can think. It's the clear
suggestion for those who are starting to focus on solving their own problems
instead of just coding.
Figuring out how to scrap a website is ok, but what will you do with the data.
Building a neural network may be used in your CV when you're looking for that
high-paying job, but you're going to train to fix _what_?
# [What is cache penetration, cache breakdown and cache avalanche?](https://www.pixelstech.net/article/1586522853-What-is-cache-penetration-cache-breakdown-and-cache-avalanche)
I suck at using the "proper" words for some contexts: I used a bunch of
patterns, but heck if I can remember (or even if I really know) their proper
names.
This is the same thing: Just some clarification on how to call some
problems/situations with caches.
# [GNOME has a ‘Secret’ Screen Recorder. Here’s How to Use it!](https://itsfoss.com/gnome-screen-recorder/)
This is a cool thing: You can record your desktop if you're using GNOME. The
recording will appear as a `webm` in your "Videos" folder.
# [Requirements volatility is the core problem of software engineering](https://stackoverflow.blog/2020/02/20/requirements-volatility-is-the-core-problem-of-software-engineering/)
This should not come as a surprise to anyone who was part any moderately large
project: things change.
Yes, agile is a way to solve this, but we need to teach developers to "let go"
of their code. We write code expecting it to live forever, and then the
requirements change and we hung up on those little grouped words and instead
of removing and starting with a fresh view, we try to twists and push things
around till it works, but is barely recognizable.
This part agile doesn't teach us.
# [Using Vim as a password manager](https://invert.svbtle.com/using-vim-as-a-password-manager)
A little stupid trick using VIM: VIM can encrypt files when saving them, so
you can pick a file, put your passwords, and save it in encrypted form.
# [Pay Up, Or We’ll Make Google Ban Your Ads](https://krebsonsecurity.com/2020/02/pay-up-or-well-make-google-ban-your-ads/)
Not only we have the problem with Google acting the way it wants with its
products -- and as much as we don't like it, we can't deny its in their own
right to do so -- now people have to worry about people tricking Google into
killing your... revenue.
And I think that's one of the basis of the whole problem with privacy and the
general use of Google products: revenue. Imagine how scared someone could be
if they decide to pay U$ 5000 just to not kill their revenue.
There has to be a better way.
---
This post was built with the help of
* [Aloïs Cochard](https://functional.cafe/@alois)
* [Benpro](https://toots.benpro.fr/@benoit)
* [HN Tooter](https://mastodon.social/@hntooter)
* [newsbot](https://mastodon.social/@newsbot)
* [Read Rust](https://botsin.space/@readrust)
* [Starfish](https://social.linux.pizza/@redstarfish)