<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-8446367956866011875</atom:id><lastBuildDate>Fri, 07 Aug 2009 06:12:29 +0000</lastBuildDate><title>窄多之Blog</title><description>网站，互联网，旅行 - 2009未来：浏览器化，标准化，框架化，三维化</description><link>http://www.zhaiduo.com/</link><managingEditor>zhaiduo@gmail.com (Adam)</managingEditor><generator>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-7494777026606976925</guid><pubDate>Fri, 07 Aug 2009 06:01:00 +0000</pubDate><atom:updated>2009-08-07T14:12:29.969+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Google</category><title>用Google Docs快速创建联系表单</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.zhaiduo.com/uploaded_images/13-741803.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 268px; height: 368px;" src="http://www.zhaiduo.com/uploaded_images/13-741801.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="https://docs.google.com"&gt;Google Docs&lt;/a&gt;有一个创建网页表单的功能，非常好用，它可以轻松创建一个自定义的表单页面，然后搜集提交的表单内容到一个spreadsheet文档。这样即使对于不懂HTML，不懂编写网页的人，也可轻松的创建一个“&lt;a href="https://spreadsheets.google.com/viewform?formkey=dGJmODM2NTJCY0FEMm9DS29VZUQ5UVE6MA.."&gt;联系我们&lt;/a&gt;”的页面。很好，很强大～！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-7494777026606976925?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/08/google-docs.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-2925541941204281721</guid><pubDate>Fri, 24 Jul 2009 08:53:00 +0000</pubDate><atom:updated>2009-07-24T17:02:57.087+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>PHP</category><category domain='http://www.blogger.com/atom/ns#'>升级</category><title>PHP5.3.0==deprecated ^_^!</title><description>今天把内容管理系统升级,PHP升到5.3.0-windows-VC6版本，Apache升到2.2.11，Mysql升到5.1。安装过程很顺利，可是装好后，通过浏览器访问就一片混乱了，真是抓狂！&lt;br /&gt;&lt;br /&gt;主要原因是5.3放弃了一些常用的函数：&lt;br /&gt;&lt;br /&gt;ereg_replace() is deprecated&lt;br /&gt; All ereg*-functions will be deprecated&lt;br /&gt;split() is deprecated&lt;br /&gt; All POSIX Regex function will be deprecated in PHP 5.3. &lt;br /&gt;set_magic_quotes_runtime() is deprecated&lt;br /&gt;mysql_escape_string() is deprecated&lt;br /&gt;session_register(), session_unregister(), and session_is_registered() are now deprecated. &lt;br /&gt; Use the $_SESSION superglobal array instead.&lt;br /&gt;&lt;br /&gt;更多放弃和更新可以看这里：&lt;a href="http://cvs.php.net/viewvc.cgi/php-src/UPGRADING?revision=PHP_5_3"&gt;http://cvs.php.net/viewvc.cgi/php-src/UPGRADING?revision=PHP_5_3&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-2925541941204281721?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/07/php530deprecated.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-3031165874142452597</guid><pubDate>Thu, 23 Jul 2009 16:07:00 +0000</pubDate><atom:updated>2009-07-24T00:20:43.674+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Apache</category><category domain='http://www.blogger.com/atom/ns#'>VC</category><category domain='http://www.blogger.com/atom/ns#'>SVN</category><title>Windows下快速安装Subversion的Apache服务器</title><description>PHP宣布使用&lt;a href="http://subversion.tigris.org/faq.zh.html"&gt;Subversion&lt;/a&gt;作为新的版本控制系统。&lt;br /&gt;相对于CVS而言，它主要有如下特点：&lt;br /&gt;1.支持目录的版本化，复制、删除和改名操作。&lt;br /&gt;2.仓库基于BerkleyDB数据库，具有更快的操作速度。&lt;br /&gt;3.更加方便高效地存储任何文件，包括二进制和Unicode文件。&lt;br /&gt;4.非常容易维护，和其它语言的互操作性很强。&lt;br /&gt;也可以说Subversion是基于CVS的新一代版本控制系统。&lt;br /&gt;&lt;br /&gt;Windows下快速安装Subversion的Apache服务器步骤如下：&lt;br /&gt;&lt;br /&gt;下载Subversion 1.5.6&lt;br /&gt;http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&lt;br /&gt;http://subversion.tigris.org/files/documents/15/45937/Setup-Subversion-1.5.6.msi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;下载Tortoisesvn 1.6.3&lt;br /&gt;http://tortoisesvn.net/downloads&lt;br /&gt;http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.6.3.16613-win32-svn-1.6.3.msi?download&lt;br /&gt;&lt;br /&gt;下载Apache HTTP Server 2.2.11&lt;br /&gt;http://httpd.apache.org/download.cgi&lt;br /&gt;&lt;br /&gt;分别在服务器端安装好Subversion和在客户端安装Tortoisesvn，然后在服务器端编辑Apache配置文件：&lt;br /&gt;httpd.conf&lt;br /&gt;&lt;br /&gt;取消注释&lt;br /&gt;LoadModule dav_module modules/mod_dav.so&lt;br /&gt;LoadModule dav_fs_module modules/mod_dav_fs.so&lt;br /&gt;&lt;br /&gt;在Subversion的bin目录下复制mod_dav_svn.so和mod_authz_svn.so到Apache的modules目录，在模块配置后面增加&lt;br /&gt;LoadModule dav_svn_module modules/mod_dav_svn.so&lt;br /&gt;LoadModule authz_svn_module modules/mod_authz_svn.so&lt;br /&gt;&lt;br /&gt;最后在文件末增加&lt;br /&gt;《Location /svn》&lt;br /&gt;DAV svn&lt;br /&gt;#SVN仓库父目录&lt;br /&gt;SVNParentPath c:/SVN/&lt;br /&gt;#风格样式控制文件&lt;br /&gt;SVNIndexXSLT "/SVN/svnindex.xsl"&lt;br /&gt;#访问控制，需要在Apache的bin目录下，用htpasswd为指定用户生成密码。&lt;br /&gt;#htpasswd -cm c:\SVN\svn-auth-file 用户名&lt;br /&gt;AuthType Basic&lt;br /&gt;AuthName "Subversion Repository"&lt;br /&gt;AuthUserFile c:\SVN\svn-auth-file&lt;br /&gt;Require valid-user&lt;br /&gt;《/Location》&lt;br /&gt;&lt;br /&gt;启动Apache即可。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SVN简要操作&lt;br /&gt;&lt;br /&gt;在客户端创建仓库:&lt;br /&gt;打开资源管理器，c:/SVN/下添加目录zhaiduo，点击鼠标右键，在Tortoisesvn选项中点击Create Repository.&lt;br /&gt;Import导入文件 推荐仓库布局/Trunk, /Branches, /Tags&lt;br /&gt;checkout复制文件到在客户端本地&lt;br /&gt;Commit提交修改文件&lt;br /&gt;Updat更新客户端复制文件&lt;br /&gt;Export导出干净文件&lt;br /&gt;&lt;br /&gt;Tortoisesvn选项中编辑config文件，用于设置svn:keywords:Id.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-3031165874142452597?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/07/windowssubversionapache.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-7656626583808184320</guid><pubDate>Thu, 16 Jul 2009 04:53:00 +0000</pubDate><atom:updated>2009-07-16T13:08:02.455+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><category domain='http://www.blogger.com/atom/ns#'>tutorial</category><title>2009-7-16记号:三维相关</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.uwar-game.com/"&gt;&lt;img style="cursor: pointer; width: 400px; height: 338px;" src="http://www.zhaiduo.com/uploaded_images/7-725173.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;基于Direct3D 10和NVIDIA PhysX渲染的游戏：&lt;a href="http://www.uwar-game.com/"&gt;Underwater Wars&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ali-rahimi.net/pages/portfolio.html"&gt;&lt;img style="cursor: pointer; width: 327px; height: 295px;" src="http://www.zhaiduo.com/uploaded_images/6-725169.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.ali-rahimi.net/pages/portfolio.html"&gt;&lt;br /&gt;伊朗三维艺术家作品&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PDF: &lt;a href="http://developer.download.nvidia.com/compute/cuda/2_3/toolkit/docs/NVIDIA_CUDA_BestPracticesGuide_2.3.pdf"&gt;CUDA C Programming Best Practices Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;framework: &lt;a href="http://www.plm.eecs.uni-kassel.de/plm/index.php?id=cupp"&gt;CuPP&lt;/a&gt; is our newly developed C++ framework designed to ease integration of NVIDIAs GPGPU system CUDA into existing C++ applications.&lt;br /&gt;&lt;br /&gt;PDF: &lt;a href="http://pcper-articlecontent.s3.amazonaws.com/Introduction%20to%20CausticRT.pdf"&gt;Introduction to CausticRT&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.zhaiduo.com/uploaded_images/overlander-761112.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 177px;" src="http://www.zhaiduo.com/uploaded_images/overlander-761103.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.zhaiduo.com/uploaded_images/apidium-filix-761090.jpg"&gt;&lt;img style="cursor: pointer; width: 276px; height: 400px;" src="http://www.zhaiduo.com/uploaded_images/apidium-filix-761063.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-7656626583808184320?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/07/2009-7-16.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-4072346558734137342</guid><pubDate>Fri, 29 May 2009 07:12:00 +0000</pubDate><atom:updated>2009-05-29T15:12:29.170+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><title>Unity3D确实很酷</title><description>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src='http://download.unity3d.com/images/top-menu/mm_unity_icon.png'/&gt;&lt;br/&gt;&lt;a href='http://unity3d.com/'&gt;Unity3D&lt;/a&gt;是个真正的跨平台专业三维开发框架，支持各种三维游戏开发和网页三维插件，之前听说它也有一段时间了，本来想安装网页插件看看效果，但是并没有真心想去了解它，所以也就没有行动。昨天看了&lt;a href='http://www.everydayflash.com/blog/index.php/2009/05/27/flash-vs-unity3d/'&gt;Unity3D is awesome!&lt;/a&gt;，想想4M的插件确实也不大，能够让everydayflash也惊叹的确实应该不简单。兴趣一下猛增，赶紧装来&lt;a href='http://unity3d.com/gallery/live-demos/tropical-paradise'&gt;看看&lt;/a&gt;，结果确实让人叹为观止。&lt;br/&gt;&lt;br/&gt;&lt;img src='http://unity3d.com/gallery/images/terrains.jpg'/&gt;&lt;br/&gt;近乎真实完美的三维场景，我足足在那个天堂（&lt;a href='http://unity3d.com/gallery/live-demos/tropical-paradise'&gt;Tropical Paradise&lt;/a&gt;）里面溜达了半个小时，相对Flash所能做出来的网页三维效果，Unity3D已经是非常成熟和先进。感叹之余希望可以从Unity3D里面学点一招半式，让我的三维世界更加丰富多彩。^_^&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-4072346558734137342?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/05/unity3d.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-8827214175441659417</guid><pubDate>Fri, 22 May 2009 10:05:00 +0000</pubDate><atom:updated>2009-05-22T18:05:53.633+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>complaint</category><category domain='http://www.blogger.com/atom/ns#'>GFW</category><title>Publish Blog Test Through Google Data API</title><description>&lt;br /&gt;&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;br /&gt;&lt;p&gt;Blogspot.com has been banned by Great Fire Wall of China for a long time, but I can still use blogger.com to publish my thoughts.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;However Blogger.com is just blocked by GFW in past few days unfortunately, no access from web absolutely. I try to keep find ways to access Blogger.com. This is my test to write my blog from &lt;a href='http://code.google.com/apis/gdata/overview.html'&gt;Google Data API&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I had to... Damn it...&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-8827214175441659417?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/05/publish-blog-test-through-google-data.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-6412677950337505166</guid><pubDate>Thu, 14 May 2009 04:37:00 +0000</pubDate><atom:updated>2009-05-14T13:06:13.733+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>PS</category><category domain='http://www.blogger.com/atom/ns#'>AS3</category><title>20090514学习</title><description>1. getDefinistionByName as Class&lt;br /&gt;&lt;blockquote&gt;import flash.utils.getDefinitionByName;&lt;br /&gt;var className:Class = getDefinistionByName( StringName ) as Class;&lt;br /&gt;var foo:Sprite = new className();&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://www.brooklyn.jp/blog/actionscript/%e3%83%a9%e3%82%a4%e3%83%96%e3%83%a9%e3%83%aa%e3%81%8b%e3%82%89%e8%a4%87%e6%95%b0%e3%81%ae%e3%83%aa%e3%83%b3%e3%82%b1%e3%83%bc%e3%82%b8%e3%82%92%e5%8f%82%e7%85%a7%e3%81%99%e3%82%8b.html"&gt;source&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://blog.formatlos.de/2008/05/28/bitmapdataunlimited/"&gt;BitmapDataUnlimited&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;import com.formatlos.as3.lib.display.BitmapDataUnlimited;&lt;br /&gt;import com.formatlos.as3.lib.display.events.BitmapDataUnlimitedEvent;&lt;br /&gt;&lt;br /&gt;var bdu:BitmapDataUnlimited = new BitmapDataUnlimited();&lt;br /&gt;bdu.addEventListener(BitmapDataUnlimitedEvent.COMPLETE, onBmpReady);&lt;br /&gt;bdu.create(5000, 5000, true);&lt;br /&gt;&lt;br /&gt;var hugeBmp : BitmapData;&lt;br /&gt;&lt;br /&gt;function onBmpReady(event : BitmapDataUnlimitedEvent) : void&lt;br /&gt;{&lt;br /&gt; hugeBmp = bdu.bitmapData;&lt;br /&gt; trace("BitmapData: w=" + hugeBmp.width + " h=" + hugeBmp.height);&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;e.g. a BitmapData with 12000 x 12000 px needs more than 1GB.&lt;br /&gt;&lt;br /&gt;3、Photoshop技巧：提高截屏图片打印的分辨率 - &lt;a href="http://www.turbophoto.com/Photoshop-Tricks/screenshot-photoshop-trick/index.htm"&gt;PS普通截屏图片到300dpi的分辨率&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-6412677950337505166?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/05/20090514.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-2068331894409172265</guid><pubDate>Fri, 08 May 2009 07:47:00 +0000</pubDate><atom:updated>2009-05-08T15:54:49.950+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>办法</category><category domain='http://www.blogger.com/atom/ns#'>问题</category><category domain='http://www.blogger.com/atom/ns#'>出错</category><title>jQuery1.3.2在IE8下出现“Invalid Argument”错误的问题</title><description>今天给博客页头加了一个动画效果（鼠标点击会更换页头背景），用的是jQuery1.3.2，FireFox下一切正常，但是IE8出现"line: 4166 Invalid Argument"的错误：&lt;br /&gt;&lt;img src="http://zhaiduo.googlepages.com/MWSnap288.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;原因不详，临时解决办法如下：&lt;br /&gt;&lt;blockquote&gt;fx.elem.style[ fx.prop ] = fx.now + fx.unit;&lt;/blockquote&gt;&lt;br /&gt;改为:&lt;br /&gt;&lt;blockquote&gt;if(fx.prop &amp;amp;&amp;amp; fx.unit &amp;amp;&amp;amp; fx.elem &amp;amp;&amp;amp; fx.now){&lt;br /&gt;   fx.elem.style[ fx.prop ] = fx.now + fx.unit;&lt;br /&gt;}&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-2068331894409172265?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/05/jquery132ie8invalid-argument.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-8080215781999082651</guid><pubDate>Fri, 08 May 2009 03:13:00 +0000</pubDate><atom:updated>2009-05-08T12:05:01.321+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><category domain='http://www.blogger.com/atom/ns#'>papervision3d</category><category domain='http://www.blogger.com/atom/ns#'>AS3</category><title>基于FLASH的免费三维字体生成工具</title><description>&lt;a href="http://www.3dtext.in/"&gt;3dtext.in&lt;/a&gt;是一款基于FLASH的免费三维字体生成工具，你可以轻松生成三维的字体标题，有多种字体材质，背景和动画特效的选择。&lt;br /&gt;&lt;br /&gt;另外，利用它提供的API可以在自己的AS3里面调用，生成自己的三维字体特效。&lt;a href="http://wonderfl.kayac.com/"&gt;Wonder&lt;span style="font-weight: bold;"&gt;fl&lt;/span&gt;&lt;/a&gt; ( wonderfl是一个提供在线实时测试Flash代码的网站，支持PV3D,Alternativa3D，Sandy3D等AS3三维框架，有大量AS3源码供大家学习和交流 )有个很好的基于PV3D的例子：&lt;a href="http://wonderfl.kayac.com/code/d7a041abee736516063616e3b2910b42fbcf912f"&gt; 3Dメガネを使った立体視　3dtext.in API&lt;/a&gt;，具体调用方法&lt;a href="http://wonderfl.kayac.com/code/d7a041abee736516063616e3b2910b42fbcf912f/download"&gt;源代码&lt;/a&gt;里面都有。&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center; width: 465px;"&gt;&lt;iframe title="3Dメガネを使った立体視　3dtext.in API - wonderfl build flash online" src="http://wonderfl.kayac.com/blogparts/d7a041abee736516063616e3b2910b42fbcf912f" style="border: 1px solid black;" height="490" width="465"&gt;&lt;/iframe&gt;&lt;a href="http://wonderfl.kayac.com/code/d7a041abee736516063616e3b2910b42fbcf912f" title="3Dメガネを使った立体視　3dtext.in API - wonderfl build flash online"&gt;3Dメガネを使った立体視　3dtext.in API - wonderfl build flash online&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-8080215781999082651?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/05/pv3d.html</link><author>zhaiduo@gmail.com (Adam)</author></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-6672680819998937139</guid><pubDate>Thu, 19 Mar 2009 09:25:00 +0000</pubDate><atom:updated>2009-03-19T18:23:54.410+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><category domain='http://www.blogger.com/atom/ns#'>Away3D</category><category domain='http://www.blogger.com/atom/ns#'>AS3</category><category domain='http://www.blogger.com/atom/ns#'>Flash</category><title>Away3D测试</title><description>&lt;a href="http://zhaiduo.googlepages.com/helloaway3d.html"&gt;&lt;img src="http://zhaiduo.googlepages.com/MWSnap268.jpg" border="0"&gt;&lt;/a&gt;&lt;br /&gt;测试&lt;a href="http://away3d.com/"&gt;Away3D&lt;/a&gt;用了&lt;a href="http://away3d.com/downloads"&gt;2.3.3&lt;/a&gt;flash9版本中的样例来测试。很喜欢这个水下的光影效果。Away3D的学习资料没有PV3D多，但是和Alternative3D比较还是好很多，可以看看Away3D核心开发人员:&lt;a href="http://www.closier.nl/blog/"&gt;Fabrice Closier&lt;/a&gt;的博客，能学到&lt;a href="http://www.closier.nl/blog/?cat=6"&gt;很多东西&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;另外有个地方要注意的是：从Blender导出dae文件到Away3D，必须添加UV Mapping，否则Collada.load装载材质的时候会出现这样的错误：&lt;br /&gt;&lt;blockquote&gt;TypeError: Error #1009: Cannot access a property or method of a null object reference.&lt;/blockquote&gt;&lt;br /&gt;注意dae中的路径问题。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-6672680819998937139?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/03/away3d.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-3201800175303207153</guid><pubDate>Wed, 18 Mar 2009 05:29:00 +0000</pubDate><atom:updated>2009-03-18T14:08:19.770+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><category domain='http://www.blogger.com/atom/ns#'>AS3</category><category domain='http://www.blogger.com/atom/ns#'>Alternativa3D</category><title>测试Alternativa3D</title><description>去年下载过alternativa3d_5.0.3来测试，但是&lt;a href="http://alternativaplatform.com/en/alternativa3d/"&gt;Alternativa3D&lt;/a&gt;只提供组件看不到源代码，所以暂时放弃。最近Alternativa3D多了一些&lt;a href="http://docs.alternativaplatform.com/display/TDEN/Home"&gt;教程&lt;/a&gt;，上手也比较容易，于是又重新开始玩玩。&lt;br /&gt;&lt;a href="http://zhaiduo.googlepages.com/HelloAlternativa3D.html"&gt;&lt;img src="http://zhaiduo.googlepages.com/MWSnap267.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;可惜的是Alternativa3D被墙，无法访问，而Alternativa3D又需要注册登录才能免费下载最新版本，所以只有拿5.0.3的来做测试(最新5.5.0)。&lt;br /&gt;&lt;br /&gt;和Papervision3D比较起来，Alternativa3D似乎不存在z-fighting的问题，建模效果不错，但是由于Alternativa3D_5.0.3的API Documentation里面没有Light的部分，无法做光线渲染部分的测试。希望可以尽快下载最新版本试试。另外也希望有空找时间玩玩&lt;a href="http://away3d.com/downloads"&gt;away3d&lt;/a&gt;，似乎光线渲染做的不错。随着CS4的推出，各大3D引擎也纷纷推出自己的Flash10版本，我还没有装CS4，也对&lt;vector3D&gt;等flash10最新内嵌对3D的支持用法不甚了解，但是可以肯定的是3D性能得到了很大提高，就拿pv3d开发人员的话说：“高速三维实时渲染的数量级从400提高到了8000”。得赶紧跟上啊～～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-3201800175303207153?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/03/alternativa3d.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-1909230570681226154</guid><pubDate>Mon, 09 Mar 2009 07:58:00 +0000</pubDate><atom:updated>2009-03-09T16:22:47.263+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SPAM</category><category domain='http://www.blogger.com/atom/ns#'>无奈</category><title>中国电信在搞TMDde什么鬼？</title><description>打开网页常常弹出这个内容，既讨厌又影响网页访问速度。难道他们想搜集浏览器的信息卖显示器不成？每秒钟不停的刷屏，比&lt;span style="font-weight:bold;"&gt;GFW&lt;/span&gt;还BT，NND!&lt;br /&gt;&lt;blockquote&gt;&lt;&gt;&lt;br /&gt;&lt;&gt;&lt;br /&gt;&lt; equiv="refresh" content="2"&gt;&lt;br /&gt;&lt; /head &gt;&lt;br /&gt;&lt;&gt;&lt;br /&gt;&lt; /body &gt;&lt;br /&gt;&lt; language="javascript"&gt;&lt;br /&gt;refresh=function(){&lt;br /&gt;   location.reload(true);&lt;br /&gt;}&lt;br /&gt;test=function(){&lt;br /&gt;   var objElement=document.createElement("iframe");&lt;br /&gt; var link="http://121.32.136.95:4022/logo.jpg?p=";&lt;br /&gt; link += Math.floor((new Date()).getTime()/1000);&lt;br /&gt;   link += "|";&lt;br /&gt;   link +=  navigator.appMinorVersion;&lt;br /&gt;   link += "|";&lt;br /&gt;   link += screen.availHeight;&lt;br /&gt;   link += "|";&lt;br /&gt;   link += screen.availWidth;&lt;br /&gt;   link += "|";&lt;br /&gt;   link += screen.colorDepth;&lt;br /&gt;   link += "|";&lt;br /&gt;   link += screen.height;&lt;br /&gt;   link += "|";&lt;br /&gt;   link += screen.width;&lt;br /&gt; objElement.setAttribute("src",link);&lt;br /&gt; objElement.style.display="none";&lt;br /&gt; document.body.appendChild(objElement);&lt;br /&gt;};&lt;br /&gt;window.setInterval("window.status=' '",200);&lt;br /&gt;window.setTimeout('refresh()',1000);&lt;br /&gt;test();&lt;br /&gt;&lt; /script &gt;&lt;br /&gt;&lt; /html &gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;121.32.136.95 is from China(CN) in region Southern and Eastern Asia&lt;br /&gt;inetnum:      121.32.0.0 - 121.35.255.255             &lt;br /&gt;netname:      CHINANET-GD&lt;br /&gt;descr:        CHINANET Guangdong province network&lt;br /&gt;descr:        China Telecom&lt;br /&gt;descr:        No.31,jingrong street&lt;br /&gt;descr:        Beijing 100032&lt;br /&gt;country:      CN&lt;br /&gt;admin-c:      CH93-AP&lt;br /&gt;tech-c:       IC83-AP&lt;br /&gt;mnt-by:       APNIC-HM&lt;br /&gt;mnt-lower:    MAINT-CHINANET-GD&lt;br /&gt;mnt-routes:   MAINT-CHINANET-GD&lt;br /&gt;status:       ALLOCATED PORTABLE&lt;br /&gt;remarks:      -+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+ &lt;br /&gt;remarks:      This object can only be updated by APNIC hostmasters. &lt;br /&gt;remarks:      To update this object, please contact APNIC &lt;br /&gt;remarks:      hostmasters and include your organisation's account &lt;br /&gt;remarks:      name in the subject line. &lt;br /&gt;remarks:      -+-+-+-+-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+ &lt;br /&gt;changed:      hm-changed@apnic.net 20060518&lt;br /&gt;source:       APNIC&lt;br /&gt;&lt;br /&gt;route:        121.32.0.0/14&lt;br /&gt;descr:        From Guangdong Network of ChinaTelecom&lt;br /&gt;origin:       AS4134&lt;br /&gt;mnt-by:       MAINT-CHINANET&lt;br /&gt;changed:      dingsy@cndata.com 20060707&lt;br /&gt;source:       APNIC&lt;br /&gt;&lt;br /&gt;person:       Chinanet Hostmaster&lt;br /&gt;nic-hdl:      CH93-AP&lt;br /&gt;e-mail:       anti-spam@ns.chinanet.cn.net&lt;br /&gt;address:      No.31 ,jingrong street,beijing&lt;br /&gt;address:      100032&lt;br /&gt;phone:        +86-10-58501724&lt;br /&gt;fax-no:       +86-10-58501724&lt;br /&gt;country:      CN&lt;br /&gt;changed:      dingsy@cndata.com 20070416&lt;br /&gt;mnt-by:       MAINT-CHINANET&lt;br /&gt;source:       APNIC&lt;br /&gt;&lt;br /&gt;person:       IPMASTER CHINANET-GD&lt;br /&gt;nic-hdl:      IC83-AP&lt;br /&gt;e-mail:       ipadm@gddc.com.cn&lt;br /&gt;address:      NO.1,RO.DONGYUANHENG,YUEXIUNAN,GUANGZHOU&lt;br /&gt;phone:        +86-20-83877223&lt;br /&gt;fax-no:       +86-20-83877223&lt;br /&gt;country:      CN&lt;br /&gt;changed:      ipadm@gddc.com.cn 20040902&lt;br /&gt;mnt-by:       MAINT-CHINANET-GD&lt;br /&gt;remarks:      IPMASTER is not for spam complaint,please send spam complaint to abuse@gddc.com.cn&lt;br /&gt;source:       APNIC&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-1909230570681226154?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/03/tmdde.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-783767546196905285</guid><pubDate>Sat, 07 Mar 2009 18:57:00 +0000</pubDate><atom:updated>2009-03-08T03:09:15.059+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>问题</category><title>UTF8的BOM让FirFox一片空白</title><description>今天遇到在FirFox/IE下，网页都是一片空白的问题，以为和IE的META Content-Type问题类似。可是毫无效果。在二进制下看到网页尾部多了EF BB BF三个字节，原来是&lt;a href="http://en.wikipedia.org/wiki/Byte-order_mark"&gt;UTF8的BOM&lt;/a&gt;(Byte Order Mark)在搞鬼。 将这三个字节过滤掉，问题解决。呼～三点了,觉去。。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-783767546196905285?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/03/utf8bomfirfox.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-4817590542072196547</guid><pubDate>Thu, 05 Mar 2009 02:03:00 +0000</pubDate><atom:updated>2009-03-05T11:21:02.077+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><category domain='http://www.blogger.com/atom/ns#'>papervision3d</category><category domain='http://www.blogger.com/atom/ns#'>Blender</category><category domain='http://www.blogger.com/atom/ns#'>Flash</category><title>Blender导出Dae文件到Papervision3D的方法</title><description>这里有三个把Blender里面材质映射（UV Mapping）好的三维物件导入Flash（通过Papervision3D渲染）的方法。&lt;br /&gt;方法一：&lt;a href="http://www.rozengain.com/blog/2008/01/02/export-your-blender-objects-straight-to-away3d-papervision3d-and-sandy/"&gt;ActionScript 3.0 exporter&lt;/a&gt; from rozengain.com (除了pv3d,还支持Sandy3D和Away3D)&lt;br /&gt;步骤：&lt;br /&gt;1. &lt;a href="http://www.rozengain.com/files/blog/blender-export/AS3Export.rar"&gt;下载&lt;/a&gt;到Windows下的这个目录: (Blender .2.48: C:\Documents and Settings\&lt;username&gt;\Application Data\Blender Foundation\Blender\.blender\scripts)&lt;br /&gt;2. &lt;a href="http://www.blender.org/"&gt;Blender&lt;/a&gt;里面选中要导出的物件，确定是在编辑模式下，Ctrl+T让物件三角形化（triangulated）。&lt;br /&gt;3. 菜单File  -&gt; Export -&gt; ActionScript 3.0 Class&lt;br /&gt;4. 装入pv3d: var BlenderBox:TriangleMesh3D=new BlenderBoxClass(material...);&lt;br /&gt;&lt;br /&gt;方法二：&lt;a href="http://professionalpapervision.wordpress.com/2008/12/09/new-blender-xml-exporterpv3d-xml-primitive/"&gt;XMLExporter/XMLPrimitive&lt;/a&gt; from professionalpapervision.wordpress.com （应该是方法一的改良版）&lt;br /&gt;步骤：&lt;br /&gt;1. &lt;a href="http://flex3cookbook2.googlecode.com/files/exporter-primitive.zip"&gt;下载&lt;/a&gt;让后复制Python XMLExporter到和方法一一样的目录&lt;br /&gt;2. 和方法一一样的，把XML导出。利用XMLPrimitive这个Class装载。zhaiduoText = new XMLPrimitive("BlenderBox.xml",Material...);&lt;br /&gt;&lt;br /&gt;方法三：Blender .2.48里面内置的Collada 1.4导出工具：&lt;br /&gt;步骤：&lt;br /&gt;1. 菜单： File -&gt; Export -&gt; Collada 1.4 (.dae)&lt;br /&gt;2. 利用org.papervision3d.objects.parsers.dae导入&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-4817590542072196547?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/03/blenderdaepapervision3d.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-1157786860916484568</guid><pubDate>Fri, 27 Feb 2009 02:23:00 +0000</pubDate><atom:updated>2009-02-27T11:16:13.298+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>PHP</category><category domain='http://www.blogger.com/atom/ns#'>黑客</category><title>再次遭受黑客代码嵌入</title><description>今天有个网站再次遭到怀疑是来自俄罗斯黑客的代码嵌入攻击。分析代码发现用PHP inlude到下面这些地址：&lt;br /&gt;&lt;blockquote&gt;.users.bishell.ru&lt;br /&gt;.users.phpinclude.ru&lt;br /&gt;bdijhzzazbzcij.users.phpinclude.ru&lt;br /&gt;.users.phpfree.ru&lt;br /&gt;.users.phpcoding.ru&lt;/blockquote&gt;&lt;br /&gt;不明白为什么服务器管理员会允许PHP包含外地文件。&lt;br /&gt;&lt;img src="http://zhaiduo.googlepages.com/MWSnap259.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;有兴趣的可以看看相关源文件：&lt;br /&gt;&lt;a href="http://zhaiduo.googlepages.com/hack.php.txt"&gt;hack.php.txt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://zhaiduo.googlepages.com/hack_msg.php.txt"&gt;hack_msg.php.txt&lt;/a&gt;&lt;br /&gt;&lt;a href="http://zhaiduo.googlepages.com/hack_msg2.php.txt"&gt;hack_msg2.php.txt&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-1157786860916484568?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/02/blog-post.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-3186585715116212006</guid><pubDate>Sat, 21 Feb 2009 13:08:00 +0000</pubDate><atom:updated>2009-03-05T10:06:54.969+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><category domain='http://www.blogger.com/atom/ns#'>Flash</category><title>我是FLash三维实时渲染的忠实粉丝</title><description>最近，&lt;a href="http://away3d.com/"&gt;Away3D&lt;/a&gt;和&lt;a href="http://www.blogger.com/blog.alternativaplatform.com"&gt;Alternativa3D&lt;/a&gt;这两个我最关注的基于Flash的三维实时渲染框架都有着令人鼓舞的新作品出现。虽然在AS3代码的测试上，我更关注&lt;a href="http://blog.papervision3d.org/"&gt;Papervision3D&lt;/a&gt;。但是从现在的三维实时渲染效果来看，Away3D和Alternativa3D无疑走在了前面。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.alternativaplatform.com/en/2009/02/21/alternativa3d-7-in-progress/"&gt;Alternativa3D的武士效果：&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3018275850554098044-a-1802744773732722657-s-sites.googlegroups.com/site/play3dwithflash/Home/alternativa3d-cool/hero.swf"&gt;&lt;img src="http://zhaiduo.googlepages.com/19520090221211347.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.infiniteturtles.co.uk/projects/away3d/demos/FrustumHotelRoom/Advanced_FrustumHotelRoom.html"&gt;Away3D的房间光影效果：&lt;/a&gt;&lt;br /&gt;&lt;img src="http://zhaiduo.googlepages.com/19420090221210347.jpg" border="0" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-3186585715116212006?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/02/flash.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-3851285528802930077</guid><pubDate>Thu, 19 Feb 2009 17:04:00 +0000</pubDate><atom:updated>2009-02-20T22:55:14.858+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>javascript</category><category domain='http://www.blogger.com/atom/ns#'>出错</category><title>神秘的lightbox.js错误</title><description>今天网站页面用IE(7&amp;amp;8)突然都无法访问，弹出这样的错误窗口:&lt;br /&gt;&lt;img src="http://zhaiduo.googlepages.com/19320090220003846.jpg" /&gt;&lt;br /&gt;网页跟本无法打开，点击确定关闭错误窗口后，页面自动跳到空白页面。&lt;br /&gt;&lt;br /&gt;用FireFox看，页面可以打开，但是Error Console里面有这样一个错误：&lt;br /&gt;&lt;blockquote&gt;Error: uncaught exception: Permission denied to call method Location.toString&lt;/blockquote&gt;&lt;br /&gt;经过对网页源代码的排查发现是lightbox代码的问题:&lt;br /&gt;&lt;blockquote&gt;script type="text/javascript" src="/css/prototype.js"&lt;br /&gt;script type="text/javascript" src="/css/scriptaculous.js?load=effects,builder"&lt;br /&gt;script type="text/javascript" src="/css/lightbox.js"&lt;/blockquote&gt;&lt;br /&gt;奇怪的是今天没有对lightbox代码进行过修改，真是很灵异的事件。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-3851285528802930077?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/02/lightboxjs.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-2932563670145917731</guid><pubDate>Tue, 10 Feb 2009 08:51:00 +0000</pubDate><atom:updated>2009-02-10T17:40:06.790+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>javascript</category><category domain='http://www.blogger.com/atom/ns#'>AS3</category><title>Javascript与swf对象交互的问题</title><description>在网页中通过flash来登录页面的时候，会涉及到Javascript与swf对象的交互问题。主要考虑的问题在于做到网页上的登录状况需要与swf里面的登录状况同步一致。AS里面的ExternalInterface包帮助我们解决这个问题，主要用法包括：&lt;br /&gt;&lt;br /&gt;从Javascript发送数据到AS中的公开函数：&lt;br /&gt;ExternalInterface.addCallback("JsFunc", AsFunc);&lt;br /&gt;&lt;br /&gt;在AS中向Javascript函数传递数据。&lt;br /&gt;ExternalInterface.call("JsFunc", AsData);&lt;br /&gt;&lt;br /&gt;假设swf对象的id为zhaiduo,则可以这样来调用AS中的公开函数：&lt;br /&gt;&lt;blockquote&gt;mc('zhaiduo').JsFunc(blahs...);&lt;br /&gt;function mc(movieName) {&lt;br /&gt;         if (navigator.appName.indexOf("Microsoft") != -1) {&lt;br /&gt;             return window[movieName];&lt;br /&gt;         } else {&lt;br /&gt;             return document[movieName];&lt;br /&gt;         }&lt;br /&gt;    }&lt;/blockquote&gt;&lt;br /&gt;交互过程中意外遇到一个有趣的Javascript现象：&lt;br /&gt;&lt;blockquote&gt;if (navigator.appName.indexOf("Microsoft") != -1) {&lt;br /&gt;      document.location.href="http://www.zhaiduo.com";  //IE8用reload无效&lt;br /&gt;}else{&lt;br /&gt;      document.location.reload(); //FF2用href无效&lt;br /&gt;}&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-2932563670145917731?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/02/javascriptswf.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-268563774571967436</guid><pubDate>Fri, 06 Feb 2009 10:05:00 +0000</pubDate><atom:updated>2009-02-07T18:44:09.298+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>PHP</category><category domain='http://www.blogger.com/atom/ns#'>问题</category><title>集成phpBB3论坛</title><description>&lt;a href="http://www.phpbb.com/downloads"&gt;phpBB3&lt;/a&gt;从功能和界面上都是很不错的免费论坛程序。要把它和自己的系统结合起来其实也没有想象的那么复杂。这里有个简单的方案：&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;主要目标&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;做到原有系统用户可以自动登录论坛&lt;br /&gt; 如果用户已经登录原有系统，检查该用户是否在论坛有同名帐号，否则自动生成和用户同名的帐号，然后自动论坛。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;从论坛注册和登录都会自动到转到原有系统的注册和登录页面。&lt;br /&gt;  屏蔽原论坛的注册登录功能，以及修改密码功能。&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;修改时遇到如下错误：&lt;br /&gt;&lt;blockquote&gt;Strict Standards: Non-static method utf_normalizer::nfkc() should not be called statically&lt;/blockquote&gt;还不清楚原因何在，临时解决办法：先屏蔽utf8_clean_string函数。修改如下：&lt;br /&gt;&lt;blockquote&gt;Edit: includes/auth.php&lt;br /&gt;   885 function login($username, $password, $autologin = false, $viewonline = 1, $admin = 0, $noclean = 0)&lt;br /&gt;  908 user_add($login['user_row'], (isset($login['cp_data'])) ? $login['cp_data'] : false);&lt;br /&gt;    if($noclean == 1){&lt;br /&gt;     $clean_name=$username;&lt;br /&gt;    }else{&lt;br /&gt;     $clean_name=utf8_clean_string($username);&lt;br /&gt;    }&lt;br /&gt;   $sql = 'SELECT user_id, username, user_password, user_passchg, user_email, user_type&lt;br /&gt;     FROM ' . USERS_TABLE . "&lt;br /&gt;     WHERE username_clean = '" . $db-&gt;sql_escape($clean_name) . "'";&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;Edit: includes/auth/auth_db.php&lt;br /&gt;  27 function login_db(&amp;amp;$username, &amp;amp;$password, $noclean=0)&lt;br /&gt;   if($noclean == 1){&lt;br /&gt;    $clean_name=$username;&lt;br /&gt;   }else{&lt;br /&gt;    $clean_name=utf8_clean_string($username);&lt;br /&gt;   }&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-268563774571967436?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/02/phpbb3.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-4475938369840977403</guid><pubDate>Tue, 03 Feb 2009 08:33:00 +0000</pubDate><atom:updated>2009-04-16T11:36:49.560+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><category domain='http://www.blogger.com/atom/ns#'>papervision3d</category><category domain='http://www.blogger.com/atom/ns#'>问题</category><category domain='http://www.blogger.com/atom/ns#'>AS3</category><title>Cube使用ShadedMaterial材质的黑三角型问题</title><description>&lt;img src="http://zhaiduo.googlepages.com/MWSnap253.jpg" /&gt;&lt;br /&gt;在PV3d里面立方体原型Cube中使用ShadedMaterial材质的时候，如果立方体所有面都使用同一shader，渲染结果的时候，每个面会出现单个黑色三角形的问题。&lt;br /&gt;&lt;blockquote&gt;myShader = new PhongShader(light);&lt;br /&gt;myShadedMaterial = new ShadedMaterial(myBitmapMaterial,myShader);&lt;br /&gt;mlist = new MaterialsList();&lt;br /&gt;mlist.addMaterial(myShadedMaterial, "all");&lt;/blockquote&gt;&lt;br /&gt;根据&lt;a href="http://www.nabble.com/ShadedMaterial-problem-td17353753.html"&gt;nabble上的解释&lt;/a&gt;：解决办法只能给每个面指定单独的Shader。经测试问题解决。&lt;br /&gt;&lt;br /&gt;另外，要解决两平面相对垂直时，视角中出现的三角形突起，如下图：&lt;br /&gt;&lt;img src="http://zhaiduo.googlepages.com/18720090203235441.jpg" /&gt;&lt;br /&gt;可以修改小平面useOwnContainer属性来解决。&lt;br /&gt;&lt;blockquote&gt;plane.useOwnContainer=true;&lt;/blockquote&gt;&lt;br /&gt;但是发现如果有多个平行平面垂直于一平面的时候，useOwnContainer会导致平行平面之间视角失真的问题，看来还得找其他办法。如图，注意深蓝色平面。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://zhaiduo.googlepages.com/18820090204001444.jpg" /&gt;&lt;br /&gt;正常情况&lt;br /&gt;&lt;br /&gt;&lt;img src="http://zhaiduo.googlepages.com/18920090204001500.jpg" /&gt;&lt;br /&gt;失真情况&lt;br /&gt;&lt;br /&gt;更新：是Z-fighting的问题，用ViewportLayer和&lt;a href="http://blog.zupko.info/?p=177"&gt;QuadrantRenderEngine&lt;/a&gt;来解决。具体如下&lt;br /&gt;&lt;blockquote&gt;import org.papervision3d.render.QuadrantRenderEngine;&lt;br /&gt;import org.papervision3d.view.layer.util.ViewportLayerSortMode;&lt;br /&gt;...&lt;br /&gt;viewport.containerSprite.sortMode = ViewportLayerSortMode.INDEX_SORT;&lt;br /&gt;renderer = new QuadrantRenderEngine(QuadrantRenderEngine.ALL_FILTERS);&lt;br /&gt;...&lt;br /&gt;viewport.getChildLayer(target).layerIndex = 1;&lt;br /&gt;viewport.getChildLayer(floor).layerIndex = -100;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-4475938369840977403?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/02/cubeshadedmaterial.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-202164074401362665</guid><pubDate>Thu, 08 Jan 2009 05:19:00 +0000</pubDate><atom:updated>2009-01-08T13:44:10.130+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>3D</category><category domain='http://www.blogger.com/atom/ns#'>AS3</category><title>Papervision3D的正反两面材质测试</title><description>&lt;img src="http://zhaiduo.googlepages.com/MWSnap249.jpg" /&gt;&lt;br /&gt;要做到&lt;a href="http://docs.pv3d.org/"&gt;Papervision3D&lt;/a&gt;的Plane实现正反两面材质，现在主要有两个方法：&lt;br /&gt;一是利用DisplayObject3D两个Plane放到一起，贴图做到一正一反就可以实现：[&lt;a href="http://zhaiduo.googlepages.com/wave2.html"&gt;wave2.swf&lt;/a&gt;]&lt;br /&gt;&lt;blockquote&gt;p = new Plane(bitmapMaterial,829, 389,10,10);&lt;br /&gt;planeGroup.addChild(p);&lt;br /&gt;p2 = new Plane(bitmapMaterial2,829, 389,10,10);&lt;br /&gt;p2.rotationY = 180;&lt;br /&gt;planeGroup.addChild(p2);&lt;br /&gt;scene.addChild(planeGroup);&lt;/blockquote&gt;&lt;br /&gt;波动效果利用Plane的segments分段特性，控制每个geometry.vertices来实现。&lt;br /&gt;&lt;br /&gt;二是利用Cube，把高度设为零，上下两面做贴图：[&lt;a href="http://zhaiduo.googlepages.com/As3dModPerlin.html"&gt;As3dModPerlin.swf&lt;/a&gt;]&lt;br /&gt;&lt;blockquote&gt;var materialsList:MaterialsList = new MaterialsList() ;&lt;br /&gt;materialsList.addMaterial(bitmapMaterial, "top" ) ;&lt;br /&gt;materialsList.addMaterial(bitmapMaterial2, "bottom" ) ;&lt;br /&gt;var cube:Cube = new Cube(materialsList, 829, 389 , 1,10,10,10 ) ;&lt;br /&gt;planeGroup.addChild(cube) ;&lt;br /&gt;scene.addChild(planeGroup);&lt;/blockquote&gt;&lt;br /&gt;波动效果采用&lt;a href="http://www.everydayflash.com/"&gt;everydayflash&lt;/a&gt;的&lt;a href="http://code.google.com/p/as3dmod/wiki/AS3Dmod_Tutorial"&gt;AS3Dmod库&lt;/a&gt;来实现。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-202164074401362665?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/01/papervision3d.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-2918064644812101959</guid><pubDate>Wed, 07 Jan 2009 14:29:00 +0000</pubDate><atom:updated>2009-01-07T22:37:13.714+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>办法</category><title>URL Rewrite的VBscript解决办法</title><description>比如要实现这样的URL转向：&lt;br /&gt;&lt;blockquote&gt;http://www.zhaiduo.com/page/3/&lt;br /&gt;=&gt;&lt;br /&gt;http://zhaiduo.googlepages.com/search3.htm&lt;/blockquote&gt;&lt;br /&gt;如果服务器没有URLRewrite功能可用这个代码在Windows下生成目录和文件。然后用FTP上传即可。保存下面内容为：create.vbs&lt;br /&gt;&lt;blockquote&gt;Option Explicit&lt;br /&gt;Dim objFSO, objFolder, strDirectory, strDirectory2&lt;br /&gt;strDirectory = "D:\zhaiduo.com\page"&lt;br /&gt;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;&lt;br /&gt;Dim I&lt;br /&gt;For I = 1 To 55&lt;br /&gt;   strDirectory2=strDirectory &amp;amp; "\" &amp;amp; I&lt;br /&gt;   Set objFolder = objFSO.CreateFolder(strDirectory2)&lt;br /&gt;   WScript.Echo "Just created " &amp;amp; strDirectory2&lt;br /&gt;   CreateIndexFile strDirectory2, I&lt;br /&gt;   WScript.Echo "Just created " &amp;amp; strDirectory2 &amp;amp; "\index.php"&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;WScript.Quit&lt;br /&gt;'end&lt;br /&gt;&lt;br /&gt;Sub CreateIndexFile(Folder,I)&lt;br /&gt;  Dim TextStream&lt;br /&gt;  Set TextStream = objFSO.CreateTextFile(Folder &amp;amp; "\index.php")&lt;br /&gt;  TextStream.WriteLine("")&lt;br /&gt;  TextStream.Close&lt;br /&gt;End Sub&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;双击运行即可。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-2918064644812101959?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/01/url-rewritevbscript.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-3543461701912262964</guid><pubDate>Tue, 06 Jan 2009 06:08:00 +0000</pubDate><atom:updated>2009-01-06T14:56:47.187+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>无奈</category><category domain='http://www.blogger.com/atom/ns#'>Python</category><title>用Google App测试更新twitter遇到的问题</title><description>本来打算用PHP写一个Twitter的更新程序。主要问题在于通过Basic Authentication来通过授权。最简单的办法就是用Curl。这里有个很好的&lt;a href="http://twitter.slawcup.com/twitter.class.phps"&gt;CLASS&lt;/a&gt;可以借鉴，但是无奈服务器对curl的限制，只好放弃。最近接触Google App，用的是Python。于是打算用&lt;a href="http://docs.python.org/dev/index.html"&gt;Python&lt;/a&gt;试试。&lt;br /&gt;&lt;br /&gt;Python中关于Http的&lt;a href="http://www.voidspace.org.uk/python/articles/authentication.shtml"&gt;Basic Authentication的教程&lt;/a&gt;已经很详细，大概的方法包括使用urllib、urllib2和httplib。无奈这些方法在google_app下都出现这样的错误：&lt;br /&gt;&lt;blockquote&gt;AttributeError: 'module' object has no attribute 'error'&lt;/blockquote&gt;&lt;br /&gt;解决办法只有使用&lt;a href="http://code.google.com/appengine/docs/urlfetch/"&gt;URL Fetch API&lt;/a&gt;，通过给header增加Authorization字段，达到通过Twitter API授权的问题。&lt;br /&gt;&lt;br /&gt;代码如下：&lt;br /&gt;&lt;blockquote&gt;    base64string = base64.encodestring('%s:%s' % (username, password))[:-1]&lt;br /&gt;  result = urlfetch.fetch(url=update_url,&lt;br /&gt;                          payload=form_data,&lt;br /&gt;                          method=urlfetch.POST,&lt;br /&gt;                          headers={&lt;br /&gt;                            'Content-Type': 'application/x-www-form-urlencoded',&lt;br /&gt;                            'Authorization': 'Basic '+ base64string&lt;br /&gt;                          })&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-3543461701912262964?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2009/01/google-apptwitter.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-90904514437405132</guid><pubDate>Wed, 31 Dec 2008 04:58:00 +0000</pubDate><atom:updated>2008-12-31T13:13:46.508+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>互联网</category><title>YP.com卖了385万美元现金</title><description>&lt;span style="font-weight: bold;"&gt;YP.com卖了385万美元现金&lt;/span&gt;&lt;br /&gt; &lt;a href="http://biz.yahoo.com/e/081229/live10-k.html"&gt;详细&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;200台PS3游戏主机帮助黑客破解基于MD5加密的网页&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;数字证书&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;（SSL-CA）&lt;/span&gt;&lt;br /&gt;&lt;span&gt;一群来自欧美的黑客利用200台PS3游戏主机加700美元的数字证书&lt;/span&gt;，利用MD5加密算法中的漏洞成功找到破解&lt;span&gt;基于MD5的网页&lt;/span&gt;&lt;span&gt;数字证书的方法。&lt;/span&gt;&lt;a href="http://blogs.zdnet.com/security/?p=2339"&gt;详细&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-90904514437405132?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2008/12/ypcom385.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8446367956866011875.post-109805164123886817</guid><pubDate>Mon, 29 Dec 2008 06:50:00 +0000</pubDate><atom:updated>2008-12-29T15:51:51.032+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>黑客</category><category domain='http://www.blogger.com/atom/ns#'>窄多废话</category><title>黑客的嵌入代码</title><description>一朋友的网站上所有文件都被黑客加上这样的代码：&lt;br /&gt;HTML中嵌入的javascript内容：&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;if(typeof(yahoo_counter)!=typeof(1))&lt;br /&gt;//伪装成yahoo counter?&lt;br /&gt;eval(unescape('...(省略)').replace(/\||\&amp;amp;|`|@|~|\$|#|\!/g,""));&lt;br /&gt;//把要执行的脚本隐藏以来，通过replace替换冗长模糊字符和unescape解码还原。&lt;br /&gt;var yahoo_counter=1;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;PHP中嵌入的内容：&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.zhaiduo.com/uploaded_images/MWSnap242-740762.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 249px;" src="http://www.zhaiduo.com/uploaded_images/MWSnap242-740758.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;通过ob_start嵌入代码&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.zhaiduo.com/uploaded_images/MWSnap243-740806.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 179px;" src="http://www.zhaiduo.com/uploaded_images/MWSnap243-740779.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;解析出来的脚本内容:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.zhaiduo.com/uploaded_images/MWSnap239-781777.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 147px;" src="http://www.zhaiduo.com/uploaded_images/MWSnap239-781774.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;目标地址形如http://78.110.175.21/cp/?n&lt;br /&gt;不知他们这样做的目的是为何，可以获取什么样的信息。&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$ whois 78.110.175.21&lt;br /&gt;OrgName:    RIPE Network Coordination Centre&lt;br /&gt;OrgID:      RIPE&lt;br /&gt;Address:    P.O. Box 10096&lt;br /&gt;City:       Amsterdam&lt;br /&gt;StateProv:&lt;br /&gt;PostalCode: 1001EB&lt;br /&gt;Country:    NL&lt;br /&gt;&lt;br /&gt;$ whois 195.24.76.251&lt;br /&gt;role:           root eSolutions&lt;br /&gt;address:        35, rue John F. Kennedy&lt;br /&gt;address:        L-7327 Steinsel&lt;br /&gt;address:        Luxembourg&lt;br /&gt;phone:          +352 20.500&lt;br /&gt;fax-no:         +352 20.500.500&lt;br /&gt;e-mail:         info@root.lu&lt;br /&gt;remarks:        +------------------------------------+&lt;br /&gt;remarks:        | Operational Issues:  noc@root.lu   |&lt;br /&gt;remarks:        | Abuse and Spam:      abuse@root.lu |&lt;br /&gt;remarks:        +------------------------------------+&lt;br /&gt;&lt;br /&gt;person:         Andy BIERLAIR&lt;br /&gt;address:        root eSolutions&lt;br /&gt;address:        35, rue John F. Kennedy&lt;br /&gt;address:        L-7327 Steinsel&lt;br /&gt;phone:          +352 20.500&lt;br /&gt;fax-no:         +352 20.500.500&lt;br /&gt;nic-hdl:        AB99-RIPE&lt;br /&gt;mnt-by:         ROOT-MNT&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8446367956866011875-109805164123886817?l=www.zhaiduo.com'/&gt;&lt;/div&gt;</description><link>http://www.zhaiduo.com/2008/12/blog-post_29.html</link><author>zhaiduo@gmail.com (Adam)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>