紙本分格 x 大塊文化合作活動!留言分享贏取《#犬之島》套書
👉 bit.ly/zbfghk-isleofdogs ✨
-
讓「老海鮮」們,從.零.開.始!
實體化「無形」的考驗
-
為了《犬之島》,連波浪、雲朵、煙霧、火焰、毒氣這些無形元素,都以實體素材製作入鏡。視覺特效師會在完成畫面裡調整它們的...
紙本分格 x 大塊文化合作活動!留言分享贏取《#犬之島》套書
👉 bit.ly/zbfghk-isleofdogs ✨
-
讓「老海鮮」們,從.零.開.始!
實體化「無形」的考驗
-
為了《犬之島》,連波浪、雲朵、煙霧、火焰、毒氣這些無形元素,都以實體素材製作入鏡。視覺特效師會在完成畫面裡調整它們的位置與混濁度,但都是用實體東西做出來的。
-
附近有人在拍水波測試,是黑色沙岸上反光的淺水白色波浪。底下有機關讓海水溫和波動,挺漂亮的。「那是保鮮膜、髮膠和潤滑劑,」第一副導演 James Emmott 說明。他說,劇組不時派人跑腿去街上大賣場添購這些玩意。「這個場景的一切都靠潤滑劑。」
-
隔壁在做另一項測試:在那種厚紙板捲筒外,到處貼上挑染成髒兮兮灰黑色的棉花球,這些正在緩緩旋轉。這是《犬之島》的戶外鏡頭頂端常見的翻騰陰暗的層雲。這些做法在現代已經很罕見了,許多停格動畫電影使用電腦繪圖來做出布景。採用此法的電影公司有許多整合兩種動畫風格的創意方法,例如,他們可能拍攝布料在風中飄動的樣子,再參考該影片來製作電腦繪圖的海浪,讓波浪看起來好像是用和戲偶服裝相同材質的布料做成的。
-
《犬之島》的許多工作人員,是在這個愈來愈不強調媒材的某些手工痕跡、有時甚至會刻意將其掩飾的產業裡學會如何製作停格動畫片。因此拍攝《超級狐狸先生》和《犬之島》時,威斯要求這些經驗豐富的藝術家們忘掉他們做過的一切,從零開始。他鼓勵他們回歸停格動畫最原始、著重實體的根源,不必擔心如此會顯得廉價、錯誤,或不專業。
-
這樣說,可能顯得威斯妄自尊大,浪費了他們的專長。事實上,他很仰賴這些專長。如果你想重新發明輪子,雇用一群專業車輪匠必有幫助。在這個案例裡,雇用老狗是變出新把戲的唯一辦法。
-
無論如何,他們都願意回來再度經歷這個過程,這點說明了一些事—「這種工作會讓你覺得返老還童,」Andy Gent 說:「我不想老是做我已經知道怎麼做的事,我喜歡能再次感受到剛入行時的那種興奮。」
-
留言說說對動畫電影《犬之島》 的感想+share!有機會得到由 大塊文化 送出的「《犬之島》動畫電影製作特輯+電影改編漫畫」(初版附送電影海報)!我們會在活動截止後選出一位得獎者,並經 FB message 通知~
留言+分享請到:bit.ly/zbfghk-isleofdogs ✨
活動日期:即日至 7 月 9 日 11 pm 截止
獎品需到 #觀塘 領取
-
#香港fans快來
#記得是去連結那裡留言和分享
#isleofdogs #wesanderson #isleofdogsmovie #hk #animation #動畫電影
回歸測試整合測試 在 91 敏捷開發之路 Facebook 的最讚貼文
【從學員練習影片觀察到一個關於 TDD 的有趣現象】
極速開發的課後練習作業,雖說重點是放在極速開發要學習的技巧與刻意練習的模型,但開發的方式、順序也是刻意安排成類似 TDD 的進行方式,來讓生產力最大化(TDD 本來就是幫助開發的,不是幫助測試的)
我從2位第一次上我課的學員(當然就是 #極速開發,代表他們沒上過#單元測試 跟 #TDD與持續重構),雖然他們是照著示範影片、上課教學用 TDD 在寫整個 tennis 的過程,但從他們執行測試的時間點就可以發現:
「他是用測試來驗證 production code 的正確性」,即使他先寫了測試,也不先執行,沒有看到紅燈,每次都等到 production code 寫完了,應該要綠燈時,才執行測試。
而其他上過 TDD 課的同學 ,或是上過單元測試的同學,知道測試是用來描述情境,如果現在「加入的這個情境是新的需求或需求異動,代表目前 production code 還不支援這個情境,執行測試跑出的紅燈,就是等等 production code 要完成的 #目標」
test-frist 從來都只是 TDD 其中一個小小的衍生產物,而不是全貌。TDD, 測試驅動開發 從來都是一種開發方法,而不是測試方法。
總有些人老愛把 TDD 拿來跟測試相提並論,就總是喜歡把 test-first 當作靶子打,覺得違反人性跟直覺,覺得先寫測試在很多情況下是浪費時間或是不 work,可能拿來跟一堆測試的方法論相提並論,或總是只拿回歸測試的效益來當作 TDD 的整體。抑或是陷入 isolation unit test 與 integration test (其實就是非 isolation 等級、有實際依賴的自動測試)之爭。
```
註:TDD 事實上是可以不是單元測試等級的。
```
要比較正確看待 TDD 的角度,首先要知道它是幫助開發的、它是一種開發方式(當然不是唯一一種,甚至也不會是最好的一種,因為根本沒有最好,只有剛好)
接著要了解 TDD 可能用 IPO 模型還比較貼切,input-process-output,在你開發任何功能之前,你總要先想過這件事。而先想這件事,才是 TDD 的最基本精神。
接著是怎麼把你想好的東西,變成可執行的 spec,我們只是用測試程式來「描述」你腦袋中的「IPO模型」,把 process 的過程當作一個黑箱子。
而這個 IPO 模型在結合成「使用情境」,就會帶來「高易用性 API 的好處」,只有在一開始就先想好怎麼給別人用,最後才會好用。所謂的一開始想好,指的不是預先設計一堆 class,而是 input/output 想清楚期待(一般會結合實例化需求,搭配 Given/When/Then 的 gherkin style 來把前置條件、資料、前提想好,當發生什麼事,應該是怎樣的結果),然後描述它。在紅燈定義清楚目標,綠燈完成 input/output 關係且沒弄壞前面的所有情境後,來針對 process 進行重構(事實上 Kent Beck 的 TDD by Example 更多是用 refactor 來 #完成 process。
```
註:所謂的 output 不一定只有回傳值,包含外部依賴狀態、資料的改變,甚至顆粒度小一點,針對物件導向設計的話,物件內部狀態的改變也算,只是物件內部狀態改變,驗證點要嘛是拿得到內部狀態,要嘛就是要驗證物件哪個行為會因這個內部狀態而有所不同。
```
## 戰 TDD 之前該先做好的功課
要戰 TDD,是不是至少要把 Kent Beck 的 TDD by Example 看完?
要戰 TDD,請不要拿它跟測試方法論來比,那只是一下就被人看破手腳。因為它是個開發方法論。
要戰 TDD,請不要把它的好處只限縮在跟回歸測試、自動測試的比較,因為那只是它的衍生好處,當你試過在白海報紙上 TDD 就懂,TDD 是在釐清你的思緒的同時,又可以以終為始,確保你在 production code 的每一個動作都是為了滿足某個期待的情境。
要戰 TDD,請不要去把 單元測試、整合測試捲進來,那是測試的顆粒度,那是測試的分類,TDD 從來都不是只能限於單元測試。
要戰 TDD,請不要在那邊戰他是 bottom-up ,是直接從程式/class 的角度出發,事實上 TDD 既不是 bottom-up, 也不是 top-down, (書裡面就有講這件事咩),實務上的 TDD 結合倫敦派(GOOS)跟芝加哥派(Classic TDD),會更像 Outside-In 的進行方式,先定義好驗收情境,接著從最外部(也就是使用者看得到的部份)一路把依賴往另一邊的系統邊界推,直到推到系統以外的依賴資源(persistence 或 external API/service)
```
註: ATDD by Example 中 ATDD by Example, Kent Beck 寫的序最後的一段話。
Kent Beck:
「就像我曾說過的,TDD的一個缺點是,它可能會退化為一種用來滿足開發人員需求的編程技能。某些開發人員從更廣泛的角度來看待TDD,輕易在他們測試的不同抽象級別間跳躍。然而在ATDD中不存在歧義,這是一種加強與非編程人員溝通的技術。我們之間良好的協作關係,以及作為這種關係基礎的溝通,能夠使軟件開發更有效率。採用ATDD是向著溝通更清晰這個目標邁進的重要一步,而此書是一本全面又平易近人的入門讀物。」
```
要戰 TDD,請不要只關注在 test-frist,因為他只是用 test 來幫助你 think-first,不要邊寫邊想。然後不要過份依賴或相信你腦袋的能力,把你想好的東西具體化出來,最好可以被直接執行,最好除了你以外每個人執行出來的結果都會一樣(不管是對的,還是錯的)
要戰 TDD, 請不要把論點放在見樹不見林,如果你有看 TDD by Example 的 Part 1, Part 2 那兩個加起來共 24 個章節,就知道一開始就得把當下想到的全貌紀錄在一個「紙本」的 backlog (所謂的紙本,只是要講這並不依賴於任何工具)
而這個需求輪廓的全貌,會隨著你逐漸完成一部分一部分的情境,設計逐漸浮現後,而隨時跟著增減調整。
但不代表 TDD 就是先想到一個測試案例,就直接先幹下去了,那根本是亂搞。
以上這些,都還不是在列 TDD 的好處,而是針對那些從來沒搞懂 TDD 但又愛戰 TDD 的人一點提醒,你戰的很可能是「你誤解的 TDD」。
TDD 還有許多實務上的用途,列上我在譯者序中的一小段:
>> 測試驅動開發(Test-Driven Development, TDD)!一種以測試為開發輔助、以測試來描述需求情境、以測試來當作目標、以測試來表達期望、以測試來驗證疑問、以測試來實驗學習、以測試來溝通協作、以測試來協助設計高易用性 API 的「開發方法」。
譯者序有開放給大家看,請見:https://tdd.best/book/tdd-by-example/
拜託,要戰之前去看一下祖師爺 Kent Beck 對 TDD 的原始見解:https://www.tenlong.com.tw/products/9789864345618?list_name=srh
如果你想正確的使用 TDD 來幫助你在實務上產生許多的價值,帶來許多的好處,尤其是需求釐清、持續重構、小步快跑的部份,最好理解的培訓課就在這:https://tdd.best/courses/classic-tdd-by-example-video-training/
最後我想講一段話:
TDD 從來都不該被導入到團隊中,但它是一種很好的自我鍛鍊與學習的方式,也是一種能用很低的成本來帶來很多好處的開發方法(見下方註腳),然而它也不是適用所有的情況,但它可以讓『完美』變成一個動詞,而非不變的形容詞。
```
註:
Kent Beck 在 DHH 靠腰:《TDD is Dead》 之後寫的一篇反串文:《RIP TDD》
https://www.facebook.com/notes/1063422864115918/
我幾年前的簡易翻譯,通常也是 TDD 可以幫助你解決的問題,如下:
- Over-engineering (過度設計)
- API feedback (改善API的設計與可用性)
- Logic errors (想的跟寫的不一樣,寫的跟需求不一樣)
- Documentation (寫跟維護文件是痛苦的)
- Feeling overwhelmed (找不到切入點)
- Separate interface from implementation thinking (抽象設計)
- Agreement (確保已修正問題的證據)
- Anxiety (改東壞西的擔心受怕)
```
很久沒對 TDD 發表這種長篇大論了,因為不理解、不想理解、不同角度理解的人居多,能真的到各自的塔上用不同角度來看原義,以及實務上用它來幫助解決的問題有哪些的人,真的太少。
大部分人只想針對這個詞彙來攻訐以博得流量跟吸引目光,而不是想著「我可以用它來幫助我什麼」
問題跟需求是中性的,解決問題跟滿足需求的手段與方式有千萬種,不會只有一種,也不會有所謂的對錯,多點角度去了解不同的方法、方式,然後融會貫通,發揮綜效,在實務上用最少的成本與風險來產生最大的價值,這才是真正的目標。
導入敏捷不該是目標,導入 TDD 也不該是目標,目標永遠都是在實務上產生價值、解決問題、滿足需求。
回歸測試整合測試 在 AppWorks Facebook 的精選貼文
#NFTsummer Hi 大家好,我是本月值班編輯 Alyssa。上週 (6/9) ,我同事,AppWorks 分析師 Jack,與區塊鏈新創 Blocto 共同創辦人、也是 AppWorks #19 校友的李玄進行了一場 Fireside Chat,內容非常充實,於是我從中摘錄了三個主題,編輯成文章,分享給大家:
1. 回顧區塊鏈在過去五年內的發展變化:效能變好、應用更廣
2. NFT 的機會:新時代的價值呈現方式
3. DeFi 的機會:把金融主導權回歸個人
///
#回顧區塊鏈在過去五年內的發展變化:效能變好、應用更廣
李玄:我大概是從 2015 年開始接觸區塊鏈,先做了些自己感興趣的專案,2017 年加入 COBINHOOD,所以也看著區塊鏈的發展和成長好多年了。現在跟幾年前的產業狀況蠻不一樣的,大概有幾點:
第一點是,當初區塊鏈技術比較在實驗階段,可以選擇的公鏈很少,主要就是比特幣網路、以太坊等等,其他 EOS、Tron 等等都還在測試階段。直到現在,每秒鐘還是只能處理 7 到 20 個交易左右,這種效能對於實際應用是完全不夠的。很多人想要把區塊鏈用在支付、金融上面,假設把區塊鏈也當作一種支付工具,那至少要達到 VISA 的水準吧?VISA 大概每秒鐘處理幾千筆交易,所以當時的區塊鏈每秒鐘處理 20 筆交易,是完全不夠用。
但現在高效能的公鏈已經蠻多了,像我的前公司也做了個蠻高效的公鏈,我們在 2018 年的時候,可以做到每秒鐘超過 1 萬筆交易,而現在也有比這個更高效能的,目前效能王者應該是 Solana ,每秒鐘可以處理數萬筆交易。當初的效能瓶頸,現在已經不太存在了,如果你要做面對市場的實際應用,目前的鏈支撐得了,另外很多公鏈上面,也有第二層的擴容技術已經開發出來,進一步提升能承受的交易量。
再來,整個區塊鏈市場在幾年前還很新,大多數人關注區塊鏈或虛擬貨幣,主要還是為了炒幣和投資。當時真的有用區塊鏈來做事情的人,全世界可能不到 1%,其中真的有用 DApp 的人,可能又不到 10%,大多數人用區塊鏈做的唯一事情,就是把某個幣從一家交易所轉換到另一家而已。
從 2017 開始,大家就開始嘗試,例如音樂分享、或者是保險等等。也就是一些既有服務,可能有某些中心化的限制,或是沒有效率的地方,希望透過結合區塊鏈,讓整個系統的價值、效率變高,我覺得這種機會是存在的。可是現階段和理想的發展狀況,還有點距離,因為這些應用,必須要有足夠的人參與,讓它有網絡效應之後,才會發展起來。現階段真正用過區塊鏈應用的人比例還很低,你要讓這些人直接跳過所有中間過程,直接去用一個純區塊鏈的產品比較困難,但我覺得這樣的服務,在未來是很有機會成功。
///
#NFT的機會:新時代的價值呈現方式
李玄:近期比較可行的機會,在 NFT 和 DeFi 都會都有一些。DeFi 跟 NFT 也都是在 2016~17 年就萌芽,由幾個初始項目、經過幾年的發展,才到現在這樣,比較廣為接受。
為什麼大家都在談 NFT 的商機?因為現在的年輕人,對虛擬跟實體價值的認知有改變,如果去衡量實體資產和虛擬資產的價值,甚至有些人會覺得虛擬資產的價值更高一點。例如遊戲裡面的一把槍或寶物,可能比起現實生活中的一雙鞋或一件衣服還更有價值,炫耀起來更容易。所以 NFT 在這個時代,可以說是佔了一個蠻重要的角色。
現在比較簡單直觀的是,大家都結合 IP 去發行 NFT,所以你如果有些合作夥伴、或是你自己擁有一些 IP,你或許可以做應用,也可能賺到錢。發行 NFT 這件事,目前已經很多人做了,可是我覺得,可以想像下一步會興起什麼?用戶拿到 NFT 後有什麼搭配的機會?例如我有了 NFT 商品之後,總是想要炫耀,所以就有 Metaverse 或 Showroom,或是像我們認識一些團隊,有人結合 VR、有人結合電子相框做虛實整合,電子相框會綁定用戶的錢包,隨機顯示錢包裡的 NFT。我覺得搭配現在 NFT 潮流,這可能是一些可以嘗試的方向。
///
#DeFi的機會:把金融主導權回歸個人
李玄:DeFi 的價值,是它試圖在區塊鏈上做一個去中心化的金融服務。它滿足了某些原本傳統金融服務,例如借貸、交易、期貨衍生品等功能,同時他應用在區塊鏈上,所以帶來幾個好處,一個是 permissionless,不需要任何人授權你使用這個服務;另一個好處是,這些去中心化金融服務,所有功能,包括合約、程式、API 接口,都是公開在區塊鏈上的。例如一個借貸平台,要跟另一個交易平台串接在一起,變成一個產品可以直接借錢來交易,這樣的功能很容易在區塊鏈上發生,可能一兩天就可以接好,有點像是積木,可以組合出很多延伸應用,所以這整個產業成長的蠻快、蠻爆炸性的。
像 DeFi 的話,因為現在有很多新的鏈在蓬勃發展,現階段一種最直接的做法,是去複製某個已經在別的鏈上運行、用戶很多的模式,再搬到另一個鏈上面;或者是做整合器,例如現在市面上有三家不同交易所,就可以做整合,把交易功能串接起來,幫忙比價,我覺得這些是比較直觀的應用,目前也很多人嘗試。
還有一些其它的機會,例如結合虛擬和實體金融市場的串接。例如說,可以串接一些原物料,例如大麥、小麥的報價,或者是金價,讓這些交易在區塊鏈上面有效率的運行,我覺得這裡還蠻多機會。
換句話說,就是跟著現在既有的潮流,去觀察一些還缺乏的東西,從中去延伸發展。比起前面提到那種跳過既有行為模式,直接去做去中心化的應用,我覺得這個路線會更容易、更快速一點。
///
如果看完文章,有興趣了解更多 Jack 與李玄對談內容,可以參考完整影片:https://bit.ly/3xokiqV
///
[與談嘉賓]
Blocto 開發的 DApp 手機瀏覽器以及錢包,是許多人進入 Blockchain 以及 Crypto 世界的入口,今年,Blocto 又進一步在專為 NFT 所設計的公鏈 Flow 上,開發出第一個去中心化交易所 BloctoSwap: https://blocto.portto.io
在創辦 Blocto 之前,李玄曾先後在 Yahoo、Agoda、17LIVE 擔任軟體工程師,並曾領導 Cobinhood / Dexon 的開發團隊完成 ICO,創辦 Blocto 後,則申請加入 AppWorks Accelerator #19,是 AppWorks 生態系中,非常優秀的 Blockchain 創業者。
///
[同場提醒]
AppWorks Accelerator #23 正開放申請中,歡迎所有 AI、Blockchain、NFT、佈局東南亞的創業者們加入這個社群,一起切磋成長:https://bit.ly/2TB3oqy
回歸測試整合測試 在 高雄市議員童燕珍 Facebook 的最佳貼文
昨日受 Home+中嘉 - 慶聯/港都有線電視 的邀請參加 #高雄現場 的節目,與 #陳致中議員、#高雄市海洋局、#嘉信遊艇總經理龔俊豪,共同談論高雄的遊艇產業話題。
#遊艇產業的巨大效益
根據財政部統計,2020年臺灣遊艇業外銷金額達2億524萬美元。依據2021年國際巨型遊艇訂單排名統計,台灣排名亞洲第一、全球第四。台灣的遊艇產業帶來的產業效益是非常驚人的
過去經建會的報告指出,親水性活動的愛好者,都會是遊艇活動的淺在客群。
如此龐大的產業鏈,包括產業內相關的教育訓練、遊艇旅遊、碼頭發展、遊艇的代管到維修,都能創造就業機會。
#遊艇產業與觀光發展
國外的案例可以參考,包括澳洲雪梨的水上計程車是非常多遊客喜歡搭乘使用,因為要穿梭景點非常的方便。還有法國巴黎的「海上泡泡」,能以每小時 30 公里速度離水面約 50 公分,沿塞納河飛馳。從艾菲爾鐵塔到聖母院只需幾分鐘。這也讓觀光客的旅遊體驗更方便且新奇。如果有機會利用遊艇串連高雄海岸線的觀光景點,打造新的旅遊風貌當然是樂見其成。可是回歸現實面,該怎麼進行有許多地方需要討論。
高雄為海洋城市,港區沿岸有許多重要的觀光設施,從路上看十分美麗,從海上看更有不同的風味,若有天高雄水上之旅成為親民的觀光活動,更能讓大家欣賞到高雄港都美麗的風光。
#法規與權責單位該如何整合為重要課題
遊艇觀光最需要克服的問題就是法規的配套以及整合不同單位的權責,國內船舶法,對所謂的遊艇、自用遊艇、非自用遊艇、載客小船等等,都有不同的法律定義。
以法國的案例來說,他們光是處理通行測試的許可權、還有取得在塞納河上碼頭的使用權就花了好幾個月的時間,因為這都是需要跨局處的整合與溝通。再來高雄適不適合發展出水上觀光計程車的模式,還要看適合停泊的地方有哪些?是否具有觀光潛力?水流的狀況適不適合?雖然以目前看是個不錯的提案,但背後要做的整合工作是十分費力的。當然若能夠順利推動的話,我們是非常樂見其成。同時這也是燕珍未來在議會會監督的課題。
#高雄市議員童燕珍
#高雄現場
#高雄遊艇產業發展