小菜雞在市場走跳

學習紀錄或隨筆


  • Home

  • Tags

  • Categories

  • Archives

Simple Twitter 開發心得總結

Posted on 2021-01-05 In 學習心得

2020 年年末一個小里程碑,和三位小夥伴經過比較密集的兩週 coding 完成簡易版 twitter,成果不敢說有多精美,但終歸是合作出來的心血。整體感受自己在心境上的改變相較技術性成長感受較為觸動,並非說技術能力的成長不帶來成就感,而是這陣子自己的茫然、自我否定這塊,在培養下班後學習的習慣和自我充實這塊,又更能讓自己感動。

開始前先讓成果 show 一波:後端 github、Simple Twitter

閱讀前提醒,本篇日誌與技術性無關,主要是對這段時間 simple twitter 小專案推進的紀錄和心得。

Read more »

老爸的私房錢 - 專案建置 (待完善)

Posted on 2020-11-15 In 學習筆記
  • 你為何會選擇這個專案?
    • 在初期學習網路工程的相關技術時,我感覺到光是學習網路資源是不夠的,需要一個能夠實際操練的專案,並且因為平時需要上班,在有限的時間下,我希望這個專案的難度對我而言不能過度困難但又能夠確保在時間內完成練習。
  • 你使用了什麼技術?
    • 在這份專案裡,前端使用 bootstrap 作為 framework,後端執行環境採用 node.js 和搭配 express,使用 handlebars 作為前端模板的渲染引擎,並串接 mongoDB 作為資料庫。功能層面包含使用者登入以及認證,使用 express.session 加上 可指定認證策略的 express.passport 搭配完成。另外在資料存入資料庫之前,會使用 express-validator 作後端資料驗證的部份。
  • 哪部分你相對能掌握?哪裡花了最多時間?
    • 因為我的學習最一開始先接觸前端,在 bootstrap 和 handlebars 部份掌握度較好,在使用者登入和認證的地方,花了較久的時間研究,觀看範例程式、串接 passport 以及認證時也需要錯誤訊息提示使用者 (使用 flash-connect)。另外其實過程中,在資料庫撰寫的時候,會遇到不同步的問題,花不少時間在鞏固關於非同步的語法和概念。
  • 過程中碰到什麼困難?又如何克服?(例如:查找網路文件)
    • 首先是資料庫非同步的問題,例如一開始我將非同步和同步的語法混用,一直預期後半的同步部份會順利接到資料庫的回傳,最後卻發現回傳是空陣列;或者在時間顯示的問題上,一開始並沒有意識到可能存在伺服器端和客戶端的電腦處在異地造成時間不同的問題。在非同步的問題上,觀念就顯得需要重新補齊,因此花了時間去看非同步的教學資源,以及也需要注意技術文件裡提到例如 callback 字眼的都是屬於非同步的方法,之前也特別去弄懂 Event Loop 的議題,至於時間顯示的難點在於可以思考到用時間戳的方式作為 server 和 client 之間的溝通方法,但瀏覽器上需要重新將時間戳顯示回特殊的 format 這點,其實這裡就重在操作,後來花了不少時間在前端處理時間戳的問題上。
  • 過程中你有對哪個技術有特別深刻的學習?
    • 技術層面來說,其實印象最深刻的還是登入認證那一塊,總是可以看到概念上很輕鬆的表示:就像你要進到一個場所,接待人員認證件不認人,但實際上的操作卻是非常多小細節。

上緊發條的軟體開發實務入門

Posted on 2020-09-17 In 學習心得

[warning] 碎念的心得,請慎入 XDDD

其實最近的生活是在我畢業後上班兩年最緊湊的一段日子。生活日常變得逐漸穩定且規律下來,很固定地想安排時間給自己好好學習,技能的進步是肯定的,對前端的語言越來越熟練,甚至上班寫 Python 的時候腦袋錯亂,直接用了 Javascript 的語法,覺得這代表自己正在嘗試融合一個新的語言,老實說當下其實挺開心的呢!

Read more »

理解 Javascript 的非同步操作:Event Loop

Posted on 2020-09-16 Edited on 2020-09-19 In 學習筆記
1
2
setTimeout(function(){console.log('delay 0 sec')}, 0)
console.log('Hello!')

上述範例直覺可能會覺得輸出為 delay 0 sec –> Hello,但結果為 Hello –> delay 0 sec。為什麼?因為有事件循環 (Event Loop) 的參與,這個機制的目的主要想讓 Javascript 提供並行 (Concurrency) 運作。

先快速總結一下自己最後的理解,Javascript 在並行中的非同步效果需要 Stack、Callback Queue 和 WebAPIs 三方合作;它不是 Javascript Engine 自身非同步,而是利用 Callback Queue 來避免 Stack 依序執行程式造成可能發生的阻塞問題,例如非同步的設計讓使用者在使用瀏覽器 (Browser) 的過程中能夠看到更新的頁面 (render) 又同時能得到點擊滑鼠時的相應回饋。

以下這些概念可能需要依序建立。

Read more »

Nvidia Jetson NX 系列 03.搭建 pytorch 環境

Posted on 2020-08-21 Edited on 2020-09-16 In 學習筆記

因為需要在 nx 板子上測試不同 framework 的環境,因此要新增加裝 pytorch 的環境。原本的環境需求是這樣:

1
2
3
4
# install requirements
$ pip install pycocotools numpy opencv-python tqdm tensorboard tensorboardX pyyaml webcolors
$ pip install torch==1.4.0
$ pip install torchvision==0.5.0

但這邊有個血淚史,如果是要直接使用別人 github 上的 code,一如往常 CUDA 相關的環境,尤其和深度學習相關的一定要非常注意他的套件包的版本號。對失敗總結不感興趣的可以直接跳到成功安裝的那塊閱讀。

Read more »

Nvidia Jetson NX 系列 02.搭建 tensorflow-gpu 環境

Posted on 2020-08-17 Edited on 2020-09-16 In 學習筆記

這篇承接上一個 opencv 安裝的內容,這次要繼續把 tensorflow 的環境弄好。

Read more »

Nvidia Jetson NX 系列 01.使用 virtualenv 搭建 opencv-python 環境

Posted on 2020-08-17 Edited on 2020-09-16 In 學習筆記

這次專案是一個交通的 computer vision 案子,需要在 edge 端搭建 inference 模型要使用的環境。

Edge 端的機器是 Jetson Xavier NX,機台內部的初始環境是別人用好的 ubuntu 環境,支援 GPU;inference 的 python code 使用 tf.keras,所以環境需要有 tensorflow,另外也需要 opencv 的函式庫。

Read more »

AC 學期 2-1: JS 前端開發心得總結

Posted on 2020-08-08 Edited on 2020-08-18 In 學習心得

小前言

其實四週以前,真的沒想到自己會參加 Alpha Camp 課程。

畢業工作一年後,開始無心無力,也分不清楚到底是環境造成的心態消耗還是其實根本不喜歡數據分析,總之茫然期好像突然就這麼到來了。心態消耗造成我對很多事物抱持消極心態,但又恐慌於自己止步於前。

好像得做些什麼。那時候大概是這樣想的。

Read more »

Python之classmethod和staticmethod的觀念理解

Posted on 2019-09-11 Edited on 2020-09-16 In 學習筆記

最近在模組開發完後需要轉換成 API 的接口服務,當時遇到一些流程問題需要解決,這篇算是探討 Python 的用法吧。

大概情境如下,模型訓練完成後,正常情況使用者會接續進行預測的動作,但也有可能因為使用者在自己的排程上暫時不需要再行預測,因此會擱置一段時間。在一段時間的靜置後,server 端會把目前 keep 住的模型消滅掉,以避免資源占用,然而當使用者要重啟服務時,重新訓練模型又會是成本,故希望重新將模型 load 回來,再直接進行預測。所以可使用 classmethod 協助我們在實例化之前把必要的資訊重載,並再行實例化。

上面大概是問題的情境,不甚清楚可以跳過,僅僅算是個紀錄,可直接看下方的內容。

Read more »

Gitlab CI 更新遠端伺服器網頁

Posted on 2019-09-08 Edited on 2020-09-16 In 學習筆記

前言

對於 Gtilab、git 指令或者寫 script 其實都並不是很熟,這次花了一些時間進行部署,希望能寫下來當作學習筆記,也方便未來複習。

想解決的問題是:在 Gitlab 上進行開發,當開發到一個新的版本後,就需要使用 sphinx 將編寫的程式碼及使用文件轉換成 HTML 格式,並將轉換完成的網頁更新到 nginx server上,最後重啟 nginx 的 docker。然而每次都需要人工進行這項操作,覺得實在太不自動化,因此想借助 CI 完成這個流程。

這裡用docker架設的 Gitlab server 和 nginx server 是在不同的兩台機器運作的喔!

Read more »
12

C.C. Yang

11 posts
2 categories
6 tags
© 2021 C.C. Yang
Powered by Hexo v3.9.0
|
Theme – NexT.Mist v7.2.0