-
Drew DeVault
29/01/2017 23:00
C é como aquele carro clássico: tem suas marcas, mas você ainda quer dirigir. Embora linguagens como Rust e Go estejam fazendo melhorias, não vejo C sendo aposentado tão cedo, principalmente porque ele traz simplicidade e previsibilidade. O autor observa que, "C prefere ser conservador com novos recursos", o que na prática significa menos surpresas para o dev. No fim das contas, C continua sendo uma escolha sólida para quem valoriza controle, estabilidade e uma relação quase Ãntima com o hardware.
-
Andrew Kelley (criador do Zig)
17/01/2017 22:25
O autor fez uma reestruturação e tanto nas entranhas do compilador Zig, e, pasmem, com 36.000 linhas de código alteradas. O famoso Tetris não estava mais funcionando como deveria após as mudanças. Com a ajuda do apitrace, ele identificou que o problema estava ligado a um `glUniform4fv` que parecia correto, mas a aleatoriedade das peças estava causando a confusão. Simplesmente mudar a semente do gerador de números aleatórios para um valor fixo resolveu a questão. É, às vezes a solução para um bug está no básico.
-
Antirez (Salvatore Sanfilippo)
02/12/2016 16:25
Após a longa espera, a primeira versão candidata do Redis 4.0 está finalmente disponÃvel. O que chama atenção é a inclusão de um sistema de módulos, que permite criar novos tipos de dados e comandos não bloqueantes, sem sobrecarregar o núcleo do Redis. É quase como se os desenvolvedores tivessem recebido um cheat code: 'Dê vida a suas ideias sem precisar replicar o servidor'. Além disso, a versão 2 da replicação PSYNC promete trazer melhorias significativas em ambientes de produção, especialmente durante falhas. Então, se você ainda estava em dúvida sobre atualizar, agora é a hora de montar seu próprio exército de réplicas.
-
Drew DeVault
24/11/2016 01:00
Olha, Electron é como um web browser que ganhou alguns músculos e decidiu virar desktop app. O problema é que esse ‘musculoso’ acabou sendo um pacote de Chromium que traz mais peso do que contribuição. Como o próprio texto diz, se você precisa de um gerenciador de clipboard que usa essa tecnologia, talvez seja hora de repensar suas escolhas. Para um projeto que busca eficiência, escolher Electron é como fazer um upgrade no seu PC apenas para instalar Windows 95 novamente.
-
Drew DeVault
23/11/2016 23:00
O autor começa seu desabafo destacando a escolha de ferramentas, e, no caso do Electron, parece que há muito mais a perder do que a ganhar. O ponto sobre o aplicativo lossless-cut, que praticamente entrega um reprodutor de vÃdeo com uma cópia inteira do Chromium, é uma crÃtica válida à eficiência de recursos. E quem precisa de um gerenciador de área de transferência que exige um navegador completo, não é mesmo? No final das contas, Electron pode parecer uma solução rápida para desenvolvimento, mas pode acabar gerando mais frustração do que produtividade, especialmente se o seu aplicativo é basicamente um site embrulhado em um pacote.
-
Dan Luu
03/10/2016 05:14
É curioso ver como o pessoal acha que qualquer produto de software poderia ser construÃdo em um piscar de olhos, né? O texto destaca bem a diferença entre a visão de fora e a complexidade interna das grandes empresas, como a FooCorp. Criar um competidor do Google, por exemplo, é mais complicado do que muitos imaginam, especialmente quando se fala de escalabilidade e tempo de resposta. Afinal, tentar indexar trilhões de páginas não é o mesmo que rodar um microserviço em uma tarde de sábado.
-
Dan Luu
05/08/2016 00:32
Bugs de concorrência realmente importam? O texto afirma que muitos bugs relatados em sistemas distribuÃdos têm causas simples e podem ser capturados por testes triviais. No entanto, como bem sabemos, "bugs não determinÃsticos são raros, mas podem ser extremamente difÃceis de depurar". Isso significa que, se você acha que depurar é complicado, espere até se deparar com um bug que parece mudar de comportamento só para te irritar. Portanto, vale a pena investir em ferramentas para prevenção, a menos que você tenha decidido abraçar a dor da depuração como um hobby.
-
Antirez (Salvatore Sanfilippo)
29/07/2016 05:04
O artigo discute como o Redis gerencia a memória de cache e a lógica por trás de suas decisões de remoção de dados. A ideia de que caches não conseguem prever o futuro é, sem dúvida, uma verdade universal, e o algoritmo LRU tenta trabalhar com dados acessados recentemente para decidir o que manter. Curiosamente, a volatilidade dos padrões de acesso nem sempre se conforma às expectativas, o que pode levar a algumas surpresas, especialmente quando um 'key D' se torna o herói inesperado. No fim das contas, é tudo uma dança entre manter o que é popular e liberar espaço para o que pode se tornar a nova sensação.
-
Drew DeVault
18/07/2016 21:00
Mocking é uma daquelas paradinhas que, quando a gente se acostuma, não quer mais viver sem. O uso do argumento -Wl,--wrap no C é uma jogada astuta para testar funções sem precisar abrir arquivos pré-formatados. Porém, cuidado: você só pode ter um wrapper por função no executável, então a vida do dev pode ficar um pouco mais complicada se você precisar de múltiplas simulações. É como querer jogar Xadrez e só ter um peão, você vai ter que se virar para fazer tudo acontecer.
-
Lua.org News
06/06/2016 18:56
A nova versão Lua 5.3.3 chegou com uma promessa simples: corrigir todos os bugs conhecidos da 5.3.2. É como receber aquela atualização do sistema que finalmente te livra dos crashes inesperados, mas que, no fundo, você sempre soube que existiam. Para quem está mexendo com games ou scripting, essa é uma versão que promete um pouco mais de estabilidade. Não é exatamente um hype de nova funcionalidade, mas, no mundo dos devs, estabilidade é ouro.
-
Antirez (Salvatore Sanfilippo)
06/05/2016 08:07
Após um tempo de espera, a nova versão do Redis traz algumas adições que podem fazer diferença para muita gente na comunidade. O novo comando BITFIELD parece ser uma boa adição para quem trabalha com contagens e controle de overflow, enquanto a GEO API pode energizar aplicações que lidam com geolocalização. Além disso, a melhora na eficiência de memória é sempre bem-vinda, afinal, quem não gosta de um pouco de economia na hora de lidar com grandes listas? Mas cuidado com o Sentinel—pense duas vezes antes de confiar nele para produção por enquanto.
-
Dan Luu
18/04/2016 04:06
Esses tipos de listas estão sempre no ar, mas tentar abarcar todos os programadores com um único texto é como tentar rodar um código em uma versão de Java desatualizada. Aleksey Shipilev, por exemplo, é um dos grandes quando se trata de entender a JVM, enquanto Bruce Dawson foca na performance em Windows – porque, sim, a vida continua além do Linux. A diversidade nos temas abordados, como os projetos de Chris Fenton ou as análises de ML de Chip Huyen, mostra que não há uma única receita de bolo no mundo da programação; cada um deve escolher o que mais faz sentido para a sua jornada.
-
Drew DeVault
11/04/2016 21:00
Este post apresenta uma alternativa ao filtro de Bloom em C++, que aparentemente tem boas intenções, mas não é a implementação mais eficiente. O autor argumenta que, com C, você pode usar suas próprias funções de hash e adicionar tipos de dados arbitrários, não apenas bytes. Fazendo um paralelo com os sistemas de tipos, é como escolher entre um smartphone moderno e um daqueles flip phones da linha do tempo, dependendo da sua necessidade de funcionalidades de baixo nÃvel.
-
Antirez (Salvatore Sanfilippo)
26/02/2016 12:02
Hoje o Redis completa 7 anos e, para marcar a data, um novo comando bem interessante chamado BITFIELD foi implementado. A ideia é lidar com inteiros de tamanho arbitrário em offsets de bits, o que traz um controle bem fino sobre operações, como saturação e overflow. Como um desenvolvedor que aprecia compactação de dados, essa atualização é um bom ajuste no arsenal do Redis, facilitando operações com bits sem desperdiçar informação. Afinal, quem não gostaria de mexer com bits como se fossem marshmallows em uma fogueira?
-
Andrew Kelley (criador do Zig)
08/02/2016 15:07
O Zig chega com a intenção de ser "mais pragmático que o C", o que já é uma declaração ousada. Ele promete um equilÃbrio interessante entre performance e segurança, como se a performance estivesse dirigindo um carro esportivo enquanto a segurança é o passageiro que só quer usar o cinto. A ideia de separar modos de build em debug e release pode também facilitar bastante a vida de quem está em busca de um desempenho otimizado, sem sacrificar a legibilidade do código. Se você está cansado de licenças questionáveis e quer algo que tenha um toque de Rust, só que com um humor um pouco menos doido, Zig pode ser a aventura que você está procurando.
-
Dan Luu
23/01/2016 23:00
O post discute como o "perf" é o queridinho das ferramentas de depuração de performance no Linux, mas a verdadeira questão é: como lidar com problemas de latência, especialmente aqueles que aparecem com RPCs em sistemas complexos? Amostragens são fáceis e práticas, mas falham em capturar a realidade dura dos piores cenários de latência, que podem custar caro. O framework de rastreamento da Google, que segue o conceito de capturar "cada" evento, promete ser a solução para muitos problemas que as amostragens não conseguem resolver. É como enfrentar um bug com uma bomba atômica em vez de uma faca - a precisão conta muito nesse mundo de múltiplos servidores.
-
Ruslan Spivak
Ruslan Spivak
18/01/2016 10:10
Hoje o foco são os operadores unários, como o famoso '+' e o traçante '-'. Esse tema é uma continuação direta do que foi discutido na Parte 7, então, se você precisar de uma revisão, é só voltar e relembrar os conceitos. Como diria um bom desenvolvedor: repetição é o caminho para a sabedoria (ou pelo menos para evitar bugs).
-
Dan Luu
09/01/2016 23:00
2015 pode ter sido um ano próspero para a Intel em termos de lucros, mas seu lado de engenharia deixou a desejar. O artigo menciona que ‘depois da descoberta de dois bugs sérios’, uma falha permitiu que uma VM causasse um looping infinito no microcódigo da CPU, e é aà que a coisa fica realmente tensa. Se um black hat tivesse descoberto isso antes, o estrago nas nuvens poderia ter sido monumental. O que vem a seguir? Vamos esperar que a Intel faça mais do que apenas venda CPUs para manter os serviços seguros.
-
Este texto explora as complexidades por trás da operação de sistemas, em especial o RAID1. A ideia de que falhas são independentes é um mito que já era desmistificado em 1988, e a realidade é que eventos como um terremoto podem desabar a casa (ou o servidor) em um instante. Além disso, a abordagem clássica não considera que, uma vez que um disco falha, o outro acaba se tornando um alvo, como um colega de trabalho que é chamado para cobrir a ausência e acaba se estressando. No final, fica claro que é vital operar e monitorar sistemas, pois a aparência de saúde pode ser enganosa.
-
Phil Oppermann (OS in Rust)
31/12/2015 23:00
Neste post, vamos fortalecer a segurança do seu kernel, criando uma nova tabela de páginas com uma "guard page". A ideia de adicionar essa proteção é evitar os terrÃveis transbordamentos de pilha que podem causar bugs difÃcies de debugar, um verdadeiro pesadelo digno dos melhores memes de programação. Lembre-se, stack overflow não é apenas um site; pode ser seu código se você não tomar cuidado. No final das contas, mexer com nÃveis baixos do sistema sempre exige atenção e paciência, mas o esforço vale a pena.