Arquivo da categoria: Geral

Calorão

É, turminha. Foi só o verão chegar perto de começar e o calor apertar de verdade (hein? Sensação de 81°C em Abadiânia??? Já sabemos para onde mandar um certo presidente americano que escreve tuítes engraçadinhos sobre o frio de lá, certo?) e choveram acessos a um post antigo meu,  com a foto do "Clima de Montanha". que tínhamos aqui no Rio.

Mal dá pra acreditar que aquilo foi no início de 2013. Ou seja, já vão se completar 6 anos. E não é que, 6 anos depois, veio uma onda de calor ainda pior que aquela? Sabe aquela história de extremos de temperatura, tanto pra cima quanto pra baixo, que um monte de otário não quer acreditar que está acontecendo e que ia ficar comum? Está começando a ficar. Se liga, pessoal. Uma coisa é criticar derretimento de iceberg "que não aumenta nível do mar". Outra coisa é criticar derretimento da Groenlândia (não é que embaixo do gelo tem terra?...) e bolsões de calor e de frio muito fora do normal em locais onde há pessoas morando.

Imagine você, feliz da vida, dando uma voltinha na rua e *PÁÁÁ* seu sangue prestes a ferver, você olha pra garrafa de água na sua mão e ela diz pra você "eu tô quase fervendo!!!!", e por aí vai.

"Ah, mas é normal... O clima não tá esquentando não... o sol está em baixa atividade, o que diminui a camada de ozônio..."

ME ENGANA QUE EU GOSTO!

Compressão no divã, digo, DivANS

A equipe do Dropbox publicou recentemente em seu blog esse post sobre um novo algoritmo de compressão em que vêm trabalhando. O post é bem interessante, e compara o DivANS com várias das tecnologias já existentes. Em algumas simulações, há bons ganhos na compressão. E para uma empresa que lida com quantidades absurdas de informação, 1% de ganho é muito significativo. Talvez ainda seja necessário melhorar a velocidade (não adianta melhorar o espaço, mas demorar o dobro do tempo para conseguir ler/escrever o arquivo...), mas sabemos que é assim que várias iniciativas de sucesso começam.

E como acelerar a melhoria do algoritmo? Disponibilizando para a galera em Open Source, claro. Eis que fizeram isso mesmo, e a ferramenta está disponível em https://github.com/dropbox/divans para quem quiser testar, estudar, melhorar.

O algoritmo se baseia numa compressão em (pelo menos) 3 fases. Ao invés de uma geração direta para o arquivo final, o algoritmo gera uma "IR" (representação intermediária), numa segunda fase a IR serve de entrada para ser otimizada, e por fim a IR é convertida para um formato que possa ser eficientemente escrita para o arquivo final através das técnicas de compressão.

O mais interessante é que, na prática, cada fase é 'meio independente' e pode ser mesmo melhorada de forma separada das outras - contanto que a IR seja criada de forma padronizada.

Nos testes demonstrados pelo Dropbox, usaram algoritmos padrões já conhecidos. O LZ foi usado para gerar a IR. A otimização da IR foi feita com o método ANS (Asymmetrical Numeral Systems) - que tem boa performance de compactação, e é bem rápida (bom, isso explica o nome DivANS: "dividedANS")

Por fim, uma coisa bem interessante: a equipe criou o sistema usando a linguagem Rust - linguagem de boa velocidade, como o C,  que não precisa de "garbage collector" e programas em Rust podem ser embutidos em outros que utilizem a interface de função do C - ou seja, fica muito fácil o reuso de rotinas e programas. Fica fácil embutir o codec em páginas com WASM!

Sim, WEBASSEMBLY!

(Ainda não tivemos tempo de comentar sobre o WebAssembly por aqui, mas o que tenho lido tem me animado. Acho que está na hora de estudar um pouco mais do assunto e postar novidades por aqui. Alguém aí interessado?)