Category Archives: Portuguese

Screencasts de Ruby on Rails para iniciantes

ruby_rails

No ano passado, eu comecei a gravar alguns vídeos pra ajudar quem gostaria de começar a programar com Ruby on Rails.

Por enquanto são 3 screencasts apenas, mas já é o suficiente pra quem gostaria de começar.


Linguagem de programação “Ruby” (para iniciantes)



Ruby on Rails (para iniciantes)



Ruby on Rails – introdução às rotas


Por favor, me mandem feedback, com sugestões, críticas ou até mesmo dúvidas. Espero que gostem e que seja útil ;-)

15º Encontro Locaweb de Profissionais de Internet

Screen Shot 2013-05-08 at 10.12.49 PM

Ontem participei do 15º Encontro Locaweb em Curitiba-PR. O evento foi interessante e bem organizado e não estou dizendo isso só porque trabalho aqui :-)

Assisti as seguintes palestras:

  • Fábio Ricotta – “Usando SEO para alavancar suas visitas e negócios”
  • Diego Eis – “Guia de Sobrevivência”
  • Murilo Gun – “O segredo do fracasso”
  • Silvio Meira – “Empreendedorismo Digital”
  • Luli Radfahrer – “Internet das coisas, computação em nuvem e tendências 2013″

Todas foram boas, mas as apresentações do Ricotta, do Eis e do Luli me surpreenderam, foram muito boas mesmo!

Tiramos essa foto aí na hora do almoço, no Jardim Botânico. Da esquerda pra direita: Ítalo Oliveira, Diego Eis, eu, Bruno Batalha e Marcos Oliveira:

jardim botanico curitiba

Que venha o 16º encontro! :-)

Screencast #2 – Interessante plugin “vim-abolish”

Esse é o segundo screencast que eu faço para o blog e novamente é sobre Vim.
Esse ficou bem mais curto (tem apenas 5 minutos) e vai direto ao ponto. Espero que gostem!

Se quiserem ver o primeiro, o link é: http://blog.lucascaton.com.br/index.php/2011/12/13/screencast-1-17-dicas-para-o-vim/

Links relevantes:

Screencast:

(caso não consiga ver o vídeo, clique aqui)

Por favor, mandem feedback sobre o que acharam!

Projeto “MyPodcasts.info”

Eu sou um cara que gosta muito de escutar podcasts. Escuto vários, sobre variados temas, alguns em português, outros em inglês, alguns sobre áreas totalmente diferentes da que eu trabalho, alguns nostálgicos, alguns pra melhorar meu inglês, etc. E sempre que encontro com alguém e descubro que a pessoa também escuta podcasts, rola as perguntas sobre qual escuta, sobre o que se trata, quais amigos em comum escutam, qual o nível de qualidade, entre outras dúvidas. Foi aí que surgiu a idéia de criar o site MyPodcasts.info, um site onde você pode cadastrar tudo isso e no final ter uma URL publica para passar para os interessados nos podcasts que você escuta.

Há 2 meses atrás eu o coloquei no ar e logo em seguida o liberei como open-source: github.com/lucascaton/mypodcasts.info. Então, sintam-se a vontade para usar o site e contribuir com ele.

Seguem alguns screenshots:

Screen Shot 2013-04-21 at 6.38.43 PM

Screen Shot 2013-04-21 at 6.44.15 PM

Screen Shot 2013-04-21 at 6.44.50 PM

Ah sim! O site é (mais ou menos) responsivo:

Screen Shot 2013-04-21 at 6.48.11 PM

Tenha orgulho ou f…-se

(Esse post é uma tradução (autorizada) do artigo “Take pride or f— it” do Rob Heaton)


O arquivo vazio “sem_titulo.txt” brilhando no seu editor de código só pode significar uma coisa. É hora de criar uma nova funcionalidade.

A última funcionalidade que você desenvolveu começou muito bem, com uma arquitetura esculpida tão elegante e requintada que te fez chorar um pouco quando ninguém estava olhando. Mas as coisas mudaram e no final ficou um lixo. Você não estava particularmente orgulhoso de nada e agora está feliz apenas porque isso vai sair do seu caminho. “Mas tudo vai ser perfeito dessa vez!” você diz a si mesmo e mais uma vez ansiosamente começa a trabalhar. Um pouco mais tarde você olha ao redor e sua funcionalidade que já está meio pronta já está caindo aos pedaços, está em chamas. “Droga!” – você diz.

Eu passei por isso em muitas funcionalidades e projetos. Estou cansado disso e eu sei por que isso acontece. Eu escrevo codigo bom e crio um bom produto quando eu me sindo orgulhoso do que eu estou fazendo. Esse sentimento pode vir por vários motivos – uma equipe que valoriza bom código, clientes os quais estão desesperados para testar uma nova funcionalidade ou uma sensação de habilidade e crença que estou me divertindo fazendo algo bom. Idependente de de qual seja o motivo, se ele não existir, o que eu estou fazendo ficará bem ruim.

Quando eu perco o orgulho de alguma coisa, eu paro de me preocupar se isso ficará bom ou não. O único valor que isso terá para mim é não ter mais que mexer nisso um dia. Isso sempre começa quando estragamos um pequeno trecho do código, mas apenas isso já é o suficiente. A caixa de Pandora foi aberta e a sua nova funcionalidade está infectada. Eu estrago o próximo trecho de código com apenas um pouco de remorso e a partir desse ponto, eu não vou mais vou me importar com isso.

Porque eu sei que você tem que ENTREGAR, que os usuários não se importam como está o seu código, que essa funcionalidade é REALMENTE CHATA e eu só quero começar outra. Então não importa se meus models conhecem a lógica das minhas views, porque levaria 20 minutos que NÓS NÃO TEMOS para resolver isso. Estou fugindo das regras, mas é somente em um ou dois métodos.

Mas isso nunca acaba aí. Essa funcionalidade, ou talvez o produto inteiro, estejam contaminados. Não existe mais nada para se ter orgulho. Não existe nenhuma demonstração de habilidade. Não existe uma forma de fazer que os dados parseados pelo módulo que eu acabei de escrever fiquem legíveis, porque quem vai ler com certeza não entenderá de onde os dados vem. Eu já liberei os cães do inferno e cobri todo o meu código com bacon.

Perder o orgulho do que você faz te transforma em um zumbi, cujo objetivo é, além de ingerir cérebros, é terminar logo a nova funcionalidade. Isso vai acontecer, de qualquer forma. E exceto se você conseguir ter orgulho novamente, esse código não vai ficar bonito. Você tem que lembrar como isso era antes, no começo, há muito tempo atrás. Quando seus controllers eram pequenos e seus models não foram cobertos por ácidos e cacos de vidros. Pense bastante. Pense novamente.

Para minha redenção mortos-vivos, eu tenho que fazer as pazes com o que eu fiz ou então levantar e fazer uma pausa. Então, com a cabeça limpa e reabastecido com bom senso, eu tenho que decidir se quero fazer as coisas direito. Se eu não puder ou não fizer, então essa nova funcionalidade estará condenada e eu devo levar uma estaca até o seu coração e começar uma próxima coisa. Deixar o monstro a crescer e sofrer mutações não é uma opção.

Frequentemente eu sinto que estou gastando meu tempo fazendo coisas direito ou pelo menos de uma forma justificavelmente errada e isso é perdoável. Termine! Entregue! Mas um código ruim reduz a velocidade das coisas muito mais do que um bom código o faria. É muito fácil escrever alguma porcaria, ser forçado a escrever várias camadas de lixo em cima disso, gritar “espirito de LEAN STARTUP” para qualquer um que o questionar sobre o que você está fazendo. Você precisa de uma razão muito boa e imediata para escrever código ruim, ou seja, uma vaga sensação de pressão ou apatia não são suficientes.

Porque isso nunca acaba aí. E tão cedo quanto o T-virus seja produzido, você terá um apocalipse de código-zumbi em suas mãos.

Projeto “time_clock”

É comum na maioria das consultorias brasileiras de software, principalmente as que contratam funcionários através de regime PJ, solicitarem o relatório de horas trabalhadas mês a mês. Como esse era o meu caso no ano passado, eu criei um pequeno sistema para facilitar esse controle.

Eu havia criando essa funcionalidade dentro do próprio código do meu site, mas como várias pessoas gostaram e me pediram o código, eu extraí o código para um projeto a parte e o liberei como open-source.

Sinta-se à vontade para usar, melhorar e divulgar:
https://github.com/lucascaton/time_clock

Seguem alguns screenshots:
Screenshot browser
Screenshot iPhone

Ruby 2.0 lançado! O que há de novo?

ruby2

A versão 2.0 do Ruby foi lançada há dois dias.

Eu pensei em escrever um post listando e comentando cada uma das novas features, alterações, melhorias e incompatibilidades (quase nenhuma, felizmente) da linguagem. Mas acabei encontrando dois posts muito bons que fazem exatamente isso. O primeiro utilizando exemplos de códigos e o segundo são os slides do Urabe Shyouhe. Então, não deixe de ler:

http://blog.marc-andre.ca/2013/02/23/ruby-2-by-example/
https://speakerdeck.com/shyouhei/whats-new-in-ruby-2-dot-0