
Mudanças! 😊
Tabela de Conteúdos
Durante muito tempo não escrevi neste blog. Olhando para a última entrada dá para perceber que já lá vão mais de 2 anos. E mesmo assim foi um post minúsculo , apenas uma coisa rápida para dar os parabéns à cara metade.
A verdade antes de voltar a escrever regularmente decidi que tinha que reformular o site e a forma como produzo conteúdos. Este blog começou por ser - ainda em 2006 - uma coisa alojada no Blogger1, passou a domÃnio e alojamento próprio em 2007 e assim se tem mantido desde então. Até hoje.
Hoje fecho definitivamente o uso do Wordpress e passo a usar um gerador de páginas estático.
Porquê a mudança? #
A substituição de Wordpress acontece por algumas razões:
- Reduzir/eliminar a possibilidade de ataques ao servidor. Com Wordpress - e plugins e temas - é relativamente fácil deixar um update por fazer e termos uma porta de entrada. Para o evitar é necessário ter os updates em dia e ter absoluta garantia que os plugins que estão a ser usados vêm de fontes fidedignas. Infelizmente mesmo com estas precauções, uma vez que o blog tem um login/password, pode dar-se o caso de alguém adivinhar a password usada e conseguir acesso a tudo.
- Reduzir ao máximo a latência no acesso ao site. A utilização de uma plataforma que gera o seu conteúdo em páginas estáticas - como Jekyll, por exemplo - é uma excelente opção para sites como blogs pessoais e páginas de entrada.
- Passar a ter total controlo sobre o conteúdo. É verdade que tinha controlo sobre o conteúdo mas não sob a forma. O que quero dizer é que, daqui a uns anos, se quisesse aceder ao texto e/ou comentários, sem ter acesso a uma instância de Wordpress, precisaria de aceder à base de dados, conhecer o seu modelo de dados e conseguir extrair a informação. Com uma plataforma tipo Hugo, todo o texto do blog é escrito em ficheiros de texto Markdown2. Tenho a certeza que daqui a 20 anos, conseguirei aceder ao conteúdo dos ficheiros, independentemente do tipo de computadores ou sistemas operativos existirem na altura.
- Depois de ter todo o conteúdo migrado, o objectivo passa por ter o mesmo arquivado/gerido via Git3, no caso no meu servidor de casa.
- Possibilidade de ter conteúdo bi-lingue. Isto era possÃvel em Wordpress mas não facilmente implementável. Com uma plataforma como Hugo, apenas tenho que me preocupar em escrever o conteúdo duas vezes: 🇵🇹 e 🇬🇧
- Porque queria aprender algo novo fora daquilo que é o meu dia a dia normal.
O que é Hugo e porquê Hugo? #
A primeira coisa que precisa de ser dita é que a escolha da plataforma não foi feita por causa do seu nome. Eu sei que é uma tremenda coincidência, mas não, não escolhi a plataforma por o meu filho também se chamar Hugo. Nesta casa ainda se respeita a meritocracia. 😄
Hugo, é um gerador de páginas estáticas escrito em Go. É super rápido, super flexivel e usado por muitas grandes empresas.
Escolhi Hugo porque, para além de me dar tudo aquilo que listo acima, permite-me aprender (iniciar será a palavra mais correcta) um pouco em Go
. Go
é uma linguagem de programação desenhada pela Google
no qual o Hugo foi implementado. Usar uma framework desenvolvida numa linguagem que tenho curiosidade em “brincar” permite juntar o melhor de 2 mundos.
Para além da rapidez já mencionada, escolhi Hugo também pelo vasto suporte disponÃvel na comunidade e a relativa facilidade em incorporar processos de CI/CD4 para automatizar a publicação de novos posts no blog, algo com que queria brincar há muito muito tempo.
No entanto não há bela sem senão e o uso de uma ferramenta deste género traz alguns… err… constrangimentos:
- A necessidade de usar programas via linha de comandos - aqueles ecrãs pretos com letras brancas ou verdes que costumam ver nos filmes com mais de 20 anos - hoje os ecrãs já não são pretos nem verdes e até podem ser agradáveis à vista.
- Cada alteração ao blog tem que ser acompanhada por dois novos processos - um a re-geração do site propriamente dito e outro o envio da informação gerada para o site para ficar disponÃvel para que o vejam.
- Publicação com datas futuras - imaginem uma entrada que eu sei que só quero que seja publicada no dia depois de amanhã mas que já está pronta. Em Wordpress só tinha que colocar qual o dia eu queria que a publicação ficasse disponÃvel. Em Hugo é um pouco mais complicado, mas possÃvel.
O que mudou? #
À primeira vista tudo isto parece muito trabalho para pouco ganho.
Afinal qual a piada de continuar a escrever um blog que poucos lêem (numa altura em que cada vez mais as redes sociais fazem tudo em seu poder para garantir que os utilizadores não saem das mesmas)?
A minha resposta continua igual hoje à que dei quando há mais de 15 anos criei a primeira entrada no blog, na altura alojado no blogspot: eu quero ter todo o controlo sobre os meus conteúdos e não delego essa responsabilidade a ninguém. Publicar coisas para os facebook’s, instagram’s, twitter’s ou tik-tok’s da vida é duplamente errado. Por um lado estamos a criar conteúdo de borla para plataformas que já têm montes de poder (e dinh€iro) e por outro ficamos à mercê da decisão dos donos dessas plataformas para fazer ouvir (ou ler) a nossa voz, já que facilmente podem considerar o nosso conteúdo ofensivo e retirar-nos a palavra. 🙊
Do ponto de vista estético, o novo blog tem um novo tema, mas isso era algo que mudava regularmente com Wordpress. Todo o conteúdo foi exportado de Wordpress e migrado para markdown. Os comentários também foram exportados e adicionados a cada entrada - alguns estão duplicados, resultado de algures neste anos todos ter usado diferentes formas de comentários… Apesar de ter trazido os comentários do Wordpress, não será possÃvel adicionar novos comentários (pelo menos para já). E também não terei que me preocupar com os comentários que aprovo e que rejeito - e sim, há muita coisa má (e muita coisa péssima) a parar na caixa de comentários que tem que ser limpa e apagada.
Durante o processo de migração, abri e confirmei todas as entradas do blog antes desta (ver no arquivo). Encontrei muitas imagens em falta que não consegui nem conseguirei recuperar. Encontrei também muitos vÃdeos do Youtube que deixaram de estar disponÃveis. O mesmo para tweets linkados ao longo dos anos. É o custo a pagar por linkar informação que não está alojada aqui - os outros mudam, alteram ou apagam e quem linka para eles fica com uma ligação perdida.
Espero que o site seja bem mais rápido - não sei porquê mas a velocidade em Wordpress era… meh… fraquinha - e espero começar a escrever conteúdo também em inglês. Provavelmente será apenas conteúdo técnico na minha área de expertise. O objectivo não é ter um blog bilingue, mas sim um blog maioritariamente em 🇵🇹 e com alguns conteúdos disponÃvel em 🇬🇧.
Nesta fase também retirei o tracking que fazia e que me permitia saber coisas como, quantos visitantes tive num dia ou num intervalo de tempo, de onde vinham, que sistema operativo ou que browser usam, etc. O que usava no Wordpress era o Google Analytics, mas como estou a reduzir a minha dependência da Google não quero contribuir para a colecta de dados deste gigante da publicidade, ajudando a coletar dados em nome destes. Se decidir alguma vez re-activar este tipo de funcionalidade usarei uma solução self-hosted em que eu - e apenas eu - tenha acesso aos dados.
E agora? #
Agora, será o mesmo de sempre.
Quando me apetecer escrever aqui, assim o farei. O meu processo de escrita ficou mais simples. Escrevo um ficheiro de texto, com algumas notações especiais, faço commit do mesmo para o meu repositório e o blog é actualizado automagicamente.
Espero que gostem do novo look.
Se encontrarem algo bug ou erro não hesitem em comentar avisar via e-mail.
Blogger é a plataforma da Google para alojar blogs. Outrora muito usada, caiu em desuso também motivada pela mudança provocada pela ascenção de diferentes redes sociais. ↩︎
Markdown é uma linguagem simples de notação para criação de conteúdos usando ficheiros de texto. ↩︎
Git é um sistema distribuido de controlo de versões de ficheiros. ↩︎
CI/CD significa “continous integration/continous delivery” e é usado em engenharia de software como uma forma de acelerar os desenvolvimentos e garantir as o deployment em produção desses mesmos desenvolvimentos. ↩︎