<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>Rainer Borene</title><generator>Tumblr (3.0; @rainerborene)</generator><link>http://rainerborene.com/</link><item><title>Backup com Git no Amazon S3</title><description>&lt;p&gt;Depois de cogitar várias maneiras de realizar backup diário de banco de dados e arquivos que foram subidos por usuários, como imagens e documentos, resolvi experimentar o Git e ver se ele resolve esse tipo de problema, apesar de ser um software de controle de versão. Mas antes disso, vou apresentar os problemas do método mais comum de backup.&lt;/p&gt;
&lt;p&gt;O método mais comum de backup utilizado entre os sysadmins é gerar um arquivo compactado contendo a data atual no nome do arquivo. A desvantagem é que esse método não escala, principalmente, quando há a preocupação com espaço disponível em disco ou cota de armazenamento em servidores externos. O problema de espaço em disco pode ser contornado excluindo os últimos X arquivos compactados, porém essa solução gera outro problema: o histórico dos arquivos deixam de existir.&lt;/p&gt;
&lt;p&gt;No meu caso, estou utilizando o Amazon S3 para armazenar os arquivos de backup. Entretanto o Amazon S3 não oferece suporte para repositórios Git e eu precisava de alguma solução pra esse problema. Uma dessas soluções seria simular um disco rígido através do &lt;a title="JungleDisk" target="_blank" href="http://www.jungledisk.com/"&gt;JungleDisk&lt;/a&gt;, mas acabei optando pelo método mais simples, que é sincronizar os arquivos que ficam dentro da pasta git com minha conta no Amazon.&lt;/p&gt;
&lt;p&gt;Como eu precisava exportar o banco de dados MySQL também, acabei criando um &lt;strong&gt;&lt;a target="_blank" href="https://github.com/rainerborene/dotfiles/blob/master/bin/s3cmd-backup"&gt;script&lt;/a&gt;&lt;/strong&gt; que faz tudo isso. Vale ressalvar que esse script requer o comando &lt;a title="s3cmd" target="_blank" href="http://s3tools.org/s3cmd"&gt;s3cmd&lt;/a&gt; instalado na sua máquina.&lt;/p&gt;</description><link>http://rainerborene.com/post/8385224234</link><guid>http://rainerborene.com/post/8385224234</guid><pubDate>Tue, 02 Aug 2011 11:52:00 -0300</pubDate></item><item><title>O Codeplane foi desenvolvido por um brasileiro!</title><description>&lt;p&gt;Recentemente o brasileiro &lt;a title="Simples Ideias é o blog do Nando Vieira" target="_blank" href="http://simplesideias.com.br/"&gt;Nando Vieira&lt;/a&gt; lançou o &lt;a title="Codeplane" target="_blank" href="http://codeplane.com"&gt;Codeplane&lt;/a&gt;, um serviço de hospedagem de repositórios Git por apenas 9 doláres. Diferente do &lt;a title="GitHub" target="_blank" href="http://github.com"&gt;GitHub&lt;/a&gt;, o Codeplane oferece apenas um único plano e ainda sem limites de repositórios privados, mas desde que não ultrapasse o limite de 2GB de armazenamento. Acredito que seja espaço suficiente para equipes menores e freelancers. Os diferenciais do Codeplane são o preço, repositórios ilimitados e a simplicidade de uso. Outra grande característica desse serviço é que tudo pode ser feito por um terminal de texto, ou seja, não é necessário acessar o site para utilizá-lo a não ser que você realmente queira. &lt;/p&gt;
&lt;p&gt;Não se preocupe com procedimentos de backup, pois duas copias dos seus repositórios serão armazenadas no Amazon S3 e também no RackSpace Cloud Files. Pra quem não conhece, esses dois últimos serviços oferecem armazenamento e foram projetados para serem escaláveis, com alta disponibilidade e baixa latência. Eles cuidam de toda a infraestrutura dos servidores, incluindo backups, sistema de arquivos e dentre outros aspectos.&lt;/p&gt;
&lt;p&gt;Colaboração. Convidar pessoas para colaborarem em um repositório é meramente uma questão de digitar um e-mail e clicar em adicionar. Não há limites de colaboradores e não é necessário ter uma conta paga. Incrível, não acha?&lt;/p&gt;
&lt;p&gt;É por atitudes como essa que eu me orgulho de ser brasileiro, sério. O cara fez tudo sozinho, não esperou colher de chá de ninguém, quero dizer, “investimentos”. Simplesmente sentou na frente do computador em uma tarde de um domingo e desenhou as telas, apresentou a ideia para alguns amigos e depois começou com a parte de programação. Depois de finalizado, postou no &lt;a title="HackerNews" target="_blank" href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CCcQFjAA&amp;url=http%3A%2F%2Fnews.ycombinator.com%2F&amp;ei=9ogDTpP3IorX0QHcy739DQ&amp;usg=AFQjCNGKJHXhsq1s0-gYR96B--m47G9oRw&amp;sig2=Ua-1QNgHpLr8GbDF2fJaLg"&gt;HackerNews&lt;/a&gt; e &lt;a target="_blank" href="http://twitter.com/#!/fnando/status/82869502089502722"&gt;conseguiu mais de 200 assinantes&lt;/a&gt; sem gastar um tostão com links patrocinados ou coisas do tipo. &lt;/p&gt;
&lt;p&gt;O Codeplane acabou de surgir e já causou bastante repercussão e tenho certeza que mais coisas boas estão por virem. Parabéns pelo grande trabalho, Nando. Além do mais ele merece porque o &lt;a target="_blank" href="https://github.com/fnando"&gt;karma digital&lt;/a&gt; dele é excelente!&lt;/p&gt;</description><link>http://rainerborene.com/post/6835040487</link><guid>http://rainerborene.com/post/6835040487</guid><pubDate>Thu, 23 Jun 2011 16:05:18 -0300</pubDate></item><item><title>Experimentando o Tmux</title><description>&lt;p&gt;Essa semana estive experimentando o &lt;a title="tmux" target="_blank" href="http://tmux.sourceforge.net/"&gt;Tmux&lt;/a&gt; e depois de usá-lo diariamente, acredito que deveria ser um item obrigatório na caixa de ferramentas de qualquer desenvolvedor que utiliza o Terminal na maior parte do tempo.&lt;/p&gt;
&lt;p&gt;O Tmux é um &lt;em&gt;terminal multiplexer&lt;/em&gt;, traduzindo, ele permite abrir vários terminais (ou janelas) e executar programas separadamente em buffers (semelhante ao Vim) e abas, mas tudo sendo controlado por uma única tela. Além disso, ele permite que você salve o estado de cada janela aberta em uma sessão, podendo ser reaberta em um segundo momento, inclusive, por múltiplos clientes. É isso mesmo, essa ferramenta utiliza o modelo cliente/servidor possibilitando, por exemplo, pareamento durante a programação.&lt;/p&gt;
&lt;p&gt;Outro caso de uso para utilização seria se você estivesse trabalhando em um projeto, com uma conexão aberta com o servidor, editando alguns arquivos no Vim e ainda executando paralelamente a suíte de testes. Mas de repente seu chefe pede para resolver um problema de outro cliente. Todo aquele trabalho preparando o ambiente perfeito para finalizar as tarefas relacionadas com o primeiro projeto foram por água abaixo. &lt;/p&gt;
&lt;p&gt;Acredito que os desenvolvedores devem ser preguiçosos, no aspecto de não executarem as mesmas tarefas sempre. Se houver algo que possa ser automatizado ou até mesmo a utilização de uma determinada ferramenta que possa resultar em produtividade, use-a imediatamente.&lt;/p&gt;
&lt;p&gt;Saia da zona de conforto e experimente coisas novas.&lt;/p&gt;
&lt;p&gt;Para instalar o Tmux no Ubuntu, basta abrir o Terminal e digitar:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;strong&gt;$ sudo apt-get install tmux&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ou no Mac OS X através do Homebrew:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;strong&gt;$ brew install tmux&lt;/strong&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Recomendo que assistam um &lt;a title="Tmux Ramble" target="_blank" href="http://vimeo.com/17317583"&gt;vídeo&lt;/a&gt; que o Bryan Liles gravou sobre o Tmux. E não deixem de acessar o site &lt;a title="tmux" target="_blank" href="http://tmux.sourceforge.net/"&gt;oficial&lt;/a&gt; para maiores informações.&lt;/p&gt;</description><link>http://rainerborene.com/post/5313250652</link><guid>http://rainerborene.com/post/5313250652</guid><pubDate>Sun, 08 May 2011 17:29:00 -0300</pubDate></item><item><title>Meu ambiente de trabalho em 7 itens</title><description>&lt;p&gt;Ainda bem que ninguém me convidou pra essa corrente, mesmo porque sou contra esse tipo de coisa. Mas o texto que escrevi abaixo até que é pertinente para compartilhar com vocês. Vou parar de trollar e ir direto ao ponto:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu ou Mac OS X&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No trabalho eu uso o Ubuntu e em casa o Snow Leopard da Apple (meu predileto). Ambos sistemas operacionais são Unix-like, ou seja, algumas funcionalidades são bastante similares, como a estrutura de diretórios, o modelo de permissão de arquivos e principalmente o interpretador de comandos.&lt;/p&gt;
&lt;p&gt;Esses dois sistemas operacionais me atendem muito bem. Eu consigo gerenciar os processos que estão sendo executados através do Terminal, e ainda posso escrever scripts que automatizam as tarefas repetitivas do meu cotidiano sem nenhum tipo de burocracia. Nada contra o tio Ballmer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vim&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Vim é um editor de texto extremamente produtivo e eficiente. Não vou dizer que é um editor de texto fácil de aprender porque eu estaria mentindo. Alguns desistem na primeira tentativa e outros desistem porque não conseguem abandonar o mouse. Aprender de verdade essa maravilha pode levar algumas semanas ou meses. Eu recomendo que comecem assistindo os vídeos do &lt;a title="Vimcasts" target="_blank" href="http://vimcasts.org"&gt;Vimcasts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Git e GitHub&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ainda lembro quando não utilizava um sistema de controle de versão, era literalmente uma merda, tinha que criar cópias dos arquivos do projeto e snippets de código constantemente, o que causava certa confusão no final. Sem contar que as vezes eu apagava arquivos sem querer e para piorar eu tenho a mania de ficar limpando a lixeira sempre que apago um arquivo.&lt;/p&gt;
&lt;p&gt;Entrando nas definições, Git é um sistema de controle de versão distribuído desenvolvido por Linus Torlvads, feito para resolver todos os problemas citados acima. Já o GitHub é um serviço de compatilhamento de código com alguns recursos de redes sociais, parecido com o Google Code, porém melhorado. No GitHub você pode hospedar repositórios públicos ou privados (no plano comercial, claro).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google Public DNS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sem brincadeira, depois que eu começei a usar esse provedor de DNS minha navegação agilizou bastante.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Grooveshark&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O Grooveshark acabou com esse negócio de HD externo lotado de música. Eu posso ouvir qualquer música de qualquer lugar. O mundo poderia estar acabando, as pessoas virando zombies, e mesmo assim não haveria nada que distraísse um programador com um fone de ouvido.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Shell Script&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Como eu disse anteriormente, me ajuda bastante no meu dia-a-dia.&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Terminal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Como eu passo a maior parte do tempo na frente do Terminal, realizo a maioria das tarefas por meio dele. Operações de exclusão e procura de arquivos, finalização de processos e acesso remoto são uma dessas tarefas.&lt;/p&gt;
&lt;p&gt;Por isso que eu sempre digo: nunca subestimem a tela preta.&lt;/p&gt;</description><link>http://rainerborene.com/post/4776469243</link><guid>http://rainerborene.com/post/4776469243</guid><pubDate>Wed, 20 Apr 2011 11:09:00 -0300</pubDate></item><item><title>Git e GitHub, a dupla perfeita</title><description>&lt;p&gt;Linus Torvals revoluciona novamente o mundo do software livre, dessa vez com o sistema de controle de versão chamado Git. Ele desenvolveu esse sistema inicialmente para gerenciar a base de código do núcleo do GNU/Linux, que também foi desenvolvido por ele.&lt;/p&gt;
&lt;p&gt;O Git se caracteriza por ser um sistema de controle de versão distribuído, ou seja, ele não depende de um servidor central. Uma das vantagens desta abordagem é que os desenvolvedores podem codificar localmente em suas máquinas. Várias empresas e start-ups do mercado, como o Twitter, Facebook e Yahoo! utilizam o Git como controle de versão.&lt;/p&gt;
&lt;p&gt;Depois do lançamento do &lt;a title="GitHub" target="_blank" href="http://github.com/"&gt;GitHub&lt;/a&gt; em 2008, serviço de compartilhamento de código, vários projetos de código aberto começaram a migrar para o GitHub, como o Ruby on Rails, por exemplo. O GitHub é um serviço extraordinário que “simplesmente funciona”. Eles oferecem &lt;a title="GitHub Plans" target="_blank" href="http://github.com/plans"&gt;planos comerciais,&lt;/a&gt; sendo possível manter repositórios privados.&lt;/p&gt;
&lt;p&gt;Quem quiser aprender mais sobre o Git, recomendo que dêem uma olhada no &lt;a title="Github Colaborativo" target="_blank" href="http://akitaonrails.blip.tv/file/3765013/"&gt;screencast&lt;/a&gt; que o Fabio Akita gravou, chamado “Github Colaborativo”.&lt;/p&gt;
&lt;p&gt;Outro recurso importante de aprendizado é o livro &lt;a title="Pro Git" target="_blank" href="http://progit.org/"&gt;Pro Git&lt;/a&gt; (em inglês), escrito por &lt;a target="_blank" href="http://scottchacon.com/"&gt;Scott Chacon&lt;/a&gt;.&lt;/p&gt;</description><link>http://rainerborene.com/post/4665904944</link><guid>http://rainerborene.com/post/4665904944</guid><pubDate>Sat, 16 Apr 2011 15:47:00 -0300</pubDate></item><item><title>Plataforma como serviço</title><description>&lt;p&gt;Estou fazendo um trabalho de faculdade sobre computação em nuvem, acredito que esta seja uma boa oportunidade para compartilhar algumas conclusões sobre o tema.&lt;/p&gt;
&lt;p&gt;Essencialmente, computação em nuvem é um conjunto de servidores interligados com alta capacidade de armazenamento e processamento, que realizam determinadas tarefas por meio da Internet. &lt;/p&gt;
&lt;p&gt;Segundo Larry Ellisson da Oracle Corporation, “a computação em nuvem é tudo o que já fazemos”. Ele quis dizer que é apenas uma campanha publicitária para popularizar os serviços que as empresas oferecem na “nuvem”.&lt;/p&gt;
&lt;p&gt;Como essa tecnologia realmente funciona na “prática”?&lt;/p&gt;
&lt;p&gt;A Heroku, por exemplo, oferece &lt;em&gt;Platform as a Service&lt;/em&gt; (ou plataforma como serviço), ou seja, uma plataforma de computação dentro de uma infra-estrutura maior, evitando custos altissímos com compra e gerenciamento de camadas de softwares e hardware complexas.&lt;/p&gt;
&lt;p&gt;A Heroku oferece um ambiente Ruby para &lt;em&gt;deployment&lt;/em&gt; de aplicações web, e essa empresa desenvolveu um software privado que comanda, distribui e direciona as aplicações para um servidor especifico, de acordo com as necessidades de processamento do cliente.&lt;/p&gt;
&lt;p&gt;Uma das principais características de um serviço em nuvem é a utilização de uma camada de software que controla e distruibui outros softwares em outros servidores.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusão:&lt;/strong&gt; Os tempos evoluiriam. As aplicações não são desenvolvidas da mesma maneira que há 20 anos atrás. Os desenvolvedores devem focar na construção de suas aplicações, e não em configurar e dar manutenção de servidores como antigamente.&lt;/p&gt;</description><link>http://rainerborene.com/post/4065861431</link><guid>http://rainerborene.com/post/4065861431</guid><pubDate>Thu, 24 Mar 2011 14:11:00 -0300</pubDate></item><item><title>Release do Symphony 2.2</title><description>&lt;p&gt;A versão 2.2 traz grandes melhorias para o núcleo do sistema, algumas partes foram reescritas e praticamente todos os arquivos foram documentados, facilitando bastante a vida do desenvolvedor.&lt;/p&gt;
&lt;p&gt;Um dos grandes benefícios dessa versão foram os novos delegates (ou delegados em português) adicionados, abrindo um leque enorme de possibilidades para os desenvolvedores. Foram cerca de 42 delegates ao todo.&lt;/p&gt;
&lt;p&gt;Cada versão, o Symphony fica mais robusto e rápido. E nessa versão não é diferente, conseguimos reduzir o consumo de memória e também diminuir o número de consultas no banco de dados, graças ao novo suporte de caching ganho no núcleo. &lt;/p&gt;
&lt;p&gt;Outro ponto importantíssimo foi a colaboração dos membros do grupo de trabalho do Symphony (Working Groups).&lt;/p&gt;
&lt;p&gt;Enfim, sugiro que dê uma olhada por conta própria no &lt;a title="Symphony 2.2 - Release History" target="_blank" href="http://symphony-cms.com/download/releases/version/2.2/"&gt;Change Log&lt;/a&gt; dessa versão. &lt;/p&gt;
&lt;p&gt;Os iniciantes (ou veteranos) podem começar com o pé direito com a nova &lt;a title="API Documentation" target="_blank" href="http://symphony-cms.com/learn/api/2.2/"&gt;documentação&lt;/a&gt; agora mesmo.&lt;/p&gt;</description><link>http://rainerborene.com/post/3764220653</link><guid>http://rainerborene.com/post/3764220653</guid><pubDate>Thu, 10 Mar 2011 11:30:00 -0400</pubDate></item><item><title>Um convite para a comunidade</title><description>&lt;p&gt;A &lt;a title="RubyConf Brasil - Fábio Akita" target="_blank" href="http://vimeo.com/17091861"&gt;palestra&lt;/a&gt; do Fábio Akita no RubyConf Brasil foi muito inspiradora e bem realista. Quando o palestrante citou sobre o início de sua trajetória no mundo Rails fiquei um pouco surpreso, pois a situação do &lt;a title="Symphony CMS" target="_blank" href="http://symphony-cms.com"&gt;Symphony&lt;/a&gt; é quase a mesma hoje. Ainda temos poucos brasileiros envolvidos na comunidade e quase nenhum conteúdo escrito em português.&lt;/p&gt;
&lt;p&gt;Poucas pessoas conhecem o Symphony, mas isso está para mudar em breve. A agência Movida Comunicação vem apoiando a comunidade brasileira de Symphony através da realização de eventos, palestras e cursos.&lt;/p&gt;
&lt;p&gt;Se você faz parte da comunidade ou está interessado em conhecer mais sobre a ferramenta, deixe um comentário para que possamos discutir sobre como podemos fazer com que mais ideias se tornem realidade, e, principalmente fazer com que mais pessoas aprendam e usem essa ferramenta extraordinária.&lt;/p&gt;</description><link>http://rainerborene.com/post/1673153044</link><guid>http://rainerborene.com/post/1673153044</guid><pubDate>Wed, 24 Nov 2010 17:59:50 -0400</pubDate></item><item><title>Desafios do curso de Symphony CMS</title><description>&lt;p&gt;Estou bastante satisfeito com os resultados e feedbacks que obtive dos últimos cursos que lecionei na agência Movida Comunicação. Gostaria de agradecer, novamente, aos alunos: Priscila Oliveira e Pedro Aredes, e dizer que foi uma experiência única.&lt;/p&gt;
&lt;p&gt;O objetivo desse curso de curta duração (10h aula) foi ensinar a ferramenta Symphony CMS e seus principais conceitos em cima de um projeto real. O curso foi realizado ao longo de uma semana, sendo duas horas por dia e a cada dia um conceito novo era aprendido e praticado. E sempre nos finais de aula acontecia um tipo de “retrospectiva”, para que no dia seguinte possamos ser mais produtivos.&lt;/p&gt;
&lt;p&gt;Como professor, posso dizer que ao mesmo tempo estava aprendendo bastante coisa também. Desde as mínimas coisas a maneira de me comunicar e como abordar com relevância algumas partes do conteúdo do curso. &lt;/p&gt;
&lt;p&gt;O curso se resumiu em transmitir mais o conhecimento &lt;strong&gt;know-why&lt;/strong&gt; e menos &lt;strong&gt;know-how&lt;/strong&gt;, mas ao mesmo tempo mantendo a meta de finalizar o projeto ao final do curso.&lt;/p&gt;
&lt;p&gt;Todas as expectativas e metas envolvidas foram alcanças com sucesso. Uma das minhas expectativas daqui pra frente é ver projetos sendo desenvolvidos por esses alunos utilizando o Symphony.&lt;/p&gt;
&lt;p&gt;Até a próxima pessoal, abraços.&lt;/p&gt;</description><link>http://rainerborene.com/post/1652342790</link><guid>http://rainerborene.com/post/1652342790</guid><pubDate>Mon, 22 Nov 2010 19:16:00 -0400</pubDate></item><item><title>Video</title><description>&lt;iframe width="400" height="299" src="http://www.youtube.com/embed/pYgfD8t9Y4I?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://rainerborene.com/post/1548023853</link><guid>http://rainerborene.com/post/1548023853</guid><pubDate>Thu, 11 Nov 2010 21:26:58 -0400</pubDate></item><item><title>Django e Ruby on Rails</title><description>&lt;p&gt;Desde o início do ano tenho estudado Python e Django, inclusive, mês passado comprei um livro chamado &lt;a title="Aprendendo Python" target="_blank" href="http://www.linuxmall.com.br/produto/livro-aprendendo-python.html"&gt;Aprendendo Python&lt;/a&gt; da editora O’Reilly, que é excelente e recomendo.&lt;/p&gt;
&lt;p&gt;Aprendi diversas coisas, uma dessas, o conceito de metaprogramação. Enfim, depois de vários problemas que tive usando o Django — alguns resolvidos e outros não — a partir dessa experiência de seis meses, posso compartilhar algumas conclusões:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;O módulo de autenticação força o desenvolvedor a seguir determinadas práticas, e isso promove a &lt;strong&gt;inflexibilidade&lt;/strong&gt;, por exemplo, para remover alguns atributos do modelo &lt;strong&gt;User&lt;/strong&gt; ou utilizar o email como condição de autenticação é necessário duplicar um bucado de código;&lt;/li&gt;
&lt;li&gt;Atualmente as views não possuem um padrão para organização e nomenclatura;&lt;/li&gt;
&lt;li&gt;Configurações de ambientes &lt;strong&gt;não&lt;/strong&gt; são geradas automaticamente pelo esqueleto do projeto;&lt;/li&gt;
&lt;li&gt;O módulo de serialização não foi desenvolvido com a filosofia RESTful em mente, o que significa, o suporte para serialização é &lt;strong&gt;incompleto&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Estes são os quatro pontos crucias que podem ser melhorados no Django. Eric Florenzano deu uma palestra no DjangoConf intitulada &lt;a target="_blank" href="http://djangocon.blip.tv/file/4112452/"&gt;Why Django Sucks, and How We Can Fix It&lt;/a&gt;, assitam.&lt;/p&gt;
&lt;p&gt;O que não pode ser alterado com linha de código é a sinergia e o espírito da comunidade, vamos falar um pouco de Ruby e Rails agora.&lt;/p&gt;
&lt;p&gt;É impressionante a quantidade de desenvolvedores, e bons profissionais, que fazem parte do ecossistema do Ruby comparado ao Python. Sem contar que o GitHub é praticamente dominado por rubistas.&lt;/p&gt;
&lt;p&gt;Estou dedicando boa parte do meu tempo para aprender Ruby e Rails agora, essa linguagem é simplesmente maravilhosa.&lt;/p&gt;
&lt;p&gt;Ruby on Rails foi uma extração de um projeto chamado Basecamp, gerenciador de projetos, criado por David Heinemeir Hansson. Foi lançado em julho de 2004.&lt;/p&gt;
&lt;p&gt;Django foi criado a partir de outros requisitos e dentro de um ambiente jornalístico. Poucos meses depois do lançamento do Rails, Django é anunciado para o mundo.&lt;/p&gt;
&lt;p&gt;Novos desafios, novos aprendizados pela frente.&lt;/p&gt;</description><link>http://rainerborene.com/post/1205707715</link><guid>http://rainerborene.com/post/1205707715</guid><pubDate>Tue, 28 Sep 2010 17:04:00 -0300</pubDate></item><item><title>"A bondade é uma via de mão dupla."</title><description>“A bondade é uma via de mão dupla.”</description><link>http://rainerborene.com/post/1137754216</link><guid>http://rainerborene.com/post/1137754216</guid><pubDate>Fri, 17 Sep 2010 12:05:25 -0300</pubDate></item><item><title>Video</title><description>&lt;iframe src="http://player.vimeo.com/video/14884657" width="400" height="300" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;</description><link>http://rainerborene.com/post/1110002748</link><guid>http://rainerborene.com/post/1110002748</guid><pubDate>Sun, 12 Sep 2010 13:50:00 -0300</pubDate></item><item><title>Atualização: Django em hospedagem compartilhada</title><description>&lt;p&gt;Alguns meses atrás publiquei um screencast ensinando como atualizar o Django na KingHost, empresa brasileira de hospedagem. E felizmente, descobri uma solução mais simples pra esse problema.&lt;/p&gt;
&lt;p&gt;Antes de ir direto ao código, entenda os porquês dessa história.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Qual era o problema mesmo?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O trecho de código que eu havia disponibilizado (&lt;a target="_blank" href="https://gist.github.com/472812/2a0bcc076760a12aba8057d33860b20189d7efa8"&gt;aqui&lt;/a&gt;) tem uma falha: não identifica os &lt;em&gt;python eggs &lt;/em&gt;instalados automaticamente. Ou seja, era preciso repetir várias vezes o comando &lt;code&gt;sys.path.append&lt;/code&gt; especificando o caminho de cada módulo usado pelo projeto. Bem cansativo isso, né?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;E a solução?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Antes, entenda a peça chave disso tudo.&lt;/p&gt;
&lt;p&gt;O módulo &lt;a title="site é um módulo Python" target="_blank" href="http://docs.python.org/library/site.html"&gt;site&lt;/a&gt; é automaticamente importado durante a inicialização do Python. Esse módulo serve apenas para adicionar caminhos específicos para a lista de pesquisa de módulos, estou falando especificamente do &lt;code&gt;sys.path.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Este módulo possui alguns métodos que são uma mão na roda. E um deles é método &lt;em&gt;addsitedir, &lt;/em&gt;que adiciona o próprio diretório (passado como argumento) na variável &lt;em&gt;path&lt;/em&gt; e processa os arquivos com extensão &lt;em&gt;pth.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Recomendo que leia a &lt;a target="_blank" href="http://docs.python.org/library/site.html"&gt;documentação&lt;/a&gt; do módulo site&lt;em&gt; &lt;/em&gt;para mais informações.&lt;/p&gt;
&lt;p&gt;Veja a &lt;a target="_blank" href="https://gist.github.com/472812/85a9ee5e3d78cd52e95a99cfd347e5ff6c0184b2"&gt;solução do problema&lt;/a&gt;.&lt;/p&gt;</description><link>http://rainerborene.com/post/1087241064</link><guid>http://rainerborene.com/post/1087241064</guid><pubDate>Wed, 08 Sep 2010 14:23:00 -0300</pubDate></item><item><title>Desabafo sobre o Django</title><description>&lt;p&gt;Ultimamente tenho usado bastante o Django, framework para desenvolvimento de aplicações web que utiliza a linguagem Python.&lt;/p&gt;
&lt;p&gt;O problema é que existe algumas funcionalidades do Rails muito importantes que não são nativas do Django, como as migrações e a possibilidade de customizar elementos criados por funções do engine de template. Sem contar o suporte RESTful precário, ou quase nenhum.&lt;/p&gt;
&lt;p&gt;O Rails também tem suas desvantagens, principalmente relacionado aos aspectos comuns de uma aplicação web, por exemplo, autenticação e permissões. O Django possue suporte nativo dessas funcionalidades, que são disponibilizados em módulos separados, ficando ao critério do desenvolvedor em usá-las ou não.&lt;/p&gt;
&lt;p&gt;A verdade é que eu ainda estou em cima do muro em relação a esta decisão.&lt;/p&gt;
&lt;p&gt;Rails ou Django? Eis a questão (a não ser que eu encontre uma solução para os problemas citados sobre o Django).&lt;/p&gt;</description><link>http://rainerborene.com/post/1006116708</link><guid>http://rainerborene.com/post/1006116708</guid><pubDate>Tue, 24 Aug 2010 21:45:00 -0300</pubDate></item><item><title>Atualizando o Django na KingHost</title><description>&lt;a href="http://vimeo.com/13283356"&gt;Atualizando o Django na KingHost&lt;/a&gt;</description><link>http://rainerborene.com/post/1110028717</link><guid>http://rainerborene.com/post/1110028717</guid><pubDate>Mon, 12 Jul 2010 21:54:00 -0300</pubDate></item><item><title>Introdução ao Shell Script</title><description>&lt;p&gt;Shell Script é uma linguagem de programação interpretada, com diferente dialetos dependendo do interpretador de comandos utilizados.&lt;/p&gt;
&lt;p&gt;O interpretador de comandos mais popular é o bash, usado na maioria das distribuições GNU/Linux.&lt;/p&gt;
&lt;p&gt;Ou seja, um script é um conjunto de comandos que são executados pelo interpretador. &lt;/p&gt;
&lt;p&gt;Essa linguagem é bastante utilizada para automatizar tarefas que serão executadas mais de uma vez.&lt;/p&gt;
&lt;p&gt;O Shell Script possui algumas características que são comuns em outras linguagens como:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Estruturas de decisão&lt;/li&gt;
&lt;li&gt;Estruturas de repetição &lt;/li&gt;
&lt;li&gt;Funções e argumentos&lt;/li&gt;
&lt;li&gt;Definições de variáveis&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Excelente referência para estudos: &lt;a href="http://aurelio.net/shell/"&gt;&lt;a href="http://aurelio.net/shell/"&gt;http://aurelio.net/shell/&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description><link>http://rainerborene.com/post/732232251</link><guid>http://rainerborene.com/post/732232251</guid><pubDate>Thu, 24 Jun 2010 18:01:00 -0300</pubDate></item><item><title>Questions to ask your team</title><description>&lt;p&gt;&lt;ul&gt;&lt;li&gt;Why are we doing this?&lt;/li&gt;
&lt;li&gt;What problem are we solving?&lt;/li&gt;
&lt;li&gt;Is this actually useful?&lt;/li&gt;
&lt;li&gt;Are we adding value?&lt;/li&gt;
&lt;li&gt;Will this change behaviour?&lt;/li&gt;
&lt;li&gt;Is there an easier way?&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description><link>http://rainerborene.com/post/673107389</link><guid>http://rainerborene.com/post/673107389</guid><pubDate>Mon, 07 Jun 2010 10:41:00 -0300</pubDate></item><item><title>"Do something, now."</title><description>“Do something, now.”</description><link>http://rainerborene.com/post/479567796</link><guid>http://rainerborene.com/post/479567796</guid><pubDate>Sun, 28 Mar 2010 14:17:00 -0300</pubDate></item><item><title>jQTouch, breve introdução</title><description>&lt;p&gt;Estive experimentando o &lt;a title="jQTouch (jQuery Plugin)" target="_blank" href="http://jqtouch.com/"&gt;jQTouch&lt;/a&gt;, plugin para desenvolvimento de aplicações para iPhone ou navegadores baseados no WebKit, e posso dizer que é excelente.&lt;/p&gt;
&lt;p&gt;O jQTouch permite que meros desenvolvedores web como eu, criem aplicações mobile usando tecnologias tradicionais como HTML, CSS e JavaScript.&lt;/p&gt;
&lt;p&gt;Já existem aplicações sendo vendidas na &lt;a title="http://www.apple.com/iphone/apps-for-iphone/" target="_blank" href="http://App%20Store"&gt;App Store&lt;/a&gt; que usam o jQTouch, mas existe um porém.&lt;/p&gt;
&lt;p&gt;Há uma regra em que a Apple &lt;strong&gt;somente&lt;/strong&gt; aceita aplicações que foram desenvolvidas usando o iPhone SDK, mas existe uma ferramenta chamada &lt;a title="http://phonegap.com/" target="_blank" href="http://PhoneGap"&gt;PhoneGap&lt;/a&gt; que permite você distribuir sua aplicação em um formato aceitável pela Apple.&lt;/p&gt;
&lt;p&gt;O PhoneGap não é apenas uma ferramenta para distribuir aplicações que usam tecnologias tradicionais da web, é também uma ponte que traz algumas funcionalidades nativas do iPhone para o JavaScript. Além disso, o PhoneGap possui suporte para o Android, Palm, Symbian e BlackBerry.&lt;/p&gt;
&lt;p&gt;Eu realmente estou convencido que para desenvolver aplicações nativas para o iPhone (ou outros aparelhos modernos) precisa ser algo muito específico, e que realmente faça uso das funcionalidades que o dispositivo proporciona.&lt;/p&gt;
&lt;p&gt;Existem grandes oportunidades no mercado móvel, basta olharmos com atenção.&lt;/p&gt;</description><link>http://rainerborene.com/post/476905030</link><guid>http://rainerborene.com/post/476905030</guid><pubDate>Sat, 27 Mar 2010 10:39:00 -0300</pubDate></item></channel></rss>

