pretty code

2020年12月29日 星期二

《讓訂閱制更長久的超級會員經濟》

雖然買了好幾百本中文書,但都是看過就算了,頂多憑記憶需要時再翻閱。即使是小說,我覺得偶爾還是會有些名言可供參考。雖然我們可以透過劃線來加深印象,但劃到最後,可能會變成一堆重點。

以程式語言的函數參數來說,一般建議是 3 ~ 7 個,故我決定以後每看完一本書,就要記錄我覺得有用的重點 3 ~ 7 個,這樣也可以從中學習到東西。

本書重點

1. 業務性質轉移成訂閱制時,高層的支持是最重要的。

2. 利用各種不同指標來衡量訂閱制績效。

3. 我們要的是永久的收益,不要追求短期營收成長。

4. 現有會員與未來會員?

5. 現有顧客、前顧客、潛在客戶以及離去的潛在客戶,要一起譜成協奏曲。

2020年12月17日 星期四

使用 wxWidgets 開發剪貼簿相關工具解決閱讀技術文件痛點

最近一直在閱讀技術文件,這份文件需要搭配某個實體服務,參照它服務裡面各個連結的相關資訊,才能有助於理解此份技術文件。由於它的資料都是 JSON 格式,參照某個項目時,可能需要再開啟相關的其他連結,故只能很克難的不斷複製,並在 Chrome 裡面新增視窗後貼上。

看了幾天後就覺得很阿雜,複製貼上還是小事,之後可能會不斷的開啟這些開啟過的連結,如果每次都是使用人工方式操作,勢必很沒效率。還好這樣的需求我很久以前就有類似的經驗,解決的方式也很簡單,就是去監控 Windows 剪貼簿的變化,只要剪貼簿的資料是我剛才複製的連結,就自動傳遞給 Chrome,Chrome 預設行為就是新開視窗,我就可以從 3 個操作步驟減少成 1 個操作步驟,減輕了不少人力。除此之外,我還可以把這些開啟的各個連結儲存下來,隨時有需要都可以再開啟,甚至不要用複製方式,直接用滑鼠點擊到該行連結,直接去觸發 Chrome 做事。

以前的程式是使用 BCB 6.0 個人版開發,目前手邊並沒有安裝該套軟體。於是便打算使用幾年以前曾經玩過的 wxWidgets 來開發此工具。雖然程式沒有超過 300 行,但還是找了一下資料,解決了一些問題。

1. 開啟 Adobe PDF Reader 遇到的剪貼簿問題。
2. 如何加上 wxDev-Cpp 沒有內建的 Windows Event。
3. 使用 wxWidgets 的 File IO。
4. 使用 wxWidgets 的 INI class。
5. 如何得知 wxTextCtl 點擊時的行數。

其中搞了我最久的就是問題 1,只要在 Adobe PDF Reader 裡面複製文字,就會讓我的程式觸發一個 Error 視窗,而這個視窗是因為程式嘗試要 GetData 而導致失敗。不論我用什麼關鍵字去 Google 查詢,找不到資料就是找不到,可見使用 wxWidgets 的人算是小眾。後來還是去看原始碼,發現它是使用 wxLogSysError 這個函數去彈出視窗,接著便是去找 wxLog 相關的說明文件,終於讓我發現可以使用 wxLog::EnableLogging(false) 來停止這個程式行為。

我終於可以從技術文件中鬆一口氣,雖然我私心認為這個規格不太會成為共通標準,但目前也只能且戰且走。

2020年12月11日 星期五

Redfish 概述

Redfish 是一套標準被設計用來提供簡單且安全的伺服器管理方式。它結合了目前常見的 Web 技術,例如 RESTful API、JSON format 等,目的是讓 IT 可以利用熟悉的工具來達到管理伺服器的目的。

DMTF 是 Redfish 的負責組織,網站上除了有相關技術文件可參考外,其在 Github 上也有提供一些工具,可以在初期學習時邊對照 Spec 邊幫助理解相關的規範說明,底下就簡單介紹我覺得還不錯的兩個工具。

Redfish-Mockup-Server

這是個模擬 Redfish Service 的工具,只要有 mockup 好的假資料,便可以使用瀏覽器來看相關的 Schema 組成。我最早是在 10/8 下載此工具,一開始的 README 根本沒提到哪裡有 mockup 資料可以參考,還好過沒幾天,就在 DMTF 網站上發現對應的資料,其代碼是 DSP2043,最新的檔案裡面包含不只一種的 Redfish Service mockup data,可以隨意選擇一種來使用。

py .\redfishMockupServer.py -H 127.0.0.1 -p 8001 -S -D .\DSP2043_2019.1\public-rackmount1

寫這篇文章時,再度上此工具網站查詢,其 README 已經在 11/11 的 commit 增加了 mockup data 的說明,也提到 DSP2043 的關鍵字,故之後的人就不用像我一樣,還要自己摸索如何使用此工具。

Redfish-Mockup-Creator

目前的 Server 廠商,例如 Intel、Dell、HP 等,其伺服器都有支援 Redfish,如果不是這一兩年內購買的機器,只要廠商有提供 BMC 韌體更新,就可以透過更新韌體的方式來支援 Redfish。像我手邊是一台 5 年前購買的 Dell 機器,更新韌體之後,就有提供 Redfish 界面的管理方式,只要設定好帳號密碼,使用 Python 控制開關機都沒有問題。

這個工具就是用來產生現有 Redfish Service mockup data 用,假設你有想要管理的目標,但可能因為網段等限制不方便存取測試,在開發初期便可以使用這套工具產生一份假資料,配合 Redfish-Mockup-Server,就可以方便理解目標的 Redfish Schema。

此工具也可以把 HTTP Header 儲存起來,甚至是回應時間,故可以更真實的模擬目標。如果想要抓到更完整的資料,記得把目標機器開機,不然有些資料會因為處於關機狀態而不是很完全。

另外,像 Dell 的 Schema 中有包含一些 Windows 不能使用在資料夾的特殊字元,例如冒號等,故在 Windows 下執行 Creator 工具就無法產生這部份的資料,建議還是在 Linux 下執行。

python redfishMockupCreate.py -u root -p xxx -r 192.168.1.100 -S -D my-mockup

2020年12月9日 星期三

87.0.4280.88 更新後,下載 ZIP 檔失敗

Chrome 在 2020/12/2 更新版本到 87.0.4280.88,從 87 版開始,如果在 HTTPS 連線中下載一個 HTTP 連結的 ZIP 檔案,這時會發現什麼事都沒有發生,既沒有下載檔案,也沒有錯誤訊息。原因是 Chrome 在其計劃中,要逐步的擋掉這些不安全的連線行為,相關時程如下表。

也許是計劃有變化,最後並沒有像這張表一樣,從 86 版開始就擋掉 ZIP 檔案。

如果有遇到這個奇怪的現象,可以檢查看看,是不是發生這個問題。

2020年12月4日 星期五

2020 年終讀墨購書金額統計

雖然現在才 12 月初,但除非有特殊狀況,不然這個月應該不會再買書了,使用自己的工具統計一下整年購書金額。

整體來說,今年金額又比去年增加,去年金額還包括了一筆 $13,500 的 mooInk Pro 10 吋機器,故今年多購買了 $14,000 左右的書籍。

尤其上半年時,把一些漫畫收齊,還買了一堆浩基哥的書,接著又趁著類似商管書籍折扣的時候,買了一些有興趣的書。因此上半年的購書金額已經超過 $32,000。

至於下半年時,雖然有週年慶等活動,但我都沒有興趣,再加上讀墨桌面版軟體改版,故 10 月的購書金額才會驟降,一直到 11 月有了更新版後,才又開始恢復買書。

雖然又比較有興趣買書了,但頻率我想應該會再降低,畢竟一些新書對我都沒啥吸引力。有時候還是老朋友比較對味,下半年我覺得最好看的書應該就是李查德的《過去式》,其它像是《零規則》、《軌道》、《借殼上市》等書籍,都沒有什麼驚豔的感覺。

另外,今年還購買了一些以前購買紙本書後因為收納空間不足丟掉的書,雖然像《饑餓遊戲》之類的可能也沒有時間再看,但還是希望買回來當作紀念。其中《火星任務》因為貪便宜已在中亞買過,但我在下半年還是狠下心的的趁著週年慶再把它買回。目前想再購回的大概只剩藤井樹和傑克李奇系列吧?前面一個是因為缺錢,另外一個則是因為沒電子書。

撇開讀墨不算,其他平台印象中加起來應該沒有超過 20 本書,大部份都是技術書籍,其中 Google 圖書就買了約 $3,500。雖然 Google 圖書技術類書籍都是 PDF 居多,但因為便宜還是買了一些。

總之,今年大概就是這樣吧,希望明年會有更多讓我驚豔的書吸引我購買。

2020/12/24 更新

後來為了測試緣故,還是又買了幾本書,到年底還有幾天,應該不會再增加了吧?