遊手好閒的石頭成
行於巷弄若於曠野,居於市井如於山巔。不知其何許人也。

我的程式源碼託管於 github
www.rocksaying.tw
rocksaying.github.io
石頭閒語
@tw_rocksaying

快報或告示

近日開始放置 Google AdSense 廣告。在文章頂端以及結尾處,各放一個廣告。

文章的標籤也做了調整,現在標籤是用 google adsense 搜尋。

希望可以彌補我的 domain name 註冊費。

學習 ECMAScript/JavaScript 6 - Promise

Promise 是 ECMAScript 6 訂出的語言規範,用於延遲運算 (deferring) 的場合。 正式說明太難解釋了,所以我根據這兩年的使用經驗,決定換一種比較白話的講法。 ECMAScript 6 的 Promise 就是一種跳躍語法(goto),只是不會執行它這一行就立即跳躍,而是延遲到程式區塊結束才跳躍。 Promise 是延遲式跳躍。

雖然現在年輕人可能從來沒用過跳躍(goto) ,但應該不妨礙各位理解跳躍是什麼。 就連 JavaScript 也保留了一部份跳躍語法,那就是 label

本文將按下列六步,逐步說明 Promise 的使用概念與實例:

  1. Promise 建構式必須有一個執行者引數(executor)。
  2. Promise 建構式的 executor 可接受兩個引數,分別表示 then 和 catch 兩個跳躍點的名稱。
  3. Promise 標記時會保存指定的狀態內容。
  4. then/catch 串接實現非同步工作的同步化,且簡化程式的巢狀結構深度。
  5. Promise.all 可以一次收集多個 promise 的結果。
  6. 用函數包裝 Promise ,提高重用性。

SQL Datatypes 相容性整理

我只整理數值、序號、文字和日期這四種類型。至於 BINARY, BIT, MONEY, 地理位置, XML 等通用性太低的類型,則不使用。

下列是個人使用的資料庫系統,按個人喜好程度排列:

  • SQLite 3 (sqlite)
  • PostgreSQL 9.6 或更新版本 (pgsql)
  • SQL Server 2019 或更新版本 (mssql)
  • MariaDB 10.3 或更新版本 (mysql)

近日開始放置 Google AdSense 廣告

近日開始放置 Google AdSense 廣告。在文章頂端以及結尾處,各放一個廣告。

文章的標籤也做了調整,現在標籤是用 google adsense 搜尋。

希望可以彌補我的 domain name 註冊費。

K島歪串日常:「轉生成為史萊姆」論貨幣

關於我轉生變成史萊姆這檔事》是一套日本輕小說,並有動畫與漫畫改編。

故事中有個由矮人所建立的武裝大國德瓦崗,由於矮人擅長礦業和工藝品製造,所以矮人王國所鑄造的矮人金幣純度足,還有特殊魔法附上的防偽功能,這功能同時確保金幣外觀長久不損壞。世界諸國自古以來就以矮人金幣作為國際上貿易使用的貨幣。

主角建立的新興國家,因為主角推導了許多新興事業和技術,財富快速增長,漸漸成為世界的經濟中心。由於市面上流通的金幣不敷使用,主角想要自行鑄造矮人金幣,但卻被臣子們否決。說是有防偽設計,私鑄的不被市場接受。主角只好繼續收集矮人金幣。

作者在這段劇情中,打算描寫金幣數量和貿易戰之類的劇情。

我覺得作者自己都不懂貨幣史。他把「矮人金幣」當「美金」,用現代貨幣戰爭內容在寫這些劇情。

Fcitx輸入法引擎行列30字碼表添加二級簡碼~試驗中

繼「行列30字碼表添加一級簡碼」之後,我還是想把二級簡碼合併進來。但因為二級簡碼和特別碼重複衝突的狀況不可避免,我決定以特別碼為優先。所以合併進來的二級簡碼不保證每個字的位置都符合規定。

合併結果中,有九成以上的二級簡碼字,會出現在候選字清單的正確位置上。不到一成的重複字,位置有所挪動。

另外,我在處理二級簡碼過程中,發現來源的 array30.txt 中有錯誤編碼,已刪除那些錯誤。

下載已經轉換的表: 含二級簡碼的行列30字碼表

K島歪串日常:武道狂之詩的武林與現實生活

武道狂之詩》是一套武俠小說,並有漫畫改編。我看得是漫畫。

在此作品中,武當派摒棄了養生道術而偏重於武鬥實戰,並生起「天下無敵,稱霸武林」的野心。 K島民就劇情,討論武當派還算不算「白道」」,以及主角為何走復仇之路。

本文整理了我在討論串中提到的看法:

  1. 何謂名門正派
  2. 門派傳承重要嗎
  3. 弟子不能退出門派嗎
  4. 為什麼名門正派都用劍

Linux Mount Disk Image and Edit 掛載磁碟映像與編輯

我手上有一份磁碟映像 (disk image),它是從 SD 記憶卡或硬碟直接 dd 複製而來。 如果我需要修改磁碟映像的檔案系統內某個檔案的內容,我該怎麼做?

最笨的方法是把磁碟映像寫回記憶卡或硬碟,修改內容後,再重新做一個磁碟映像。 最好的方法則是利用 Linux 的 loop 設備 (loop device) 功能,把磁碟映像當成一個磁碟設備,直接掛載起來。 基本步驟如下:

  1. 首先查看磁碟映像的分割狀態。
  2. 計算指定分割區的起始位置。
  3. 掛載這個磁碟映像的分割區到指定目錄。
  4. 修改檔案內容。
  5. 卸載磁碟映像分割區。

同理,你也能直接編輯磁碟映像的分割區。

startx - Cannot open virtual console

我使用 Debian 虛擬機的習慣是啟動後保持在文字環境。先登入文字終端機環境,再視需要執行 startx 進入桌面環境。

但我安裝 Debian 10 後,執行 startx 會失敗。依程式訊息查看 ~/.local/share/xorg/Xorg.0.log ,錯誤重點如下:

Fatal server error:
[   ...] (EE) xf86OpenConsole: Cannot not open virtual console ? (Permission denied)

解法是編輯 /etc/X11/Xwrapper.config ,加入一行:

needs_root_rights=yes

編輯 Xwrapper.config 時,你會看到檔案內容中提示更動此檔後,必須執行dpkg-reconfigure xserver-xorg-legacy 變更 X 服務組態。存檔後照做。一般用戶就能執行 startx 了。

透過 dm (Desktop Manager) 登入桌面環境的使用者,不必動上面的東西。

Windows 10 VirtualBox 6.1 安裝 Debian 10 虛擬機狀況排除筆記

自從 Windows 10 增加 Windows 子系統 Linux 版 (WSL, Windows Subsystem Linux) 功能後,我已經很長一段時間都在用 WSL 跑 Debian 了。 這次要不是想裝一套純 Debian 10 虛擬機,還不知道 VirtualBox 6 現在這麼多毛病。 我不清楚是不是因為虛擬化功能愈來愈複雜,才導致 VirtualBox 6 的適應性變差。

host 系統: Windows 10 Home 64bit.

  • VirtualBox 6 安裝錯誤狀況: 找不到設備或檔案 (cannot open the device or file specified)。
  • Debian 10 為 guest 系統的錯誤狀況:
    • installation failed when select and install software.
    • black screen.
分頁瀏覽
Programming
電腦技術
經濟學/奧地利經濟學派
閱讀隨筆
休閒生活
快報記事