跳到主要內容

Mac 下載 Google Drive

brew install gdrive

gdrive download --recursive xxxxxxxxxUIgFWXA1B2FPQfV5S8H
 
 
 Try It

留言

這個網誌中的熱門文章

一個上帝、狼、獅子和羊的故事

上帝把兩群羊放在草原上,一群在南,一群在北。 上帝還給羊群找了兩種天敵,一種是獅子,一種是狼。 上帝對羊群說:「如果你們要狼,就給一隻,任由牠隨意地咬你們,但狼比獅子瘦弱且食量少。 如果你們要獅子,就給兩頭,但你們可以在兩頭獅子中任選一頭,而且還可以隨時更換。」 這道即將考驗你的問題,就是「如果你也在羊群中,你是選狼呢?還是選獅子?」 依照你的直覺,應該很容易選擇吧?很好!現在起,務必牢牢地記住你的選擇,然後往下接著看。 南邊那群羊想了想,獅子比狼兇猛得多,還是要狼吧!於是,牠們就要了一隻狼。 北邊那群羊則想,獅子雖然比狼兇猛得多,但我們有選擇權,還是要獅子吧!於是,牠們就要了兩頭獅子。 那隻進了南邊羊群的狼,即刻開始吃羊。狼身體小,食量也小,一隻羊夠牠吃幾天了, 如此羊群幾天才被追殺一次。北邊那群羊挑選了一頭獅子,另一頭則留在上帝那裡。 而進入北邊羊群後的獅子,不但比狼兇猛,而且食量驚人,才開始吃羊, 就每天至少吃一隻羊,所以羊群天天都驚恐萬狀地被追殺。北邊的羊群趕緊請上帝換一頭獅子。 不料,上帝保管的那頭獅子太久沒吃,正飢餓難耐,牠撲進羊群,比前面那頭獅子咬得更瘋狂。 羊群一天到晚只是逃命,連草都快吃不成了。 南邊的羊群慶幸自己選對了天敵,又嘲笑北邊的羊群沒有眼光。 北邊的羊群非常後悔,向上帝大倒苦水,要求更換天敵,改要一隻狼。 上帝說:「天敵一旦確定,就不能更改,必須世代相隨。請認清現實,你們唯一的權利,是在兩頭獅子中做選擇。」 北邊的羊群只好把兩頭獅子不斷更換。 可是兩頭獅子同樣凶殘,換哪一頭都讓北邊的羊群比南邊的羊群悲慘得多,牠們索性不換了, 讓一頭獅子吃得膘肥體壯,另一頭獅子則餓得精瘦。眼看那頭瘦獅子快要餓死了,羊群才請上帝換一頭。 這頭瘦獅子經過長時間的飢餓後,慢慢悟出了一個道理──自己雖然兇猛異常,一百隻羊都不是對手, 可是自己的命運卻操縱在羊群手裡,羊群隨時可以把自己送回上帝那裡,讓自己飽受飢餓的煎熬,甚至有可能餓死── 想通這個道理後,瘦獅子就對羊群特別客氣,只吃死羊和病羊,凡是健康的羊牠都不吃,令羊群喜出望外。 所以有幾隻小羊開心地提議:「乾脆固定只要瘦獅子,不要肥獅子。怎樣!?」 一隻老公羊馬上提醒:「別忘啦!瘦獅子是怕我們送牠回上帝那裡挨餓,才對我們這麼好。 萬一餓死了肥獅子,我們將...

透過 Docker 快速建立 openvpn 伺服器

此docker install安裝適用 ubuntu 16.04 18.04 如果已安裝docker-compose 那任何linux環境都可以使用 sudo apt update && sudo apt install -y curl vim curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo adduser   "$USER"   docker sudo reboot 然後再登入一次 接下來有安裝docker-compose 的機器都適用 nano docker-compose.yml OR vi docker-compose.yml -------請輸入以下內容 services:     openvpn:         container_name: openvpn         image: kylemanna/openvpn         volumes:         - ./data:/etc/openvpn         devices:         - /dev/net/tun         ports:         - '1194:1194/udp'         cap_add:         - NET_ADMIN         restart: always         sysctls:           net.ipv6.conf.all.disable_ipv6: 0       ...

Race condition 競爭危害

通常在課本裡常舉例存錢並匯款 帳戶裡有80元 如果我同時匯款20,存款20 會有什麼狀況呢 正常來說帳戶裡應該還是80元, 因為自然人無法同時存款及匯款。 你可以叫你的朋友幫忙,你去存款時,同分同秒同微秒看會不會發生什麼事 XD 而電腦是怎麼看待這件事的呢 如果在同一時間下 1我要匯款會先取讀我現在有多少錢,並扣款變60,再匯出。 2問題來了,我同時存款20,我應該要讀到60元才是正確的,但因為同時間做,所以電腦讀到了80元,再存20,即100元。 如果這世界都這樣,大家都變有錢人了。 如同小刀所說:你的錢就是我的錢,我的錢就是你的錢,發財啦! 這就是一個競時的問題 在微軟的網站上有提出11點競爭問題 http://support.microsoft.com/kb/317723/zh-tw 這裡我只提Database 我們可以使用select … for update的語法來保護自己的交易 START TRANSACTION; SELECT quantity FROM product WHERE product_id = 5 FOR UPDATE; UPDATE product SET quantity = quantity - 1 WHERE product_id = 5; COMMIT; 這裡舉的例子是,每當在交易時,會查尋數量,後再-1更新(實際上的語法會更多,例 大於零才扣庫存等…) 在MYSQL資料庫,只有Storage Engine 是 InnoDB 的情形下才有作用,且需要等查詢連線COMMIT後才可以做其他動作。 而 PostgreSQL 似乎其他連線還可以執行SELECT查詢。 以上是悲觀鎖定 以前做過樂觀鎖定,但現在CPU Thread 愈來愈多的情形下(不知道是不是這樣,但好像是),好像都無法太樂觀… 常觀測到的結果,都還剩一個品項結果還是多賣了一個。 我們預想的是 如果兩個人同時買一張票或一張票(房)且cpu還是會有處理上的差異(微秒之間) 正常來說 a買一張 b買一張 還剩一張 a先買 扣完 b查不到後,售完。 但往往是這樣 a先買 扣完 b還是查到一張,b再買,因為寫入剩於數質都是0 所以 ab 都買成了… 所以之後會...