Hello World!
Once upon a time...
Oi gente! Provavelmente vocês não me conhecem ainda, então vou me apresentar. No presente momento (MAR-2026) sou um estudante no último período de ciência da computação. Já sobrevivi às piores coisas do curso e agora o que me resta para pegar meu canudo é apenas apresentar meu TCC (e ser aprovado, claro).
Estou escrevendo este post e o código da engine dessa página concomitantemente, então por que não explicar um pouco deste processo enquanto procrastino um pouco?
Engine do blog
Primeiramente, se você é uma pessoa ligada ao mundo open source, pode ter percebido que essa página se parece estranhamente demais com páginas derivadas do projeto Hugo, mais especificamente com o Hextra theme. Sim, eu me inspirei bastante visualmente nesses trabalhos, pois não creio que um blog precise reinventar a roda e, mesmo que precisasse, não seria feito por mim, já design UI/UX não é um ponto forte em mim.
Você pode estar confuso e se perguntar: "hmm, se você se inspirou tanto assim nesse projeto, por que não apenas usou essa ferramenta logo de uma vez, já que já é um projeto pronto e funcional?". Muito justo. A resposta é: porque usar software open source não é algo para se colocar na aba de projetos no portfolio (btw, voce pode acessá-lo em heliohsilva.dev) rs. Não acho que vou conseguir fazer um trabalho melhor que o projeto Hugo, e esse nem é meu objetivo no momento. Fazer algo funcional, leve e customizado para e por mim é o suficiente. Como bônus ainda aprendo várias coisas novas, já que não sabia sequer como funcionava uma engine geradora de páginas estáticas antes de começar esse projeto.
Dito isso, basicamente esta engine foi construída em javascript. Por que javascript? Porque acredito que todo dev hoje em dia, mesmo com o advento da era da AI, precisa saber escrever javascript e o meu está deveras enferrujado. Alem disso, é de fácil manutenção, é compatível com absolutamente tudo, principalmente com HTML, que é o principal fator para uma engine de sites estáticos. É o mais performático? Com certeza absoluta não. Mas para este escopo de projeto é mais que suficiente.
Como funciona?
Eu escrevo o texto em um editor markdown qualquer de minha preferência (no momento estou variando entre 2: Obsidian e o frankMD, dependendo do meu humor), então faço push no repositório do github. O repositório está com uma esteira de CI configurada para 1- executar a engine; 2- fazer deploy do site estático.
Na etapa da engine, ela vai ler os metadados (título e data) e listar cada post no index.html no período correto. Então vai fazer o parse de Markdown para html, inserir o output em um template com a navbar, o footer e a estrutura de metadados padrão do html, criando assim uma página estática do texto já formatada da forma que eu defini.
Por que eu criei isso?
Bom, tem alguns motivos muito claros. Para muitos, nenhum deles justifica o trabalho, mas eu tinha muito tempo livre. São eles:
1- Enciclopédia de conhecimentos adquiridos que podem ser esquecidos com o tempo
Nós seres humanos aprendemos coisas o tempo todo, sem sequer pensarmos a respeito. O problema é que a maior parte das coisas que aprendemos fica na nossa memória de curto prazo (Short-term Memory). Isso significa que em segundos, minutos ou no máximo algumas horas, toda aquela informação terá evaporado do seu cérebro. Como fazer com que aquela informação fique presa no seu cérebro? Basicamente temos que, de alguma forma, transferirmos essa informação para nossa memória de longo prazo (Long-term Memory). A memória de longo prazo pode durar somente algumas horas, bem como pode permanecer com você durante toda a sua vida sem esvair-se.
Dado isso como princípio, mesmo sendo bastante trabalhoso aprender uma coisa, se você não exercitar aquilo o tempo todo, pode um dia precisar desse conhecimento e não tê-lo mais. Foi pensando nisso que criei isso como um "backup" para alguns conhecimentos. Veja, não quero criar um sistema super complexo e acumulador, como fez Gordon Bell com o projeto My Life Bits, mas gostaria de manter um registro de como eu fiz alguma coisa que possa vir precisar de manutenção no futuro, e que não tenha uma boa documentação (afinal, projeto pessoal não precisa disso né rs) por exemplo.
O ponto é: Se eu aprendi algo legal e que um ser humano um dia possa vir precisar aprender também (mesmo que seja eu), posso compartilhar isso em uma forma documental ao passo que descrevo as pequenas diversões do processo.
2- Learning by teaching
Existem diversas técnicas usadas para aprender um conteúdo, como - mas não se limitando a - assistir uma videoaula, ler um artigo, praticar (learning by doing) e, o meu favorito, o learning by teaching. Em uma tradução livre, seria "aprendendo ensinando". Essa técnica foi popularizada pelo físico Richard Feynman através do que ficou conhecido como "O método Feynman".

Se trata da técnica de aprender algum conteúdo através do ensino daquele conteúdo para outra pessoa. Parece confuso e contraditório pensar em ensinar algo sem sequer saber, mas essa é uma técnica que funciona para o jeito como eu estudo conceitos e coisas teóricas. Isso me ajuda a assimilar aquele conhecimento através de analogias com outras coisas de campos de estudo completamente diferentes. A ideia é estudar até que seja fácil explicar aquele assunto para uma pessoa que não sabe absolutamente nada sobre ele. Quanto mais fácil for criar analogias que ajudem essa outra pessoa a absorver o conceito, teoricamente melhor é o seu domínio sobre esse assunto.
Depois de todo esse disclaimer e explicação de nomenclaturas, posso concluir meu ponto. Fato é que uma das técnicas que eu uso para assimilar conhecimento é tentar ensinar isso para outras pessoas, principalmente aquelas que não entendem o que eu estou falando. Um dos motivos pelos quais eu quero escrever um blog é justamente aprender através do compartilhamento de conhecimento. Não pretendo alcançar pessoas não técnicas com meus artigos, afinal deve ser um porre qualquer ser humano médio ler nerdices que um nerd escreveu, mas a ideia é que uma pessoa minimamente técnica e curiosa consiga entender as abobrinhas que sairem da minha cabeça escritas por aqui.
3- Porque sim
Ademais, isso é para ser um side project eterno para que eu consiga compartilhar projetinhos ou ideias que não vão para portfolio, além de ter um lugar para escrever sobre meus hobbies (que a propósito se resumem em tech, teclados mecânicos, carros, música e jogos). A ideia é que esse blog, por mais simples que seja, me acompanhe durante minha carreira toda, e que no fim eu tenha um registro da minha vida, de coisas que eu fiz em diferentes momentos dela, quais foram meus hobbies em diferentes épocas, como minha carreira evolui, enfim.
Então, resumindo, minhas motivações são: aprender, ensinar, ter um registro do processo das coisas. That's all, folks!!
Por que diabos DevGOnic?
Sei lá. Não sou bom com nomes. Pensei em fazer algum trocadilho com o nick que uso em todos os lugares, heliohsilva, mas não consegui pensar em nada decente. Então comecei a olhar para minhas preferências em tecnologia. Minha linguagem favorita do momento é Go. Go tem um framework para desenvolvimento web fantástico chamado Gin Gonic. Uma coisa leva à outra, então... é, devgonic.
Conclusão
Era isso que eu tinha para falar nesse post introdutório. Se algum visitante real acessar isso, divirta-se. Senão, espero que eu me divirta de qualquer forma.
Bebam água!