Other articles


  1. 「臺灣學術網路網路語音交換平臺」憑證錯誤的問題

    臺灣學術網路網路語音交換平臺 是一個提供 ZOOM 服務的平臺。用 eduroam 帳號登入並登記,就可以三人以上使用 ZOOM 超過 40 分鐘。LAB 遠端 meeting 滿常用這個平台。

    前幾週這個平臺的入口網站憑證過期了。留言反應後他們很快就換上新的憑證。但新的憑證有個問題:缺乏 intermediate CA 的憑證,導致 Firefox 無法連線。我再次留言反應,得到的回覆是他們用 Firefox、Chrome 等等各大瀏覽器都能連線,請我確認我的 Firefox 是否有問題。的確,新安裝的 Chrome,也能正確處理缺乏 intermediate CA 的問題,那為何 Firefox 不行呢?

    查了一下,有個功能叫做 AIA fetching ,也有人叫他 AIA …

    read more
  2. GnuTLS無法連上部分台灣網站的問題

    TL;DR - 請看最後一段的workaround。


    今天台大計中的SSLVPN client pulse-secure升級到9.0r2.0了,我更新完之後測了一下,發現連登入的頁面都連不上

    "Unacceptable TLS certificate"

    於是開始了一番debug...

    由於這個錯誤訊息在pulse-secure的檔案裡沒有,因此懷疑是WebKitGTK的問題。用ceiba-dl測了一下,果然是這樣。

    把source code們拿出來探究一番,從WebKitGTK,libsoup,glib-networking,最後到GnuTLS和p11-kit...

    經過追查,確認是當年TWCA提交給Mozilla的證書有問題,而GnuTLS檢查過於嚴格,才導致連線失敗。

    (詳細技術內容可參考我回報給GnuTLS的issue)

    這次感想有兩點:

    1. 第一次看到一個certificate chain裡的intermediate CA同時也是個root CA的,腦筋有點轉不太過來
    2. 台灣廠商不EY(?)

    Workaround很簡單,把TWCA Global Root CA從mozilla.trust …

    read more
  3. 犀利仁師觀後雜感

    前陣子整理我的歌曲收藏。其中一首「不能說出口的諾言」沒什麼印象是從那邊聽到的。一查之下是2014年的電視劇犀利仁師。

    這幾天找了些時間在YouTube把犀利仁師44集都看完了。裡面我印象最深刻的角色是宋文文,最讓我牽腸掛肚的也是宋文文和范大同一波三折的愛情。這應該是我看過這麼多電視劇以來,唯一對配角的印象比主角還深刻的。

    范大同一開始還以為自己有斷袖之癖,後來發現真相才釋懷。這讓我想到花千骨小說裡的軒轅朗,和女扮男裝的花千骨也有類似情節。不過後者不是主線劇情,作者沒有多加著墨,我就沒有特別感觸了。

    這齣戲有兩個地方讓我哭出來。一個是演完梁祝的時候。戲本身還好,但是看到大家都在哭就很想哭。第二個是柳傲天被打80大板的時候。聽說4 50下就被打死的不少,打80大板實在太慘了...

    有個小點想吐槽。宋文文歷經杖刑,恢復女子之身後,穿的是和慕容月一樣風格的大家閨秀,讓我感覺很違和。依宋文文的性格,感覺路先生那種路線的服裝會比較適合點。

    而看完一長串的電視劇,都會有的後遺症這次也沒少。這幾天看到鬼鬼的照片腦海理都會浮現宋文文的男裝形象。在想事情的時候,「不行」也會變成帶尾音的北京腔XD

    read more
  4. 解決macOS分享的Wi-Fi使Line Points無法使用的問題

    Line Points的頁面用Linux hostapd分享出來的Wi-Fi可以正常運作,然而用macOS的網路分享功能無法瀏覽。這個問題困擾了我好久。之前要開Line Points都是先切換成4G,等到要下載App或看影片再換回Wi-Fi。

    某天在PTT上看到有人Wi-Fi環境下用Line無法上傳圖片。鄉民建議改MTU。我參考這篇找出最佳MTU值,套用上去之後,macOS分享的Wi-Fi也可以正常使用Line Points了。解決了一個延宕多時的問題,何其暢快!

    PS. 何其XX是港劇公主嫁到中男主角金多祿的口頭禪之一。

    read more
  5. macOS上df無法正確顯示中文

    最近心血來潮,把工作環境設定為中文。在Linux下是開一個檔案~/.config/locale.conf,寫入LANG=zh_TW.UTF-8。macOS下,iTerm2會自動設定LANGLC_CTYPE這兩個環境變數。

    第一個出現問題的是zsh下,ssh的hostname自動完成。按下tab後,游標會自動往前一格。目前還沒查出問題來。

    第二個問題是macOS下的df中文顯示錯亂。由於GNU coreutils整體上比mac內建的指令好用,因此我長久以來都是用MacPorts安裝的coreutils。

    今天環境改成中文時,df出現怪異的輸出:

    �?�?系統 容�?? 已�?� �?��?� 已�?�% �??�?�?
    /dev/disk1s1    234G  151G    81G    65% /
    /dev/disk1s4    234G  2.1G    81G     3% /private/var/vm
    

    這串文字丟進python encode後的結果是 …

    read more
  6. 網站搬家

    今天收到Let's Encrypt的通知信,說chyen.cc和*.chyen.cc的SSL憑證20天後過期。我這個網域名稱是在Namesilo買的。由於Let's Encrypt的wildcard certificate需要用DNS認證,然而certbot還不支援Namesilo,所以我上次是手動把TXT紀錄一個一個(註:每個domain name會對應一個DNS challenge)填上去。這次決定把DNS改由CloudFlare代管,用certbot的dns-cloudflare外掛直接取得新的SSL憑證。

    會選CloudFlare一個原因是我有考慮未來我的Arch Linux個人repo可能會需要開CDN,先把DNS搬過去之後就省的再搬。

    CloudFlare的教學我是參考香腸大的文章,基本上設定滿簡單易懂的,新增DNS record後,propagate的時間也很短,大約幾秒到幾十秒而已,比Namesilo弄每個record都讓我等了好幾分鐘好多了。一個小小的缺點是,CloudFlare設定兩階段驗證只給QR code,不提供直接給TOTP secret的選項。為了把TOTP存進KeePassXC資料庫中,只好用zbar把QR code還原回TOTP URI。

    接著用certbot請求一個新的SSL憑證。第一次遇到" The currently selected ACME …

    read more
  7. 在Firefox 59上使用郵局的WebATM


    1. 安裝郵局提供給Firefox/Chrome/Edge用的元件
    2. 啟動元件
    3. 匯入根憑證cacert.pem

    進階玩法:VirtualBox NAT port forwarding

    小小抱怨:WebATM元件一開機就會啟動,也不能取消,微不便

    read more
  8. 解決scrcpy crash的問題

    之前聽說scrcpy可以把Android的螢幕同步到電腦上。第一次裝沒跑成功,crash了。

    經過一番測試,發現似乎SDL(scrcpy用的GUI library)會嘗試載入ibus,而強制指定export SDL_IM_MODULE=fcitx後可以正常執行scrcpy。正當準備提bug時,Arch Linux的sdl2來了一份更新,此後不需要SDL_IM_MODULE也不會crash了。

    不知是否相關?聊表紀錄。

    read more
  9. Firefox Sync無法同步的問題

    TL;DR security.nocertdb設定為true會讓Firefox Sync無法運作,改回false即可


    最近發現我的Firefox Sync無法正常運作,在一台電腦上新加的addon沒有同步到其他電腦上。

    about:sync-log中的紀錄檔有以下錯誤訊息:

    1520939110858   Sync.Service    INFO    User logged in successfully - verifying login.
    1520939110862   Sync.BrowserIDManager   DEBUG   unlockAndVerifyAuthState: user declined to unlock master-password
    1520939110862   Sync.Status DEBUG   Status.login: success.login => service.master_password_locked
    1520939110862   Sync.Status DEBUG   Status.service: success.status_ok => error …
    read more
  10. 解決Arch Linux下emoji的顯示

    KeePassXC在entry view裡加了不少欄位,其中一個是paperclip (📎, U+1F4CE)。在macOS正常,但在Arch Linux無法正常顯示,只有一個方框。裝了noto-fonts-emoji之後就正常了。

    根據Arch Linux Wiki的說明,fontconfig會自動選一個有emoji的字型,所以理論上系統只要裝一個就好。有看到一個比較花俏的emoji字型,改天有空再來玩玩。

    裝了noto-fonts-emoji之後,xfwm4也可以正常顯示emoji了。現在剩下的問題就是QTerminal/Konsole無法處理UCS-4...

    read more
  11. AUR cleanup

    今天把yan12125/aur裡已經disowned的package都刪掉了。

    yan12125/aur@47252d3d8020c1011068587355270d9ae62b9db5

    有種斷捨離的感覺...

    有些曾經是我追尋的目標,有則完全想不起來當初是用來做什麼的。無論如何,過去 的,總是該過去了。

    一些印象:

    • boringssl-aur:在搞aur自動上傳的時候加的。pygit2 -> libgit -> libssh2
    • firefox-adblock-plus-hg:當初好像adblock plus有一些bug,只有在hg上的版本是正常運作的。現在我跳槽到ublock origin,而Firefox預設也不能安裝沒有數位簽章的外掛了。
    • flashplugin-beta:看到Phoronix上Adobe Flash要重新支援Linux的新聞。有些網站在舊的Flash (11.x)上不執行,就去打包這個。在這之前,用PPAPI轉NPAPI的外掛用了一段時間,常常會有不穩定的情況。
    • gcc46-multilib:印象中是舊版的是AOSP或Firefox OS用到的。
    • js45:很多project (e.g. libproxy)用了舊版的spidermonkey …
    read more
  12. 解決郵局webatm「請檢查晶片是否已依正確方向插入讀卡機」的問題

    郵局的webatm只要一台USB讀卡機和萬惡的IE,就可以在家裡轉帳、查交易紀錄等等,非常方便。

    之前我都是用VirtualBox開一個Win7的VM,再用USB轉接功能讓裡面的Win7可以使用讀卡機。在Linux host跟Mac host用過,都沒啥問題。

    然而,前幾天要轉帳的時候,照著往常的步驟,卻一直跳出「請檢查晶片是否已依正確方向插入讀卡機」的錯誤訊息。查了不少資料,試過不少方法:

    1. 將Certificate Propagation服務停用。仍舊出現錯誤
    2. 將Smart Card停用再啟用,還是無效
    3. 把卡片用力壓,沒用
    4. 用橡皮擦把晶片的地方擦一擦,沒用

    查了那麼多資料,我都覺得好像在到處亂找偏方XD

    後來想想,可能是VirtualBox的問題。找了一台有裝Windows的電腦,一插上去,還真的可以用。

    檢查了一下VirtualBox的設定,發現沒有裝VirtualBox Extension Pack。下載最新版的回來安裝,再把USB設定成USB 2.0就OK了。

    我以前以為Extension Pack是OSE …

    read more
  13. 安裝 Pelican

    來玩玩自己的部落格~把pelican裝起來,寫篇測試文章

    TODO:

    1. Deploy - 用git hook似乎是個選項
    2. Themes - http://www.pelicanthemes.com/上面滿多選擇的
    3. Git設定 - .gitignore, 放到Github等等
    4. 設定文章網址,讓他裡面有日期
    5. 字型 - 標題預設的中文字型頗怪

    可能會做的事:

    1. 留言系統 - farseerfc分享了一個相當有趣的點子:使用Github issues當作留言系統。不過我還是別用那麼geek的系統好了。

    UPDATE 2017/10/23:

    1. Deploy懶得研究那麼多了XD 直接在server上clone一份,Apache的設定檔指過去,搞定收工!
    2. 先放到我自己的gogs server,有空再來放github
    3. ARTICLE_URLPAGE_URL設定好了有日期的網址。官方教學*_SAVE_AS來達到沒有.html的效果。我個人是覺得直接用xxx …
    read more
  14. Mac shortcuts are broken with UTF-8

    I was trying to enable copying and pasting between Linux and macOS via SSH. I followed several guides (1 2 3) and set up a local server to handle exchanged clipboard data. OK, things look good.

    However, soon I found that pasting CJK brings question marks. A tip suggests setting …

    read more
  15. Network is down after logged out

    Recently I got a mysterious bug. I have a server, and whenever I logouts all sessions, its network is broken. I can neither ping it nor ssh into it.

    The culprit is NetworkManager. "All users may connect to this network" is not checked, so only my account can access the …

    read more
  16. Select printer with lpr

    On Arch Linux, I use the following command to print documents:

    PRINTER="the_printer_name" lpr ~/my_doc.pdf
    

    It was always working yet broken with the latest version. A mysterious error appears:

    $ PRINTER="the_printer_name" lpr ~/my_doc.pdf
    lpr: Error - scheduler not responding.
    

    By tracing the codes, seems $PRINTER does not work. Now …

    read more
  17. youtube-dl on Android

    最近在研究如何把youtube-dl跑在Android上(youtube-dl#967)。方法大致如下:

    1. 找一個可以跑的Python interpreter
    2. youtube-dl clone下來或是從yt-dl.org下載最新的tarball
    3. 用adb shell或terminal emulater執行youtube-dl

    針對第一步,Google Play上面很多個,例如Kivy LauncherQPython3等等。我玩過之後都不太滿意。因為這些App要嘛我找不到一個單獨的python執行檔,要嘛是在app自己的資料夾下,shell讀不到。於是我決定用自己compile的版本。在網路上找"Python NDK",找到了python3-android這個project。照著說明下去跑,沒有compile error,看起來很棒。放到手機上,設定好LD_LIBRARY_PATH就可以用,也不錯,不過一跑youtube-dl就出錯:

    root@GT-N7000:/data/local/tmp # python3 …
    read more
  18. 助教見聞錄 - 沒有回傳值的non-void函數

    昨天有位小大一來問問題,他寫的code在local可以跑,但是上傳到Judgegirl都是wrong answer。

    我看了一下題目,是要用遞迴計算 \(1^2 + 2^2 + \ldots + n^2\) 。他的code大概長這樣:

    #include <stdio.h>
    int squares(int n)
    {
        int t = 0;
        if (n == 1)
        {
            t += 1;
            return t;
        }
        else
        {
            t += n * n + squares (n - 1);
            return;
        }
    }
    
    int main()
    {
        printf("%d\n", squares (5));
        return 0;
    }
    

    用gcc編譯:gcc …

    read more
  19. Installing Octopress

    弄個部落格放一些技術文章是我一直想做的事。之前試過幾個平台,例如PTT,Wordpress等等,都覺得差強人意。主要是貼code很不方便。有一次看到有人部落格用Octopress架站,好奇之下查了一些資料,發現他可以用Markdown寫文章,就下定決心要來試試看。

    我測試的環境是家裡電腦,系統是Arch Linux。折騰了兩三個小時,終於把Octopress裝起來了。過程中最大的問題是Octopress 3.x之後用的指令都跟2.x完全不同,最後用的指令如下:

    $ git init
    $ octopress new .
    $ jekyll build
    $ octopress deploy init rsync
    $ vim _deploy.yml
    $ octopress deploy
    

    其中關鍵的地方是第二行octopress new . 如果照著官方教學octopress init .,出來的HTML就沒有style。用以上步驟建出來的雖然不如官網的那麼漂亮,但也不錯看了。

    另外一個麻煩的地方是_deploy …

    read more
  20. Welcome to Jekyll!

    You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site …

    read more
  21. OpenCV: strange return value of cvWaitKey()

    In OpenCV, cvWaitKey() might be one of most frequently used functions in interactive applications. For example (code in C++):

    while(true)
    {
        doSomething();
    
        if(cvWaitKey() == 27) // 27 is the key code of Escape
        {
            break;
        }
    }
    

    This works in Windows, but not work in Ubuntu. Both C++ version and python version can't catch …

    read more
  22. SFTP initial path

    Google "sftp default path",大多數是用chroot的方式。但我的需求是一開始先切換到某個home以外的目錄,而不是將user鎖在某個目錄底下。轉念一想,sftp-server也只是一個用user的身份執行的process,其實只要從.bashrc或.profile之類的檔案下手即可。

    首先看看Ubuntu的default .bashrc的前幾行(在/etc/skel/.bashrc):

    # ~/.bashrc: executed by bash(1) for non-login shells.
    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
    # for examples
    
    # If not running interactively, don't do anything
    [ -z "$PS1" ] && return …
    read more
  23. Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

    It's the second time I install WordPress on my Apache server. The first time is not long ago, but everything seems easier then ever! WordPress is primarily written in PHP, so a little knowledge for …

    read more

social