<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>我的技术生活-王炜 &#187; WEB</title> <atom:link href="http://aaronw.me/cache/web/feed" rel="self" type="application/rss+xml" /><link>http://aaronw.me</link> <description>只为成功找方法，不为失败找借口</description> <lastBuildDate>Fri, 28 Oct 2011 07:14:11 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>解决 &#8211; java.lang.OutOfMemoryError： unable to create new native thread</title><link>http://aaronw.me/static/854.html</link> <comments>http://aaronw.me/static/854.html#comments</comments> <pubDate>Thu, 05 May 2011 07:09:22 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[java]]></category> <category><![CDATA[OutOfMemoryError]]></category> <guid
isPermaLink="false">http://aaronw.me/?p=854</guid> <description><![CDATA[帮朋友调试weblogic，当错误中提到OutOfMemoryError，但是java option我修改了啊，怎么么还会有错？程序有问题？还是参数不对？发现这样一篇文章，写的不错，转载了！呵呵！ 工作中碰到过这个问题好几次了，觉得有必要总结一下，所以有了这篇文章，这篇文章分为三个部分：认识问题、分析问题、解决问题。 一、认识问题: 首先我们通过下面这个 测试程序 来认识这个问题： 运行的环境 （有必要说明一下，不同环境会有不同的结果）：32位 Windows XP，Sun JDK 1.6.0_18， eclipse 3.4， 测试程序： import java.util.concurrent.CountDownLatch; public class TestNativeOutOfMemoryError { public static void main(String[] args) { for (int i = 0;; i++) { System.out.println(“i = ” + i); new Thread(new HoldThread()).start(); } } } class HoldThread extends Thread { CountDownLatch cdl = new [...]]]></description> <content:encoded><![CDATA[<p>帮朋友调试weblogic，当错误中提到OutOfMemoryError，但是java option我修改了啊，怎么么还会有错？程序有问题？还是参数不对？发现这样一篇文章，写的不错，转载了！呵呵！  工作中碰到过这个问题好几次了，觉得有必要总结一下，所以有了这篇文章，这篇文章分为三个部分：认识问题、分析问题、解决问题。</p><p>一、认识问题:<br
/> 首先我们通过下面这个 测试程序 来认识这个问题：<br
/> 运行的环境 （有必要说明一下，不同环境会有不同的结果）：32位 Windows XP，Sun JDK 1.6.0_18， eclipse 3.4，<br
/> 测试程序：</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">import java.util.concurrent.CountDownLatch;</p><p>public class TestNativeOutOfMemoryError {</p><p> public static void main(String[] args) {</p><p> for (int i = 0;; i++) {<br
/> System.out.println(“i = ” + i);<br
/> new Thread(new HoldThread()).start();<br
/> }<br
/> }</p><p>}</p><p>class HoldThread extends Thread {<br
/> CountDownLatch cdl = new CountDownLatch(1);</p><p> public HoldThread() {<br
/> this.setDaemon(true);<br
/> }</p><p> public void run() {<br
/> try {<br
/> cdl.await();<br
/> } catch (InterruptedException e) {<br
/> }<br
/> }<br
/> }</p></div><p>不指定任何JVM参数，eclipse中直接运行输出，看到了这位朋友了吧：<br
/> i = 5602<br
/> Exception in thread “main” java.lang.OutOfMemoryError: unable to create new native thread<br
/> at java.lang.Thread.start0(Native Method)<br
/> at java.lang.Thread.start(Thread.java:597)<br
/> at TestNativeOutOfMemoryError.main(TestNativeOutOfMemoryError.java:20)</p><p>二、分析问题：<br
/> 这个异常问题本质原因是我们创建了太多的线程，而能创建的线程数是有限制的，导致了异常的发生。能创建的线程数的具体计算公式如下：<br
/> (MaxProcessMemory &#8211; JVMMemory &#8211; ReservedOsMemory) / (ThreadStackSize) = Number of threads<br
/> MaxProcessMemory 指的是一个进程的最大内存<br
/> JVMMemory         JVM内存<br
/> ReservedOsMemory  保留的操作系统内存<br
/> ThreadStackSize      线程栈的大小</p><p>在java语言里， 当你创建一个线程的时候，虚拟机会在JVM内存创建一个Thread对象同时创建一个操作系统线程，而这个系统线程的内存用的不是JVMMemory，而是系统中剩下的内存(MaxProcessMemory &#8211; JVMMemory &#8211; ReservedOsMemory)。</p><p>结合上面例子我们来对公式说明一下：<br
/> MaxProcessMemory 在32位的 windows下是 2G<br
/> JVMMemory   eclipse默认启动的程序内存是64M<br
/> ReservedOsMemory  一般是130M左右<br
/> ThreadStackSize 32位 JDK 1.6默认的stacksize 325K左右<br
/> 公式如下：<br
/> (2*1024*1024-64*1024-130*1024)/325 = 5841<br
/> 公式计算所得5841，和实践5602基本一致（有偏差是因为ReservedOsMemory不能很精确）</p><p>由公式得出结论：你给JVM内存越多，那么你能创建的线程越少，越容易发生java.lang.OutOfMemoryError: unable to create new native thread。</p><p>咦，有点背我们的常理，恩，让我们来验证一下,依旧使用上面的测试程序，加上下面的JVM参数，测试结果如下：<br
/> ThreadStackSize      JVMMemory                    能创建的线程数<br
/> 默认的325K             -Xms1024m -Xmx1024m    i = 2655<br
/> 默认的325K             -Xms1224m -Xmx1224m    i = 2072<br
/> 默认的325K             -Xms1324m -Xmx1324m    i = 1753<br
/> 默认的325K             -Xms1424m -Xmx1424m    i = 1435<br
/> -Xss1024k             -Xms1424m -Xmx1424m    i = 452<br
/> 完全和公式一致。</p><p>三、解决问题：<br
/> 1，	如果程序中有bug，导致创建大量不需要的线程或者线程没有及时回收，那么必须解决这个bug，修改参数是不能解决问题的。<br
/> 2，	如果程序确实需要大量的线程，现有的设置不能达到要求，那么可以通过修改MaxProcessMemory，JVMMemory，ThreadStackSize这三个因素，来增加能创建的线程数：<br
/> a, MaxProcessMemory 使用64位操作系统<br
/> b, JVMMemory   减少JVMMemory的分配<br
/> c, ThreadStackSize  减小单个线程的栈大小<br
/> 转自：http://sesame.iteye.com/blog/622670</p> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/854.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>优化和加速PHP代码</title><link>http://aaronw.me/static/825.html</link> <comments>http://aaronw.me/static/825.html#comments</comments> <pubDate>Mon, 14 Mar 2011 06:15:59 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[eaccelerator]]></category> <category><![CDATA[php]]></category> <category><![CDATA[优化]]></category> <category><![CDATA[加速]]></category> <guid
isPermaLink="false">http://aaronw.me/?p=825</guid> <description><![CDATA[现在有很多开源的好程序，比如cacti,centreon等都是用php开发的！php在web开发方面还是使用的比较多的！我们以前做过页游，使用的就是php，可以说是把php的潜力挖掘的差不多了！php代码优化也是有很多的，比如Zend Optimizer和eaccelerator，下面是安装eaccelerator的方法 1、下在源代码 wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2 cd eaccelerator-0.9.6.1 /aaronw/soft/php/bin/phpize ./configure &#8211;enable-eaccelerator &#8211;with-php-config=/aaronw/soft/php/bin/php-config make &#038;&#038; make install 我用的是burst.net的主机，该主机安装的时候提示缺少autoconf。提示如下： Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script. autoconf的安装： http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.bz2 tar xjf autoconf-latest.tar.bz2 cd autoconf-latest ./configure make &#038;&#038; make install 安装完成后就修改php.ini文件，加入下面的代码： extension=”eaccelerator.so” eaccelerator.shm_size=”16&#8243; eaccelerator.cache_dir=”/tmp/eaccelerator” eaccelerator.enable=”1&#8243; eaccelerator.optimizer=”1&#8243; eaccelerator.check_mtime=”1&#8243; eaccelerator.debug=”0&#8243; eaccelerator.log_file = [...]]]></description> <content:encoded><![CDATA[<p>现在有很多开源的好程序，比如cacti,centreon等都是用php开发的！php在web开发方面还是使用的比较多的！我们以前做过页游，使用的就是php，可以说是把php的潜力挖掘的差不多了！php代码优化也是有很多的，比如Zend Optimizer和eaccelerator，下面是安装eaccelerator的方法<br
/> 1、下在源代码</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2<br
/> cd eaccelerator-0.9.6.1<br
/> /aaronw/soft/php/bin/phpize<br
/> ./configure &#8211;enable-eaccelerator &#8211;with-php-config=/aaronw/soft/php/bin/php-config<br
/> make &#038;&#038; make install</div><p>我用的是burst.net的主机，该主机安装的时候提示缺少autoconf。提示如下：</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">Cannot find autoconf. Please check your autoconf installation and the<br
/> $PHP_AUTOCONF environment variable. Then, rerun this script.</div><p>autoconf的安装：</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.bz2<br
/> tar xjf autoconf-latest.tar.bz2<br
/> cd autoconf-latest<br
/> ./configure<br
/> make &#038;&#038; make install</div><p>安装完成后就修改php.ini文件，加入下面的代码：</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">extension=”eaccelerator.so”<br
/> eaccelerator.shm_size=”16&#8243;<br
/> eaccelerator.cache_dir=”/tmp/eaccelerator”<br
/> eaccelerator.enable=”1&#8243;<br
/> eaccelerator.optimizer=”1&#8243;<br
/> eaccelerator.check_mtime=”1&#8243;<br
/> eaccelerator.debug=”0&#8243;<br
/> eaccelerator.log_file = “/var/log/eaccelerator_log”<br
/> eaccelerator.filter=”"<br
/> eaccelerator.shm_max=”0&#8243;<br
/> eaccelerator.shm_ttl=”0&#8243;<br
/> eaccelerator.shm_prune_period=”0&#8243;<br
/> eaccelerator.shm_only=”0&#8243;<br
/> eaccelerator.compress=”1&#8243;<br
/> eaccelerator.compress_level=”9&#8243;</div><p>然后输入/aaronw/soft/php/bin/php -i |grep eaccelerator命令，有提示就说明该模块已加载，当然你也可以在目录里建立一个php文件，内容为<?php phpinfo()?>通过浏览器访问该文件也可以看到！</p> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/825.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>检测网站对浏览器的兼容的工具</title><link>http://aaronw.me/static/827.html</link> <comments>http://aaronw.me/static/827.html#comments</comments> <pubDate>Fri, 11 Mar 2011 01:30:43 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[模拟]]></category> <category><![CDATA[浏览器]]></category> <category><![CDATA[网站兼容]]></category> <guid
isPermaLink="false">http://aaronw.me/?p=827</guid> <description><![CDATA[你从你的统计分析系统中可以看到访问你网站的浏览器类型，但是你自己却没有这么多的浏览器去测试他，怎么办？这是一个普遍的问题，因为现在有着很多的操作系统和浏览器，你得网站必须得兼容它们，但这绝不是一件容易的事。通过下列工具，你可以了解你得网站在各种浏览器上的显示效果。 1 . Browsershots 能给出你的网站在不同浏览器下显示效果的截图，包括：Firefox 和 Internet Explorer （ Windows ）、Firefox 和 Safari （ Mac OS X ）、Iceweasal 和 Konqueror （ Linux ），但是结果要在 1 &#8211; 3 小时后才能出来。 http://browsershots.org/ 2 . IE NetRenderer 实时生成你的网站在 Internet Explorer 5.5 、6.0 和 7.0 下的截图。 http://ipinfo.info/netrenderer/ 3 . MobiReady Report 分析使用手机访问网页的兼容性问题，会生成一份详细的报告，并提供了在两种不同类型的手机浏览器上你得网站可能显示的样子。 http://ready.mobi/launch.jsp?locale=en_EN 文章转自：http://www.bdky.cn/Tools/32.htm]]></description> <content:encoded><![CDATA[<p>你从你的统计分析系统中可以看到访问你网站的浏览器类型，但是你自己却没有这么多的浏览器去测试他，怎么办？这是一个普遍的问题，因为现在有着很多的操作系统和浏览器，你得网站必须得兼容它们，但这绝不是一件容易的事。通过下列工具，你可以了解你得网站在各种浏览器上的显示效果。</p><p>1 . Browsershots 能给出你的网站在不同浏览器下显示效果的截图，包括：Firefox 和 Internet Explorer （ Windows ）、Firefox 和 Safari （ Mac OS X ）、Iceweasal 和 Konqueror （ Linux ），但是结果要在 1 &#8211; 3 小时后才能出来。</p><p>http://browsershots.org/</p><p>2 . IE NetRenderer 实时生成你的网站在 Internet Explorer 5.5 、6.0 和 7.0 下的截图。</p><p>http://ipinfo.info/netrenderer/</p><p>3 . MobiReady Report 分析使用手机访问网页的兼容性问题，会生成一份详细的报告，并提供了在两种不同类型的手机浏览器上你得网站可能显示的样子。</p><p>http://ready.mobi/launch.jsp?locale=en_EN</p><p>文章转自：http://www.bdky.cn/Tools/32.htm</p> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/827.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>用自己的邮箱注册MSN ID</title><link>http://aaronw.me/static/674.html</link> <comments>http://aaronw.me/static/674.html#comments</comments> <pubDate>Wed, 01 Sep 2010 13:51:26 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[id]]></category> <category><![CDATA[msn]]></category> <guid
isPermaLink="false">http://www.aaronw.cn/?p=674</guid> <description><![CDATA[https://accountservices.passport.net/reg.srf?id=9&#038;cbid=956&#038;sl=1&#038;lc=2052]]></description> <content:encoded><![CDATA[<p>https://accountservices.passport.net/reg.srf?id=9&#038;cbid=956&#038;sl=1&#038;lc=2052</p> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/674.html/feed</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>WSGI、flup、fastcgi、web.py的关系</title><link>http://aaronw.me/static/630.html</link> <comments>http://aaronw.me/static/630.html#comments</comments> <pubDate>Sat, 27 Feb 2010 14:20:17 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[fastcgi]]></category> <category><![CDATA[flup]]></category> <category><![CDATA[python]]></category> <category><![CDATA[web.py]]></category> <category><![CDATA[WSGI]]></category> <guid
isPermaLink="false">http://www.aaronw.cn/?p=630</guid> <description><![CDATA[最近一直在学习python，了解了python的基本语法和编写规则！想用python写一个网络接口，但是不知道怎么下手！关键是还有很概念没有搞明白，刚看了一篇文章上有这方面的解释，现在转载到这里与大家分享！ Apache/lighttpd: 相当于一个request proxy，根据配置，把不同的请求转发给不同的server处理，例如静态的文件请求自己处理，这个时候它就像一个web server，对于fastcgi/python这样的请求转发给flup这样的Server/Gateway进行处理 flup: 一个用python写的web server，也就是cgi中所谓的Server/Gateway，它负责接受apache/lighttpd转发的请求，并调用你写的程序 (application)，并将application处理的结果返回到apache/lighttpd fastcgi: apache/lighttpd的一个模块，虽然flup可以作为一个独立的web server使用，但是对于浏览器请求处理一般都交给 apache/lighttpd处理，然后由apache/lighttpd转发给flup处理，这样就需要一个东西来把apache/lighttpd跟flup联系起来，这个东西就是fastcgi，它通过环境变量以及socket将客户端请求的信息传送给flup并接收flup返回的结果 web.py: 应该说有了上面的东西你就可以开始编写你的web程序了，但是问题是你就要自己处理浏览器的输入输出，还有cookie、session、模板等各种各样的问题了，web.py的作用就是帮你把这些工作都做好了，它就是所谓的web framework，另外一个出名的是django，不过感觉太复杂了，web.py差不多就够用了 WSGI : 除了flup Server/Gateway外还有很多其他人的写的Server/Gateway, 这个时候就会出问题了，如果你在flup上写了一个程序，现在由于各种原因你要使用xdly了，这个时候你的程序也许就要做很多痛苦的修改才能使用 xdly server了，WSGI就是一个规范，他规范了flup这个服务应该怎么写，应该使用什么方式什么参数调用你写的程序(application)等，当然同时也规范你的程序应该怎么写了，这样的话，只要flup跟xdly都遵守WSGI的话，你的程序在两个上面都可以使用了，flup就是一个WSGI server 转自豆瓣网]]></description> <content:encoded><![CDATA[<p>最近一直在学习python，了解了python的基本语法和编写规则！想用python写一个网络接口，但是不知道怎么下手！关键是还有很概念没有搞明白，刚看了一篇文章上有这方面的解释，现在转载到这里与大家分享！</p><p>Apache/lighttpd: 相当于一个request proxy，根据配置，把不同的请求转发给不同的server处理，例如静态的文件请求自己处理，这个时候它就像一个web server，对于fastcgi/python这样的请求转发给flup这样的Server/Gateway进行处理</p><p>flup: 一个用python写的web server，也就是cgi中所谓的Server/Gateway，它负责接受apache/lighttpd转发的请求，并调用你写的程序 (application)，并将application处理的结果返回到apache/lighttpd</p><p>fastcgi: apache/lighttpd的一个模块，虽然flup可以作为一个独立的web server使用，但是对于浏览器请求处理一般都交给 apache/lighttpd处理，然后由apache/lighttpd转发给flup处理，这样就需要一个东西来把apache/lighttpd跟flup联系起来，这个东西就是fastcgi，它通过环境变量以及socket将客户端请求的信息传送给flup并接收flup返回的结果</p><p>web.py: 应该说有了上面的东西你就可以开始编写你的web程序了，但是问题是你就要自己处理浏览器的输入输出，还有cookie、session、模板等各种各样的问题了，web.py的作用就是帮你把这些工作都做好了，它就是所谓的web framework，另外一个出名的是django，不过感觉太复杂了，web.py差不多就够用了</p><p>WSGI : 除了flup Server/Gateway外还有很多其他人的写的Server/Gateway, 这个时候就会出问题了，如果你在flup上写了一个程序，现在由于各种原因你要使用xdly了，这个时候你的程序也许就要做很多痛苦的修改才能使用 xdly server了，WSGI就是一个规范，他规范了flup这个服务应该怎么写，应该使用什么方式什么参数调用你写的程序(application)等，当然同时也规范你的程序应该怎么写了，这样的话，只要flup跟xdly都遵守WSGI的话，你的程序在两个上面都可以使用了，flup就是一个WSGI server</p><p>转自豆瓣网</p> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/630.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[转载]在wordpress中插入flash和音乐文件[无需插件]</title><link>http://aaronw.me/static/500.html</link> <comments>http://aaronw.me/static/500.html#comments</comments> <pubDate>Thu, 29 Oct 2009 13:16:46 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[flash]]></category> <category><![CDATA[wp插件]]></category> <guid
isPermaLink="false">http://www.aaronw.cn/?p=500</guid> <description><![CDATA[今天查看部落格的PV的时候,发现关键字Hippop的搜索就顺便看了看我的那篇日志,原来那篇日志是引用了56的一个flash视频,因为coolplayer的作者不更新,而该插件又不支持高版本的WP,所以该日志不能显示,于是我就找个替代插件,发现了这个不需插件也能播放flash的日志,现转载至此! 插入FLASH: &#60;embed play=”true” quality=”best” height=”500&#8243; width=”500&#8243; src=”FLASH&#8217;S URL” pluginspage=”http://www.macromedia.com/go/getflashplayer”&#62;&#60;/embed&#62; 插入音乐文件: &#60;embed type=”application/x-shockwave-flash” width=”100&#8243; height=”100&#8243; src=”AUDIOURL”&#62;&#60;/embed&#62; 媒体标签介绍: 图文并茂的帖子还需要有音乐、影像等媒体做衬托，帖子的整体效果才达到极致。虽然论坛一般都提供插入媒体文件的方法，但那是很有局限的，并不能满足特殊的要求。为此，有必要学习和掌握媒体标签的使用方法。 首先我们先了解一下三种主要的音乐格式。这些音乐格式都是当前网络上较为流行的，它们更被广泛地应用于论坛。 出于编写代码的要求，我们这里以支持这些音乐的播放机为划分音乐格式的依据，这种划分方法以前也是有人使用过的。 第一种：WMP格式。 WMP即为Windows Media Player的缩写，是微软公司的媒体播放机，它集成在Windows系统里，可以格外免费升级（网上一般都有下载链接）。其网络ActiveX插件为 Windows Media Player。当前WMP所支持的音乐及影像媒体文件的格式主要有（仅介绍网络上常用的格式，下同）： MP3（音频）、WMA（音频）、WMV（视频）、AVI（视频）、MPEG（电影）、WAV（音频）、MIDI（音频）、ASF（视频）、AIFF（音频）、AU（音频）、wpl文件（WMP播放列表文件）、m3u文件（Winamp的播放列表文件）等。 第二种：RP格式。 这是有着悠久历史的一种媒体格式，宽带普及以前的网络媒体文件的老大，由RealNetworks公司开发。它当前的网络ActiveX插件是Real Player G2 Control。常见文件后缀名为： rax、ram、rmm、rsml、rvx、rmj、rmx、rjt、rm REAL也支持MP3、MIDI、Wav等格式的媒体文件，但它的播放效果没有WMP的好，所以我们不把它列入RP格式。 第三种：Flash格式。这是Macromedia公司开发的结合音频视频在一块的媒体格式。其插件为Shock Wave。文件后缀名为.swf。 弄清楚以上文件格式后，我们就可以使用标签来编写播放媒体文件的代码了。语法： 格式一： 格式二： 格式一适用于显示播放界面的情形，格式二适用于隐藏播放界面的情形。 下面分别讲解各参数的取值规定和要求。 src：媒体音乐地址。地址要完整、有效。如果文件名包含非英文字符，建议整个地址用小角双引号引起来。 autostart：是否自动播放（即一打开帖子就播放与否）。true为自动，false为手动。 loop:是否循环播放。true为循环，false只播放一次；也可用正整数表示播放多少次，比如等于3表示播放3次。 width:播放界面的宽度。建议在300到500之间。 height:播放界面的度度。这个很讲究。针对音频文件，视频界面是没有必要出现的，为此，WMP播放机设置为45非常合适，RP播放机为85较好；有视频的则根据情况设置。 hidden:是否隐藏播放界面。格式二语法式样中设置为true，即不可见，如果设置为false，则表示可见，但若不设置width和 height，它的样子是不好看的。有不少人也用width=0 height=0来隐藏播放机的播放界面，其是这样是隐藏不了的，WMP有一个点，RP有一条竖线。 type:这是一个重要的值，用于指播放机的插件类型，一些论坛会根据有效的src自动给出type类型（这类论坛我们编写代码时可以省略type），但也有的论坛不会自动给出类型，需要用户指定。type的取值依据和取值规定是： WMP类：audio/mpeg (wma的可用audio/x-ms-wma，不过都一样) RP类：application/octet-stream Flash：application/x-shockwave-flash [...]]]></description> <content:encoded><![CDATA[<p>今天查看部落格的PV的时候,发现关键字Hippop的搜索就顺便看了看我的那篇日志,原来那篇日志是引用了56的一个flash视频,因为coolplayer的作者不更新,而该插件又不支持高版本的WP,所以该日志不能显示,于是我就找个替代插件,发现了这个不需插件也能播放flash的日志,现转载至此!<br
/> 插入FLASH:</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">&lt;embed play=”true” quality=”best” height=”500&#8243; width=”500&#8243; src=”FLASH&#8217;S URL” pluginspage=”http://www.macromedia.com/go/getflashplayer”&gt;&lt;/embed&gt;</div><p>插入音乐文件:</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;">&lt;embed type=”application/x-shockwave-flash” width=”100&#8243; height=”100&#8243; src=”AUDIOURL”&gt;&lt;/embed&gt;</div><p>媒体标签介绍:<br
/> 图文并茂的帖子还需要有音乐、影像等媒体做衬托，帖子的整体效果才达到极致。虽然论坛一般都提供插入媒体文件的方法，但那是很有局限的，并不能满足特殊的要求。为此，有必要学习和掌握媒体标签的使用方法。</p><p>首先我们先了解一下三种主要的音乐格式。这些音乐格式都是当前网络上较为流行的，它们更被广泛地应用于论坛。</p><p>出于编写代码的要求，我们这里以支持这些音乐的播放机为划分音乐格式的依据，这种划分方法以前也是有人使用过的。<br
/> <span
id="more-500"></span><br
/> 第一种：WMP格式。</p><p>WMP即为Windows Media Player的缩写，是微软公司的媒体播放机，它集成在Windows系统里，可以格外免费升级（网上一般都有下载链接）。其网络ActiveX插件为 Windows Media Player。当前WMP所支持的音乐及影像媒体文件的格式主要有（仅介绍网络上常用的格式，下同）：</p><p>MP3（音频）、WMA（音频）、WMV（视频）、AVI（视频）、MPEG（电影）、WAV（音频）、MIDI（音频）、ASF（视频）、AIFF（音频）、AU（音频）、wpl文件（WMP播放列表文件）、m3u文件（Winamp的播放列表文件）等。</p><p>第二种：RP格式。</p><p>这是有着悠久历史的一种媒体格式，宽带普及以前的网络媒体文件的老大，由RealNetworks公司开发。它当前的网络ActiveX插件是Real Player G2 Control。常见文件后缀名为：</p><p>rax、ram、rmm、rsml、rvx、rmj、rmx、rjt、rm</p><p>REAL也支持MP3、MIDI、Wav等格式的媒体文件，但它的播放效果没有WMP的好，所以我们不把它列入RP格式。</p><p>第三种：Flash格式。这是Macromedia公司开发的结合音频视频在一块的媒体格式。其插件为Shock Wave。文件后缀名为.swf。</p><p>弄清楚以上文件格式后，我们就可以使用标签来编写播放媒体文件的代码了。语法：</p><p>格式一：</p><p>格式二：</p><p>格式一适用于显示播放界面的情形，格式二适用于隐藏播放界面的情形。</p><p>下面分别讲解各参数的取值规定和要求。</p><p>src：媒体音乐地址。地址要完整、有效。如果文件名包含非英文字符，建议整个地址用小角双引号引起来。</p><p>autostart：是否自动播放（即一打开帖子就播放与否）。true为自动，false为手动。</p><p>loop:是否循环播放。true为循环，false只播放一次；也可用正整数表示播放多少次，比如等于3表示播放3次。</p><p>width:播放界面的宽度。建议在300到500之间。</p><p>height:播放界面的度度。这个很讲究。针对音频文件，视频界面是没有必要出现的，为此，WMP播放机设置为45非常合适，RP播放机为85较好；有视频的则根据情况设置。</p><p>hidden:是否隐藏播放界面。格式二语法式样中设置为true，即不可见，如果设置为false，则表示可见，但若不设置width和 height，它的样子是不好看的。有不少人也用width=0 height=0来隐藏播放机的播放界面，其是这样是隐藏不了的，WMP有一个点，RP有一条竖线。</p><p>type:这是一个重要的值，用于指播放机的插件类型，一些论坛会根据有效的src自动给出type类型（这类论坛我们编写代码时可以省略type），但也有的论坛不会自动给出类型，需要用户指定。type的取值依据和取值规定是：</p><p>WMP类：audio/mpeg (wma的可用audio/x-ms-wma，不过都一样)</p><p>RP类：application/octet-stream</p><p>Flash：application/x-shockwave-flash</p><p>注：Flash还可指定wmode=transparent表示背景透明，quality=high表示以高档画质播放，pluginspage=http://www.macromedia.com/go/getflashplayer指定插件下载地址（可省略）。</p><p>类型的指定尽量不要弄错，否则极可能出现有些朋友访问你的帖子时不能正常欣赏到音乐和影像媒体。</p><p>对于支持object的论坛，建议使用object来播放媒体文件，它得到的效果更能令人满意。因其代码较多，不便记忆，这里就不介绍了，但你可以通过FP或DW插入Web组件的方法并对ActiveX控件进行相应的设置得到完整的代码。<br
/> 原文地址:http://www.a18zhizao.cn/y2008/99_在wordpress中插入flash和音乐文件无需插件.html</p> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/500.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Firefox临时文件的位置和修改</title><link>http://aaronw.me/static/488.html</link> <comments>http://aaronw.me/static/488.html#comments</comments> <pubDate>Mon, 26 Oct 2009 07:28:05 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[cache]]></category> <category><![CDATA[firefox]]></category> <category><![CDATA[temp]]></category> <guid
isPermaLink="false">http://www.aaronw.cn/?p=488</guid> <description><![CDATA[Firefox临时文件通常存放在“C:\Documents and Settings\你的用户名\Application Data\Mozilla\Firefox\Profiles\.default\Cache”一般可以通过：about:cache来查看。 如果路径被篡改，可以在地址栏输入“about:cache”命令回车，查看临时文件所在的具体位置。我们也能自己修改Firefox临时文件的存放路径：新建一个标签页在地质栏中输入“about:config”回车，在Config列表中点击右键，选择“新建→字符串”，在弹出的“新的字符串值”对话框“首选项名称”中输入“browser.cache.disk.parent_directory”确定，在下个窗口中输入字符串的值，即新的文件路径，确定后在Config列表中看到新建的这个字符串，并可以随时修改这个值改变路径 本文转载自互联网,原文地址:http://www.cnblogs.com/qlight/archive/2008/09/20/1294923.html]]></description> <content:encoded><![CDATA[<p>Firefox临时文件通常存放在“C:\Documents and Settings\你的用户名\Application Data\Mozilla\Firefox\Profiles\.default\Cache”一般可以通过：about:cache来查看。</p><p>如果路径被篡改，可以在地址栏输入“about:cache”命令回车，查看临时文件所在的具体位置。我们也能自己修改Firefox临时文件的存放路径：新建一个标签页在地质栏中输入“about:config”回车，在Config列表中点击右键，选择“新建→字符串”，在弹出的“新的字符串值”对话框“首选项名称”中输入“browser.cache.disk.parent_directory”确定，在下个窗口中输入字符串的值，即新的文件路径，确定后在Config列表中看到新建的这个字符串，并可以随时修改这个值改变路径</p><p>本文转载自互联网,原文地址:http://www.cnblogs.com/qlight/archive/2008/09/20/1294923.html</p> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/488.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>WordPress自动升级和plugin插件更新的问题</title><link>http://aaronw.me/static/446.html</link> <comments>http://aaronw.me/static/446.html#comments</comments> <pubDate>Tue, 22 Sep 2009 02:01:08 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[Wordpress插件]]></category> <guid
isPermaLink="false">http://www.aaronw.cn/?p=446</guid> <description><![CDATA[WordPress2.7的一键自动更新很好用。可是在使用Wordpress插件自动更新和安装时，有时发现需要提示输入ftp信息： FTP Connection Information Host: Username: Password: 这是Wordpress的一个bug，在某些文件系统上有问题从wordpress2.5到2.7都一直没有更新，在国外网站上查了下修复方法如下： 1. 编辑wp-admin/includes/file.php找到以下这行 if(getmyuid()==fileowner($tempFile)){ 把这句中把getmyuid改成posix_getuid 2. 完成以上修改应该不会再要输入ftp信息了，但是有时候会告知目录不对，在wp-content目录下建立upgrade目录 chown www:www wp-content/upgrade chmod +w wp-content/upgrade 做完以上设置应该就可以自动更新了。]]></description> <content:encoded><![CDATA[<p>WordPress2.7的一键自动更新很好用。可是在使用Wordpress插件自动更新和安装时，有时发现需要提示输入ftp信息：<br
/> <code>FTP Connection Information<br
/> Host:<br
/> Username:<br
/> Password:</code></p><p>这是Wordpress的一个bug，在某些文件系统上有问题从wordpress2.5到2.7都一直没有更新，在国外网站上查了下修复方法如下：</p><p>1. 编辑wp-admin/includes/file.php找到以下这行<br
/> <code>if(getmyuid()==fileowner($tempFile)){</code><br
/> 把这句中把getmyuid改成posix_getuid</p><p>2. 完成以上修改应该不会再要输入ftp信息了，但是有时候会告知目录不对，在wp-content目录下建立upgrade目录<br
/> <code>chown www:www wp-content/upgrade<br
/> chmod +w wp-content/upgrade</code><br
/> 做完以上设置应该就可以自动更新了。</p> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/446.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>[转载]wordpress 常用函数</title><link>http://aaronw.me/static/407.html</link> <comments>http://aaronw.me/static/407.html#comments</comments> <pubDate>Fri, 19 Jun 2009 07:37:30 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[wordpress]]></category> <category><![CDATA[常用函数]]></category> <guid
isPermaLink="false">http://www.aaronw.cn/?p=407</guid> <description><![CDATA[打算自己学着写个主题,所以就找了些wordpress 常用函数,下面这些是我转载的. 转载地址http://blogsdiy.org/2007-12/wordpress-template-handbook Header部分常用到的PHP函数 &#60;? php bloginfo(&#8216;name&#8217;); ?&#62; 博客名称(Title) &#60;? php bloginfo(&#8216;stylesheet_url&#8217;); ?&#62; CSS文件路径 &#60;? php bloginfo(&#8216;pingback_url&#8217;); ?&#62; PingBack Url &#60;? php bloginfo(&#8216;template_url&#8217;); ?&#62; 模板文件路径 &#60;? php bloginfo(&#8216;version&#8217;); ?&#62; WordPress版本 &#60;? php bloginfo(&#8216;atom_url&#8217;); ?&#62; Atom Url &#60;? php bloginfo(&#8216;rss2_url&#8217;); ?&#62; RSS 2.o Url &#60;? php bloginfo(&#8216;url&#8217;); ?&#62; 博客 Url &#60;? php bloginfo(&#8216;html_type&#8217;); ?&#62; 博客网页Html类型 &#60;? [...]]]></description> <content:encoded><![CDATA[<p>打算自己学着写个主题,所以就找了些wordpress 常用函数,下面这些是我转载的.</p><p>转载地址http://blogsdiy.org/2007-12/wordpress-template-handbook</p><p><strong>Header部分常用到的PHP函数</strong></p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;"><div
id="_mcePaste">&lt;? php bloginfo(&#8216;name&#8217;); ?&gt;	博客名称(Title)</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;stylesheet_url&#8217;); ?&gt;	CSS文件路径</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;pingback_url&#8217;); ?&gt;	PingBack Url</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;template_url&#8217;); ?&gt;	模板文件路径</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;version&#8217;); ?&gt;	WordPress版本</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;atom_url&#8217;); ?&gt;	Atom Url</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;rss2_url&#8217;); ?&gt;	RSS 2.o Url</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;url&#8217;); ?&gt;	博客 Url</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;html_type&#8217;); ?&gt;	博客网页Html类型</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;charset&#8217;); ?&gt;	博客网页编码</div><div
id="_mcePaste">&lt;? php bloginfo(&#8216;description&#8217;); ?&gt;	博客描述</div><div
id="_mcePaste">&lt;? php wp_title(); ?&gt;	特定内容页(Post/Page)的标题</div></div><p><span
id="more-407"></span><br
/> <strong>模板常用的PHP函数及命令</strong></p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;"><div
id="_mcePaste"><div
id="_mcePaste">&lt;? php get_header(); ?&gt;<span
style="white-space: pre;"> </span>调用Header模板</div><div
id="_mcePaste">&lt;? php get_sidebar(); ?&gt;<span
style="white-space: pre;"> </span>调用Sidebar模板</div><div
id="_mcePaste">&lt;? php get_footer(); ?&gt;<span
style="white-space: pre;"> </span>调用Footer模板</div><div
id="_mcePaste">&lt;? php the_content(); ?&gt;<span
style="white-space: pre;"> </span>显示内容(Post/Page)</div><div
id="_mcePaste">&lt;? php if(have_posts())<span
style="white-space: pre;"> </span>?&gt;<span
style="white-space: pre;"> </span>检查是否存在Post/Page</div><div
id="_mcePaste">&lt;? php while(have_posts())<span
style="white-space: pre;"> </span>the_post(); ?&gt;<span
style="white-space: pre;"> </span>如果存在Post/Page则予以显示</div><div
id="_mcePaste">&lt;? php endwhile; ?&gt;<span
style="white-space: pre;"> </span>While 结束</div><div
id="_mcePaste">&lt;? php endif; ?&gt;<span
style="white-space: pre;"> </span>If 结束</div><div
id="_mcePaste">&lt;? php the_time(&#8216;字符串&#8217;) ?&gt;<span
style="white-space: pre;"> </span>显示时间，时间格式由“字符串”参数决定，具体参考PHP手册</div><div
id="_mcePaste">&lt;? php comments_popup_link(); ?&gt;<span
style="white-space: pre;"> </span>正文中的留言链接。</div><div
id="_mcePaste">如果使用 comments_popup_script()，则留言会在新窗口中打开，反之，则在当前窗口打开</div><div
id="_mcePaste">&lt;? php the_title(); ?&gt;<span
style="white-space: pre;"> </span>内容页(Post/Page)标题</div><div
id="_mcePaste">&lt;? php the_permalink() ?&gt;<span
style="white-space: pre;"> </span>内容页(Post/Page) Url</div><div
id="_mcePaste">&lt;? php the_category(&#8216;, &#8216;) ?&gt;<span
style="white-space: pre;"> </span>特定内容页(Post/Page)所属Category</div><div
id="_mcePaste">&lt;? php the_author(); ?&gt;<span
style="white-space: pre;"> </span>作者</div><div
id="_mcePaste">&lt;? php the_ID(); ?&gt;<span
style="white-space: pre;"> </span>特定内容页(Post/Page) ID</div><div
id="_mcePaste">&lt;? php edit_post_link(); ?&gt;<span
style="white-space: pre;"> </span>如果用户已登录并具有权限，显示编辑链接</div><div
id="_mcePaste">&lt;? php get_links_list(); ?&gt;<span
style="white-space: pre;"> </span>显示Blogroll中的链接</div><div
id="_mcePaste">&lt;? php comments_template(); ?&gt;<span
style="white-space: pre;"> </span>调用留言/回复模板</div><div
id="_mcePaste">&lt;? php wp_list_pages(); ?&gt;<span
style="white-space: pre;"> </span>显示Page列表</div><div
id="_mcePaste">&lt;? php wp_list_categories(); ?&gt;<span
style="white-space: pre;"> </span>显示Categories列表</div><div
id="_mcePaste">&lt;? php next_post_link(&#8216; %link &#8216;); ?&gt;<span
style="white-space: pre;"> </span>下一篇文章链接</div><div
id="_mcePaste">&lt;? php previous_post_link(&#8216;%link&#8217;); ?&gt;<span
style="white-space: pre;"> </span>上一篇文章链接</div><div
id="_mcePaste">&lt;? php get_calendar(); ?&gt;<span
style="white-space: pre;"> </span>日历</div><div
id="_mcePaste">&lt;? php wp_get_archives() ?&gt;<span
style="white-space: pre;"> </span>显示内容存档</div><div
id="_mcePaste">&lt;? php posts_nav_link(); ?&gt;<span
style="white-space: pre;"> </span>导航，显示上一篇/下一篇文章链接</div><div
id="_mcePaste">&lt;? php include(TEMPLATEPATH . &#8216;/文件名&#8217;); ?&gt;<span
style="white-space: pre;"> </span>嵌入其他文件，可为定制的模板或其他类型文件</div></div></div><p>与模板相关的其他函数</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;"><div
id="_mcePaste"><div
id="_mcePaste">&lt;? php _e(&#8216;Message&#8217;); ?&gt;<span
style="white-space: pre;"> </span>输出相应信息</div><div
id="_mcePaste">&lt;? php wp_register(); ?&gt;<span
style="white-space: pre;"> </span>显示注册链接</div><div
id="_mcePaste">&lt;? php wp_loginout(); ?&gt;<span
style="white-space: pre;"> </span>显示登录/注销链接</div><div
id="_mcePaste">&lt; !&#8211; next page &#8211;&gt;<span
style="white-space: pre;"> </span>将当前内容分页</div><div
id="_mcePaste">&lt; !&#8211; more &#8211;&gt;<span
style="white-space: pre;"> </span>将当前内容截断，以不在主页/目录页显示全部内容</div><div
id="_mcePaste">&lt;? php timer_stop(1); ?&gt;<span
style="white-space: pre;"> </span>网页加载时间(秒)</div><div
id="_mcePaste">&lt;? php echo get_num_queries(); ?&gt;<span
style="white-space: pre;"> </span>网页加载查询量</div></div></div> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/407.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>WordPress超酷分页导航插件—Paginator 3000</title><link>http://aaronw.me/static/396.html</link> <comments>http://aaronw.me/static/396.html#comments</comments> <pubDate>Wed, 17 Jun 2009 10:21:00 +0000</pubDate> <dc:creator>Aaron.wang</dc:creator> <category><![CDATA[WEB]]></category> <category><![CDATA[Paginator 3000]]></category> <category><![CDATA[Wordpress插件]]></category> <category><![CDATA[分页导航]]></category> <guid
isPermaLink="false">http://www.aaronw.cn/?p=396</guid> <description><![CDATA[今天上网无意间浏览到一个部落格,发现他的分页导航很不错,名字叫Paginator 3000。下载安装发现很不错,留个记录吧! 安装流程:下载、上传、激活、插入代码 1、下载   Paginator 3000 2、解压后上传到wp-content\plugins目录里面 3、进入管理后台选择插件&#8212;&#62;已安装&#8212;-&#62;Paginator&#8212;-&#62;启用 4、修改主题的index.php页面,找到div class=”navigation”后按下面代码修改 &#60;div&#62; &#60;?php if(function_exists(&#8216;wp_paginator&#8217;)) { wp_paginator(); } ?&#62; &#60;?php if(function_exists(&#8216;wp_pagenavi&#8217;)) : { wp_pagenavi(); } ?&#62; &#60;?php else : ?&#62; &#60;?php endif; ?&#62; &#60;/div&#62;]]></description> <content:encoded><![CDATA[<p>今天上网无意间浏览到一个部落格,发现他的分页导航很不错,名字叫Paginator 3000。下载安装发现很不错,留个记录吧!</p><p>安装流程:下载、上传、激活、插入代码</p><p>1、下载   <a
href="http://downloads.wordpress.org/plugin/paginator.zip" target="_blank">Paginator 3000</a></p><p>2、解压后上传到wp-content\plugins目录里面</p><p>3、进入管理后台选择插件&#8212;&gt;已安装&#8212;-&gt;Paginator&#8212;-&gt;启用</p><p>4、修改主题的index.php页面,找到div class=”navigation”后按下面代码修改</p><div
style="border: 1px dashed #000000; margin: 5px 5px 0px; padding: 3px; background-color: #ffffff;"><div
id="_mcePaste">&lt;div&gt;</div><div
id="_mcePaste">&lt;?php if(function_exists(&#8216;wp_paginator&#8217;)) { wp_paginator(); } ?&gt;</div><div
id="_mcePaste">&lt;?php if(function_exists(&#8216;wp_pagenavi&#8217;)) : { wp_pagenavi(); } ?&gt;</div><div
id="_mcePaste">&lt;?php else : ?&gt;</div><div
id="_mcePaste">&lt;?php endif; ?&gt;</div><div
id="_mcePaste">&lt;/div&gt;</div></div> ]]></content:encoded> <wfw:commentRss>http://aaronw.me/static/396.html/feed</wfw:commentRss> <slash:comments>5</slash:comments> </item> </channel> </rss>
