-
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.
-
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...
-
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.
-
Firecracker é como aquele amigo que se especializa em fazer muitas coisas bem, mas também sabe quando dizer 'não' para evitar a sobrecarga. O texto menciona que ele foi projetado para "container workloads" e "functions", o que demonstra uma abordagem de leveza sem abrir mão da segurança. Além disso, a implementação no AWS Lambda é um toque de mestre, suportando milhões de cargas de trabalho. É sempre bom ver inovação que equilibra eficiência e segurança no mundo das nuvens.
-
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.
-
A proposta por trás do Physalia é como criar uma rede de suportes onde cada um é projetado para atender especificamente a uma demanda, ao invés de se ter um único banco de dados gigante, o que é uma abordagem que realmente faz sentido em ambientes distribuídos. Com a eficiência do TLA+ para garantir a correção, fica claro que a equipe não ficou apenas brincando de banco de dados. O foco na disponibilidade extrema para chaves específicas em vez de uma solução genérica é um ponto que pode ser um divisor de águas para a gestão de configurações em sistemas escaláveis. Vale a pena dar uma olhada no trabalho deles, especialmente para quem lida com sistemas complexos e precisa de uma solução robusta.
-
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?
-
Drew DeVault
27/01/2020 00:00
KnightOS é como aquele projeto que a gente começa empolgado, mas acaba com promessas de refatoração na prateleira, certo? Depois de 10 anos, é incrível pensar que um sistema operacional foi escrito do zero para calculadoras TI-83+ e companhia, enfrentando limitações de memória que fariam até o Yoda pensar duas vezes. O uso de 50 mil linhas de assembly Z80 pra criar um ambiente Unix-like sem MMU é um feito digno de aplausos, mesmo que a galera tenha que lembrar que não dá pra ter tudo em 64 KiB. Ao final das contas, é uma bela lição de engenharia, mostrando que com criatividade é possível fazer mágica mesmo com poucos recursos.
-
Drew DeVault
26/01/2020 21:00
KnightOS é uma daquelas histórias de amor platônico entre desenvolvedores e hardware restrito. Com apenas 64 KiB de RAM e um sistema totalmente escrito em assembly Z80, é como tentar montar uma máquina do tempo usando apenas peças de Lego. A ideia de usar código auto-modificado para contornar as limitações do armazenamento Flash é engenhosa, mas soa mais como uma operação de espionagem digital do que uma construção convencional. Resumindo, é um exemplo fantástico de como a criatividade pode prosperar em meio a desafios quase impossíveis.
-
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!
-
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.
-
Fabien Sanglard
04/01/2020 21:00
Falar sobre como "Another World" foi implementado no Sega Genesis é como conversar sobre a construção de uma máquina do tempo: é intrigante e cheio de surpresas. O fato de que um jogo tão visualmente inovador se adaptou a uma plataforma como a Mega Drive é impressionante e mostra a criatividade dos desenvolvedores da época. As limitações de hardware eram reais, mas como diz o ditado nerd, "necessidade é a mãe da invenção". Vale a pena relembrar como a arte e a técnica se uniram para criar uma experiência inesquecível, mesmo com as limitações de processamento.
-
Two-Bit History
04/01/2020 21:00
O artigo faz uma reflexão interessante sobre por que o padrão FOAF não decolou e como isso poderia ter mudado o cenário das redes sociais nos anos 2000. Se você parar para pensar, a ideia de um networking social descentralizado tinha muito potencial, mas acabou sendo engolida pelo monólito que é o Facebook. É como ter um carro voador na garagem e decidir andar de bicicleta elétrica; tudo bem, mas a bicicleta não gera hype como um carro que voa. No fundo, é uma lição sobre padrões abertos e a resistência da indústria em abraçar novas ideias que poderiam realmente criar um "matrix" social mais diversificado.
-
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.
-
Construir sistemas distribuídos é um verdadeiro desafio, e, como o próprio John Carmack reconheceu, a complexidade e o custo são fatores que nos fazem questionar a necessidade deles. Porém, sistemas monolíticos têm suas limitações, principalmente em termos de disponibilidade e escalabilidade. A partir do momento em que temos um único ponto de falha, estamos dando ao sistema uma possível derrota que pode ser evitada. No final das contas, simplificar a operação de sistemas distribuídos é essencial para garantir que não tenhamos que escalar nossa frustração junto com a carga de trabalho.
-
Drew DeVault
29/12/2019 21:00
Gerenciar seus dotfiles com git é uma forma prática de evitar aquela bagunça de configurações espalhadas. A ideia de usar um arquivo .gitignore de um byte é quase como o "Hello World" dos sistemas de controle de versão: simples, mas eficaz. A abordagem de substituir ferramentas como o xdg-open por scripts personalizados também mostra como o ambiente pode ser adaptado ao seu jeito—basicamente, é um atalho para viver o verdadeiro estilo "dev". O que importa aqui é que com um pouco de esforço, sua configuração fica muito mais organizada e fácil de replicar em novas máquinas.