手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2010年11月的文章

Yiiframework为每个module单独指定db连接

Yii的module功能确实很方便,但现在的问题在于,我需要为每个module单独指定一个数据库连接,这样我就可以将不同的系统整合在一起了。找了不少资料,好象都没有这样类似的功能。master/slave之类倒是有不少类似的整合方案的。

测试了一下,发现可以这样操作,即在全局配置文件中的module里为module加上components中加上db,然后就基本OK了。但即使这样,你还是会发现不太正常,会提示db不存在,其实需要在这个db数组中加上class=>CDBconnection就一切OK了。会自动加载的哦。(烂桔在这里帮了不少忙)

然后数据连接就是Yii::app()->getModules('modulename')->db。【不过他在这里说的是findModules,我看了一下,getModules就直接可以用了。HOHO】

如果你有master和slave,也可以按照这样的配置,然后再在onBeforeFind方法里设定db=Yii::app()->getModules('module')->readerDb之类的。并在onAfterFind后再置 db为write的链接。(感谢HM提出方案)

如果有多个slave,又想使用同一个slave缓存,则可以先随机取得slave的名称。然后存入session,然后再指定链接。这样,每一个用户使用的slave就会是唯一的。其实提高了效率(感谢神仙提出来)

Tags: framework, yii, module

碎碎念

1、老王在自己的博客上(http://www.huoding.com)上介绍了如何用yql获取网页的数据,其实我是在很早就有尝试yql,但。。仅限于使用yahoo自带的一些API,比如weather,从没想过,用它来获取网页中的内容(我用phpQuery的,我还是觉得object的xpath没有象jQuery那样操作起来方便)

2、encodeToGb2312,这个听起来感觉就有点妖,事实上:escape(),encodeURI(),以及encodeURIComponent().都是我们比较常用的,为什么要转成GB2312呢?http://www.html-js.com/上说了他的理由:

XML/HTML代码
  1. 但是现在有个问题,我要做一个页面跳转的功能,页面的url是拼接起来的,url前面部分是某个搜索引擎的基本url,后面接着是参数:  
  2. 例如:  
  3. http://s.taobao.com/search?q=%E6%B7%98%E5%AE%9D%E7%BD%91  
  4. 点开之后就会发现,淘宝接收到的参数是乱码的  
  5.   
  6. 主要原因在于类似淘宝这样的网站都是gb2312编码的,如果传进一个utf-8的值进去,就会被解析成乱码.  

所以,他写了一个encode2gb2312的JS库,他转载了一份encode2gb2312的JS库,你可以在这里找到:http://www.html-js.com/?p=920 【作者说了,不是他写的,抱歉,特此更正】

 

css之浏览器hack

来自颓废小魔的博客,主要是自己了解一下,这样万一哪天自己要写CSS了也可以参考一下:

CSS代码
  1. height:100px;  /*正常情况*/  
  2. [;color:#0F0;]/* Sa,CH */  
  3. height:100px\9; /*IE全部系列*/  
  4. *height:100px;  /*IE6 IE7识别*/  
  5. _height:100px;  /*IE6识别*/  
  6. height:100px\0;  /*IE8识别*/  

发现这些写法都好妖啊。。还是firefox好。不过,我也发现一点问题那就是UBUNTU下的FF和WIN下的FF看我的博客的样式居然也不太一样估计是字体的关系了。。(很明显的是我用openoffice的WORD文档让老婆帮我打印的时候,字体变的一塌糊涂)

Tags: css, hack, browser

杂记

杂记事情有多条,一条条的记吧。。。
1、360又给我弹窗了,我记在微勃上,图就不贴了,我发了如下牢骚:@goukixiao(膘叔) 我不知道事实是怎么样的,但是我看这个话就非常不爽。什么叫政府干预?什么叫发现不兼容向360举报?为什么是干预,为什么是举报?这两个词的用法,让我感觉非常不爽。难道说是因为你360太强势了?政府为了不让你搞掉QQ才让你们恢复兼容。词语的顺序也要注意,是QQ和360恢复兼容。。。。。 http://t0.qpic.cn/mblogpic/82512b0572750c3403a0/2000

2、早上上班经过某小学,突然发现拉了条横幅写着,119消防日的事情,才想起,昨天是消防日。MSN上又看到乐乐在线,说了两句,被他鄙视了。。郁闷

3、闲着蛋疼的时候,自己给自己装了一个bugzilla,然后用netbeans issue功能能,自己给自己提交BUG然后解决,最后导出,又可以当日志,又能出周报,很爽(准备明天在部门推广一下,虽然没有那么多的BUG,但互相看到对方的工作情况和已解决未解决的事情也不错)

4、IPAD升来升去,还是3.2.2,没有上到4.2,下载了一夜啊。。我明明下的是4.0的OS,为什么还是3.2.2???郁闷,而且我的apple store一定要翻墙才能下载。很伤心(终于删除所有的软件了,问我怎么删除的,恢复出厂设置呗,然后重下载我需要的软件,这回,我不再越狱了,继续zhuangbility。我用正版我自豪)

来自taobaoUED的一场关于YUI3/jQuery的精彩辩论

我很烦,因为我也不知道我的选择是什么。要知道javascript的框架那么多,我们该用什么不该用什么?比如jQuery,mootools,prototype,dojo,YUI,extjs等等。所以这一篇的辩论就显得比较有趣。YUI又开始象EXT那样越来越大,但现在又有了simple版本(我总感觉YUI就象是EXT的简化版),jQuery呢,变得小了很多,而且选择器又十分方便现在用的人越来越多,插件也很多(jquery也有自己的UI库,不是嘛)

--START--

jQuery之父回答“YUI3如何提升其影响力?”

原文:http://www.quora.com/How-could-YUI3-improve-its-image-compared-to-jQuery-MooTools-etc/

题目:和jQuery和Mootools相比,YUI3如何提升其影响力?
作者:John Resin(jQuery之父)
译者:拔赤

YUI3 已经超越 YUI2,并向 jQuery 看齐了,那么 YUI3 如何提升其影响力呢?关于这个问题,有些回答似乎有些跑题,问题是“怎样提升 YUI 的影响力”(不错的问题),然而大部分的回答却在攻击 jQuery。

我从两方面来回答这个问题:1,YUI 应当如何改进,以便更多的人来使用,2,YUI 如何提升才能改善和  jQuery 的竞争力。

我不得不承认,和其他 JS 库相比,YUI 的确很赞,不管是代码级的工作、大量优秀的文档demosblog 文章视频教程等等,真的相当出色。而其他的 JS 库则对这些方面不太用心,而且我认为这些内容是一个成功开源项目最重要的组成部分,然而 YUI 却没有更成功的占领市场,对此我一直很不解。

在这里,为了便于各位理解,我暂作几个假设:1,目前的 YUI3 版本已经“足够优秀”,2,YUI 文档和论坛也已经足够完善,足以吸引更多的用户来使用 YUI3。

基于此,我做一些简短的评价:

1,分散的域名应该合并成一个,正像别人指出的那样,维护太多站点往往会适得其反、吃力不讨好。

2,多代码库应当合并成一个代码库,不错,人们仍在使用 YUI2,YUI3 的 API 和 YUI2 却有着天壤之别,而 YUI 将来只会在 YUI3 上取得成功(YUI 团队固执的维护着 YUI2 不会帮助 YUI “更成功”的)

3,YUI 的引入方式太多,应当缩减至一种。人们应当从 YUI().use 开始接触 YUI(假设这些人真想深入使用 YUI)。首页只保留一个要点即可:应当这样来引入 YUI,<script src=”http://yuilibrary.com/yui-min.js”></script>,这样就清晰了很多。

简单讲,YUI 项目应当保留一个整体的方向性,重点太分散,则会事与愿违。

如今,如果 YUI 直接和 jQuery 进行竞争,YUI 和它的子项目的运作方式都需要做出调整。因为现在的 YUI 项目运作方式与 YAHOO 的工作方法是背道而驰的。鉴于目前的管理方式的极差的操作性,YUI 项目着实是一个不幸的牺牲品。

本来,我们应该使用 SimpleYUI 来启动我们的 YUI 程序。看看 jQuery 吧,它的 API 简洁实用,人们多冲着这些迷人的功能来构建大多数的站点。因此当我们访问 yuilibrary.com 的时候,本应期待只有一种方法来使用 YUI,就是 simpleYUI(这个名字应当换换,换一个更简洁自然的叫法)。

YUI 主站上其实不应该提供 zip 文件,我甚至觉得根本不应当通过定制的方式来下载 YUI 文件。jQuery 官网只提供一份单独的  jQuery 文件,所有用户,包括手机用户都在使用这一个文件。这实在太简单了,文档也很简单,blog 文章同样简单,每个人都可以非常方便无障碍的参与  jQuery 的讨论。

YUI().use 沙箱外加 异步加载脚本的方法很帅,我非常推荐这种方式。我宁愿将我的代码段都压进一个紧凑的 “SimpleYUI” 中,通过他按需从 YUI CDN 上加载脚本。

我特别希望能重构 YUI 官方网站,让人们更快的找到他们想要的组件,包括那些社区提供的组件。我会重新定制首页,让访问者一眼就能看到 SimpleYUI,再从 YUI 组件库中挑选一些很酷的组件放在首页下方,并直接引导用户能进入到 YUI Gallery(或者不叫 YUI Gallery,YUI Gallery 听起来更像是专为 YUI 搞的插件库)。

所以我们可以看到,YUI 项目本身依然存在着诸多结构性问题。

一直以来,YUI 项目都有着一个庞大的全职全薪的开发团队,这是 YUI 独有的优势,这让其他 JavaScript 库项目非常垂涎。我想说,这实在是不赖,正是因为此,才让 YUI 整体受益匪浅。不过它也带来一些很严重的后果,YUI 的命运掌控在 YAHOO 的手中。这不是我们希望看到的,因为YUI自身独立、开源的特性,YUI 应当从 YAHOO 剥离出来独闯江湖。

据我所知,还没有非雅虎的 YUI 社区,很多非雅虎的开发者为 YUI 贡献了很多不错的代码,但他们都没有提交权限,这是一个严重的问题。反观 jQuery 的成功,则很大程度上得益于开发者的反馈和帮助,我们从社区中得到了大量的滋养。现在,让我们来看看我们的代码库和代码贡献模式吧。

将代码迁移到 github 上是漂亮的第一步(因为没有版本控制,项目早晚会死),然而,人们贡献代码的方式十分零散而分散,显然Git作为开放灵活的开源版本控制工具是我们不二的 选择(相比于 YAHOO 内部循规蹈矩的版本发布)。而在 yuilibrary.com 上,几乎不可能实际上发起一个类似 pull request 操作,因为他有自己的一套提交代码机制,而且非常容易起冲突。我们需要 Git 能侵入开发者 coding 的各个习惯,拥抱 Git,你才能游刃有余的使用他。

时至今日,YUI 社区最大的问题就是“YUI已经成型”,或者说仅仅是 YAHOO 在为 YUI 贡献代码,而一个真正开源的项目应当具有完整的社区生态系统,只有 Yahoo 停止支持 YUI,社区开发者才能开心放心的搭建 YUI 开发环境,为 YUI 贡献代码,如果这个坎过不去,瓶颈就无法消除,我们应当快刀斩乱麻,从底层结构上修复 YUI 问题的根源。

我们需要建立一个持有 YUI 100%版权的非营利组织,并让非官方的开发者来负责项目的运作,这对 YUI 的发展和提升其在社区的活力有着非同一般的意义。

如果要给出终极改进方案,我想应该是这两点:

1,简单就是美,简化你的代码、你的站点、你的文档、和你组织库文件的方式。更简洁的代码才能被更多人读懂、并使用他。

2,开源社区是 YUI 可持续发展的关键所在,它会带来更多的反馈和热情的开发者,YUI 的影响力也在开源社区中潜移默化的影响这其中的每个人,Yahoo 不应是其唯一的维护者,维护者应当来自于更广阔的开源社区。

另外,我注意到这里很多人的回复都很悲观,不要忘了,jQuery 的流行才刚刚开始,而 jQuery 和 YUI 几乎是同时面世(他们分别在06年1月和06年2月发布正式版),jQuery 一直保持着其简洁易用,所以也拥有数量远超其他JS框架的开发者群体。实际上,简单比复杂更具挑战,这也一直都是YUI 所不能理解,但最应当反思的问题。

Zakas的回应

原文:http://www.nczonline.net/blog/2010/11/03/response-to-john-resigs-comments-about-yui/

题目:回应 John Resig 关于 YUI 的评论
作者:Nicholas C. Zakas (YUI3 架构师)
译者:拔赤

就在今早,有人在 Quora [注 1]上提了一个问题:“YUI3 如何提升其影响力?”,这个问题很有意思,下面的回复也很有意思。我最感兴趣的一个回复来自于 jQuery 的作者 John Resig,他的解读非常独到,给出了创建 jQuery 庞大且充满活力的开源社区的路线图。只是其中很多观点我不敢苟同。

在讨论之前,应当说明的是,我在 YAHOO 工作,我一直都在为 YUI 贡献代码,尽管我不是 YUI 开发团队成员,因此我的观点不代表 YAHOO 公司和 YUI开发团队,仅仅是我个人针对 John Resig 回复来分享我的看法。再补充一点,我对 John 本人、jQuery 团队和 jQuery 社区开发者们十分敬重,所以,请不要将我的观点断章取义,做别有用心的理解。

首先,我承认,分散的站点的确是 YUI 的一个问题,不止一个人曾经纠结于到底应该访问 YDN 呢还是访问 YUILibrary.com?这是 YUI 首先要解决的问题。同样,John 对于简化 YUI 文档首页上的引导信息的建议也相当不错,是个好主意。

John 的下一段落介绍了 YUI 如何与 jQuery 正面竞争,我在 twitter 上有过一个简评:“我不认为他们之间存在你死我活的竞争关系”,我不想将 YUI 搞成另外一个 jQuery,这两个库各自都有优点,且重合度极小。jQuery 更适合小网站使用,毕竟它很简单、大众、人人都可以快速上手,因此 jQuery 有着庞大的设计师群体,但我不愿意拿 jQuery 来搭建 Yahoo 首页。对于可扩展的 web 应用,YUI 的确更胜一筹。我不相信仅凭一个单一的产品就能满足所有用户多样化的需求。jQuery 在其专注的方面的确富有想象力,而我宁愿将 YUI 的关注点放在解决复杂 web 应用方面的问题。

我对 John 的评论有如下观点不敢苟同:

“一直以来,YUI 项目都有着一个庞大的全职全薪的开发团队,这是 YUI 独有的优势,这让其他 JavaScript 库项目非常垂涎。我想说,这实在是不赖,正是因为此,才让 YUI 整体受益匪浅。不过它也带来一些很严重的后果,YUI 的命运掌控在 YAHOO 的手中。这不是我们希望看到的,因为 YUI 自身独立、开源的特性,YUI 应当从 YAHOO 剥离出来独闯江湖。”

这种观点我听的耳朵都起茧子了,这些观点是我始终不理解和不认同的,开源社区似乎始终流传着这种观点,认为只有“纯粹自治”,而非依赖于某个公司的项目才是真正的“开源”。让我摘录我之前的一段聊天记录:

某某:我非常喜欢 YUI,只是那个让人讨厌的 “Y” 让我很不爽
我说:到底是什么让你很不爽?是那些拿着雅虎俸禄的全职工程师?还是你看不惯他们在拥有全球最高访问量之一的 YAHOO 网站上做 YUI 的各种测试?

我认为,正是得益于雅虎的庇佑,YUI 才如此价值连城。YUI 开发团队和 YAHOO 的其他研发团队并肩战斗,正是这种经历造就了如今的坚不可摧的 YUI 产品。就在不久前,我刚刚和 YUI 团队的工程师们一起,将 YUI3 实验性的应用到 YAHOO 首页。有多少 JS 库敢说自己能有机会在全球 top5 的网站上进行测试?又有多少 JS 库敢说自己能持续从全球流量最大的网站获得测试数据,这些网站每天的访问量达亿次以上?

将 YUI 从 Yahoo 剥离出来,才真正剥夺了它的战略优势。当 YUI 专注于这些高端项目和某些私有项目的时候,就没办法同时顾及到那些开源社区了。而在 Yahoo 内部,我们可以与 YUI 团队协作无间、齐力断金,所有 YUI 的用户也都从中获益良多。所有雅虎工程师的辛勤劳作在这里汇聚,日积月累的向 YUI 注入能量。

有些人说 Yahoo 不应当“操纵” YUI 的命运,这种论调我就更不能认同了。同样,是 Yahoo 让 YUI 闪光。任何一个开源项目都有一个核心的开发团队,他们的工作除了维护项目源码之外,还负责培养开发者、并为他们提供学习路线图。雅虎为YUI的开发者们支 付薪水,这并不能改变项目的本质。我们可以看看在类似机制下亦然如此成功的 Mozilla ,Mozilla 核心研发团队控制着 Firefox 的版本发布,Mozilla 给他们支付薪水,并不意味着他们的产品就应该有多糟糕。他们的产品 Firefox 是世界第二大浏览器,而正是这些甘于奉献的工程师对这个产品充满热情,他们的确渴望创造一个最好的产品。当你的本职工作就是在支持这个项目的时候,这是很 容易做到的。谁说大公司无法支持开源项目?开源社区生态系统的形成,最终是由沟通、协作和不断超越的精神决定的,而不是所谓的“非盈利”。

再回过头来看 YUI,YUI 开发团队一直都在非常用心的开发第三方组件库,不错,这避免不了成长中的烦恼。时至今日 YUI 已经成果斐然,当然,在雅虎的之外,YUI 还未像 jQuery 那样广受关注,但 YUI 一直都在努力。去年的 YUI 年会 [注2]上,Matt Snider(曾供职于Mint.com)介绍了由他主导开发的一个相当完备的基于YUI2的组件库。 我觉得这实在是棒极了,因为他的行为传达了一个信号,任何人只要有自己的想法,都可以向 YUI 开发团队靠拢,而且可以得到 YUI 团队的绝对支持,并把你的组件打包入 YUI。Matt 为他的组件库付出了很多工作,希望 YUI 可以寻觅到更多像他那样的开发者,愿意花时间为 YUI 贡献高质量的代码。同样,YUI Gallery 也一个相当不错的东西:他为开发者打开一扇大门,开发者可以轻松的将他们的组件发布到 Gallery 列表中,并可以将它们推送到 YAHOO 的 CDN 上[注3]。至今,Gallery 已经有227个组件,让非雅虎系的开发者都受益良多。

那么,YUI 是否可以改进社区的形式和贡献代码的模式呢?当然可以。YUI 是不是必须切断和 Yahoo 的联系,才能开始这些改进?不用,YUI3 是一个高质量的产品,在不断壮大的开源社区中有着强劲的生命力,如果硬要指责 YUI 团队的不称职的话,也只是他们忽视了市场营销的重要性,和缺乏行之有效的推广手段,而这两方面正是  jQuery 的强项,这也是 YUI 需要向 jQuery 学习的地方。

总之,YUI 不是 jQuery,任何试图将 YUI jQuery 化的企图都是不对的。那是不是意味着他们二者就是方枘圆凿、不容水火?绝对不是,jQuery 拥有着全球最大的开发者群体,没有哪个开源项目敢说自己不想要一个 jQuery 那样的开发者群体。YUI 也是其中之一,只是 YUI 没必要一定要变成像 jQuery 那样让全球开发者趋之若鹜,更没必要一脚把雅虎踹开,jQuery 仅仅是一个案例,它给了我们如何经营开源社区的一个参照样本,就像我常对我同事说的,问题不只有一种解决方案,真正的挑战性来自于选择适当的策略(而非照 抄)来解决特定场景下的问题。如果真的沿着 jQuery 走过的脚印一步一步走下去,对 YUI 来说,这将是一个严重的决策性错误,毕竟,他们二者殊途不同归,各有各的优势,各自都有特定的开发者群体。YUI将会坚持走自己的道路,尽管这离不开孕育 滋养它的紫色土壤。但我相信,YUI 一定能做到。

注1Quora.com 是一款基于问答机制的 SNS,有着活跃的用户群,它和之前的问答网站的最大区别就是 Auora 是基于实名制。
注2YUIConf 是 YUI 开发者大会简称,一年一次,今年将在11月8日举办,可通过 YUIblog 获得更多信息。
注3:我相信 zakas 的初衷是好的,但就我个人的经验来看,将组件发布到Gallery中的确很简单,但推送到 Yahoo CDN 上就有点费劲了,手续实在有点小麻烦

--EOF--

原文来自:http://ued.taobao.com/blog/2010/11/06/yui3-vs-jquery/

我确实 有想法用YUI,因为,我现在的问题是,我不会做页面。Yahoo的首页居然用YUI重构了;上次用YQL也读取过什么weather的信息等,总之一切感觉都那么的不错,只是,我真的能够用吗?会用吗?犹豫了(YUI只是看过,而没有用过,所以这是一个问题,顺便在想,chrome插件支持用YUI的JS吗?)

Records:30123456