Davi Alexandre https://davi.dev/ Recent content on Davi Alexandre Hugo -- gohugo.io en-us Davi Alexandre Wed, 13 Jan 2021 18:45:43 -0300 Using emoji as icons on Trilium Notes https://davi.dev/post/emoji-icons-on-trilium-notes/ Wed, 13 Jan 2021 18:45:43 -0300 https://davi.dev/post/emoji-icons-on-trilium-notes/ I’ve recently started using Trilium Notes as my note-taking/knowledge-base application. It’s not the best looking application of this type out there, but since it’s quite flexible in terms of customization there’s a lot we can do to make it look better. Trilium displays notes in a hierarchical tree on it’s side bar. Each item has an icon and this icon can be customized via the #iconClass attribute inside each note . Book Review: Test Driven Development by example https://davi.dev/post/review-test-driven-development-by-example/ Sun, 02 Feb 2020 13:25:17 -0300 https://davi.dev/post/review-test-driven-development-by-example/ I’ve had this book on my bookshelf for around 6 years, but for some reason, I’ve only decided to read it this year. I’m not sure why it took this long. But I’m happy I waited all this time, as I feel like I wouldn’t have had the same experience 6 years ago. Most developers I know tend to focus too much on HOW they do something, but they rarely think about the WHY. Book review: Modernizing Legacy Applications in PHP https://davi.dev/post/review-modernizing-legacy-applications-in-php/ Sun, 12 Aug 2018 22:20:55 -0300 https://davi.dev/post/review-modernizing-legacy-applications-in-php/ I’ve read dozens of technical books and almost all of them suffer from the same problem: lack of real-world examples and a feeling that if you apply every concept and technique described in them you will end up with a perfect piece of software. Today, I am happy to say that “Modernizing Legacy Applications in PHP” is a rare exception to this. Developers often think that the best way to fix legacy applications is by simply rewriting it from scratch. 1000 Days of Duolingo https://davi.dev/post/1000-days-of-duolingo/ Sat, 07 Jul 2018 23:32:02 -0300 https://davi.dev/post/1000-days-of-duolingo/ A couple of days ago, on July 4th, I’ve reached a 1000 days streak on Duolingo. During this period, I’ve completed the entire trees for English, Spanish, German and Esperanto, as well as I’ve done some of the exercises in few other courses like Japanese, Irish, Norwegian, Klingon, and others. I’d like to share how I did that, what I’ve learned during the process and if it was worth at all. AttributesBackupBehavior extension for the Yii Framework https://davi.dev/post/attributesbackupbehavior-extension-for-the-yii-framework/ Fri, 13 Jan 2012 03:57:09 +0000 https://davi.dev/post/attributesbackupbehavior-extension-for-the-yii-framework/ Sometimes, when using ActiveRecord, we need to know if some attribute value has changed after it was loaded from the database. To make things easier and avoid duplicated code, I created this behavior to help me with this task. Basically, what it does is to make a copy of all attributes values from the object, right after it is loaded from the database, so the behavior can work with this original values to know if any of them was changed. Trabalhando com contadores utilizando o ActiveRecord no Yii Framework https://davi.dev/post/trabalhando-com-contadores-utilizando-o-activerecord-no-yii-framework/ Fri, 02 Dec 2011 16:36:47 +0000 https://davi.dev/post/trabalhando-com-contadores-utilizando-o-activerecord-no-yii-framework/ Vamos supor, por exemplo, que você está desenvolvendo um blog ou algum outro tipo de CMS e quer registrar o número de vezes que cada post foi acessado (talvez para mostrar uma lista dos mais visitados). A maneira mais fácil de fazer isso é adicionar uma coluna na tabela de posts, que será utilizada para armazenar o número de visitas para aquele item. Cada vez que um post for exibido o valor dessa coluna será aumentado em 1. Working with counters using the ActiveRecord in Yii Framework https://davi.dev/post/working-with-counters-using-the-activerecord-in-yii-framework/ Fri, 02 Dec 2011 02:04:43 +0000 https://davi.dev/post/working-with-counters-using-the-activerecord-in-yii-framework/ Let’s say, for example, that you are developing a blog or some kind of CMS and you want to track the number of times each post was viewed (maybe to show a list of the most viewed ones). The easier way to do that is by adding a column to the post table, which will be used to store the number of visits of that item. Each time the post is displayed the value of this column will be increased by 1. Backup simples com Incron+rsync+Dropbox https://davi.dev/post/backup-simples-com-incronrsyncdropbox/ Wed, 31 Mar 2010 03:05:40 +0000 https://davi.dev/post/backup-simples-com-incronrsyncdropbox/ Eu ja perdi um HD cheio de coisas importantes. Foi assim que aprendi a importância do backup; o que não quer dizer que eu o faça. Contudo, recentemente o disco do meu notebook começou a dar sinais de que está agonizando. Na verdade, não sei se trata-se apenas de problemas no sistema de arquivos ou um falha de hardware iminente, mas os constantes erros me trouxeram más lembranças e me deixaram com medo. Plugin Musicbrainz para o Exaile https://davi.dev/post/plugin-musicbrainz-para-o-exaile/ Mon, 18 Jan 2010 17:25:16 +0000 https://davi.dev/post/plugin-musicbrainz-para-o-exaile/ Por muito tempo eu fui usuário do Amarok. Para mim ele era O music player. Mas um dia resolveram atualiza-lo e lançaram a versão 2.0, uma bela porcaria! Desde então testei diversos tocadores: Listen, RhythmBox e Banshee e nenhum me agradou. Foi então que encontrei o Exaile e gostei. Trata-se de um player leve, escrito em python e utilizando GTK. Sem frescuras, tem poucos recursos, praticamente todos os que eu utilizava no Amarok. Let’s GO! (Instalando o GO) https://davi.dev/post/lets-go-instalando-o-go/ Thu, 12 Nov 2009 03:57:34 +0000 https://davi.dev/post/lets-go-instalando-o-go/ O Google acaba de lançar sua própria linguagem de programação, a GO . Trata-se de uma liguagem “meio frankestein”, com uma sintaxe com características de C/C++, Python, Ruby e alguma outra coisa que eu não consigo identificar. GO é uma linguagem compilada e, até o momento, existem compiladores apenas para ambientes *nix. Acabo de instalar aqui no meu Xubuntu e o processo foi bastante simples. Primeiro é necessário configurar algumas variáveis de ambiente: Instalando o Ubuntu 8.10 no notebook Kennex U50SA https://davi.dev/post/instalando-o-ubuntu-810-no-notebook-kennex-u50sa/ Sun, 08 Mar 2009 04:02:34 +0000 https://davi.dev/post/instalando-o-ubuntu-810-no-notebook-kennex-u50sa/ Acabo de comprar um notebook. O modelo escolhido foi o Kennex U50SA. Como a Kennex, em um raro momento de sabedoria, não considera a troca de sistema operacional um procedimento que viola a garantia do produto, a primeira coisa que fiz foi remover o Insigne Linux que vem instalado no notebook e instalar o Windows 7 em dual boot com o Ubuntu 8.10 . A instalação do Windows 7 ocorreu sem nenhum problema. Apostilas de Gimp, OpenOffice e outros https://davi.dev/post/apostilas-de-gimp-openoffice-e-outros/ Wed, 11 Feb 2009 00:26:52 +0000 https://davi.dev/post/apostilas-de-gimp-openoffice-e-outros/ Desde 1997 o Metrô de São Paulo , gradativamente, vem substituindo softwares proprietários em suas estações de trabalho por equivalentes livres. Segundo informações da Companhia, apenas a substituição do Ms Office pelo OpenOffice gerou uma economia de aproximadamente R$ 1,4 milhões por ano. Durante esse período de transição, a equipe de TI do Metrô desenvolveu algumas apostilas utilizadas para treinamentos dos funcionários da empresa. Seguindo a filosofia do software livre, as apostilas desenvolvidas foram disponibilizadas livremente para download no seguinte endereço: http://www. Uma lista, muitas opções https://davi.dev/post/uma-lista-muitas-opcoes/ Mon, 02 Feb 2009 19:08:05 +0000 https://davi.dev/post/uma-lista-muitas-opcoes/ Procurando uma solução para um menu com listas aninhadas, acabei encontrando o site da Maxdesign e sua seção de CSS . Lá você encontra o Listutorial , um tutorial mostrando o básico sobre formatação de listas com CSS. Além disso temos o Listmatic e o Listmatic2 . Nessas seções o pessoal da maxdesign parte da idéia de “Uma lista, muitas opções” e mostram como é possível, a partir de uma simples lista, criar os mais diversos tipos de menus. Evitando a fadiga com Python https://davi.dev/post/evitando-a-fadiga-com-python/ Wed, 14 Jan 2009 00:58:46 +0000 https://davi.dev/post/evitando-a-fadiga-com-python/ Desde pequeno aprendi com Jaiminho à evitar a fadiga. Faz bem para a saúde. Foi assim que resolvi desenvolver um script para baixar imagens de sites. Várias vezes gastei meu dedo, clicando com o botão direito do mouse sobre imagens e mais imagens e escolhendo “salvar como”. Agora, com o script, basta apenas informar a url da página com as imagens e todo o trabalho é feito em alguns segundos (ou minutos, dependendo do tamanho da imagem): Benchmark de Linguagens de Programação https://davi.dev/post/benchmark-de-linguagens-de-programao/ Mon, 05 Jan 2009 17:40:10 +0000 https://davi.dev/post/benchmark-de-linguagens-de-programao/ Sabe como se faz um benchmark de uma linguagem de programação? Não se faz! Contudo, é possível realizar testes em **implementações** de linguagens. É exatamente esse tipo de teste que o pessoal do site The Computer Language Benchmarks Game realiza em seus benchmarks. Entre os testes, temos: C da GNU gcc , Java da GNU gcc , Java da SUN , PHP , Python , C# Mono , Ruby , etc. Fazendo a boa ação do dia https://davi.dev/post/fazendo-a-boa-ao-do-dia/ Sun, 09 Nov 2008 02:16:24 +0000 https://davi.dev/post/fazendo-a-boa-ao-do-dia/ Descriminada por muitos, adorada por tantos outros; essa é a Wikipedia . Apesar dos acadêmicos torcerem o nariz para ela, a Wikipedia é um ótimo exemplo do que o conhecimento coletivo é capaz de fazer. Só no idioma Inglês existem mais de 2 milhões e meio de artigos publicados, com livre acesso para todos, sem qualquer custo e com qualidade. Sim, qualidade! Ao contrário do que os velhos babões das escolas e faculdades dizem, a Wikipédia pode ser considerada um fonte bastante confiável (pelo menos a versão em Inglês). Instalando o Flash Player 10 no Ubuntu https://davi.dev/post/instalando-o-flash-player-10-no-ubuntu/ Sat, 18 Oct 2008 15:22:47 +0000 https://davi.dev/post/instalando-o-flash-player-10-no-ubuntu/ Durante essa semana, sem muito alarde, foi lançada a versão 10 do Flash Player , da Adobe. Entre as novidades disponíveis nesta versão está o tão esperado suporte à transparências no Linux. Além disto diversos outros recursos bem interessantes estão disponíveis. Entre eles: Geração dinâmica de som Melhor utilização dos recursos da VGA Novo suporte a manipulação de 3D Suporte à novos filtros e efeitos visuais E vários outros. Para instalar a nova versão do player vá para a página de download do Flash Player 10, clicando aqui .