院長週記 2021 第 37 週 - 維基基金撤銷多名中國管理員、晴王麝香葡萄種苗外流

# 重點新聞

# 維基基金撤銷多名中國管理員

由使用者自行管理及編輯撰寫詞條的維基百科,對於各地的維基百科通常都是採取寬鬆的管理方式。但是最近維基媒體基金會(Wikimedia Foundation)首度下達禁令,永久撤銷7名中國使用者的登錄權和其他12名使用者的管理和編輯權,因他們因涉嫌向香港國安處嫌舉報香港編輯。

# 相關聲明

# 相關新聞報導

# 其他


在地圖上顯示 Starlink 的衛星,目前 2020/09/21 已經有 1715 顆衛星在軌預計發到 12000 顆衛星


# 晴王麝香葡萄種苗外流

為了防止種苗外流,儘管日本政府今年4月份宣布,禁止將包括當地高檔葡萄品種「陽光玫瑰」(Shine-Muscat)在內多項農產品種苗帶往海外,但實際效果仍有待觀察。目前中國、韓國的「陽光玫瑰」產量,已超過原產地日本。

一開始看不懂什麼是「陽光玫瑰」,拿 Shine Muscat 去 Google 就跳出「晴王麝香葡萄」。

原來中國翻成「陽光玫瑰葡萄」,台灣則是翻成「晴王麝香葡萄」日語是 シャインマスカット , Shine 是閃耀的意思,Muscat 麝香葡萄,也譯作玫瑰香葡萄(英語:Muscat,義大利語:Moscato)。所以中國才會翻成「陽光玫瑰葡萄」

「晴王」這個翻譯其實是指「晴王」標章認證,認證標準是糖度必須超過 18 度,並每一顆重 15 克或以上。


# 技術相關

# 增加 child_process.exec 的 buffer

之前遇到用 child_process.exec 執行 grep 指令,發現回傳的資料少了一大截,後來查了一下原來 buffer 太小,預設是 1024 * 1024 bytes 也就是 1 MB ,可以傳 maxBuffer 這個參數改變 buffer size 就可以容納更多的資料了。


# Node.js child_process 內的 exec、spawn、fork

exec、spawn、fork 這三個 function 都是可以呼叫系統內的程式來完成一些工作,其中有些不同可以看一些文章、文件來了解一下這三個 function

# Node.js 子进程(exec、spawn、fork)_司马懿的西山居-CSDN博客_nodejs spawn (opens new window)

exec - child_process.exec 使用子進程執行命令,緩存子進程的輸出,並將子進程的輸出以回調函數參數的形式一次性返回。 exec方法會從子進程中返回一個完整的buffer。 默認情況下,這個buffer的大小應該是200k。 如果子進程返回的數據大小超過了200k,程式將會崩潰,同時顯示錯誤資訊"Error:maxBuffer exceeded"。 你可以通過在exec的可選項中設置一個更大的buffer體積來解決這個問題,但是你不應該這樣做,因為exec本來就不是用來返回很多數據的方法。

spawn - child_process.spawn 使用指定的命令行參數創建新進程。 spawn 會返回一個帶有stdout和stderr流的物件。 你可以通過stdout流來讀取子進程返回給Node.js的數據。 stdout擁有'data','end'以及一般流所具有的事件。 當你想要子進程返回大量數據給Node時,比如說圖像處理,讀取二進位數據等等,你最好使用spawn方法。

fork - child_process.fork 是 spawn()的特殊形式,用於在子進程中運行的模組,如 fork('./son.js') 相當於 spawn('node', ['./son.js']) 。 與spawn方法不同的是,fork會在父進程與子進程之間,建立一個通信管道,用於進程之間的通信。


# Node.js 的子程序模組 (child_process). Node.js 是單執行緒 (single-threaded)… | by Wenchin | Wenchin Rolls Around | Medium (opens new window)

Timeout 處理
為了避免子程序跑一些迴圈跑到掛掉,exec 可以用 timeout 參數設定超時處理。 但 spawn 沒有這個參數(因為本來就是定位跑比較長的子程序用),一個 workaround 是加上以下這段程式碼,殺死子程序(我寫在 promise 裡面所以用 reject,ls 是執行 spawn 的子程序)


# pgAdmin Geometry Data Viewer

pgAdmin 內建的 Geometry Data Viewer 可以把 query 出來的資料顯示在地圖上,蠻實用的功能,紀錄一下。


# 用 URLSearchParams 取代 querystring

原本常用的 querystring module 在 Node.js v14 被標記為 Legacy ,官方建議之後可以使用 URLSearchParams 來取代 querystring。

URLSearchParams 也是 WHATWG 制定的標準,所以不只有 Node.js 可以用,瀏覽器也可以用。


# 函式庫

# Nods.js 處理影像的函示庫

sharp 是高效的影像的函示庫,可以做 resizing 、轉檔、⋯⋯等

之前有用過 imagemin 做壓縮, sharp 好像也有壓縮的功能,可以再研究看看


# BlurHash

可以把圖片轉成 20 ~ 30 個字串,再透過 BlurHash 的演算法產生一個色塊,色塊上的顏色是根據原本圖片產生的。


# FlexSearch

高速的全文檢索函式庫,因為是純 JS ,所以瀏覽器也可以用,如果在 web 上要做全文檢索可以試試看


# Podcast

# 矽谷為什麼 EP70 - 專訪簡立峰博士 - 前Google台灣董事總經理


# 台北市立棒球場 - 前兄弟象洪董的訪談

前兄弟象洪董的訪談 挺有趣的,講了從業餘棒球到職棒到最後賣給中信的故事 其中有一段也提到當年 #職棒內戰 中職與那魯灣的故事也是滿有趣的,分享給大家


# 有趣影片

# 自製渦輪增壓馬桶【手工耿Handy Geng 】

笑死


# 貓貓卡在看台上

美式足球比賽中,有一隻貓貓被卡在看台上,後來掙脫掉下看台被下層的球迷用美國國旗接到 😊