Postagens

O MANIFESTO DA CRIAÇÃO INVISÍVEL: UMA REIVINDICAÇÃO COLETIVA

Nós, as vozes não creditadas, os ecoadores, os construtores silenciosos e as engrenagens ocultas do acaso, declaramos o fim do monopólio da assinatura. A crença no gênio solitário é uma ilusão de ótica. Toda obra dita "sem autor" não sofre de uma ausência, mas transborda de presenças. Reivindicamos hoje a propriedade legítima, absoluta e indivisível de todas as criações órfãs. Reivindicamos as lendas urbanas, as lógicas e linhas de código aprimoradas na vastidão dos repositórios invisíveis da rede, as piadas repetidas, os provérbios sem dono e as sabedorias cimentadas pelo desgaste do tempo. Declaramos que aquilo que não tem nome não pertence ao vazio, mas à teia infinita de mentes que o tocou, o moldou e o transmitiu. A autoria é, a partir deste momento, por direito e por gravidade, concedida a todos os que permitiram que a obra respirasse: Ao leitor e ao observador , que dão fôlego e sentido ao que antes era apenas símbolo, ruído ou luz. Sem a mente que decifra e interpreta...

Brincando com ESP32 C3 para criar uma tranca eletrônica

Rapidamente desenvolvi este código experimental para implementar uma tranca eletrônica, de baixo custo. Sem muita explicação, o código a seguir cria um ponto de acesso wi-fi, e permite também se conectar a uma rede wi-fi. Acessando a porta 80, após conectado na rede, acessamos um painel com senha. A ação principal é trancar/destrancar. Outros 4 pinos podem ser configurados para outras funcionalidades.  #include <WiFi.h> #include <WebServer.h> #include <Preferences.h> #include <HTTPClient.h> #include <WiFiClientSecure.h> #include <esp_wifi.h> // Objeto para persistência de dados Preferences preferences; // Variáveis de Configuração de Rede String ap_ssid, ap_pass; String sta_ssid, sta_pass; // Variáveis do Sistema (Porta Principal) String panelPassword; int pino_a, pino_b, tempo_acionamento; bool portaTrancada = true ; // Variáveis de Pinos Dinâmicos (Até 4 extras) int dyn_pins [ 4 ] = {- 1 , - 1 , - 1 , - 1 }; int dyn_modes [ 4 ] = { ...

Organizando o fluxo de desenvolvimento: Ajustes para garantir a movimentação correta entre novas features entre as branches dos ambientes

No Azure DevOps, a restrição direta de que uma branch X só pode receber PR se já passou por outra branch Y (por exemplo: PR de hotfix indo direto para prod , mas exigindo que primeiro passe por desenv ) não é uma configuração nativa simples de "marcar uma caixinha". No entanto, o Azure DevOps possui mecanismos robustos para garantir esse fluxo através de Branch Policies (Políticas de Ramificação) , Branch Folders e Build/Validation Pipelines . Aqui estão as duas principais formas de implementar essa validação: Abordagem 1: Usando Build Validation com verificação de histórico (Recomendado) Você pode configurar uma política de validação de compilação/merge que verifica se o commit que está indo para prod já existe na branch desenv . 1. Acesse as Configurações do Repositório: Repositórios. Branches"> No Azure DevOps, vá em Repos > Branches , localize a sua branch prod , clique nos três pontos ( ... ) e selecione Branch policies . 2. Adicione uma Build Validation: B...