May 22

前些天,买了域名:babyishan.com, 并在github pages上搭建了个静态博客:

http://babyishan.com

May 14
      4月1日的时候才看到今年的google summer of code, 对于在校的学生,这是个参与开源组织的绝佳机会。以前本科的时候就看到过,不过没当回事。之前一直在关注FIO的项目,对开源项目的开发流程有了一定的了解。于是花了两天查看各个开源组织的项目,但没发现一个适合自己的(还是自己太菜了,好多项目都看不懂)。最后终于在GNOME找个了一个感觉相对简单的项目:为GNOME3写一个lockdown editor,就是实现想银行或公共场所那种功能有限制的定制系统的效果,用python和gtk实现。于是赶紧给mentor发邮件,询问相关细节,并让给提建议,准备写proposal(主要是针对项目的设计和时间安排)。
      在4月6号之前这几天,一边查相关的知识(gconf,dconf,gsetting等),一边在gnome上试验,最后终于提交了proposal。后来mentor回复指出几个问题,我最后又作了一些修改。不过之后给mentor发邮件,却一直没收到回复,心想应该没戏了。之后还学习了一下python和gtk。到4月23号公布结果的那天,收到了没有选上的邮件,挺失望的。但是并不后悔,看看这里的介绍还是很鼓舞人心的。以后就不是学生了,没机会参加这种活动,不过有机会参与开源软件开发的话,还是会积极的参与的。希望还有机会的同学们不要错过明年的gsoc。
      一直在维护学校测试中心的网站,那个预约系统是用asp+access实现的,代码不敢说烂,但是真的不好维护。一个多月前老师让修改某个地方,我实在想不出什么好的办法,于是决定重新实现一个了。我选择了django+mysql,花了一个月时间,一边学习一边开发,总算大部分完成了,现在已经在测试,再就是不断的改进了。通过这个网站的开发,我对web开发有了自己的认识,python也熟练了不少。可能是django太方便了,我发现我还是挺喜欢写网站的。
      实习也没怎么找,可能就不找了,打算在实验室巩固些基础知识,然后好好做个项目。
Nov 16

暑假的时候,想找个linux下的即时战略游戏,于是就找个这个游戏。

Globultaion2是一个跨平台的即时战略游戏,当然其 复杂性比不上魔兽/dota,但也因为简单和创新的任务自动分配资源,简化了操作,使游戏者更关注于战略,更能吸引我这样的人。它自带地图编辑器,战 役,AI,YOG联机对战,地图也挺多的,对于我这种没打过Dota的人,已经足够了。

现在是Beta 4 (0.9.4.4),有些试验性功能,有些功能没开。

详细:http://globulation2.org/wiki/Main_Page

Feb 2

一直在用QQ邮箱,没感觉什么不好,虽然很多人推荐我用GMail,但既然QQ邮箱能满足我要求了,而且因为每天都上QQ,觉得还是QQ邮箱方便,也就把其它邮箱闲着了。

但是今天QQ邮箱的表现真的让我愤怒了。不多说了上图。

我就发这么个简单的群邮件,他给我来这句话。我实在看不出来有什么不对了:

Sep 20

        博客从2009年4月20号那篇文章之后,就没有再更新了。当初的起因主要是大二下的期中考试,要复习啊,而且今年的5.1正好是考试周,于是5.1就这样考过去了。人总是有懒惰心理的,特别是在紧张之后,考完了总想放松一下,于是博客就放下了。其实要写的东西还是很多的,不过一般也就想想而没有写下来。到6月份,又到了暑期社会实践准备的时候,由于当年大一的时候没去,为了不给大学生活留下遗憾,我也组了个队,这期间也忙了一阵,博客更是没心思管了。但好久不更新博客了,心里也挺过意不去的,于是就有了那篇《博客声明》。暑假前半部分是过着充实而快乐的支教日子(接下来会写),后半部分,先是在家过了一段颓废的日子,超级无聊,到学校,陪同学出去玩,没事看看书,写课程设计。开学了,一直到9月18号,汇编和数字逻辑的课程设计才基本搞定了。这个星期开始就正式上课了,所以博客也要恢复营业了,欢迎大家经常光临。

        博客的内容当然还是主要以数学,计算机知识为主,自己想到的所有东西吧,我还想加入更多自己的大学生活,记录自己的大学生活。博客虽然放在网络上,但是越来越觉得我想要的其实更接近私人化的,虽然我分享自己的想法(上面也用了“营业”这个词),知识,但我并不去刻意让谁去看,看了就接受,你想看就看吧,不喜欢就忽略掉吧。(又不知道在说什么了,想法还没怎么成熟,什么时候做个博客心理学的研究,发现自己对心理学很感兴趣)。

        总之,又要开始写我的博客了,感觉是一个全新的开始,加油,呵呵。。

Apr 8

用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处。(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极大损伤一样)reussir-son-blog

让我说得更明确一点:用博客的形式来记录下你有价值的思考,会带来很多好处,却没有任何明显的坏处。Note:碎碎念不算思考、心情琐记不算思考、唠唠叨叨也不算思考、没话找话也不算思考,请以此类推。

下面是我个人认为写一个长期的价值博客的最大的几点好处:

1) 能够交到很多志同道合的朋友。我自己既写博客,也读别人的博客,在这个时代,对于生活中的绝大多数人来 说,拓宽朋友圈子的途径几乎只有一个,通过网络,而如何在网络中寻找到气味相投的朋友,如何判断别人和自己是否有共同语言?显然,通过天天在SNS上碎碎 念的那些日记是难以做到的。我佩服的一些朋友几乎全都是长期用博客记录想法的人,因此,和他们即便不打照面,也是心照不宣。即便素未谋面也能坐下来就聊得热火朝天。

为什么博客在结交志同道合的朋友方面的潜力要远胜于原始的交谈方式?很简单,第一,博客无地域限制,整个互联网上从A到B只有一个点击的距离,而传统的建立朋友圈子的方法则受到地域限制。第二,也是更重要的一点,即如果按照以前结交朋友的方式,需要互相聊天,交流观点,然后才逐渐熟悉起来,这需要一个较长的过程,而且更糟糕的是,当你遇到另一个陌生人,又要把整个过程重复一次,表达你已经对老友表达过的那番想法。可博客却做到了“一次表达,无数次阅读”,当我看到一个写了好几年的博客,看完了之后我仿佛和这个人交谈了很久,用程序员们喜欢听的话来说就是,“博客极大地增强了话语的复用性”

我曾在CSDN上写了近六年的博客,在一年半前建立了一个Google Groups(TopLanguage), 由于我的博客的长期阅读者都是互相有共同语言的,因此这个Group一开始就热火朝天,而高质量的技术讨论则进一步吸引了更多的牛人的参与,雪球滚起来之 后,就很难停下来了,将近一年半下来,从这个Group的讨论中我获益良多[1]。而对于非程序员朋友,科学松鼠会则是一个很好的例子。

2) 书写是为了更好的思考。我在《书写是为了更好的思考》里 面详细总结了书写的好处,这里就不拷贝粘贴了。有些想法如果不写下来,也就忘掉了,有一个广为流传的《数学牛人们的轶事》(荣耀属于ukim)里面讲了希 尔伯特的一个故事:一次在Hilbert的讨论班上,一个年轻人报告,其中用了一个很漂亮的定理,Hilbert说“这真是一个妙不可言 (wunderbaschon)的定理呀,是谁发现的?”那个年轻人茫然的站了很久,对Hilbert说:“是你.……”。

3) “教”是最好的“学”如果一件事情你不能讲清楚,十有八九你还没有完全理解。绝大多数人应该都知道在程序员行业面试官经常要求你讲解一个东西给他听,他会说他不懂这个东西(他如果真的不懂的话效果其实是最好的),而你的任务则是说到让他理解为止。

Mar 5

Mathematica真的是很强大的工具,你一定见过用各种图片拼起来的马赛克图片,现在你用Mathematica就能实现了。

imagePool = Map[With[{i = Import[#]}, {i, Mean[Flatten[N[i[[1, 1]]], 1]]}] &, FileNames["Pool/*.jpg"]];
closeMatch[c_] := RandomChoice[Take[SortBy[imagePool, Norm[c - #[[2]]] &], 20]][[1]];
Grid[Reverse[Map[closeMatch, Import["MasterImage.tif"][[1, 1]], {2}]], Spacings -> {0, 0}]

Pool/*.jpg是你图库里的所有jpg图片,imagePool是载入所有这些图片,然后算出他们的平均RGB值。所以我先把我的图片都用PS做成了25*25,并调成灰度显示。closeMatch会把把你的图片的每一个像素从颜色最接近20张图片中的随机选一个代替。所以我把我的照片裁剪后压成 35*40的。最后Grid会输出我的马赛克拼图了。