Geek

Bang.sh, o framework para shell script, terá primeira versão em breve

Sim, o título parece mais uma matéria jornalística que um post em blog. Mas é verdade. Em breve será lançada a versão 0.1 do Bang.sh. Ele ainda tem muito o que crescer, mas já tem várias coisas interessantes como: exceções e try/catch, biblioteca de testes unitários, mocking e stubs e modularização.

Abaixo explico algumas das funcionalidades e como utilizá-las. Por último, há alguns itens que pretendo concluir antes de lançá-lo. Junto do Bang.sh, provavelmente, irei lançar o Shocs: um gerador de documentação para API's em Shell Script. Estou escrevendo ele em Elixir, uma linguagem que roda na VM de Erlang. Contribuições são bem vindas em ambos os projetos!

GitHub hackeado, Homakov, Rails e o que isso tem a ver com CakePHP

Olá! Dia primeiro de março de 2012, um carinha conhecido como Homakov abriu uma issue no projeto do Rails no GitHub. Ele a abriu porque, segundo ele, muitos não conheciam ou não praticavam uma prática de segurança que protegia certas colunas do banco de dados e eram expostas nos models do framework.

Infelizmente só consegui parar para escrever este post 10 dias depois. Mas acredito que vá valer a pena. Além de explicar o caso, também abordei como se proteger disto ao utilizar CakePHP. Por fim, selecionei algumas imagens de memes que surgiram depois deste caso para nos alegrar um pouco =).

Git e suas magias: alguns comandos úteis

O git realmente é um poderoso sistema de versionamento de códigos. O melhor, ele é distribuído, o que permite ainda mais diversão. Às vezes, acostumados com outros, como o svn, acabamos ignorando o real potencial do git. Aqui vão algumas dicas que podem ser úteis ao utilizá-lo:

Ubuntu 12.04 e o HUD, uma interface orientada à inteção

Todos sabem que sou muito fã do ArchLinux, pois é uma versão light weight do linux que permite que eu configure do modo que me deixa mais produtivo, com poucos aplicativos iniciados no boot e interface sem muita frescura.

Mas, sendo franco: como sou eu mesmo que configuro o Awesome, tema do GTK, fonte, cores do urxvt, tema do slim e etc, acaba não ficando muito bonito o conjunto da obra. Fica um terminal colorido pra cá, com cores destoantes para lá, e, ... Sinceramente, não tenho paciência para lidar com aparências.

Já o Ubuntu 12.04, que sofre mudanças em sua aparêcia há anos, tem crescido muito na preferência dos usuários para computadores desktop. A razão principal para este crescimento está na qualidade do sistema.

Na verdade, o Ubuntu reboca a parede esburacada que é um OS baseado em linux. Por parede furada, leia-se um monte de software e ferramentas isolados com funções específicas, e, por reboco, leia-se um sistema que é capaz de orquestrar estes softwares com muito poucos erros, tapando os buracos.

Vim editor, compilação de 50+ dicas

Neste breve post gostaria de por algumas referências onde vocês podem consultar algumas dicas de vim, o editor. Assim, quem está começando a brincar com esta excelente ferramenta, já saberá por onde começar!

Se você tiver mais dicas, não deixe dizê-la nos comentários!

Quero ser programador, como aprender a programar?

A Internet é um dos meios de comunicação mais democráticos de todos os tempos. Com ela, diversos tipos de atividades puderam ser exercidas por leigos que, assim, tiveram a chance de profissionalizar, como os escritores (blogs), artistas de vários estilos (youtube) e, principalmente, programadores. Estes últimos possuem, atualmente, diversos recursos disponíveis para iniciar o seu aprendizado na área. Quem deseja seguir essa carreira e fazer dela o seu ganha-pão principal pode ainda recorrer aos vários cursos, livros e fóruns de discussões disponíveis gratuitamente pela Internet.

Sempre que me perguntam "o que eu preciso fazer pra aprender a programar?" não consigo responder de forma precisa. Geralmente, quem já tiver um pé na área da computação, irá tentar responder esta pergunta por si só. Pois é uma característica essencial para o programador saber ir atrás das respostas. Mas, este post pode ser a resposta de alguém que procurou, portanto vamos lá.

Steve Jobs, Dennis Ritchie e John McCarthy - quem foram e o que têm em comum

Mesmo quem não acompanha as últimas notícias do ramo da tecnologia ficou sabendo da morte do CEO da Apple, Steve Jobs. Desde o dia 5 de Outubro, no qual o empresário morreu devido a uma parada respiratória causada por um tumor, as mídias sociais começaram a fervilhar com mensagens, imagens e vídeos em sua homenagem.

Por todos os lugares eram vistos recados com o famoso acrônimo RIP ("Rest in Peace"). A verdade é que o mês de Outubro foi marcado também pela morte de dois outros famosos, cujos incidentes não tiveram tanta repercussão, mas que as contribuições para a comunidade científica foram significativas.

Tchelinux Porto Alegre Edição 2011

O Tchelinux é uma série de eventos organizados por usuários de Software Livre para usuários de Software Livre em várias regiões do Rio Grande do Sul. Em Porto Alegre, este ano, será sediado no prédio da FTEC no dia 26 de novembro de 2011, um sábado, das 8:30 até as 17h.

Infelizmente não estarei no Rio Grande do Sul para presenciar o evento, porém, quem estiver poderá comparecer. O evento de 2010 foi muito bom e muito melhor que o tchelinux 2009, onde palestrei. Os slides das minhas palestras se encontram no bellthoven @ Slideshare e no gustavotkg @ SpeakerDeck.com - tenho preferido este segundo ao Slideshare: mais limpo, mais elegante e com muito foco em desenvolvimento.

O Tchelinux 2011 Porto Alegre promete ser ainda melhor. Meu destaque especial é para o Coding Dojo de PHP que, tenho certeza, será um lugar para se divertir, aprender e praticar as boas práticas da programação como teste unitários, padrões de projeto quando necessário e baby steps.

Também não posso deixar de comentar a palestra do Leandro Nunes, Hands on Arduino, - uma que, com certeza, não perderia - e a sala "Trovas e Chimarrão", com o assunto livre, onde acredito que vá rolar muita troca de conhecimento!

A grade de palestras está bem diversificada, há palestras sobre Arduino, Python, PHP, Ruby, Segurança da Informação, Empreendedorismo, entre outros. Para conferir tudo isto, basta preencher alguns dados na página de inscrição. O evento é gratuito, porém os participantes são encorajados a levar 2kg de alimento não-perecível que serão doados para uma instituição que necessite.

Decorator pattern: um uso real para este padrão de projeto em php

Há um tempo atrás eu criei um artigo sobre o que é e como utilizar o decorator pattern. Ele fazia parte de uma série de posts sobre design patterns que iniciei.

Dando continuidade a esta série, hoje vou mostrar um exemplo mais real do uso dele e que talvez explique melhor a sua utilidade. O post antigo mantém-se, porém este vai ilustrar um pouco melhor.

Bom, para relemebrar: o decorator pattern tem como intenção mudar ou adicionar comportamentos de um determinado objeto sem precisar modificar sua classe.

O exemplo utilizado aqui foi retirado "do mundo real" e adaptado para o post. Acontece que um usuário poderia marcar a ordem e quais compressões um determinado arquivo deveria sofrer. Entre as possibilidades, estavam o Gzip e o Bzip.

Existem maneiras e maneiras de se resolver este problema. A escolhida foi utilizando o Decorator para retornar o conteúdo do arquivo comprimido e seu nome final, já com as extensões .gz e .bz2 definidas.

Guia completo e definitivo de como usar mod_rewrite

O meu artigo Como usar mod_rewrite de verdade fez um bom sucesso. Então, decidi fazer este artigo, que mostra como a utilização do mod_rewrite pode impactar na arquitetura de uma aplicação web, use esta aplicação um Framework ou não. Será feito uma análise de implementação de URL's amigáveis para sites de pequeno e médio porte e também como ele é utilizado em frameworks MVC.

Há um tempo, fiz um post falando sobre o porquê usar URL amigável. Muitos sites têm adotado isto, principalmente os que utilizam algum framework como Zend Framework, CakePHP, Symfony, CodeIgniter, na maioria das vezes por imposição do próprio Framework. Mas isto não é uma exclusividade do PHP, Django (Python), Ruby on Rails (Ruby) entre outros também a utilizam.

Syndicate content