Dilbert 28-1-19
É, 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!


O que aconteceria se, de repente, sua empresa decidisse que sua carga horário diminuiria em 20%? Por outro lado, se você fosse da diretoria da empresa e resolvesse fazer esse corte, o que esperaria da produtividade da empresa?
Os programas têm crescido absurdamente de tamanho, sem justificativas para tal. Muitos programas cresceram, mas têm praticamente a mesma funcionalidade básicas que possuíam, e, claro, com isso perdem performance. Os computadores estão mais potentes, mas com programas com performance pior que há 10 anos, por exemplo…
Depois de muito e muito enrolar, finalmente atualizei (só um pouco): Saiu a versão 1.2 do Pink Floyd Code!!!
No momento, consertei uns bugs e links que ligavam pra lugar nenhum e adicionei 2 álbuns novos. Mas sei que tem mais pra adicionar. Em breve, aguarde outra versão...
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?)
