实时跟踪邮件进度的GPS邮票
通常在警匪片里能看到这样的场景:一伙人拼死抢走的钞票或是毒·品里边夹着一个轻巧的微型定位装置,一边为抢劫得手而兴奋的时候,殊不知已经暴露在跟踪地图里了。警匪斗勇斗志的场景离我们的日常生活有点远,不过寄送一封邮件或是一件包裹的时候,想确切了解进度的话,有这种装置还真是不错。
这款G.P.Stamp是张像邮票一样轻薄的GPS装置,0.2毫米厚度的电路板配合仅0.4毫米厚的超薄电池,可以将邮件、包裹的运输轨迹实时无线反馈到你的电脑,听起来貌似不错?唯一遗憾的是,这还只是概念设计 详细内容
JavaScript Quiz: function Name
很困,差点都睡着了。看到工友发的一个推,玩了一下。求解。

function xx(){
//how to output function name:xx here?
}
======
好吧。无情的分割线,没人回答。我的解法是利用 arguments.callee.toString()
function fn(){
var fncode = arguments.callee.toString(), rnotation = fncode.indexOf('(');
alert(fncode.slice(9, rnotation));
}
但如果用(function())() 这样来执行。其实 IE 下获取到的和其他浏览器不同。结果就要 hack 了。如果用 fn() 来执行,那事实上我们知道 fn 这个名啦。 详细内容
JavaScript 散记:Tangram
好吧,为了新框架。学习吧。已经把内部的框架瞄完了。正好正在筹备下一版,趁年末这段时间,学习一下其他的框架,好在下次有机会参与构建的时候用上。Tangram 是百度前不久开源出来的框架,颗粒化比较细,注释也非常详尽,就先瞄瞄吧。下面是一些笔记。
目前这篇文章的状态是:【完结】
1. 文档模式判断
一般很少用。标准模式:document.compatMode === ‘CSS1Compat’。Quirks 模式对应的是 BackCompat。
2. 浏览器判断
采用主流的正则检测。利用正则 test() 执行后会存储的捕获组来匹配到的浏览器版本号,用 parseFloat 来得到最终的大版本号。IE8以上使用 document.documentMode 来获取正确的渲染模式版本号,其他 IE 版本和一般浏览器一样。Maxthon 则使用 try…catch 语句,用浏览器提供的 external.max_version 来获取。
更多的,可以参照 kissy 的 ua-extra.js 。 详细内容
JS 去空格的最佳实践: trim()
学习框架的我,又来了。看到 String 对象扩展这一部分,对 trim() 这个经常被来来说的方法比较感兴趣。刚好上次有同学提出疑问。刚好可以自测一下。先来看看老道在《JavaScript 精粹》P33 写的吧。他对 String 对象扩展了一个 trim() 方法:
Function.prototype.method = function(name, func) {
this.prototype[name] = func;
return this;
};
String.method('trim', function() {
return this.replace(/^\s+|\s+$/g, '');
});
熟悉吧,/^\s+|\s+$/g,这样的正则表达式。多少框架在用呢。比如 jQuery 的 trimLeft, trimRight:
// Used for trimming whitespace trimLeft = /^\s+/, trimRight = /\s+$/,
这是最佳实践么?但我们框架使用的不是这种方法(暂且称为半正则方法)。上次在其他产品组在内部 PK 的时候,说过,为什么我们框架要用下面这样的方法来实现 trim(),而不是用上面的那种。 详细内容
判断是否为数组的函数: isArray()
像 Ajaxian,StackOverflow 等,搜一下,到处都在讨论 isArray() 的实现。对于一切都是对象的 JavaScript 来说,确实有点麻烦。今天刚好在学习支付宝 JS 框架 base.js 。瞄了一下,实现是这样的:
if (value instanceof Array ||
(!(value instanceof Object) &&
(Object.prototype.toString.call((value)) == '[object Array]') ||
typeof value.length == 'number' &&
typeof value.splice != 'undefined' &&
typeof value.propertyIsEnumerable != 'undefined' &&
!value.propertyIsEnumerable('splice'))) {
return 'array';
}
怎么说呢,乱。当然,也可以说是,“史上最全”,它确实使用了最主流的方法,只是把他们都写一起了而已。 详细内容
JS 获取窗口大小、位置
轻松的周末。觉得应该做点什么。写个 Demo ,说说怎么利用 JS 来获取浏览器窗口大小和位置吧。这篇文章,我们想要达成的主要目标是,创建一个页面,这个页面中有一个浮动框,这个浮动框需要有下面几个特性:
- 不影响浏览布局
- 水平、垂直方向居中
- 自适应高度,没有滚动条
- 获取浮动框的位置
- 获取浮动框的宽高
一、获取窗口大小
对于窗口的大小,通常需要两对值来获得,分别是 clientWidth, clientHeight 和 offsetWidth, offsetHeight,功能如下表: 详细内容
微软Windows超IBM中间件居最有价值软件榜首
北京时间12月11日消息,据国外媒体报道,微软Windows操作系统业务今年规模将达到1100亿美元,从而超过IBM的中间件(Middleware)产品而成为全球最有价值的软件业务,而微软Office仍排列第三。
美国金融咨询公司Trefis周五在《福布斯》杂志发表博文称,去年11月该咨询公司公布的全球最有价值软件业务排行榜中,IBM的中间件业务
以1030亿美元规模位居榜首,微软Windows操作系统以1010亿美元屈居第二,微软Office以830亿美元位列第三。当时在排行榜前列的还有
甲骨文和EMC,甲骨文的数据库业务是670亿美元,甲骨文中间件业务是410亿美元,EMC的存储软件是210亿美元。 详细内容
通过table的groove边框打造质感表格
最近一个项目中,迷恋上了groove边框。灰色的背景下使用这个边框看上去就好像是刻在金属上的感觉。再配合上text-shadow,文字也好像是蚀刻在金属上的了,我很喜欢。

点这里直接看demo 详细内容
Google员工自述哈佛教书和Google工作的差别
编者按:2003年到2010年期间,原文作者Matt Welsh是哈佛大学工程和应用科学学院的计算机科学系教授。 2010年加入Google,是一名高级工程师。他当前的工作重点是广域网性能和健壮性。下文由Matt所写,文章对比了Matt在Google和哈佛大学时的一天作息,译文由伯乐在线编译。
最近我在想,和在哈佛时的院系工作相比,在Google上班日子到底有多么不同。最大的差别就是,相比之下,我曾在哈佛比较幸运,一周花半个小时做编程相关的事。而在Google,我花费将近(或超过)90%的时间在编写代码。另外,我拖延所耗费的时间和浏览大量“无意义”网站的时间更少了,这大致是因为我更享受工作带来的乐趣。 详细内容
二十个你必须知道的SEO概念
如果你拥有一个网站或独立博客,或者你的工作多少和互联网有关,那你一定耳濡目染多多少少对SEO(搜索引擎优化)有一定了解。本文将列举其中20个SEO领域最常用的名词和概念,如果你打算熟悉和了解他们请继续阅读。当然,如果你已经无所不晓,那你可以权当补习功课,或可以直接忽略本文。

