Python / wxPython 学习笔记 – Day 2 多线程 / 文本编码

转到Ubuntu学习已经很长时间,另外在VirtualBox虚拟机中安装了WinXP,以检测跨平台的问题。
关于多线程,我想实现的功能具体是:子线程运算,更新主线程进度条; 子线程调用外部进程获取返回值,更新主线程进度条

文本编码问题

我的第一个wxpython程序的第一个版本中,我为了在windows系统下正确显示中文,大量采用了

.encode('gbk')

的输出方式,然而这种方式在默认编码为UTF-8的Linux系统下无法正常显示。
so how to solve it?
下面是我的解决方法:
1, 在win下安装wxpython的unicode版本,直接传unicode字符串给wxpython相关方法,即可显示中文
2, 调用外部命令等必须严格按照系统编码的时候,可以采用下面的编码方式(当然,先import sys):

.encode(sys.getfilesystemencoding())

这样即可达到相当好的跨平台兼容性:)

Continue reading Python / wxPython 学习笔记 – Day 2 多线程 / 文本编码

Ubuntu:修复ThinkPad小黑的静音键

Felix安装了Ubuntu Lucid后发现调音量大小的两个媒体键有效,而静音键失效了。于是Google到百度空间一篇文章,解决了这个问题。因为那篇文章标点符号略有错误,因此Felix加以修正并发在这里。

编辑 /etc/default/grub 文件:

# vim /etc/default/grub

找到

GRUB_CMDLINE_LINUX=""

在其下方加入一行:

GRUB_CMDLINE_LINUX="acpi_osi='Linux'"

然后执行

# update-grub

重启后,静音功能就完美地回来了:)

参考资料:http://hi.baidu.com/lza_china/blog/item/dac42b24dceed127d50742b0.html

开启 Teredo 通道, 提前感受 IPv6 (for 非教育网用户)

当初Win7刚要出来时,Felix对其“DirectAccess”功能感到十分向往,从网上找到资料,发现这只是 Teredo 的一个应用。在其他平台上,也一样可以轻易开启 Teredo 从而访问 IPv6 资源。

×××希望各位公网用户不要再使用高校的isatap通道打开ipv6了,教育网的ipv6带宽很有限,而教育网的ipv4却不能出国,因此教育网ipv6是高校学生们获取我朝以外资源最实惠的途径了!×××

Windows XP(SP1+):

netsh interface ipv6 install
netsh interface ipv6 set teredo client

Windows Vista/7:

netsh int ter set state client

Debian/Ubuntu Linux:

sudo apt-get install miredo

Redhat/Fedora Linux:

su -c 'yum install miredo'
su -c 'service miredo-client start'
Continue reading 开启 Teredo 通道, 提前感受 IPv6 (for 非教育网用户)

在 Ubuntu Lucid 下请回 Sun Java6 Jre, 赶走 OpenJDK

Ubuntu Lucid 将 sun-java6-jre 系列包移出了源,java软件用 openjdk 系列包提供支持。然而在某些软件(比如FreeRapid)的使用中,openjdk还是喜欢出一些莫名其妙的错误(比如栈溢出),因此考虑请回sun-java6-jre。

具体方法很简单,首先添加 Ubuntu Karmic 的multiverse源:

sudo gedit /etc/apt/sources.list

在底部添加

deb http://ftp.sjtu.edu.cn/ubuntu/ karmic multiverse

保存退出后

sudo apt-get update && sudo apt-get install sun-java6-jre

完毕!

Continue reading 在 Ubuntu Lucid 下请回 Sun Java6 Jre, 赶走 OpenJDK

Ubuntu 下 fcitx 小企鹅输入法 相关资料存档

fcitx相关资料存档,包括安装/英文环境处理方法/乱码处理/美化。

一、fcitx安装

1, 卸载scim:

sudo apt-get purge scim

2, 安装fcitx:

sudo apt-get install fcitx im-switch

3, 设置fcitx为默认输入法:

sudo im-switch -s fcitx -z all_ALL
im-switch -s fcitx -z all_ALL

4, 新建文本文件 /etc/X11/Xsession.d/95fcitx_start:

sudo gedit /etc/X11/Xsession.d/95fcitx_start

并粘贴如下内容:

export LC_CTYPE=zh_CN.UTF-8
export XMODIFIERS=@im=fcitx
export XIM=fcitx
export XIM_PROGRAM=fcitx
fcitx

并且赋予执行权限。命令:

sudo chmod +x /etc/X11/Xsession.d/95fcitx_start

重新启动X(按下Ctrl+Alt+Backspace),或者重新启动系统后,小企鹅输入法应该就可以用了。

Continue reading Ubuntu 下 fcitx 小企鹅输入法 相关资料存档

Ubuntu Linux 字体相关——资料存档

此专题仅仅是存档字体相关的一些资料。

一、TTF字体安装

1、准备字体文件,比如simsun.ttc等,复制到自己的文件夹下的某个目录下。
比如,复制到用户的主目录~/ttf中(即/home/用户名/ttf)

2、依次执行如下命令:

sudo mkdir /usr/share/fonts/ttf
sudo cp ~/ttf/* /usr/share/fonts/ttf
cd /usr/share/fonts/ttf
sudo chmod 744 *
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -f -v

3、工作完成:)

二、字体文件存档

1、SimSun 宋体/新宋体(大家都熟悉 效果图就略了)
http://movieinfofetch.googlecode.com/files/simsun.ttc
2、ZhunYuan 准圆
http://movieinfofetch.googlecode.com/files/ZhunYuan.ttf

解决依赖关系,让Debian/Ubuntu下的boa-constructor使用wxgtk2.8

Debian/Ubuntu下的boa-constructor有对python-wxgtk2.6的依赖关系,即使安装了python-wxgtk2.8,boa-constructor仍然只调用2.6版本。Felix通过以下的步骤解决了这个问题(以Ubuntu为例):

1, 首先找到boa-constructor的安装文件,默认位置在 /var/cache/apt/archives/boa-constructor_0.6.1-9ubuntu1_all.deb
使用下面的命令将文件复制到当前目录:

cp /var/cache/apt/archives/boa-constructor_0.6.1-9ubuntu1_all.deb .

2, 建立文件夹boanew, 为解压deb文件做准备

mkdir boanew

3, 解压boa-constructor的deb控制文件:

dpkg-deb -e ./boa-constructor_0.6.1-9ubuntu1_all.deb ./boanew/DEBIAN

4, 解压程序文件:

dpkg-deb -x ./boa-constructor_0.6.1-9ubuntu1_all.deb ./boanew
Continue reading 解决依赖关系,让Debian/Ubuntu下的boa-constructor使用wxgtk2.8

修改BIOS设置解决ThinkPad系列笔记本电脑电流声问题

通常来说,笔记本电脑使用中发出噪音的部分,除了硬盘就是风扇了。然而有些笔记本电脑却还有第三个首要的“罪魁祸首”。

距离Felix给自己的小黑换上SSD过去了一个星期,每当夜深人静的时候,总觉得电脑左侧有滋滋滋的声音,在半夜相当令人头疼。经 @SimonGates 同学提醒,我才注意到这是“高压放电”声,也就是电源管理部分的内容。

Google了一把,发现解决方法多半是“Windows 设备管理器”里禁用USB设备的自动关闭特性,然而Felix用的是Ubuntu,不能这么做,于是只好另辟蹊径。

下面就是具体的解决方法了:
1, 重启,按F1进入BIOS设置界面
2, 进入 “Config”
3, 进入 “Power”
4, 尝试将下面的几个Power Saving Features 依次改为Disabled,分别按F10保存设置并重启,进入操作系统界面看看是否仍有电流声。

Felix的TP X200s在关闭了CPU的自动电源管理后,就彻底没有了滋滋的电流声,希望这个方法也能帮到大家:)

影片信息提取 —— 我的第一个wxPython程序

我的第一个在 Boa Constructor 下写的 wxPython 程序…

基本功能:
1, 输入影片名(中文/英文, 可以不输全) 输出影片信息
2, 从资源管理器拖放mkv文件到窗口, 输出影片信息+文件信息(分辨率 片长 MD5/SHA1/ed2k链接 等等)

***ChangeLog***
20100514 0.11a
增加制作par2包功能
hash可选
卡界面的事情移到子线程,多线程操作
增加制作人选择功能
完美实现跨平台兼容(WinXP/Ubuntu x64已测试)

20100329 发布第一个版本(v0.1a)

下载请移步 http://code.google.com/p/movieinfofetch/downloads/list

Continue reading 影片信息提取 —— 我的第一个wxPython程序

释放教育网的潜能! 教育网开启IPv6完全教程

IPv6不是一个传说, 它确实地存在于这个神奇的国度. —题记

首先介绍基本的 IPv6 协议安装方法, 以及实现常用接入方法的语句:

对于Windows XP用户:

安装ipv6的语句:

netsh int ipv6 install

对于Windows XP/2003/Vista/7用户:

禁用6to4:

netsh int ipv6 6to4 set state disabled

设置IPv6 DNS服务器:

netsh int ipv6 add dns "本地连接" <dns服务器地址></dns服务器地址>

双栈/原生IPv6接入:
无需特别设置
ISATAP隧道设置:

netsh interface ipv6 isatap set state disabled
netsh interface ipv6 isatap set router <isatap隧道服务器地址>
netsh interface ipv6 isatap set state enabled

固定IP设置:

netsh interface ipv6 add address "本地连接" <固定IP地址>;
netsh interface ipv6 add route ::/0 "本地连接" <网关地址> publish=yes

Tunnel Broker设置:
访问注册账户,记下获得的ipv6地址,并启用(enable)通道
然后在本机:

ipv6 ifcr v6v4 <本机IPv4地址> 
ipv6 adu 5/<获得的IPv6地址>
ipv6 rtu 2000::/3 5

其中:数字5是在执行“ipv6 ifcr v6v4 <本机IPv4地址> ” 时,系统生成的接口 index编号。
注意:Windows XP重启后上述配置参数不会保存,所以用户需要重新配置。

对于Linux用户:

ISATAP隧道设置(Ubuntu/Debian):

sudo apt-get install isatapd
sudo isatapd -r <isatap隧道服务器地址>

Tunnel Broker设置:

iptunnel add sit1 mode sit remote  local <本机IPv4地址> ttl 30 //sit1是属于tunnel的那个接口,可随便设,但不能用sit0
ifconfig sit1 up
ifconfig sit1 inet6 add <获得的IPv6地址>/128
route -A inet6 add 2000::/3 sit1
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
Continue reading 释放教育网的潜能! 教育网开启IPv6完全教程
QR Code Business Card