查資料時,無意間發現 Google 有一系列的演講,整理出如何撰寫乾淨、好維護、可以測試的程式碼。
影片有很多段,已查不到播放順序,請各位自己挑選了看。
軟體開發、伺服器和生活瑣事
查資料時,無意間發現 Google 有一系列的演講,整理出如何撰寫乾淨、好維護、可以測試的程式碼。
影片有很多段,已查不到播放順序,請各位自己挑選了看。
安裝第二套作業系統並作多重開機,但把原來的開機程式蓋掉,開機選單一團亂,只好手動改。
Ubuntu 的開機選單設定放在 /boot/grub/grub.cfg,可以先用 update-grub (grub-mkconfig) 掃描現有可以開機的位置,並更新到 grub.cfg 設定檔:
$ sudo update-grub
# or
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
接個編輯 grub.cfg,改成需要的樣子存檔。存檔後還需要寫入 MBR,設定才能生效:
$ sudo grub-install /dev/sda
用 grep 搜尋檔案中出現的文字,通常會這樣寫:
$ grep STR fileToSeatch
不過當要搜尋的字串有特出符號,像是「-」,就會出現錯誤訊息:
$ grep "->getVal()" *
grep: invalid option -- '>'
原因是 grep 將「-」開頭的字串視為命令選項 (command option),去尋找「>get()」這個選項,而這個選項並不存在,所以導致錯誤。
在命令輸入前加上「–」,表示之後的參數都當作一般輸入而非選項 (end of option):
$ grep -- "->getVal()" *
要搜尋的字串,就算沒有空白,也建議用引號括起來。像是「>」、「&」等,沒加上引號會在 bash 解析時就發生錯誤:
$ grep > * # shoud be: grep ">" *
bash: *: ambiguous redirect
Xdebug 是一個在 PHP 上很好用的除錯工具,特別是 function calls tracing,可以很完整的列出執行流程。Xdebug 的介紹可以參考 Crboy 的文章:
要讓 Xdebug 在 PHP 開始執行時自動 trace function calls,只需要在 ini file 加上 xdebug.auto_trace = On 即可。若沒有系統權限,仍可以使用 PHP 的 ini_set() 設定 Xdebug 各項參數:
<?php
ini_set('xdebug.trace_output_dir', '/tmp/xdebug');
xdebug_start_trace(); // start tracing
// beginning of program
要注意的是,tracing 的設定會在 PHP 開始執行前便載入,所以使用 ini_set() 設定 xdebug.auto_trace 是不會起作用的:
<php
ini_set('xdebug.auto_trace', 'On'); // 沒有作用
ini_set('xdebug.trace_output_dir', '/tmp/xdebug');
// beginning of program
ps. 若 auto trace 已啟動,要記得定期清理 log,免得硬碟被吃光導致機器故障。
screen 可以在建立時,為 session 命名:
$ screen -S name
若日後需要修改名稱,可以先 attach session 以後,按下 C-a,在輸入指令:
:sessionname newName
之後 screen -r 就可以看到新的名稱。