2015年12月31日 星期四

用舊硬碟放到mdadm做磁碟陣列要小心...

把舊的RAID上面的硬碟,配上一些新的硬碟做新的RAID,要注意舊硬碟上面會把原本舊RAID的配置訊息存在superblock上面,如果沒有清理乾淨的話,會造成mdadm判別錯誤沒有根據新的RAID配置來做磁碟陣列,下面舉例說明

2015年12月30日 星期三

以mdadm做磁碟陣列要注意硬碟壞軌

在Linux上面,做磁碟陣列(RAID)最方便又不用另外買磁碟陣列卡的辦法就是Neil Brown開發的mdadm,是一種做software RAID的程式

但是,由於mdadm只是拿來做磁碟陣列,所以當組成的硬碟壞軌這種沒有死透的損壞,mdadm並不會因此就把這個硬碟給踢出RAID,再加上通常做RAID的硬碟都會是同一批,所以就會有可能出現同一個RAID上面多個硬碟在很短的時間內同時損壞,此時就會造成資料消失的大災難


2015年12月29日 星期二

R語言的基本資料型態

R語言的變數有以下幾種基本的資料型態(data types):
  1. 整數(Integer)
  2. 浮點數(Number, real, double)
  3. 複數(Complex)
  4. 字串(Character)
  5. 邏輯值(Logical)
以下依序介紹每種資料型態的用法

2015年12月28日 星期一

全像 Hologram

在Youtube搜尋hologram,或是用Google圖片搜尋hologram可以看到這種簡易但很有趣的擬似3D技巧

製作看hologram的工具,請參考Levi Sharpe的文章HOW TO MAKE A SMARTPHONE-POWERED HOLOGRAM,裡面有詳細介紹(因為長得像金字塔,所以後面都叫它金字塔螢幕)。所需的材料只有塑膠片、刀片、膠水或是膠布,其中最難找的材料應該是透明的塑膠片(其實也可以用壓克力、玻璃等等)


有個很不錯的東西叫光碟片,一桶空白光碟片最下面一定會有一片透明的片子,大小非常適合用來做智慧手機播放hologram的金字塔螢幕。參考上面那篇文章裡面Hologram Template圖片,割出來就可以了。

2015年12月25日 星期五

用PyMOL畫出QuteMol風格

QuteMol是一套開源的分子視覺化(molecular visulization)軟體,用QuteMol用CPK模型畫出出來的分子相當的好看。在PyMOL wiki上面有介紹如何用PyMOL畫出QuteMol風格,在這邊用epidermal growth factor為例子:

首先打開PyMOL,依序輸入下列指令

fetch 1egf
set_color oxygen, [1.0,0.4,0.4]
set_color nitrogen, [0.5,0.5,1.0]
remove solvent
as spheres
util.cbaw
bg white
set light_count,8
set spec_count,1
set shininess, 10
set specular, 0.25
set ambient,0
set direct,0
set reflect,1.5
set ray_shadow_decay_factor, 0.1
set ray_shadow_decay_range, 2
unset depth_cue
ray

如此就得到epidermal growth factor用QuteMol風格畫出來的CPK model:


The CPK model of EGF in QuteMol style




















Epidermal Growth Factor(EGF)是一種很小的蛋白質,只由53個氨基酸組成,它會去黏到細胞表面的Epidermal Growth Factor Receptor,然後會去影響細胞的生長與發育,相關的訊息可以參考PDB-101上面的內容

2015年12月24日 星期四

用iptables做防火牆

iptables,是ip的表格(tables),用來過濾來自不同網路位址ip進出主機的網路訊息。因此iptables是一種網路的過濾器(netfilter),詳細的內容參考鳥哥寫的防火牆,或是redhat上的文章《IP Tables》裡面Figure 2.6. Packet filtering in IPTables這張圖片。這篇文章只討論單一主機的狀態

由於Linux主機本身除了自己的網路訊息的輸入(INPUT)與輸出(OUTPUT)以外,還可以幫下面的主機轉傳(FORWARD)網路封包。所以說,iptables最基本功能是單一主機的filter table:

  • INPUT:管理網路封包輸入
  • OUTPUT:管理網路封包輸出
  • FORWARD:管理網路封包轉傳
以下介紹要如何對filter table做觀察添加修改刪除儲存

2015年12月21日 星期一

以光速來估計CPU理論最高頻率

假設CPU中最長兩個點的距離是1.5cm(大約就是一個CPU die的大小),所以當從A點發出一個訊息給B點,然後B點處理完馬上回應訊息給A點這種情況下,訊息必須要走的路徑長度是A-->B-->A,也就是1.5 cm * 2 = 3cm。

因為電子在電路上面傳遞訊息的速度最大值是光速(≈3*10^8 m/s = 3*10^10 cm/s),所以上述訊息傳遞鍊 A-->B-->A情況將會耗掉 3cm / (3*10^10 cm/s) = 10 ^ (-10) sec。

1/[10 ^ (-10) sec] = 10^10 1/s = 10 GHz

換句話說,依靠電子在線路上面做A-->B-->A傳送最快一秒也只能夠做 10^10次。假設A的下一步必須要仰賴B給的結果,所以當CPU頻率超過10GHz的時候,A就必須要在不知道B處理結果的情況下進行下一步,但是A無法這樣運作(CPU工作方式可以參考這段影片)。因此推估CPU頻率的上限約莫會在10GHz左右。

目前查到CPU頻率的世界紀錄是8.794GHz,已經很接近上述理論的上限了

2015年12月18日 星期五

馬上就把Asus RT-N66U搞死了...

前面成功把iperf給在RT-N66U上面跑起來,但是整個系統基本上是放在tmpfs上面,所以重開機以後原來的下載的iperf就消失了。上網有找到說N66U的FlashROM有32MB,因此想說把iperf executable放在flashROM上面就好了,結果馬上就把機器弄死了...

2015年12月17日 星期四

在Asus RT-N66U原廠韌體上面安裝iperf服務,測量連線速度

測量網路頻寬,iperf是款很簡易的指令工具,可以運行在Windows, Linux, MacOS X, FreeBSD, Docker, Android, iOS等等各式各樣的平台上面,而且也有提供原始碼。

iperf使用方法簡易,先在某台機器上面先跑iperf service,其他的機器就可用iperf client去連線,測量兩者之間的網路頻寬。這server/client則都是整合在同一個程式,執行方法如下:
運行iperf service
$ iperf -s
執行iperf client   $ iperf -c ip_of_iperf_server

2015年12月16日 星期三

Mac上創建一個加密的資料夾

在Mac上面是使用磁碟工具程式(Disk Utility)創建一個加密的映像檔。此篇文章參考了Stanley在MACUKNOW上面的文章。加密方式是AES,但是有128-bit與256-bit兩種,256-bit比起128-bit要更安全

2015年12月15日 星期二

MacPyMOL更改下載檔案的儲存位置

修改Pymolrc啟動設定檔案

參考當PyMOL開始啟動時,會先去讀取個人資料夾下面.pymolrc這個設定檔。欲把fetch抓到的PDB檔案放在/tmp下面,請在~/.pymolrc下面增加這一行
set fetch_path, /tmp

重新啟動PyMOL後,用fetch抓到檔案就會放在/tmp下面了。而且每次開關機以後/tmp會清空,這樣就不用還要手動去清除下載的檔案


修改importing.py的作法(硬派作法)

原本MacPyMOL用fetch指令下載的PDB檔案會放置到家目錄 ~/下面,希望更改到~/Downloads/下面。

修改/Applications/MacPyMOL.app/Contents/pymol/modules/pymol/importing.py
在1481行 
        path = setting.get('fetch_path',_self=_self) or '.'
下面新增一行 
        path += '/Downloads/'
這樣用fetch抓到的PDB檔案就會放到~/Downloads/下面了

2015年12月14日 星期一

舊MacBook Pro安裝Ubuntu Gnome後,修正無線網路不會動的問題

$ sudo lshw -C Network
$ cat /etc/lsb-release
機器是 MacBookPro5,5、無線網路是BCM4322 802.11a/b/g/n Wireless LAN Controller
b43這個driver還需要firmware,因為沒有安裝,所以說無線網路不會動。

參考Wild man的回應,執行下面的指令,安裝b43這個driver
$ sudo apt-get update
$ sudo apt-get install firmware-b43-installer
安裝的過程中如果有出現某些東西找不到,還需要做下面這個指令
$ sudo apt-get install --fix-missings
重新開機後就能夠用無線網路了。

2015年12月11日 星期五

星際旅行的可能性


也許未來太空船可以藉由蒐集星際物質裡面的氫,用來作為核融合的材料來探索銀河系

假設太空船有10公里平方的搜集網(10km*10km = 10^4m * 10^4m = 10^6 cm * 10^6 cm = 10^12 cm),每前進一公里(1km = 10^3 m = 10^5 cm),就可以掃過10^17 cm^3空間。也就是說前進6百萬公里(6 * 10^6 km)就可以掃過6*10^23立方公分的空間。


由此連結可以知道星際空間每立方公分可以含有1到10^6個氫分子。也就是說最差的情況是,每飛行6百萬公里,可以蒐集到一莫耳的氫分子。


一莫耳的氫分子是2公克,如果用核融合,最少可以產生10^12J的能量(參考成大物理的連結)。目前最快的人造飛行物體是航海家一號, 17km/s, 也就是說每四天(6,000,000 km / 17km/s ~= 352,941s ~= 4 days)就能夠飛行六百萬公里,等同於每四天蒐集到一莫耳的氫分子,用在核融合上面產生10^12J。因此,透過使用蒐集到的氫經過核融合產生的能量,可以使引擎的功率到達百萬瓦(10^12J / (86400*4)s ~= 3*10^6 J/s = 3*10^6 Watt),看來也許不只能夠維持17km/s的速度,還可以不斷地幫太空船加速。

結論是,未來的太空船只要有個很大的喇叭嘴搜集路徑上面的的氫,用核融合產生能量,用光子雷射推進器產生推力,就可以不斷地做星際航行。以上的方式說明了最少是幾百年起跳的星球間航行其實是有可能的。



2015年12月10日 星期四

舊MacBook Pro安裝Ubuntu Gnome後,更新顯示卡驅動

$ sudo lshw -short
$ cat /etc/lsb-release
得知機器是 MacBookPro5,5(應該是2009的MBP吧)、CPU是Intel Core 2 Duo P8700、GPU是GeForce 9400M,系統則是Ubuntu 14.04.3 LTS

初始安裝的Ubuntu Gnome其顯示卡驅動是nouveau,但在跑chrome的時候常會卡住,卡到只剩下滑鼠游標會動、還有Ctl+Alt+Fx可以切換到不同的terminal而已。dmesg裡面都會出現nouveau相關的訊息,因此可能是預設的顯卡驅動和硬體不合。


參考了Install NVIDIA GeForce driver in Ubuntu 14.04這篇文章,依序執行

$ sudo apt-add-repository ppa:xorg-edgers/ppa
$ sudo apt-get update
$ sudo apt-get install nvidia-current nvidia-settings