方便的 imageshack 上传脚本

自从有了 nopaste 脚本, 贴文字信息(特别是程序输出)就成了件很轻松的事 ── 只要灌到管道线就可以了. 但是贴图还是比较麻烦. 今日一番搜索, 找到了这个: http://www.terminally-incoherent.com/blog/2007/06/27/batch-upload-images-to-imageshack-using-perl/

#!/usr/bin/perl -w
use strict;
use WWW::Mechanize;
 
# suppress warnings about malformed forms
$SIG{__WARN__} = sub {} ;
 
my $url = "http://www.imageshack.us/";
 
my $mech = WWW::Mechanize->new();
 
foreach (@ARGV)
{
    $mech->get($url);
 
    $mech->form_number(2);
    $mech->field('fileupload' => $_);
    $mech->submit();
 
    # follow the link to see the image
    $mech->follow_link( text => 'Show', n => 1 );
    my @im = $mech->images();
 
    # display the URL of the uploaded image
    print $im[0]->url() . "\n";
}

将该网页所示的代码另存为一个脚本, 例如 imgshack , 别忘了加上x权限, 然后

imgshack imagefile_1 [ imagefile_2 ... ] 

成功上传后会输出url, 很方便.

ps: 作者在使用过程中遇到一个问题. 注意脚本中

$mech->form_number(2);

这一句. imageshack 貌似会不时调整上传页面的表单元素顺序, 所以如果某天这个脚本灵了, 可以试试将2改成其它数字(1, 3, 4 ... )

软响铃 ── 把beep换成音乐

很多人千方百计想关掉控制台(或X终端模拟器)的嘀嘀声. 我觉得有提示音不一定是坏事, 但是那个嘀嘀声听起来的确有点烦人. 而且在我的irssi中那个beep提示音实在是太小声了(而且也不好听).

经过一番寻找, 找到了这个softbeep. softbeep可以拦截多个发出beep的动作, 并将其转化成运行任意命令, 包括播放音乐.

softbeep可以拦截这些事件:

  1. 写入tty控制台的bell字符,就是平时所说的'\a'
  2. 基于gtk/gnome的程序对 gdk_bell() 的调用
  3. 基于Xlib的程序对 XBell() 的调用
  4. 基于curses的程序对 beep() 的调用

安装不多述. 启用softbeep很简单, 设置在环境变量 $LD_PRELOAD 中加入/usr/lib/softbeep/libsoftbeep.so, 或者用软件包提供的包装程序:

softbeep foo

softbeep完全是通过环境变量控制的:

SB_REMOVE_BEL 设为yes的话会丢掉TTY控制台的 '\a' 字符.
SB_RUN 事件发生时运行的程序.

如果使用 softbeep foo 的形式启用softbeep, 那么SB_RUN默认为sb-beep, 可以自定义SB_RUN的值, 但记着要用shell脚本包起来. 我为方便直接改了一下 /usr/bin/sb-beep

#!/bin/sh

FILE=/usr/share/sounds/pidgin/alert.wav

# if [ "$1" == "irssi" ] || [ "$1" == "xchat" ] ; then
#       FILE=/usr/share/sounds/email.wav
# fi

# use the player specified in $SB_PLAYER if defined

if [ -z "$SB_PLAYER" ]; then
        exec esdplay $FILE
else
        exec $SB_PLAYER $FILE
fi

从此烦人的嘀嘀声就变成音乐了~...

生日在郁闷中度过

今日下午本来约佐猫猫,点知个电脑老师突然要我补课..搞搞搞搞到差5多6点半..

原先林住5点9去会佢咖嘛..

出到来..见到猫,脸色不太好看
我都冇点解释了,解释多佐就变成推卸..于是就系甘面阻阻..
而加个心好内疚..好5安乐啊,10W个对5住 to 猫猫~..:(

只猫送佐一盆竹比我..好感谢佢啊~..thx 猫猫

彻底无言的学校防早恋规定

http://bbs.gz4u.net/read.php?tid=757624

彻底无言..特别是1,2项..希望不会在我地学校搞D甘的野

郁闷的二试

三个月前的那个上午..仿佛在重演......

其它的没什么值得说的,最主要讲一下蜈蚣那题.
开始时看到是模拟,而且也比教容易(是的,我没有理解错题意)于是便先拿下55分..
结果发现bug不断,而且由于数据太复杂,跟踪很困难.
在最后一刻,终于发现bug所在,可惜已经没有时间

这个bug是这样的

我在模拟时,错误的以为修改块的顺序是无关的,而问题就出在这里
例如,假设下面一条蜈蚣移动的方向是向右

如果从右到左模拟:
0001111100000 初始状态
0001111110000 把最右面(最前面)的复制到一格
0001111010000 清空旧的块
0000111110000 依此类推

如果从左到右:
0001111100000
0001111100000
0000111100000
0000000010000

这就是bug