Welefen:风为人世在,在世人为风。

生日与星座绑定的杯具

这个标题是基于生日是阴历的情况下。在中国,我相信有很多人过的都是阴历,我就是其中一个,并且是在腊月。但在国内很大网站,包括一些大型网站生日都没有阴阳历的选择。这样会导致什么样的后果呢?就拿我自己来说吧,我过的是阴历,本来我很想把真实的生日填上去的,这样在生日的时候可以接受一些生日礼物,这对社区型网站是非常重要的,这样可以增加用户的回访率。但现实很残酷,由于并不是每一年的阴阳历都是对应的(如:我出生是86年12月11日,对应的阳历是87年01月10日。但在2009年这两个日期是不对应的)。曾经出现这样的事情,hi上给我祝贺时,我只能说今天不是我生日。但个人很杯具,但对这个产品更杯具,几次下来这个用户可能就流失了。

现在已经有几个产品已经注意到这个问题了。下面从我知道的意义列举,他们做的确实非常不错。

QQ

不管QQ是如何出生的,但QQ2009做的非常不错,非常好看的UI,也很不错的UE。QQ2009用了一年多了没出现过崩溃和卡死的现象,这是百度Hi和阿里旺旺所不能及的,当然后2款IM产品存在时间确实也QQ要短很多,所以可以原谅。 继续阅读 »

那些伴随成长的野果

那些伴随成长的野果,现在却叫不全名字来,着实是个大杯具。

记忆力下降惊人啊。。。

大茶树上长的果子,未成熟时是青色,待外面的皮脱了才好吃。不过吃的时候要小心掰开,因为有的里面会有“百节虫”。

继续阅读 »

回顾2009

2009马上就要过去,2010马上就要开始。在展望新的一年的同时,回顾下我在2009年的变化。

一切从年初开始说起。。。

杭州的故事

继去年的惨淡经历后,混迹于杭州,继续在阿里巴巴做前端开发外包工作。

但心里暗下决心,2009我一定要改变什么,不然就废弃了,到了2010估计就没奋斗的决心了。

但由于某些方面的特殊性,又不能太果断的换工作,对我来说找一份新的工作太难了。

虽然每天上下班要在公交车了呆4个小时,但始终疲惫的坚持着。

6月份获知阿里巴巴要在8月初搬到滨江的新大楼。

这样我上班就更远了,给我一种换工作的准备。

正好在blueidea看到上海的一个外企在招前端开发工程师的职位,想到外企应该在某些方面不是很严,于是乎就投了简历。

今天下来就收到了offer,一个月后告别杭州,去了上海。

这样终于告别了再阿里巴巴的外包工作,感叹他们在某些方面太严。

自己虽然不是个特别优秀的人才,但比他们招进来的一些人还是稍微强一些的,一切都是个杯具。。。一个大杯具

在这里要特别感谢冯婷,她给了我很多的帮助。她弟弟也为我做了件特殊的事情。

继续阅读 »

select节点clone全解析

在开发ns-log项目中,统计分类有复制的功能。由于之前的统计分类中的数据是通过JS赋值进去的,之后用户可能又进行了修改,发现进行节点克隆时,出现了 无法复制select下拉框值的怪异现象。本文对这个怪异现象进行解析和给出解决办法。

问题现状

使用节点的cloneNode(true/false)进行克隆时,目前是下面的表现情况:

  1. select为设置初始值或者初始值是第一个option。
    表现:各大浏览器都没什么问题。
  2. select初始值不是在第一个option。
    表现:IE下无法克隆,其他内核的浏览器没什么问题。
  3. select的值被用户或者JS修改。
    表现:各个浏览器均无法克隆到真确的值。值结果跟第二条结果相同。

继续阅读 »

javascript中toInt的几种方法

在javascript中,如果要将一个字符串转变成数字,一般是通过parseInt这个函数进行。但如果对输入串有很高确定性的话,其实可以用更简单的方法。如:只是将字符串“123”变成数字123。下面给出具体的说明。

parseInt函数

parseInt函数是专门用来处理将字符串变成整型的。具体请见:ECMA-262 P114。

  1. 支持八进制和十六进制,如:’0111′,’0×111′。
  2. 支持非正数。如:’-111′。
  3. 支持数字后还有字符串,如:’111abc’。
  4. 支持第二个参数,是传递的转换进制,数值为2到36。如:parseInt(’111′,2),即将111转换为二进制。
  5. 忽略前面的空白字符,如:\n,\t,\r。
  6. 如果无法将字符串转换为一个数值,则返回NaN。

继续阅读 »

规范一下自己的生活

来北京已经有一个多星期了,之前住在同学那,生活时间跟同学走。现在自己搬了地方,是要规范一下自己的生活了,虽然年轻但还是要珍惜身体,关注健康。

作息时间

  1. 上班时间早上8点到8点20起床,喝杯蜂蜜水,准备上班。
  2. 早餐在公司吃。
  3. 在公司喝枸杞菊花决明子茶。
  4. 中餐后去健身房稍微锻炼下,主要是炼下臂力和骑下自行车(轻微运动)。
  5. 在公司餐厅饮食还可以的话,中餐和晚餐也在餐厅解决,尽量吃清淡的食物。
  6. 无特殊情况,晚上8点到9点之间回家。
  7. 回家后稍微上会网,喝杯蜂蜜水,洗澡上床睡觉(在11点之前)。

继续阅读 »

javascript数组唯一化实现方式

到目前为止,javascript中array还没有内置的unique方法,本来这篇文章很早就写了,但由于之前的虚拟主机忘记续费导致数据丢了,前几天JerryQu问了我这个问题,觉得可能还有其他人要,这里在写出来,备大家参考。

实现方式

这里给出2中实现方式。一种是大家应该都知道的indexOf检测的方式,另一种是结合lastIndexOf和splice实现方式。

//首先给Array对象原型上添加indexOf和lastIndexOf方法.(如果没有的话)
if(!Array.prototype.indexOf){
    
Array.prototype.indexOf = function(element, index){
        
var length = this.length;
        
if(index == null){
            
index = 0;
        
}else{
            
index = +index || 0;
            
if(index < 0) index+= length;
            
if(index < 0) index = 0;
        
}
        
for(var current;index<length;index++){
            
current = this[index];
            
if(current === element) return index;
        
}
        
return -1;
    
}
}
if(!Array.prototype.lastIndexOf){
    
Array.prototype.lastIndexOf = function(element, index){
        
var length = this.length;
        
if(index == null){
            
index = length - 1;
        
}else{
            
index = +index || 0;
            
if(index < 0) index+= length;
            
if(index < 0) index = -1;
            
else if(index >= length) index = length - 1;
        
}
        
for(var current;index>=0;index--){
            
current = this[index];
            
if(current === element) return index;
        
}
        
return -1;
    
}
}
//很常见的实现方式
var arrayUnique1 = function(arr){
    
for(var i=0,len=arr.length,result=[],item;i<len ;i++){
        
item = arr[i];
        
if(result.indexOf(item) < 0) {
            
result[result.length] = item;
        
}
    
}
    
return result;
}
//通过lastIndexOf和splice方法实现方式
var arrayUnique2 = function(arr){
    
var length = arr.length;
    
while(--length){
                
//如果在前面已经出现,则将该位置的元素删除
        
if(arr.lastIndexOf(arr[length],length-1) > -1) {
            
arr.splice(length,1);
        
}
    
}
    
return arr;   
}
<
/len>

继续阅读 »

Sina App Engine初探

Sina App Engine(简称SAE)是新浪的开放云计算平台,相对于Google App Engine支持Java和Python,SAE支持目前非常流行的PHP+Mysql。SAE的目标是实现互联网应用在开发运维上的无缝整合,为App开发者提供稳定、快捷、透明、可控的服务化的平台,同时减少开发者的开发和维护成本。SAE目前还是新浪公司的内部测试版本,注册是要邀请码的。但还是通过关系弄到了个邀请码,不要鄙视偶。

sina app engine

sina app engine

本文只是简单的介绍下SAE的情况,之后我会基于这个平台写几个简单的应用,然后分享出来。

SAE应用在线管理平台: http://sae.sina.com.cn

SAE官方博客: http://blog.sae.sina.com.cn 继续阅读 »

魅族M8新版UI

昨天,魅族官方论坛泄露了新版的UI。得之消息后,马上下载下来安装。试用了下,虽然某些功能出现不稳定或者死机的情况。但UI还是非常漂亮的。下面以图试之。

锁定界面

锁定界面

继续阅读 »

javascript中关于try,finally控制语句的使用

几乎每个脚本语言都有try,catch,finally控制语句。try,catch控制语句主要是对有异常的程序控制,这里不在详细描述。主要讲述下try,finally的妙用。

在正文之前,给出2个已有的两个应用(2篇文章都是在51JS中),如下:

1、try finally 妙用,防止内存泄漏

2、月影发的“某人发给我的邪恶代码”,可以看#16楼 lifesinger的回复。

继续阅读 »