<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.guoyong.org/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.guoyong.org/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>wolfg's Weblog</title>
	
	<link>http://guoyong.org</link>
	<description />
	<pubDate>Thu, 06 Nov 2008 08:47:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
	http://creativecommons.org/licenses/by-nc-sa/2.5/cn/		<geo:lat>39.8559</geo:lat><geo:long>116.2465</geo:long><image><url>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</url></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.guoyong.org/wolfg" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item><title>Links for 2008-11-16 [del.icio.us]</title><link>http://del.icio.us/wolfg#2008-11-16</link><pubDate>Mon, 17 Nov 2008 00:00:00 -0600</pubDate><guid isPermaLink="true">http://del.icio.us/wolfg#2008-11-16</guid><content:encoded><![CDATA[<ul>
<li><a href="http://www.cyberciti.biz/faq/linux-publickey-blacklisted-see-ssh-vulnkey1-error/">Debian / Ubuntu Linux Public key Blacklisted (see ssh-vulnkey(1)) Error and Solution</a></li>
</ul>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.cyberciti.biz/faq/linux-publickey-blacklisted-see-ssh-vulnkey1-error/"&gt;Debian / Ubuntu Linux Public key Blacklisted (see ssh-vulnkey(1)) Error and Solution&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2008-11-09 [del.icio.us]</title><link>http://del.icio.us/wolfg#2008-11-09</link><pubDate>Mon, 10 Nov 2008 00:00:00 -0600</pubDate><guid isPermaLink="true">http://del.icio.us/wolfg#2008-11-09</guid><content:encoded><![CDATA[<ul>
<li><a href="http://wiki.apache.org/spamassassin/ManualWhitelist">ManualWhitelist - Spamassassin Wiki</a></li>
</ul>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://wiki.apache.org/spamassassin/ManualWhitelist"&gt;ManualWhitelist - Spamassassin Wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2008-11-08 [del.icio.us]</title><link>http://del.icio.us/wolfg#2008-11-08</link><pubDate>Sun, 09 Nov 2008 00:00:00 -0600</pubDate><guid isPermaLink="true">http://del.icio.us/wolfg#2008-11-08</guid><content:encoded><![CDATA[<ul>
<li><a href="http://blog.techfusion.it/2007/01/15/apache2-mysql-mod_auth-v2-libapache2-mod-auth-mysql/">Apache2 + MySQL Mod_Auth V2 (libapache2-mod-auth-mysql)</a></li>
</ul>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blog.techfusion.it/2007/01/15/apache2-mysql-mod_auth-v2-libapache2-mod-auth-mysql/"&gt;Apache2 + MySQL Mod_Auth V2 (libapache2-mod-auth-mysql)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2008-11-07 [del.icio.us]</title><link>http://del.icio.us/wolfg#2008-11-07</link><pubDate>Sat, 08 Nov 2008 00:00:00 -0600</pubDate><guid isPermaLink="true">http://del.icio.us/wolfg#2008-11-07</guid><content:encoded><![CDATA[<ul>
<li><a href="http://www.intuitive.com/spam-assassin-rule-help.html">How to reduce spam: Writing Rules for SpamAssassin to Avoid Spam, a Primer</a></li>
</ul>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.intuitive.com/spam-assassin-rule-help.html"&gt;How to reduce spam: Writing Rules for SpamAssassin to Avoid Spam, a Primer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item>
		<title>在Ubuntu下安装OpenIPMP服务器</title>
		<link>http://guoyong.org/2008/11/06/363</link>
		<comments>http://guoyong.org/2008/11/06/363#comments</comments>
		<pubDate>Thu, 06 Nov 2008 08:47:17 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[OSS]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[openipmp drm oma]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=363</guid>
		<description><![CDATA[1. 如果你用JDK 1.5以上的版本，编译osms过程中会出错，问题在${openipmp_server_src}/osms/src/com/mutable/io/OlLogger.java这个文件中，enum这个变量名跟关键字冲突了，改个名字就好了。
2. 修改${openipmp_server_s... ]]></description>
			<content:encoded><![CDATA[<p>1. 如果你用JDK 1.5以上的版本，编译osms过程中会出错，问题在${openipmp_server_src}/osms/src/com/mutable/io/OlLogger.java这个文件中，enum这个变量名跟关键字冲突了，改个名字就好了。<br />
2. 修改${openipmp_server_src}/OMADRMWS/admin_OMADRM.sh，将里面所有的&#8221;$CURR_DIR/../../Demo/data/&#8221;改为 &#8220;/tmp/&#8221;，然后把证书文件复制到/tmp目录下。</p>
<div class="hl-surround"><div class="hl-main">cp ${openipmp_server_src}/../Demo/data/* /tmp</div></div>
<p>这样可避免安装过程中证书无法存入数据库的问题。<br />
3. 修改 ${openipmp_server_src}/ejbca/deployJBoss4x.sh的第16行，</p>
<div class="hl-surround"><div class="hl-main">if (( $1 == keystore ))</div></div>
<p> 改为  </p>
<div class="hl-surround"><div class="hl-main">if [ &quot;$1&quot; = &quot;keystore&quot; ]</div></div>
<p>不然这个脚本复制p12文件时会出错。<br />
4. 运行install.sh脚本安装，如果之前运行过了，先运行uninstall.sh<br />
5. 安装正常结束后，记得一定要在bin目录下执行run.sh来启动JBoss服务器，不然会报错 （“找不到 openIPMP 目录” 、“找不到../conf/server.p12”等等）</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E5%9C%A8Ubuntu%E4%B8%8B%E5%AE%89%E8%A3%85OpenIPMP%E6%9C%8D%E5%8A%A1%E5%99%A8&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F11%2F06%2F363">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=C4Z9N"><img src="http://feeds.guoyong.org/~f/wolfg?i=C4Z9N" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=BjK2N"><img src="http://feeds.guoyong.org/~f/wolfg?i=BjK2N" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/11/06/363/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>升级到Ubuntu 8.10</title>
		<link>http://guoyong.org/2008/11/06/362</link>
		<comments>http://guoyong.org/2008/11/06/362#comments</comments>
		<pubDate>Wed, 05 Nov 2008 22:40:12 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[ubuntu nm-applet ipw2200 firmware]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=362</guid>
		<description><![CDATA[花了一天多的时间将笔记本（IBM Thinkpad T43）升级到了Ubuntu新发布的8.10版本。
升级过程很顺利（就是时间比较长），其间遇到了Network Manager小程序不停地弹出消息对话框，说“找不到所需的资... ]]></description>
			<content:encoded><![CDATA[<p>花了一天多的时间将笔记本（IBM Thinkpad T43）升级到了Ubuntu新发布的8.10版本。</p>
<p>升级过程很顺利（就是时间比较长），其间遇到了Network Manager小程序不停地弹出消息对话框，说“找不到所需的资源，无法继续”，但不影响升级包的安装。</p>
<p>重启系统后，Network Manager小程序居然不能加载了，在launchpad里搜索到解决办法是只在/etc/network/interfaces文件里保留下面这两行。</p>
<div class="hl-surround"><div class="hl-main">auto lo<br />iface lo inet loopback</div></div>
<p>第二个问题是，升级后无线网卡不工作了，用dmesg | grep ipw2200查看，有如下类似的信息：</p>
<div class="hl-surround"><div class="hl-main">ipw2200-bss.fw request_firmware failed: Reason -2<br />ipw2200: Unable to load firmware: -2<br />ipw2200: failed to register network</div></div>
<p>google后知道是firmware加载的问题，检查/lib/firmware目录，没在当前使用中的内核目录（/lib/firmware/2.6.27-7-generic/）里找到这些firmware文件。从ipw2200的网站上下载后解压到这个目录后重启就解决了。（补充：使用原来的2.6.24内核启动系统无线网卡是正常的）</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E5%8D%87%E7%BA%A7%E5%88%B0Ubuntu+8.10&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F11%2F06%2F362">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=ZaI4N"><img src="http://feeds.guoyong.org/~f/wolfg?i=ZaI4N" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=hrCCN"><img src="http://feeds.guoyong.org/~f/wolfg?i=hrCCN" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/11/06/362/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item><title>Links for 2008-11-04 [del.icio.us]</title><link>http://del.icio.us/wolfg#2008-11-04</link><pubDate>Wed, 05 Nov 2008 00:00:00 -0600</pubDate><guid isPermaLink="true">http://del.icio.us/wolfg#2008-11-04</guid><content:encoded><![CDATA[<ul>
<li><a href="https://help.ubuntu.com/community/JeOS">JeOS - Community Ubuntu Documentation</a></li>
</ul>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://help.ubuntu.com/community/JeOS"&gt;JeOS - Community Ubuntu Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2008-11-02 [del.icio.us]</title><link>http://del.icio.us/wolfg#2008-11-02</link><pubDate>Sun, 02 Nov 2008 23:00:00 -0600</pubDate><guid isPermaLink="true">http://del.icio.us/wolfg#2008-11-02</guid><content:encoded><![CDATA[<ul>
<li><a href="http://www.davz.net/static/howto/mysqlcluster">Mysql Cluster: The definitive HOWTO</a></li>
</ul>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.davz.net/static/howto/mysqlcluster"&gt;Mysql Cluster: The definitive HOWTO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Links for 2008-10-29 [del.icio.us]</title><link>http://del.icio.us/wolfg#2008-10-29</link><pubDate>Thu, 30 Oct 2008 00:00:00 -0500</pubDate><guid isPermaLink="true">http://del.icio.us/wolfg#2008-10-29</guid><content:encoded><![CDATA[<ul>
<li><a href="https://www.empregasaopaulo.sp.gov.br/IMO/js/prototype/datepicker/?C=S;O=A">Index of /IMO/js/prototype/datepicker</a></li>
<li><a href="http://www.stilbuero.de/2005/07/19/whateverhover-fast-and-easy/">Klaus Hartl - Stilb&uuml;ro : whatever:hover, fast and easy</a></li>
<li><a href="http://www.xs4all.nl/~peterned/csshover.html">Whatever:hover</a></li>
</ul>]]></content:encoded><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.empregasaopaulo.sp.gov.br/IMO/js/prototype/datepicker/?C=S;O=A"&gt;Index of /IMO/js/prototype/datepicker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.stilbuero.de/2005/07/19/whateverhover-fast-and-easy/"&gt;Klaus Hartl - Stilb&amp;uuml;ro : whatever:hover, fast and easy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.xs4all.nl/~peterned/csshover.html"&gt;Whatever:hover&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item>
		<title>audacious不出声了？</title>
		<link>http://guoyong.org/2008/07/19/361</link>
		<comments>http://guoyong.org/2008/07/19/361#comments</comments>
		<pubDate>Sat, 19 Jul 2008 02:40:12 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[OSS]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[audacious]]></category>

		<category><![CDATA[MADPlug-Message]]></category>

		<category><![CDATA[PULSEAUDIO]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=361</guid>
		<description><![CDATA[audacious不能播放mp3有一段时间了，今天找到这个问题的原因。
如果用终端运行audacious，就会在console里看到下面的错误信息：
*** PULSEAUDIO: Unable to connect: Connection refusedMADPlug-Message: failed to open audi... ]]></description>
			<content:encoded><![CDATA[<p>audacious不能播放mp3有一段时间了，今天找到这个问题的原因。</p>
<p>如果用终端运行audacious，就会在console里看到下面的错误信息：</p>
<div class="hl-surround"><div class="hl-main">*** PULSEAUDIO: Unable to connect: Connection refused<br />MADPlug-Message: failed to open audio output: XMMS reverse compatibility output plugin</div></div>
<p>之前试过卸载再重装audacious，没用。</p>
<p>按照google到的结果提示的，发现系统里没有安装pulseaudio。而且，发现audacious里设置output plugin为alsa或oss就可以播放出来了。那pulseaudio为什么不行呢？</p>
<p>修改/etc/default/pulseaudio文件，PULSEAUDIO_SYSTEM_START=1 让pulseaudio服务在系统启动时启动。</p>
<p>最重要的，把自己的用户加到pulse, pulse-access, pulse-rt这3个group里，这个就是最根本的原因了。</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=audacious%E4%B8%8D%E5%87%BA%E5%A3%B0%E4%BA%86%EF%BC%9F&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F07%2F19%2F361">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=Ah0lmJ"><img src="http://feeds.guoyong.org/~f/wolfg?i=Ah0lmJ" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=llwhlJ"><img src="http://feeds.guoyong.org/~f/wolfg?i=llwhlJ" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/07/19/361/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>解决Maven Jetty Plugin在Windows下的“文件锁定”问题</title>
		<link>http://guoyong.org/2008/06/23/360</link>
		<comments>http://guoyong.org/2008/06/23/360#comments</comments>
		<pubDate>Mon, 23 Jun 2008 05:31:04 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[jetty]]></category>

		<category><![CDATA[maven]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=360</guid>
		<description><![CDATA[使用Maven进行Java的web开发，Jetty Plugin是必不可缺的插件，可以极大的提到开发效率。但在Windows环境下会遇到静态文件（html、css、js）被锁定、无法即时更新的问题。要想更新这些文件，只能先... ]]></description>
			<content:encoded><![CDATA[<p>使用Maven进行Java的web开发，Jetty Plugin是必不可缺的插件，可以极大的提到开发效率。但在Windows环境下会遇到静态文件（html、css、js）被锁定、无法即时更新的问题。要想更新这些文件，只能先停掉Jetty，保存修改，再启动Jetty，非常不方便。<br />
解决办法是这样的：<br />
1、从jetty.jar中解出webdefault.xml（位于org.mortbay.jetty.webapp包下）这个文件，把这个useFileMappedBuffer参数设为false</p>
<div class="hl-surround"><div class="hl-main">&lt;init-param&gt;<br />&nbsp;&lt;param-name&gt;useFileMappedBuffer&lt;/param-name&gt;<br />&nbsp;&lt;!-- change to false --&gt;<br />&nbsp;&lt;param-value&gt;true&lt;/param-value&gt;<br />&lt;/init-param&gt;</div></div>
<p>2、把修改后的webdefault.xml文件跟pom.xml放在一起<br />
3、修改pom.xml里的Jetty Plugin的配置，加入<webDefaultXml>webdefault.xml</webDefaultXml></p>
<div class="hl-surround"><div class="hl-main">...<br />&lt;plugin&gt;<br />&nbsp;&nbsp; &lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt;<br />&nbsp;&nbsp; &lt;artifactId&gt;maven-jetty-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp; &lt;version&gt;6.1.7&lt;/version&gt;<br />&nbsp;&nbsp; &lt;configuration&gt;<br />&nbsp;&nbsp; &nbsp; &lt;contextPath&gt;/&lt;/contextPath&gt;<br />&nbsp;&nbsp; &nbsp; &lt;webDefaultXml&gt;webdefault.xml&lt;/webDefaultXml&gt;<br />&nbsp;&nbsp; &nbsp; ...<br />&nbsp;&nbsp; &nbsp;&lt;/configuration&gt;<br />&nbsp;&nbsp; &nbsp;...<br />&lt;/plugin&gt;<br />...</div></div>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E8%A7%A3%E5%86%B3Maven+Jetty+Plugin%E5%9C%A8Windows%E4%B8%8B%E7%9A%84%E2%80%9C%E6%96%87%E4%BB%B6%E9%94%81%E5%AE%9A%E2%80%9D%E9%97%AE%E9%A2%98&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F06%2F23%2F360">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=N8x8pI"><img src="http://feeds.guoyong.org/~f/wolfg?i=N8x8pI" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=6BnFQI"><img src="http://feeds.guoyong.org/~f/wolfg?i=6BnFQI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/06/23/360/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>一个Python脚本，让OpenVPN使用postfix邮箱帐号进行身份认证</title>
		<link>http://guoyong.org/2008/05/14/359</link>
		<comments>http://guoyong.org/2008/05/14/359#comments</comments>
		<pubDate>Wed, 14 May 2008 13:27:36 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[OSS]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[openvpn python mysql postfix md5crypt]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=359</guid>
		<description><![CDATA[这几天配置OpenVPN，使用了用户名密码的身份认证方式，借助已有的postfix邮箱帐号，省去了再为每个人设置用户名密码的麻烦。
原理很简单，OpenVPN服务器配置里有这样一句：
auth-user-pass-verify /e... ]]></description>
			<content:encoded><![CDATA[<p>这几天配置OpenVPN，使用了用户名密码的身份认证方式，借助已有的postfix邮箱帐号，省去了再为每个人设置用户名密码的麻烦。</p>
<p>原理很简单，OpenVPN服务器配置里有这样一句：</p>
<div class="hl-surround"><div class="hl-main">auth-user-pass-verify /etc/openvpn/auth-postfix-mailbox.py via-env</div></div>
<p>就是说要用/etc/openvpn/auth-postfix-mailbox.py这个脚本来验证用户名和密码。用户名和密码如何传递给它呢？via-env，环境变量。</p>
<p>脚本如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">#!/usr/bin/env python</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">os</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">sys</span></li>
<li><span style="color: Green;">from</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">MySQLdb</span><span style="color: Gray;"> </span><span style="color: Green;">import</span><span style="color: Gray;"> *</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">md5crypt</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">auth</span><span style="color: Olive;">(</span><span style="color: Blue;">username</span><span style="color: Gray;">, </span><span style="color: Blue;">password</span><span style="color: Olive;">)</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">conn</span><span style="color: Gray;"> = </span><span style="color: Blue;">connect</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">host</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">localhost</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">user</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbuser</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">passwd</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">dbpasswd</span><span style="color: #8b0000;">'</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">db</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">postfix</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">cursor</span><span style="color: Gray;"> = </span><span style="color: Blue;">conn</span><span style="color: Gray;">.</span><span style="color: Blue;">cursor</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">cursor</span><span style="color: Gray;">.</span><span style="color: Blue;">execute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;&quot;&quot;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; select password from mailbox </span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; where username=%s</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; and active=1</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; </span><span style="color: #8b0000;">&quot;&quot;&quot;</span><span style="color: Gray;">, </span><span style="color: Olive;">(</span><span style="color: Blue;">username</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">row</span><span style="color: Gray;"> = </span><span style="color: Blue;">cursor</span><span style="color: Gray;">.</span><span style="color: Blue;">fetchone</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">row</span><span style="color: Gray;"> == </span><span style="color: Green;">None</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">crypt</span><span style="color: Gray;"> = </span><span style="color: Blue;">md5crypt</span><span style="color: Gray;">.</span><span style="color: Blue;">md5crypt</span><span style="color: Olive;">(</span><span style="color: Blue;">password</span><span style="color: Gray;">, </span><span style="color: Blue;">row</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">])</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">cursor</span><span style="color: Gray;">.</span><span style="color: Blue;">execute</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;&quot;&quot;</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; select * from mailbox</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; where username=%s </span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; and password=%s</span></li>
<li><span style="color: Red;">&nbsp; &nbsp; &nbsp; and active=1</span></li>
<li><span style="color: Red;">&nbsp;&nbsp; </span><span style="color: #8b0000;">&quot;&quot;&quot;</span><span style="color: Gray;">, </span><span style="color: Olive;">(</span><span style="color: Blue;">username</span><span style="color: Gray;">,</span><span style="color: Blue;">crypt</span><span style="color: Olive;">))</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">row</span><span style="color: Gray;"> = </span><span style="color: Blue;">cursor</span><span style="color: Gray;">.</span><span style="color: Blue;">fetchone</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">cursor</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">conn</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">row</span><span style="color: Gray;"> == </span><span style="color: Green;">None</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">main</span><span style="color: Olive;">()</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">status</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">username</span><span style="color: Gray;"> = </span><span style="color: Blue;">os</span><span style="color: Gray;">.</span><span style="color: Blue;">environ</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">username</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">password</span><span style="color: Gray;"> = </span><span style="color: Blue;">os</span><span style="color: Gray;">.</span><span style="color: Blue;">environ</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">password</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">status</span><span style="color: Gray;"> = </span><span style="color: Blue;">auth</span><span style="color: Olive;">(</span><span style="color: Blue;">username</span><span style="color: Gray;">, </span><span style="color: Blue;">password</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">except</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">sys</span><span style="color: Gray;">.</span><span style="color: Blue;">exit</span><span style="color: Olive;">(</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">sys</span><span style="color: Gray;">.</span><span style="color: Blue;">exit</span><span style="color: Olive;">(</span><span style="color: Blue;">status</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">__name__</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">__main__</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">:</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">main</span><span style="color: Olive;">()</span></li></ol></div>
<p>由于postfix使用md5认证，所以需要用md5crypt这个模块，从<a href="http://www.sabren.net/code/python/crypt/md5crypt.py" onclick="javascript:pageTracker._trackPageview ('/outbound/www.sabren.net');">这里</a>可以下载到。</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E4%B8%80%E4%B8%AAPython%E8%84%9A%E6%9C%AC%EF%BC%8C%E8%AE%A9OpenVPN%E4%BD%BF%E7%94%A8postfix%E9%82%AE%E7%AE%B1%E5%B8%90%E5%8F%B7%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BB%BD%E8%AE%A4%E8%AF%81&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F05%2F14%2F359">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=NanNeH"><img src="http://feeds.guoyong.org/~f/wolfg?i=NanNeH" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=Ph61TH"><img src="http://feeds.guoyong.org/~f/wolfg?i=Ph61TH" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/05/14/359/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>postfix和postgrey问题</title>
		<link>http://guoyong.org/2008/05/13/358</link>
		<comments>http://guoyong.org/2008/05/13/358#comments</comments>
		<pubDate>Tue, 13 May 2008 14:58:21 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[postfix]]></category>

		<category><![CDATA[postgrey]]></category>

		<category><![CDATA[smtp]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=358</guid>
		<description><![CDATA[公司的邮件服务器收不到外来邮件了，日志里有这样的错误：
554 Service unavailable; Client host [xxx.xxx.xxx.xxx] blocked using relays.ordb.org; ordb.org was shut down on December 18, 2006. Please remove from your mailserver.;
对... ]]></description>
			<content:encoded><![CDATA[<p>公司的邮件服务器收不到外来邮件了，日志里有这样的错误：</p>
<div class="hl-surround"><div class="hl-main">554 Service unavailable; Client host [xxx.xxx.xxx.xxx] blocked using relays.ordb.org; ordb.org was shut down on December 18, 2006. Please remove from your mailserver.;</div></div>
<p>对应main.cf里的配置是这样的：</p>
<div class="hl-surround"><div class="hl-main">smtpd_client_restrictions = permit_mynetworks, warn_if_reject reject_rbl_client sbl.spamhaus.org, warn_if_reject reject_rbl_client relays.ordb.org, warn_if_reject reject_rbl_client blackholes.easynet.nl, warn_if_reject reject_rbl_client dnsbl.njabl.org</div></div>
<p>改成只保留smtpd_client_restrictions = permit_mynetworks， 又有新信息出现：</p>
<div class="hl-surround"><div class="hl-main">postfix/smtpd[16212]: warning: problem talking to server 127.0.0.1:60000: Connection timed out</div></div>
<p>127.0.0.1:60000是postgrey工作的端口，用ps和netstat 发现postgrey进程还在，但top命令发现它占用了99%的CPU，而且用/etc/init.d/postgrey stop停不掉，只好kill掉，并改postfix里相应的设置，去掉postgrey检查：</p>
<div class="hl-surround"><div class="hl-main">smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks,permit_sasl_authenticated, reject_non_fqdn_recipient,reject_unauth_destination, check_policy_service inet:127.0.0.1:60000,permit</div></div>
<p>重启postfix，邮件可以收到了。再恢复smtpd_client_restrictions的配置，去掉relays.ordb.org检查，邮件可以收到。顺便搞清楚了warn_if_reject的含义：有它在时并不真正的拒绝邮件。</p>
<p>postgrey的问题还没找到解决办法，不知道为什么会hang在那里，暂时不用它了。</p>
<p>==== 2008-05-14 ====<br />
补充： 将Berkeley DB由原来的4.3升级到4.4以后，postgrey正常了。<br />
搜索到的相关信息：<br />
<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=441069" title="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=441069" target="_blank">bugs.debian.org/cgi-bin/bugreport.cgi?bug=441069</a><br />
<a href="https://bugs.edge.launchpad.net/ubuntu/gutsy/+source/db4.4/+bug/153996" title="https://bugs.edge.launchpad.net/ubuntu/gutsy/+source/db4.4/+bug/153996" target="_blank">bugs.edge.launchpad.net/ubuntu/gutsy/+source/db4.4&#8230;</a></p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=postfix%E5%92%8Cpostgrey%E9%97%AE%E9%A2%98&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F05%2F13%2F358">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=HVNUgH"><img src="http://feeds.guoyong.org/~f/wolfg?i=HVNUgH" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=cFUF9H"><img src="http://feeds.guoyong.org/~f/wolfg?i=cFUF9H" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/05/13/358/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>Xfce 字体问题</title>
		<link>http://guoyong.org/2008/05/11/357</link>
		<comments>http://guoyong.org/2008/05/11/357#comments</comments>
		<pubDate>Sun, 11 May 2008 06:51:06 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[font]]></category>

		<category><![CDATA[ubuntu]]></category>

		<category><![CDATA[xfce]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=357</guid>
		<description><![CDATA[昨天为了使用笔记本（T43, ATI Mobility Radeon X300显卡）的VGA OUT功能，改用了ATI的驱动（xorg-driver-fglrx），字体变小了，虽然在User Interface和Window Manager里设置了字体，但有些地方的字体还是很小，... ]]></description>
			<content:encoded><![CDATA[<p>昨天为了使用笔记本（T43, ATI Mobility Radeon X300显卡）的VGA OUT功能，改用了ATI的驱动（xorg-driver-fglrx），字体变小了，虽然在User Interface和Window Manager里设置了字体，但有些地方的字体还是很小，尤其是ThunderBird的邮件正文，中文字都要缩成一团了。</p>
<p>Google到了一个方法，就是修改~/.config/xfce4/Xft.xrdb这个文件，在里面加上这句</p>
<div class="hl-surround"><div class="hl-main">Xft.dpi: 96</div></div>
<p>再看User Interface的Font设置，发现里面也有DPI的设置，呵呵。</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=Xfce+%E5%AD%97%E4%BD%93%E9%97%AE%E9%A2%98&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F05%2F11%2F357">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=CjJdpH"><img src="http://feeds.guoyong.org/~f/wolfg?i=CjJdpH" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=qD2ouH"><img src="http://feeds.guoyong.org/~f/wolfg?i=qD2ouH" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/05/11/357/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>今晚折腾久违了的weblog</title>
		<link>http://guoyong.org/2008/05/05/354</link>
		<comments>http://guoyong.org/2008/05/05/354#comments</comments>
		<pubDate>Sun, 04 May 2008 16:55:51 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[OSS]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=354</guid>
		<description><![CDATA[很久没上来了，终于想要记下点东西了。
顺手升级了wordpress到2.5.1，用dreamhost的one click install，很方便。但访问升级页面时，得到了错误：
“Cannot redeclare is_tag()”
在这里找到了原因，是ultimate-... ]]></description>
			<content:encoded><![CDATA[<p>很久没上来了，终于想要记下点东西了。</p>
<p>顺手升级了wordpress到2.5.1，用dreamhost的one click install，很方便。但访问升级页面时，得到了错误：<br />
“Cannot redeclare is_tag()”</p>
<p>在<a href="http://www.magang.name/?p=105" onclick="javascript:pageTracker._trackPageview ('/outbound/www.magang.name');">这里</a>找到了原因，是ultimate-tag-warrior.php重复定义了is_tag()函数。</p>
<p>K2主题也升级到了最新版，很多东西都需要重新调整，慢慢弄吧。</p>
<p>今天新加了一个分类“Symbian”，准备把自己<strong>使用</strong>Symbian程序(都是开源或者freeware)的心得记一下，呵呵，注意不是编程心得哈。</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E4%BB%8A%E6%99%9A%E6%8A%98%E8%85%BE%E4%B9%85%E8%BF%9D%E4%BA%86%E7%9A%84weblog&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F05%2F05%2F354">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=Eb8qCH"><img src="http://feeds.guoyong.org/~f/wolfg?i=Eb8qCH" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=OizMfH"><img src="http://feeds.guoyong.org/~f/wolfg?i=OizMfH" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/05/05/354/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>升级到Ubuntu 8.04</title>
		<link>http://guoyong.org/2008/05/05/353</link>
		<comments>http://guoyong.org/2008/05/05/353#comments</comments>
		<pubDate>Sun, 04 May 2008 16:45:07 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[OSS]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://guoyong.org/?p=353</guid>
		<description><![CDATA[五一假期用了一晚时间升级了笔记本电脑上装的Ubuntu，注意到一些变化：
1. 启动过程中如果检查硬盘不会显示纯终端界面了
2. 登录xfce后无线网自动连接，不用再输入keyring的密码，很方便
3. Fir... ]]></description>
			<content:encoded><![CDATA[<p>五一假期用了一晚时间升级了笔记本电脑上装的Ubuntu，注意到一些变化：<br />
1. 启动过程中如果检查硬盘不会显示纯终端界面了<br />
2. 登录xfce后无线网自动连接，不用再输入keyring的密码，很方便<br />
3. Firefox 升级到3.0<br />
4. 中文字体显示效果似乎比以前好了</p>
<p>升级后原来的vmware-player不能用啦，按照<a href="http://theblacklodge.org/blog/2008/04/02/installing-vmware-player-203-on-ubuntu-804-beta" onclick="javascript:pageTracker._trackPageview ('/outbound/theblacklodge.org');">这里的说明</a>即可解决。</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E5%8D%87%E7%BA%A7%E5%88%B0Ubuntu+8.04&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F05%2F05%2F353">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=Xpb4GH"><img src="http://feeds.guoyong.org/~f/wolfg?i=Xpb4GH" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=Vk11nH"><img src="http://feeds.guoyong.org/~f/wolfg?i=Vk11nH" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/05/05/353/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>Web页面自动打印PDF文件的实现</title>
		<link>http://guoyong.org/2008/02/29/350</link>
		<comments>http://guoyong.org/2008/02/29/350#comments</comments>
		<pubDate>Fri, 29 Feb 2008 15:01:55 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[Adobe]]></category>

		<category><![CDATA[iText]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[pdf]]></category>

		<category><![CDATA[print]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://guoyong.org/2008/02/29/350</guid>
		<description><![CDATA[借助iText和Adobe Acrobat的Javascript支持，可以实现PDF文档的自动打印（可以做到不显示打印对话框）
......
&#160;
PdfReader&#160;reader = new PdfReader(pdfStream); [1]
&#160;
StringBuffer&#160;script = new StringBuffer(); [2]
... ]]></description>
			<content:encoded><![CDATA[<p>借助iText和Adobe Acrobat的Javascript支持，可以实现PDF文档的自动打印（可以做到不显示打印对话框）</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">......</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">PdfReader</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">reader</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">PdfReader</span><span style="color: Olive;">(</span><span style="color: Blue;">pdfStream</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: Olive;">[</span><span style="color: Maroon;">1</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">StringBuffer</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">script</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">StringBuffer</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span><span style="color: Olive;">[</span><span style="color: Maroon;">2</span><span style="color: Olive;">]</span></li>
<li><span style="color: Blue;">script</span><span style="color: Gray;">.</span><span style="color: Blue;">append</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">this.print({bUI: false,bSilent: true,bShrinkToFit: false});</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; .</span><span style="color: Blue;">append</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Navy;">\r\n</span><span style="color: Red;">this.closeDoc();</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">ByteArrayOutputStream</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bos</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">ByteArrayOutputStream</span><span style="color: Olive;">(</span><span style="color: Blue;">pdfStream</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">PdfStamper</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">stamp</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">PdfStamper</span><span style="color: Olive;">(</span><span style="color: Blue;">reader</span><span style="color: Gray;">, </span><span style="color: Blue;">bos</span><span style="color: Olive;">)</span><span style="color: Gray;">; </span><span style="color: Olive;">[</span><span style="color: Maroon;">3</span><span style="color: Olive;">]</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">stamp</span><span style="color: Gray;">.</span><span style="color: Blue;">setViewerPreferences</span><span style="color: Olive;">(</span><span style="color: Blue;">PdfWriter</span><span style="color: Gray;">.</span><span style="color: Blue;">HideMenubar</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; | </span><span style="color: Blue;">PdfWriter</span><span style="color: Gray;">.</span><span style="color: Blue;">HideToolbar</span><span style="color: Gray;"> | </span><span style="color: Blue;">PdfWriter</span><span style="color: Gray;">.</span><span style="color: Blue;">HideWindowUI</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">stamp</span><span style="color: Gray;">.</span><span style="color: Blue;">addJavaScript</span><span style="color: Olive;">(</span><span style="color: Blue;">script</span><span style="color: Gray;">.</span><span style="color: Blue;">toString</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">stamp</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">DocumentException</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">logger</span><span style="color: Gray;">.</span><span style="color: Blue;">error</span><span style="color: Olive;">(</span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">getMessage</span><span style="color: Olive;">()</span><span style="color: Gray;">, </span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">getCause</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">StreamingResolution</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">application/pdf</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">BufferedInputStream</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">ByteArrayInputStream</span><span style="color: Olive;">(</span><span style="color: Blue;">bos</span><span style="color: Gray;">.</span><span style="color: Blue;">toByteArray</span><span style="color: Olive;">())))</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">......</span></li></ol></div>
<p>代码说明：<br />
1、pdfStream是用iText生成的PDF文档字节流<br />
2、script是要加入到PDF文档里的Javascript代码。这段Javascript代码先调用PDF文档对象的print方法，然后用closeDoc方法关闭文档。print方法的参数指定了不要显示打印对话框，参数含义参考<a href="http://partners.adobe.com/public/developer/pdf/topic_js.html" onclick="javascript:pageTracker._trackPageview ('/outbound/partners.adobe.com');">Acrobat JavaScript Scripting Reference</a><br />
3、bos用来保存加入Javascript后的PDF文档字节流，它作为PdfStamper对象的输出流。PdfStamper对象调用addJavaScript方法将Javascript代码加入到PDF文档中。</p>
<p>Web页面嵌入PDF文档:</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;</span><span style="color: Green;">embed</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">application/pdf</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">src</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/PrintPdf.action</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">width</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">height</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">embed</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=Web%E9%A1%B5%E9%9D%A2%E8%87%AA%E5%8A%A8%E6%89%93%E5%8D%B0PDF%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%9E%E7%8E%B0&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F02%2F29%2F350">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=V62Ol0E"><img src="http://feeds.guoyong.org/~f/wolfg?i=V62Ol0E" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=jWtCqVE"><img src="http://feeds.guoyong.org/~f/wolfg?i=jWtCqVE" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/02/29/350/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>升级系统导致Postfix的SMTP认证失败（Cyrus-SASL + MySQL）</title>
		<link>http://guoyong.org/2008/01/29/351</link>
		<comments>http://guoyong.org/2008/01/29/351#comments</comments>
		<pubDate>Mon, 28 Jan 2008 16:38:37 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[postfix]]></category>

		<category><![CDATA[smtp]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://guoyong.org/2008/01/29/351</guid>
		<description><![CDATA[日志里这样的错误信息：
warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory
最终发现原因：main.cf里smtpd_sasl_path的设置错误，可能是更新修改的。
把smtpd_sasl_path=/etc... ]]></description>
			<content:encoded><![CDATA[<p>日志里这样的错误信息：<br />
warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory</p>
<p>最终发现原因：main.cf里smtpd_sasl_path的设置错误，可能是更新修改的。<br />
把smtpd_sasl_path=/etc/postfix/sasl:/usr/lib/sasl2改成smtpd_sasl_path=smtpd后，重启postfix和courier-authdaemon，问题解决。</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E5%8D%87%E7%BA%A7%E7%B3%BB%E7%BB%9F%E5%AF%BC%E8%87%B4Postfix%E7%9A%84SMTP%E8%AE%A4%E8%AF%81%E5%A4%B1%E8%B4%A5%EF%BC%88Cyrus-SASL+%2B+MySQL%EF%BC%89&amp;url=http%3A%2F%2Fguoyong.org%2F2008%2F01%2F29%2F351">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=isRHChD"><img src="http://feeds.guoyong.org/~f/wolfg?i=isRHChD" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=p9DHP7D"><img src="http://feeds.guoyong.org/~f/wolfg?i=p9DHP7D" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2008/01/29/351/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>同时运行两个mysql实例</title>
		<link>http://guoyong.org/2007/12/09/349</link>
		<comments>http://guoyong.org/2007/12/09/349#comments</comments>
		<pubDate>Sat, 08 Dec 2007 16:17:05 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[phpmyadmin]]></category>

		<guid isPermaLink="false">http://guoyong.org/2007/12/09/349</guid>
		<description><![CDATA[运行环境： Ubuntu 6.06 server
1. 修改/etc/mysql/my.cnf
加入
[mysqld_multi]mysqld&#160; &#160; &#160;= /usr/bin/mysqld_safemysqladmin = /usr/bin/mysqladminuser&#160; &#160; &#160; &#160;= multi_adminpassword&#160; &#160;= multipass
把原来的[m... ]]></description>
			<content:encoded><![CDATA[<p>运行环境： Ubuntu 6.06 server</p>
<p>1. 修改/etc/mysql/my.cnf</p>
<p>加入</p>
<div class="hl-surround"><div class="hl-main">[mysqld_multi]<br />mysqld&nbsp; &nbsp; &nbsp;= /usr/bin/mysqld_safe<br />mysqladmin = /usr/bin/mysqladmin<br />user&nbsp; &nbsp; &nbsp; &nbsp;= multi_admin<br />password&nbsp; &nbsp;= multipass</div></div>
<p>把原来的[mysqld]改成[mysqld001]，并加入[mysqld002]，分别配置两个实例，主要是下面这些设置要不同：</p>
<ul>
<li>pid-file</li>
<li>socket</li>
<li>port</li>
<li>datadir</li>
</ul>
<p>2. 设置用户</p>
<div class="hl-surround"><div class="hl-main">$ mysql -u root -S /var/run/mysqld/mysqld.sock -p<br />&gt; GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';<br />$ mysql -u root -S /var/run/mysqld/mysqld2.sock -p<br />&gt; GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';</div></div>
<p>3. 测试启动停止命令</p>
<div class="hl-surround"><div class="hl-main">$ mysqld_multi --no-log --config-file=/etc/mysql/my.cnf start 001,002<br />$ mysqld_multi --no-log --config-file=/etc/mysql/my.cnf stop 001,002<br />$ mysqld_multi --no-log --config-file=/etc/mysql/my.cnf report 001,002</div></div>
<p>4. 新建启动脚本 /etc/init.d/mysql-multi替换原来的启动脚本/etc/init.d/mysql</p>
<p>5. 修改/etc/phpmyadmin/config.inc.php，配置如何连接这两个服务器</p>
<div class="hl-surround"><div class="hl-main">$i = 0;<br />$i++;<br />$cfg['Servers'][$i]['host']&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 'localhost'; <br />$cfg['Servers'][$i]['socket']&nbsp; &nbsp; &nbsp; &nbsp; = '/var/run/mysqld/mysqld.sock';&nbsp; <br />$cfg['Servers'][$i]['connect_type']&nbsp; = 'socket'; <br />$cfg['Servers'][$i]['verbose']&nbsp; &nbsp; &nbsp; &nbsp;= 'localhost:3306'; <br />$i++;<br />$cfg['Servers'][$i]['host']&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = 'localhost'; <br />$cfg['Servers'][$i]['socket']&nbsp; &nbsp; &nbsp; &nbsp; = '/var/run/mysqld/mysqld2.sock';&nbsp; <br />$cfg['Servers'][$i]['connect_type']&nbsp; = 'socket'; <br />$cfg['Servers'][$i]['verbose']&nbsp; &nbsp; &nbsp; &nbsp;= 'localhost:3307';</div></div>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E5%90%8C%E6%97%B6%E8%BF%90%E8%A1%8C%E4%B8%A4%E4%B8%AAmysql%E5%AE%9E%E4%BE%8B&amp;url=http%3A%2F%2Fguoyong.org%2F2007%2F12%2F09%2F349">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=rhmrO0C"><img src="http://feeds.guoyong.org/~f/wolfg?i=rhmrO0C" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=f0ODcYC"><img src="http://feeds.guoyong.org/~f/wolfg?i=f0ODcYC" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2007/12/09/349/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>发布jar包到自己设立的Maven Repository</title>
		<link>http://guoyong.org/2007/12/08/348</link>
		<comments>http://guoyong.org/2007/12/08/348#comments</comments>
		<pubDate>Sat, 08 Dec 2007 07:28:47 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[OSS]]></category>

		<category><![CDATA[Tips]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://guoyong.org/2007/12/08/348</guid>
		<description><![CDATA[使用Artifactiry为自己的开发团队设立了repository镜像。有时需要把本地的一些第三方的jar包发布到服务器，使用maven-deploy-plugin的deploy:deploy-file目标可以完成这个任务。
比如，要发布jta的jar包jta-1.... ]]></description>
			<content:encoded><![CDATA[<p>使用Artifactiry为自己的开发团队设立了repository镜像。有时需要把本地的一些第三方的jar包发布到服务器，使用maven-deploy-plugin的deploy:deploy-file目标可以完成这个任务。</p>
<p>比如，要发布jta的jar包jta-1.0.1B.jar</p>
<div class="hl-surround"><div class="hl-main">$ mvn deploy:deploy-file -DgroupId=javax.transaction \<br />&nbsp;&nbsp; -DartifactId=jta \<br />&nbsp;&nbsp; -Dversion=1.0.1B \<br />&nbsp;&nbsp; -Dpackaging=jar \<br />&nbsp;&nbsp; -Dfile=~/.m2/repository/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar \<br />&nbsp;&nbsp; -DrepositoryId=central \<br />&nbsp;&nbsp; -Durl=http://host.of.your.repository[:port]/artifactory/ibiblio@repo</div></div>
<p>说明：</p>
<ul>
<li>repositoryId在工程的pom文件里设置</li>
<li>url由Artifactiry的配置决定，注意不能使用virtual repository的地址</li>
<li>如果远程repository需要身份验证，用户名和密码需要在maven的settings.xml里设置</li>
</ul>
<p>参考: </p>
<ul>
<li> <a href="http://maven.apache.org/guides/mini/guide-deploying-3rd-party-jars.html" title="http://maven.apache.org/guides/mini/guide-deploying-3rd-party-jars.html" target="_blank">maven.apache.org/guides/mini/guide-deploying-3rd-p&#8230;</a> </li>
<li> <a href="http://www.jfrog.org/sites/artifactory/latest/import.html" title="http://www.jfrog.org/sites/artifactory/latest/import.html" target="_blank">www.jfrog.org/sites/artifactory/latest/import.html</a> </li>
</ul>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E5%8F%91%E5%B8%83jar%E5%8C%85%E5%88%B0%E8%87%AA%E5%B7%B1%E8%AE%BE%E7%AB%8B%E7%9A%84Maven+Repository&amp;url=http%3A%2F%2Fguoyong.org%2F2007%2F12%2F08%2F348">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=B8mAqXC"><img src="http://feeds.guoyong.org/~f/wolfg?i=B8mAqXC" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=XSeJpbC"><img src="http://feeds.guoyong.org/~f/wolfg?i=XSeJpbC" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2007/12/08/348/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>重新显示FeedBurner计数器</title>
		<link>http://guoyong.org/2007/10/19/347</link>
		<comments>http://guoyong.org/2007/10/19/347#comments</comments>
		<pubDate>Fri, 19 Oct 2007 06:00:46 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Tips]]></category>

		<category><![CDATA[feedburner]]></category>

		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://guoyong.org/2007/10/19/347</guid>
		<description><![CDATA[从Punkid那儿学到的方法。只不过我想更省事一些，直接用了wget。
wget http://feeds.feedburner.com/~fc/wolfg?bg=BCF16C\&#38;fg=404040\&#38;anim=0 -O feeds.png
<script type="text/javascript">SHARETHIS.addEntry({ title: "重新显示Fee... ]]></description>
			<content:encoded><![CDATA[<p>从<a href="http://blog.punkid.cn/" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.punkid.cn');">Punkid</a>那儿学到的方法。只不过我想更省事一些，直接用了wget。</p>
<div class="hl-surround"><div class="hl-main">wget http://feeds.feedburner.com/~fc/wolfg?bg=BCF16C\&amp;fg=404040\&amp;anim=0 -O feeds.png</div></div>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=%E9%87%8D%E6%96%B0%E6%98%BE%E7%A4%BAFeedBurner%E8%AE%A1%E6%95%B0%E5%99%A8&amp;url=http%3A%2F%2Fguoyong.org%2F2007%2F10%2F19%2F347">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=qU8KVXA"><img src="http://feeds.guoyong.org/~f/wolfg?i=qU8KVXA" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=ISPNeMA"><img src="http://feeds.guoyong.org/~f/wolfg?i=ISPNeMA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2007/10/19/347/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
		<item>
		<title>Nokia Mobile Software University Camp Beijing</title>
		<link>http://guoyong.org/2007/10/18/346</link>
		<comments>http://guoyong.org/2007/10/18/346#comments</comments>
		<pubDate>Thu, 18 Oct 2007 15:34:07 +0000</pubDate>
		<dc:creator>wolfg</dc:creator>
		
		<category><![CDATA[Mobile]]></category>

		<category><![CDATA[maemo]]></category>

		<category><![CDATA[n800]]></category>

		<category><![CDATA[nokia]]></category>

		<guid isPermaLink="false">http://guoyong.org/2007/10/18/346</guid>
		<description><![CDATA[
16号、17号两天去参加了诺基亚移动软件大学技术营北京营的活动。与来自芬兰的maemo技术专家进行了沟通（就是不太习惯北欧式英语的发音，汗。。。）
今天在Planet Maemo和邮件列表里看到N810... ]]></description>
			<content:encoded><![CDATA[<p><img src='http://guoyong.org/blog/wp-content/uploads/image134.thumbnail.jpg' alt='Nokia Mobile Software University Camp Beijing' /></p>
<p>16号、17号两天去参加了诺基亚移动软件大学技术营北京营的活动。与来自芬兰的maemo技术专家进行了沟通（就是不太习惯北欧式英语的发音，汗。。。）</p>
<p>今天在Planet Maemo和邮件列表里看到N810已经出来了，操作系统是ITOS 2008，SDK是beta版的maemo 4.0 Chinook 。这里有一些官方的<a href="http://www.nokia.com/A4136017?category=n810" onclick="javascript:pageTracker._trackPageview ('/outbound/www.nokia.com');">截图</a> </p>
<p>其他相关介绍：<br />
 <a href="http://linuxdevices.com/news/NS3669465936.html" title="http://linuxdevices.com/news/NS3669465936.html" target="_blank">linuxdevices.com/news/NS3669465936.html</a><br />
 <a href="http://www.nseries.com/nseries/v3/media/sections/products/tech_specs/en-R1/tech_specs_n810_en_R1.html" title="http://www.nseries.com/nseries/v3/media/sections/products/tech_specs/en-R1/tech_specs_n810_en_R1.html" target="_blank">www.nseries.com/nseries/v3/media/sections/products&#8230;</a></p>
<p>同时，N810的对社区贡献者的优惠活动也开始了，详情见<a href="http://maemo.org/news/announcements/view/1192708879.html" onclick="javascript:pageTracker._trackPageview ('/outbound/maemo.org');">这里</a>。</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=1fd5215c-1f85-45ab-9729-e590eab3e7ae&amp;title=Nokia+Mobile+Software+University+Camp+Beijing&amp;url=http%3A%2F%2Fguoyong.org%2F2007%2F10%2F18%2F346">ShareThis</a></p><div class="feedflare">
<a href="http://feeds.guoyong.org/~f/wolfg?a=SkPSkPA"><img src="http://feeds.guoyong.org/~f/wolfg?i=SkPSkPA" border="0"></img></a> <a href="http://feeds.guoyong.org/~f/wolfg?a=7JVN1ZA"><img src="http://feeds.guoyong.org/~f/wolfg?i=7JVN1ZA" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://guoyong.org/2007/10/18/346/feed</wfw:commentRss>
		<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license></item>
	<lastBuildDate>Mon, 17 Nov 2008 00:00:00 -0600</lastBuildDate></channel>
</rss><!-- Dynamic Page Served (once) in 15.900 seconds --><!-- Cached page served by WP-Cache -->
