-
Drew DeVault
09/10/2020 00:00
Os princípios apresentados vão direto ao ponto da essência de um bom software. Desde a robustez ao garantir que 'tudo que pode dar errado, vai dar errado', até a simplicidade que, convenhamos, é um verdadeiro desafio em um mundo de frameworks e bibliotecas. Saber que mudanças devem ser planejadas e comunicadas, é quase um princípio tenebroso no mundo do desenvolvimento. No final das contas, mais vale um código simples e estável do que um labirinto de complexidade que seria aplaudido em um hackathon, mas que morre na primeira integração.
-
Drew DeVault
08/10/2020 21:00
Os quatro princípios da engenharia de software estão mais para verdades universais do que meras sugestões. "Software deve ser robusto e confiável", ou seja, se uma aplicação não consegue lidar com as bordas do cenário do usuário, é como um Jedi sem sabre de luz. E a ideia de que "software deve ser simples" é um mantra que a maioria dos devs ignora até se deparar com um sistema legado, que parece ter sido projetado por um rebelde da força. A simplicidade pode ser a arma mais poderosa numa batalha contra bugs, mas, como todo bom dev sabe, a implementação é a parte mais difícil.
-
Drew DeVault
19/09/2020 21:00
A federação surge como uma solução possível para os problemas de centralização e controle na comunicação online. Com "servidores controlados por entidades soberanas independentes", essa arquitetura permite que pequenos grupos se conectem e se autogerenciem sem o desgaste de um orçamento estilo megacorp. Além disso, a ideia de permitir que os usuários escolham suas instâncias é uma lufada de ar fresco numa internet dominada pelo marketing e spam. No entanto, fica o alerta sobre as armadilhas do mundo das criptomoedas e o seu conceito de P2P, que não deve ser confundido com federação de verdade.
-
O modelo M/M/c não é tão intuitivo quanto parece. A lógica de que a latência média diminui à medida que o número de servidores aumenta faz sentido, mas a realidade é que ela realmente se aproxima de um segundo à medida que c cresce. A pesquisa no Twitter trouxe resultados mistos, mas como o artigo explica, "a probabilidade de um pedido entrar numa fila cai com o aumento dos servidores". Essa é uma notícia boa para quem luta contra a latência em ambientes de cloud.
-
Two-Bit History
27/06/2020 21:00
O texto discute como a história pode aclarar o conceito de 'API RESTful', e a curiosidade aqui é que muitos desenvolvedores interpretam REST de maneiras bem diferentes. É como se cada um tivesse sua própria visão de como deve ser um ‘endpoint’ – e aí a confusão começa. Revisitar a dissertação de Fielding pode nos lembrar que REST não é só uma moda passageira, mas sim uma filosofia que ainda precisa ser compreendida em sua essência.
-
Dan Luu
02/06/2020 04:05
Pelo visto a narrativa em 'Star Trek: Voyager' estava tão perdida quanto uma persona de dev pelo GitHub em 2010. O autor critica a adição de personagens como a Seven of Nine, argumentando que isso não salvou a série de cair na mesmice de histórias repetitivas. Ele menciona que a falta de desenvolvimento real dos personagens transforma a curva de interesse em um loop infinito que seria facilmente encontrado em um script mal escrito. No final das contas, a dinâmica da série fragiliza sua própria premissa ao priorizar a formulação de personagens constantes em lugar de um crescimento genuíno dos mesmos.
-
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
12/03/2020 21:00
A implementação de 'Another World' como um projeto de paixão no Jaguar é uma verdadeira viagem no tempo para quem viveu a era dos 16-bits. A maneira como os desenvolvedores conseguiram dar vida a um título tão inovador em hardware limitado é um exemplo perfeito de como engenhosidade e amor pelo que se faz podem superar limitações técnicas. Como diria o velho meme, só um verdadeiro dev conseguiria fazer tanta coisa com tão pouco. Isso é uma lição valiosa para qualquer um que acha que precisa de um supercomputador para criar algo incrível.
-
Fabien Sanglard
05/03/2020 21:00
Falar sobre a evolução dos PCs é como lembrar de algumas das primeiras linguagens de programação: nostálgico e um pouco confuso. O autor comenta sobre como em 1998 ele lutava para manter sua Riva TNT fresca no calor francês, enquanto hoje temos gabinetes como o Streacom DB4 que esfriam passivamente com estilo e sem barulho. E pensar que antes a maior conquista era conseguir um pedido pela internet sem levar meses. Agora, com um setup elegante em mãos, a maior luta é decidir qual parte você realmente precisa. No fundo, é tudo uma questão de prioridades: performance ou silêncio?
-
Phil Oppermann (OS in Rust)
01/03/2020 21:00
O blog 'Writing an OS in Rust' ganhou várias atualizações interessantes. É bom ver que agora o alocador não entra em pânico em casos de overflow, retornando um ponteiro nulo. Além disso, as melhorias na biblioteca x86_64 estão surtindo efeito, desde a adição de registros de modo usuário até correções nas ações do GitHub. E, claro, o suporte para traduções da comunidade já é uma adição bem-vinda. Isso só mostra que, mesmo em um ambiente tão técnico, sempre há espaço para colaboração e melhorias.
-
Ruslan Spivak
Ruslan Spivak
01/03/2020 13:53
Essa é uma ótima lembrança sobre a natureza do EOF. Tipo aquele amigo que sempre some na festa, mas você sabe que ele está lá, apenas não pode ver. "Não há um 'caractere EOF' explícito no final de um arquivo" é uma verdade que os devs precisam abraçar, porque, no final das contas, a mágica acontece nas abstracções de alto nível que construímos. Em vez de olhar para o EOF como um personagem solitário, melhor vê-lo como o conceito que está sempre nos salvando de ter que limpar o que não lemos.
-
Drew DeVault
16/01/2020 21:00
O autor traz uma visão interessante sobre governança em projetos de software, destacando que "sistemas sociais são fundamentalmente diferentes de sistemas computacionais". A proposta do BDFL (Benevolent Dictator for Life) parece um pouco old school para muitos, mas ainda é uma abordagem válida se considerarmos a complexidade das interações humanas. É como tentar aplicar um padrão intergaláctico em um projeto: pode ser lindo na teoria, mas e na prática? Avaliar se os valores do líder alinham com os seus é crucial; caso contrário, é hora de procurar uma nova galáxia ou até fazer um fork.
-
Drew DeVault
03/01/2020 21:00
A famosa frase "hello world" traz consigo não apenas nostalgia, mas também uma lição sobre a eficiência das linguagens de programação. Enquanto programas em Assembly executam essa tarefa com apenas dois syscalls, outros como Java e Node.js exageram na arquitetura, transformando um simples print em uma maratona de origem e dependências. É como comparar uma ferrari com um trator para entregar uma pizza. No final, o que importa é saber usar a ferramenta certa para a tarefa certa.
-
Fabien Sanglard
03/01/2020 21:00
Esse artigo sobre a história do IBM PC é um lembrete de como a IBM transformou o mercado de microcomputadores com sua abordagem de código aberto. Ao invés de manter tudo sob controle, a empresa disponibilizou manuais técnicos e códigos, permitindo que desenvolvedores criassem periféricos sem precisar enfrentar um gatekeeper. Isso é algo que muitos devs de hoje em dia ainda desejam. Mas a abertura levou à proliferação de clones e, como bom exemplo de que a liberdade pode ser uma faca de dois gumes, a IBM acabou perdendo um pouco o controle do barco.
-
Fabien Sanglard
02/01/2020 21:00
O Atari ST é uma verdadeira montanha-russa de reviravoltas históricas. Com um início promissor, como um conto de fadas tecnológico, acabou se transformando em um embate entre titãs do setor, como Commodore e Atari. A estratégia de preço e as vantagens como a resolução de 640x400 e a interface MIDI mostraram que o ST não estava apenas jogando no mesmo time, mas tentando virar o jogo. Assim, muitos devs e músicos da época preferiram a máquina que, embora tivesse "apenas" 16 cores, valia a pena pelo custo-benefício e inovação.
-
Fabien Sanglard
01/01/2020 21:00
O Amiga 500 é uma pérola da computação dos anos 80; nasceu em um momento em que a Commodore estava no olho do furacão e conseguiu agitar o mercado como poucos. Com seu chip 68000 em obsolescência eterna, o A500 entregou gráficos e som que fazem muitos jogos atuais parecerem piadas em comparação. Um detalhe interessante: ao contrário do que muitos pensam, a máquina não tinha um boot nativo e dependia de disquetes para funcionar, um verdadeiro teste de fé e habilidade para os gamers da época. Realmente, se você não sabia fazer um backup dos floppies, era praticamente o mesmo que jogar na tela azul da morte nessa era digital.
-
Drew DeVault
09/12/2019 00:00
A discussão sobre a distribuição de software no Linux é como a eterna batalha entre Jedi e Sith: cada lado achando que está certo. O artigo destaca que um .tar.gz com o código-fonte é a verdadeira forma de distribuição, mas a customização das distribuições ajuda a evitar que software malicioso entre na festa. Ao invés de tentar ser o herói solitário, os desenvolvedores devem confiar nas distribuições para garantir qualidade e segurança. No final das contas, um bom 'middleman' pode ser mais útil do que alguns programadores acreditam.
-
Fabien Sanglard
02/12/2019 21:00
O papo com Frank Savage traz uma abordagem divertida para entender a arquitetura dos computadores de antigamente. Ele sugere que a gente pegue um software que já manja e veja como ele foi portado para máquinas obscuras. É como fazer uma engenharia reversa, mas sem o perigo de rodar um vírus antigo.
-
Two-Bit History
05/11/2019 21:00
Particionamento de Espaço Binário, ou BSP, é quase como aquela ferramenta secreta que os desenvolvedores sempre tentam usar para impressionar os outros em uma noite de pizza e código. Doom, com sua jogabilidade revolucionária, mostrou que, com a estrutura certa, até um labirinto 3D pode parecer um passeio no parque – ou melhor, uma missão em uma estação espacial. "Uma breve história da estrutura de dados que impulsionou o clássico shooter" revela não só a genialidade, mas também como os devs de hoje ainda podem aprender com as sabedorias do passado. No final das contas, uma boa estrutura de dados é como um bom código: se estiver funcionando, você pode até se sentir um pouco como um gênio.
-
A discussão sobre coordenação em sistemas de nuvem é tão essencial quanto manter a bateria do seu laptop cheia. Muitos sistemas são projetados para evitar coordenação entre clusters, mas como o artigo aponta, isso pode levar a surpresas desagradáveis durante falhas correlacionadas. "Se sistemas são projetados para coordenar durante o tratamento de falhas, isso pode resultar em explosões repentinas de coordenação e tráfego" — e, claro, ninguém quer ficar na fila do atendimento ao cliente quando a nuvem entra em colapso. A lição aqui é clara: o planejamento cuidadoso é o nome do jogo, ou você pode acabar com suas estruturas de coordenação caindo como um castle em um game de cartas mal jogado.