大头
Table_bottom

标签云
Table_bottom

分类
Table_bottom

日历
八月
31123456
78910111213
14151617181920
21222324252627
28293031123
Table_bottom

评论
Table_bottom

留言
Table_bottom

微博
Table_bottom

热门文章
Table_bottom

随机文章
Table_bottom

豆瓣上谁关注这里
Table_bottom

链接
Table_bottom

搜索栏
Table_bottom

RSS
RSS Link
Table_bottom

功能
Table_bottom

页面
Table_bottom

计数器
447896
Table_bottom

访客统计
Table_bottom

存档
Table_bottom

滑稽的李刚

javaeye的网友fins说:

李刚是个很有意思的人。

他在论坛里说: 愿意接受大家的批评。
我说:我觉得你的书不好。
他马上回应:为什么我的那么多学生,都说我的书好,只有你认为不好呢?是不是你的问题呢?

他在论坛里说, 欢迎大家把readonly对他的那些质疑,发到他的论坛里,他会一一做出回应。
我转了,瞬间就被删除了。

唉,无语了。

如果我再用“又想做婊子,又想立牌坊”这句话来形容他,显得我太没有创意和水平了。
但是,我实在找不出更合适的话了。

robbin说:

某人的脸皮不是一般厚滴,上次电话骚扰事件中我已经领教过了。给我发的站内短信前一封还信誓旦旦说这个电话号码根本不认识,而且打过去没有人接,等我一公布电话号码,立刻又发一封站内短信给我,承认此电话号码是他的上司田XX的。那个转变的速度,真是比变色龙还快。这些站内短信我一直保存着,已经打印出来做了公证,呵呵。

李刚事件请见:javaeye上对李刚的书的差评

初学Perl之五

今天要读取目录中的文件,把所有的txt文件打开用之前的程序分析一下。

先用的是foreach,后来改用while,运行报错,加打印信息看到readdir读进来的文件先是 . 和 .. 。不知道如何筛选目录下读出的文件,搜到一个perl学习笔记,那里找到了实例。

  1. next unless $file =~ /\.TXT$/;

现在可以筛选出所有的txt文件了。

但是有个问题,程序如下:

  1. opendir DH, $dir_to_process;
  2. while($file = readdir DH)
  3. #foreach $file (readdir DH)
  4. {
  5.         print $file, "\n";
  6.         next unless $file =~ /\.TXT$/;
  7.         print "one file in $dir_to_process is $file\n";
  8.         open(FILE, "<$file") or die "open error: $!";
  9.         while(<FILE>)
  10.         {
  11.                 #do something.
  12.         }
  13.         close(FILE);
  14. }

readdir读出一个文件,打印出文件名,然后看是否是txt文件,是的话打印“one file in xxx ……”,然后打开这个文件,一行一行读取。现象是这样,读取某一个文件的时候,报出了open error: No such file or directory。

而这个文件是存在,并且之前打印文件名,打印“one file in xxx ……”都有。可是在打开文件时却出错,说文件不存在,为什么?

初学Perl之四

今天要把提取的字串输出到excel文件中。

一开始是直接写,用'\t'移到下一个单元格,但是不会换行。后来google上搜一搜知道要用Spreadsheet::WriteExcel模块。运行程序报错说“Can't locate Spreadsheet/WriteExcel.pm”,再搜了搜知道要打开PPM(Perl Package Manager)去安装这个模块。用它,写excel文件就方便了。我没有看文档,现在的需求还很简单。

然后碰到下一个问题,写中文乱码。之前搜索的时候看到过很多关于这个问题的帖子,这次是Unicode::Map模块。一样要去PPM安装。一样的方便。

程序如下:

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use Spreadsheet::WriteExcel;
  5. use Unicode::Map();
  6.  
  7. my $workbook = Spreadsheet::WriteExcel->new("result.xls");
  8. my $worksheet = $workbook->add_worksheet("hymz");
  9.  
  10. my $Map = new Unicode::Map("GB2312");
  11. my $subset = "书名:</td>";
  12. my $cnt = 0;
  13. my $modflag = 0;
  14.  
  15. while(<>)
  16. {
  17.         if($modflag == 1)
  18.         {
  19.                 #get the book name.
  20.                 $cnt = $cnt + 1;
  21.                 $_ =~ m!>(.*?)</a>!;
  22.                 $worksheet->write($cnt - 1, 0, $cnt);
  23.                 $worksheet->write_unicode($cnt - 1, 1, $Map->to_unicode($1))
  24.         }
  25.  
  26.         my $offset = 0;
  27.         $offset = index($_, $subset);
  28.         if($offset == -1)
  29.         {
  30.                 $modflag = 0;
  31.         }
  32.         else
  33.         {
  34.                 $modflag = 1;
  35.         }
  36. }
  37. $workbook->close();
  38.  

主要参考这篇文章:实例解说:用Perl来分析并生成中文Excel文件

javaeye上对李刚的书的差评

我不懂java,也不会做网站,更没看过李刚的任何一本书,所以我不想做评价。

但是我相信gigix,相信庄表伟,相信o6z,相信robbin,相信javaeye,相信javaeye上顶着一堆钻石、皇冠的资深会员。所以,我搜集了一下相关的帖子,认真看过,整理如下,也可以看看china-pub上面的书评,有书托,也有看过说好,看过说不好的。但是,精彩还是javaeye。

帖子长了些,看完得花点时间,但是这个时间的花费,比起买来烂书去读去想去扣所浪费的时间和金钱来说,还是值得的。一页一页翻贴,经常的还有些乐子。

Ruby on Rails敏捷开发最佳实践》,2008年4月,电子工业出版社,定价¥79.8。javaeye主题:师傅领错门,害了你个人 - ruby/rails新手避免入错门

疯狂Java讲义》,2008年10月,电子工业出版社,定价¥99。java主题:拼拼凑凑也是书 - 李刚<<疯狂java讲义>>

Readonly的精彩书评之后,庄表伟开始揭露李刚书的书托。

庄表伟:主题:好书不必托,有托必烂书!

庄表伟:主题:有托必烂书系列——《师傅领错门》之配套阅读(2)

诸多帖子里提到了给JavaEye打骚扰电话事件,这个帖子里,自称是李刚的一个帐号站了出来,和robbin及庄表伟有一番对话。

javaeye和robbin手机家庭电话受到电话骚扰事件,引出这个骚扰电话事件的似乎是帐号都别装了发的一个帖子,这个帖子已经被robbin删去,他另一个帖主题:至李刚 (他是谁?请Google J2EE 李刚)还在继续讨论揪书托的事情。

初学Perl之三

今天程序终于跑对了。程序如下:

  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. my $subset = "书名:</td>";
  6. my $modflag = 0;
  7.  
  8. while(<>)
  9. {
  10.         if($modflag == 1)
  11.         {
  12.                 #get the book name.
  13.                 print $1 if $_ =~ />(.*)<\/a>/m;
  14.                 print "\n";
  15.         }
  16.  
  17.         my $offset = 0;
  18.         $offset = index($_, $subset);
  19.         if($offset == -1)
  20.         {
  21.                 $modflag = 0;
  22.         }
  23.         else
  24.         {
  25.                 $modflag = 1;
  26.         }
  27. }

get the book name那里(L13, L14),这样写也可以:

  1.         $_ =~ m!>(.*?)</a>!;
  2.         print $1, "\n";

这样写的时候,'/a'前面加'\'或者不加'\'结果都是对的;而采用第一种写法时不是这样,必须加'\',去掉则不正确,报错信息是:

Bareword found where operator expected at xxxx line 23, near "/>(.*?)</a"

(Missing operator before a?)

syntax error at xxxx line 23, near "/>(.*?)</a"

这是为什么?

对方法和工具的依赖

o6z几年前好像就说CSDN软工版都是侃爷,光说不练只知道些理论没有实践经验。

我很惭愧。几年来也就是偶尔上去看看,处理一些违规帖。

确实,问一些很二,很无聊问题的人很多,同时,很二,很无聊的回答也很多。

有时挺让人看着生气。

譬如这个问题:何保证软件质量呢?一般都用什么方法或工具?

我的回答是:我也想知道有什么工具能保证牛奶的质量。

下面是一个我觉得很二的回答,而这个回答可能会得到这个帖子全部20分的一半以上,在那里往往是写字越多,得分越多:

好大的题目啊
质量问题现在越来越受关注
不同的人有不同的看法,不同的人有不同的作用
客户,系统设计人员,项目经理,开发工程师,QA人员,测试人员
PS:突然发现这几个角色我都扮演过,哈哈哈
总之把各个阶段的缺陷控制住就相当不容易了
个人觉得,需求理解和设计阶段是最重要的,此时引入的缺陷,在分析设计阶段被发现了还ok,真正到了后面就闹大了
慢慢总结,关于质量真的有很多话题可以说
说到工具和方法,缺陷跟踪工具,缺陷围堵方法,同级评审,技术评审,需求评审,总之评审是个很好的方法~~就是太花时间和精力
一家之言仅供参考
祝你成功

初学Perl之二

程序有问题,有关字符串匹配。会用index函数去查找字串,那就能找到正确的行。可是运行总是报错,看不懂报错信息。怀疑是语法错误,却不知道错在哪儿。不像C,编译就排查了语法错误。CSDN上乱翻贴,看到有人推荐一个工具Komodo(下载)。装了后打开我的程序源文件,看到一行波浪线,太好了,这里有问题:

  1. $_ =~ m!>(.*?)</a>;

可是什么问题呢?书上说模式匹配函数(m//)是这样用的:

  1. m/pattern/;

 还说m后的第一个字符是模式分隔符。在一个例子里用!做分隔,我没有正确理解,这是把缺省分隔符(/)换成其他的(!)。因此这样才对:

  1. $_ =~ m!>(.*?)</a>!;

 现在的程序可以跑,但是结果不对。问题还是在这一行。我要取出所需要的字串。哪里不对?应该怎么写?没人可问,继续琢磨。

初学Perl之一

开始学习Perl,起由是想做个小工具,用C也可以,一则不急,二则不忙,那就慢慢做。

先下载ActivePerl,5.10.0 Build 1004。CSDN上看人介绍又下了个perl-lint-mode,也不知道怎么用,先放着。再下载EditPlus做编辑器。

我的第一个perl程序问题是:global symbol requires explicit package name at xxx

google这个报错信息,知道了问题所在。程序里用了use strict之后,就必须用our或者my声明变量。为什么呢?找到了这个介绍:Use Strict And Warnings

程序很简单,我只是想试一下命令行参数。

  1. #!/usr/bin/perl
  2. #use strict;
  3. use warnings;
  4.  
  5. $NUM = @ARGV;
  6. print $NUM;
  7.  
  8. #open(TESTFIEL, "test.txt");
  9. while(<>)
  10. {
  11.         print;
  12. }
  13.  

代码之美 - 081104

《当你与世界的联系只有一个按钮时》,Arun Mehta讲的是给霍金教授设计写字和说话的软件。Mehta是一个印度人。

这一篇的翻译一般,也许是译者看原文看得很枯燥,译文让我读得也枯燥。

由于输入只能通过对一个按钮的点击,软件的设计煞费苦心。主要以树型结构为基础,用表实现预测,用缓存提高命中。

有兴趣的可以去这个讨论列表

P535有一个错误,“在界面的右下方显示了两个数字(参见图30-2)”,应该是图30-1。可我查了英文版,也错为30-2了。