<?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>Proguru &#124; IT tech,review and news</title>
	<atom:link href="http://blog.pcware.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.pcware.cn</link>
	<description>Just for Freedom</description>
	<lastBuildDate>Thu, 29 Jul 2010 06:35:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>不基于GAE构建birdnest twitter api proxy</title>
		<link>http://blog.pcware.cn/it/misc/birdnest_twitter_api_proxy.html</link>
		<comments>http://blog.pcware.cn/it/misc/birdnest_twitter_api_proxy.html#comments</comments>
		<pubDate>Thu, 29 Jul 2010 05:25:25 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=859</guid>
		<description><![CDATA[其实只要空间支持python都可以使用birdnest搭建twitter api proxy。
曾经尝试用twip来搭建，但是因为主机用的是nginx，尝试N久未成功，遂放弃改用birdnest，原来是如此简单，记叙如下：
1.安装python及支持模块。我的VPS已经自带了python。下载simplejson,解压后进去目录执行python setup.py build和sudo python setup.py install即可
2.下载birdnest。在某个目录下执行
svn checkout http://birdnest.googlecode.com/svn/branches/stable birdnest-read-only
或者如果你用git的话
git-svn clone http://birdnest.googlecode.com/svn/branches/stable birdnest-read-only
3. 进入birnest目录执行
python code.py 空间ip:随便指定的port
测试一下如果正常，则可以在/etc/init.d下面加入脚本birdnest，并在/etc/rc3.d/目录下建立其目录链接,注意你自己的运行级，让其开机自动运行，脚本内容如下
#!/bin/sh
cd /你的birdnest路径
python code.py 空间ip:指定的port > /dev/null 2>&#038;1 &#038;
4.在twitter客户端设置api地址为http://空间ip:指定的port/api即可.据说birdnset提供了3种api，/api、/optimized、/text，我只用了/api，看起来还不错
]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">其实只要空间支持python都可以<a href="http://yegle.net/2009/07/29/setup-a-birdnest-twitter-api-proxy-on-your-own-host/">使用birdnest搭建twitter api proxy</a>。</p>
<p style="text-indent:2em">曾经尝试用twip来搭建，但是因为主机用的是nginx，尝试N久未成功，遂放弃改用birdnest，原来是如此简单，记叙如下：</p>
<p style="text-indent:2em">1.安装python及支持模块。我的VPS已经自带了python。下载<a href="http://pypi.python.org/pypi/simplejson/">simplejson</a>,解压后进去目录执行python setup.py build和sudo python setup.py install即可</p>
<p style="text-indent:2em">2.下载birdnest。在某个目录下执行</p>
<p style="text-indent:2em">svn checkout http://birdnest.googlecode.com/svn/branches/stable birdnest-read-only</p>
<p>或者如果你用git的话
<p style="text-indent:2em">git-svn clone http://birdnest.googlecode.com/svn/branches/stable birdnest-read-only</p>
<p style="text-indent:2em">3. 进入birnest目录执行</p>
<p style="text-indent:2em">python code.py 空间ip:随便指定的port</p>
<p>测试一下如果正常，则可以在/etc/init.d下面加入脚本birdnest，并在/etc/rc3.d/目录下建立其目录链接,注意你自己的运行级，让其开机自动运行，脚本内容如下</p>
<p style="text-indent:2em">#!/bin/sh</p>
<p style="text-indent:2em">cd /你的birdnest路径</p>
<p style="text-indent:2em">python code.py 空间ip:指定的port > /dev/null 2>&#038;1 &#038;</p>
<p style="text-indent:2em">4.在twitter客户端设置api地址为http://空间ip:指定的port/api即可.据说birdnset提供了3种api，/api、/optimized、/text，我只用了/api，看起来还不错</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/misc/birdnest_twitter_api_proxy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DCube3.ocx控件注册失败的解决办法</title>
		<link>http://blog.pcware.cn/it/dcube3_register_failure.html</link>
		<comments>http://blog.pcware.cn/it/dcube3_register_failure.html#comments</comments>
		<pubDate>Mon, 12 Jul 2010 11:45:37 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=854</guid>
		<description><![CDATA[单位的某一个业务系统用到了DynamiCube组件，很多客户端的IE浏览器都无法正常下载并注册DynamiCube组件，导致页面无法正常显示。手工拷贝DCube3.cab到客户端并解出Dcube3.ocx，然后regsvr32 Dcube3.ocx会有错误提示“LoadLibrary(&#8220;DCube3.ocx&#8221;) 失败 &#8211; 内存分配访问无效”，英文的错误提示是“LoadLibrary(dcube3.ocx&#8221;) failed &#8211; Invalid Access to Memory Location”。其实这是因为Dcube3.ocx受到DEP(Data Eexcute Protection)阻止造成的。解决办法也很简单，先禁止DEP，然后注册Dcube3.ocx，然后再打开DEP即可。
XP SP3可以这样关闭DEP,打开boot.ini文件，将/noexecute的值改为AlwaysOff或者将/noexecute及等号后的值一起改为/execute,保存重启系统即可。
]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">单位的某一个业务系统用到了DynamiCube组件，很多客户端的IE浏览器都无法正常下载并注册DynamiCube组件，导致页面无法正常显示。手工拷贝DCube3.cab到客户端并解出Dcube3.ocx，然后regsvr32 Dcube3.ocx会有错误提示“LoadLibrary(&#8220;DCube3.ocx&#8221;) 失败 &#8211; 内存分配访问无效”，英文的错误提示是“LoadLibrary(dcube3.ocx&#8221;) failed &#8211; Invalid Access to Memory Location”。其实这是因为Dcube3.ocx受到DEP(Data Eexcute Protection)阻止造成的。解决办法也很简单，先禁止DEP，然后注册Dcube3.ocx，然后再打开DEP即可。</p>
<p style="text-indent:2em">XP SP3可以这样关闭DEP,打开boot.ini文件，将/noexecute的值改为AlwaysOff或者将/noexecute及等号后的值一起改为/execute,保存重启系统即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/dcube3_register_failure.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2003 R2平台oracle 9206数据库冷备份恢复的路径依赖问题</title>
		<link>http://blog.pcware.cn/it/database/oracle_9206_database_cold_backup_restore.html</link>
		<comments>http://blog.pcware.cn/it/database/oracle_9206_database_cold_backup_restore.html#comments</comments>
		<pubDate>Thu, 20 May 2010 07:46:37 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=841</guid>
		<description><![CDATA[windows 2003 R2做oracle数据库冷备份恢复时遇到路径依赖问题，原库oracle安装在F分区，而恢复到的oracle安装在E分区。两边数据库的版本是完全一致的，除了安装路径不同,sid实例名都为orcl。停下服务器后，把原库的控制文件、数据文件、日志文件、参数文件、密码文件拷贝到了新库安装目录。实际上为了省事，把oracle的安装目录整个同步了一遍。拷贝完后oracle服务无法启动，无法启动就对了。这些关键文件的路径都变了，库肯定是打不开了。怎么办？
两个方法，一是重新安装oracle使其路径与原库一致,二是修改关键文件的路径。第一种没啥意思，就第二种吧。
因为机器名字不同了，所以要打开\oracle\ora92\network\admin下面的几个文件tnsnames.ora、snmp_ro.ora和listener.ora把里面的机器名改成正确的值,snmp_ro.ora和listener.ora文件里面的文件路径改为正确的值。
参数文件里面记录了控制文件的路径，要把这些路径更改过来。oracle 9i默认是使用spfile的，而spfile是二进制的，最好不要直接修改，导出pfile，修改控制文件路径后再导回去就ok了

>sqlplus &#8220;/ as sysdba&#8221;
SQL>create pfile=&#8221;e:\oracle\admin\orcl\pfile\initorcl.ora&#8221; from spfile
然后打开initorcl.ora修改控制文件路径为实际的控制文件路径，再导回到spfile
SQL>create spfile from pfile=&#8221;e:\oracle\admin\orcl\pfile\initorcl.ora&#8221;
然后重建控制文件，因为控制文件里面记录了数据文件、日志文件的路径。数据文件好多啊，还是先从原库备份一下控制文件吧
SQL>alter database backup controlfile to trace;
找到生成的trc文件，路径为F:\oracle\admin\orcl\udump\orcl_ora_xxxx.trc，看看生成时间就能知道是哪个了。从这个文件里面提取出一个sql文件来，因为日志文件是完整的，就提取NORESETLOGS这段,保存到文件createctrlfile.sql。oracle 9206生成的这个脚本有个bug,CHARACTER SET ZHS16GBK这行的上面一行多了个逗号，去掉就可以了。语句的样子大体如下
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE &#8220;ORCL&#8221; NORESETLOGS  NOARCHIVELOG
&#8211;  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 50
    MAXLOGMEMBERS 5
    MAXDATAFILES 100
    MAXINSTANCES 1
 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">windows 2003 R2做oracle数据库冷备份恢复时遇到路径依赖问题，原库oracle安装在F分区，而恢复到的oracle安装在E分区。两边数据库的版本是完全一致的，除了安装路径不同,sid实例名都为orcl。停下服务器后，把原库的控制文件、数据文件、日志文件、参数文件、密码文件拷贝到了新库安装目录。实际上为了省事，把oracle的安装目录整个同步了一遍。拷贝完后oracle服务无法启动，无法启动就对了。这些关键文件的路径都变了，库肯定是打不开了。怎么办？</p>
<p style="text-indent:2em">两个方法，一是重新安装oracle使其路径与原库一致,二是修改关键文件的路径。第一种没啥意思，就第二种吧。</p>
<p style="text-indent:2em">因为机器名字不同了，所以要打开\oracle\ora92\network\admin下面的几个文件tnsnames.ora、snmp_ro.ora和listener.ora把里面的机器名改成正确的值,snmp_ro.ora和listener.ora文件里面的文件路径改为正确的值。</p>
<p style="text-indent:2em">参数文件里面记录了控制文件的路径，要把这些路径更改过来。oracle 9i默认是使用spfile的，而spfile是二进制的，最好不要直接修改，导出pfile，修改控制文件路径后再导回去就ok了</p>
<p><span id="more-841"></span><br />
>sqlplus &#8220;/ as sysdba&#8221;<br />
SQL>create pfile=&#8221;e:\oracle\admin\orcl\pfile\initorcl.ora&#8221; from spfile</p>
<p style="text-indent:2em">然后打开initorcl.ora修改控制文件路径为实际的控制文件路径，再导回到spfile</p>
<p>SQL>create spfile from pfile=&#8221;e:\oracle\admin\orcl\pfile\initorcl.ora&#8221;</p>
<p style="text-indent:2em">然后重建控制文件，因为控制文件里面记录了数据文件、日志文件的路径。数据文件好多啊，还是先从原库备份一下控制文件吧</p>
<p>SQL>alter database backup controlfile to trace;</p>
<p style="text-indent:2em">找到生成的trc文件，路径为F:\oracle\admin\orcl\udump\orcl_ora_xxxx.trc，看看生成时间就能知道是哪个了。从这个文件里面提取出一个sql文件来，因为日志文件是完整的，就提取NORESETLOGS这段,保存到文件createctrlfile.sql。oracle 9206生成的这个脚本有个bug,CHARACTER SET ZHS16GBK这行的上面一行多了个逗号，去掉就可以了。语句的样子大体如下</p>
<p>STARTUP NOMOUNT<br />
CREATE CONTROLFILE REUSE DATABASE &#8220;ORCL&#8221; NORESETLOGS  NOARCHIVELOG<br />
&#8211;  SET STANDBY TO MAXIMIZE PERFORMANCE<br />
    MAXLOGFILES 50<br />
    MAXLOGMEMBERS 5<br />
    MAXDATAFILES 100<br />
    MAXINSTANCES 1<br />
    MAXLOGHISTORY 2722<br />
LOGFILE<br />
  GROUP 1 &#8216;F:\ORACLE\ORADATA\ORCL\REDO01.LOG&#8217;  SIZE 100M,<br />
  GROUP 2 &#8216;F:\ORACLE\ORADATA\ORCL\REDO02.LOG&#8217;  SIZE 100M,<br />
  GROUP 3 &#8216;F:\ORACLE\ORADATA\ORCL\REDO03.LOG&#8217;  SIZE 100M<br />
&#8211; STANDBY LOGFILE<br />
DATAFILE<br />
  &#8216;F:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF&#8217;,<br />
  &#8216;F:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF&#8217;,<br />
  &#8216;F:\ORACLE\ORADATA\ORCL\CWMLITE01.DBF&#8217;,<br />
  &#8216;F:\ORACLE\ORADATA\ORCL\DRSYS01.DBF&#8217;,<br />
  &#8230;<br />
CHARACTER SET ZHS16GBK<br />
;</p>
<p style="text-indent:2em">把这个sql里面的数据文件和日志文件的路径修改成正确的路径后，执行一下语句</p>
<p>>sqlplus &#8220;/ as sysdba&#8221;<br />
SQL>shutdown immediate<br />
SQL>@createctrlfile.sql</p>
<p style="text-indent:2em">提示控制文件重建完成就ok了，然后</p>
<p>SQL>alter database open</p>
<p style="text-indent:2em">就可以启动数据库了。抱怨一句，oracle数据库的这些关键文件为什么不用相对路径呢？相对于$ORACLE_HOME不就得了吗，真烦！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/database/oracle_9206_database_cold_backup_restore.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>C++项目目录组织结构</title>
		<link>http://blog.pcware.cn/it/lang/cpp_project_directories.html</link>
		<comments>http://blog.pcware.cn/it/lang/cpp_project_directories.html#comments</comments>
		<pubDate>Sun, 16 May 2010 07:40:02 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[C/C++/Asm]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=816</guid>
		<description><![CDATA[项目目录结构的问题基本上是个仁者见仁，智者见智的问题，只要自己用着顺手，使用什么样的目录组织结构是没有什么大碍的。当然如果项目很大，参与的人员很多，那么合理的组织一下目录结构还是会有很大的益处的。不同类型的项目也会有不同的目录结构,这里简单的展示一下我所使用的C++项目的基本目录结构。
project &#8212;+&#8212;build&#8212;+&#8212;debug
　　　　　&#124;　　　　　&#124;&#8212;release
　　　　　&#124;&#8212;dist
　　　　　&#124;&#8212;doc
　　　　　&#124;&#8212;include&#8212;+&#8212;module1
　　　　　&#124;　　　　　　&#124;&#8212;module2
　　　　　&#124;&#8212;lib
　　　　　&#124;&#8212;module1
　　　　　&#124;&#8212;module2
　　　　　&#124;&#8212;res
　　　　　&#124;&#8212;samples&#8212;+&#8212;sample1
　　　　　&#124;　　　　　　&#124;&#8212;sample2
　　　　　&#124;&#8212;tools
　　　　　&#124;&#8212;copyleft
　　　　　&#124;&#8212;Makefile
　　　　　&#124;&#8212;README
　　　　　&#124;&#8212; &#8230;

下面分别介绍一下各目录和文件的用途
build/:项目编译目录，各种编译的临时文件和最终的目标文件皆存于此，分为debug/和release/子目录
dist/:分发目录，最终发布的可执行程序和各种运行支持文件存放在此目录，打包此目录即可完成项目分发
doc/:保存项目各种文档
include/:公共头文件目录，可以按模块划分组织目录来保存模块相关头文件
lib/:外部依赖库目录
res/:资源目录
samples/:样例程序目录
tools/:项目支撑工具目录
copyleft:版权声明文件，当然也可以叫做copyright :-)
Makefile:项目构建配置文件，当然也有可能是其他类型的构建配置文件,比如bjam
README:项目的总体说明文件
]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">项目目录结构的问题基本上是个仁者见仁，智者见智的问题，只要自己用着顺手，使用什么样的目录组织结构是没有什么大碍的。当然如果项目很大，参与的人员很多，那么合理的组织一下目录结构还是会有很大的益处的。不同类型的项目也会有不同的目录结构,这里简单的展示一下我所使用的C++项目的基本目录结构。</p>
<p>project &#8212;+&#8212;build&#8212;+&#8212;debug<br />
　　　　　|　　　　　|&#8212;release<br />
　　　　　|&#8212;dist<br />
　　　　　|&#8212;doc<br />
　　　　　|&#8212;include&#8212;+&#8212;module1<br />
　　　　　|　　　　　　|&#8212;module2<br />
　　　　　|&#8212;lib<br />
　　　　　|&#8212;module1<br />
　　　　　|&#8212;module2<br />
　　　　　|&#8212;res<br />
　　　　　|&#8212;samples&#8212;+&#8212;sample1<br />
　　　　　|　　　　　　|&#8212;sample2<br />
　　　　　|&#8212;tools<br />
　　　　　|&#8212;copyleft<br />
　　　　　|&#8212;Makefile<br />
　　　　　|&#8212;README<br />
　　　　　|&#8212; &#8230;<br />
<span id="more-816"></span></p>
<p style="text-indent:2em">下面分别介绍一下各目录和文件的用途</p>
<p style="text-indent:2em">build/:项目编译目录，各种编译的临时文件和最终的目标文件皆存于此，分为debug/和release/子目录</p>
<p style="text-indent:2em">dist/:分发目录，最终发布的可执行程序和各种运行支持文件存放在此目录，打包此目录即可完成项目分发</p>
<p style="text-indent:2em">doc/:保存项目各种文档</p>
<p style="text-indent:2em">include/:公共头文件目录，可以按模块划分组织目录来保存模块相关头文件</p>
<p style="text-indent:2em">lib/:外部依赖库目录</p>
<p style="text-indent:2em">res/:资源目录</p>
<p style="text-indent:2em">samples/:样例程序目录</p>
<p style="text-indent:2em">tools/:项目支撑工具目录</p>
<p style="text-indent:2em">copyleft:版权声明文件，当然也可以叫做copyright :-)</p>
<p style="text-indent:2em">Makefile:项目构建配置文件，当然也有可能是其他类型的构建配置文件,比如bjam</p>
<p style="text-indent:2em">README:项目的总体说明文件</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/lang/cpp_project_directories.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04 AMD64 mplayer 开启ATI卡硬解加速</title>
		<link>http://blog.pcware.cn/it/linux/ubuntu_10_04_amd64_mplayer_ati_video_acceleration.html</link>
		<comments>http://blog.pcware.cn/it/linux/ubuntu_10_04_amd64_mplayer_ati_video_acceleration.html#comments</comments>
		<pubDate>Sat, 08 May 2010 01:32:26 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=806</guid>
		<description><![CDATA[昨晚在Ubuntu 10.04(Lucid Lynx) AMD64上面设置ATI Mobile Readon 3470硬解加速成功,mplayer播放高清视频时CPU占有率大大降低，大约只有原来的1/10。使用Ubuntu 9.10时也曾经试图硬解，但没成功。具体设置/安装方法记叙如下。
首先A卡要支持UVD(Unified Video Decoder)，比较新的显卡应该都是支持到UVD2的，另外Lucid自带的ATI驱动在我的机器上不支持UVD功能。
cat /var/log/Xorg.0.log &#124; grep UVD
如果输出如下字样
(II) fglrx(0): UVD2 feature is available
则表明支持驱动UVD特性
我的卡子在未安装ATI官方最新驱动ATI Catalyst Display Driver 10.4以前是不支持UVD2的。ATI驱动如何安装请参考ATI官方文档。

A卡现在在linux平台上能够进行硬解得益于intel与开源社区开发的vaapi(Video Acceleration API)，只要安装相应的后端驱动，vaapi可以支持A卡和N卡，A卡的后端就是xvba-video,N卡的后端是vdpau-video.
安装完ATI最新的官方驱动后，下载相应平台的libva包安装，当然也可以下载源码进行安装，http://www.splitted-desktop.com/~gbeauchesne/上有详细的说明。还要把libva的开发包一并安装，因为后面编译带vaavpi扩展的mplayer要用到。我安装的是最新的libva1_0.31.0-1+sds13_amd64.deb和libva-dev_0.31.0-1+sds13_amd64.deb
然后下载并安装xvba-video。安装完成后测试一下vaapi是否就绪
$ vainfo
我的输出如下
libva: libva version 0.31.0-sds6
Xlib:  extension &#8220;XFree86-DRI&#8221; missing on display &#8220;:0.0&#8243;.
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA API version: 0.31
vainfo: Driver version: Splitted-Desktop Systems XvBA [...]]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">昨晚在Ubuntu 10.04(Lucid Lynx) AMD64上面设置ATI Mobile Readon 3470硬解加速成功,mplayer播放高清视频时CPU占有率大大降低，大约只有原来的1/10。使用Ubuntu 9.10时也曾经试图硬解，但没成功。具体设置/安装方法记叙如下。</p>
<p style="text-indent:2em">首先A卡要支持UVD(Unified Video Decoder)，比较新的显卡应该都是支持到UVD2的，另外Lucid自带的ATI驱动在我的机器上不支持UVD功能。<br />
cat /var/log/Xorg.0.log | grep UVD<br />
如果输出如下字样<br />
(II) fglrx(0): UVD2 feature is available<br />
则表明支持驱动UVD特性<br />
我的卡子在未安装ATI官方最新驱动ATI Catalyst Display Driver 10.4以前是不支持UVD2的。ATI驱动如何安装请参考ATI官方文档。</p>
<p><span id="more-806"></span>
<p style="text-indent:2em">A卡现在在linux平台上能够进行硬解得益于intel与开源社区开发的vaapi(Video Acceleration API)，只要安装相应的后端驱动，vaapi可以支持A卡和N卡，A卡的后端就是xvba-video,N卡的后端是vdpau-video.</p>
<p style="text-indent:2em">安装完ATI最新的官方驱动后，下载相应平台的<a href="http://www.splitted-desktop.com/~gbeauchesne/libva/">libva</a>包安装，当然也可以下载源码进行安装，http://www.splitted-desktop.com/~gbeauchesne/上有详细的说明。还要把libva的开发包一并安装，因为后面编译带vaavpi扩展的mplayer要用到。我安装的是最新的libva1_0.31.0-1+sds13_amd64.deb和libva-dev_0.31.0-1+sds13_amd64.deb</p>
<p style="text-indent:2em">然后下载并安装<a href="http://www.splitted-desktop.com/~gbeauchesne/xvba-video/">xvba-video</a>。安装完成后测试一下vaapi是否就绪<br />
$ vainfo<br />
我的输出如下<br />
libva: libva version 0.31.0-sds6<br />
Xlib:  extension &#8220;XFree86-DRI&#8221; missing on display &#8220;:0.0&#8243;.<br />
libva: va_getDriverName() returns 0<br />
libva: Trying to open /usr/lib/va/drivers/fglrx_drv_video.so<br />
libva: va_openDriver() returns 0<br />
vainfo: VA API version: 0.31<br />
vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA API &#8211; 0.6.11<br />
vainfo: Supported profile and entrypoints<br />
<strong>      VAProfileMPEG2Simple            : VAEntrypointIDCT<br />
      VAProfileMPEG2Main              : VAEntrypointIDCT<br />
      VAProfileH264High               : VAEntrypointVLD<br />
      VAProfileVC1Advanced            : VAEntrypointVLD</strong><br />
最重要的是后面输出的profile，如果有内容输出应该问题就不大了。</p>
<p style="text-indent:2em">最后就是让mplayer来支持vaapi了，发行版自带的版本目前是不支持此特性的，所以要重新编译。先执行<br />
$sudo apt-get build-dep mplayer<br />
然后下载<a href="http://www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/">mplayer-vaapi-latest-FULL.tar.bz2 </a>,解开后执行$ ./checkout-patch-build.sh即可。<br />
编译完成后生成的mplayer在mplayer-vaapi目录下面。</p>
<p style="text-indent:2em">$./mplayer -vo vaapi -va vaapi path_to_movie<br />
如果有以下字样输出<br />
VO: [vaapi] 1280&#215;720 => 1280&#215;720 H.264 <strong>VA API Acceleration</strong><br />
则说明硬件加速成功。<br />
enjoy it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/linux/ubuntu_10_04_amd64_mplayer_ati_video_acceleration.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>en_US.UTF-8环境下让lunar-applet显示中文</title>
		<link>http://blog.pcware.cn/it/linux/en_us_utf_8_lunar_applet_chinese.html</link>
		<comments>http://blog.pcware.cn/it/linux/en_us_utf_8_lunar_applet_chinese.html#comments</comments>
		<pubDate>Mon, 03 May 2010 03:05:14 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=803</guid>
		<description><![CDATA[en_US.UTF-8环境下luna-applet默认用拼音来显示农历，可以把 /usr/share/locale/zh_CN/LC_MESSAGES/liblunar.mo 复制到/usr/share/locale/en/LC_MESSAGES/ 下即可让lunar-applet在英文环境下用汉字来显示农历。
]]></description>
			<content:encoded><![CDATA[<p>en_US.UTF-8环境下luna-applet默认用拼音来显示农历，可以把 /usr/share/locale/zh_CN/LC_MESSAGES/liblunar.mo 复制到/usr/share/locale/en/LC_MESSAGES/ 下即可让lunar-applet在英文环境下用汉字来显示农历。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/linux/en_us_utf_8_lunar_applet_chinese.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>磁盘类,端口,小端口驱动(Class,Port,Miniport Drivers)</title>
		<link>http://blog.pcware.cn/it/windows/class_port_miniport_drivers.html</link>
		<comments>http://blog.pcware.cn/it/windows/class_port_miniport_drivers.html#comments</comments>
		<pubDate>Thu, 08 Apr 2010 12:23:44 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=796</guid>
		<description><![CDATA[During initialization, the Windows I/O manager starts the disk storage drivers. Storage drivers in Windows follow a class/port/miniport architecture, in which Microsoft supplies a storage class driver that implements functionality common to all storage devices and a storage port driver that implements functionality common to a particular bus—such as a Small Computer System Interface (SCSI) [...]]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">During initialization, the Windows I/O manager starts the disk storage drivers. Storage drivers in Windows follow a class/port/miniport architecture, in which Microsoft supplies a storage class driver that implements functionality common to all storage devices and a storage port driver that implements functionality common to a particular bus—such as a Small Computer System Interface (SCSI) bus or an Integrated Device Electronics (IDE) system—and OEMs supply miniport drivers that plug into the port driver to interface Windows to a particular controller implementation.</p>
<p style="text-indent:2em">系统初始化期间,windows I/O管理器开始装载磁盘存储驱动.windows中的存储驱动遵循类/端口/小端口(class/port/miniport)架构,MS提供一个存储类驱动实现与具体设备无关的、所有存储设备共同的功能特性和一个存储端口驱动实现一类特殊总线共同的功能&#8212;比如SCSI(Small Computer System Interface)总线或者IDE(Integrated Device Electronics)总线&#8212;然后OEM(Original Equipment Manufacturer)制造商提供挂接到端口驱动的小端口驱动来为windows提供到一个特殊控制器实现的访问接口。</p>
<p style="text-indent:2em">&#8212;译自《windows internals》(5th) </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/windows/class_port_miniport_drivers.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASPI,SPTI,SPTD简介</title>
		<link>http://blog.pcware.cn/it/misc/aspi_spti_sptd_introduce.html</link>
		<comments>http://blog.pcware.cn/it/misc/aspi_spti_sptd_introduce.html#comments</comments>
		<pubDate>Sat, 03 Apr 2010 15:27:39 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=790</guid>
		<description><![CDATA[这三个东西都是用来支持主机与外围SCSI或ATAPI接口存储设备通讯的编程接口。ASPI(Advanced SCSI Programming Interface)是由存储领域大名鼎鼎的Adaptec于1990年代初期开发的，最初是为了支持SCSI驱动器，后来加入了ATAPI驱动器的支持。MS获取授权在windows 9x系列使用这个开发接口。后来MS在NT系列开发了自己的接口，这就是SPTI(SCSI Pass Through Interface)用以取代ASPI。NT系统默认是没有安装ASPI驱动的，不过有些存储应用程序还在使用ASPI接口，可以从Adaptec下载此驱动安装。而SPTD则是由Duplex Secure Ltd.开发的同类接口。
此外，Nero也开发了自己的ASPI驱动。其他比较有名的还有ASAPI等。
]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">这三个东西都是用来支持主机与外围SCSI或ATAPI接口存储设备通讯的编程接口。ASPI(Advanced SCSI Programming Interface)是由存储领域大名鼎鼎的Adaptec于1990年代初期开发的，最初是为了支持SCSI驱动器，后来加入了ATAPI驱动器的支持。MS获取授权在windows 9x系列使用这个开发接口。后来MS在NT系列开发了自己的接口，这就是SPTI(SCSI Pass Through Interface)用以取代ASPI。NT系统默认是没有安装ASPI驱动的，不过有些存储应用程序还在使用ASPI接口，可以从Adaptec下载<a href="http://www.adaptec.com/en-US/speed/software_pc/aspi/aspi_471a2_exe.htm">此驱动</a>安装。而SPTD则是由Duplex Secure Ltd.开发的同类接口。</p>
<p style="text-indent:2em">此外，Nero也开发了自己的ASPI驱动。其他比较有名的还有ASAPI等。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/misc/aspi_spti_sptd_introduce.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress站点更换域名</title>
		<link>http://blog.pcware.cn/it/misc/wordpress_domainname.html</link>
		<comments>http://blog.pcware.cn/it/misc/wordpress_domainname.html#comments</comments>
		<pubDate>Fri, 02 Apr 2010 06:26:23 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[Misc]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=785</guid>
		<description><![CDATA[主要是修改wp_options表里面的siteurl和home选项以及wp_posts的post_content和guid字段。
update wp_options set option_value=&#8217;http://new_domain_name&#8217; where option_name=&#8217;siteurl&#8217; or option_name=&#8217;home&#8217;;

update wp_posts set post_content=replace(post_content,&#8217;http://old_domain_name&#8217;,'http://new_domain_name&#8217;);
update wp_posts set guid=replace(guid,&#8217;http://old_domain_name&#8217;,'http://new_domain_name&#8217;);
]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">主要是修改wp_options表里面的siteurl和home选项以及wp_posts的post_content和guid字段。</p>
<p style="text-indent:2em">update wp_options set option_value=&#8217;http://new_domain_name&#8217; where option_name=&#8217;siteurl&#8217; or option_name=&#8217;home&#8217;;
</p>
<p style="text-indent:2em">update wp_posts set post_content=replace(post_content,&#8217;http://old_domain_name&#8217;,'http://new_domain_name&#8217;);</p>
<p style="text-indent:2em">update wp_posts set guid=replace(guid,&#8217;http://old_domain_name&#8217;,'http://new_domain_name&#8217;);</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/misc/wordpress_domainname.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xp机器ping出现问号无法上网解决一例</title>
		<link>http://blog.pcware.cn/it/windows/xp_ping_problem.html</link>
		<comments>http://blog.pcware.cn/it/windows/xp_ping_problem.html#comments</comments>
		<pubDate>Mon, 22 Mar 2010 12:21:52 +0000</pubDate>
		<dc:creator>proguru</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.pcware.cn/?p=782</guid>
		<description><![CDATA[一台xp系统机器，无法上网浏览， ping本地私有地址和外部公有地址都通，但是ping命令输出出现问号并伴随一声蜂鸣。输出类似如下：
ping ? 192.168.1.1 with 32 bytes of data:
reply from 192.168.1.1: bytes=32 time ]]></description>
			<content:encoded><![CDATA[<p style="text-indent:2em">一台xp系统机器，无法上网浏览， ping本地私有地址和外部公有地址都通，但是ping命令输出出现问号并伴随一声蜂鸣。输出类似如下：</p>
<p>ping ? 192.168.1.1 with 32 bytes of data:<br />
reply from 192.168.1.1: bytes=32 time <10 ttl=64<br />
reply from 192.168.1.1: bytes=32 time <10 ttl=64<br />
reply from 192.168.1.1: bytes=32 time <10 ttl=64</p>
<p style="text-indent:2em">卸载网卡驱动，重新安装故障依旧。交换机及网线确认无问题，执行如下命令<br />
netsh winsock reset<br />
重置winsock组件，问题解决，应该是恶意软件或插件所为。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pcware.cn/it/windows/xp_ping_problem.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
