<?xml version='1.0' encoding='utf-8' ?><rss version='2.0' xmlns:wfw='http://wellformedweb.org/CommentAPI/'><channel><title>寻欢翼翼的孤寂人生</title><description><![CDATA[偶只是一个孤寂的流浪狼，很想咬人，但终究没有咬人的勇气！]]></description><link>http://www.w2blog.net</link><language>zh-cn</language><managingEditor>eason007@163.com</managingEditor><item><title>win7+iis+php+fastcgi安装</title><link>http://www.w2blog.net/view/532.html</link><guid>http://www.w2blog.net/view/532.html</guid><description><![CDATA[<p><span style="direction: ltr;">1、点击&ldquo;开始&rdquo;菜单&mdash;&gt;&ldquo;控制面板&rdquo; &mdash;&gt;&nbsp;</span><span style="direction: ltr;">&ldquo;程序和功能&rdquo; &mdash;&gt;&nbsp;</span><span style="direction: ltr;">&ldquo;打开或关闭Windows功能&rdquo;。</span></p>
<p>&nbsp;</p>
<p>2、找到&ldquo;Internet 信息服务&rdquo; &mdash;&gt;&nbsp;<!---->&ldquo;万维网服务&rdquo;<span style="direction: ltr;">&mdash;&gt;</span><span style="direction: ltr;">&ldquo;性能功能&rdquo;</span><span style="direction: ltr;">&mdash;&gt;</span><span style="direction: ltr;">&ldquo;动态内容压缩&rdquo;、</span><span style="direction: ltr;">&ldquo;万维网服务&rdquo;</span><span style="direction: ltr;">&mdash;&gt;</span><span style="direction: ltr;">&ldquo;应用程序开发功能&rdquo;</span><span style="direction: ltr;">&mdash;&gt;</span><span style="direction: ltr;">&ldquo;CGI&rdquo;，勾选上然后确定。</span></p>
<p>&nbsp;</p>
<p>3、打开IIS管理器，在中间的功能视图里打开&ldquo;处理程序映射&rdquo;，点击右边操作栏里的&ldquo;添加模块映射&rdquo;。</p>
<p>&nbsp;</p>
<p>请求路径：*.php</p>
<p>模块：FastCgiModule</p>
<p>可执行文件："C:\\Program Files\\php\\php-cgi.exe"(注：&ldquo;C:\\Program Files\\php&rdquo;为PHP安装目录，如果路径中有空格，就必须要双引号）</p>
<p>名称：PHP_via_FastCGI</p><br /> [<a href='http://www.w2blog.net/view/532.html'>点击查看详细</a>] ]]></description><pubDate>Wed, 02 Nov 2011 13:57:14 +0800</pubDate><comments>http://www.w2blog.net/view/532.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/532.xml</wfw:commentRSS></item><item><title>在win2003下使用iis6+fastcgi+php+mysql</title><link>http://www.w2blog.net/view/531.html</link><guid>http://www.w2blog.net/view/531.html</guid><description><![CDATA[<p>1、安装IIS6</p>
<p><a href="../download/iis6+fastcgi+php+memcache+eaccelerator/iis6.zip" target="_blank">http://www.w2blog.net/download/iis6+fastcgi+php+memcache+eaccelerator/iis6.zip</a></p>
<p>&nbsp;</p>
<p>2、php,vc9 非线程版本(Non Thread Safe)</p>
<p><a href="http://windows.php.net/download/" target="_blank">http://windows.php.net/download/</a></p>
<p>php的安装</p>
<p>a、把下载回来的压缩包解压缩到 C:\\php5 目录。</p>
<p>b、给 C:\\php5 目录加上 NETWORK SERVICE 用户&ldquo;读取和运行&rdquo;权限。</p>
<p>c、把 c:\\php5\\php.ini-production 文件重命名为 php.ini ，编辑 php.ini ，修改字段值如下：</p>
<p>extension_dir = ext</p>
<p>cgi.force_redirect = 0</p>
<p>cgi.fix_pathinfo = 1</p>
<p>fastcgi.impersonate=1</p>
<p>&nbsp;</p>
<p>3、fastcgi</p>
<p>FastCGI Extension</p>
<p><a href="http://www.iis.net/download/fastcgi" target="_blank">http://www.iis.net/download/fastcgi</a></p>
<p>该安装程序需要.net 2.0支持，请确认已经安装.net Framework2.0。</p>
<p>或</p>
<p>&nbsp;</p>
<p>Web Platform</p>
<p><a href="http://www.microsoft.com/web/downloads/" target="_blank">http://www.microsoft.com/web/downloads/</a></p>
<p>&nbsp;</p>
<p>fastcgi的安装</p>
<p>a、双击下载回来的 msi 文件，一路 next 即可。</p>
<p>b、执行 Internet 信息服务(IIS)管理器。</p>
<p>c、双击本地计算机图标。</p>
<p>d、右键单位&ldquo;网站&rdquo;，选择&ldquo;属性&rdquo;。</p>
<p>e、点击&ldquo;主目录&rdquo;标签。</p>
<p>f、点击&ldquo;配置...&rdquo;按钮。</p>
<p>g、单击&ldquo;添加...&rdquo;按钮。</p>
<p>h、设置&ldquo;可执行文件&rdquo;值为 C:\\WINDOWS\\system32\\inetsrv\\fcgiext.dll</p>
<p>i、设置&ldquo;扩展名&rdquo;值为 php</p>
<p>j、设置&ldquo;动作&rdquo; 为&ldquo;限制为&rdquo; 值 GET,HEAD,POST</p>
<p>k、点击&ldquo;确定&rdquo;。</p>
<p>l、编辑 C:\\WINDOWS\\system32\\inetsrv\\fcgiext.ini ，在最后添加如下内容：</p>
<p>[Types]</p>
<p>php=php5</p>
<p>[php5]</p>
<p>ExePath=c:\\php5\\php-cgi.exe</p>
<p>&nbsp;</p>
<p>4、在网站根目录下新建文本文件，重命名为 phpinfo.php，内容如下：</p>
<p>&lt;?php</p>
<p>phpinfo();</p>
<p>?&gt;</p>
<p>打开IE，在地址栏输入：http://localhost/phpinfo.php</p>
<p>&nbsp;</p>
<p>5、php的memcache扩展</p>
<p><a href="http://downloads.php.net/pierre/" target="_blank">http://downloads.php.net/pierre/</a></p>
<p>下载nts版本</p>
<p>&nbsp;</p>
<p>6、php的eAccelerator扩展</p>
<p>比较新的版本可以在<a href="http://www.apachelounge.com/viewforum.php?f=3" target="_blank">http://www.apachelounge.com/viewforum.php?f=3</a>或留意官网<a href="http://eaccelerator.net/" target="_blank">http://eaccelerator.net/</a></p>
<p>&nbsp;</p>
<p>7、mysql</p>
<p><a href="http://www.mysql.com/downloads/mysql/" target="_blank">http://www.mysql.com/downloads/mysql/</a>，选择MSI Installer版本。</p>
<p>&nbsp;</p>
<p>8、memcache的server端</p>
<p><a href="../download/iis6+fastcgi+php+memcache+eaccelerator/memcached.zip" target="_blank">http://www.w2blog.net/download/iis6+fastcgi+php+memcache+eaccelerator/memcached.zip</a></p>
<p>打开Setup.bat</p>
<p>&nbsp;</p>
<p>9、iis6中打开gzip</p>
<p>
<p>
<p>在IIS管理器中，&ldquo;网站&rdquo;上面右键－属性，不是下面的某个站点，而是整个网站。进入&ldquo;服务&rdquo;标签，选上启用动态内容压缩，静态内容压缩。</p>
<p>然后选中网站下面那个服务器扩展，新建一个服务器扩展。名字无所谓，下面的添加文件的路径是：c:\\windows\\system32\\inetsrv\\gzip.dll，然后启用这个扩展。</p>
<p>停用IIS服务及WWW服务，在c:\\windows\\system32\\inetsrv\\下面有个MetaBase.xml文件，可以用记事本打开，找到IIsCompressionScheme，有三个相同名字的段，分别是deflate,gzip,Parameters，第三段不用管它，前两段有基本相同的参数，在这两段的参数HcScriptFileExtensions下面都加上一行php，如果你有其它的动态程序要压缩，也加在这里。HcDynamicCompressionLevel改成9，（0－10，9是性价比最高的一个）。</p>
</p>
</p><br /> [<a href='http://www.w2blog.net/view/531.html'>点击查看详细</a>] ]]></description><pubDate>Thu, 17 Feb 2011 01:02:03 +0800</pubDate><comments>http://www.w2blog.net/view/531.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/531.xml</wfw:commentRSS></item><item><title>eAccelerator for php 5.3.4 on windows at vc6</title><link>http://www.w2blog.net/view/530.html</link><guid>http://www.w2blog.net/view/530.html</guid><description><![CDATA[<p>根据<a href="http://www.eaccelerator.net/" target="_blank">eAccelerator</a>的svn版本425编译，配合运行在windows平台下的<a href="http://www.php.net/" target="_blank">php</a>5.3.4的dll下载，内含线程安全(ts)和非线程安全版本(nts)，请注意区分</p>
<p><a href="../download/php/eAccelerator_v1_0_svn425_for_v5_3_4-VC6.zip" target="_blank">http://www.w2blog.net/download/php/eAccelerator_v1_0_svn425_for_v5_3_4-VC6.zip</a></p>
<p>&nbsp;</p>
<p>针对php5.3.3版本的<a href="http://www.eaccelerator.net/" target="_blank">eAccelerator</a>下载连接：</p>
<p><a href="http://www.sitebuddy.com/php/accelerators/eaccelerator-windows-binaries" target="_blank">http://www.sitebuddy.com/php/accelerators/eaccelerator-windows-binaries</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>eaccelerator配置信息详解(根据官方英文说明翻译)</p>
<p>extension="eAccelerator.dll"</p>
<p>解释：dll文件的路径，在linux下区分大小写。</p>
<p>--------------------</p>
<p>eaccelerator.shm_size="32"</p>
<p>解释：eaccelerator可使用的共享内存大小(单位为MB)。</p>
<p>--------------------</p>
<p>eaccelerator.cache_dir="/data/cache/eaccelerator"</p>
<p>解释：缓存路径，需有写权限</p>
<p>--------------------</p>
<p>eaccelerator.enable="1"</p>
<p>解释：打开或者关闭eaccelerator。"1"指打开，"0"指关闭。默认值为"1"。</p>
<p>--------------------</p>
<p>eaccelerator.optimizer="1"</p>
<p>解释：打开或者关闭代码优化，开启可以加快代码的执行速度。"1"指打开，"0"指关闭。默认值为"1"。</p>
<p>--------------------</p>
<p>eaccelerator.check_mtime="1"</p>
<p>解释：当打开此项时，eaccelerator会在每次请求时检查php文件的修改时间，看其是否被修改过，这会耗费一点时间，如果php文件被修改过，eaccelerator会重新编译缓存该php文件。当关闭此项时，如果php文件被修改，则需要手工删除eaccelerator缓存，才能显示被修改的php文件。"1"指打开，"0"指关闭。默认值为"1"。</p>
<p>--------------------</p>
<p>eaccelerator.debug="0"</p>
<p>解释：打开或者关闭调试记录。当打开时，eaccelerator会将对一个缓存文件的每次请求都写进log。打开此项只对调试eaccelerator是否有BUG时有益处。"1"指打开，"0"指关闭。默认值为"0"。</p>
<p>--------------------</p>
<p>eaccelerator.filter=""</p>
<p>解释：决定哪些PHP文件应该被缓存。可以指定一个范围(比如"*.php *.phtml")，这样被指定的文件就会被缓存。如果该范围以!开头，被指定的文件就不会被缓存。默认值为""，表示缓存所有的PHP文件。</p>
<p>--------------------</p>
<p>eaccelerator.shm_max="0"</p>
<p>解释：一个用户使用例如eaccelerator_put之类的函数能够往共享内存中加载的最大数据。默认值为"0"，表示不限制。(单位为字节)</p>
<p>--------------------</p>
<p>eaccelerator.shm_ttl="0"</p>
<p>解释：当没有足够的空闲共享内存去尝试缓冲一个新脚本时，将删除至少在shm_ttl秒之前没有被访问过的文件。默认值为"0"，表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)</p>
<p>--------------------</p>
<p>eaccelerator.shm_prune_period="0"</p>
<p>解释：当没有足够的空闲共享内存去尝试缓冲一个新脚本时，将删所有旧脚本，前提是这个尝试在超过shm_prune_period秒之前被执行过。默认值为"0"，表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)</p>
<p>--------------------</p>
<p>eaccelerator.shm_only="0"</p>
<p>解释：打开或者关闭在磁盘上缓存编译过的脚本。这个参数对会话数据和内容缓存没有效果。默认值为"0"，表示使用磁盘和共享内存来缓存。</p>
<p>--------------------</p>
<p>eaccelerator.compress="1"</p>
<p>解释：打开或者关闭缓存内容压缩。"1"指打开，"0"指关闭。默认值为"1"。</p>
<p>--------------------</p>
<p>eaccelerator.compress_level="9"</p>
<p>解释：内存压缩的级别。默认值为"9"，表示最大压缩。</p>
<p>&nbsp;</p><br /> [<a href='http://www.w2blog.net/view/530.html'>点击查看详细</a>] ]]></description><pubDate>Thu, 06 Jan 2011 22:49:53 +0800</pubDate><comments>http://www.w2blog.net/view/530.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/530.xml</wfw:commentRSS></item><item><title>策略类web game《迷失之城》推广</title><link>http://www.w2blog.net/view/529.html</link><guid>http://www.w2blog.net/view/529.html</guid><description><![CDATA[<p>有意请联系QQ:13615663</p><br /> [<a href='http://www.w2blog.net/view/529.html'>点击查看详细</a>] ]]></description><pubDate>Sat, 25 Dec 2010 12:12:00 +0800</pubDate><comments>http://www.w2blog.net/view/529.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/529.xml</wfw:commentRSS></item><item><title>2010看车记</title><link>http://www.w2blog.net/view/528.html</link><guid>http://www.w2blog.net/view/528.html</guid><description><![CDATA[<p>英朗GT1.8AT，方向盘很轻，油门也轻，轻轻踩一脚，马上就有推背感，操控很灵敏，内饰和造型很漂亮，隔音比新君威稍微差稍稍，悬挂不错，过坎的时候适中。就是价钱稍微有点小贵。现在没优惠，反而新君威买车送手提电脑。。。</p>
<p>&nbsp;</p>
<p>新君威2.0AT，现在2.0的只有一个世博版。开起来和英朗差不多优点，但坐起来没英朗舒服，后排小窄，价钱比蒙迪欧致胜贵一些。。。</p>
<p>&nbsp;</p>
<p>克鲁兹1.8AT，方向比较重、油门适中，可惜加速太肉，踩到一半都没什么推背感，悬挂太硬、隔音太差，挺失望的。。。</p>
<p>&nbsp;</p>
<p>嘉年华三厢1.5AT，方向不错，加速一般，隔音差。。。</p>
<p>&nbsp;</p>
<p>世嘉三厢1.6AT，方向不错，加速反映小慢，后排座椅角度不舒服，个人挺喜欢，可惜LD不喜欢方向盘和中控，一票毙掉。</p>
<p>&nbsp;</p>
<p>速腾说驾照不够一年不给试驾，比较狗日。。。</p><br /> [<a href='http://www.w2blog.net/view/528.html'>点击查看详细</a>] ]]></description><pubDate>Mon, 16 Aug 2010 09:20:30 +0800</pubDate><comments>http://www.w2blog.net/view/528.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/528.xml</wfw:commentRSS></item><item><title>黑洞频率(Frequency) - 2000</title><link>http://www.w2blog.net/view/527.html</link><guid>http://www.w2blog.net/view/527.html</guid><description><![CDATA[<p><strong>影片简介： </strong><br /><br /> 如果你能够回到过去改变你人生中的一件事情，会发生什么事情？对于约翰苏利万来说，这没有问题，他将阻止一件1969年10月12日发生的一场悲剧，使他的当年做消防员的父亲能够逃离那场火灾死神的魔掌。  <br /> 那个时候，约翰还只是个6岁的孩子，他的父亲死去以后，他曾经几次梦见自己想要去阻止那场悲剧，父亲的死在他的心灵上留下了重重的伤痕，直到现在已经成为了一名警察，他仍然对此事难以忘怀。  <br /> 在父亲忌日前一天的暴风夜里，约翰在那座父亲留下的房间里发现了一个他曾经用过的老式收音机，他开始摆弄它，却竟然从收音机中收到了一个自称是1969年叫弗兰克的消防员的说话，他开始与那个人交谈起来，难道这真是他的父亲吗，就是在30年前的这天夜里，他的父亲正是也在这里，难道此时他正在另一个时空中。  <br />约翰和他谈自己的爱情，谈自己的忏悔，他们谈了整整一夜，  当他终于确信这个人正是他那年轻的父亲后，他意识到他现在可以改变一切。约翰抓紧时间提醒弗兰克在12日那可怕的火灾中如何脱身，他要将他的父亲从死神的手中挽救回来&hellip;&hellip;  <br /> 1999年10月12日，约翰当约翰醒来时，发现墙上有一张满头银发的父亲的照片，约翰知道自己改变了过去，眼前是一个崭新的现在，这使他欣喜若狂。然而紧接着可怕的事情又发生了，一连串残忍的凶杀案又改变了他的生活，他的母亲成为其中的牺牲者。父亲弗兰克必须再通过收音机频率回到过去，阻止一场后来改变他们家庭命运的谋杀。而每次弗兰克在他的时空中改变了一件事情，约翰一觉醒来都是一个不一样的现在&hellip;&hellip;  <br /> 本片是一部关于时光倒流的幻想影片，故事中充满了亲情和温馨，同时又包括恐怖的谋杀，是一部集众多卖点于一身的娱乐影片。</p>
<p>资源：</p>
<p><a href="http://movie.douban.com/subject/1294183/" target="_blank">http://movie.douban.com/subject/1294183/</a></p>
<p><a href="http://www.verycd.com/topics/85906/" target="_blank">http://www.verycd.com/topics/85906/</a></p>
<p><a href="http://www.mtime.com/movie/14121/" target="_blank">http://www.mtime.com/movie/14121/</a></p><br /> [<a href='http://www.w2blog.net/view/527.html'>点击查看详细</a>] ]]></description><pubDate>Sat, 24 Jul 2010 22:49:05 +0800</pubDate><comments>http://www.w2blog.net/view/527.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/527.xml</wfw:commentRSS></item><item><title>G4特工(Option Zero) - 1997</title><link>http://www.w2blog.net/view/526.html</link><guid>http://www.w2blog.net/view/526.html</guid><description><![CDATA[<p>
<h2>剧情简介 &middot; &middot; &middot; &middot; &middot; &middot;</h2>
<div class="indent">阿羿（张智霖  饰）是一名特警，执行任务时偶然发现了某公司老板跟韩国的激进分子有密切的联系，更打算从台湾偷运武器到香港。阿羿很快掌握到情报并与之展开了搏斗，不料他的领队晟（黄秋生  饰）在枪林弹雨正牺牲了，首犯金也逃脱了。<br /> 后来阿羿转职加入了G4行列，任务是保护政府要员的安全。每天劳碌工作的他无暇顾及女友凯莉（李若彤  饰），两人之间的感情出现裂痕。<br /> 可是阿羿没有忘记要为自己当年的好队友报仇，正在这个时候，阿金又出现了，更打算再次与韩国分子联手。阿羿势要抓紧机会，为好友报仇，将犯罪分子绳之于法。</div>
<div class="indent"></div>
<div class="indent"></div>
<div class="indent">曾策划《飞虎雄心》与《飞虎》的林超贤升任导演，凭他对香港特别行动组的深入了解，企图拍出一部科技挂帅的高层次警匪动作片。片名所谓的G4，全名为&ldquo;保护政要组"，是隶属政治部的行动支援小组，而英国的军情五局则是幕后的总指挥。政治部的队员张智霖与队长黄秋生奉命驱逐一批台湾退伍军人出境，但遭强大火力对抗，原来他们跟南韩激进派份子勾结，计划从台湾军方偷运一批武器赴港。张中途被迫改投G4，跟队员陈法蓉关系密切，因而触怒女友李若彤。此时南韩杀手金率恐怖份子来犯，对张构成致命危机，片中出动了大批新型枪械，火拚场面拍得逼真而火爆。</div>
<div class="indent"></div>
<div class="indent">资源：</div>
<div class="indent"><a href="http://movie.douban.com/subject/1298125/" target="_blank">http://movie.douban.com/subject/1298125/</a></div>
<div class="indent"><a href="http://www.verycd.com/topics/2732411/" target="_blank">http://www.verycd.com/topics/2732411/</a></div>
<div class="indent"><a href="http://www.mtime.com/movie/15890/" target="_blank">http://www.mtime.com/movie/15890/</a></div>
</p><br /> [<a href='http://www.w2blog.net/view/526.html'>点击查看详细</a>] ]]></description><pubDate>Sat, 10 Jul 2010 23:51:01 +0800</pubDate><comments>http://www.w2blog.net/view/526.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/526.xml</wfw:commentRSS></item><item><title>读书 - 编写高质量代码:Web前端开发修炼之道</title><link>http://www.w2blog.net/view/525.html</link><guid>http://www.w2blog.net/view/525.html</guid><description><![CDATA[<p>内容简介</p>
<div class="zhengwen">本书以网站重构为楔子，深刻而直接地指出了Web前端开发中存在的重要问题&mdash;代码难以维护。如何才能提高代码的可维护性？人是最关键的因素！于是本书紧接着全方位地解析了作为一名合格的前端开发工程师应该掌握的技能和承担的职责，这对刚加入前端开发这一行的读者来说有很大的指导意义。同时，还解读了制定规范和团队合作的重要性。<br />　　本书的核心内容是围绕Web前端开发的三大技术要素&mdash;&mdash;HTML、CSS和JavaScript来深入地探讨编写高质量的HTML代码、CSS代码和JavaScript代码的方法、技巧、规范和最佳实践，从而为编写易于维护的Web前端代码打下坚实的基础。这不是一本单纯的&ldquo;技术&rdquo;书籍，没有系统地讲解Web前端开发的基础知识，它更专注于&ldquo;技巧&rdquo;，探索如何为&ldquo;技术&rdquo;提供最佳&ldquo;技巧&rdquo;。<br />　　本书包含了大量的开发思想和原则，都是作者在长期开发实践中积累下来的经验和心得，不同水平的Web前端开发者都会从中获得启发。尤其是对于那些中初级水平的读者而言，本书是一本不可多得的内功修炼秘籍。</div>
<h2 class="black14">作者简介</h2>
<div class="zhengwen">曹刘阳，网名阿当，资深Web前端开发工程师，先后就职于中国雅虎和淘宝，现就职于新浪，一直从事Web前端开发工作，实战经验非常丰富，在通过提高代码 质量来增强可维护性方面颇有心得。精通HTML、CSS、JavaScript等前端开发技术，对ActionScript、Flex、PHP、RoR等 Web开发技术也有较深入的研究。致力于敏捷开发实践，喜欢读书，阅读过大量技术书籍；擅于总结归纳，能将各种技术融会贯通。</div>
<div class="zhengwen">当当：</div>
<div class="zhengwen"><a href="http://product.dangdang.com/product.aspx?product_id=20872391">http://product.dangdang.com/product.aspx?product_id=20872391</a></div>
<div class="zhengwen">卓越：</div>
<div class="zhengwen"><a href="http://www.amazon.cn/gp/product/B003U8XUKQ?ver=gp&amp;qid=1278763105&amp;ref_=sr_1_1&amp;sr=8-1&amp;s=books">http://www.amazon.cn/gp/product/B003U8XUKQ?ver=gp&amp;qid=1278763105&amp;ref_=sr_1_1&amp;sr=8-1&amp;s=books</a></div><br /> [<a href='http://www.w2blog.net/view/525.html'>点击查看详细</a>] ]]></description><pubDate>Sat, 10 Jul 2010 21:55:03 +0800</pubDate><comments>http://www.w2blog.net/view/525.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/525.xml</wfw:commentRSS></item><item><title>前端开发面试中常见的问题整理</title><link>http://www.w2blog.net/view/520.html</link><guid>http://www.w2blog.net/view/520.html</guid><description><![CDATA[<p>HTML：</p>
<p>1、行级元素和块级元素的区别？</p>
<p>2、IE和FF及其他浏览器对盒模型解释的区别？</p>
<p> </p>
<p>CSS：</p>
<p>1、清除浮动有哪几种方法？</p>
<p>2、透明/半透明效果如何实现？</p>
<p> </p>
<p>Javascript：</p>
<p>1、跨域获取数据有哪几种方法？</p>
<p>2、处理浏览器兼容常见的问题是哪些？</p>
<p>3、在不考虑现有js框架的情况下，ajax如何实现？</p>
<p>4、一个完整的ajax请求有哪几步？</p>
<p>5、类似webqq那种应用，是如何实现的？如果不利用ajax的话，还有其他解决方法吗？</p>
<p>6、如果需要给一个div内的a元素捆绑事件，有什么快速的处理方法？</p>
<p>7、在不考虑现有js框架的情况下，页面元素的拖拽效果如何实现？请说出大概流程。</p>
<p>8、a怎么继承b？</p>
<p> </p>
<p>综合：</p>
<p>1、前端优化有哪几种方法？</p>
<p>2、http的请求过程是怎样的？</p>
<p>3、http的304状态码是什么意思？</p><br /> [<a href='http://www.w2blog.net/view/520.html'>点击查看详细</a>] ]]></description><pubDate>Tue, 06 Jul 2010 18:28:04 +0800</pubDate><comments>http://www.w2blog.net/view/520.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/520.xml</wfw:commentRSS></item><item><title>前端优化中的Javascript脚本加载测试(总结)</title><link>http://www.w2blog.net/view/519.html</link><guid>http://www.w2blog.net/view/519.html</guid><description><![CDATA[<p>详情请下载：</p>
<p><a href="../download/javascript-load-optimization/javascript-load-optimization.pptx" target="_blank">http://www.w2blog.net/download/javascript-load-optimization/javascript-load-optimization.pptx</a></p>
<p>及</p>
<p><a href="../download/javascript-load-optimization/javascript-load-optimization.xlsx" target="_blank">http://www.w2blog.net/download/javascript-load-optimization/javascript-load-optimization.xlsx</a></p>
<p> </p>
<p>由于ppt是早期制作的，所以相关具体测试结论，以excel文件记载为准。有疑问请联系eason007<eason007#gmail.com>。</p><br /> [<a href='http://www.w2blog.net/view/519.html'>点击查看详细</a>] ]]></description><pubDate>Fri, 02 Jul 2010 09:20:13 +0800</pubDate><comments>http://www.w2blog.net/view/519.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/519.xml</wfw:commentRSS></item><item><title>贝奥武夫(Beowulf) - 2007</title><link>http://www.w2blog.net/view/518.html</link><guid>http://www.w2blog.net/view/518.html</guid><description><![CDATA[<p>
<h2>剧情简介 · · · · · ·</h2>
<div class="indent">在那首用古英语组成的叙事长诗中，贝奥武夫将会经历三场影响重大且深远的战役：一是与恶魔格伦德尔；二是面对凶残的报复，贝奥武夫最终杀死了格伦德尔的母亲；三是50年后，贝奥武夫的终极对手是一条巨龙……至于这部由好莱坞重新诠释的同名传奇史诗影片，则主要对焦在了贝奥武夫战胜格伦德尔之后所发生的一系列故事。<br /> 只有属于英雄的时代，才有可能塑造一个如此强大的武士--贝奥武夫，虽然他最终消灭了拥有压倒性力量的恶魔格伦德尔，拯救了国王和他的国家，却也招致了这个野兽的母亲永恒的愤怒和报复，她要使用任何能够想象得到的方式，为自己的儿子实施复仇计划，而随即发生的大规模战役，将会贯穿几个世纪的时间，却最终也让贝奥武夫的名字变成了不朽的传奇。</div>
<div class="indent"></div>
<div class="indent">资源：</div>
<div class="indent"><a href="http://movie.douban.com/subject/1792917/" target="_blank">http://movie.douban.com/subject/1792917/<br /> </a></div>
<div class="indent"><a href="http://www.mtime.com/movie/50673/" target="_blank">http://www.verycd.com/topics/278566/<br /><br />http://www.mtime.com/movie/50673/ </a></div>
</p><br /> [<a href='http://www.w2blog.net/view/518.html'>点击查看详细</a>] ]]></description><pubDate>Mon, 28 Jun 2010 02:10:57 +0800</pubDate><comments>http://www.w2blog.net/view/518.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/518.xml</wfw:commentRSS></item><item><title>探索Google App Engine背后的奥秘(2)--Google的整体架构猜想</title><link>http://www.w2blog.net/view/517.html</link><guid>http://www.w2blog.net/view/517.html</guid><description><![CDATA[<p>
<p>本文是基于现有的公开资料和个人的经验来对Google的整体架构进行总结和猜想。</p>
<p>在软件工程界，大家有一个共识，那就是"需求决定架构"，也就是说，架构的发展是为了更好地支撑应用。那么本文在介绍架构之前，先介绍一下Google所提供的主要产品有哪些？</p>
<h1>产品</h1>
<p>对于Google和它几个主要产品，比如搜索和邮件等，大家已经非常熟悉了，但是其提供服务的不只于此，并主要可分为六大类：</p>
<ul>
<li>各种搜索：网页搜索，图片搜索和视频搜索等。 </li>
<li>广告系统：AdWords和AdSense。 </li>
<li>生产力工具：Gmail和Google Apps等。 </li>
<li>地理产品：地图，Google Earth和Google Sky等。 </li>
<li>视频播放：Youtube。 </li>
<li>PaaS平台：Google App Engine。 </li>
</ul>
<h1>设计理念</h1>
<p>根据现有的资料，Google的设计理念主要可以总结出下面这六条：</p>
<ul>
<li>Scale，Scale，Scale  Scale：因为Google大多数服务所面对的客户都是百万级别以上的，导致Scale也就是伸缩已经深深植入Google的DNA中，而且Google为了帮助其开发人员更好地开发分布式应用和服务，不仅研发了用于大规模数据处理MapReduce框架，还推出了用于部署分布式应用的PaaS平台Google  App Engine。 </li>
<li>容错：一个分布式系统，就算是构建在昂贵的小型机或者大型机之上，也会不时地出现软件或者硬件方面的错误，何况Google的分布式系统还是浇筑在便宜的X86服务器之上，即使其设备标称的MTBF（平均故障间隔时间）很高，但是由于一个集群内的设备极多，导致其错误发生的几率非常高，比如李开复曾经提过这样一个例子：在一个拥有两万台X86服务器的集群中，每天大约有110台机器会出现宕机等恶劣情况，所以容错是一个不可被忽视的问题，同时这点也被Google院士Jeffrey  Dean在多次演讲中提到。 </li>
<li>低延迟：延迟是影响用户体验的一个非常重要的因素，Google的副总裁Marissa  Mayer曾经说过："如果每次搜索的时间多延迟半秒的话，那么使用搜索服务的人将减少20%"，从这个例子可以看出，低延迟对用户体验非常关键，而且为了避免光速和复杂网络环境造成的延时，Google已在很多地区设置了本地的数据中心。 </li>
<li>廉价的硬件和软件：由于Google每天所处理的数据和请求在规模上是史无前例的，所以现有的服务器和商业软件厂商是很难为Google"度身定做"一套分布式系统，而且就算能够设计和生产出来，其价格也是Google所无法承受的，所以其上百万台服务器基本采用便宜的X86系统和开源的Linux，并开发了一整套分布式软件栈，其中就包括上篇提到的MapReduce，BigTable和GFS等。 </li>
<li>优先移动计算：虽然随着摩尔定律的不断发展，使得很多资源都处于不断地增长中，比如带宽等，但是到现在为止移动数据成本远大于移动计算的成本，所以在处理大规模数据的时候，Google还是倾向于移动计算，而不是移动数据。 </li>
<li>服务模式：在Google的系统中，服务是相当常用的，比如其核心的搜索引擎需要依赖700-1000个内部服务，而且服务这种松耦合的开发模式在测试，开发和扩展等方面都有优势，因为它适合小团队开发，并且便于测试。 </li>
</ul>
<h1>整体架构的猜想</h1>
<p>在整体架构这部分，首先会举出Google的三种主要工作负载，接着会试着对数据中心进行分类，最后会做一下总结。</p>
<p><strong>三种工作负载</strong></p>
<p>对于Google而言，其实工作负载并不仅仅只有搜索这一种，主要可以被分为三大类：</p>
<ul>
<li>本地交互：用于在用户本地为其提供基本的Google服务，比如网页搜索等，但会将内容的生成和管理工作移交给下面的内容交付系统，比如：生成搜索所需的Index等。通过本地交互，能让用户减少延迟，从而提高用户体验，而且其对SLA要求很高，因为是直接面对客户的。 </li>
<li>内容交付：用于为Google大多数服务提供内容的存储，生成和管理工作，比如创建搜索所需的Index，存储YouTube的视频和GMail的数据等，而且内容交互系统主要基于Google自己开发那套分布式软件栈。还有，这套系统非常重视吞吐量和成本，而不是SLA。 </li>
<li>关键业务：主要包括Google一些企业级事务，比如用于企业日常运行的客户管理和人力资源等系统和赚取利润的广告系统（AdWords和AdSense），同时关键业务对SLA的要求非常高。 </li>
</ul>
<p><strong>两类数据中心</strong></p>
<p>按照2008年数据，Google在全球有37个数据中心，其中19个在美国，12个在欧洲，3个在亚洲(北京、香港、东京)，另外3个分布于俄罗斯和南美。下图显示其中36个数据中心在全球的分布：</p>
<p><img class="mt-image-center" style="text-align: center; margin: 0px auto 20px; display: block;" src="http://www.dbanotes.net/Images/pingdom_google_map_worldwide.jpg" alt="pingdom_google_map_worldwide.jpg" width="450" height="222" /> 图1. 2008年Google全球数据中心分布图</p>
<p>根据 <a href="http://research.google.com/people/jeff/">Jeffrey Dean</a> 在2009年末的一次演讲和最近几期季报可以推测出Google并没有在2009年过多地增加全球数据中心的数量，总数应该还是稍多于36个，但很有可能在台湾、马来西亚、立陶宛等地增加新的数据中心。</p>
<p>虽然Google拥有数据中心数量很多，但是它们之间存在一定的差异，而且主要可以分为两类：其一是巨型数据中心，其二是大中型数据中心。</p>
<p><strong>巨型数据中心</strong>：服务器规模应该在十万台以上，常坐落于发电厂旁以获得更廉价的能源，主要用于Google内部服务，也就是内容交付服务，而且在设计方面主要关注成本和吞吐量，所以引入了大量的定制硬件和软件，来减低PUE并提升处理量，但其对SLA方面要求不是特别严厉，只要保证绝大部分时间可用即可。下图是Google巨型数据中心的一个代表，这个数据中心位于美国俄勒冈州北部哥伦比亚河畔的Dalles市，总占地面积接近30英亩，并占用了附近一个1.8GW水力发电站的大部分电力输出，当这个数据中心全部投入使用后，将消耗103兆瓦的电力，这相当于一个中小型城市的整个生活用电。</p>
<p><a href="http://www.dbanotes.net/Images/google%20DC.jpg"><img class="mt-image-center" style="text-align: center; margin: 0px auto 20px; display: block;" src="http://www.dbanotes.net/assets_c/2010/06/google%20DC-thumb-580x433-51.jpg" alt="google DC.jpg" width="580" height="433" /></a></p>
<p>图2. Google在美国俄勒冈州哥伦比亚河畔的巨型数据中心近景图</p>
<p><strong>大中型数据中心</strong>：服务器规模在千台至万台左右，可用于本地交互或者关键业务，在设计方面上非常重视延迟和高可用性，使得其坐落地点尽可能地接近用户而且采用了标准硬件和软件，比如Dell的服务器和MySQL的数据库等，常见的PUE大概在1.5和1.9之间。本来坐落于北京朝阳区酒仙桥附近的"世纪互联"机房的Google中国数据中心也属于大中型数据中心这类，其采用的硬件有DELL的工作站和Juniper的防火墙等，下图为其一角。</p>
<p><a href="http://www.dbanotes.net/Images/2008421124418.jpg"><img class="mt-image-center" style="text-align: center; margin: 0px auto 20px; display: block;" src="http://www.dbanotes.net/assets_c/2010/06/2008421124418-thumb-580x495-55.jpg" alt="2008421124418.jpg" width="580" height="495" /></a></p>
<p>图3. Google前中国数据中心的一角（参[26]）</p>
<p>关于两者的区别：具体请查看下表：</p>
</p>
<table border="1" cellspacing="0" cellpadding="2" width="420" align="center">
<tbody>
<tr>
<td width="141" valign="top"> </td>
<td width="139" valign="top">巨型数据中心</td>
<td width="140" valign="top">大中型数据中心</td>
</tr>
<tr>
<td width="141" valign="top">工作负载</td>
<td width="139" valign="top">内容交付</td>
<td width="140" valign="top">本地交互/关键业务</td>
</tr>
<tr>
<td width="141" valign="top">地点</td>
<td width="139" valign="top">离发电厂近</td>
<td width="140" valign="top">离用户近</td>
</tr>
<tr>
<td width="141" valign="top">设计特点</td>
<td width="139" valign="top">高吞吐，低成本</td>
<td width="140" valign="top">低延迟，高可用性</td>
</tr>
<tr>
<td width="141" valign="top">服务器定制化</td>
<td width="139" valign="top">多</td>
<td width="140" valign="top">少</td>
</tr>
<tr>
<td width="141" valign="top">SLA</td>
<td width="139" valign="top">普通</td>
<td width="140" valign="top">高</td>
</tr>
<tr>
<td width="141" valign="top">服务器数量</td>
<td width="139" valign="top">十万台以上</td>
<td width="140" valign="top">千台以上</td>
</tr>
<tr>
<td width="141" valign="top">数据中心数量</td>
<td width="139" valign="top">十个以内</td>
<td width="140" valign="top">几十个</td>
</tr>
<tr>
<td width="141" valign="top">PUE估值</td>
<td width="139" valign="top">1.2</td>
<td width="140" valign="top">1.5</td>
</tr>
</tbody>
</table>
<p>
<p>表1. 巨型与大中型数据中心的对比表</p>
<p><strong>总结</strong></p>
<p>最后，稍微总结一下，首先，普通的用户当访问Google服务时，大多会根据其请求的IP地址或者其所属的ISP将这个请求转发到用户本地的数据中心，如果本地数据中心无法处理这个请求，它很有可能将这个请求转发给远端的内容交互中心。其次，当广告客户想接入Google的广告系统时，这个请求会直接转发至其专业的关键业务数据中心来处理。</p>
<p><a href="http://www.dbanotes.net/Images/google%20architecture.PNG"><img class="mt-image-center" style="text-align: center; margin: 0px auto 20px; display: block;" src="http://www.dbanotes.net/assets_c/2010/06/google%20architecture-thumb-580x422-53.png" alt="google architecture.PNG" width="580" height="422" /></a></p>
<p>图4. 总结</p>
<p>因为本文是基于现有的公开资料和个人的经验的总结和猜想，所以和Google实际的运行情况没有任何联系。</p>
<p><br />作者: <strong><a href="http://peopleyun.com/">ikewu</a></strong><br />网址: <a class="permalink" href="http://www.dbanotes.net/arch/google_app_engine_arch_guess.html">http://www.dbanotes.net/arch/google_app_engine_arch_guess.html</a></p>
</p><br /> [<a href='http://www.w2blog.net/view/517.html'>点击查看详细</a>] ]]></description><pubDate>Thu, 10 Jun 2010 20:26:56 +0800</pubDate><comments>http://www.w2blog.net/view/517.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/517.xml</wfw:commentRSS></item><item><title>探索Google App Engine背后的奥秘(1)--Google的核心技术</title><link>http://www.w2blog.net/view/516.html</link><guid>http://www.w2blog.net/view/516.html</guid><description><![CDATA[<p>
<p>本系列文章基于公开资料对Google App Engine的实现机制这个话题进行深度探讨。在切入Google App  Engine之前，首先会对Google的核心技术和其整体架构进行分析，以帮助大家之后更好地理解Google App Engine的实现。</p>
<p>本篇将主要介绍Google的十个核心技术，而且可以分为四大类：</p>
<ul>
<li>分布式基础设施：GFS、Chubby 和 Protocol Buffer。 </li>
<li>分布式大规模数据处理：MapReduce 和 Sawzall。 </li>
<li>分布式数据库技术：BigTable 和数据库 Sharding。 </li>
<li>数据中心优化技术：数据中心高温化、12V电池和服务器整合。 </li>
</ul>
<br />
<h1>分布式基础设施</h1>
<p><strong>GFS</strong></p>
<p>由于搜索引擎需要处理海量的数据，所以Google的两位创始人Larry Page和Sergey  Brin在创业初期设计一套名为"BigFiles"的文件系统，而GFS（全称为"Google File  System"）这套分布式文件系统则是"BigFiles"的延续。</p>
<p>首先，介绍它的架构，GFS主要分为两类节点：</p>
<ul>
<li>Master节点：主要存储与数据文件相关的元数据，而不是Chunk（数据块）。元数据包括一个能将64位标签映射到数据块的位置及其组成文件的表格，数据块副本位置和哪个进程正在读写特定的数据块等。还有Master节点会周期性地接收从每个Chunk节点来的更新（"Heart-beat"）来让元数据保持最新状态。 </li>
<li>Chunk节点：顾名思义，肯定用来存储Chunk，数据文件通过被分割为每个默认大小为64MB的Chunk的方式存储，而且每个Chunk有唯一一个64位标签，并且每个Chunk都会在整个分布式系统被复制多次，默认为3次。 </li>
</ul>
<p>下图就是GFS的架构图：</p>
<p><a href="http://www.dbanotes.net/Images/Google-file-system.png"><img class="mt-image-center" style="text-align: center; margin: 0px auto 20px; display: block;" src="http://www.dbanotes.net/assets_c/2010/06/Google-file-system-thumb-600x269-42.png" alt="Google-file-system.png" width="580" height="260" /></a></p>
<p>图1. GFS的架构图（参片[15]）</p>
<p>接着，在设计上，GFS主要有八个特点：</p>
<ul>
<li>大文件和大数据块：数据文件的大小普遍在GB级别，而且其每个数据块默认大小为64MB，这样做的好处是减少了元数据的大小，能使Master节点能够非常方便地将元数据放置在内存中以提升访问效率。 </li>
<li>操作以添加为主：因为文件很少被删减或者覆盖，通常只是进行添加或者读取操作，这样能充分考虑到硬盘线性吞吐量大和随机读写慢的特点。 </li>
<li>支持容错：首先，虽然当时为了设计方便，采用了单Master的方案，但是整个系统会保证每个Master都会有其相对应的复制品，以便于在Master节点出现问题时进行切换。其次，在Chunk层，GFS已经在设计上将节点失败视为常态，所以能非常好地处理Chunk节点失效的问题。 </li>
<li>高吞吐量：虽然其单个节点的性能无论是从吞吐量还是延迟都很普通，但因为其支持上千的节点，所以总的数据吞吐量是非常惊人的。 </li>
<li>保护数据：首先，文件被分割成固定尺寸的数据块以便于保存，而且每个数据块都会被系统复制三份。 </li>
<li>扩展能力强：因为元数据偏小，使得一个Master节点能控制上千个存数据的Chunk节点。 </li>
<li>支持压缩：对于那些稍旧的文件，可以通过对它进行压缩，来节省硬盘空间，并且压缩率非常惊人，有时甚至接近90%。 </li>
<li>用户空间：虽然在用户空间运行在运行效率方面稍差，但是更便于开发和测试，还有能更好利用Linux的自带的一些POSIX API。 </li>
</ul>
<p>现在Google内部至少运行着200多个GFS集群，最大的集群有几千台服务器，并且服务于多个Google服务，比如Google搜索。但由于GFS主要为搜索而设计，所以不是很适合新的一些Google产品，比YouTube、Gmail和更强调大规模索引和实时性的Caffeine搜索引擎等，所以Google已经在开发下一代GFS，代号为"Colossus"，并且在设计方面有许多不同，比如：支持分布式Master节点来提升高可用性并能支撑更多文件，Chunk节点能支持1MB大小的chunk以支撑低延迟应用的需要。</p>
<p><strong>Chubby</strong></p>
<p>简单的来说，Chubby 属于分布式锁服务，通过  Chubby，一个分布式系统中的上千个client都能够对于某项资源进行"加锁"或者"解锁"，常用于BigTable的协作工作，在实现方面是通过对文件的创建操作来实现"加锁"，并基于著名科学家Leslie  Lamport的Paxos算法。</p>
<p><strong>Protocol Buffer</strong></p>
<p>Protocol Buffer，是Google内部使用一种语言中立、平台中立和可扩展的序列化结构化数据的方式，并提供 Java、C++ 和 Python  这三种语言的实现，每一种实现都包含了相应语言的编译器以及库文件，而且它是一种二进制的格式，所以其速度是使用 <acronym title="Extensible Markup Language">XML</acronym> 进行数据交换的10倍左右。它主要用于两个方面：其一是RPC通信，它可用于分布式应用之间或者异构环境下的通信。其二是数据存储方面，因为它自描述，而且压缩很方便，所以可用于对数据进行持久化，比如存储日志信息，并可被Map  Reduce程序处理。与Protocol Buffer比较类似的产品还有Facebook的 <a href="http://incubator.apache.org/thrift/">Thrift </a>，而且 Facebook  号称Thrift在速度上还有一定的优势。</p>
<h1>分布式大规模数据处理</h1>
<p><strong>MapReduce</strong></p>
<p>首先，在Google数据中心会有大规模数据需要处理，比如被网络爬虫（Web  Crawler）抓取的大量网页等。由于这些数据很多都是PB级别，导致处理工作不得不尽可能的并行化，而Google为了解决这个问题，引入了MapReduce这个编程模型，MapReduce是源自函数式语言，主要通过"Map（映射）"和"Reduce（化简）"这两个步骤来并行处理大规模的数据集。Map会先对由很多独立元素组成的逻辑列表中的每一个元素进行指定的操作，且原始列表不会被更改，会创建多个新的列表来保存Map的处理结果。也就意味着，Map操作是高度并行的。当Map工作完成之后，系统会先对新生成的多个列表进行清理（Shuffle）和排序，之后会这些新创建的列表进行Reduce操作，也就是对一个列表中的元素根据Key值进行适当的合并。</p>
<p>下图为MapReduce的运行机制：</p>
<p><a href="http://www.dbanotes.net/Images/Map%20Reduce.PNG"><img class="mt-image-none" src="http://www.dbanotes.net/assets_c/2010/06/Map%20Reduce-thumb-580x415-44.png" alt="Map Reduce.PNG" width="580" height="415" /></a></p>
<p>图2. MapReduce的运行机制（参[19]）</p>
<p>接下来，将根据上图来举一个MapReduce的例子：比如，通过搜索Spider将海量的Web页面抓取到本地的GFS集群中，然后Index系统将会对这个GFS集群中多个数据Chunk进行平行的Map处理，生成多个Key为URL，value为html页面的键值对（Key-Value  Map），接着系统会对这些刚生成的键值对进行Shuffle（清理），之后系统会通过Reduce操作来根据相同的key值（也就是URL）合并这些键值对。</p>
<p>最后，通过MapReduce这么简单的编程模型，不仅能用于处理大规模数据，而且能将很多繁琐的细节隐藏起来，比如自动并行化，负载均衡和机器宕机处理等，这样将极大地简化程序员的开发工作。MapReduce可用于包括"分布grep，分布排序，web访问日志分析，反向索引构建，文档聚类，机器学习，基于统计的机器翻译，生成Google的整个搜索的索引"等大规模数据处理工作。Yahoo也推出MapReduce的开源版本Hadoop，而且Hadoop在业界也已经被大规模使用。</p>
<p><strong>Sawzall</strong></p>
<p>Sawzall可以被认为是构建在MapReduce之上的采用类似Java语法的DSL（Domain-Specific  Language），也可以认为它是分布式的AWK。它主要用于对大规模分布式数据进行筛选和聚合等高级数据处理操作，在实现方面，是通过解释器将其转化为相对应的MapReduce任务。除了Google的Sawzall之外，yahoo推出了相似的Pig语言，但其语法类似于SQL。</p>
<h1>分布式数据库技术</h1>
<p><strong>BigTable</strong></p>
<p>由于在Google的数据中心存储PB级以上的非关系型数据时候，比如网页和地理数据等，为了更好地存储和利用这些数据，Google开发了一套数据库系统，名为"BigTable"。BigTable不是一个关系型的数据库，它也不支持关联（Join）等高级SQL操作，取而代之的是多级映射的数据结构，并是一种面向大规模处理、容错性强的自我管理系统，拥有TB级的内存和PB级的存储能力，使用结构化的文件来存储数据，并每秒可以处理数百万的读写操作。</p>
<p>什么是多级映射的数据结构呢？就是一个稀疏的，多维的，排序的Map，每个Cell由行关键字，列关键字和时间戳三维定位．Cell的内容是一个不解释的字符串，比如下表存储每个网站的内容与被其他网站的反向连接的文本。  反向的URL com.cnn.www是这行的关键字；contents列存储网页内容，每个内容有一个时间戳，因为有两个反向连接，所以archor的Column  Family有两列：anchor: cnnsi.com和anchhor:my.look.ca。Column  Family这个概念，使得表可以轻松地横向扩展。下面是它具体的数据模型图：</p>
<p><a href="http://www.dbanotes.net/Images/Big%20Table%20Model.PNG"><img class="mt-image-none" src="http://www.dbanotes.net/assets_c/2010/06/Big%20Table%20Model-thumb-580x132-46.png" alt="Big Table Model.PNG" width="580" height="132" /></a></p>
<p>图3. BigTable数据模型图（参[4]）</p>
<p>在结构上，首先，BigTable基于GFS分布式文件系统和Chubby分布式锁服务。其次BigTable也分为两部分：其一是Master节点，用来处理元数据相关的操作并支持负载均衡。其二是tablet节点，主要用于存储数据库的分片tablet，并提供相应的数据访问，同时Tablet是基于名为SSTable的格式，对压缩有很好的支持。</p>
<p><a href="http://www.dbanotes.net/Images/BigTable.PNG"><img class="mt-image-center" style="text-align: center; margin: 0px auto 20px; display: block;" src="http://www.dbanotes.net/assets_c/2010/06/BigTable-thumb-580x335-48.png" alt="BigTable.PNG" width="580" height="335" /></a></p>
<p>图4. BigTable架构图（参[15]）</p>
<p>BigTable正在为Google六十多种产品和项目提供存储和获取结构化数据的支撑平台，其中包括有Google Print、 Orkut、Google  Maps、Google Earth和Blogger等，而且Google至少运行着500个BigTable集群。</p>
<p>随着Google内部服务对需求的不断提高和技术的不断地发展，导致原先的BigTable已经无法满足用户的需求，而Google也正在开发下一代BigTable，名为"Spanner（扳手）"，它主要有下面这些BigTable所无法支持的特性：</p>
<ul>
<li>支持多种数据结构，比如table，familie，group和coprocessor等。 </li>
<li>基于分层目录和行的细粒度的复制和权限管理。 </li>
<li>支持跨数据中心的强一致性和弱一致性控制。 </li>
<li>基于Paxos算法的强一致性副本同步，并支持分布式事务。 </li>
<li>提供许多自动化操作。 </li>
<li>强大的扩展能力，能支持百万台服务器级别的集群。 </li>
<li>用户可以自定义诸如延迟和复制次数等重要参数以适应不同的需求。 </li>
</ul>
<p><strong>数据库Sharding</strong></p>
<p>Sharding就是分片的意思，虽然非关系型数据库比如BigTable在Google的世界中占有非常重要的地位，但是面对传统OLTP应用，比如广告系统，Google还是采用传统的关系型数据库技术，也就是MySQL，同时由于Google所需要面对流量非常巨大，所以Google在数据库层采用了分片（Sharding）的水平扩展（Scale  Out）解决方案，分片是在传统垂直扩展（Scale  Up）的分区模式上的一种提升，主要通过时间，范围和面向服务等方式来将一个大型的数据库分成多片，并且这些数据片可以跨越多个数据库和服务器来实现水平扩展。</p>
<p>Google整套数据库分片技术主要有下面这些优点：</p>
<ul>
<li>扩展性强：在Google生产环境中，已经有支持上千台服务器的MySQL分片集群。 </li>
<li>吞吐量惊人：通过巨大的MySQL分片集群能满足巨量的查询请求。 </li>
<li>全球备份：不仅在一个数据中心还是在全球的范围，Google都会对MySQL的分片数据进行备份，这样不仅能保护数据，而且方便扩展。 </li>
</ul>
<p>在实现方面，主要可分为两块：其一是在MySQL  InnoDB基础上添加了数据库分片的技术。其二是在ORM层的Hibernate的基础上也添加了相关的分片技术，并支持虚拟分片（Virtual  Shard）来便于开发和管理。同时Google也已经将这两方面的代码提交给相关组织。</p>
<h1>数据中心优化技术</h1>
<p><strong>数据中心高温化</strong></p>
<p>大中型数据中心的PUE（Power Usage  Effectiveness）普遍在2左右，也就是在服务器等计算设备上耗1度电，在空调等辅助设备上也要消耗一度电。对一些非常出色的数据中心，最多也就能达到1.7，但是Google通过一些有效的设计使部分数据中心到达了业界领先的1.2，在这些设计当中，其中最有特色的莫过于数据中心高温化，也就是让数据中心内的计算设备运行在偏高的温度下，Google的能源方面的总监Erik  Teetzel在谈到这点的时候说："普通的数据中心在70华氏度（21摄氏度）下面工作，而我们则推荐80华氏度（27摄氏度）"。但是在提高数据中心的温度方面会有两个常见的限制条件：其一是服务器设备的崩溃点，其二是精确的温度控制。如果做好这两点，数据中心就能够在高温下工作，因为假设数据中心的管理员能对数据中心的温度进行正负1/2度的调节，这将使服务器设备能在崩溃点5度之内工作，而不是常见的20度之内，这样既经济，又安全。还有，业界传言Intel为Google提供抗高温设计的定制芯片，但云计算界的顶级专家James  Hamilton认为不太可能，因为虽然处理器也非常惧怕热量，但是与内存和硬盘相比还是强很多，所以处理器在抗高温设计中并不是一个核心因素。同时他也非常支持使数据中心高温化这个想法，而且期望将来数据中心甚至能运行在40摄氏度下，这样不仅能节省空调方面的成本，而且对环境也很有利。</p>
<p><strong>12V电池</strong></p>
<p>由于传统的UPS在资源方面比较浪费，所以Google在这方面另辟蹊径，采用了给每台服务器配一个专用的12V电池的做法来替换了常用的UPS，如果主电源系统出现故障，将由该电池负责对服务器供电。虽然大型UPS可以达到92%到95%的效率，但是比起内置电池的99.99%而言是非常捉襟见肘的，而且由于能量守恒的原因，导致那么未被UPS充分利用的电力会被转化成热能，这将导致用于空调的能耗相应地攀升，从而走入一个恶性循环。同时在电源方面也有类似的"神来之笔"，普通的服务器电源会同时提供5V和12V的直流电。但是Google设计的服务器电源只输出12V直流电，必要的转换在主板上进行，虽然这种设计会使主板的成本增加1美元到2美元，但是它不仅能使电源能在接近其峰值容量的情况下运行，而且在铜线上传输电流时效率更高。</p>
<p><strong>服务器整合</strong></p>
<p>谈到虚拟化的杀手锏时，第一个让人想到肯定是服务器整合，而且普遍能实现1:8的整合率来降低各方面的成本。有趣的是，Google在硬件方面也引入类似服务器整合的想法，它的做法是在一个机箱大小的空间内放置两台服务器，这些做的好处有很多，首先，减小了占地面积。其次，通过让两台服务器共享诸如电源等设备，来降低设备和能源等方面的投入。</p>
<p>作者: <strong><a href="http://peopleyun.com/">ikewu</a></strong><br />网址: <a class="permalink" href="http://www.dbanotes.net/arch/google_app_engine_arch_1.html">http://www.dbanotes.net/arch/google_app_engine_arch_1.html</a></p>
</p><br /> [<a href='http://www.w2blog.net/view/516.html'>点击查看详细</a>] ]]></description><pubDate>Thu, 10 Jun 2010 20:00:36 +0800</pubDate><comments>http://www.w2blog.net/view/516.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/516.xml</wfw:commentRSS></item><item><title>阿凡达(Avatar) - 2009</title><link>http://www.w2blog.net/view/515.html</link><guid>http://www.w2blog.net/view/515.html</guid><description><![CDATA[<p>
<div style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; margin: 8px;">
<p> </p>
<h2 style="font-size: 1.5em;">剧情简介 · · · · · ·</h2>
<div class="indent"><span class="all hidden" style="display: inline;"> 战斗中负伤而下身瘫痪的前海军战士杰克•萨利（萨姆•沃辛顿 Sam Worthington 饰）决定替死去的同胞哥哥来到潘多拉星操纵格蕾丝博士（西格妮•韦弗 Sigourney Weaver 饰）用人类基因与当地纳美部族基因结合创造出的 “阿凡达” 混血生物。杰克的目的是打入纳美部落，外交说服他们自愿离开世代居住的家园，从而SecFor公司可砍伐殆尽该地区的原始森林，开采地下昂贵的“不可得”矿。在探索潘多拉星的过程中，杰克遇到了纳美部落的公主娜蒂瑞（佐伊•索尔达娜 Zoe Saldana 饰），向她学习了纳美人的生存技能与对待自然的态度。与此同时，SecFor公司的经理和军方代表上校迈尔斯（史蒂芬•朗 Stephen Lang 饰）逐渐丧失耐心，决定诉诸武力驱赶纳美人……<br /> 本片采用3D技术拍摄，共耗资5亿美元制作发行，是电影史上最为昂贵的作品。本片荣获第82届奥斯卡最佳摄影、最佳视觉效果、最佳艺术指导等3项大奖。</span></div>
<div class="indent"></div>
<div class="indent"><span class="all hidden" style="display: inline;">幕后花絮<br /> 曾凭借《泰坦尼克号》创造过惊世票房记录的好莱坞重量级导演詹姆斯·卡梅隆，经过了14年的酝酿，耗资3亿美元(约合人民币20亿元)，历时四年拍制的科幻巨献《阿凡达》<br /> 詹姆斯·卡梅隆曾在1997年以《泰坦尼克》创下获颁11项奥斯卡奖(包括最佳影片)以及所有影音产品席卷全球35亿美金的历史纪录。 而他之前的每一部作品，总是以开拓者精神憾动业界也吸引无数的影迷，从《终结者1》、《异形》、《真实的谎言》、《终结者2》到《泰坦尼克》空前的11项奥斯卡奖，无不以耳目一新的创作掀起高关注度的话题。<br />实际上，《阿凡达》(AVATAR)也是今年好莱坞最重要的一部电影，无论在技术上，还是投入上，都将史无前例。该片于12月18日全美公映。<br /> 导演詹姆斯·卡梅隆在执导名作《泰坦尼克号》之后，认为精进的电影工业技术与特效，只是运用来使一个原本就精采的剧情更引人入胜，单靠特效无法成就一部好电影。因此，他花费14年时间审慎构思，投注2亿美元，以亲自研发的3D虚拟影像撷取摄影科技（Fusion 3D），耗时4年的时间拍摄《阿凡达》。奥斯卡奖金牌制片人乔恩·兰道及金奖配乐大师詹姆斯·霍纳也继《泰坦尼克号》之后再度与詹姆斯·卡梅隆携手。<br /> 如今，历经4年的拍摄创作，《阿凡达》将带给观众全新的观影体验，这是一部运用创新技术创作，关注人物之间的情感，彰显故事情节的影片。</span></div>
<div class="indent"></div>
<div class="indent"></div>
<div class="indent">资源：</div>
<div class="indent"><a href="http://movie.douban.com/subject/1652587/" target="_blank">http://movie.douban.com/subject/1652587/</a></div>
<div class="indent"><a href="http://www.verycd.com/search/folders?field=&kw=%E9%98%BF%E5%87%A1%E8%BE%BE&rev=true&q=&from=&c2=0&range=&catalog=%E7%94%B5%E5%BD%B1&status=all&status=x&sort=" target="_blank">http://www.verycd.com/search/folders?field=&kw=%E9%98%BF%E5%87%A1%E8%BE%BE&rev=true&q=&from=&c2=0&range=&catalog=%E7%94%B5%E5%BD%B1&status=all&status=x&sort=</a></div>
<div class="indent"><a href="http://www.mtime.com/movie/45997/" target="_blank">http://www.mtime.com/movie/45997/</a></div>
<p> </p>
</div>
</p><br /> [<a href='http://www.w2blog.net/view/515.html'>点击查看详细</a>] ]]></description><pubDate>Thu, 10 Jun 2010 19:58:09 +0800</pubDate><comments>http://www.w2blog.net/view/515.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/515.xml</wfw:commentRSS></item><item><title>前端优化中的Javascript脚本加载测试(一)</title><link>http://www.w2blog.net/view/514.html</link><guid>http://www.w2blog.net/view/514.html</guid><description><![CDATA[<p>Normal Script Src - 前端优化中的Javascript脚本加载测试</p>
<p><a href="../download/javascript-load-optimization/normal-script-src.html" target="_blank">http://www.w2blog.net/download/javascript-load-optimization/normal-script-src.html</a></p>
<p><br />结果：</p>
<p>
<p>并行下载脚本 IE/Chr/Op/FF</p>
<p>并行下载其他资源 IE/Chr/FF</p>
<p>保持顺序 Op/FF</p>
<p>忙指示器 Chr/FF</p>
<p>阻塞渲染 Op</p>
<p>阻塞onload Op/FF</p>
<p>更多反馈，请联系eason007<eason007#gmail.com>，把#号换成@号</p>
<p><br />测试平台：</p>
<p><col style="mso-width-source: userset; mso-width-alt: 2528; width: 59pt;" width="79"></col> 
<tr style="height: 27.0pt;" height="36">
<td class="xl63" style="height: 27.0pt; width: 59pt;" width="79" height="36">win7 旗舰版32位</td>
</tr>
<tr style="height: 27.0pt;" height="36">
<td class="xl63" style="height: 27.0pt; width: 59pt;" width="79" height="36">xhtml1-trict</td>
</tr>
<tr style="height: 27.0pt;" height="36">
<td class="xl63" style="height: 27.0pt; width: 59pt;" width="79" height="36">IE8</td>
</tr>
<tr style="height: 27.0pt;" height="36">
<td class="xl63" style="height: 27.0pt; width: 59pt;" width="79" height="36">Chr   6.0.401.1</td>
</tr>
<tr style="height: 27.0pt;" height="36">
<td class="xl63" style="height: 27.0pt; width: 59pt;" width="79" height="36">Op 10.54</td>
</tr>
<tr style="height: 13.5pt;" height="18">
<td class="xl63" style="height: 13.5pt; width: 59pt;" width="79" height="18">FF 3.6.4</td>
</tr>
</p>
</p><br /> [<a href='http://www.w2blog.net/view/514.html'>点击查看详细</a>] ]]></description><pubDate>Tue, 01 Jun 2010 00:21:32 +0800</pubDate><comments>http://www.w2blog.net/view/514.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/514.xml</wfw:commentRSS></item><item><title>INSERT INTO .. ON DUPLICATE KEY更新多行记录</title><link>http://www.w2blog.net/view/513.html</link><guid>http://www.w2blog.net/view/513.html</guid><description><![CDATA[<p>
<p>如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE，并且插入行后会导致在一个UNIQUE索引或PRIMARY  KEY中出现重复值，则执行旧行UPDATE；如果不会导致唯一值列重复的问题，则插入新行。例如，如果列a被定义为UNIQUE，并且包含值1，则以下两个语句具有相同的效果：</p>
<div id="highlighter_736400" class="syntaxhighlighter ">
<div class="bar                    ">
<div class="toolbar"><code class="number">1.</code><span class="content"><span class="block" style="margin-left: 0px !important;"><code class="keyword">INSERT</code> <code class="keyword">INTO</code> <code class="keyword">table</code> <code class="plain">(a,b,c) </code><code class="keyword">VALUES</code> <code class="plain">(1,2,3) </code><code class="keyword">ON</code> <code class="plain">DUPLICATE </code><code class="keyword">KEY</code> <code class="keyword">UPDATE</code> <code class="plain">c=c+1;</code></span></span></div>
</div>
<div class="lines">
<div class="line alt2"><code class="number">2.</code><span class="content"><code class="spaces"> </code><span class="block" style="margin-left: 8px !important;"> </span></span></div>
<div class="line alt1"><code class="number">3.</code><span class="content"><span class="block" style="margin-left: 0px !important;"><code class="keyword">UPDATE</code> <code class="keyword">table</code> <code class="keyword">SET</code> <code class="plain">c=c+1 </code><code class="keyword">WHERE</code> <code class="plain">a=1;</code></span></span></div>
</div>
</div>
<p>     如果行作为新记录被插入，则受影响行的值为1；如果原有的记录被更新，则受影响行的值为2。</p>
<p>     如果你想了解更多关于INSERT INTO .. ON DUPLICATE KEY的功能说明，详见MySQL参考文档：<a title="INSERT语法" href="http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#insert">13.2.4.  INSERT语法</a></p>
<p> </p>
<hr />
<p> </p>
<p>     现在问题来了，如果INSERT多行记录， ON DUPLICATE KEY  UPDATE后面字段的值怎么指定？要知道一条INSERT语句中只能有一个ON DUPLICATE KEY  UPDATE，到底他会更新一行记录，还是更新所有需要更新的行。这个问题困扰了我很久了，其实使用VALUES()函数一切问题都解决了。</p>
<p>     举个例子，字段a被定义为UNIQUE，并且原数据库表table中已存在记录(2,2,9)和(3,2,1)，如果插入记录的a值与原有记录重复，则更新原有记录，否则插入新行：</p>
<div id="highlighter_771459" class="syntaxhighlighter ">
<div class="bar              ">
<div class="toolbar"><code class="number">1.</code><span class="content"><span class="block" style="margin-left: 0px !important;"><code class="keyword">INSERT</code> <code class="keyword">INTO</code> <code class="keyword">table</code> <code class="plain">(a,b,c) </code><code class="keyword">VALUES</code></span></span></div>
</div>
<div class="lines">
<div class="line alt2"><code class="number">2.</code><span class="content"><span class="block" style="margin-left: 0px !important;"><code class="plain">(1,2,3), </code></span></span></div>
<div class="line alt1"><code class="number">3.</code><span class="content"><span class="block" style="margin-left: 0px !important;"><code class="plain">(2,5,7), </code></span></span></div>
<div class="line alt2"><code class="number">4.</code><span class="content"><span class="block" style="margin-left: 0px !important;"><code class="plain">(3,3,6), </code></span></span></div>
<div class="line alt1"><code class="number">5.</code><span class="content"><span class="block" style="margin-left: 0px !important;"><code class="plain">(4,8,2), </code></span></span></div>
<div class="line alt2"><code class="number">6.</code><span class="content"><span class="block" style="margin-left: 0px !important;"><code class="keyword">ON</code> <code class="plain">DUPLICATE </code><code class="keyword">KEY</code> <code class="keyword">UPDATE</code> <code class="plain">b=</code><code class="keyword">VALUES</code><code class="plain">(b);</code></span></span></div>
</div>
</div>
<p>     以上SQL语句的执行，发现(2,5,7)中的a与原有记录(2,2,9)发生唯一值冲突，则执行ON DUPLICATE KEY  UPDATE，将原有记录(2,2,9)更新成(2,5,9)，将(3,2,1)更新成(3,3,1)，插入新记录(1,2,3)和(4,8,2)</p>
<p>     注意：ON DUPLICATE KEY UPDATE只是MySQL的特有语法，并不是SQL标准语法！</p>
</p><br /> [<a href='http://www.w2blog.net/view/513.html'>点击查看详细</a>] ]]></description><pubDate>Thu, 27 May 2010 14:20:30 +0800</pubDate><comments>http://www.w2blog.net/view/513.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/513.xml</wfw:commentRSS></item><item><title>powerdesigner 12 逆向工程mysql 5.0 数据库</title><link>http://www.w2blog.net/view/512.html</link><guid>http://www.w2blog.net/view/512.html</guid><description><![CDATA[<p>
<p style="text-align: left;"><span style="color: #0000ff;">传说中，程序员们喜欢用powerDesign进行数据库建模。通常都是先设计出物理模型图，在转换出数据库需要的SQL语句，从而生成数据库。<br />但，江湖中流传着“powerDesign逆向工程”的传说。好，我们今天就来利用PowerDesign来建立逆向工程。</span></p>
<p><span style="color: #0000ff;">基于MySql 5.0  的数据库，PowerDesigner12.主要分为这几个步骤。</span></p>
<p><span style="color: #0000ff;">1> 通过windows数据源管理，建立ODBC数据源。</span></p>
<ul>
<li><span style="color: #0000ff;">首先，安装ODBC的补丁。</span></li>
<li><span style="color: #0000ff;">这里是mySql 3.5.1 和  mySql5.1.5的补丁文件。使用他们进行安装。</span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106474/61aadd50-6196-3a25-8b47-36f08f2064b9.jpg" alt="" /><img src="http://www.javaeye.com/upload/attachment/106476/acf84f5b-c102-3181-bdf2-ef55a27fe77c.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">打开Windows的控制面板</span></li>
<li><span style="color: #0000ff;">打开管理工具</span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106478/1bfaf22e-fa09-3eea-bf70-3b361b9dcb83.jpg" alt="" width="310" height="143" /></span></p>
<ul>
<li><span style="color: #0000ff;">打开数据源(ODBC)</span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106480/957572cb-eb15-3d18-8987-004c82daa74e.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">选择你要操作的数据库类型</span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106482/1a98337f-e673-3cd7-b347-607e23aa3470.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">输入数据库参数，并测试连接</span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106484/c3294130-b587-3ad1-bffd-a91f6d03a227.jpg" alt="" /><br /> <br />2>  通过powerDesigner使用ODBC数据源，建立PowerDesigner的数据源。</span></p>
<ul>
<li><span style="color: #0000ff;">新建物理模型.</span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img class="magplus" title="点击查看原始大小图片" src="http://www.javaeye.com/upload/attachment/106486/fa3dc689-3e7d-3148-9677-9872b6e0e7e7.jpg" alt="" width="760" height="439" /></span></p>
<ul>
<li><span style="color: #0000ff;">选择数据库(DataBase)---连接（Connect）。</span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"> <img src="http://www.javaeye.com/upload/attachment/106487/2c090536-fb5d-3641-a336-da0b66e44548.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">选择已经配置好的ODBC数据源。 </span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106490/4c350f7c-a1b7-31bb-9b47-3604fb1b57b5.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">输入登录数据库的【用户名】和【密码】。</span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"> <img src="http://www.javaeye.com/upload/attachment/106492/fbb3deac-7d0d-3f9d-be19-bfc26d06b1ce.jpg" alt="" /><br />2> 使用PowerDesigner进行逆向工程。</span></p>
<ul>
<li><span style="color: #0000ff;">选择 DataBase----Reverse Engineer  Database。 </span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106494/aa76dc27-ece5-3229-91e2-2bd8a91e937f.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">使用已经配置好的数据源。 </span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106496/90f1b613-a002-377a-8665-0409e4ddba60.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">选择你感兴趣的内容。 </span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106500/6c6ee624-9e3c-3104-8cd9-21b6efe29143.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">生成物理模型。 </span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img class="magplus" title="点击查看原始大小图片" src="http://www.javaeye.com/upload/attachment/106502/5b222322-55f6-3f5e-949f-656c3acfd0e5.jpg" alt="" width="760" height="415" /></span></p>
<ul>
<li><span style="color: #0000ff;">我们稍做等待，我出现了我们需要的数据模型。如下图： </span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img src="http://www.javaeye.com/upload/attachment/106504/b71a6b57-bf73-3fe5-b50c-4bfdce7a04c0.jpg" alt="" /></span></p>
<ul>
<li><span style="color: #0000ff;">放大后 </span></li>
</ul>
<p style="text-align: center;"><span style="color: #0000ff;"><img class="magplus" title="点击查看原始大小图片" src="http://www.javaeye.com/upload/attachment/106506/37ec3c2f-e926-38e0-8a42-ba36be84e9b0.jpg" alt="" width="760" height="280" /></span></p>
<p><span style="color: #0000ff;">到这里，我们的逆向工程，就完成了。</span></p>
</p><br /> [<a href='http://www.w2blog.net/view/512.html'>点击查看详细</a>] ]]></description><pubDate>Wed, 26 May 2010 17:59:24 +0800</pubDate><comments>http://www.w2blog.net/view/512.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/512.xml</wfw:commentRSS></item><item><title>情圣(The Magnificent Scoundrels) - 1991</title><link>http://www.w2blog.net/view/511.html</link><guid>http://www.w2blog.net/view/511.html</guid><description><![CDATA[<p><strong><span style="line-height: 100%; font-size: 14pt;">剧情简介<!--sizec--></span><!--/sizec--></strong> <br /> 周星驰在片中不扮赌圣而扮情圣，但说穿了其实仍是老千一名，从光头师父那里学得一套行骗心法到处占人便宜，偶然碰到毛舜筠被地下钱庄的贵利王追债毒打而出手相救，不料因此背上巨债，两人只好潜入豪宅发财。恰好老光棍午马亦潜入同一豪宅偷取古董，误以为周是富翁的侄子，乃找同伙合力向他骗钱。周则将计就计反骗他们，最后却发现大家都欠下贵利王的巨债，于是合力对抗……<br /><br /><strong><span style="line-height: 100%; font-size: 14pt;">影片点评<!--sizec--></span><!--/sizec--></strong><br /> 本片融合了七八十年代末的功夫喜剧与周星驰喜剧的特点，充分的展现出他那种无厘头式的搞笑风格，并为此后数年里周星驰与李力持的合作奠定了基础。</p>
<p><br />资源：</p>
<p><a href="http://movie.douban.com/subject/1307747/" target="_blank">http://movie.douban.com/subject/1307747/</a></p>
<p><a href="http://www.verycd.com/topics/255549/" target="_blank">http://www.verycd.com/topics/255549/</a></p>
<p><a href="http://www.mtime.com/movie/15817/" target="_blank">http://www.mtime.com/movie/15817/</a></p><br /> [<a href='http://www.w2blog.net/view/511.html'>点击查看详细</a>] ]]></description><pubDate>Sat, 15 May 2010 09:03:39 +0800</pubDate><comments>http://www.w2blog.net/view/511.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/511.xml</wfw:commentRSS></item><item><title>千王之王2000(The Tricky Master) - 1999</title><link>http://www.w2blog.net/view/510.html</link><guid>http://www.w2blog.net/view/510.html</guid><description><![CDATA[<p>
<h2>剧情</h2>
<div class="ml15 lh18 mr15">
<p>梁宽多次担任卧底警员，心生倦怠之时，长官派他调查大老千法拉利。不料，还没找到法的犯罪证据，反而先落入法的美人计陷阱中，差点丢了工作。宽女友Pizza的姐夫是人称「千王之王」的黄师虎，宽为向法报仇，决定拜黄为师。</p>
<p>某天黄受邀到法家作客，两人订下赌局一决胜负。香港三大富豪失踪，股市一片混乱。黄夜探法家之时被法囚禁，赌局当天梁只有代黄上场，赌桌上梁频频耍无赖，眼看结束时间渐渐逼近，Pizza和...</p>
</div>
<!-- 幕后花絮 -->
<h2>幕后花絮</h2>
<div class="ml15 lh18 mr15">
<p>张家辉在学校扮卧底，傻人有傻福，救了富家千金，坠入美人计陷阱，中王晶设的局，被迫到澳门请出大老千周星驰，为其报仇。片中周星驰只能算是“客串主演”，评论对周在此片的表演颇有微词。张家辉以夸张，硬滑稽生动地完成半傻半憨的角色，表情常似笑非笑，似惊不惊，颇为趣怪，是真正的主角。</p>
<p><br />资源：</p>
<p><a href="http://movie.douban.com/subject/1304677/" target="_blank">http://movie.douban.com/subject/1304677/</a></p>
<p><a href="http://www.verycd.com/topics/150814/" target="_blank">http://www.verycd.com/topics/150814/</a></p>
<p><a href="http://www.mtime.com/movie/13709/" target="_blank">http://www.mtime.com/movie/13709/</a></p>
</div>
</p><br /> [<a href='http://www.w2blog.net/view/510.html'>点击查看详细</a>] ]]></description><pubDate>Thu, 13 May 2010 00:38:50 +0800</pubDate><comments>http://www.w2blog.net/view/510.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/510.xml</wfw:commentRSS></item><item><title>破坏之王(Poh waai ji wong) - 1994</title><link>http://www.w2blog.net/view/509.html</link><guid>http://www.w2blog.net/view/509.html</guid><description><![CDATA[<p>
<h2>剧情简介 · · · · · ·</h2>
<div class="indent">快餐店打工仔阿银（周星驰）某日送快餐时邂逅正在武术训练馆学习日本空手道的阿丽（钟丽缇），对其一见钟情。遭遇同样喜欢阿缇的武馆教练林国斌的羞辱后，自觉太弱小的阿银决定拜自称为“魔鬼筋肉人”的达叔（吴孟达）为师，达叔一开始只想骗取阿银的钱财，终被其善良和执着打动，开始教授其中国古拳法。<br /> 阿丽遇坏人拦截，阿银头戴加菲猫面具出手相救，情急之下从高台上抱着歹徒滚下，却由此创出了“无敌风火轮”，不料事后被林国斌领功。为了证实自己的实力，阿银报名参加了搏击比赛与林国斌决斗，想借此再赢阿丽芳心。</div>
<div class="indent"></div>
<div class="indent"></div>
<div class="indent">资源：</div>
<div class="indent"></div>
<div class="indent"><a href="http://movie.douban.com/subject/1299745/" target="_blank">http://movie.douban.com/subject/1299745/</a></div>
<div class="indent"></div>
<div class="indent"><a href="http://www.verycd.com/topics/148200/" target="_blank">http://www.verycd.com/topics/148200/</a></div>
<div class="indent"></div>
<div class="indent"><a href="http://www.mtime.com/movie/13224/" target="_blank">http://www.mtime.com/movie/13224/</a></div>
</p><br /> [<a href='http://www.w2blog.net/view/509.html'>点击查看详细</a>] ]]></description><pubDate>Mon, 10 May 2010 22:48:20 +0800</pubDate><comments>http://www.w2blog.net/view/509.html#Feedback</comments><wfw:commentRSS>http://www.w2blog.net/feedback/509.xml</wfw:commentRSS></item></channel></rss>
