qyb的博客

为什么他的时间那么宝贵?

我家那个路口北向是4车道,一条左转,两条直行,一条右转,加上非机动车道,都是白实线分隔

今天快到家时碰到一辆黑色雅阁看前面车多,就飞快的杀向右转道上,然后掉头

Topic: 社会

学琴日记

从小汤2开始,难度又大了一些些

增加了8分音符,升调降调,关键是也不再固定以前的1指对中央C了

达达有些不适应,练琴有畏难情绪

于是现在多了一个游戏项目,我们两个人各用一只手弹合奏

很早以前就策划这个游戏,但她不感兴趣。今天居然肯试了,在琴房玩得还挺高兴

另外就是她今天居然把幼儿园老师教的一首歌弹出来了,虽然老师也教了简谱,但是自主去弹一首教材上没有的歌还是挺让我惊讶+激动的.

现在回想起来,很久以前上的奥尔夫音乐课算是给现在学钢琴打了一点小基础吧,貌似是4岁上的

Topic: dada

Berkeley DB Replication, 以及 Python 开发, 以及 twistd 注意事项

BDB 从 4.0 开始,内建了 Replication 支持。它是在 "DB 环境" 里增加了若干日志文件来保存 Replication 所需要的信息,实际上 db 文件的格式没有为此做特别的变化;另外,它除了提供了隐藏同步的细节的 API 外,它还提供了在几个节点之间选举出新的 Master 的 API,这些 API 统一被称为 Base replication API。可以说 BDB 提供的是一个 HA 解决方案,完全超越了常见的 Master-Slave 模式。

在 BDB 最初的设想里,同步可能是在一个复杂、异构的网络环境(可能不仅仅是 IP 网络,或者需要用到 UDP 传输)里进行的,因此它最开始需要用户自己来编写网络传输的部分 + Base replication API 做开发。从 4.5 版本开始,它提供了一套基于 TCP 连接做同步的更高级的 API,"Replication Manager",开发者几乎不需要做任何工作,就可以轻松构建一个复制集群。

传统的 Master-Slave 的缺点是如果 Master 一旦垮掉,则在其恢复之前整套系统是不可写入的。但在 BDB HA 环境里,Master 垮掉后,剩余的 Slave 将选举出一个新的 Master,以后向新的 Master 写入即可,老的 Master 恢复后可能会作为一个 Slave 节点加入,或者引发一次新的 Master 选举...

注意当前的实现里面,Slave 节点是不可写的(它要是能自动将写请求转发给 Master 节点多好!)。写入者如何将写请求发送到新的 Master 上完全依赖开发者的实现。

如果要实现一个纯粹的 Master-Slave 环境——这样丧失了 HA 特性,但前端实现却很简单,读节点和写节点的网络地址都是固定的——就必须将 Slave 节点的 priority 统统设置为 0

有人在论坛上问过一个很好的问题:slave 节点里是否还需要"lock_detect"或"checkpoint"这样的操作?

官方答复是:checkpoint 就不需要了,但只要 slave 有请求,哪怕只是读操作,就需要做死锁检查

启动 REP 环境还有一点要注意的,尤其是在 slave 节点上,因为 rep_start 是启动线程后在线程里面开始从 master 同步的。如果在 rep_start 函数后就直接 db->open,有可能同步线程里面也在 db->open 而导致死锁。一个建议是等 DB_EVENT_REP_MASTER(master上) 或 DB_EVENT_REP_STARTUPDONE(slave上) 事件后再去 db->open,不过这样做仍然有危险:假如 Master 掉了,启动 Slave 是永远也得不到 startupdone 事件的。我看有的例子是除了等 startupdone 外还设置了一个等待超时时间;或者在这里加入死锁处理循环也是可行的。

对于 replication env 来说,还有一个限制就是 db 文件必须直接放在 home_dir 或 data_dir 目录下,而不能是其子目录中...

如果环境中的 db 文件很多的话,那缺省的 Mutex 数目就可能不够用了。可能是我还不熟悉 BDB,要么就实在是它的 API 报错机制不友好,总之我的应用足足折磨了我一个多星期,才无意中发现了需要调整 mutex_set_max 才能正常工作。教训是如果 BDB 节点工作不正常,首先就要用 db_stat 看看它的各项资源使用情况。

开发 BDB REP 应用,最好用 4.7.25 或更新的版本。在我的测试里面,至少其 Replication Manager 比起 4.6 要可靠一些。

bdb 的 python 绑定现在(pybsddb 4.7.0)只有 Replication Manager 的支持。从 svn trunk 来看,4.7.1 似乎将增加 Base replication API 的绑定。

我的 db 服务是基于 twisted 框架的,首先得到一个 dbenv,然后用它做参数去实例化工厂类。但用 twistd 启动时发现一个问题:当用 -noy 参数启动,一切都正常;但如果想放到后台用 -oy 参数的话,同步就不再工作了。

google 之发现在 twistd 里调用外部线程(比如 rep_start 这样 C 扩展里创建线程的,或直接调用 thread.start_new_thread 启动的)都必须在 reactor 运行后进行,切记切记

总结:bdb 还是挺博大精深的,我强烈预感未来会有 BDB Programmer or BDB DBA 的专门职业出现。至少现在我好像就很缺一个 BDB Programmer... 呜呜呜

Topic: 技术

当年情

周五又是半年一度的老同事聚会,数个很久不见的也一一来到
mtu从千里之外发来贺信

感谢xjb订座,感谢老韩和安安占座

照片拍的不多,在 http://picasaweb.google.com/qiuyingbo/20080530
而且低照度下拍得不好,下回一定要搞个单反.

本以为这次活动会突破30人,结果至少有9个事先说好但失约不来的
严重鄙视。。。虽然如果来了就显然坐不下了

Topic: 生活

达达学琴二月记

贴一些宝宝学琴的体会,如果有别的家长搜索到这里,希望信息能有用

不算第一次课试讲,小汤1一共花了8节课上完。每周一次,每次课45分钟

老师很重要,我们家dada是不太容易坐的住的,上课走神+思维也跳跃的厉害,老师还是挺耐心。
当然另一方面我想现在幼儿钢琴教育在中国也流行很长时间了,老师也应该很有经验——老师每周至少能带10个孩子的课吧,我觉得碰到一个差老师的概率是比较低的(至少在北京是这样)

当然如果想把小孩培养成郎朗、王羽佳那样,估计对老师要求就高了。反正我的心态是弹钢琴就是培养一个爱好,能考个级对以后上学有帮助固然好,如果没有兴趣也就算了,钢琴只是音乐的一方面,她更小的时候还给她看 S.H.E、潘玮柏的 mv 呢。

除了每周的一次课,就是每天都要去琴房练半小时琴了。一开始她也就能坐10分钟,剩下的时间也不强迫她弹,而是俺也顺便摸摸琴键...嘿嘿...
最开始带她练挺郁闷的,动不动就偷懒不干,过了两周才把自己的心态调整过来。小孩需要多鼓励,强迫练琴是没有用的

在家里就给她看孔祥东教小汤的视频,后来还找到一段王羽佳“炫技”弹《土耳其进行曲》的视频

http://www.youtube.com/watch?v=j1fgo7hp-Ko
她对这个小姑娘大为佩服,学琴过程中不停追问什么时候可以开始弹土耳其进行曲,每次我都和老师暴汗,搪塞过去

总之是从大约第4节课以后,小朋友突然对弹琴产生了兴趣。有时候自己兴致来了就在家里也弹一会,也没大人强迫;在琴房里练琴差不多可以坐20分钟了。(但是最近好像学钢琴的劲头没有前几个星期那么足了,我觉得练琴这事情也有瓶颈,突破一个关卡后能兴奋一阵子,然后就又沉寂,又突破...周而复始)

下面就涉及到买琴。
最开始就是办一个琴卡,200元30小时,可以练60天的,实际上能差不多用3个月,比起自己买琴还是经济的多。只有两个问题:1. 不方便、2. 琴房的琴实在是很一般
在学了几个星期后,觉得dada并不是全然的排斥钢琴,加之我自己也很想学着弹钢琴,于是就想着家里买架钢琴吧。

电钢琴vs真钢琴
这个问题很复杂,一言难尽,这里做做简单科普
1. 大概是学到第3个星期,家里买了台卡西欧PX-120,人民币3500,比立式钢琴便宜多了
2. 据说同价位里面,卡西欧的手感更好(贴近真钢),雅马哈的音色更好。我现在这台一开始确实不习惯,从手感到键噪,但忍啊忍的2天后就习惯了,从琴房的琴和这台琴之间切换,现在也没感觉有什么特别不一样的。
3. 电钢的键盘雅马哈有分级,从入门到最高级分别是 GHS、GH/GHE、GH3、NW。传说 GH3 的手感就和真钢相差无几了,这个级别上最便宜的是 CLP-230,8k出头的样子。我的卡西欧从评测来看应该比 GHS 强,大概和 GH 一个等级吧
4. PX-120这种轻便电钢受喇叭限制,听上去还没有琴房里那些烂琴的声音好。但戴上耳机后感觉就好多了

但最后,还是有人报告说弹了电钢后,再弹真钢需要几天时间来适应。但我觉得我家达达弹家里的琴和琴房的琴也没有什么区别,估计直到考4级,拿这个卡西欧练应该都是够了的。
最后,即使家里有了琴,我们仍然每天去琴房,因为这家伙到了家里就不好好练,我回了家也没心思严格的盯着她,还是琴房的学习环境好。

本来我是坚定的电钢琴派,但潜了很长时间的水后,结论是如果希望小孩考到高级别的话,可能还真得买个立式钢琴。

现在她在琴房不想弹,就和她做游戏——蒙上眼睛去听那个键是中央C
或者让她弹书上没有的曲子,比如她会唱的歌,这样可以激发一些兴趣。

最重要的体会是:如果不想拿棍棒去强制小孩学琴,那么就需要家长以身作则。小孩子都是学大人,她看你很有兴趣的弹琴,通常来说也会很有兴趣的模仿的。

Topic: dada 生活

再转一个谣言:

关于四川地震的报道要求:

一,不许探讨地震灾难发生的原因,包括不许讨论校舍是否属于豆腐渣工程等等。

二,对赈灾款物的征集和发放不得进行评论。

三,不得对灾区官员的贪腐和渎职行为进行批评。

Update:
传说这是新京报联系沈睿约稿时候的要求
究竟是新京报自己主动限定的框框,还是更大的领导限定的框框?暂时无解

Topic: 社会

祖国山河三日黑

虽然,我自己能管到的几个网页都换上了素装,我也觉得这是很正当的行为,但....

看到所有人都在这么做的时候,以及从 solidot 上看来的疑似上级主管部门通知:


为表达对四川汶川大地震遇难同胞的深切哀悼,在全国哀悼日(5月19日-5月21日)期间,各接入网站停止各类娱乐活动和服务。
 1、各游戏网站、各网站游戏频道一律关闭;
 2、各网站的娱乐频道和娱乐性音视频栏目一律用哀悼页面覆盖,相关栏目下的其它页面不得开放;
 3、各网站的娱乐论坛一律关闭;
 4、各搜索引擎的音乐娱乐视频搜索功能一律关闭;
 5、各网站带娱乐性质的广告一律关闭。
 

我总觉得这里面有说不出的问题..

假如我们敬爱的邓爷爷身体健健康康的活到2008年才含笑九泉,那上级主管部门会不会也有类似的通知呢???

=================update================
为了避免误解,我觉得需要补充说明一下..

1. 本质上俺还是属于主旋律控的.
2. 虽然我前天很想放一张国际米兰三连冠庆祝的图片,但还是忍了
3. 国务院通知停止公共娱乐活动,我绝对拥护,因为公共场所里可能有深切哀悼的人群,在这些地方进行娱乐活动对他们是一种冒犯

a. 赈灾义演、义赛算不算娱乐活动呢?如果盛大、巨人、九城、网易照开游戏服务器,然后把这三天的收入捐助出来是不是更有意义?
b. 玩网游我觉得不会冒犯悼念群众,除非他们是挂在游戏里悼念。网游是某类群体娱乐活动,但显然不是公共娱乐活动。
c. 总是有人觉得我们是迷途羔羊需要给予行动指点,我比较烦。

是不是因为这样:随着我们的政府/行政机关越来越现代化法制化,其他人除了关心全国人民的道德——比如这次禁止网络游戏,或者以前封杀汤唯什么的——已经没有别的事可做了。其实我真的是主旋律,这么会为主管部门找理由,哈

Topic: 社会

关于捐款

达达的幼儿园号召捐款,我去接她的时候,幼儿园大厅里一面墙上贴着捐款红榜,写着幼儿姓名和捐款数额。

达达见到我就着急的拉我去看那个红榜,因为她的小朋友貌似都已经踊跃捐款了,但她的"钱包"才刚刚姗姗而来。

我问她:你要给灾区小朋友捐多少啊
她想了想,伸出5个手指头说,5角钱吧 (她已经觉得这是笔巨款了)
心里叹口气,让她自己在红榜上写了名字,以及一个5

然后俺在后面加了一个0,去财务室登记去也

=========== 懒得评论幼儿园了,这是华丽丽的分隔线 ===========

其实我是欣赏万科的做法的,上限 10 元,不让慈善成为员工的负担。

对于这种集体募捐活动来说,肯定有不少人觉得尴尬,捐少了有粪粪说三道四,对自己良心多少也是折磨;捐多了确实心疼——毕竟是血汗钱啊,这年头挣工资不容易。

我觉得尊重自己员工私产的公司生命力应该比反其道而行之的要长久一些,呵呵,回头研究一下万科的股票是不是可以适当持有

关于公司捐赠...最开始我很不理解为什么各个企业捐得这么起劲,有点斗富的那个意思。这年头开公司也不容易啊。但转念一想,比如搜狐这样的高新企业,政府可是给了大大的税收优惠的,这钱本来就是国家该收的。四川人民应该用之无愧,无需感激这些企业。

最后:国米终于拿到了今年的冠军,而且是史无前例的三连冠,不过对中国球迷来说,确实不是时候..从5月19日开始,停止一切公共娱乐活动..

这篇blog不小心写着写着就过了半夜,不晓得现在在网络上贴张庆祝的照片是否属于公共娱乐活动范畴,会被民主专政的..

(想了又想,还是不贴照片了吧)

虽然全国最近一直都沉浸在巨大的悲痛中,但现在俺的这点小小的愉悦,是任何力量都剥夺不走的。这就是生活

Topic: 社会

装了个 Wallpaper Clock Screenlet

好久没有用 Linux 桌面了,在 qyt 同志的蛊惑下,新装了 Ubuntu 8.04

然后试了试它的 3D 特效,然后装了 screenlets,弄了一个桌面时钟背景的效果,不错

首先在 screenlets 管理界面中安装 Wallpaper Clock Screenlet
http://gnome-look.org/CONTENT/content-files/66717-WallpaperClock.tar.bz2

接着从 http://www.vladstudio.com/wallpaperclock/下载自己喜欢的时钟背景(.wcz文件)

最后在 Wallpaper Clock Screenlet 里面安装 wcz 即可. 可能有些配置要微调,不过这难不倒使用 LinuxDesktop 的用户,hoho

Topic: 生活

地震,搜狐提前下班

我们的 HR 还是相当相当的有意思呀...

各位同学:
 
今日下班时间提前到16:30,请各部门做好工作安排,妥善安排值班工作。
 
除值班同学外,请大家抓紧处理好手头工作,公司班车将在16:45准时发车。
Topic: 生活
订阅 RSS - qyb的博客