2017年5月16日 星期二

正式成為 Debian Developer

我的個人資料在 https://nm.debian.org/public/person/fourdollars 可以找到。

雖然說資格在 2017-05-07 就拿到了,可是相關帳號權限今天才開好,而且還有不少要花時間去瞭解設定的東西。Orz

特別感謝 czchen 一直在 TOSSUG 的聚會上 push 我去申請,不然我都是懶懶地慢慢摸。

2017年5月15日 星期一

2017 在 Ubuntu 16.04 上面報稅

沒有最爛只有更爛的報稅系統,Java 連官方都已經不支援使用 Java Applet 建議改用 Java Web Start 了,但是臺灣政府配合的廠商還是在使用過時的技術給 Mac & Linux 系統的報稅者,主管機關也是一直瀆職。

目前 Ubuntu 上的 Firefox 53.0.2 已經不支援 Java Applet 了,所以想要報稅只能安裝舊版本的 Firefox 來避開問題。

首先確認 Firefox 已經都關閉,然後將 ~/.mozilla 換個名稱或是備份起來,以防意外的發生。

$ mv ~/.mozilla ~/.mozilla.bak

接下來要安裝舊版本的 Firefox

$ apt policy firefox
firefox:
  已安裝:53.0.2+build1-0ubuntu0.16.04.2
  候選: 53.0.2+build1-0ubuntu0.16.04.2
  版本列表:
 *** 53.0.2+build1-0ubuntu0.16.04.2 500
        500 http://tw.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        500 http://tw.archive.ubuntu.com/ubuntu xenial-security/main amd64 Packages
        100 /var/lib/dpkg/status
     45.0.2+build1-0ubuntu1 500
        500 http://tw.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
$ sudo apt install firefox=45.0.2+build1-0ubuntu1 firefox-locale-zh-hant=45.0.2+build1-0ubuntu1

然後就是依照先前寫過的「在 Ubuntu 16.04 上面使用自然人憑證報稅」來操作,就可以順利報稅了。

2017年1月6日 星期五

使用 zenity 進度條的小眉角

zenity 是一個小程式用來顯示簡單的 GTK+ 對話框,其中也有進度條的選項。

$ zenity --help-progress
用法:
  zenity [選項…]

進度列選項
  --progress                              顯示進度指示窗
  --text=文字                             指定對話方塊中的文字
  --percentage=百分比                     指定開始時的百份比數值
  --pulsate                               令進度列內的方塊來回移動
  --auto-close                            當進度達到 100% 時關閉對話方塊
  --auto-kill                             若按下取消按鈕則中止父程序
  --no-cancel                             隱藏取消按鈕
  --time-remaining                        估計當進度到達 100% 的時間

使用上可將其它程式的標準輸入當成輸入,例如:

$ for i in {0..100..20}; do echo $i; sleep 1; done | \
  zenity --progress

如果想讓進度達到百分之百時自動結束可以加上 --auto-close

$ for i in {0..100..20}; do echo $i; sleep 1; done | \
  zenity --progress --auto-close
或是加上 --no-cancel 讓確定跟取消的按鈕都不見。
$ for i in {0..100..20}; do echo $i; sleep 1; done | \
  zenity --progress --auto-close --no-cancel

再加上 --time-remaining 剩餘時間的估計。

$ for i in {0..100..20}; do echo $i; sleep 1; done | \
  zenity --progress --auto-close --no-cancel --time-remaining

當然還可以使用其它元件都有的 --title 跟 --text 來客製對話框的訊息。

$ for i in {0..100..20}; do echo $i; sleep 1; done | \
  zenity --progress --auto-close --no-cancel --time-remaining --title "新建築正在倒塌中" --text "貓在鋼琴上昏倒了"

另外就是 --text 有支援一些簡單的 HTML 標籤,所以可以有一些變化。

$ for i in {0..100..20}; do echo $i; sleep 1; done | \
  zenity --progress --auto-close --no-cancel --time-remaining --title "新建築正在倒塌中" --text "<b>貓</b>在<u>鋼琴</u>上<i>昏倒</i>了\n謠言真可怕"

最後就是要小心其它程式所產生的標準輸出,像是 apt-get upgrade --yes 的輸出有時候會有數字開頭的訊息,這樣的訊息在使用 zenity --progress --auto-close 時都會導致對話框突然結束,任何超過 100 的數字都會結束程式。