All posts by Hiroshi Yui

我的復健路

四個多月前,我開始了待業、且經常跑醫院的日子。

復健項目一開始有熱敷、牽引治療、低週波電療,後來調整為熱敷、牽引治療、干擾波電療。

熱敷的作用是讓頸關節先熱開,避免接下來的牽引治療發生拉傷。低週波電療與干擾波電療的作用,復健師沒跟我說,我也不好從網上抄作用機制來貼。

每個項目表定 20 分鐘,所以一整個療程做下來就是基本一個小時。健保補助看診一次可以做六次復健。

每次做完復健,當下幾乎都感覺比較舒服,但是也常常隔了一天患部就又痠疼麻。

中間我曾經自費購買熱敷墊、瑜珈墊,希望在家也能多少做點「自」療。

後來綜合醫師與復健師的說法,我懷疑自己這樣反覆發作,其中一個因素是我的睡姿不良,側躺、俯臥壓迫到患部肌肉、筋骨,所以我又去買了「護腰墊」與「床頭靠墊」來矯正我的睡姿,回到對背部肌肉最無負擔的仰臥,目前看來改善不少,但是我不能確定是心理作用使然,還是物理機制確實如此,僅提供我自身經驗,非宣傳療效,請注意。

在這之前,我從不知道「能夠握緊拳頭出力」這樣尋常的動作,竟是如此難能可貴的事,那段只能撐半天敲鍵盤工作、接下來就呈現無法使力的報銷狀態的時光,連拿個碗都拿不穩,工作上也覺得拖累團隊步調,久而久之,會讓原本就很廢柴的自己覺得更加百無一用,心情受到很大的影響,惡性循環之下,整個人的身心都不好。

如今稍有改善之後,我學著要注意保持正確、避免不當壓迫的姿勢,還有透過醫療資訊的線索,在原本茫然不知從何改善的狀態下,漸漸能夠自主掌握些什麼,心理會踏實不少。不過還是要再強調,資訊的媒體識讀很重要,我一直很小心讓自己不成為那種「病急亂投醫、胡亂相信一些作者不知打哪來的醫療文章、被牽著鼻子走、買了一堆來路不明的藥物、器材」的人。

COSCUP 2018 「帶您讀源碼」議程軌熱烈徵稿中!

我一直很想在今年的 COSCUP  推動「帶您讀源碼」議程,起因是我某天在放空時,就這麼突然想到:

在 COSCUP 這個臺灣的 F/OSS 年度盛會當中,主角之一 “source code” 反而佔不到什麼版面?大家都在談 Open Source,但是好像沒什麼人在意那個 “Source”?

我覺得這個現象蠻奇妙的,而如果我們可以讓 source code 在 COSCUP 裡多一點份量,會產生什麼效應?我自己有一些預設的想像與期望,希望透過這樣的活動,可以鼓動更多人投入軟體開發(當然,如果是開發 F/OSS 那尤其是再好不過的了),或者再講淺白一點,撒下一顆顆「程式人」的育成種子。

由於一些陰錯陽差,這個構思差點泡湯。好在貼心的 BobChao 大人幫忙,送出了議程軌申請案,最後這個議程軌也成案了。

現在這軌議程開放徵稿了,非常需要您來分享圍繞著 source code 主題的各種有趣議題!

Minikube 0.26.1 開設 Kubernetes 1.10 cluster 遇到 “failure loading apiserver certificate: the certificate is not valid yet” 的 workaround

Minikube 0.26.1 開設 Kubernetes 1.10 cluster 遇到 failure loading apiserver certificate: the certificate is not valid yet

$ minikube start
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
E0424 09:10:22.557702 22820 start.go:276] Error starting cluster: kubeadm init error sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI running command: : running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
output: [init] Using Kubernetes version: v1.10.0
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks.
[certificates] Using the existing ca certificate and key.
[WARNING Swap]: running with swap on is not supported. Please disable swap
Flag --admission-control has been deprecated, Use --enable-admission-plugins or --disable-admission-plugins instead. Will be removed in a future version.
failure loading apiserver certificate: the certificate is not valid yet
: running command: sudo /usr/bin/kubeadm init --config /var/lib/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests --ignore-preflight-errors=DirAvailable--data --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml --ignore-preflight-errors=FileAvailable--etc-kubernetes-manifests-etcd.yaml --ignore-preflight-errors=Swap --ignore-preflight-errors=CRI
.: Process exited with status 1

目前試出來的 workaround 是指定 bootstrapper 為不知何時會棄用的 localkube(被 kubeadm 取代):minikube start --bootstrapper=localkube

把 Panasonic CQ-JB121AA 汽車音響改家用

從家人車子汰換下來的 Panasonic CQ-JB121AA 汽車音響主機,放在角落很久了,這次舊曆年節花了一點時間把它改成家用。

這台主機比較麻煩的地方,是汽車音響改裝店家當初拆卸時,手法有點暴力,把後方的接線都用剪的,於是剩下很短的導線可用。

準備材料:

  • 書架型喇叭。雖然這台主機可以接兩對喇叭(前+後),但是我沒打算搞這麼麻煩,就只拉出一對喇叭的線出來接。然後去找了一對便宜的喇叭來用。
  • 電子線,拉出連接喇叭的線來。
  • 熱縮管,做出比較美觀的絕緣。
  • 鱷魚夾,用來與上面的電子線接合,做出一個便利的介面來接喇叭。再強調一次,我並沒有打算把這組音響弄得多高端大器上檔次,一切以便利為優先,所以並沒有用「正規」的音響連接接頭。
  • 12V 10A 變壓器,安培數我是查網上資料說為了電路安定著想,最好是大於 8A,所以才選了這個規格。
  • 變壓器轉接線,接音響主機拉出一個電源介面,方便接變壓器。
  • 開關,模擬車鑰匙啟動電門的作用。
  • 天線,給收音機用。

各接點腳位定義,我是拆開主機,查看電路板上印刷的字樣才確定的,網上雖然有資料,但是畢竟不是出於官方,且 Panasonic 網站上也找不到相關手冊,所以我就只好拆開來看。

找到電源正、電源負、電門、前左正、前左負、前右正、前右負這幾個接點,把線接出來,就差不多了。

後續因為主機運作時仍有不小的發熱,所以在底部貼了腳墊,讓它騰空,能有空氣對流來散熱。大致上是這樣。

更新「Arch Linux 臺灣社群」網站的一些元件

昨天更新了「Arch Linux 臺灣社群」網站的一些元件:

  • Twitter Bootstrap 不再使用常常會炸到自己的 Git submodule 來引入,改從 CDN 直接拉。少了一個隱藏地雷,應該也會提升不少人在自己電腦裡 host 一份 copy、幫忙貢獻的意願(吧?)
  • Twitter Bootstrap 從 2.3.1 大升級(20180417 補註:我已經記不得當下是用 2.3.1 還是 3.0 了,總之很久沒升級就是了),直接跳到行文當下最新版 4.1.0。改動的地方雖然不能說不多,但是比起舊版的用法,我覺得新版比較有 sense 一點,像是那個 navbar 的「漢堡選單」圖示,舊版的實作方式我覺得實在很阿雜。
  • 捨棄 Compass,直接用 SCSS/Sass 寫 CSS3,不想管那些舊版瀏覽器相容的問題了,且 Jekyll 本身可以處理 SCSS/Sass,少了一個相依的元件,也更精簡了些。
  • 因為新版 Bootstrap 已經不搭 icon font 了,所以從 GLYPHICONS 改用 Font Awesome。