09 再见,10 你好!

09年到头了,再过几个小时,就跨入10年的门槛了。

09年对于我来说是奋斗的一年,也是收获的一年。

这一年,我明白了很多东西;这一年,我付出了很多努力;这一年,我懂得了如何去奋斗;

这一年,我找到了非常满意的工作;这一年,我第一次让自己开发的应用真正在网上运行;这一年,我选择了未来的路。

去人人网,翻了我上一年这个时候写的日志,发现全TM的是感情,好吧,上一年为这个事情纠结着,这一年也纠结过,但是现在已经不再纠结,过去就过去了,我喜欢我现在的这种生活状态。

这一年,我开始真正的开始WEB开发,开始使用PHP,JavaScript,css这些玩意。

最开始只会PHP。写出一些没有一行js的网页,还异想天开的想靠这种用户体验极差的网页开发校内应用。不过这个想法也并不是全部垃圾,毕竟有了这个想法,才买了虚拟主机,才有了现在的这个blog。

然后暑假快开始的时候,接触了jQuery,发现这个写前端真方便,于是又萌发了写校内应用的想法(我怎么这么爱校内啊。。。),这次是想开发RIA体验的应用,结果做出来自我感觉良好,不过因为没看清校内的条例,还是没通过。而且拿给别人一看,就爆出一堆BUG,好吧,凭这点能力是开发不出好用户体验的东西的。

于是开始慢慢关注用户体验,开始关注国内几个有名的UED团队的blog。

上学期参加了腾讯的实习生面试,没想到一面面试官喜欢我,加了我的QQ,他是做前端的,而那个时候,我的前端技术差不多等于0,很汗吧。也是这个时候,我才意识到大公司是专门有团队做前端的,我才意识到用户体验其实是非常非常的重要。

然后就下半年参加了腾讯的面试,那个面试官内部推荐的,一面挂了,然后网易游戏的,一面挂了,lightinbox,一面挂了。然后阿里巴巴,拿到offer。也就是幸运了一把,好吧,我非常满意。

后半年,我喜欢上了一个姑娘,但是未果,对,又是未果,发生在我身上太正常了。

我走上了WEB前端这个路了,现在正在为未来的工作做准备。

好吧,09回顾差不多就这些了,下面是10年展望。

10年对于我来说,肯定是个变革的一年,我的身份将发生变化,从学生变成码农。

长期计划不适合我,我还是适合TO DO LIST上的短期计划和calendar上的事件提醒。所以我不会写具体计划。

大概讲来,10年,我要努力非常快的适应工作环境,适应这个职位。在技术上,我要努力,成为一名称职的前端工程师,即使是做码农也要敬业嘛。

10年,我要读尽量多的书,WEB是个快餐,同时我们也需要纸质的书,这是09年我的一些感悟。而且涉猎面要光,多读一些人文社科类的,而不仅仅是技术类的。我想自己挣了钱后,买书就不要心疼了吧。当然读书要读好书,书中并不都有黄金屋的。

10年,我要学习烹饪技术,虽然现在我什么都不会,但是我要学习,好吧,也许讲烹饪有点大了,应该说,学习做饭的。不管怎么样,反正我会去尝试。

10年,要拿自己挣的钱,给爸妈,姐姐,外甥女买礼物。

————————————————————————-

10年注定会有伤感的季节,就让他伤感吧,人生能有几次这样的时候。刚才一个朋友问我决定什么时候回去了没,我说还没有。她说,你可以再多呆几天,反正明天来这里的时间也少了。想想也是,在这里的时间不多了,已经有点小伤感了。

好吧,到此为止,祝所有看这篇blog的人,Happy New Year!新的一年,万事如意,心想事成!

特别的,普特英语听力10年快速发展,成为中国最好的英语学习网站,没有之一这是一个我必须感谢的公司。

WEB前端优化

刚刚读完了《高性能网站建设指南》,作者给出了网站前端优化的14条建议,第一次系统的了解到了前端性能优化需要做的事情。

简单说来,这14条建议是下面这些:

  1. 减少HTTP请求(因为HTTP1.1协议规定同一域名下默认有两个HTTP同时下载,这条是最基本的,最应该去做的)
  2. 使用内容发布网络(主要是针对静态内容,具体请搜索CDN)
  3. 添加Expires头。(告诉浏览器来缓存那些不容易变化的内容,来加快“回头客”的访问速度)
  4. 压缩组件。(使用gzip来压缩组件降低数据传输量)
  5. 将样式表放在顶部(避免白屏和闪屏等情况发生)
  6. 将脚本放在底部(脚本会阻塞并行下载,所以某些脚本可以放到底部,让页面先显示出来)
  7. 避免CSS表达式(CSS表达式计算频繁,用其他方式来实现需要CSS表达式的效果)
  8. 使用外部JavaScript和CSS(利用缓存来减少这些组件的下载)
  9. 减少DNS查找(DNS查询是要耗时间的,减少DNS查找和增加并行下载是相悖的,这点需要权衡一下)
  10. 精简JavaScript(使用工具删掉不必要的空格,注释等)
  11. 避免重定向(redirect需要耗时间,尽量避免这种方式)
  12. 移除重复脚本(大网站,开发人员多,可能会带来重复脚本的问题,可以借助服务端程序来消除)
  13. 配置ETag(ETag经常会破坏缓存规则,他比Expires头权限高。合理配置或者禁用之)
  14. 使Ajax可缓存(分析Ajax请求,缓存可以缓存的,同时合理使用一些主动Ajax,以及参照前面指导原则优化Ajax请求)

作为前端开发人员,应该具有前端优化的技能,这些优化花不了多少成本,却相当有效,比改进后台代码的某个算法带来的性能增强性价比要高多了。

网站打开速度快才是王道,速度是用户接触到这个网站的第一体验!!!

上面这些指导原则在实际生产的时候都是需要好好分析的,看自己的网站适合怎么样。

普特八周年了

昨天,胡老师以八周年的名义拉大家聚在了一起,看电影,吃火锅,K歌,玩的很开心。

先去看了《十月围城》,在王府井影城,我发现王府井影城就是地段好而已,影院硬件条件没这边SM广场的万达好,还要比这边贵。十月围城是我今年看过最好的华语电影了,无论是动作场面,细节,还是故事情节,都是我今年看到的最好的华语电影,当然还有几个真热播的电影我还没看到,在等DVDrip,因为本人穷,看电影基本靠emule。 只有特别好看的电影我才会去影院看,但是看网上的评论看来,那几个电影是无法超越十月围城了。

然后在重庆刘一手火锅店吃了火锅,最幸运的是,我们总共吃了350,然后拿发票刮奖,竟然中了500块,第一次看到这么大的餐饮发票奖。话说上次我们去崇州玩,我也刮中了个5块的。这预示着普特来年会好运连连吧。希望我们大家都沾点这个好运,来年都开开心心的,实现自己的梦想。

最后在ATT K歌,不得不说,这位童鞋的歌唱的是专业级别的,太棒了,实在是佩服佩服。在他面前,我都不敢唱了,但是出来玩,总要唱的,我也唱了几首,童鞋们还是给了掌声,不知道是不是安慰我- -!

在普特呆了两个月左右,学到了很多很多东西,结实了胡老师这样很有思想的人,还有一群聪明,优秀的同事们。在普特的这段日子里,有段时间因为一些与普特无关的事情,我过的不开心,大部分时间还是很开心,第一次写了个可以发布到网上,给很多人用的应用,自己还是蛮开心的,虽然知道还有很多东西可以改进的,自己做的远远不够。

在这里,因为要写供很多人用的东西,所以开始真正的关注用户体验,然后就写了很多JS,这也是我走上前端这个路的垫脚石吧。

这个学期和普特这个团体一起,去青城山爬山,去崇州文景江泡温泉 爬山,还有昨天的看电影,K歌,回想起来是都是甜的。

马上10年就要到了,在这里祝普特英语听力越办越好吧,希望这个网站能成为国内最好的英语学习网站,没有之一,因为现在就是之一。

09年马上就结束了,也该好好想想,写个总结,还有对10年的展望,这些都在未来的几天来完成吧。

圣诞西岭雪山之行(简单攻略)

是的,圣诞节的时候我是在西岭雪山上的,有部分童鞋收到了我在西岭雪山发出的短信,山上信号确实太差,发不出短信,只发出了有限的几条。

熊猫金卡就去过一次熊猫基地,10年就要过期了,所以和两个舍友商量去西岭雪山玩,加上前段时间西岭雪山的滑雪场在维修,网上挂的通知是25号试运营,于是决定24号过去,25号准备去滑雪,但是事实上,25号并没有开放滑雪场,但是西岭雪山的景色还是很漂亮的,弥补了没能滑雪的遗憾。

下面讲讲我们的行程,希望对想去西岭的人有点帮助。

24号早上,8点多点到金沙车站,9点有车直达西岭雪山,滑雪场山脚下(滑雪场在后山,想爬山在前山),当然也可以在前山就下车。不巧的是,成温邛高速因大雾,限行,等了好久,9点半车终于到了,进高速的时候又排队,等到了西岭镇,已经12点了,因为我们第一天是要爬山的,所以就在西岭镇就下车了,准备去前山。

在西岭镇上吃了午饭,4个人吃了60多块钱,不算贵,可以接受。然后坐那红面包车,10块钱一个人到前山上去,也就是地图上茶地坪的地方,海拔1260.上一张前山地图吧。

地图

大约1点半的时候,开始爬山,海拔1700以下的地方基本上见不到雪,不过山水也很漂亮,水很清很清,很久没见过这样清的水了。还有很多不大的瀑布,都很漂亮。

超过1700以后,就有不少的冰雪了,这个时候最好穿上冰抓,就是一个铁东西,穿在鞋子上,下面有两个大尖尖,插进冰里面,防滑,在山下可以买到,一般10元一对,租的话5块,后来听说还价,5块一对也可以买到。

下午4点多的时候,我们到达了桂花林,我们上山前,问送我们去山上是司机我们应该怎么安排时间,司机给我们说,比较理想的是当天下午到达大山门,但是到了桂花林,接待站的老板告诉我们,上面的大山门没开,那个也是他们家开的,现在是淡季,那个店子就没营业,要是不想再往上爬了,晚上就只能住在这里了。要说的是,那个地图上实心远点才有住宿的地方,空心的地方不能住宿。看来我们也就只能这样了,只好开始脱下冰抓开始休息了,不巧的是,后面来了我们学校大三的一个班的人,他们的目标也是大山门,他们不想在桂花林休息,就拖着老板和他们一起上去开那个店子,我们说我们一起上去,老板不干,让我们帮她看店子,她喊人上来给我们做饭,发电(从桂花林开始,就没电了,晚上需要发电)。结果等到天黑了,老板娘叫的老板才上来。另外又来了三个大二的我们学校的男生和其他学校的两个女生。然后大家就一起开始玩杀人,等到10点半左右才吃到饭。由于我们帮老板看店子,烧水,老板送了一个菜。

第二天一大早就出发继续爬山,本来打算是7点出发的,但是7点,光线还是很暗的,加上大家都还没准备好,等到快8点的时候才出发。爬到大山门的时候,遇到那个班的人也准备出发。在大山门,我们又吃了点自己带的干粮,因为我早上起来没怎么吃东西,所以还是饿的很难受的。

然后继续向上,我们的目标是到阴阳界,想去看看那儿的奇观。这段路比较痛苦,路上的那些空心圆点的地方都没注意到,经过了很长时间,到了金猴峰,总算感觉到快看到希望了,由于爬到速度一直都不快,所以也不算太累。具体爬了多久我记不得了,手机没信号就没开机。

在金猴峰休息了差不多15分钟后,继续前进,阶段目标:红石堡,在那里有两个路可以到阴阳界,一个比较陡,一个比较缓,我们打算到那里后看体力情况选择路。

差不多12点的时候到了红室堡,在那里把已经空的水杯装满,这里的太阳很好,晒晒太阳,很舒服。这里休息后,感觉体力还行,就选择了那个陡的路段了。这个爬到还真是辛苦啊。不过既然选择了,就要走下去,咬咬牙,坚持坚持,在1点左右的时候终于到达了阴阳界,阴阳界的景观真是漂亮啊,一边艳阳高照,一边云雾缭绕。上张照片吧。

阴阳界

好吧,剩下的就是到日月坪去坐索道了,从山上坐到山脚要分两段,共90块钱,第一段下去是滑雪场,因为滑雪场没开放,所以就直接去坐第二段下山了。然后晚上9点半回到了学校。

爬西岭雪山需要注意到地方是,最好自己带个大点的水杯,住宿的时候,开水是免费供应的,可以装满,因为海拔比较高的地方,是没水的,只有接待站才有水,很多是要收钱的。另外最好带点可以快速补充能量的东西,确实累。

另外,可以准备点膏药,那种缓解劳累酸痛的,第一天晚上睡觉的时候贴在膝盖上,膝盖就会舒服点,我就是这个样子的,也是参考了前人的意见。

照片我会上传一部分到我的豆瓣相册,等过段时间大家可以来围观。

参加阿里巴巴成都网商会的感受

阿里巴巴前几天在成都举行了第三届网商会,我们作为即将加入阿里巴巴的人,去做了志愿者,这几天来,虽然很累很累,但是还是有很多感受的。

我们主要是给游客讲解怎么使用阿里巴巴这个平台,和帮助游客找展区内的商品的供货商。

我遇到了一些马云的粉丝,其中一个给我说,今天起的不够早,没看到开幕式,没有见到马云,很遗憾。我告诉她,你不用遗憾了,马云今天没来这个地方,开幕式也不在这个地方。另外,展区里的大屏幕播放马云以前网商会的时候演讲的片段的时候,总是会吸引很多很多人驻足围观,不管重复放多少次。

我也遇到了有实体店铺,想在网上找货源,网上开店的人。看的出来他对网上交易的担心,同时又非常想尝试一下这种方式,觉得这个是有利润可图的,是很时髦的。我耐心的给她讲解了这么个操作过程,阿里巴巴的平台优势,以及支付宝这个交易担保方式。希望他能勇敢的尝试网上交易。

我还遇到了已经开的有网店,已经很熟悉阿里巴巴和淘宝的操作方式,来网商会找优质供货商的,看的出来他们对阿里巴巴的信任。

还有高级卖家,从广西飞到成都,就为了来参加网商会,结果给我们说,没找到他想要的供货商,没有和他胃口的,然后还像我们咨询怎么才能参展,他想作为参展商参加下次的网商会。

也有进货商像我们抱怨在阿里巴巴上遇到的不讲诚信的供货商,我觉得这种情况是没法避免的,那么多供货商,很难保证都是优质的。

我觉得我最大的感受是,感觉到了,还是有很多很多卖家信任阿里巴巴,很多很多卖家都是在这个平台的帮助下做生意。以前在网上看到过阿里巴巴的负面新闻,现在我认为这个也没什么,不管怎么做,一个产品都不可能兼顾所有人的胃口,只要能够真正的帮助到很多商家,我觉得就足够了。

我感到羞愧的是,我自己还不熟悉阿里巴巴的几个产品,有时候无法良好的给游客讲解,有可能我已经误导了一些人了吧…

另外干这种活确实很累,一站一整天,脚很疼。

Google的免费天气预报停止服务了

今天看到消息说,Google的天气预报服务将从1月1日起停止服务了。以前也用过这个服务,但是自从自己搭建了自己的天气预报服务后,就没用了,Google的那个缺点是无法控制什么时间发过来,不过既然服务是免费的,还是要赞一个。

不知道是影响到了某些集团的利益,还是Google的自身原因,不瞎猜。

不过我向朋友们提供的天气预报服务仍将继续下去,虽然这段时间很不稳定,因为有群不愿意花成本,还想控制WAP违规内容的人,找我麻烦,服务器这段时间极不稳定,博客都访问不了,更不用说天气预报了。

博客里面的天气预报的链接已经被迫失效了,想用服务的话,请直接联系我好了,你找的到我的联系方式的

智器 Q5 MID 到手,已经刷了Android

昨天中午,在卓越上定的智器 Q5到手了,速度可真快啊,前天刚定的,问了一下,原来是现在成都也有库房了,这样的话,很多热门点的商品就可以很快就到了。

先说第一印象,包装看上去不错,但是说明书太小了,只介绍了最基本的东西,比如怎么开机,怎么充电等,开机后,桌面上倒是有个用户手册,难道智器为了压成本才这样省钱的?不过这个机器确实便宜,差不多市面上最便宜的MID了吧,我888买的。

原机安装的 UBUNTU 确实很慢,用的很不爽,毕竟机器硬件配置也就这样样子了。不支持flash,去Adobe 官网下载了一个,但是因为不是i386的架构,也就安装失败鸟。用ubuntu的时候,我最纳闷的是那个按键设置,在右手上边,但是很多时候需要那些键配合这笔点,右手拿着笔,左手去按那些键,真别扭啊。折腾ubuntu了一会,觉得中规中矩吧,对于不熟悉Linux的用户来说还是不那么容易的。

拿到机器后一边折腾原装系统,一边就在寻找刷Android的方法了,推荐个BBS,全是智器的粉丝,智器的资源比较多,在这个里面找到了Android刷机包,都是网盘,下载起来恼火啊。我又想快速的体验到啊,找到了了一个非网盘的HTTP资源,不过是以前的版本,先下下来体验体验再说吧。但是机器刚买回来几个小时,还用的不是很熟呢。刷机这事我可以轻松完成吗?为了保险起见,在智器官方下载了原版的操作系统,先刷这个练练手,发现操作很简单,没什么复杂的步骤,刷完原版系统,开机看了一下,就关机刷Android的了,没有一丝丝的紧张,不像以前刷MOTO E398时候的那个心情。

刷完后,开机看到了Android的桌面,也没什么激动的心情,因为以前在虚拟机上跑过Android的LIVE CD,桌面也见识过了,开始用起来还是不顺手的,经过了自己的摸索,设置了一些东西后,逐渐很顺手了,但是发现不能播放MP3,不知道是我的码率过高还是怎么回事。心想刷新版本试试吧。花了不少时间下载了11月30号出的包,刷上后,MP3正常了。

经过了昨晚一个晚上的折腾,现在用起来很顺手了,下个手机一定要买Android系统的,现在还是多把时间放在开发上吧,毕业设计呢,还是要学习很多东西。

uchome二次开发中的feed发送问题

对于SNS来说,feed是个必不可少的东西,有了feed才可以让SNS有黏性,让应用有黏性,同时也是一个在站内推广应用的好方法。(只想知道怎么使用的,请跳到本文的最后面吧)

于是今天要为我给普特英语听力开发的应用添加feed发送功能了,但是uchome没有官方的开发文档,所以只好自己看代码了。先分析了踩日志后,发送feed的这个过程,在 /home/source/cp_blog.php 这个文件里,关于踩日志的feed相关代码在111行。

$feed_title = cplang('feed_trace');
$feed_data = array(
'username' => "<a href=\"space.php?uid=$blog[uid]\">".$_SN[$blog['uid']]."</a>",
'blog' => "<a href=\"space.php?uid=$blog[uid]&do=blog&id=$blog[blogid]\">$blog[subject]</a>"
);
feed_add('trace', $feed_title, $feed_data);
$feed_title = cplang('feed_trace'); $feed_data = array( 'username' => "<a href=\"space.php?uid=$blog[uid]\">".$_SN[$blog['uid']]."</a>", 'blog' => "<a href=\"space.php?uid=$blog[uid]&do=blog&id=$blog[blogid]\">$blog[subject]</a>" ); feed_add('trace', $feed_title, $feed_data);

可以看到有个cplang和feed_add的这两个函数,于是找这两个函数在什么地方定义的就可以了。懒得猜,也懒得通读代码了,用工具来暴力查找吧,我用的是notepad++这个东西指定文件夹,暴力搜索关键字。

找到了function feed_add 在 home/source/function_cp.php 中定义,第384行,有兴趣的自己去看,这里就不贴出来了,比较长。其中feed-add函数的第一个参数是feed图标的名字,例如上面的那个 trace ,就指定到 home/image/icon/中的trace.gif图片。第二个参数是feed的模板,第三个参数是feed的数据,后面的参数都有缺省值,简单的feed可以不使用了。以cplang为关键字找到了在 home/language/lang_cp.php 文件里定义了一个名字为$_SGLOBAL[‘cplang’]的数组,一看内容就是各种feed的模板,好了,function cplang也不找了,就修改这里吧,照着上面已经存在的feed模板,加上了我自己需要的模板格式。然后测试了一下,OK,成功了。

feed模板的用法很简单,看个和上面代码相关的模板你就明白了,里面有这样一行定义:’feed_trace’ => ‘{actor} 踩了一脚 {username} 的日志 {blog}’,看明白了吧,feed中用大括号来括起来动态的部分,然后你在使用add_feed的时候,第三个参数 feed_data是个关联数组,其中key就是这个模板里的名字。

好吧,知道怎么使用了,但是要怎么部署才好呢?如果按照uchome的这种结构部署的话,要修改好几个文件,而且像 lang_cp.php还要在服务器上直接修改才行,因为我这里本地的文件和服务器上的文件是不一样,因为还有其他开发者修改过这个文件,所以不能简单的修改后覆盖。想了想,这个文件无非就是提供一个feed的格式而已,我直接写在我自己app中的代码文件中是一样的。uchome这样使用的理由是,可以支持好几种语言,针对不同语言使用不同的模板,但是我这个就没必要了,都是给中国人用的,所以就不使用 cplang函数来,直接定义$feed_title ,然后传给 add_feed函数就可以了。这样就只用覆盖一个文件就可以完成添加feed功能了。

总之,要在uchome二次开发中使用feed功能,建议是:在 home/source/cp_blog.php中看111行附近的代码,这是个使用示例,然后看 home/source/function_cp.php 384行附近的代码,这个是 feed_add的定义,然后看 home/language/lang_cp.php 这个文件关于feed模板的定义就可以了。另外准备一个图片放在 home/image/icon下面。做了这些就可以很轻松的添加简单的feed功能了,想要更高级的feed功能,就去研究 feed_add 这个函数的定义吧。

IE文本域中回车自动提交表单

当表单中只有一个文本域的时候,在文本域输入完后按回车,IE会自动帮你提交,(谢谢Andre提醒,其实这种情况在其他浏览器里也会提交的,我测试了firefox,opera, chrome。safari没测试,不过表现应该和chrome是一样的,所以主流浏览器都会自动提交,而不仅仅是IE)哪怕没定义 submit按钮,也会提交。

这个是今天在解决一个其他BUG的时候,了解到的这个问题,虽然要解决的BUG和这个没关系,这个一会儿再说。

先说这个怎么解决吧,在form里建个隐藏的input标签就可以了,可以这样  <input style:”display:none”/> 。

另外我要说说,大家要慎用IE tester这个东西啊,太不靠谱了,在这个里面执行JS和原生浏览器执行,有很大差别。今天想用这个来解决IE6的一个BUG,一直没进行到要真正解决的部分去,因为我一直以为是上面的那个问题带来的BUG,只到我用机器上的IE8运行了一段测试代码,又用IE tester新建IE8来运行,结果不一样,当时就囧了,我意识到做了一个晚上的无用功了。

只好马上用Virtual BOX安装 XP了,用原生的IE6来解决问题,果然,问题不在那里,很快解决了BUG。

所以建议大家一定要慎用IE tester,尽量用原生的浏览器来测试。

然后今天遇到的实际的BUG,是因为在js中对字符串处理的时候使用的非标准的方法。我想返回字符串中指定位置的字符,我使用了类似PHP的方法:

var a=’hello world’;

var b=a[0];

这样在firefox中是有用的,b是 ‘h’ ,但是在IE下是不起作用的,翻了手册才知道,标准的方法是 charAt().

var b=a.charAt(0);

要这样才是标准的方式,换了这个后,马上就解决了要解决的BUG。

因为一个W_A_P站,整个站都被关了

网××监,我问候你们一户口本。有没有违规内容,你不会自己去看看啊,为什么要一棒子打死。

空间在国内真TM的不安全。

算了,不多说了,虽然这是我的私人博客,但是上头有人管着呢,谁让这是国内的空间呢。