-
Russ Cox
09/01/2017 13:00
A discussão sobre design e implementação de linguagens de programação nunca deve ser dogmática, e é isso que Russ Cox nos lembra. Ele diz que "os designers e implementadores lembram-se de trabalhar os bons argumentos de ambos os lados", o que é fundamental em um ambiente onde a engenharia realmente importa. É fácil cair na armadilha de dizer que "não é assim que as coisas são feitas aqui"; no entanto, um verdadeiro avanço vem do diálogo aberto. Viver em bolhas de ideias sem considerar as alternativas só nos faz retroceder, não avançar.
-
Drew DeVault
26/12/2016 23:00
O Sway 0.11 chegou com um presente de Natal para os usuários de Wayland: agora é possível configurar políticas de segurança. Isso promete um desktop Wayland mais seguro, o que é essencial em tempos de hackers velhos conhecidos. Além disso, a nova iniciativa de recompensa permite que devs sejam pagos por implementar recursos que realmente importam para a comunidade. Uma jogada inteligente, como um commit bem feito.
-
Dan Luu
29/02/2016 21:00
Esse post é o primeiro de uma série sobre mecânica quântica, mas com um toque leve, o que é uma boa ideia para não assustar os não-iniciados. O autor menciona que a percepção sobre a física clássica pode ser um pouco ingênua: "a maioria pensa que sabe mecânica clássica, mas há tantas maneiras de formulá-la..." Sem se aprofundar demais em matemática, ele quer explorar como a luz se comporta em diferentes meios, algo que até os mais nerds podem achar fascinante. Mais uma vez, a famosa frase de Fermat aparece: "A luz sempre escolhe o caminho de menor tempo", confirmando que até a física é cheia de truques e segredos, como um bom dev em um hackathon.
-
Ruslan Spivak
Ruslan Spivak
15/12/2015 11:00
Finalmente, estamos mergulhando em algo mais estrutural com as Árvores de Sintaxe Abstrata! "Uma das estruturas de dados centrais que usaremos ao longo da série" é como se o autor estivesse dizendo que já temos o esqueleto do nosso intérprete e agora é hora de colocar carne nele. É um passo essencial para quem quer entender como seu código se transforma em alguma coisa que a máquina realmente compreenda. Então, prepare-se para organizar esses nós como um verdadeiro arquétipo de dev, porque a beleza da programação está na sua lógica.
-
Dan Luu
26/11/2015 23:00
Jeff Atwood defende que ECC pode ser um exagero, e seus pontos têm suas peculiaridades. Por exemplo, "Google não usou ECC quando construiu seus servidores em 1999", mas é fácil esquecer que eles aprenderam com a dor e muitos erros daquela época. Além disso, a ideia de que "se ECC fosse tão importante, estaria em todo lugar" ignora o fato de que sempre há trade-offs em tecnologia. O que realmente importa é analisar o contexto e entender que nem sempre copiar o que os gigantes fazem é a melhor abordagem.
-
Dan Luu
31/10/2015 23:00
A performance do hardware realmente muda o jogo na otimização de software. Para ilustrar, a discrepância entre o tempo de busca em disco e a latência de round-trip em um datacenter é um tapa na cara da lógica. Como mencionado, "a latência de um seek de disco é de 10ms, enquanto a de um round-trip é de apenas 0.5ms". Com discos se tornando mais rápidos e redes ultrapassando barreiras de latência, a ideia de "armazenamento infinito" não é mais um sonho. É quase como se estivéssemos vivendo no futuro, mas ainda faltam aqueles 20 anos... ou mais.
-
Drew DeVault
20/07/2015 00:00
React.js e Flux estão se consolidando como ferramentas essenciais para o desenvolvimento web nos próximos anos. A transição do modelo MVC para a estrutura do frontend não foi fácil, e este post busca esclarecer a complexidade que envolve a combinação de React e Flux. O autor menciona que "a documentação upstream... espera que você coloque tudo junto", o que é verdade, especialmente quando você só quer que as coisas funcionem sem a dor de cabeça da leitura. No fim das contas, eles são mais simples do que as promessas de vendas sugerem, e ter suporte a ES6/ES7 faz toda a diferença. É uma abordagem moderna que pode até fazer você se sentir como se estivesse em um filme de ficção científica.
-
Ruslan Spivak
Ruslan Spivak
09/03/2015 09:00
A ideia de construir um servidor web sempre pode parecer tão simples quanto empilhar tijolos, mas, como a mulher que encontrou os três trabalhadores, a verdadeira questão está em entender o propósito por trás de cada camada. É interessante ver que a partir de uma analogia tão simples, se pode dar uma aula sobre como cada parte de um sistema opera em sinergia. Essa abordagem pode nos lembrar que, na programação, não estamos apenas escrevendo código; estamos construindo algo fundamentado e, muitas vezes, mais complexo do que parece na superfície.
-
A discussão sobre padrões de software continua tão atual quanto um bug em produção. O autor reflete sobre a reverência por "A Pattern Language" e como ela gerou debates intensos, lembrando como a comunidade muitas vezes confunde taxonomia com aplicabilidade real. Gabriel enfatiza que, no fim das contas, "tecnologia, ciência e engenharia são secundárias" às preocupações humanas. E quem já fez código sabe que sem foco nas pessoas, o projeto pode se tornar um labirinto sem saída.
-
Barbara Liskov é um verdadeiro ícone da computação, e seu legado é impossível de ignorar. Seu princípio da substituição, o famoso L em SOLID, é a Bíblia dos desenvolvedores que trabalham com herança. O artigo sobre Viewstamped Replication é um prato cheio para quem gosta de sistemas distribuídos, mostrando que Liskov sabia o que estava fazendo antes mesmo de Paxos entrar na conversa. Ler seus trabalhos não é só uma aula de história, mas um lembrete de que a profundidade da ciência da computação pode ser acessível e impactante.
-
Dan Luu
13/08/2014 21:00
Essa comparação de 1997 entre VHDL e Verilog parece mais uma disputa de dois gladiadores em uma arena, mas com uma pitada de código no lugar de espadas. O autor menciona que, dentre os participantes, "dos 9 designers de Verilog, apenas 1 não conseguiu um netlist final" enquanto os designers de VHDL ficaram a ver navios. O campeão aqui é claro: Verilog saiu na frente e fez o que se esperava. O que podemos aprender? Talvez fazer um fork no seu projeto VHDL e experimentar Verilog por um tempo. Saber quando empregar cada ferramenta é essencial no 'game' de desenvolvimento.
-
A discussão sobre o teorema CAP realmente parece um interminável labirinto de confusões e mal-entendidos. O autor destaca que, ao contrário da crença popular de que se deve simplesmente escolher qualquer dois dos três pilares, a realidade é que "partições acontecem em sistemas de larga escala" e a tolerância a falhas é obrigatória. PACELC surge como uma alternativa mais clara, mas ainda deixa algumas arestas penduradas. Ignorar essas nuances pode significar correr o risco de dar aquele erro 404 na hora de aplicar conceitos em sistemas distribuídos.
-
Nancy Lynch é praticamente a 'mãe' dos sistemas distribuídos, e seus trabalhos são como easter eggs para quem quer aprofundar o conhecimento no assunto. Ela está em todo lugar, desde o famoso livro 'Distributed Algorithms' até a prova do teorema CAP. Entre seus artigos, "A Hundred Impossibility Proofs for Distributed Computing" é uma leitura essencial que, apesar de seu nome complicado, é mais acessível do que parece e repleta de referências valiosas. E quem não ama uma boa narrativa onde se desprendem conceitos como consenso e a impossibilidade de certa lógica nas redes?
-
Leslie Lamport é um dos grandes nomes na computação, e sua obra é como um bug crítico: não dá pra ignorar. A inclusão do algoritmo da padaria, que ele apresenta como solução para o problema da exclusão mútua, é uma amostra perfeita de como simplicidade e beleza podem resolver questões complexas. E claro, seu trabalho sobre relógios lógicos em sistemas distribuídos é essencial para qualquer dev que queira evitar dores de cabeça com a ordenação de eventos. Em um mundo onde a ordem é fundamental, saber que "em um sistema distribuído, é impossível dizer que um evento ocorreu antes de outro" faz total sentido, mesmo que as aplicações práticas evoluam.
-
Antirez (Salvatore Sanfilippo)
13/03/2014 19:32
A reflexão sobre a beleza de códigos minimalistas é algo que todo dev já viveu, mesmo que em um cantinho da mente. "O que o programa faz é far mais interessante do que o que ele não faz" é quase uma mantra nos dias de hoje, onde complexidade parece ser a regra. Já escrevi códigos mais curtos do que a sinopse de um filme da Marvel, e a satisfação é real. Ao mesmo tempo, é um lembrete de que, apesar da pirâmide de complexidade em software, ainda podemos buscar aquela simplicidade quase poética, bem como os grandes mestres da programação faziam no tempo em que cada byte contava.
-
Dan Luu
01/01/2014 23:00
A análise que o artigo traz sobre o desempenho entre acessos alinhados e desalinhados é um lembrete de que otimização é um jogo de estratégia. A analogia do estacionamento é perfeita; quem nunca teve que desocupar uma vaga alheia? No caso, a diferença de desempenho mostra que, na maioria das vezes, "a versão desalinhada é notavelmente mais rápida". Isso soa como um bug escondido em um código aparentemente limpo. Ver essas nuances em arquitetura de cache é como navegar em um labirinto: às vezes, o caminho menos esperado te leva mais rápido ao objetivo.
-
Fabien Sanglard
06/10/2013 22:08
Se você é do time que ama software e quer entender o hardware até os parafusos, vai perceber que não é tão simples assim. Como mencionado, "a documentação da Intel é 'ligeiramente mais divertida de ler do que a lista telefônica'". Mas os livros citados, "Code" e "Computer Organization and Design", são boas apostas para começar. E não dá para esquecer das máquinas antigas, como o Amiga, que mostram que a inovação não morreu com os processadores modernos.
-
Fabien Sanglard
20/09/2013 22:08
O desafio do raytracer no cartão de visitas é um verdadeiro teste de engenhosidade no mundo das graficas computacionais. Como o próprio Paul Heckbert começou isso em 1984, podemos ver que a criatividade em código não é nada nova. A versão do Andrew Kensler realmente te faz pensar: como ele fez isso caber em tão pouco espaço? É o tipo de magia que qualquer dev sonha em realizar durante um hackathon.
-
Fabien Sanglard
15/08/2013 22:08
A surpresa ao descobrir que o código de Second Reality não era uma bagunça colossal de assembly, mas sim uma arquitetura bem elaborada que mistura várias linguagens de forma elegante, é como encontrar um easter egg escondido em um jogo antigo. O autor destaca "trabalho em equipe" e "obfuscação" como dois pilares da demomaking, e isso é realmente um insight valioso. Ler código como esse é uma ótima maneira de aprender, então, se a sua intenção é se tornar um engenheiro melhor, vale a pena se inspirar nesse clássico.
-
O autor toca em um ponto crucial: muitas vezes, as reuniões de design falham porque os participantes não estão na mesma página. Em vez de se prender ao foco na solução, que é o que geralmente atrai os engenheiros, é fundamental alinhar os objetivos primeiro. Afinal, discutir o caminho sem saber para onde queremos ir é como tentar compilar um código sem saber se ele faz parte de um projeto que precisa de Java ou Python. Cada um pode ter uma visão diferente do que é sucesso, então, alinhar esses destinos é vital.