Novatec – 20% de desconto!

Recentemente fui contatado pela Editora Novatec para participar do programa de afiliados deles. Tenho certeza que vou demorar um bom tempo pra receber qualquer coisa que seja, mas há um lado bom: eles me ofereceram um código promocional, com 20% de desconto.

O esquema funciona assim: você compra qualquer livro do catálogo da Novatec e, na hora de fechar o pedido, entra com o código promocional JULIOGREFF. Você ganha um bom desconto, e eu uns trocados.

Caso você queira comprar algum livro, mas ainda não tem idéia do que, aí vão alguns que podem valer a compra:

Se você precisava de (mais algum) incentivo pra comprar um livro, esse é um. Tá esperando o que?

15 de abril, 2009

Fórum do Spaghetti*

O Spaghetti*, desde o dia de seu lançamento, precisava de um fórum. Muita gente pediu, implorou, alguns até mandaram cartas ameaçando a nós, nossa família e nossos repositórios por aí. Só que o que nem todos sabiam é que estávamos construindo uma solução há um bom tempo, mas por motivos diversos ela demorou muito mais do que esperávamos. Mas, como somos pessoas muito legais, resolvemos terminar isso de uma vez, e foi lançado o Fórum do Spaghetti*, finalmente.

Como dito no nosso blog, queríamos algo que compartilhasse da filosofia do framework: simplicidade e descomplicação. Por isso, descartamos IPB, SMF, phpBB, entre outras sugestões, e construímos nosso próprio sistema. Como qualquer um pode notar, ele ainda não está completo, mas aos poucos estamos trabalhando nisso. Queremos um produto de qualidade!

Esperamos que o fórum ajude a tirar as principais dúvidas do Spaghetti*, e a alavancar o crescimento da comunidade, conectando desenvolvedores e se tornando uma boa fonte de informações para os que estiverem chegando. E você, já se cadastrou lá? Esperamos você!

22 de março, 2009

Spaghetti* Framework Lançado!

Spaghetti* Framework

O ano de 2009 chegou, e com ele trouxemos junto o Spaghetti* Framework 0.1, a primeira versão do nosso framework para PHP. Exatamente na virada do ano, o site do Spaghetti* foi liberado, assim como downloads, documentação, screencasts e tutoriais. E você, já deu uma passada por lá?

Recepção

Antes de tudo, gostaria de agradecer muito a recepção que o Spaghetti* já vem tendo. Em apenas 3 dias de vida, já recebemos vários elogios, agradecimentos, twittadas e sugestões (críticas são muito bem aceitas, estamos esperando elas também!). Vários downloads foram feitos, os screencasts estão gastando uma banda considerável, e pelo jeito o pessoal anda gostando. Se você também gostou (ou não gostou), nos deixe saber! É só entrar em contato direto com a gente.

Documentação

Pelo menos para mim, uma documentação razoável é um dos fatores chave para a adoção de uma nova ferramenta. Por isso, trabalhamos bastante em cima dessa parte, e o resultado é uma documentação que cobre boa parte do que o Spaghetti* faz. Gostamos tanto do resultado que até fizemos um PDF para download. Quem me segue no Twitter deve ter notado o quanto falamos dessa documentação.

Além da própria documentação, fomos um pouco mais longe, e também já temos alguns screencasts e tutoriais, especialmente para o pessoal que já quer ver alguma coisa funcionando antes de colocar a mão na massa. Já estou devendo um screencast meu, abordando outros aspectos do framework, deve sair em breve. Ou pelo menos assim espero.

O que já está por aí

O Spaghetti* não foi criado em um laboratório fechado, baseado em hipóteses e teorias. Construímos ele em aplicações já em produção. Já existem vários projetos prontos, funcionando, com versões alfa e beta do Spaghetti*. Além disso, o Rafael também criou uma aplicação super legal, uma lista de tarefas. Toda a aplicação feita em menos de duas horas de trabalho. Divirta-se!

E o que vem por aí

Não estamos parados, e já estamos trabalhando para a próxima versão, programada para primeiro de maio, se tudo der certo. Fomos amadurecendo ainda mais a idéia, e vimos que muito ainda falta no Spaghetti*. Você deve ter sentido falta de suporte a vários bancos de dados, validação, além de vários outros detalhes no próprio core, helpers e componentes. Você pode nos acompanhar pelo Trac, ou então pelo nosso Twitter. Sinta-se livre para se cadastrar no Trac, submeter tickets, anexar sugestões de código, e nos ajudar a melhorar nosso framework.

Espero que o nosso trabalho possa tornar o seu mais fácil e mais divertido. Também espero que você possa usar o Spaghetti* em seus projetos, e adoraria ouvir qualquer coisa sobre a experiência. Assim que alguém já estiver usando o framework em algum projeto internet afora, farei questão de dizer isso aqui ou mesmo no site do Spaghetti*. Até mais!

03 de janeiro, 2009

7 coisas que todo desenvolvedor web deveria saber

Desenvolvimento Web é coisa séria, e evoluiu muito em termos de maturidade e complexidade. Para fazer frente ao crescente níveis de exigência, nós, desenvolvedores, devemos estar aprendendo a todo instante. Não importa qual campo você deseja seguir, seja ele no lado cliente ou servidor. Mas acredito que existam coisas que todo desenvolvedor web de verdade deveria saber.

Web Standards

Hoje em dia, o mínimo que se espera de um bom desenvolvedor web é o conhecimento dos Web Standards, XHTML e CSS. Eles contribuem para a criação de documentos mais consistentes entre si, mais compatíveis e de manutenção extremamente mais simples. Aliás, o conhecimento dos padrões não é mais um diferencial como era há alguns anos atrás, mas sim um requisito básico. Se hoje sonhamos com a web semântica, os padrões web são o primeiro passo. Com documentos mais semânticos, temos mais acessibilidade e também mais relevância, principalmente no que diz respeito a motores de busca.

Mesmo depois de muita evangelização, ainda temos desenvolvedores que acabam de descobrir as maravilhas do mundo validado. Também temos aqueles que não fazem a mínima idéia do que isso signifique, ou que não tem o mínimo interesse em aprender. Se você é um desses, hora de rever seus conceitos…

JavaScript

O JavaScript, apesar de ter sido muito injustiçado no passado, é uma linguagem onipresente, e de extrema importância. Qualquer usuário tem pelo menos um interpretador instalado em seu computador. Além do mais, ela é a única linguagem client-side disponível, e permanecerá assim por um bom tempo.

JavaScript vai ser a próxima grande linguagem. Apesar de ainda estarmos longe de resultados surpreendentes, caminhamos rápido nesse sentido. Muita coisa que antigamente só era possível com Flash hoje é feita com JavaScript.

Além da própria linguagem, aprenda a usar alguma biblioteca, como Mootools, jQuery ou Prototype. Aliado a essas ferramentas, você poderá criar aplicações muito mais interessantes em muito menos tempo. Mas atenção: não aprenda somente a biblioteca, sem aprender antes JavaScript puro. Afinal, saber só jQuery é coisa de designer.

Expressões Regulares

Um simples replace nem sempre é suficiente quando trabalhamos com manipulação de textos. Aí entram as Expressões Regulares, poderosa ferramenta que todos conhecem, alguns usam, e poucos realmente sabem. Seja em PHP, Ruby, Python ou mesmo JavaScript, algum dia você precisará delas.

Se você leva desenvolvimento a sério, dedique um tempo a aprender expressões regulares (Expressões Regulares – Uma Abordagem Divertida é um bom começo!). Além de uma ferramenta de desenvolvimento, elas podem se tornar ferramentas de produtividade. Se você usa IDEs com suporte a busca e substituição com expressões regulares, pode se beneficiar muito disso.

Controle de Versão

Para alguns, o Controle de Versão mudou completamente, e para a melhor, a forma de trabalhar. Para outros, parece simplesmente inútil, principalmente para quem trabalha sozinho. Seja CVS, SVN, GIT, Mercurial ou qualquer outro, o controle de versão, aliado a ferramentas como o Trac, pode fazer maravilhas. Além de manter controle de suas alterações, podendo sempre voltar atrás caso alguma modificação dê errado ou mesmo quando o cliente não aprova, você pode manter um controle de sua produtividade, analisando quantos commits foram feitos em quanto tempo, quantos tickets foram fechados, quantos ainda permanecem pendentes.

Desde que passei a utilizar SVN em alguns projetos, como no próprio Spaghetti, notei uma grande melhora no controle sobre o código. Nunca mais pensei duas vezes em apagar grandes blocos de código pensando que eles poderiam ser úteis outra vez (e geralmente nunca seriam realmente necessários). Uma excelente forma de analisar seu progresso, uma excelente forma de backup, uma excelente forma de manter seu código sincronizado. Esqueça aquele colega que tem uma versão ultrapassada de seu código e sobrescreve partes importantes. Quando passei a utilizar ferramentas de tracking, bugs não eram esquecidos, idéias estavam sempre à mão. Digo, como muitos por aí: isso realmente mudou a minha maneira de desenvolver.

MVC

O Model-View-Controller, ou MVC para os íntimos, nunca fez tanto sentido quanto na web. Depois do Ruby on Rails, virou quase um requisito básico para o desenvolvimento de bons projetos. E desde então, desenvolver não tem mais graça. Além disso, a separação de aplicações nessas 3 camadas torna o desenvolvimento e manutenção muito mais simples.

Se você não quer ficar para trás, adote seu framework. O pattern é usado na maioria deles, e de brinde você ganha muita produtividade. Frameworks tornam as linguagens menos ruins. Se você usa PHP, eu sugeriria o Spaghetti. Se você usa Ruby ou Python, e é seu primeiro contato com frameworks, siga a tendência e adote Rails ou Django. Se você é corajoso, faça como fizemos na minha agência: crie seu próprio framework. Usando algum framework ou não, o que importa é pegar o espírito da coisa.

SQL

Mesmo com toda a flexibilidade e abstração da camada de dados que os frameworks MVC nos oferecem, SQL ainda é necessário. Apesar de você não vê-lo, ele ainda está lá. Consultas complexas ou mais específicas nem sempre são disponibilizadas pelos frameworks, e sempre pode haver a necessidade de uma incursão via terminal, para tarefas de manutenção, por exemplo.

Talvez você não acredite no retorno que isso pode trazer. Até ter nas mãos uma aplicação gigante e extremamente dependente de banco de dados, onde as consultas devem ser otimizadas ao máximo para minimizar a carga do servidor. Você não quer sua aplicação baleiando por você não saber SQL, quer?

Desenvolvimento Guiado a Testes

Test Driven Development, ou simplesmente TDD, é, na minha opinião, a melhor maneira de manter seu código livre de bugs. Fazer o desenvolvimento guiado a testes significa desenvolver o teste antes da funcionalidade. A cada iteração, os testes são rodados novamente, de maneira automática, e você sempre saberá se alguma modificação quebrou o restante do código.

Sem testes automatizados, aplicações nunca são testadas como deveriam. São tarefas repetitivas e cansativas. Com o auxílio de ferramentas de testes, eles podem ser rodados várias vezes, certificando de que tudo está correndo bem. Se um novo bug é descoberto, um novo teste é criado, as modificações são feitas, e você terá a certeza de que o problema foi resolvido para todo o sempre, sem quebrar o restante da aplicação. E convenhamos, não há nada pior do que bugs…

Não é obrigatório que um desenvolvedor saiba tudo isso, embora eu considere extremamente importante, mesmo alguns não sendo necessários todos os dias, todos podem melhorar nossa maneira de trabalhar. Ainda não domino todos os itens citados, mas tenho um bom conhecimento em todos eles. O que importa mesmo é buscar isso, e sempre continuar aprendendo. Mexa-se! Você não quer ficar para trás, quer?

06 de novembro, 2008

Hello, Good to be Back!

Dois meses, e nada de postagens. Sou um blogueiro um tanto relapso, admito. Cuidar do trabalho, escola, vestibular e ainda manter a sanidade mental não é uma tarefa fácil, e certas coisas acabam ficando para trás por um tempo. O blog, infelizmente, foi uma delas. Felizmente, trago algumas novidades.

O blog está em novo domínio: JulioGreff.net. Se você está lendo esse post pelo feed, tudo já está transferido, graças ao FeedBurner. O novo domínio agora é hospedado na DreamHost. Ou seja: adeus problemas com banda e disco excedentes. Isso significa que mais novidades estão por vir. Sabem que eu adoro screencasts? Aproveitando a mudança, também fiz algumas pequenas modificações no tema do WordPress, agora um pouco mais limpo do que antes.

Nesse tempo que fiquei fora, dediquei bastante tempo a outro projeto com o Rafael Marin, na CodeBrasil: o Spaghetti. O Spaghetti é um framework MVC para pequenas e médias aplicações, ainda está em desenvolvimento e beirando o lançamento, programado para no máximo 30 de dezembro. Esse projeto diminuiu um pouco meus desentendimentos com o PHP, e estou tomando mais um pouco de gosto pela linguagem. Caso deseje, você pode fazer o checkout do Spaghetti através do SVN. Sinta-se a vontade para testá-lo, submeter bugs e sugestões, e nos ajudar no desenvolvimento.

Também estou participando do Blogging Idol 2, do Daily Blog Tips. Isso significa que estarei mais dedicado ao blog pelo menos até 30 de novembro. Tenho metas grandes (embora ganhar não seja uma delas), e acredito que será proveitoso tanto para mim quanto para você, leitor. Se você ainda não assina o feed principal e gostaria de me ajudar, assine agora! Se você já é assinante, convide seus conhecidos desenvolvedores a conhecerem o blog. Eu agradeço, e você também ganha com conteúdo de qualidade.

Agradeço a todos que me contataram nesse afastamento, com dúvidas, agradecimentos e pedidos de postagens, e que aguardaram minha resposta (sim, demorou…). Também agradeço a todos que assinam o feed ou lêem o blog, nunca imaginei que chegaria a quase 300 pessoas. Meu sincero muito obrigado. Espero poder satisfazer as expectativas, e postar mais regularmente. Até breve, pessoal!

01 de novembro, 2008