易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
ySlow的计算公式

ySlow的计算公式

来自于hello,JavaScript的收藏,我也小小的收藏一下:

F = 8×{100-[4×(JS文件数-3)+4×(CSS文件数-2)+3×(CSS背景图连接数-6) ] }
+6×(100-10×未使用CDN的连接个数)
+10×[100-11×(Expire时间小于172800秒的连接个数) ]
+8×[100-11×(文件大小大于500字节且 未使用gzip的连接个数)]
+4×[body中没有CSS连接 ? 100∶ (99-10×body中的CSS连接数) ]
+4×(100-5×head中的JavaScript连接数)
+3×[不存在CSS表达式 ?100: (90-2×CSS表达式数目) ]
+3×[100-5×(域名数-4)]
+4×(100-10×未精简的CSS与JS个数)
+4×(100-10×Redirect个数)
+4×[100-5×(重复的JavaScript个数+重复的CSS个数) ]
+2×(100-11×未使用Etag的连接个数)
+4×(100-5×未缓存或者缓存时间不足3600秒的AJAX请求个数)
+3×(100-5×请求方式不是GET的AJAX个数)
+3×{DOM元素数量<MaxDOM ?100∶ [99-10×⌈((DOM元素数量-900))/250⌉ ] }
+4×(100-5×状态为404的连接个数)
+3×[cookie大小不超过1000字节 ?100∶ (99-10×⌊页面cookie的大小/1000⌋ ) ]
+3×(100-5×不满足cookie free要求的链接个数)
+4×[100-(2×使用hack的filter个数+5×未使用hack的filter个数) ]
+3×(100-5×在HTML代码中设定width和height的图片数)
+2×[100-(favicon不可缓存或缓存时间小于3600秒 ? 5∶0)-(favicon大小超过2000字节? 5∶0)]

Score = F / 89
jQuery Alert and YmPrompt

jQuery Alert and YmPrompt

不知道从什么时候起,网页上那烦人的alert,prompt,confirm框都成了很多人讨厌的对象,因为他的样式太丑了。ExtJS中的alert就是适合他自己的样式的弹出,可是其他不是框架的代码中要有漂亮的对话框怎么办?
jQuery Alert 是jQuery的官方插件,Ymprompt是国内开发人员写的,其于jQuery的一个插件,当然是各有所长。

jQuery Alert相对比较简单一点,用法也简单,而Ymprompt就复杂的多了。

这是关于jQuery Alert的介绍:

这个Jquery插件的目的是替代JavaScript的标准函数alert(),confirm(),和 prompt()。这个插件有如下这些特点:

1:这个插件可以使你可以支持你自己的css制定。使你的网站看起来更专业。
2:允许你自定义对话框的标题。
3:在IE7中,可以使你避免使用JavaScript 的prompt()函数带来的页面重新加载。
4:这些方法都模拟了Windows的模式对话框。在你改变改变浏览器窗口大小时候,它能够自适应用户窗口的调整。
5:如果你引入了jQuery UI Draggable plugin插件,那这个插件也可以被自由拖动。

而Ymprompt在这里有一个简单的介绍:http://www.ajaxbbs.net/test/ymPrompt4.0/demo.html,写的很多,但都是document,并非介绍,所以我就不贴了。

jQuery Alert在官方有的下载,我也就不提供啦。可以尝试一下。

在ThinkSNS中,用的是ymprompt,所以我才看了一下这玩意,但并非能够完全满足我的需求,如果仅仅使用简单的alert、prompt、confirm之类的,应该是够用了。

dropbox ?该不该用?

dropbox ?该不该用?

最近一直在纠结,我该用什么样的知识管理,好象现在都流行什么PKM之类的,但说白了,其实dropbox并不能算是PKM软件,可是我还是把它拿出来说了一下。

wizknowledge 是去年刚出来的软件,作者是写cyberarticle的,我个人以前也算是比较喜欢cyberarticle,只是为了让我在家里同步我的一些数据,我却不得不把我服务器上的远程开了一个远程共享。可是这样太危险了,所以我有放弃的欲望。

而wiz knowledge却让我有这个想法重新启用。因为是可以把资料存到服务器上,可惜容量有限制。

dropbox,是ifotos.net的站长推荐给我的,说是现在流行的人都在用这个,说我如果不用就out了。于是我就想着要试一下,感觉还行,而且听说最近还开放了Dropbox 推出云存储 API,当然我没有试用过,不过我觉得可以尝试一下,因为dropbox感觉不错。

而且dropbox还有一个最重要的东西,就是好象听说它有版本管理,所以我觉得好象也可以做PKM。反正尝试一下喽,死不了。2G空间感觉还能够让我做很多事情吧。

其实我觉得我需要一个这样的软件:

1、带有版本管理,但不是SVN,也不是GIT,我当然知道这两种软件,也很方便,可是我需要版本管理,就象wps的文件管理,现在支持版本了,可是我对于我要上传的东西,不止是文档。

2、我需要的是FTP而不是其他远程的资料管理。比如开放数据库的远程管理啥的?以前的xmarks听说可以,可是我没有使用,后来就换成mozilla weave来管理我的书签了。对于文档,我也想要类似的功能。

3、所以我在想看看dropbox的API能不能实现我的想法?2G空间有点小,可是还能够做很多事情。要知道amazon的云服务也能有类似的功能,但是太贵了。

关于wiz与dropbox的整合,可以看这里:http://hi.baidu.com/talentsgod/blog/item/9b715cc62a2ec8a28226ac86.html,但同时wiz论坛的admin说了:

现在文挡数量没有限制,200只是一个显示。可以放心使用。

利用dropbox同步,有几个需要注意的地方:

1:在一台电脑修改后,要让dropbox完全同步到服务器后再关机
2:在另外一台电脑上面开机后,不要自动运行便笺程序,而是需要在dropbox将服务器的内容同步到本地后再运行Wiz各个程序。否则可能会引起索引数据不一致,导致索引出问题。
街霸同人电影

街霸同人电影

青少年的时候其实是很无趣的,当周围的人不再和你玩泥巴、玩玩具后,你会发现少了很多乐趣。大约在89年左右,开始有街机的出现,于是乎就迷上了那玩意,这在我以前的勃客里也有所介绍。
没介绍的是,那时候喜欢看SF的动画片,有很多版本,不过都只是动画片而己,唯一一部真人版是95年尚格云顿演的街霸,这部片子反响很差。再后来就是香港的超级学校霸王了。然后很多关于ZERO的动画片开始出来,很是吸引了我。
想不到过了将近20年,居然还有人会拍同人电影,真意外啊。虽然只有短短的几分钟。感谢cnbeta让我们有了回顾的机会 。
--start--

昨天已经为大家介绍过一部街霸同人电影短片了,今天再为大家介绍一部。这部作品名为《Street Fighter Legacy》,是由Streetlight Films出品,Joey·Ansah和Owen·Trevor(知名汽车节目Top Gear的导演)共同指导的作品。如此频繁的游戏迷的翻拍,可见之前那些正式的作品有多糟糕。

Joey·Ansah因为对许多改编作品深表不满,因此在一年前就开始为这部作品开始筹备,为此他还向Capcom写信寻求帮助,并得到了Capcom的许可和祝福。最终他也将这段视频展示给所有的街霸迷,以表达自己的对于这款格斗游戏的热爱。

1080P下载:http://www.verycd.com/topics/2820177/

导演Joey Ansah官网:http://www.joeyansah.com/
文章来源:http://www.hexieshe.com

本文不含 flash,想看视频请移步:http://www.cnbeta.com/articles/110515.htm,上述verycd是下载的高清片段。说实话,这部文中所指的另一部要好看一点,不过想想那一部只有400刀的预算,也是很能理解的。。

PHP实用函数介绍(一)

PHP实用函数介绍(一)

在PHP开发中,有时候我们会不可避免的需要得到类中所有方法或者变量。也有的时候,我们需要知道某一个方法是否已经被定义,某一些类是否被加载,这时候,就需要用到一些比较少用的函数了。

1、获取类中所有的变量:get_class_vars。使用方法为get_class_vars('类名');如果在类外面调用,那么只能获取属性为public的变量,如果在内部调用,则可以获取所有的变量。当然,子类是无法获取父类的private属性的变量的。

2、获取类中所有的方法:get_class_methods,如用方法与get_class_vars几乎一样,但参数可以是类名,也可以是实例化后的类。同样,在内部可以获取所有的方法名,外部只能获取public方法。从PHP5开始,方法名返回的时候是区分大小写,而在PHP4的时候,全部返回小写(事实上方法本来对大小写无所谓的)

3、与1类似的方法:get_object_vars,它的参数只能是实例化后的object,其他的用法都与1相同

4、获取所有加载的方法,get_defined_functions,它会返回一个数组,其中以user为下标的数组就是当前被引用过的变量。当然也可以直接用function_exists来判断。

5、get_include_files,这个方法可以了解到当前页面加载了多少文件,在优化的时候可以参考,是否有文件被无意义的加载了

QQ词典labs官网上线

看到cnbeta上这个QQ词典官网上线的时候,我就在想,QQ还有什么是不做的?浩方游戏平台一出,QQ也出了游戏平台,网易出点网游,QQ也出自主网游。搜狗有了输入法,QQ也出了。搜狗出五笔了,QQ也推出了。360有软件管理了,QQ也有了。当然我这里还没有提最早的联众棋牌,是因为现在很多人恐怕都不知道有联众这个软件了吧?你有淘宝我有拍拍,你有百度我有搜搜,你有新浪财经,我有QQ财经。你有。。。我有。。。。,你有啥,我很快就有啥。

上新闻吧。。。

QQ 词典是腾讯公司最新推出的一款桌面词典软件。QQ词典以其清爽的界面、丰富的词库,为您提供海量词汇的丰富解释,包括词语的基本解释、网络解释和例句、百 科等内容。同时,QQ词典强大、灵活的屏幕取词功能,带给您无干扰的全新取词感受。

2010年5月6日,QQ词典1.0Beta1正式新鲜出炉啦!QQ词典在QQ实验室中的官方网站也同步上线,网址为:http://labs.qq.com/labs/qqdict.shtml。

欢迎您下载QQ词典客户端,或者访问QQ词典的在线查询网址http://dict.qq.com/。

在今后的日子里,您将在这里见证QQ词典一步一步的成长。

原文在:http://www.cnbeta.com/articles/110391.htm

正象评论里所说的,QQ或许真的会象雨林木风那样推出自己改过的ubuntu吗?未来是怎么样,还真的难说呀。

以前我一直用金山词霸,现在用有道了,因为我不喜欢金山那种非要通行证登录的功能。而且有道还有一个OCR图片取词,我觉得偶尔使用一下,感觉不错(有道好象现在在手机版上还支持拍照取词,看过演示视频,感觉很强大)

Yii documents

Yii documents

这两天一直在看Yii框架,也下载了一份API手册,却发现API手册里只有方法的介绍,却没有具体的调用方法,如果是纯方法的话,说实话,我还情愿用IDE的自动完成来查看呢。当然有个API手册在查询的时候会比较方便一点。

那么,有没有真正的manual呢?到官网的documentation分类去看了一下,NND,一堆 英文,不过,在我犀利的眼神下,还是发现了这玩意:The Definitive Guide to Yii ,点开一看,原来这才是类似于PHP手册的manual呀。可惜能够下载的只有PDF版本。更可恨的是,也只有英文版的,算了,将就点吧。。。虽然英文烂了点,一些简单的东西还是能够看得懂的。

如果初学Yii,还是建议看一下这个guide:The Definitive Guide to Yii ,它,有中文版,在:http://www.yiiframework.com/doc/guide/zh_cn/index

左边的树的目录也很清晰,值得一观,不过更建议的是多看一下:http://www.yiiframework.com/doc/guide/zh_cn/basics.application,我最初就是没看这个,一下子不知道如何调用Cache,都想在代码 new Cache之类的了。

--EOF--

后记:感谢烂桔推荐的:http://dreamneverfall.cn/yiidoc/index.htm,烂桔的网站为:http://iorange.cc

看上去不错:Chrome 扩展 Monster

看上去不错:Chrome 扩展 Monster

一直以来,我都是使用着firefox而不是chrome,虽然chrome的速度明显要比firefox快很多,但我还是使用着firefox,那是因为ff上面有很多插件是chrome没有的,比如firebug,yslow,scrapbook,readitlater,searchstatus等。但alipay uED居然推出了一款chrome上的插件,类似于yslow,让人感觉很意外,从图片上看,感觉不错:

Monster 是 Alipay UED 推出的网站代码分析、质量检测及评分的浏览器扩展,它能智能分析CSS、JS、HTML内容并生动形象展示网页得分情况(类似YSlow)。它是一个开源 项目,您可以在GoogleCode中心检出MonsterForChrome项目源代码。不久会推出Firefox版扩展。

highlightsearchkeywords.rar

Monster主要检测规则:

  1. 检测是否有重复ID的标签;
  2. 检测是否使用内联标签嵌套块级标签,如a嵌套div;
  3. 检测https协议页面,是否使用了http协议的图片、JS、CSS等;
  4. 检测compatMode、doctype是否出错;
  5. 检测是否使用了HTML5不再支持的标记,如font,s,u等;
  6. 检测标签是否正确关闭;
  7. 检测CSS、JS、background-image文件是否为404;
  8. 检测CSS、JS文件是否重复调用;
  9. 检测是否引用过多外部JS、CSS文件;
  10. 检测CSS、JS、HTML是否压缩;
  11. 检测CSS样式表是否使用了CSS expression;
  12. 检测Cookie是否超过30KB;
  13. 检测是否有form标签嵌套form标签;
  14. 检测是否直接在标签里定义JS事件,如<a href=http://www.google.org.cn/posts/”#” onclick=”…”>link</a>;
  15. 检测<meta charset=”utf-8″ />是否为<head>第一个子标签;
  16. 检测一个<form>标签内部是否出现二个input[type=submit]标签;
  17. 检测是否在<form>标签中使用了 id=”submit” 的标签;
  18. 检测是否将<style>块放置在</head>前面;
  19. 检测是否将<script>块放置在</body>前面;
  20. 检测<img>标签是否指定alt属性;
  21. 检测是否为input[text]指定label;
  22. 检测网页编码是否为gbk或utf-8;
  23. 检测是否使用了@import导入样式表;
  24. 如果CSS、JS指定 类似于“?t=20100405”时间戳,则自动输出最后修改时间,方便对比;
  25. 如果background-image超过6个,则提示所有背景图片及大小,超过30KB,标红显示;

Monster评分规则:

Monster是根据问题解决难易程度、性能提升程度、可用性提升程度以及维护性提升程度来综合评分的。具体,请下载 Monster评分算法.xls

下载Monster。

我没有试用过,不知道具体如何,我只能说,看上去真的很不错。而且,用上面的话来说,他们很快就会推出firefox版本,我又何必试呢?

Yii 笔记二

Yii 笔记二

Yii的用户登录,如果不算上权限的话,恐怕真的是很简单的登录。
简单的判断,简单的处理一下就完事了。
但我今天还真的被简单的折腾了一下。
User登录,需要写几个地方
1、components目录下的UserIdentity.php中,需要加一个判断用户的方法,返回errorCode,当然没有错的话就返回0,这是常用ERROR_NONE
2、model目录下的loginForm,里面有简单的判断处理,如果登录成功,调用CWebUser中的login方法。起初的时候,我一直没找到Yii::app()->user是哪个类。。
3、由于Yii::app()->user->login方法的特殊性,因此,必须要在UserIdentity.php中设定好getId,getName,和states变量。当然最简单的就是判断是否取到用户数据,如果取到的话,直接$this->setPersistentStates($usermodel->getAttributes());如果没有id,name的变量,那么即使你登录了,还是会显示没有登录的。我就是在这里被折腾了好久。

over。。。

初用Yii

初用Yii

Yii是在iorange的推荐下使用的,这两天我才刚刚在使用。做点笔记而己,没有其他

1、就象我在neatcn.com写的,创建项目非常简单,yii.bat这个命令就可以完成了。详细就在http://www.neatcn.com/show-57-1.shtml

2、项目目录中components中的文件,会在autoload中被引用,也只有这一个目录下的会被autoload,其他的都是有固定规范的。(不知道有没有理解错)

3、model目录下居然是tablemodel和form两种的集合,有点乱(官方的例子是这样的),不过想着form的validation也是用tablemodel来完成的,又能够理解这种做法,普通的tablemodel类继承cActiveRecord。

4、Controllers目录下是控制类,默认是SiteController,和其他框架默认是indexController有点不一样。继承自CController类。controller类中有一个layout的变量,可以设定layout。一般可以手工指定,如果同一个类里有不同的layout,估计还是要写个方法才行

5、Model的activeRecord返回的是对象,而不是象其他框架默认返回数组,因此取集合时要用getAttributes方法,当然,如果是只有一条数据,也可以直接$model->fieldname这样的方式来获取值 。

才学了这么一点,慢慢来吧。。重构路是漫长的。