• 从一个Blog上看到的一些很不错的建议: 10 Ways to Learn New Things in Development .

    摘要如下,记在这里,让自己能经常想起它们并坚持做到. 

    1. Read books

    2. Read Code.

    3. Write Code

    4. Talk to other developers 

    5. Teach others

    6. Listen to podcasts

    7. Read blogs

    8. Learn a new language

    9. Learn the anti-patterns

    10. Be Humble

  • 又感冒 - [自写]

    2008-01-23

    昨天只是轻微的感冒,今天早上起来变得严重了,打开电脑,正在思考今天是上班,还是不去上班,是个问题啊。

    去上班吧,怕传染到同事;不去吧, 心里又觉得过意不去。

    自小老师就教导我们,“你们看某某感冒了,还发着烧呢,但为了不误了功课,还是坚持来上学“。

    这影响了我的前半生,觉得感冒根本就不是什么病。 

    不过最近觉得感冒也算是大病了,不能再愚昧下去了,你要是把一个组的同事全给传染了,特别是组里边还有一个将要生宝宝的女同志,那是不是罪过就更大了?

    所以我决定今天请假不去上班了,为了同事的健康我也不能去上班,哈。。。。。。。。

  • 久违了的学习 - [自写]

    2008-01-19

    今天周末,老婆去加班了,我在家里睡到11点才起来。

    起来后,开电脑,看看Ubuntu有没有升级(自从我升级到8.04,我不得不天天升级);当了一回猎头;吃了一包方便面,看了一会儿电视。 

    我突然今天决定下午在家里上自习,好久没有好好的看书了,我要找回当年上学时的感觉。

    找了一本书出来 ,开始看,开始总是静不下心来,慢慢的有感觉了,看进去了。

    我还真把当年上自习的感觉找回来了,中间一段时间趴在桌子上睡着了竟然,不知道睡了多久,不过醒来之后精神特别的好,这感觉终于又回来了,从初中开始,我上课总是有那么一段时间会睡着了。

    醒来后,继续学习,中间和几个网友侃了一会儿,还好没花太多时间。

    最后,到我写这个blog为止,竟然把第二章看完了,这书我买了都三个月了,一页也没看,现在有种对得起它的感觉了,呵呵。

  • 国庆中期总结 - [自写]

    2007-10-03

    国庆1-7号我都值班,所以老婆自己回家看望父母了,所以我自己一个人在家过着混乱的生活。

    今天已经是3号了,总结一下这几天的情况,等老婆回来也有个交待。

    这几天主要的活动有以下几个方面:

    1.吃饭

    每天的早饭都没吃,1,2号两天做了一次饭,吃了三顿,主要是排骨和馒头(骨字我不会用五笔打,还是用Google.cn搜出来的);3号开始吃鸡蛋了,中午炒鸡蛋,晚上蛋炒饭。

    2.娱乐

    看了几部片:

    冲浪企鹅,没劲儿,跟着瞎笑。

    大话股神,挺有意思的,开头还能笑,但后来笑不出来了,最后是李琦大爷讲人生,讲做人。

    单身部落,算是一部准三级片,要是绝大多数女性都像它片里讲得一样,那我们男性就发了,可能人香港女性就是那样? 

    异种(1-4) ,没劲儿,每部的主题就一个:做好外星人的计划生育工作。不过最大的发现就是在第四部里的教授是<越狱>里的T-bag演的,两部片里的表演感觉都差不多。

    密会,还可以,不过故事结尾我一猜就猜出来了,没一个说真话的。

    Guns.N.Roses.-.Rock.Am.Ring.2006 演唱会,好。

    Guns.N.Roses.-.[Use.Your.Illusion.I].东京演唱会,复习了一下。

    电视没咋看.

    家里的网速不争气,而且eMule的服务器被封了几个,影响也很大,这些片是我下载差不多两个月才收集到的,快没有弹药了。

    学习:

    Concurrency State Models and Java Programs.2nd.Edition,主要在看这本,接近尾声了,有些收获。

    水煮三国,上厕所的时候看看。

     

    值班:

    三天共计收到4个电话,有两个纯粹是骚扰性质的,一个是咨询的,一个是真有点问题,需要我帮他解决一下。

    总结完毕。

  • 早上起来一看blog,又一条不知道什么东西的留言,删除的时候,发现它是在史上最经典摇滚柔情曲15

    这个blog下面留的,想起这是2004年的时候我写的,当时很迷恋摇滚,现在也还是。写完那个blog之后,我就决定一定要把这15首歌找全了,后来竟然没做,懒得可以。

    今天上午边做测试,边找歌,接近中午,终于找全了,庆祝一下当年的愿望终于实现了。

    下午边听歌边干活儿,呵呵。

  • 最近在看的书 - [自写]

    2007-08-20

    刚才加同事Blog的友情链接,进入管理后台,就把自己最近读的书记介绍并推荐一下:

     Beautiful Code :Leading Programmers Explain How They Think

     Programming Erlang 

    这两本书是我最近主要的读物,推荐有兴趣的朋友也看一看,特别是第一本,那绝对是一本让你想一口气读完的书,不过个人英语水平所限,只能慢慢读 ~_~

  • NP问题是个问题 - [自写]

    2007-07-30

    算法最后一讲是NP问题,我不理解老师怎么要挑这一节来讲,像网络流也可以讲的啊。

    上这学前我就不明白NP问题是个什么东西,结果还是没逃过去,还得学。

    不断在网上找啊,看啊,今天终于明白了一点NP = Non-deterministic Polynomial != Non-Polynomial

    这就是我今天学习的收获~_~

     先弄一段通俗易懂的来,下面的我是看明白了,Wikipedia上的看了一回也没看明白 :(

    NP并不是NON-POLYNOMIAL,把NP说成是NON-POLYNOMIAL,
    是望文生义,读书不求甚解。事实上,如果你能够证明某个
    NP问题是个NON-POLYNOMIAL的问题,你就可以去领那七个
    百万美元数学大奖中间的一个了。

    数学上著名的NP问题,完整的叫法是NP完全问题,也即
    “NP COMPLETE”问题,简单的写法,是 NP=P?的问题。
    问题就在这个问号上,到底是NP等於P,还是NP不等於P。
    证明其中之一,便可以拿百万美元大奖。

    这个奖还没有人拿到,也就是说,NP问题到底是Polynomial,
    还是Non-Polynomial,尚无定论。Mr. X信口开河敢说NP就是
    Non-Polynomial,真是不知天高地厚,惹人笑话。

    NP里面的N,不是Non-Polynomial的N,是Non-Deterministic,
    P代表Polynomial倒是对的。NP就是Non-deterministic Polynomial
    的问题,也即是多项式复杂程度的非确定性问题。

    什么是非确定性问题呢?有些计算问题是确定性的,比如
    加减乘除之类,你只要按照公式推导,按部就班一步步来,
    就可以得到结果。但是,有些问题是无法按部就班直接地
    计算出来。比如,找大质数的问题。有没有一个公式,你
    一套公式,就可以一步步推算出来,下一个质数应该是多少
    呢?这样的公式是没有的。再比如,大的合数分解质因数
    的问题,有没有一个公式,把合数代进去,就直接可以算
    出,它的因子各自是多少?也没有这样的公式。

    这种问题的答案,是无法直接计算得到的,只能通过间接
    的“猜算”来得到结果。这也就是非确定性问题。而这些
    问题的通常有个算法,它不能直接告诉你答案是什么,但
    可以告诉你,某个可能的结果是正确的答案还是错误的。
    这个可以告诉你“猜算”的答案正确与否的算法,假如可以
    在多项式时间内算出来,就叫做多项式非确定性问题。而
    如果这个问题的所有可能答案,都是可以在多项式时间内
    进行正确与否的验算的话,就叫完全多项式非确定问题。

    完全多项式非确定性问题可以用穷举法得到答案,一个个
    检验下去,最终便能得到结果。但是这样算法的复杂程度,
    是指数关系,因此计算的时间随问题的复杂程度成指数的
    增长,很快便变得不可计算了。

    人们发现,所有的完全多项式非确定性问题,都可以转换
    为一类叫做满足性问题的逻辑运算问题。既然这类问题的
    所有可能答案,都可以在多项式时间内计算,人们於是就
    猜想,是否这类问题,存在一个确定性算法,可以在指数
    时间内,直接算出或是搜寻出正确的答案呢?这就是著名
    的NP=P?的猜想。

    解决这个猜想,无非两种可能,一种是找到一个这样的算法,
    只要针对某个特定NP完全问题找到一个算法,所有这类问题
    都可以迎刃而解了,因为他们可以转化为同一个问题。另外
    的一种可能,就是这样的算法是不存在的。那么就要从数学
    理论上证明它为什么不存在。

    前段时间轰动世界的一个数学成果,是几个印度人提出了一个
    新算法,可以在多项式时间内,证明某个数是或者不是质数,
    而在这之前,人们认为质数的证明,是个非多项式问题。
    可见,有些看来好象是非多项式的问题,其实是多项式问题,
    只是人们一时还不知道它的多项式解而已。

     

  • 转眼间新年就过完了,三天假期,
    1号上午网通机房的网络不正常,搞得我们直播NBA的比赛也没法进行,网友们是骂声一片片的,我也不能出去,在家里监控过程。等到网络恢复了,比赛也完了。下午出去买衣服,27号结婚,必须得在元旦期间把衣服准备好了。晚上和朋友一起去看了《黄金甲》,没啥感觉,回家之后老婆就病了,胃难受。

    2号一天在家陪老婆,做饭,洗锅,看《越狱》,买药,吃了也不见好,只能喝粥。

    3号上午去上课,睡了一觉,被老师逮到,叫起来提问,不会,只听见问题是什么灵感,老师说我在找灵感,放过我了。下午继续回家陪老婆,病终于好转了,到晚上已经想吃肉了,不过还是只喝了点小米粥,搞得我这两天也是顿顿喝粥,呵呵。

    新年开始了,再计划一下:
    1.完成公司的任务,最近的任务是做三个编码器[虚拟直播,采集,现场直播](Media Encoder),已经完成了两个,还有最后一个现场直播,这个对界面的要求比较好一些,争取年前能够给频道试用一下,这段时间还得补习一下C++和视频方面的知识。
    2.争取今年把研究生的学分修完,可以准备论文了。
    3.学习英语,虽然研究生的英语考试都过了,可感觉还是没什么长进,找个地方好好学学要。
    4.和老婆好好过日子,呵呵,要是能把房子的问题解决了,那就更好了。
    5.今年把自己以后的发展方向定一下,不论是做技术,还是其它的,都得定一个方向了。
    6.其他的计划随时补充。


  • 从上上周末买了这本书,就一直想看完了,每天上班的公车上,下班后回到住处有空就看,这个周末周6上课之外,就一直在屋里看书,到晚上去火车站接GF前,终于看完了,这本书很喜欢,但是里面的内容实在是太多了,有些问题以前我一直也没有确定下来,比如在一个方法有好多的参数,我是否应该把这些参数转换成为一个对象,实在是没有把握,书中就举了这种情况应该如何应对(我一般是会把它做为一个对象重新构造一下),呵呵。

    书中有句话我都能背下来了:"如果在工作中学不到什么,就找一份新工作吧。"说得有道理吗?前几年我会这么做,现在这么做之前会先想一下,是否只有编程才是学习呢,作者也没有明确的说明,那我就理解为学习不只是编程技能的提高,还有其它的方面,比如和同事,客户的沟通技巧,给客户作培训,这些也都是自身技能的一部分。

    这本书,以后一定要常看,遇到问题可以到这里查找一下,看看前辈是如何处理问题的。

    还有就是越狱,上午看书看到饿了,边吃边看昨天下载的越狱第二季的第一集,迷上越狱了,可以学学,呵呵。



  • 最近的总结

    2006-01-24

    又是一个多月没有写日志了,总是在瞎忙,今天就把最近的情况总结一下。

    1.Linux

    取得Shell运行时所在的目录

    功能:主要取得了当前运行脚本的绝对目录和参数,这个脚本是晚上帮朋友写的,以前也想写一个类似的脚本,一直没有动手,效果还不错。
    #! /bin/sh
    name=$0
    args=$*
    name=`echo $name|sed 's/^\.\{1,2\}\/\{1,\}//'`
    if [ ! $(echo $name | grep  '^/' - ) ]; then
        if [ `pwd` == '/' ]; then
            name=/$name
        else
            name=`pwd`/$name
        fi
    fi
    script=`/bin/ls -l $name | awk '{ print $NF; }'`
    while test -h "$script"
    do
      script=`/bin/ls -l $script | awk '{ print $NF; }'`
    done
    bindir=`dirname $script`
    echo "BaseDir:$bindir Args:$args"

    在两台机子之间拷贝文件

    cat <file0> | ssh  <host> "cat > /destfilepath"

    这个脚本需要在两台机子之间配置ssh,有可能需要输入密码,很是方便。

    2.Tagpstry

    换了新的工作,对一些j2ee的框架接触的少了许多,最近在用tapestry(tacos)+spring+hibernate做一个东西,另外用了jdk5.0,用了其中的泛型和annotation的功能,最喜欢String.fromat这个功能了,强。

    有时用tapestry进行一些特殊功能的实现,不是太灵活,特别是在基于tacos时,例如当提交form的时候,想要为用户提供一个确认的窗口,直接使用tacos的时候,是很难办到的,我找了它的好些component也没有找到类似的功能,用了一个比较别扭的办法:

    <form jwcid="pageForm">
        <div> 
            <label>
            <span key="title">标题:</span>     </label>
            <input name="title" type="text"  size="60" value="ognl:document.pageTitle" jwcid="title@TextField"/>
           </div>
          <div>
    <a jwcid="@tacos:AjaxDirectLink" name="dp" id="dp" listener="ognl:listeners.deletePageData" parameters="ognl:{pageDataId}" updateComponents="ognl:{'auditResult'}"/>

    <!--在这个a tag中触发jwcid dp的click事件-->

    <a href="javaScript:var ok = window.confirm('confirm?');if(ok){did.style.display='none';document.all.dp.click()}"><span key="deletePageData">删除此记录</span></a>
        </div>
      </form>

    使用Tapestry最大的感触是刚开始的时候有些不大适应,用的习惯后就对它强大的功能很是佩服,而且在DW中设计页面正如它所声明的一样,基本上不影响整体页面的效果。

    3.Java

    说起来实在是不好意思,最近才明白了String.replace和String.replaceAll之间的区别,前者不使用正则表达式,而后者使用正则表达式来执行替换操作。

    Jrockit是一个很强大的jvm,利用它提供的工具,可以动态的监视jvm中内存使用的状态,从Bea的文档上知道了Jrockit5.0有内存泄漏检测的工具,令人郁闷的是一直也没有成功的使用这个功能,不知道是否是由于License的限制。Jrockit的性能通过调整jvm的参数可以有很大的提升,公司有一台服务器,双CPU,把Jrockit的垃圾收集改为parallele,同时把-Xmx设为1000M,系统的响应速度得到了很大的提升,呵呵。

    Hibernate删除的时候,可以通过它来删除Object,但如果对象的个数多于一个,还是用sql来删除的好,不要猜测数据的多少,因为我们不好预测到所有可能发生的情况,在sql server使用Hibernate的delete方法的时候,按照hibernate的做法,它会先找到所有要删除的对象,之后才删除,我在测试一个程序的时候,发现sql server的后台进程阻塞了好几个,全是由于事先认为数据量不大,使用Hibernate删除不会有太多的影响,就懒得用jdbc来直接删除,其实通过spring的JdbcTemplate非常方便。

    4.Python

    前些日子用Python写了个程序,先在windows上写,后传到Linux上运行,发现总是不对,在网上搜索了一下,有高人说可能是由于windows和Linux之间换行符的不同赞成的,可以用dos2unix命令解决,不过这个命令不是在所有的Linux发行版上都有的。

    5.其它

    最近GCT考试结果出来了,还好被录取了,又要上学了,呵呵。今天上午把亲爱的GF送上火车了,心里的一块石头总算落下来了,不过又要给自己找火票了,晚上有同学打过电话来说,回大同的票已经没有了,郁闷,该怎么回家呢?明天再说吧。