hackUST 2017 後記

作者: Calpa Liu

出版:2017-04-23

經過一天的努力,我們成功進入最後 5 強。這次比賽都幾好玩,基本上由第一天中午吃到晚上,然後第二天回來也是吃吃吃。雖然最後沒有取得獎金,但也是學到很多的知識。比如說如何解決安裝 npm package 問題,更新 npm package 問題。

第一天中午的時候已經把 Demo 做出來了,但是不知道為什麼刪除node_modules之後,Expo 就直接崩潰了。這是因為package.json裡面根本就沒有把完整的dependencies寫出來,當我輸入npm install的時候就不能順利安裝。於是我只能在 CodePen 裡面開一個 Pen 用來做控制器。

技術細節

這個控制器利用window.addEventListener('deviceorientation', handleOrientation);來監聽 Android 裝置的方向。當加速規偵測到裝置方向的變化,它就會調用handleOrientation方法。

handleOrientation方法有兩個目的:

  1. 獲取event裡面的alpha, beta, gamma數值,它們分別代表裝置的 z 軸, x 軸, y 軸動向。

z 軸介乎於 0 ~ 360 度之間,x 軸介乎於 -180 ~ 180 度之間,代表裝置的前後動向。y 軸介乎於 -90 ~ 90 度之間,代表裝置的左右動向。

  1. 發送 event 到服務器。

這個很簡單,利用 socket.io 就可以了。比如說socket.emit('event');

而在展示用戶數據的時候,我們用 C3.js 來做實時渲染數據。利用 C3.js,我們很容易就可以產生 D3 圖表,而不是重寫 D3 代碼。我們也可以修改每一個元素的樣式。感覺再寫下去就變教學文了。

比賽照片

以下是比賽時拍攝的一些照片:

Imgur

感謝這次一起參賽的三位隊友。

Imgur

比賽場地

Imgur

接待處

Imgur

宣傳物品

Imgur

平常用來賣官方廣告的地方現在用來賣 hackUST 和 hardUST 的廣告 XD

Imgur

演示的場地

這次主辦單位派發了港幣 120 元的餐券,還有很多零食,飲料。最重要的是,有我最喜歡的忌廉汽水 www。希望以後都可以繼續參加比賽,學習更多的編程知識。

參考資料

  1. Detecting device orientation - MDN
  2. Socket.io 官方文檔
  3. C3.js 官方 Starter

關於 Calpa Liu

Avatar

Calpa 是一個四天工作的系統架構師,日常幫助客戶構建一站式網站應用,手機應用,雲端架構。

2023 年 9 月,Calpa 收到來自國內外不同 Web3 團隊的邀請,參加韓國的 KBW 2023 和新加坡的 TOKEN 2049 活動。十二月份,Calpa 將參加台北區塊鏈週的 Hackathon 比賽。

Calpa 擅長運用各種前沿技術,包括 TypeScript、React.js 和 Vue.js,開發具有 Responsive Web Design 的網站。另外,他透過運用 aws-cdk 和 TypeScript 技術的融合,實現了基於雲端的「基礎即代碼」(Infrastructure as Code)部署策略,建立了多套高效且具有可伸縮性的全端架構。

同時,Calpa 積極參與各個社群,活躍於香港和台灣的開源社區,分享前沿知識。他曾在 2019 年的香港開源大會中擔任重要講者,為聽眾提供寶貴的工作經驗和深刻見解。此外,Calpa 在 GitHub 上公開分享了個人博客程式碼,已獲得超過 300 顆星星和 60 個分支。

如果您對系統架構有任何問題,或需要進一步交流,請隨時聯絡 Calpa,他非常歡迎討論。