Cauan Cabral's
Versão estaticamente gerada do meu blog com Next.js .
pgModeler – gerando o seu binário
Tem algumas aplicações que são icônicas pra gente – por diversas razões – no meu caso, alguns destes são winamp, mIRC, Macromedia Flash MX, Amarok, Kompare, MySQL Workbench e Gitlab. Outro que conheci e me deixou admirado quando descobri foi o pgModeler, primeiro pela qualidade da aplicação em si que é o mais próximo do […]
Outras publicações
Dica Rápida: usando tipos “complexos” com Migrations no Phinx
Essa é uma dica bem curta e realmente rápida pra registrar algo que precisei pesquisar algumas vezes nos últimos anos e sempre me esqueço. Cena: você define uma tabela no seu projeto e gostaria de usar uma coluna com o tipo tsvector (como citei em posts recentes) ou então uuid. Você quer usar as funções […]
Next.js + Vercel + WordPress
Uso e trabalho com PHP há muitos anos e lá atrás as coisas eram bem complicadas – CMS era um palavrão que ninguém entendia muito bem como funcionava, as opções eram escassas e invariavelmente a gente caia no colo do phpnuke (ou aspnuke, dependendo do seu azar), que era terrível de customizar e estender. Até […]
Fulltext Search – Busca Textual com Postgres – Parte 3 (Final)
Encerramos aqui essa breve introdução sobre busca textual (fulltext search) com Postgres apresentando um plugin que pode te auxiliar (se você utiliza CakePHP + Postgres) na implementação da busca – caso não use, talvez sirva de inspiração para um fork. A história desse plugin vem lá de 2015 quando precisei incluir em uma busca que […]
Review: Sennheiser HD 350BT
Gosto muito de ouvir música, já me aventurei em aprender um instrumento musical (saudades meu contrabaixo que ficou em Campo Grande) mas estou longe de ser considerado um audiófilo ou especialista em fones. Dito isso, algumas experiências que tive com headphones e sistemas de sons me marcaram bastante. Uma vez testando um headphone BOSE com […]
Fulltext Search – Busca Textual com Postgres – Parte 2
Busca Textual com Postgres – Parte 2: Configurando seu banco de dados e criando implementando a busca.
Fulltext Search – Busca Textual com Postgres – Parte 1
O que é busca textual e qual a vantagem?
Git + GPG = Assinando suas contribuições
Guia rápido sobre por que e como assinar suas contribuições com git e gpg.
Aumentando espaço no Macbook Air 2012-2017
Quem utiliza o Macbook Air sabe como é (ou melhor, era) um bom custo-benefício para desenvolvimento e trabalho de escritório. A CPU é razoável, a bateria é excelente, a quantidade de memória é aceitável e o armazenamento é rápido. Seria perfeito se pudéssemos melhorar a memória RAM e o armazenamento com o tempo. Infelizmente, só […]
Dica Rápida: Migrando Aplicação CakePHP 3.x para 4.x
Embora tenha havido um grande esforço em manter o máximo de compatibilidade entre as duas recentes versões do framework, ao migrar uma aplicação de complexidade razoável encontrei várias dificuldades não tão bem documentadas. Pra me poupar passar por esses problemas no futuro, e talvez te poupar de dor de cabeça também, aqui vai um resumo […]
Coisas de Quarentena
Como todos sabem, estamos no meio de uma pandemia. Todos os países com algum governante sério tem enfrentado essa emergência sanitária incentivando, ou até mesmo, impondo quarentena entre sua população. Infelizmente, não é esse o nosso caso aqui no Brasil, onde o líder máximo da nação boicota diariamente qualquer tentativa de barrar o avanço do […]
Gitlab 12.1 e Dind 19.03: Resolvendo problema com conexão TLS entre CI e Docker Registry
Até a versão 12, o Gitlab CI conectava ao docker registry próprio usando conexão não segura (sem TLS) por padrão. Com a versão 19.03 do Dind (Docker-in-Docker), a conexão com o repositório passou a utilizar TLS por padrão. Do nada seus jobs começarão a falhar com alguma das mensagens abaixo: Para resolver isso, podemos desabilitar […]
Usando valores de ARG e ENV na construção de imagens Docker
Esse é só um lembrete pro meu eu do futuro. Para que uma variável definida no seu docker-compose.yml como args esteja disponível para seu Dockerfile e respectivos comandos (RUN/ENV), ele PRECISA ser enunciado no Dockerfile com o comando ARG. No caso de enunciar antes da expressão FROM, você PRECISA repetir o enunciado após o mesmo […]
Usando Docker para testar versões diferentes do MySQL
Recentemente assumi a tarefa de avaliar e otimizar algumas tabelas e queries que apresentavam perfomance muito diferente no PostgreSQL e no MySQL (versão bem antiga). Minha primeira suspeita foi justamente o fato do MySQL estar muito desatualizado. Para descartar ou confirmar essa suspeita, eu precisava rodar no mesmo hardware versões diferentes do MySQL – e […]
Qual o saldo de usar Docker no lugar do Vagrant para desenvolvimento?
Nos dois últimos posts falei um pouco do porquê e como fiz para gerar as imagens docker. Agora gostaria de compartilhar um pouco das vantagens que tenho visto nessa abordagem em relação ao Vagrant + VirtualBox. Reprodutibilidade Com o passar do tempo, a tendência é que as dependências de nossos projetos mudem, algumas coisas são […]
Como fiz o Gitlab gerar minhas imagens do Laradock
Já comentei diversas vezes que sou um usuário adito do Gitlab – como dizem por aí, desde quando tudo aquilo ali era mato. E um dos recursos que foram adicionados ao longo dos anos e eu mais utilizo é o de CI. Com ele consigo definir processos automáticos para testes, builds e deploy (esse, infelizmente, […]
Ambientes de desenvolvimento
Sempre que troco de computador me vejo pensando: será que hoje tem uma forma melhor (leia-se mais moderna) de configurar um ambiente de trabalho pra programador? No final de 2018 recebi um notebook novo para ser utilizado no trabalho e foi nesse contexto que minha saga começou. Desde que comecei a usar macOS como sistema […]
CakePHP 3 e Elasticsearch
Tanto o CakePHP quanto o Elasticsearch fazem parte da minha vida a alguns anos. No começo foi um pouco traumático – era preciso fazer chamadas via REST sem nenhuma abstração, utilizando curl ou streams. Hoje contamos com diversas camadas intermediárias para facilitar a integração entre ambos, como o cliente em baixo nível oficial e o cliente em alto […]
Todo ano começa sempre igual
Já tem um tempo que ensaio escrever algo aqui e a primeira coisa que vem a mente é: por que diabos eu só venho escrevendo 1 vez por ano e sempre no inicio do mesmo? Não sei exatamente o motivo – talvez seja o famoso efeito mágico do reinicio de nosso calendário, mas de qualquer […]
Entrando no mundo “enterprise”
Em Maio/2016 fiz uma mudança radical em minha carreira profissional – optei por sair de uma empresa que trabalha com PHP, CakePHP e outras tecnologias que faziam parte da minha vida desde pelo menos 2008 para embarcar em um projeto novo, com pessoas novas e tecnologias completamente novas para mim. Passei desde então a trabalhar com […]
De “webmaster” a “fullstack”
Num passado remoto, tínhamos o (D)HTML, Frontpage, Macromedia Flash, Fireworks, banco de dados MySQL junto ao ASP ou PHP. Tudo era novidade. Nem tudo funcionava. Duas categorias de trabalho surgiam: o webmaster e o webdesign. Cada um no seu quadrado, trabalhando com ferramentas bem delimitadas. Os anos foram passando, o mundo evoluindo e novas novas […]