Blog

2022 開春帶著狗堡自駕環島遊 – Day 3 台東-太麻里-高雄旗山

2022 開春帶著狗堡自駕環島遊 – Day 3 台東-太麻里-高雄旗山

※ 第一天的旅遊日誌:「2022 開春帶著狗堡自駕環島遊 – Day1 宜蘭-花蓮」。

※ 第二天的旅遊日誌:「2022 開春帶著狗堡自駕環島遊 – Day2 花蓮-南橫-台東」。

台東「石尚玩家」這家民宿住宿體驗真的太棒了!隔天還附有豐盛的早餐。然後遇到老闆娘很是健談,她自己還說很享受在台東風光明媚的生活,很難想像在台北吵雜潮濕如何過日子,確實令人欣羨。

後來老闆娘還特地介紹她們夫妻倆開設的石頭木雕收藏室,裡面擺設的木雕奇石,讓人嘆為觀止!可惜我全不懂這,無法品頭論足,但可以感受出收藏者的用心。

閱讀全文 »

入手 Kingroon KP3S 超便宜單懸臂 3D印表機

入手 Kingroon KP3S 超便宜單懸臂 3D印表機

上個月中無聊看片時,看到對岸B站這篇:「不到800元的線軌全金屬印表機,真的能用嗎?」。

其實已經有一年時間沒玩 3D 打印了,但看到淘寶賣的這台 KP3s 單懸臂但 X/Y 軸是線軌的機器,優惠 (原價 RMB 1399 折扣後為 610 ) 後的價格只大約折新台幣 2,700 元,便宜得太過不可思議,所以實在忍不住給它剁下去下單。因為體積不大 (大印面積 18x18x18 cm),所以打算就近放在書房,三不五時打印個小公仔當成手伴送人。

我再加買了三卷耗材、一瓶 LAC 噴霧膠水 (對岸 3D打印達人阿文菌 強力推薦的)、其它一些備用零件等,總價才只要新台幣 $4,737,當為大人的玩具,太太便宜啦。🤣🤣

這次我是透過私人集運商的海運送回,運費不到 1千元。反正也不急著裝,運費便宜實在就好。

閱讀全文 »

Zotero 6 的同步與雲端硬碟設置

Zotero 的文獻庫管理包括了各類文檔的項目 (item)、標籤 (tag)、標記 (annotation) 與 文檔的附件 (pdf, doc, web page, ...)。它們被統一儲存在特定的資料夾內,安裝時預設的儲存位置為系統所屬的帳號目錄內,如 Windows 用戶儲存位置為 C:\Users\login-account-name\Zotero。當然,這個位置可以在開啟 Zotero 後自行變更位置,例如我把它設定於 D:\Zotero 資料夾,

預設該資料夾內有相關設定的檔案、資料夾,還有使用 sqlite 資料庫檔案來儲存上述相關文檔的資訊。如果涉及到多個裝置同步使用共同文檔的議題,當然就勢必需要設定同步儲存的位置。最簡單的方式就是申請 Zotero 帳號,然後購買儲存空間 (因為免費版本僅提供 300 mb,是無法儲存多量的附檔)。如此都不用煩惱如何作有效的同步設定。

當然,能省就省,退而求其次,如果擁有私有雲或雲端儲存服務有提供 WebDAV 協定的存取,那也是只要設定好存取位置就可以達成同步的需求。官方有列出關於提供 WebDAV 服務的 ISP 列表 (對岸最有名的即是堅果雲)。

如果沒有上述兩個條件,那麼同步的設定就有些些麻煩,當然就只能利用雲端硬碟的方案來達成同步的需求。同步設定的一個必要觀念就是:不要把上述所提及 Zotero 的文檔資料夾全給指定在雲端硬碟位置上,否則會出問題!(道理很簡單,sqlite 資料庫檔案係處於 open 狀態,直接儲存肯定出問題)

其實真正要同步的是如 PDF 那些附檔案,而它們會被儲存在位於 \Zotero\storage 資料夾內的某一隨機數字名稱的資料夾。使用隨機數字所儲存的資料夾看來很無序,但這是 Zotero 內建的索引機制,如果不想這樣用它,是可以使用第三方插件 - zotfile 來達成對資料夾更有意義的命名,它會改以鏈結附檔 (Linked Attachment) 的方式來管理文檔與附件之間的關聯。這種方式看起來相當不錯,尤其是多個裝置要存取這些鏈結附檔時都能有一致的路徑,只要這些附檔所在主資料夾內的參考路徑不變。但使用 zotfile 改為鏈結方式有個最大的問題:要刪除文檔時,所關聯的附檔不會一併被刪除,當日久量大的時候就很有可能會造成冗餘或重複的附檔。

關於如何使用 zotfile 的鏈結附檔,可以參考下述文章:

o zotero配置全流程——安装、同步与插件

o 使用Zotero进行从未有过的畅快学术体验

o Zotero + Onedrive 文献管理神器的网盘同步设置

不過幾經嘗試與比較,目前還是決定先採用官方內建的儲存管理方式,來得比較單純,日後如果 zotfile 能解決了鏈結附檔同步更新與刪除等問題,再來改換也是可以的。

其實 Zotero 的同步,主要就是考量兩個議題:

  • 資料檔案夾 (如 D:\Zotero) 內相關的配置檔案、sqlite 資料庫檔案等如何同步?
  • 附檔案所在的資料夾 (如 D:\Zotero\storage) 該如何同步?

第一點很簡單,就是仍使用官方的「Data Sync」,但不使用「File Sync 」,也就是把下圖中的「檔案同步中」兩個選項取消勾選。其實就是附檔案不採用官方的同步,而「Data Sync」所佔用空間極小,預設的 300 mb 是足足有餘。

Zotero 6 的同步
閱讀全文 »

數位文件整理與摘記的好工具 – Zotero 6

數位文件整理與摘記的好工具 – Zotero 6

這是去年在研究 Obsidian 如何實踐 zk 方法論 (Zettelkasten, 卡片盒筆記法) 時,發現到在整理其中所謂「文獻筆記 (Literature Note)」時,也就是把閱讀時的標註摘記,與所參考的文件 (PDF 或網頁等) 集中整理在 Zotero 文獻管理工具,而 Obsidian 主要就可以用來整理所屬自己想法的「永久筆記 (Permanent Note)」。

其實這個工具若是大學院院校撰寫學術論文的學生與教授們應該是很熟悉的 (但我那個就學時代並沒有這種如此神奇的工具),但常有閱讀習慣 (主要針對數位文件) 的「Knowledge Worker」,可以很方便的把 PDF 與 網頁文章等放入 Zotero 內的文獻庫集中管理,而其中 PDF 附檔案可以直接儲存在如 Google、Dropbox、OneDrive 等雲端硬碟,而可以達成多個裝置存取閱讀的便利性。

所以,Zotero 的主要作用是什麼? 引用官方的「quick start guide」說明:

Zotero is, at the most basic level, a reference manager. It is designed to store, manage, and cite bibliographic references, such as books and articles. In Zotero, each of these references constitutes an item. More broadly, Zotero is a powerful tool for collecting and organizing research information and sources.

(Zotero 在最基本的層面上是一個參考文獻管理器。它被設計用來儲存、管理和引用書目參考資料,如書籍和文章。在Zotero中,這些參考文獻中的每一個都構成一個項目。更廣泛地說,Zotero 是一個收集和組織研究訊息和來源的強大工具。)

而今年初 Zotero 更是迎來了重大改版 6.x ,新增了相當多的功能,具體細節可參考官方介紹:「Zotero 6: Your research workflow, transformed」。主要新增功能:

閱讀全文 »

C#.NET Core CRUD 基本資料維護實作範本 – 三層式架構以及可以切換 E.F Core 6 與 ADO.NET 實作

C#.NET Core CRUD  基本資料維護實作範本 – 三層式架構以及可以切換 E.F Core 6 與 ADO.NET 實作

已經整理好 C#.NET Core CRUD (Create,Read,Update,Delete) 基本資料維護的實作範本,並已上傳至 Github 供下載:https://github.com/kenming/petstore-crud-template-csharp

關於該範本如何執行 (包括跑單元測試)、主要引導功能、開發工具與建置、類別圖展示等,已具體詳細寫在 README.md 文件。

建議要執行該應用程式前,先更改下 Sqlite 資料庫檔案路徑,然後先執行測試專案內的所有單元測試方法

關於該範本所涵蓋的一些設計思維與所對應的實作問題,版友們可以提問討論與分享想法。關於程式碼的實作細節與設計思維,我還會另撰寫文章詳細說明。

後續的版本演進我會再加上:

  • 多個表格關聯的 CRUD 實作。
  • 使用 Mock 應用在單元測試,隔離 Service 類別依賴具體 Dao 的資料庫存取。
  • 使用 Vue UI 框架整合本範例。

Brief Description

網路上看到關於基本資料維護的 CRUD 範例幾乎都是資料導向 (data oriented) 的寫法,也就是把 MVC Controller 與 資料存取綁在一起。現實上稍有規模的專案採用這種開發模式會導致系統的複雜度提升,不容易應變。

花了幾天時間撰寫了 C#.NET Core (前年有寫過 Java Spring 的版本) 關於單一資料表的 CRUD 程式碼範本,這是一個完全符合三層式架構的應用程式,同時我這個專案範本可以切換 E.F Core 與 ADO.NET 資料庫的存取實作。

關於 Java/Spring 版本,我則打算再重新改寫,架構當然與 C#.NET Core 是一樣的,只是實作的細節必然會調整下。資料庫的存取方式則打算同時提供 JDBCTemplate 與 MyBatis 的 CRUD 範本。

Features

  • 提供開發三層式 (Presentation -> Application Logic -> Datasource) 架構的 CRUD 實作範本
  • 同時提供 E.F Core (Entity Framework Core) 與 ADO.NET 資料存取方式,並可以切換資料庫存取的實作
  • 實作 E.F Core 與 ADO.NET 的 DAO (Data Access Object) 均各自有撰寫單元測試程式 (Unit Test Code)
  • 專案內嵌 Sqlite,並使用兩種實作方式:
  • File-based 為正常存取用的資料庫,提供給 View 操作
  • Memory-DB 應用在單元測試的 Create, Update, Delete ,避免影響到正常資料庫的存取行為

Development

閱讀全文 »

關於台灣用戶購買京東書城電子 (或實體) 書與線上支付心得分享

其實我已在「京東」購買 3C 產品好多次了,由於每次都是直遞寄回台灣,只要線上使用信用卡 (VISA) 就可以付款,並沒有問題。這次我打算購買「莊子全書彩圖全解」電子書,因為太過便宜又多本有優惠,所以乾脆一併買了「彩圖全解道德經」、「彩圖全解山海經」,這樣總價 RMB 13.8,折合新台幣 61元!便宜得太過不可置信。

關於台灣用戶購買京東書城電子 (或實體) 書與線上支付心得分享

但就要線上支付的時候才發現根本沒有可以使用 VISA 信用卡結帳的選項,要嘛就只能使用對岸的銀行卡 (這必須要在對岸實名申請還要有對岸的手機號碼),否則就只能透過「微信支付」。更進一步研究才發現到,只要所購買的商品沒有選擇直接運送到台灣,那麼就不會有提供信用卡支付的選項

要在對岸申請銀行卡現在這種時候可說是不可能,所以只能往「微信支付」這方面著手。查找看到這篇:「[網購] 搞定微信支付|不用跑中國|台灣免實名認證|圖文步驟教學」,只要在手機微信請熟人幫送個紅包,然後開啟後就有「錢包」的選項,再依照該文的內容新增「金融卡」,然後把 VISA 信用卡資訊填入即可。還有操作過程有要求給予實名認證,台灣用戶這邊就是需要填入「台胞證」的資訊,不過我懷疑微信應該沒有真的去做認證,我的台胞證早已過期但仍然可以通過使用。

閱讀全文 »
軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal