跳到主要內容

發表文章

目前顯示的是 2019的文章

[工具]tar壓縮解壓縮速覽

壓縮     .tar      tar cvf FileName.tar DirName     .gz     gzip FileName     .tar.gz     tar zcvf FileName.tar.gz DirName 解壓縮     .tar     tar xvf FileName.tar     .gz     gzip -d FileName.gz     .tar.gz     tar zxvf FileName.tar.gz

[工具]tmux的簡單運用

tmux on Ubuntu Install: sudo apt-get install tmux Usage: tmux (直接建立一個新session) 常用指令: C-b c  建立一個新視窗 C-b p  上一個視窗 C-b n  下一個視窗 C-b <number>  依照編號直接切換(編號顯示於狀態列) C表示control鍵 Session管理 detach 只需要  C-b d ,又或者  C-b D  可以選擇要從那個  session  離開。要注意的是這些  session  依然在背景執行。 要返回剛剛的  session ,第一步我們需要知道要重新連線那個  session 。 tmux ls 會列出 0 : 1 windows (created Mon Nov 27 17:18:34 2017) [80x25] 1 : 1 windows (created Mon Nov 27 17:18:59 2017) [176x23] 2 : 1 windows (created Mon Nov 27 17:20:10 2017) [80x23] 要進入哪個session就使用 tmux attach -t 0 重新命名session tmux rename-session -t 0 new_session_name 常用指令整理 # 新增 $ tmux # OR $ tmux new -s <your_session_name> # session 列表 $ tmux ls # 重新連線 session $ tmux a -t 0 # OR $ tmux a -t <session_name> # 刪除 session $ tmux kill-session -t 0 # OR $ tmux kill-session -t <session_name> # OR $ tmux kill-session -a # 全部 # 刪除 tmux server $ tmux kill-server # 重新命名 session

Shell Script中的特殊變數與user加入sudo、IO重導向

linux中shell變量$#,$@,$0,$1,$2的含義解釋:   變量說明:   $$   Shell本身的PID(ProcessID)   $!   Shell最後運行的後台Process的PID   $?   最後運行的命令的結束代碼(返回值)   $-   使用Set命令設定的Flag一覽   $*   所有參數列表。 如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。  $@   所有參數列表。 如"$@"用「"」括起來的情況、以"$1" "$2" … "$n"的形式輸出所有參數。  $#   添加到Shell的參數個數   $0   Shell本身的文件名   $1~$n   添加到Shell的各參數值。 $1是第1參數、$2是第2參數…。  可進一步參考 http://www.tldp.org/LDP/abs/abs-guide.pdf user加入sudo delete user: userdel USERNAME add user: adduser USERNAME mod user into sudo group: usermod -aG sudo USERNAME IO重導向(IO Redirection) 輸入重導向符號 < :重導向標準輸入 <<:一個字元的重導向 輸出重導向符號 >:將標準輸出導到檔案 >&:將stdout/stderr都導到檔案 >>:將標準輸出導到檔案後端 >>&:將標準輸出和標準錯誤輸出導到檔案後端 >!:將標準輸出導到檔案,只有在設定 $noclobber時可以重寫檔案 >>!:將標準輸出導到檔案後端,有設定$noclobber時可以重寫檔案 >&!:將標準輸出和標準錯誤輸出導到檔案,有設定$noclobber時可以重寫檔案 >>&!:將標準輸出和標準錯誤導到檔案,有設定$noclobber時可以重

[名詞辨異]Grid Computing / Cluster Computing

Cluster Computing(內容截自維基) 一組鬆散或緊密連接在一起工作的 電腦 。由於這些電腦協同工作,在許多方面它們可以被視為單個系統。與 網格電腦 不同,電腦叢集將每個 節點 設定為執行相同的任務, 由軟體控制和排程 。 大多數情況下,所有節點使用相同的硬體和相同的作業系統,儘管在某些設定中(例如使用 OSCAR ),可以在每台電腦或不同的硬體上使用不同的作業系統。 部署叢集通常是為了提高單台電腦的效能和可用性,而叢集也通常比速度或可用性相當的單台電腦的成本效益要高。 電腦叢集的出現是許多計算趨勢匯聚的結果,這些趨勢包括低成本微處理器、高速網路以及用於高效能 分散式計算 軟體的廣泛使用。 Grid Computing(內容截自維基) 利用大量異構電腦(通常為桌上型電腦)的未用資源(CPU周期和磁碟儲存),將其作為嵌入在分散式 電信 基礎設施中的一個虛擬的 電腦叢集 ,為解決大規模的計算問題提供一個模型。 Grid Computing目標在解決對於任何單一的超級電腦來說,仍然大得難以解決的問題,並同時保持解決多個較小的問題的靈活性。這樣,網格計算就提供了一個 多用戶 環境。它的第二個目標就是:更好的利用可用計算力,迎合大型的計算練習的斷斷續續的需求。 這隱含著使用安全的授權技術,以允許遠端 用戶 控制計算資源。 網格計算包括共用異構資源(基於不同的 平台 ,硬體/軟體體系結構,以及電腦語言),這些資源位於不同的地理位置,屬於一個使用公開標準的網路上的不同的管理域。簡而言之,它包括虛擬化計算資源。 兩者的不同 首先Grid Computing的電腦地點是分散各處的,而Cluster computing是集中在一個資料中心。兩者組成的電腦也有所差異,Cluster Computing的電腦硬體與作業系統大多是相同的(同質, Homogeneity ),而Grid Computing則是不同的電腦硬體、不同的作業系統,利用每個電腦的部分計算能力來偕同運算(異質, Heterogeneity )

[JDK]Oracle JAVA的商業授權問題

主要是從至這篇文章的分析而來 http://lab.howie.tw/2018/06/2019-oracle-java-will-charge-for-commercial-use.html 會被收錢的對象與用途會是(用到JRE) 使用Commercial feature功能的公司 Non-General Purpose Computing Usage Embedded use of Java SE(針對POS/網通) JAVA在通用計算(General Computing)/Server開發,目前還是免費的。 至於甚麼叫做General Computing,目前還有一些模糊的解釋空間。 另外 JAVA 8目前是不再免費維護狀態,要獲得新的JAVA8更新你必須要繳錢。 因此目前比較好的替代選擇是Open JDK.

[UML]學習筆記-活動圖型(Activity Diagrams)-11(全系列結束)

定義 活動圖型是用來顯示軟體系統中特定的活動情形,和其他圖型最大的差異,就是它專注在「活動」上面,而不會去理會物件、類別相關的問題。 因此,活動圖型只關心活動的開始、過程、與結束,使用一般流程圖的方式來繪製就可以了。 譬如一個偵測溫度到自動加溫的活動流程。 活動圖型的用途 針對循序圖型中比較複雜的訊息傳遞加以說明 顯示狀態圖裡面較複雜的狀態轉換事件 說明合作圖型裡面的訊息 圖型組成的元素 活動圖型由下列的基本元素組成。 狀態與活動(State and Activity) 轉換(Transition) 分支(Branch) 分歧與結合(Fork and Join) 水道(Swimlane) 狀態與活動 狀態元素其實和狀態圖型中的開始與結束狀態是相同的,而活動則是圓角矩形來表示。 上圖如果轉成程式碼會是下面的樣子 轉換 轉換主要是一個箭號,用來連結活動圖型中的狀態與活動。只有在分支出來的箭頭才會在上面加上說明或是條件。 分支 分支會根據判斷式而導向不同的活動,分支後的轉換就需要加上說明或是條件。 水道 活動圖型中,活動流程可能很單純在一個方法或類別中就完成了,但是也有可能是由不同的角色去一起完成流程。 下圖是一個聊天的程式。 圖中,以Mary發訊息給[Chat Server]的流程來說,就需要使用不同的「水道」來區分不同角色所負責的活動。 水道也可以使用行為者標記來表示角色,這樣可以讓活動圖型更加清楚。像下圖就是是客戶去購買產品的活動流程。裡面的角色就包含了[客戶]、[服務中心]、以及[訂單系統] 分歧與結合 以聊天程式的客戶端來說,其實有同時執行兩個執行緒,一個是sender,用來傳送訊息,一個是receiver,用來接收chat server回傳的訊息,因此可以使用Fork來顯示這種同時進行的活動 在圖中,分岐的表示是使用一條粗黑線來分成兩個執行緒所做的事情。 結合的部分,就是要把分歧的活動再次結合成一個活動的表示方式。 上圖的計算機就是一個結合的典型例子,它裏頭的活動運作的加減乘除活動之後,均會顯示在一個統一的活動(螢幕顯示)上。 程式碼的