黃色小鴨除錯之原力升級版

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

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

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

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

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

抓不出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!

歡迎推文分享:
Published 09 January 2016 05:40 PM 由 Jeffrey
Filed under:
Views: 4,128



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<January 2016>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication