<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2449104011512846871</id><updated>2024-12-22T23:29:11.952+08:00</updated><category term="java"/><category term="javascript"/><category term="js"/><category term="mysql"/><category term="ubuntu"/><category term="windows"/><category term="applet"/><category term="css"/><category term="guice"/><category term="jconsole"/><category term="security"/><category term="tomcat"/><category term="wireless"/><category term="Oracle"/><category term="UAC"/><category term="XHTML"/><category term="aircrack"/><category term="ajax"/><category term="android"/><category term="cache"/><category term="education"/><category term="googleearth"/><category term="grid"/><category term="gtalk"/><category term="hiveDB"/><category term="hosts"/><category term="https"/><category term="ie"/><category term="ioc"/><category term="java performance"/><category term="jsp"/><category term="license"/><category term="maven"/><category term="mobile"/><category term="nosql"/><category term="opera"/><category term="prototype"/><category term="setup"/><category term="spring"/><category term="sqlserver"/><category term="ssl"/><category term="svn"/><category term="webservice"/><category term="win7"/><category term="wmi"/><category term="xquery"/><category term="yahoo placemaker js"/><title type='text'>CamelThorn&#39;s Tech</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default?alt=atom'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default?alt=atom&amp;start-index=26&amp;max-results=25'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>61</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-8907035885266215281</id><published>2012-04-25T11:14:00.004+08:00</published><updated>2012-04-25T11:14:51.283+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="win7"/><category scheme="http://www.blogger.com/atom/ns#" term="wmi"/><title type='text'>Win7 自带 WMI 测试工具: wbemtest.exe</title><content type='html'>&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: x-small; line-height: 13px;&quot;&gt;wbemtest.exe&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/8907035885266215281/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/8907035885266215281?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8907035885266215281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8907035885266215281'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2012/04/win7-wmi-wbemtestexe.html' title='Win7 自带 WMI 测试工具: wbemtest.exe'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-7530151376349755192</id><published>2012-03-06T15:54:00.002+08:00</published><updated>2012-03-06T15:54:55.025+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="UAC"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Win7 UAC 控制设置</title><content type='html'>From:&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa826699(VS.85).aspx#handling_remote_connections_under_uac&quot;&gt;http://msdn.microsoft.com/en-us/library/aa826699(VS.85).aspx#handling_remote_connections_under_uac&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;color: #3f529c; font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 1.077em; text-align: left;&quot;&gt;Handling Remote Connections Under UAC&lt;/h3&gt;&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 13px; text-align: left;&quot;&gt;Whether you are connecting to a remote computer in a domain or in a workgroup determines whether UAC filtering occurs.&lt;/div&gt;&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 13px; margin-top: -6px; text-align: left;&quot;&gt;If your computer is part of a domain, connect to the target computer using a domain account that is in the local Administrators group of the remote computer. Then UAC access token filtering will not affect the domain accounts in the local Administrators group. Do not use a local, nondomain account on the remote computer, even if the account is in the Administrators group.&lt;/div&gt;&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 13px; margin-top: -6px; text-align: left;&quot;&gt;In a workgroup, the account connecting to the remote computer is a local user on that computer. Even if the account is in the Administrators group, UAC filtering means that a script runs as a standard user. A best practice is to create a dedicated local user group or user account on the target computer specifically for remote connections.&lt;/div&gt;&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 13px; margin-top: -6px; text-align: left;&quot;&gt;The security must be adjusted to be able to use this account because the account never has had administrative privileges. Give the local user:&lt;/div&gt;&lt;ul style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 13px; text-align: left;&quot;&gt;&lt;li&gt;Remote launch and activate rights to access DCOM. For more information, see&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa389290(v=vs.85).aspx&quot; style=&quot;color: #960bb4; text-decoration: none;&quot;&gt;Connecting to WMI on a Remote Computer&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Rights to access the WMI namespace remotely (Remote Enable). For more information, see&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa822575(v=vs.85).aspx&quot; style=&quot;color: #960bb4; text-decoration: none;&quot;&gt;Access to WMI Namespaces&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Right to access the specific securable object, depending on the security required by the object.&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 13px; text-align: left;&quot;&gt;If you use a local account, either because you are in a workgroup or it is a local computer account, you may be forced to give specific tasks to a local user. For example, you can grant the user the right to stop or start a specific service through the SC.exe command, the&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa390785(v=vs.85).aspx&quot; style=&quot;color: #960bb4; text-decoration: none;&quot;&gt;&lt;strong xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;GetSecurityDescriptor&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa393596(v=vs.85).aspx&quot; style=&quot;color: #960bb4; text-decoration: none;&quot;&gt;&lt;strong xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;SetSecurityDescriptor&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;methods of&amp;nbsp;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/aa394418(v=vs.85).aspx&quot; style=&quot;color: #960bb4; text-decoration: none;&quot;&gt;&lt;strong xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;Win32_Service&lt;/strong&gt;&lt;/a&gt;, or through Group Policy using Gpedit.msc. Some securable objects may not allow a standard user to perform tasks and offer no means to alter the default security. In this case, you may need to disable UAC so that the local user account is not filtered and instead becomes a full administrator. Be aware that for security reasons, disabling UAC should be a last resort.&lt;/div&gt;&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Verdana, Arial; font-size: 13px; margin-top: -6px; text-align: left;&quot;&gt;Disabling Remote UAC by changing the registry entry that controls Remote UAC is not recommended, but may be necessary in a workgroup. The registry entryis&lt;strong&gt;HKLM&lt;/strong&gt;\&lt;strong&gt;SOFTWARE&lt;/strong&gt;\&lt;strong&gt;Microsoft&lt;/strong&gt;\&lt;strong&gt;Windows&lt;/strong&gt;\&lt;strong&gt;CurrentVersion&lt;/strong&gt;\&lt;strong&gt;Policies&lt;/strong&gt;\&lt;strong&gt;system&lt;/strong&gt;\&lt;strong&gt;LocalAccountTokenFilterPolicy&lt;/strong&gt;. When the value of this entry is zero (0), Remote UAC access token filtering is enabled. When the value is 1, remote UAC is disabled.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/7530151376349755192/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/7530151376349755192?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/7530151376349755192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/7530151376349755192'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2012/03/win7-uac.html' title='Win7 UAC 控制设置'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-4620980718583045394</id><published>2010-12-06T22:45:00.000+08:00</published><updated>2010-12-06T22:45:33.475+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="wireless"/><title type='text'>ubuntu 10.04 更新后无线网卡无法加载</title><content type='html'>ubuntu 10.04 安装后,无线网卡 (netcore NW336,芯片为 rtl871x)驱动安装后，可以连接无线AP&lt;br /&gt;
但更新所有的可更新补丁后，重启系统，则再也无法连接无线网络，网络灯不亮。&lt;br /&gt;
更新后的内核为 2.6.32-26，启动上一个内核 2.6.32-21,则无线网卡仍然可以使用。&lt;br /&gt;
解决办法：&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;将 /lib/modules/2.6.32-21-generic/kernel/drivers/staging/rtl8192su/r8192s-usb.ko 拷贝到 2.6.32-26-generic 对应的目录下，重启系统即可。</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/4620980718583045394/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/4620980718583045394?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/4620980718583045394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/4620980718583045394'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/12/ubuntu-1004.html' title='ubuntu 10.04 更新后无线网卡无法加载'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-2317196018023998779</id><published>2010-11-11T11:21:00.001+08:00</published><updated>2010-11-11T11:22:25.871+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gtalk"/><title type='text'>让Gtalk支持多个账号同时登录</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Simsun; font-size: 14px; line-height: 25px;&quot;&gt;在 gtalk 的启动命令后增加 /nomutex&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/2317196018023998779/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/2317196018023998779?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/2317196018023998779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/2317196018023998779'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/11/gtalk.html' title='让Gtalk支持多个账号同时登录'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-189989372929967959</id><published>2010-10-25T18:04:00.000+08:00</published><updated>2010-10-25T18:04:23.821+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="XHTML"/><title type='text'>XHTML checklist</title><content type='html'>1. XHTML = XML + HTML&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;包含了所有的 HTML4.01 的元素，但是必须遵循 xml 的语法&lt;br /&gt;
2. XHTML 属性必须是嵌套的&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;比如：&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;This text is bold and italic&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; 是错的&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;b&amp;gt;&amp;lt;i&amp;gt;This text is bold and italic&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; 是对的&lt;br /&gt;
3. XHTML 元素必须是关闭的&lt;br /&gt;
4. XHTML 元素必须是小写的&lt;br /&gt;
5. XHTML 必须有一个根元素&lt;br /&gt;
6. XHTML 属性名必须小写&lt;br /&gt;
7. XHTML 属性值必须加引号 &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
8. 属性不能简写&lt;br /&gt;
9. 比如：&amp;lt;input checked&amp;gt; 应该是： &amp;lt;input checked=&quot;checked&quot; /&amp;gt;&lt;br /&gt;
10.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;假如要指定一个元素的值的内容的 lang 属性，则必须同时加 xml:lang&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;div lang=&quot;it&quot; xml:lang=&quot;it&quot;&amp;gt;Ciao bella!&amp;lt;/div&amp;gt;&lt;br /&gt;
11.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;XHTML 规定了一些必须要有的属性&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;DOCTYPE html head title body&lt;br /&gt;
12.&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;有三种 DOCTYPE&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;1) 同时支持 HTML 与 XHTML&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;2) 严格遵循 XHTML 标记&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;3) 如果想使用 HTML frame 时&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Frameset//EN&quot;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd&quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13. 将一个网站转换成 XHTML 的过程&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;1) 增加 DOCTYPE&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;2) 将所有的元素/属性转换成小写，属性值加引号&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;3) 对空标签进行处理&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &amp;lt;hr /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;img /&amp;gt; 或 &amp;lt;img ...&amp;gt;&amp;lt;/img&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;4) 用 W3C 验证页面是否遵循 XHTML 标准&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;http://www.w3schools.com/xhtml/default.asp&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/189989372929967959/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/189989372929967959?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/189989372929967959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/189989372929967959'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/10/xhtml-checklist.html' title='XHTML checklist'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-4471999918508520172</id><published>2010-10-21T11:53:00.001+08:00</published><updated>2010-10-21T11:54:17.471+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="css"/><title type='text'>css 笔记</title><content type='html'>&lt;div&gt;&lt;div&gt;1. CSS 几种表示方式(应用范围)：&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;1) html element selector,比如 &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;p {color:red;text-align:center;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;2) id selector, ex. &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;#para1{text-align:center;color:red;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;3) class Selector,ex. &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;.center {text-align:center;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;4) html+class Selector,ex. p.centor{text-align:center;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;2. 插入 CSS 的三种方式&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;1) 外部 CSS &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;mystyle.css&quot; /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;2) 内部 CSS&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;style type=&quot;text/css&quot;&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;hr {color:sienna;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;p {margin-left:20px;} /*20px ,but not 20 px*/&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;body {background-image:url(&quot;images/back40.gif&quot;);}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/style&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;3) Inline CSS &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;p style=&quot;color:sienna;margin-left:20px&quot;&amp;gt;This is a paragraph.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;div&gt;3. 当对同一个元素使用了多个 css 时，使用指定的具体的，比如 Inline Css 优于 External Css&lt;/div&gt;&lt;div&gt;以下优先级 4&amp;gt;3&amp;gt;2&amp;gt;1，假如 外部 css 放在了 internal css 后面，则 外部 css 优先&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;1) Browser default&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;2) External style sheet&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;3) Internal style sheet (in the head section)&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;4) Inline style (inside an HTML element)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;4. 属性值为 justify,会使该属性充满页面&lt;/div&gt;&lt;div&gt;比如: text-align:justify; 则可以使文字充满整个页面（类似于 word 中的左右对齐）&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;5. 设置字体大小&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;1) W3C 推荐用 em 表示大小，这样，在 IE 里也可以调整字体的大小(查看/文字大小),如果是 px 的话，IE 不支持调整&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;2) 1em 表示浏览器默认的字体大小，目前是 16px&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;3) 百分比与 em 共用&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;body {font-size:100%;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;    &lt;/span&gt;h1 {font-size:2.5em;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt; 这种方式在所有的浏览器里都可以放大/缩小，以及调整字体大小&lt;/div&gt;&lt;div&gt;6. Link style&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;包括四种状态，a:hover 必须在 a:link,a:visited 后，而a:active 必须在 a:hover 后&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;a:link - a normal, unvisited link&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;a:visited - a link the user has visited&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;a:hover - a link when the user mouses over it&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;a:active - a link the moment it is clicked&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;7. 有许多属性在 IE 里不支持，除非有 !DOCTYPE 声明，所以总是保持 !DOCTYPE 声明是必要的&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;8. 当对齐 block 元素时，预定义 body 的 margin &amp;amp; padding 对浏览器兼容是必要的&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;body{margin:0;padding:0;}&lt;/div&gt;&lt;div&gt;9. @media Rule&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; 在不同的用户接口上显示不同的内容&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt; @media screen&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  {&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  p.test {font-family:verdana,sans-serif;font-size:14px;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  }&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;@media print&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  {&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  p.test {font-family:times,serif;font-size:10px;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  }&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;@media screen,print&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  {&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  p.test {font-weight:bold;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;  }&lt;/div&gt;&lt;div&gt;10. 可以设置属性为选择器&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;ex.&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;[title]{color:blue;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;[title=W3Schools]{border:5px solid green;}&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;[title~=hello] { color:blue; } /*title Included hello*/&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;[lang|=en] { color:blue; } /* attribute lang include en */&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;input[type=&quot;text&quot;]{width:150px;display:block;margin-bottom:10px;background-color:yellow;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Resources: &lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;1. http://www.w3schools.com/css/&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;   &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/4471999918508520172/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/4471999918508520172?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/4471999918508520172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/4471999918508520172'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/10/css.html' title='css 笔记'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-4329438162541210436</id><published>2010-10-19T10:30:00.002+08:00</published><updated>2010-10-19T10:30:32.533+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><title type='text'>Mysql 表的存贮位置</title><content type='html'>Mysql 表的存贮位置&lt;br /&gt;
&lt;br /&gt;
INNODB Engine 缺省的会将表数据及索引存贮在文件 ibdata1 下,ibdata 的位置与初始大小等是可以配置的,支持多个 ibdata 文件&lt;br /&gt;
&lt;br /&gt;
MYISAM Engine 每个表的数据索引是存在独立的表文件中</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/4329438162541210436/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/4329438162541210436?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/4329438162541210436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/4329438162541210436'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/10/mysql.html' title='Mysql 表的存贮位置'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-7078476903451592835</id><published>2010-09-28T14:19:00.000+08:00</published><updated>2010-09-28T14:19:58.668+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hosts"/><title type='text'>hosts 无法修改的问题</title><content type='html'>由于众所周知的 GFW 的原因，在 hosts 里加了几个 google https 的解析&lt;br /&gt;
360 每次总会报 hosts 异常，今天一不小心点了“一键修复”，然后再想改 hosts 文件都无法改了&lt;br /&gt;
&lt;br /&gt;
修改注册表什么的法子都试过了，都不知道如何处理&lt;br /&gt;
最后将 跟 hosts 同目录下的 .sam 文件删除就好了</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/7078476903451592835/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/7078476903451592835?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/7078476903451592835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/7078476903451592835'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/09/hosts.html' title='hosts 无法修改的问题'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-3745333326612610781</id><published>2010-09-20T17:49:00.000+08:00</published><updated>2010-09-20T17:49:48.581+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="aircrack"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><category scheme="http://www.blogger.com/atom/ns#" term="wireless"/><title type='text'>支持 aircrack-ng 的网卡</title><content type='html'>&lt;table style=&quot;border-collapse: collapse; margin-left: 5.4000pt; mso-table-layout-alt: fixed; padding: 0.0000pt 0.0000pt 0.0000pt 0.0000pt;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 49.6500pt;&quot;&gt;&lt;td style=&quot;background: rgb(222,231,236); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Card&amp;nbsp;name&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(222,231,236); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Chipset&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(222,231,236); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Antenna&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(222,231,236); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Windows&lt;/span&gt;&lt;span style=&quot;font-family: 宋体; font-size: 10.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;support&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(222,231,236); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Linux&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;support&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(222,231,236); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Notes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;height: 39.9000pt;&quot;&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Asus&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;WL-167g&amp;nbsp;v2&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;RT73&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Airlink&amp;nbsp;AWLL3026&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Zydas&amp;nbsp;zd1211&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;USB&amp;nbsp;info:&amp;nbsp;0ace:1211&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&amp;nbsp;Notes&amp;nbsp;1&amp;nbsp;and&amp;nbsp;4.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Alfa&amp;nbsp;AWUS036E&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RTL8187L&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RP-SMA&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;80mW&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Alfa&amp;nbsp;AWUS036H&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RTL8187L&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RP-SMA&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;a href=&quot;http://www.tuto-fr.com/en/tutorial/materiel/awus036h-alfa-network.php&quot;&gt;Click&amp;nbsp;here&lt;/a&gt;&lt;/span&gt;&amp;nbsp;for&amp;nbsp;a&amp;nbsp;test&amp;nbsp;of&amp;nbsp;this&amp;nbsp;adapter&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Alfa&amp;nbsp;AWUS036S&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;rt73&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RP-SMA&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;a href=&quot;http://www.tuto-fr.com/en/tutorial/materiel/awus036s-alfa-network.php&quot;&gt;Click&amp;nbsp;here&lt;/a&gt;&lt;/span&gt;&amp;nbsp;for&amp;nbsp;a&amp;nbsp;test&amp;nbsp;of&amp;nbsp;this&amp;nbsp;adapter&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Alfa&amp;nbsp;AWUS050NH&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;RT2770F&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RP-SMA&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Digitus&amp;nbsp;DN-7003GS&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RTL8187L&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;USB&amp;nbsp;info:&amp;nbsp;0bda:8187&amp;nbsp;Realtek&amp;nbsp;Semiconductor&amp;nbsp;Corp.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;a href=&quot;http://www.digitus.info/scripts/digdetail.asp?artnr=DN-7003GS&quot;&gt;Manufacturer&amp;nbsp;page&lt;/a&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;D-Link&amp;nbsp;DWL-G122&amp;nbsp;B1&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;RT2570&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;D-Link&amp;nbsp;DWL-G122&amp;nbsp;C1&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;RT73&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;D-Link&amp;nbsp;WUA-1340&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;RT73&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Edimax&amp;nbsp;EW-7318USg&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;rt73&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RP-SMA&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Note&amp;nbsp;2&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Hawking&amp;nbsp;HWUG1&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;rt73&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RP-SMA&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Linksys&amp;nbsp;WUSB54G&amp;nbsp;v4&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;rt2570&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&amp;nbsp;or&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;a href=&quot;http://www.egidy.de/wifi/wusb54g/&quot;&gt;RP-SMA&lt;/a&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Linksys&amp;nbsp;WUSB54GCv1&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;RT73&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Note&amp;nbsp;5&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Linksys&amp;nbsp;WUSB54GCv2&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RTL8187B&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Note&amp;nbsp;5&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Netgear&amp;nbsp;WG111&amp;nbsp;v1&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;PrismGT&amp;nbsp;SoftMAC&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;airodump-ng&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Untested&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&amp;nbsp;note&amp;nbsp;3.&amp;nbsp;Needs&amp;nbsp;a&amp;nbsp;recent&amp;nbsp;GIT&amp;nbsp;kernel&amp;nbsp;from&amp;nbsp;the&amp;nbsp;wireless-testing&amp;nbsp;branch.&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Netgear&amp;nbsp;WG111&amp;nbsp;v2&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;RTL8187L&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&amp;nbsp;note&amp;nbsp;3&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Netgear&amp;nbsp;WNDA3100v1&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Atheros&amp;nbsp;9170&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&amp;nbsp;Note&amp;nbsp;6&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;TP-Link&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;TL-WN321G&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Ralink&amp;nbsp;RT73&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;a href=&quot;http://www.tp-link.com/products/product_des.asp?id=47&quot;&gt;Manufacturer&amp;nbsp;page&lt;/a&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Trendnet&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;TEW-429UB&amp;nbsp;C1&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Zydas&amp;nbsp;zd1211b&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Yes&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;USB&amp;nbsp;info:&amp;nbsp;157e:300d&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;ZyXEL&amp;nbsp;AG-225H&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Zydas&amp;nbsp;zd1211&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Limited&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&amp;nbsp;Note&amp;nbsp;4&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 84.1000pt;&quot; valign=&quot;center&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;ZyXEL&amp;nbsp;G-202&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 69.7500pt;&quot; valign=&quot;center&quot; width=&quot;93&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Zydas&amp;nbsp;zd1211b&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Internal&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 47.2500pt;&quot; valign=&quot;center&quot; width=&quot;63&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;No&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 37.5000pt;&quot; valign=&quot;center&quot; width=&quot;50&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;Limited&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;background: rgb(255,255,255); padding: 2.2500pt 2.2500pt 2.2500pt 2.2500pt; width: 146.4500pt;&quot; valign=&quot;center&quot; width=&quot;195&quot;&gt;&lt;div class=&quot;p0&quot; style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;See&amp;nbsp;Note&amp;nbsp;4&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 10.5pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/3745333326612610781/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/3745333326612610781?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/3745333326612610781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/3745333326612610781'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/09/aircrack-ng.html' title='支持 aircrack-ng 的网卡'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-8760676555465881690</id><published>2010-09-20T13:51:00.002+08:00</published><updated>2010-09-20T13:51:38.964+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>怎样将 ubuntu 的 gnome-panel 恢复到顶部</title><content type='html'>How can I restore ubuntu&#39;s gnome-panel to default position?&lt;br /&gt;
&lt;br /&gt;
昨天将 Ubuntu 10.04 的开始菜单(Ubuntu 叫 gnome-panel) 从默认的上方移到了下方，还加了一个自动隐藏，没想到今天就不能点击菜单上的快捷方式了，折腾了半天才搞定&lt;br /&gt;
&lt;br /&gt;
1. Ctrl + Alt + F1 进入 Terminal&lt;br /&gt;
&lt;br /&gt;
2. cd ~/.gconf/apps/panel/toplevels/top_panel_screen0&lt;br /&gt;
&lt;br /&gt;
3. vi %gconf.xml&lt;br /&gt;
&lt;br /&gt;
4. 找到 auto_hide 项，将 value 设为 false&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 找到 orientation ，将 stringvalue 的值设为 top&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&lt;br /&gt;
5. reboot &amp;nbsp; &lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/8760676555465881690/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/8760676555465881690?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8760676555465881690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8760676555465881690'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/09/ubuntu-gnome-panel.html' title='怎样将 ubuntu 的 gnome-panel 恢复到顶部'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-1757514661306751582</id><published>2010-08-11T10:39:00.001+08:00</published><updated>2010-08-11T10:39:06.819+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="maven"/><title type='text'>maven install missing jars</title><content type='html'>mvn install:install-file -DgroupId=com.mchange.v2 -DartifactId=c3p0 -Dversion=0.9.1.2 -Dpackaging=jar -Dfile=c3p0-0.9.1.2.jar&lt;br /&gt;mvn install:install-file -DgroupId=javax.security -DartifactId=jacc -Dversion=1.0 -Dpackaging=jar -Dfile=jacc-1_0-fr-class.zip&lt;br /&gt;mvn install:install-file -DgroupId=javax.transaction -DartifactId=jta -Dversion=1.0.1B -Dpackaging=jar -Dfile=jta-1_0_1B-classes.zip&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/1757514661306751582/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/1757514661306751582?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/1757514661306751582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/1757514661306751582'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/08/maven-install-missing-jars.html' title='maven install missing jars'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-8516838024337763666</id><published>2010-08-10T14:05:00.001+08:00</published><updated>2010-08-10T14:05:29.525+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hiveDB"/><category scheme="http://www.blogger.com/atom/ns#" term="mysql"/><title type='text'>HiveDB</title><content type='html'>OpenSource 的 HiveDB 对Mysql 支持水平分区,用Java 编写 &lt;br /&gt;&lt;br /&gt;site: http://www.hivedb.org&lt;br /&gt;&lt;br /&gt;HiveDB 的一些缺点： &lt;br /&gt;        1. 从 2008.4 起，不再有新的支持&lt;br /&gt;        2. 跟应用紧耦合，需要通过调用接口来实现插入记录／新增结点／新增索引／查询记录等&lt;br /&gt;        3. 只适用于查询情景固定的情况，因为它需要预建索引&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/8516838024337763666/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/8516838024337763666?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8516838024337763666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8516838024337763666'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/08/hivedb.html' title='HiveDB'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-6477281259849994015</id><published>2010-06-04T15:13:00.002+08:00</published><updated>2010-06-04T15:13:43.075+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="education"/><title type='text'>世界50所知名大学提供开放课程(ZT)</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, sans-serif; font-size: 15px;&quot;&gt;世界50所知名大学提供开放课程: (Top 50 University Open Courseware Collections)&lt;br /&gt;
&lt;br /&gt;
学术权威&lt;br /&gt;
1. 麻省理工学院 ：麻省理工学院有许多人认为是在该国最广泛&lt;wbr&gt;&lt;/wbr&gt;的开放课件的收集，也正好是著名大学中的第&lt;wbr&gt;&lt;/wbr&gt;一。学科覆盖范围从建筑、规划到人文、科学&lt;wbr&gt;&lt;/wbr&gt;，此目录中有惊人的信息数量。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.mit.edu/OcwWeb/web/home/home/index.htm&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http:&lt;wbr&gt;&lt;/wbr&gt;//ocw.mit.edu/OcwWeb&lt;wbr&gt;&lt;/wbr&gt;/web/home/home/index&lt;wbr&gt;&lt;/wbr&gt;.htm&lt;/a&gt;）在很早以前就有台湾人开始做MI&lt;wbr&gt;&lt;/wbr&gt;T的汉化课件，有兴趣的朋友可以去搜一下。&lt;br /&gt;
&lt;br /&gt;
2. 卡内基梅隆大学 ：这个奇妙的大学有优秀的学术传统。凭借其&lt;wbr&gt;&lt;/wbr&gt;“开放的学习计划”的目标使每个人都有学习&lt;wbr&gt;&lt;/wbr&gt;的机会并得到满足。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://oli.web.cmu.edu/openlearning/forstudents/freecourses&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://oli&lt;wbr&gt;&lt;/wbr&gt;.web.cmu.edu/openlea&lt;wbr&gt;&lt;/wbr&gt;rning/forstudents/fr&lt;wbr&gt;&lt;/wbr&gt;eecourses&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
3. 约翰霍普金斯大学彭博公共卫生学院 ：约翰霍普金斯大学是世界重要的学校之一。&lt;wbr&gt;&lt;/wbr&gt;虽然他们的课程设置仅限于健康知识，专业的&lt;wbr&gt;&lt;/wbr&gt;知识使巨量收集成为最好的之一。&lt;br /&gt;
（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.jhsph.edu/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw.jhsph.e&lt;wbr&gt;&lt;/wbr&gt;du/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
4. 斯坦福大学：这个著名的大学为学生提供的课&lt;wbr&gt;&lt;/wbr&gt;程，可通过iTunes供选择。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://itunes.stanford.edu/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http&lt;wbr&gt;&lt;/wbr&gt;://itunes.stanford.e&lt;wbr&gt;&lt;/wbr&gt;du/&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
5.&amp;nbsp;&lt;b&gt;圣母大学&lt;/b&gt;&amp;nbsp;：被许多人认为如果不是世界最好也是在该国&lt;wbr&gt;&lt;/wbr&gt;最好的学校之一。随着如历史，英语和数学等&lt;wbr&gt;&lt;/wbr&gt;科目开放课件的产品，任何人都可以受益于这&lt;wbr&gt;&lt;/wbr&gt;种知识的美妙学校。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.nd.edu/courselist&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw&lt;wbr&gt;&lt;/wbr&gt;.nd.edu/courselist&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
6. 杜克大学法律中心的公共领域 ：杜克大学之一，是在南方最好的学校。如果&lt;wbr&gt;&lt;/wbr&gt;你对法律感兴趣，杜克大学学科领域的开放式&lt;wbr&gt;&lt;/wbr&gt;课件可以大大有助于您了解司法系统漫长的道&lt;wbr&gt;&lt;/wbr&gt;路。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.law.duke.edu/cspd/lectures&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://www.law.du&lt;wbr&gt;&lt;/wbr&gt;ke.edu/cspd/lectures&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
常春藤联盟&lt;br /&gt;
&lt;br /&gt;
7. 哈佛医学院 ：虽然它的课程是限制在医学界，但他们是为&lt;wbr&gt;&lt;/wbr&gt;在常春藤寻找信息的人很好的资源。哈佛大学&lt;wbr&gt;&lt;/wbr&gt;提供的课程主题，生物医疗和商业主题不等。&lt;wbr&gt;&lt;/wbr&gt;（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://mycourses.med.harvard.edu/public/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://mycourses.me&lt;wbr&gt;&lt;/wbr&gt;d.harvard.edu/public&lt;wbr&gt;&lt;/wbr&gt;/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
8. 普林斯顿大学的通道 ：这所常春藤盟校有一整套客座讲座。翻译不&lt;wbr&gt;&lt;/wbr&gt;了了:Yale University — This wonderful Ivy League institution has a great number of ivy quality open course classes available for all.（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://uc.princeton.edu/main/index.php&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://uc.princ&lt;wbr&gt;&lt;/wbr&gt;eton.edu/main/index.&lt;wbr&gt;&lt;/wbr&gt;php&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
9. 耶鲁大学 ：这所美妙的常春藤盟校中的常春藤有一大批&lt;wbr&gt;&lt;/wbr&gt;高质量的开放课程班所有可用。主题涵盖历史&lt;wbr&gt;&lt;/wbr&gt;，文学，以数学和科学范围。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://open.yale.edu/courses/courses.html&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http:/&lt;wbr&gt;&lt;/wbr&gt;/open.yale.edu/cours&lt;wbr&gt;&lt;/wbr&gt;es/courses.html&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
西部学府&lt;br /&gt;
10. 加州大学戴维斯分校 ：美国加州大学的另一学校。课程进行了广泛&lt;wbr&gt;&lt;/wbr&gt;的各种目录。一些主题包括科学，工程和数学&lt;wbr&gt;&lt;/wbr&gt;。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://heather.cs.ucdavis.edu/~matloff/unix.html&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://heather.cs.&lt;wbr&gt;&lt;/wbr&gt;ucdavis.edu/~matloff&lt;wbr&gt;&lt;/wbr&gt;/unix.html&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
11. 华盛顿大学 ：华盛顿大学在美国西部是一个极好的大学。&lt;wbr&gt;&lt;/wbr&gt;开设的课程包括从科学、数学和英语。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.outreach.washington.edu/openuw/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;ht&lt;wbr&gt;&lt;/wbr&gt;tp://www.outreach.wa&lt;wbr&gt;&lt;/wbr&gt;shington.edu/openuw/&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
12. 加州大学欧文分校 ：加州大学的另一学校提供的大量的课程。可&lt;wbr&gt;&lt;/wbr&gt;以从网上获得商业、生物科学课程。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.uci.edu/courses/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;htt&lt;wbr&gt;&lt;/wbr&gt;p://ocw.uci.edu/cour&lt;wbr&gt;&lt;/wbr&gt;ses/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
13. 加州大学伯克利分校 ：加州大学伯克利分校有激动人心的集合，包&lt;wbr&gt;&lt;/wbr&gt;括生物学、计算机科学、经济学等等。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://webcast.berkeley.edu/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;ht&lt;wbr&gt;&lt;/wbr&gt;tp://webcast.berkele&lt;wbr&gt;&lt;/wbr&gt;y.edu&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
14. 犹他大学 ：U Moodle（在这所学校的开放式课件集合&lt;wbr&gt;&lt;/wbr&gt;名称）载有大量的信息。历史、英语、教学、&lt;wbr&gt;&lt;/wbr&gt;和药物治疗只是在此集合所涉及的许多问题中&lt;wbr&gt;&lt;/wbr&gt;的很少一部分。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.utah.edu/courselist&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw.u&lt;wbr&gt;&lt;/wbr&gt;tah.edu/courselist&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
15. 犹他州州立大学 ：美国犹他州的课程设置十分广泛不等，从第&lt;wbr&gt;&lt;/wbr&gt;一年中，以文化人类学的一切。学生可以受益&lt;wbr&gt;&lt;/wbr&gt;于这一伟大机构的知识基础。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.usu.edu/courselist&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http:/&lt;wbr&gt;&lt;/wbr&gt;/ocw.usu.edu/coursel&lt;wbr&gt;&lt;/wbr&gt;ist&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
16. 东犹他学院 ：犹他州校训是：“我们一起达成。”这可能&lt;wbr&gt;&lt;/wbr&gt;意味着很多东西，但主要是它意味着与他们的&lt;wbr&gt;&lt;/wbr&gt;开放式课件的产品，他们可以帮助人的知识达&lt;wbr&gt;&lt;/wbr&gt;到新的水平。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.ceu.edu/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw.ce&lt;wbr&gt;&lt;/wbr&gt;u.edu/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
17. 犹他谷州立学院 ：另一个犹他州的学校进入我们的名单。这里&lt;wbr&gt;&lt;/wbr&gt;所涵盖的主题包括：会计、生物、英语、和工&lt;wbr&gt;&lt;/wbr&gt;程。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://open.uvsc.edu/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://open.uvsc.&lt;wbr&gt;&lt;/wbr&gt;edu/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
科罗那地区&lt;br /&gt;
&lt;br /&gt;
18. 塔夫茨大学 ：位于马萨诸塞州的波士顿，这所受到广泛关&lt;wbr&gt;&lt;/wbr&gt;注的大学提供了许多基于开放式课件。内容包&lt;wbr&gt;&lt;/wbr&gt;括，农业研究，生物研究，遗传学，等等。（&lt;wbr&gt;&lt;/wbr&gt;&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.tufts.edu/CourseList&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw.tufts.edu&lt;wbr&gt;&lt;/wbr&gt;/CourseList&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
19. 马萨诸塞大学，波士顿 ：提供包括生物学、数学科目范围的开放课件&lt;wbr&gt;&lt;/wbr&gt;。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.umb.edu/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw.umb.edu&lt;wbr&gt;&lt;/wbr&gt;/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
20. 波士顿学院的Front Row：波士顿学院是一个具有悠久历史的优&lt;wbr&gt;&lt;/wbr&gt;秀学院。为此，它通过播客演讲提供大量优秀&lt;wbr&gt;&lt;/wbr&gt;资源。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://frontrow.bc.edu/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://frontrow.&lt;wbr&gt;&lt;/wbr&gt;bc.edu/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
21. *经典播客*：哈弗福德学院 ：如果你对经典名著感兴趣，又不介意听播客&lt;wbr&gt;&lt;/wbr&gt;，那么哈弗福德学院提供的产品是您完美的解&lt;wbr&gt;&lt;/wbr&gt;决方案。在您出门的时候也可以了解古典文学&lt;wbr&gt;&lt;/wbr&gt;。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.haverford.edu/classics/audio&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://www.haverfo&lt;wbr&gt;&lt;/wbr&gt;rd.edu/classics/audi&lt;wbr&gt;&lt;/wbr&gt;o&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
中西部学府&lt;br /&gt;
&lt;br /&gt;
22. 密歇根大学 ：密歇根州被广泛认为是最好的“平民常春藤&lt;wbr&gt;&lt;/wbr&gt;”之一，因此它的开放课件的产品应该高度重&lt;wbr&gt;&lt;/wbr&gt;视。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://open.umich.edu/education&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://open.umich&lt;wbr&gt;&lt;/wbr&gt;.edu/education&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
23. 普渡大学 ：有兴趣的人士一定能够受益于这些课程提供&lt;wbr&gt;&lt;/wbr&gt;的广泛议题。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://owl.english.purdue.edu/owl/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://owl.en&lt;wbr&gt;&lt;/wbr&gt;glish.purdue.edu/owl&lt;wbr&gt;&lt;/wbr&gt;/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
24. 宾夕法尼亚库茨敦大学 ：您可能还没有听说过库茨敦，但它是一个神&lt;wbr&gt;&lt;/wbr&gt;奇美妙的大学城。其开放式课件提供的产品都&lt;wbr&gt;&lt;/wbr&gt;非常注重商业。在这个艰难的经济环境下，最&lt;wbr&gt;&lt;/wbr&gt;好有比你&lt;br /&gt;
竞争对手更多的知识。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.kutztownsbdc.org/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://w&lt;wbr&gt;&lt;/wbr&gt;ww.kutztownsbdc.org/&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
25. 密歇根州立大学 ：斯巴达人也加入了越来越开放的课件的倡议&lt;wbr&gt;&lt;/wbr&gt;。提供了广泛的议题和很多不同的课程，为学&lt;wbr&gt;&lt;/wbr&gt;习了解一些重要学科领域感兴趣的人。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.msuglobal.com/ocw&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;ht&lt;wbr&gt;&lt;/wbr&gt;tp://www.msuglobal.c&lt;wbr&gt;&lt;/wbr&gt;om/ocw&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
英国&lt;br /&gt;
26. 牛津大学的文字资料馆 ：在英国所有大学里牛津大学是最古老，最受&lt;wbr&gt;&lt;/wbr&gt;人尊敬的。牛津的年龄和它的资源，使这个文&lt;wbr&gt;&lt;/wbr&gt;本存档成为有兴趣人士的梦幻学术殿堂。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ota.ahds.ac.uk/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;h&lt;wbr&gt;&lt;/wbr&gt;ttp://ota.ahds.ac.uk&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
27. Greshem学院 ：当谈到音乐这个总部设在英国的大学有着坚&lt;wbr&gt;&lt;/wbr&gt;实的开放式课件提供。欧洲在历史上有最具影&lt;wbr&gt;&lt;/wbr&gt;响力的音乐创作，因此利用欧洲学校的资源显&lt;wbr&gt;&lt;/wbr&gt;然是一个明智的决&lt;br /&gt;
定。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.gresham.ac.uk/default.asp&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://www.gresh&lt;wbr&gt;&lt;/wbr&gt;am.ac.uk/default.asp&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
28. 格拉斯哥大学 ：这个总部设在英国的大学有几个艺术的课程&lt;wbr&gt;&lt;/wbr&gt;。对于感国际视野兴趣的学生，这绝对是一个&lt;wbr&gt;&lt;/wbr&gt;好的开始。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://podlearn.arts.gla.ac.uk/downloads.html&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://podlear&lt;wbr&gt;&lt;/wbr&gt;n.arts.gla.ac.uk/dow&lt;wbr&gt;&lt;/wbr&gt;nloads.html&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
29. 萨里大学 ：英国另一所提供广泛的课程目录、英语和经&lt;wbr&gt;&lt;/wbr&gt;典名著的大学。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://info.ee.surrey.ac.uk/Teaching/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://info.&lt;wbr&gt;&lt;/wbr&gt;ee.surrey.ac.uk/Teac&lt;wbr&gt;&lt;/wbr&gt;hing/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
30. 诺丁汉大学 ：这所大学拥有丰富的历史，它的开放式课件&lt;wbr&gt;&lt;/wbr&gt;产品反映了它的历史。对感兴趣的人从这些产&lt;wbr&gt;&lt;/wbr&gt;品能够真正受惠是极好的。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://unow.nottingham.ac.uk/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://&lt;wbr&gt;&lt;/wbr&gt;unow.nottingham.ac.u&lt;wbr&gt;&lt;/wbr&gt;k/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
31. 剑桥大学播客 ：剑桥大学是世界首要的学府之一。因此其丰&lt;wbr&gt;&lt;/wbr&gt;富的播客产品信息提供给世界各地的人们，这&lt;wbr&gt;&lt;/wbr&gt;当然是一件好事。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://mediaplayer.group.cam.ac.uk/main/Podcasts.html&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://medi&lt;wbr&gt;&lt;/wbr&gt;aplayer.group.cam.ac&lt;wbr&gt;&lt;/wbr&gt;.uk/main/Podcasts.ht&lt;wbr&gt;&lt;/wbr&gt;ml&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
国际部分&lt;br /&gt;
32. 东京大学 ：是日本的一流大学之一，他不断加入了开放&lt;wbr&gt;&lt;/wbr&gt;课件的学时。东京大学提供网上举办的讲座，&lt;wbr&gt;&lt;/wbr&gt;内容从商业到心理学。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.u-tokyo.ac.jp/category/eng_courselist&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://oc&lt;wbr&gt;&lt;/wbr&gt;w.u-tokyo.ac.jp/cate&lt;wbr&gt;&lt;/wbr&gt;gory/eng_courselist&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
33. 南部昆士兰大学 ：这项倍受关注的澳大利亚大学提供了免费课&lt;wbr&gt;&lt;/wbr&gt;程，包括学科、技术、一般科学等等。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.usq.edu.au/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;ht&lt;wbr&gt;&lt;/wbr&gt;tp://ocw.usq.edu.au/&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
34. 哥伦比亚国立大学 ：虽然这个网站是在西班牙，但它仍然具有很&lt;wbr&gt;&lt;/wbr&gt;大的大量信息可提供。你可能需要有人为您翻&lt;wbr&gt;&lt;/wbr&gt;译。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.virtual.unal.edu.co/unvPortal/course/CoursesViewer.do?reqCode=viewOfFacultys&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://www.virtua&lt;wbr&gt;&lt;/wbr&gt;l.unal.edu.co/unvPor&lt;wbr&gt;&lt;/wbr&gt;tal/course/CoursesVi&lt;wbr&gt;&lt;/wbr&gt;ewer.do?reqCode=view&lt;wbr&gt;&lt;/wbr&gt;OfFacultys&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
35. 香港大学建筑学课程 ：另一个进入我们国际名单的是香港大学。课&lt;wbr&gt;&lt;/wbr&gt;程提供完全是集中在建筑，这绝对是一个单一&lt;wbr&gt;&lt;/wbr&gt;的最佳去处，以及自由，有关该领域的信息。&lt;br /&gt;
（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.arch.hku.hk/~cmhui/teach/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://www.arch.hk&lt;wbr&gt;&lt;/wbr&gt;u.hk/~cmhui/teach/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
36. 联合国大学 ：你可能从未听说过这个学校，但它的开放式&lt;wbr&gt;&lt;/wbr&gt;课件产品是一个传奇。所涉及的问题包括：一&lt;wbr&gt;&lt;/wbr&gt;些电子政务，和生物多样性。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.ocw.unu.edu/ocw/Courses_listing&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http:/&lt;wbr&gt;&lt;/wbr&gt;/www.ocw.unu.edu/ocw&lt;wbr&gt;&lt;/wbr&gt;/Courses_listing&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
纯粹在网上的&lt;br /&gt;
37. 维基大学 ：维基是一个具有广泛影响的项目，旨在提供&lt;wbr&gt;&lt;/wbr&gt;一个开放式课件信息过多向全世界的人。这种&lt;wbr&gt;&lt;/wbr&gt;开放课件几乎涵盖每一个可以想象到的话题，&lt;wbr&gt;&lt;/wbr&gt;并在不断增长。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://en.wikiversity.org/wiki/Wikiversity:Main_Page&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://en.wi&lt;wbr&gt;&lt;/wbr&gt;kiversity.org/wiki/W&lt;wbr&gt;&lt;/wbr&gt;ikiversity:Main_Page&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
38. 公开大学 ：这所大学的唯一目的是给在线学生提供免费&lt;wbr&gt;&lt;/wbr&gt;的信息和学习材料。考虑到这一点，人很高兴&lt;wbr&gt;&lt;/wbr&gt;地得知自己的进度，并通过论坛的形式独立研&lt;wbr&gt;&lt;/wbr&gt;究小组。&lt;br /&gt;
（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://openlearn.open.ac.uk/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://openlearn.o&lt;wbr&gt;&lt;/wbr&gt;pen.ac.uk/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
39. 西部州长大学 ：在人文科科学领域西部州长大学是重要的在&lt;wbr&gt;&lt;/wbr&gt;线课程设置。文科教育的价值仍然显着，因此&lt;wbr&gt;&lt;/wbr&gt;利用这些课程提供的优势是一个很好的决定。&lt;br /&gt;
（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.wgu.edu/courselist&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw.wgu.edu&lt;wbr&gt;&lt;/wbr&gt;/courselist&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
40. 特朗普大学 ：如果你对了解企业和企业家更感兴趣，那么&lt;wbr&gt;&lt;/wbr&gt;这的课件为您提供完美的集合。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.trumpuniversity.com/entrepreneurship/index.cfm&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http:&lt;wbr&gt;&lt;/wbr&gt;//www.trumpuniversit&lt;wbr&gt;&lt;/wbr&gt;y.com/entrepreneursh&lt;wbr&gt;&lt;/wbr&gt;ip/index.cfm&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
41. 卡普兰诺学院 ：虽然这个学院没有得到很好的外部环境和已&lt;wbr&gt;&lt;/wbr&gt;知的开放式课件，但仍是对感兴趣的人具有在&lt;wbr&gt;&lt;/wbr&gt;学习无需支付传统的费用更的信息神奇商店。&lt;br /&gt;
（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.capcollege.bc.ca/courselist&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw.capcoll&lt;wbr&gt;&lt;/wbr&gt;ege.bc.ca/courselist&lt;wbr&gt;&lt;/wbr&gt;&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
42. 新闻大学 ：如果你对在报刊或一般写作兴趣，那么由这&lt;wbr&gt;&lt;/wbr&gt;所大学提供的开放课件产品是值得一试。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.newsu.org/courses&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;h&lt;wbr&gt;&lt;/wbr&gt;ttp://www.newsu.org/&lt;wbr&gt;&lt;/wbr&gt;courses&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
43. 电子杂志大学 ：电子杂志大学的重点是提供人员的自由，而&lt;wbr&gt;&lt;/wbr&gt;且容易理解有关书面资料。如果你对聚合发行&lt;wbr&gt;&lt;/wbr&gt;感兴趣，那这是一个奇妙的资源。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.ezineuniversity.com/courses/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http&lt;wbr&gt;&lt;/wbr&gt;://www.ezineuniversi&lt;wbr&gt;&lt;/wbr&gt;ty.com/courses/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
不太为人所知，同样是有益的&lt;br /&gt;
44. 代尔夫特理工大学 ：尽管这所大学并不被众人所知，但在此列出&lt;wbr&gt;&lt;/wbr&gt;，在技术主题的课件产品，希望了解从设计到&lt;wbr&gt;&lt;/wbr&gt;编程的人都更出色。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.tudelft.nl/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw&lt;wbr&gt;&lt;/wbr&gt;.tudelft.nl/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
45. 韦伯州立大学 ：如果你在学习英语、健康、汽车机械，那么&lt;wbr&gt;&lt;/wbr&gt;对由华盛顿州立大学提供的这些美妙的部分课&lt;wbr&gt;&lt;/wbr&gt;程会更感兴趣。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.weber.edu/courselist&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw.w&lt;wbr&gt;&lt;/wbr&gt;eber.edu/courselist&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
46. 蒙特雷国际研究所的技术和教育 ：加利福尼亚州蒙特雷是睛好的，…….。 完全不知道讲的是啥意思～（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.archive.org/details/ap_courses&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://&lt;wbr&gt;&lt;/wbr&gt;www.archive.org/deta&lt;wbr&gt;&lt;/wbr&gt;ils/ap_courses&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
47. 职训局大学 ：职业训练局大学有一个关于技术课程的优秀&lt;wbr&gt;&lt;/wbr&gt;产品。具体来说有计算机软件的培训和基本编&lt;wbr&gt;&lt;/wbr&gt;程的人适合刚刚开始进入高科技空间的人。（&lt;wbr&gt;&lt;/wbr&gt;&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.vtc.com/index.php&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://www.vtc.com/i&lt;wbr&gt;&lt;/wbr&gt;ndex.php&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
48. 伯克利音乐学院 ：对于那些在音乐上有兴趣的人，伯克利有一&lt;wbr&gt;&lt;/wbr&gt;个自由的，可以帮助您学习如何演奏乐器，将&lt;wbr&gt;&lt;/wbr&gt;有大量资源发挥你的才能或改善你的才能。（&lt;wbr&gt;&lt;/wbr&gt;&lt;a class=&quot;ot-anchor&quot; href=&quot;http://www.berkleeshares.com/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://www.berkleesh&lt;wbr&gt;&lt;/wbr&gt;ares.com/&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
49. 西肯塔基大学 ：WKU有各种各样免费的不同的学术论题的&lt;wbr&gt;&lt;/wbr&gt;播客。当您在旅途中你可以听感兴趣的历史和&lt;wbr&gt;&lt;/wbr&gt;数学讲座。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://blog.wku.edu/podcasts&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://blog.wk&lt;wbr&gt;&lt;/wbr&gt;u.edu/podcasts&lt;/a&gt;）&lt;br /&gt;
&lt;br /&gt;
50. 会德丰学院 ： 这个学院是相当小和不知名的，但是它的资源&lt;wbr&gt;&lt;/wbr&gt;是独一无二的。它的开放式课件目录包括了使&lt;wbr&gt;&lt;/wbr&gt;用大量的信息很多。（&lt;a class=&quot;ot-anchor&quot; href=&quot;http://ocw.wheelock.edu/&quot; style=&quot;color: #0000cc; vertical-align: baseline;&quot;&gt;http://ocw&lt;wbr&gt;&lt;/wbr&gt;.wheelock.edu/&lt;/a&gt;）&amp;nbsp;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/6477281259849994015/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/6477281259849994015?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/6477281259849994015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/6477281259849994015'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/06/50zt.html' title='世界50所知名大学提供开放课程(ZT)'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-8496416914571054462</id><published>2010-06-03T18:09:00.000+08:00</published><updated>2010-06-03T18:09:07.177+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nosql"/><title type='text'>Kyoto Cabinet</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #111111; font-family: &#39;Times New Roman&#39;; font-size: medium;&quot;&gt;&lt;div style=&quot;line-height: 22px; margin-bottom: 0.8ex; margin-left: 0ex; margin-right: 0ex; margin-top: 0.8ex; text-indent: 1.4ex;&quot;&gt;Kyoto Cabinet is a library of routines for managing a database.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;line-height: 22px; margin-bottom: 0.8ex; margin-left: 0ex; margin-right: 0ex; margin-top: 0.8ex; text-indent: 1.4ex;&quot;&gt;It&#39;s a key/value sql store. Every key and value is serial bytes with variable length. Both binary data and character string can be used as a key and a value. Each key must be unique within a database.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;line-height: 22px; margin-bottom: 0.8ex; margin-left: 0ex; margin-right: 0ex; margin-top: 0.8ex; text-indent: 1.4ex;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;There is neither concept of data tables nor data types. Records are organized in hash table or B+ tree.&lt;/li&gt;
&lt;li&gt;Kyoto Cabinet runs very fast&lt;/li&gt;
&lt;/ul&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;For example, elapsed time to store one million records is 0.9 seconds for hash database, and 1.1 seconds for B+ tree database.&lt;br /&gt;
&lt;div style=&quot;line-height: 22px; margin-bottom: 0.8ex; margin-left: 0ex; margin-right: 0ex; margin-top: 0.8ex; text-indent: 1.4ex;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Moreover, the size of database of Kyoto Cabinet is very small.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style=&quot;line-height: 22px; margin-bottom: 0.8ex; margin-left: 0ex; margin-right: 0ex; margin-top: 0.8ex; text-indent: 1.4ex;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;For example, overhead for a record is 16 bytes for hash database, and 4 bytes for B+ tree database. Furthermore, scalability of Kyoto Cabinet is great. The database size can be up to 8EB (9.22e18 bytes).&lt;/div&gt;&lt;div style=&quot;line-height: 22px; margin-bottom: 0.8ex; margin-left: 0ex; margin-right: 0ex; margin-top: 0.8ex; text-indent: 1.4ex;&quot;&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Kyoto Cabinet is written in the C++ language, and provided as API of C++, C, Java, Python, Ruby, and Perl.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Kyoto Cabinet is a free software licensed under the GNU General Public License.&lt;/li&gt;
&lt;/ul&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/8496416914571054462/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/8496416914571054462?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8496416914571054462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8496416914571054462'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/06/kyoto-cabinet.html' title='Kyoto Cabinet'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-6635368334381446450</id><published>2010-03-31T13:52:00.002+08:00</published><updated>2010-03-31T17:36:35.410+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="license"/><title type='text'>开源界的 5 大开源许可协议</title><content type='html'>&lt;div style=&quot;background-color: #c3d9ff; font-size: 1px !important; line-height: 0px !important; margin: 0px 2px; padding-top: 1px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #c3d9ff; font-size: 1px !important; line-height: 0px !important; margin: 0px 1px; padding-top: 1px;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #c3d9ff; font-size: 1px !important; line-height: 0px !important; margin: 0px 2px; padding-top: 1px;&quot;&gt;&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: sans-serif; font-size: 24px; font-weight: bold; line-height: normal;&quot;&gt;&lt;a href=&quot;http://www.javaeye.com/news/15424&quot;&gt;开源界的 5 大开源许可协议&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: sans-serif; margin: 0px 10px; overflow: auto; width: 100%;&quot;&gt;&lt;h2 style=&quot;margin: 0.25em 0 0 0;&quot;&gt;&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 0.5em;&quot;&gt;via &lt;a class=&quot;f&quot; href=&quot;http://www.javaeye.com/&quot;&gt;JavaEye新闻频道&lt;/a&gt;  on 3/30/10&lt;/div&gt;&lt;br /&gt;
越来越多的开发者与设计者希望将自己的产品开源，以便其他人可以在他们的代码基础上做更多事，开源社区也因此充满生机。在我们所能想到的应用领域，都有开源软件存在（象 WordPress，Drupal 这些开源CMS）。然而很多人对开源许可并不了解，本文介绍开源领域常用的几种许可协议以及它们之间的区别。&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/massimobarbieri/2162544547/&quot;&gt;&lt;img alt=&quot;Opensourceubuntu in A Short Guide To Open-Source And Similar  Licenses&quot; height=&quot;333&quot; src=&quot;http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/03/opensourceubuntu.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h3&gt;什么是许可协议？&lt;/h3&gt;什么是许可，当你为你的产品签发许可，你是在出让自己的权利，不过，你仍然拥有版权和专利（如果申请了的话），许可的目的是，向使用你产品的人提供一定的权限。&lt;br /&gt;
不管产品是免费向公众分发，还是出售，制定一份许可协议非常有用，否则，对于前者，你相当于放弃了自己所有的权利，任何人都没有义务表明你的原始作者身份，对于后者，你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。&lt;br /&gt;
而&lt;a href=&quot;http://en.wikipedia.org/wiki/Open-source_license&quot;&gt;开源许可协议&lt;/a&gt;使这些事情变得简单，开发者很容易向一个项目贡献自己的代码，它还可以保护你原始作者的身份，使你至少获得认可，开源许可协议还可以阻止其它人将某个产品据为己有。以下是开源界的 5 大许可协议。&lt;br /&gt;
&lt;h3&gt;GNU GPL&lt;/h3&gt;&lt;a href=&quot;http://www.opensource.org/licenses/gpl-2.0.php&quot;&gt;GNU General Public Licence&lt;/a&gt; (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利，同时为使用者提供了足够的复制，分发，修改的权利：&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;strong&gt;可自由复制&lt;/strong&gt;&lt;br /&gt;
你可以将软件复制到你的电脑，你客户的电脑，或者任何地方。复制份数没有任何限制。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;可自由分发&lt;/strong&gt;&lt;br /&gt;
在你的网站提供下载，拷贝到U盘送人，或者将源代码打印出来从窗户扔出去（环保起见，请别这样做）。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;可以用来盈利&lt;/strong&gt;&lt;br /&gt;
你可以在分发软件的时候收费，但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议，以便让他们知道，他们可以从别的渠道免费得到这份软件，以及你收费的理由。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;可自由修改&lt;/strong&gt;&lt;br /&gt;
如果你想添加或删除某个功能，没问题，如果你想在别的项目中使用部分代码，也没问题，唯一的要求是，使用了这段代码的项目也必须使用 GPL 协议。&lt;/li&gt;
&lt;/ul&gt;需要注意的是，分发的时候，需要明确提供源代码和二进制文件，另外，用于某些程序的某些协议有一些问题和限制，你可以看一下 &lt;a href=&quot;http://www.twitter.com/PierreJoye&quot;&gt;@PierreJoye&lt;/a&gt; 写的 &lt;a href=&quot;http://www.softwarefreedom.org/resources/2008/compliance-guide.html&quot;&gt;Practical Guide to GPL Compliance&lt;/a&gt; 一文。使用 GPL 协议，你必须在源代码代码中包含相应信息，以及协议本身。&lt;br /&gt;
&lt;h4&gt;GNU LGPL&lt;/h4&gt;GNU 还有另外一种协议，叫做 LGPL （&lt;a href=&quot;http://www.opensource.org/licenses/lgpl-2.1.php&quot;&gt;Lesser General Public Licence&lt;/a&gt;），它对产品所保留的权利比 GPL 少，总的来说，LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为 GPL 要求，使用了 GPL 代码的产品必须也使用 GPL 协议，开发者不允许将 GPL 代码用于商业产品。LGPL 绕过了这一限制。&lt;br /&gt;
&lt;h3&gt;BSD&lt;/h3&gt;BSD 在软件分发方面的限制比别的开源协议（如 GNU GPL）要少。该协议有多种版本，最主要的版本有两个，新 BSD 协议与简单 BSD 协议，这两种协议经过修正，都和 GPL 兼容，并为开源组织所认可。&lt;br /&gt;
新 BSD 协议（3条款协议）在软件分发方面，除需要包含一份版权提示和免责声明之外，没有任何限制。另外，该协议还禁止拿开发者的名义为衍生产品背书，但简单 BSD 协议删除了这一条款。&lt;br /&gt;
&lt;h3&gt;MIT&lt;/h3&gt;&lt;a href=&quot;http://www.opensource.org/licenses/mit-license.php&quot;&gt;MIT 协议&lt;/a&gt;可能是几大开源协议中最宽松的一个，核心条款是：&lt;br /&gt;
该软件及其相关文档对所有人免费，可以任意处置，包括使用，复制，修改，合并，发表，分发，再授权，或者销售。唯一的限制是，软件中必须包含上述版权和许可提示。&lt;br /&gt;
这意味着：&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;你可以自由使用，复制，修改，可以用于自己的项目。&lt;/li&gt;
&lt;li&gt;可以免费分发或用来盈利。&lt;/li&gt;
&lt;li&gt;唯一的限制是必须包含许可声明。&lt;/li&gt;
&lt;/ul&gt;MIT 协议是所有开源许可中最宽松的一个，除了必须包含许可声明外，再无任何限制。&lt;br /&gt;
&lt;h3&gt;Apache&lt;/h3&gt;Apache 协议 2.0 和别的开源协议相比，除了为用户提供版权许可之外，还有专利许可，对于那些涉及专利内容的开发者而言，该协议最适合（&lt;a href=&quot;http://www.howstuffworks.com/question492.htm&quot;&gt;这里有一篇文章阐述这个问题&lt;/a&gt;）。&lt;br /&gt;
Apache 协议还有以下需要说明的地方:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;strong&gt;永久权利&lt;/strong&gt;&lt;br /&gt;
一旦被授权，永久拥有。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;全球范围的权利&lt;/strong&gt;&lt;br /&gt;
在一个国家获得授权，适用于所有国家。假如你在美国，许可是从印度授权的，也没有问题。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;授权免费，且无版税&lt;/strong&gt;&lt;br /&gt;
前期，后期均无任何费用。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;授权无排他性&lt;/strong&gt;&lt;br /&gt;
任何人都可以获得授权&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;授权不可撤消&lt;/strong&gt;&lt;br /&gt;
一旦获得授权，没有任何人可以取消。比如，你基于该产品代码开发了衍生产品，你不用担心会在某一天被禁止使用该代码。&lt;/li&gt;
&lt;/ul&gt;分发代码方面包含一些要求，主要是，要在声明中对参与开发的人给予认可并包含一份许可协议原文。&lt;br /&gt;
&lt;h3&gt;Creative Commons&lt;/h3&gt;Creative Commons (CC) 并非严格意义上的开源许可，它主要用于设计。Creative Commons 有多种协议，每种都提供了相应授权模式，CC 协议主要包含 4 种基本形式：&lt;br /&gt;
&lt;ul&gt;&lt;li&gt; &lt;strong&gt;署名权&lt;/strong&gt;&lt;br /&gt;
必须为原始作者署名，然后才可以修改，分发，复制。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;保持一致&lt;/strong&gt;&lt;br /&gt;
作品同样可以在 CC 协议基础上修改，分发，复制。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;非商业&lt;/strong&gt;&lt;br /&gt;
作品可以被修改，分发，复制，但不能用于商业用途。但商业的定义有些模糊，比如，有的人认为非商业用途指的是不能销售，有的认为是甚至不能放在有广告的网站，也有人认为非商业的意思是非盈利。&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;不能衍生新作品&lt;/strong&gt;&lt;br /&gt;
你可以复制，分发，但不能修改，也不能以此为基础创作自己的作品。&lt;/li&gt;
&lt;/ul&gt;这些许可形式可以结合起来用，其中最严厉的组合是&quot;署名，非商用，不能衍生新作品&quot;，意味着，你可以分享作品，但不能改动或以此盈利，而且必须为原作者署名。在这种许可模式下，原始作者对作品还拥有完全的控制权，而最宽松的组合是&quot;署名&quot;，意味着，只要为原始作者署名了，就可以自由处置。&lt;br /&gt;
&lt;h3&gt;延伸资源&lt;/h3&gt;&lt;ul&gt;&lt;li&gt; &lt;a href=&quot;http://creativecommons.org/about/licenses&quot;&gt;Creative Commons Licenses&lt;/a&gt;&lt;br /&gt;
Creative Common 许可的官方条款与解释&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://www.opensource.org/licenses/alphabetical&quot;&gt;Open Source Initiative&lt;/a&gt;&lt;br /&gt;
包含各种开源协议资源&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://developer.kde.org/documentation/licensing/licenses_summary.html&quot;&gt;Open Source Licenses Comparison&lt;/a&gt;&lt;br /&gt;
对主流开源协议的对比&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://openacs.org/about/licensing/open-source-licensing&quot;&gt;Understanding Open-Source Licensing&lt;/a&gt;&lt;br /&gt;
开源协议详解&lt;/li&gt;
&lt;li&gt; &lt;a href=&quot;http://blogs.zdnet.com/Burnette/?p=130&quot;&gt;HOW TO: Pick an Open Source License&lt;/a&gt;&lt;br /&gt;
如何选择不同的开源协议&lt;/li&gt;
&lt;/ul&gt;本文国际来源：Smashing Magazine &lt;a href=&quot;http://www.smashingmagazine.com/2010/03/24/a-short-guide-to-open-source-and-similar-licenses/&quot;&gt;A Short Guide To Open-Source And Similar Licenses&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
中文编译来源：&lt;a href=&quot;http://www.comsharp.com/&quot;&gt;&lt;strong&gt;锐商企业CMS&lt;/strong&gt; 网站内容管理系统&lt;/a&gt; 官方网站&lt;/div&gt;&lt;div style=&quot;background-color: #c3d9ff; padding: 4px;&quot;&gt;&lt;ul style=&quot;font-family: sans-serif;&quot;&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #c3d9ff; font-size: 1px !important; line-height: 0px !important; margin: 0px 1px; padding-top: 1px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #c3d9ff; font-size: 1px !important; line-height: 0px !important; margin: 0px 2px; padding-top: 1px;&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/6635368334381446450/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/6635368334381446450?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/6635368334381446450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/6635368334381446450'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/03/5.html' title='开源界的 5 大开源许可协议'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-5602029833855967600</id><published>2010-03-30T11:55:00.001+08:00</published><updated>2010-03-30T11:55:36.854+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="sqlserver"/><title type='text'>sqlserver 数据库表及日志太大的问题</title><content type='html'>&lt;div id=&quot;PublishedByWebStory-[5]1_BD72D6A128A14D2CBF06CA8EF446FD08_55489BF80F274B3094FD822DFD669BE1&quot;&gt;&lt;p&gt;1. 问题：数据库日志文件太大&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; 解决步骤：&lt;br/&gt; 　　1) 打开查询分析器，输入命令&lt;br/&gt; 　　&amp;nbsp;DUMP TRANSACTION 数据库名 WITH NO_LOG&amp;nbsp;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) 打开企业管理器--选择数据库名--任务--收缩--文件--类型选择日志--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。&lt;/p&gt; &lt;p&gt;2. 问题:事件数据库太大&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; 方法:&lt;br/&gt; &amp;nbsp;&amp;nbsp; 1) 打开企业管理器--选择数据库名--备份-选择备份集过期时间及备份位置&lt;/p&gt; &lt;p&gt;注：收缩数据库及备份均可以在维护计划中设置定期处理&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/5602029833855967600/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/5602029833855967600?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/5602029833855967600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/5602029833855967600'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/03/sqlserver.html' title='sqlserver 数据库表及日志太大的问题'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-6421108275774886402</id><published>2010-03-01T13:03:00.002+08:00</published><updated>2010-03-02T10:16:39.472+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>ubuntu 9.10 安装 vidalia 后，启动后无法正常使用代理</title><content type='html'>&lt;div id=&quot;PublishedByWebStory-[5]1_9505ED5A232D4AF298DBE8C7EA2B4B71_35F33F5FE3BF460698E58F4A53B5646C&quot;&gt;&lt;p&gt;启 vidalia 时，privoxy 没有正常起动，原因是 privoxy 找不到 config 文件&lt;/p&gt; &lt;p&gt;将 /etc/privoxy/config 拷贝到 /home/zjf/下即可&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;注：今天重启系统后，发现还是不行。必须每次重启 vidalia 后，还得重启 privoxy 才行&lt;br /&gt;&lt;br /&gt;执行 /etc/init.d/privoxy start</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/6421108275774886402/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/6421108275774886402?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/6421108275774886402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/6421108275774886402'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/03/ubuntu-910-vidalia.html' title='ubuntu 9.10 安装 vidalia 后，启动后无法正常使用代理'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-1516368503977931762</id><published>2010-01-14T11:53:00.001+08:00</published><updated>2010-01-14T11:53:27.371+08:00</updated><title type='text'>connect timeout &amp;amp; connect refused</title><content type='html'>&lt;div id=&quot;PublishedByWebStory-[5]1_25EC6B7DBE57426CBC2687874462897D_F689E949C9764716BB9456F7FBE4E784&quot;&gt;&lt;p&gt;1. connection timeout occurs:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the IP address for the requested server is successfully found,&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connection establishment packets are dispatched to the IP address,&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the destination address deliberately ignores or does not receive them&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; your packets are just being lost.. either the system or some intermediate system is firewalled. follow CMA&#39;s&amp;nbsp;&amp;nbsp; advice.. if you cant connect using telnet, a browser or some other app, its a network problem, not a java one&lt;/p&gt; &lt;p&gt;&lt;br/&gt; 2. Connection Timeouts (assuming a local network and several client machines) typically result from&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a) some kind of firewall on the way that simply eats the packets without telling the sender things like &quot;No Route to host&quot;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b) packet loss due to wrong network configuration or line overload&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c) too many requests overloading the server&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d) a small number of simultaneously available threads/processes on the server which leads to all of them being taken. This happens especially with requests that take a long time to run and may combine with c).&lt;/p&gt; &lt;p&gt;2. similar to connection timeout is Connection Refused:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; but in this case the destination system is actually sending packets back saying &quot;go away, there is no service running on the port you are trying to connect to&quot;&lt;br/&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/1516368503977931762/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/1516368503977931762?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/1516368503977931762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/1516368503977931762'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2010/01/connect-timeout-connect-refused.html' title='connect timeout &amp;amp; connect refused'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-2677743807863416852</id><published>2009-12-02T11:00:00.001+08:00</published><updated>2009-12-02T11:00:38.832+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="opera"/><title type='text'>opera url transformition</title><content type='html'>package opm;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.InputStream;&lt;br /&gt;import java.io.OutputStream;&lt;br /&gt;import java.net.HttpURLConnection;&lt;br /&gt;import java.net.URL;&lt;br /&gt;&lt;br /&gt;import javax.servlet.ServletInputStream;&lt;br /&gt;import javax.servlet.ServletOutputStream;&lt;br /&gt;import javax.servlet.http.*;&lt;br /&gt;&lt;br /&gt;@SuppressWarnings(&quot;serial&quot;)&lt;br /&gt;public class OpmServlet extends HttpServlet {&lt;br /&gt;&lt;br /&gt;	public void doGet(HttpServletRequest req, HttpServletResponse resp)&lt;br /&gt;			throws IOException {&lt;br /&gt;		if (req.getParameter(&quot;test&quot;) == null) {&lt;br /&gt;			resp.sendRedirect(&quot;http://www.google.com/&quot;);&lt;br /&gt;		} else {&lt;br /&gt;			resp.getWriter().printf(&quot;Hello Opera Mini Server! Fuck GFW!&quot;);&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	public void doPost(HttpServletRequest req, HttpServletResponse resp)&lt;br /&gt;			throws IOException {&lt;br /&gt;		try {&lt;br /&gt;			URL url = new URL(&quot;http://server4.operamini.com&quot;);&lt;br /&gt;			HttpURLConnection connection = (HttpURLConnection) url&lt;br /&gt;					.openConnection();&lt;br /&gt;			connection.setDoOutput(true);&lt;br /&gt;			connection.setRequestMethod(&quot;POST&quot;);&lt;br /&gt;			connection.setRequestProperty(&quot;Content-Type&quot;, &quot;application/xml&quot;);&lt;br /&gt;			connection.setRequestProperty(&quot;User-Agent&quot;, &quot;Java/1.6.0_15&quot;);&lt;br /&gt;			connection.setRequestProperty(&quot;Connection&quot;, &quot;keep-alive&quot;);&lt;br /&gt;			int length;&lt;br /&gt;			byte[] buffer = new byte[1024];&lt;br /&gt;			ServletInputStream req_in = req.getInputStream();&lt;br /&gt;			OutputStream con_out = connection.getOutputStream();&lt;br /&gt;			while ((length = req_in.read(buffer)) != -1) {&lt;br /&gt;				con_out.write(buffer, 0, length);&lt;br /&gt;			}&lt;br /&gt;			con_out.flush();&lt;br /&gt;			con_out.close();&lt;br /&gt;			req_in.close();&lt;br /&gt;			if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {&lt;br /&gt;				resp.setHeader(&quot;Content-Type&quot;, &quot;application/octet-stream&quot;);&lt;br /&gt;				resp.setHeader(&quot;Cache-Control&quot;, &quot;priavte, no-cache&quot;);&lt;br /&gt;				InputStream con_in = connection.getInputStream();&lt;br /&gt;				ServletOutputStream resp_out = resp.getOutputStream();&lt;br /&gt;				while ((length = con_in.read(buffer)) != -1) {&lt;br /&gt;					resp_out.write(buffer, 0, length);&lt;br /&gt;				}&lt;br /&gt;			} else {&lt;br /&gt;				resp.sendError(connection.getResponseCode());&lt;br /&gt;			}&lt;br /&gt;		} catch (Exception e) {&lt;br /&gt;			resp.sendError(HttpURLConnection.HTTP_UNAVAILABLE);&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/2677743807863416852/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/2677743807863416852?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/2677743807863416852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/2677743807863416852'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2009/12/opera-url-transformition.html' title='opera url transformition'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-7148125137377331597</id><published>2009-10-29T16:39:00.002+08:00</published><updated>2009-10-29T16:56:59.227+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="guice"/><category scheme="http://www.blogger.com/atom/ns#" term="ioc"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>IOC 的手工实现与Guice 实现</title><content type='html'>IOC 的手工实现与Guice 实现&lt;br /&gt;&lt;br /&gt;1. 服务类与实现类&lt;br /&gt;public interface Service {&lt;br /&gt;  void go();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class ServiceImpl implements Service {&lt;br /&gt;  public void go() {&lt;br /&gt;    logger.info(&quot;ServiceImpl.class&quot;);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class MockService implements Service {&lt;br /&gt;  public void go() {&lt;br /&gt;   logger.info(&quot;MockService.class&quot;);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;2. 客户类,调用服务类,最原始的实现&lt;br /&gt;public class Client {&lt;br /&gt;  public void test(boolean args){&lt;br /&gt;    Service service = null;&lt;br /&gt;    if(args){&lt;br /&gt;      service = new ServiceImpl();&lt;br /&gt;      service.go();&lt;br /&gt;    }else{&lt;br /&gt;      service = new MockService();&lt;br /&gt;      service.go();&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;3. 测试类,但使用了工厂模式&lt;br /&gt;public class ServiceFactory {&lt;br /&gt;  private ServiceFactory() {}&lt;br /&gt;  private static Service instance = new ServiceImpl();&lt;br /&gt;&lt;br /&gt;  public static Service getInstance() {&lt;br /&gt;    return instance;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  public static void setInstance(Service service) {&lt;br /&gt;    instance = service;&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;4. 使用了工厂模式后,测试类的实现&lt;br /&gt;public class Client {&lt;br /&gt;&lt;br /&gt;  public void test(){&lt;br /&gt;    Service service = ServiceFactory.getInstance();&lt;br /&gt;    service.go();&lt;br /&gt;    &lt;br /&gt;    //跟上面有什么不同?&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;5. 对客户类进行测试的类&lt;br /&gt;public void testClient() {&lt;br /&gt;  Service previous = ServiceFactory.getInstance();&lt;br /&gt;  try {&lt;br /&gt;    Client client = new Client();&lt;br /&gt;    client.test();&lt;br /&gt;    //what be printed?&lt;br /&gt;  &lt;br /&gt;    final MockService mock = new MockService();&lt;br /&gt;    ServiceFactory.setInstance(mock);&lt;br /&gt;    client = new Client();&lt;br /&gt;    client.test();&lt;br /&gt;    //what be printed?&lt;br /&gt;  }&lt;br /&gt;  finally {&lt;br /&gt;    //must exists?&lt;br /&gt;    ServiceFactory.setInstance(previous);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;6. 手工方式注入客户类,以及对客户类的测试&lt;br /&gt;public class Client {&lt;br /&gt;  private final Service service;&lt;br /&gt;&lt;br /&gt;  public Client(Service service) {&lt;br /&gt;    this.service = service;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void test() {&lt;br /&gt;    service.go();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void testClient() {&lt;br /&gt;  MockService mock = new MockService();&lt;br /&gt;  Client client = new Client(mock);&lt;br /&gt;  client.test();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;7. Guice 的实现方式&lt;br /&gt;   首先实现 Module,将服务类与要注入的测试类绑定&lt;br /&gt;public class MyModule implements Module {&lt;br /&gt;  public void configure(Binder binder) {&lt;br /&gt;    binder.bind(Service.class)&lt;br /&gt;      .to(ServiceImpl.class)&lt;br /&gt;      .in(Scopes.SINGLETON);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//客户类中需要表明哪里需要注入&lt;br /&gt;public class Client {&lt;br /&gt;  private final Service service;&lt;br /&gt;&lt;br /&gt;  @Inject&lt;br /&gt;  public Client(Service service) {&lt;br /&gt;    this.service = service;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void test() {&lt;br /&gt;    service.go();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;8. 测试类&lt;br /&gt;public void testClient() {&lt;br /&gt;  Injector injector = Guice.createInjector(new MyModule());&lt;br /&gt;  Client client= injector.getInstance(Client.class);&lt;br /&gt;  client.test();&lt;br /&gt;}</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/7148125137377331597/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/7148125137377331597?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/7148125137377331597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/7148125137377331597'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2009/10/ioc-guice.html' title='IOC 的手工实现与Guice 实现'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-6226422673719439939</id><published>2009-10-28T17:48:00.000+08:00</published><updated>2009-10-28T17:50:41.411+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="guice"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><title type='text'>Guice 使用</title><content type='html'>本文有两个例子,一个是对接口类的实现类的使用者注入,另一个是对接口实现类直接注入.&lt;br /&gt;&lt;br /&gt;1. 创建接口与实现&lt;br /&gt;    public interface MyService {&lt;br /&gt;     void sayHello();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public class MyServiceImpl implements MyService {&lt;br /&gt;     @Override&lt;br /&gt;     public void sayHello() {&lt;br /&gt;      System.out.println(&quot;hello,Guice.&quot;);&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;2. 测试实现类&lt;br /&gt;   定义测试类,表明这个类是需要注入的&lt;br /&gt;    import com.google.inject.Inject;&lt;br /&gt;    public class MyServiceTest {&lt;br /&gt;     @Inject&lt;br /&gt;     MyService service;&lt;br /&gt;&lt;br /&gt;     public void sayHello(){&lt;br /&gt;      System.out.println(&quot;MyServiceTest...&quot;);&lt;br /&gt;      service.sayHello();&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;3. 定义注射规则&lt;br /&gt;   实现 Module,表明运行时将哪个实现类赋给接口&lt;br /&gt;    import com.google.inject.Binder;&lt;br /&gt;    import com.google.inject.Module;&lt;br /&gt;    public class MyServiceModule implements Module {&lt;br /&gt;     @Override&lt;br /&gt;     public void configure(Binder binder) {&lt;br /&gt;      binder.bind(MyService.class).to(MyServiceImpl.class).in(Scopes.SINGLETON);&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;4. 测试&lt;br /&gt;   Guice 根据 Module 创建注射者&lt;br /&gt;   从注射者获取接口类实例&lt;br /&gt;   调用接口方法&lt;br /&gt;&lt;br /&gt;    import junit.framework.TestCase;&lt;br /&gt;    import com.google.inject.Guice;&lt;br /&gt;    import com.google.inject.Injector;&lt;br /&gt;    &lt;br /&gt;    public class TestMyService extends TestCase{&lt;br /&gt;     public void testS(){&lt;br /&gt;      Injector inj = Guice.createInjector(new MyServiceModule());&lt;br /&gt;      MyServiceTest m = inj.getInstance(MyServiceTest.class);&lt;br /&gt;      m.sayHello();&lt;br /&gt;      /**&lt;br /&gt;       * 也可以换成以下代码&lt;br /&gt;       * Injector inj = Guice.createInjector(new MyServiceModule()); &lt;br /&gt;       * MyServiceTest m = new MyServiceTest();&lt;br /&gt; &lt;br /&gt;       * inj.injectMembers(m);&lt;br /&gt;         * m.sayHello();&lt;br /&gt;         */ &lt;br /&gt;       &lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;   &lt;br /&gt;-------------------------------------------&lt;br /&gt;下面这个例子跟上面相似,只是没有定义测试类(接口实现类使用者,直接对接口实现类进行注入)   &lt;br /&gt;   &lt;br /&gt;1. 创建接口与实现&lt;br /&gt;   同上&lt;br /&gt;   &lt;br /&gt;2. 测试实现类&lt;br /&gt;   定义测试类,表明这个类是需要注入的&lt;br /&gt;   此步省略,没有定义测试类,后面直接注射实现类&lt;br /&gt;&lt;br /&gt;3. 定义注射规则&lt;br /&gt;   实现 Module,表明运行时将哪个实现类赋给接口&lt;br /&gt;   同上&lt;br /&gt;&lt;br /&gt;4. 测试&lt;br /&gt;   Guice 根据 Module 创建注射者&lt;br /&gt;   从注射者获取接口类实例&lt;br /&gt;   调用接口方法&lt;br /&gt;    import junit.framework.TestCase;&lt;br /&gt;    import com.google.inject.Guice;&lt;br /&gt;    import com.google.inject.Injector;&lt;br /&gt;    &lt;br /&gt;    public class TestMyService extends TestCase{&lt;br /&gt;     public void testS(){&lt;br /&gt;      Injector inj = Guice.createInjector(new MyServiceModule());&lt;br /&gt;      //此类与上面的例子不同之处,只是传入的参数不同,此处传入的是实现类&lt;br /&gt;      MyServiceTest m = inj.getInstance(MyServiceImpl.class);&lt;br /&gt;      m.sayHello();&lt;br /&gt;     }&lt;br /&gt;    }</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/6226422673719439939/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/6226422673719439939?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/6226422673719439939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/6226422673719439939'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2009/10/guice.html' title='Guice 使用'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-9024323504844008888</id><published>2009-07-17T16:10:00.000+08:00</published><updated>2009-07-17T16:12:14.505+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java performance"/><title type='text'>Java Performance Tuning and Troubleshooting</title><content type='html'>1. Jconsole&lt;br /&gt;   两种监控方法：&lt;br /&gt;   1) Local Monitor : 在 JDK6 以前，需要增加 java 启动参数 com.sun.management.jmxremote&lt;br /&gt;            ex: Java -Dcom.sun.management.jmxremote -jar test.jar&lt;br /&gt;   2) Remote Monitor: java -Dcom.sun.management.jmxremote.port=portNum  -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false&lt;br /&gt;     注意：如果不用 ssl 访问，应该增加参数 -Dcom.sun.management.jmxremote.ssl=false,刚开始我没有加这个参数的，远程连接总是不成功&lt;br /&gt;   &lt;br /&gt;   3) 此外，远程监控还可以通过用户名/口令进行安全设置，也可以通过 SSL 来加密访问，以增加安全性&lt;br /&gt;    &lt;br /&gt;   Jconsole 可以做什么？&lt;br /&gt;      &lt;br /&gt;   1) 主要是总体观察，以大体确定问题在哪里。比如内存是否持续增长（内存泄漏？），CPU时间是否持续升高？&lt;br /&gt;   &lt;br /&gt;   2) 检测线程是否有死锁，以及线程的堆栈查看。只有线程发生死锁的时候才会检测出来，而不是检测所有可能发生死锁的代码&lt;br /&gt;   &lt;br /&gt;   3) 可以查看 load 的类是否持续在增加&lt;br /&gt;   &lt;br /&gt;   4) VM 参数&lt;br /&gt;&lt;br /&gt;2. JPS&lt;br /&gt;  类似于 unix 的 ps,列出所有进程，这个是列出所有 Java 进程&lt;br /&gt;  -q &lt;br /&gt;  Suppress the output of the class name, JAR file name, and arguments passed to the main method, producing only a list of local VM identifiers. &lt;br /&gt;  -m &lt;br /&gt;  Output the arguments passed to the main method. The output may be null for embedded JVMs. &lt;br /&gt;  -l &lt;br /&gt;  Output the full package name for the application&#39;s main class or the full path name to the application&#39;s JAR file. &lt;br /&gt;  -v &lt;br /&gt;  Output the arguments passed to the JVM. &lt;br /&gt;  -V &lt;br /&gt;  Output the arguments passed to the JVM through the flags file (the .hotspotrc file or the file specified by the -XX:Flags=&lt;filename&gt; argument). &lt;br /&gt;  -Joption &lt;br /&gt;  Pass option to the java launcher called by jps. For example, -J-Xms48m sets the startup memory to 48 megabytes. It is a common convention for -J to pass options to the underlying VM executing applications written in Java. &lt;br /&gt;  &lt;br /&gt;3. Jstat - Java VM stastics Monitor Tool&lt;br /&gt;    The jstat tool displays performance statistics for an instrumented HotSpot Java virtual machine (JVM). &lt;br /&gt;&lt;br /&gt;  -statOption &lt;br /&gt;  Determines the statistics information that jstat displays. The following table lists the available options.  Use the -options general option to display the list of options for a particular platform installation.&lt;br /&gt;&lt;br /&gt;  Option Displays... &lt;br /&gt;   class Statistics on the behavior of the class loader. &lt;br /&gt;   compiler Statistics of the behavior of the HotSpot Just-in-Time compiler. &lt;br /&gt;   gc Statistics of the behavior of the garbage collected heap. &lt;br /&gt;   gccapacity Statistics of the capacities of the generations and their corresponding spaces. &lt;br /&gt;   gccause Summary of garbage collection statistics (same as -gcutil), with the cause of the last and current (if applicable) garbage collection events. &lt;br /&gt;   gcnew Statistics of the behavior of the new generation. &lt;br /&gt;   gcnewcapacity Statistics of the sizes of the new generations and its corresponding spaces. &lt;br /&gt;   gcold Statistics of the behavior of the old and permanent generations. &lt;br /&gt;   gcoldcapacity Statistics of the sizes of the old generation. &lt;br /&gt;   gcpermcapacity Statistics of the sizes of the permanent generation. &lt;br /&gt;   gcutil Summary of garbage collection statistics. &lt;br /&gt;   printcompilation HotSpot compilation method statistics. &lt;br /&gt;   &lt;br /&gt;   -h n &lt;br /&gt;   Display a column header every n samples (output rows), where n is a positive integer. Default value is 0, which displays the column header above the first row of data. &lt;br /&gt;   -t n &lt;br /&gt;   Display a timestamp column as the first column of output. The timestamp is the the time since the start time of the target JVM. &lt;br /&gt;   -JjavaOption &lt;br /&gt;   Pass javaOption to the java application launcher. For example, -J-Xms48m sets the startup memory to 48 megabytes. For a complete list of options, see java - the Java application launcher &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;  举例: &lt;br /&gt;  &gt;jps&lt;br /&gt;   3672&lt;br /&gt;   2884 PluginMain&lt;br /&gt;   2648 LauncherServlet&lt;br /&gt;   2312&lt;br /&gt;   5800 Jps&lt;br /&gt;&lt;br /&gt;  &gt;jstat -compiler 2648 5s 3&lt;br /&gt;&lt;br /&gt;4. Jinfo&lt;br /&gt;  显示 Java 配置信息&lt;br /&gt;  prints Java configuration information for a given Java process or core file or a remote debug server. Configuration information includes Java System properties and Java virtual machine command line flags. &lt;br /&gt;  注意：目前 不支持 linux/Windows&lt;br /&gt;  &lt;br /&gt;5. Jstack&lt;br /&gt;  Statck Trace&lt;br /&gt;  jstack prints Java stack traces of Java threads for a given Java process or core file or a remote debug server&lt;br /&gt;  ex. jstatck -l 2648&lt;br /&gt;  &lt;br /&gt;6. HPROF - a heap/cpu Profilling Tool &lt;br /&gt;  hprof usage: java -agentlib:hprof=[help]|[&lt;option&gt;=&lt;value&gt;, ...]&lt;br /&gt;  &lt;br /&gt;  Option Name and Value  Description                    Default&lt;br /&gt;  ---------------------  -----------                    -------&lt;br /&gt;  heap=dump|sites|all    heap profiling                 all&lt;br /&gt;  cpu=samples|times|old  CPU usage                      off&lt;br /&gt;  monitor=y|n            monitor contention             n&lt;br /&gt;  format=a|b             text(txt) or binary output     a&lt;br /&gt;  file=&lt;file&gt;            write data to file             java.hprof[{.txt}]&lt;br /&gt;  net=&lt;host&gt;:&lt;port&gt;      send data over a socket        off&lt;br /&gt;  depth=&lt;size&gt;           stack trace depth              4&lt;br /&gt;  interval=&lt;ms&gt;          sample interval in ms          10&lt;br /&gt;  cutoff=&lt;value&gt;         output cutoff point            0.0001&lt;br /&gt;  lineno=y|n             line number in traces?         y&lt;br /&gt;  thread=y|n             thread in traces?              n&lt;br /&gt;  doe=y|n                dump on exit?                  y&lt;br /&gt;  msa=y|n                Solaris micro state accounting n&lt;br /&gt;  force=y|n              force output to &lt;file&gt;         y&lt;br /&gt;  verbose=y|n            print messages about dumps     y&lt;br /&gt;  &lt;br /&gt;  Obsolete Options&lt;br /&gt;  ----------------&lt;br /&gt;  gc_okay=y|n&lt;br /&gt;  &lt;br /&gt;  Examples&lt;br /&gt;  --------&lt;br /&gt;    - Get sample cpu information every 20 millisec, with a stack depth of 3:&lt;br /&gt;        java -agentlib:hprof=cpu=samples,interval=20,depth=3 classname&lt;br /&gt;    - Get heap usage information based on the allocation sites:&lt;br /&gt;        java -agentlib:hprof=heap=sites classname&lt;br /&gt;        &lt;br /&gt;7. JMap - Memory Map&lt;br /&gt;  jmap prints shared object memory maps or heap memory details of a given process or core file or a remote debug server&lt;br /&gt;&lt;br /&gt;  Options :&lt;br /&gt;  histo[:live] &lt;br /&gt;  Prints a histogram of the heap. For each Java class, number of objects, memory size in bytes, and fully qualified class names are printed. VM internal class names are printed with &#39;*&#39; prefix. If the live suboption is specified, only live objects are counted. &lt;br /&gt;&lt;br /&gt;  -dump:[live,]format=b,file=&lt;filename&gt; &lt;br /&gt;  Dumps the Java heap in hprof binary format to filename. The live suboption is optional. If specified, only the live objects in the heap are dumped. To browse the heap dump, you can use jhat (Java Heap Analysis Tool) to read the generated file. &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  ex. jmap -histo 1234&lt;br /&gt;    jmap -dump:file=c:\test.bin&lt;br /&gt;  &lt;br /&gt;8. JHat - Java Heap Analysis Tool&lt;br /&gt;  The jhat command parses a java heap dump file and launches a webserver. jhat enables you to browse heap dumps using your favorite webbrowser. jhat supports pre-designed queries (such as &#39;show all instances of a known class &quot;Foo&quot;&#39;) as well as OQL (Object Query Language) - a SQL-like query language to query heap dumps. Help on OQL is available from the OQL help page shown by jhat. With the default port, OQL help is available at http://localhost:7000/oqlhelp/&lt;br /&gt;&lt;br /&gt;  There are several ways to generate a java heap dump: &lt;br /&gt;  &lt;br /&gt;  Use jmap -dump option to obtain a heap dump at runtime; &lt;br /&gt;  Use jconsole option to obtain a heap dump via HotSpotDiagnosticMXBean at runtime; &lt;br /&gt;  Heap dump will be generated when OutOfMemoryError is thrown by specifying -XX:+HeapDumpOnOutOfMemoryError VM option; &lt;br /&gt;  Use hprof. &lt;br /&gt;  &lt;br /&gt;  OQL 例子：&lt;br /&gt;   select all Strings of length 100 or more &lt;br /&gt;   &lt;br /&gt;       select s from java.lang.String s where s.count &gt;= 100&lt;br /&gt;&lt;br /&gt;   select all int arrays of length 256 or more &lt;br /&gt;   &lt;br /&gt;       select a from [I a where a.length &gt;= 256&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;   show content of Strings that match a regular expression &lt;br /&gt;   &lt;br /&gt;       select s.value.toString() from java.lang.String s &lt;br /&gt;       where /java/(s.value.toString())&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;   show path value of all File objects &lt;br /&gt;   &lt;br /&gt;       select file.path.value.toString() from java.io.File file&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;   show names of all ClassLoader classes &lt;br /&gt;   &lt;br /&gt;       select classof(cl).name &lt;br /&gt;       from instanceof java.lang.ClassLoader cl&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;   show instances of the Class identified by given id string &lt;br /&gt;   &lt;br /&gt;       select o from instanceof 0xd404b198 o&lt;br /&gt;   &lt;br /&gt;   &lt;br /&gt;   Note that 0xd404b198 is id of a Class (in a session). This is found by looking at the id shown in that class&#39;s page. &lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;9. VisualVm - AllInOne&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;参考文档：&lt;br /&gt;  http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html  &lt;br /&gt;  http://java.sun.com/javase/6/docs/technotes/tools/share/jps.html&lt;br /&gt;  http://java.sun.com/javase/6/docs/technotes/tools/share/jstat.html &lt;br /&gt;  http://java.sun.com/javase/6/docs/technotes/tools/share/jstack.html &lt;br /&gt;  http://java.sun.com/javase/6/docs/technotes/tools/share/jinfo.html &lt;br /&gt;  http://java.sun.com/developer/technicalArticles/Programming/HPROF.html     &lt;br /&gt;  http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html&lt;br /&gt;  http://java.sun.com/javase/6/docs/technotes/tools/share/jhat.html</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/9024323504844008888/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/9024323504844008888?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/9024323504844008888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/9024323504844008888'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2009/07/java-performance-tuning-and.html' title='Java Performance Tuning and Troubleshooting'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-1762747929324145131</id><published>2009-05-27T18:03:00.000+08:00</published><updated>2009-05-27T18:08:59.432+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="yahoo placemaker js"/><title type='text'>yahoo placemaker</title><content type='html'>试了一下 yahoo placemaker,挺好玩的,可以分析语句,生成跟语句中的地点相关的信息&lt;br /&gt;&lt;br /&gt;  &lt; form action=&quot;http://wherein.yahooapis.com/v1/document&quot; method=&quot;post&quot; &gt;&lt;br /&gt;    &lt; input type=hidden name=&#39;documentContent&#39; value=&#39;I+live+in+New+York+City&#39; / &gt; &lt;br /&gt;    &lt; input type=hidden name=&#39;documentType&#39; value=&#39;text/plain&#39; / &gt; &lt;br /&gt;    &lt; input type=hidden name=&#39;appid&#39; value=&#39;ySOQPlDV34Ea0e1nhi3ZyHD1nooglUzN01Vu4lrco757yLobAR3CYWq_uoTljNRdcw--&#39; / &gt; &lt;br /&gt;    &lt; input type=hidden name=&#39;outputType&#39; value=&#39;rss&#39; / &gt;&lt;br /&gt;    &lt; input type=&#39;submit&#39; value=&#39;click&#39; / &gt;&lt;br /&gt;  &lt; /form &gt;&lt;br /&gt;&lt;br /&gt;此外,还有一个第三方的js 库 jsplacemaker ,对 placemaker 进行了封装,返回结构化的数据</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/1762747929324145131/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/1762747929324145131?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/1762747929324145131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/1762747929324145131'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2009/05/yahoo-placemaker.html' title='yahoo placemaker'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-8484963183792375418</id><published>2009-05-27T16:34:00.001+08:00</published><updated>2009-05-27T16:51:20.146+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="applet"/><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="ssl"/><title type='text'>签名jar 或生成证书</title><content type='html'>keytool -genkey -dname &quot;cn=BeanSoft Studio, ou=Java Software, o=BeanSoft Studio, c=China&quot; -alias beansoft -keypass beansoft -storepass beansoft -validity 365 -keystore .\beansoft&lt;br /&gt;&lt;br /&gt;keytool -export -alias secfox  -file d:\test\mycerts.cer -storepass secfox&lt;br /&gt;&lt;br /&gt;1. 生成 keystore(keytool -genkey)&lt;br /&gt;   ex.  keytool -genkey -dname &quot;cn=BeanSoft Studio, ou=Java Software, o=BeanSoft Studio, c=China&quot; -alias beansoft -keypass beansoft -storepass beansoft -validity 365 -keystore .\beansoft&lt;br /&gt;   &lt;br /&gt;   注:必须指定 alias ,否则无法对 jar 进行签名&lt;br /&gt;&lt;br /&gt;2. 导出证书(给 applet 签名不需要这一步,如果时需要提供 ssl 访问时,则需要导出证书,放入 web 服务器)&lt;br /&gt;   ex. keytool -export -keystore .\beansoft -storepass beansoft -file beansoft.cer -alias beansoft&lt;br /&gt;   &lt;br /&gt;3. 对 jar 进行签名&lt;br /&gt;   ex. jarsigner -verbose -keystore .\beansoft applets.jar beansoft&lt;br /&gt;   &lt;br /&gt;这样,签名后的 jar 就可以直接作为 applet 使用了</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/8484963183792375418/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/8484963183792375418?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8484963183792375418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/8484963183792375418'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2009/05/jar.html' title='签名jar 或生成证书'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2449104011512846871.post-3264716340707304105</id><published>2009-02-27T17:25:00.002+08:00</published><updated>2009-02-27T17:30:28.041+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="setup"/><title type='text'>安装盘制作工具调研报告</title><content type='html'>注：这是 2004 年写的一篇老文了，现在我们用 innosetup ,用起来也比较顺手，主要是通过脚本，但可以先生成一个样例脚本，然后再在上面修改，以适合自己的需求。&lt;br /&gt;&lt;br /&gt;目的&lt;br /&gt;在目前可以获得的资料的基础上，对目前市场上的各种安装工具进行比较，并最终选出一个或两个适合我们的产品使用的安装工具。&lt;br /&gt;&lt;br /&gt;参考的工具有：InstallAnywhere V6(Zero G), InstallShield X (InstallShield) , EasySetUp V3.04(Bersoft Inc.),小颖安装程序制作专家V5&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;概述&lt;br /&gt;目前市场占有率最高的产品应该是InstallShield,但InstallShield提供的例子或模板更多的是针对Windows平台的，不过最新的版本X也提供了对别的平台的支持。Install Anywhere 由于它本身是用Java开发的，它提供的例子主要是基于Java的，另外由于众所周知的Java程序的跨平台性，所以它声称可以支持各种平台。在Java应用的安装程序方面，Install Anywhere应该是市场占有率最高的产品。另外，还有一些别的产品，比如Bersoft公司的EasySetup，非常简洁易用，但功能似乎又不够强。以上这些都是国外的产品，国内的产品应该也有一些，但目前我看到的一些都是大同小异，所以只列出一个“小颖安装制作程序”。&lt;br /&gt;&lt;br /&gt;另外，大多数安装软件都有一些共有的功能，比如最基本的文件拷贝功能，反安装程序的生成等等，对于需求简单的安装制作，这些基本功能就可以满足。&lt;br /&gt;&lt;br /&gt;各种产品的功能特点&lt;br /&gt;1、InstallShield&lt;br /&gt;InstallShield是著名的专业的安装程序制作软件，使用非常广泛。它包含Windows Installer(MSI)支持、可视化对话框编辑器（Visual Dialog Editor）、源代码控制等。还可以与Visual Studio .NET结合、可以创建补丁、支持修改Autoexec.bat, config.sys、注册表、加入产品的注册码，自动生成反安装程序等，功能非常强大。&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;主要功能列表如下：&lt;br /&gt;&lt;br /&gt;¨         平台相关的功能&lt;br /&gt;&lt;br /&gt;运行时：Windows 95/98/NT 4/2000/Win ME/XP/AIX&lt;br /&gt;&lt;br /&gt;设计时：Windows 98/NT4/2000/Me/XP&lt;br /&gt;&lt;br /&gt;支持所有Palm OSR 装置及所有Windows Mobile 装置&lt;br /&gt;&lt;br /&gt;支持64位应用&lt;br /&gt;&lt;br /&gt;支持多种语言 &lt;br /&gt;&lt;br /&gt;¨         自定义功能&lt;br /&gt;&lt;br /&gt;全新视觉对话框编辑器(Visual Dialog Editor) &lt;br /&gt;&lt;br /&gt;可以增加新对话框或自定义对话框中的文本与位图&lt;br /&gt;&lt;br /&gt;轻松建立自定义事件(Custom Events)&lt;br /&gt;&lt;br /&gt;可以通过InstallScript加入自定义的逻辑&lt;br /&gt;&lt;br /&gt;提供VB Script 及JScript Code 编辑器&lt;br /&gt;&lt;br /&gt;¨         其它&lt;br /&gt;&lt;br /&gt;支持JVM Handling，XML及Apache Ant Target处理&lt;br /&gt;&lt;br /&gt;提供一系列安装选择 &lt;br /&gt;&lt;br /&gt;整合的Add-In 管理员&lt;br /&gt;&lt;br /&gt;完整的Windows安装支持(MSI)&lt;br /&gt;&lt;br /&gt;在执行之前会检验及安装前提(Installation Prerequisites)&lt;br /&gt;&lt;br /&gt;自动查找与包含安装依赖的文件。&lt;br /&gt;&lt;br /&gt;轻松建立Patches及更新&lt;br /&gt;&lt;br /&gt;可以创建不同发布版本间的更新版本&lt;br /&gt;&lt;br /&gt;自动修复、按需安装&lt;br /&gt;&lt;br /&gt;支持SQL 服务器   - &lt;br /&gt;&lt;br /&gt;支持IIS Web 服务器，可以容易地发布与安装Web程序&lt;br /&gt;&lt;br /&gt;可以创建.net安装程序与分发.net框架。&lt;br /&gt;&lt;br /&gt;在同一系统上安装一个应用的多份拷贝&lt;br /&gt;&lt;br /&gt;可视化的注册表\shell编辑&lt;br /&gt;&lt;br /&gt;可以运行外部程序(e.g.,EXE,DLL,VBScript)&lt;br /&gt;&lt;br /&gt;内置包含第三方的技术模块&lt;br /&gt;&lt;br /&gt;动态文件链接&lt;br /&gt;&lt;br /&gt;可以创建可重用的组件&lt;br /&gt;&lt;br /&gt;提供命令行编译工具&lt;br /&gt;&lt;br /&gt;可以发布自解压程序及自定义卸载程序&lt;br /&gt;&lt;br /&gt;可以通过Internet分发&lt;br /&gt;&lt;br /&gt;2、Install Anywhere&lt;br /&gt;InstallAnywhere由Zero G公司开发。Zero G在多平台软件部署和维护领域是佼佼者。其代表产品有InstallAnywhere和PowerUpdate。InstallAnywhere使用简单、高效，并在提供跨平台支持的同时支持29种语言（包括简体中文）赢得了很多客户的青睐。&lt;br /&gt;&lt;br /&gt;InstallAnywhere是多平台软件配置的业界领先者，数以千万计的软件采用它来安装和配置。软件的创新者，例如Adobe, Borland, HP, i2, IBM, Intel, 朗讯, 北电, Sun和TIBCO，这些业界的领先者采用InstallAnywhere来实现快速、强大、直观的安装。事实上，由&lt;软件杂志&gt;评选出的全球25大软件厂商都使用了InstallAnywhere。&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;主要功能列表如下：&lt;br /&gt;&lt;br /&gt;¨         平台相关:&lt;br /&gt;&lt;br /&gt;已经扩大了对于Red Hat Enterprise Server, SUSE Linux, z/OS 和 OS/390. 平台的支持。其他支持的平台还有Windows Server 2003 以至整个Windows 家族, Solaris, AIX, HP-UX, Linux, NetWare, Mac OS X, IRIX, Tru64, FreeBSD，和所有其他JAVA能够运行的平台。 InstallAnywhere与所有的JAVA版本兼容，包括Sun、IBM、Apple和其他公司最新发布的JAVA执行器。&lt;br /&gt;&lt;br /&gt;¨         针对平台的功能 &lt;br /&gt;&lt;br /&gt;Windows 注册：检索、设置并检验现有的主键和数据&lt;br /&gt;&lt;br /&gt;Windows 快捷键：Mac aliases (with Dock support), UNIX 链接&lt;br /&gt;&lt;br /&gt;Windows 服务：安装、启动、停止、暂停任何服务&lt;br /&gt;&lt;br /&gt;本地化的Windows, Mac OS, UNIX 使用效果&lt;br /&gt;&lt;br /&gt;设置Windows和UNIX环境下的系统环境变量&lt;br /&gt;&lt;br /&gt;集成 Linux RPM&lt;br /&gt;&lt;br /&gt;Windows 卸载工具支持注册表的重新运行以及新增/移除程序&lt;br /&gt;&lt;br /&gt;自动修改起始的脚本文件和 UNIX daemons文件&lt;br /&gt;&lt;br /&gt;¨         针对 Java 应用程序配置的功能&lt;br /&gt;&lt;br /&gt;自动安装Java VM。 &lt;br /&gt;&lt;br /&gt;完全支持所有的Java1.3版本，甚至包括Java 1.4 和J2EE 1.3 甚至J2SE1.5&lt;br /&gt;&lt;br /&gt;安装EJBs, servlets, JSPs, JAR, WAR, 和EAR archives&lt;br /&gt;&lt;br /&gt;创建 LaunchAnywhere (Zero G的Java应用程序发布技术) ，终端用户只需双击 Windows或Mac上的图标，或是在Solaris和Linux上输入简单的命令，就可以启动Java 程序。&lt;br /&gt;&lt;br /&gt;Java Classpath 和主类的自动检测。 &lt;br /&gt;&lt;br /&gt;完全支持所有的Java运行选项。 &lt;br /&gt;&lt;br /&gt;针对服务器、 Web Services 和J2EE 配置的功能 &lt;br /&gt;&lt;br /&gt;¨         内置功能&lt;br /&gt;&lt;br /&gt;内置安装步骤列表，突出安装的每一阶段&lt;br /&gt;&lt;br /&gt;内置安装器面板：介绍、要点、协议、选择安装文件、用户输入、密码、序列号、功能集、部件、安装摘要，等等。&lt;br /&gt;&lt;br /&gt;内置的命令行控制台的交互以匹配图象化的面板&lt;br /&gt;&lt;br /&gt;内置动作：创建快捷键、释放归档文件、使用搜索和替代功能修改文本文件，安装并控制Windows Services、设置注册表录入、设置环境变量执行命令和脚本，等等。&lt;br /&gt;&lt;br /&gt;内置规则：检验平台、对比变量、验证用户输入、检验位置、确认文件/文件夹的属性&lt;br /&gt;&lt;br /&gt;¨         扩展性&lt;br /&gt;&lt;br /&gt;用户可使用Java和基于JavaBeans的开放API，扩展设计自定义的动作、面板和控制台&lt;br /&gt;&lt;br /&gt;插入行为(Pluggable Actions)：可定制用户自己设计器中调色板的编码行为和面板&lt;br /&gt;&lt;br /&gt;项目模板(Project Templates)：创建能够多次统一重复使用的项目模板。&lt;br /&gt;&lt;br /&gt;¨         其它主要功能&lt;br /&gt;&lt;br /&gt;通用的安装、配置和客户化功能&lt;br /&gt;&lt;br /&gt;可以在终端用户的系统上，将文件和文件夹安装于任何位置&lt;br /&gt;&lt;br /&gt;在Read Me, License Agreement和其他的安装面板中完全支持HTML格式的文本。&lt;br /&gt;&lt;br /&gt;完全的鼠标拖动支持，上下文右击菜单可以快速地获取常用的功能。 &lt;br /&gt;&lt;br /&gt;使用GIF, JPEG, 和PNG文件，并借助透明和动作功能完全客户化图形、公告牌、主题和品牌的显示。&lt;br /&gt;&lt;br /&gt;合并模块技术可以方便地创建&quot;整套&quot;安装程序，子安装程序和模板。可以在你的开发团队甚至是整个企业内部，将安装程序的可重用性由一个项目传递到另一个项目也可源自于第三方的供应商。 &lt;br /&gt;&lt;br /&gt;卸载工具可以实现部分或全部的卸载功能 &lt;br /&gt;&lt;br /&gt;使用高级的搜索和替代功能修改服务器属性文件。&lt;br /&gt;&lt;br /&gt;Magic Folders技术：为桌面、系统、主页、性能、字体以及其他位置提供的专用文件夹 &lt;br /&gt;&lt;br /&gt;Media Spanning: 媒体分割：在多张CD 或者 DVD中创建安装包，此功能对软件套件和集成项目同样有效&lt;br /&gt;&lt;br /&gt;Localized Designer: 本地化设计器：法国，德国和日本的开发人员能够使用本地的语言创建安装包，更容易创建29种语言的安装包。&lt;br /&gt;&lt;br /&gt;Customizable Uninstaller: 定制反安装包：在凡安装程序中，增加自己的面板，控制台和行为。 完美的完成多控件套件。&lt;br /&gt;&lt;br /&gt;Native Package Installations: 本地包安装：作为InstallAnywhere安装程序的一部分，轻松的安装Linux RPMs，Solaris包和HP-UX库文件。&lt;br /&gt;&lt;br /&gt;针对数据库注册选项的用户自定义面板 &lt;br /&gt;&lt;br /&gt;创建过程集成(Build Process Integration)：使用Apache Ant来控制InstallAnywhere的创建过程&lt;br /&gt;&lt;br /&gt;¨         无论应用程序是用Java,  C++,  PERL,  C#编写的，还是用EJB  或.NET  Web  services配置的，InstallAnywhere都可以将你的桌面、企业或多层Web  services软件配置到你的平台上。&lt;br /&gt;&lt;br /&gt;¨         InstallAnywhere是软件管理周期执行的第一步。 当与PowerUpdate连用时，Zero G会发布、更新解决方案，InstallAnywhere可以在任何平台上发布、安装、配置你的应用程序和软件升级程序。&lt;br /&gt;&lt;br /&gt;3、EasySetup&lt;br /&gt;EasySetup是一个简单的windows安装程序制作工具，它不仅能用来为应用创建安装程序，也可以为各种文件创建安装程序，比如word、Excel、PowerPoint、Acrobat或HTML文档。&lt;br /&gt;&lt;br /&gt;主要特点如下：&lt;br /&gt;&lt;br /&gt;¨         支持32位的操作系统 Windows 95/98/2000/Me/XP/NT4&lt;br /&gt;&lt;br /&gt;¨         支持多语言但不支持多字节的语言，也就是说不支持中文。(不过我简单测试了一下，还是支持的)&lt;br /&gt;&lt;br /&gt;¨         可以对安装过程中的对话框中的内容进行修改&lt;br /&gt;&lt;br /&gt;¨         它制作的安装与卸载程序体积较小而且快&lt;br /&gt;&lt;br /&gt;¨         支持Exe安装文件的创建，也支持简单的在线发布&lt;br /&gt;&lt;br /&gt;¨         可以比较文件版本信息、替换正在使用的文件，注册DLL/OCX控件，安装字体&lt;br /&gt;&lt;br /&gt;¨         可以创建快捷方式&lt;br /&gt;&lt;br /&gt;¨         可以创建口令保护&lt;br /&gt;&lt;br /&gt;4、小颖安装制作程序&lt;br /&gt;这是国产的一款个人制作的软件，界面很简单，可以完成一些简单的但常用的功能。主要包括以下功能：&lt;br /&gt;&lt;br /&gt;¨         开发环境及运行环境只能是在windows上&lt;br /&gt;&lt;br /&gt;¨         支持简体中文、繁体中文、英文&lt;br /&gt;&lt;br /&gt;¨         可以设置安装程序的安装路径&lt;br /&gt;&lt;br /&gt;¨         可以更改图标及界面显示内容&lt;br /&gt;&lt;br /&gt;¨         可以在安装运行前运行别的程序&lt;br /&gt;&lt;br /&gt;¨         可以显示协议、注册信息等对话框&lt;br /&gt;&lt;br /&gt;¨         包含了程序附加组件(BDE、MDAC2.6、Microsoft SQL Server Client)&lt;br /&gt;&lt;br /&gt;¨         可以操作注册表、安装字体&lt;br /&gt;&lt;br /&gt;¨         可以制作卸载程序&lt;br /&gt;&lt;br /&gt;结论及建议&lt;br /&gt;       综上所述,EasySetup与小颖安装程序都太过简单，不太适宜用于比较复杂的大型应用程序的安装。InstallShield功能强劲，但自定义的使用相对比较繁琐，必须重新学习并使用其自带的InstallScript脚本语言。而且，其一贯对跨平台的支持不是太令人满意，对Java的支持也是其较弱的部分。&lt;br /&gt;&lt;br /&gt;       InstallAnywhere由于其一贯的对跨平台支持良好，而且其本身是用Java开发的，对其进行扩展也是通过通用的JavaBean标准,学习起来也比较容易。所以，对于用Java应用来说，个人觉得使用InstallAnywhere来做安装程序更合适。</content><link rel='replies' type='application/atom+xml' href='http://camelthorn-tech.blogspot.com/feeds/3264716340707304105/comments/default' title='博文评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2449104011512846871/3264716340707304105?isPopup=true' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/3264716340707304105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2449104011512846871/posts/default/3264716340707304105'/><link rel='alternate' type='text/html' href='http://camelthorn-tech.blogspot.com/2009/02/blog-post.html' title='安装盘制作工具调研报告'/><author><name>骆驼刺</name><uri>http://www.blogger.com/profile/00577350258003810760</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='21' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFlWkqvldYSB1Ct9z1gEKHZJvXyGegAt6jiCmTsMiqbrwJTYiM6EWNWHk9HrzzBEqU_A10p1vih7yF_y1rolbUv_pqLoldAlI9b5j_oT5fltks-moli_iBlzbQQ-2Omw/s220/zjf_1.jpg'/></author><thr:total>0</thr:total></entry></feed>