Recentemente, herdei um projeto Node.js e, cara, isso é assustador. O código estava bem escrito, mas sempre que se herda um projeto, herda-se instantaneamente o medo de estragar tudo. Meu objetivo era corrigir um bug bastante rotineiro, e encontrar o problema foi bastante fácil, mas rastrear o código para descobrir o que chamava o quê e o que passava o quê foi um pesadelo.
Então, fiz a única coisa que podia fazer para descobrir o que estava acontecendo:
// The magic console.log(new Error().stack); /* SAMPLE: Error at Object.module.exports.request (/home/vagrant/src/kumascript/lib/kumascript/caching.js:366:17) at attempt (/home/vagrant/src/kumascript/lib/kumascript/loaders.js:180:24) at ks_utils.Class.get (/home/vagrant/src/kumascript/lib/kumascript/loaders.js:194:9) at /home/vagrant/src/kumascript/lib/kumascript/macros.js:282:24 at /home/vagrant/src/kumascript/node_modules/async/lib/async.js:118:13 at Array.forEach (native) at _each (/home/vagrant/src/kumascript/node_modules/async/lib/async.js:39:24) at Object.async.each (/home/vagrant/src/kumascript/node_modules/async/lib/async.js:117:9) at ks_utils.Class.reloadTemplates (/home/vagrant/src/kumascript/lib/kumascript/macros.js:281:19) at ks_utils.Class.process (/home/vagrant/src/kumascript/lib/kumascript/macros.js:217:15) */
É claro que o “erro” real não importa: o rastreamento da pilha é exatamente o que o senhor precisa para descobrir o que está chamando o que na cadeia. Quando disponível, o senhor também pode usar console.trace()
(quando disponível) para obter praticamente o mesmo resultado. O senhor pode me agradecer depois!
Corrigindo a impressão sIFR com CSS e MooTools
Embora eu não seja um grande defensor do sIFR, posso entender seu fascínio. Recentemente, um cliente nos pediu para implementar o sIFR em seu site, mas encontrei um problema: os cabeçalhos do sIFR não eram impressos porque eram objetos do Flash. Veja como corrigir…
DWRequest: MooTools 1.2 AJAX Listener & Message Display
Embora o MooTools 1.2 esteja em seu segundo estágio beta, sua sintaxe básica e as mudanças teóricas já foram definidas. A biblioteca JavaScript continua a melhorar e a se tornar mais flexível. O colega DZone Zone Leader Boyan Kostadinov escreveu um artigo muito útil detalhando como o senhor pode adicionar um…