微博之旅

2011-10-21 评论(3) 分类:互联网 Tags:

从08年3月开始用微博,到现在三年半了。至今认真用了四个微博,因为不同的原因迁移。

第一个用的是饭否,微博的先驱,有感情的一个平台。可惜用了一年半后,在09年7月7日饭否被关了,被迫迁移到第二个平台twitter,在twitter上混了一年,后来政府慢慢对twitter封得越来越紧,把中文圈全干掉了,我不想折腾,迁移到腾讯微博用了几个月,后来朋友们都去了新浪微博,起初我只是在新浪微博评论他们的微博,后来就慢慢迁移到新浪微博了。

在很早我就说过,我用哪个微博平台取决于我朋友们用哪个平台,相信这是大部分人的选择方式,还有一部分是看明星在哪个微博,不过如果不是狂热的明星粉丝,开个马甲关注足矣,决定真正使用哪个平台的,还是身边朋友。

前两次微博迁移是迫不得已,最后一次是新浪硬生生把人抢过去了,平台效应已经形成了,腾讯微博即使有内嵌QQ的方便,仍比不上新浪微博。不知道在其他人群是怎样,在我所接触到的人群范围内,除了同事 (我在腾讯),其他有用微博的都是新浪微博了。感觉腾讯微博已经输了,不过我猜可能90后那些喜欢玩QQ秀的比较多人用腾讯微博,没研究。

腾讯微博的活跃用户应该远少于新浪,用户数量水分很多,甚至活跃用户的水分也很多,很多是通过Q空间和签名同步,有的是从其他微博同步过去。腾讯微博僵尸粉丝很多,很长一阵子我一发微博就被不认识的人无评论转发,而且是即刻,貌似腾讯微博没严打这些用户,在新浪微博没出现过。在腾讯微博有1000个粉丝,可能只相当于在新浪有100个。

新浪腾讯微博同质化严重,微博这样的平台不需要两家一模一样的,就像QQ。MSN和QQ不是一样的,至少MSN是有主攻市场的,但现在腾讯和新浪就是一模一样的,微博没有用户就玩不转,用户只会越来越聚集在本来就多的那个平台。

新浪腾讯微博上娱乐信息过多,互联网十几年在BBS等地方积累下来的老段子在微博上不断转来转去,重复内容很多,无营养,无意义。不是说不关注某些人就可以避免这些内容,整体氛围如此,避不了。

挺羡慕其他国家有facebook的,微博对所有人都公开,跟facebook性质不同,偏向媒体/传播,个人品牌打造,facebook偏向个人生活,有隐私设置。我发的微博大多是生活,没办法,人人网太不争气了。

饭否在刚复出的时候还好,跟几个朋友在上面交流感觉不错,但一年过去了,饭否没什么跟新浪腾讯微博差异化的举动,只是做了几个应用,不免令人失望。twitter越来越少人上了,已经成为一个高端人群的微博,没事上去看看感觉挺好的。

iOS5 innerHTML插入内联touch事件的问题

2011-10-19 评论(2) 分类:技术文章 Tags:

iOS5一出来,很多对safari的溢美之声,那些新增的特性确实好,但这个版本的safari很有问题。

document.getElementById("test").innerHTML = '<div ontouchstart="alert(\'touchstart\')"></div>'

一般,这样的代码是没问题的,一段HTML字符串赋给DOM的innerHTML后,自动生成DOM,并且上面的内联事件都是有效的。在至今所有浏览器都可以这样,但现在在iOS5的Safari不行,生成的DOM中ontouchstart事件无效,目前测试ontouchstart/ontouchmove/ontouchend都不行,若改成onmousedown,onclick等都是可以的。这个问题导致了jquerysencha的一些应用都挂了。

目前的解决办法就是,先把HTML加入一个新建的DOM里,再用cloneNode把创建好的DOM取出来加入目标位置,这样才可以。如果不用cloneNode而是直接把创建好的元素塞进去还是不行的。

var dom = document.createElement("div");                                    
dom.innerHTML = '<span ontouchstart="alert(\'touchstart\')">touchstart dom create</span>    ';                                                                          
document.getElementById("testTSdom") .appendChild(dom.childNodes[0].cloneNode(true));

可以在这里 http://bangswork.googlecode.com/svn/trunk/lab/ios5touchstart/index.html 看到效果

这应该属于一个bug,居然就带着这么明显的bug发布出来了,要折腾死做移动版的前端了。

此外,还发现iOS5下Safari的一些其他问题,例如缓存很奇怪js excution timeout,还有一些已经碰到但未明原因的,总之,这个safari很有问题。

说说HTML5/FLASH/webApp

2011-9-18 评论(2) 分类:互联网 Tags:

又好久没写博客,我必须凑数做到每个月至少一篇,不然破坏了这几年的传统感觉不太好。

最近HTML5太热门了,在微博上老是看到HTML5又能干嘛干嘛,又做出什么炫酷效果了,然后又跟FLASH对比,FLASH必被淘汰,这种论调出现得太频繁了,感觉挺无聊。用炫酷效果来宣传HTML5实在不是明智之举,现在HTML5能做到的任何效果除了WEBGL的硬件加速其他的5年前的FLASH就已经能很好地做到,而且性能更好得多,随便搜一下FLASH酷站,看看里面的交互,哪个不比目前纯WEB的方式强,感觉WEB使人机交互退步了10年。当然FLASH的优势是交互和效果强,HTML的优势是对内容处理能力强,现在互联网全是内容,一切以服务内容为主,强的交互和设计靠边站,FLASH也只能在游戏和视频上混了,视频上HTML5是可以代替FLASH,但游戏上HTML5提供的功能要在做游戏上赶上FLASH目前的水平恐怕还得四五年,到时FLASH会怎样还不知道。

我不是在唱衰HTML5,只是对那些天花乱坠的追捧和与FLASH的对比有点反感。HTML5只是前端开发的一些功能延伸,给HTML订了一些规范,给JS加了一些接口,给CSS加了一些高级特性,有了这些接口,webApp可以做得更好,没其他的什么。所以真正热的是webAPP,不是HTML5,不过把HTML5作为webAPP的代名词也没关系。就像几年前的Ajax一样。

webApp确实是现在和未来的热门,在移动端上,现在已经可以结合PhoneGap这样的框架给webApp提供底层接口,webApp已经能享用到跟原生APP一样的功能,但是性能上跟原生APP差距甚远,不过这会在未来一两年的硬件升级上把这个问题解决。到时套了PhoneGap的webApp就可以和原生APP媲美了,对于内容展示性的应用,例如微博,邮箱,SNS,由于webAPP开发比原生更容易,能写一次代码跨平台运行,那用webApp代替原生会是更好的解决方案。而对于交互性和性能要求强的应用,例如游戏,地图,QQ还是用原生APP实现,各司其职。

附带一下介绍目前HTML5提供的所有功能的slide:http://slides.html5rocks.com/

入职培训

2011-8-12 评论(14) 分类:生活

腾讯入职培训,本来是10天的培训,结果变成了25天,7天军训和18天培训,只有7月的两批入职毕业生才是这样安排,原因是腾讯招的人太多了,深圳各大厦坐不下了,新的大厦万利达刚装修好有气味,太快入住不好,所以给我们加了这么多天的培训,拖延入住万利达的时间。本来按理说推迟一下万利达同事的入职日期就行了,现在让两批七八百人全部延长培训,估计是想乘机试验一下多点培训和加个军训会不会有好效果。 (更多…)

大学<四>

2011-7-2 评论(5) 分类:生活 Tags:

大三暑假开始去腾讯广研实习,去之前我还挺担心,之前从来没有试过团队开发,不知能不能适应,后来觉得挺好的,没多大不同,只是在一个项目中自己负责的东西少了也轻松了。整个实习期间都在做全新的QQ阅读,很幸运,实习期刚好是整个QQ阅读的项目期,我对这个项目也挺有兴趣,做起来挺爽。第一次工作可能还没完全适应工作环境,虽然没怎么加班,但有时感觉有点累,晚上回到宿舍就只想休闲娱乐了,再没有精力去编程学习做自己的东西什么的。

实习两个月就结束了,心里有打算,北京有最多的互联网公司,资源和氛围都很好,对互联网行业来说无论是创业还是打工都是最好的选择。我想在毕业前去北京实习,去了解在北京工作是否合适,我是倾向于留在广东,但如果实习后觉得很合适我也会留在北京。毕业以后不会再有这种“试一下是否合适”的机会了,必须珍惜这个机会。

有想找创业公司的,但觉得创业公司可能不能接受我这样的心态去实习,就试了百度。接着电话面试了百度,三轮过了。10月中旬过去实习三个月。进了web前端研发部的通用组,做百度通用的前端框架tangram,不做项目,相当于做基础架构的,比做项目的轻松很多,还能自己自主要求要做什么怎么做。三个月的工作是挺轻松的,也学到不少东西,最重要的是引我入了linux的门,也见识到里面很有黑客气质的牛人,感觉“黑客”是一种气质,跟“工程师”不太一样的气质,在他们旁边总能学到点什么。

组里的人很好玩,平常调侃组里唯一的女生比较乐,哈,氛围非常好,都挺开心的,最后离开时真是舍不得,总有那么一幕比较难忘,拖着行李箱在大家目送下走出办公区的那一幕,第一次有真正离别的感觉,差点防线崩溃,以前没体验过。

在北京也见到一些在twitter上认识的朋友,也有很多想见但没见到的。在北京租房也费了很大劲,在独自生活中觉得这不是我想要的生活,在这里可能就全心投入工作几乎没有生活了,我不是那种“事业为主,赚到钱,再享受”的人,还是回了广东。

从北京回到学校赶上最后一节课,但只是交交作业,没有正式上课,在东阶梯乱哄哄中结束,有点怀念上课,很久没上了,以后也不会再上了。大四上学期我在学校的时间只有一两各星期,其他都是在实习和回家。

大四下学期开始捣鼓毕业论文,论文是次要,毕业设计是主要,因为华师的毕业论文实在太容易水过了,两三天时间这里那里抄一点就能搞定,事实上在其他的论文我也这么做过。但我有充足的时间,想认真去做这个毕业设计,作为我大学最后一个作品。接下来几个月都在很低效地研究node.js做联机对战的游戏,每天花在上面的时间很少,总是分心做其他,断断续续地做。第一个版本跑通了,做成QQ游戏大厅那样有座位的,根据这个版本写了论文,上交了。论文最后没得到优秀,答辩老师把分数拉到89,省去了二次答辩,挺好的结果,我对学校的所有荣誉早已免疫。

接下来的时间里重新想了联机对战的形式,改成了即连,做出了完整的产品了VPS,某天突然想到可以放到webQQ上,后来webQQ某位产品经理说可以给我做推广,在首页登广告。后来广告打了一个星期,没有想象中给力,现在添加人数有7000多,可惜应用评价很低,大多是说打不开不稳定什么的。大学最后一个作品也就这样了,要想做出twitese那样受欢迎的产品太难,还是会继续努力。

这最后一个学期还碰到不少事,体验到了极度不安的感觉,对自由平静无限渴望和对现拥有的东西的珍惜。期间一段时间肚子出了毛病总是治不好,很痛苦。每到这个时候就要想起我所有认识的人所经历的困难,所有困难都会过去,事情总会变好,坏事不会持续的,every thing will be ok. 班里小羊的乐观情绪是我学习的对象之一。

六月毕业季,5月底拍毕业照,第一次穿正装,最好的朋友们都来了,很欢乐,可惜爸妈没来。那晚班级聚餐,酒喝得多,有酒才high,但没人醉,酒喝得恰到好处。接着坐草地,最喜欢大家一起坐坐草地,躺下看看星星,惬意自在,也是最后一次跟班里人坐草地聊天了。6月23学院聚餐,很给力的大餐,羊牛鱼虾鸡鸭猪肉都有,可惜我们班没有在大厅,没有感受大厅热闹的气氛,只是小桌子范围吃得欢乐。24日晚在西门外班里十五个人通宵喝酒,玩杀人游戏,数字游戏,骰子,单挑,几个人倒下几个人吐,还有一个BOSS,几个清醒的人合作搞定BOSS,这样的情景可能真的以后不会再有了,纯情时代,青葱岁月,这是最后一晚纯真的疯狂。26号毕业典礼,校长讲话很古板,除了调侃校园网迎来一阵掌声外,其他都太过沉闷,对比其他学校的校长讲话,显得无新意,无诚意。毕业典礼上播了个煽情的视频,听到很多女生翻包找纸巾的声音,背景音乐歌词“时光的河入海流终于我们分头走”,听者怎会没感触。典礼后班里人再聚餐,再去拍照,补回了我上次毕业照时没有跟班里人拍的遗憾。接着就是领毕业证,收拾宿舍彻底走人了。晚上翻着班里的毕业相册,看到从大一到现在一次次聚会和活动的集体照,看到大家各种青涩的脸,挺触动的,我喜欢这个班级,希望以后还能聚会,再见粉红七班!

毕业了被问什么感觉,最大的感觉就是舍不得,估计很多人都一样。四年的安逸,自由自在,无忧无虑的幸福生活结束了,这段时间可能是人生束缚最少时间,往前有学习压力,往后有工作家庭压力,只有大学轻松自在,这样美妙的时光过去了,但我没什么遗憾,我一直在珍惜大学每一天,享受每一天,从某天开始一直被小羊称为幸福小男人,我觉得确实很幸福,很知足。希望接下来的日子能延续大学的幸福。

在上大学的前一天,我写了篇博客,写道希望我在大学能保持奋斗的心,很庆幸我很好地做到了,一直保持着这样的状态,没有停止过对编程的学习。我很庆幸生在这个时代,有我喜欢的计算机专业,有各种高级语言可以捣鼓各种有趣的东西,不会在一开始被课程的枯燥编程吓到,可以按自己的想法去学习,快乐学习。我真是,很幸运。未来的路怎么走心里还没有定数,但希望接下来的日子仍然能保持奋斗的心,积极生活。

node.js源码研究—模块组织加载

2011-6-8 评论(1) 分类:技术文章 Tags:

粗略研究了一下node.js源码,它有8000行C++代码,2000行javascript代码,来看看js和C++间是怎么组织连接起来,以及各个模块是怎样互相调用的。

本文使用的node.js版本是0.4.8,可以在https://github.com/joyent/node/tree/v0.4.8这里看到源码。

js2c.py

node.js使用了V8附带的js2c.py工具把所有内置的js代码转换成C++里的数组,生成node_natives.h直接include到程序中,成了C++源码的一部分。这样做能提高内置js模块的编译效率。

node.js里内置的javascript包括了主程序src/node.js和模块程序lib/*.js,通过js2c.py让每一个js文件都生成一个源码数组,存放在build/src/node_natives.h里,node_natives.h在node.js编译后才会生成(编译的脚本wscript中调用了js2c.py),可以看到大致的结构如下:

namespace node {
    const char node_native[] = {47, 47, 32, 67, 112 ......}
    const char console_native[] = {47, 47, 32, 67, 112 ......}
    const char buffer_native[] = {47, 47, 32, 67, 112 ......}
    .....
}
struct _native {  const char* name;  const char* source;  size_t source_len;};
static const struct _native natives[] = {
  { "node", node_native, sizeof(node_native)-1 },
  { "dgram", dgram_native, sizeof(dgram_native)-1 },
  { "console", console_native, sizeof(console_native)-1 },
  { "buffer", buffer_native, sizeof(buffer_native)-1 },
    ....
}

这个文件被包含在node_javascript.cc里,node_javascript.cc提供了两个接口:
MainSource() 处理node_native源码返回v8::Handle类型的数据可供编译。
DefineJavaScript(target) 把其他所有模块源码变成v8::Handle类型后加载到传入的target对象上。

所有的js模块都被转换成了C数组,接下来看看它们怎么执行和互相调用。
(更多…)

即连

2011-6-3 评论(9) 分类:作品

jilian

即连是一个与好友实时连接进行游戏或做其他有趣事情的网站。目前处于试验阶段,只有“陆战军棋”和“五子棋”两个游戏。http://jilian.cnbang.net

下面是啰嗦的制作过程。

在大学最后一个学期开始之前在想毕业论文要做什么题目,我想把毕业论文做成我大学最后一个作品,能发布在网上的成型产品。后来研究了一下node.js,还有Socket.IO,觉得用它来搭建实时通信的游戏挺有趣,就做了类似QQ游戏大厅那样的东西,套上以前做的“陆战军棋”,实现了军棋在线对战。它的优势是跨平台,在各种系统上都能玩,只要有浏览器。

一开始的实现跟QQ游戏大厅一样,需要注册用户,进入游戏后有很多个座位,点座位进去后按准备,对方也是准备状态的话就开始游戏,游戏中可以求和、逃跑、认输、重新开始,有不同的积分。这一系列都实现好了,论文也照着这个写了。

然后有一天突然觉得,玩个游戏用得着这么繁琐么,想修改成一进入就马上开始游戏,不用一系列操作。于是把之前做的都抛弃了,改成不用注册用户,用微博帐号登录,进入游戏后有随机模式和邀请模式,随机模式点完后只要有人也处于随机模式就能马上开始游戏。邀请模式是发链接或发微博给朋友,他进来后自动与你开始游戏,游戏中可以要求重新开始活换个人开始游戏。没有别的了。帐号的积分等东西想以后慢慢再完善,先做出个可用的完整的东西。随后对战的游戏增加了五子棋,因为可能陆战军棋对很多人都很陌生。产品名字想了挺久最后叫“即连”,即时连接好友交流,最主要的就是“连接”,连接的形式不一定是游戏。

完成后买了个便宜的VPS放上去,由于是国外的速度挺慢,只是刚好到“能玩”的地步,修复各种bug后现在偶尔还会出现错误,对node.js的了解不深入,node.js以及框架express都处于开发状态,还未到真正稳定投入生产的状态,会有一些版本问题出现,比较麻烦。开发过程中写代码的效率挺低,好像挺难集中精力一口气写完,杂事又多,做这个东西拖了挺长时间的。

在最近突然发现,这个东西用微博登录,webQQ直接有微博接口,那做成webQQ应用的话可以不用登录直接玩了,于是增加了webQQ的支持,放了上去,还在审核。

待网站可以稳定运行后想做多几个应用,可以是两个人一起画画什么的,目前还没想清楚。对这个网站,目前不知道怎么宣传~

新浪微博的“开放平台”

2011-5-16 评论(7) 分类:互联网 Tags:

做了个东西打算用微博帐号直接登录,先做了新浪微博的登录,东西做好放上去了,测试过程才发现新浪微博未通过审核的应用只允许10-15人登录,超出的人无法登录。这个规则貌似是新浪微博的创新,其他开放平台未通过审核的应用只不过限制一下请求次数和发微博时没有显示来源,新浪微博则所有应用必须通过审核否则完全无法用。

经过6天的审核,出了结果,没通过审核,原因很明确:“无应用截图”。这个原因足够充分也合理,但也足够蛋疼,所有审核的应用必须有应用截图,难道程序不会判断一下提交审核的程序有没有截图,然后提醒一下开发者加上?机器0.001ms能做的事情让人工做了6天,效率真高。

截了应用的图,传了上去,重新提交审核。再经过5天的紧张审核,今天收到审核结果了,还是没通过审核,原因是“不符合开发者协议要求”。这是原话,所有的描述。当时感觉好像我写了个程序然后编译器告诉我你语法错误了,究竟是哪一行出错自己找,不懂就去看语法书。多么蛋疼的提示。

我去看了《微博开放平台应用审核规范》,这么长的框框条条有点反感,但还是看了,然后发现我不符合条件的就是我的登录按钮是自己做的,没有用“标准登录按钮”,因为这个“标准登录按钮”太小了和我的网站不搭。于是我违反了“合作网站连接”的第一条规定。不知是不是因为这样才不让我通过审核,我不能确定,上面在想什么我只能猜,这点上新浪微博颇有那个啥的风范。

貌似我见过的做过新浪微博应用的人都对它颇有微辞,什么神奇的事都有,大家都知道它是什么德性了,我只是发发牢骚而已。希望腾讯微博能赶上新浪微博,不然根据目前情况看让新浪一家独大的后果比较惨。腾讯微博在开放上做得还是比新浪微博好的。

大学<华师>

2011-5-7 评论(9) 分类:生活 Tags:

在华南师范大学度过大学四年挺满足的,它的优缺点都不少,但后来我发现它很多缺点我完全可以不去理会,不去参与学院学校什么事情,不需要依赖学校对你的评价和奖状过活,在计算机行业混完全可以这样做,让大学只给我提供非常自由宽松的学习环境,充分的时间,无人打扰,非常享受这样的环境,这也是它的优点。

列出我想到的华师计算机学院/软件学院的优缺点,以后发现有漏了再补上。

优点:

  1. 作为广东二流学校,考试难度低,应付课程的学习上没什么压力,课程考勤不严,随便逃课,有充足的时间做自己想做的事,充分的自由。
  2. 它不是广东最好的学校,但也还是个不差的学校,聪明人不少,素质高,不会出现什么吵架打架的事情,抽烟的人也少。
  3. 作为师范学校,女生多,基数大,美女自然会有。即使是计算机学院,也有师范班撑着,男女不会太不平衡,曾经我挺怕会跑到第二志愿的广工去读,那样就闷咯~
  4. 没有断网断电的情况,24小时上网没问题。
  5. 图书馆的书多,特别是计算机的书,时不时进一些新书,很爽,听说中大的图书馆计算机的书都很少。
  6. 大三以后极大鼓励学生去实习,可以完全不理会学校的事,也不会强制我们去干什么。这点跟华农比起来好很多。

缺点:

(更多…)

大学<三>

2011-4-7 评论(7) 分类:生活 Tags:

在大二期末尝试了GAE,跑通了hello world,准备暑假用它做个东西。那个暑假运气较差,脚长了东西,去三四流的医院开刀弄掉。主刀手很年轻,我看不是实习生就是刚毕业的学生。结果为了那小小的东西,开了大大的一刀,封了五六针,真是倒霉,只能待在家里,带病编程,做了推特中文圈。放上去后传播很快,第一次做的东西有这么多用户,很大的动力,接着便不断改进它。那时候国内微博还没出现,之前习惯了在饭否唠叨的我自然就迁移到twitter了,我就是想方便地使用它才做的这个。其实这个东西没多少技术含量,随便一个会编程会前端的人都能做出来,但它好像看上去挺高级的样子,导致挺多非技术人员觉得这东西技术含量很高。为什么这个程序能受到很多关注,因为它出现的时机好,在饭否被关之后和新浪微博出现之前,满足挺多人包括我自己的需求。除了需求还有用户体验,其实在我做之前已经有dabr这东西,跟我做的功能上没啥差别,只不过我套了更好的外壳,持续更新改进让它用起来更舒服。在twitter上混了大半年,长了不少见识,也认识了不少朋友,挺多程序员在上面,follow他们获益良多。

在医生拙劣的刀法下,脚伤拖了很久,一直不能痊愈,烦死了,弄了几个月。接着又在某个时期咳嗽了一两个月,怎么治都不好,留下喉炎的后遗症,之后很容易喉咙痒。真是病魔缠身。还有我爸胆结石来广州做手术,感叹健康重要,要趁身体好时好好锻炼,于是坚持跑步了一个月,跑步感觉还挺好,但不见效果,可能是因为没有坚持更久。 (更多…)