More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Liang Zhao@Blog (Mirror)PhotosProfileFriendsMore Tools Explore the Spaces community

Liang Zhao@Blog (Mirror)

My Conquest is the Sea of Stars
Updated 4/24/2008
May 07

成绩险中求

期末考试的 Timetable 出来了,从 6 月 12 日考到 6 月 18 日。一个礼拜之内,考掉 4 门科目……而且最郁闷的是 6 月 16 日需要考两门,第一门 COMP9321:e-Commerce Implement Infrastructure 是从早上 8:45 到 12:00;而第二门 COMP9201:Operating Systems 则要从下午 13:45 到 16:00。

富贵险中求啊……哦,不,是成绩险中求。

晒晒考试时间表……

DayDateS.TimeE.TimeCourse
Thu12/06/200808:4512:00COMP9414:Artificial Intelligence
Mon16/06/200808:4512:00COMP9321:e-Commerce Impl. Infrastruct.
Mon16/06/200813:4516:00COMP9201:Operating Systems
Wed18/06/200808:4511:00COMP9331:Computer Networks&Applications
May 03

Java 代码行数统计程序

用 Java 完成了一个 DNS Resolver 的作业程序。自我感觉结构写得还不错,便拿着到处和同学比测试速度和测试用例。到最后,实在是比无可比,便想到了比代码行数……

计算代码行数需要去除代码中多余的空白行和注释行。所幸 Cure 有用 Python 写过一个代码行数统计程序,便取过来,配合 Java 语法规则,做了些小修改。便完成了这个 Java 代码行数统计程序

使用该程序需要 Python 运行库支持,使用命令行,

python LineCount.py

在网上还找到一个代码语法高亮着色器,着色一下修改后的代码,贴出来看看效果。

1 import sys; 2 import os; 3 4 class LineCount: 5 def trim(self, docstring): 6 if not docstring: 7 return '' 8 lines = docstring.expandtabs().splitlines() 9 10 indent = sys.maxint 11 for line in lines[1:]: 12 stripped = line.lstrip() 13 if stripped: 14 indent = min(indent, len(line) - len(stripped)) 15 16 trimmed = [lines[0].strip()] 17 if indent < sys.maxint: 18 for line in lines[1:]: 19 trimmed.append(line[indent:].rstrip()) 20 21 while trimmed and not trimmed[-1]: 22 trimmed.pop() 23 while trimmed and not trimmed[0]: 24 trimmed.pop(0) 25 26 return '\n'.join(trimmed) 27 28 def FileLineCount(self, filename): 29 (filepath,tempfilename) = os.path.split(filename); 30 (shotname,extension) = os.path.splitext(tempfilename); 31 if extension == '.java': # file type 32 file = open(filename,'r'); 33 self.sourceFileCount += 1; 34 allLines = file.readlines(); 35 file.close(); 36 37 lineCount = 0; 38 commentCount = 0; 39 blankCount = 0; 40 codeCount = 0; 41 for eachLine in allLines: 42 if eachLine != " " : 43 eachLine = eachLine.replace(" ", ""); # remove space 44 eachLine = self.trim(eachLine); # remove tabIndent 45 if (eachLine.startswith("//") == 1 46 or eachLine.startswith("*") == 1 47 or eachLine.startswith("/*") == 1 48 or eachLine.startswith("*/") == 1): # LINECOMMENT 49 commentCount += 1; 50 else : 51 if eachLine == "": 52 blankCount += 1; 53 else : 54 codeCount += 1; 55 lineCount = lineCount + 1; 56 self.all += lineCount; 57 self.allComment += commentCount; 58 self.allBlank += blankCount; 59 self.allSource += codeCount; 60 print filename; 61 print ' Total :',lineCount; 62 print ' Comment :',commentCount; 63 print ' Blank :',blankCount; 64 print ' Source :',codeCount; 65 66 def CalulateCodeCount(self,filename): 67 if os.path.isdir(filename) : 68 if not filename.endswith('\\'): 69 filename += '\\'; 70 for file in os.listdir(filename): 71 if os.path.isdir(filename + file): 72 self.CalulateCodeCount(filename + file); 73 else: 74 self.FileLineCount(filename + file); 75 else: 76 self.FileLineCount(filename); 77 78 # Open File 79 def __init__(self): 80 self.all = 0; 81 self.allComment = 0; 82 self.allBlank = 0; 83 self.allSource = 0; 84 self.sourceFileCount= 0; 85 filename = raw_input('Enter file name: '); 86 self.CalulateCodeCount(filename); 87 if self.sourceFileCount == 0 : 88 print 'No Code File'; 89 pass; 90 print '\n'; 91 print '***************** All Files **********************'; 92 print ' Files :',self.sourceFileCount; 93 print ' Total :',self.all; 94 print ' Comment :',self.allComment; 95 print ' Blank :',self.allBlank; 96 print ' Source :',self.allSource; 97 print '****************************************************'; 98 99 myLineCount = LineCount();
April 19

德国缺德,法国无法

前人将“德”与“法”这两个神圣的表字,放在这两个国家的名字中……这本是相当美好的寓意。但是,最近这两个国家的媒体以及政客的蓄意误导行为,却让人不得不遗憾于这两个国名,实不至,名不归……

先有德国媒体对西藏暴乱的一系列误导性照片和视频。接着又有法国巴黎火炬接力过程中的无法无天。近来,德国又开始有 17 家媒体炮制中国政府驱逐外国留学生的报道。三人成虎,更何况这十七家有头有脸的媒体共泼脏水。

由此产生的结果,倒是无端地激起了全球中国人的愤慨——特别是青年一代。有人将之简单的归纳为网络民族主义的高涨,并担心民族主义可能产生的恶果。这,多少是一种转移视线,避重就轻的说法。无论是游行中的五星红旗到处飘扬,还是 MSN 上的红心 CHINA,其基本的出发点都是抗议不实报道的一种本能策略——既然你抹黑,那这边自然就要抹红。

其实,作为 80 后, 90 后的中国青年,应该是受西方文化影响最深的两代人:吃着麦当劳、肯德基,听着格莱美,看着好莱坞。男生会去关注奥迪,女生会去关注 LV。经济大好的几十年,同样也造就了大量的留学生,往赴全球各地。这批在西方学成的留学生,在西藏暴乱后,却纷纷站了出来,建立网站、发布视频、组织游行……纽约时报将这愚蠢地归结为中国青年的“乐观”。认为“最近毕业的中国大学生是乐观的一群”。但是,身处中国的青年又有哪个不知道“毕业等于失业”的名言。如果真要怪罪,要怪的,只能是中国青年的“天真”。在国内,听多了贪污腐败,听多了老实人要被别人骗。本以为自己所到的外国,应该是如电影中那样宣称地“民主与自由”。但在西藏暴乱之后,民主是有局部性的,自由更是会选择性失忆的。

当年很傻很天真,如今自然会很愤怒,但不暴力……

April 13

很好很强大

今天悉尼和墨尔本同步举行华人爱国和平游行了。

悉尼警方统计此次游行共六千人;而据说墨尔本今天共两万人游行,难怪有人说,猛然发现墨尔本原来有这么多中国留学生……只能用很好很强大来形容了……

具体细节、照片,去看论坛报道吧。

View more entries
 
Welcome to visit Liang Zhao@Blog (Mirror)