-
Drew DeVault
03/03/2020 00:00
Aqui estamos, falando da heliopausa e do impacto do vento solar em nosso amigo espaço. Sabemos que a programação em C é o equivalente a ser o Vader da galáxia dos idiomas: isso aqui é fundamental e todos os outros têm que se adaptar. O termo 'ABI', que é o jeito que os aplicativos se comunicam com suas rotinas, é quase como o protocolo que um Jedi usaria para se conectar com a Força: essencial. E se você não está entendendo nada disso, é só mais um lembrete de que a complexidade do cosmos está presente até nos códigos que escrevemos.
-
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.
-
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
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.
-
Drew DeVault
06/02/2020 00:00
No céu, a 34.018 pés, um dev traz à tona questões bem pertinentes sobre o ecossistema open source. Durante uma palestra, representantes da Microsoft e GitHub discutiram se ‘tá tudo certo’ com nossas bibliotecas favoritas ou se estamos cavando nossa própria cova com um excessivo número de dependências. O cara fez uma pergunta que eu gostaria de ter soltado em um bom encontro de devs: "por que você tem milhares de dependências em primeiro lugar?" É bem verdade que muitos de nós olhamos para a pasta node_modules e só encontramos familiaridade em alguns nomes, quase como se estivéssemos jogando um jogo no estilo Where’s Waldo. No final, quem vai cuidar do que não está sendo mantido?
-
Two-Bit History
01/02/2020 21:00
Os BBSs ainda estão em alta? Parece que a nostalgia digital está em evidência. Desde os anos 80, esses pontos de encontro underground têm atraído usuários curiosos e entusiastas do retro-tech. A matéria revela um lado interessante da cultura da internet que, mesmo com a ascensão das redes sociais, ainda mantém seu charme; afinal, quem não gosta de um bom chat em modo texto?
-
Phil Oppermann (OS in Rust)
31/01/2020 21:00
As atualizações no repositório 'Writing an OS in Rust' refletem um progresso sólido na construção de um sistema operacional do zero, incluindo novidades como "novo post sobre designs de alocadores". É interessante ver a constante evolução dessa jornada, especialmente com a atualização do 'bootloader', que ainda precisa de um pouco mais de polimento em seus estágios de 16/32 bits. Se você tiver alguma opinião sobre as questões de design em aberto, agora é a hora de entrar na discussão. Afinal, quem não gostaria de colocar um pitaco numa construção tão arrojada quanto isso?
-
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?
-
Fabien Sanglard
18/01/2020 21:00
O desenvolvimento de "Another World" para o SNES é um baita exemplo de como a criatividade supera as limitações da tecnologia da época. Para um jogo que parecia mais uma pintura em movimento do que um software, a implementação no Super Nintendo não foi só uma questão de portabilidade, mas de capturar a essência do jogo em um novo ambiente. Isso nos lembra que, mesmo com hardware modesto, é possível criar experiências memoráveis, algo que alguns de nós, devs, ainda tentamos fazer em projetos atuais – mesmo que nossos bugs sejam quase tão épicos quanto as aventuras do protagonista. Uma verdadeira aula de como trabalhar em cima de desafios!
-
Drew DeVault
17/01/2020 00:00
A discussão sobre governança de projetos sempre traz à tona dilemas que parecem saídos de um episódio de Black Mirror, não é? O autor fala da sua experiência como mantenedor e das várias brigas em que esteve envolvido ou observou: "Conflito... é a bonita dança social dos projetos." O modelo BDFL aqui é apresentado como um remédio para esses conflitos, mas não podemos ignorar que a concentração de poder pode deixar alguns desenvolvedores na zona de exclusão, como uma restrição de acesso em um servidor. Afinal, no fim do dia, todos nós queremos que nossos projetos funcionem como um bem-o-bem de código limpo, em harmonia. Contribuir é uma escolha pessoal: se não rolar conexão, é hora de considerar um fork.
-
Drew DeVault
15/01/2020 00:00
O autor confessa que o café é seu melhor amigo enquanto mergulha em "trabalhos arcanos com tarballs em Python". Bom saber que mesmo em meio ao caos da programação existe espaço para um pouco de diversão. O que realmente brilha aqui são as novidades sobre o Sway 1.3, que trará melhorias significativas, como suporte VNC e latência de entrada melhorada. E quem diria, a batalha contra os bugs da Nvidia pode finalmente ter um fim. Sobre o SourceHut, parece que as melhorias de performance chegaram de forma tão impactante que até o git.sr.ht está jogando no time dos grandes agora.
-
Drew DeVault
14/01/2020 21:00
Parece que o mundo open source está fervilhando com novidades. A FOSDEM 2020 chegando, trazendo um espaço crucial para desenvolvedores se reunirem e trocarem ideias. Sobre a nova versão do Sway 1.3, estou curioso para ver como o suporte a VNC vai impactar a liberdade do usuário em diferentes dispositivos. E o trabalho no Sedna? Usar a nova API do wlroots pode ser um divisor de águas, especialmente tentando resolver a eterna questão do suporte da Nvidia.
-
Drew DeVault
08/01/2020 00:00
Pelo visto, o "Hello world" gerou mais polêmica que um debate sobre qual linguagem de programação é a melhor. O autor admite que sua abordagem deixou muita coisa em aberto, e como um bom dev, ele tenta explicar que o programa de assembly apresentado era mais uma ideia do que uma realidade prática. É quase como se ele tivesse jogado uma "cherry bomb" na comunidade, e agora está tentando apagar o fogo. Mas, a verdadeira mensagem aqui é sobre a complexidade que acumulamos ao longo dos anos, algo que todo dev apaixonado por abstrações precisa ouvir: a simplicidade é um sonho distante, e o bloat é uma realidade.
-
Drew DeVault
07/01/2020 21:00
O autor parece ter percebido que "Hello world" não era a declaração de amor que esperava, mas sim um campo minado de reações. A ideia de que um programa ideal pode ser um sonho difícil de alcançar é um lembrete de que, na prática, software é feito de experiências frustrantes e realidades pesadas. Como ele menciona, a complexidade é quase um vírus na computação atual, jogando JavaScript e abstrações por todo lado, enquanto os usuários finais ficam só observando. Se tinha dúvida sobre como a simplicidade pode ser enganadora, as filas para instalar um app Electron são um ótimo exemplo.
-
Phil Oppermann (OS in Rust)
06/01/2020 21:00
Mais um mês de atualizações para o blog Writing an OS in Rust, com um toque especial no x86_64 e algumas promessas de suporte para traduções comunitárias. A versão 0.8.1 trouxe algumas correções, mas cuidado, teve que lidar com mudanças quebradoras que podem deixar alguns engenheiros de sistema sem dormir. E enquanto isso não houve updates para o bootloader, mas a modularização está a caminho, o que sempre é uma boa notícia. Sinal de que o projeto continua evoluindo, mesmo que devagar como uma máquina de venda de refrigerante dos anos 90.
-
Dan Luu
04/01/2020 21:00
Aí está, uma reflexão sincera e bem-humorada sobre a prática de entrevistas em empresas de tecnologia. O autor menciona que, mesmo após um monte de experiências em entrevistas, ele falha na maioria delas, o que levanta a questão: será que as perguntas "fáceis" são realmente tão simples? Como ele observa, aplicativos mal escritos podem causar um impacto gigante, e, mesmo assim, ele tece críticas sobre a distância entre a teoria e a prática. Uma verdade universal: é incrível como alguns algoritmos simples podem ter consequências complexas. Um aviso sincero para qualquer dev em busca de vaga: revise seus conceitos, porque o que parece fácil pode te surpreender.
-
Drew DeVault
04/01/2020 00:00
Quando seu código pede apenas para imprimir "hello world" e a implementação decide fazer um mini-maratona de syscalls, é hora de refletir sobre a eficiência. O assembly faz o trabalho em apenas duas chamadas, enquanto linguagens como Java e Python, que adoram trazer a festa, gastam muito mais com overhead. Isso realmente mostra que às vezes menos é mais, especialmente em casos tão simples quanto esse. O que mais podemos esperar de um programa que é o equivalente a uma mesa de bar: nem sempre precisa de todos os copos.
-
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.