Nov 03
8月13日 @ 永胜
很多天没有写,应该尽快写完在云南的18天了。前几天上课时,讲搜索引擎的营销,我边听边尝试我博客在搜索引擎的排名,竟然搜索出来Jessica Lee写的永胜之旅。作为一个母语是英语的同学,她写的文字让人惊艳让人佩服。一林评论说:“赞!赞!喜欢Jessica淡定而温暖的文字,喜欢Jessica灿烂而平和的笑容!”
话归主题,13日上午是安排的是“PhotoShop和照片处理”,我来主讲。首先是普及数字色彩知识、展示Photoshop的魔力,还播放了网络小胖传奇,呵呵。遗憾的是,当开始动手实践的时候,才发现要涉及的基础的知识太多,需要比较长的准备时间和课堂时间,才能讲个Photoshop基础,对这个完全没有心理准备。当时曾想在安排课程,讲解一个简单的照片处理软件,比如Picasa,可惜时间不足没有安排。
下午,在先觉电脑由Jialun主讲“Word中级操作”;在进修学校Dongxiao给初级班讲“PowerPoint课件制作入门”,我去助教。好多天没有到进修学校来了,好像当时下过雨,空气湿润,这里又离大街很远,所以环境非常安静,偶尔有雨后鸡鸣或几声狗吠。站在3楼的阳台上,前面、左边、右边都是苍翠的山峰。
进修学校的电脑,软件居然是PowerPoint 97,很汗,一个使用PowerPoint 2003+的人,一边第一次用PowerPoint 97,一边讲解使用。盗版在中国这样普及,让国人总能跟着软件的潮流走。可是,另一方面,也减少了Linux等自由软件带来的创新机会。因为国内无数的小公司,买不起正版也为了避免日后麻烦,创业使用的是LAMP组合;如果自由软件的用户基数大,那这种创业的小公司应该更多吧。
下午进行到一半的时候,收到李老师电话,回了宣明会一趟,办一些报销手续。然后得到通知,子局长等要请我们晚饭。时间也差不多了,我就走回汉城宾馆,等他们上完课回住处。如果不赶时间,我们经常这样走路。
“粉丝,再来一盘!”
傍晚,计算机志愿者们在巨大的三川火腿广告牌下集合,等英语志愿者们。后来Yilin估计她们还要很长时间,让我们先走。我们到达后,在门口等了很久,六名英语志愿者们乘坐三轮车出现了。
之所以姗姗来迟,原来是Justine帮Wenjia化妆了。据说Wenjia是第一次化妆,可是她人本来就很pp,花了妆以后,就更加……啧啧……光彩夺目了!可是时间过去太久,我也不确信是不是那天Wenjia化妆了。总之美女帮美女化妆的事情是发生过的,很惊艳。Justine和Doris的化妆行头,也让男生惊奇,呵呵。(查了照片,我没记错Wenjia的化妆时间:)
那天晚上吃的是火锅,锅底有乌鸡。云南貌似都养乌鸡的,所以吃过很多次乌鸡火锅了,而且锅底不是乌鸡就是鱼。某mm感叹,在云南这几天吃的乌鸡,比一辈子吃的都多!
教育局的子局长、李老师、杨老师、吴校长和几位宣明会工作人员一起请我们吃饭,人太多了,只好分成两桌,我们桌是子局长和志愿者们。我的美食知识很弱,又一次,对这些美食只能从略记述了。子局长讲了很多故事,特别有意思,我们也分享自己的见闻和故事。印象特别深刻的是,几位女生学说永胜方言,让老板加粉丝的时候Justine学会了方言“粉丝再来一盘”,于是美女就一连喊了一百遍,估计楼下老板听了乐开了花,o(∩_∩)o…
差不多结束的时候,宣明会的袁先生携太太也过来了,我们聚成三三两两的聊天。后来,就走着回住处了。很远的路,边走边聊,不知不觉就走完了。
先休息一下,预报:接下来要讲一个很大的八卦啦!
瞧这俩

李老师和火锅,*_^

Jiatu、Jialun和李老师、杨老师

Wenjia和吴校长
全体合影

Nov 02
有时候,需要对网页表格中的数据进行排序,这个可以在server端完成,也可以使用Javascript完成。Javascript完成的示例代码如下:
<html>
<body>
<table border=”1″ id=”tblSort”>
<thead>
<tr>
?<th onclick=”sortTable(’tblSort’)” style=”cursor:pointer;background-color:silver”>Last Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>Smith</td>
</tr>
<tr>
<td>Johnson</td>
</tr>
<tr>
<td>Henderson</td>
</tr>
<tr>
<td>Williams</td>
</tr>
<tr>
<td>Gilliam</td>
</tr>
<tr>
<td>Walker</td>
</tr>
</tbody>
</table>
<script language=
"javascript" type=
"text/javascript">
var direction =
0;
function compareTRs(oTR1, oTR2) {
var sValue1 = oTR1.cells[0].firstChild.nodeValue;
var sValue2 = oTR2.cells[0].firstChild.nodeValue;
return sValue1.localeCompare(sValue2);
}
function sortTable(sTableID){
var oTable = document.getElementById(sTableID);
var oTBody = oTable.tBodies[0];
var colDataRows = oTBody.rows;
var aTRs = new Array;
for (var i=0; i < colDataRows.length; i++) {
aTRs[i] = colDataRows[i];
}
aTRs.sort(compareTRs);
if(direction == 1){
aTRs.reverse();
direction = 0;
}
else{
direction = 1;
}
var oFragment = document.createDocumentFragment();
for (var i=0; i < aTRs.length; i++) {
oFragment.appendChild(aTRs[i]);
}
oTBody.appendChild(oFragment);
}
</script>
</body>
<html>
参考《Professional Javascript for Web Developers》by Nicholas C. Zakas。
Nov 02
在用Lucene.Net做一个文件搜索的兴趣项目,主要用来帮我找电影。其中一个需求是高亮显示关键词,使用Highlighter.Net可以解决,但是当有停止词的时候,常常会丢失部分数据,我也懒得去修改它的源代码,想了想,可以用Javascript在客户端高亮显示,一小段代码就完成了,:-)
<script type="text/javascript" language="javascript">
var query="";
function highlight(){
var terms = null;
try{
terms = query.split(" ");
}
catch(e){}
$$(’span[class="cc"]‘).each(
function(item){
var data = item.innerHTML;
if(!data) return;
for(var j=0;j<terms.length;j++){
var term = terms[j].strip();
var pattern = new RegExp(term, "i");
var hiterm = "<span class=’hi’>" + term + "</span>";
try{
data = data.gsub(pattern, hiterm);
}catch(exception){}
}
item.innerHTML = data;
}
);
}
</script>
稍微解释一下:基本过程是,把需要高亮显示的Dom节点找出来,取得它的innerHTML,然后使用正则表达式替换成高亮的语法。这里用到了两个prototype的函数,一个是$$(’params’),用类似XPath的语法选取Dom节点;另一个是String.gsub(pattern, substr),是prototype对字符串对象扩展的操作。prototype是一个开源的AJAX包,官方站点http://www.prototypejs.org。
Nov 02
Microsoft has been competing with community, which makes?them seems very stupid.?Java has a comprehensive community, and they?host many high-quality open source projects. The Java ecosystem is so diverse that you can always find quick solutions, in additon to developing self-owned systems. Microsoft doesn’t have?much?intention to develop or support open source community of C#. Instead, they compete with community, or just harvest comunity endeavor. It’s really stupid because C# developers will lose posibility to having more high-quality choice in the future.
A?new example is?their anoucement of developing?Model 2, instead of supporting the open source MVC framework like?MonoRail. The community has been developing MonoRail?in recent years. In 2007 RC3 is realsed after a year development. This MVC framework is a good choice for developers who love flexible HTML and hate the WebForm model. Microsoft staff give very weak reasons for why not supporting existing projects.
Undoubtedly Microsoft is?and has been a great company. It doesn’t necessarily mean that a great company never does stupid things. However, companies in different sizes have different social influence. If a large company does stupid things, they are wasting social wealth and put their partners on high stake as well as themselves. Maybe their open-source strategy limits the advancement direction.
Some related commments:
Nov 02
由朋友介绍,给一家公司的Java开发人员,做了一个3天的培训,期望能让他们快速地了解和掌握.NET和C#开发。面对一帮做了5年或以上开发的大哥们,是很有压力的。上一次这么大压力,是几年前的事情,有位山东来的老教授,白发苍苍,讲授了很多年Turbo C 2.0,老骥伏枥志在千里的他与时俱进想学习C#,让我又钦佩又紧张。
几天课程讲下来,感觉还可以,也不枉那5天熬夜看的不少资料。另外,毕竟C#和Java相似的地方,还挺多的。对于一位Java开发者,或者对两种语言都感兴趣的朋友,应该对这篇文章非常感兴趣的:
Dare Obasanjo写的《C#与Java异同比较》(Comparison of Microsoft’s C# Programming Language to Sun Microsystems’ Java Programming Language)。
Nov 02
In the past 10 days, I have been busy with a lot of things. It’s about interview, courses, association activity, a programming project, and a short-term job. All things piled up and consequently I didn’t have enough time to write blogs.
Finally I am back. I will write something about what I learned in the past two weeks. 
最新评论