<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>天生我才必有用 &#187; 技术</title>
	<atom:link href="http://ray.imiddle.net/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://ray.imiddle.net</link>
	<description>狂人的成长史</description>
	<lastBuildDate>Thu, 17 Nov 2011 01:01:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>TDD在嵌入式系统中运用的益处</title>
		<link>http://ray.imiddle.net/2011/09/tdd-advantage-in-embedded-system/</link>
		<comments>http://ray.imiddle.net/2011/09/tdd-advantage-in-embedded-system/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 01:11:09 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=734</guid>
		<description><![CDATA[Target hardware is not ready until late in the project, delaying software testing. Target hardware is expensive and scarce. This makes developers wait and build up mounds of unverified work. When target hardware is finally available, it may have bugs of itsown. The mound of untested software has bugs too. Putting themtogether makes for difficult [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Target hardware is not ready until late in the project, delaying software testing.</li>
<li>Target hardware is expensive and scarce. This makes developers wait and build up mounds of unverified work.</li>
<li>When target hardware is finally available, it may have bugs of itsown. The mound of untested software has bugs too. Putting themtogether makes for difficult debugging, long days, and plenty offinger pointing.</li>
<li>Long target build times waste valuable time during the edit, compile,load, and test cycle.</li>
<li>Long target upload times waste valuable time during the edit, compile,load, and test cycle.</li>
<li>Long target upload times lead to batching numerous changes inone build, which means that more can go wrong, leading to more debugging.</li>
<li>Compilers for the target hardware are typically considerably more expensive than native compilers. The development team may havea limited number of licenses available, adding expense and possibledelays.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/09/tdd-advantage-in-embedded-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCC的code coverage 编译选项</title>
		<link>http://ray.imiddle.net/2011/08/gcc%e7%9a%84code-coverage-compile/</link>
		<comments>http://ray.imiddle.net/2011/08/gcc%e7%9a%84code-coverage-compile/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 02:56:11 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=732</guid>
		<description><![CDATA[1.编译时： 加入 -fprofile-arcs -ftest-coverage 选项 2.Link时： 加入 -fprofile-arcs 3.生成的文件: gcda后缀名的文件 (GNU Compiler arc data) gcno后缀名的文件。]]></description>
			<content:encoded><![CDATA[<p>1.编译时：</p>
<p>加入 -fprofile-arcs -ftest-coverage 选项</p>
<p>2.Link时：</p>
<p>加入 -fprofile-arcs</p>
<p>3.生成的文件:</p>
<p>gcda后缀名的文件 (GNU Compiler arc data)</p>
<p>gcno后缀名的文件。</p>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/08/gcc%e7%9a%84code-coverage-compile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal 文件系统</title>
		<link>http://ray.imiddle.net/2011/08/drupal-file-system/</link>
		<comments>http://ray.imiddle.net/2011/08/drupal-file-system/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 01:17:50 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Drupal7]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=725</guid>
		<description><![CDATA[Drupal7 的文件系统使用了3种自定义的URI，操作起来和访问http、ftp协议类似，比较直观。 public:// private:// temp:// 用户还可以自己定义stream wrapper，来实现自己的URI。具体内容参见：DrupalStreamWrapperInterface。 当调用file_save_data时，有三种模式可以选择： FILE_EXISTS_REPLACE：覆盖原有的文件 FILE_EXISTS_RENAME：对文件名从新命名，自动添加_1,_2等后缀。 FILE_EXISTS_ERROR：什么事情都不做，直接返回错误。 默认为FILE_EXISTS_RENAME模式。 如果保存成功则返回drupal的file对象。]]></description>
			<content:encoded><![CDATA[<p>Drupal7 的文件系统使用了3种自定义的URI，操作起来和访问http、ftp协议类似，比较直观。</p>
<ul>
<li>public://</li>
<li>private://</li>
<li>temp://</li>
</ul>
<p>用户还可以自己定义stream wrapper，来实现自己的URI。具体内容参见：DrupalStreamWrapperInterface。</p>
<p>当调用file_save_data时，有三种模式可以选择：</p>
<ul>
<li>FILE_EXISTS_REPLACE：覆盖原有的文件</li>
<li>FILE_EXISTS_RENAME：对文件名从新命名，自动添加_1,_2等后缀。</li>
<li>FILE_EXISTS_ERROR：什么事情都不做，直接返回错误。</li>
</ul>
<p>默认为FILE_EXISTS_RENAME模式。</p>
<p>如果保存成功则返回drupal的file对象。</p>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/08/drupal-file-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal Test Part 1</title>
		<link>http://ray.imiddle.net/2011/08/drupal-test-part-1/</link>
		<comments>http://ray.imiddle.net/2011/08/drupal-test-part-1/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 01:09:16 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Drupal7]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=717</guid>
		<description><![CDATA[最新的Drupal7提供了单元测试的功能，为你的代码健壮性提供了保证。 建立一个module.test的文件作为你模块的测试文件，module请替换成你的模块名称。 建立一个继承DrupalWebTestCase的类，并实现其中的getInfo的函数。 添加一个setUp的函数，这个函数类似所有单元测试中的setup函数，不过在这个函数中必须加入parent::setup(&#8216;module&#8217;)，其中module是你的模块名称。 在后台的激活testing模块。 在admin/config/development/testing/设定页面中，点击“Clean Environment”按钮，就可以在列表中看到你的测试模块了。]]></description>
			<content:encoded><![CDATA[<p>最新的Drupal7提供了单元测试的功能，为你的代码健壮性提供了保证。</p>
<ol>
<li>建立一个module.test的文件作为你模块的测试文件，module请替换成你的模块名称。</li>
<li>建立一个继承DrupalWebTestCase的类，并实现其中的getInfo的函数。</li>
<li>添加一个setUp的函数，这个函数类似所有单元测试中的setup函数，不过在这个函数中必须加入parent::setup(&#8216;module&#8217;)，其中module是你的模块名称。</li>
<li>在后台的激活testing模块。</li>
<li>在admin/config/development/testing/设定页面中，点击“Clean Environment”按钮，就可以在列表中看到你的测试模块了。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/08/drupal-test-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux环境下批量解压zip文件</title>
		<link>http://ray.imiddle.net/2011/04/linux%e7%8e%af%e5%a2%83%e4%b8%8b%e6%89%b9%e9%87%8f%e8%a7%a3%e5%8e%8bzip%e6%96%87%e4%bb%b6/</link>
		<comments>http://ray.imiddle.net/2011/04/linux%e7%8e%af%e5%a2%83%e4%b8%8b%e6%89%b9%e9%87%8f%e8%a7%a3%e5%8e%8bzip%e6%96%87%e4%bb%b6/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 09:06:53 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=715</guid>
		<description><![CDATA[很多对于此问题的解答是编写一些批处理脚本来实现。其实最方便的方法就是使用unzip，在命令行输入unzip &#8216;*.zip&#8217;，由于在Linux环境下*具有特殊意义，所以记得必须在*.zip外添加引号。]]></description>
			<content:encoded><![CDATA[<p>很多对于此问题的解答是编写一些批处理脚本来实现。其实最方便的方法就是使用unzip，在命令行输入unzip &#8216;*.zip&#8217;，由于在Linux环境下*具有特殊意义，所以记得必须在*.zip外添加引号。</p>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/04/linux%e7%8e%af%e5%a2%83%e4%b8%8b%e6%89%b9%e9%87%8f%e8%a7%a3%e5%8e%8bzip%e6%96%87%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>获取所安装的Django版本？</title>
		<link>http://ray.imiddle.net/2011/03/%e8%8e%b7%e5%8f%96%e6%89%80%e5%ae%89%e8%a3%85%e7%9a%84django%e7%89%88%e6%9c%ac%ef%bc%9f/</link>
		<comments>http://ray.imiddle.net/2011/03/%e8%8e%b7%e5%8f%96%e6%89%80%e5%ae%89%e8%a3%85%e7%9a%84django%e7%89%88%e6%9c%ac%ef%bc%9f/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 06:13:48 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=711</guid>
		<description><![CDATA[1 2 &#62;&#62;&#62; import django &#62;&#62;&#62; django.VERSION]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> django
<span style="color: #66cc66;">&gt;&gt;&gt;</span> django.<span style="color: black;">VERSION</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/03/%e8%8e%b7%e5%8f%96%e6%89%80%e5%ae%89%e8%a3%85%e7%9a%84django%e7%89%88%e6%9c%ac%ef%bc%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Andorid View对象常用方法</title>
		<link>http://ray.imiddle.net/2011/03/andorid-view%e5%af%b9%e8%b1%a1%e5%b8%b8%e7%94%a8%e6%96%b9%e6%b3%95/</link>
		<comments>http://ray.imiddle.net/2011/03/andorid-view%e5%af%b9%e8%b1%a1%e5%b8%b8%e7%94%a8%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 05:52:13 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=708</guid>
		<description><![CDATA[getParent(): Finds the parent widget or container. findViewById(): Finds a child widget with a certain ID. getRootView(): Gets the root of the tree (e.g., what you provided to the activity via setContentView()).]]></description>
			<content:encoded><![CDATA[<ul>
<li><strong>getParent():</strong> Finds the parent widget or container.</li>
</ul>
<ul>
<li><strong>findViewById():</strong> Finds a child widget with a certain ID.</li>
</ul>
<ul>
<li><strong>getRootView()</strong>: Gets the root of the tree (e.g., what you provided to the activity via setContentView()).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/03/andorid-view%e5%af%b9%e8%b1%a1%e5%b8%b8%e7%94%a8%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/res下的子目录说明</title>
		<link>http://ray.imiddle.net/2011/03/res%e4%b8%8b%e7%9a%84%e5%ad%90%e7%9b%ae%e5%bd%95%e8%af%b4%e6%98%8e/</link>
		<comments>http://ray.imiddle.net/2011/03/res%e4%b8%8b%e7%9a%84%e5%ad%90%e7%9b%ae%e5%bd%95%e8%af%b4%e6%98%8e/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 02:22:06 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=706</guid>
		<description><![CDATA[anim: Compiled animation files drawable: Bitmaps layout: UI/view definitions values: Arrays, colors, dimensions, strings, and styles xml: Compiled arbitrary XML files, Android-supplied XML readers to read raw: Noncompiled raw files (Audio &#38; Video), stream-based APIs to read]]></description>
			<content:encoded><![CDATA[<ul>
<li><strong>anim</strong>: Compiled animation files</li>
<li><strong>drawable</strong>: Bitmaps</li>
<li><strong>layout:</strong> UI/view definitions</li>
<li><strong>values</strong>: Arrays, colors, dimensions, strings, and styles</li>
<li><strong>xml</strong>: Compiled arbitrary XML files, Android-supplied XML readers to read</li>
<li><strong>raw</strong>: Noncompiled raw files (Audio &amp; Video), stream-based APIs to read</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/03/res%e4%b8%8b%e7%9a%84%e5%ad%90%e7%9b%ae%e5%bd%95%e8%af%b4%e6%98%8e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Resource-Reference Syntax</title>
		<link>http://ray.imiddle.net/2011/03/android-resource-reference-syntax/</link>
		<comments>http://ray.imiddle.net/2011/03/android-resource-reference-syntax/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 01:18:02 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=701</guid>
		<description><![CDATA[@[package:]type/name The type corresponds to one of the resource-type namespaces available in R.java, some of which are: R.drawable R.id R.layout R.string R.attr The corresponding types in XML resource-reference syntax are as follows: drawable id layout string attr]]></description>
			<content:encoded><![CDATA[<p><strong>@[package:]type/name</strong></p>
<p>The type corresponds to one of the resource-type namespaces available in R.java, some of which are:</p>
<ul>
<li>R.drawable</li>
<li>R.id</li>
<li>R.layout</li>
<li>R.string</li>
<li>R.attr</li>
</ul>
<p>The corresponding types in XML resource-reference syntax are as follows:</p>
<ul>
<li>drawable</li>
<li>id</li>
<li>layout</li>
<li>string</li>
<li>attr</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/03/android-resource-reference-syntax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android ADT 地址</title>
		<link>http://ray.imiddle.net/2011/03/android-adt-%e5%9c%b0%e5%9d%80/</link>
		<comments>http://ray.imiddle.net/2011/03/android-adt-%e5%9c%b0%e5%9d%80/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 03:03:55 +0000</pubDate>
		<dc:creator>Ray</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://ray.imiddle.net/?p=693</guid>
		<description><![CDATA[Eclipse 3.5 (Galileo) and 3.6 (Helios) Start Eclipse, then select Help &#62; Install New Software&#8230;. Click Add, in the top-right corner. In the Add Repository dialog that appears, enter “ADT Plugin” for the Name and the following URL for the Location: https://dl-ssl.google.com/android/eclipse/ Note: If you have trouble acquiring the plugin, try using “http” in the [...]]]></description>
			<content:encoded><![CDATA[<h2>Eclipse 3.5 (Galileo) and 3.6 (Helios)</h2>
<ol>
<li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Install New Software&#8230;</strong>.</li>
<li>Click <strong>Add</strong>, in the top-right corner.</li>
<li>In the Add Repository dialog that appears, enter “ADT Plugin” for the <em>Name</em> and the following URL for the <em>Location</em>:
<p>https://dl-ssl.google.com/android/eclipse/</p>
<p>Note: If you have trouble acquiring the plugin, try using “http” in the Location URL,         instead of “https” (https is preferred for security reasons).</p>
<p>Click <strong>OK</strong>.</li>
<li>In the Available Software dialog, select the checkbox next to Developer Tools and click <strong>Next</strong>.</li>
<li>In the next window, you&#8217;ll see a list of the tools to be downloaded. Click <strong>Next</strong>.</li>
<li>Read and accept the license agreements, then click <strong>Finish</strong>.</li>
<li>When the installation completes, restart Eclipse.</li>
</ol>
<h2>Eclipse 3.4 (Ganymede)</h2>
<ol>
<li>Start Eclipse, then select <strong>Help</strong> &gt; <strong>Software Updates&#8230;</strong>. In the dialog that appears, click the <strong>Available Software</strong> tab.</li>
<li>Click <strong>Add Site</strong>.</li>
<li>In the Add Site dialog that appears, enter this URL in the “Location” field:
<p>https://dl-ssl.google.com/android/eclipse/</p>
<p> Note: If you have trouble acquiring the plugin, you can try using “http” in the URL, instead of “https” (https is preferred for security reasons).</p>
<p>Click <strong>OK</strong>.</li>
<li>Back in the Available Software view, you should see the plugin listed by the URL,        with “Developer Tools” nested within it. Select the checkbox next to Developer Tools,         which will automatically select the nested tools. Then click         <strong>Install</strong></li>
<li>On the subsequent Install window, all of the included tools         should be checked. Click <strong>Next</strong>.</li>
<li>Read and accept the license agreements, then click <strong>Finish</strong>.</li>
<li>When the installation completes, restart Eclipse.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ray.imiddle.net/2011/03/android-adt-%e5%9c%b0%e5%9d%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

