處理文字時, 偶而會需要將類似的東西串在資料庫表格的一個欄位裡或文字檔的一行文字裡。為了避免分隔符號和別的文字衝到, 從同事 P 那學到一個不錯的小技巧: 用看不見的字元分隔, 比方說 unicode 的 1 ~ 5 等。
用 Python 寫就是 "\u0001", 用 mysql 則是 char(1), VIM 會用 ^A 表示 (\u0002 則用 ^B), 最妙的是, Firefox 會用一個小方格在裡面填入 0001 表示它, 所以寫到資料庫後, 用 phpMyAdmin 看也不會有問題, 真是太貼心了。通常為了方便, 可能會用 "\u0001\n" 表示, 這樣在 phpMyAdmin 裡看時, 也會換行表示。
其它應用方式, 像是填入字串表示未定義時, 可以用 "\u0001UNDEFINED", 避免單用 "UNDEFINED" 可能會和這樣的內文衝突。而要用 mysql 取值時, 可配合 concat 表示: concat(char(1), "UNDEFINED")。
2011年5月22日 星期日
2010年3月19日 星期五
python -m SimpleHTTPServer: 測網路的好幫手
昨天才從 victor 那看到 Top Ten One-Liners from CommandLineFu Explained, 今天就用上其中一條。
測兩台機器之間是否網路正常、無防火牆阻檔, 最好的做法就是立即跑個 server, 從 client host 用 telnet 連線看看。於是在 server host 打下面的指令, 就會有個簡易 web server 跑在 port 8000:
再從 client host 打下面的指令連到 server:
python 內建這種模組也挺不錯的。
測兩台機器之間是否網路正常、無防火牆阻檔, 最好的做法就是立即跑個 server, 從 client host 用 telnet 連線看看。於是在 server host 打下面的指令, 就會有個簡易 web server 跑在 port 8000:
python -m SimpleHTTPServer 8000
再從 client host 打下面的指令連到 server:
telnet SERVER_HOST 8000正常來說會有「Connected to ...」的字樣, 接著隨便打串字按 enter 後會收到回傳 400 的網頁。
python 內建這種模組也挺不錯的。
2010年2月18日 星期四
用 rlwrap 幫任何命令列工具加上 code completion、command history
用慣 shell 後, 用命令列工具時總想按個 tab 就補完指令, 按上下就能搜尋過去打過的指令。遺憾的是, 不是每個命令列工具都支援這個功能。沒關係, 你的心聲 rlwrap (readline wrapper) 聽到了!!
在 Ubuntu 下安裝 rlwrap 的方法是.....沒錯, 和你猜的一樣:
另外可以編輯 /etc/rlwrap/sqlite3 存入關鍵字 (如 select、where、limit), 這樣每次執行指令時都能自動補完這些字。檔案格式是一行一個字。rlwrap 會到 /etc/rlwrap/COMMAND 找預設關鍵字, 也可另外用 -f FILE 指定關鍵字。
在 Ubuntu 下安裝 rlwrap 的方法是.....沒錯, 和你猜的一樣:
sudo aptitude install rlwrap啟動方式是:
rlwrap ARGUMENT COMMAND以 sqlite3 為例, 啟動方式是:
rlwrap -a -r sqlite3-a 表示不管原本的程式是否有用 readline, 都改用 rlwrap。 -r 表示記下所有打過和螢幕上出現的字彙。如此一來執行 「select * from my_table;」之後, 可以直接按 tab 補完 column name 或 table name 。
另外可以編輯 /etc/rlwrap/sqlite3 存入關鍵字 (如 select、where、limit), 這樣每次執行指令時都能自動補完這些字。檔案格式是一行一個字。rlwrap 會到 /etc/rlwrap/COMMAND 找預設關鍵字, 也可另外用 -f FILE 指定關鍵字。
訂閱:
文章 (Atom)
在 Fedora 下裝 id-utils
Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...
-
UbuntuCompilationGuide – FFmpeg 說明如何在 Ubuntu 上安裝 ffmpeg 並包含 libx264 (支援 H.264)。全部安裝和移除的指令都有了, 超方便的。實測的結果, 用 libx264 壓出來的檔案又小畫質又好, 是必要的元件。 ...
-
最近有需求讀 C/C++ 的東西, 試了 ctags, cscope 覺得不理想。問了一下收到許多回應 ( G+ 、 plurk ), 真是太感謝大家了, 減少入門摸索的時間。 試用的感想如下: grep 優點 : 好上手 缺點 : 陽春 安裝 : 內建於 L...
-
最近被迫在短時間內學會 strace、gdb 這些之前一直用不到的重兵器, 都還不熟練就是了。剛好使用 hgsubversion 時有些困擾, 雖說它和 svn 整合得很好, 無縫接好 pull / push , 但它不會顯示 mercurial 對應到的 svn 版本, 平...