Arquivos da Categoria: Uncategorized

Comparação entre Lua e JavaScript

Sexta-feira assisti a uma palestra sobre a linguagem Lua. Enquanto assistia, não pude deixar de notar a existência de paralelos entre as tabelas de Lua e os objetos de Javascript. Este artigo não procura ilustrar todas as diferenças entre as linguagens, apenas as que se referem a tabelas, objetos e a orientação a objetos a partir de protótipos.

Saiba mais

Publicidade

Ubuntu, você traiu o movimento

The nice thing about standards is that you have so many to choose from. – Andy Tanenbaum

Anarquia

De maneira geral, o ecossistema do software livre é anárquico. Falo isso não como crítica ­– tampouco como elogio –, mas sim como um fato. Como exemplo, veja os gerenciadores de pacotes: cada um com seu formato de arquivo e sua(s) interface(s) (gráfica ou não), cada qual com suas nomenclaturas e padronizações. Isso acontece quando a “comunidade” não consegue escolher um campeão e a utilização de um ou de outro torna-se uma questão de gosto.

Esse é um caso extremo, onde vários programas de funções similares disputam entre si o cinturão de Melhor Gerenciador de Pacotes™, e não há a menor interoperabilidade entre eles. Claro, existem ferramentas que convertem um .deb em um .rpm, mas esses programas só tiram proveito do fato que dois pacotes para um mesmo programa terão de armazenar de alguma forma os mesmos arquivos e metadados. À parte da conversão, um gerenciador funciona sem levar em consideração a existência de outros gerenciadores – ele não tentará descobrir se tal pacote está instalado naquele sistema, a não ser que ele mesmo o tenha instalado. Por isso, ter um sistema que conte com dois ou mais gerenciadores de pacote é pedir por problemas.

Mas nem sempre as coisas precisam ser assim complicadas…

Meritocracia

Às vezes aparece um campeão. Até a chegada do Chrome, o Firefox carregava o cinturão de Melhor Navegador Livre™. Isso não significa que não existiam alternativas, apenas que entre Konqueror, Epiphany e lynx, o Firefox era o favorito de nove entre dez pessoas.

Mas nem sempre as coisas são assim simples…

Diplomacia

Outra possibilidade é o surgimento de um protocolo de interoperabilidade. Não existe órgão capaz de verificar e obrigar todo desenvolvedor a seguir esses padrões, mas quando os padrões são sensatos, sua desobediência faz com que os usuários do programa infrator o olhem torto.

Talvez um dos melhores exemplos disso seja a variável XDG_CONFIG_HOME, que diz onde arquivos de configuração devem ser criados. Por padrão, essa variável tem como valor ~/.config e é aí que todos os programas deveriam criar seus arquivos de configuração. Quando algum programa não segue esse padrão, os usuários xingam muito no Twitter e na mailing list do projeto.

Mas nem sempre a vida é assim bela… Quando surge um padrão que não é bem aceito, o problema não é resolvido e continuamos na anarquia.

Notificações

Notificações deveriam ser um caso de diplomacia. Estabelecido o padrão de que a forma de comunicação entre processos é usando o d-bus (dando fim ao dcop utilizado pelo KDE), bastava apenas criar uma API padrão para a exibição de notificações. Essa API foi criada e, pasme, bem aceita. Sendo assim, agora eu posso criar um programa que use notificações (um gerenciador de Downloads que avise quando terminou de baixar seus pacotes, por exemplo) e ele irá exibir as notificações padrões do ambiente em que está, seja no KDE, no Gnome ou numa casinha de sapê.

Bem, talvez eu tenha faltado com a verdade quando disse que a API fora bem aceita. Visando ser a Apple do software livre, a Canonical achou por bem desenvolver um outro daemon de notificações, para unificar a experiência entre os desktops. Afinal, <sarcasmo>o Gnome, o KDE e o XFCE são tão parecidos, só faltava isso mesmo</sarcasmo>.

Superficialmente, esse novo daemon segue a API criada; porém, alguns parâmetros são ignorados. Por quê? Porque os desenvolvedores da Canonical se acham mais espertos que você, e que o controle deve ficar nas mãos deles. Se escrevi um pequeno verificador para minha caixa de entrada, qual o problema de que a duração da notificação seja de apenas um segundo? É mais do que suficiente para que eu possa reconhecer o ícone e saber do que se trata. No entanto, a Canonical acha melhor ignorar o parâmetro que determina o tempo de duração de uma notificação e usar um tempo absurdamente grande para esse tipo de notificação.

A solução? Um patch que acrescenta doze linhas ao código original. Não dói aplicá-lo e recompilar o programa, mas é um incômodo saber que esse problema poderia estar resolvido há dois anos.

Curiosidade: milhas, quilômetros e Fibonacci

Vejam a seguinte tabela. Isso lembra alguma coisa?

Milhas Quilômetros
3 5
5 8
8 13
13 21

Exatamente, são os números de Fibonacci. Claro que essa tabela de conversão não é exata, mas é uma aproximação muito boa ao resultado correto. No entanto, não há surpresa nenhuma; se calcularmos a razão entre dois números de Fibonacci consecutivos, teremos \frac{u_{k+1}}{u_k} = \varphi = 1.6180... , sendo \varphi a proporção áurea. Por acaso, esse valor é muito próximo à relação entre milhas (terrestres) e quilômetros; uma milha é igual a 1,609344 quilômetros.

… então eu resolvi criar um blog

Quem clicou no meu identi.ca viu que só estou escrevendo em inglês lá. Entretando, às vezes quero escrever um texto maior, e lá no identica não há espaço, então eu resolvi criar um blog em inglês.

Um blog não substitui o outro, a idéia é que eles se complementem, mas a verdade é que no momento eu gosto mais do outro, por motivos que constam no primeiro post do outro blog: aqui eu sou muito mais um tradutor que um criador de conteúdo, e eu mesmo não faço parte do meu público alvo. Com isso eu consigo separar as coisas e ver cada blog em seu devido lugar, e evitar decepções.

αρσ (alpha rho sigma)

I can has twitter?

Acabei de criar um conta no Identi.ca e no Twitter. Eu vou postar principalmente em inglês, mas quem quiser fique à vontade para me seguir (preferencialmente no Identi.ca, mas isso é com vocês).

BigBusca

Estava dando uma olhada numa entrevista com o criador do BigLinux. Além de manter a distro, ele tem um site de buscas chamado “BigBusca”. Entrei para dar uma olhada, crente de que seria uma porcaria. Engano meu. Apesar do sistema de busca não ser exatamente dele (são buscas personalizadas do Google), existem opções que ficam meio escondidas no Google mesmo.

Por exemplo, na pesquisa Web, é possível escolher a idade máxima dos artigos (24 horas, um mês, um ano, etc). A busca por documentos permite especificar se quero pdfs, docs, odts… A busca por imagens novamente apresenta facilidades do tipo.

Ah sim, o link: BigBusca

Melhorando a aparência das fontes no Arch Linux

Eu instalei os pacotes cairo-lcd e libxft-lcd aqui e as fontes ficaram com uma aparência bem melhor. Claro que isso é subjetivo, então recomendo que experimentem os pacotes cairo-cleartype, freetype2-cleartype e libxft-cleartype.

A diferença entre eles é o algoritmo usado no subpixel shading. Pessoalmente, acho o algortimo padrão ruim, tanto que eu o deixava desligado. O Cleartype é o mesmo usado pelo Windows, mas também não gosto, acho que as fontes ficam “embaçadas”. O LCD, se não me engano, é um conjunto de patches utilizado pelo Ubuntu.

Infelizmente, nenhum desses dois últimos poderá vir a ser o padrão por questões legais.

Sinto-me iluminado (uma crítica aos gerenciadores de janelas do Linux) – Parte 2

Após uma semana mais ou menos com o Enlightenment, posso dizer que gosto dele, mas que ele ainda não está pronto para uso. Não duvido que quando ele estiver pronto ele será um ótimo gerenciador de janelas / desktop, mas no momento os pequenos defeitos me encomodam.

Pesquisei mais gerenciadores de janelas aqui e ali, mas os que pareciam promissores eram projetos mortos, todos os outros que pareciam interessantes eu já tinha testado e não gostava por um detalhe ou por outro.

Por fim, resolvi fazer o meu próprio gerenciador, baseado no que eu gostava ou não em cada gerenciador que já experimentei (e acreditem, eu já experimentei vários). Se você não quiser ler um pequeno review de cada gerenciador, pule direto para o cabeçalho “O meu”.

Saiba mais

Tenha aulas das melhores universidades em sua casa

Para quem não conhece ainda, existe um site com vários vídeos gravados por grandes universidades do exterior e disponíveis ao público em geral. São em inglês, mas são bastante instrutivos.

Academic Earth

A Revolução dos Robôs será USB

As HPs são consideradas comedoras de bateria (imagine sustentar um processaor ARM de 75MHz com pilhas AAA). Fiquei pensando: se isso é um problema tão grande, porque a HP não fez uma entrada para ligar na tomada? Pesquisando mais um pouco, li que se você usar o cabo USB, ela consome a energia via USB e não das pilhas.

Agora, se USB já virou algo tão comum como fonte de energia a ponto do iPod ser recarregado assim e existirem adaptadores AC/USB, por que simplesmente não usar USB como o padrão residencial?

Imagine, todas, ou pelo menos algumas, tomadas seriam USB. Ou seja, você tem uma estrutura energética E informacional. Com isso, o surgimento de dispositivos minimamente “inteligentes” começaria a surgir. Você pode comprar uma cafeteira ou uma cafeteira que pode ser ligada/desligada remotamente e que informa sua temperatura. Tudo isso via USB, que tal?

* Sim, eu sei que não é tão simples assim, mas achei a idéia no mínimo interessante