Formulário de Contato com SimpleForm

Com a onda de sites estáticos, uma das coisas mais chatas, é ver aquele famoso “formmail.php” no meio do projeto, ou mesmo, aqueles devs que gostam de fazer um código macarrônico, apenas para usar a função mail do PHP ou algo similar.

Utilizando Listeners no PHPUnit

O PHPUnit com seu arquivo de configuração phpunit.xml nos permite inserir um arquivo de bootstrap para ser incluído antes da nossa suíte de testes rodar, porém, em algumas ocasiões, não necessitamos desse bootstrap ou mesmo queremos executar um ação adicional apenas para determinada suíte.

Rotas simples com Silex

O barato do Silex é que ele é realmente muito simples de se iniciar uma aplicação. Mas conforme a mesma vai crescendo, e consecutivamente, o número de páginas e rotas vai aumentando, fica realmente um saco toda hora ter que alterar o código para adicionar ou remover rotas.

Porque NÃO comprar um Samsung Galaxy Gran Prime Duos

Início do mês de Abril, decidi trocar meu MotoG, que estava com a tela quebrada e apresentando vários problemas por um celular novo. Fui até o shopping e escolhi a melhor opção (custo + benefício) pra mim. A apresentação da vendedora foi ótima e o celular, um Galaxy Gran Prime Duos me pareceu uma ótima opção e resolvi levar o mesmo pra casa.

Priorizando testes com PHPUnit

Conforme nossa suíte de testes vai crescendo, obviamente, nossos testes vão demorando cada vez mais a finalizar e gerar nossas métricas. E o maior problema para muitos, é quando os testes que falham, estão “no final” da suíte.

Rodando testes unitários em paralelo

Comecei a utilizar o plugin paratest em meus testes unitários para rodar testes em paralelo utilizando vários processos. Isso agiliza em muito o processo de testes - isso se você tiver uma máquina multi-core claro.

Fugindo do inferno de callbacks no Nodejs

A pouco tempo atrás, apesar da minha experiência com front (HTML, CSS, Javascript), achei interessante dar uma atualizada e resolvi ler sobre MEAN. Admito que fiquei fascinado com a produtividade que obtive, mas também tive - e ainda tenho - muita dificuldade com alguns pontos.

Utilizando o ChromeBook para desenvolvimento

Utilizar um ChromeBook e depender integralmente da internet para trabalhar é uma mudança bem radical para muitos. Eu não consigo trabalhar muito bem quando estou sem internet.

Resolvendo o problema com upload de arquivos grandes no Nginx

Me deparei essa semana com um problema com um cliente que estava tentando enviar um arquivo grande para o servidor, pelo formulário de upload da aplicação. Nos logs, eu vi o seguinte aviso: [error] 25556#0: *52 client intended to send too large body:

Melhorando a completação de código (auto-complete) do NetBeans

O NetBeans para PHP, nem sempre consegue completar o código, quando uma variável é uma instância de um objeto, que está em outro lugar e etc. Uma dica bacana, que vai ajudar nisso e ainda vai melhorar muito a legibilidade do seu código é colocar um comentário sobre a variável (ou em algum lugar no mesmo arquivo ou bloco de código), como abaixo:

Alterando a pasta padrão de projetos do NetBeans

Eu pessoalmente, não gosto do padrão NetBeansProjects, gosto de deixar meus projetos organizados de outra forma, só que o que me irrita, é toda hora o NetBeans criar esta pasta no meu diretório home, então, se você também se irrita, fica a dica para evitar isso:

PHP-GTK no Lion

Desde que comprei o MacBook, não consegui mais trabalhar com PHP-GTK, pois não teve jeito de conseguir compilar a extensão.

Daemons em PHP

Quem nunca precisou criar um script que tivesse que rodar de tempos em tempos para efetuar alguma tarefa não é mesmo? Geralmente usamos a Cron para rodarmos os scripts, mas e quando o script já não roda mais no mesmo tempo esperado, e quando olhamos, temos várias instancias do mesmo script rodando no servidor, bem chato isso.

Utilizando PHP na linha de comando com Zend Framework

Quem me conhece sabe que sempre gostei muito de brincar com o Terminal/Prompt, então, tenho costume de criar e utilizar vários scripts para automatizar algumas tarefas repetitivas, nos meus projetos, tenho costume de criar uma pasta ‘bin’, onde coloco os scripts que deverão rodar via Cron ou como um Daemon.

Sistema de Ponto On Line

A tempos venho escrevendo software pra todo mundo, vários freelas e empresas que já passei, e raramente, tenho a oportunidade/idéia de escrever um software um pouco mais robusto por necessidade própria. Geralmente, escrevo pequenos scripts em PHP-Cli ou Bash mesmo, para automatizar pequenas tarefas, como armazenamento de senhas pessoais, todo list, ponto e etc.

Otimizando o consumo de memória do NetBeans

Outro dia, aborrecido com o alto consumo de memória do NetBeans no meu Netbook, resolvi procurar informações a respeito de otimizações (sim, eu sou um baita fominha quando se trata de espaço em disco e memória, acho que culpa de sempre ter usado máquinas podreiras). De tanto fuçar, acabei chegando na seguinte configuração para o meu netbeans.conf - no Ubuntu, ele fica em /usr/local/netbeans-*/etc/:

netbeans_default_options="-J-client -J-Xss2m -J-Xms128m -J-Xmx256m -J-XX:PermSize=128m -J-XX:MaxPermSize=1000m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled -J-Dnetbeans.logger.console=true -J-ea -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-da -J-Djava.net.preferIPv4Stack=true -Dsun.java2d.d3d=false -Dawt.nativeDoubleBuffering=true"

Os parâmetros acima são meio que auto-explicativos, mas em resumo, estou dizendo para o NetBeans:

  • usar por padrão o IPv4 (caso tenha problemas em fazer atualizações dos plugins, eu tive algumas vezes)
  • Esconder a janela irritante de Exceções do Java (comigo aconteceu muito na versão beta 2 do 7)
  • Usar o buffer dpulo nativo
  • Iniciar com 128Mb de reserva pra cache e etc e no máximo 1Gb para uso.

Enviando e-mails via Gmail com Zend_Mail

Configurar um servidor SMTP é trabalhoso, principalmente pela briga de gato e rato que é não cair nas listas negras e ser tratado como SPAM, confesso que não tenho muita paciência pra isso, apesar de já ter de faze-lo algumas vezes, mas se puder correr dessa alternativa, melhor ainda.

Utilizando Rotas com Zend Framework

As vezes, é importante definir algumas urls mais amistosas para sua aplicação, ao invés de deixar o padrão “controller/action/nomeparametro/valorparametro”, isso as vezes pode confundir, além de ficar feio para um site por exemplo.

Trabalhando com imagens utilizando a biblioteca Imagick

Qual programador nunca teve sua função ‘criaThumb’, ‘thumb’ ou parecida, utilizando aqueles terríveis - e chatos - cálculos e ‘ifs’ com GD não é mesmo? Pessoalmente, nunca gostei, utilizada por não conhecer outra alternativa, mas agora com a biblioteca Imagick isso ficou até massa de fazer.

Nginx

O Nginx (pronuncia-se “Enginex”) é um servidor web leve, que consome pouquíssimos recursos do servidor, e é muito utilizado para servir conteúdo estático, mas nada nos impede de o utilizarmos para servir conteúdo dinâmico, substituindo o Apache.

Ubuntu voando com Openbox

Instalando Vamos começar, instalando alguns pacotes básicos para um funcionamento redondo no nosso desktop.

Streaming e conversão de vídeos com Software Livre

Iniciando Para instalar o ffmpeg no Ubuntu, temos duas maneiras, a primeira, é compilando o mesmo, assim você dar uma refinada nos formatos que deseja dar suporte e ganha um software mais personalizado, ganhando assim em desempenho.

Brincando com schemas no Cake 1.2

Introdução Eu pessoalmente, gosto de brincar em meus projetos com dois bancos, o MySQL e o SQLite, esse segundo, eu gosto muito pela leveza e praticidade, já que fica em um arquivo só, além de ser extremamente rápido.

Transparência sem Compiz

Tava procurando na net alguma forma de resolver o problema da falta de bordas, quando acionava o Compiz aqui no Debian Lenny, quando me deparei com a seguinte dica no blog do Lorenzo para obter o único efeito que eu uso no Compiz: a transparência real no terminal.

Utilizando arquivos .CUE no Linux

Dica rápida que acabei de achar no Oráculo, e pra não anotar em algum canto e esquecer, melhor ficar por aqui. Baixei na última madruga, um torrent, cujo conteúdo, eram alguns arquivos .cue e .bin, certo que era uma imagem de cd, saí procurando no google uma forma de converter ou abrir os mesmos.

Instalando o XCache no Ubuntu

Introdução Muitas vezes, precisamos gerar um cache a nível de código para nossas aplicações, pra evitar uma carga tão grande em servidores muito acessados. Opções não faltam por aí, e ao meu ver, a mais conhecida no mundo PHP é a eAccelerator, mas vasculhando na net - e nos repositórios do Ubuntu - me deparei com o XCache, que atendeu perfeitamente minhas necessidades, sem contar na simplicidade da instalação.

Internacionalizando Aplicações baseadas no CakePHP 1.2

Em primeiro lugar, este manual é inteiramente baseado “p28n, the top to bottom persistent internationalization tutorial. de Jason Chow, então, o que vou citar aqui, são os passos que utilizei para “internacionalizar” uma pequena aplicação que escrevi para um cliente.

Desenvolvendo em PHP com o Eclipse

Essa semana comecei a utilizar o Eclipse para desenvolver, já sabia que existiam plugins, para fazê-lo funcionar com o PHP, um deles, era o PDT (PHP Development Tools).