Skip to content

Instantly share code, notes, and snippets.

Avatar

Herberth Amaral herberthamaral

View GitHub Profile
@herberthamaral
herberthamaral / audio_thread.py
Created Mar 24, 2020
Simulação de escuta de microfone e geração de comando latex usando threads
View audio_thread.py
import queue
import random
import threading
import time
def ouvir_microfone(fila_comandos: queue.Queue) -> None:
# Função produtora da fila
# Esta função simula alguém ditando comandos no microfone, colocando na
# fila de comandos o que foi dito. Gera um comando a cada 5 segundos.
@herberthamaral
herberthamaral / README.md
Last active Mar 24, 2020
Caso de uso e implementação básica
View README.md

Pequeno exemplo de estória de usuário (user story) com implementação

Algumas observações a respeito dos arquivos deste gist:

  1. O arquivo Python pode ser executado diretamente para que os testes dentro dele sejam executados;
  2. Por questões de simplicidade, optou-se por deixar o código de produção junto com o código de testes, mas isso não é recomendado em um projeto real -- os dois tipos de código devem ficar separados;
  3. Também por questões de simplicidade, um framework de BDD (como o python-behave) não foi utilizado;
  4. Apenas os dois primeiros cenários foram implementados;
  5. A forma normal de utilizar o unittest é criar uma pasta tests e colocar todos os arquivos lá e utilizar o comando python -m unittest como consta na documentação [1].
@herberthamaral
herberthamaral / nats_to_sse.py
Last active Mar 24, 2020
Listen to a nats topic and write to a HTTP client listening via server-sent-events
View nats_to_sse.py
import asyncio
from typing import AsyncGenerator, Dict
from fastapi import FastAPI
from nats.aio.client import Client as NATS
from nats.aio.client import Msg
from starlette.requests import Request
from starlette.responses import StreamingResponse
app = FastAPI()
View fizzbuzz.py
import unittest
def fizzbuzz(num):
retorno = ''
if num == 0:
return retorno
if num % 3 == 0:
@herberthamaral
herberthamaral / troco-dojo.py
Created May 17, 2018
Dojo cujo problema é o do mínimo número possível de moedas de um troco
View troco-dojo.py
def troco(valor):
retorno = {50: 0, 25: 0, 10:0, 5: 0, 1: 0}
while valor >= 5:
if valor >= 50:
retorno[50] += 1
valor = valor - 50
elif valor >= 25:
retorno[25] = 1
valor = valor - 25
elif valor >= 10:
@herberthamaral
herberthamaral / debug-server.py
Created May 16, 2018
A simple (even lacking) web server for debugging clients (yes, really).
View debug-server.py
import json
from werkzeug.wrappers import Request, Response
@Request.application
def application(request):
print('HEADERS:')
for header, value in request.headers.items():
print('{header}: {value}'.format(header=header, value=value))
print('CONTENT:')
View keybase.md

Keybase proof

I hereby claim:

  • I am herberthamaral on github.
  • I am herberthamaral (https://keybase.io/herberthamaral) on keybase.
  • I have a public key ASB1HmxiGMufY0PlmTyzmFkHKm6Z1Vz65loVAmN47-Y5zAo

To claim this, I am signing this object:

View apresentacao-org-mode-e-gtd.org

Revisão do GTD

Processo para organização pessoal

É basicamente um gerenciamento de listas que você confia

Listas “padrão”: Inbox, Próximas ações, Projetos, Talvez um dia, Delegado

Você pode ter mais de um inbox (caderno, keep, etc)

Você pode ter mais listas… essas aí são as default

Agnóstico em relação a ferramentas

org-mode, caderno, BulletJournal, google – tá valendo :-)

@herberthamaral
herberthamaral / init.el
Last active Feb 23, 2018
Meu arquivo de config do emacs
View init.el
;; -*- coding: utf-8 -*-
;; custom
;; Atenção: não esquecer de setar a variável HOME do windows para a
;; pasta home do usuário. Caso contrário o "~" não será reconhecido.
(setq frame-title-format "emacs do amaral")
(tool-bar-mode -1)
(scroll-bar-mode -1)
(set-default 'cursor-type 'hbar)
View id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpbrzA0XGgUmtTTAmEXxMjAj7B+lkW4e2KkPGcmP2u4bYehH/1axdTaAf6HYKcMDv65aJIN8Qz/zp0b6zNb5mwptPNa3f9LrEZ2zT0agPZCgRX71AUunp9WhNazz48uPyWCYRw9BIQzNHyJFMIlnjwCwpwZu/qBMZWHu9EBQ3UOHqfdUzf2mw0/8UASFnGduLGbY7kSDMxX3NBDN6zLsYBKBVJyz+bszdWi3QXLNcDLVqqh0sOi16FTHZJzsjFnf+K6JNRQGeMMsisyZX1E2TSFBm+slJYzW2zdqGuOjnDsGQyZ9Uv+m0oJ+t29cMiTwOKcURI64U3LSSTm0oCLHaj
You can’t perform that action at this time.