2023-03-14

《座敷童子的搖籃曲》

《座敷童子的搖籃曲》-日本卡通電影《河童之夏》中的插曲,非常「亞沙系」,極為温柔的一首歌。

🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿
花開、風吹
雪飄飛
萬物消逝

但我在這裡
你也不知怎地在這裡

睡吧、睡吧
昔今將來,明天總是會來

神啊,請不要忘了我
安心睡吧,安心睡吧,安心地睡吧
🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿

人生的路上,處境總會有高低,心情不免會有起伏。

好時光、壞時光,都也是人生路上,理應出現不同的風光。

不順意、難捱的時刻,靜心內省並傾聽上蒼的聲音,耐心學習成長必經的課程。

晨曦的亮光在暗夜之後得見
彩虹的炫麗得雨後才會展現

總有路可以繼續走下去, 難過的關鍵時候,總有人會關懷著你!

《時代 (中島みゆき)》フル

悲和喜的眼淚你我都流過
聚和散的折磨有誰不怕痛

多少事看在眼中彷彿一場夢
多少事反覆從頭躲也躲不過

但世上的人啊 不過都是過客
何苦讓昨夜的風吹熄今天的火

歲月帶著你我跟著時代不停地走
它來來去去從不曾為誰改變停留

人生路總難免有一點傷有一點起落
所有的失去的夢依然能擁有

《なごり雪 (殘雪)》イルカ


陪著你等著火車到來,
一旁的我不時注意著時間,
不合時節的雪,此時正滿天飄舞著。

你傷感而喃喃說著:
這應是今年東京最後的一場雪吧?!

殘雪降落,在此紛紛擾嚷的季節
而今,春己將至,
你變得如此美麗,比去年更加美麗了。

火車已緩緩啟動,
臉頰緊貼在車窗上的你,
似乎正有話說;
看著你的唇形,似像說著「再見」,
我竟慌亂地低頭看著地面。

時光飛逝,
當時年幼的你,
似乎仍未察覺自己已長大了吧。

而今,春己將至,
你已變得如此美麗,
比去年更加美麗了。

留在月台上的我,
望著飄落地面,隨即融化的殘雪

而今,春己將至,
你已變得如此美麗,
比去年更加美麗了~
你變得比去年更加美麗,
更加美麗了~~~

《雨の物語》イルカ

在這不止歇的長雨,
我一人獨行
等待那人出現,
直到全身溼透。

不停地走著,即便沒傘也不在乎。

在這雨中,我是個傷心的人。
無人相伴,只有雨水與我同行。

無法斷絕的思念,
往昔有我、有他我的美好時光。

即使在這時候,
我仍然想起,
即使在這樣的天氣裡,
我仍然微笑著。

但那回憶,
漸漸變得模糊、依稀,
就像雨水遇到暖陽一般,
一點、一滴漸漸消失。

在這不止歇的長雨,
我一人獨行
等待那人出現,
直到全身溼透。

《好久不見》小柳琉璃子

好久不見啊,竟然還能再遇到你
從那時到今天,時間已過多少年

現在的我是否更成熟了些
而你是否已結美好的姻緣

本以為不過是喝個茶,閒聊幾句便我們道別
怎料此次的重逢,我們竟不覺時間飛逝而過
想到又要再次道別
內心倍感惶恐難受

珍重,再見了
我狀似平靜,轉身離去
內心卻在自言自語
直到今天我還是喜歡著你

希望再一次,再一次,我們再次重新來過
希望再一次,再一次,重逢於不久的將來

電話裡傳來你的聲音
在這夜深人靜時分,聽到你說:好久不見
你那奇特卻又認真的聲音
原本睡意正濃的我,剎那間竟然全消

你說若你還是單身
是否我倆可像電影情節般談戀愛
你說愛可以培養,可以慢慢積累;

我不置可否,用笑聲忽悠帶過
電話結束前,我們又再次互道珍重
掛上話筒,陣陣感傷湧上心頭
不知怎的,顆顆淚珠滴滴滑落

希望再一次,再一次,我們再次重新來過
希望再一次,再一次,重逢於不久的將來

2023-03-09

在 Neovim 使用 plantuml-previewer.vim 為專案繪製設計文件

如何在 Neovim 啟用 PlantUML 的教學影片

常言道:「文不如表,表不如圖;一圖勝過千言萬語」。可知圖像給予人們的感覺,比文字乃至表格,更為強而有力。

UML (Unified Modeling Language,中文譯名:「統一塑模語言」),這套透過圖形規範,針對「軟體」塑形造模的方法論,自推出以來,廣被當作:描述系統/軟體架構,乃至軟體設計的工具。

以個人而言,我相信:「在軟體專案導入UML 圖,可協助我檢驗軟體設計的合理化,乃至在檢驗的過程中,察覺思考上的錯誤,乃至系統埋下了潛在的問題。個人好用的UML 圖為:循序圖及類別圖。我好使用循序圖來表達「功能細部設計」;而類別圖則用於描述軟體的 Domain Model 。在繪圖的過程,經常會發現原先未考量之事,所以程式碼在尚未動手撰寫前,便已先行「重構」和優化,避免了事後的重工,乃至除錯工作。」

雖說使用 UML 圖,對於軟體的開發有著諸多的好處。但也不得不承認,手工繪圖是件細鎖的煩人事。UML圖能為軟體開發人員帶來效益,但製圖過程卻費力耗時的反作用力,反而使人寧可放棄的問題,似乎被某些天賦異稟的軟體天才所發現,於是乎,這世界有了:PlantUML 的發明。PlantUML 的迷人之處在於:可用「文字敘述」描繪製作 UML 圖。

在 Neovim 眾多的 Plugins 中,plantuml-previewer.vim可供使用者在 Neovim 中「描繪」及「預覽」繪圖的成果。

  -- PlantUML
  use({ "weirongxu/plantuml-previewer.vim" })
  -- PlantUML syntax highlighting
  use({ "aklt/plantuml-syntax" })
  -- provides support to mermaid syntax files (e.g. *.mmd, *.mermaid)
  use({ "mracos/mermaid.vim" })

以下是個展示範例:在使用 Django 開發「部落格(Blog)」 的專案中。欲使用「循序圖(Sequence Diagram)」描述的「閱讀某則貼文」的功能規格。

閱讀貼文(Post)的文字描述

「描繪」此功能的循序圖,其「描述」文字如下:

@startuml
autonumber "[00]"

actor    User
control	 Django.Router		as Router
control  Django.Template	as Template
boundary post_detail     	as View
boundary CommentForm     	as Form
entity   Post				as Model
entity   Comment			as Comment
database database			as DB

User -> Router : url: /blog/  (post_detail)
Router -> View : post_detail(request, year, month, day, post)
View -> Model : get_object_or_404(Post, slug=post, \n status='published', publish__year=year, \n publish__month=month, publish__day=day)
Model -> DB : sql_query()
DB --> Model : post
Model --> View : post
View -> Comment: post.comments.filter(active=True)
Comment --> View: comments
View -> Form: CommentForm()
Form --> View: form
View --> Template: render(request, \n uri_of_template, \n {post, comments, form})
Template --> User: /blog/post/list.html
@enduml

最後,在文章結束之前,提供以下一些參考資料。希望對想了解 PlantUML 多一點;或是「如何在 Neovim 導入 PlantUML 之人」,能有所助益!

閱讀貼文(Post)循序圖

根據以上「描述文字」,繪製而成的循序圖如下:

如何以 PlantUML 呈現 Domain Model 的教學影片

【參考文件】

2023-03-02

將 ChatGPT 的 AI 功能,導入 Neovim 中

 


上述影片中的展示,使用的 Neovim 擴充套件(Plugin)為:ChatGPT.nvim

這擴充套件的安裝及設定,極為簡單,但...需小心的是:套件的運作,需要透過【環境變數:$OPENAI_API_KEY】,取得 ChatGPT API Key ;及操作的電腦中需有 curl 軟體已完成安裝。

所以,在完成 ChatGPT.nvim 的安裝及設定後,於重啟 Neovim 前,需先完成以下所述二事:

(1)在「終端機(Shell)」中,檢查及確認 curl 已安裝;若無,須先完成;

(2)取得 ChatGPT API Key 值,並於 Shell 設定檔中,完成「環境變數」:OPENAI_API_KEY 的設定。 

【例如】:在 ~/.zshrc~/.bashrc 檔中,添加以下設定:


...
export OPENAI_API_KEY="《取得之ChatGPT API Key值》"

以下是兩個操作案例的晝面展示:

(1)先是用英文,詢問如何在家中的陽台種植蕃茄?接著要求 ChatGPT 將回覆,自英文翻譯成中文;並要求輸出的格式須是 Markdown ;

(2)因為聽說 HighlightJS 可以令 Google Blogger 的貼文,顯示美觀、易讀的程式碼。但因個人不愛其預設的配色,想改用個人偏好的〖Tokyo Night Dark〗樣式(Style),所以,我在 Neovim 中,透過 ChatGPT.nvim 請教大神:「使用 hightlightjs ,要如何挑選不同的樣式?」