2009年11月3日星期二

奥黛丽.赫本test from gmail(via flickr&blogger)

--
yaoms
Sent from Grottoes, VA, United States

2009年11月1日星期日

秋日的阳光

09年11月1日,摄于深圳。

--
yaoms

@bones7456 骨头好 *^_^*

2009年10月31日星期六

@bones7456 test from Gtalk
test from pingbot

我想上 twiiter ...

谁推荐一个好的翻墙方式啊?
--
yaoms
Sent from Shenzhen, 44, China

2009年5月29日星期五

这几个笑话让我一天的工作劳累跑了一半。~~

   ●自从宿舍里装上电话,我们就变成了"君子",君子动口不动手,当然更懒得动腿,有什么事宁可花点电话费,也不愿出门走动走动。我们屋有个小伙儿叫李 雷,暑假找了份工作,在一家网站做程序员。昨天他上班去了,有人打电话找他,我接的。我说李雷不在,对方问他回老家了吗?我说没有,对方说:"那你告诉 他,我是他同学,你让他回来给我打个电话吧,电话号码是××××。"我拿笔记了下来(后来我才知道,其实那是斜对过宿舍的电话,跟我们不太熟)。
  晚上李雷回来,我跟他说了电话的事,他说大概是高中同学打来的吧,于是就按那个电话回了过去。李雷是陕西人,电话一通他就问:"请问你们这儿有陕西的吗? " 接电话的人说:"我们这儿没有,我们对门倒是有一个,你等会儿啊,我给你喊......"
  马上,就听到楼道里大喊:"李雷,过来接电话,你老乡!"
   李雷愣了一下,跟我们屋老三说,我过去接个电话,这儿你帮我盯着,如果通了,就说我一会儿就回来。李雷过去了,老三拿起电话。没过几秒钟,里面就传 出" 喂,喂"的声音,老三马上说:"他出去了,你等一下啊!"然后推开门就喊:"李雷,这个电话通了,赶快回来。"李雷在那边等了会儿,见没反应就挂 了,回屋从老三手里接过电话,只能听到挂断后的"嘟嘟"声。"奇怪!"他郁闷地说:"怎么都没人接呢?"
  然后他拿起记号码的纸条,再次拨通那个号码:"你们这儿有陕西的吗......"


   ●我是云南大学的,2000级,就是马家爵那一级的。小马哥出事,但还没被抓到的时候,通缉令上都说协助公安机关抓获小马哥可以有多少万的奖励。大家都 很眼红,很想得到那大笔钱,上街都很注意路人的长相。有一天,出门坐在公共汽车上,人不多,只有一个人站着,忽然大家都盯着那个人看,我仔细一看,很像通 缉令上小马哥的样子,可能大家都看出来了,都是一副又紧张又激动的模样。气氛紧张到了极点,那人被大家看得都惊慌起来,愤怒地大叫一声:“我不是马家爵! 公共汽车司机很负责,果断地说:谁都不能下车,我把车开到派出所。大家摩拳擦掌,马上把所有车窗都关上。那人就一副很无奈的表情。到了派出所,司机神气地 对警察说:我车上有人很像马家爵,我马上把车开来了。那人委屈地对警察说:警官,还是我,今天我已经第二次被抓到你们这了。

  ●同桌感冒流鼻涕,但他忘记带手帕了,就不断把鼻涕用力吸入鼻子里。在黑板上写字的语文老师突然转过身来大嚷:“够了!给我停止!吵死了!”全班一片安静。老师又说:“到底是谁上课时偷吃面条还这么大声?”

   ●大一,一次去食堂打包子,谁知划卡机出了点毛病,一下划下去25块3,卖包子的哥哥鼓捣了半天也加不回去,于是可怜兮兮地说:“没事,我记得你,以后 常来,直到把多划的钱用完。”我只好同意了。可怜我上顿包子下顿包子地吃了一学期,包子哥哥还欠我2块3……最可气的是大学四年我竟然没找到一个女朋 友!!( 现在的学校食堂那还有这么便宜的包子了 )直到毕业,有一天我走在校园林荫路上,就听后面一帮女生指指点点小声道:“没错,就是他!!以后可别 找这样男朋友,天天去二食堂吃包子不给钱!!”

  ●一次去市场买菜,准备聚餐,一个韩国朋友买了生菜,要2块4,他把身上所有的零钱都给了小贩,还缺一毛钱,所以他对小贩说――
  “我的毛,都给你了,所以没有毛了。”
  小贩哑然,半天,回答――
  “你的毛我不要了。”

  ●掐着一只大公鸡的脖子却不敢下刀,踌躇良久,那只鸡竟然被俺掐死了。
 
  ●一天晚上和几个朋友喝酒,几个人都喝多了.一个到在路边睡着了,我们也抬不动他,就商量给他找些东西盖上,别着凉了.几天后见到他,他说第二天醒来发现身上放着三辆自行车。

--
yaoms

2009年5月17日星期日

2009年4月29日星期三

让mplayer支持更多的字符,使用 GB18030

以前配置 mplayer 中文字母的选项时都是按照前人的经验使用 subcp="cp936" 的方式,结果这样发现有些字幕文件不能完全识别,有部分行会读不出。

看 mplayer 的 manpages 才知道, subcp 是使用 iconv 来转码的。

再看 iconv --list 发现可以使用 GB18030 这个字符集。

cp936 是比较旧的一个字符集的代码页,对应的是 GB2312 ,很多生僻字都没有收录在内。而 GB18030 字符集是大字符集,收录了几乎所有的中文字符。使用这个字符集就会较少出现这个问题。

将 ~/.mplayer/config 文件中的 subcp = "cp936" 改为 subcp = "GB18030" 保存即可。

--
yaoms

2009年4月25日星期六

电信的垃圾宽带。。。


每天感觉网络时快时慢,一直以为是自己公司局域网里有电脑病毒引起的。今天偶然想上电信的网站上查点东西,输入 http://sz10000.com.cn 回车。结果出现了这个:

连续刷新了好几次都不行。。。看来电信自己那片地方都没管好。。


差不多一个小时过去了,还没有好转。-9:43
--
yaoms

2009年4月23日星期四

lca2008


http://picasaweb.google.com/kira0030/Lca2008#
--
yaoms
Sent from Shenzhen, 44, China

Ubuntu Linux Florida LoCo Team 佛罗里达的ubuntu爱好者们的派对


http://picasaweb.google.com/dantrevino/UbuntuLinuxFloridaLoCoTeam#
--
yaoms
Sent from Shenzhen, 44, China

从已有的linux系统中硬盘安装ubuntu

网上介绍硬盘安装 linux 操作系统的文章很多,大部分的步骤是:下载安装镜像(ISO)到 X盘(某 windows 分区)根目录,下载安装 Grub4os,修改 boot.ini 文件等步骤。这让很多人误认为,硬盘安装只能在 windows 系统基础上进行。其实使用已有的 linux 系统启动硬盘上的光盘镜像文件来安装一个全新的linux系统是很简单的,要比从 windows 启动少了好几步的操作呢。

以下我就以安装 Ubuntu 8.10(ubuntu-8.10-desktop-i386.iso) 为例介绍一下从 linux 硬盘安装另一个全新的 linux 系统的前期(从设置启动菜单起,到进入 linux 安装程序止)步骤:


  1. 准备安装镜像文件,将它放在一个安装过程中不会被删除的分区中,例如独立分区 /home : /home/ubuntu-8.10-desktop-i386.iso 。这个镜像文件可以从官方镜像网站通过 http/ftp 直接下载,也可以通过 BT 网络下载,还可以使用 jigdo 工具来制作一个安装镜像。具体下载方式和下载地址请使用搜索引擎查询。

  2. 从 iso 文件中提取 .disk 和 casper 两个目录。命令:
    sudo mount -o loop /home/ubuntu-8.10-desktop-i386.iso /cdrom
    sudo cp -rvf /cdrom/{.disk,casper} /home/

  3. 修改 /boot/grub/menu.lst 文件,添加以下内容到最下方(不包括蓝色文字):
    title Ubuntu 8.10 LiveCD
    root (hd0,5)
    kernel /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-8.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
    initrd /casper/initrd.gz
    boot

  4. # (hd0,5)是 /home 分区的 grub 名字,可以用以下方法查到:
    sudo grub
    >find /ubuntu-8.10-desktop-i386.iso

  5. 保存后,重新启动系统 sudo reboot, 在启动时的 Grub 菜单中可以看到一个新的条目 : Ubuntu 8.10 LiveCD, 选中后就可以进入 iso 上的安装程序了。

--
文章书写仓促,未经详细测试,如果有什么问题,请进入 irc://irc.freenode.net/#ubuntu-cn 和我联系。
yaoms

2009年4月21日星期二

X 剪切板 or selection 访问程序 xsel

原来是使用 xclip 的,不过发现无法正确取出选择的中文字符。。。
ee介绍的 xsel 解决了这个问题,用法和 xclip 基本一致。 xsel -i  xsel -o
--
yaoms

2009年4月19日星期日

为 ubuntu/gnome 添加全局快捷键

tux.png您可能已经注意到,gnome中默认的键盘快捷键程序不是非常的有价值。你只能给一个预定义好的命令列表指定键盘快捷键(不能为自己写的脚本定义快捷键--inutshell注)。并非真正的有价值 的。本文介绍一种稍微复杂的方式,能够定义最多12个自定义命令。(有人说他甚至能够定义32个的自定义命令,但是我最多只能定义12个。如果有人能够定义12个以上,请联系我让我知道。)

另外我所描述的"普通方式"和"稍微另类,但是对您来说可能不难"的方式是两种相对独立的。就是说,组合这两种方式,你可以添加24个自定义快捷键而不是12个。

普通方式

  • Alt+F2,输入 gconf-editor 命令然后点运行,启动这个配置编辑器。
  • 导航到 apps->metacity->global_keybindings
  • 把你想添加的每一个快捷键依次写在每一个 run_command_xvalue 字段中,x 是从1到12的数字。控制键必须写在<>之间,例如 Ctrl+Alt+1 组合键写为 <Ctrl><Alt>1win键写为 <Super>
  • 导航到 apps->metacity->keybinding_commands
  • 把上一步指定的快捷键对应的要执行的命令写入 command_xvalue 中,x 和上一步的 x 要一一对应。
  • 新指定的快捷键会立即生效。
举例:使用 Win键+e 启动 emacs ,需要以下步骤:
导航到 apps->metacity->global_keybindings
run_command_1 的值改为 <Super>e
导航到 apps->metacity->keybinding_commands
command_1 的值改为 /usr/bin/emacs

稍微另类,但是对您来说可能不难

  • 如果你正好在用 compiz ,你可以通过稍微不同的一个界面(更漂亮,也更易用?不知道作者的意思--inutshell)做和上面一样的设置。
  • 启动 System->Preferences->Advanced Desktop Effects Settings (系统->首选项->高级桌面效果设置,即 compiz 配置程序)程序。
  • 导航到 Commands 标签页。
  • 在这里,你可以做和上面一样的快捷键设置。

另一个比较"底层"的方式

如果你喜欢通过直接编辑配置文件来改变自己的配置,你可以直接编辑这两个文件:
~/.gconf/apps/metacity/global-keybindings/%gconf.xml
~/.gconf/apps/metacity/keybinding_commands/%gconf.xml
如果你选择了这种方式,估计也不需要我来介绍语法和修改步骤了,不过请注意修改之前先备份。(自己摸索吧。--inutshell)


本文翻译自: http://www.gsmblog.net/lang-en/linux-howtos/41-linux-howtos/84-adding-universal-shortcuts-in-ubuntugnome.html

2009年4月18日星期六

AR242x 802.11abg 无线网卡在ubuntu8.10下不能识别的问题

launchpad-logo-and-name-hierarchy.png
症状是这样的,在安装完系统后,发现系统不能直接发现内置的无线网卡。
lshw 的输出中能看到无线网卡。 iwconfig 的输出里却没有。

搜索,在launchpad发现了解决方式:

wget http://snapshots.madwifi-project.org/madwifi-hal-0.10.5.6-current.tar.gz
sudo apt-get install build-essential linux-headers-$(uname -r)
tar -xzf madwifi-hal-0.10.5.6-current.tar.gz
cd madwifi-hal-0.10.5.6*/
make
sudo make install
sudo modprobe ath_pci

this should install the kernel module (similar to a driver in other platforms) to interface with your card.

Then if all is working, to enable the module to be loaded at boot use :

sudo echo "ath_pci" >> /etc/modules


具体链接: https://answers.launchpad.net/ubuntu/+question/66991

2009年4月14日星期二

Linux下java1.5+中文字体的设置方法

简单的方法:
1 .建立目录:$JAVA_HOME/jre/lib/fonts/fallback;
2. cp中文字体到刚才建立的目录中,或者在这个目录中建立到中文字体的连接;
3. 大功告成。
如仍有问题,export JAVA_FONTS=$JAVA_HOME/jre/lib/fonts即可。

复杂的方法(原文地址)
Sun JRE 1.5.0版的中文字体设置
2005年 3月11日
Sun公司的JRE(JAVA运行库)1.5.0版采用的字体设置方案跟1.4.2版的相去甚远。如果设置不当,Java程序中的中文会表现为方格。
本文给出了一般性的字体设置方法,并且在最后给出了本机测试通过的字体配置文件以供下载。

首先介绍一下其字体配置文件的加载方案。其加载顺序为(JavaHome指JRE的根目录,下同):
JavaHome/lib/fontconfig.OS.Version.properties
JavaHome/lib/fontconfig.OS.Version.bfc
JavaHome/lib/fontconfig.OS.properties
JavaHome/lib/fontconfig.OS.bfc
JavaHome/lib/fontconfig.Version.properties
JavaHome/lib/fontconfig.Version.bfc
JavaHome/lib/fontconfig.properties
JavaHome/lib/fontconfig.bfc
其中,OS字段可以是:
Windows: “98″, “2000″, “Me”, “XP”, “2003″。
Solaris:空。
Linux: “Sun”, “RedHat”, “Turbo”, “SuSE”。
而Version字段指该OS的版本号。
对于Slackware,你完全可以用Solaris的方案,也就是用:
JavaHome/lib/fontconfig.properties
做为自己的字体配置文件。

在这些配置文件中,仅.properties文件是文本文件。其格式跟JRE1.4.2版的不同。文件分为几段,并在每段开始时标明。
我们需要关注的仅有两段:Component Font Mappings和Search Sequences。
前者指定字体,后者指定要使用的properties的搜索顺序。
知道了这些,配置起来就简单了。

首先,设置字体文件,一般来说,Slackware 系统的字体配置文件在
/etc/fonts/fonts.conf 里面设置,我比较习惯将额外的中文字体放
在 /usr/share/fonts下面,为了节约空间,在JRE的字体目录
JavaHome/lib/fonts下 建立一个符号连接,指向我用的中文字体,
(比如,宋体Simsun.ttf):

ln -s /usr/share/fonts/simsun.ttf simsun.ttf

然后运行字体库生成命令: mkfontscale,生成需要的字体库文件
fonts.dir:

JavaHome/lib/fonts# mkfontscale
JavaHome/lib/fonts# mv fonts.scale fonts.dir

然后,转到目录JavaHome/lib下,随便找一个.properties.src文件,用文本编辑器打开,并编辑如下:

# Copyright 2003 Sun Microsystems, Inc. All rights reserved.
#

# Version

version=1

# Component Font Mappings

serif.plain.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
serif.bold.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
serif.italic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
serif.bolditalic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
sansserif.plain.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
sansserif.bold.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
sansserif.italic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
sansserif.bolditalic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
monospaced.plain.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
monospaced.bold.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
monospaced.italic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
monospaced.bolditalic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialog.plain.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialog.bold.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialog.italic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialog.bolditalic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialoginput.plain.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialoginput.bold.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialoginput.italic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialoginput.bolditalic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
dialoginput.bolditalic.zh-1=-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0

# Search Sequences

sequence.allfonts=zh-1

# Exclusion Ranges

# Font File Names

# AWT X11 font paths

上面这个文件中最重要的是字体名,也就是:-misc-simsun-medium-r-normal–0-0-0-0-p-0-gb18030.2000-0
这个东西,你可以根据fonts.dir里面的内容,选取一个合适的中文字体
使用。

然后按照上面所述的文件名格式保存在这个目录下。如Redhat系统的就保存为fontconfig.RedHat.properties, WindowsXP的就保存为fontconfig.XP.properties,不知道自己系统是什么的,比如,
Slackware,就直接保存为 fontconfig.properties以此类推。

现在,启动Java程序看看,漂亮的JRE1.5的中文界面是不是出来了?

参考资料:

原作者资料:
http://addone.blogchina.com/blog/article_17203.216643.html
本机(SuSE Linux 9.1 personal+JDK-1.5.0)测试通过的fonts.dir及fontconfig.SuSE.properties文件(.tar.gz格式):
http://blog.blogchina.com/upload/2004-10-29/20041029103119811400.gz

Sun公司对JRE1.5.0版的中文字体设置的官方说明:
http://java.sun.com/j2se/1.5.0/docs/guide/intl/fontconfig.html

2009年4月11日星期六

ubuntu下切换输入法的新发现 ^_^

偶然发现, Alt+~ 和 Ctrl+space 都能切换输入法

--
yaoms
Sent from Shenzhen, 44, China

2009年4月10日星期五

记录几个好用的firefox插件和脚本

  • 油猴 GreaseMonkey 允许用户在特定的网站上执行用户脚本,定制个性化的页面。
  • 油猴辅助插件 Greasefire 自动发现对当前浏览的网站有效的油猴脚本,脚本来自 userscripts.org
  • 广告拦截 Adblock Plus 可以拦截网页中的广告,可以订阅广告列表,也可以自定义拦截规则。
  • wap网页浏览 wmlbrowser 做手机网站开发有用的一个工具。
  • xhtml mobile 同上。
常用的几个油猴脚本:
  • Google Reader Wider Screens gr宽屏脚本,可以让阅读区域更宽阔。
  • Gmail Air Skin 2(with ads-block) gmail皮肤,带广告屏蔽功能。
  • Google Reader - Colorful List View GR彩色列表皮肤。
--
yaoms

2009年2月19日星期四

Java: Exception in thread main java.lang.NoClassDefFoundError

Common error that beginning java authors may experience.

    Exception in thread "main" java.lang.NoClassDefFoundError:

    You try to run a little java program and you get this blasted error. I first got this error when running our little hello world program.

    This occurs because the classpath is not setup or referenced correctly.

    Executing your program using this command should correct the problem:
    java -classpath . helloworld

    where helloworld is the name of your compiled class.

    This tells java that your classpath is your local directory.

http://www.tech-recipes.com/rx/826/java-exception-in-thread-main-javalangnoclassdeffounderror/
--
yaoms

2009年2月17日星期二

建行USBKey的NC问题--(windows XP下,使用非admin组用户登录的读不到证书。)

今天想为支付宝充值,却发现折腾半天支付的时候显示"尊敬的客户,请插入正确的USB KEY证书!"。还以为驱动程序又有问题(上次出过一次问题,不记得具体症状了,95533的技术人员让我重装USBKey的管理程序搞好的),就找出那张cd再卸载安装一遍(期间免不了重启电脑)。谁知这次问题没有解决,还是一样的提示。。。

琢磨半天突然想到我现在用的是一个受限用户,不会又让我遇到一个不考虑小用户的软件吧?立马切换过去,在打开3个窗口,点击4次链接,输入3组用户密码后,终于发现问题没有了。。。。

看来想要离开admin组躲下清静还真不容易。。


--
yaoms

2009年1月18日星期日

python 学习中遇到的问题

class a:
  def __init__(self):
    pass
class b(a):
  def __init__(self,name=None):
    a.__init__(self)
    self.name=name

在继承中,子类要覆盖父类的方法,这时调用父类的方法为什么必须加上self? python不是会自动加么?

str() 和  repr() 的区别?

is 关键字和 == 的区别。 a='hello';b=a;c=a[:];a is c; a is b; a==b; a==c??

2009年1月16日星期五

linux命令:镜像一个http站点

wget -m http://hostname/path

或者
lftp -c 'mirror -c http://hostname/path'

python 中的正则表达式模块 re

import re
p = re.compile(r', (\d{1,3})%')
if p.match('100% up, 23% down'):
    print 'ok'
print p.search('100% up, 23% down').groups()

python 中使用 sleep 函数

from time import sleep
sleep(10)

python 获取 shell 命令的输出

有两种方法。
一种是Popen:

import subprocess
output = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE,shell=True).communicate()
print output[0]

 
另外一种则可返回状态与调用的shell命令的输出结果

import commands
status, output = commands.getstatusoutput('ls -l')
 
Thanks to sin :)
-----
延伸:通过 dir(commands) 可以得知,实际上 有 getoutput 这个只获取输出的简单方法的。

2009年1月13日星期二

如何显示昨天的时间? linux,shell,date

date -d yesterday
date -d 'now - 1 day'

linux主机做网关,iptables脚本。

eth0绑内网IP,eth1绑外网IP
以下内容加入自启动脚本:
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables --flush INPUT
/sbin/iptables --flush FORWARD
/sbin/iptables --flush POSTROUTING --table nat
/sbin/iptables --policy FORWARD DROP
/sbin/iptables --table nat --append POSTROUTING --out-interface eth1 --source 192.168.0.0/24 --jump MASQUERADE
/sbin/iptables --append FORWARD --in-interface eth1 --match state --state ESTABLISHED,RELATED --jump ACCEPT
/sbin/iptables --append FORWARD --source 192.168.0.0/24 --jump ACCEPT