urlopen Errno -2

想玩玩爬虫, 写了点东西.

urllib2.urlopen('http://www.baidu.com/')

到这里的时候报错:

urllib2.URLError: <urlopen error [Errno -2] Name or service not known>

然后上网搜了一下, 得到的结论是这是因为 python 不能解析域名. 并且这是个和操作系统相关的 bug, 和 python 的代码无关(只出现的 Linux 上).

然后我就改 DNS, 把 DHCP 改成 8.8.8.8, 然后发现百度可以了, 但是我把请求改成谷歌又不行了. 我又尝试把 DNS 改成 192.168.1.1, 却又全都不行了. 当然, 都用 IP 不用域名是可以的.

我现在的想法是在请求之前设定使用的 DNS.

干 是福州电信的 DNS 挂了 换泉州的就好了

关于最近一次重装win7

遇到了一些麻烦问题, 解决办法记录在下.

1. 安装完成后重写 grub.

随意找一张安装光盘, 进入命令行, 无脑敲入:

mount /dev/sda6 /mnt #假设 sda6 是根目录所在分区. 如果有 /boot/ 什么的也挂上.
mount --bind /dev /mnt/dev #当时我就orz了
chroot /mnt
grub-install /dev/sda
update-grub

然后你想干什么都可以的了.

这方法好在你随便找张盘就能恢复引导, 不管里面有没有 grub, 什么版本的 grub.

2. win7 安装特别慢.

关了机子睡一觉. 爬起来再装.

貌似硬盘是有自我保护的, 长时间读写后性能会下降很多. 我被坑了一中午.

真搞不懂 windows 你有个毛好读的, 一直读一直读, 读个没完. 曾经看过, 是个 svchost, 参数我也看不懂= =..有的时候是 System 在读....

不知道是不是我的错觉, 在 xp 下装 win7 速度会比在 win7 下快很多.

3. win7 装一半当机了.

先直接重启看看能不能继续装. 不行的话看下一段.

把新写进去的 windows, users, program files 什么乱七八糟的通通删掉, 把 windows.old 里面的移回去, 然后就又可以开机了...恶霸的 windows, 居然在安装之前就直接写了 MBR...

其实我不是当机了, 是我掐电源了.

4. grub 引导 iso 安装 windows.

没成功. 求指导. grub4dos 说这个 iso 不被支持.

总觉得 grub4dos 各种但疼...

以下是私人内容: (仅供参考啊喂)

驱动: 基本上装上芯片组驱动 显卡驱动 声卡驱动 就好了

那些服务:

AMDEEU    
AE
BFE    感觉没什么用.
CNGKI    
COM+ES    似乎是必须的.
CB    可有可无, 多按即可.
CS    感觉很没用的样子.
DCOMSPL    应该有用.
DWMSM    没用.
DHCPC    必需.
DPS    没用.
DSH    没用.
DSH    没用.
DLTC    很没用但得留着.
DNSC    必需.
EAP    有用.
FDPH    没用.
FDRP    没用.
GPC    这么没用的东西居然不能改手动.
HGL    家庭组是什么?
HGP    同上.
IPH    有用.
NC    有用.
NLS    有用.
NLA    网络不稳定时用的吧, 还是留着好了.
NSIS    有用.
OF    没用.
PNRP    有用.
PNG    有用.
PNIM    有用.
PAP    必需.
PDES    没用.
P    有用.
PS    用于打印.
RPC    必需.
RPCEM    必需.
SAM    没用.
S    没用.
SC    没用.
SHD    没用. 一定要关掉!
SP    没用.
SSDPD    开下载必需.
S    有用.
SENS    有用.
TS    没用但是关不了.
TNBH    必需.
T    没用你懂的.
UPNPDH    开下载必需.
UPS    必需.
WA    必需.
WAEB    必需.
WD    没用.
WDFUDF    有用.
WEL    必需.
WF    没用.
WMI    必需.
WMPNSS    没用.
WS    用于索引, 有用.
WLANA    有用.
W    有用.
WU    没用.

debian wheezy 下编译 wine 1.4

 

wheezy 的软件仓库里没有 wine. stable 里有, 但是版本很旧. 下了源码自己编译.
似乎依赖的库很多, 虽然大部分是可以不需要的, 但还是记下来吧.
gcc什么的就不写了.
这两个包是必须的:
flex
bison
以下包是某些功能必须的:
libfreetype6-dev
libcapi20-dev
libgphoto2-2-dev
liblcms1-dev
libcups2-dev
libncurses5-dev
libgnutls-dev
libdbus-1-dev
libhal-dev
prelink
libsane-dev
libv4l-dev
libmpg123-dev
libopenal-dev
libldap2-dev
libxcursor-dev
libfontconfig1-dev
libgsm1-dev
oss4-dev
libxcomposite-dev
libxinerama-dev
libxrandr-dev
libxxf86vm-dev
libxi-dev
libcursor-dev
libxslt1-dev
gettext
libssl-dev
libjpeg8-dev
libpng12-dev
libxml2-dev
#gstringmer-0.10 development
libges-0.10-dev
#libtiff5-dev can't be used
libtiff4-dev
 
如有遗漏, 欢迎补充.
 
P.S.: 编译忘记把 -g 去掉了= =... i3 单线程编译了半小时.

 

linux 下编译 cocos2d-x

(刚才看到一篇写 win 下安装的教程...忍不住写了个 linux 下编译的指导.)

我的环境: debian wheezy xfce 4.8 linux 3.2.0-2-686-pae 

cocos2d-x 版本: cocos2d-1.0.1-x-0.12.0

#首先, 下载源代码.
wget http://cocos2d-x.googlecode.com/files/cocos2d-1.0.1-x-0.12.0.zip
#解压
mkdir cocos
unzip -d cocos/ cocos2d-1.0.1-x-0.12.0.zip
cd cocos
#编译套件必须有的.
aptitude install build-essential
#依赖的库 mesa zlib glfw
aptitude install mesa-common-dev zlib1g-dev libglfw-dev libglu1-mesa-dev
#这个版本的 Makefile 有大小写问题, 改掉.
sed "s/Linux/linux/g" CocosDenshion/proj.linux/Makefile cocos2dx/proj.linux/Makefile
#编译
./build-linux.sh

这代码里有好多 warning...不管它了...看花了眼的话重新跑下这个sh, 如果所有 .so 都是 up to date 的, 那就ok了.

***源码自带的第三方库(CocosDenshion/third_party)有在64位下有严重的问题***

自己写的项目编译的时候可以参考 tests/test.linux/Makefile .

amazing of 12/13

linux下关于NTFS和BTRFS的磁盘测试

系统:  Linux cyc-K52JU 2.6.38-12-generic #51-Ubuntu SMP Wed Sep 28 14:27:32 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

磁盘型号: Cenda C5 250G 5400rpm 480Mbps 8MB缓存

Cata 是 BTRFS, Win 是 NTFS, S 是 fat32. 都是新格的盘. Cata 所在的区域在 Win 所在的区域稍后.

[cyc@~]$ dd if=/dev/zero of=/media/Cata/1gb.file bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 39.4491 s, 27.2 MB/s
[cyc@~]$ dd if=/dev/zero of=/media/Win/1gb.file bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 61.3737 s, 17.5 MB/s
[cyc@~]$ dd if=/dev/zero of=/media/S/1gb.file bs=1024 count=1048576 1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 44.2059 s, 24.3 MB/s
[cyc@~]$ dd if=/media/Cata/1gb.file of=/dev/null bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 0.717568 s, 1.5 GB/s
[cyc@~]$ dd if=/media/Win/1gb.file of=/dev/null bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 11.8313 s, 90.8 MB/s
[cyc@~]$ dd if=/media/S/1gb.file of=/dev/null bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 1.53325 s, 700 MB/s
[cyc@~]$ dd if=/media/Cata/film/Top074.致命魔术.The.Prestige.2006.BDRip.2Audio.MiniSD-TLF.mkv of=/dev/null bs=1024 count=1048576
916542+1 records in
916542+1 records out
938539258 bytes (939 MB) copied, 20.5409 s, 45.7 MB/s
[cyc@~]$ dd if=/media/Win/gho/GHOSTXP.GHO of=/dev/null bs=1024 count=1048576652898+1 records in
652898+1 records out
668567654 bytes (669 MB) copied, 22.2883 s, 30.0 MB/s
[cyc@~]$ dd if=/media/S/Windows7\ 7600.16385.090713-1255_x86zh-cn_Retail_Ultimate_DVD.iso of=/dev/null bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 33.6511 s, 31.9 MB/s

结论: linux下读写NTFS太萎靡了....

samba学习笔记

本文主要是围观了鸟哥的 smb 教程的记录, 传送门: http://is.gd/UDHOqT.

鸟哥写得很好玩. 以后上水课的时侯我就看看鸟哥的博客. 我觉得他的文章格式也值得我学习(总比我这一团糟好).

samba 是 linux 下与 win 的 cifs 沟通的桥梁, 也就是实现了 windows 下设备和文件共享的功能.

samba 作服务器时需要运行服务 smbd. 配置文件为 /etc/samba/smb.conf. 配置文件可以设定 NetBIOS 名称, 工作组, 主机的注释, 资料编码, log 路径, 共享方式 (匿名share\ 用户登录user\ 外设服务器domain). 对于每个共享, [标示名称] ([global] 代表全局), 可以设定文件路径, 读写权限, 用户权限, 是否可视; 还有一些变量可以使用; 详细内容可以在 man smb.conf 中查到. 修改过配置文件后用 testparm 检测错误, 确认无误后重启服务 smbd, 使用 smbstatus 检查运行状态.

samba 作客户端时使用 smbclient. 它提供了一种交互模式, 可以使用 cd\ ls\ get\ put\ mget\ mput 进行操作. smbclient -L //IPorNAME 可以查看该主机的共享列表; 加入 -U 可以指定登录的用户. 更方便地, 可以把cifs挂载到本地, 使用 mount -t cifs -o username=username,passwd=password,uid=xxx,gid=xxx "//IPorNAME/share name/" /path2mount 来挂载, (该命令调用 mount.cifs 执行).

如果在共享名之中有空格或者单引号, 用双引号把整个包进去就可以了.

在 user 模式下, smb 登录的帐号要求与系统内的帐号一致, 相应的读写权限也必须有. smb 的帐号使用 pdbedit 进行管理.

后面讲到了印表机. 我没有印表机. 忽略.

后面讲到了 SELinux. 我没有 SELinux. 忽略.

后面讲到了 PDC 伺服器 (domain 模式. 我暂时不需要架设这种. 忽略.

下面提供一個範例. 這是我從學校服務器上摳來的.

[TeachingAdmin_Bachelor]
  comment = by yinchangqing,wangcaixia,yangdan,zhanghuijuan.(semi_public)
  path = /data/Semi_publicfiles/TeachingAdmin_Bachelor
  public = yes
  read only = yes
  valid users = yinchangqing,wangcaixia,yangdan,zhanghuijuan
  write list = yinchangqing,wangcaixia,yangdan,zhanghuijuan
  create mask = 0775
  directory mask = 0775
[TeachingAdmin_Master]
  comment = by linbingxuan,zhangweijin,tanmin,songyiyi,zhanghuijuan.(semi_public)
  path = /data/Semi_publicfiles/TeachingAdmin_Master
  public = yes
  read only = yes
  valid users = linbingxuan,zhangweijin,songyiyi,zhanghuijuan,tanming
  write list = linbingxuan,zhangweijin,songyiyi,zhanghuijuan,tanming
  create mask = 0775
  directory mask = 0775 
[%U's Home]
  comment = my private directory
  path = /data1/%G/Home/%U
  valid users = %U
  public = no
  writable = yes

一直一来我看 linux 的文档都非常慢. 今天终于发现原因了: 泥码 win 的文档都是图啊......

文中还提到了使用 quota 设置磁盘限额, 使用 iptables 设置防火墙, 使用 SELinux 设置文件访问权限. 有空去了解.

Last  edition: Mar 14

Fedora 15 触控板设置

我不知道这是Fedora的问题还是Gnome3的问题。

触控板默认是没有左键、中键、右键点击的,有时候没有鼠标就比较麻烦。

Gnome3里可以设置,但设置仅限于Gnome3内,KDE我没有装,反正在gdm是用不了的。

最近觉得Gnome3太淡疼了,于是换xfce用(KDE我用不习惯……),xfce里没有这项设置,三种点击一直用不了。

上网查了一下(Arch你的wiki写得真好),可以用synclient这个命令。

synclient TapButton1=1
synclient TapButton2=2
synclient TapButton3=3

大小写不敏感,等号两边不能加空格= =.. 

1是左键单击,2是中键单击,3是右键单击,TapButton1是单指点击,TapButton2是双指点击,TapButton3是三指点击。(抱歉之前写错了...也就是说, 是可以把两个不同的行为设置成相同的效果.)

但这只对当前有效。下次开机又要重新打,太麻烦了。

又搜了下,又在Arch的wiki上找到了方法,加到X设置里。(这里写得更详细)

但我脑残地加到了键盘的设置里。哭……

感谢upsuper,下面是他提供给我的synaptics.conf:

Section "InputClass"
      Identifier "touchpad catchall"
      Driver "synaptics"
      MatchIsTouchpad "on"
      MatchDevicePath "/dev/input/event*"
            Option "TapButton1" "1"
            Option "TapButton2" "2"
            Option "TapButton3" "3"
EndSection 

 

amule安装手记

突然想下片……发现是ed2k的,懒得重启……于是……

嗯对了 我是在fedora下。

我下的是code.google.com上面的amule-dlp

解压(话说我现在还是在nautilus下直接点的……画圈圈……)

./configure --prefix=/usr --enable-amule-gui --disable-debug --enable-optimize --enable-upnp --enable-geoip --enable-nls --enable-amulecmd --enable-alcc --enable-alc --enable-cas --enable-wxcas

然后告诉我找不到gdlib。到网上搜了一下,装了php-gd。后面还有好多,列个表在下面。

缺失组件对应表
gdlib php-gd
wx-config(wxWeight) wxGTK-devel
crypto cryptopp-devel
GeoIP GeoIP-devel
libupnp libupnp-devel

显然,有些不是必须的,比如libupnp,是因为开启了--enable-upnp所以才需要的。但是如果不装upnp的话……这不是自虐么……

好,幸亏咱有10Mps带宽的网络,这几个东西瞬间装完了。于是我好开心啊,make && make install 就可以结束了!可事实远比我想象得复杂。

Compiling amule.cpp
amule.cpp: In member function ‘virtual bool CamuleApp::OnInit()’:
amule.cpp:486:31: error: ‘wxHandleFatalExceptions’ was not declared in this scope

这源码有问题啊!于是我到网上去搜了搜,看到官网上的讨论,我真的真的全看下来了……楞没看懂。又搜了搜,找到一篇文章,要改代码。把src/amule.cpp:484的

#ifndef __WXMSW__

改成

#if wxUSE_ON_FATAL_EXCEPTION

或者直接删掉第486行。然后,make就过了。。。据说这是win下的函数,linux下不兼容。

然后make install 完成。

PS:编译的时候,4个线程轮流跳到100%,第一次听到风扇转了>.<。i3的cpu还是跑了好几分钟。突然想到如果i7的,单线程,那不是要更久吗囧囧。要想知道自己的cpu有多烂,搞份源码来跑跑就知道了。据说编译libreoffice得要一晚上……

参考:

在Fedora安装DLP版aMule,关联Firefox 3.6并解决中文乱码问题

在Fedora 14上編譯amule

Compilation fails on Fedora 14 beta (gcc 4.5.1)

转义字符表

\NNN     以ASCII码值表示的字符,NNN是三位八进制数。十六进制以x打头。
\\ \134 \ 反斜杠
\a \007 BEL 蜂鸣器响
\b \010 BS 退格
\c     不换行
\n \015 \012 CR LF 换行 与平台相关
\f \014 FF 换页
\r \015 CR 回车 光标移至行首
\t \011 HT 水平制表符
\v \013 VT 垂直制表符
\0 \000 NUL 空字符
\? \077 ? 问号
\' \047 ' 单引号
\" \042 " 双引号

ASCII码表可参考http://www.asciitable.com/

 

LastEdit:11.9.12