Skip to content

Instantly share code, notes, and snippets.

View luizomf's full-sized avatar
🐍
Não ensino porque sei. Ensino porque quero saber.

Otávio Miranda luizomf

🐍
Não ensino porque sei. Ensino porque quero saber.
View GitHub Profile
@luizomf
luizomf / .vimrc
Last active January 17, 2026 11:55
Simple bash config to append to .bashrc for servers.
syntax on
set nocompatible
"set number
"set relativenumber
set nocursorline
"set colorcolumn=80
set backupcopy=yes
set expandtab
set tabstop=2
@luizomf
luizomf / SSH_KEYS_ROTATION.md
Last active January 8, 2026 16:51
SSH key rotation guide: secure backup of ~/.ssh with 7zip (AES-256, encrypted headers), safe SSH key revocation without lockout, correct order to replace keys, behavior of active SSH sessions, authorized_keys handling, fixing broken ~/.ssh permissions, ed25519 keys, OpenSSH on Linux/macOS, real-world DevOps and server security notes. Otávio Miranda

SSH Keys Rotation

Since I record my screen a lot for videos and courses, I need to take some security measures more frequently than the average person. Because I recently recorded a few videos teaching Linux server security, I ended up showing some SSH private and public keys on screen.

There’s nothing critical here. Those were temporary keys. Still, just to be safe, I’m rotating all my SSH keys.

@luizomf
luizomf / pynput_helpers.py
Last active November 22, 2025 14:59
Um script que bloqueia o teclado do MacOS para eu fazer a limpeza. Basta pressionar ctrl+alt+q para destravar. Qualquer coisa mate o processo haha.
#!/usr/bin/env python3
# Command to run:
# uv run --with='pynput==1.8.1' pynput_helpers.py
# Também dá para rodar direto do gist:
# uv run --with='pynput==1.8.1' https://gist.github.com/luizomf/c492ef12a0f5d20eb70c2f0c263eb881
from collections.abc import Callable
from typing import Any
from pynput.keyboard import HotKey, Key, KeyCode, Listener
@luizomf
luizomf / commands.md
Created November 13, 2025 14:45
Comandos de navegação no terminal: cd, dirs, pushd, popd, autopushd, pushdminus, pushdignoredups, pushdsilent

Comandos de navegação no terminal

#
# NAVEGAÇÃO DE DIRETÓRIOS — ZSH / BASH / KSH
# Cheatsheet completo, comentado.

#-------------------------------------------------------------------------------
# CD - NAVEGAÇÃO BÁSICA (change directory)
#-------------------------------------------------------------------------------
@luizomf
luizomf / README.md
Last active October 27, 2025 22:18
Reuni um monte de caracteres ASCII para facilitar encontrar eles depois.
###############################################################################

  `Enter ⏎ ` + `Ctrl ⌃` + `Esc ⎋` + `Cmd ⌘` + `Alt ⎇` + `Option ⌥` + `Shift ⇧`
  `Tab ↹` `⌫ Backspace`

################################################################################

  ©  ®  ™  ¶  §  ℀  ℁  ℂ  ℃  ℄  ℅  ℆  ℇ  ℈  ℉  ℊ  ℋ  ℌ  ℍ  ℎ  ℏ  ℐ  ℑ  ℒ  ℓ  ℔
  ℕ  №  ℗  ℘  ℙ  ℚ  ℛ  ℜ  ℝ  ℞  ℟  ℠  ℡  ℣  ℤ  ℥  Ω  ℧  ℨ  ℩  K  Å  ℬ  ℭ  ℮  ℯ
@luizomf
luizomf / main.py
Last active December 1, 2025 22:40
Esse é um código Python que pode ser usado como um digitador em apresentações. Você adiciona um arquivo qualquer, fala em LEXER qual a linguagem deseja syntax highlight e ele digita para você. Os comandos são ctrl+s, inicia o stream da digitação, p pausa, c continua, q termina o stream, ctrl+x sai do aplicativo. Foi feito com Python e Textual. E…
import asyncio
import os
import pathlib
import random
import re
import sys
from collections.abc import AsyncIterator
from contextlib import asynccontextmanager
from datetime import UTC, datetime, timedelta
from enum import Enum
class Pessoa:
def __init__(self, nome, idade, comendo=False, falando=False):
self.nome = nome
self.idade = idade
self.comendo = comendo
self.falando = falando
def comer(self, alimento):
if self.comendo:
print(f"{self.nome} já está comendo.")
@luizomf
luizomf / README.md
Last active January 22, 2026 22:17
Cursos gratuitos de Otávio Miranda - Type Hints no Python (Em andamento) - Logging no Python (Completo) - Testes automatizados no Next.js com Vitest e Playwright (Completo) - Curso de HTML e CSS (Completo) - Cutso de Knex.js Query Builder com JavaScript (Completo) - Curso de SQL com MySQL (Completo) - Padrões de Projeto, Design Patterns (Complet…

Cursos Gratuitos de Otávio Miranda

Fala Dev,

Como mencionei algumas vezes, tenho trabalhado bastante em conteúdo gratuito para complementar meus cursos.

E se você quiser aproveitar o fim de semana para aprender algo novo, aqui estão vários estudos completos e gratuitos:

@luizomf
luizomf / simple_password_generator.py
Created August 13, 2025 14:19
A simple password generator made in Python. It might work with api keys, secrets keys, etc.
def generate_password(
*,
unwanted_chars: str = "\"'\\@/",
lower_qtd: int = 3,
upper_qtd: int = 3,
digits_qtd: int = 3,
punctuation_qtd: int = 3,
) -> str:
"""
Simple password generator
@luizomf
luizomf / closures.py
Created August 1, 2025 00:13
Exemplos de closures no Python
#
# Closures em Python
#
# O que são closures?
# Closures ocorrem quando funções internas, definidas dentro de outras funções,
# referenciam variáveis livres do seu escopo. Variáveis livres são as
# variáveis que não foram definidas no escopo da função interna (são da função
# externa).
# Se a função externa retornar apenas a referência da função interna, então
# o interpretador precisará atrelar quaisquer referências a variáveis livres