pseudoyu

pseudoyu

Blockchain | Programming | Photography | Boyi
github
twitter
telegram
mastodon
bilibili
jike

周報 #38 - Foundry 合約測試、Logseq 任務管理與 Surge Ponte 遠程開發

前言#

本篇是對 2023-04-192023-04-30 這兩周生活的記錄與思考。

上篇周報提到進行了一場穿越多個城市的旅途,回到杭州後漸漸恢復了原本的生活節奏,獨處時間多了許多,輸入、思考和所做的有趣的事也有很多,但似乎整理、與自己對話的時間反而變少了,常常會在幾天後才意識到時間的流逝。自詡是個不那麼依賴社交和適應力比較強的人,想了想可能只是過多地把自己的生活狀態寄託於虛擬世界,有一種與現實近乎脫節般的不適感。

現在在一個深夜航班上,小憩了一會兒後困意漸消,於是乾脆拿出電腦寫點什麼,也許是因為沒有網絡和外部干擾,思緒似乎更加清晰。

工作氛圍與自由度#

加入新的團隊不知不覺已經一個月有余了,大概是因為前兩三周一直在四處奔波,常常沒什麼實感,現在才漸漸適應節奏與步入正軌,我所在組的氛圍很好,即使是遠程也不會感受到疏離感,一次會議常常從工作正事聊到外賣吃什麼再聊到 Vlog 相機買什麼(Sony 大法好),本來社恐的我也漸漸更多在群裡話多了起來。

有趣的是因為密集參加了深圳團建、香港 Web3 Festival 和杭州的一波團建,細數自己已經見過公司的接近 20 位同事了,在一個 fully remote 工作模式的團隊還是挺不容易的。還很幸運地趕上了線上年會,見到了很多只存在於 slack 對話框的有趣的同事們(各路神仙),表演個節目能發掘一個 rapper,玩個俄羅斯方塊都能感覺到人與人之間的參差。

經過一些溝通,工作內容上做了一些調整,可以同步繼續做一些智能合約開發和鏈相關的研發與探索,也能更深度參與自己喜歡的產品(看看還有誰還沒在用 xLogxSync,具體可以看看這篇「周報 #25 - 基於 Crossbell 的個人信息輸出與同步系統」),雖然可能工作量和時間上需要多一些平衡,但還是有點小開心能有這樣選擇的自由度。

Foundry 與合約測試#

由於工作上開始著手了解加入的另一個組的項目,還蠻明顯地感覺到自己之前雖然也做過一些鏈研發和寫了小半年合約,但複雜度和開發實踐上都還差挺多的,打算從這一塊再好好補補,所以這周看了很多合約和調研文檔,打算從 Hardhat 轉為 Foundry 了。

其實之前 Noy 和一些其他朋友已經向我瘋狂推薦了 Foundry 框架,但是由於之前項目對於合約單元測試要求不那麼高,自己也依賴於 js 寫了很多工具腳本,就一直還在使用 Hardhat,直到這次真的跑了一些項目和寫了一些 demo 單元測試,才感覺到它的巨大優勢,瞬間叛變。都已經快吃灰的 Solidity 合約開發系列終於也要迎來新的更新了(在寫了,不信你看圖

foundry_framework_outline

其實目前關於合約的企業級實踐還是蠻少的,也由於後面所做一些合約是開源的,打算慢慢記錄一些踩坑的經驗和最佳實踐吧(全職開源的優勢了)。

Logseq 與任務管理#

由於現在自己個人安排與工作任務更多也更複雜,重新啟用了 Logseq 作為自己的個人任務管理工具。自己其實之前一直在用 Notion 做個人看板,但是使用的時候總覺得心智負擔太重,重度強迫症的自己也總是不斷去優化那些任務的類別和描述信息,反而給了自己很大的壓力。也用過滴答清單和 Todoist 這樣稍微常規型的應用,但是同樣的還是需要自己每天去梳理各種任務和標籤,回溯起來也不算方便。

我後來發現了 Logseq 這一筆記軟件。一開始我其實也只是把它當作一個以 block 為粒度的 markdown 筆記軟件,也順便想嘗鮮一下雙向鏈接這一總感覺一直在被提到的概念,用得還挺適應的,所以逐漸把 Notion 上自己的 Knowledge Base 都遷移過來了,後來其實也折騰過使用簡悅來同步自己的網頁標註這些,但是不久後還是覺得有些麻煩所以捨棄了。

直到我發現了 Randy 的這個視頻「我如何使用 Logseq 管理我的生活和筆記」,他提到了使用 Logseq 的 Daily Journal 來做自己的各種筆記與 TODO 管理,這樣不需要像 Notion 這類軟件那樣自己先形成一個規劃再呈現出來。

logseq_daily_journal

因此當自己突然想起一件想要做的事情時,不需要單獨在看板或是任務管理軟件裡建一條新的任務,只需要像是寫一條筆記一樣在自己的 Daily Journal 裡面隨意加上一個條目並且使用 TODO, LATER 這樣的簡單語法就能夠進行簡單的任務管理。

不過有些任務會跨越多天,我們的任務也會零散地散落在各個日期的 Journal 下,不是很利於統一管理,這就要使用到 Logseq 另外一個強大的功能了 —— Query,這個功能可以理解成以 block 為粒度的查詢(就像是 sql 查詢到一條記錄那樣),通過一些標籤、語法等內在邏輯進行篩選,展示出我們想要的 block。

這個部分我參照了 Randy 的實踐,創建了一個 Dashboard 頁面,裡面展示了自己的各種查詢結果。我主要使用了如下幾個 Query(括號中是其對應的 query 語句,需要的朋友可以自取並且根據需要修改):

  1. In Progress ({{query (todo now)}})
  2. Todo ({{query (todo later)}})
  3. Writing Plan ({{query (and (todo later) [[writing]] )}})
  4. Reading ({{query (and (todo now) [[books]] )}})
  5. Read It Later ({{query (and (todo later) [[books]])}})

呈現結果如下:

logseq_dashboard_in_progress

logseq_dashboard_todo

logseq_dashboard_other_queries

因為這個是 Randy 的實踐,我就不單獨出博文介紹了,在周報中簡單介紹了一下自己的使用方式,大家有興趣的可以看看他的原視頻。

Surge Ponte 與遠程開發#

自己在網絡、各種硬件設備和系統的折騰上屬於又菜又愛玩的類型了,之前也探索過瘦客戶端開發的一些最佳實踐,詳情可以看這篇文章:

其中最核心也是最難的點就是怎麼在外部網絡環境下訪問家裡的設備,如伺服器、Mac 主機等等。在我之前的方案中使用的是 frp 這一工具進行內網穿透,大半年過去了,很穩,依然是首選推薦的方案。

但是當看到 Yachen Liu 發的這篇「Surge Ponte 研發手記」時,又心癢打算折騰了。

五一假期又要出門在外幾天,想着日常開發都是在家裡的主機進行的,在外也想要能訪問,剛好因為重裝了系統還沒配置 frp 客戶端,想着乾脆直接上 Surge Ponte 試試了。

於是趕在出發前一天晚上升級了下 Surge 5 並配置折騰了 Surge Ponte,一番探索下來,比起 frp 或者其他類似的解決方案,我覺得 Surge Ponte 在配置易用性和拓展玩法上有著絕對優勢。

Surge Ponte 的折騰絕對值得一篇詳細的博文,因此本周報裡就不詳細講解原理和配置細節了,只簡單展示一下目前我使用到的部分功能效果呈現。

當我在自己的 16 寸 MBP 與家裡的 Mac Studio 同時開啟了 Surge Ponte 功能(我使用的是 NAT traversal via proxy 的模式,只需要用一個支持 UDP 的線路就可以了,如自建的 Trojan 協議的代理),在已註冊設備中就能看到了。

surge_ponte_config

這個時候當設備開啟了允許遠程登錄的權限時,就可以像訪問雲服務一樣通過 ssh [username]@[surgepontename].sgponte 這樣的命令直接遠程登錄主機,因此也可以支持 VS Code 遠程開發等。

surge_ponte_ssh

當然這一點像是 frp 這些也可以輕易做到,而更強大的一點是這時候我們在家裡主機上啟動的一些服務,也可以通過 [surgepontename].sgponte:[port] 這樣的網址直接訪問。例如我通過 ssh 遠程連接到家裡的 Mac Studio 後啟動了一個本地的 Next.js 網頁服務,在本機開發時通過 localhost:3000 來訪問,現在我可以直接在 MBP 上通過 http://yu-macstudio.sgponte:3000 直接訪問(雖然 frp 也是能夠做到映射服務出來,但需要在 frp client 端寫端口映射規則)。

surge_ponte_servies

所以理論上通過 VS Code 直接遠程連接主機修改代碼文件並且使用 [surgepontename].sgponte:[port] 的方式能夠獲得完整版本地調試的體驗,兼顧了便攜性和性能(好,這就把 MBP 賣了換 Air

還有一個很實用的場景就是我們常常會有一些只有在家裡的局域網才能訪問的服務,如軟路由器配置、NAS、樹莓派等,這時候如果使用 frp 則需要每個都單獨配置,而 Surge Ponte 可以直接通過設定 DEVICE 規則來實現外部訪問,如我現在在外地可以直接使用 http://router.asus.com 來訪問我家裡的路由器配置頁,這對於遠程管理家裡的一些常駐服務很方便。

surge_ponte_router

還有很多好玩的應用,如通過 smb 協議直接訪問家裡主機設備的文件等等,後面的博文會儘量涵蓋一些好玩的應用場景,感興趣的朋友可以關注(催更)一下博文。

捏捏近況#

nie_nie_in_painting

博譯學姐在給捏捏畫油畫!!!這個還只是個初稿,還會再加億點點細節,但是已經忍不住想展示出來了,太好看了!!!

nie_nie_and_new_toys_01

nie_nie_and_new_toys_02

新的貓爬架,提前開啟度假模式!

五一後準備帶去絕育了還是有些緊張的,希望一切安好。

有趣的事與物#

輸入#

雖然大部分有意思的輸入會在 「Yu's Life」 Telegram 頻道裡自動同步,不過還是挑選一部分在這裡列舉一下,感覺更像一個 newsletter 了。

文章#

視頻#

同樣的,也有記錄一下看過的有意思的視頻:

動漫#

  • 鬼滅之刃 鍛刀村篇,超級期待!!!希望別崩
  • 我推的孩子,看著討論度還挺高的,但據說有點刀,看了開頭一點點
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。