About Duodraco

Sou Anderson Casimiro, também conhecido como Duodraco. Trabalho com Desenvolvimento Web desde 2002; desde então tive a oportunidade de trabalhar com grandes amigos e aprender bastante. Como já se deve ter percebido meu foco de atuação é PHP, embora eu brinque com Java e C++/Qt nas horas vagas, além do bom e velho Javascript, e dos sempre amigos Mysql, Oracle, sqLite e Postgres. Sou usuário Linux / OpenSuse / KDE apesar de já ter utilizado o Janelas e o OS X. Bom, mas não falemos de passado. Sou um dos coordenadores do PHPSP, junto ao Augusto Pascutti e Rafael Dohms. Atuo como Analista, Desenvolvedor e Scrum Master na Arizona. Sou Engenheiro Certificado Zend (ZCE – Zend Certified Engineer – 2007), Certified Scrum Master e entusiasta do uso de PHP, Linux, KDE e Software Livre em geral.

Desenvolvimento PHP usando Máquinas Virtuais, FastCGI+FPM

Salve. Vamos tirar a teia de aranhas do blog e fazer o post anual (espero que não seja assim dessa vez…).

Há algum tempo tenho realizado meus projetos usando Virtual Machines (VMs) e tem sido bem produtivo, além de eu deixar minha máquina principal livre quando não estou desenvolvendo. Outra vantagem é ter à mão o SO de produção, com suas dependências e problemas. Vou passar uma receitinha de bolo, levantando um ambiente LAMP em um Ubuntu, conectado com a máquina principal (o que nos permite centralizar o código e testar em diferentes ambientes).

Para dar uma apimentada na receita vou utilizar Fastcgi e PHP-FPM (Vale a pena ir mais a fundo no assunto, começando pelo site do projeto). Além disso alguns truques que me são muito úteis no dia-a-dia de desenvolvedor.

Continue reading

PHP 5.4 – saiba o que vem por aí

Olá Pessoal. O PHP 5.4 vem aí com muita coisa boa! Acabou de sair o primeiro alpha release da próxima grande atualização do PHP. Quem acompanha as listas internas do desenvolvimento[bb] do PHP já sabe o que esperar. Para quem não acompanha, seguem as principais mudanças: Continue reading

Seu ambiente de trabalho em 7 itens

Há quase um ano escrevi um artigo sobre ambiente de trabalho. O Augusto Pascutti jogou uma idéia no ar: “vamos fazer um meme sobre?” … e cá eu estou a realizar algo sobre. As regras são claras:
1ª – escreva sobre 7 itens de seu ambiente[bb] de trabalho – fale sobre qualquer ponto que quiser;
2ª – indique de 3 a 5 pessoas para que possivelmente façam um artigo sobre seu ambiente.

Vamos lá? Continue reading

KDE PIM, Google e Android

Salve

Este artigo é especial para quem usa KDE e tem um smartphone rodando Android[bb]. Como comentado em um outro post possuo um aparelho Xperia X10[bb], assim como o @galvao e o @ivonascimento. Nos ultimos dias fui rever minha lista de contatos pelo gmail e lembrei que o KDE possui uma execelente suíte de gerenciamento de informações pessoais (ou PIM) . Aí nossa história começa. Continue reading

PHP Conference Brasil 2010

PHP Conference Brasil 2010Como é do conhecimento da maioria, na próxima semana (dias 25,26 e 27 de Novembro) acontece a quinta edição da PHP Conference Brasil, o maior evento de PHP da América Latina. Se não é de seu conhecimento, busque conhecimento. (valeu Bilu, pelo clichê).

Continue reading

Post sobre Javascript no Ajaxianos

Você conhece o Ajaxianos [link]? É o blog iniciado pelo Alexandre Bevilacqua e Wender Lima sobre Javascript. Conteúdo de primeira qualidade.

Eles me chamaram para blogar com eles lá e meu primeiro artigo no Ajaxianos acabou de sair do forno:
Boas Práticas ao desenvolver com Javascript

Confiram!

Consumindo um RSS com simplexml

Essa semana precisei consumir um RSS do wordpress (UTF-8), para utilizar o conteúdo em outra aplicação (ISO-8859-1). Realizei rapidamente (sem frameworks ou firulas) e o fiz usando simplexml e um esquema de cache simples. O resultado  segue abaixo: Continue reading

Seven things that probably you may not know about me

It’s running in PHP world a STTPYMNKAM networking pings (meme/tag)… the idea is simple: I was tagged by Porkaria (that was tagged by Adler, and so on…) then I may describe 7 “curious” things about me, and tag another 7 people, chaining more people.

Thanks to Porkaria to put me in this hole (or pyramid?)… here we go again…

1. I choose Duodraco nick… from pagan stuff… it’s a simple merge from Draco(latin word for Dragon) and Duo(latin “Two”(from zodiac Gemini)).

2. I’m Pagan: although christian baptized, I found real spirit peace from ancient knowledge. I was evangelic earlier in my life… but it’s past.

3. I say NOT: usually, it’s my first answer for generic questions…

4. I have Zero Tolerance for Dumb Questions: brazilians can remember from “Seu Saraiva” (Francisco Milani‘s comedy role)

5. I like Rock-related music: rock, metal, blues, jazz and classic.

6. I hate “Brazilian Carnival”… no explanation… but I hate so more stuff, like Xuxa, Evangelic Priests and Catolic Fathers.. and Bush(the president).

7. I’m trying to be a Portuguese citizen… My father’s mom (Isabel grandma… good risotos…) and a lot of family people are from there.

And now… the Oscar goes to I’m tagging my frinds:

Augusto Pascutti: long date friend, nipo-italian rocker and co-worker

Tatto: A good frined that I know in PHPConference Brazil ’07, from Santa Catarina/Brasil

Luke Crouch: He gave a presentation in PHPConference Brazil ’08, and drinked some beer with us.

Fernando Chucre: Another Conference friend; developer from Ceará/Brasil

Bruno Viana: One more… and we are not familiar (“Arruda” family name)

Rules are simple:

Link your original tagger(s), and list these rules on your blog.
Share seven facts about yourself in the post—some random, some weird.
Tag seven people at the end of your post by leaving their names and the links to their blogs.
Let them know they’ve been tagged by leaving a comment on their blogs and/or Twitter.

Ambiente de Desenvolvimento Web

Olá

Como você desenvolve? O que você usa para desenvolver? Provavelmente você já viu/ouviu essas perguntas em fóruns, listas, ou mesmo perguntando a colegas da área. Nesse artigo vou falar sobre como desenvolvo hoje, na empresa e no home office. Não me aprofundarei muito em cada tema, pelo menos não agora!

Sistema Operacional
Abandonei o Windows® há algum tempo, usando-o só pra atualizar o Smartphone (Windows Mobile). Minha estação de trabalho é um notebook dotado de de um Turion X2 1.6, com 1GB de RAM (que em breve espero que sejam 4) 4Gb de RAM. Neste note utilizo o Kubuntu Intrepid 64, rodando o KDE 4.2 Beta; Optei pelo [K]ubuntu pela facilidade de manutenção, apesar de arcar com o custo de ter alguns módulos carregados os quais ainda não parei pra tirar da inicialização; O namoro com o Debian/Ubuntu é de longa data; Gosto mais da interface do KDE, a qual você pode customizar bastante, além de haverem ótimos recursos avançados, mas é assunto pra outro artigo
Na Burti, onde atuo como desenvolvedor hoje em dia, trabalho com um MacMini rodando o MacOS X 10.5 (leopard); antes de trabalhar lá eu meio que tinah um preconceito com relação a Mac, mas depois de conhecer, e não é nada do outro mundo, você até gosta do bichinho; ótima interface, dificilmente você irá rebootá-lo por uma pane (a não ser quando a Dock inventa de sumir).
O Windows ainda tem a maior variedade de Aplicativos (IDEs, Editores, Servidores, etc) para o desenvolvimento, mas com o que vou comentar a seguir não preciso deles de maneira alguma.

Servidores
Acho que se eu fizesse uma pesquisa aqui sobre qual servidor web é mais usado localmente no desenvolvimento, o Apache ganharia disparado. E se for falar de BD, o Mysql teria sua fatia bem gorda também. No note tenho as ultimas versões de Apache e Mysql para o desenvolvimento, com a ultima versão do PHP (hoje a 5.2.8). Para mim é algo bem fácil instalar: apt-get install php5 php5-mysql mysql-server.
No Mac faço uso do truque sujo MAMP.

Controle de Versão
Esse é um ponto controverso com alguns gerentes/coordenadores que conheço, mas é algo mais que necessário para o desenvolvimento. Uso o subversion na Burti, integrado com a IDE que vou falar adiante. Para quem não conhece sistemas de Controle de versão (CVS, Subversion, Bazaar, GIT), deveria se informar melhor do assunto.
Uso o subversion por ter maior conhecimento neste, além de ser mais fácil encontrar alguém que conheça o SVN que o GIT por exemplo.

IDE / Editor
Usar uma IDE ou um Editor mais simples? eis a questão! Eu uso uma IDE para, em uma só ferramenta eu ter o controle do código, visualização da arquitetura de classes, visualização/ mapeamento da classe que estou editando, Debugging e Profilling. Uso o Netbeans 6.5 (sim, existe uma versão hoje de Netbeans com suporte a PHP); Minha principal motivação de mudar do PDT para o Netbeans é que o ultimo funciona no meu Kubuntu 64bits, enquanto que o primeiro tenho que mexer em muita coisa pra rodar redondo.
O Netbeans conta com edição de PHP/HTML/CSS/JS integrado com as principais bibliotecas/frameworks (jQuery, Prototype, Dojo), desenvolvimento local e remoto, navegador de código, debugging como já citado, entre outras tantas features. Uso tanto em casa quanto na Burti, e recomendo. Quando tenho que fazer uma alteração remota com urgencia não dispenso o VI.

Netbeans 6.5 com suporte a PHP

Netbeans 6.5 com suporte a PHP

Navegador
Pois é, todos nós que trabalhamos com php temos que abrir o navegador vez ou outra para visualizar as coisas feitas no HTML,CSS e Javascript, e as coisas não feitas pelo IE :D . Minha primeira opção de navegador é o Opera, que dentre outros motivos atende à risca as especificações da W3C. Fazendo as coisas darem certo no Opera, tenho que acertar muito pouco, ou nada, minhas investidas contra o client-side em outros navegadores. Meu segundo navegador é claro o Firefox. Sempre há o pecado de ter as coisas no IE bagunçadas… para isso vamos ao próximo tópico.

Máquinas Virtuais
Bom, o principal uso de uma máquina virtual não é, com certeza, visualizar como seu sistema/site fica no IE, embora um dos meus usos seja especificamente esse. Uso o VirtualBox, com uma maquina windows xp. Apesar de ter o wine no linux, prefiro a MV a instalar o IE[ca] no Linux. Também uso a MV para testar as novas releases do [K|X]Ubuntu quando ainda em alpha/beta, e versões de softwares antes de instalar diretamente na workstation.

Cliente para Bancos de Dados
Bom, ainda não me acostumei a usar a ferramenta built-in do Netbeans (por sinal muito boa… só falta de costume). Então ainda uso o Mysql Query Browser e o Mysql Administrator, além, é claro, da interface em linha de comando; com o postgresql uso o PGAdmin. Mas ainda vou me acostumar a usar o cliente do netbeans, a se vou.

Editor UML
Sim, temos que utilizar a UML! Até pouco tempo atrás usava o ótimo Umbrello, do KDE, mas depois do Netbeans comecei a usar seu plugin UML que é ótimo. A única desvantagem para o Umbrello mesmo é a falta de geração de código a partir do Modelo neste ultimo.

MindMap
Não vou me aprofundar no assunto de mindmap, pelo menos não agora, mas é uma das melhores ferramentas para documentação em projetos ágeis, como Scrum e XP. Uso o Freemind para este serviço.

Metodologia de Desenvolvimento
Utilizo o Scrum como base na metodologia. O grande lance do Scrum é ter um ciclo definido de desenvolvimento, e consequentemente de releases para o cliente, no qual o desenvolvedor tem quase que total liberdade para gerenciar o tempo, além de ser flexivel quanto a regras, o que é até “obrigatório” no desenrolar de um processo Scrum. Falarei melhor sobre metodologias ágeis em breve.

Estilo de Codificação
Algo essencial para o trabalho em grupo. Utilizar um Estilo significa que o jeito que você escreve o código será igual ao da sua equipe, falando a grosso modo. Utilizo o Padrão do ZendFramework, que tem poucas variações do padrão PEAR.

Frameworks
Algo essencial para desenvolver rapidamente aplicações, sem re-re-re-re-inventar a roda.
No PHP estou brincando mais com o ZendFramework pelo nível e por tudo o que ele já possui; No passado ele tinha sérios problemas de performance, os quais não identifico mais, apesar de não ser o avião que o CodeIgniter / Kohana é.
Para o Javascript utilizo o fucker awesome poderoso jQuery.

Bom pessoal, dei uma passada rápida sobre o que uso no dia-a-dia para desenvolver. Até a próxima