I am LAZY bones? AN ancient AND boring SITE

2006年 10月 的归档

gdeskcal 和 gdesklets

gdeskcal:就是右上角的那个日历,感觉不错,还有很多皮肤可选。
gdesklets:是一个桌面工具的集合!蛮有意思的,桌面上其他的东西都是它弄出来的,还是贴图来得实在。
由于附件有大小限制,不得不缩小了一下图像,可能不太清晰了。


几则 小文,摘自《读者》。

1+1=3,是文学,
1+1=2,是数学,
1+1=0,是哲学。

口袋里没钱,心里也没钱的人,不痛苦;
口袋里没钱,心里却有钱的人,最痛苦;
口袋里有钱,心里也有钱的人,最烦恼;
口袋里有钱,心里却没钱的人,最幸福。

有人留下脚印;
有人描述脚印;
有人解释脚印。
前者是企业家;
中者是作家;
后者是经济学家。

自己改的下载百度新歌TOP100的脚本。哈哈!

这是我自己改的下载百度新歌TOP100的脚本,哈哈。小的不才,以前从没有写过shell脚本,如有什么不妥,请不吝赐教!
由于对某些服务器(特别是限制了单线程速度的服务器),wget下载速度太慢了。脚本默认使用axel多线程下载工具进行下载,如果没有axel,可以执行sudo apt-get install axel进行安装,或者把含有“axel”的两行注释,用下面“wget”的两行代替即可。

代码:
#!/bin/bash
#Copyright (c) 2005 ubuntu.org.cn
#License: GPLv2
#原脚本见http://forum.ubuntu.org.cn/viewtopic.php?t=2391&sid=910a60e55961be5f927b82595c2ddc29
#
#由于baidu的问题,导致原脚本不能正确下载,所以由 bones7456 再次修改,欢迎大家使用。
#wget太慢了。脚本默认使用axel多线程下载工具进行下载,如果没有axel,可以执行sudo apt-get install axel进行安装,或者把含有“axel”的两行注释,用下面“wget”的两行代替即可。#mp3的地址
SOURCE=”http://list.mp3.baidu.com/list/newhits.html”

#保存mp3的目录
SAVE=”${HOME}/baidump3″

#下载重试次数
TRYCOUNT=2

#临时目录
TMP=”/tmp/${USER}”

#创建下载目录
if [ ! -d “${SAVE}” ];then
mkdir -p “${SAVE}”
fi

#创建临时下载目录
if [ ! -d “${TMP}” ];then
mkdir -p “${TMP}”
fi

echo “开始下载百度最新100首歌曲列表”
wget -O ${TMP}/mp3.html ${SOURCE}
echo “下载百度最新100首歌曲列表完成。”

#转换网页编码
iconv -f gbk -t utf8 ${TMP}/mp3.html |\

grep “<a href=\”http://mp3.baidu.com/m” |\

#将mp3list.txt所有开头的空格去掉
sed -e ‘s/ *//’ |\

#将mp3list.txt所有开头的tab去掉
sed -e ‘s/\t*//’ |\

#将mp3list.txt所有全角空格去掉
sed -e ‘s/ //g’ |\

#将所有的回车符去掉
sed ‘:a;N;$!ba;s/\n/,/g’ |\

#在td>,后面加上回车符,一行表示一个mp3文件。
sed -e ‘s/,<td/\n<td/g’ |\
sed -e ‘s/td>,/td>\n/g’ |\

#删除<td width=”30%”> <td> </td> <td…FFFFFF”> <p> </p>
sed -e ‘s/<td width=”30%”>//g’ |\
sed -e ‘s/<td>//g’ |\
sed -e ‘s/<\/td>//g’ |\
sed -e ‘s/<p>//g’ |\
sed -e ‘s/<\/p>//g’ |\
sed -e ‘s/<td.*”border”>//g’ |\

#删除</a>…”_blank”>
sed -e ‘s/<\/a>.*_blank”>/-/g’ |\
sed -e ‘s/<\/a>.*_blank>/-/g’ |\
#删除)
sed -e ‘s/<\/a>)/<\/a>/g’ |\

#删除&
sed -e ‘s/\&\;/\//g’ >${TMP}/mp3list.txt

#得到:<a href=”http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=Baby%20Baby%20tell%20me%20%CD%F5%D0%C4%C1%E8″ target=”_blank”>Baby ,Baby tell me-王心凌</a>

#取得行号,循环
line=$(awk ‘END{print NR}’ ${TMP}/mp3list.txt)
i=1;
while((i<=line));do
downed=0;
mpline=`awk ‘NR=='”$i”” ${TMP}/mp3list.txt`
url=`echo $mpline | sed -e ‘s/<a href=”//g’ | sed ‘s/\ target.*//g’ | sed ‘s/”//g’ | cat`
name=`echo $mpline | sed -e ‘s/.*_blank”>//g’ | sed -e ‘s/.*_blank>//g’ |\
sed -e ‘s/<\/a>//g’ | sed -e ‘s/\//-/g’ | sed -e ‘s/:/-/g’ | sed -e ‘s/”/’\”/g’ | cat`

#检查是否已经下载过这首歌,如果下载过,放弃
if [ -e “${SAVE}/${name}.mp3” ] || [ -e “${SAVE}/${name}.wma” ]; then
echo -e “\e[1;6m\e[1;31m发现 ${name} 下载过,忽略,继续下一首。\e[1;6m\e[00m”
((i++))
continue;
fi

echo “开始通过 $url 下载 $name”;
wget -O ${TMP}/down.html $url
echo “获取 $name 下载列表完成。”;

#down.txt为有效的下载地址
iconv -f gbk -t utf8 -c ${TMP}/down.html | grep “onclick=\”return ow(this)\”” |\
sed -e ‘s/.*<a href=”//g’ | sed -e ‘s/” target=”_blank”.*//g’ > ${TMP}/down.txt

#size.txt为有效的下载文件大小
iconv -f gbk -t utf8 -c ${TMP}/down.html | grep “M<\/td>” |\
sed -e ‘s/<td>//g’ | sed -e ‘s/ M<\/td>//g’ > ${TMP}/size.txt

#down.txt与size.txt合并而在的down_size.txt文件中字段之间以”`”作为分隔符
paste -d ‘`’ ${TMP}/down.txt ${TMP}/size.txt > ${TMP}/down_size.txt

#排序
sort “+1nr” ${TMP}/down_size.txt > ${TMP}/down_size_sort.txt

#去掉后面的尺寸
sed ‘s/`.*$//’ ${TMP}/down_size_sort.txt > ${TMP}/temp.txt

##### 析取出mp3 的下载地址或 wma的下载地址 ##############
grep -i “word=mp3” ${TMP}/temp.txt > ${TMP}/down_mp3.txt
grep -i “word=wma” ${TMP}/temp.txt > ${TMP}/down_wma.txt

downline_mp3=$(awk ‘END{print NR}’ ${TMP}/down_mp3.txt);
downline_wma=$(awk ‘END{print NR}’ ${TMP}/down_wma.txt);
echo -e “\e[1;6m\e[1;31m发现 ${downline_mp3} 个名为 ${name}.mp3 下载地址。\e[1;6m\e[00m”
echo -e “\e[1;6m\e[1;31m发现 ${downline_wma} 个名为 ${name}.wma 下载地址。\e[1;6m\e[00m”
# 初始化计数器
j=1;
# 优先下载mp3格式的歌曲
while((j<=downline_mp3)); do
mp3=`awk ‘NR=='”$j”” ${TMP}/down_mp3.txt | sed -e ‘s/ /\\ /g’`
echo -e “\e[1;6m\e[1;31m正在下载${name}.mp3\e[1;6m\e[00m”
#echo -e “\e[1;6m\e[1;31m中转页面地址为${mp3}\e[1;6m\e[00m”
wget -O “${TMP}/transit.html” “$mp3”
realURL=`cat ${TMP}/transit.html | grep “<li class=\”li\” style=\”margin-right:10px;\”>” | sed ‘s/.*href=”//’ | sed ‘s/” target=”_blank”>.*//’`
#echo -e “\e[1;6m\e[1;31m真实下载地址为${realURL}\e[1;6m\e[00m”

axel -n 7 -a -o “${TMP}/${name}.mp3” “${realURL}”
#wget太慢了。但是如果没有安装axel,可以把上面一行注释掉,用下面一行代替
#wget -c –tries=$TRYCOUNT $realURL -O “${TMP}/${name}.mp3”
if [ “$?” = 0 ]; then
if [ `file -ib “${TMP}/${name}.mp3” | sed -e ‘s/\/.*//g’` = “audio” ]; then
mv “${TMP}/${name}.mp3” “${SAVE}/${name}.mp3”
downed=1;
break;
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.mp3”;
((j++))
fi
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.mp3”;
((j++))
fi
done

#如果下载成功继续下其余的歌
#continue用于跳过循环体中的后续命令
if [ “$downed” = 1 ] ; then
((i++))
echo -e “\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m”
continue;
fi

# 如果没有mp3格式的则下载wma格式的歌
j=1;
while((j<=downline_wma)); do
wma=`awk ‘NR=='”$j”” ${TMP}/down_wma.txt`
echo -e “\e[1;6m\e[1;31m正在下载${name}.wma\e[1;6m\e[00m”

#echo -e “\e[1;6m\e[1;31m中转页面地址为${mp3}\e[1;6m\e[00m”
wget -O “${TMP}/transit.html” “$wma”
realURL=`cat ${TMP}/transit.html | grep “<li class=\”li\” style=\”margin-right:10px;\”>” | sed ‘s/.*href=”//’ | sed ‘s/” target=”_blank”>.*//’`
#echo -e “\e[1;6m\e[1;31m真实下载地址为${realURL}\e[1;6m\e[00m”

axel -n 7 -a -o “${TMP}/${name}.wma” “${realURL}”
#wget太慢了。但是如果没有安装axel,可以把上面一行注释掉,用下面一行代替
#wget -c –tries=$TRYCOUNT $realURL -O “${TMP}/${name}.wma3”
if [ “$?” = 0 ]; then
if [ `file -ib “${TMP}/${name}.wma” | sed -e ‘s/\/.*//g’` = “application” ]; then
mv “${TMP}/${name}.wma” “${SAVE}/${name}.wma”
downed=1;
break;
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.wma 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.wma”;
((j++))
fi
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.wma 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.wma”;
((j++))
fi
done

((i++))
if [ “$downed” = 1 ] ; then
echo -e “\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m”
else
echo -e “\e[1;7m\e[1;41m下载 $name 失败\e[1;7m\e[00m”
fi
done
rm -fr ${TMP}
exit 0

转一篇关于汉语的文章。

  最不喜欢听一瓶子不满半瓶子摇的人讲汉语的坏话。什么“汉语不精确了”,“汉语不能细化了”。记得的本人都中学的时候,语文课本上堂而晃之地写着:“走拼音化道路是汉语的必然趋势。”其中最主要的一条理由便是,英文可以打字,而汉语不能。现在回想起来真可笑。随着计算机技术的发展,汉字的键盘输入速递已远远超过英文,而且还在虽这技术进步而不断快速提高。可英文?滞步不前了吧。

现代所有学科领域,中国都有很好的学者,没听说哪位因汉语“不精确”而搞不好研究
的。中国的火箭照样可以精确升空,中国的原子弹照样可以精确爆炸。所有的英文科技文献都可以翻译成汉语。所有的英文科技文献都可以翻译成汉语。汉语文献影响力正随着国力的增强而在世界范围内增强。

下面举个最简单的例子来显示英文的笨拙:本人曾问系里的几个教授“长方体”如何用
英文讲,可这几位母语是英文的工科教授竟说不知道,接下来连问几个本地的研究生,结果他们也不知道。着实令我大吃一惊!现在我要问读者:您知道么?反正不是Cube,Rectangular…。后来,我倒是真的在字典里找到了该词,可现在又忘了,原因是它太生辟。感叹,英文真是笨人的语言,试图给天下每一事物起一个名字。宇宙无穷,英文词汇无!!!
词汇如“光幻觉”、“四环素”、变阻器”、“碳酸钙”、“高血压”、“肾结石”、“七边形”、“五面体”都只有专业人士才会。根本不可能象汉语那样触类旁通,不信?去亲自问问母语是英文的人好了。英文是发散的。搞的一些基本概念如“长方体”也只有专家才会讲!怪不得英文世界里专家那么多,而且都那么自信;是啊,一般人连他们的基本术语如“酒精绵球”“血压计”都不会讲。生活在英文世界真是对无知无奈!可悲可怜!

英文是一维的,是密码语言。写英文是编码,读英文是解码。细想想:如把英文的a、b、c、d、e换成1、2、3、4、5,并没有什么原则上的区别。按上边的对应,如一开始就把cab写成312,用一样的读音,又有什么不可以?汉语就不同了,是二维的(纸面上的最大维数),最大限度地利用了纸面的几何空间。每个汉字就是一幅画。试问从一幅画上得到的信息快,还是从一行密码中得到的信息快?

国家汉字的扫盲标准是1500个字,理工科的大学生一般掌握2000个汉字。就凭这2000个字,大家可以读书、看报、搞科研。可在英文世界里,没有 20000个字别想读报,没有30000个字别想把周刊读顺,大学毕业10年后的职业人士一般都懂80000字。新事物的涌现,总伴随者英文新词,例如火箭(ROCKET),计算机(COMPUTER)等,可汉语则无须,不就是用“火”驱动的“箭”么,会“计算”的“机”么!可英文就不能这么干,不能靠组词,原因是“太长”了。如火箭将成为“FIRE-DRIVEN-ARROW”,计算机将成“COMPUTAIONAL-MACHINE”等。人的视角有限,太长的字会降低文章的可读性与读者的理解能力。

目前,英文词汇已突破40万,预计下世纪中叶,将突破100万大关。而汉语则相对稳定,现在中学生还可以琅琅上口地读屈原的楚词。英文就难了,太不稳定。现在的人们读沙士比亚的原著已困难重重,更不用说读400年前英国诗人乔叟的诗了。学GRE的时候,注意到很多韦氏字典收录的词汇竟是本世纪件初的新词,如“Gargantuan”取自拉伯雷的小说。这也不奇怪,毕竟英文 400年前才统一了拼写。

为汉语辩护!呼吁那些糟蹋汉语的人注意以下事实:
(1)联合国5种文字的官方文件中最薄一本一定是汉语;
(2)汉语的精确性已为蓬勃发展的中国科技事业所证实;
(3)计算机语音输入最具有希望的是汉语;
(4)汉语是稳定的是收敛的,英文是不稳定的是发散的;
(5)汉语是二维信息是生动的是高效的,英文是一维信息是密码型的是枯燥低效的。
(6)在英文世界里能读文学名著是一件了不起的事,不是所有受过大学教育的人都能干的。如阅读中用英文描述的非州的一些植物真是艰涩无比,一般英美人也只能囫囵吞枣而已;可在中文世界里,又有谁会对仅有中学学历的人读完四大名著而感到惊奇?
(7)当今虽是英语文明的蓬勃期。但在历史的长河中,So far,英文世界的文明史远比汉语世界的文明史短。
为汉语骄傲!更为坚信汉语时代即将到来的中国人的热情与信心而欢呼 !!!