Python: Como injetar código num processo em execução

Resposta curta: pyrasite

pip install pyrasite
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
pyrasite <pid> dump_stacks.py
pyrasite-shell <pid>
Utilizando pyrasite para injetar código num console Python
Utilizando pyrasite para injetar código num console Python
Continuar lendo Python: Como injetar código num processo em execução

Pontos a considerar em uma revisão de código

Code review do GitHub

A revisão de código é um processo importante do desenvolvimento de software. Outras pessoas olhando para o código ajudam a identificar falhas que passaram desapercebidas ou melhorias que poderiam ser implementadas.

Segue uma lista de itens que considero importantes e me guio ao fazer uma revisão de código:

Continuar lendo Pontos a considerar em uma revisão de código

Dicas rápidas Git

  • Como editar um commit específico 
git rebase -i '50defb6^'
# Alterar pick para edit no commit a ser alterado
# Fazer as alterações desejadas
git commit --all --amend --no-edit
git rebase --continue
git rebase -i
git rebase -i
  • Como desfazer o commit mais recente (uncommit)
git reset --soft HEAD^
  • Como adicionar alterações ao commit mais recente
 git commit --amend
  • Melhorar o git log
$ git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'"
$ git lg
git lg, um log melhorado
  • Como adicionar ao stage apenas pedaços de um arquivo
git add -p
git add -p
  • Como puxar uma branch juntando todos os comitts num só
git pull --squash origin <branch>

Dicas rápidas MongoDB

  • Como filtrar e atualizar elementos de um array
// Atualiza para 'Python' todas as tags que o atributo 'nome' seja igual 'Phyton'
db.collection.updateMany(
    {},
    {'$set': {'tags.$[tag].nome': 'Python'}},
    {arrayFilters: [{'tag.nome': 'Phyton'}]}
)
  • Como atualizar nomes de campos de todos documentos de uma collection
db.collection.updateMany({}, {$rename: {'campo_antigo': 'campo_novo', 'segundo_campo_antigo': 'segundo_campo_novo'}})
  • Como filtrar pelo tamanho de uma string
db.collection.find({"$expr": {"$lte": [{"$strLenCP": "$FIELD"}, 4]}})
  • Como atualizar um campo de todos documentos com a data atual
 db.collection.updateMany({}, {$set: {FIELD: new Date()}})

Como extrair arquivos tar

Como extrair

.tar.gz ou .tgz

tar -zxvf arquivo.(tar.gz|tgz)

.tar.bz2

tar -jxvf arquivo.tar.bz2

.tar.xz

tar -Jxvf arquivo.tar.xz

O que é cada opção

-x, --extract, --get
    extrai arquivos

-v, --verbose
    verboso

-f, --file
    arquivo

-z, --gzip, --gunzip --ungzip
    para arquivos gzip .gz

-J, --xz
    para arquivos .xz

-j, --bzip2
    para arquivos bzip2 .bz2