2018/09/18

C 語言 scanf() 在迴圈沒有停止的問題

程式大概是這樣:
scanf("%c", &input)
while (input == 'y') {
    // ....
    scanf("%c", input);
}

結果 while 裡面的 scanf() 沒有停。原因是輸入「y」並按下 enter 後,scanf 拿到的是「2\n」,所以 input 會是 2,但 \n 還在 input buffer 裡面,第二次 scanf 會以為使用者已經有輸入值 (空字串) 就繼續往下執行了。

要讓 scanf() 避開這個問題,只要在「%c」前面加上一個空白即可:
scanf(" %c", &input)

Ref:

2018/09/17

HiNet 宣佈年底關閉 Proxy 服務

看到 Hinet 宣佈 2018 年底中止 Proxy 服務,另外看到 gslin 的文章說「網站都走 HTTPS 的情況下,Proxy 服務能帶來的好處愈來愈少了」,當下想不出來為什麼。

查了一下資料恍然大悟。HTTPS 主要目的就是希望所有的網路資料傳輸不會被中間人 (MITM) 竊聽,當然這個和 proxy 的目的剛好互斥,proxy 的行為就是做中間人並協助將常用檔案儲存起來讓你下次使用時可以快速取得。所以走 HTTPS 的話資料是不會進 proxy 做快取的。

ref:

2018/09/12

三思,而後行

今天在「快樂、喜洋洋:高雄精神科診所」看到一篇文章「成人要如何診斷亞斯伯格症?」,裡面有提到幾句話,我覺得很重要:
....
請不要直接衝到精神科門診,跟醫師說我要診斷亞斯伯格症。就算簡單的看診後,醫師說你是或不是,這樣的診斷意義不大
....
廣泛閱讀,誠心誠意地跟你的伴侶、好友討論自己的亞斯特質(當然他們也得有些概念、也得多看點書),拋開成見地省思你的一生,找出自己的優點,但也要面對自己與其他人之間曾經發生的誤解。如此,你才能確定,亞斯特質是不是對你的人生帶來巨大的影響


年初得了流行性感冒,因為病症不明確所以需要卻診來對症下藥。當時透過關係得知高雄醫學大學附設醫院 (簡稱「高醫」) 有提供流感快速篩檢服務,因此至急診室掛號。記得當時的對話大致上是這樣子的:

「目前有針對流感的用藥,目前政府有提供『克流感』藥錠,要不要直接拿回去吃?」
「是否等快篩結果確定以後在決定是否要服藥?」
「我們有提供快篩服務,但正確率大約 60%。如果檢查結果為陰性,你確定就不吃藥繼續下去?」
「....」
「不如你之接拿克流感回去吃吧」

以上可以看出我:
  • 不了解流感服藥的差別
  • 不曉得流感快篩的用途
  • 還沒決定確診後要進行治療

以上是一個錯誤的示範,造成了醫療資源的浪費 (醫生的診療時間)。

避免浪費時間、資源 (不管是醫療資源,或是其他資源),同樣的方法也可以用在不同的情境底下。

「聽說你要換工作喔?」
「對啊,住台北的生活費太高了,有機會不如住家裡」
「你之前有提加薪嗎?」
「沒耶」
「那如果薪水多一倍,你會留下來嗎?」
「不會」
「為什麼?」
「就 .....」
「其實你在意的根本不是薪水嘛 ....」



總之,以後遇到問題時,要想想:
  • 目前遇到的問題,對我到底造成了什麼影響?是否一定需要解決?
  • 如何解決這個問題?
  • 解決問題消耗的資源是否比目前面對問題消耗掉的資源還要多?
  • 解決當下的問題後,是否會產生其他問題?
  • 在思考以上問題的時候,自己的意識是清醒的 XD

2018/09/11

Git 2.19 released

Git 2.19 釋出

新功能大致如下:

  • git range-diff
  • git grep 功能加強
  • branch 排序方式
  • 目錄重新命名偵測
  • .... 其他
詳細內容請參考:Highlights from Git 2.19

2018/09/10

該死的 Windows (抱怨文)

週五晚間收到網站離線的 alert,以為只是網路滿載暫時性的離線,沒注意到機器一直沒有回來。

剛剛要使用時才發現機器到現在還是異常,無法遠端,所有原本自己留的後門 (由外到內的管理通道) 全部陣亡,算是超大條的問題。

回到家直接操作實體機器,花了一段時間檢查以後,才發現 Wiindows 網路卡設定 (device) 被幹掉重新建立,所有設定都跑掉了。我完全沒印象假日二天有 Windows 警告硬體驅動程式錯誤、重新掃描的訊息,只有看到「Windows」需要重新啟動的視窗。

總之 .... 很不爽 ....