24.07.2010
2
133

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!!

01.07.2010
2
174

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.

05.07.2008
4
111

Plurkolate: Finalmente, Plurk + WordPress! 

Plurkolate em ação aqui na barra lateral do blogEis que há uns 10 dias atrás eu encontrei por acaso uma mensagem no plurk criada pelo americano Eric Nakagawa. Eric, mais um fã do sucessor do Twitter, dizia mensagem que havia acabado de alterar seu blog — hospedado no site pessoal — para que passasse a exibir seus plurk updates por lá. Quando resolvi dar uma olhada, me deparei com uma interface muito bonita, reproduzindo os qualificadores do Plurk exatamente como aparecem no site original, e com um diferencial: abaixo de cada plurk, todas as suas respostas endentadas.

No mesmo plurk, Eric revelava que a mágica combinava as linguagens XML e PHP. E mais, anunciou que em breve disponibilizaria o código depois que aplicasse nele uma bela limpeza, e que seria possível reproduzir com ele praticamente tudo o que o widget do Plurk faz, além de, justamente, endentar os comentários.

Confesso que nestes últimos 10 dias passei a fazer visitas freqüentes ao site de Eric Nakagawa. A ansiedade por ver algo que eventualmente respondesse a todos os meus pedidos em relação ao Plurk finalmente se materializando pelas mãos de algum programador talentoso mal me deixou dormir. Finalmente, nesta sexta-feira, o grandioso anúncio, feito, é claro, através do Plurk: Estava criado o Plurkolate, o plugin para WordPress que trás para a melhor ferramenta de edição de blogs todas as funções essenciais da melhor ferramenta de microblogging do universo.

Não preciso nem dizer que instalei a novidade por aqui imediatamente, ávido por conseguir o mesmo resultado do Eric na minha barra lateral. No entanto, esbarrei em um problema: Os qualificadores estavam ficando todos cinza ao invés de coloridos, o que, pensei imediatamente, tira um pouco da mágica da coisa.

Assim sendo, resolvi tirar um pouco da poeira dos meus conhecimentos de PHP e meti as caras no código do plugin. Descobri que o problema estava acontecendo porquê a rotina estava tratando o CSS apenas para os qualificadores em inglês. Tratei de arregaçar as mangas e, como eu já havia me arriscado criando um precursor do plugin booBox para WordPress para o Marco Gomes, alterei algumas coisinhas do Plurkolate aqui, outras ali, procurando chegar a uma versão em que fosse possível especificar que qualificadores usar no lugar dos originais em inglês.

Como resolvi usar meu próprio blog como laboratório, depois de algum tempo percebi que havia funcionado. Em resumo, na versão que criei, meio que no quick and dirty, dá pra traduzir os qualificadores, e o resultado é esse que está aí na barra lateral. Bonito, não é?

Como o Eric Nakagawa é um cara bacana, ele sugere na própria página do Plurkolate que sejam enviadas sugestões de melhoria. Assim, tratei de enviar-lhe um e-mail, que reproduzo abaixo, com o arquivo que contém o plugin alterado:

Hail, Eric.

Greetings from Brazil!

My name is Daniel Santos, I’m a brazilian blogger, running http://danielsantos.org, and, as you, I am also a plurk enthusiast.

First of all, I need to admit that I ran into your website (http://ericnakagawa.com/) by accident, all because of this plurk (http://www.plurk.com/p/luf9) of yours. As you said you would be releasing something based on XML + PHP soon, I couldn’t wait to see the results because being as addicted to plurk as I am to WordPress blogging, I was looking forwards to being able to share my plurks with everyone else also from my blog.

So, this evening, when I found that you had created Plurkolate, I must’ve been one of the firsts to download and install it, anxious to see what could happen. Well, needless to say, I LOVED IT. Plurkolate was really all I ever wanted, kudos to your great programming skills.

However, I noticed the CSS coloring that you apply to your own plurks on your website wasn’t showing up in mine. So, as I am also a Computer Science graduate somewhat familiar to PHP, I decided to look into your plugin’s code, and saw what happened. As Plurk folks are evolving very fast with their service, it’s been possible to set one’s preferred plurking language. Mine is set to Brazilian Portuguese, what in the end makes qualifiers like “says” and “loves”, translate to their Brazilian equivalents, “diz” and “ama”.

I decided I could contribute with Plurkolate, by arranging something to workaround this. So I shook dust from my PHP programming skills and HTML knowledge, and came up with a different version of your plugin, where it is possible to define default qualifiers to be used in case of translation needs.

I’m sending you the result of this variation of mine, attached to this message. hoping you can analyse the code — excusing me, again, for my not-often-practiced PHP programming skills — and possibly make these arrangements official, somehow. If you wish, you can take a look at my blog’s sidebar, as I’ve left a working version right there, in Brazilian Portuguese.

I hope I can hear from you soon on this improvement.
Oh, and as you suggest, I added you as a plurk friend, already.

Thanks for your initiative. This will certainly please millions of plurkers worldwide.
Best regards.

Agora, como vocês podem ver, sugerida a melhoria, estou aguardando o retorno dele. Assim que tiver novidades, publico por aqui, é lógico. Eu só espero, de qualquer forma, estar prestando um bom serviço, ao mesmo tempo, à blogosfera e à plurkosfera nacionais.

ATUALIZAÇÃO (05/07/2008): Após a mensagem acima, recebi não apenas uma, mas três mensagens empolgadíssimas vindas do Eric. A primeira delas foi essa, em que ele agradeceu a minha mensagem e disse que trataria de incorporar a sugestão o quanto antes:

ROCK ON!

I forgot about other languages!!! Thank you so much for writing to me. I’ll review and include portugese support. ‘ll incorporate this and add it to the trunk… How exciting!

I’ll send word once I get this up and working!

Thank you Daniel! Added you on plurk, as well.

Eric Nakagawa
CEO, FTW R&D (For The Win!)

Em seguida, mais uma mensagem com novidades, e a criação de uma caixa de listagem com os idiomas disponíveis na interface do Plurk:

hey daniel…

i’ve made it so you can choose a drop down to choose your language..

i’ll be populating it with english, brazilian, and then the other languages…

would be game to test brazilian support?

Eric Nakagawa
CEO, FTW R&D (For The Win!)

Como era a interface que enviei para o Eric NakagawaEu achei essa idéia sensacional, porquê na pressa ontem, codificando em plena madrugada, acabei implementando não uma caixa de listagem, mas sim diversas caixas de texto. Como essa versão nunca irá a público, apenas por curiosidade, ao lado deste parágrafo ilustro como eu tinha feito as coisas. A visão do Eric foi muito melhor.

Finalmente, numa terceira mensagem que recebi, o Eric me contou que tinha feito alguns testes com o meu usuário — para verificar o suporte ao Português brasileiro — e que tudo tinha corrido muito bem. Eu também devo dizer que ele foi muito gentil ao acrescentar na página do plugin que eu havia colaborado para o lançamento da primeira revisão do Plurkolate, a 1.01. Fiquei feliz e espero,é lógico, ajudar sempre que possível.

[ratings]

24.09.2007
1
1.187

Segundos em hh:mm:ss no Excel 

Se você está ou já esteve envolvido com atividades relacionadas à programação, provavelmente já passou por pelo menos uma situação em que, dado um tempo de processamento de uma rotina ou job em segundos, era necessário ilustrar tal tempo formatado em horas, minutos e segundos (HH:MM:SS).

Uma maneira bem simples e rápida de fazer isso através do próprio Microsoft Excel é a combinação de algumas de suas funções básicas: TEMPO, INT e MOD.

Imagine que uma célula no Excel contenha o valor do tempo total de execução de uma rotina, vamos dizer, a célula D7 com 33391 segundos. Dada esta premissa, basta dizer que as funções do Excel que eu citei nos permitirão trabalhar com algumas premissas da matemática:

Para calcular o total de horas contidas em 33391 segundos, basta dividirmos esta quantidade por 3600 — pois uma hora possui 60 minutos e por sua vez, cada minuto, 60 segundos: 60 x 60 = 3600 —, nos atentando à parte inteira desta divisão. A parte inteira de um número pode ser obtida no Excel pela função INT. Assim, as horas podem ser dadas por:

=INT(D7/3600)

No caso do cálculo dos minutos, o raciocínio continua ocorrendo no campo das divisões. Ainda considerando os 33391 segundos da célula D7, dividiremos o total por 60, objetivando o total de horas. Em seguida, precisaremos do resto da divisão do valor por 60, para chegarmos aos minutos. O resto da divisão, no Excel, é representado pela função MOD. Assim sendo, tais minutos serão:

=MOD(INT(D7/60);60)

Finalmente, os segundos. Seu cálculo é mais simples, pois dada a divisão utilizada para obtermos o total de horas, os segundos serão justamente o resto desta conta. Assim sendo, teremos:

=MOD(D7;60)

Já a função TEMPO permite, após o fornecimento dos parâmetros hora, minuto e segundo, obter um valor de string formatada como hora. Esta será a função-chave nesta transformação, pois englobará todos os cálculos anteriores:

=TEMPO(INT(D7/3600);MOD(INT(D7/60);60);MOD(D7;60))

Se tudo correu bem, a célula que você escolheu para receber a string formatada como HH:MM:SS, para este exemplo, estará exibindo 09:16:31. Simples assim.

04.08.2006
0
68

No Sweat! 

Não sei quanto a vocês, mas para mim a coisa mais corriqueira do mundo quando tenho uma dúvida relacionada a programação é consultar artigos em grupos de discussão on-line. Nessa linha de raciocínio, é impossível que eu diga por quantas vezes o conteúdo que encontrei principalmente através de buscas no Google Groups já salvou minha vida.

É óbvio — vocês vão me dizer — que a consulta a livros de referência e demais materiais de apoio impressos também ajuda, mas sinceramente, com o advento da internet, é muito mais simples buscar conteúdo quando se está conectado à grande rede, principalmente porquê ao lado do seu editor de texto favorito para programação sempre vai estar um navegador poderoso.

O maior problema neste caso é determinar para onde apontar meu navegador. Se eu não encontro o que preciso diretamente em grupos de discussão, acabo recorrendo ao Google, mesmo porquê reza a lenda que se o Google não encontra, é porquê não existe. Mas tal ditado não é valido em sua totalidade quando o assunto é programação. E quando um programador vê que nem o site de busca mais poderoso do mundo é capaz de ajudá-lo, sempre pensa que falta na internet um site de busca especializado em programação e demais assuntos referentes à desenvolvimento de aplicativos.

Neste post, procuro dar minha contribuição para quem, assim como eu há pouco tempo atrás, também estava procurando algo similar na internet.

Krugle?

Esta semana, meio que por acaso enquanto fazia minha leitura — nem tão diária assim — de feeds RSS, me deparei com um novo site, chamado Krugle. Apesar de seu nome pouco ortodoxo, a idéia do novo serviço, que me atraiu logo à primeira vista, é justamente preencher este gap enfrentado por programadores, estudantes e até mesmo curiosos, que por vezes estão procurando por trechos de código, documentação ou discussões mais aprofundadas para aprimorar conhecimentos ou levar seus projetos adiante, uma vez que tenham emperrado em algum lugar.

Com interface simples e carregado de recursos AJAX, o serviço se apresenta num formato bastante similar à qualquer outro site de busca mais conhecido. A diferença é que apresenta três abas distintas que podem ser escolhidas pelo usuário: Code, para busca de código-fonte, Tech Pages, para localizar documentação técnica ou artigos baseados em palavras-chave e Projects, que se destina a apontar para projetos open source desenvolvidos nas linguagens especificadas.

Para efeitos deste post, me concentrarei na primeira das abas. Como eu já disse, Code é utilizada para procurar códigos-fonte e navegar, de maneira interativa, através dos resultados, que podem ser escritos em diversas linguagens de programação, entre as quais Ruby, Java, PHP, Visual Basic, Python e C.

Há uma interatividade no Krugle, que aparece quando navegamos pelos seus exemplos de código. Cada um dos resultados obtidos é apresentado em uma aba diferente para, segundo os desenvolvedores, permitir que todo o histórico de código e documentação procurado em uma sessão permaneça ao alcance do mouse.

Quando um exemplo de código é apresentado, é possível deixar notas em trechos selecionados do arquivo fonte do programador original. Assim, caso você tenha uma sugestão melhor para a implementação de uma determinada rotina, pode entrar numa conversa direta com quem teve a idéia original, sendo que ambos poderão ganhar experiências novas. Além disso é possível salvar o resultado encontrado, através de um download para o seu PC, e procurar palavras-chave no código.

Pela facilidade de uso e por ser, ao menos a meu ver, uma aplicação que fazia até então muita falta na Internet, o Krugle entrou para os meus favoritos e mereceu seu lugar entre as minhas dicas.

Programming is Hard

Quando eu já estava quase terminando de escrever meu post a respeito do Krugle, encontrei, também por acaso, outra referência a um serviço similar. Para aqueles que concordam com o próprio título do site — ou não —, Programming is Hard também oferece exemplos e códigos prontos para quem está com uma dificuldade extra ou apenas curioso a respeito dessa ou daquela linguagem.

Classificando a si mesmo como um repositório público de code snippets e links, o Programming is Hard não apresenta a mesma interface, tão atraente, do primeiro dos serviços que citei. Sua aparência, é verdade, lembra mais a de um grande blog, onde os itens mais recentes vão sobrepondo os mais antigos.

De qualquer forma, ainda que interatividade e AJAX não façam parte do Programming is Hard, e que não se possa deixar comentários diretamente no código-fonte original de cada programador, o serviço conta com um ponto muito positivo a seu favor: A utilização de tags.

Tags, tais como eu as uso em meu site, servem para categorizar assuntos, ajudando a encontrá-los mais tarde, coisa que o Krugle peca por não ter. Com elas o tempo médio para se encontrar qualquer coisa pode diminuir exponencialmente.

Outro diferencial deste serviço é que ele se assemelha muito mais ao del.icio.us, ou qualquer site de bookmarks sociais. Isso porquê seus usuários não apenas enviam exemplos de código e links úteis para o site, mas também fazem referência a conteúdos que encontram fora dali, o que também é positivo.

Apresentando um feed RSS, qualquer pessoa pode assinar as últimas novidades enviadas ao serviço, mantendo seus conhecimentos desta ou daquela linguagem específica — ou de várias delas — em dia o quanto quiser. Por conta destes itens todos que citei é que este outro site merece lugar neste post.

Conclusão

Os dois serviços que mencionei neste post são ainda iniciais e, se depender da vontade daqueles que tiveram essas brilhantes idéias, ainda devem crescer muito no futuro, o que faz com que valha a pena dar uma olhada neles periodicamente, mesmo que por curiosidade. Com uma grande massa de gente disposta a ajudar os outros, acredito que não leve muito tempo até que os dois se tornem referências absolutas no que se propõem a fazer.

De resto, sempre há este ou aquele site que, mesmo não citado por mim, também permite o mesmo tipo de busca. Juntos, todos eles têm uma única finalidade: ajudar quem é programador, seja profissionalmente, seja por hobby. E, como toda ajuda é válida no mundo da programação, venha de onde vier, vale a pena criar uma lista destes pequenos serviços, principalmente para aquela situação em que você esquecer o seu velho livro de C++.

19.07.2006
5
118

Colocando ordem no mal 

Um amigo comentou comigo, ainda ontem, que havia instalado em sua máquina um daqueles muitos programas freeware que têm a finalidade de varrer seu disco rígido em busca de assinaturas de spywares, trojans e outros malwares do gênero, que, não apenas para usuários mais convencionais de computadores como ele, mas para qualquer ser vivo na face da Terra, só vêm a atrapalhar sua experiência, seja esta on-line ou não.

Aliás, quando o assunto é malware, a grande pergunta que muitos usuários se fazem, mesmo sem muitas vezes se darem conta disso, é uma só: De onde vêm estas pequenas pragas virtuais? Muitas vezes a resposta se encontra no hábito freqüente que muitos têm, de abrirem, inadvertidamente, os anexos que estão naquelas mensagens de e-mail obscuras que recebem, sem nem ao menos se darem o trabalho de verificar sua procedência, e se esta é realmente segura.

Mas grande parte dos usuários se vê em apuros também quando navega na internet. Diversos sites disparam, à medida em que visitantes os encontram e acessam, programas executáveis que se auto-instalam nos computadores destas pessoas. E o resto desta história, todos conhecemos: Em algum tempo estas máquinas ficam mais lentas e passam a realizar operações suspeitas. Algumas exibem janelas pop-up com propagandas e têm a home page de seu navegador web alterada para apontar algum site pouco ortodoxo.

Já outros computadores, mais seriamente atingidos, passam a ser escravos de algum webmaster inescrupuloso, que recebe dados que vão desde o registro dos sites que foram visitados pelo usuário, até as combinações de teclas que este digitou, originando, muitas vezes, fraudes bancárias e compras em sites on-line sem aviso prévio para a vítima. Nestes casos, um programa de computador tem que ser muito bom para dar jeito na coisa. E é por isso que a prevenção se faz necessária.

E falando em prevenção, H.D. Moore, pesquisador de segurança computacional e criador do projeto Month of Browser Bugs, que busca e divulga falhas nos navegadores web mais populares — como o Internet Explorer, Firefox, Safari, Opera e Konqueror — divulgou esta semana um novo site de busca, capaz de indexar sites que contenham estes programas executáveis que mencionei, e que os disparem contra os inocentes usuários.

A nova ferramenta trabalha baseada em buscas realizadas no Google. Quando encontra um executável suspeito em um site, um algoritmo pré-determinado extrai sua assinatura — na verdade uma pequena seqüência de códigos do programa — e a compara com um banco de dados — que ainda conta com apenas 300 exemplares de malware, mas que deve ganhar em breve uma atualização em massa e passar a ter pelo menos 6000 assinaturas. Se a correspondência ocorrer, fica gravado no site de busca um registro apontando para um site que contém o arquivo a ser evitado.

A idéia é super interessante, tenho que admitir. Digitar a palavra-chave Bagle, por exemplo, retorna 20 resultados de sites que hospedam o worm. Worm, aliás, também é outra boa palavra-chave, retornando, num primeiro instante, 110 ocorrências. O problema, no entanto, é que nenhum usuário mais convencional sequer sabe nomes de vírus ou worms. Talvez, neste caso, H.D. Moore se veja obrigado a tentar uma abordagem mais prática, ou, num futuro bem próximo, quem sabe, aguardar que os grandes sites de busca, por conta deles próprios, acatem a idéia. Ou vocês acham que uma indexação de sites malignos já não pode estar em andamento, sendo realizada pelo próprio Google em si?

10.05.2006
4
97

A sua linguagem é popular? 

Ando com a idéia fixa de aprender uma nova linguagem de programação. Por mais que eu não tenha exercitado este lado da profissão que eu escolhi, acho que, uma vez no meu sangue, a Tecnologia da Informação sempre exercerá seu peso, me despertando tanta vontade de obter novos conhecimentos nesta área quanto para alguém que busca aprender um novo idioma, seja por diversão, seja para se atualizar no mercado.

Uma das linguagens que eu mais utilizo no meu dia-a-dia, e sobre a qual eu tenho um domínio relativamente alto, é o Visual Basic. O principal motivo para tal escolha é o grau de automatização de geração de informações provenientes de aplicativos do pacote Office que eu realizo. E, embora eu tenha visto, por exemplo, Java e PHP na faculdade antes de me formar, o contato que tive com tais linguagens após minha formatura foi praticamente zero. Preocupado com isso, decidi tirar algumas teias de aranha do cérebro e daí veio a idéia de que falei logo no começo deste post. Mas havia um problema: Que linguagem seria interessante aprender, ou, para mim, dependendo da escolha, reaprender?

Procurando respostas para esta minha dúvida, uma busca rápida com o auxílio dele me fez encontar o site da Tiobe, uma empresa de TI especializada em qualidade de software, e que publica, mensalmente, um ranking de popularidade das linguagens de programação, baseado em sua quantidade de profissionais experientes, cursos e fornecedores disponíveis. Mas como é dito no próprio site, não se trata de determinar a melhor linguagem, nem aquela em que mais linhas de código foram escritas.

O índice publicado pela empresa, que pode ser usado para determinar justamente o que eu queria — se as minhas habilidades de programação estão em dia ou se já é hora de aprender alguma coisa que está em alta no mercado —, traz em primeiro lugar o Java, seguido da linguagem C e de sua variação posterior, o C++. O PHP, que eu mencionei antes, vem na quarta posição, seguido — me espantei — pelo Visual Basic, que, aliás, em relação ao ano anterior, subiu uma posição tal qual o próprio PHP. Meu espanto foi porquê achei, ainda não sei bem o porquê, que a linguagem da Microsoft era coisa do passado, a caminho do museu. Agora, com estas indicações, devo mesmo revisar meus conhecimentos em Java e PHP. E quem sabe, lá na frente, arriscar-me um pouco em Python, pra dar uma variada. Alguma outra sugestão?

28.04.2006
1
96

Autocódigo 

Alguém já se referiu a você dizendo que Fulano é capaz de fazer isso com as mãos amarradas nas costas? Acho pouco provável que não. Quando eu trabalhava mais aprofundadamente com programação, algumas pessoas chegaram a usar esta frase para se referirem à minha facilidade com a criação de códigos para a resolução dos mais diversos tipos de problema. Obviamente, a coisa não passa de uma mera expressão, uma figura de linguagem. Afinal, quem é que já viu alguém programando com as mãos amarradas, ainda mais nas costas, não é mesmo?

Mas talvez possamos adicionar uma certa realidade a esta expressão. É que um novo software de reconhecimento de voz chamado VoiceCode promete permitir aos programadores que criem seus programas sem a necessidade de encostar um dedo sequer em seus teclados.

A novidade, criada em conjunto por pesquisadores do National Research Council of Canada e da Universidade da Califórnia, visa ajudar principalmente as pessoas que sofrem com lesões por esforço repetitivo (LER): Só nos EUA, 100 mil programadores sofrem com dores nos músculos, tendões e nervos de seus braços e costas, já que passam a maior parte de seu tempo utilizando um teclado e realizando digitação.

Os criadores do VoiceCode admitem que existem vários softwares de reconhecimento de voz que podem ajudar as pessoas a utilizarem o computador, mas dizem que nenhum é capaz de converter o que um usuário diz diretamente em sintaxe de linguagem de programação. A ferramenta, que atualmente funciona apenas com Python, pode ser extendida para outras linguagens. Para digitar um comando como if (regAtual < maxReg) then, por exemplo, bastaria o usuário dizer If registro atual menor que o máximo de registros, then.

A única barreira para que mais pessoas possam testar o programa é o tempo que leva para sua instalação: Quase um dia inteiro montando as peças. Para os líderes do projeto, alguém com lesão por esforço repetitivo teria grandes problemas para fazer uma montagem dessas. Mas dos males, o menor: Tenho certeza de que, com tanta nanotecnologia disponível, essa barreira será derrubada logo, logo... E quando isso acontecer, embora eu não sofra de LER, talvez até compre um equipamento desses...