-
Andrew Kelley (criador do Zig)
10/07/2013 18:47
Nada como compartilhar as gafes de programação para aliviar a tensão do dia a dia no código. Como diz a sabedoria popular dos desenvolvedores, 'erros fazem parte do jogo', mas alguns são verdadeiros clássicos, como o 'missing break' ou a troca de operadores. Cada um desses fails capturados poderia muito bem ser uma commodity no mercado de memes dos devs. No final, só nos resta rir e aprender (e talvez aumentar a cobertura de testes).
-
Andrew Kelley (criador do Zig)
30/01/2013 11:00
No mundo do desenvolvimento ágil, resolver problemas de envio de email pode ser mais desafiador do que debugar aquele código legado. A combinação de node-email-templates e Nodemailer promete facilitar a vida, mas como indicado no artigo, "dependendo de como você organiza seus templates, você pode se deparar com alguns desafios." A estrutura de arquivos é um pouco restritiva, e as limitações de herança de templates podem machucar aquele que sonha em criar algo realmente robusto. No fim das contas, pode ser uma boa ideia fazer uma revisão na sua arquitetura antes de sair enviando emails.
-
Esse comparativo entre long, volatile e std::atomic em C++11 é uma verdadeira aula de como o compilador se comporta em diferentes cenários. Enquanto o longa se esconde numa otimização marota, o uso de volatile e atomic revela um lado mais conservador na hora de lidar com concorrência e acesso à memória. Como o autor bem aponta, a diferença de tempo de execução é gritante e mostra que, dependendo da sua escolha, você pode acabar correndo mais ou menos que um script de ANSI C sem otimizações. Afinal, quem precisa de um loop quando você pode transformar isso numa constante?
-
Fabien Sanglard
25/12/2012 00:08
Quando a gente começa a programar jogos, é fácil cair na armadilha do loop infinito. Como o autor menciona, isso não só complica a gravação de sessões de jogo, como cria soluções mais tortuosas que um labirinto em um jogo de 8 bits. A boa notícia é que ele encontrou uma solução simples na sua engine e está disposto a compartilhar. Vale a pena dar uma olhada, quem sabe você não ganha algumas horinhas preciosas em seu próximo projeto?
-
O post explora como o Java lida com variáveis `volatile` e `AtomicInteger` no x86, que é como tentar explicar a diferença entre um Jedi e um Sith: ambos têm força, mas suas abordagens são bem distintas. Como mencionado, "a adição de volatile agrega visibilidade, mas não atomicidade", o que significa que os desenvolvedores precisam entender que essas nuances podem afetar o comportamento do seu código. Afinal, o que é um detalhe técnico entre amigos, certo? O uso do `AtomicInteger`, apesar de um pouco mais lento, é o caminho mais seguro para evitar surpresas desagradáveis no seu código multi-thread.
-
Essa análise sobre locks em Java traz uma luz interessante sobre como o desempenho pode mudar drasticamente dependendo da configuração. O autor mostra que "a versão de bloqueio deste teste é cerca de 33x mais cara do que a versão volátil", o que serve como um lembrete de que nem tudo que brilha é ouro, especialmente no mundo dos multithreads. E a questão da fome de threads? É um alerta para não deixar seus threads na fila, esperando pela vez como em um buffet. Se você está lidando com alta concorrência, talvez seja melhor repensar o uso de locks justos. Como disse Doug Lea, escolha suas batalhas com sabedoria.
-
Surgiu uma dúvida bacana no mundo Java: seriam as leituras de variáveis voláteis realmente gratuitas em x86? O que muitos consideram fato é que, por conta de alguns "no-ops" nas barreiras no x86, as leituras não custariam mais tempo do que as normais. Contudo, não podemos esquecer que, segundo o teste com o JIT, o JVM se comporta conforme esperado, mas a presença de algumas instruções adicionais pode complicar a história. Portanto, enquanto a teoria é atraente, a prática pode variar e vale a pena ficar de olho no desempenho real, especialmente em sistemas onde a carga de leitura é alta.
-
Lua.org News
14/06/2012 22:00
A nova versão do Lua, 5.2.1, é como aquela atualização de firmware que você nunca pediu, mas que conserta todos os bugs da versão anterior. Se você estava se divertindo com as falhas da 5.2.0, agora pode aproveitar uma experiência mais estável. Uma escolha sensata para quem busca um pouco mais de tranquilidade em seus projetos de scripting, especialmente se for um projeto onde a performance é crucial.
-
Fabien Sanglard
16/03/2012 22:08
No fundo, essa discussão sobre SSDs versus HDDs é como discutir se usar um console ou um PC para jogos: a eficiência está do lado dos drives de estado sólido. Fabien Sanglard não economizou na empolgação, descrevendo como a migração para SSD transformou sua experiência como desenvolvedor em algo digno de um upgrade de nível em um RPG. Se você ainda está preso ao HDD, está jogando a versão desatualizada do seu software: a diferença de performance com SSD é tão grande que faz você se perguntar como sobreviveu até agora. E, pelo amor do código, use um adaptador adequado na hora de instalar, ou seu SSD pode terminar como um daqueles memes de gato que a gente vê desmaiando em cima do teclado.
-
Lua.org News
17/02/2012 07:41
A nova versão, Lua 5.1.5, foi finalmente liberada e, como um bom patch, traz todas as correções da 5.1.4. Nada muito revolucionário, mas quem está de olho no desempenho e na estabilidade dos scripts não pode desconsiderar essas atualizações. É aquele típico patch que pode parecer sem graça, mas é o que mantém o software rodando como uma máquina bem lubrificada. Em suma, atualize e siga em frente, devs.
-
Esse artigo aborda um dilema clássico em sistemas distribuídos: como balancear carga sem criar um engarrafamento digital. A ideia de usar dados desatualizados para decidir a carga parece intuitiva, mas como apontado, resulta em um comportamento de manada que faz o sistema pardar. Essa "dança" entre servidores, alternando entre ficar ocupado e ocioso, mostra que confiar no que estava quieto pode ser o caminho mais longo para o caos. No fim das contas, manter a informação fresca e precisa é melhor do que desviar rumbo baseado em dados funky da última atualização.
-
Lua.org News
16/12/2011 17:45
A nova versão da Lua 5.2.0 chegou e trouxe algumas atualizações que melhoram a linguagem já tão querida pelos desenvolvedores. Apesar de não termos uma revolução quântica neste lançamento, "a eficiência em operações de manipulação de dados e desempenho geral foi aprimorada". Para quem é fã de performance em scripting, isso é música para os ouvidos, semelhante ao poema que você escreveu em Lua na madrugada. Sem dúvida, um passo na direção certa para os aficionados por programação leve e rápida.
-
Fabien Sanglard
27/11/2011 00:08
Parece que a batalha entre iOS e Android se estendeu até o mundo dos containers de vídeo. O autor menciona que "dispositivos Android falham em realizar a reprodução progressiva em certos arquivos", o que é um lembrete de que, mesmo em 2023, a interoperabilidade ainda pode ser um pesadelo, mais insidioso que um bug em produção. Optimizar essa reprodução pode não ser tão glamouroso quanto criar um app incrível, mas é essencial para a experiência do usuário, e é sempre bom lembrar que, na guerra dos sistemas, os detalhes técnicos fazem toda a diferença.
-
Fabien Sanglard
27/11/2011 00:08
Após duas semanas explorando o código-fonte de Another World, o autor revela que o jogo utiliza um sistema elegante baseado em uma máquina virtual para interpretar bytecode em tempo real. Esse detalhe é um lembrete de como desenvolvedores da época eram engenheiros de verdade, criando experiências cinematográficas em apenas 1,44MB. "Um dos melhores jogos de todos os tempos" é uma afirmação que não falta ao jogo, e com um trabalho tão detalhado, pode até ajudar novos devs a aprender a otimizar seus próprios projetos. Isso é mais de produtividade do que uma atualização do Windows.
-
Fabien Sanglard
26/06/2011 18:36
Este relato de 2009 é um lembrete interessante das limitações de hardware nos primórdios dos smartphones. O autor menciona a luta para alcançar 60 FPS em um hardware que, mesmo com GPU dedicada, tinha suas falhas. O uso de "coordenadas homogêneas" para otimizar a performance é como tentar ajustar sua aplicação, quando o servidor ainda está no modo 'espero que funcione'. Essa adaptação é típica dos desenvolvedores, que sempre buscam soluções criativas em ambientes limitados.
-
Fabien Sanglard
21/02/2011 18:36
Em 2009, gerar vídeos a 60fps em um smartphone era tipo tentar rodar um jogo de tamagotchi em um mainframe. O autor enfrentou limitações severas com CPU, GPU e RAM. A ideia de "fazer o próprio motor gerar vídeos" é uma jogada esperta que poderia inspirar desenvolvedores que lutam com as restrições atuais das plataformas móveis. Depois de tudo, se o seu motor pode ser um pouco mais inteligente, por que não usá-lo para suas próprias propagandas?
-
Fabien Sanglard
11/12/2010 20:36
Parece que o "Blade Infinity" chegou para sacudir o mundo dos jogos mobile. Com um preço camarada de $5,99, é meio que o equivalente a achar um easter egg em um jogo retro: você não espera, mas é uma ótima surpresa. O interessante é o foco na performance em dispositivos diferentes, onde gerenciar o fillrate pode ser a chave para garantir uma boa experiência ao usuário. Se o dev que programou o jogo estava pensando nisso, é sinal de que o jogo pode ser só um pixel a mais do que o Rage HD em termos gráficos.
-
Drew DeVault
11/12/2010 01:00
O Windows Phone 7 está se apresentando como um ótimo dispositivo, especialmente para desenvolvedores que querem brincar com Silverlight e XNA. Se você está procurando recursos como acelerômetro, GPS e até mesmo algumas funcionalidades de notificação "sort of", essa plataforma promete uma experiência interessante. Mas, como todo desenvolvedor sabe, nada vem sem suas limitações, e acessar a câmera de forma direta parece ser uma missão mais complicada que decifrar um código em Assembly. No final, é uma boa oportunidade para explorar novas possibilidades, mesmo que algumas portas estejam meio trancadas.
-
Lua.org News
01/08/2010 10:47
A quarta versão de trabalho do Lua 5.2 está aqui, e isso é uma notícia que pode deixar alguns desenvolvedores animados. Para quem adora performance e scripts leves, o Lua nunca decepciona. Lembre-se, cada atualização pode trazer aquela correção de bug que estava tirando seu sono, então vale a pena dar uma olhada. E se você acha que scripts são só para iniciantes, é melhor rever seu conceito antes que o Lua te surpreenda mais uma vez.
-
Fabien Sanglard
13/01/2010 03:33
Explorar como o motor de Doom funcionava em 1993 é como revisitar um clássico do cinema nerd, sempre impressionante. O autor menciona que "o port para OpenGL deve reutilizar os mesmos dados do arquivo WAD", ressaltando a importância de reaproveitar recursos em vez de reinventar a roda. Essa visão sobre a renderização do Doom é fundamental, especialmente para quem quer mergulhar mais fundo nesse universo. Vale lembrar que, apesar de ser vintage, a tecnologia dele ainda ressoa em muitos jogos modernos.