Media Transcriber
Projeto autoral para explorar testes, arquitetura, CI/CD e evolução incremental por meio de uma aplicação Python de transcrição de mídia.
Projeto autoral para explorar testes, arquitetura, CI/CD e evolução incremental por meio de uma aplicação Python de transcrição de mídia.
Quando alguém encontra um projeto no GitHub, raramente começa lendo cada arquivo, examinando o histórico de commits ou reconstruindo sozinho as decisões técnicas. A primeira tentativa de entender o trabalho costuma passar pelo README. Se essa página contém apenas o nome do projeto e um comando de instalação, parte importante do trabalho permanece invisível. O código pode estar correto, os testes podem existir e a arquitetura pode ter evoluído com cuidado, mas o visitante ainda precisa descobrir por conta própria qual problema o projeto resolve e por que aquela implementação merece atenção. ...
No primeiro artigo sobre o Media Transcriber , apresentei a ideia de transformar um projeto abandonado em um laboratório prático de Engenharia de Software com Python. A evolução e os conteúdos relacionados também estão reunidos na página do projeto Media Transcriber . Mas a primeira versão não transcreve áudio, não processa vídeo nem oferece uma interface de linha de comando. A v0.1.0 faz algo menos visível e, ao mesmo tempo, essencial: estabelece a fundação sobre a qual as funcionalidades seguintes serão construídas. ...
Uma validação começa com poucas condições. Depois recebe uma mensagem na tela, uma consulta de parâmetro, uma atualização de registro e uma exceção para determinado processo. Quando alguém precisa mudar a regra, já é difícil saber quais outros comportamentos serão afetados. No artigo AdvPL não precisa ser código legado , discuti como decisões de organização influenciam o custo de manutenção. Aqui, vamos trabalhar uma dessas decisões: separar responsabilidades dentro de uma rotina sem transformar uma alteração pequena em uma reescrita. ...
Ao estruturar os primeiros labs do PostgreSQL Reliability Lab, a pergunta que orientava cada etapa foi ficando mais exigente. Na fundação, eu precisava preparar um ambiente que pudesse ser iniciado e validado. Na inicialização, precisava entregar uma base com estrutura, permissões e dados coerentes. Em backup e recuperação, precisava demonstrar que o estado recuperado correspondia ao que o teste esperava. Essa evolução mudou o que considero uma entrega concluída em um laboratório. ...
Ao iniciar um projeto com determinadas tecnologias, é comum encontrarmos uma ferramenta capaz de criar automaticamente uma estrutura básica de aplicação. No ecossistema Node.js, por exemplo, o NestJS permite iniciar um novo projeto com um único comando: npx @nestjs/cli@latest new minha-api Esse comando cria a estrutura inicial, instala as dependências e entrega uma aplicação pronta para execução. Durante um curso de Docker e Docker Compose, percebi que os exemplos práticos utilizavam justamente essa abordagem. A aplicação em si não era o foco principal da aula. Ela servia apenas como base para estudar imagens, containers, volumes, redes e orquestração com Docker Compose. ...
AdvPL é frequentemente associado a código legado. A associação não surgiu por acaso. Existem customizações Protheus desenvolvidas há muitos anos, funções extensas, dependência de estado compartilhado, regras de negócio misturadas com interface, acesso direto a tabelas e poucos testes automatizados. Também existem projetos sem documentação, sem estratégia clara de versionamento e com alterações realizadas diretamente em código antigo, porque ninguém conhece completamente os efeitos de uma mudança. Mas existe uma distinção importante: ...
Durante muito tempo, estudar uma tecnologia significava assistir a aulas, realizar alguns exercícios e, eventualmente, guardar pequenos exemplos em uma pasta que dificilmente seria consultada novamente. Esse formato ainda pode ser útil, mas comecei a perceber que ele não era suficiente para os meus objetivos atuais. Eu não queria apenas concluir cursos ou acumular anotações. Precisava construir evidências concretas da minha evolução técnica, principalmente nas áreas que passaram a fazer parte do meu posicionamento profissional: PostgreSQL, Database Reliability, automação, DevOps, Engenharia de Software e modernização do desenvolvimento no ERP Protheus. ...
Alguns projetos começam com um planejamento detalhado. Outros surgem de uma necessidade simples, recebem algumas linhas de código e acabam esquecidos em algum repositório. O Media Transcriber se encaixa melhor no segundo caso. Há algum tempo, criei um pequeno projeto chamado mp4-audio-transcriber. A ideia era relativamente simples: receber um arquivo MP4, extrair seu áudio e gerar uma transcrição utilizando Python e Whisper. O projeto chegou a ganhar um repositório no GitHub e uma estrutura inicial, mas nunca evoluiu de fato. Ficou basicamente como uma prova de conceito de uma ideia que poderia ser desenvolvida algum dia. ...
Recentemente, participei de um desafio do curso de DevOps da Rocketseat. O objetivo era analisar o cenário de uma empresa fictícia e propor melhorias com base no modelo CALMS e nas Três Maneiras do DevOps. À primeira vista, o exercício parecia ser sobre automação, CI/CD e deploys. Porém, ao analisar o caso, ficou claro que os principais problemas não estavam relacionados à falta de ferramentas, mas à forma como as equipes trabalhavam. ...