今天 MOPCON 的投影片,題目「API Design Optimized for Mobile Platform」:
Month: October 2012
把 screen 的 BIG5 換成 UAO (Unicode-At-On,Unicode 補完計畫) 版本...
目前 Ptt 上使用者用的編碼不是單純的 BIG5,而是 BIG5 加上 Unicode 補完計畫的版本 (拿了 BIG5 的造字區去對應某些常用的缺字)。
如果用 BIG5 去看假名就會變這樣:

所以在 Ubuntu (系統內建的 Terminal) 或是 Mac OS X (用 iTerm2) 上 Ptt (以及 Ptt2) 時都是用 BIG5-HKSCS 編碼,可以顯示日文假名:

不過還是可以看出來漢字不太行,所以還是去找了 UAO 的方案...
第一個想法是直接換掉系統的 BIG5,反正只剩下 BBS 用途要用了,就一次換掉。不過找了半天沒看到現成的工具,雖然在「Mozilla 系列與 Big5 中文字碼」有表可以轉,但還是懶的改...
另外一個是 GNU Screen patch,依照「Screen + Unicode-At-On」這篇的方式,可以生出一個 UTF-8 terminal + converter (GNU Screen),效果就是這樣:

可以看到漢字也出現了... 來找看看要怎麼把 patch 包進 FreeBSD ports 好了...
Ubuntu 躲在 Juniper SRX 後面 NAT 連 Plurk 很慢的問題...
Ubuntu 在 Juniper SRX 後面透過 NAT 連 Plurk 會很慢,因為會 TCP three-way handshake 建不起來 (timeout),找了半天居然是 RFC1323 的問題...
方法是在 /etc/sysctl.conf
內關掉 TCP Timestamps:(桌機就隨便關了 ~_~)
net.ipv4.tcp_timestamps=0
然後 sysctl -p 生效。
FreeBSD 上試用 pkgng (下一代的 package 管理系統)...
pkgng 是 FreeBSD 下一代的 package 管理系統,試著改善十幾年的 package 系統。
對於 package 本身:
對於 pkgng 的管理來說:
- 本來的
/var/db/pkg
改用 SQLite 管理,metadata 加上 index 後很多查詢的效率變好,而且也可以預期之後的工具應該會善用 trigger 連動,對於開發管理工具也會變方便。 - pkgng 內建的 pkg 指令就有各種工具可以用,包括 upgrade 自訂自己的 PACKAGESITE。
目前還有不少工具在發展,不過常用的 portmaster 已經可以在 compile 時勾選測試了,就拿來測看看。
要注意的是,pkg 1.x 之間不保證穩定性 (相容性):
Any package metadata changes are allowed, so long as it is always possible to upgrade from pkg-1.x to pkg-1.x+1. Best efforts should be made to ensure compatibility is maintained as far as possible.
看起來還不適合上 production,不過以目前 1.x 可以先測試了...
用程式產生論文,這次是數學領域...
好像隔一陣子就會有人成功 XD
SCIgen 可以生出 CS 領域的論文,而這次則是 Mathgen 產生數學領域的論文 XD:「Randomly Generated Math Article Accepted By 'Open-Access' Journal」。
論文的 PDF 則是在這:「Independent, Negative, Canonically Turing Arrows of Equations and Problems in Applied Formal PDE」。
可以在 AWS VPC 內開 Micro Instance 了...
之前在 AWS VPC (Virtual Private Cloud) 能開的最小台機器是 m1.small,而 AWS 總算是宣佈可以在 VPC 裡開更小台的 t1.micro 了:「Amazon VPC now Supports Micro Instances」、「Launch EC2 Micro Instances in a Virtual Private Cloud」。
剛好可以拿來當 VPC 的 NAT server 來用...
Google Chrome 上的 Cookie 隱私機制...
最早用 Firefox 的時候 cookie 都是設成 Keep until I close Firefox,然後再把需要 login cookie 的網站設為白名單。
比較早的 Google Chrome 沒有內建這個功能,必須透過 Vanilla Cookie Manager 設定每次啟動時清掉...
前陣子發現 Google Chrome 內建這個功能了,很開心的把 Vanilla Cookie Manager 移除掉,改用內建的功能做,結果發現 Google 系列的服務 (像是 Google Reader 與 Gmail) 常常被登出,而維基百科左側的展開偏好也會被 reset,其他的網站到是還算正常...
花了些時間看,找不到原因,只好換回 Vanilla Cookie Manager...
bash auto completion 下增加 hostname...
bash 的 auto completion 預設只吃 .ssh/known_hosts
的內容,而我想讓他加上 yp 的 hosts,查了一下發現這篇 2008 年的文章:「Auto-complete hostnames with using bash」。
因為我的 yp 已經進了 Git,所以我就這樣設就好:
export HOSTFILE="$HOME/git/kkyp/hosts"
在 Ubuntu 下即時編輯 Markdown 語法:ReText
找了找資料,發現用 apt-get install retext
直接裝 ReText 就可以了,開起來以後選 Live preview 的功能就可以即時看結果了:

官方的 screenshot:

除了支援 Markdown 以外,還支援 reStructuredText。
PS:Markdown 語法可以參考中文版文件:「Markdown 語法說明」。
把 SSH 換成 Mosh
Mosh 是一個取代 SSH (OpenSSH) 的工具,官方網站上是這樣介紹:
Mosh is a replacement for SSH. It's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.
Mosh 最大的特性是透過 UDP 加密傳輸 (AES-128 OCB mode),而且不綁定 IP address 後設計出這些特性:
- 筆電休眠後再打開電腦就可以直接連上。
- 登入 VPN 造成 IP 改變後也沒關係。
另外 Mosh 模擬了 local echo 機制,就算在 latency 偏高的網路下也還是可以感覺到不錯的反應速度。
不過是到了 1.2 之後支援 --ssh
這個參數才變得好用,在 client 端只要這樣跑 (假設 ssh port 在 1234):
mosh --ssh="ssh -p 1234 -v" gslin@server.example.com --server="env LANG=en_US.UTF-8 mosh-server"
Mosh 就會用 ssh 登入後自動執行 mosh-server 取得 shared key 給 mosh-client 用。如果本來就有使用 public key 機制的話就跟原來沒差了 :p
預設吃 port 60000-61000 其中的一個 UDP port,所以記得開 firewall...