Skip to content




  • New: Update information on active projects.


Infrastructure as Code


  • New: Introduce helm-git to install charts directly from git repositories.


  • New: Tell how to make long diffs usable.

Infrastructure Solutions


  • New: Explain jobs, cronjobs and how to monitor them with prometheus.
  • New: Explain how to debug cronjob logs.


  • New: Add kubectl command cheatsheet.

Continuous Integration

  • Reorganization: Split CI documents into their own pages.


  • New: Explain how to reveal the type of an expression.
  • Improvement: Add git link.
  • Correction: Configure black to process long lines.

    Use the --experimental-string-procesing flag to process long lines.

  • New: Introduce the alex linter.

    Alex helps you find gender favoring, polarizing, race related, religion inconsiderate, or other unequal phrasing in text.

  • New: Explain how to skip one line.

  • New: Explain how to fix the Module X has no attribute Y.
  • New: Explain how to prevent the formatter on some lines.


  • New: Introduce flakeheaven python linter.

    Flakehell is a Flake8 wrapper to make it cool.

  • Improvement: Annotate the slowness of the bandit tests in pre-commit.

  • New: Add yamlfix formatter.


  • New: Introduce the markdownlint linter.

    markdownlint is A linter for Markdown files.


  • New: Introduce proselint linter.

    Proselint is another linter for prose.

    feat(write-good) introduce the write-good linter

    write-good is a naive linter for English prose.

Automating Processes


  • New: Add cookiecutter template testing guidelines.
  • New: Explain how to remove unwanted directories.
  • New: Explain how to use a default configuration for all your templates.
  • Improvement: Add references on why is not easy to update cookiecutter templates.
  • New: Explain how to debug failing cookiecutter tests.


  • New: Introduce cruft tool to manage cookiecutter templates.

    cruft allows you to maintain all the necessary boilerplate for packaging and building projects separate from the code you intentionally write. Fully compatible with existing Cookiecutter templates.



  • New: Explain how to find a metric name.
  • New: Add statistical analysis on instance sizes using prometheus metrics.

    Explain how to configure prometheus to automatically check if your instances are of the correct size and which are your bottlenecks.

  • New: Explain how to install with docker.

  • Reorganization: Move the installation of docker to prometheus install.

Node Exporter

  • New: Filter out stopped instances.



  • New: Add cookiecutter documentation.
  • New: Add docker construction for a python project.
  • New: Add commit guidelines with commitizen.
  • Correction: Type hints of subclasses of abstract classes.
  • New: Introduce the python docstrings.
  • New: Add python snippets article.

    Includes the generation of OpenSSH keys with the cryptography library

  • Improvement: Correct typo in the generation of ssh keys.

  • Correction: Add email to the generated ssh snippet.
  • New: Explain how to make multiline code look clean.

    Use textwrap.dedent() to define variables that require multiline strings

  • New: Explain how to play a file inside python.

  • New: Explain how to save a python object to a string using ruamel parser.
  • New: Explain how to do a deep copy of a dictionary.
  • New: Explain how to solve the R0201 pylint error.
  • New: Do an initial analysis on Python profiling.
  • New: Introduce some ideas on optimization of python code.


  • Correction: Explain how to use alembic from a python scripts and not.


  • New: Explain how to setup and test a click application.
  • New: Introduce click arguments.
  • New: Explain how to accept options from environmental variables and how to handle contexts.
  • Correction: Add note on capturing stderr and stdout with caplog instead of click methods.
  • New: Introduce the boolean options and variadic arguments.
  • New: Explain how to use a default command to a click group.
  • New: Improve arguments documentation.

    • Add example on how to use variadic arguments.
    • Explain how to use File and Path click arguments
  • New: Explain how to set the allowable values for an argument.

  • New: Explain how to hide a command from the --help output.


  • New: Introduce dash and dash-leaflet.

    Explain how to initiate dash and how to create a map with dash-leaflet

  • New: Explain how to interact with programs that ask for user input.

Type Hints

  • New: Improve the definition of objects with multiple types with TypeVar.
  • New: Explain how to use the TypedDict instead of Dict.

    Useful if the different keys have different types

Code Styling

  • New: Introduce the deepdiff library.
  • New: Explain how to fix the Pylint R0201 error.
  • New: Explain why we can safely ignore W1203.


  • Correction: Add warning that generating your own attributes doesn't work anymore.


  • New: Explain how to populate the faker fixture with random seeds.
  • Correction: Improve the way of generating random seed.


  • New: Explain how to use folium, change tileset and load data.
  • Correction: Change the order of the layers.

    Openstreetmaps is more clear than the IGN, so the waypoints are better seen


  • New: Explain what fixtures are.
  • New: Tell how to use a fixture more than once in a function.
  • New: Document the capsys, caplog and tmpdir builtin fixtures.
  • New: Add freezegun fixture.
  • New: Explain how to save the fixtures into a separate file.
  • New: Explain the different parametrization options. Introduce the awesome pytest-cases.
  • New: Explain how to use marks to group the tests.
  • New: Explain how to test error raising with pytest.
  • Improvement: Solve W0621 Redefining name %r from outer scope (line %s) error.
  • New: Explain how to change the log level with the caplog.
  • Correction: Add link to the unpack_fixture section.
  • Correction: Explain how to better use with pytest.raises snippets.

    To capture the message in a cleaner way


  • New: Introduce the mkdocstrings library.

    mkdocstrings is a library to automatically generate mkdocs pages from the code docstrings.


  • New: Introduce the passpy library.

    passpy a platform independent library and cli that is compatible with ZX2C4's pass.


  • New: Introduce pydantic with it's models and types.
  • New: Explain how validators work.
  • New: Explain how to export the models.
  • New: Explain how to validate functions and use the mypy plugin.
  • New: Explain how to initialize empty iterables on attributes.
  • New: Explain how to solve the E0611 error.
  • Correction: Explain how to solve the E0611 error in code lines.
  • Correction: Correct pylint R0201 on pydantic models.


  • New: Introduce pypika.
  • New: Explain how to select, filter and delete data.


  • New: Introduce the sqlite python library.
  • New: Explain how to get the columns of a sqlite3 query.


  • New: Introduce text to speech python library.


  • New: Introduce yoyo database migration tool.
  • New: Explain how to do yoyo table relationships.


  • New: Add json linters and fixers.


  • New: Introduce the sql data types.


  • New: Introduce sqlite and it's upsert feature.

Software Architecture

Domain Driven Design

  • New: Explain how to inject fake dependencies into e2e tests with click.

Repository Pattern

  • New: Warn about the definition of attributes created by the ORMs.

Life Management


  • New: Introduce strategy document.

    Differentiate between strategic planning and strategic thinking



  • New: Explain the benefits of sleep, the consequences of lack of sleep and the physiological effects of sleep including the circadian rhythm and what is melatonin.
  • New: Explain sleep pressure, caffeine and the relationship with the circadian rhythm.
  • New: Explain the independence between circadian and sleep pressure.

Operative Systems



  • New: Introduce haproxy and how to do a reverse proxy with it.


  • Correction: Correct meditation navigation element.


  • New: Add monica installation.


  • New: Add ale language server processor Vim plugin.
  • New: Add only part of files to the index to stage.
  • New: Create ALEToggleFixer command to enable/disable fixers.
  • New: Make fugitive commit workflow more user friendly.
  • Correction: Add movement mappings for the commit message window.
  • New: Explain how to use YouCompleteMe to complete prose.
  • Correction: Explain how to limit the autosuggestion results to one when writing prose.
  • New: Explain how to search synonyms inside vim.
  • Correction: Improve the environment to write commits with more bindings and restoring bindings once you close the message.
  • New: Explain how to manage python foldings.


  • New: Introduce zfs and some basic commands.



  • New: Add there is/are avoidance pattern.
  • New: Explain the guidelines and tools I use for writing.


  • New: Define meditation and it's types.

Video Gaming

The Battle for Wesnoth

  • New: Explain how to play the loyalist civilization.


  • New: Add sh awesome library.
  • Correction: Fix broken links.
  • New: Add factoryboy factory usage.
  • New: Add the xy problem.
  • New: Add tinydb documentation.
  • New: Add prevent cookiecutter from processing some files docs.
  • New: Add first cutting shapes steps.
  • Correction: Improve the changelog generation with commitizen.
  • Correction: Remove unwanted gifs on rave dances.
  • New: Add kicking-running man and tap spin.
  • New: Prevent additional whitespaces when jinja condition is not met.
  • Correction: Correct the running man.
  • New: Add how to keep historical data on database table changes.
  • New: List all process swap space usage.
  • New: Introduce the click python library.
  • New: Add more steps.

    • Quick tempo running man
    • Quick tempo T-Step
    • Francis T-Step
    • Sacco kicks
  • New: Add Francis spin and first version of dance routine.

    Corrected how to reach the quick tempo running man.

  • New: More guidelines on how to speed up the running man.

    And refactor in different files

  • New: Add times for next steps to learn.

  • New: Added ash, birch and beech description.
  • New: Introduce wireguard.
  • New: Explain how to debug elasticsearch yellow state.
  • Correction: Update python ci docs.
  • New: Explain how to solve cyclic imports when using type hints.
  • New: Evaluate the different solutions to programmatically interact with databases.
  • Correction: Remove xkcd image.
  • Reorganization: Extract type hints to it's own file.
  • New: Bump material version to 6.0.2.

    Also take the chance to move images directory to img

  • Correction: Correct repository pattern images path.

  • Correction: Correct image paths.
  • Correction: Add note on the flexibility of query builders.
  • Correction: Remove type hints from python code styling.
  • New: Explain the use of Generic typing.
  • Correction: Correct domain driven design image path.
  • Correction: Remove broken links.
  • New: Explain how to make your python packages mypy compliant.
  • Correction: Explain how to remove all pip packages from a virtualenv.
  • Correction: Discourage the use of pip-tools in the CI.
  • Correction: Explain how to get started.
  • Correction: References between articles.
  • New: Explain how to fix W0707 mypy error.
  • New: Introduce wesnoth, and the northerners and rebels civilizations.
  • New: Explain how to use Wake on Lan.
  • New: Explain how to use TypeVar to specify children class.
  • New: Explain how to solve W0106 in list comprehensions.
  • New: Explain how to solve SIM105.