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

<channel>
	<title>Ning's Blog</title>
	<atom:link href="http://www.uniq.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.uniq.cn</link>
	<description>http://www.uniq.cn</description>
	<pubDate>Wed, 30 Sep 2009 09:23:21 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Delete Top</title>
		<link>http://www.uniq.cn/post/122</link>
		<comments>http://www.uniq.cn/post/122#comments</comments>
		<pubDate>Wed, 30 Sep 2009 09:23:21 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://ning.blog.35.cn/?p=122</guid>
		<description><![CDATA[declare @Reqeustid int
set @Requestid = 1500
while(@Requestid &#60; 3000)
begin
delete from ItemRequestImage where  TransactionNumber  in
(select top 2 TransactionNumber from ItemRequestImage where requestid = @Requestid)
and requestid = @Requestid
set @Requestid = @Requestid + 1
end
对1500条数据循环Delete top.
]]></description>
			<content:encoded><![CDATA[<p>declare @Reqeustid int<br />
set @Requestid = 1500<br />
while(@Requestid &lt; 3000)<br />
begin<br />
delete from ItemRequestImage where  TransactionNumber  in<br />
(select top 2 TransactionNumber from ItemRequestImage where requestid = @Requestid)<br />
and requestid = @Requestid<br />
set @Requestid = @Requestid + 1<br />
end</p>
<p>对1500条数据循环Delete top.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/122/feed</wfw:commentRss>
		</item>
		<item>
		<title>XQuery 应用实例</title>
		<link>http://www.uniq.cn/post/120</link>
		<comments>http://www.uniq.cn/post/120#comments</comments>
		<pubDate>Wed, 30 Sep 2009 09:14:42 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://ning.blog.35.cn/?p=120</guid>
		<description><![CDATA[Declare @Count int
SET @Count = 0
WHILE(@Count &#60; 21)
BEGIN
SET @Count = @Count + 1
Update dbo.DataFeedItemDetailSSB_Record
SET message_body.modify
('declare default element namespace "http://soa.newegg.com/SOA/USA/InfrastructureService/V10/PubSubService";
replace value of
(/Publish/Node/DataFeedItemDetailV10/Body/ItemDetailInfoList[1]/ItemDetailInformation[sql:variable("@Count")]/ItemBasicInformation/UPCCode/text())[1]
with
sql:column("DataFeedItemDetailSSB_Record.RowID")*100 + sql:variable("@Count"),
')
WHERE Rowid &#60;= 20
Update dbo.DataFeedItemDetailSSB_Record
SET message_body.modify
('declare default element namespace "http://soa.newegg.com/SOA/USA/InfrastructureService/V10/PubSubService";
replace value of
(/Publish/Node/DataFeedItemDetailV10/Body/ItemDetailInfoList[1]/ItemDetailInformation[sql:variable("@Count")]/ItemStaticInformation/OwnerSKUNumber/text())[1]
with
sql:column("DataFeedItemDetailSSB_Record.RowID")*100 + sql:variable("@Count")
')
WHERE Rowid &#60;= 20
END
更新DataFeedItemDetailSSB_Record表中xml字段中的UPCCode和OwnerSKUNumber，其中UPCCode在一个List中。
]]></description>
			<content:encoded><![CDATA[<p>Declare @Count int</p>
<p>SET @Count = 0</p>
<p>WHILE(@Count &lt; 21)</p>
<p>BEGIN</p>
<p>SET @Count = @Count + 1<br />
Update dbo.DataFeedItemDetailSSB_Record<br />
SET message_body.modify<br />
('declare default element namespace "http://soa.newegg.com/SOA/USA/InfrastructureService/V10/PubSubService";<br />
replace value of<br />
(/Publish/Node/DataFeedItemDetailV10/Body/ItemDetailInfoList[1]/ItemDetailInformation[sql:variable("@Count")]/ItemBasicInformation/UPCCode/text())[1]<br />
with<br />
sql:column("DataFeedItemDetailSSB_Record.RowID")*100 + sql:variable("@Count"),<br />
')<br />
WHERE Rowid &lt;= 20</p>
<p>Update dbo.DataFeedItemDetailSSB_Record<br />
SET message_body.modify<br />
('declare default element namespace "http://soa.newegg.com/SOA/USA/InfrastructureService/V10/PubSubService";<br />
replace value of<br />
(/Publish/Node/DataFeedItemDetailV10/Body/ItemDetailInfoList[1]/ItemDetailInformation[sql:variable("@Count")]/ItemStaticInformation/OwnerSKUNumber/text())[1]<br />
with<br />
sql:column("DataFeedItemDetailSSB_Record.RowID")*100 + sql:variable("@Count")<br />
')<br />
WHERE Rowid &lt;= 20</p>
<p>END</p>
<p>更新DataFeedItemDetailSSB_Record表中xml字段中的UPCCode和OwnerSKUNumber，其中UPCCode在一个List中。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/120/feed</wfw:commentRss>
		</item>
		<item>
		<title>白社会：邀请大家阳光农场去偷东西</title>
		<link>http://www.uniq.cn/post/119</link>
		<comments>http://www.uniq.cn/post/119#comments</comments>
		<pubDate>Thu, 11 Jun 2009 18:00:01 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://ning.blog.35.cn/?p=119</guid>
		<description><![CDATA[白社会是搜狐的SNS，刚刚推出，正在测试，很好玩。
目前，只有邀请才能注册，链接地址如下：
http://bai.sohu.com/user/reg/invite.do?u=144504&#38;type=0&#38;t=1244742447837&#38;s=05528eca7da9b299fa856acbcb4a0291
 
阳光牧场，真心话，说秘密，很好玩！
]]></description>
			<content:encoded><![CDATA[<p>白社会是搜狐的SNS，刚刚推出，正在测试，很好玩。</p>
<p>目前，只有邀请才能注册，链接地址如下：</p>
<p><a href="http://bai.sohu.com/user/reg/invite.do?u=144504&amp;type=0&amp;t=1244742447837&amp;s=05528eca7da9b299fa856acbcb4a0291"><span style="color: #005eac">http://bai.sohu.com/user/reg/invite.do?u=144504&amp;type=0&amp;t=1244742447837&amp;s=05528eca7da9b299fa856acbcb4a0291</span></a></p>
<p> </p>
<p>阳光牧场，真心话，说秘密，很好玩！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/119/feed</wfw:commentRss>
		</item>
		<item>
		<title>CommonTransfer:转换类</title>
		<link>http://www.uniq.cn/post/117</link>
		<comments>http://www.uniq.cn/post/117#comments</comments>
		<pubDate>Fri, 05 Jun 2009 00:46:15 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://ning.blog.35.cn/?p=117</guid>
		<description><![CDATA[因为公司使用WCF开发系统，要做两次转换，所以写了这个通用的转换代码，反射写的，性能较差，有待改进。
比如有个实体类ItemEntity，有个接口类ItemData，完成转换只需如下
ItemData data = CommonTransfer.ToTarget&#60;ItemData,ItemEntity&#62;(entity);
即可，要提供性能可以使用Emit自己写IL代码，这个太复杂不想研究了，还有个方法就是使用.NET 3.5的新特性，表达式树。有时间研究下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Collections;
namespace CommonTransfer
{
    public static class CommonTransfer&#60;TTarget, TSource&#62;
        where TTarget : class, new()
        where TSource : class, new()
    {
        public static TTarget ToTarget(TSource source)
        {
            return Transform(typeof(TTarget), typeof(TSource), source) as TTarget;
        }
        private static object Transform(Type targetType, Type sourceType, object propInfo)
        {
            Object result = targetType.GetConstructor(Type.EmptyTypes).Invoke(null);
            [...]]]></description>
			<content:encoded><![CDATA[<p>因为公司使用WCF开发系统，要做两次转换，所以写了这个通用的转换代码，反射写的，性能较差，有待改进。</p>
<p>比如有个实体类ItemEntity，有个接口类ItemData，完成转换只需如下</p>
<p>ItemData data = CommonTransfer.ToTarget&lt;ItemData,ItemEntity&gt;(entity);</p>
<p>即可，要提供性能可以使用Emit自己写IL代码，这个太复杂不想研究了，还有个方法就是使用.NET 3.5的新特性，表达式树。有时间研究下<span id="more-117"></span></p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using System.Reflection;<br />
using System.Collections;</p>
<p>namespace CommonTransfer<br />
{<br />
    public static class CommonTransfer&lt;TTarget, TSource&gt;<br />
        where TTarget : class, new()<br />
        where TSource : class, new()<br />
    {<br />
        public static TTarget ToTarget(TSource source)<br />
        {<br />
            return Transform(typeof(TTarget), typeof(TSource), source) as TTarget;<br />
        }</p>
<p>        private static object Transform(Type targetType, Type sourceType, object propInfo)<br />
        {<br />
            Object result = targetType.GetConstructor(Type.EmptyTypes).Invoke(null);<br />
            PropertyInfo[] propInfos = targetType.GetProperties();<br />
            PropertyInfo[] sourcePropInfos = sourceType.GetProperties();<br />
            for (int i = 0; i &lt; propInfos.Length; i++)<br />
            {<br />
                PropertyInfo sourceProp = sourcePropInfos.FirstOrDefault(p =&gt; p.Name == propInfos[i].Name);<br />
                if (sourceProp == null)<br />
                {<br />
                    throw new Exception(string.Format("{0} is not exist in source type", propInfos[i].Name));<br />
                }<br />
                object value = sourceProp.GetValue(propInfo, null);<br />
                if (IsCollectionProperty(sourceProp) &amp;&amp; value != null)<br />
                {<br />
                    MethodInfo addMethod = propInfos[i].PropertyType.GetMethod("Add");<br />
                    object temp = null;<br />
                    if (propInfos[i].PropertyType.GetGenericArguments()[0] == typeof(string))<br />
                    {<br />
                        temp = new List&lt;string&gt;();<br />
                        foreach (string str in value as IList)<br />
                        {<br />
                            object[] strArray = { str };<br />
                            addMethod.Invoke(temp, strArray);<br />
                        }<br />
                    }<br />
                    else<br />
                    {<br />
                        temp = propInfos[i].PropertyType.GetConstructor(Type.EmptyTypes).Invoke(null);<br />
                        foreach (var item in value as IList)<br />
                        {<br />
                            if (item != null)<br />
                            {<br />
                                object[] args = { Transform(propInfos[i].PropertyType.GetGenericArguments()[0], item.GetType(), item) };<br />
                                addMethod.Invoke(temp, args);<br />
                            }<br />
                        }<br />
                    }<br />
                    propInfos[i].SetValue(result, temp, null);<br />
                }<br />
                else<br />
                {<br />
                    if (sourceProp != null<br />
                        &amp;&amp; sourceProp.PropertyType.IsClass<br />
                        &amp;&amp; sourceProp.PropertyType != typeof(string)<br />
                        &amp;&amp; value != null)<br />
                    {<br />
                        value = Transform(propInfos[i].PropertyType, sourceProp.PropertyType, value);<br />
                    }<br />
                    else<br />
                    {<br />
                        value = Convert.ChangeType(value, propInfos[i].PropertyType);<br />
                    }<br />
                    propInfos[i].SetValue(result, value, null);<br />
                }</p>
<p>            }<br />
            return result;<br />
        }</p>
<p>        private static bool IsCollectionProperty(PropertyInfo propInfo)<br />
        {<br />
            if (Array.IndexOf(propInfo.PropertyType.GetInterfaces(), typeof(IList)) &gt; -1)<br />
            {<br />
                return true;<br />
            }<br />
            else<br />
            {<br />
                return false;<br />
            }<br />
        }<br />
    }<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/117/feed</wfw:commentRss>
		</item>
		<item>
		<title>WinDbg 命令</title>
		<link>http://www.uniq.cn/post/115</link>
		<comments>http://www.uniq.cn/post/115#comments</comments>
		<pubDate>Thu, 26 Mar 2009 02:13:59 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://www.uniq.cn/post/115</guid>
		<description><![CDATA[Here are the WinDbg / SOS commands I talked about at Code Camp NY.  These are the basic commands to get you going with WinDbg / SOS.
Starting, Attaching, Executing and Exiting




Start -&#62; All Programs -&#62; Debugging Tools for Windows -&#62; WinDbg


F6
attach to process


Ctrl-Break
interrupt debugee


.detach
detach from a process


g
continue debugee execution


q
exit WinDbg




Getting Help



?
help on commands that affect [...]]]></description>
			<content:encoded><![CDATA[<p>Here are the WinDbg / SOS commands I talked about at <a href="http://nyc.codecamp.us/">Code Camp NY</a>.  These are the basic commands to get you going with <a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx">WinDbg / SOS</a>.</p>
<p><strong>Starting, Attaching, Executing and Exiting</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"></td>
<td valign="top">Start -&gt; All Programs -&gt; Debugging Tools for Windows -&gt; WinDbg</td>
</tr>
<tr>
<td valign="top">F6</td>
<td valign="top">attach to process</td>
</tr>
<tr>
<td valign="top">Ctrl-Break</td>
<td valign="top">interrupt debugee</td>
</tr>
<tr>
<td valign="top">.detach</td>
<td valign="top">detach from a process</td>
</tr>
<tr>
<td valign="top">g</td>
<td valign="top">continue debugee execution</td>
</tr>
<tr>
<td valign="top">q</td>
<td valign="top">exit WinDbg</td>
</tr>
</tbody>
</table>
<p><strong></strong></p>
<p><strong><span id="more-115"></span>Getting Help</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">?</td>
<td valign="top">help on commands that affect the debugee</td>
</tr>
<tr>
<td valign="top">.help</td>
<td valign="top">help on commands that affect the debugger</td>
</tr>
<tr>
<td valign="top">.hh <em>command</em></td>
<td valign="top">view the on line help file</td>
</tr>
<tr>
<td valign="top">!help</td>
<td valign="top">help on the extension dll at the top of the chain (e. g., SOS)</td>
</tr>
</tbody>
</table>
<p><strong>Issuing Commands</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="216" valign="top">up arrow, down arrow, enter</td>
<td width="375" valign="top">scroll through command history</td>
</tr>
<tr>
<td valign="top">Right mouse button</td>
<td valign="top">paste into command window</td>
</tr>
</tbody>
</table>
<p><strong>Examining the Unmanaged Environment</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">lmf</td>
<td valign="top">list loaded modules with full path</td>
</tr>
<tr>
<td valign="top">lmt</td>
<td valign="top">list loaded modules with last modified timestamp</td>
</tr>
<tr>
<td valign="top">~</td>
<td valign="top">list unmanaged threads</td>
</tr>
<tr>
<td valign="top">~<em>thread</em> s</td>
<td valign="top">select a thread for thread specific commands</td>
</tr>
<tr>
<td valign="top">!token -n</td>
<td valign="top">view thread permissions</td>
</tr>
<tr>
<td valign="top">k</td>
<td valign="top">view the unmanaged call stack</td>
</tr>
<tr>
<td valign="top">!runaway</td>
<td valign="top">view thread CPU consumption</td>
</tr>
<tr>
<td valign="top">bp</td>
<td width="330" valign="top">set a breakpoint</td>
</tr>
<tr>
<td valign="top">.dump <em>path</em></td>
<td valign="top">dump small memory image</td>
</tr>
<tr>
<td valign="top">.dump /ma <em>path</em></td>
<td valign="top">dump complete memory image</td>
</tr>
</tbody>
</table>
<p><strong>Working with Extension DLLs (e. g., SOS)</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">.chain</td>
<td valign="top">list extensions dlls</td>
</tr>
<tr>
<td valign="top">.load clr10\sos</td>
<td valign="top">load SOS for debugging framework 1.0 / 1.1</td>
</tr>
<tr>
<td valign="top">.unload clr10\sos</td>
<td valign="top">unload SOS</td>
</tr>
<tr>
<td valign="top">.loadby sos mscorwks</td>
<td valign="top">load SOS for debugging framework 2.0</td>
</tr>
</tbody>
</table>
<p><strong>SOS Commands</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">!threads</td>
<td valign="top">view managed threads</td>
</tr>
<tr>
<td valign="top">!clrstack</td>
<td valign="top">view the managed call stack</td>
</tr>
<tr>
<td valign="top">!dumpstack</td>
<td valign="top">view combined unmanaged &amp; managed call stack</td>
</tr>
<tr>
<td valign="top">!clrstack -p</td>
<td valign="top">view function call arguments</td>
</tr>
<tr>
<td valign="top">!clrstack –l</td>
<td valign="top">view stack (local) variables</td>
</tr>
<tr>
<td valign="top">!name2ee <em>module class</em></td>
<td valign="top">view addresses associated with a class or method</td>
</tr>
<tr>
<td valign="top">!dumpmt –md <em>address</em></td>
<td valign="top">view the method table &amp; methods for a class</td>
</tr>
<tr>
<td valign="top">!dumpmd <em>address</em></td>
<td valign="top">view detailed information about a method</td>
</tr>
<tr>
<td valign="top">!do <em>address</em></td>
<td valign="top">view information about an object</td>
</tr>
<tr>
<td valign="top">!dumpheap –stat</td>
<td valign="top">view memory consumption by type</td>
</tr>
<tr>
<td valign="top">!dumpheap –min <em>size</em></td>
<td valign="top">view memory consumption by object when at least <em>size</em></td>
</tr>
<tr>
<td valign="top">!dumpheap –type <em>type</em></td>
<td valign="top">view memory consumption for all objects of type <em>type</em></td>
</tr>
<tr>
<td valign="top">!gcroot <em>address</em></td>
<td valign="top">view which object are holding a reference to <em>address</em></td>
</tr>
<tr>
<td valign="top">!syncblk</td>
<td valign="top">view information about managed locks</td>
</tr>
</tbody>
</table>
<p><strong>SOS 2.0 Commands</strong></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">!bpmd <em>module method</em></td>
<td valign="top">set breakpoint</td>
</tr>
<tr>
<td valign="top">!DumpArray <em>address</em></td>
<td valign="top">view contents of an array</td>
</tr>
<tr>
<td valign="top">!PrintException</td>
<td valign="top">view information about most recent exception</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/115/feed</wfw:commentRss>
		</item>
		<item>
		<title>注册了uniq.mp</title>
		<link>http://www.uniq.cn/post/114</link>
		<comments>http://www.uniq.cn/post/114#comments</comments>
		<pubDate>Sun, 15 Mar 2009 07:21:57 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://ning.blog.35.cn/?p=114</guid>
		<description><![CDATA[Chi.mp 注册了就有了自己的顶级域名，不过只能在这个地方使用。不能像别的域名那样，管理ns。好像很不错，找个喜欢的注册吧。Chi.mp
我的主页，http://uniq.mp/！
]]></description>
			<content:encoded><![CDATA[<p>Chi.mp 注册了就有了自己的顶级域名，不过只能在这个地方使用。不能像别的域名那样，管理ns。好像很不错，找个喜欢的注册吧。<a href="http://www.chi.mp">Chi.mp</a></p>
<p>我的主页，<a href="http://uniq.mp/">http://uniq.mp/</a>！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/114/feed</wfw:commentRss>
		</item>
		<item>
		<title>“走进科学“，有点搞笑（转）</title>
		<link>http://www.uniq.cn/post/112</link>
		<comments>http://www.uniq.cn/post/112#comments</comments>
		<pubDate>Tue, 03 Mar 2009 12:04:04 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://ning.blog.35.cn/?p=112</guid>
		<description><![CDATA[1、某一集说某个村子每天半夜三更都有怪叫声，把全村人吵醒，大家都不敢出去看，战战兢兢地失眠到天亮。采访了一大堆上了岁数的村民，传说这里出没野兽，每天夜里到村子作怪，闹得人心惶惶……音乐配的那叫一个，还分上下两集渲染！到最后竟然说那是村里一个胖子睡觉打呼噜！这胖子是金刚罗汉转世，还是帕瓦罗蒂的私生子？！打个呼噜能把一个村子的人吓醒？！我想砸电视！

　　2、还有一集说是一户人家老是发现自家客厅地上的瓷砖缝里会渗出像血一样的鲜红色液体，弄得到处都是，全村的人都不知道是怎么回事，猜会不会原来这块地是坟地啊什么的，然后又请了N多专家，研究他们家的地理位置地形条件，得出的结论都是依科学不可能发生地下矿物质倒渗这种情况发生……所以，最后的结论就是：液体是这家人家为了出名自己洒上去的！
　　 我“咣垱”！一下倒地！
　　3、还有一期是说，挂了好几年的牛皮鼓忽然自己长出了牛毛！这件事在当地是蛮有名的件事，节目采访了那么多人，研究从厦大弄到了中央，都没有人说出个 所以然来，最后没办法了，硬栽赃人家做鼓的人不专业，毛没有刮干净，当初牛毛没刮干净？我晕。。。这不是怀疑做鼓人的专业水平吗？呵呵！
　　 以这样的结论打发我，到底是看不起我的智商还是编导智商让人看不起！
　　 4、还有一期说峨眉山的一个古寺，地处森林深处，但屋顶上从来没有一片树叶。就这么个事儿，经过漫长，深沉，全方位，多角度的分析，采访了寺中实习的和尚，游客，保安，居士，文物管理局局长，以及他的姑妈的二姐的堂妹的邻居家的一条狗，最后得出结论——是风吹走的。
　　 我当时就想跳楼！太伤我自尊了！
　　5、刚看了一期，一对老人家的电灯晚上莫名其妙老是自己亮，结果大家都说他们家闹鬼，那对老人还居然病倒了。这其中还请了很牛的大学生来也无法解 释，最后村里检修电路，说是开关的螺丝松了，紧紧就好了。　~~~~~~我看完以为这是智障频道的节目，关键是居然还耐心看完了！
　　6、还有那集《谁在背我飞行》，一开始那气愤渲染的那叫一个神秘啊。说30年前一农民前一天晚上10点还在河北交通闭塞的农村，第二天一早 5、6点醒来发现自己在南京了，自己不知怎么回事，同样的情况又发生了第二次，只不过到一醒发现自己到上海了。家里还被那两人留了名“山东高登民、高延津”。第三次被两人背着飞行了好几个城市。大概就这么个过程吧，节目弄得又是调查又是取证的，人证物证到处找。太神秘了，弄得我那个夜不能睡，日不能饭的啊！那叫一个相思啊！
　　 结果最后来了几个专家，硬说人家老实八交的农民是梦游去的南京，上海等地。看到这里，我当场晕了好一会，梦游做车难道不用买车票吗？难不成那年头全国人民都在梦游？不过想想倒也是，那时候可不是全国梦游吗？
　　后来，专家又说人农民患了颠痫一切全都是幻觉，什么核磁共振，CT什么的追着人农民给人检查，拿人脑袋不当脑袋，结果检查结果没病，人家脑袋蛮正常。那专家一看，又说了，那你就是得了偏执，这种病是检查不出来的！我当是就又晕了半天！到底谁得了偏执？人家没病你偏说人家有病，没有检查结果，创造检查结果也要说人家有病，到底谁才象得了偏执地？
　　 7.最近的一期讲老人自燃的，老人身上的棉衣乃至他摸过的物体都会自燃，结果好奇心大增，看到最后， 是老头的外孙女点燃的，这和科学有什么关系。最后还引出几个儿女不孝这个话题，应该归到“家庭”里才对嘛！
　　8、一个孩子经常僵尸附体。做出各种怪动作。比如翻白眼，咬人，胳膊伸直双腿向前跳，还有要喝血，想咬人。
　　镜头昏暗，并且采访了N多村民，大家都表现的很害怕。
　　 后来还搞了一个教授专门来调查，调查不出来。教授又把小孩子拖到华西医科大学的医院去检查，结论是身体健康。
　　 最后，是带那个小孩子去看心理医生。医生问了几个呆问题，得出了结论，是因为小孩子想吸引家人的注意。因为他爸爸平时不太关心他。结果他装僵尸以后，他爸爸就很关心他，带他看医生。
　　 9、一期讲一家没人住的老房子晚上发光，里面有张床像有人睡过，搞得神乎其神～～最后答案是发光是反射对面人家发出来的光，床的解释是一张是１０年没人睡，一张是２年没人睡，结果被他一搞就成了干净一点的就有人睡了．．当场晕厥（幸好我当时在床上）
　　10、上次有个不怕电的，手拿220v的电线一点事都没有。最后送到北京某专家处一鉴定，说是该男老茧厚，所以不怕电。我看全中国7亿农民里至少得有5亿不怕电了
　　11、水怪啊？水怪那几期呢，是这么忽悠人的，那个什么天池水怪，是三样东西。分别是水獭，乌龟，。。。第三样东西叫我吐血，居然是朝鲜人开的汽艇！
　　12、最近看了期，是说共租一房的两个女孩，一到夜里就发现屋里不正常，查过去查过来，居然是那两个女孩的电脑中了木马。哈哈哈
　　 13、还有孩子被鬼附身变左宗堂那一集也是解释的不伦不类，人家小孩子就不知道左宗堂是谁，可是把啥都说的轻轻楚楚的，不知道他们最后胡乱解释的啥。小孩僵尸附体时嘴里还念叨古文这个最后也没解释。
　　14、有幸看过一集说是有个人死了N次都活过来了。。。最后结论是死的时候是发病（癫痫）。。。为什么能活过来呢。。是因为乡村里的赤脚医生每次在他假死时都偷偷给他输液。。。
　　15、2006年9月，福建省华安县草板村一户普通的村民家发生了一件非常奇怪的事儿。在深夜，一声巨响，一个不明物体从天而降，撞断树枝，砸穿屋顶，深陷地面，在地里砸出了十几厘米深的坑。而且掉落下来的时候温度很高，摸起来还特别烫手，村民议论纷纷，有人说是陨石，有人说是飞机的零件，还有人传闻是ufo残片，更有甚者竟然说这个东西好像是外星人的尿壶，到底是天外来物还是另有原因？这个不明物体究竟是什么，它怎么会掉落在这儿呢？《走近科学》为您揭开谜底。 　
　
　　 经过故弄玄虚之后最后告诉你是一个私自罐氢气的小贩，不小心把罐弄爆炸，碎片落下来了！我狂晕
　　 16、记不大清楚是不是这栏节目，反正是CCTV10的，说的是一个老农用电笔测出房间带电，后来发展到地面带电，最后干脆，空气带电，220V还多，当然出现这种现象人没事。有点文化的人，或者有点常识的人都知道，肯定是电笔出问题，我是看笑话一样看完节目的，真是服了。
　　17、我看的那期更牛，第一天预告的时候瞎掉我们的胃口，一个女的（忘了哪里的）五年不吃饭，居然身体健康，他家人也承认她五年来的确没有进食，只喝水，我兴趣极度膨胀，还分两集，最后把这女的和他老公弄到省医院检查，最后经过N多专家检查得出一结论，这女的得了臆病，就是幻想症，强迫症之类的，事实上还是吃了东西的，只是吃得少，我真是昏了，她一个人有臆症，他朝夕相处的家人还信誓旦旦的证明，难道她一家人都有狂想症？他一家人又不是想出名，又没有得利，解释来解释去真是难已让人信服！后来还看了一期，一个贵州还是云南那边的少数民族女初中生鬼上身，在课堂上昏倒，醒来后突然家乡话也不会说了，亲人也不认识了，说自己是福建那边来的，还说福建那边的话，最后的结论是这个女孩学习压力大，得了臆病，真恶心，以后干脆别叫走进科学了，就叫走进臆病得了，我当时气得噢， 主持人你能相信这个结论吗，出来混饭吃也得花点本钱，随便三两句就想打发咱这些观众，真不知道CCTV办这个节目的初衷是什么，你每次的结论能把自己说服了再来说服观众。
　　 18、谁背我飞行那个外星人系列的还有一集，说村子里面看见飞碟，村里面比较有文化的一个人研究了多年，收集了n多证据，专家跑出了分析半天搞不清楚到底是为什么。难道真的有飞碟和外星人。结果发现那个人其实是个精神病患者，而且村子里面都知道。
　　所谓的调查非常草率，所谓的结论非常荒唐，每次都故弄玄虚、哗众取宠，拍的像鬼片，最后得出一个莫名其妙的结论
　　 19、还有一期节目，说一农村女子身上常常出现字，然后进行了猜测：是鬼附体？于是记者跟踪观察，还去了医院......一个沙哑的声音故弄玄虚地解说着....看不下去了。白痴也知道是自己划的。
　　这倒显露了我们的科普态度甚至是教育民众的态度：是引领进步，还是愚弄、听之任之。
　　 20、《午夜木乃伊走路》　　 　
　　 大概讲一个木乃伊展览馆到了晚上就会听到有人在走廊上走路的声音……但是仔细看了却又没有人！！！于是KB的木乃伊夜半走路的传言便传开了……于是许多学者介入调查发现……………… 　
　
　　其实是木地板日热涨夜冷缩造成的声响…… 　
　　
　　 21、《人狼嚎》　　
　　 大致讲一个人他每天到了半夜都会像狼一样对着月亮狼嚎……吓死了四周邻居街坊……于是又有许多学者介入调查发现…………………… 　　其实是这个人患有癫痫……平常又喜欢看动物世界……结果晚上发神经的时候就模仿印象中最深刻的狼状…… 　
　　　
　　 22、《吐血狂人》 　
　　 （这个最经典……经典的可以让大家都去吐血好了）　　大致讲一个男人他一运气功，就可以从嘴巴里面吐出血来！！而且他全身都可以出血，只要用嘴巴吸一下皮肤，皮肤上就会有一堆血，而且好起来极快，只要把血擦掉皮肤上就不会留下任何痕迹！！于是又有很多专家学者介入调查………………发现……………… 　其实这个人是牙龈出血………………（真是有够了！！）　　　　 　　
　　 我想说的就是：专家学者们辛苦了！！cctv辛苦了！
　
　　 那个走进科学也是的。　科他M的学，说是有不明飞行物，调查后得知那是飞蛾。
　　 还有神秘鬼火，结果是他们家地下天然气泄露。
　　 就是有一期讲的是佛手公主，玄的阿，其实就是遗传性的手脚残疾。真是，前面玄的阿。 　
　　 牙龈出血那个，真是一个奇冷的笑话～～～　　
　　 还看过中央10套的一个节目，说小孩爬上祭奠塔看见里面有火光，然后神秘兮兮的讲到底，切～～～是当地居民在里面烧垃圾。
　　 大家还有没有看到中央10套讲N多湖里都有水怪，讲来讲去，结果就是某种大鱼——还是疑似，这些人，鱼都不认识了还好意思说。
　　 我还看过一期！　什么分身大盗的：就说那人明明被关监狱里面了，别处犯案之后目击证人还说就是他。反正可神呢！偶就看啊看，最终结局是双胞胎……
　　 吼吼，上次和姐妹饭饭，说起“走近科学”，喷饭不止：
　　 有一集是什么山顶的灯光，怀疑是外星人……我一看就知道了，肯定是旁边酒店的激光灯，果不其然…… 
]]></description>
			<content:encoded><![CDATA[<p><span class="reply_content">1、某一集说某个村子每天半夜三更都有怪叫声，把全村人吵醒，大家都不敢出去看，战战兢兢地失眠到天亮。采访了一大堆上了岁数的村民，传说这里出没野兽，每天夜里到村子作怪，闹得人心惶惶……音乐配的那叫一个，还分上下两集渲染！到最后竟然说那是村里一个胖子睡觉打呼噜！这胖子是金刚罗汉转世，还是帕瓦罗蒂的私生子？！打个呼噜能把一个村子的人吓醒？！我想砸电视！<br />
<span id="more-112"></span><br />
　　2、还有一集说是一户人家老是发现自家客厅地上的瓷砖缝里会渗出像血一样的鲜红色液体，弄得到处都是，全村的人都不知道是怎么回事，猜会不会原来这块地是坟地啊什么的，然后又请了N多专家，研究他们家的地理位置地形条件，得出的结论都是依科学不可能发生地下矿物质倒渗这种情况发生……所以，最后的结论就是：液体是这家人家为了出名自己洒上去的！</p>
<p>　　 我“咣垱”！一下倒地！</p>
<p>　　3、还有一期是说，挂了好几年的牛皮鼓忽然自己长出了牛毛！这件事在当地是蛮有名的件事，节目采访了那么多人，研究从厦大弄到了中央，都没有人说出个 所以然来，最后没办法了，硬栽赃人家做鼓的人不专业，毛没有刮干净，当初牛毛没刮干净？我晕。。。这不是怀疑做鼓人的专业水平吗？呵呵！</p>
<p>　　 以这样的结论打发我，到底是看不起我的智商还是编导智商让人看不起！</p>
<p>　　 4、还有一期说峨眉山的一个古寺，地处森林深处，但屋顶上从来没有一片树叶。就这么个事儿，经过漫长，深沉，全方位，多角度的分析，采访了寺中实习的和尚，游客，保安，居士，文物管理局局长，以及他的姑妈的二姐的堂妹的邻居家的一条狗，最后得出结论——是风吹走的。</p>
<p>　　 我当时就想跳楼！太伤我自尊了！</p>
<p>　　5、刚看了一期，一对老人家的电灯晚上莫名其妙老是自己亮，结果大家都说他们家闹鬼，那对老人还居然病倒了。这其中还请了很牛的大学生来也无法解 释，最后村里检修电路，说是开关的螺丝松了，紧紧就好了。　~~~~~~我看完以为这是智障频道的节目，关键是居然还耐心看完了！</p>
<p>　　6、还有那集《谁在背我飞行》，一开始那气愤渲染的那叫一个神秘啊。说30年前一农民前一天晚上10点还在河北交通闭塞的农村，第二天一早 5、6点醒来发现自己在南京了，自己不知怎么回事，同样的情况又发生了第二次，只不过到一醒发现自己到上海了。家里还被那两人留了名“山东高登民、高延津”。第三次被两人背着飞行了好几个城市。大概就这么个过程吧，节目弄得又是调查又是取证的，人证物证到处找。太神秘了，弄得我那个夜不能睡，日不能饭的啊！那叫一个相思啊！</p>
<p>　　 结果最后来了几个专家，硬说人家老实八交的农民是梦游去的南京，上海等地。看到这里，我当场晕了好一会，梦游做车难道不用买车票吗？难不成那年头全国人民都在梦游？不过想想倒也是，那时候可不是全国梦游吗？</p>
<p>　　后来，专家又说人农民患了颠痫一切全都是幻觉，什么核磁共振，CT什么的追着人农民给人检查，拿人脑袋不当脑袋，结果检查结果没病，人家脑袋蛮正常。那专家一看，又说了，那你就是得了偏执，这种病是检查不出来的！我当是就又晕了半天！到底谁得了偏执？人家没病你偏说人家有病，没有检查结果，创造检查结果也要说人家有病，到底谁才象得了偏执地？</p>
<p>　　 7.最近的一期讲老人自燃的，老人身上的棉衣乃至他摸过的物体都会自燃，结果好奇心大增，看到最后， 是老头的外孙女点燃的，这和科学有什么关系。最后还引出几个儿女不孝这个话题，应该归到“家庭”里才对嘛！</p>
<p>　　8、一个孩子经常僵尸附体。做出各种怪动作。比如翻白眼，咬人，胳膊伸直双腿向前跳，还有要喝血，想咬人。</p>
<p>　　镜头昏暗，并且采访了N多村民，大家都表现的很害怕。</p>
<p>　　 后来还搞了一个教授专门来调查，调查不出来。教授又把小孩子拖到华西医科大学的医院去检查，结论是身体健康。</p>
<p>　　 最后，是带那个小孩子去看心理医生。医生问了几个呆问题，得出了结论，是因为小孩子想吸引家人的注意。因为他爸爸平时不太关心他。结果他装僵尸以后，他爸爸就很关心他，带他看医生。</p>
<p>　　 9、一期讲一家没人住的老房子晚上发光，里面有张床像有人睡过，搞得神乎其神～～最后答案是发光是反射对面人家发出来的光，床的解释是一张是１０年没人睡，一张是２年没人睡，结果被他一搞就成了干净一点的就有人睡了．．当场晕厥（幸好我当时在床上）</p>
<p>　　10、上次有个不怕电的，手拿220v的电线一点事都没有。最后送到北京某专家处一鉴定，说是该男老茧厚，所以不怕电。我看全中国7亿农民里至少得有5亿不怕电了</p>
<p>　　11、水怪啊？水怪那几期呢，是这么忽悠人的，那个什么天池水怪，是三样东西。分别是水獭，乌龟，。。。第三样东西叫我吐血，居然是朝鲜人开的汽艇！</p>
<p>　　12、最近看了期，是说共租一房的两个女孩，一到夜里就发现屋里不正常，查过去查过来，居然是那两个女孩的电脑中了木马。哈哈哈</p>
<p>　　 13、还有孩子被鬼附身变左宗堂那一集也是解释的不伦不类，人家小孩子就不知道左宗堂是谁，可是把啥都说的轻轻楚楚的，不知道他们最后胡乱解释的啥。小孩僵尸附体时嘴里还念叨古文这个最后也没解释。</p>
<p>　　14、有幸看过一集说是有个人死了N次都活过来了。。。最后结论是死的时候是发病（癫痫）。。。为什么能活过来呢。。是因为乡村里的赤脚医生每次在他假死时都偷偷给他输液。。。</p>
<p>　　15、2006年9月，福建省华安县草板村一户普通的村民家发生了一件非常奇怪的事儿。在深夜，一声巨响，一个不明物体从天而降，撞断树枝，砸穿屋顶，深陷地面，在地里砸出了十几厘米深的坑。而且掉落下来的时候温度很高，摸起来还特别烫手，村民议论纷纷，有人说是陨石，有人说是飞机的零件，还有人传闻是ufo残片，更有甚者竟然说这个东西好像是外星人的尿壶，到底是天外来物还是另有原因？这个不明物体究竟是什么，它怎么会掉落在这儿呢？《走近科学》为您揭开谜底。 　<br />
　<br />
　　 经过故弄玄虚之后最后告诉你是一个私自罐氢气的小贩，不小心把罐弄爆炸，碎片落下来了！我狂晕</p>
<p>　　 16、记不大清楚是不是这栏节目，反正是CCTV10的，说的是一个老农用电笔测出房间带电，后来发展到地面带电，最后干脆，空气带电，220V还多，当然出现这种现象人没事。有点文化的人，或者有点常识的人都知道，肯定是电笔出问题，我是看笑话一样看完节目的，真是服了。</p>
<p>　　17、我看的那期更牛，第一天预告的时候瞎掉我们的胃口，一个女的（忘了哪里的）五年不吃饭，居然身体健康，他家人也承认她五年来的确没有进食，只喝水，我兴趣极度膨胀，还分两集，最后把这女的和他老公弄到省医院检查，最后经过N多专家检查得出一结论，这女的得了臆病，就是幻想症，强迫症之类的，事实上还是吃了东西的，只是吃得少，我真是昏了，她一个人有臆症，他朝夕相处的家人还信誓旦旦的证明，难道她一家人都有狂想症？他一家人又不是想出名，又没有得利，解释来解释去真是难已让人信服！后来还看了一期，一个贵州还是云南那边的少数民族女初中生鬼上身，在课堂上昏倒，醒来后突然家乡话也不会说了，亲人也不认识了，说自己是福建那边来的，还说福建那边的话，最后的结论是这个女孩学习压力大，得了臆病，真恶心，以后干脆别叫走进科学了，就叫走进臆病得了，我当时气得噢， 主持人你能相信这个结论吗，出来混饭吃也得花点本钱，随便三两句就想打发咱这些观众，真不知道CCTV办这个节目的初衷是什么，你每次的结论能把自己说服了再来说服观众。</p>
<p>　　 18、谁背我飞行那个外星人系列的还有一集，说村子里面看见飞碟，村里面比较有文化的一个人研究了多年，收集了n多证据，专家跑出了分析半天搞不清楚到底是为什么。难道真的有飞碟和外星人。结果发现那个人其实是个精神病患者，而且村子里面都知道。</p>
<p>　　所谓的调查非常草率，所谓的结论非常荒唐，每次都故弄玄虚、哗众取宠，拍的像鬼片，最后得出一个莫名其妙的结论</p>
<p>　　 19、还有一期节目，说一农村女子身上常常出现字，然后进行了猜测：是鬼附体？于是记者跟踪观察，还去了医院......一个沙哑的声音故弄玄虚地解说着....看不下去了。白痴也知道是自己划的。</p>
<p>　　这倒显露了我们的科普态度甚至是教育民众的态度：是引领进步，还是愚弄、听之任之。</p>
<p>　　 20、《午夜木乃伊走路》　　 　</p>
<p>　　 大概讲一个木乃伊展览馆到了晚上就会听到有人在走廊上走路的声音……但是仔细看了却又没有人！！！于是KB的木乃伊夜半走路的传言便传开了……于是许多学者介入调查发现……………… 　<br />
　<br />
　　其实是木地板日热涨夜冷缩造成的声响…… 　<br />
　　<br />
　　 21、《人狼嚎》　　</p>
<p>　　 大致讲一个人他每天到了半夜都会像狼一样对着月亮狼嚎……吓死了四周邻居街坊……于是又有许多学者介入调查发现…………………… 　　其实是这个人患有癫痫……平常又喜欢看动物世界……结果晚上发神经的时候就模仿印象中最深刻的狼状…… 　<br />
　　　<br />
　　 22、《吐血狂人》 　</p>
<p>　　 （这个最经典……经典的可以让大家都去吐血好了）　　大致讲一个男人他一运气功，就可以从嘴巴里面吐出血来！！而且他全身都可以出血，只要用嘴巴吸一下皮肤，皮肤上就会有一堆血，而且好起来极快，只要把血擦掉皮肤上就不会留下任何痕迹！！于是又有很多专家学者介入调查………………发现……………… 　其实这个人是牙龈出血………………（真是有够了！！）　　　　 　　</p>
<p>　　 我想说的就是：专家学者们辛苦了！！cctv辛苦了！<br />
　<br />
　　 那个走进科学也是的。　科他M的学，说是有不明飞行物，调查后得知那是飞蛾。</p>
<p>　　 还有神秘鬼火，结果是他们家地下天然气泄露。</p>
<p>　　 就是有一期讲的是佛手公主，玄的阿，其实就是遗传性的手脚残疾。真是，前面玄的阿。 　</p>
<p>　　 牙龈出血那个，真是一个奇冷的笑话～～～　　</p>
<p>　　 还看过中央10套的一个节目，说小孩爬上祭奠塔看见里面有火光，然后神秘兮兮的讲到底，切～～～是当地居民在里面烧垃圾。</p>
<p>　　 大家还有没有看到中央10套讲N多湖里都有水怪，讲来讲去，结果就是某种大鱼——还是疑似，这些人，鱼都不认识了还好意思说。</p>
<p>　　 我还看过一期！　什么分身大盗的：就说那人明明被关监狱里面了，别处犯案之后目击证人还说就是他。反正可神呢！偶就看啊看，最终结局是双胞胎……</p>
<p>　　 吼吼，上次和姐妹饭饭，说起“走近科学”，喷饭不止：</p>
<p>　　 有一集是什么山顶的灯光，怀疑是外星人……我一看就知道了，肯定是旁边酒店的激光灯，果不其然…… </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/112/feed</wfw:commentRss>
		</item>
		<item>
		<title>中国的又到了多事之秋</title>
		<link>http://www.uniq.cn/post/111</link>
		<comments>http://www.uniq.cn/post/111#comments</comments>
		<pubDate>Thu, 26 Feb 2009 13:45:12 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://ning.blog.35.cn/?p=111</guid>
		<description><![CDATA[http://news.qq.com/a/20090226/001629.htm  日本首相称钓鱼岛是日固有领土 中方坚决反对
http://www.newsqx.com/n7008c12.aspx      菲律宾侵占南沙群岛
刚过了多事的2008，看来2009也不会平凡啊。过去一年国家领导人关注老百姓已经太多了，现在收到洋人的欺负，不知道会有什么样的行动，但愿一切顺利。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://news.qq.com/a/20090226/001629.htm">http://news.qq.com/a/20090226/001629.htm</a>  日本首相称钓鱼岛是日固有领土 中方坚决反对</p>
<pre><a href="http://www.newsqx.com/n7008c12.aspx">http://www.newsqx.com/n7008c12.aspx</a>      菲律宾侵占南沙群岛</pre>
<p>刚过了多事的2008，看来2009也不会平凡啊。过去一年国家领导人关注老百姓已经太多了，现在收到洋人的欺负，不知道会有什么样的行动，但愿一切顺利。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/111/feed</wfw:commentRss>
		</item>
		<item>
		<title>中国为什么那么软弱？</title>
		<link>http://www.uniq.cn/post/110</link>
		<comments>http://www.uniq.cn/post/110#comments</comments>
		<pubDate>Thu, 19 Feb 2009 15:03:44 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://ning.blog.35.cn/?p=110</guid>
		<description><![CDATA[菲律宾侵占南沙群岛
既然菲律宾都都已经宣布南沙群岛归他所有，还要说什么吗？直接派兵过去灭了菲律宾，把菲律宾划归中国所有得了。难怪会没有反应，都被人家占领了那么长时间了，资源被掠夺的差不多了吧。还好台湾问题解决的差不多了，不然的话，如果台湾突然宣布独立，不知道中国会不会有所行动。真的很悲哀，严正抗议，有用吗？屎都拉到你头上了，还抗议，想想都好笑。中国对南沙群岛的主权得到国际上的承认 ，既然得到世界的广泛承认，那么出兵就是名正言顺，想破脑袋都想不出，中国有什么好忌惮的。难道真是中国威胁论？
。。。 。。。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.newsqx.com/n7008c12.aspx">菲律宾侵占南沙群岛</a></p>
<p>既然菲律宾都都已经宣布南沙群岛归他所有，还要说什么吗？直接派兵过去灭了菲律宾，把菲律宾划归中国所有得了。难怪会没有反应，都被人家占领了那么长时间了，资源被掠夺的差不多了吧。还好台湾问题解决的差不多了，不然的话，如果台湾突然宣布独立，不知道中国会不会有所行动。真的很悲哀，严正抗议，有用吗？屎都拉到你头上了，还抗议，想想都好笑。<a href="http://news.xmnn.cn/dysj/200902/t20090219_909113.htm">中国对南沙群岛的主权得到国际上的承认</a> ，既然得到世界的广泛承认，那么出兵就是名正言顺，想破脑袋都想不出，中国有什么好忌惮的。难道真是<a href="http://www.google.cn/search?sourceid=navclient&amp;hl=zh-CN&amp;ie=UTF-8&amp;rlz=1T4CULB_zh-CNCN306CN309&amp;q=%e4%b8%ad%e5%9b%bd%e5%a8%81%e8%83%81%e8%ae%ba">中国威胁论</a>？</p>
<p>。。。 。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/110/feed</wfw:commentRss>
		</item>
		<item>
		<title>Why do some SQL strings have an 'N' prefix?</title>
		<link>http://www.uniq.cn/post/109</link>
		<comments>http://www.uniq.cn/post/109#comments</comments>
		<pubDate>Tue, 17 Feb 2009 01:02:38 +0000</pubDate>
		<dc:creator>ning</dc:creator>
		
		<category><![CDATA[随笔]]></category>

		<guid isPermaLink="false">http://www.uniq.cn/post/109</guid>
		<description><![CDATA[You may have seen Transact-SQL code that passes strings around using an N prefix. This denotes that the subsequent string is in Unicode (the N actually stands for National language character set). Which means that you are passing an NCHAR, NVARCHAR or NTEXT value, as opposed to CHAR, VARCHAR or TEXT. See Article #2354 for [...]]]></description>
			<content:encoded><![CDATA[<p>You may have seen Transact-SQL code that passes strings around using an N prefix. This denotes that the subsequent string is in Unicode (the N actually stands for National language character set). Which means that you are passing an NCHAR, NVARCHAR or NTEXT value, as opposed to CHAR, VARCHAR or TEXT. See <a href="http://www.aspfaq.com/show.asp?id=2354">Article #2354</a> for a comparison of these data types. <span id="more-109"></span></p>
<p>Unicode is typically used in database applications which are designed to facilitate code pages which extend beyond the English and Western Europe code pages (<a href="http://www.sommarskog.se/">Erland Sommarskog</a>, a native of Sweden, refers to this set as "Germanic and Romance languages"), for example Chinese. Unicode is designed so that extended character sets can still "fit" into database columns. What this means is that Unicode character data types are limited to half the space, because each byte actually takes two bytes (Unicode is sometimes referred to as "double-wide"). For more information on Unicode, see <a href="http://www.unicode.org/">Unicode.org</a>. Note that there are many encoding schemes in the Unicode standard, but SQL Server only supports one: UTF-16.</p>
<p>While using Unicode is a design choice you can make in building your own applications, some facilities in SQL server require it. One example is sp_executeSQL. If you try the following:</p>
<p>EXEC sp_ExecuteSQL 'SELECT 1'</p>
<p>You will get this error:</p>
<p>Server: Msg 214, Level 16, State 2, Procedure sp_executesql, Line 1<br />
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.</p>
<p>You can get around this in two ways:</p>
<p>-- (a) using the N prefix<br />
EXEC sp_ExecuteSQL N'SELECT 1'<br />
-- (b) using a variable<br />
DECLARE @sql NVARCHAR(100)<br />
SET @sql = N'SELECT 1'<br />
EXEC sp_ExecuteSQL @sql</p>
<p>Note that implicit conversion makes the N prefix optional in case (b); however, for legibility and consistency, you should always use the prefix when defining Unicode strings. One reason is that leaving it off can actually change your data if it contains Unicode characters (losing the additional information), as in the following example:</p>
<p>DECLARE @n NVARCHAR(10)<br />
SET @n = 'a'<br />
PRINT @n<br />
SET @n = N'a'<br />
PRINT @n</p>
<p>The first assignment, which didn't use the N prefix, gets printed as a regular a. Only the second maintains the character that was actually supposed to be represented. As you can imagine, if you are intending to support data entry in foreign languages and code pages, you will likely need to test for Unicode support (making sure that such columns support Unicode, and that data won't be lost when passed into stored procedures, functions, etc.). Note that your application will need to handle Unicode as well; for example, when you try to print this character from ASP...</p>
<p>&lt;%<br />
Response.Write("a")<br />
%&gt;</p>
<p>...it actually prints out the string aa. (This result might depend on your codepage and regional settings.) So you might consider translating your data into its ASCII equivalent, e.g. a = ā.<br />
Another reason you want to avoid implicit conversion is that there are some potentially serious performance issues. Consider the following quite simple repro:</p>
<p>USE tempdb<br />
GO<br />
CREATE TABLE a<br />
(<br />
b VARCHAR(3),<br />
c NVARCHAR(3)<br />
)<br />
CREATE INDEX b ON a(b)<br />
CREATE INDEX c ON a(c)<br />
GO<br />
SET NOCOUNT ON<br />
INSERT a SELECT 'foo', N'foo'<br />
INSERT a SELECT 'bar', N'bar'<br />
DECLARE<br />
@b VARCHAR(3),<br />
@c NVARCHAR(3)<br />
SELECT<br />
@b = 'foo',<br />
@c = N'foo'<br />
SELECT * FROM a WHERE b = @b<br />
SELECT * FROM a WHERE b = @c<br />
SELECT * FROM a WHERE c = @b<br />
SELECT * FROM a WHERE c = @c<br />
SELECT * FROM a WHERE b LIKE @b<br />
SELECT * FROM a WHERE b LIKE @c<br />
SELECT * FROM a WHERE c LIKE @b<br />
SELECT * FROM a WHERE c LIKE @c<br />
DROP TABLE a</p>
<p>Paste the code into Query Analyzer, turn execution plan on, and let her rip. You'll observe the following breakdown of percentage of work (roughly, depending on your hardware):</p>
<p>VARCHAR = VARCHAR<br />
4.48%</p>
<p>VARCHAR = NVARCHAR<br />
13.31%</p>
<p>NVARCHAR = VARCHAR<br />
4.48%</p>
<p>NVARCHAR = NVARCHAR<br />
4.48%</p>
<p>VARCHAR LIKE VARCHAR<br />
4.48%</p>
<p>VARCHAR LIKE NVARCHAR<br />
13.31%</p>
<p>NVARCHAR LIKE VARCHAR<br />
4.48%</p>
<p>NVARCHAR LIKE NVARCHAR<br />
4.48%</p>
<p>Now, that's not the whole story; we all know that there are many other factors, such as I/O, that will impact the actual time each portion of the query takes. The key is that implicit conversion *can* cause a table scan instead of an index seek, and on larger tables this can really hurt. While it's important to understand why this happens and in which scenarios, my recommendation is to match your character-based datatypes as explicitly as possible.<br />
One other thing to watch out for: your database may be using Unicode without your knowledge. If you upsize from Access to SQL Server, for example, character-based text columns might be translated to Unicode (I believe this is a catch-all technique; in case Access was storing Unicode strings, or if you might be storing Unicode strings later, you won't lose data or require changes). I think the Access upsizing tools should be updated to force a conscious choice, so that you aren't wasting space for nothing, and so that you know that you made a decision at all.<br />
For a more thorough discussion of Unicode and the N prefix, please see <a href="http://support.microsoft.com/default.aspx/kb/239530">KB #239530</a>, this <a href="http://msdn.microsoft.com/library/en-us/dnsql2k/html/intlfeaturesinsqlserver2000.asp">MSDN article</a>, and this <a href="http://groups.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;frame=right&amp;th=e3ca3b5b0bb02aa0&amp;seekm=dgskI7FpBHA.1572%40cpmsftngxa07#link1">Google thread</a>.<br />
In other RDBMS platforms, or in the ANSI and/or ISO specifications, you might see prefixes other than N being used against values. (Current versions of SQL Server only support Unicode.) Here are the additional monikers I am aware of:</p>
<p>B<br />
This is used to denote a BINARY string expressed in bits (0 and 1 only)</p>
<p>X<br />
This is used to denote a BINARY string expressed in hexadecimal (0 -&gt; F)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uniq.cn/post/109/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
