2017年12月27日 星期三

Vim使用的設定檔vimrc的位置

安裝好vim以後,其設定檔叫做vimrc。要知道這個設定檔位置,執行:
  • vim --version
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRNTIME/defaults.vim"

這邊就可以看到預設的檔案叫defaults.vim,代表在前面的檔案都沒有時後,才會吃這個檔。所以就慢慢找這些檔案,確認哪個是真的在使用的。以上的做法也可以在開啟vim以後,連按兩下Esc然後輸入
  • :version
以上文件參考《How to locate the vimrc file used by vim editor?》

_EOF_

2017年12月26日 星期二

Vim註解太暗的問題

在使用vim的時候,如果終端機背景顏色是黑色,那麼預設的註解會因為是深藍色太暗看不清楚。解決方案是調整配色:
  • :color desert   <= 這個配色可以看設定檔
  • :color industry <= 這個配色適合寫程式
或是把color desert放在設定檔案vimrc裡面也可以。以上解法參考Better colors so comments aren't dark blue in Vim?。至於可以用的配色,使用下面的指令去看:
  • ls /usr/share/vim/vim*/colors
另一種方式則是使用光棒突顯所在的那行,參考Vim用光棒顯示游標所在的那一

_EOF_

CentOS 7更新Nvidia驅動程式

之前根據《CentOS 7上安裝Nvidia驅動程式》後,經歷了數次CentOS 7系統自動更新。在最近一次更新後,就進不了圖形界面了。。更新方式很簡單,首先到Nvidia驅動程式下載網頁,下載最新的驅動程式,由於硬體一樣是Intel i7-930配Nvidia GTX 650,下載的驅動是:
  • NVIDIA-Linux-x86_64-387.34.run
用root登入後,依序執行下面指令:
  1. chmod +x NVIDIA-Linux-x86_64-387.34.run
  2. ./NVIDIA-Linux-x86_64-387.34.run
  3. systemctl enable gdm && reboot
藍色指令即是更新成387.34這個動程式,在命令列下,根據說明安裝來安裝(基本上就是統統都同意)。重新開機後,圖形界面就又回來了
注意!這個方式只適用系統本來就已經安裝的是Nvidia出的專屬驅動程式,如果是剛安裝安裝好的系統,請參考《CentOS 7上安裝Nvidia驅動程式》重新安裝專屬驅動程式

_EOF_

2017年12月22日 星期五

WD硬碟價格比較 2017年12月

PChome24h搜尋"WD 金標"、"WD 黑標"、"WD 藍標"得到的價格表:

價格
(TW$)
名稱容量
TB
快取
MB
TW$/TB轉速
RPM
MTBF
萬小時
保固
(年)
2990WD [藍標] 3TB 3.5吋桌上型硬碟
(WD30EZRZ)
3649975400?3
3990WD [藍標] 4TB 3.5吋桌上型硬碟
(WD40EZRZ)
4649985400?3
2228WD [藍標] 2TB 3.5吋桌上型硬碟
(WD20EZRZ)
26411145400?3
7090WD [藍標] 6TB 3.5吋桌上型硬碟
(WD60EZRZ)
66411825400?3
1378WD [藍標] 1TB 3.5吋桌上型硬碟
(WD10EZEX)
16413785400?3
9488WD【黑標】6TB 3.5吋電競硬碟
(WD6002FZWX)
612815817200?5
9900WD【金標】 6TB 3.5吋企業級硬碟
(WD6002FRYZ)
6128165072002505
16900WD【金標】10TB 3.5吋企業級硬碟
(WD101KRYZ)(氦氣)
10256169072002505
6890WD【金標】 4TB 3.5吋企業級硬碟
(WD4002FYYZ)
412817237200?5
6899WD【黑標】4TB 3.5吋電競硬碟
(WD4004FZWX)
412817257200?5
14000WD【金標】8TB 3.5吋企業級硬碟
(WD8003FRYZ)(氦氣)
8256175072002505
14000WD【金標】8TB 3.5吋企業級硬碟
(WD8002FRYZ)(氦氣)
8128175072002505
4249WD【黑標】2TB 3.5吋電競硬碟
(WD2003FZEX)
26421257200?5
4799WD【金標】2TB 3.5吋企業級硬碟
(WD2005FBYZ)
2128240072002505
以上根據每TB的價格做排序,最便宜的每TB已經跌破台幣一千

2017年12月21日 星期四

顏聖紘的系統分類學實務

顏聖紘教授為課程Practices of Systematic Research所開設的部落格。2009年6月開始寫,到目前2017年12月都還有在更新。此部落格是課程用的參考資料:
  •  系統分類學實務 (Practices of Systematic Research) (碩士班課程)
  •  系統生物學 (Systematic Biology) (大學部課程)
要注意一點:systematic biology與systems biology雖然都翻譯成系統生物學,但是兩者完全是不一樣的領域唷。前面的systematics代表的是系統分類學的意思,用來分類各式各樣部不同的生物;後面的systems意思應該是systems theory,用系統分析的概念來分析生物的現象。

_EOF_

2017年12月19日 星期二

Python程式執行出現SyntaxError: Non-ASCII character

在執行某個python script的時候出現下面的錯誤訊息
SyntaxError: Non-ASCII character '\xe8' in file 05.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
這是因為註解裡面包含中文,但確定此script是用UTF-8儲存的。參考了《PEP 263 -- Defining Python Source Code Encodings》一文,了解在程式最前面,#!/usr/bin/env 這一行後面要宣告這個script是以哪種編碼方式儲存,如下:
  • # -*- coding: utf-8 -*-
  • # -*- coding: latin-1 -*-
  • # -*- coding: iso-8859-15 -*-
  • # -*- coding: ascii -*-
這幾行代表分別是用utf-8, latin-1, iso-8859-15, ascii來編碼

_EOF_

2017年12月18日 星期一

DAS × NAS × SAN × iSCSI

儲存資料的方式有很多種,常見的如下:
  • DASDirect Attached Storage直接存取硬碟
    • 一台伺服器透過SATA或eSATA或NVMe或SCSI或光纖或HBA卡(Host Bus Adapter)直接連接儲存裝置,儲存裝置上面有許多硬碟
  • NASNetwork Attached Storage透過網路檔案系統存取硬碟
    • 一台伺服器上面放很多硬碟,使用乙太網路連接上網路
    • 伺服器與計算節點的連接方式為一般的乙太網路交換機(Ethernet switch)
    • 其他計算節點想要資料,需要用乙太網卡(Ethernet adapter)連接那台伺服器透過乙太網路來分享。分享的方式有Samba(SMB/CIFS/網路芳鄰)、NFS、AFS等
  • SANStorage Attachment NetworkFC-SAN透過光纖網路直接存取硬碟
    • 一台或多台儲存裝置,儲存裝置上面有許多硬碟,用FC-HBA卡透過光纖連上線
    • 計算節點與伺服器連接方式為光纖交換機(Fiber switch)
    • 其他計算節點也要有FC-HBA光纖卡,直接存取儲存裝置上的資料。在計算節點上面看到的就像是直接接硬碟在計算節點上
  • iSCSIInternet SCSIIP-SAN透過乙太網路直接存取硬碟
    • 一台或多台儲存裝置,儲存裝置上面有許多硬碟,用iSCSI HBA卡透過網路連上線
    • 計算節點與伺服器連接方式為支援iSCSI的網路交換機
    • 其他計算節點也要有iSCSI-HBA卡(RJ-45街頭),直接存取儲存裝置上的資料。在計算節點上面看到的就像是直接接硬碟在計算節點上
這張DAS、NAS和SAN的比較圖片說明的很清楚
或是What is the difference between SAN, NAS and DAS?裡面的圖片也很清楚

2017年12月16日 星期六

安裝生物影像分析軟體ImageJ

ImageJ是一套由NIH開發的開源影像處理軟體。安裝請到下載抓回來打開即可使用
官網進去有下面八大項:
  • Features:各種作業系統都可使用,開源,300多個巨集(Macros)可用,500多個插件(Plugins)可選。處理2048x2048只要0.1瞟(也就是4M pixels per seconds)。
    可以處理tiff, gif, jpeg, bmp, png, pgm, fits, ascii, dicom, 等格式。各種選取工具,影像加強工具等等
  • News:各種新加入的功能說明
  • Documentation:說明文件。安裝基本觀念、操作手冊、教學與範例、討論區、FAQsMacro Language都在這邊
  • Downloads:下載專區。支援Mac OS X, Linux, Windows,範例圖片原始碼也在這邊
  • Plugins:各種特殊功能個外掛都在這邊。
  • Developer Resources:給ImageJ的開發者用的區域
  • Mailing List:開發者討論與發問的地方
  • Links:各種與ImageJ相關的連結。其他影像軟體像是ImageJ2, Fiji, Bio7, icy, ...等基於ImageJ的軟體在這邊都可以看到
更多關於ImageJ請參考 阿簡生物筆記《生物影像處理分析軟體ImageJ》
_EOF_

2017年12月13日 星期三

Linux將硬碟從GPT分割變回MBR

雖說現在主流硬碟的分割方式為GPT,但如果遇到舊主機板,開機的硬碟還是要用MBR分割。在Linux上面如果有硬碟分割成GPT,可以用gdisk把分割轉回成MBR而且無損當中儲存的資料。參考《How to Convert GPT to MBR on Linux》的做法如下:
  1. 安裝gdisk
  2. sudo gdisk /dev/sdx
    這裡的sdx就是要將GPT轉到MBR的那個硬碟
  3. r,然後按Enter
    進入“recovery and transformation options (experts only)”
  4. g,然後按Enter
    做的事情為“convert GPT into MBR and exit”
  5. w,然後按Enter
    做的事情為“write the MBR partition table to disk and exit”
注意!MBR分割的硬碟應該不能夠超過3TB,所以這招只能夠用在容量比較小的硬碟上面。此外,雖然我這樣做的時候資料沒有消失,但記得還是要先備份

2017年12月12日 星期二

Fedora 20將開機硬碟放到RAID-1

某機器系統是Fedora 20(Heisenbug)都安裝在一個硬碟/dev/sda上,分割區是:
  • /dev/sda6:掛載到/
  • /dev/sda1:掛載到/boot
  • /dev/sda7:掛載到/home
現在想把此開機碟做成RAID-1,而此RAID-1由/dev/sdc與/dev/sdd兩個硬碟組成。步驟與《Ubuntu 16.04將開機硬碟變成RAID-1》一樣的指令請參考前一篇,在Fedora上面不同的指令用紅色標記

2017年12月11日 星期一

圍棋複雜度 vs. 蛋白質序列組合數

圍棋標準棋盤為19*19,上面總共有361個點,每個點可以是黑是白或是空的,所以整體圍棋的複雜度會是:
  • $ 3^{361} ≈ 1.74 * 10^{172} $
對於一條由胺基酸組成的蛋白質,可以想像成一條串珠,每個珠子有20種組合(氨基酸有20種)。在蛋白質資料庫裡面,最常出現的長度是150與200,所以這兩者的序列組合度會是:
  • 長度150個氨基酸的蛋白質:$ 20^{150} ≈ 1.43 * 10^{195} $
  • 長度200個氨基酸的蛋白質:$ 20^{200} ≈ 1.61 * 10^{260} $
可以知道一般的蛋白質序列的組合數大於圍棋複雜度

參考資料

_EOF_

2017年12月10日 星期日

Here string <<< 命令列直接輸出

前面提過可以用 << here document從命令列直接產生檔案,但這個方法最終還要給一個檔案結束的標記。如果用here string <<< 的話,就直接輸出結果,下面幾個指令都是把輸入的字串小寫改成大寫:
  • echo "one two three" | tr a-z A-Z
  • tr a-z A-Z <<< 'one two three'
  • tr a-z A-Z <<< "one two three"
這邊的 <<< 就是所謂的here string。若是要把這個字串存到檔案aFile裡面,輸入:
  • tr a-z A-Z <<< 'one two three' > aFile
  • tr a-z A-Z <<< 'one two three' >> aFile
這裡 > 代表產生新檔案,而代表 >> 的是附加到檔案後面。
Here string可以視為pipe | 的另外一種寫法,從後方輸入

2017年12月9日 星期六

Here document << 命令列直接生成檔案

在命令列之下想要直接將鍵盤輸入的內容存成檔案,這個時候可以用Here document來做。例如說在設定XClock的顏色一文中,需要增加一些設定到~/.Xresource的檔案,這時候可以直接在命令列依序輸入下面的指令:
  1. cat >> ~/.Xresource << _END_
  2. XClock*update: 1
  3. XClock*geometry: 210x210+1020+12
  4. XClock*foreground: #fbfbfb
  5. XClock*background: #000018
  6. XClock.Clock.majorColor: rgba:f0/f0/19/ff
  7. XClock.Clock.minorColor: rgba:a0/c0/f0/ff
  8. XClock.Clock.hourColor:  rgba:c9/66/11/ff
  9. XClock.Clock.minuteColor: rgba:00/82/9f/ff
  10. XClock.Clock.secondColor: rgba:50/93/30/ff
  11. _END_
第1行的 << 代表產生一個here document,前面的 >> 代表將下面綠色的內容附加到~/.Xresource檔案後面。第1行與第11行指令裡面的 _END_ 則是代表當輸入的內容看到的時候,就結束產生這個here document。
若是希望蓋過內容而不是附加到檔案後面,那麼則是要將 >> 改成 > 既可。

_EOF_

2017年12月8日 星期五

用 < 讓檔案直接變成標準輸入

下面三行指令代表的意思是一樣的:
  1. grep phobia /usr/share/dict/words
  2. grep phobia < /usr/share/dict/words
  3. cat /usr/share/dict/words | grep phobia

2017年12月7日 星期四

Clonezilla做在GPT分割的硬碟上

現在的外接硬碟許多都已經超過3TB,若用《製作硬碟開機的Clonezilla Live》來製作硬碟開機的Clonezilla,在分割此外接硬碟時就需要用到GPT分割,要注意到幾件事情:
  1. 分割硬碟不能夠使用fdisk指令,要改用gdisk或是gparted等指令
  2. 由於用GPT分割,故使用BIOS開機的舊主機板(BIOS-based computer)將無法使用這樣做出來的Clonezilla
  3. GPT分割的第一個磁區,沒有Windows FAT32可以選,取代的則是要選EFI System Partition(gdisk的internal code會是0xef)。也就是說用gdisk分割後,把第一個磁區指定成EFI partition,跳出以後再用mkfs.vfat來將此分割區格式化成為FAT32格式
  4. 在用mkfs.vfat -F 32 /dev/sdc1 做格式化的時候,可能會出現錯誤訊息"WARNING: Not enough clusters for a 32 bit FAT"。解決方式可以測試下面兩個指令:
剩下的安裝Clonezilla部分就參考《製作硬碟開機的Clonezilla Live》。由於是GPT分割,且第一個磁區分割成EFI System Partition,所以上文裡面Step 3中使用makboo.sh那個script不需要執行,uEFI自然就會去讀取那個分割區來用Clonezilla開機了~

_EOF_

2017年12月6日 星期三

Tommy 碎碎念

在找一些Linux問題解法的時候,找到這個網站『Tommy Wu's blog』。版主的碎碎念從2002年就開始了(¡也真是古老!),裡面有許多架站時遇到的問題與解法。
  • Tommy 碎碎念:就是主要的網站
  • Tommy 簡介:台大數學系,寫程式是興趣也是工作,以前在懇懋科技(Phitech)、後來轉職到Link2Support

2017年12月5日 星期二

阿旺的Linux開竅手冊

網站提供許多基本與進階的Linux操作,如果覺得鳥哥vbird寫的Linux教學太雜,可以看這個網站。內容分成三大部分:
  1. 基礎篇:Linux的基礎操作
    1. 認識Linux:Linux歷史的介紹。有提到UNIX, minix, Linux之間的關係。另外有圖示說明Linux操作系統如何工作或與硬體溝通
    2. 安裝Linux:有介紹如何安裝Linxu在VirtualBox上面
    3. 了解文字介面: 基本指令列的操作
    4. 檔案/目錄/路徑:檔案與目錄的操作。另外管線pipeline與重新導向I/O redirection也在這邊有介紹
    5. 檔案操作/權限:基本檔案操作cp, mv, rm, ln的使用,還有rename大量更改檔案名稱
    6. vi文字編輯器:圖形化說明命令模式(CMD-line mode)、一般模式(Normal mode)、插入模式(Insert mode)之間的操作
    7. 檔案壓縮/搜尋:介紹指令來操作gz, bz2, z, zip與tar的使用。在找檔案方面有type, which, whereis, find等的使用

2017年12月4日 星期一

用MacPorts安裝軟體

MacPorts是一套第三方套件管理系統,從BSD的ports弄到Macintosh上,使用方法如下:
  1. port search KEYWORD
  2. port search PACKAGE
  3. port variants PACKAGE
  4. port deps PACKAGE
  5. port info PACKAGE
  6. sudo port install PACKAGE 
  7. port content PACKAGE
  8. port dependents PACKAGE
  9. port rdependents PACKAGE
上面的指令,藍色的是安裝軟體之前紅色為安裝指令綠色的是安裝之後,綠色的指令在還沒有安裝軟體之前是看不到任何相關的資訊的

2017年12月3日 星期日

Karabiner Element改變鍵盤佈局

《用Karabiner改變Mac的鍵盤佈局》簡單介紹了Karabiner-Element這個keyboard remapping程式。但其設定檔放置位置與以前不一樣(上一版的Karabiner的設定檔案放在/Applications/Karabiner.app/Contents/Resources/private.xml),但新版的Karabiner-Element將設定檔案放在 ~/.config/karabiner/ 下面,目錄結構如下
  • karabiner
    • assets
      • complex_modifications
        • xxxxxxx.json
    • karabiner.json 

簡單說明上面藍色與綠色兩個json檔案:

2017年12月2日 星期六

PyMOL用Trackpad操縱分子

Macintosh筆電的觸控板(Trackpad)要移動分子有下面幾個方法:
  • 左鍵(left click, button1)並在觸控板上滑動:轉動分子
  • option-左鍵並在觸控板上滑動:移動分子
  • 右鍵(right click, button2)並在觸控板上滑動:縮放分子
這邊要注意的是,右鍵的部分必須要去Preferences > TTrackpad裡面把Secondary click改成"Click in bottom right corner",這樣按住觸控板右下角才能夠用另外一隻手指頭滑動來縮放分子。
其他要用到中鍵(middle click, button3)的功能就必須要用軟體修改,最方便的方式應該是 fn-左鍵 = 中鍵,以前的Karabiner可以這樣做,但改版成Karabiner-Element以後設定方式改變還需要研究一下如何設定

_EOF_

2017年11月30日 星期四

2017年11月29日 星期三

朝陽科大dywang的Linux/Unix程式設計

朝陽科技大學資訊工程系的教師王德譽(De-Yu Wang)的 Linux/Unix程式設計課程網頁,內容包含了:
  • vi 編輯器
  • Shell 變數
  • 資料導向與管線處理
  • 正規表示法
  • sed 與 awk 工具
  • Shell Scripts - 簡介與 test 功能
  • Shell scripts - 條件判斷與迴圈
  • 開發工具 - make 與 makefile
  • 開發工具 - makefile 其他功能
  • *RCS 版本控制系統
  • *使用 QT 設計 KDE 視窗程式
  • Python
  • PyGTK
  • Glade
  • *Tarball 套件發行
  • *RPM 與 SRPM 套件發行
  • *套件修補、檢驗與管理
內容應該是用LaTeX寫出來的,之後再用latex2html轉成網頁

_EOF_

2017年11月28日 星期二

在Mac上用Docker安裝TensorFlow

在Macintosh電腦下面,可以用《Python的virtualenv上安裝TensorFlow》。另一種比較簡單的方式則是使用Docker,方法依序如下:
  1. 安裝Docker:參考《Install Docker for Mac》
  2. 啟動Docker:點擊Docker圖示來啟動Docker
  3. 顯示安裝的docker版本:docker --version
    Docker version 17.09.0-ce, build afdb6d4
  4. 安裝TensorFlowDocker:docker pull tensorflow/tensorflow參考《Installing TensorFlow on macOS》當中Docker那段文章,或是在hub.docker.com上的這篇文章
  5. 啟動Docker:docker run -it -p 8888:8888 tensorflow/tensorflow
    ......
    Copy/paste this URL into your browser when you connect for the first time, to login with a token:
    http://localhost:8888/?token=0c1f4af783b92ef48ebc29c488a7765d438931e9f00ea243
  6. 使用瀏覽器,把上面紅色部分貼上(注意每個人的token都不一樣,請參考自己指令出現的結果)
這樣就可以使用瀏覽器開使用玩TensorFlow了。

2017年11月27日 星期一

在Python的virtualenv上安裝TensorFlow

TensorFlow是個開源的機器學習軟體。可以用Python, C++, Java, Go來跑,這邊介紹的安裝方式為透過《Mac上Python的虛擬環境virtualenv》來安裝與使用TensorFlow。
  1. source /tmp/pyve/bin/activate
  2. easy_install -U pip
  3. pip install --upgrade tensorflow 
  4. source /tmp/pyve/bin/activate
  5. (tensorflow)$ python
  6. import tensorflow as tf
    hello = tf.constant('Hello, TensorFlow!')
    sess = tf.Session()
    print(sess.run(hello))
  7. (tensorflow)$ deactivate
上面指令的,藍色的部分是安裝綠色的部分是啟動TensorFlow:

2017年11月25日 星期六

在Windows用7-Zip解壓縮

Linux預設就有tar這個壓縮與解壓縮的指令,但Windows沒有。這邊介紹7-Zip,是個開放原始碼的壓縮與解壓縮軟體,官方網站說明為:
  • 支援壓縮(packing)與解壓縮(unpacking)的格式:
    • 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM
  • 僅支援解壓縮的格式:
    • AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, RPM, SquashFS, UDF, UEFI, VDI, VHD, VMDK, WIM, XAR and Z
  • 支援87種語言
  • 在下面的作業系統都可以用
    • Win10, 8, 7, Vista, XP, 2012, 2008, 2003, 2000, NT
    • Linux/Unix
_EOF_

2017年11月24日 星期五

Mac上安裝Python的虛擬環境virtualenv

使用虛擬環境virtualenv,就可以創建一個獨立且隔離的Python環境,這時候想要在上面開發任何東西,都不會與系統的Python混淆在一起。下面介紹如何在Macintosh上面做出Python的virtualenv(資料夾放在/tmp/pyve上),打開終端機依序執行:
  1. sudo easy_install pip
  2. sudo pip install --upgrade virtualenv
  3. virtualenv /tmp/pyve
    或是 
    virtualenv --system-site-packages /tmp/pyve
  4. tree -L 2 /tmp/pyve 會顯示出有下面這幾個程式
    • /tmp/pyve/bin/activate
    • /tmp/pyve/bin/activate.csh
    • /tmp/pyve/bin/easy_install
    • /tmp/pyve/bin/pip
上面指令意思是
  1. 用easy_install這個指令來安裝pip,一個Python安裝軟體的程式
  2. 用pip這個指令來安裝Python的virtualenv
  3. 用virtualenv這個指令,/tmp/pyve安裝一個獨立的Python環境
    若是有加入--system-site-packages這個參數,那麼系統上面原本已經安裝的套件也將會安裝到這個獨立的Python環境當中
  4. /tmp/pyve裡面有什麼
    1. 在Bash或sh下啟動此virtualenv需要的腳本
    2. 在csh下啟動此virtualenv需要的腳本
    3. 此獨立環境下的easy_install
    4. 此獨立環境下的pip,當要安裝套件到此環境就要用這個指令

2017年11月23日 星期四

華碩路由器第三方韌體Asuswrt-Merlin

由於華碩路由器的韌體AsusWRT開放原始碼,且使用的是GPLv2授權,故自行修改變成地方三韌體,加入其他功能。Eric Sauvageau就根據AsusWRT客製化出另一個第三方韌體:Asuswrt-Merlin,下面這個網站的架構:

2017年11月22日 星期三

華碩路由器的韌體AsusWRT

買華碩Asus的無線網路基地台,裡面刷的韌體是AsusWRT。官方介紹只有英文版......,這個韌體基於Tomoto-RT/Tomato-USB進行修改[參照這篇文章],有開放原始碼,授權方式則為GPLv2。這個網頁目前把功能分成四大塊:

2017年11月21日 星期二

Mac上安裝Docker

要了解什麼是Docker,請參考《Docker —— 從入門到實踐­》正體中文版。這邊僅說明如何在Macintosh的系統上安裝與使用Docker:
  1. Docker Community Edition for Mac下載安裝用映像檔(Get Docker那個按鈕)
  2. 點開映像檔Docker.dmg,把拿隻藍色鯨魚logo拖到應用程式裡面
  3. 點開Docker藍色鯨魚,開始使用Docker
只要三步就安裝好Docker惹

2017年11月20日 星期一

微軟Word使用Tab來做靠右對齊

使用微軟Office的Word,在同一行中想要讓最後面的內容靠右對齊可以這樣做:
  1. 從View裡面打開Ruler
  2. 在編輯模式中,找到Ruler左上角,若為Mac Word設定成↰;若為Windows Word設定成右下角。代表是靠右對齊
  3. 在同一行裡面按Tab,Tab後面的文字就會靠右對齊
以上內容參考《How to Create a Right-Align Tab in MS Word》

_EOF_

2017年11月19日 星期日

Windows安裝Python 3.x與相關套件

在Windows上面安裝Python 3.x,安裝時間是2017年11月,依序執行:
  1. python.org官網下載處抓最新的版本,現在是3.6.3
    抓到的檔案名稱為python-3.6.3.exe
  2. 點兩下剛剛下載的安裝包:Install Python 3.6.3 (32-bit)
        勾選 Install Launcher for all users (recommended)
        勾選 Add Python 3.6 to PATH
    最後選擇Customize installation
  3. Optional Features:這邊通通都選
  4. Advanced Options:這邊除了下面兩個debug的以外通通安裝
    設定Customize install location,也就是要安裝的資料夾位置。為了配合之前安裝Python2的習慣設定裝在C:\Python36
  5. Setup was successful:下面會出現一個選項
    Disable path length limit,請點選這個選項
這樣就安裝完畢了,接著檢查看安裝Python3到哪邊:
  • python --version
    Python 3.6.3
  • where python
    C:\Python36\python.exe
    C:\Python27\python.exe
會出現兩個是因為先前有做過Windows安裝Python2

2017年11月18日 星期六

Windows安裝Python 2.x與相關套件

下面說明如何安裝Python2.x到Windows10上面,安裝時間是2017年11月,依序執行:
  1. python.org官網下載處抓最新的版本,現在是2.7.14
    抓到的檔案名稱會是 python-2.7.14.msi
  2. 點兩下剛剛下載的安裝包
    若要給系統上所有使用者用,選Install for all users
    若是只有自己要用,選Install just for me
  3. Select Destination Directory:選擇安裝位置
    預設會安裝在C:\Python27\下面
  4. Customize Python 2.7.14:選擇需要安裝的相關東西
    請在這一步驟選擇"Entire features will be installed on the local drive"
    這樣才會把路徑都寫在系統的環境變數裡面
  5. Install Python 2.7.14:開始安裝,安裝完以後按Finish
    這邊會感謝Mark Hammond,沒有他免費的幫忙,現在還只會是Python for DOS而不是Python for Windows
安裝完畢,開啟命令提示字元(cmd)、或是Windows PowerShell,輸入:
  • python --version
    Python 2.7.14
  • where python  
  • where pip 
可以看到系統已經安裝了python 2.7.14,後面兩個指令是在看路徑用的。要執行Python的話,也可以直接從開始畫面找到Python2.7,開啟IDLE (Python GUI) 

2017年11月17日 星期五

解開Viewsonic VX2255wmb選單鎖定

要開啟或是關閉優派(Viewsonic,三隻鳥) VX2255wmb這個螢幕的選單鎖定
  • 按住[1]和向上箭頭(上面數來第二個按鍵)10秒鐘
要開啟或是關閉電源鎖定則是
  • 按住[1]和向下箭頭(下面數來第二個按鍵)10秒鐘
以上參考相關文件,找到選單與電源鎖定設定

_EOF_

2017年11月16日 星期四

where, Windows查詢程式執行位置的指令

在UNIX-like系統上面,可以直接用which這個指令就知道某個程式是從哪邊被執行的。在Windows上,則是使用where:
  1. where where
    C:\Windows\System32\where.exe
  2. where /?
第1個指令是在找出where這個指令放在甚麼地方,第2個指令則是where指令的使用方式。以上內容參考 Is there an equivalent of 'which' on the Windows command line? 

_EOF_

2017年11月15日 星期三

The Bash Hackers Wiki

用Bash寫程式化腳本(Shell Script)如果覺得man page太難閱讀,可以參考《The Bash Hackers Wiki》,網站內容包含了:

2017年11月14日 星期二

Bash將指令輸出結果存到變數

要將指令(例如說ls)的輸出結果存到變數有下面三種方法:
  1. VAR1=`ls`; echo $VAR1
  2. VAR2=$(ls); echo $VAR2
  3. VAR3="$(ls)"; echo $VAR3
第2, 3種方式在指令充滿escape characters的時候比較不會出問題。更多相關資訊參考:
簡單說就是在shell script裡面取值盡量不要用back-ticks ``,而是使用$(),或是用"$()"

_EOF_

2017年11月11日 星期六

Mac安裝GNU的gfortran

Macintosh如果安裝了Xcode以後,會給gcc, g++這兩個編譯器,但卻沒有gfortran。在編譯某些科學軟體的時候,如果裡面有FORTRAN程式碼,那需要另外裝。安裝方式也很簡單,首先到下面的網站下載:
目前有下面幾個可以下載:
  • macOS Sierra (10.12): download gfortran 6.3
  • OS X El Capitan (10.11): download gfortran 6.1
  • OS X Yosemite (10.10): download gfortran 5.2 or gfortran 4.9.2
  • OS X Mavericks (10.9): download gfortran 4.9.0 or gfortran 4.8.2
  • OS X Mountain Lion (10.8): download gfortran 4.8.2
  • OS X Lion (10.7): download gfortran 4.8.2
更多詳細的說明看這裡,有提到安裝前的注意事項與如何移除gfortran

_EOF_

2017年11月10日 星期五

GTW分享GNU/Linux與Open Source

G. T. Wang的個人部落格,內容多為Linux系統操作與開放原始碼相關。在Linux操作方面有許多技巧可以參考。部落格原本是放在Blogger上面,後來轉成自己用WordPress架設:
  • GTW舊站(Blogger):最後更新在2015年3月左右,後來都搬到新站上
  • GTW新站(WordPress):以下是此站的主要分類,
    • 物聯網:很多樹莓派的使用技巧,還有其他一些小主機
    • 網站架設:想要G. T. Wang一樣自己架站,可以參考裡面的說明
    • 程式設計:主要就下面四種
      • R:統計與資料分析好用
      • VBA:Excel裡面要寫自己用的巨集看這邊
      • Perl:裡面許多可以直接使用的範例
      • Octave:開放原始碼的MatLab,但這邊沒什麼內容
    • 統計:機器學習(Machine Learning)與大數據(Big Data)放在這邊...
    • 素食:作者吃素,所以這邊是素食美味集合區
    • 特價優惠:基本上都是跟架站有關的特價
    • 宗教:作者的宗教信仰專區
如果是對樹莓派網頁開發Linux操作Windows與Office操作實用電腦測試工具有興趣,這個部落格蠻有幫助的。開箱文有一些是廠商借設備給的測試文,蠻值得看的~

_EOF_

2017年11月9日 星期四

Mac上安裝ACPYPE

在Macintosh上面安裝ACPYPE(發音是ace + pipe)只要一行指令:
  • svn checkout http://ccpn.svn.sourceforge.net/svnroot/ccpn/branches/stable/ccpn/python/acpype acpype
下載完會出現“Checked out revision 10168.”,代表目前的版本是10168
這個軟體的相關訊息參考這裡CCPN上面的介紹

_EOF_

2017年11月6日 星期一

各種恐懼

由-phobia結尾的單字代表對某些事情的恐懼,在Linux上面可以用下面指令:
  • grep phobia$ /usr/share/dict/words
    claustrophobia
    homophobia
    hydrophobia
    phobia
    xenophobia
由A到Z的各種恐懼則可參考架空馬戲團的文章《無用知識:人類真膽小》,例如說上面的例子就是:
  • claustrophobia:  幽閉恐怖症
  • homophobia:  恐同症
  • hydrophobia:  恐水症
  • xenophobia:  陌生/外國人恐懼症
更多的人類恐懼請參考Oxford Dictionary《List of phobias》

_EOF_

2017年11月5日 星期日

Mac上同時開啟多個PyMOL

有時候會需要同時開啟多個pymol視窗來比較多個分子,這時候如果已經有開啟的視窗,那點選其他分子就會跳在同一個視窗內,只能夠先用下面指令開啟多pymol視窗,再把分子拉到不同的視窗裡面:
  • /Applications/PyMOL.app/Contents/MacOS/PyMOL &>/dev/null &
  • /Applications/MacPyMOL.app/Contents/MacOS/MacPyMOL &>/dev/null &
藍色指令給PyMOL 2.x版使用,綠色指令給1.x版的MacPyMOL用
以上方式參考《[PyMOL] RE: multi-instances of pymol on OS X》

2017年11月4日 星期六

Mac螢幕截圖去除陰影

Mac用快速鍵做螢幕截圖,例如說:
  • Cmd-Shift-4 + space + 點選要擷取的視窗
截下來的圖片都會有陰影。想要擷取時不要有陰影,可以這樣做:
  • Cmd-Shift-4 + space + option-點選要擷取的視窗

2017年11月3日 星期五

Word for Mac開啟拼字檢查

拼字檢查預設應該是打開的,只是之前手賤關閉,找了好久才又打開。此系統是macOS Sierra 10.12.6、Word的版本是15.39 (171010)。打開Word以後:

一、選Reivew > Language,取消Do not check spelling or grammar,如下圖:

二、左上角Word > Preferences... > Spelling & Grammar,開啟Check spelling as you type,設定畫面如下圖:
_EOF_

2017年11月2日 星期四

AMBER上對組氨酸histidine的命名

一般來說,PDB格式對於組氨酸的名稱為HIS,但在AMBER上,會根據組氨酸(histidine)的質子化狀態(protonation state)不同而有三種不同的名稱:
  1. HID:Histidine with hydrogen on the delta nitrogen
    組氨酸其delta nitrogen上面有hydrogen
  2. HIE:Histidine with hydrogen on the epsilon nitrogen
    組氨酸其epsilon nitrogen上面有hydrogen
  3. HIP:Histidine with hydrogens on both nitrogens; this is positively charged
    組氨酸其delta與epsilon nitrogens上面有hydrogens,讓組氨酸帶正電
參考《AMBER Histidine residues》此網頁看delta與epsilon nitrogen的位置
  • 質子化(protonation)加入質子(protein)也就是hydrogen cation到分子上
  • 去質子化(deprotonation)則是從分子上移除hydrogen cation
_EOF_

2017年11月1日 星期三

螢幕解析度(Display Resolution)

買電腦螢幕的時候,常會遇到縮寫,像是4K、WQHD、UWHD、HD 1080等等,代表的其實都是螢幕解析度,下面來自維基百科的圖片很清楚:
螢幕解析度,紅色4:3、紫色8:5、藍色16:9、土黃色17:9、粉紅色21:9

例如說圖片中央的藍色字卡寫著HD 1080、小字寫著1920x1080,代表著橫軸有1920個像素、1縱軸有1080個像素。上圖的不同顏色代表不同的長寬比:
  • 黃色:5:4,常見縮寫為SXGA
  • 紅色:4:3,常見縮寫為VGA, SVGA, XGA
  • 綠色:3:2,常見縮寫為WSXGA
  • 紫色:8:5,常見縮寫為WXGA, WXGA+
  • 橘色:5:3,常見縮寫為WXGA
  • 藍色:16:9,常見縮寫為HD 720, HD 1080, WQHD, UHD-1
  • 土黃色:17:9,常見縮寫為2K, 4K
  • 粉紅色:21:9,常見縮寫為UWHD, UWQHD

2017年10月31日 星期二

Charles Zaiontz介紹用Excel做統計分析

Charles Zaiontz的網站Real Statistics Using Excel標榜著提供所有用Excel做統計的東西(Everything you need to do real statistical analysis using Excel),網站主題有:
_EOF_

2017年10月25日 星期三

2017年10月24日 星期二

用needle與water做序列比對

要比較兩條序列(pairwise sequence alignment),最常用的兩種方法:
  1. Needleman-Wunsch algorithm:做全域比對(global alignment)
  2. Smith-Waterman algorithm:做區域比對(local alignment)
要做也很簡單,只要安裝EMBOSS(The European Molecular Biology Open Software Suite),就會內建needlewater兩個程式。只要準備好兩條用fasta格式寫的序列a.fasta與b.fasta,使用下面的指令即可,結果會輸出到global.needlelocal.water這兩個檔案:
  1. needle -asequence a.fasta -bsequence b.fasta -auto -outfile global.needle
  2. water -asequence a.fasta -bsequence b.fasta -auto -outfile local.water
這邊-auto代表gap penalty相關的參數都用預設值。
若要直接輸出到標準輸出,那就將-outfile改成-stdout
  1. needle -asequence a.fasta -bsequence b.fasta -auto -stdout
  2. water -asequence a.fasta -bsequence b.fasta -auto -stdout
_EOF_

2017年10月23日 星期一

Christopher Olah介紹類神經網路

類神經網路(Neural Networks,簡稱NN)是機器學習的其中一種方法,此colah's blog的作者Christopher Olah提供許多類神經網路原理與應用的介紹,包含了:

2017年10月22日 星期日

find加xargs來處理檔案

用find找到檔案後,再用xargs來處理檔案:
  1. find . -type f | xargs -n1 md5
  2. find . -type f | xargs -n1 -t md5
  3. find . -type f | xargs -n1 -p md5
上面三個指令都一樣,計算所在資料夾下面檔案的MD5雜湊值。差別就是-t可以看到執行前的指令,-p是執行每個指令前都會問要不要做。

2017年10月21日 星期六

用xargs自動計算最近下載檔案的雜湊值

前一篇提到用find抓最近幾分鐘下載的檔案,但如果已經知道最近下載的檔案個數,那麼只要用xargs即可,以下以PyMOL 2.0.4為例子:
  • ls -rt | tail -n 3 | xargs md5 
    MD5 (PyMOL-2.0.4_0-MacOS.dmg) = 9789f30a092787d66440f7c4dbb7b29a
    MD5 (PyMOL-2.0.4_1-Linux-x86_64.tar.bz2) = 16bb8d78e46615fcbd47f96eb9763298
    MD5 (PyMOL-2.0.4_0-Windows-x86_64.exe) = 2dedb7efb6f03a4820791b5bbfd71453
  • ls -rt | tail -n 3 | xargs shasum -a 256
    8b9733b75058f4a892effd0ae1c61f09ae6959633565276d7c60b9577dda0b4c  PyMOL-2.0.4_0-MacOS.dmg
    a0180fac31042803db464474916c4a4fa4714e4569a3bf28c9d0160995a93c12  PyMOL-2.0.4_1-Linux-x86_64.tar.bz2

    bb3237c47938979c7204c3389f1fe4d970daeae10089cd720048cf658c43942c  PyMOL-2.0.4_0-Windows-x86_64.exe
上述的指令就是計算當前目錄下最近的3個檔案的雜湊值。更多xargs的使用搜尋“xargs 使用”就可以找到各種有趣的使用方式~

_EOF_

2017年10月20日 星期五

用find幫最近下載的檔案計算雜湊值

在Mac的系統下,在網路上同時下載了多個檔案到~/Download底下,用下面的指令就可以計算15分鐘內下載的每個檔案的MD雜湊值:
  • find ~/Downloads -mmin -15 -exec md5 {} \;

2017年10月19日 星期四

用Karabiner改變Mac的鍵盤佈局

要改變鍵盤佈局(keyboard remapping),在Mac上面可以用Karabiner。這個App在10.x版本前叫做Karabiner,在11.x之後叫做Karabiner Elements(會有這個大改版是因為macOS Sierra的核心架構有所改變)。舊版的設定可以參照重新配置Mac的鍵盤佈局這篇文章;新版的Karabiner Elements設定看此說明文件
  • 設定key to another key有圖形介面
  • 設定Complex Modification也有圖形介面,可以設定像是
    • Modifier flags + key to keys
    • Key to modifier flags + keys
    • Post other key events when a key pressed alone
    • Change keys in specific apps
    • Execute shell command
  • 選擇輸入裝置:例如說外接鍵盤後,將筆電的鍵盤給關掉
  • 直接選擇鍵盤樣式(keyboard type),有ANSI、ISO、JIS三種
  • 舊的iMac鍵盤(1999年)裝上去功能鍵都可以直接使用
_EOF_

2017年10月18日 星期三

Linux的網路開機流程

在本地端機器沒有安裝系統的情況下,透過網路的伺服器提供的服務來開機,此過程叫做網路開機(netbooting)。流程請參考Netbooting on POWER - An Introduction
  1. 本機詢問動態IP(Dynamic IP discovery)
    DHCP伺服器給予動態IP(Dynamic IP response)
  2. 本機請求開機啟動程式(Request for grub2, grub2是一種boot loader)
    TFTP伺服器給予開機啟動程式(Deliver grub2 binary)
  3. 本機請求開機啟動設定檔(Request for grub2.cfg)
    TFTP伺服器給予開機啟動設定檔(Deliver grub.cfg file)
  4. 本機請求kernelinitrd(Request kernel/initrd)
    檔案伺服器給予kernel與initrd
  5. 本機請求與接收其他安裝內容(Request and deliver installer content)

2017年10月17日 星期二

Mac的網路開機

Macintosh可以從網路開機,這時候在同個區域網路裡面必須要有一台Macintosh安裝OS Server並開啟Netinstall功能,這樣才能夠提供網路開機。OS Server有下列三種映像檔:
  • NetInstall Image:用此映像檔,網路開機後,會直接進入安裝程式,然後再開始安裝系統到本地端的硬碟上
  • NetBoot Image:用此映像檔,網路開機後,本地端的硬碟將不會用到,而是根據NetBoot映像檔裡面的資料來開機。請注意這樣開機後所有的系統都是透過網路過來的,要是網路不夠快的話本地端機器運作上會很卡
  • NetRestore Image:用此映像檔,網路開機後,本地端的硬碟將會被NetRestore映像檔給蓋過去。這是一種快速安裝系統到本地端的方法

2017年10月16日 星期一

2017年10月15日 星期日

免費資源網路社群

在網路上面找免費軟體、免費空間、免費圖示、免費字形等等,除了用搜尋引擎根據一些關鍵字慢慢地找以外,也可以到這個網站來找:

2017年10月11日 星期三

Windows上檢查MD5等雜湊值(hash)

在Windows上面要計算下載檔案的雜湊值 (hash value),可以使用由Nir Sofer開發的HashMyFiles這個圖形化程式,使用上只要把要計算的檔案拖到 HashMyFiles,程式就會自動計算此檔案雜湊值,如下圖所示:
 

2017年10月10日 星期二

Gordon Cheng介紹台灣電力與能源

要了解台灣電力,Gordoncheng提供許多專業的文章,目前有三個部落格:
  1. Gordoncheng's Blog:最初的blog,文章從2010七月開始、到2017年十月
    介紹台灣電業的歷史與電力系統介紹,另外還會比較世界各國電業
  2. Gordoncheng's 2nd Blog:第二個blog,文章從2013三月開始
    專門提供電業新聞報導的原文連結
  3. GordonChengs's Blog-cont.:第三個blog,文章從2017一月開始
    這是因為最初的那個網站容量已滿,用來放新的文章
這位先生以前服務過台電的電力調度處,是位已退休的台電人~

2017年10月9日 星期一

R的管線%>%與管線套件magrittr

在shell script裡面,可以用 | 來把前面的指令輸出的結果給後面指令使用;在R裡面可以使用 %>% 達成。例如說:
  1. y <- c(0, 4, 2, 8, 2, 5, 7, 5, 4, 3, 5, 5, 0, 2, 9, 6, 2, 7, 8, 5)
    [1] 0 4 2 8 2 5 7 5 4 3 5 5 0 2 9 6 2 7 8 5
  2. sort(unique(unlist(y)))
    [1] 0 2 3 4 5 6 7 8 9
  3. y %>% unlist %>% unique %>% sort
    [1] 0 2 3 4 5 6 7 8 9
  4. y %>%
    unlist %>%
    unique %>%
    sort

    [1] 0 2 3 4 5 6 7 8 9
指令1指定y是一個數列,指令2, 3, 4的意思其實都是一樣的,把數列裡面單獨出現的數字拿出來依照大小排好,但指令4就比2要容易閱讀,也不容易算錯小括號。