重定向

此博客已停止更新,新址: http://blog.scicooking.net


2010年8月3日星期二

Linux 下网络支付

很久没更新了。。
系统:Ubuntu 10.04。
今天在当当上定了一套书HOW & WHY美国经典少儿百科知识全书,通用快钱使用广发信用卡支付的,相当方便。当然广发网银使用软键盘输入密码稍微有点不方便,但比起 Linux 下无法使用的国内多数的银行好多了。嗯,这是我第一次完全在 Linux 下完成全部流程的支付。
其实支付宝做的也相当的不错了,不过最后的支付密码需要使用控件,否则无法完成支付。据说有 Linux 下 Firefox 的插件,但貌似要手动安装。。
另外据说浦发银行也是支持 Linux 的。

支持 Linux 的银行:
  • 浦东发展银行
  • 广东发展银行

欢迎补充。

--- 8月27日更新 ---
广发自8月20日开始更改了登录方式,采用了落后的安全控件方式,将Linux用户拒之门外。。

2009年10月19日星期一

PPS Totem 插件的 PPA 源

deb http://ppa.launchpad.net/portis25/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/portis25/ppa/ubuntu karmic main


加入源后只需
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 27F5B2C1B3EAC8D9
sudo apt-get update
sudo apt-get install totem-pps

2009年4月25日星期六

crontab 随机更换壁纸

cron 两句话搞定:

*/10 * * * * export $(xargs -n 1 -0 echo </proc/$(pidof x-session-manager)/environ | grep -Z DBUS_SESSION_BUS_ADDRESS=) && /usr/bin/gconftool-2 -t string -s /desktop/gnome/background/picture_filename "`find $HOME/Picture/Wallpapers/ -name \*.jpg -o -name \*.png | sort -R | tail -n 1`"

说明:
export $(xargs -n 1 -0 echo </proc/$(pidof x-session-manager)/environ | grep -Z DBUS_SESSION_BUS_ADDRESS=) 是为了解决 cron 中无法使用 gconftool 的问题,因为 gconftool-2 需要使用 dbus。
gconftool-2 -t string -s /desktop/gnome/background/picture_filename "value" 更改壁纸
`find $HOME/Picture/Wallpapers/ -name \*.jpg -o -name \*.png | sort -R | tail -n 1` 在 当前用户的主目录/Picture/Wallpapers/ 下查找 jpg 和 png 文件,然后使用 sort 随机排序,tail -n 1 返回最后一条数据。

2009年1月15日星期四

Regular Expression (POSIX Extended)

Regular Expression (POSIX Extended)

模式的数学定义
给定集合U,若存在映射F,使得S=F(U)并且S⊆U,则映射F就是集合U上的一个模式(pattern).

介绍

注:从 PHP 5.3 开始这个扩展将被废弃,使用性能更好功能更多的 PCRE (Perl-Compatible Regular Expressions) 扩展。
PCRE 包括非贪婪模式、断言、条件子模式等不被 POSIX-extended 规则表达式 支持的语法。

规则表达式用于复杂的字符串操作。


Metacharacters

扩展规则表达式使用的元字符:
| ^ $ . * + ? ( ) [ ] { } \

. 代表任何单个的字符
^ 不匹配任何字符,用来表示一行的开始。比如 ^A 匹配以 A 字母开头的行。
$ 不匹配任何字符,用来表示一行的结束。比如 A$ 匹配以 A 字母结尾的行。
| 或者表达式
* 任何个数
+ 至少一个
? 最多一个

() 表达式分组

[] 范围,字符集
{} 计数器
\ 转义

[括号表达式]
[]方括号表示单个字符或者集合。比如 [ABC] 匹配任何含 A 或者 B 或者 C 的字符串。
如果方括号中首个字符是 ^ 的话,那么这个表达式表示匹配除了这些指定字符以外的字符串。比如 [^ABC] 将匹配不包含 A 和 B 和 C 的字符串。

[:digit:] 数字 0-9, 等价于 [0-9]
[:xdigit:] 16 进制数字 0-9, A-F, a-f.
[:alnum:] 字符数字 0-9 或者 A-Z 或者 a-z. 等价于 [0-9A-Za-z]
[:alpha:] 字母 A-Z 或者 a-z. 等价于 [A-Za-z]
[:blank:] 空白字符,仅空格、TAB.
[:punct:] Punctuation symbols . , " ' ? ! ; :
[:print:] 任何可打印字符,包括空格.
[:space:] 任何空白字符,空格、tab、换行、回车等.
[:graph:] 可打印字符,除了空格
[:upper:] 大写字母 A-Z. [A-Z]
[:lower:] 小写字母 a-z. [a-z]
[:cntrl:] 任何非打印字符


() 表达式组,会被捕获。
(.*) 0个任何个数任何字符。也就是任何东西!
(n|a) n 或者 a
[^a-z] 除了 a 到 z 之外的任何字符串.
注: ^ 作为例外规则仅在 [] 中的第一个字符位置的时候才起作用。不能用做 ^undesired_word 或者 ^(undesired_phrase)。

[_4^a-zA-Z] 下划线、4、^、大小写字母。这个 ^ 作为普通字符。

n? 0 或者 1 个,最多一个 {0,1}
n* 0 或者更多,任意个 {0,}
n+ 1 个或更多,至少一个 {1,}
n{2} 指定个数
n{2,} 不少于指定个数
n{2,4} 在指定的个数之间

?, +, * and the {} 这些计数参数不仅可用于单个字符,也适用于组()和范围[].

例子:

^.{2}[a-z]{1,2}_?[0-9]*([1-6]|[a-f])[^1-9]{2}a+$

表示:

^.{2} = 任何 2 个字符开头,
[a-z]{1,2} = 跟着 1 个或者 2 个小写字母,
_? = 然后是可选的下划线,
[0-9]* = 接着可能有数字,
([1-6]|[a-f]) = 接着 1 到 6 之间的数字或者 a 到 f 之间的字母,
[^1-9]{2} = 然后是非 1-9 的字符,
a+a+$ = 最后是至少一个 a 结尾.
nbsp; = 最后是至少一个 a 结尾.



正则替换 ereg_replace():

如果使用了分组,那么替换规则中可以用 \数字 引用这些分组。
0 代表匹配到的整个字符串。1-9 按顺序代表分组,最多表示 9 个。
分组可以嵌套,顺序按照开括号顺序计算(也就是最外层的在前)。

例子:
给 URI 字符串加上超链接:
[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]<a href="\0">\0</a>

匹配日期:
([[:digit:]]{4})-[[:digit:]]{2}-[[:digit:]]{2}
([[:digit:]]{4})-([0]?[1-9]|[1][0-2])-([0-2]?[0-9]|[3][0-1])

匹配任何 标签
<[^<>]*>


man regex
http://www.tin.org/bin/man.cgi?section=7&topic=regex
http://www.mkssoftware.com/docs/man5/regexp.5.asp

2009年1月10日星期六

ScribeFire 设置 Blogger 帐号

Windows Live Writer 写 blog 非常好用,而且可以设置 blog,这是微软出的最好的产品。
Ubuntu下目前没有好的替代品。因此拿 Firefox 的扩展 ScribeFire 凑合用吧,不过不能修改 blog 设置。
ScribeFire 设置 Blogger 帐号时,默认设置会提示失败,但没有显示任何具体信息。在试了几次之后发现一尝试登录连接就被重置,应该是我朝伟大的防火墙在起效。好在 Blogger.com 还提供 https 安全连接方式访问。 在 输入 API URL 的时候把 http 改成 https 后一切正常了。

2008年12月9日星期二

Sun xVM VirtualBox 安装和设置

Ubuntu 软件仓库中的 VirtualBox 是开源版本,即 virtualbox-ose, 开源版本缺少一些功能,比如 USB 支持。如果不在乎是否开源可以安装非开源版本。

安装

我们仍然通过方便的软件源安装:
1、添加 key:
wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
2、添加软件源:
deb http://download.virtualbox.org/virtualbox/debian intrepid non-free
deb http://download.virtualbox.org/virtualbox/debian hardy non-free
deb http://download.virtualbox.org/virtualbox/debian gutsy non-free
deb http://download.virtualbox.org/virtualbox/debian dapper non-free
deb http://download.virtualbox.org/virtualbox/debian lenny non-free
deb http://download.virtualbox.org/virtualbox/debian etch non-free
deb http://download.virtualbox.org/virtualbox/debian sarge non-free
deb http://download.virtualbox.org/virtualbox/debian xandros4.0-xn non-free

设置

1、要把当前用户加到 vboxusers 组中才能启动 virtualbox:
系统 -> 系统管理 -> 用户和组。先解锁,然后点管理组, 选择 vboxusers 组的属性,加入 当前用户到这个组。
或者命令帮当前用户加到 vboxusers 组:
sudo adduser $USER vboxusers
2、使用 USB 设备:
需要 vboxusers 用户能够存取 /dev/udev 设备权限
让所有用户都有权限访问 usb, 但是不安全, 编辑 /etc/fstab 加上:
# 对所有用户开放USB设备的读写权限
none /proc/bus/usb usbfs devmode=666 0 0

更好的方法: 8.04 hardy 编辑 /etc/udev/rules.d/40-basic-permissions.rules

# USB devices (usbfs replacement)
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664", GROUP="vboxusers"
SUBSYSTEM=="usb_device", MODE="0664", GROUP="vboxusers"

3、编辑 /etc/init.d/mountdevsubfs.sh
找到 Magic to make /proc/bus/usb work,把下面几行的注释去掉
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb


重启后就可使用 usb


无法捕获键盘和鼠标输入, 安装 scim-bridge-client-qt
sudo apt-get install scim-bridge-client-qt


参考资料:

2008年12月8日星期一

IEs4Linux 安装

IEs 4 Linux 使用 Wine 模拟器运行。
1、先安装 wine, 如果没有安装, 先按 Wine 安装 这篇文档安装 Wine。另外需要 cabextract
sudo apt-get update && sudo apt-get install wine cabextract
2、下载和安装 IEs 4 Linux:
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux



参考资料: