Archive for January, 2011

用 ruby 做url decode

January 31, 2011

最近用iGetter从离线迅雷的服务器下载文件时, 发觉文件名会成为这样的东西:

%C0%EE%BD%A1.(%B8%BD%D4%F9MV).%B7%E7%B4%B5%C2%F3%C0%CB

这是encode过的url。
于是必须进行url decode。发觉竟然没有一个现成的command line tool能用。
网上的资源中, 英文版的一般不能处理这样的字符串, 因为它是用GBK编码再encode的。
于是自己用ruby简单地写了一下:

#!/usr/bin/env ruby

# -*- coding: utf-8 -*-

require ‘uri’

require ‘iconv’

if ARGV.size <= 0

puts "Usage: ./urldecode url …"

exit

end

ARGV.each do |a|

str=URI.decode("#{a}")

puts Iconv.conv("utf-8", "gbk",str)

end

注意国内资源一般是在win下用gbk编码的, 所以带来了很多不方便, 直接url decode得到的并不是utf8编码的字串。
因此必须用iconv转换一下。

使用方法为:
./urldecode "%C0%EE%BD%A1.(%B8%BD%D4%F9MV).%B7%E7%B4%B5%C2%F3%C0%CB"

得到正确的字串为:

李健.(附赠MV).风吹麦浪

参考文档:
[1] http://www.javaeye.com/topic/250355
[2] http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

vim 匹配 latex 一个 block (environment)

January 26, 2011

想把型如

\caption{…

…}

这样的东西删掉.
必须做到:
1. multiple line (跨行匹配) => 使用 \_. 而不是 .
2. non-greedy (否则会到下一个block的`}’) => 使用 \{-} 而不是 *

所以写出来就是:

\\caption{\_.\{-}}\n

注意我用了\n 在最后面, 否则会匹配到\caption环境里面的某个`}’.
因为一般我caption后面不加东西. 所以使用\n作为终止判断.
当然也可以用$, 如果有空格则失效.
不过, 可以extend成后面带任意whitespace的版本. 此略.

很久没发文了… 发一个我的浏览器a-z提示的网址吧…

January 15, 2011

a: amazon.com, 我經常在這買東西. b: busey.com, C-U 地區的一間銀行.
c: cs.uiuc.edu/class/fa10/cs573/, 上學期上的算法課網址
d: dealnews.com, 找deal網站
e: ebates.com, cashback網站
f: facebook.com, 君要臣死臣facebook
g: google.com/calendar/render, calendar 重度依賴者
h: hertz.co.uk, hertz的英國站點(租車公司), 很驚訝竟然是這個東西 … 只是上次去vegas之前做的調查
i: illinois.edu, 敝校
j: jitapu.com, 有時上去看看吉他譜
k: kbb.com, kelly’s blue book, 二手車價格查詢
l: localhost:4080, 那個… 這個… mldonkey的admin web界面地址
m:

, 路癡之愛

n: 尚空! 尚空!
o: one-illinois.com, 現在居住地方的網站
p: pncvirtualwallet.com, 網銀地址
q: 還是空

r: renren.com, 人人你贏了
s: slickdeals.net, ft, 發覺我已經找deal上癮
t: twitter, 再加一個gossip上癮
u: uiucer.com/bbs, 學校CSSA的bbs
v: verycd.com, 找資源
w: wikipedia.org, 知識的源泉
x: xiaonei.com, 校內不是一個人在戰斗!
y: youtube.com, 娛樂休閒各種八卦
z: zzsound.com, 買音樂器材

另外數字的(出去空的):
1: 192.168.11.1: router 的 web 界面
5: 52internet.net/autocheck/, 免費查autocheck

over~