2019年12月27日 星期五

安裝bioSyntax到Sublime Text 3上

bioSyntax是一套幫生物文本資料上色的外掛套件,這邊介紹如何在Windows 10下幫Sublime Text 3這個文字編輯器安裝bioSyntax套件:
  1. 安裝Package Control到Sublime
  2. 開啟Sublime Text 3 並依照下面步驟依序執行
    • 工具列上面選 Preferences > Package Control
    • 選擇 Package Control: Install Package (看下圖、點圖放大)
    • 搜尋 bioSyntax,點選後會自動安裝
  3. 設定讓Windows 10預設用Sublime Text開啟fasta, fastq, bed, gtf, vcf, sam等檔案

2019年12月26日 星期四

安裝Package Control到Sublime

在Sublime上面安裝套件,除了比較麻煩得用手動抓套件下來安裝以外,還可以先安裝套件管理Package Control。安裝步驟如下:
  1. 打開Sublime
  2. 工具列點選 View > Console (見下圖)
  3. Package Control上面複製程式碼
  4. 把程式碼貼到console的提示符號區,按下Enter

2019年12月24日 星期二

Windows 10無法使用網路芳鄰

在使用Win10 1903的時候,發現網芳無法連線,並出現下面錯誤訊息:
  • 0x80004005 錯誤

這是因為WanaCrypt勒索病毒,利用MS17-010漏洞攻擊(Microsoft Windows SMB中的弱點),讓攻擊者遠端執行程式碼,所以新版的Win10把SMB 1.0的服務給關閉,僅使用SMBv2。解決方式則是打開SMBv1的用戶端功能,步驟如下:

2019年12月23日 星期一

Ubuntu 18.04刪除Amazon的icon

安裝完Ubuntu 18.04以後,預設在工具列上會有一個Amazon的按鍵,按下去後會直接開啟亞馬遜的網站。覺得很煩的話,直接在終端機質性下面指令刪除:
  • sudo apt purge ubuntu-web-launchers
指令每個參數的意思如下:

2019年12月19日 星期四

羅技集中營

羅技集中營這個徐濬維經營的部落格,有著各種滑鼠與鍵盤的拆解照片。此部落客是羅技的愛用者對於用過的滑鼠內部結構有興趣的朋友可以透過滑鼠照片搜尋比對看照找出想要知道內部結構的滑鼠。以下列出有興趣的部分,首先是微動開關:
鍵盤組的部分有:
滑鼠的部分有:

2019年12月13日 星期五

開啟Chrome的分頁凍結

Chrome在79這個版本加入了分頁凍結(Tab Freeze)這個功能,對於在背景執行超過五分鐘的分頁,會主動釋放其佔用的CPU與RAM等系統資源。首先在網址列輸入:
  • chrome://settings/help
在上述頁面中,確認Chrome目前運行的版本並升級到79版後,在網址列輸入:
  • chrome://flags/#proactive-tab-freeze


找到分頁凍結功能(Tab Freeze),Enabled那幾個選項:

2019年12月12日 星期四

家用10G網路銅線方案

【Huan】 快還要更快! 架設屬於自己的10Gbps網路!!, 10m33s


這部影片介紹要怎樣架設10Gbps網路,用到的材料有:

2019年12月10日 星期二

awk不要分析csv檔案的第一行

許多csv (comma-separated values) 檔案的第一列會是欄位名稱,通常使用awk會不需要分析,解決方式如下:
  • awk -F',' -v OFS=',' '{if (NR==1) {next} else {print $0}}' input.csv > output.csv

上述的指令說明如下:

2019年12月6日 星期五

讓Google試算表的儲存格出現選單

在使用Google試算表的時候,要讓儲存格出現下拉選單步驟如下:
  1. 新開一個工作表,將選單內容填入
  2. 選取要有下拉選單的儲存格
  3. 點選 資料資料驗證
  4. 條件範圍內的清單,選取步驟1的選單內容
  5. 點選 儲存
_EOF_

2019年11月21日 星期四

Mac上看Docker的版本

參考《Install Docker Desktop on Mac》一文安裝完Docker之後,用下面的指令看版本:
  1. docker --version
    Docker version 19.03.5, build 633a0ea
  2. docker-compose --version
    docker-compose version 1.24.1, build 4667896b
  3. docker-machine --version
    docker-machine version 0.16.2, build bd45ab13
上述三個程式,意義分別如下:

2019年11月19日 星期二

Shell一行文:每行前面加特定字串

對一個文字檔,每一行前面都要加個字串"Start_",用sed指令:
  • sed -i -e 's/^/Start_/' file
若不想要改到這個檔案,要存成另外一個新的則用:
  • sed -e 's/^/Start_/' file > file.new

2019年11月18日 星期一

Shell一行文:移除空白行

要移除檔案裡面的空白行只要用sed指令:
  • sed '/^$/d' /tmp/data.txt
若沒有更動原本的檔案,可以用IO轉向
  • sed '/^$/d' /tmp/data.txt > /tmp/output.txt

2019年11月15日 星期五

傲笑紅塵路

《傲笑紅塵路》這個部落格。從2011年十月開始寫,最新的一篇文章則停在2016年十一月。會找到這個部落格是因為下面這篇文章:

列出下面幾篇可能會用到的文章:

2019年11月12日 星期二

Cross origin requests are only supported for HTTP

用瀏覽器看一個放在本機硬碟裡面的index.html,這個頁面裡面包含了JavaScript並且會去存取本機硬碟同資料夾的一些json檔案、還有一些Ajax request,導致了頁面無法正常顯示。觀察了錯誤訊息:
  • Cross origin requests are only supported for HTTP.

這個問題是CORS (Cross-Origin Resource Sharing) 錯誤,在上述的情況下意思是瀏覽器只支援從HTTP上面抓到的JavaScript或資料,而不能夠使用本機上的資源。使用Mac的瀏覽器Safari的解決方案步驟如下:

2019年11月11日 星期一

Mac設定CapsLock成輸入法轉換

在2019二月的文章Mac讓CapsLock按鍵變成輸入法轉換》有提到使用Karabiner這隻程式修改鍵盤對應,讓CapsLock可以有輸入法轉換功能。直到現在才發現原來可以直接使用macOS系統的設定完成,步驟如下:
  1. 點左上角  ⇢ System Preferences ...
  2. KeyboardInput Sources
  3. 勾選 Use the Caps Lock key to switch to and from U.S.

2019年11月5日 星期二

在Ubuntu上修復apt損壞的套件

在Ubuntu或Debian這一類使用apt安裝軟體的系統上,有時候會出現錯誤訊息
  • Unable to correct problems, you have held broken packages
這代表著套件系統裡面出現不一致的情況,解決方法是依序執行:
  1. sudo apt --fix-missing update
  2. sudo apt-get -f install

2019年11月1日 星期五

2019年10月31日 星期四

Ubuntu 18.04因顯卡而無法正常開機

使用Ubuntu 18.04在一台有Nvidia GTX 1050的筆電上無法開機,暫解決方案是:
  1. 進入GRUB的時候,光棒選擇到要開機的kernel
  2. 選到之後,按e,進入開機kernel的設定裡面
  3. 找到linux開頭的那一行,加入nomodeset,如下
    linux /boot/vmlinz-x.x.x-x-generic root=UUID=xxx-xxx-xxx-xxx-xxx ro quiet splash $vt_handoff nomodeset
  4. 按F10用這個方式開機
上面加入的表示開機以後不要載入任何有關於顯示卡的驅動,這樣就可以順利開機。

2019年10月25日 星期五

對比今日與明日的收入以理解貧窮陷阱

2019年的諾貝爾經濟學獎給了研究貧窮的經濟學家,覺得最能夠說明他們研究的圖是貧窮陷阱(poverty trap),用下面的關鍵字去搜尋圖片即可看到:
  • S-shaped curve and poverty trap
這張圖解釋如下:
  • 橫軸是當下的收入:income today
  • 縱軸是未來的收入:income tomorrow
  • 對角的直線上面的點代表著未來的收入=當下的收入
  • S型的曲線代表著實際上未來的收入通常都不等於當下的收入

2019年10月21日 星期一

Mac刪除磁碟無法退出的視窗

有時候在Mac在退出外接硬碟的時候會失敗,會彈出一個永遠都關不掉的視窗,欲刪除此視窗只要輸入下面的指令:
  • killall UnmountAssistantAgent

2019年10月18日 星期五

用MegaCli監控磁碟陣列卡

MegaCli是用來監控與操作RegaRAID控制器的指令,通常在Dell上面這些卡都叫做PERCx。使用方式如下,輸出的內容很多在此不解釋:

一、系統上面看控制器與驅動程式
dmesg | grep -i raid
lspci | grep -i raid
lsmod | grep mega

二、MegaCli指令又臭又長,縮短叫mc後順便看陣列卡數量
alias sudo='sudo '
alias mc='/opt/MegaRAID/MegaCli/MegaCli64'
sudo mc -v
sudo mc -adpcount

2019年10月17日 星期四

sudo的時候可用到alias的資訊

alias可以讓很長的指令變得比較精簡,但在sudo的時候這個簡化指令會出錯,例如說:
  • alias ll='ls -alF'
  • sudo ll
    sudo: ll: command not found

這時候只要多加入下面這行指令,就可以讓sudo成功用alias簡化的指令:

2019年10月4日 星期五

Mac上讓R抓剪貼簿上的資料

在Mac上,想要把Excel的資料傳到R裡面去分析,除了很麻煩的用一些套件以外,其實還有個更快的方式可解。步驟如下:
  1. 首先打開excel檔案,把想要分析的區域匡起來
  2. 使用Cmd-c複製,這時候資料會複製到剪貼簿(clipboard)
  3. 打開R的環境,使用下面的程式碼

2019年10月3日 星期四

阻止Pulse Secure自動啟動

裝了VPN的客戶端Pulse Secure後,每次系統重開機都會跳視窗出來。一般關閉登入的方式(如下所示)找不到可以關閉的選項
  • Preferences → Users & Groups → Login Items
需要用下面的指令暴力的把這個開機程式給刪除:
  • sudo rm /Library/LaunchAgents/net.pulsesecure.pulsetray.plist
但這樣刪除後,點Pulse Secure的icon後無法正確的連線。必須要從終端機輸入指令才能夠讓Pulse Secure可以正常的連線:
  • open /Applications/Pulse\ Secure.app/Contents/Plugins/JamUI/PulseTray.app

2019年10月2日 星期三

Ubuntu 18.04用Mac啟動後Wifi不通

使用Ubuntu 18.04開MacBookPro Retina late 2013,結果沒有無線網路可以用。使用lshw -C network確認Wifi的卡片用的是
  • BCM4360 802.11ac Wireless Network Adapter
使用lsmod發現是缺了wl這個驅動,上網查還缺了一些套件,安裝方式指令依序:
  1. sudo apt install broadcom-sta-dkms
  2. sudo modprobe wl

2019年9月30日 星期一

Ubuntu 18.04上安裝VirtualBox Guest Additions

在Mac為host的機器上面,使用VirtualBox開啟guest為Ubuntu 18.04的系統。開啟後系統的解析度就被固定在800x600上面,而且沒辦法更改;想要更改的話,就必須要安裝VirtualBox Guest Additions。安裝的步驟如下:
  1. 在guest system內(也就是Ubuntu 18.04)安裝所需要的軟體。開啟終端機後輸入下面的指令來安裝VirtualBox Guest Additions所需的套件:
    • sudo apt install linux-headers-$(uname -r) build-essential dkms
  2. 在host system內(也就是macOS Mojave),選擇VirtualBox的視窗
    • Menu > Devices > Insert Guest Additional CD image...

2019年9月27日 星期五

類UNIX系統上的設備檔案(device file)

在類UNIX系統(UNIX-like system)上面不只是一般文件是以檔案方式來存取、目錄也是檔案、甚至設備(devices)也是檔案。這些設備檔案(device file)會放在 /dev 這個資料夾下面。以下舉最常見到的設備檔案:
  1. /dev/console:目前使用的終端機
  2. /dev/sda:第一個SATA硬碟
上述兩者對應到的就是設備檔案中最常見的兩種形式:

2019年9月26日 星期四

Ubuntu 18.04啟動後有線網路不通

最近新灌的Ubuntu 18.04、還有之前安裝的Ubuntu 16.04都出現了開機之後線網路不通的問題,圖形介面下的設定也找不到設定。後來根據參考資料,新增一個設定檔案 /etc/netplan/50-cloud-init.yaml ,重新開機後有線網路即可透過netplan自動取得IP

2019年9月24日 星期二

Ubuntu 18.04顯示詳細開機訊息

忘記從哪個版本開始以後,Ubuntu開機就會把所有的開機訊息隱藏起來。雖然是比較美觀拉,但這樣開機出問題的時候就不知道卡在哪個部份。要顯示這些訊息只要找到 /etc/default/grub 修改其中的兩行的如下:
  • GRUB_CMDLINE_LINUX_DEFAULT=
  • GRUB_TERMINAL=console

2019年9月23日 星期一

Mac的修復模式與USB開機

要讓Mac進入修復模式(Recovery Mode)的步驟如下:
  1. 關機
  2. 按住Cmd-RCommand和R同時按)不要放,按電源鍵開機
  3. 等到蘋果logo顯示後就可以放開Cmd-R
  4. 開完後會出現下面的選單
    • Restore From Time Machine Backup:從時光機回復系統
    • Reinstall macOS:重新安裝系統
    • Get Help Online:線上文件
    • Disk Utility:硬碟管理工具

2019年9月21日 星期六

2019年9月20日 星期五

2019年9月19日 星期四

手動安裝可繪圖的R-3.5.1

先前《安裝R在指定資料夾》編譯出來的R沒辦法繪圖,這是因為R在編譯的時候沒有加入繪圖,且系統上面也不支援繪圖。下面的步驟介紹如何在Debian 7.7上安裝R-3.5.1到 /opt/R/3.5.1-with-x/ 這個資料夾:

2019年9月18日 星期三

2019年9月17日 星期二

invalid factor level, NA generated

在將資料塞入R語言的資料框架(Data frame)時出現下面的錯誤訊息

  Warning message: 
  In `<-.factor`( ...... ) 
    invalid factor level, NA generated

這是因為資料框架裡面的字串預設會使用因子(factor)來儲存。若是某個儲存欄位是字串,但輸入的資料不在此欄位的因子列表也不是NA,那麼就會出現上述的問題。解決方式是在宣告資料框架的時候加入 stringsAsFactors =  FALSE

2019年9月16日 星期一

陣列在R語言上的宣告、合併與選取

以下的範例是在R語言內陣列(Matrix)的基礎使用方式

一:陣列的宣告宣告3列(row) ✕ 2欄(column)的陣列
> a <- matrix(c(5,6,5,6,5,6), nrow=3, ncol=2)
> b <- matrix(c(7,8,7,8,7,8), nrow=3, ncol=2)
> c <- matrix(c(9,0,9,0,9,0), nrow=3, ncol=2)
> print(a)
     [,1] [,2]
[1,]    5    6
[2,]    6    5
[3,]    5    6

2019年9月14日 星期六

《那些失眠的夜與難以忘懷的事》

老王樂隊|那些失眠的夜與難以忘懷的事 Sleepless nights and haunting memories(Official ), 3m59s


2019年9月13日 星期五

Mac上以VirtualBox啟動USB上的系統

手上有個Ubuntu 16.04系統安裝在USB隨身碟上,Host系統是macOS Mojave。欲使用VirtualBox,透過USB來啟動隨身碟上Ubuntu。做這件事情的流程是,先讓host system可以辨識USB為硬碟,之後再使用VirtualBox開啟這個系統。另外,由於我的USB隨身碟上面有兩個分割區,故會與一般的做法又有點不同。我的步驟如下

2019年9月9日 星期一

找出不包含某使用者的檔案或資料夾

一般使用find會根據檔案的一些特徵來幫忙找檔案。但若想要「反向」找不屬於某使用者的檔案,需要使用到-not這個參數。以下的範例是找尋/etc下面不屬於root的檔案:
  • find /etc -not -user root -type f 2>/dev/null
  • find /etc ! -user root -type f 2>/dev/null
上面兩個指令的意思相同,-not!都只會修飾後面出現的那一個描述。

2019年9月6日 星期五

進入iTunes備份區MobileSync出問題

macOS Mojave又多了管制權限的控制,以前要去看iTunes備份區只要在終端機(Terminal)底下輸入:
  • ls ~/Library/Application\ Support/MobileSync
這樣就可以看到裡面有個Backup資料夾,但最近出下了下面錯誤訊息
  • ls: .: Operation not permitted

2019年9月5日 星期四

武力犯台可能的登陸時間與地點

最近有傳言(其實也就是一個人)在說解放軍放了50萬人在福建,除了威脅香港以外,還可以準備侵犯台灣。在這邊想到之前易思安整理過武力犯台比較好的時間與地點。比較好的時間,代表不易起霧,風浪不大且較不會遇到颱風,一年只有兩個月份:
  • 三月:東北季風結束
  • 十月:颱風季結束,還沒開始起霧
由南至北順時鐘的14個登陸地點(Potential Invasion Beaches on Taiwan):

2019年9月3日 星期二

白經濟 TalkEcon

白經濟TalkEcon,取名來自白鯨記(Moby Dick),此網站以討論經濟的文章為主。主要的頁面如下:
  • 首頁:最新的文章放在最上面
  • 文章列表:從2015的10月開始,每個月約有3-5篇文章
  • 投稿方式:有寫出經濟學相關的文章,可以在這邊投稿
  • 贊助:贊助讓這個網站營運下去,但沒看到經費使用方式
  • 關於:關於這個網站
_EOF_

2019年9月2日 星期一

Debian 7上可用的sources.list

Debian 7(wheezy)現在已經是到了產品壽命結束(End-of-life, EOF)週期,所以/etc/apt/sources.list裡面的站台幾乎都已經停止wheezy的套件維護。若不想要升級系統而繼續使用wheezy,那就在裡面加入這行讓apt-get指令還可繼續使用:
  • deb http://archive.debian.org/debian/ wheezy main

參考資料

_EOF_

2019年8月30日 星期五

Shell一行文:FASTA核酸序列轉成大寫

要把FASTSA序列檔案通通轉成大寫,最直接的方式用tr指令:
  • cat DEMO.fasta | tr '[:lower:]' '[:upper:]'
但這樣會把開頭是>的註解行也通通轉成大寫,要避免此狀況用下面指令:
  • cat DEMO.fasta | sed '/^[^>]/ y/atcg/ATCG/'

2019年8月26日 星期一

釋放Linux記憶體或交換區的快取

手動釋放指令除了跑benchmark可能會有所影響以外,其實沒什麼好處。首先:
  • sync; sync; sync
完成所有檔案寫入,跑三次只是個人習慣。再來釋放快取有下面三種方式:
  1. echo 1 > /proc/sys/vm/drop_caches
  2. echo 2 > /proc/sys/vm/drop_caches
  3. echo 3 > /proc/sys/vm/drop_caches
以上都用root權限執行,這三個指令的意思分別是:

2019年8月23日 星期五

手動安裝R-3.4.0到指定資料夾

在手動安裝R-3.4.0的時候,因為系統版本太舊,許多函式庫都過舊而不支援;加上並沒有管理者權限,無法使用yum等套件管理程式來升級這些函式庫,故必須要先手動安裝一些所需的函式庫,參考下面幾篇文章:
基本上就是在手動安裝R-3.4.0,在configure階段被提示缺什麼函式庫、或是函式庫太舊就安裝或升級某函式庫。至於R-3.4.0安裝過程如下:

2019年8月22日 星期四

手動安裝libcurl-7.65.3

libcurl是個免費開源的函式庫,自己寫的程式用了他就可以來下載檔案。手動安裝方式如下
$ wget https://curl.haxx.se/download/curl-7.65.3.tar.gz
$ md5 curl-7.65.3.tar.gz 
MD5 (curl-7.65.3.tar.gz) = 08e951e3da639bb4197d52222458b5dd

$ tar zxvf curl-7.65.3.tar.gz && cd curl-7.65.3
$ ./configure --prefix=/YOUR/DESTINATION
$ make -j 16
$ make install

參考資料

_EOF_

2019年8月20日 星期二

列出檔案並根據修改日期排序

機器中了綁架病毒(Ransomware),將所有檔案加密後,檔名後綴.adage。這時候想要知道這隻綁架病毒從什麼時候開始將檔案加密,將檔案依照修改時間排序:
  • find . -name "*.adage" -printf "%T@ %Tc %p\n" | sort -n | tail -5
上述指令的參數說明如下:

2019年8月19日 星期一

手動安裝PCRE-8.43

PCRE是Perl Compatible Regular Expression函式庫,安裝完以後,會有下面三個程式:
  • pcregrep:Perl相容的grep
  • pcretest:測試某個regular expression是否是Perl相容
  • pcre-config:用在編譯其他程式而需要鏈結到PCRE library
安裝的函示庫會有:
  • libpcre.so, libpcre16.so, libpcre32.so:支援一般、16, 32-bit character
  • libpcrecpp.so:應該是pcre給cpp用的函示庫
  • libpcreposix.so

手動安裝到指定資料夾(不需要root權限)如下:

2019年8月16日 星期五

手動安裝xz-5.2.4

xz也是個壓縮檔案的軟體,使用Lempel-Ziv-Markov chain-Algorithm (LZMA)演算法來壓縮。以下是xz相關的連結:
手動安裝方式如下:

2019年8月15日 星期四

手動安裝bzip2-1.0.8

bzip2是由Julian Seward開始發展的壓縮程式,使用的是Burrows–Wheeler algorithm。壓縮完的檔案會後綴.bz2,目前也可用BSD-like license。使用方法如下:
  1. bzip2 FILENAME
  2. cat FILENAME | bzip2 > FILENAME.bz2
  3. bunzip2 FILENAME.bz2
  4. bzcat FILENAME.bz2 > FILENAME
以上的指令1,2是壓縮檔案,後面兩者則是解壓縮。手動安裝法如下:

2019年8月13日 星期二

手動安裝zlib-1.2.11

zlib是非壞性壓縮的函示庫,作者有兩人:
安裝時1.2.9或1.2.10的應該要直接換成1.2.11,安裝過程如下:

2019年8月12日 星期一

Linux檢查程式來自那個套件

在Debian/Ubuntu等這系列使用deb package的,檢查程式所屬套件指令如下:
  • dpkg -S /bin/cat
  • dpkg -S /usr/bin/top
查詢時若沒有用絕對路徑,那上述指令就會把含有這個關鍵字的檔案與指令所屬的套件都列出來。若系統是CentOS/Fedora這一系列使用rpm的,檢查程式所屬套件就要用:

2019年8月9日 星期五

固態硬碟SSD的比較與選擇

固態硬碟(Solid State Disk, SSD)百百種,主要可看其接口與主機板上的插槽:
主機板上的插槽
SATAM.2PCIe
SSD
的類別
(接口)
SATASATA2
SATA3
✖︎✖︎
M.2
B key✖︎
很少見,通道可為
SATA或PCIe x2
✖︎
M key✖︎大多走PCIe通道
通道是PCIe x4
✖︎
B&M key✖︎
大多走SATA通道
SATA2 or SATA3
✖︎
PCIe✖︎✖︎只走PCIe通道
通訊協定可用NVMe
查詢主機板規格表
SATA是那一代
查詢主機板規格表
SATA or PCIe通道
可能需要更新韌體
以支援NVMe

購買時以SSD插槽與接口來選,要確認相容。通常購買的考量如下:

2019年8月6日 星期二

Mac加入VBA寫的Excel巨集

在macOS 10.14.5(Mojava)下,對Excel 2019加入VBA寫的Excel巨集步驟如下:
  1. 開啟Excel並取消隱藏視窗 PERSONAL.xlsx 
  2. 點選 Developer > 點選 Visual Basic

2019年8月5日 星期一

Mac上Excel的PERSONAL.xlsb檔案消失

在macOS10.14(Mojava)上,若是儲存了放置巨集的檔案PERSONAL.xlsb並關閉,再來就找不到PERSONAL.xlsb這個檔案了...。解決方案參考《Excel for Mac can't find Personal Macro Workbook》,步驟如下:
  1. 關閉Excel
  2. 從Finder找到 Go > Go to Folder
  3. 輸入"~/Library/Containers"後按下Go
  4. 找到"com.microsoft.Excel"這個資料夾
  5. 選取上述的資料夾並刪除(Cmd-Del)
_EOF_

2019年8月2日 星期五

Windows上面安裝rJava

使用R語言處理Excel檔,背後會使用Java來轉換資料,其中一項就是rJava。這邊介紹如何在Windows 10上面安裝rJava:
  1. 使用 sessionInfo() 這個指令確認系統安裝R的版本是32-bit or 64-bit
  2. 下載對應32/64 bit的Java JDK;要注意安裝的R與Java的32/64 bit版本必須要一致。這個連結提供了64 bit offline Java的安裝檔

2019年8月1日 星期四

Mac開啟Excel的巨集

這邊介紹的是Excel 2019 for Mac開啟巨集(Macro)的方法。要編輯巨集,必須要把開發人員選項打開,步驟如下:
  1. 打開 Excel > Preference...
  2. 在右上角的搜尋輸入「Ribbon & Toolbar」,點擊進入
  3. 在右邊的「Customize in the Ribbon」裡面找到「Developer
  4. 勾選「Developer」後點選右下角的「Save」

2019年7月30日 星期二

Windows 7自動登入

一台Windows 7開機後讓某個帳號自動登入,步驟如下:
  1. 控制台 > 使用者帳戶 > 變更使用者帳戶控制設定
    • 「選擇電腦變更的通知時機」調整成「不要通知」
  2. WinKey-R,輸入netplwiz
    • 取消「必須輸入使用者名稱和密碼,才能使用這台電腦」
    • 按下「套用」
    • 輸入想要自動登入的使用者密碼
  3. 重新開機
需要圖文請參考讓Windows 7自動登入
_EOF_

2019年7月26日 星期五

元素週期表 Periodic Table

網路上可以找到的元素週期表有很多,這個由Michael Dayah做的動態元素週期表Ptable不錯用,包含了下述幾個頁面:
  • Wikipedia:不同週期(period, 列)與不同族(group, 欄)與單一元素都可直接連結。還有一個bar可以調整環境溫度,按下去可以看到在那個溫度的時候元素的相。建議把右上角的Electrons勾選起來,這樣字體比較大
  • Properties:相、熔點、沸點、電負度、電子親和度、價、解離能、半徑、硬度、密度、導電度、熱焓、含量、被發現時間等等,而且會根據這些特性的數值由淺至深上色
  • Orbitals電子如何填到電子軌域裡面,還可看到電子軌域長得樣子
  • Isotopes:每種元素的各種同位素
  • Compounds:每種元素形成的分子

2019年7月22日 星期一

Shell一行文:用底線取代檔名中的空白

許多程式在處理檔名有空格的檔案時容易出錯,下面一行指令可以將資料夾下面所有檔名中所有空格全部都取代成底線(_)
  • for f in *\ *; do mv "$f" "${f// /_}"; done

2019年7月21日 星期日

iPhoneXR黑屏無法開機,強制重開機

找了很多資料,對於iPhone XR黑屏(black screen, 整個螢幕全黑)都沒說可能發生的原因,只有說使用強制重開機可能可以解決。強制重開機(force restart)三步驟:
  1. 按一下音量(+)按鈕並迅速放開(約0.2秒)
  2. 按一下音量(-)按鈕並迅速放開(約0.2秒)
  3. 長按鎖定按鈕直到重開機

2019年7月16日 星期二

grep要注意部分匹配的問題

在使用grep用關鍵字抓文本資料的時候,要注意到部分匹配的問題,舉下面的例子:
  1. grep --color -f patterns.txt file.txt
  2. grep --color -xf patterns.txt file.txt
  3. grep --color -wf patterns.txt file.txt
此三個指令說明如下:
  1. 一般抓文本資料的方法,只要列在patterns.txt裡面每一行的式樣(pattern)有匹配到file.txt那一行裡面隨便哪個部分,就會把結果印出來
  2. -x, --line-regexp:必須要file.txt裡面整行都完全與式樣有匹配才印出結果
  3. -w, --word-regexpfile.txt裡面看起來像一個字(word)的與式樣有匹配才會印出結果。一個字的定義是被`[[:<:]]'與`[[:>:]]'包含一群字元

以下範例,首先是式樣(pattern)存成一個叫做patterns.txt的檔案

2019年7月9日 星期二

bioSyntax: 為生物文本上色的plugin

bioSyntax:提供文字編輯器的plugin,幫助生物文本上色,可支援的文本

上面是sublime, vim, gedit, less等文字編輯器可看到~

2019年7月6日 星期六

《Name of Love》

進撃の巨人 Attack on Titan season3 part2 ED - “Name of Love”(full)歌詞付き【MAD】, 4m23s


2019年7月5日 星期五

靈敏度 ✕ 特異度 ✕ ROC曲線

在開發檢測方法的時候,通常都會有許多參數可以調整。例如說:
  • 提高靈敏度Sensitivity:故意把預測陽性的數目增多
  • 提高特異度Specificity:故意把預測陰性的數量增多

這時候需要一個方法來估算某檢測方法的好壞。其中一種方式就是畫出某種檢測方法的ROC curve(Receiver Operating Characteristic curve見維基百科上面的範例圖):
  • y軸 = Sensitivity = TPR:故y值越大越好
  • x軸 = 1 - Specificity = 1 - FPR:x值越小越好

2019年7月4日 星期四

混淆矩陣之 Accuracy, MCC, F1 score

前面兩篇文章談及預測準不準確的測量如下:
這兩種都是要用多個數字來看預測準不準,這邊要介紹的則是用一個數值來看。要注意的是,因為只有用一個數字,所以一些極端的狀況下反而會有誤導。這些數值包含了:
  • ACCAccuracy準確率。數值在0到1之間,越大越準
    • 一般的檢測最愛拿這個當作標準,但如果實際有與實際無的數量差很多,使用ACC無法判斷檢測是不是好的。
  • MCCMatthews correlation coefficient,數值會在-1到1之間
    • 數值靠近0:代表跟隨機亂猜差不多
    • 數值遠離0:正的代表預測的很準、負值代表是反指標
  • F1 score:又稱為F-score或F-measure

跟之前一樣,先把混淆矩陣confusion matrix寫出來:

2019年7月3日 星期三

2019年7月2日 星期二

混淆矩陣之 Precision vs. NPV

上一篇談及《Sensitivity vs. Specificity》,主要是以實際有無為的數量當作分母來判斷檢測好不好。這篇談及的則是檢測出陰陽當作分母來判斷好壞。下面則是所使用到的混淆矩陣(Confusion Matrix):

真實情況
有, +無, -



陽性 Positive, P(真陽性, TP)(偽陽性, FP)(P=TP+FP)
陰性 Negative, N(偽陰性, FN)(真陰性, TN)(N=FN+TN)

上述表格裡面使用(小括號)圈起來的代表是要填寫自然數,裡面縮寫分別代表:

2019年7月1日 星期一

混淆矩陣之 Sensitivity vs. Specificity

判斷一個預測的準確程度,會先把實際情形與預測結果的數量畫出一個矩陣,這個矩陣稱之為混淆矩陣(Confusion Matrix),畫出來就是下列的形式:

真實情況
有, +無, -



陽性 Positive, P(真陽性, TP)(偽陽性, FP)
陰性 Negative, N(偽陰性, FN)(真陰性, TN)
(y=TP+FN)(n=FP+TN)

上述表格裡面使用(小括號)圈起來的代表是要填寫自然數,裡面縮寫分別代表:

2019年6月28日 星期五

台灣空軍的失事紀錄

回家開車閒晃的時候,聽長輩說小時候去水底寮找親戚時於夜間看到飛機撞山,在山上有三處火光。回來查詢了一下,找到下面的列表:
對照時間與地點,應該是:
  • 53.07.27,屏東枋寮,
    101中隊C-46(6008)、(6331)、(6340),集體撞山失事墜毀。
_EOF_

2019年6月27日 星期四

Atom編輯器使用Markdown

在Windows裡面使用Atom文字編輯器編輯Markdown文件,可以畫出Markdown格式。在Atom裡面使用下面的套件:
安裝方式則是點選上面的連結,點Install按鍵,就會打開Atom的套件管理,按下Install就可以安裝完成。要是不喜歡預設就安裝的Markdown Preview,也可以安裝:

2019年6月21日 星期五

Windows設定chrome的硬碟快取位置

先修改chrome桌面捷徑,按右鍵內容後修改目標:
  • "C:\Program Files\Google\Chrome\Application\chrome.exe" --disk-cache-dir="R:\Caches\Chrome" -- "%1"
再按Win-R,輸入regedit開啟登錄編輯程式,修改內容如下藍色所示:

2019年6月20日 星期四

Atom文字編輯器裡面垂直選取內容

Atom這套文字編輯軟體,想要做垂直選取:
  • vim裡面叫做Block Mode
  • sublime裡面叫做column selection
  • Ultraeditor裡面好像也叫做column selection
  • Textmate's裡面叫做Multiple Carets
  • BBEdit's叫做Block Select
要做這件事情,可以使用bigfive寫的外掛,進去點Install即可:
_EOF_

2019年6月18日 星期二

用mdadm掃描硬碟上的磁碟陣列磁區

mdadm這隻程式會去找/etc/mdadm.conf來看哪些硬碟有做磁碟陣列,但當拿到一個含有磁碟陣列的外接硬碟,可以用下面指令來自動掃描並啟動磁碟陣列:
  • mdadm --assemble --scan
若只是要看有哪些磁碟陣列,則是用指令:
  • mdadm --detail --scan
若只是開啟某外接硬碟分割區的磁碟陣列,用下面指令:
  1. mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1

2019年6月17日 星期一

Mac監控硬碟健康狀態SMART

在Mac裡面,看硬碟的健康狀態SMART,首先要安裝smartmontools。以下是Homebrew安裝法,在終端機內輸入:
  • brew install smartmontools
再使用下面的指令看硬碟的健康狀態:
  1. diskutil list
  2. smartctl -H /dev/disk0
  3. smartctl -a /dev/disk0

2019年6月13日 星期四

cp複製檔案的時候保留路徑結構

比較下面兩個複製檔案的指令:
  1. cp src/prog.js images/icon.jpg /tmp/package/
  2. cp --parents src/prog.js images/icon.jpg /tmp/package/
上面的差別如下:

2019年6月11日 星期二

Time and Date世界時間與日期換算

timeanddate.com挪威公司做的time zone網站,主要功能如下所示:
_EOF_

2019年6月10日 星期一

/dev/shm/下面的檔案消失了

第一次遇到放在/dev/shm下面的資料會自動被系統刪除。根據《16.04 LTS and /dev/shm/ Files Disappearing》這篇裡面作者的自問自答,是systemd裡面的設定,會把未登入的使用者裡面與interprocess communication (IPC)相關的資料刪除。設定放在:
  • /etc/systemd/logind.conf
修改裡面的參數成下面:

2019年6月7日 星期五

用find加grep找到內容有某關鍵字的檔案

要找在家目錄下面的檔案,內容含有某個關鍵詞KEYWORD最簡單的方式為:
  • grep -l KEYWORD $(find ~ -type f)
上述的指令若檔名或是資料夾有空格時會出錯,解決方案是:
  • find ~ -type f -print0 | xargs -0 grep -l KEYWORD
  • find ~ -type f -print0 2>/dev/null | xargs -0 grep -l KEYWORD

2019年6月6日 星期四

CentOS沒有程式在跑卻顯示高負載

有台CentOS 6的舊機器,使用top沒有看到甚麼高負載的程式但使用uptime卻會看到很高的負載量。通常這種狀況都會是nfs在搞鬼,大概會是下面這種狀況:
  1. 本地端使用mount nfs掛載了遠端機器的資料夾
  2. 遠端機器的nfs service掛了或是關掉了
  3. 本地端使用df, ls等去看掛載的資料夾,然後就一直在等待nfs回應
    雖然這些程式不怎麼吃資源,但卻會出現在負載上面

解決方案就是把nfs給掛好,或是刪除這些卡住的指令:

2019年6月5日 星期三

2019年6月4日 星期二

编程随想的博客

《编程随想的博客》建立於2009年,內容涉及翻牆、資訊安全、政治等。根據作者编程随想透露的訊息指出,他是在中國大陸工作的中國人,工作內容跟資訊安全相關。寫這個部落格的理由在此,這個部落格主要內容是:

隨選幾篇有意思的文章: