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

我的程式源碼託管於 github/shirock
rocksaying.tw
rocksaying.github.io
石頭閒語

本站參加 Google AdSense 計畫。日前收到通知「自 2024 年 1 月 16 日起,AdSense 發布商除了遵守《歐盟地區使用者同意授權政策》規定以外,還必須採用 Google 認證且已整合 IAB 資訊公開和同意聲明架構 (TCF) 的 CMP」。為了符合 Google AdSense 規定的隱私權透明揭示原則,增加 「隱私權政策」聲明頁。頁面連結固定可見本站最下方頁腳處。

抱怨一點,Google 怎麼不直接提供隱私權政策的定型化範本。一般人哪知道該寫什麼內容。

網頁UI元件 - LimitedCheckbox,複選但有限項目的表單元件

當網頁表單需要提供使用者可複選的選項時,我們會用 Select (配上 multiple) 或 Checkbox 元件。 但若想進一步限制可勾選的項目數量,例如五項中最多選三項又或是最少選兩項,則目前的內建行為做不到。 我們要自己寫程式控制。

我根據我碰到的需求情境,設計了一個允許使用者複選但有限項目的表單元件。 因為這個元件是基於 Checkbox ,所以取名 LimitedCheckbox

我不用 Select 設計這個複選元件的原因,在於 Select 需要配合鍵盤按住 ctrl 或 shift 才可複選。 但現在很多人不知道這種鍵盤搭配滑鼠的操作技巧。隨著成長於手機世代的使用者愈來愈多,不知道的人會更多。 而 Checkbox 的操作方式則符合現代使用者的「日常經驗」,所以選它。

網頁UI元件 - 如何使用新式UI Dialog 和 Modal

Dialog 是 WHATWG 規範的 HTML 對話框元件。只要各家瀏覽器按照規範內容實作,就可以保證在不同瀏覽器與前端工具之間仍有相同的行為。 按 Mozilla MDN 文件所述,在 2022 年 3 月之後的瀏覽器皆已實作此元件。 在此之前,這類 UI 元件是由前端工具 - 如 bootstrap - 利用 CSS 和 JavaScript 自行設計。但不同前端工具定義的對話框行為並不相同。

注意,本文使用「對話框」一詞時,是一般概念。使用 Dialog 一詞時,專指 HTML 規範的對話框元件。

專案開發者手上的舊專案仍可繼續使用前端工具自定的對話框元件。 但新建專案,則建議使用 Dialog 元件。因為它有標準化的好處。 A 前端工具的對話框元件和 B 前端工具的對話框元件一定不同,如果你們中途變更前端工具,那就要修改對話框元件的程式碼。 而 Dialog 不與前端工具綁定,不受前端工具更迭影響。

網頁UI元件 - NumberInputElement,自訂增減值按鈕,以及用滑鼠滾輪修改數字

當設計師碰到限定輸入數值的輸入欄位時,可以用 NumberInputElement 網頁 UI 元件讓輸入框呈現更美觀的增加數值按鈕與減少數值按鈕。這是目前流行的數值輸入形式。

範例圖

NumberInputElement 元件具備以下特性:

  1. 只綁定型態為 numberinput 控制項 (input type=”number”)。
  2. 加入使用滑鼠滾輪改變數值的行為。上滾增值,下滾減值。
  3. 擴充 label 控制項的行為,使其具備對關聯控制項的增值行為或減值行為。 使用 type 屬性定義點擊 label 時的行為, inc 表示增值,dec 表示減值。
  4. 若不想用 label 改變 input 控制項的值 ,也可自行定義控制項的選擇器。 例如用 button 控制項處理增值或減值。
  5. 增值與減值行為都會參考 input 控制項的 max, min, step 三項標準屬性。

這個元件不會主動在 input 控制項旁邊增加控制按鈕,而是交給設計師決定。 如果設計師沒有放上代表增值或減值的按鈕/控制項,將只有滑鼠滾輪的擴充行為生效。

NumberInputElement 儲放在我的 non-jquery-ui 源碼庫: 「取得 NumberInputElement」。

PHP框架 - CommonGateway - 用 URL 重寫規則隱藏 CGF

Common Gateway Framework (CGF) 設計的所有服務 (RESTful API 或網頁) 都是透過主程式 index.php 轉發使用者的請求給控制項。 因此正常的 URL 總是會包含 index.php。

但有些客戶並不希望在 URL 中看到 index.php 這個字眼。 他們可能想要改善 SEO 的搜尋結果,又或是不想暴露低層的運作軟體。 我們可以利用 URL 改寫規則實現此目的。

有些功能龐大的框架會內建一套 URL 規則,例如 Laravel。 這類框架請照它們的規則來做。

PostgreSQL 操作筆記,使用 pg_basebackup 的備份檔案快速還原資料庫系統

pg_basebackup 是 PostgreSQL 提供的常規備份工具。

pg_basebackup 用於對正在執行的 PostgreSQL 資料庫叢集進行基礎備份。採取這些措施不會影響資料庫的其他用戶端,並且可以用於時間點隨選還原,也可以用於日誌傳送或串流複寫備用伺服器的起點。

pg_basebackup 製作資料庫叢集檔案的二進位副本,同時確保系統自動進入和退出備份模式。只能對整個資料庫叢集進行備份;無法備份單個資料庫或資料庫物件。

pg_basebackup - PostgreSQL 使用手冊

雖然使用手冊中說明了 pg_basebackup 的備份用法,但卻沒有具體說明如何還原。 我查到的網路資料,按照文中的指令實際操作後並不能復原。可說那些已經是過期文件,大約僅適用於 PostgreSQL 10 版之前。 本文說明的操作內容,則在 PostgreSQL 13 版及更新版本中實際操作過。

CloneZilla 再生龍客製化,還原後自動擴大指定分割區的容量

「CloneZilla 再生龍」有個功能叫「recovery-iso-zip 產生回復專用的再生龍 」。它可以將磁碟印象檔打包成一份還原光碟或 USB 碟。 用這份還原光碟或 USB 碟開機後,就會自動進行磁碟還原工作。使用者不需要搞懂什麼是印象檔或磁碟代號。

這個自動化功能很方便,但還可以更聰明。本文將說明如何客製一份 CloneZilla 再生龍還原光碟。客製化項目是將磁碟印象檔還原到更大容量的磁碟後,只擴大指定分割區的容量。

分頁瀏覽
Programming
電腦技術
經濟學/奧地利經濟學派
閱讀隨筆
休閒生活
快報記事
留言@GitHub