大家有聽過黃色小鴨除錯法嗎?

黃色小鴨除錯的概念起源於一本書,故事裡的程式大師隨身攜帶一隻黃色小鴨,遇到要除錯或射茶包時,就把小鴨放在桌上詳細地向小鴨解釋每一行程式。

實際體驗過幾次(當然,不一定要跟鴨子聊天,跟你的同事,甚至滑鼠講一下心事都成),還真的因此停止鬼打牆。黃色小鴨除錯法的奧妙在於當你向別人(甚至是完全不懂程式的人)詳細解釋的過程,無形中會強迫自己從頭釐清細節,逐一梳理邏輯,往往因此突破盲點,自己發現問題或想出解決方案。

如果拿出黃色小鴨還不能斬妖除魔怎麼辦?

薑!薑!薑!薑~~ 試試「黄色小鴨原力升級版」吧?

抓不出Bug,抓到猶豫徬徨懷憂喪志萬念俱灰了無生趣之際,當尤達大師的影象浮現眼前,再搭配經典台詞-Use the source, Jeffrey!立刻能感受任督二脈原力泉湧(原力內力傻傻搞不清楚?),Bug再多也不怕 XD

搞笑搞夠了,介紹這件程式魔人工藝品背後的故事。一切要從去年收到的奇妙聖誕節禮物說起:

超有創意的「尤達大師立體公仔著色組」!

不過衡量在3D列印塑料塗顏料與表呈現綠皮膚皺摺的難度,深信在我拙手著色之後,尤達變身史瑞克的機率極高,對原力大師是極嚴重的褻瀆,還是維持潔白原色為宜。

前陣子讀到「電蝕刻DIY」文章,決定藉機會玩一下。身為程式魔人,想到尤達當然少不了「Use the souce, Luke!」,順理成章成為我個人化金屬牌上的金句。

電流計廢紙盒跟做萬聖節服裝用剩的不織布廢物利用,簡單黏貼後,程式魔人的精神激勵神器就完成了~

等等,好像少了點什麼…

拿出塵封已久的Espruino板子,接上三顆LED,再寫一小段JavaScript:

var c = 0;
var res = 256;
digitalWrite(D4, 0);
digitalWrite(D5, 0);
digitalWrite(D6, 0);
setInterval(function() {
  c = (c + 1) % (res * 2);
  var v = Math.abs(c - res) / res;
  v = v * 0.95 + 0.05;
  analogWrite(D0, v);
  analogWrite(D1, v);
  analogWrite(D3, v);
}, 10);

發光吧!尤達大師。

影片

May the force be with you!


Comments

Be the first to post a comment

Post a comment