Luo Xu's profile老SCM的博客PhotosBlogListsMore Tools Help

老SCM的博客

scm life

Luo Xu William

Occupation
Location
Interests
Enjoying simple life. Sleep,Eat,Work,Play,... ...,Live
In transition to trainer, pre-sales and other technical consultant role.
June 18

Cygwin 杂记

一、改变Cygwin的启动脚本以得到更为好用的terminal

$ cat cygwin.bat
@echo off
C:
chdir C:\cygwin\bin
set EDITOR=vi
set VISUAL=vi
set CYGWIN = codepage:oem tty binmode title
rxvt -e bash --login -i

 

#.Xdefaults is configuration file for rxvt. “man rxvt” for more information.

$ cat ~/.Xdefaults
! ~/.Xdefaults - X default resource settings
!Rxvt*title: Cygwin Terminal
!Rxvt*iconName: Cygwin Terminal
Rxvt*geometry: 70x30
Rxvt*background: #000020
Rxvt*foreground: #ffffbf
Rxvt*borderColor: Blue
!Rxvt*scrollColor: Blue
!Rxvt*troughColor: Gray
!Rxvt*inheritPixmap: true
Rxvt*jumpScroll: true
Rxvt*scrollBar: True
Rxvt*scrollBar_right: True
Rxvt*saveLines: 2000
Rxvt*scrollstyle: next
Rxvt*scrollWithBuffer: false
Rxvt*font: Lucida Console-16
Rxvt*smallfont_key:Alt-<
Rxvt*bigfont_key:Alt->
Rxvt*loginShell: True
! eof

 

二、Cygwin下的apt工具

很多人都知道Ubuntu上的APT非常的吸引人,提供了方便易用的软件包管理界面。Cygwin的setup.exe有的时候还可以。但是一方面不太稳定。有时会遇到安装失败或者安装异常的问题;还有就是界面不是非常的傻瓜、易用。尤其是在安装卸载个别软件包的时候,非常之麻烦不爽。目前网络上有一个免费开源的工具叫apt-cyg。它可以认为是cygwin上的APT工具。只要简单的一条命令就可以搞定安装或者卸载。如

apt-cyg intall bc

apt-cyg remove bc

还有一些其他有用的参数,参见help。

最近由于工作需要,进一步研究了一下apt-cyg的使用技巧。

 

技巧一、假设本地已经有一个cygwin软件包的cache(就是软件包下载后的目录,一般目录结构如下),

$ tree <pathabc>/http%3a%2f%2fwww.cygwin.cn%2fpub%2f/
<pathabc>/http%3a%2f%2fwww.cygwin.cn%2fpub%2f/
|-- release
|   |-- alternatives
|   |   `-- alternatives-1.3.30c-3.tar.bz2
`-- setup.ini

在没有连接internet的情况下。也可以利用apt-cyg来管理软件包。但是在使用前需要检查一个cygwin的安装配置的内容是否正确指向了本地cache。该文件为/etc/setup/last-cache,内容必须为<pathabc>,也即release的父目录。

$ cat /etc/setup/last-cache
<pathabc>

 

技巧二、如果有internet连接,在使用apt-cyg会使用最后一次运行setup时所使用的mirror。对于国内的用户而言,一般会首选http://www.cygwin.cn/pub/。相关的配置文件以及内容如下所示。

$ cat /etc/setup/last-mirror
http://www.cygwin.cn/pub/

June 16

程序员花多少时间在专心创造软件程序?

在读这篇文章之前,需要大家了解文章的一些前提、假设,以免引起一些不必要的混淆(confuse)
假设一、下面谈论的观点仅仅适用于项目周期短(一年左右),最终的软件产片不会对社会或者人身直接造成伤害的软件产片、项目或者公司
假设二、 待定 :D

这几年来,随着对流程、质量控制等概念的理解以及实践,越来越觉得当今软件公司里面,尤其是大公司里面,宝贵的程序员资源在被浪费。他(她,后面都简称他们)们的时间被浪费在non-value added的流程上,汇报上,开会上以及流程混乱所引起的各种问题上。没有看到过相关的调查。但是如果做的话,也许会有惊人的发现。至少在大公司里面,一定是惊人的结果。

今天在cmcross上看到了一篇关于流程自动化的文章(An Automated Infrastructure and Workflow for Process Improvement

,http://www.cmcrossroads.com/content/view/10210/120/),再次触动了我的神经。虽然在流程自动化、敏捷编程等高效率编程上面没有太多的经验,但仍然想把我的一些体会以及想法和大家分享一下。

上面的文章中提到的几个观点,本人非常之赞同!
观点一、原文以及翻译如下:
With most tools, this requires a lot of extra work-each developer has to run the tool, look at a report of problems, sort through false positives, figure out which of the reported violations he is responsible for fixing, and then actually fix them. This extra work slows down the development process and distracts developers from the creative tasks they're hired to do.
大致的意思就是说公司或者老板为了改进流程或者质量,从而增加了设计、写代码意外的和质量相关的工作,如流程检查、看bug report、run质量改进工具,如klocwork等等。总之,程序员的精力被严重分散到与创造性工作无关的一些事情上了。而这些事情才是他们的本职工作!

大概两年前,看到过一篇类似的文章,就深有感触,并努力在实践工作中,从SCM的角度出发思考如何提高团队的效率、质量,并尽量提高程序员的产出。

其中有几个原则可以供大家参考:
1、正如上面的文章所述,设计程序以外的一些事情应该尽量自动化、高效化、简单化并且人性化、一切都要从节省程序员的角度出发
2、在设计软件开发流程的过程中,设计者经常会碰到的问题是,对于有一些只有万分之一可能性的case究竟考虑还是不考虑,考虑就意味着要增加流程的复杂度,或者增加检查环节。也许一个项目下来,只碰到不到10次以内的此类特殊情况,更甚者,只有一两次,而为了这一两次的特殊case,却花费了相当的人力、物力。因为每个流程环节的增加都会相应的增加软件开发的成本。如:
a、考虑这种特殊情况之后,根据流程的变更,往往要对相关的工具做一定的改动;
b、流程以及工具好了之后,要花时间维护、培训相关人员;
c、在日常的项目执行过程中,每一次检查,都要花费相关项目人员的effort。以SCM的流程为例,SCM要花时间检查、程序员要做pre-check、如果真的发现问题而要程序员解决,来来回回要花SCM以及程序员许多时间。同时也许在项目沟通、汇报的环节上要花一定的时间来讨论相关的问题。总之,严重浪费啊!

而从我的实践经验而言,往往这种特殊情况在工具、流程比较成熟的情况下,是可以通过人的主观能动性后者说聪明才智来解决的。而花的时间一般比较有限的!

观点二、Of course, Rome wasn't built in a day. If you try to implement this all at once, you risk overwhelming the team, which sets the stage for failure. If you really want it to last, be patient and ease into it. Incremental implementation is the path of least resistance.
翻译过来大致就是几个著名的成语:“冰冻三尺非一日之寒”,“且不可急功近利”,“如果想成功地坚持到最后,就要循序渐进”。
这几个成语众所周知,但是在实践过程中,却不那么好把握。本人体会如下:
1、想一下子把completely automated process/pratice是天方夜谭!因为计划是永远赶不上变化的;最佳的实践方式就是continous improvement and drive to automation day by day!而且就时间、空间、经验等限制,一次性搞定也是不可能的。即使是“XX专家”也要遵循同样的规律,否则同样会失败、招人背后戳脊梁 :D
2、在设计流程之初就要兼顾效率和质量,虽然要持续改进、但一样要有比较好的计划(roadmap)。在这个环节上,丰富的经验起着非常关键的作用。并且是无法速成的。对于入门者来说,除了努力学习之外,交流、积累也十分重要。

最后我也引用一下一个时髦的短语“蝴蝶效应”,意思是说,地球一端的一只蝴蝶轻轻扇动翅膀,也许导致的就是地球另一端的风暴!在流程的持续改进过程中,需要的就是团队中的每个人,尤其是各个环节的专家们不断地、敏锐地发现该进的机会以及想法。还是以SCM为例,在大公司里面,integration过程中经常出现的问题是conflict,也就是说有两个人以上同时提交了对同一个文件甚至是同一行的改动。这种问题随着build request的数量增多会越来越让人无法忍受。解决的途径之一就是more frequent integration & release,也就是continous integration。也许nightly build/run不是非常容易实现的,但是哪怕是把人工(scm)集成间隔缩短几天,也许带来的影响就不是简简单单的resolving conflict了。

 

>>待续!有时间,我希望能够把自己有限的一点经验、体会一点点和大家分享,希望能够引起一定的“蝴蝶效应”

游泳

在媳妇的几番号召下,我们一家终于迈出了困难的一步--到室内去游泳。困难不是因为钱的因素,照流行用语说“咱不差钱!”,即使是精打细算,游泳也是非常值的,反正肯定比到医院花的钱少!说“困难”主要是有几个原因:

一、孩子去年因为鼻炎以及反复呼吸道感染,折腾了半年,基本把我折腾成了“强迫症”患者,而鼻炎会不会因为游泳池里面的怪味导致过敏或者因为细菌感染而复发对脆弱的我来说,基本上都是一道很难跨过的槛。即使是游泳归来,我的心基本上要七上八下个一周左右,要观察一周左右才能看出来游泳对孩子究竟有无负面影响

二、近两年来,手足口、H1N1等各种流行病让我很是恐慌,尤其是“一朝被蛇咬,十年怕井绳”的我很是害怕孩子被传染上。肺炎、鼻炎、心肌炎、哮喘。。。。。。医院里跑的多了,见得也就多了。见得越多,心里越是多一分忧患。正所谓无知者才无畏啊!

无论如何,我们在刚刚过去的周末终于下定了决心,迈出了这一步!

 

周六是傍晚6:00左右到的,泳池挺大,环境也还可以,氯水味不是很浓,而且还有儿童池!刚开始,我和妈妈下去游,俺家孩儿没下去,一路上净喊着“我不游泳了”,估计是怕腿上的檫伤遇到水会痛,或者也许以前的什么时候呛过水,对水比较害怕。估计是前者可能性比较大,因为最近她在家也经常因为这个哭求不洗澡。可是看着其他小朋友在水里玩的非常开心,看爸爸妈妈在水里也很惬意,大概过了20分钟后,她终于同意下水了,并一发而不可收拾,到后来,冷风习习,我催促她上来走的时候,她竟然非常生气!在知道明天还可以来了之后,才勉强上岸

周日,她还是一如既往的不睡午觉,大概4:00左右的时候,看外边天气很热,估计水温会比头一天高,我赶紧催促“二(个)磨(蹭)”出发!这一次,她玩的就更开心了,在水里跑、跳、时而漂起来游两下。后来竟然要求跳出游泳圈,自由活动!这是一个信心爆棚的信号!可后来一个小小的、有趣的意外却发生了。妈妈在儿童池里面练习仰泳,孩儿在妈妈的头部附近也是前进的方向上,我刚一分神指点一下孩她妈,余光发现孩子怎么头沁到水里面了,大概半秒左右的时间,我马上反应过来是滑倒入水了,我快步向前,马上把她抱起,并拍打后背,据媳妇说把她的眼睛都碰掉了。还好孩子没什么大事,但还是哭了,并要求回家不游了!后来我和妈妈赶紧鼓励她,告诉她不要怕挫折,爸爸妈妈小时候学游泳的时候喝了很多水,等等。。。她后来竟然又同意下水了,估计水对她的诱惑还是不小的!在水里,为了缓解情绪,我们三个一起玩“一网不捞鱼”的游戏,她又开心起来了。直到离开游泳池。可后来又有两件小事,让我很是记忆深刻。

一、出来后我们打车前往一个饭店去吃饭,路上她终于困趴下了:-),到了饭店后,也许是因为太吵了的缘故,也许是因为听说有好吃的糕点,她不一会儿就醒了。醒了之后第一句话就是:“爸爸,我闭着眼睛都不知道是怎么到这里的了”。

二、晚上回到家,她很快就上床了,这一天太累了!可趴着趴着,她还是用语言道出了“呛水”给她带来的恐惧。说“爸爸,今天我呛水的时候,都看不到爸爸妈妈了,我以后不游泳了”。我马上跟上说“别担心,有爸爸妈妈守护你,别害怕,什么时候想游泳了,咱们再去,不着急哈”。

两件事情联系起来,能够想象到呛水的时候,孩子一定是睁着眼睛恐慌的努力找爸爸妈妈,同时也一定是想哭喊出来,所以估计也没有真正呛到太多水。但无论怎样,她当时一定是非常恐惧的了。感同身受!

希望我家的宝贝不会因为这次小小的挫折而放弃游泳,希望通过游泳她能变得更强壮,像巧虎一样迈出勇敢的一步!

May 11

养蚕笔记

转自http://ww123.net/baby/viewthread.php?tid=4514012

蚕的生物学特性
  家蚕属完全变态的昆虫,一个世代中要经过卵、幼虫、蛹和成虫4个不同的发育阶段。蚕卵一般呈椭圆形、略扁平、一端稍突,由卵壳和卵内容物两部分组成。卵是胚胎发生、发育形成幼虫的阶段,有滞育卵和非滞育卵之分。家蚕幼虫呈长圆筒形,由头、胸、腹三部分构成,前面3个环节为胸部,后面10个环节为腹部。刚从蚕卵孵化的幼虫,形态似蚂蚁,称为蚁蚕。蚁蚕以桑叶为食,不断生长发育,体色逐渐由黑褐色变成青白色,几天后,便不吃不动,蜕去旧皮,换上新皮,称之为蚕做眠。蚕的幼虫从孵化到结茧要经过4次就眠蜕皮,每两次就眠蜕皮间的经过时间称之为龄期,所以幼虫一般要经过4眠5龄。1-3龄叫稚蚕,4-5龄叫壮蚕。在适温条件下,一般1龄3-4天,2龄3天左右,3龄3-4天,4龄4-5天,5龄8-9天,全龄经过25天左右。
  幼虫到5龄末期,逐渐老熟,吐丝结茧,约2-3天吐丝完毕在茧内化成蛹。蛹呈纺锤形,由头部、胸部和腹部三部分组成,头部有发达的触角和复眼。蛹期经过15-18天便羽化为成虫,成虫又叫蚕蛾,也由头、胸、腹三部分组成,全身披有白色鳞毛片,头部两侧有一对很大的触角和复眼。成虫羽化几小时后即交配产卵,完成一个世代。
蚕的生长与发育
  生长是生物体重和体积的增加。蚕的生长有三种方式。一是细胞分裂,细胞数量的增加;二是细胞的增大,重量的增加;三是细胞既增大,数量又增加。家蚕从卵到成虫的整个发育过程中,只在幼虫进食,摄取营养,所以幼虫期是蚕生长最快的时期。重量从蚁蚕1/2200克/头到5-6克/头增加了约10000倍,体积增加了约6000倍。因而在饲养时,必须注意及时给足桑叶,扩大蚕座面积,充分满足蚕儿生长发育所必需的营养和蚕座面积,才能使蚕儿正常生长发育。

image

2008-4-29 19:26

一、蚕宝宝孵化了
刚从卵中孵化出来的蚕宝宝黑黑的像蚂蚁,我们称为「蚁蚕」,身上长满细毛,约两天后毛即不明显了。

image

2008-4-29 19:26

二、蚕宝宝长大了
蚕宝宝以桑叶为生,不断吃桑叶后身体变成白色,一段时间
后她便开始脱皮。脱皮时约有一天的时间,如睡眠般的不吃也不动,这叫「休眠」。

image

2008-4-29 19:26

三、蚕宝宝吐丝了
经过一次脱皮后,就是二龄幼虫。她脱一次皮就算增加一岁,
共要脱皮四次,成为五龄幼虫才开始吐丝结茧。

image

2008-4-29 19:26

四、蚕宝宝节茧了
五岁幼虫需二天二夜的时间,才能结成一个茧,并在茧中进行最后一次脱皮,成为蛹。

image

2008-4-29 19:26

五、蚕宝宝破茧而出
约十天后,羽化成为蚕蛾,破茧而出。出茧后,雌蛾尾部发出一种气味引诱雄来
交尾,交尾后雄即死亡,雌蛾约花一个晚上可产下约500个卵,然后也会慢慢死去。

image

2008-4-29 19:26

变态:完全变态
身体构造

image

2008-4-29 19:26

生活习性蚕宝宝以桑叶为生,不断吃桑叶后身体慢成白色,一段时间后牠便开始脱皮。
脱皮时约有一天的时间,如睡眠般的不吃也不动,这叫「休眠」。

URL:

- 自然讨论区- 小学资源网教案|课件|试题
谁有生长过程的全部图片? - 天涯问答
生长过程

 

图片、视频

 

养蚕第一天

刚刚从一位热心的同事那得到的小蚕。平生第一次养这东西,模糊记忆中小时候采摘过桑叶,但其他细节都忘了。准备和闺女一起养养试试,正好解决了养宠物的问题。

0511_091629 0511_091653