南湖南峰

前言:

今年夏天上了飛岩的傳攀,原本以為自己就是在龍洞玩一玩,架設點的技術應用在溯溪溪谷裡面,沒想到去kawas礎豪演講的時候呢,遇到正琳,聽到他們兩個人要去南湖南峰攀登,我就想說機會難得,就看能不能變成三人繩隊伍

出發前一度因為正琳腳踝痛風,有可能去不成,但是最後呢,天氣完美,行程完美,有了一趟很好的攀登經驗

繼續閱讀 “南湖南峰"

.NET 整合測試 nUnit

這次主要的出發點是測試從原本自己刻的http client換成refit來讓程式碼更簡潔

那就必須確保資料最後都一致

可能會有的問題例如datetime的轉換

那一開始我就重新從config取設定然後注入用

RestService.For<IGitHubApi>()

這樣的方式注入,然後用字串取得Interface

但是這樣重新注入就測不到本身設定有沒有問題,因為重新刻了

繼續閱讀 “.NET 整合測試 nUnit"

[速寫] Vue3 + Vite的Dynamic import踩坑

從一個全新的vue3專案開始 今天要放到IIS上面測

原本用一個很開心的Mapping給dynamic import的路徑 結果呢 燈燈

直接抓不到

那為甚麼呢 在打包的時候用的是rollup

他不能整個路徑都用變數 他有規範在Doc裡面 找到就解了

https://github.com/rollup/plugins/tree/master/packages/dynamic-import-vars#limitations

繼續閱讀 “[速寫] Vue3 + Vite的Dynamic import踩坑"

用GCP Compute Engine架設前後端分離(一) 前言

從去年開始做的side project 主要是想要看看gitlab.com的CICD怎麼做的練習

同時也想要練習前端 + django rest

所以就拿我們溯溪協會的網站來練手,刻出一個新的來

那後來就順勢要變成正式的新版本上線了

介紹一下Tech stack

前端:一開始是用angular 不過後來公司開始用react,還沒刻太多頁面就直接改成React了

後端:django rest framework 主要是想用他的後台跟ORM 把DB管理這個部分簡化 如果有問題不用遠端進去下SQL就可以改資料

不過必須說 在弄migration真的是一個大問題,如果有開分枝然後都做了改動 回來很容易爆掉

中間洗掉重弄好幾次

DB:一開始就用sqllite 然後一開始在heroku上面就用heroku postgres 現在在VM上面起了一個mysql

Proxy:一開始用安裝Ubuntu Apache 後來有中文亂碼問題,改成用docker nginx-certbot

GCP: Host在Compute Engine上面 +Firewall,CICD 用Cloud Run

繼續閱讀 “用GCP Compute Engine架設前後端分離(一) 前言"

龍谷瀑布 攀起來!

聽說了有bolt之後,就一直很想來,就剛好這一天,8/21約起來

成員:建德 斯煒 小峰 筱青

前一天晚上先前往新竹 斯煒家 由於 建德公司上版有問題 徹夜加班測試 弄到12點 3點 5點都要起來 真辛苦 隔天甚至要背筆電進溪谷了XD

出發前進溪谷:

到了之後,跟照片裡面完全不一樣

照片裡面光滑的表面,現在長滿了芒草

一開始斯煒試爬了一段,結果都沒看到bolt 也沒地方塞點

無奈的斯煒

先試著爬一下

後來再往右 到最靠近右側的溪溝,先翻上去,斯煒塞了一個friend,再爬一段,看到bolt啦!

轉戰右側
塞了一個friend

煙囪

第一繩距就由斯煒先峰完成

跟攀的感覺:上方確保絕對沒問題,那有些點還真的不知道斯煒怎麼上去的,怕爆

現在回想有個地方 還拉了快扣

人大概 這麼小

筱清與小人們

到了第一個繩距的top之後呢,換成我先鋒

前面十多米完全找不到點,到了一個地方,在一個需要煙囪爬法的地方,腳上都是土

牆面上面踩在一些根部土壤,感受著他能承重的極限 左手也是抓著小片的岩點 右腳放在岩面上的小縫 一點一點把右手送上去

先遇到一搓芒草 一根 兩根 三根 手指漸漸抓住 目標是再上去一個拳頭距離的小樹

握住!感動啊! 然後再出手抓住樹根,心裡面的大石頓時放下,趕快先用sling架設了第一個確保點。架好之後 上去一抬頭,第一個bolt出現啦!馬上就感動了起來

不過,bolt竟然會轉,不只是第一個

接下來順順爬了兩個快扣

然後到了一個卡關 不敢出手 左腳踩的地方也是有土 右腳slab 上面感覺是sloper 還差一個手臂的距離

於是我就出動繩梯啦!

掛上去之後,就進入破碎段

這裡的岩石看起來 “節理分明"

在這裡就不用拉的 不用crimp 全部用推撐 側向

然後快到頂的時候呢,抓到一個樹根 很牢 翻上去,top!!

接下來跟攀的是建德,中間都看不到人 轉折到了破碎段才看到

我就親眼看到他抓下一塊比拳頭還大的石頭,一臉囧樣的互看 然後大喊一聲落石 然後拋下去

接下來 斯煒撤收

小峰這時候在中間,其實應該讓他先上來的,我們拋繩拋不到

於是我垂降下去,讓小峰推jumar上去

原本這時候沒吃午餐,已經有點餓了,懶得再上去

後來喊不到,因為我在下來的時候就說了要再爬一次,只好硬著頭皮,再上一次囉

不過第二次爬的時候,因為土、植物已經被大家都踢掉了,加上熟悉點

剛剛掛繩梯的地方,輕鬆踩高腳通過!!!!

這次上去可能不到五分鐘吧,爬起來可能就5.8~9

完成啦!

總體而言,這條路線 心理壓力 5.11 實際爬起來可能5.10total

bolt都會轉 當作free solo在爬

草一根一根拎住的感覺,感受著左腳30% 右腳40% 左手的芒草20% 剩下10%右手蹭牆上去的感覺,很難忘

壓著一拉就會掉下來的點,推住讓它不會動,用力上牆,舒暢

剛下來的時候,覺得好像 就這樣結束了 沒有真正特別甚麼感覺,但是在收東西 走出溪谷之後,成就感才慢慢發酵,我們完成了! 這是一件大事呀!

直到現在我在寫的時候 嘴角再度上揚

斯煒下來表示:充滿了Alpine的感覺 讚讚!

然後感謝一路追蹤拍攝報導的筱青,有妳我們才有這些照片呀!

dotnet Quartz 排程工作

在找如何在後端自動排程的時候 最簡單的就是IScheduler

多找幾篇之後有幾個選項 但其實就是主要看到的文件 跟 文章都偏向quartz 就直接用了

主要參考這一篇:https://dotblogs.com.tw/wasichris/2020/12/16/172524

官方文件:https://www.quartz-scheduler.net/

基本上的架構就是 scheduler & job

開job做為要做的工作注入

自動排程

他可以設定簡單的定時/定點、日曆等等

那我選用cronexpression來讓我決那些分鐘跑一次

切換頻率

因為更改一開始注入的job不可能,因為是用cronexpression注入singelton

所以我改為兩種不同頻率的job 一個預設暫停

我在這邊有改寫scheduler 增加一個叫做 run on start

在Task StartAsync裡面linq的時候增加run on start = true

然後就分別暫停/開啟相互切換job

不過遇到的問題就是切換的時候兩個都執行了 不過目前影響不大就先這樣