All Posts

It is not about R$0.20 anymore

Credits: Folha de s√£o Paulo It is not about R$0.20 anymore The increase of bus fares and police violence is triggering something bigger in Brazil Yesterday was a really difficult day to focus at work, here in San Francisco, as many friends and family members sent me links, pictures and videos about a big protest in S√£o Paulo, city I used to live not long ago. June 13th was the fourth protest, organized by Movimento Passe Livre (Free Fare Movement), regarding the increase of public transportation fares, from R$3.

Novidades call4paperz.com Recentemente o call4paperz.com passou por um período meio ruim. Depois que eu tornei o projeto opensource, mal me dediquei ao projeto. Algumas pessoas (obrigado Fabio Akita, Duke e Nando Vieira!) contribuíram para tornar o projeto um pouco mais adequado, mas ainda faltavam muitas coisas a serem feitas. O principal era a migração do ambiente do Heroku. Estávamos rodando o call4paperz no stack bamboo, que é um pouco antigo, e alguma das mudanças introduzidas no projeto não rodariam lá.

Errata: Sess√Ķes em Rails No meu livro Ruby on Rails: Coloque sua aplica√ß√£o web nos trilhos, h√° um cap√≠tulo sobre sess√Ķes e cookies, em que eu falo: O Rails j√° sabe disso e sabe a melhor maneira de prever ataques como esse. E √© justamente essa a grande diferen√ßa entre o cookie e o session - o session √© encriptado usando uma chave "m√°gica", de forma que o usu√°rio nunca saber√° o conte√ļdo do cookie e, portanto, dificilmente conseguir√° forjar uma sess√£o.

Programa√ß√£o funcional: conceitos Observa√ß√£o: Esta s√©rie sobre programa√ß√£o funcional √© basicamente uma interpreta√ß√£o minha do que estou aprendendo enquanto estudo. Note que o tempo verbal usado √© o presente no modo cont√≠nuo. Isso significa que eu ainda estou aprendendo, e portanto, este e outros artigos est√£o sujeitos a erros crassos ou aproxima√ß√Ķes ing√™nuas. Por que programa√ß√£o funcional importa? Antes de entrarmos em exemplos de programa√ß√£o funcional e os principais conceitos envolvidos, primeiro vamos entender a motiva√ß√£o por tr√°s desse paradigma e por qu√™ ela se mostra uma boa alternativa para a resolu√ß√£o de problemas na computa√ß√£o.

Aprendendo programação funcional

Aprendendo programação funcional Faz um tempo que eu tento aprender programação funcional, mas sempre encontrei barreiras. Com certeza a principal razão disso é que eu sempre programei com Orientação a Objetos, com Ruby, Java e Python e linguagens procedurais, como C. Porém, desde o começo de 2011 tenho ouvido falar muito de linguagens funcionais, como Erlang, Scala e Clojure, e o interesse jamais se dissipou. Como eu não conhecia nenhuma linguagem funcional, resolvi começar diretamente com Clojure, pelo simples motivo de ser baseada em LISP, a linguagem funcional considerada fundamental.

call4paperz.com goes opensource In 2010, me, Douglas Campos (qmx) and Anderson Leite worked on a RailsRumble project called call4paperz.com. Almost 2 years later, the project is still online and being used by a lot of people. It is definitely one of my most successful personal projects I’ve ever made, and I am really proud of it. Unfortunately, I haven’t been fair to it. It has a lot of potential, but I’ve only been doing some simple maintenance in this period, and I am sorry, I have not been fair to call4paperz users.

Careful With That Hax, Eugene (Esta √© uma brincadeira com o nome da m√ļsica ‚ÄúCareful with that axe, Eugene‚ÄĚ, do Pink Floyd) Dificilmente temos um site hoje em dia em que n√£o precisamos usar jobs em background. Para Rails, o Resque √© uma das solu√ß√Ķes mais populares. O resque vem com uma ferramenta bem elegante para monitora√ß√£o das filas: Essa ferramenta √© excelente para monitorar e depurar os jobs executando no site atualmente.

Misturando imagens de background com gradientes Estou trabalhando atualmente no site RockInSampa, um site que agrega os shows de rock da cidade de S√£o Paulo. O layout final do site √© o seguinte: O fundo dele consiste de uma leve ‚Äútextura‚ÄĚ com noise, dando uma impress√£o de cimento ou asfalto, e tamb√©m um gradiente que vai escurecendo conforme chega-se ao fundo da p√°gina. Por√©m, este efeito √© problem√°tico de se implementar.

Revis√£o do livro Web Operations - Keeping the data on time TL;DR: Bom livro para as pessoas que n√£o tem contato com a √°rea de opera√ß√Ķes. Um ou outro cap√≠tulo chega a quase ser de auto-ajuda, mas o resto vale totalmente a pena, como escalabilidade em banco de dados, introdu√ß√£o a NOSQL, Cloud Computing e Continuous Deployment. Recomendado! O resto Em minha curta vida profissional, eu s√≥ trabalhei em dois tipos de ambiente: um ambiente que eu n√£o tinha a oportunidade de verificar como eram as m√°quinas em produ√ß√£o, e no outro que eu fazia o sistema de produ√ß√£o como eu bem entendia.

Criando um Responder para JSONP no Rails 3 Recentemente eu tive que implementar uma feature no call4paperz que é responder dados dos eventos do site em JSONP. JSONP é na verdade bem similar com a resposta JSON que o site já tinha, porém a resposta não mais é JSON puro, e sim um código JavaScript que chama um callback especificado. Quando a resposta do servidor for executada, esse callback é chamado automaticamente.