Hello, Ruby!!

Sou obrigado a admitir uma coisa: Tenho sentido bastante saudade de programar.

Tendo me acostumado a fazer isso durante alguns anos em minha vida, enquanto trabalhei ativamente no desenvolvimento de rotinas, sistemas e relatórios para meu empregador, minha trilha de carreira nos últimos anos acabou por me desviar de tal rumo, o que, na prática, significa dizer que minhas atribuições atuais não são exatamente as mais apropriadas para continuar tendo contato com escrever e compilar código, entre outras coisas.

Acho que, na prática, as palavras que estou tentando buscar são “eu não sou mais um programador“. Pelo menos, não um que faça isso profissionalmente — o que não quer dizer que eu não possa me impor o desafio de continuar em contato com o mundo da programação.

Para isso, após refletir um pouco nos últimos dias, cheguei   conclusão de que a melhor coisa a se fazer é aprender uma nova linguagem de programação — e, sem maiores delongas, resolvi que quero aprender Ruby, sobretudo porquê é uma linguagem que sempre me chamou a atenção por ser elegante e sofisticada, além de possuir código fonte que, quando lido, faz sentido até para seres humanos.

Há também um outro ponto: Aquele em que eu admito que já tentei aprender a linguagem no passado, um projeto abandonado por falta de tempo, e, principalmente, de força de vontade.

No entanto, tentando fazer com que as coisas tomem um rumo diferente desta vez — o rumo em que eu efetivamente consigo aprender a linguagem —, resolvi começar instalando o Ruby em meu PC. No entanto, ao invés de recorrer ao site oficial, baixei o RubyInstaller for Windows, um pacote de instalação que contém o Interactive Ruby — na realidade, um terminal em que a linguagem Ruby, interpretada, pode ser diretamente executada. Há também códigos-fonte e um livro em formato PDF — “The Book of Ruby“, de Huw Collingbourne —, que acaba servindo como um guia de primeiros contatos com a linguagem (aliás, é possível baixar apenas o livro, direto do site do autor, se alguém tiver interesse).

Com o Interactive Ruby em mãos, resolvi também me aventurar com alguns tutoriais rápidos, como é o caso do Ruby in Twenty Minutes, que está disponível no próprio site da linguagem de programação. Foi através deste tutorial que comecei como todos começam, ou seja, escrevendo o meu primeiro Hello World! em Ruby:

puts "Hello world!"

E, é claro, também foi fácil entender como sofisticar a coisa um pouco mais:

def h(nome = "world")
     puts "Hello, #{nome.capitalize}!"
end

Neste exemplo, a grande diferença foi o uso da palavra-chave reservada def, que permite definir um método para dizer Hello digitando apenas h. Se nenhum nome for informado, o resultado será um simpático “Hello World!” — e, notem, nãoHello world!”, já que foi utilizado o método capitalize, diretamente aplicado   variável nome. Aliás, para quem não sabe, um dos diferenciais da linguagem Ruby é que, nela, tudo é um objeto, sujeito   ação de métodos — mesmo as variáveis.

Mas na minha opinião, o que mais chama a atenção neste segundo código em Ruby é  o comportamento do método puts, que coloca conteúdo na tela. É possível embutir variáveis diretamente na impressão, apenas cercando-as com #{} — no exemplo acima, a variável nome torna-se #{nome}.  Também dá pra fazer cálculos e exibir seus resultados em uma nova linha com tabulação — através, respectivamente, dos códigos de escape não imprimíveis \n e \t — com uma única linha de código:


puts( "\n\t#{(1 + 2) * 3}\nAté logo!!" )

Na prática, o que estou percebendo, é que será muito divertido voltar a aprender a linguagem — e o que eu sinceramente espero é poder dividir meu aprendizado com quem estiver disposto, bem aqui. Desejem-me sorte!!

Como controlar figurinhas em grande estilo

Resolvi, no começo da semana, desenvolver um pequeno trecho de código — logo abaixo — para poder fazer o acompanhamento das figurinhas que eu ainda preciso para completar o álbum da Copa do Mundo FIFA 2010.

Como eu uso uma planilha Excel para isso, nada melhor do que recorrer ao bom e velho VBA, ou, na prática, em linguagem leiga, fazer uma macro.

Sub Faltantes()

    Dim c As Range
    Dim n As Long

    Sheets("Plan1").Activate
    n = 0

    'Passa por cada célula
    For Each c In ActiveSheet.UsedRange.Cells
        'Se não for uma célula pintada de amarelo,ainda não temos a figurinha
        If c.Interior.ColorIndex <> 6 And Not IsEmpty(c) Then
           n = n + 1
        End If
    Next

    MsgBox "...faltam " & Trim(Str(n)) & " figurinhas!", vbOKOnly + vbInformation, "Então..."

End Sub

O resultado da macro pode ser visto a seguir:

Controle de Figurinhas... em VBA!!

Ok. Eu admito. Isto é ser nerd.

Stormtroopers 365

TK455 : “Be careful, 479. I don’t want to be Force-lightned by the Big Boss.”
TK479 : “Yeah, yeah…”

O usuário Stéfan, do Flickr, tirou 365 fotos — quase consecutivas — de nossos amigos stormtroopers em situações humorísticas e dramáticas. O resultado foi um conjunto de imagens muito interessantes — e pra lá de divertidas. Vale a pena dar uma olhada em todas. [via]

LOST: Flight 815 Crash in Real Time

The crash of Flight 815 from Lost in real time in the style of 24. I made this mostly to see if it could be done and I think it came out pretty well. Enjoy!

Apenas um comentário: Eu concordo. O resultado é genial…

Bookbook, a capa inusitada

BookBook is a one-of-a-kind, hardback leather case designed exclusively for MacBook and MacBook Pro. Available in Classic Black or Vibrant Red, BookBook brings three levels of security to your prized Mac. First, the hardback cover and spine provide solid protection from the rigors of the road. Second, the vintage book design disguises MacBook for superior security. And third, the stylish case protects you from being like everyone else because BookBook is totally original, just like you. [link]

Isso me desperta dois pensamentos:

  1. Droga!! Eu quero um MacBook também!!
  2. Como foi que ninguém nunca pensou nisso antes?

Ninja’s Unboxing

http://www.youtube.com/watch?v=f_ETSvTAo4A

Quando assisti pela primeira vez, pensei até se tratar de um anúncio produzido pelo próprio Google para o Nexus One — bem que poderia ser. Mas depois de ver os créditos finais, percebi que a coisa tinha sido criada por Patrick Boivin, produtor canadense de filmes, que utilizou a técnica de stop motion animation, num resultado bem bacana.

Vocês não acham?

(via @cesaraovivo)

iSaw, a serra USB

É verdade que todos os dias surgem os mais diversos tipos de gadgets ao redor do mundo. No entanto, também é verdade que ninguém jamais imaginaria que uma motoserra — do tamanho de um teclado — pudesse ser ligada ao computador, para que fosse recarregada através de uma porta USB 2.0.

Pois bem, eis o vídeo de demonstração da i.Saw, a primeira do gênero que garante realizar tal feito:

O produto, que começou a ser anunciado esta semana através de seu site oficial pela bagatela de US$ 59,95, chamou a atenção não apenas de sites especializados como o Gizmodo, mas também do site de notícias brasileiro G1:

i.Saw no G1

Tudo, no entanto, não passou de uma bela brincadeira, como acabou esclarecendo posteriormente o próprio pessoal do Gizmodo. O intuito de seus idealizadores era despertar nas pessoas um pouco mais de consciência ecológica. Todos os interessados no produto na verdade receberam mensagens de e-mail com o seguinte conteúdo:

Hello.

We love that you liked the i.Saw enough to pre-order.

Truth is, you already own a chainsaw. Your keyboard.

Help save more trees by cutting down on unnecessary printing. Download PaperCut, a free application that plays the sound of a chainsaw each time you press Ctrl-P.

Available for Mac and PC.

Thanks for the support. Help spread the buzz, if you will 🙂

PaperCut Team
(formerly known as i.Saw Team)

Ao acessar o site do PaperCut, você é convidado a baixar um programa, disponível para Windows e Mac, que imita o som de uma motoserra todas as vezes em que você decide imprimir alguma coisa.

Site do PaperCut

Eu, que há tempos imprimo tudo o que gero aqui em casa apenas em formato PDF, achei a brincadeira extremamente interessante, porquê mexe com um lado das pessoas — aquele, que todos tem em maior ou menor grau, relacionado ao interesse pela tecnologia — para transmitir algo totalmente diferente, sobre o que não pensamos todos os dias…

Quanto ao G1, pelo menos até agora, não atualizou a notícia original. Todos os que chegam   nota original continuam pensando — provavelmente, é claro — que se trata de algo verdadeiro.

Cedendo à tentação de um Tumblelog

Sabe quando você está surfando por seus blogs favoritos e encontra algo que poderia ter sido você mesmo quem escreveu? Pois bem. Lendo há pouco o último artigo do blog do meu amigo Rodrigo Ghedin — entitulado O que o Tumblr tem? — me deparo com a seguinte afirmação (sendo que os negritos ficam por minha conta):

Estou com algumas dificuldades para atualizar este blog. De repente, parece que todos os assuntos são chatos e irrelevantes, minha capacidade de desenvolver textos desceu ralo abaixo, e a coisa simplesmente não flui.

Contrapondo essa situação despesperadora para quem escreve (e quem nunca passou por ela?), tem um Tumblr na aba ao lado me tentando. Imagine um blog simplificado, com suporte sólido a quaisquer tipos de conteúdo (vídeo, sons, bate-papo, etc.), e que preza a simplicidade, tanto da forma, quanto do conteúdo. Esse é o Tumblr.

Na sequencia do texto, o Rodrigo continua a usar palavras que poderiam ser minhas. Tal como eu, ele já pensou — e ainda pensa — “…em substituir esse blog com cara de cansado pelo Tumblr“. Tudo isso, tenho que concordar com ele, graças   ausência de regras para utilizar o serviço, na verdade, um gerenciador de tumblelogs. Tempos atrás, aliás, quando cheguei a levar adiante uma série de modificações por aqui para mesclar blog, microblog e tumblelog, cheguei a citar a definição do que seria este último:

A tumblelog (also known as a tlog or tumblog) is a variation of a blog that favors short-form, mixed-media posts over the longer editorial posts frequently associated with blogging. Common post formats found on tumblelogs include links, photos, quotes, dialogues, and video. Unlike blogs, tumblelogs are frequently used to share the author’s creations, discoveries, or experiences while providing little or no commentary.

— A definição em português também pode ser vista na Wikipedia.

Agora vejamos: O ritmo de trabalho pelo qual ando passando me impede de pesquisar aprofundadamente assuntos novos. Sem que esta pesquisa ocorra, sei que não serei capaz de produzir artigos que eu julgue serem de qualidade minimamente suficiente para serem publicados por aqui. Me incomoda profundamente o fato de tentar escrever apenas por escrever, e, nos últimos meses, já perdi a conta de quantas vezes já comecei artigos para os quais aquele lampejo de inspiração simplesemente se apagou no meio do processo de criação.

É aqui, exatamente neste ponto, que o pensamento, a tentação do Tumblr e de sua ausência de regras se encaixa. Escrever pequenas notas, comentários, dividir links, fotos e vídeos é muito mais simples — e, Deus, não precisa de pesquisa alguma. Novamente citando minha árdua rotina diária de trabalho, encontro justificativas para talvez começar a dar preferência a este formato mais curto:  Todo o tempo que passo conectado   grande rede em casa, ultimamente, acaba sendo usado em busca de mecanismos de alívio do estresse. É quando eu vou atrás das séries que eu assisto, de dicas de livros, de vídeos que alguém tenha me recomendado assistir no YouTube. É nessas horas, também, ultimamente, que mais vejo os updates do Twitter, e descubro coisas legais.

Coisas legais, é verdade, sobre as quais eu realmente gostaria de comentar alguma coisa. Mas que, como também deu a entender o Rodrigo em seu texto, não renderiam um artigo mais longo do blog. Talvez também não rendesse sequer um comentário. A tentação de usar o Tumblr vem assim, na minha visão, remediar uma angústia, por assim dizer, que só quem é blogueiro sabe qual é. Aquela, que te impele a continuar escrevendo — e, se isso não é possível por dias ou semanas porquê a inspiração simplesmente não vem, pelo menos, a continuar compartilhando informações. Nesta busca de compartilhamento é que as verdadeiras colagens de jornal que se tornam os tumblelogs se tornam interessantes: Descompromissadas, e, se você tiver sorte, divertidas e viciantes.

Ler o artigo escrito pelo Rodrigo e me perguntar o que o Tumblr tem foi como sentir aquela última gota d’água transbordando do copo. Eu, que já havia criado no passado uma conta no Tumblr, voltei ao serviço — uma aba do Firefox com o artigo dele, e outra no site — e resolvi começar a mudar algumas coisas. Apaguei dois ou três posts antigos que estavam mosqueando por lá, e aproveitei para subir dois screenshots de um episódio dos Simpsons que estavam piscando no meu desktop há dias, mas para os quais um artigo mais longo no blog não adiantaria. Estava assim reinaugurado o meu tumblelog. Eu cedi à tentação.

O que é mais interessante neste caso é que eu me senti em casa com isso. Meu impulso de sair navegando internet afora é muito grande, e a quantidade de conteúdo interessante que eu normalmente encontro não é pouca. Talvez agora seja possível continuar compartilhando sem muita culpa. Aliás, talvez eu também use o mecanismo para coisas mais pessoais, outro bloqueio que, para mim, os textos mais longos de um blog convencional representa.

De qualquer maneira, não vou parar com este blog. Só estou me dando o direito de ter um pouquinho mais de liberdade, e tempo para que os artigos que considero ter mais qualidade possam continuar surgindo por aqui. E tenho dito…

Juice Bar, uma idéia genial!

Juice BarVocê já reparou que quando mais precisa de um carregador de celular, nunca tem um deles   mão? Comigo, a última vez que isso aconteceu foi há apenas alguns dias atrás. Eu estava andando pela rua quando precisei fazer uma ligação urgente pra resolver um pequeno problema que tinha aparecido. Infelizmente, percebi que meu celular estava completamente descarregado. Resultado? Fiquei na mão.

Admita. Qualquer pessoa que tenha celular já passou por algo parecido. Nessas horas, tudo o que você quer é justamente um carregador que não esteja a quilômetros de distância, para, pelo menos, quebrar um galho.

Enquanto muita gente soluciona esse tipo de problema levando um carregador sobressalente na bolsa ou deixando um na gaveta do escritório, algo muito mais prático já surgiu e está disponível, pelo menos no exterior. Uma empresa inglesa inventou um carregador de emergência para celulares, que foi batizado de Juice Bar.

Pagando ã2,99 — o que na data deste artigo equivalente a cerca de R$ 9,40 — é possível adquirir kits para aparelhos Nokia, Samsung, Motorola e Sony que podem lhe fornecer até 1 hora de conversação extra, ou 8 horas de standby. O legal é que, embora seja necessário esperar 1 hora para se obter uma carga completa, o celular pode ser ligado e utilizado normalmente durante este meio tempo. E ao fim do processo, você joga fora o Juice Bar, que é completamente descartável — e não agride o meio-ambiente.

Sinceramente, gostaria de ver essas coisas aqui na terra brasilis. Mas será que uma coisa assim faria sucesso por aqui?

Problemas na escola?

Simplesmente não consigo parar de dar risada:

— Alô. Aqui é da escola do seu filho. Estamos tendo alguns problemas com o computador.

— Oh, meu Deus! Ele quebrou alguma coisa?

— Bom, de certa forma… O nome do seu filho é mesmo Robert’); DROP TABLE Students; —?

— Ah, sim!! Chamamos ele de Pequeno Bobby Tables.

— Bem, acabamos de perder todos os registros de alunos deste ano. Espero que você esteja satisfeita!

— E eu espero que vocês tenham aprendido a sanitizar as entradas no seu banco de dados!

RTFM

Diretamente da xkcd, uma tirinha de quadrinhos web onde rola de tudo, esta situação exemplifica conseq¼ências práticas da não observação de um dos preceitos mais básicos da operação de qualquer sistema, equipamento ou eletro-doméstico: Leia a ***** do manual!

rtfm.png

Crise de Identidade na Roça

Tá certo. Vou logo admitindo que sou fã incondicional das histórias em quadrinhos do Chico Bento. Na verdade, assim como uma série de outros passatempos, uso os gibis como uma verdadeira válvula de escape do stress do dia-a-dia, e, sempre que posso, compro o último exemplar na banca mais próxima.

E não é que uma coisa praticamente imperceptível me chamou a atenção lendo a edição número cinco, deste mês, publicada pela Panini? Neste diálogo que reproduzo logo abaixo há um erro. Alguém sabe me dizer qual é, antes de eu revelar a resposta logo mais?

chicobentojun07.jpg

Bom, lá vou eu. Desde os tempos do guaraná com rolha eu conheço praticamente todos os personagens mais antigos de Maurício de Souza de cabeça. E o nome do primo do Chico Bento, que está contracenando com ele nesta seq¼ência, definitivamente não é Zé da Roça. Devido a um erro do letrista, do revisor, ou de sei-lá-quem, deixaram de citar o nome correto do pobrezinho.

Fala sério… Que nerdice, né? 😛

Os Três Porquinhos, contado por um engenheiro

Meu Filho, era uma vez três porquinhos ( P1, P2 e P3) e um Lobo Mau, por definição, LM, que vivia os atormentando.

P1 era sabido e fazia Engenharia Elétrica e já era formado em Engenharia Civil.

P2 era arquiteto e vivia em fúteis devaneios estéticos absolutamente desprovidos de cálculos rigorosos.

P3 fazia Comunicação e Expressão Visual na ECA.

LM, na Escala Oficial da ABNT, para medição da Maldade (EOMM) era Mau nível 8,75 (arredondando a partir da 3ê casa decimal para cima). LM também era um mega investidor imobiliário sem escrúpulos e cobiçava a propriedade que pertencia aos Pn (onde n é um número natural e varia entre 1 e 3), visto que o terreno era de boa conformidade geológica e configuração topográfica, localizado próximo a Granja Viana.

Mas nesse promissor perímetro, P1 construiu uma casa de tijolos, sensata e logicamente planejada, toda protegida e com mecanismos automáticos.

P2 montou uma casa de blocos articulados feitos de mogno que mais parecia um castelo lego tresloucado.

Enquanto P3 planejou no Autocad e montou, ele mesmo, com barbantes e isopor como fundamentos, uma cabana de palha com teto solar, e achava aquilo “o máximo“.

Um dia, LM foi ate a propriedade dos suínos e disse, encontrando P3:

— Uahahhahaha, corra, P3, porque vou gritar, e vou gritar e chamar o Conselho de Engenharia Civil para denunciar sua casa de palha projetada por um ormando em Comunicação e Expressão Visual!

Ao que P3 correu para sua amada cabana, mas quando chegou lá os fiscais do conselho já haviam posto tudo abaixo. Então P3 correu para a casa de P2.

Mas quando chegou lá, encontrou LM   porta, batendo com força e gritando:

— Abra essa porta, P2, ou vou gritar, gritar e gritar e chamar o Greenpeace, para denunciar que você usou madeira nobre de áreas não-reflorestadas e areia de praia para misturar no cimento.

Antes que P2 alcançasse a porta, esta foi posta a baixo por uma multidão insandecida de eco-chatos que invadiram o ambiente, vandalizaram tudo e ocuparam os destroços, pixando e entoando palavras de ordem.

Ao que segue P3 e P2 correm para a casa de P1. Quando chegaram na casa de P1, este os recebe, e os dois caem ofegantes na sala de entrada.

P1: — O que houve?

P2: — LM, lobo mau por definição, nível 8.75, destruiu nossas casas e desapropriou os terrenos.

P3: — Não temos para onde ir. E agora, que eu farei? Sou apenas um formando em Comunicação e Expressão Visual!

Tum-tum-tum-tum-tuuummm!!!! (— isto é somente uma simulação de batidas   porta, meu filho! o som correto não é esse.)

LM: — P1, abra essa porta e assine este contrato de transferência de posse de imóvel, ou eu vou gritar e gritar e chamar os fiscais do Conselho de Engenharia em cima de você, e, se for preciso, até aquele tal de Confea!

Como P1 não abria (apesar da insistência covarde do porco arquiteto e a… do… comunicador e expressivo visual?), LM chamou os fiscais, e estes fizeram testes de robustez do projeto, inspeções sanitárias, projeções geomorfológicas, exames de agentes físico-estressores, cálculos com muitas integrais, matrizes, e geometria analítica avançada, e nada acharam de errado. Então LM gritou e gritou pela segunda vez, e veio o Greenpeace, mas todo o projeto e implementação da casa de P1 eram ecologicamente corretos.

Cansado e esbaforido, o vilão lupino resolveu agir de forma irracional porém super-comum nos contos de fada: Ele pessoalmente escalou a casa de P1 pela parede, subiu ate a chaminé e resolveu entrar por esta, para invadir.

Mas quando ele pulou para dentro da chaminé, um dispositivo mecatrônico instalado por P1 captou sua presença por um sensor térmico e ativou uma catapulta que impulsionou — com uma força de 33300 N (Newtons) — LM para cima.

Este subiu aos céus, numa trajetória parabólica estreita, alcançando o ápice, onde sua velocidade chegou a zero, a 200 metros do chão.

Agora, meu filho, antes que você pegue num repousar gostoso e o Papai te cubra com este edredom macio e quente, admitindo que a gravidade vale 9,8m/s2 e que um lobo adulto médio pese 60 kg, calcule:

  1. o deslocamento no eixo “x”, tomando como referencial a chaminé;
  2. a velocidade de queda de LM quando este tocou o chão e;
  3. o susto que o Lobo Mau tomou, num gráfico lógico que varia do 0 (repouso) ao 9 (ataque histérico).