ferbass

Criando minha "engine" de blog (parte 1)

Bom como comentei no post anterior, resolvi ressucitar as coisas por aqui.

Tirei o blog do Medium e decidi que iria montar algo meu.
Por que? Porque sim! haha Brincadeira

Vamos lá

Existem milhares de opções de blog engine na internet desde open-source até ferramentas pagas, isso não é novidade. Algumas mais famosas como Wordpress e algumas outras bem mais simplificadas.

Eu mesmo já usei/tendei algumas engines, como Wordpress, Jekyllrb e alguma outra que não me lembro o nome. Ao mesmo tempo já hospedei meu blog desde a Locaweb, Heroku, Github Pages e por último acabou sendo no Medium.

Algums pontos que eu gostaria de falar das plataformas que usei(NA MINHA OPINIÃO):

Mas então?

"Mas então?", vocês devem estar se perguntando, "se em todos os casos citados as engines serviram para você por que resolver montar a sua?" ou "mais uma engine?"

A resposta não é tão simples mas vou fazer um breve resumo aqui.

Para quem não sabe, eu estou morando no Japão a alguns anos e desde então tenho trabalhado basicamente com R&D para iOS, Android e BLE Devices.
Na verdade eu tenho colocado muito pouca coisa em produção, eu fico só ali entre reuniões, fazendo algumas pesquisas, lendo documentações intermináveis, fazendo algumas POCS, as vezes uma lib interna, escrevendo algumas documentações alguns documentos com os resultados das pesquisa, até uma patent eu registrei e você pode ver aqui Control method of terminal device.

As vezes tenho alguma coisa ou outra de server side para dar uma manutenção etc, mas nada de outro mundo. Recentemente tenho trabalhado com algumas coisas de cryptografia comunicação bluetooth, tenho feito muita coisa com hardware (arduino e similares) todos eles voltados a testes com Bluetooth, trabalhos bem interessantes, pena não poder dar muitos detalhes.

O trabalho é muito legal, eu não tenho o que reclamar. Mas eu fui me afastando de desenvolvimento web, serverside etc. Todas as tecnologias da moda para que estão por ai estão no meu radar porque leio e converso com alguns amigos, mas nada disso tem feito parte do meu dia-a-dia. Para não mentir fiz algumas coisas internas com Kubernetes mas bem básico, mas hoje ja estamos pensando em simplificar isso quando tivermos um tempo livre.

Ou seja, resolvi criar essa pequena "engine" também como um exercício, para manter um pouco minha prática com web. Acredito fortemente que isso não vai virar um open-source haha, quem sabe, mas o que estou fazendo é algo bem simples, particular, para resolver um problema que não tenho :P. Eu poderia pegar qualquer engine que citei acima, hospedar em qualquer host ou Github Pages, seja lá o que for e então seria só voltar a escrever. Mas novamente, resolvi criar algo meu, para talvez quem sabe me motivar a escrever mais e gerar algum conteúdo que preste.

Um pouco sobre a "engine"

Sem mais delongas vamos falar por cima sobre essa gambiarra, não tem rocket science aqui, é tudo bem simples.

Eu estou usando o bom e velho Sinatrarb como base para meu webserver, poderia usar Rails? Hanamirb? "Coloque o nome do seu framework favorito aqui" ? outra linguagem? Deno 🔥?

A resposta é simples: SIM

Mas vamos a alguns pontos:

Bom dito isso, quero dizer que sempre gostei muito do Sinatrarb, talvez eu nunca tenho prestado atenção, mas sempre achei a comunidade em volta bem de boas, sem muito barulho como em outras por ai. Além de ser bem leve com poucas dependências e simples para se trabalhar. Não tem setup, para que não conhece ou nunca usou recomendo fazer um "Hello world" para ver como ele funciona.

No meu caso por enquanto está tudo bem simples e na verdade pretendo deixar tudo o mais simples possível.

O arquivo principal do projeto conta apenas com 2 rotas (home e post). Criei uma rake task para criar um novo post que vai gerar o arquivo markdown e também aproveito e faço append de um Hash em arquivo json onde mantenho todas as informaçøes dos posts (title, created_at, url, published, tags), como se fosse um "database".

Eu tenho bastante trabalho para fazer ainda, localizar por tags, gerar uma rota para isso, talvez eu tenha problema com esse arquivo json no futuro. Mas como está tudo bem no começo vou focar em deixar o básico funcional.

Por enquanto sem muitos detalhes mas vamos falar mais no próximo post.

E onde eu estou hospedando isso?

Bom aqui eu resolvi inventar um pouco de moda, eu estou usando o Google Cloud, para ser mais exato o App Engine.

Já tem alguns anos que estou colocando a mão no Google Cloud, aqui na Drivemode nós utilizamos o Google Cloud para nosso site, api e também para data, antes de vir para cá eu trabalhei muito com AWS mas acabei gostando do Google Cloud. Tem seus problemas lógico mas resolvi utilizar ele para deixar meu blog, minha decisão foi tomada pela familiaridade que tenho tido com a plataforma no meu dia-a-dia.

Outro ponto importante, estou com crédito de 300 dolares na plataforma (bora gastar), na verdade acredito que todo mundo receba esse credito para fazer um trial. Esses creditos expiram em 1 ano ou se você gastar tudo antes você começar pagar. Porém existe uma cota gratuida quando você está usando o standard environment, no meu caso eu estou usando o standard enviroment para ruby.

Para saber mais sobre como é feito a cobrança do App Engine e cotas gratuitas https://cloud.google.com/appengine/pricing?hl=pt-br

SSL?

- Temos!

Estou usando letsencrypt, não preciso falar muito sobre isso

E o layout?

Bom aqui temos um problema dos grandes!

Sou péssimo em CSS, paleta de cores e seja la o que for em questão de Web design, frontend etc.

"AAAAh mas tem o Bootstrap!"

- ι(`ロ´)ノ NÃO, não vou usar o Bootstrap!

Como minha ideia é manter tudo simples, por agora tenho apenas 2 arquivos css.

Um que vai cuidar do layout geral do site e outro que é uma replica do css que o github para o Markdown, você pode conferir aqui, mas pretendo mudar isso em breve e ficar apenas com a parte que faz referencia ao code syntax.

Não tenho nada de JS, caso eu venha utilizar seria por conta dos comentários, porque ai não tem muito para onde fugir. Eu não vou dar o louco de querer resolver esse problema por mim mesmo. Provavelmente eu coloque o DISQUS, mas por agora caso queira comentar sobre o blog me manda no Twitter

Resumindo

Essa primeira parte foi para contar um pouco sobre essa minha idéia louca, pode ser que eu desista disso na semana que vem e não exista uma segunda parte desse post haha. Estou trabalhando nisso um pouco cada dia, como estou full time home office no momento, reservei uma hora por dia para brincar com isso, tenho tentando passar cada vez mais tempo longe do computador durante meu tempo livre (a vida é muito curta cara) então por isso o progresso pode ser bem devagar.

Espero que gostem dessa ideia, aceito sugestões e criticas no Twitter, podem me chamar de louco, falar que estou reinventando a roda, mas como falei acima, eu estava querendo colocar a mão na massa em alguma coisa paratica web apenas para me "exercitar". Porém eu não vou sentar na frente do computador e ficar criando side projects que nunca vão para frente, quis criar algo que realmente estou usando. Essa merda "engine" vai ser usada em outro blog mas nesse caso em Japonês que estarei montando em breve.

Grande abraço

By ferbass - Tue, 19 May 2020 22:01:36