Ruby – Blocos de códigos

Blocos de código são trechos do código delimitados por “{ }” ou “do … end” que podem ser passados como “parâmetros” para funções, podendo ser chamados dentro dela. Exemplo:

[3,4,5].each{ puts hello }

No exemplo acima, a função “each” varre o array executando o código entre as chaves para cada elemento, como um iterador. Nesse caso, imprimindo “hello” três vezes na tela. Um dos usos mais comuns de blocos de código é justamente iterar sobre os elementos de um array, que podem ser passados como parâmentro para o bloco:

[3,4,5].each{ |x| puts x }

Agora podemos usar o valor “x”, fornecido pela função, dentro do nosso bloco. Os blocos podem ter mais de um parâmetro, sendo separados por vírgula entre o par de barras verticais.

Para criar funções que possam receber blocos de códigos, basta colocar a instrução “yield” dentro do corpo da função. Cada vez que o yield é executado, ele executa o bloco associado. Para passar parâmetros, eles são colocados logo depois do yield. Exemplo:

def calc(a, b)
    yield a, b
end
calc(3,4){ |x,y|   x*y}

Fim de semana

Estudar prova de física, brincar com o vmware, etc…

PS: Ainda sem Velox… =\

Link p/ verificação no BlogBlogs.Com.Br

Razão da multa da União Européia sobre a Microsoft

De acordo com um artigo no CNet:

The fine was based on the landmark 2004 ruling, which, among other requirements, ordered Microsoft to share complete and accurate interoperability information with rival companies that develop workgroup server operating systems, as well as license those protocols at a reasonable cost.

Agora a notícia que saiu no meio bit
…na qual a empresa deveria fornecer as informações sobre o Windows para que concorrentes pudessem desenvolver softwares compatíveis.

A exigência não era a documentação para desenvolver aplicativos para Windows, e sim documentação de interoperabilidade, como protocolos de rede, para permitir que qualquer sistema concorrente pudesse se comunicar. Ao fechar esses protocolos, o Windows tirava proveito da liderança do mercado, fechando a porta para os outros sistemas.

Tomboy no Windows

Há algum tempo venho usando o Tomboy no computador de casa, que roda Linux, mas ficava isolado na faculdade, 100% Windows. Após dar uma olhada nessa página, resolvi testar o port (versão do CVS) e acabou dando problema nos ícones, indicando formato de arquivo desconhecido, mas após baixar manualmente acabou funcionando. Segundo o autor do port, esse problema aparece de forma aleatória e não reproduzível. Mais uma noite de bug hunting… =)
A “prova” dele rodando está na imagem abaixo:

Tomboy first run on windows

Update: O problema era o CVS do Windows tratando os arquivos PNG como arquivo texto.

Update 2: Coloquei um tutorial no site do CInLUG.

Desktop contextual

Nesse post, Jono Bacon (um dos autores do Jokosher) comenta sobre um possível GNOME 3.0. Segundo suas idéias, o ideal seria algo mais próximo de como trabalhamos no dia a dia, abstraindo o conceito (separado) de aplicação. Ao invés de aplicações propriamente ditas, elas apenas disponibilizariam serviços que seriam exibidos de acordo com a necessidade, sem necessidade de uma “janela” própria para o programa. Dessa forma, a diferença para o usuário entre aplicações locais e aplicações remotas poderia estar ainda menor.

Velox de novo

Ontem meu pai ligou para eles e para nossa surpresa o cadastro não estava no sistema da Oi (a provedora), apesar de terem afirmado que chegaria em cerca de 5 dias úteis e repassado o email e a senha. Nova tentativa e tomara que até o fim de semana seguinte tudo tenha se resolvido.

Até lá, mais um fim de semana com um winmodem (ou não. Ontem à noite tanto o Linux como o Windows não reconheceu o danado).

“Operador de computador”

Hoje quando estava tomando café vi uma matéria sobre um desses centros de capacitação para jovens que oferecia um curso de “Operação de micro-computador”.

O que danado seria um “operador de micro-computador”? Será que computadores ainda estão tão complicados que precisam de pessoas especializadas para operar?