2008年3月31日星期一

正则表达式拼接和构建零长度对象

之前在网上收集到一个正则表达式拼接的方法/函数,一直没有注意,直到昨天用jsdoc生成api文档时才看到。心里想这样的方法实际应用中大概没什么意义,但是出于好奇就拿出来玩了一下,这一玩不要紧啊,这么精炼的东西差点成垃圾。

可能是网络编辑器的原因,原始代码有bug,经过修正和测试,现在的代码如下:代码I


/**
* 连接两个正则表达式。
* 题外话:获得字符串常量""的长度,比构建空数组再求其长度效率高(忽略构建过程,求长度消耗时间相同)。
* @param {RegExp} r 指定被连接的正则表达式对象。
* @param {String} p 连接后的表达式使用的选项,由"i","g","m"组合而成。
* @return {RegExp} 返回连接后的正则表达式。
*/
RegExp.prototype.concat = function(r, p){
var i=(this.source.match(/\((?!\?:)/g) || "").length; // 正向预搜索。
return new RegExp(this.source+r.source.replace(/\\(\d)/g, function($0, $1){
return "\\" + (i+($1 | 0)); // 修正第二个表达式中的反向引用。注意这里的位运算。
}), p);
};

原方法名是contact,现在为了和字符串类的一致,换为concat,至于bug/不足这里不做解读。
这个实际应用意义不大的小程式却有值得称道的几点:
1. 正向预搜索匹配第一个表达式里左括号(不包括非捕获组(?:))的个数。
2. 当第一个表达式没有匹配时返回0长度对象(再求其长度),可以构建空数组([])和空字符串(""),这里使用空字符串,理由下面再解释。
3. 修正反向引用时用的位运算(),这里将匹配到的数值字符串与0位或没有其他意义,只是将数值字符串转型为数值,相当于parseInt()函数。
下面介绍为什么使用空字符串而不是空数组构建0长度对象。代码II
var I = 10000;

var d = new Date();
for (var i=0; i<I; i++){
"".length;
}
d = new Date()-d;

var d2 = new Date();
for (var i=0; i<I; i++){
[].length;
}
d2 = new Date()-d2;

document.write(d+":"+d2);

一万次循环叠加可以发现构建空字符串比构建空数组求长度快1到3倍。
再将代码改为:代码III
var I = 10000;
var s="";
var d = new Date();
for (var i=0; i<I; i++){
s.length;
}
d = new Date()-d;

var a=[];
var d2 = new Date();
for (var i=0; i<I; i++){
a.length;
}
d2 = new Date()-d2;

document.write(d+":"+d2);

可以发现,求空字符串长度与空数组长度的过程效率相当。可见,代码II处空数组效率多余的消耗主要在构建空数组对象上。

2008年3月28日星期五

又是神奇的邮件

昨天收到的神奇邮件令我诧异不止,不想今天又收到一封更为神奇的邮件,它的来源是我自己的邮箱地址,却不是我发给自己的:


同样,它被放在了垃圾收件箱,同样打上了警告标语“Warning: This message may not be from whom it claims to be. Beware of following any links in it or of providing the sender with any personal information. Learn more

邮件的内容为空,而标题则是RE...。你哪怕发给我一些广告也好啊,我想,现在这样让我怎么给你的身份定位呢?
你可能怀疑这是我发给自己的作秀邮件,但是我的邮件都会带上个性签名。而且我也尝试过,Gmail不会将发给自己的邮件当作垃圾邮件,也不会打上警告标语。

2008年3月27日星期四

神奇的邮件来源

今天收到一封来自google.com域的垃圾邮件,如图:



当然,这个邮件地址是虚假的,它被Gmail自动放在了Spam里。邮件地址下面的红色警戒条上写着“Warning: This message may not be from whom it claims to be. Beware of following any links in it or of providing the sender with any personal information. Learn more


这种虚假的邮件地址来源很常见,而且我还收到一些邮件地址不合法的邮件,甚至还收到收件人不是我的灵异邮件。


但是,纵然这封邮件的地址很假,纵然这封邮件被放在了垃圾邮件箱,纵然这封邮件本身也是广告内容,我在这里还是要提一下这封邮件本身,他是一封公益广告邮件,内容是拯救西北的沙化,绿化西北,防止沙尘暴。


下面是引用原文:
用您善良的心灵,请友善的点击一下吧!Http://www.net114.com/green/拯救地址,携手绿色西北行动用我们的 爱心我们的 责任我们的 双手
支持 绿 西北行动让沙尘暴不再肆虐 让 绿色 驱赶贫困让我们传递这个共同的责任!请友善的点击一下吧!Http://www.net114.com/green/

拷贝过来的文本已经失去了原文的格式,这里不做调整。

我看过文中提到的地址,下面发一些里面的牛图:

中国许多地区被沙化。




肆虐的沙尘暴。

2008年3月24日星期一

世界就是一个班

世界就是一个班
1、美国 班长,学习好,家里有钱,人高马大,好打架。班里没几个人敢惹他。 和副班长关系不好。
2、俄罗斯 副班长,成绩优异,全班最高大,上学期光和班长顶着干。后来家里出事:分家!现在做事很消极,但在班级里有一定的影响力。
3、中国 团支书。幼儿园学习成绩很好。小学时由于体质差常被欺负,没事爱吹牛,由副班长罩着。
4、英国 学习委员,学习成绩好。家里也很富。班长的跟屁虫,做事没主见,啥都听班长的。前些天和班长把伊拉克打了一顿。
5、瑞士 美术课代表,班花。学习成绩好,清高。
6、奥地利 音乐课代表。
7、阿富汗 职务无。不爱学习。身材矮小。上学期被副班长打,班长帮忙付医药费。前几天把班长家的最高的两个家具砸了,被班长揍个半死,现在失忆中。
8、伊拉克 无职务。学习差。但人高马大,上学期排全班第四。嘴硬,上学期欺负同桌被群殴。前些天被班长和学习委员冲进他家揍个稀巴烂。
9、印度 好玩电脑,成了电脑课代表。经常和同桌巴基斯坦为一块课桌吵架。
10、巴基斯坦 职务无。成绩一般。和团支书关系不错,经常和印度吵架。
11、德国 班级活跃分子,人高马大,擅长数理化。有野心,由于上学打了2架所以现在暂无职务。但认错态度较好。
12、日本 无职位,成绩不错。思想品德很{巨}差。上学期刚被班长和团支书等人揍。现在还惦记着班长家的鱼缸。
13、越南 无职位。人品有问题,瘦弱。上学期被班长揍,幸好有副班长和团支书撑腰。后又挑衅团支书,被狂揍。
14、朝鲜 无职位。有个性。和团支书关系好。近期和班长闹矛盾,班长扬言要揍他

2008年3月14日星期五

一年里的12个情人节...

一年里的12个情人节.... 
1月14日 Diary Day 日记情人节 
2月14日 Valentine's Day 传统情人节 
3月14日 White Day 白色情人节 
4月14日 Black Day 黑色情人节 
5月14日 Yellow &Rose Day 玫瑰情人节 
6月14日 Kiss Day 亲亲情人节 
7月14日 Silver Day 银色情人节 
8月14日 Green Day 绿色情人节 
9月14日 Music &Photo Day 相片情人节 
10月14日 Wine Day 葡萄酒情人节 
11月14日 Orange & Movie Day 电影情人节 
12月14日 Hug Day 拥抱情人节 

大工程

毕业后四年,总算接了个大工程,造一根三十米烟囱工期两个月,造价三十万,不过要垫资。总算在去年年底搞完了。
今天人家去验收,被人骂得要死,还没有钱拿。他妈的,图纸看反了,人家是要挖一口井。

2008年3月13日星期四

一群大雁往北飞 & 雁照门

今天早上看见一群大雁从南往北飞回来,一会排成一字形,一会排成人字形,嘴里不停念到: "他妈的,今年白飞了一趟,南方比北方还冷,还被卷入雁照门"

2008年3月11日星期二

随便

我不是个随便的人,我随便起来不是人。

route命令 中文详细解释


Route
控制网络路由表。该命令只有在安装了 TCP/IP 协议后才可以使用。

route [-f] [-p] [command [destination] [mask subnetmask] [gateway] [metric costmetric]]

参数

-f
清除所有网关入口的路由表。如果该参数与某个命令组合使用,路由表将在运行命令前清除。

-p
该参数与 add 命令一起使用时,将使路由在系统引导程序之间持久存在。默认情况下,系统重新启动时不保留路由。与 print 命令一起使用时,显示已注册的持久路由列表。忽略其他所有总是影响相应持久路由的命令。

command
指定下列的一个命令。

命令 目的
print 打印路由
add 添加路由
delete 删除路由
change 更改现存路由

destination
指定发送 command 的计算机。

mask subnetmask
指定与该路由条目关联的子网掩码。如果没有指定,将使用 255.255.255.255

gateway
指定网关。

名为 Networks 的网络数据库文件和名为 Hosts 的计算机名数据库文件中均引用全部 destination 或 gateway 使用的符号名称。如果命令是 print 或 delete,目标和网关还可以使用通配符,也可以省略网关参数。

metric costmetric
指派整数跃点数(从 1 到 9999)在计算最快速、最可靠和(或)最便宜的路由时使用。
 
 
route命令范例

route print
要显示 IP 路由表中以 10. 开始的路由,请键入:
route print 10.*

要添加默认网关地址为 192.168.12.1 的默认路由,请键入:
route add 0.0.0.0 mask 0.0.0.0 192.168.12.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1 的永久路由,请键入:
route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1,跃点数为 7 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7

要添加目标为 10.41.0.0,子网掩码为 255.255.0.0,下一个跃点地址为 10.27.0.1,接口索引为 0x3 的路由,请键入:
route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3

要删除目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由,请键入:
route delete 10.41.0.0 mask 255.255.0.0

要删除 IP 路由表中以 10. 开始的所有路由,请键入:
route delete 10.*

要将目标为 10.41.0.0,子网掩码为 255.255.0.0 的路由的下一个跃点地址由 10.27.0.1 更改为 10.27.0.25,请键入:
route change 10.41.0.0 mask 255.255.0.0 10.27.0.25

 

(funny) 小笑话

傻子偷乞丐的钱包,被瞎子看到了,哑巴大吼一声,把聋子吓了一跳,驼子挺身而出,跛子飞起一脚,麻子说:"看我的面子算了."疯子说:"就是,大家要理智!" 

2008年3月6日星期四

(八卦) MBTI职业性格测试

MBTI人格理论是一种描述性格的方法,它从四个不同的角度分析人的个性,一共可以组成2^4=16种不同的性格。MBTI人格理论是目前国际上应用最广泛的职业规划和个性测评理论。你可以在这里看到更多有关的内容。网上有一个流行很久的测试题,可以测出你属于哪一种性格。
http://www.psytopic.com/mag/post/mbti-career-personality-test-psytopic-special-edition.html

下面是我今日的测试结果。
Psytopic分析:您的性格类型是"ISFJ"(内向+实感+情感+判断)

沉静,友善,有责任感和谨慎。能坚定不移地承担责任。做事贯彻始终、不辞劳苦和准确无误。忠诚,替人着想,细心;往往记着他所重视的人的种种微小事情,关心别人的感受。努力创造一个有秩序、和谐的工作和家居 环境。

ISFJ型的人忠诚、有奉献精神和同情心,理解别人的感受。他们意志清醒而有责任心,乐于为人所需。 ISFJ型的人十分务实,他们喜欢平和谦逊的人。他们喜欢利用大量的事实情况,对于细节则有很强的记力。他们耐心地 对待任务的整个阶段,喜欢事情能够清晰明确。 ISFJ型的人具有强烈的职业道德,所以他们如果知道自己的行为真正有用时,会对需要完成之事承担责任。他们准确系统地完成任务。他们具有传统的价值观,十分保守。他 们利用符合实际的判断标准做决定,通过出色的注重实际的态度增加了稳定性。 ISFJ型的人平和谦虚、勤奋严肃。他们温和、圆通,支持朋友和同伴。他们乐于协助别人,喜欢实际可行地帮助他人。他们利用个人热情与人 交往,在困难中与他人和睦相处。ISFJ型的人不喜欢表达个人情感,但实际上对于大多数的情况和事件都具有强烈的个人反应。他们关心、保护朋友,愿意为朋友献身,他们有为他人服务的意识,愿意完成他们的责任和义 务。

您适合的领域有:领域特征不明显,较相关的如:医护领域、消费类商业、服务业领域

您适合的职业有:

・ 内科医生
・ 营养师
・ 图书/档案管理员
・ 室内装潢设计师
・ 顾客服务代表
・ 记账员
・ 特殊教育教师
・ 酒店管理
・ 人事管理人员
・ 电脑操作员
・ 信贷顾问
・ 零售业主
・ 房地产代理或经纪人
・ 艺术人员
・ 商品规划师
・ 语言病理学者
・ 审计师
・ 会计
・ 财务经理
・ 办公室行政管理
・ 后勤和供应管理
・ 中层经理
・ 公务(法律、税务)执行人员
・ 银行信贷员
・ 成本估价师
・ 保险精算师
・ 税务经纪人
・ 税务检查员
・ 机械、电气工程师
・ 计算机程序员
・ 数据库管理员
・ 地质
・ 气象学家
・ 法律研究者
・ 律师
・ 外科医生
・ 药剂师
・ 实验室技术人员
・ 牙科医生
・ 医学研究员