只是不甘心让二月一片空白

RT

No Comments

Not Going Anywhere

晚上8点,紫金港后门的腐败街80%的店都已经打烊了,小摊更是一个都不见了。

平常在腐败街正中间摆摊的那个烤猪蹄的老板,曾经以赚点钱回家过年为理由,把他的烤猪蹄们身价提高30%,虽然遭受了众人的抵制仍然可以很屌的吐槽:爱买不买。现在看来,他真顺利揣着钱,穿着纸尿裤回家过年去了。

晚上在Google Reader上看到这么一条调查成果“每天晚上8点到10点在做什么决定你是否能够成功”,看完我继续刷Google Reader,校内,豆瓣,各种刷刷到11点,开始检查我为今年写的计划。介于前几天开始读Memcached 1.4.5的源代码,算是又开始了2011计划里的又一项条目。

不过春节厦门旅游的事情也基本上潮吹告吹了,因为特么的从温岭到厦门的火车票,当天中午就卖光光了!真特么坑爹啊!!

唉,不说不开心的事情啦,不如顺便分享一下这个用来管理自己计划的工具—Springpad。

官方对这个工具的介绍是“一个免费帮助你记忆,分类管理你的各种东东的应用”。猛击这里,你就能看到一个技术宅为他的2011定的计划。你要是觉得他根本没有去做这些事嘛,太没理想,又或者太装逼,都可以在这里吐槽他!

最初发现这个东东是在Teddy君的日志Make it a better chrome。我看到截图中有个图标长着一根挺萌的黑色小箭头,于是去Chrome Web Store里找到她体验了一把,还真挺好用。

这里就不放链接了,请自行Google。如果你正在用Chrome,把他拖到你Chrome的App列表里面吧,灰常得心应手的说。嗯哼~

Springpad

, , ,

4 Comments

MMIE

前两年跨年时,我留了两小坨东西在自己的博客上。
2009刚开始的时候,我是个憧憬美好淫生人生决心投身奋斗的学习青年。
2010的元旦,我居然能听着Jay的歌,在茅坑里内牛。
所以说写博客是个好事情,看看自己的过去,会有各种欢乐。

回想一下过去的十二个月,前一半时间基本是被毕设和找工作折腾。
最后一个学期,我粗略的翻阅了Beginning Linux Programming和Windows核心编程,记了半本A4大小的笔记本,也算是学了一点点win下和linux下的程序开发,于是给OJ留下一个半成品的对战评判系统。
然后花了点心思搞定丢失的一个学分,忐忑的毕业了。
照理说,大学的最后一个学期不会只有这两样事情,然而当时或不安或淡然,或失望或期待,现在想来都已经模糊了。最清晰的印象原来是一直在重复的事情:每天背着笔记本来往于寝室实验室,翻着大部头的书坐在屏幕前写着代码。

下半年,我终于从毕业的压力中解脱出来。每天上上班,平时玩一玩,也不知道自己忙了些什么,就老觉得时间怎么都不够,所以这本该在跨年时出现的日志,才这么姗姗来迟。
尽管这样,我还是发现自己喜欢上了一个姑娘(虽然不那么及时)。这姑娘笑起来的时候老可爱了,又当知心姐姐又能讲冷笑话,卖萌撒娇捂脸什么的样样精通,甚至于,还有点geek的基因。要是能追上这姑娘,我得高兴成啥样?!

好啦,来制定一下今年的目标吧:

1. 给自己买了5本非技术的书,要认认真真读完。
2. 计划以后每年去一到两个地方旅游,看时间吧,今年暂定春节去厦门看看。
3. 既然当了QA了,就要做好。从Perl帝手里接过来的事情一定不能干砸了,好好学学automation test。
4. 用动态编程语言(Perl, Python神马的)写一个有意思的东东。
5. 找一个C/C++开发的产品,读懂代码。
6. 要抓机会锻炼*nix environment programming,各读一本OO和设计的书。
7. 不要再装逼,至少要学着由内而外的装。
8. 经常让自己看看上面这些都做了没。

于是,这篇总结就这样了。你要知道,回忆神马的,总是很辛苦的。

, ,

4 Comments

想不出标题了

住处突然断网,接着想起我这个已经长草的博客,于是回忆了下最近记忆比较深刻的事情,来这里Mark下。

造勒个梦

蘑菇实在是个爱折腾的孩子。我估计真要找一个愿意从紫金港跑到钱江新城的万象城去看iMax的人应该不多,何况他还无视了西湖时代广场的iMax因为那屏幕”整整”比万象城的窄了1米。

那晚看的电影是Inception,整个观影的动作分解就是俩脑袋不停在45度和70度之间调整仰角,因为我们当时只能买到第三排的位置了。

但是我要说,看iMax版Inception完全对的起我们这么折腾,因为iMax也可以算是某种程度上的造梦机器了!

傻逼了吧

举国同庆前的那阵子,我好像特别冲动。具体表现在过了个Sample就信心满满的Submit,还以为自己能拿到个Yes呢。结果呢,第一次拿了个Runtime Error,接着被Wrong Answer。接下来有人说是TLE,有人说是PE,一坨坨Error搞得我头都昏了。

于是我想,其实也许这个算法从刚开始就YY错了呢?还是回头继续学习各种奇技淫巧吧。

有些孩子很好心,会问问我你这最近YY得咋样了?我只好说:没,还差得远呢。于是,我又不小心让自己陷入绝望里面了。

敢再给力些么

国庆长假连续腐败6天。谢谢!

一斤欲望多少钱

这就是昨天的事,杭州下午还下着小雨,我只能说这天气太特么清新了。

然后下雨又貌似导致机器故障,主办方可能是想缓和大家的情绪放了点音乐。有个哥们说敢情我们是买票听CD来了,于是就有了一群人跟着音乐比中指的搞笑场面。不过也有几个人大概理解不了这种幽默感,以为大家都跟他一样义愤填膺了,直接进化成骂街,对这种人只好BS+无语。

即便如此,李志上场以后现场的气氛还是很给力的。弹唱,嘶吼,撒钱,一大票歌迷跟着他的节奏蹦达。后来我发现我左脚略往前的草坪上就有个水坑,估计是某位重量级的歌迷给蹦出来的。

后面甜蜜的孩子,曹方都显得略怂了些。介于全身的衣服都已经可耻的湿了,我们就无视曹方的安可曲,早退了。

昨晚回来把风骚的沾着几瞥泥浆的裤子扔进了洗衣机,今早晒裤子发现音乐节门票上的那个防伪标志无辜的从裤子上飘下来了。

狗日的,于是音乐节划上句号。

Ending

这三个月来,有一件事情一直贯穿在其中,我为此各种烦恼但又快乐着。

好吧,C’est La Vie.

3 Comments

Perl中建立一个实例方法的线程

标题有点复杂吧?其实就是新建一个线程,来运行某个对象实例中的特定函数。

一般在Perl中新建一个线程的方法很简单:

  1. use threads;
  2. my $th = threads->create( function_ref, parameters );

但是启动一个实例中的函数就不太一样了,因为不能用 \&$object->method 来取得该函数的引用。

因为自己写脚本的时候有用到,于是花了一个下午探索实验。然后发现一个确实可以work的办法:在一个匿名函数中调用该方法。

不过这个做法实在是丑陋,Perl这样灵活的语言,一定可以有更好的办法来解决这种问题。

实验加翻阅Intermediate perl一个下午还是无果,突然Perl帝出现,看了一眼代码后瞬间给出一个非常正规的解决方法。

具体请直接看示例代码:

下载: cat.pm
  1. package Cat;
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. sub new {
  7.     my $class = shift;
  8.     my $self = {
  9.         hello => 'Miao',
  10.         @_
  11.     };
  12.     return bless $self, $class;
  13. }
  14.  
  15. sub sayhi {
  16.     my $self = shift;
  17.     my $times = shift || 3;
  18.  
  19.     foreach ( 1 .. $times ) {
  20.         print "$self->{hello}\n";
  21.         sleep 1;
  22.     }
  23. }
  24.  
  25. 1;
下载: sayhi.pl
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5. use threads;
  6. use FindBin qw($Bin);
  7. use lib "$Bin";
  8. use Cat;
  9.  
  10. my $cat = Cat->new( hello => 'meow' );
  11.  
  12. # solution 1: works but ugly
  13. print "\n+++++++ solution 1 +++++++\n";
  14. my $th1 = threads->create( sub { $cat->sayhi(4); } );
  15.  
  16. foreach ( 1 .. 4 ) {
  17.     print "This is main function.\n";
  18.     sleep 1;
  19. }
  20. $th1->join;
  21.  
  22. # solution 2: more professional
  23. print "\n+++++++ solution 2 +++++++\n";
  24. my $th2 = threads->create( \&Cat::sayhi, $cat, 4 );
  25.  
  26. foreach ( 1 .. 4 ) {
  27.     print "This is main function.\n";
  28.     sleep 1;
  29. }
  30. $th2->join;
  31.  
  32. print "\nDemo ends.\n";

, , ,

No Comments