今天晚饭吃得晚,顺便带了篮球去操场玩。估计是天冷的原因,或者又临近考试了,操场上人很少。可能是好久不玩的缘故,原先能投的最远距离,现在感觉投起来有点费劲。中间有个小朋友过来一起玩,聊起来竟然是 8 字班的,已是 90 后了,顿感沧桑啊!走的时候发现脱下来的外套已经像结冰一样有一层硬硬的感觉了。
走到 14 食堂的时候,抬头发现天上有几个亮点在移动,有点偏黄,一点声音都没有,应该不是飞机。那会是什么呢?不是风筝吧,看高度不像,现在一点风都没有在校园里哪能放这么高?以前在回龙观倒是看过别人放风筝的,一排彩灯,开始没意识到是风筝,愣是纳闷儿了半天。好奇心下便横车当场,瞅了起来,还排了张照片,后来有人路过看到也停了下来,有人认为是风筝,不过亮点移动着移动着就灭了,不清楚是没电了还是飞的太高了被云层挡住了..

细看应该能看出来,有三个小白点
分类 流水小帐 | 没有评论 »
平时碰到的参数和返回值多是基本类型(比如整型/指针或者 void 之类的),刚看到标准还支持返回结构体。
返回值为结构体的情况
定义函数:
struct zzz myfunc(int arg1, int arg2, int arg3){
struct zzz a = {};
return a;
}
则在调用该函数时,调用者在自己的栈上分配一段大小为 sizeof(struct zzz) 的内存,并把该内存的地址作为第一个参数传给 myfunc,所以 myfunc 接收到的参数实际上有 4 个,第一个为调用者分配用来存储返回值的地址,后面三个依次为正常值. 不过这些由编译器来实现,对开发者来说没有任何影响.
[注]如果 struct 内只含一个基本类型也同样是如上的过程
函数参数为结构体的情况
定义函数:
void myfunc(int a, struct zzz b, int c){
return;
}
则调用者在参数压栈时,会把 b 的内容直接压栈,内存中为(从右向左压栈):
高地址
| c | sizeof(int)
| b | sizeof(struct zzz)
| a | sizeof(int)
低地址
标签:c
分类 技术文章 | 没有评论 »
[本文对 pyqt4 4.3.3 版本有效,后续某版本中已修正,但是 ubuntu 8.04 apt-get 安装的版本当前仍为 4.3.3]
在用 pyuic4 把 qt-designer 生成的 ui 文件转化为 python 文件时,如果有 widget 指定了 icon,生成的 python 文件使用时会报错,主要是因为 pyqt4 对 icon 的处理有问题。
解决办法比较粗暴,直接修改的 pyuic4 的源码。我的python是2.5,以下路径需要改为自己版本下的路径
注意: 如果复制使用,需要修改代码缩进
1. 修改 /usr/lib/python2.5/site-packages/PyQt4/uic/properties.py
找到 _iconset 的定义,原先只有一句话:
return QtGui.QIcon(prop.text.replace("\\", "\\\\"))
把它改成:
newicon = self.factory.createQObject("QIcon", "icon", (), is_attribute = False)
for mode in ("normal", "disabled", "active", "selected"):
for status in ("on", "off"):
v = prop.findtext("./%s%s" % (mode, status))
if v is None:
continue
getattr(newicon, "addPixmap")(QtGui.QPixmap(QtCore.QString.fromUtf8(v)),
getattr(QtGui.QIcon, "%s%s" % (ascii_upper(mode[0]), mode[1:])),
getattr(QtGui.QIcon, "%s%s" % (ascii_upper(status[0]), status[1:])))
return newicon
2. 修改 /usr/lib/python2.5/site-packages/PyQt4/uic/Compiler/qtproxies.py
找到 QFont 的定义,大约在 261 行左右,在下面照抄一行 QIcon 的定义
class QIcon(ProxyClass): pass
标签:pyqt4
分类 技术文章 | 1 条评论 »
中午骑车去食堂,迎面并排来了两个女同志。我往右靠靠,靠近我的那个也往右,我再往右,她还往右。我右边是停着的汽车啊,她骑车逆行怎么还往我这边躲车?
没来得及想多,迎面贴着过去了…结果听见她在后边哼哼,回头一看,我晕,原来是 lx…
到了食堂,迎面碰上杨林。要了个砂锅,刷卡的时候师傅问我,多少米饭?我说还有米饭么?他看了看光光的饭盆,哦没了,哈哈!
分类 流水小帐 | 没有评论 »
Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!
分类 流水小帐 | 没有评论 »
不用说,看看前面的文章日期就知道,我已经有完整的两个月没有来这里了,而两个月前的文章,也不过是为了做一下技术笔记。前两天 blog down 了还幸亏有朋友告知,以前我一直呆上边,即使没有留言还可以看访问记录。
突然有一种失去了自我的感觉,早上八九点起床,十点多到办公室,然后晚上十二点左右到家,再上网看看有没有技术更新,写写程序,基本要到两三点。而lp早上五点多起床,晚上十点多就该休息了,只能,下午下了班来找我一起吃个晚饭,然后她先回家。那天看着辛苦劳累的lp,想想自己什么都没为她做,却也很无奈,很愧意的跟lp说,对不起,一如既往的重视你,我现在连自己都找不到了。
今天周六,去上班,昨晚有意早关机睡觉,思路比较好,写东西一直比较顺,然后快下班之前很愉悦的想把今晚留给自己。不料,本来急盼有自己的时间,可以今天如愿,想来想去,却不知道用来干嘛了。我想干什么?我有什么心愿?平时总觉得忙,可是不忙了我能干什么?却也真的想不出来,竟有一丝丝的忧伤,然后想起聚餐时朋友提到blog,想想已经好久没有去朋友的blog敲门了。
周三的时候妈妈给我打电话,问她在家忙啥,说同村有个人去世了,刚去看完殡回来。去世的人家跟我家隔一条街,今年才四十多岁,孩子没我大,却要从此扛起这个家来了。妈妈还是不放心的跟我说,别老急着挣钱,身体要紧,不能把身体搞坏了。
分类 流水小帐 | 没有评论 »
好久不来,发点生活趣事。。。
1.结婚当天,在婚庆公司。跟lp还有伴郎伴娘一起过去,忙活了半天,司仪看时间不早了,着急的问lp,“新郎呢?怎么还不来?”
2.lp 大学同学来喝喜酒,在桃李三。我身穿西装,席间刚一出门,两个穿西装的人路过门口,扭头跟我说了一句,“给我找个三人的包间”。我说,不好意思,我不是服务员。“啊?我看你跟我穿的差不多”,我晕
3.某次跟几个朋友在桃李三大厅里吃饭,遇到有人包桌喝喜酒。饭毕离席,途径大桌时,突然有一个背对我们的人站起来跟我握手,“好久不见啊”,此人看上去四十多岁,穿西装打领带,同行之人皆诧异,然后又听到一句,“有空去我那里吃饭”,众人羡之,不曾出门便纷纷问我是谁,得知是我认识的桃园某窗口师傅老乡时,皆扑
4.住回龙观,十三号线是主要出行工具。曾总结道,“只要能挤的上去,并能挤得下来,地铁还是一很好的交通工具的”。某次五道口下车,车门打开后身边的人都不下车,生怕下不去,赶紧往外挤,使了几下劲儿没动,发现背包(斜背的)被身旁的两个人夹着,于是头也不回往身后扯着继续挤,挤了几下感觉不对劲儿,回头一看,扯的是旁边人的书包。。。
大学期间被取笑的事情:
1.跟同学玩 CS,突然有人扔了个烟雾弹,等我醒过神来已经横下了,于是宿舍里有人唏嘘我的技术,我很不甘的大喊,“哼!我被烟了!”
2.宿舍看跆拳道教学视频,猛见师范做了一个720,不由猛叹:这人腰真好!
欢迎补充:)
分类 流水小帐 | 没有评论 »
实验室服务器有两个网卡,一个绑定 IP 166.111.136.A 直接接入校园网, 另一个绑定 IP 192.168.1.B 接在交换机上,交换机上同时还接有一个路由器 C,该路由器的 WAN 口接在 ADSL 上。
eth0: 166.111.136.A/24
eth1: 192.168.1.B/24
先把服务器作为网关,启用 ip_forward
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "1024 65000" > /proc/sys/net/ipv4/ip_local_port_range
/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 eth0 --source 192.168.1.0/24 --jump MASQUERADE
/sbin/iptables --append FORWARD --in-interface eth0 --match state --state ESTABLISHED,RELATED --jump ACCEPT
/sbin/iptables --append FORWARD --source 192.168.1.0/24 --jump ACCEPT
/sbin/iptables -I FORWARD -m state --state NEW -j LOG --log-level debug
由于通过 ADSL 访问公网某些地址速度比通过校园网访问要快不少,所以可以设置路由,访问某些网站时走 ADSL
/sbin/route add -net 60.2.251.0/24 gw 192.168.1.1
由于路由器支持端口映射,所以为了提高公网访问服务器的速度,在路由器上把服务器的管理端口 D 映射到服务器内部 IP 192.168.1.B 上,同时需要修改服务器的路由策略。在服务器上安装 iproute2,配置内核,确认开启了如下支持
IP: advanced router, IP: policy routing
echo "33 netadsl" >> /etc/iproute2/rt_tables
/sbin/ip route add 192.168.1.0/24 dev eth1 table netadsl
/sbin/ip route add default via 192.168.1.1 table netadsl
/sbin/ip rule add from 192.168.1.3 table netadsl pref 32765
参考文章:
[http://snafu.freedom.org/linux2.2/iproute-notes.html iproute2+tc notes]
[http://linux-ip.net/html/tools-ip-rule.html IP Route Management]
本地阅读:
[http://www.myzls.net/blog/files/iproute-notes.html iproute2+tc notes]
[http://www.myzls.net/blog/files/tools-ip-rule.html IP Route Management]
分类 技术文章 | 没有评论 »
int p(int i, int N)
输出i到N,再从N到i的每个数,每个一行
例如 p(1,3)
输出
1
2
3
2
1
要求
1 只能有1个语句,即一个分号
2 不能使用do while until goto for if关键字,不能使用?:和逗号运算符
3 唯一能使用的库函数为printf
int p(int i, int N){
return ((i==N&&printf("%dn",i))||(printf("%dn",i)&&p(i+1,N)&&printf("%dn",i)));
}
int main(int argc, char **argv){
p(i, N);
return 0;
}
分类 技术文章 | 没有评论 »