<?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>大房小站</title>
	<atom:link href="http://blog.da-fang.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.da-fang.com</link>
	<description>只许做梦，不许联想</description>
	<lastBuildDate>Mon, 09 Aug 2010 01:04:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>关于HTML5应用现状与前景的思考</title>
		<link>http://blog.da-fang.com/2010/06/%e5%85%b3%e4%ba%8ehtml5%e5%ba%94%e7%94%a8%e7%8e%b0%e7%8a%b6%e4%b8%8e%e5%89%8d%e6%99%af%e7%9a%84%e6%80%9d%e8%80%83/</link>
		<comments>http://blog.da-fang.com/2010/06/%e5%85%b3%e4%ba%8ehtml5%e5%ba%94%e7%94%a8%e7%8e%b0%e7%8a%b6%e4%b8%8e%e5%89%8d%e6%99%af%e7%9a%84%e6%80%9d%e8%80%83/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 16:07:24 +0000</pubDate>
		<dc:creator>wyatt</dc:creator>
				<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=1038</guid>
		<description><![CDATA[现在的 HTML5 就像当年崭露头角时的 Ajax，有人在做，但不知道叫它什么。最近，苹果在 HTML5 上大做文章，而著名的 Web 设计师 Eric Meyer 则提出了 Web Stacks 的概念。Alex Kessinger 是 Yahoo 的一名前端工程师，本文是他对 HTML5 应用现状与前景的思考。 术语 首先说说 HTML5 应用中的几个定义。 HTML5 HTML5 最好的定义来自  Mark Pilgrim 的 Dive Into HTML5： &#8220;HTML5 是继 HTML4.01，XHTML 1.0/1.1 之后的下一代 HTML&#8220; 值得一提的是，我们或许能看到 HTML6，然而按 Pilgrim 在 WHATWG &#8230; <a href="http://blog.da-fang.com/2010/06/%e5%85%b3%e4%ba%8ehtml5%e5%ba%94%e7%94%a8%e7%8e%b0%e7%8a%b6%e4%b8%8e%e5%89%8d%e6%99%af%e7%9a%84%e6%80%9d%e8%80%83/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>现在的 HTML5 就像当年崭露头角时的 Ajax，有人在做，但不知道叫它什么。最近，<a href="http://www.apple.com/html5/">苹果在 HTML5 上大做文章</a>，而著名的 Web 设计师 Eric Meyer 则提出了 <a href="http://meyerweb.com/eric/thoughts/2010/05/19/the-web-stack/">Web Stacks</a> 的概念。<strong>Alex Kessinger </strong>是 Yahoo 的一名前端工程师，本文是他对 HTML5 应用现状与前景的思考。</p>
<h2>术语</h2>
<p>首先说说 HTML5 应用中的几个定义。</p>
<h4>HTML5</h4>
<p>HTML5 最好的定义来自  <a href="http://sixrevisions.com/html/Being%20Processed/Alex_Kessinger_the_State_of_HTML5_Webapps/diveintomark.org">Mark Pilgrim</a> 的 <a href="http://diveintohtml5.org/introduction.html">Dive Into HTML5</a>：</p>
<blockquote><p>&#8220;<em>HTML5 是继 HTML4.01，XHTML 1.0/1.1 之后的下一代 HTML</em>&#8220;</p></blockquote>
<p>值得一提的是，我们或许能看到 HTML6，然而按 Pilgrim 在 <a href="http://blog.whatwg.org/whats-next-in-html-episode-1">WHATWG 博客</a>中 的说法，下一代 HTML 很可能去掉版本号这一概念。<span id="more-1038"></span></p>
<h4>应用</h4>
<p>来自 <a href="http://en.wikipedia.org/wiki/Application_%28computing">Wikipedia</a> 的解释：</p>
<blockquote><p>&#8220;<em>应用程序是计算机用来执行特定任务的软件</em>&#8220;</p></blockquote>
<h4>HTML5 应用</h4>
<p>从用户的角度，HTML5 应用和其它的计算机应用程序还不完全一样，但已经很接近。从开发者的角度，HTML5 应用是一些基于 HTML，JavaScript，CSS 的程序，它们使用开放技术，可以离线使用，可以取代诸如 Silverlight 及 Flash 等专用平台的部分工作。或者说，多年来，你用来创建 Web 页面的东西，现在可以用来创建类似桌面和智能手机程序的应用。</p>
<h2>开源模式带来转变</h2>
<p>O’Reilly 创始人，Tim O’Reilly，一位开源的支持者，曾在《<a href="http://tim.oreilly.com/articles/paradigmshift_0504.html">Open Source Paradigm Shift</a>》中如是说：</p>
<blockquote><p>&#8220;<em>IBM 对个人电脑设计的商品化使利润从硬件转移到软件这一层面，而开源将带来新的财富</em>&#8220;</p></blockquote>
<p>价值在不同的层面转移，HTML5 将成为新的层面，商品的价值在下降，现时的浏览器已经成为商品，但这并没有问题，只要它们都遵守标准。人们说，我们可以将操作系统置入浏览器中，但这行不 通，如果我们可以从过去的经历中学到些什么，那就是，不能简单照抄过去的模式，好比广播到电视的变迁，你不能简单地在一个播音员面前放台摄像机完事，将操 作系统置入浏览器未必比 HTML5 离线应用本身更有价值。</p>
<h2>发布渠道的重要</h2>
<p>诸如 苹果应用商店，Android 应用商店一类的渠道将成为主导，另外，一些新的，象 Valve 游戏渠道，Netflix 电影渠道一类的东西将会出现，在”云“时代，这些发布渠道将像桌面时代的操作系统一样用来对用户进行组织和归类。</p>
<h2>我们是如何到达现在这个阶段的?</h2>
<p>有两个关键的因素。</p>
<h4>感谢 Web 标准</h4>
<p>尽管浏览器市场并不统一，但至少他们都运行 HTML，JavaScript 和 CSS。当我们希望通过 Web 推出一些东西的时候，我们知道，无论如何，用户都能看到，然而你能想象人们都自己定义 Web 时的情景吗，假如有人不使用 HTTP协议，或者不使用 HTML，那才是世界的末日。W3C 一类的组织让各个浏览器厂家都保持同一个方向。</p>
<h4>还好，我们并没有很多渲染引擎</h4>
<p>浏览器并不好做，数十亿的网页，参差不齐的代码，这些东西让独立开发者没有机会单独设计浏览器，因此，有能力设计浏览器的始终是那么一小撮厂商，事 实上，时至今日，我们只有四种主要的浏览器渲染引擎，Trident (IE), Gecko (Mozilla, Firefox), WebKit (Chrome, Safari), 以及 Presto (Opera)，而众多浏览器都是建立在这些渲染引擎之上的。这意味着，不管在什么样的设备上，我们不用太担心它使用什么样的浏览器，不管什么设备，只要 它有一个浏览器，就有一个可以运行 HTML5 的环境。</p>
<h2>标准何日面世？</h2>
<p>关于 HTML5 成为标准的时间，<a href="http://ln.hixie.ch/">Ian Hixie</a> 的说法最受认可:</p>
<blockquote><p>&#8220;<em>根据估计，HTML5 直到 2022 年才会形成 W3C 推荐标准</em>&#8220;</p></blockquote>
<p>然而，虽然标准的形成尚待时日，但浏览器厂商已经在实现各种 HTML5 功能。</p>
<h4>功能探测 vs 浏览器探测</h4>
<p>如果你是开发者，你可以使用那些高级功能，但需要进行功能探测并提供渐进式设计。坊间有大量的功能探测库，如 <a href="http://www.modernizr.com/">Modernizer</a> ，另外，Mark Pilgrim 有一个清单，<a href="http://diveintohtml5.org/everything.html">它可以让你探测任何功能</a>。</p>
<h2>离线 API</h2>
<p>离线 API 是一切 HTML5 应用的基础，不单单是离线数据的事，对开发者来说，拥有本地存储（<a href="http://dev.w3.org/html5/webstorage/#the-localstorage-attribute">localStorage</a>） 自然很好，但如何让程序完全离线运行？<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html#appcache">Application Cache</a> 是答案。如果不能离线保存源文件和数据，我们就无法实现离线的 HTML5 应用。</p>
<p>我们目前有几种离线存储机制，简单的如 <a href="http://dev.w3.org/html5/webstorage/#the-localstorage-attribute">localStorage</a> 和 SQL 存储引擎，已经有一些浏览器在支持了，而最新的明星是 <a href="http://www.w3.org/TR/IndexedDB/">Indexed Database</a>，它得到了所有主流浏览器 支持。这些离线保存应用和数据的能力，是 HTML5 的基础，目前，Webkit，Firefox 已经可以实现，而 IE9 也即将实现。即时 IE9 的支持还需要等待，想一下，最需要离线应用的场合是哪里，自然是智能手机和上网本，智能手机多数都是用 Webkit。</p>
<h2>W3C Web 应用工作组：HTML5 应用的下一步</h2>
<p>W3C <a href="http://www.w3.org/2008/webapps/">WebApp</a>s 标准已经做了大量工作，包括 API 及 HTML5 Web 程序细则。</p>
<h4>HTML5 应用的打包部署</h4>
<blockquote><p><a href="http://www.quirksmode.org/blog/archives/2010/03/html5_apps.html">HTML5 apps – QuirksBlog</a> 博客文章中说，&#8221;<em>对于本地/离线 HTML5 应用，<a href="http://www.w3.org/TR/widgets/">W3C Widget packaging and configuration</a> 是首选机制，并将成为事实标准，很多厂商已经开始对之进行实现。W3C Widgets 支持任意平台的 <a href="http://jil.vodafone-developer.com/">Vodafone S60 和 Samsung 手机</a>, <a href="http://www.opera.com/business/solutions/widgets/benefits/index.dml">Opera 桌面与移动浏览器</a>，<a href="http://boltbrowser.com/home.html">Bolt 浏览器</a> 以及<a href="http://msdn.microsoft.com/en-us/library/dd721906%28loband%29.aspx">Windows Mobile 6.5</a>。<a href="http://www.intomobile.com/2009/05/11/web-based-blackberry-widgets-en-route.html">BlackBerry</a> 也支持，不过需要特殊的 Java 包。</em>&#8220;</p></blockquote>
<p>这些都是标准，本质上讲，如果你有一个 HTML5 应用，它就会包含 HTML, CSS, 以及 JS，这些标准只不过偶是帮助开发者将他们的程序打包发行，如果你熟悉 <a href="http://pear.php.net/">PEAR</a>, 它们是很相似的概念。你可能需要一些元数据，告诉系统你的程序是如何打包在一起的，在支持这些标准的平台上，你就可以保证你的用户可以顺利运行这些程序。</p>
<h2>其它</h2>
<p>HTML5 还有更多 API 可以帮助开发者创建应用，这些 API 可以让你的程序访问诸如<a href="http://dev.w3.org/2006/webapi/FileAPI/">本地文件</a>，<a href="http://www.w3.org/TR/2010/WD-capture-api-20100401/">摄像头</a>，<a href="http://dev.w3.org/html5/websockets/">SOCKET 通信服务</a>，以及硬件动画加速等。这些 API 仅仅是开端，这样的 API 后期会越来越多。</p>
<h2>HTML5 程序可以应用在哪里？</h2>
<p>当然是浏览器，如果一个设备拥有一个浏览器或渲染引擎，而且这个引擎是现代引擎，它就可以运行 HTML5 程序。HTML5 程序会应用在以下几种场合。</p>
<h4>桌面</h4>
<p>如果你拥有一个符合 Web 标准的浏览器，就可以运行 HTML5 应用。桌面仍然很重要。</p>
<h4>指定站点浏览器</h4>
<p>诸如 Gmail 一类的站点可以看做一个应用，使用<a href="http://en.wikipedia.org/wiki/Site-specific_browser">专门的浏览器</a>运行，这 样的浏览器没有地址栏，是专门用来运行指定站点应用的，甚至可以制作一个安装包来分发。以下资源值得一看，<a href="http://mozillalabs.com/prism/">Prism</a>, <a href="http://fluidapp.com/">Fluid</a>/<a href="http://fluidium.org/">Fluidium</a> 以及<a href="http://cappuccino.org/discuss/2010/05/13/nativehost-run-your-cappuccino-applications-on-the-desktop/">NativeHost</a>。</p>
<h4>移动领域</h4>
<p>这是 HTML5 最热门的运行场所。iPhone 可以和很多程序集成，将你的程序显示在它的今日桌面（<a href="http://sixrevisions.com/web-development/html5-iphone-app/">这里有一个教程</a>），Android 也支持需要的 HTML5 API，但集成不够好。未来几年，支持 HTML5 的移动浏览器将如雨后春笋，将你的应用向 HTML5 迁移是很明智的，因为 HTML5 将很好地运行在这些设备上。</p>
<h4>跨界领域</h4>
<p>已经有公司即将发布电视平台，<a href="http://www.google.com/tv/">Google TV</a> 以及 <a href="http://www.apple.com/appletv/">Apple TV</a>，Google 表示，他们的 TV 平台将支持 HTML5，我们不知道苹果的 TV 平台将支持什么，鉴于<a href="http://www.apple.com/html5/">他 们最近对 HTML5 的一系列炒作</a>，很有可能也支持。另外一些电视盒厂商，如 <a href="http://www.boxee.tv/">Boxee</a> 业已开始支持 HTML5，如果你想为 Boxee 开发应用，与其专门为它开发，不如直接使用 HTML5。</p>
<p>跨界领域拥有大量的平台，那些可以连接电脑的电视的数量在不断增长，我们已经可以在电视上全屏观看 YouTube，而备受欢迎的 Wii 则内置了 Opera。所有这些，都将借助 HTML，CSS 与 JavaScript。</p>
<h2>HTML5 应用商店</h2>
<p>Eric Meyer 讲到了 HTML5 应用程序问题，他将 HTML5 应用成为 <a href="http://meyerweb.com/eric/thoughts/2010/05/19/the-web-stack/">Web Stack Apps</a>， HTML5 要获得更多关注，<a href="http://meyerweb.com/eric/thoughts/2010/06/03/app-shopping/">可以建立 HTML5 应用商店</a>。<a href="https://chrome.google.com/webstore">Chrome</a> 正在这样做，而 <a href="http://www.palm.com/us/products/software/mobile-applications.html">Palm 已经有了一个这样的东西</a>。</p>
<p>应用商店是很好的东西，开发者可以直接得到报酬，而无需像现在这样靠广告维持，同时，用户也将有一个地方去为他们的设备寻找程序。</p>
<h2>HTML5 市场前景</h2>
<p>HTML5 在快速成长，值得所有人密切关注，最近的一两年，会有很多公司进入这个领域，我们或许会在 Chrome 应用商店看到一些重量级厂商，我们也有希望在 Google TV 和 Apple TV 领域看到一些应用商店的出现。HTML5 会像传统的 Flash，Flex，Silverlight，Objective-C 那样，形成自己的生态系统。HTML5 将比 Flash, Flex, Silverlight 以及 Objective-C 更容易出现在任何设备。</p>
<p>对于年轻一代开发者，HTML5 应当是他们首选技能，HTML5 会形成很大的市场，很有很多公司需要这方面的人才。</p>
<h3>原文作者</h3>
<p><img src="http://www.oschina.net/uploads/img/201006/20093743_W7ps.jpg" alt="" width="80" height="80" /><strong> </strong></p>
<p><strong> </strong></p>
<p>Alex Kessinger 是一名 Yahoo 前端工程师，他的博客地址是 <a href="http://alexkessinger.net/">alexkessinger.net</a>，他还是 <a href="http://tastestalkr.com/">Tastestalkr Network</a> 的合伙创始人，现居旧金山湾区。</p>
<p>本文国际来源：sixrevisions.com <a href="http://sixrevisions.com/html/the-state-of-html5-apps/">The State of HTML5 Apps</a></p>
<p>中文翻译来源：<a href="http://www.comsharp.com/"><strong>锐商企业CMS</strong> 网站内容管理系统</a> 官方网站</p>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/06/%e5%85%b3%e4%ba%8ehtml5%e5%ba%94%e7%94%a8%e7%8e%b0%e7%8a%b6%e4%b8%8e%e5%89%8d%e6%99%af%e7%9a%84%e6%80%9d%e8%80%83/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Let easy_install use MinGW as the windows complier</title>
		<link>http://blog.da-fang.com/2010/06/easy_install-use-mingw-as-the-windows-complier/</link>
		<comments>http://blog.da-fang.com/2010/06/easy_install-use-mingw-as-the-windows-complier/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 15:55:15 +0000</pubDate>
		<dc:creator>wyatt</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[easy_install]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=1035</guid>
		<description><![CDATA[如果你也在用Python写程序，那么你一定需要使用easy_install进行安装包管理，当然，有点绝对，你也可以使用像pip或者pypm这种包管理工具，但是根据我自己的使用经验，pip和pypm在windows经常出问题，不是下载不下来，就是解析出错。 当然这里介绍的开发环境是windows，在linux上有强大的gcc，安装Python的C模块不会有什么问题，但是在windows上，如果你安装的python模块需要C编译，那问题就来了，就会出现诸如“cannot find vcvarsall.bat”等错误。 解决之道有多种（看到很多种，自己只尝试过一种），下面就是其中的一种方法，使用Mingw作为C编译器。 首先安装Mingw，选中g++ complier： 安装好以后，修改文件“distutils.cfg”，位于你的python安装目录下，例如：C:\Python26\Lib\distutils，编辑文件 distutils.cfg，增加： [build] compiler=mingw32 修改好以后，打开你的cmd，用easy_install就可以安装python的C模块啦。 最多留言日志翻墙软件puff淘宝客插件Google Wave邀请发送Google Wave 邀请再次发送免费的SSH翻墙帐号]]></description>
			<content:encoded><![CDATA[<p>如果你也在用Python写程序，那么你一定需要使用easy_install进行安装包管理，当然，有点绝对，你也可以使用像pip或者pypm这种包管理工具，但是根据我自己的使用经验，pip和pypm在windows经常出问题，不是下载不下来，就是解析出错。</p>
<p>当然这里介绍的开发环境是windows，在linux上有强大的gcc，安装Python的C模块不会有什么问题，但是在windows上，如果你安装的python模块需要C编译，那问题就来了，就会出现诸如“cannot find vcvarsall.bat”等错误。<span id="more-1035"></span></p>
<p>解决之道有多种（看到很多种，自己只尝试过一种），下面就是其中的一种方法，使用Mingw作为C编译器。</p>
<p>首先安装Mingw，<img src="file:///C:/Documents%20and%20Settings/wyatt.fang/Local%20Settings/Temp/EvernoteCopyBuffer/5659cdf1-9461-4bb4-bda1-e4e136ec3e66.jpg" alt="" />选中g++ complier：</p>
<p><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/p2_f5.jpg"><img class="aligncenter size-full wp-image-1036" title="p2_f5" src="http://blog.da-fang.com/wp-content/uploads/2010/06/p2_f5.jpg" alt="" width="499" height="386" /></a>安装好以后，修改文件“distutils.cfg”，位于你的python安装目录下，例如：C:\Python26\Lib\distutils，编辑文件 distutils.cfg，增加：</p>
<pre>[build]
compiler=mingw32</pre>
<p>修改好以后，打开你的cmd，用easy_install就可以安装python的C模块啦。</p>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/06/easy_install-use-mingw-as-the-windows-complier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pubsubhubbub flow presentation</title>
		<link>http://blog.da-fang.com/2010/06/pubsubhubbub-flow-presentation/</link>
		<comments>http://blog.da-fang.com/2010/06/pubsubhubbub-flow-presentation/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 08:37:57 +0000</pubDate>
		<dc:creator>wyatt</dc:creator>
				<category><![CDATA[HTTP协议]]></category>
		<category><![CDATA[pubsubhubbub]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=1022</guid>
		<description><![CDATA[这个东西出来也很久了，今天翻PPT翻到，遂转成图片贴上来，简单的几张图片，将pubsubhubbub说明的很清晰。 最多留言日志翻墙软件puff淘宝客插件Google Wave邀请发送Google Wave 邀请再次发送免费的SSH翻墙帐号]]></description>
			<content:encoded><![CDATA[<p>这个东西出来也很久了，今天翻PPT翻到，遂转成图片贴上来，简单的几张图片，将<a href="http://code.google.com/p/pubsubhubbub/" target="_blank">pubsubhubbub</a>说明的很清晰。<span id="more-1022"></span></p>
<p style="text-align: center;"><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/1.png"><img class="size-full wp-image-1023  aligncenter" title="1" src="http://blog.da-fang.com/wp-content/uploads/2010/06/1.png" alt="" width="635" height="477" /></a></p>
<p style="text-align: center;"><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/2.png"><img class="aligncenter size-full wp-image-1025" title="2" src="http://blog.da-fang.com/wp-content/uploads/2010/06/2.png" alt="" width="635" height="478" /></a><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/3.png"><img class="aligncenter size-full wp-image-1026" title="3" src="http://blog.da-fang.com/wp-content/uploads/2010/06/3.png" alt="" width="635" height="477" /></a><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/4.png"><img class="aligncenter size-full wp-image-1027" title="4" src="http://blog.da-fang.com/wp-content/uploads/2010/06/4.png" alt="" width="635" height="477" /></a></p>
<p style="text-align: center;"><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/5.png"><img class="aligncenter size-full wp-image-1028" title="5" src="http://blog.da-fang.com/wp-content/uploads/2010/06/5.png" alt="" width="635" height="477" /></a><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/6.png"><img class="aligncenter size-full wp-image-1029" title="6" src="http://blog.da-fang.com/wp-content/uploads/2010/06/6.png" alt="" width="637" height="477" /></a><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/7.png"><img class="aligncenter size-full wp-image-1030" title="7" src="http://blog.da-fang.com/wp-content/uploads/2010/06/7.png" alt="" width="635" height="477" /></a><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/8.png"><img class="aligncenter size-full wp-image-1031" title="8" src="http://blog.da-fang.com/wp-content/uploads/2010/06/8.png" alt="" width="635" height="477" /></a><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/9.png"><img class="aligncenter size-full wp-image-1032" title="9" src="http://blog.da-fang.com/wp-content/uploads/2010/06/9.png" alt="" width="637" height="477" /></a><a href="http://blog.da-fang.com/wp-content/uploads/2010/06/10.png"><img class="aligncenter size-full wp-image-1024" title="10" src="http://blog.da-fang.com/wp-content/uploads/2010/06/10.png" alt="" width="635" height="477" /></a></p>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/06/pubsubhubbub-flow-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jmeter参数化的4种方法</title>
		<link>http://blog.da-fang.com/2010/06/jmeter%e5%8f%82%e6%95%b0/</link>
		<comments>http://blog.da-fang.com/2010/06/jmeter%e5%8f%82%e6%95%b0/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 01:26:05 +0000</pubDate>
		<dc:creator>dandan</dc:creator>
				<category><![CDATA[性能测试]]></category>
		<category><![CDATA[Jmeter]]></category>
		<category><![CDATA[参数化]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=985</guid>
		<description><![CDATA[用Jmeter测试时包含两种情况的参数，一种是在url中，一种是请求中需要发送的参数。 URL中的参数，如：http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/,其中“2010/06/01/jmeter参数”为url参数。 请求中的参数，此处只能举例get请求，如：http://blog.da-fang.com/?category=Web，其中“category”是参数名，“Web”是它的值。 对于post请求，用jmeter录制后，可以在请求的“同请求一起发送参数”和“同请求一起发送文件”中找到。 参数化Jmeter脚本时，使用参数的地方书写格式为${参数名} 对于URL“http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/”，在Jmeter的http请求中blog.da-fang.com填写在“服务器名称或IP”中;/index.php/${url_parameter}/填写在“路径”中。 对于请求中的参数http://blog.da-fang.com/?category=Web，在Jmeter的http请求中blog.da-fang.com填写在“服务器名称或IP”中;/填写在“路径”中；参数名称category填写在“同请求一起发送参数”的“名称”中，参数值${category_name}填写在对应的“值”中。 设置参数值的方法有如下几种： 1. 用Jmeter中的函数获取参数值，__Random，__threadNum，__CSVRead，__StringFromFile，具体调用方法如下： ${__Random(,,)}，${__threadNum}，${__CSVRead(,)}，${__StringFromFile(,,,)}。 参看Jmeter函数的使用，通过菜单“选项”-&#62;“函数助手对话框”，即可在“函数助手”弹出框上找到Jmeter的函数。 其中${__Random(,,)}方法的第一个参数为随机数的下限，第二个参数为随机数的上限，第三个参数为储存随机数的变量名；${__CSVRead(,)}方法中第一个参数是文件名，第二个参数是文件中的列（列数从0开始）；${__StringFromFile(,,,)}方法中第一个参数是文件名，${__StringFromFile(,,,)}方法中没有指定读取文件中的哪一列的参数，所以${__StringFromFile(,,,)}只能读取包含一列的文件。 2.用户定义的变量 2.1 添加“配置元件”-&#62;“用户定义的变量” 2.2 “名称”中输入变量名称，此处以登录为例，定义两个变量username和password。“值”中可以直接输入值，也可以通过Jmeter的函数__CSVRead，__StringFromFile从csv或dat文件中读取，还可以通过前缀加随机数的方法设置参数。 当参数值是某个前缀加一个数字时，可以用前缀名加${__Random(,,)}或${__threadNum}的方法设置参数值。如进行登录测试之前，先准备了用户名为perf_0到perf_1000的用户，那么用户名就可以设为perf_{__Random(0,1000,)}。 当参数值没有规律的且量不太大时，可以通过${__CSVRead(,)}，${__StringFromFile(,,,)}从文件中读取，如将用户名和密码保存在user.csv文件中，user.csv的内容如下： oriana,123456 admin,admin dandan,123456 因为user.csv文件中有两列数据，所以只能用${__CSVRead(,)}函数，username参数后的值设为${__CSVRead(user.csv,0)}，password参数后的值设为${__CSVRead(user.csv,1)}。 3. 从csv文件中读取 当参数的值没有规律且量不太大时，可以用这种方法。 具体做法如下： 3.1 创建一个csv文件，内容为参数的值集，每一个参数占一列，第一行就开始写参数值，不要写参数名 3.2 在测试计划或线程组中添加一个“配置元件”-&#62;“CSV Data Set Config” 3.3 Filename中填写步骤2.1中csv文件的完整路径（当csv文件在bin目录下时，只需给出文件名即可） 3.4 Virable Names中填写变量名，如果csv文件中有多个变量，则用逗号隔开 &#8230; <a href="http://blog.da-fang.com/2010/06/jmeter%e5%8f%82%e6%95%b0/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>用Jmeter测试时包含两种情况的参数，一种是在url中，一种是请求中需要发送的参数。</p>
<p>URL中的参数，如：<a href="http://blog.da-fang.com/index.php/2010/06/01/jmeter">http://blog.da-fang.com/index.php/2010/06/01/jmeter</a>参数/,其中“2010/06/01/jmeter参数”为url参数。<br />
请求中的参数，此处只能举例get请求，如：<a href="http://blog.da-fang.com/?category=Web">http://blog.da-fang.com/?category=Web</a>，其中“category”是参数名，“Web”是它的值。<br />
对于post请求，用jmeter录制后，可以在请求的“同请求一起发送参数”和“同请求一起发送文件”中找到。<span id="more-985"></span></p>
<p>参数化Jmeter脚本时，使用参数的地方书写格式为${参数名}<br />
对于URL“<a href="http://blog.da-fang.com/index.php/2010/06/01/jmeter">http://blog.da-fang.com/index.php/2010/06/01/jmeter</a>参数/”，在Jmeter的http请求中<a href="http://blog.da-fang.com">blog.da-fang.com</a>填写在“服务器名称或IP”中;/index.php/${url_parameter}/填写在“路径”中。<br />
对于请求中的参数<a href="http://blog.da-fang.com/?category=Web">http://blog.da-fang.com/?category=Web</a>，在Jmeter的http请求中<a href="http://blog.da-fang.com/">blog.da-fang.com</a>填写在“服务器名称或IP”中;/填写在“路径”中；参数名称category填写在“同请求一起发送参数”的“名称”中，参数值${category_name}填写在对应的“值”中。</p>
<p>设置参数值的方法有如下几种：</p>
<p>1. 用Jmeter中的函数获取参数值，__Random，__threadNum，__CSVRead，__StringFromFile，具体调用方法如下：<br />
${__Random(,,)}，${__threadNum}，${__CSVRead(,)}，${__StringFromFile(,,,)}。<br />
参看Jmeter函数的使用，通过菜单“选项”-&gt;“函数助手对话框”，即可在“函数助手”弹出框上找到Jmeter的函数。<br />
其中${__Random(,,)}方法的第一个参数为随机数的下限，第二个参数为随机数的上限，第三个参数为储存随机数的变量名；${__CSVRead(,)}方法中第一个参数是文件名，第二个参数是文件中的列（<a title="该句摘自" href="http://www.7dtest.com/site/html/92/t-3692.html">列数从0开始</a>）；${__StringFromFile(,,,)}方法中第一个参数是文件名，${__StringFromFile(,,,)}方法中没有指定读取文件中的哪一列的参数，所以${__StringFromFile(,,,)}只能读取包含一列的文件。</p>
<p>2.用户定义的变量<br />
2.1 添加“配置元件”-&gt;“用户定义的变量”<br />
2.2 “名称”中输入变量名称，此处以登录为例，定义两个变量username和password。“值”中可以直接输入值，也可以通过Jmeter的函数__CSVRead，__StringFromFile从csv或dat文件中读取，还可以通过前缀加随机数的方法设置参数。<br />
当参数值是某个前缀加一个数字时，可以用前缀名加${__Random(,,)}或${__threadNum}的方法设置参数值。如进行登录测试之前，先准备了用户名为perf_0到perf_1000的用户，那么用户名就可以设为perf_{__Random(0,1000,)}。<br />
当参数值没有规律的且量不太大时，可以通过${__CSVRead(,)}，${__StringFromFile(,,,)}从文件中读取，如将用户名和密码保存在user.csv文件中，user.csv的内容如下：<br />
oriana,123456<br />
admin,admin<br />
dandan,123456<br />
因为user.csv文件中有两列数据，所以只能用${__CSVRead(,)}函数，username参数后的值设为${__CSVRead(user.csv,0)}，password参数后的值设为${__CSVRead(user.csv,1)}。</p>
<p>3. 从csv文件中读取<br />
当参数的值没有规律且量不太大时，可以用这种方法。<br />
具体做法如下：<br />
3.1 创建一个csv文件，内容为参数的值集，每一个参数占一列，第一行就开始写参数值，不要写参数名<br />
3.2 在测试计划或线程组中添加一个“配置元件”-&gt;“CSV Data Set Config”<br />
3.3 Filename中填写步骤2.1中csv文件的完整路径（当csv文件在bin目录下时，只需给出文件名即可）<br />
3.4 Virable Names中填写变量名，如果csv文件中有多个变量，则用逗号隔开<br />
4.从数据库中获取<br />
当参数的值没有规律且量比较大时，可以选用这种方法。<br />
具体做法如下：<br />
4.1 下载MySQL JDBC “<a href="http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.12.zip/from/http://ftp.jaist.ac.jp/pub/mysql/">http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.12.zip/from/http://ftp.jaist.ac.jp/pub/mysql/</a>”<br />
4.2 解压下载的zip包后，将其中的mysql-connector-java-5.1.12-bin.jar放到Jmeter的lib目录下<br />
4.3 添加“配置元件”-&gt;“JDBC Connection Configuration”，设置下列参数：<br />
Database URL：jdbc:mysql://host:port/db（如jdbc:mysql://localhost:3306/testlink<br />
JDBC Driver class：com.mysql.jdbc.Driver<br />
username：连接数据库的用户名（如root）<br />
password：连接数据库的密码<br />
4.4 添加“Sampler”-&gt;“JDBC Request”，在SQL Query中输入查询语句，如下：<br />
SELECT CONCAT (&#8220;[",<br />
GROUP_CONCAT(<br />
CONCAT("{username:'",login,"'"),<br />
CONCAT("{password:'",password),"'}"),"]&#8220;) AS json FROM users<br />
4.5 在4.4中的JDBC请求中添加“后置处理器”-&gt;“正则表达式提取器”，以提取3.4中的用户名和密码为例设置正则表达式提取器的参数：<br />
引用名称：user<br />
正则表达式：username:&#8217;(.+?)&#8217;\{password:&#8217;(.+?)&#8217;<br />
模板：$1$$2$<br />
使用时，user_g1即为用户名，user_g2即为对应用户名的密码；更多正则表达式提取方法参见<a title="Permanent Link to Jmeter正则表达式提取器" rel="bookmark" href="http://blog.da-fang.com/index.php/2009/08/28/jmeter%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e7%9a%84%e4%bd%bf%e7%94%a8/">Jmeter正则表达式提取器</a></p>
<p>5.用正则表达式从前面请求的响应数据中提取，具体操作见<a title="Permanent Link to Jmeter正则表达式提取器" rel="bookmark" href="http://blog.da-fang.com/index.php/2009/08/28/jmeter%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e7%9a%84%e4%bd%bf%e7%94%a8/">Jmeter正则表达式提取器</a></p>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/06/jmeter%e5%8f%82%e6%95%b0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何彻底卸载淘宝客插件</title>
		<link>http://blog.da-fang.com/2010/05/%e5%a6%82%e4%bd%95%e5%bd%bb%e5%ba%95%e5%8d%b8%e8%bd%bd%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6/</link>
		<comments>http://blog.da-fang.com/2010/05/%e5%a6%82%e4%bd%95%e5%bd%bb%e5%ba%95%e5%8d%b8%e8%bd%bd%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6/#comments</comments>
		<pubDate>Sat, 22 May 2010 08:24:08 +0000</pubDate>
		<dc:creator>wyatt</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=974</guid>
		<description><![CDATA[最近一直忙于出差，很多朋友找我反馈最近更新的淘宝客插件的问题，很抱歉这次的版本更新没有经过充分的测试，害了很多博主。今天出差返回了上海，我对问题进行了测试和fix，已经更新到wordpress官方主站，请大家下载更新后的程序，然后“卸载”并重新安装即可。关于如何配合使用淘宝客插件和Capabilities插件，请参考： 淘宝客插件增加了多用户的权限控制。 同时，看到很多朋友给我留言，希望我告知如何卸载淘宝客插件，所以，今天我也把淘宝客插件彻底卸载的方式写出来，目的只是为了告诉大家，这个插件在给一部分人带来方便的同时，必然也会存在bug，如果给你的使用造成了不便，您可以考虑卸载之。 1. 如果你可以通过插件管理界面直接卸载，当然是最安全的方式了： 插件 &#8211; 已安装插件 &#8211; 卸载淘宝客插件； 通过这种方式卸载以后，您之前设置的商品和pid的设置并不会从数据库里删除，这里主要考虑到的时候日后您再安装，之前的信息可以保留（非不安全之考虑），你当然可以手动删除淘宝客创建的插件： 运行SQL语句删除：DROP TABLE  `wp_taobaoke_cart`; DROP TABLE `wp_taobaoke_promote`; DELETE FROM `options` WHERE  `option_name` LIKE &#8216;%taobaoke-%&#8217;; #删除所有和淘宝客相关的设置； 2. 如果你是通过界面卸载的淘宝客插件，那么，做完 #1 步你已经完成了淘宝客插件的卸载；如果你是手动删除淘宝客插件的文件来卸载，那么，你还需要 #2步。这并不是淘宝客插件要求的，而是所有的wordpress插件都是如此。在这里，我也希望那些一直说插件不能删除文件就卸载的人，给予理解。 wordpress安装插件以后，会将所安装的插件信息写入wp_options表，所以，如果你删除了淘宝客插件的代码，也需要告诉wordpress你已经不需要这个插件了： 运行SQL: SELECT `option_value` FROM `wp_options` WHERE `option_name` = &#8216;active_plugins&#8217;; &#8230; <a href="http://blog.da-fang.com/2010/05/%e5%a6%82%e4%bd%95%e5%bd%bb%e5%ba%95%e5%8d%b8%e8%bd%bd%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>最近一直忙于出差，很多朋友找我反馈最近更新的淘宝客插件的问题，很抱歉这次的版本更新没有经过充分的测试，害了很多博主。今天出差返回了上海，我对问题进行了测试和fix，已经更新到wordpress官方主站，请大家<a href="http://wordpress.org/extend/plugins/taobaoke-plugin-for-wordpress/" target="_blank">下载更新后的程序</a>，然后“卸载”并重新安装即可。关于如何配合使用淘宝客插件和Capabilities插件，请参考： <a href="http://blog.da-fang.com/2010/05/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e5%a2%9e%e5%8a%a0%e4%ba%86%e5%a4%9a%e7%94%a8%e6%88%b7%e7%9a%84%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6/" title="淘宝客插件增加了多用户的权限控制">淘宝客插件增加了多用户的权限控制</a>。</p>
<p><span id="more-974"></span>同时，看到很多朋友给我留言，希望我告知如何卸载淘宝客插件，所以，今天我也把淘宝客插件彻底卸载的方式写出来，目的只是为了告诉大家，这个插件在给一部分人带来方便的同时，必然也会存在bug，如果给你的使用造成了不便，您可以考虑卸载之。</p>
<p>1. 如果你可以通过插件管理界面直接卸载，当然是最安全的方式了：</p>
<h2><span style="color: #888888;"><strong>插件 &#8211; 已安装插件 &#8211; 卸载淘宝客插件；</strong></span></h2>
<p>通过这种方式卸载以后，您之前设置的商品和pid的设置并不会从数据库里删除，这里主要考虑到的时候日后您再安装，之前的信息可以保留（非不安全之考虑），你当然可以手动删除淘宝客创建的插件：</p>
<p>运行SQL语句删除：DROP TABLE  `wp_taobaoke_cart`;<br />
DROP TABLE `wp_taobaoke_promote`;<br />
DELETE FROM `options` WHERE  `option_name` LIKE &#8216;%taobaoke-%&#8217;; #删除所有和淘宝客相关的设置；</p>
<p>2. 如果你是通过界面卸载的淘宝客插件，那么，做完 #1 步你已经完成了淘宝客插件的卸载；如果你是手动删除淘宝客插件的文件来卸载，那么，你还需要 #2步。<span style="color: #888888;"><em>这并不是淘宝客插件要求的，而是所有的wordpress插件都是如此。在这里，我也希望那些一直说插件不能删除文件就卸载的人，给予理解。</em></span></p>
<p><span style="color: #888888;"><em> </em><span style="color: #000000;"> wordpress安装插件以后，会将所安装的插件信息写入wp_options表，所以，如果你删除了淘宝客插件的代码，也需要告诉wordpress你已经不需要这个插件了：</span></span></p>
<p><span style="color: #888888;"><span style="color: #000000;"> 运行SQL: SELECT `option_value` FROM `wp_options` WHERE `option_name` = &#8216;active_plugins&#8217;;</span></span></p>
<p><span style="color: #888888;"><span style="color: #000000;"> 该条SQL选出来的结果就是你已经安装的wordpress插件列表，不过是经过PHP序列化过的，所以，修改这个值务必要小心。建议大家使用我提供的小工具来转换卸载 淘宝客插件 以后的文本：<a href="http://www.da-fang.com/uninstall-taobaoke.php">http://www.da-fang.com/uninstall-taobaoke.php</a></span></span></p>
<p style="text-align: center;"><span style="color: #888888;"><span style="color: #000000;"> <a href="http://blog.da-fang.com/wp-content/uploads/2010/05/doodle1.png"><img class="size-medium wp-image-975 aligncenter" title="doodle" src="http://blog.da-fang.com/wp-content/uploads/2010/05/doodle1-300x166.png" alt="" width="500" height="366" /></a></span></span></p>
<p style="text-align: left;"><span style="color: #888888;"><span style="color: #000000;">输入你从数据库里选来的option_value值贴在输入框里，提交以后获得删除了淘宝客插件以后的字符串，然后更新回数据库：</span></span></p>
<p style="text-align: left;"><span style="color: #888888;"><span style="color: #000000;"> UPDATE .`wp_options` SET `option_value` = &#8216;<strong>上图中的Output</strong>&#8216; WHERE `option_name` = &#8216;active_plugins&#8217;;<br />
</span></span></p>
<p style="text-align: left;"><span style="color: #888888;"><span style="color: #000000;">当然，我建议你 #2中对数据库的操作使用phpMyAdmin~~ </span></span></p>
<p style="text-align: left;">
<p style="text-align: left;"><span style="color: #888888;"><span style="color: #000000;">如果还有其他问题，请留言或者RT @dafang</span></span></p>
<p style="text-align: left;">//注意，wp_是你安装wordpress时你设置的创建数据库表的表名前缀～</p>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/05/%e5%a6%82%e4%bd%95%e5%bd%bb%e5%ba%95%e5%8d%b8%e8%bd%bd%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>淘宝客插件增加了多用户的权限控制</title>
		<link>http://blog.da-fang.com/2010/05/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e5%a2%9e%e5%8a%a0%e4%ba%86%e5%a4%9a%e7%94%a8%e6%88%b7%e7%9a%84%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6/</link>
		<comments>http://blog.da-fang.com/2010/05/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e5%a2%9e%e5%8a%a0%e4%ba%86%e5%a4%9a%e7%94%a8%e6%88%b7%e7%9a%84%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6/#comments</comments>
		<pubDate>Tue, 11 May 2010 07:58:55 +0000</pubDate>
		<dc:creator>wyatt</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>
		<category><![CDATA[淘宝客]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=968</guid>
		<description><![CDATA[上次更新了淘宝客插件的多用户支持，但是忽略了对多用户权限的控制，今天看到有朋友留言，多用户不能用，查了下才明白权限控制没有更新。 下午坐在武昌中南民族大学的咖啡店，享受醇香咖啡的同时，增加了多用户权限的支持。同时也多亏了 Capability Manager这个插件，让我少做修改就可以适应了多用户权限的控制，感谢开源～ 更新步骤： 1. 下载安装淘宝客插件；如果已经安装了，下载最新的淘宝客程序，然后禁用淘宝客插件，再开启淘宝客插件； 2. 下载安装Capability Manager插件； 淘宝客插件在安装或者重新激活的过程中，会创建一个新的用户角色：编辑(淘宝客权限)。然后选择左侧的导航：“用户” &#8211; “Capabilities”，打开权限设置页面： 给这个用户设置相关的权限，切记选中所有和taobaoke相关的权限。如果你的选项里有“Use Taobaoke”的话，也要选中这一项。目前还有个奇怪的问题，我设置了两项权限，但是我的安装里只显示了一项“Setting taobaoke”。我会进行fix然后更新一个版本。 然后将你的用户更新角色为“编辑(淘宝客权限)”，这样当你的用户登录后台时，就可以使用淘宝客插件了。 下次更新，我会设置成可以给已有的 角色 赋予 使用淘宝客插件的能力，而不是更改用户的角色为：编辑(淘宝客权限)。 2010-05-22日更新： 这次的更新我已经取消了创建新的Role，而是给目前系统里所有的role增加了一个新的权限：use taobaoke，所以你只需要简单的给你想要使用的角色增加一个use taobaoke权限即可。 最多留言日志翻墙软件puff淘宝客插件Google Wave邀请发送Google Wave 邀请再次发送免费的SSH翻墙帐号]]></description>
			<content:encoded><![CDATA[<p>上次更新了<a href="http://blog.da-fang.com/2010/05/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e6%9b%b4%e6%96%b0-2/" title="淘宝客插件更新-2">淘宝客插件的多用户支持</a>，但是忽略了对多用户权限的控制，今天看到有朋友留言，多用户不能用，查了下才明白权限控制没有更新。</p>
<p>下午坐在武昌中南民族大学的咖啡店，享受醇香咖啡的同时，增加了多用户权限的支持。同时也多亏了 <strong><a href="http://wordpress.org/extend/plugins/capsman/" target="_blank">Capability Manager</a><span style="font-weight: normal;">这个插件，让我少做修改就可以适应了多用户权限的控制，感谢开源～</span></strong></p>
<p>更新步骤：<span id="more-968"></span></p>
<p>1. 下载安装淘宝客插件；如果已经安装了，下载<a href="http://wordpress.org/extend/plugins/taobaoke-plugin-for-wordpress/" target="_blank">最新的淘宝客程序</a>，然后禁用淘宝客插件，再开启淘宝客插件；</p>
<p>2. 下载安装<a href="http://wordpress.org/extend/plugins/capsman/" target="_blank">Capability Manager</a>插件；</p>
<p>淘宝客插件在安装或者重新激活的过程中，会创建一个新的用户角色：编辑(淘宝客权限)。然后选择左侧的导航：“用户” &#8211; “Capabilities”，打开权限设置页面：</p>
<p><a href="http://blog.da-fang.com/wp-content/uploads/2010/05/doodle.png"><img class="size-large wp-image-969 alignnone" title="doodle" src="http://blog.da-fang.com/wp-content/uploads/2010/05/doodle-1024x616.png" alt="" width="600" height="400" /></a></p>
<p><a href="http://blog.da-fang.com/wp-content/uploads/2010/05/doodle.png"></a>给这个用户设置相关的权限，切记选中所有和taobaoke相关的权限。如果你的选项里有“Use Taobaoke”的话，也要选中这一项。目前还有个奇怪的问题，我设置了两项权限，但是我的安装里只显示了一项“Setting taobaoke”。我会进行fix然后更新一个版本。</p>
<p>然后将你的用户更新角色为“编辑(淘宝客权限)”，这样当你的用户登录后台时，就可以使用淘宝客插件了。</p>
<p>下次更新，我会设置成可以给已有的 角色 赋予 使用淘宝客插件的能力，而不是更改用户的角色为：编辑(淘宝客权限)。</p>
<p><strong>2010-05-22日更新：</strong></p>
<p><strong>这次的更新我已经取消了创建新的Role，而是给目前系统里所有的role增加了一个新的权限：use taobaoke，所以你只需要简单的给你想要使用的角色增加一个use taobaoke权限即可。</strong></p>
<p><strong> </strong></p>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/05/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e5%a2%9e%e5%8a%a0%e4%ba%86%e5%a4%9a%e7%94%a8%e6%88%b7%e7%9a%84%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>淘宝客插件更新-2</title>
		<link>http://blog.da-fang.com/2010/05/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e6%9b%b4%e6%96%b0-2/</link>
		<comments>http://blog.da-fang.com/2010/05/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e6%9b%b4%e6%96%b0-2/#comments</comments>
		<pubDate>Sun, 09 May 2010 09:18:20 +0000</pubDate>
		<dc:creator>dandan</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>
		<category><![CDATA[淘宝客]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=965</guid>
		<description><![CDATA[最近一直很忙，很久没有更新 淘宝客插件，最近有一个朋友联系了几次，希望开发一个新的功能： 就是希望每个单独的用户能设置自己的淘宝客pid和淘宝客的用户名 我想，对于多用户的博客来说，这个功能还是很有用的，所以今天花了一点时间做了更新，并在我的博客测试通过。当然，毕竟没有把所有功能全部测试一遍，如果发现什么问题，可以留言联系我或者twitter上RT/D消息给我：@dafang 最多留言日志翻墙软件puff淘宝客插件Google Wave邀请发送Google Wave 邀请再次发送免费的SSH翻墙帐号]]></description>
			<content:encoded><![CDATA[<p>最近一直很忙，很久没有更新 <a href="http://blog.da-fang.com/2009/12/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e6%9b%b4%e6%96%b0/" title="淘宝客插件更新">淘宝客插件</a>，最近有一个朋友联系了几次，希望开发一个新的功能：</p>
<blockquote><p>就是希望每个单独的用户能设置自己的淘宝客pid和淘宝客的用户名</p></blockquote>
<p>我想，对于多用户的博客来说，这个功能还是很有用的，所以今天花了一点时间做了更新，并在我的博客测试通过。当然，毕竟没有把所有功能全部测试一遍，如果发现什么问题，可以留言联系我或者twitter上RT/D消息给我：@dafang</p>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/05/%e6%b7%98%e5%ae%9d%e5%ae%a2%e6%8f%92%e4%bb%b6%e6%9b%b4%e6%96%b0-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Dropbox创业经历 &#8211; 基于Dropbox的个人知识管理平台</title>
		<link>http://blog.da-fang.com/2010/05/dropbox%e5%88%9b%e4%b8%9a%e7%bb%8f%e5%8e%86-%e5%9f%ba%e4%ba%8edropbox%e7%9a%84%e4%b8%aa%e4%ba%ba%e7%9f%a5%e8%af%86%e7%ae%a1%e7%90%86%e5%b9%b3%e5%8f%b0/</link>
		<comments>http://blog.da-fang.com/2010/05/dropbox%e5%88%9b%e4%b8%9a%e7%bb%8f%e5%8e%86-%e5%9f%ba%e4%ba%8edropbox%e7%9a%84%e4%b8%aa%e4%ba%ba%e7%9f%a5%e8%af%86%e7%ae%a1%e7%90%86%e5%b9%b3%e5%8f%b0/#comments</comments>
		<pubDate>Sun, 09 May 2010 03:32:02 +0000</pubDate>
		<dc:creator>wyatt</dc:creator>
				<category><![CDATA[主导航]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=957</guid>
		<description><![CDATA[今天看到阮一峰共享的 Dropbox的创业经历，阮大侠做成了图片，为了便于共享和访问，我做成了PPT： 看完这个PPT，我突然想起我在google reader里收藏的一篇文章：基于Dropbox的个人知识管理平台，感觉不错，自己按照上面的说明也部署了一套，推荐给大家： 如何保存和管理知识，是个人知识管理的一个非常重要的问题。很多人下载的资料很多，但大多数甚至从来没有打开过，或者不知道放到哪里了，实际上这样的知识对于个人来说是没有价值的。 在大多数人的电脑中，“桌面”、“我的文档”、“下载”、“IE收藏夹”等目录都是混乱不堪的，极大的影响了个人的工作效率，如果有多台工作电脑（如公司的台式电脑、家里的台式电脑、笔记本电脑），则文档管理的混乱程度将翻倍增加。 我对于个人知识管理的心得是：利用Dropbox软件同步多台电脑文档，所有文档按照分类放在不同的文件夹内进行管理。 系统默认的下载目录不放在Dropbox目录中，每次下载完成后，手动将需要的文件移动到指定的分类目录里。 下图是我设计的基于Dropbox的个人知识管理方案，可以自动实现家里和办公室的个人工作平台的知识管理，提高个人的工作效率。 这个知识管理平台的配置方法和过程如下： 安装Dropbox的时候，选择自定义目录，然后选择磁盘，例如E磁盘，这样，My Dropbox目录就建立在这个磁盘的根目录下。 接着，在My Dropbox目录下建立如下目录：Work，My Documents，Archive、Src、Doc、Software、Favorites目录。 对于Windows XP用户，安装微软提供的一个小工具junction，执行命令junction &#8220;C:Documents and SettingsAdministrator桌面Work&#8221; &#8220;E:My DropboxWork&#8221;，可以在桌面生成一个Work目录，所有的草稿文件都可以放在这个目录下。 在桌面上的“我的文档”点右键，选“属性”，目标文件夹选择“E:My DropboxMy Documents”，点“移动”，可以把“我的文档”移动到Dropbox目录下。 “我的文档”和“存档文档”内均存放我自己产出的文档，个人类的放在“个人文档”中，工作类的按照项目放在“项目文档”中。 “我的文档”的内容是当前正在进行的项目和文档，“存档文档”保存以前历年的历史文档，存档文档通常只读，不进行修改。 MSN的消息可以保存在My Documents目录（“我接收到的文件”目录），实现MSN消息的同步，但QQ的消息不要保存在My Documents目录下，因为QQ消息文件和MSN不同，QQ的非常大，很难进行同步。 非自我产生的文档，例如从网上下载的资料，学习文档等等，都按照类别放在“参考资料”（Doc）目录下。 “我的收藏夹”目前为IE系统的收藏夹，设置方法是，打开REGEDIT，在HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders中，修改Favorites的数值为E:My DropboxFavorites，这样，即可将IE的收藏夹放到Dropbox目录下进行同步。 常用软件Software目录里存放最常用的一些软件程序或安装程序，不要放一些大文件，通常我只放10M以下的小文件。 经过上述操作，就可以把Dropbox打造成为一个可自动同步的工作平台，无论在家，在公司，还是在外出差，只要能上网，就能在基于Dropbox的工作平台上编辑最新的工作文档，很好地提高了工作效率。 最多留言日志翻墙软件puff淘宝客插件Google Wave邀请发送Google Wave &#8230; <a href="http://blog.da-fang.com/2010/05/dropbox%e5%88%9b%e4%b8%9a%e7%bb%8f%e5%8e%86-%e5%9f%ba%e4%ba%8edropbox%e7%9a%84%e4%b8%aa%e4%ba%ba%e7%9f%a5%e8%af%86%e7%ae%a1%e7%90%86%e5%b9%b3%e5%8f%b0/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: left; ">今天看到阮一峰共享的 <a href="https://www.dropbox.com/referrals/NTY2MTE2MTc5" target="_blank">Dropbox</a>的创业经历，阮大侠做成了图片，为了便于共享和访问，我做成了PPT：</p>
<p><iframe src="http://docs.google.com/present/embed?id=dgxjtwxv_235dxrh37ft&#038;size=m" frameborder="0" width="555" height="451"></iframe><br />
<br />
看完这个PPT，我突然想起我在google reader里收藏的一篇文章：<a href="http://www.williamlong.info/archives/2160.html">基于Dropbox的个人知识管理平台</a>，感觉不错，自己按照上面的说明也部署了一套，推荐给大家：<span id="more-957"></span></p>
<p>如何保存和管理知识，是个人知识管理的一个非常重要的问题。很多人下载的资料很多，但大多数甚至从来没有打开过，或者不知道放到哪里了，实际上这样的知识对于个人来说是没有价值的。</p>
<p>在大多数人的电脑中，“桌面”、“我的文档”、“下载”、“IE收藏夹”等目录都是混乱不堪的，极大的影响了个人的工作效率，如果有多台工作电脑（如公司的台式电脑、家里的台式电脑、笔记本电脑），则文档管理的混乱程度将翻倍增加。</p>
<p>我对于个人知识管理的心得是：利用<a href="https://www.dropbox.com/referrals/NTY2MTE2MTc5" target="_blank">Dropbox</a>软件同步多台电脑文档，所有文档按照分类放在不同的文件夹内进行管理。</p>
<p>系统默认的下载目录不放在<a href="https://www.dropbox.com/referrals/NTY2MTE2MTc5" target="_blank">Dropbox</a>目录中，每次下载完成后，手动将需要的文件移动到指定的分类目录里。</p>
<p>下图是我设计的基于<a href="https://www.dropbox.com/referrals/NTY2MTE2MTc5" target="_blank">Dropbox</a>的个人知识管理方案，可以自动实现家里和办公室的个人工作平台的知识管理，提高个人的工作效率。</p>
<p style="text-align: center;"><img src="http://blog.da-fang.com/wp-content/uploads/auto_save_image/2010/05/1341121s5.jpg" alt="基于Dropbox的个人知识管理平台" /></p>
<p>这个知识管理平台的配置方法和过程如下：</p>
<p>安装<a href="https://www.dropbox.com/referrals/NTY2MTE2MTc5" target="_blank">Dropbox</a>的时候，选择自定义目录，然后选择磁盘，例如E磁盘，这样，My Dropbox目录就建立在这个磁盘的根目录下。</p>
<p>接着，在My Dropbox目录下建立如下目录：Work，My Documents，Archive、Src、Doc、Software、Favorites目录。</p>
<p>对于Windows XP用户，安装微软提供的一个小工具<a style="color: #2244bb;" href="http://download.sysinternals.com/Files/Junction.zip" target="_blank">junction</a>，执行命令junction &#8220;C:Documents and SettingsAdministrator桌面Work&#8221; &#8220;E:My DropboxWork&#8221;，可以在桌面生成一个Work目录，所有的草稿文件都可以放在这个目录下。</p>
<p>在桌面上的“我的文档”点右键，选“属性”，目标文件夹选择“E:My DropboxMy Documents”，点“移动”，可以把“我的文档”移动到<a href="https://www.dropbox.com/referrals/NTY2MTE2MTc5" target="_blank">Dropbox</a>目录下。</p>
<p>“我的文档”和“存档文档”内均存放我自己产出的文档，个人类的放在“个人文档”中，工作类的按照项目放在“项目文档”中。</p>
<p>“我的文档”的内容是当前正在进行的项目和文档，“存档文档”保存以前历年的历史文档，存档文档通常只读，不进行修改。</p>
<p>MSN的消息可以保存在My Documents目录（“我接收到的文件”目录），实现MSN消息的同步，但QQ的消息不要保存在My Documents目录下，因为QQ消息文件和MSN不同，QQ的非常大，很难进行同步。</p>
<p>非自我产生的文档，例如从网上下载的资料，学习文档等等，都按照类别放在“参考资料”（Doc）目录下。</p>
<p>“我的收藏夹”目前为IE系统的收藏夹，设置方法是，打开REGEDIT，在HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders中，修改Favorites的数值为E:My DropboxFavorites，这样，即可将IE的收藏夹放到Dropbox目录下进行同步。</p>
<p>常用软件Software目录里存放最常用的一些软件程序或安装程序，不要放一些大文件，通常我只放10M以下的小文件。</p>
<p>经过上述操作，就可以把<a href="https://www.dropbox.com/referrals/NTY2MTE2MTc5" target="_blank">Dropbox</a>打造成为一个可自动同步的工作平台，无论在家，在公司，还是在外出差，只要能上网，就能在基于<a href="https://www.dropbox.com/referrals/NTY2MTE2MTc5" target="_blank">Dropbox</a>的工作平台上编辑最新的工作文档，很好地提高了工作效率。</p>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/05/dropbox%e5%88%9b%e4%b8%9a%e7%bb%8f%e5%8e%86-%e5%9f%ba%e4%ba%8edropbox%e7%9a%84%e4%b8%aa%e4%ba%ba%e7%9f%a5%e8%af%86%e7%ae%a1%e7%90%86%e5%b9%b3%e5%8f%b0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>让 easy_install 使用代理翻墙安装 Python 模块</title>
		<link>http://blog.da-fang.com/2010/04/%e8%ae%a9-easy_install-%e4%bd%bf%e7%94%a8%e4%bb%a3%e7%90%86%e7%bf%bb%e5%a2%99%e5%ae%89%e8%a3%85-python-%e6%a8%a1%e5%9d%97/</link>
		<comments>http://blog.da-fang.com/2010/04/%e8%ae%a9-easy_install-%e4%bd%bf%e7%94%a8%e4%bb%a3%e7%90%86%e7%bf%bb%e5%a2%99%e5%ae%89%e8%a3%85-python-%e6%a8%a1%e5%9d%97/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 09:19:46 +0000</pubDate>
		<dc:creator>wyatt</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[http proxy]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=948</guid>
		<description><![CDATA[关键字：python, easy_install, setuptools, myentunnel, polipo, windows, linux, socks5, http, proxy 因为一些众所周知的原因，我们有些网站无法访问，造成生活和生产的巨大不便。其中对我影响比较大的一个就是安装某些 Python 模块的时候，easy_install 无法访问到网站。在这里分享让 easy_install 使用代理的方法，如果你拥有 socks5 或 http 代理服务器可用，这个方法能够让 easy_install 完美地跨越长城。 http 首先介绍容易实现的 http 方式。得益于 python 模块 urllib 能够透明使用代理的能够，easy_install 使用 http 代理是非常方式的。无论在 windows 还 linux 下，只要设置好 http_proxy 环境变量就可以了。 你可以在 &#8230; <a href="http://blog.da-fang.com/2010/04/%e8%ae%a9-easy_install-%e4%bd%bf%e7%94%a8%e4%bb%a3%e7%90%86%e7%bf%bb%e5%a2%99%e5%ae%89%e8%a3%85-python-%e6%a8%a1%e5%9d%97/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">关键字：python, easy_install, setuptools, myentunnel, polipo, windows, linux, socks5, http, proxy</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">因为一些众所周知的原因，我们有些网站无法访问，造成生活和生产的巨大不便。其中对我影响比较大的一个就是安装某些 Python 模块的时候，easy_install 无法访问到网站。在这里分享让 easy_install 使用代理的方法，如果你拥有 socks5 或 http 代理服务器可用，这个方法能够让 easy_install 完美地跨越长城。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">http</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">首先介绍容易实现的 http 方式。得益于 python 模块 urllib 能够透明使用代理的能够，easy_install 使用 http 代理是非常方式的。无论在 windows 还 linux 下，只要设置好 http_proxy 环境变量就可以了。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">你可以在 windows 命令行执行：set HTTP_PROXY=http://your.proxy.com:yourPort 或在 linux 下执行：export HTTP_PROXY=&#8221;http://your.proxy.com:yourPort&#8221;，然后再执行 easy_install 即可。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">socks5</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">由于那道墙的存在，许多人是通过 VPS 的 SSH 翻墙的，在 windows 下常用的一个软件是 myentunnel，它能够提供 socks5 代理服务。可惜 easy_install 没有办法直接使用 socks5 代理，所以需要一个软件来把 socks5 代理转换为 http 代理。通过 twitter 上许多友好人士的提点，我选择了 polipo 这个软件来打造 http 代理。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">polipo 使用非常简单，在这里（http://interloper.org/tmp/polipo/polipo-1.0.4.1-forbidden-1-win32.exe）下载到一个 windows 下的安装文件，一路 next 安装即可，安装后进入 polipo.exe 所在的安装目录，用记事本或其它编辑器（我使用 gvim）打开 config 文件，找到下面两行：</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># socksParentProxy = “localhost:9050″</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># socksProxyType = socks5</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">然后把前面的 # 去掉，把 9050 改成你的 socks5 服务器的端口，我使用的是 myentunel 默认的 1080，然后保存关闭。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">现在通过开始菜单运行 polipo，你应该可以看到 Established listening socket on port 8123 字样，表示运行成功了。这时再通过上文的方法把 http://127.0.0.1:8123 设置为 http_proxy 环境变量，你的 easy_install 就可以翻墙了。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">其它方案</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">自由的 linux 下当然有着更丰富的方式，polipo 本身是个跨平台软件，也可以使用 @number5、@kynix 和 @kypudding 推荐的 tscoks 以及 ProxyChains，windows 下也还可以使用 SocksCap。而我采用的 polipo 方案来自 @BOYPT 的推荐，感谢所有人，也感谢国家，给我动力和机会去了解这些工具，我相信以后会在其它地方用得着这些“技术”。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">本解决方案得益于 Google 和 Twitter 两个伟大的网站，在此一并感谢。</div>
<p><span style="font-family: verdana, sans-serif; line-height: 21px; font-size: 14px;"> </span></p>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding: 0px;">关键字：python, easy_install, setuptools, myentunnel, polipo, windows, linux, socks5, http, proxy<br />
因为一些众所周知的原因，我们有些网站无法访问，造成生活和生产的巨大不便。其中对我影响比较大的一个就是安装某些 Python 模块的时候，easy_install 无法访问到网站。在这里分享让 easy_install 使用代理的方法，如果你拥有 socks5 或 http 代理服务器可用，这个方法能够让 easy_install 完美地跨越长城。</p>
<h2 style="padding: 0px; margin: 0px;">http</h2>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding: 0px;">首先介绍容易实现的 http 方式。得益于 python 模块 urllib 能够透明使用代理的能够，easy_install 使用 http 代理是非常方式的。无论在 windows 还 linux 下，只要设置好 http_proxy 环境变量就可以了。<br />
你可以在 windows 命令行执行：set HTTP_PROXY=http://your.proxy.com:yourPort 或在 linux 下执行：export HTTP_PROXY=&#8221;http://your.proxy.com:yourPort&#8221;，然后再执行 easy_install 即可。<span id="more-948"></span></p>
<h2 style="padding: 0px; margin: 0px;">socks5</h2>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding: 0px;">由于那道墙的存在，许多人是通过 VPS 的 SSH 翻墙的，在 windows 下常用的一个软件是 myentunnel，它能够提供 socks5 代理服务。可惜 easy_install 没有办法直接使用 socks5 代理，所以需要一个软件来把 socks5 代理转换为 http 代理。通过 twitter 上许多友好人士的提点，我选择了 polipo 这个软件来打造 http 代理。<br />
polipo 使用非常简单，在这里（http://interloper.org/tmp/polipo/polipo-1.0.4.1-forbidden-1-win32.exe）下载到一个 windows 下的安装文件，一路 next 安装即可，安装后进入 polipo.exe 所在的安装目录，用记事本或其它编辑器（我使用 gvim）打开 config 文件，找到下面两行：<br />
# socksParentProxy = “localhost:9050″<br />
# socksProxyType = socks5<br />
然后把前面的 # 去掉，把 9050 改成你的 socks5 服务器的端口，我使用的是 myentunel 默认的 1080，然后保存关闭。<br />
现在通过开始菜单运行 polipo，你应该可以看到 Established listening socket on port 8123 字样，表示运行成功了。这时再通过上文的方法把 http://127.0.0.1:8123 设置为 http_proxy 环境变量，你的 easy_install 就可以翻墙了。</p>
<h2 style="padding: 0px; margin: 0px;">其它方案</h2>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding: 0px;">自由的 linux 下当然有着更丰富的方式，polipo 本身是个跨平台软件，也可以使用 @number5、@kynix 和 @kypudding 推荐的 tscoks 以及 ProxyChains，windows 下也还可以使用 SocksCap。而我采用的 polipo 方案来自 @BOYPT 的推荐，感谢所有人，也感谢国家，给我动力和机会去了解这些工具，我相信以后会在其它地方用得着这些“技术”。</p>
<p style="margin-top: 1em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding: 0px;">本解决方案得益于 Google 和 Twitter 两个伟大的网站，在此一并感谢。</p>
<div>转自赖总的博客: 今天在推上看到赖总找方案, 没一个小时就把Polipo发出来了，然后很快发到了博客上，赞一下，原文这里找：<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; font-size: 13px;"><a href="http://blog.csdn.net/lanphaday/archive/2010/04/16/5494336.aspx">blog.csdn.net/lanphaday/archive/2010/04/16/5494336.aspx</a></span></div>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/04/%e8%ae%a9-easy_install-%e4%bd%bf%e7%94%a8%e4%bb%a3%e7%90%86%e7%bf%bb%e5%a2%99%e5%ae%89%e8%a3%85-python-%e6%a8%a1%e5%9d%97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows上配置snmpd.conf出错substr outside of string</title>
		<link>http://blog.da-fang.com/2010/03/windows%e4%b8%8a%e9%85%8d%e7%bd%aesnmpd-conf%e5%87%ba%e9%94%99substr-outside-of-string/</link>
		<comments>http://blog.da-fang.com/2010/03/windows%e4%b8%8a%e9%85%8d%e7%bd%aesnmpd-conf%e5%87%ba%e9%94%99substr-outside-of-string/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 02:03:45 +0000</pubDate>
		<dc:creator>dandan</dc:creator>
				<category><![CDATA[SNMP]]></category>

		<guid isPermaLink="false">http://blog.da-fang.com/?p=944</guid>
		<description><![CDATA[这两天在WindowsXP上搭建Cacti,安装Net-SNMP的snmpd.conf不太顺利，当提示输入community name时，我输入public后回车，便出现错误信息： The community name to add read-only access for: public substr outside of string at C:/perl/lib/Term/ReadLine/readline.pm line 1974. Use of uninitialized value $s in length at C:/perl/lib/Term/ReadLine/readline.pm line 1783. Use of uninitialized value $s in length at C:/perl/lib/Term/ReadLine/readline.pm line &#8230; <a href="http://blog.da-fang.com/2010/03/windows%e4%b8%8a%e9%85%8d%e7%bd%aesnmpd-conf%e5%87%ba%e9%94%99substr-outside-of-string/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="read_tpc">这两天在WindowsXP上搭建Cacti,安装Net-SNMP的snmpd.conf不太顺利，当提示输入community name时，我输入public后回车，便出现错误信息：</div>
<div>The community name to add read-only access for: public</div>
<div></div>
<div>substr outside of string at C:/perl/lib/Term/ReadLine/readline.pm line 1974.<br />
Use of uninitialized value $s in length at C:/perl/lib/Term/ReadLine/readline.pm line 1783.<br />
Use of uninitialized value $s in length at C:/perl/lib/Term/ReadLine/readline.pm line 1789.<br />
Use of uninitialized value $s in substr at C:/perl/lib/Term/ReadLine/readline.pm line 1800.<br />
The hostname or network address to accept this community name from [RETURN for all]: Use of uninitialized value $dline in length at C:/perl/lib/Term/ReadLine/readline.pm line 2046.</div>
<div><span id="more-944"></span></div>
<div></div>
<div>google了一把，也有人遇到同样的问题，但是没找到解决的办法。只好一头扎进snmconf以及报错的文件，一路跟踪，终于发现在C:/perl/lib/Term/ReadLine/readline.pm line文件中为了调整显示，截断了过长的字符串。windows cmd窗口的默认属性中，一行的默认长度是80，当字符串的长度超过80时，会被截取到80。其中问题“The community name to add read-only access for:”后面的问题“The hostname or network address to accept this community name from [RETURN for all]:”超过了80个字符，显示时被截取为80个字符，所以出错。解决办法有两种，建议采用第一种办法：</div>
<div>1. 调整windows cmd窗口的行宽</div>
<div>在cmd窗口头上点鼠标右键-〉属性-〉布局，设置“屏幕缓冲区大小”和“窗口大小”的宽度后点“确定”</div>
<div></div>
<div>2. 修改代码</div>
<div>下列代码就是C:/perl/lib/Term/ReadLine/readline.pm line中调整字符串显示的代码，其中第一行$thislen = &amp;min(length($dline) &#8211; $si, $rl_screen_width);是获取长度的串，把$thislen = &amp;min(length($dline) &#8211; $si, $rl_screen_width);改为$thislen = length($dline) &#8211; $si;后，显示就不会受windows cmd窗口的行宽的限制了。</div>
<div>
<p>$thislen = &amp;min(length($dline) &#8211; $si, $rl_screen_width);<br />
if ($si + $thislen &lt; length($dline)) {<br />
## need to place a &#8216;&gt;&#8217;&#8230; make sure to place on first byte.<br />
$thislen&#8211; if &amp;OnSecondByte($si+$thislen-1);<br />
substr($dline, $si+$thislen-1,1) = &#8216;&gt;&#8217;;<br />
$have_ket = 1;<br />
}</p>
<p>##<br />
## Now know what to display.<br />
## Must get substr($dline, $si, $thislen) on the screen,<br />
## with the cursor at $D-$si characters from the left edge.<br />
##<br />
$dline = substr($dline, $si, $thislen);<br />
$delta = $D &#8211; $si; ## delta is cursor distance from beginning of $dline.<br />
if (defined $bsel) {<br />
$bsel -= $si;<br />
$esel = $delta;<br />
($bsel, $esel) = ($esel, $bsel) if $bsel &gt; $esel;<br />
$bsel = 0 if $bsel &lt; 0;<br />
if ($have_ket) {<br />
$esel = $thislen &#8211; 1 if $esel &gt; $thislen &#8211; 1;<br />
} else {<br />
$esel = $thislen if $esel &gt; $thislen;<br />
}<br />
}<br />
if ($si &gt;= length($prompt)) { # Keep $dline for $lastredisplay&#8230;<br />
$prompt = ($have_bra ? &#8220;&lt;&#8221; : &#8220;&#8221;);<br />
$dline = substr $dline, 1; # After prompt<br />
$bsel = 1 if defined $bsel and $bsel == 0;<br />
} else {<br />
$dline = substr($dline, (length $prompt) &#8211; $si);<br />
$prompt = substr($prompt,$si);<br />
substr($prompt, 0, 1) = &#8216;&lt;&#8217; if $si &gt; 0;<br />
}</p>
</div>
<h2  class="related_post_title">最多留言日志</h2><ul class="related_post"><li><a href="http://blog.da-fang.com/2009/08/%e7%bf%bb%e5%a2%99%e8%bd%af%e4%bb%b6puff/" title="翻墙软件puff">翻墙软件puff</a></li><li><a href="http://blog.da-fang.com/%e6%b7%98%e5%ae%9d%e5%ae%a2/" title="淘宝客插件">淘宝客插件</a></li><li><a href="http://blog.da-fang.com/2009/10/google-wave%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave邀请发送">Google Wave邀请发送</a></li><li><a href="http://blog.da-fang.com/2009/11/google-wave-%e9%82%80%e8%af%b7%e5%8f%91%e9%80%81/" title="Google Wave 邀请再次发送">Google Wave 邀请再次发送</a></li><li><a href="http://blog.da-fang.com/2009/07/%e5%85%8d%e8%b4%b9%e7%9a%84ssh%e7%bf%bb%e5%a2%99%e5%b8%90%e5%8f%b7/" title="免费的SSH翻墙帐号">免费的SSH翻墙帐号</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.da-fang.com/2010/03/windows%e4%b8%8a%e9%85%8d%e7%bd%aesnmpd-conf%e5%87%ba%e9%94%99substr-outside-of-string/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
