-
Fabien Sanglard
01/05/2020 21:00
O artigo dá uma boa visão sobre a evolução dos multiprocessadores de fluxo da NVidia, detalhando desde a arquitetura Tesla até os designs mais recentes. A mudança para a arquitetura unificada em 2006 foi um divisor de águas, tirando os engenheiros da simples previsão de gargalos e permitindo um balanceamento automático. Como mencionado: "o Stream Multiprocessor (SM) substitui todas as unidades anteriores..." Isso é uma jogada que faz a diferença em como pensamos sobre processamento gráfico hoje. Fica fácil perceber como a NVidia continua a pavimentar o caminho na geração de gráficos de última geração.
-
Fabien Sanglard
30/04/2020 21:00
O artigo revisita um clássico: o Raytracer do cartão de visita de Andrew Kensler. Com um código compacto e engenhoso, ele demonstrou que menos pode ser mais, embora a performance sempre seja um fator a ser considerado. Fabien Sanglard decide mexer na mágica e, com algumas otimizações e o uso de CUDA, reduz o tempo de execução de 101 mil milissegundos para meros 150 milissegundos. No fim das contas, é uma incrível demonstração de como a computação gráfica ainda consegue nos surpreender, mesmo quando a "beleza" reside na simplicidade do código.
-
Antirez (Salvatore Sanfilippo)
30/04/2020 10:33
O mundo do caching está em festa com a chegada do Redis 6.0.0. Entre as principais novidades, a remodelação no *client side caching* que agora desistiu dos slots e apostou mais nos nomes das chaves. Isso deve facilitar a vida da galera que vive desacelerando o servidor com requisições desnecessárias. Além disso, com melhorias no ACL e suporte a logs de violação, a administração de permissões ficou mais simples. No geral, parece que essa versão trouxe um pacote considerável de melhorias sem perder a essência do Redis: agilidade e leveza.
-
Drew DeVault
21/04/2020 21:00
O texto aborda as dores de cabeça que todos enfrentamos quando nossos dados desaparecem, como a falência de empresas e a falha de hard drives. É interessante notar a diferença entre armazenamento frio e quente, sendo o primeiro uma espécie de cofre digital, enquanto o segundo está sempre na ativa, como um servidor em plena carga. O autor menciona a confiabilidade das hard drives em comparação com microSDs, que parecem mais suscetíveis a falhas, especialmente sob pressão. No fim, a redundância via RAID é destacada como uma ótima solução, oferecendo um ganho extra de segurança que todo dev deveria considerar.
-
Coding Horror (Jeff Atwood)
Jeff Atwood
19/04/2020 20:56
É impressionante pensar que o autor usou o mesmo case desde 2011. Para muitos, isso é um sinal de que a era dos upgrades de PC está se tornando tão emocionante quanto assistir a tinta secar. A verdade é que, a cada geração, os incrementos se tornaram tão sutis que até o dev mais empolgado dá uma piscadela e pede uma 'feature', talvez um novo RGB?
-
Drew DeVault
05/04/2020 21:00
Esse desenvolvedor claramente decidiu que branch é para quem gosta de organização, mas ele prefere a liberdade caótica de trabalhar no master. Com isso, ele elimina a dor de cabeça de alternar entre branches e resolve conflitos de uma só vez. "Eu sei que branches leves são um dos recursos principais do git, mas eu realmente não lhes dou muita atenção". É uma abordagem arriscada, mas passando pela rebazeação, ele faz parecer que o caos está perfeitamente sob controle.
-
Phil Oppermann (OS in Rust)
26/03/2020 21:00
Este post mergulha no mundo do multitasking cooperativo e na feature async/await do Rust. A forma como o Rust lida com o Future trait e a transformação em máquina de estados é algo que faz até um dev C# ficar com um leve sorriso no rosto. Adicionar suporte a async/await em um kernel, criando tarefas assíncronas, é tipo colocar um turbo no seu carro, só que com código. No final das contas, se você já ficou preso em callbacks, vai reconhecer que essa abordagem pode ser um verdadeiro divisor de águas.
-
Drew DeVault
24/03/2020 21:00
O autor aqui é o verdadeiro MacGyver das rodovias, provando que ser prático é uma arte. Optar por uma caminhonete velha, como uma 1984 Dodge D250, é quase como usar um sistema operacional retro: simplicidade e eficiência em vez de complicações modernas. O uso de "solvespace" para criar uma nova peça é o tipo de nerditude que a gente respeita, garantir que a janela da caminhonete não se transforme em uma palhaçada enquanto dirige é uma conquista. No final das contas, quem precisa de um carro novo se você pode imprimir suas soluções em 3D?
-
Após dois anos de aprendizado, o autor parece ter encontrado seu lugar no mundo do Rust. Trabalhando em código sensível à segurança e performance, ele destaca a usabilidade do sistema de tipos e a abordagens de concorrência da linguagem. A comparação com Go é interessante, já que Rust tem ganhado espaço nesse nicho de pequenos programas de alto desempenho, mas a luta com o compilador ainda é uma parte do dia a dia. No fim, ele é cauteloso: Rust não é a solução mágica, mas é uma escolha cada vez mais frequente para projetos que exigem robustez e segurança.
-
Ruslan Spivak
Ruslan Spivak
19/03/2020 09:45
Mais uma camada na complexidade dos intérpretes, e agora estamos falando de chamadas de procedimentos aninhadas. Isso é como escrever um código tão bem que até o seu debugger fica confuso. A frase de Feynman, 'O que eu não consigo criar, eu não entendo', é um lembrete martelando na cabeça de cada dev: entender é o primeiro passo para dominar. Afinal, se você não consegue fazer o que quer, provavelmente não sabe nem por onde começar.
-
Drew DeVault
02/03/2020 21:00
Parece que o sol tem sua própria versão da 'shutdown sequence', com o conceito de heliopausa sendo essencial para entender até onde a influência solar vai. Enquanto a Voyager 1 e 2 estão lá fora, cruzando essa linha metafórica entre sistemas, o C continua sendo o MVP da programação, essencial para que tudo funcione bem no nosso mundano dia a dia digital. Sem um bom ABI, a comunicação entre linguagens seria como tentar falar com o piloto automático de um foguete em Klingon. Portanto, só uma dica: sempre preste atenção no ABI no desenvolvimento de software, ele é a ponte entre a sua aplicação e os segredos do universo C.
-
Dan Luu
02/03/2020 21:00
É curioso como a filosofia de McIlroy, que prega que "cada programa deve fazer uma coisa e fazê-la bem", foi esquecida ao longo das décadas. A evolução das opções de linha de comando de 1979 até hoje mostra um aumento impressionante, com o comando 'ls' passando de 11 para 58 opções. Isso me faz pensar: teremos um dia uma opção para descomplicar todas essas opções? Se houvesse uma, certamente estaria entre as que nunca encontramos na documentação...
-
Drew DeVault
21/02/2020 00:00
O autor levanta um ponto crucial: o entendimento do sistema é vital antes de sair otimizando tudo como se estivéssemos no Tetris. A ideia de que "você não pode otimizar efetivamente um sistema que não entende" é um lembrete que muitos desenvolvedores esquecem, especialmente os veteranos. Ao invés de apressar-se na refatoração, precisamos aplicar o método científico e coletar dados sobre o que realmente está pesando na performance. No final das contas, otimizar um gargalo que nem sabemos que existe é como correr para a hora do almoço e esquecer o carro em casa - não vai ajudar muito.
-
Drew DeVault
20/02/2020 21:00
A discussão sobre chamar programadores de "engenheiros de software" se resume, em parte, a como eles encaram a otimização. O autor destaca que muitos desenvolvedores, mesmo os mais experientes, falham em entender suas próprias aplicações, resultando em otimizações que não fazem diferença. Ao invés de mergulhar em mudanças que parecem promissoras, é melhor adotar a abordagem científica: observar, medir, e então agir. Assim, a análise de desempenho se torna vital antes de sair refatorando, ou você pode acabar como um Jedi tentando usar a Força sem saber como.
-
Ruslan Spivak
Ruslan Spivak
20/02/2020 10:00
Esta parte do tutorial é como aquele momento em que você finalmente entende que passar parâmetros em funções pode ser mais fácil do que passar por uma crise de identidade em um projeto legado. Implementar chamadas de procedimento é um passo fundamental no desenvolvimento de um intérprete, pois traz um pouco de ordem ao caos. "Faça o melhor que você pode até saber melhor" realmente se aplica aqui, especialmente quando seu código parece mais um labirinto do que um algoritmo.
-
Drew DeVault
17/02/2020 21:00
É sempre uma viagem nostálgica quando você encontra alguém apaixonado por um ThinkPad X200 de 2008. O cara tem duas unidades, mas pelo visto, a bateria não faz muito mais do que uma pausa para café. Ele menciona que "o mercado está em um estado atroce", e dá pra sentir a frustração em cada palavra. No fim das contas, parece que, enquanto nossos sonhos de ter um laptop ideal se desfazem, a única coisa que ainda dura são as boas e velhas peças substituíveis. Graças a Deus por isso, né?
-
Dan Luu
17/02/2020 21:00
É curioso como o sistema tributário pode se parecer com um jogo de plataforma em que você cai diretamente em uma descontinuidade se não tiver cuidado. "Através de intensas discussões em fóruns de finanças pessoais", as pessoas estão tão desesperadas em evitar um aumento de custos que pensam em perder dinheiro intencionalmente. É como se o governo conseguisse transformar a busca por lucro em uma missão de caça ao tesouro, mas sem o tesouro. Um ajuste simples, como a implementação de descontinuidades suaves, poderia tornar tudo isso muito mais aceitável e menos frustrante, quase como deixar as fases de um jogo menos punitivas para os jogadores.
-
Drew DeVault
14/02/2020 21:00
Olha só, a galera do SourceHut está fazendo a festa com várias novidades, como a tão esperada versão 1.4 do Sway e um monte de melhorias em ferramentas relacionadas. No meio disso tudo, o autor ainda arrumou um tempinho pra cozinhar com carne impossível – quem não consegue fazer um prato sem queimar, não pode espernear logo? E, para quem é fã de acessibilidade, SourceHut agora se alinha com as diretrizes WCAG. Isso sem mencionar que um novo projeto secreto está em andamento. Espero que não seja um jogo de tabuleiro, porque já temos o suficiente no mercado.
-
Dan Luu
06/02/2020 21:00
Chegar ao 95%-ile pode parecer impressionante, mas, como o autor apontou, "não é tão difícil de fazer". Isso mostra que a consistência e o entendimento do que se faz é mais importante do que a mera classificação. No contexto dos jogos e até em situações da vida real, gente no 95%-ile comete erros básicos que deveriam ser evitados. Se a mediocridade caminha lado a lado com a participação, talvez o 75%-ile no que se pratica traga mais valor real do que a busca incessante por ser o melhor.
-
Phil Oppermann (OS in Rust)
19/01/2020 21:00
Esse post mergulha na implementação de alocadores de heap do zero, com designs como bump allocator, linked list e fixed-size block. A criação de um alocador próprio pode parecer um puzzle mais complicado que resolver um bug no código, mas é crucial para entender como a memória é gerida no kernel. A parte interessante é que, ao simplificar essa gestão, podemos até melhorar a performance em comparação com soluções mais complexas. Afinal, quem nunca sonhou em criar um alocador que é mais eficiente do que um jeitinho em Java?