Minerim pé frio no Rio

Não sei se eu que sou um pé frio, ou se mineiro no Rio que não da certo. No ultimo fim de semana decidir dar um volta no Rio com minha esposa para descansar um pouco, a viagem foi muito boa. Só não sei se descansei. Vamos à história.

Tudo começou em uma noite escura na Rodoviára de Belo Horizonte. Desta vez fomos de onibus pois “virar borboleta” com diz certa companhia estava meio caro. Então fomos de “ôns mesmo”. Chegando na rodoviária esperando nosso “Halley”, para não falar o nome da viação. Descobrimos que em nosso horário tinha dois onibus partindo para o Rio. Isso é bom, pois dois ônibus indo juntos é melhor. Porém para começar o primeiro ônibus teve que pegar no tranco. Um monte de marmanjo dentro da rodoviária empurrando um ônibus. Graças a Deus que esse não era o nosso. Finalmente saímos da rodoviária e o que vemos meia hora depois? Aquele “caco véi” que saiu empurrado da rodoviária quebrado no caminho. Até ai tudo bem, não era o nosso mesmo. Porém chegando em Juiz de Fora o pneu do nosso ônibus esvaziou. O motorista não quis trocar e vamos “se bora”; horas depois estavamos no Rio de Janeiro em pleno horário de pico na Av. Brasil. Até que em um determinado momento o ônibus começa a mancar. Olha o motivo.

Ficou assim

Sabe como isso me deixou?

choro

Mas até ai tudo bem. Porém tem mais. Como iríamos ficar na casa de uns amigos e eles também estavam na Av. Brasil de carro. Eles nos pegaram lá e fomos para Queimados.

Na manhã seguinte como todo bom mineirim que vai no Rio, “vamos a la praia”. Na metade do caminho meu pé frio começou a funcionar novamente. A homocinética do carro quebrou. Passamos a tarde inteira correndo atrás desse peça. Finalmente as 4 horas da tarde estávamos na Barra da Tijuca.

“Ah! Praia! Maravilha.”

praia

Mas como eu já disse como todo bom mineirim pé frio. Quinze minutos depois começou a cair um temporal.

“Ah! Tchau praia.”

RESUMO DA PRAIA

17 mergulhos
17 caldos ou caixotes (detalhe que o primeiro me arrastou na areia que nem uma estrela do mar).

Mas não parou por ai…. voltamos para casa; “fazer o que né”.

Já no dia seguinte tinhamos que voltar para casa. Nosso “Halley” iria sair as 23:58. Vamos pegar a Av. Brasil e “vamo se bora”. Estamos lá todo feliz na Brasil brincando e rindo para logo descobrir que a chuva que tinha caído alagou a avenida e em uma distancia de 15 minutos da rodoviária esperamos 2h30m. Finalmente chegamos na rodoviária por volta de 2 da manhã. Conseguimos trocar a passagem para as 9 da manhã. Voltamos para a casa e chegamos por volta das 4 da manhã para levantar às 6h.

Isso que é descansar. Minerim no Rio não da certo.

O dia em que eu perdi tempo

Hoje fui assistir o filme “o dia em que eu perdi tempo“. Já pelo nome do post dá pra ter uma idéia do que achei.
Vai caminhando durante todo o filme uma historinha básica. O trailer ou qualquer sinopse que você vê ou lê, dá uma idéia bem diferente do que ele é de verdade. Não vejo algo especial. Não quero ficar comentando muito sobre o filme para não atrapalhar o cinema de outros, mas está aí minha opinião. Porém, há coisas engraçadas no filme. Tipo, propagandas, propagandas e propagandas.

É até engraçado você reparar. Quanto o garoto senta na cama jogando o seu joguinho, seu pc é um LG. Quando a mulher recebe um celular do governo e ele é jogado na cama ele é um? LG. O carro para um um estacionamento e o que aparece no parabrisa do carro? McDonald’s.

Agora o mais engraçado. Mas você tem que ser rápido para perceber. Quando os cientistas vão explicar uma coisinha para o governo a cena passa rapidamente pela o PC mesa da Microsoft (M. Surface) e o que você vê? A bolinha do Vista. Aí a cena vai para os cientístas e quando volta para a mesa. Lá está todo o conteúdo dos cientistas. Serão mensanges do além!?

Não!

Acho que é da Microsoft mesmo.

Bom é isso ai, pega seu dinheirinho suado e vai gastar no cinema para ver o filme “O DIA EM QUE O SOFTWARE PAROU”

Será isso uma mensagem subliminar para a Microsoft? Não é direta mesmo. Corre atrás mesmo porque está ficando a ver navios.

Celta ou Uno? .erb ou .haml?

Dúvidas cruéis ou simplesmente gosto? Bom como eu falei finalmente consegui tempo para fazer um teste de performance para tentar descobrir o que é melhor. Usar haml ou as bibliotecas do RoR para gerar html. Fiz um teste bem básico de renderização para sanar minha grande curiosidade. Fiz uma busca de 70456 usuários e depois um loop básico.

RoR:

<ol>
  <% @users.each do |user| %>
    <li>
      <%= link_to “#{user.first_name} #{user.last_name}”, user %><br/>
      <%= mail_to user.email, user.email %>
    </li>
  <% end %>
</ol>

#HAML

%ol
  - @users.each do |user|
  %li
    %a{:href => "/users/#{user.id}"}= "#{user.first_name} #{user.last_name}"
    %br
    %a{:href => "mailto:#{user.email}"}= user.email

Fiquei surpreso com o resultado. Ao utilizar o #haml minha página renderizou em 34.34400 (12%) e para a minha surpresa sem o #haml em 31.95400 (11%). Uma diferença de pouco mais de 2sec. Para um loop simples e pouco conteúdo para renderizar é uma diferença muito grande. Se você pensar em uma página com bastante códigos #haml essa diferença pode aumentar considerávelmente. Bom é isso ai. Fica a seu critério. Visualmente o #haml é bem melhor, validação W3C também, porém para performance fica minhas dúvidas.

Sobre o Celta e o Uno. Fico com o Celta.

Isso leva o #haml ser ruim?

Bom estou aqui novamente falando do #haml. Exatamente agora acabei de converter um projeto todo para #haml encontrei alguns obstáculos na utilização do haml. Ainda não fiz o teste de performance, mas assim que terminar esse artigo farei alguns testes para possívelmente aplicar o #haml em um projeto que estamos trabalhando. Assim que tiver resultado post aqui para vocês. Bom voltando aos obstáculos. Na verdade não sei se posso chamar de obstáculos, mas sim de qualidade de código. Uma das coisas que mais me chamou atenção no #haml foi a questão de economia de linhas como falei no artigo anterior. Porém em alguns pontos gastei mais linhas do que economizei.

Para gerar um menu assim:

ver álbum | adicionar mais fotos | editar álbum | excluir álbum

<%= link_to ‘ver álbum’, ‘url’ %> |
<%= link_to ‘adicionar mais fotos’, ‘url’ %> |
<%= link_to ‘editar álbum’, ‘url’ %> |
<%= link_to ‘excluir álbum’, ‘url’ %>

Agora em #haml:

a%{:href => url} ver álbum
|
a%{:href => url} adicionar mais fotos
|
a%{:href => url} editar álbum

Quase dobramos o número de linhas, de 4 para 7 linhas. Esse é um exemplo que você irá ter mais linhas do que se não usasse o #haml, com certeza irá bater com outros detalhes. Porém até agora ainda não considero o #haml ruim, olhando a documentação encontrei muitas coisas que não tinha reparado antes. Mas por hoje é só.

Vou aproveitar para dar um dica.
Quanto você for fazer um form em sua aplicação e utilizar a função “form_for” e derivados não coloque “=” e sim “-” pois senão seu “form” será duplicado.

#haml – Soluções em HTML?

Recentemente meu irmão Ronaldo Ferraz, apresentou uma coisinha chamada HAML a mim, comecei a “brincar” com ela no mesmo instante e comecei a achar esse bichinho interresante. O que ele exatamente faz pra você, resumidamente.

Ele ajuda a você a criar html. Você não precisa preocupar mais com identação, abrir e fechar tag, onde abre e onde fecha tag html e o melhor economiza código. Estou aplicando esse bichinho em um site pessoal que estou desenvolvendo. Tive já alguns resultados gratificantes. A página que renderiza o layout tem 172 linhas, após converter para haml, terminei com 42 linhas e com o código perfeitamente identado e limpo. Até este momento estava muito empolgado, mas estou começando a encontrar alguns obstáculos. Não grandes o suficiente para parar ou descatar o haml, mas que ainda não encontrei soluções.

Por exemplo:

<!–[if IE 7]>
<%= stylesheet_link_tag “ie7″ %>
<![endif]–>

<!–[if lte IE 6]>
<%= stylesheet_link_tag “ie6″ %>
<![endif]–>

Isso eu ainda não consegui aplicar ao haml, o que faço é criar um partial em htm.erb. O que ainda não tive tempo de testar é performace, mas assim que der estarei aplicando a postando aqui.

Pessoal se vocês tiverem dicas e sugestões posta ai para a gente.

Tô de volta…

Depois de um inverno frio, sombrio e longo vou voltar a fazer o que não sei fazer… escrever em blog. Também não sei se posso falar que o inverno foi tão frio assim; a esposa não deixa ser frio ;) . Mas voltaremos pois se é para o bem da nação. Recebi vários pedidos de retorno, falando que meus posts eram legais e que eu deveria voltar a escrever, bom mas antes quero agradecer a todos que clamaram minha volta. Segue o nome de todos como forma de agradecimento. Obrigado…

Ronaldo Ferraz, Ronaldo Ferraz, Ronaldo Ferraz, Ronaldo Ferraz, Ronaldo Ferraz… bom infelizmente o tempo não permite eu citar todos os nomes mas, obrigado a todos vocês que pediram minha volta. Até os próximos posts.

FLEXibilidade

Alguém aqui já brincou com o FLEX? Não to falando do CELTA FLEX. Mesmo porque não tenho nem carteira de motorista. Brincadeirinha. Falo isso porque muitas vezes procuro na internet coisas sobre o Flex e sempre caio em propaganda de Celta Flex.

Recentemente desenvolvi um projeto de Reunião Online com um monte de frescurinhas (vídeo, áudio, apresentações, gravação, etc). Mas vamos concordar aqui comigo, o Flex é uma linguagem mais de interface, você precisa de outra linguagem por traz para fazer a “pancadaria” acontecer, mas mesmo assim esse negócio é bom demais sô. Ele lhe dá uma FLEXibilidade para desenvolver interface e com isso você até ganha moral, porque os clientes se empolgam com aquelas firulas na tela.

Nesse mesmo projeto apresentei uma dessas firulas: o gestor adicionava uma pergunta e para todos os participantes logados no sistema aparecia uma janelinha toda “fofinha”. O cliente só faltou pular de tanta empolgação; ficou que nem criança lançando a pergunta toda hora só pra ver a janelinha entrando na tela. E olha que não era um cliente qualquer, era empresa grande. Interface conta porque tem hora que é só isso que o cliente pode ver.

Vamos ver o que o Flex traz.

CakePHP & CodeIgniter

Em se tratando de desenvolvimento em PHP. CakePHP é muito bom. Porém tem seus inconvenientes. Recentemente desenvolvi uma intranet com este framework e entreguei funcionando perfeitamente; porém, quando a empresa mudou seu servidor limitando a banda do sistema, foi que descobri um dos problemas do Cake. Seus relacionamentos entre tabelas retornam muito dados desnecessários.

Ainda não descobri uma solução para isso, porém, para falar a verdade, parei de procurar, pois foi me apresentado o CodeIgniter. Ainda não desenvolvi nenhum projeto grande com ele, mas já andei fazendo minhas brincadeiras e tenho gostado. Se você é obrigado a mexer com PHP dê uma olhada neste framework.

Tô precisando pegar um solzinho…

Preciso rever meus conceitos. Outro dia estava eu explicando a uma amiga que está fazendo ciência da computação com funciona a Web, o que é um framework, e não existe algo melhor para fazer uma média do que o RubyOnRails. Só tinha um pequeno detalhe que eu não levei em conta: eu aprendi na versão 0.9.3 e fui até 1.1.6; depois disso fui dar um “rolé” em outras linguagens e acabei ficando por lá.

O que eu não contava é que nosso “amiguinho” o Rails já estão na versão 2.0 e eu tinha atualizada ele na minha maquina. Então lá vou eu nos conceitos de 1.1.6 mexer em 2.0. A nossa conversa ficou mais ou menos assim:

Renato: Então você da este comando “rails myproject” e ele cria um conjunto de diretórios para você…
Amiga: Ohhhh!
Renato: Depois você da outro comando para iniciar o servidor…
Amiga: Ohhhhhhh!
Renato: Você cria o banco e dá outro comando para gerar o controller, model e view…
Amiga: Legal!
Renato: Ai você tem um “sisteminha” que já insere, edita…
Amiga: Ohhh! Legal…
Renato: Você pode mudar os nomes do campo é só vir aqui no form.html… é… é… uai deveria esta aqui… acho que deu um problema. QUÊ! Que isso “index.html.erb”?
Amiga: Hã?
Renato: Tá, esquece isso. Vamos no controller.
Amiga: Que que é controller mesmo?
Renato: Ai meu Deus. Que isso? respond_to do |format|… nossa mudou muita coisa.
Amiga: Hã… sei!
Renato: Então, acho que nosso tempo acabou. Sábado que vem conversamos mais.
Amiga: Beleza… Tchau.
Renato: Tchau.
Renato: AMOR! Cadê meu celuar preciso ligar para o Ronaldo!

É preciso pegar um solzinho mesmo.

MinasOnRails’07

Em 2007 organizamos um evento aqui em Minas Gerais sobre RubyOnRails e falamos de vários assuntos. Ruby: Passado, Presente e Futuro, DSL: Criando linguagens para suas aplicações, Test-Driven Development com Rails, dentre outros. Mas o mais engraçado foi o fato de muitos pessoas no início do evento ficaram revoltados perguntando uns aos outros: “Mas não era sobre RoR o evento?”. Isso porque começamos com esse video. Foi muito bom, valeu a pena o evento e nos surpreendeu com a quantidade de pessoas. Quem sabe ainda voltamos com esse evento. Segue o video para vocês rirem um pouco.

Primeiro de muito, que infelizmente não aconteceram. Quem sabe um dia ainda podemos voltar.