linux上的網芳:samba指令記錄
這篇沒時間…從頭玩、介紹起…(連結)
純粹記錄常用到的指令..
因為常常需要在windows與linux之間傳檔案,要嘛就要架個ftp
為何不能透過網芳直接共用檔案呢?要靠Samba啦啦啦啦啦
安裝samba:
sudo apt-get install samba
編輯samba檔案:
nano /etc/samba/smb.conf
在檔案最後面加入這一段落
重啟samba服務
sudo service smbd restart
see it!
這篇沒時間…從頭玩、介紹起…(連結)
純粹記錄常用到的指令..
因為常常需要在windows與linux之間傳檔案,要嘛就要架個ftp
為何不能透過網芳直接共用檔案呢?要靠Samba啦啦啦啦啦
安裝samba:
sudo apt-get install samba
編輯samba檔案:
nano /etc/samba/smb.conf
在檔案最後面加入這一段落
重啟samba服務
sudo service smbd restart
see it!
Python的知名Web框架有Django,Flask(Mirco Web Framework) ,應該還有一脫拉庫…今天我要試作的是來自於Facebook的開源Web框架.. Tornado <–官網連結
[原文擷自Effective Python中文版]結合自己的實作與理解
對於擁有越來越多CPU核心的現代電腦而言,我們可以合理的假設,改善程式碼效能其中一個解決方案就是平行處理(Parallelism)
然而,Python的GIL讓執行緒無法達到真正的平行處理,所以這個選項出局了。另一個常見的建議是將程式碼中效能最關鍵的地方以C語言改寫為一個擴充功能模組(extension module)
C讓我們更靠近底層機器,執行的比Python還要快,消除了平行處理的必要。 …
PEP 8又稱為Python Enhancement Proposal #8是python程式碼編寫格式的風格指南。
當然,我們可以用任何想要的方式去撰寫python程式碼,只要語法正確就行了
然而使用一致的Style好處,就是讓我們的程式碼更具備可讀性、更易親近,在一個社群或團隊中,能促使專案協作的更順利。
如主題,記錄可用的Docker-Compose檔案,預設yml檔名必須是docker-compose
mkdir mesos
cd mesos
sudo nano docker-compose.yml
輸入以下內容
sudo docker-compose up -d

今天來整理一下,上上週試做grpc的筆記,其實grpc官網對各語言的支持範例都寫的很完整,實際操作下來,其實也覺得挺友善方便的(連C#也都有):http://www.grpc.io/
原理在這,有興趣者可以看看

其應用場景據官網呈現,看起來主要是能讓你透過protocol-buff的機制,透過結合http協定,達成server-client之間的跨平台(多語言之間)的訊息傳輸,強調高效能,好整合
今天來試做一般會做成restful的api改成grpc的版本吧
我們假設資料交換的場景如下:
已經有一個現成的restful的webapi,透過統一的Url,可透過post傳入參數為behavior, text_data, binary_data
http://localhost:40404/data/entry
behavior=functionX&text_data={json_data}&binary_data={binary_data}
原始的service主要透過behavior來判斷要進行何種商業邏輯
走grpc要先定義介面(protos),再進行code gen
編輯你的grpc protos
我們定義了一個Entry與Query兩個method,提供呼叫
Entry提供資料新增與更新,參數包含了behavior, text_data,binary_data, version,這邊version先完全不管他,僅未來提供版本機制
Query提供資料查詢取得,主要差異在多一個entity_from與entiry_uuid,提供查詢的唯一識別值
定義完protos,就可以呼叫code generate tool,直接cd到protos的目錄後,輸入以下指令
你的python 應用程式路徑\models\protos>
若編譯失敗,會顯示如下圖錯誤訊息。

調整後,重新建置就會產生2個檔案:datatransfer_pb2.py與datatransfer_pb2_grpc.py

datatransfer_pb2主要是定義物件,擷錄如下:
datatransfer_pb2_grpc主要是定義行為,擷錄如下:
基本上,grpc的code gen,是可以幫我們產生許多基礎的介面類別與框架,實作面還是要我們來介入對接,預設上的行為,在code gen的結果都是raise notimplemented error,所以一定要來這邊繼承覆寫掉
覆寫的code如下,我們可自訂對接的內部服務(這邊為了演示整合段,省略對接服務code)
依照官網的example code,我們知道可以透過以下 程式起一個grpc的server,監聽固定的port,同時掛載上去我們剛剛覆寫的類別,命名為grpc_server.py檔案
跑起來看來沒有exception,那來試著呼叫看看吧
先建立grpc_client.py的程式碼
接著對localhost:40404進行測試吧,命名為grpc_client.py檔案
跑起來以後,我設定迴圈是1000次,確實有進到我們的grpc_server的程式去,這代表著grpc這條路已經通了
前略…CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior990, Payload:OK, behavior=behavior990
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior991, Payload:OK, behavior=behavior991
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior992, Payload:OK, behavior=behavior992
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior993, Payload:OK, behavior=behavior993
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior994, Payload:OK, behavior=behavior994
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior995, Payload:OK, behavior=behavior995
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior996, Payload:OK, behavior=behavior996
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior997, Payload:OK, behavior=behavior997
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior998, Payload:OK, behavior=behavior998
CollectionDataStub client received: IsSuccess:True, Message:OK, behavior=behavior999, Payload:OK, behavior=behavior999
grpc_makeRequest spend 4.50599217414856 seconds
不過實際應用到生產環境後的效能如何?相比於restful,資料量大筆數多以及binary型別的資料時效能是否更佳?可否正常的傳輸?會不會有blocking的問題呢?就留待下次分曉吧
基本上,copy自連結,純粹記錄指令,因為各家linux的預設程式安裝器不盡相同,這邊記錄centos版本:
$ sudo yum remove docker docker-common container-selinux docker-selinux docker-engine docker-engine-selinux
yum-utils, yum-config-manager以及devicemapper所需要的storage driver:device-mapper-persistent-data and lvm2
extras CentOS repository. 確保能存取到docker-c所需要的container-selinux 套件--disable 標籤,若要重新啟用,就使用enable標籤,以關閉為例:
安裝最新版本或是安裝特定版本的docker
$ sudo yum install docker-ce
or
$ sudo yum install docker-ce-<VERSION>
Warning: If you have multiple Docker repositories enabled, installing or updating without specifying a version in the yum install or yum update command will always install the highest possible version, which may not be appropriate for your stability needs.
/etc/docker/daemon.json. 好像是要配置存儲相關的設定,正式環境請見:連結{