﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-Adrian's Tech Blog</title><link>http://www.cnblogs.com/Dah/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 13:43:01 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 13:43:01 GMT</pubDate><ttl>60</ttl><item><title>LINQ表达式中关于显式范围变量的Bug</title><link>http://www.cnblogs.com/Dah/archive/2008/02/16/1070956.html</link><dc:creator>Adrian H.</dc:creator><author>Adrian H.</author><pubDate>Sat, 16 Feb 2008 15:07:00 GMT</pubDate><guid>http://www.cnblogs.com/Dah/archive/2008/02/16/1070956.html</guid><wfw:comment>http://www.cnblogs.com/Dah/comments/1070956.html</wfw:comment><comments>http://www.cnblogs.com/Dah/archive/2008/02/16/1070956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dah/comments/commentRss/1070956.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dah/services/trackbacks/1070956.html</trackback:ping><description><![CDATA[<p>
MSDN博客中的<a href="http://blogs.msdn.com/ed_maurer/archive/2008/02/16/breaking-change-in-linq-queries-using-explicitly-typed-range-variables.aspx">一篇文章</a>提到了.NET 3.5 SP1会带来的处个修正，见以下代码：
</p>
<p>
<span style="color: blue;">var </span>floats = <span style="color: blue;">new </span><span style="color: #2b91af;">ArrayList </span>{ 2.5f, 3.5f, 4.5f };
<br />
<span style="color: blue;">var </span>ints = <span style="color: blue;">from int </span>i <span style="color: blue;">in </span>floats
<span style="color: blue;">      select </span>i;
</p>
<p>
注意from后面声明的显式类型(int)。开发者会很自然地认为ints为[2,3,4]，但在现在版本.NET 3.5环境下得到的却是[2,4,4]。
</p>
<p>
原来那段LINQ表达式将会被编译为以下方法调用：
</p>
<p>
<span style="color: blue;">var </span>ints = floats.Cast&lt;<span style="color: blue;">int</span>&gt;().Select&lt;<span style="color: blue;">int</span>,<span style="color: blue;">int</span>&gt;(i =&gt; i);
</p>
<p>
问题便出现在Cast这个扩展方法中，而Cast内部是通过调用Convert类的ToInt32方法转换ArrayList中元素类型的，而这个方法既不是对浮点数进行截去小数，也不是简单的round：
ToInt32方法的文档中是这样描述返回值的：
</p>
<p>
value rounded to the nearest 32-bit signed integer. If value is halfway
between two whole numbers, the even number is returned; that is, 4.5 is
converted to 4, and 5.5 is converted to 6.
</p>
<p>
这种数值转换的方式被称为<a href="http://www.google.com/search?q=Banker%27s+rounding&amp;sourceid=navclient-ff&amp;ie=UTF-8&amp;rlz=1B3GGGL_enCN258CN258">Banker's rounding</a>。
</p>
<p>
这是个程序语义的问题，将在以后的.NET Frameworkk 3.5 SP1中解决，估计只是修改Cast方法的实现。现在的应对方法是在一些应用场景中不使用显式范围变量。
</p>
<img src ="http://www.cnblogs.com/Dah/aggbug/1070956.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41940/" target="_blank">[新闻]惠普139亿美元完成对EDS的收购</a>]]></description></item><item><title>jQuery太好使了</title><link>http://www.cnblogs.com/Dah/archive/2008/02/14/1069063.html</link><dc:creator>Adrian H.</dc:creator><author>Adrian H.</author><pubDate>Thu, 14 Feb 2008 12:13:00 GMT</pubDate><guid>http://www.cnblogs.com/Dah/archive/2008/02/14/1069063.html</guid><wfw:comment>http://www.cnblogs.com/Dah/comments/1069063.html</wfw:comment><comments>http://www.cnblogs.com/Dah/archive/2008/02/14/1069063.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dah/comments/commentRss/1069063.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dah/services/trackbacks/1069063.html</trackback:ping><description><![CDATA[<p>
结合jQuery写了一个类似Web Portal的窗体控制页面（<a href="http://x-dev.cn/Demo/PortalPrototype/">Demo</a>），以前也用过Prototype等JavaScript library，发现jQuery不仅轻量，更是有自己的独特之处，足以满足自己的开发需求了~用jQuery我可以忽略很多basic的问题，比如浏览器兼容性。真是能让人体会到JavaScript的强大了。
</p>
<p>
看这个Web Portal Demo的源码就可能发现我有滥用closure的嫌疑，JavaScript的closure等动态特性简化了思维，抛开class，解决问题是那么直接~
</p>
<img src ="http://www.cnblogs.com/Dah/aggbug/1069063.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41939/" target="_blank">[新闻]搜狗五笔输入法发布</a>]]></description></item><item><title>一次性下载.NET源码和pdb，并在VS2005中进行调试</title><link>http://www.cnblogs.com/Dah/archive/2008/02/12/1067485.html</link><dc:creator>Adrian H.</dc:creator><author>Adrian H.</author><pubDate>Tue, 12 Feb 2008 13:59:00 GMT</pubDate><guid>http://www.cnblogs.com/Dah/archive/2008/02/12/1067485.html</guid><wfw:comment>http://www.cnblogs.com/Dah/comments/1067485.html</wfw:comment><comments>http://www.cnblogs.com/Dah/archive/2008/02/12/1067485.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dah/comments/commentRss/1067485.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dah/services/trackbacks/1067485.html</trackback:ping><description><![CDATA[原文： <a href="http://www.wintellect.com/cs/blogs/jrobbins/archive/2008/02/06/download-all-the-net-reference-source-code-at-once-with-net-mass-downloader.aspx">Download All the .NET Reference Source Code at Once with Net Mass Downloader</a><br />
这篇文章介绍了如何使用<a href="http://www.codeplex.com/NetMassDownloader">Net Mass Downloader</a>批量下载<a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx">.NET源代码</a>和pdb文件，如何<a href="http://www.wintellect.com/cs/blogs/jrobbins/archive/2008/02/06/download-all-the-net-reference-source-code-at-once-with-net-mass-downloader.aspx">配置VS2005</a>以支持使用.NET源代码进行调试。<br />
<br />
<br />
End of post<br />
<img src ="http://www.cnblogs.com/Dah/aggbug/1067485.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>Windows Server 2008: Server Core初体验</title><link>http://www.cnblogs.com/Dah/archive/2008/02/10/1066610.html</link><dc:creator>Adrian H.</dc:creator><author>Adrian H.</author><pubDate>Sun, 10 Feb 2008 08:05:00 GMT</pubDate><guid>http://www.cnblogs.com/Dah/archive/2008/02/10/1066610.html</guid><wfw:comment>http://www.cnblogs.com/Dah/comments/1066610.html</wfw:comment><comments>http://www.cnblogs.com/Dah/archive/2008/02/10/1066610.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dah/comments/commentRss/1066610.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dah/services/trackbacks/1066610.html</trackback:ping><description><![CDATA[<p>
（又是初体验？）
</p>
<p>
<a href="http://msdn2.microsoft.com/en-us/library/ms723891%28VS.85%29.aspx">
Server Core</a>的理念挺好的，极度减少预装的特性，减小被攻击外表以提高稳定性和效率，可自定义服务器角色和特性。
</p>
<p>
我的三年前买的本，从安装到登录用了30分钟（典型的Server Core安装时间为15分钟）。<br />
硬盘占用为1.5G。
</p>
<p>
<a href="http://76.13.18.70/2357/2253752777_f2d720bb37_o.png">
<img src="http://76.13.18.70/2357/2253752777_41c5462f67.jpg" alt="" /></a><br />
<a href="http://76.13.18.70/2204/2253753125_bce91fcd5c_o.png"><img src="http://76.13.18.70/2204/2253753125_c7f61824ff.jpg" alt="" /></a><br />
登录后只有一个命令行，传说中的"没有图形界面（GUI）"，其实只是没有Explorer.exe这个Shell而已，GDI是不会跑出这个版本的
Windows内核的。Virtual Machine Addition安装失败，可能是因为没有对应Windows版本的安装包。<br />
Task Manager里多了个Service标签页。<br />
About中显示的版本：Build 6001: Service Pack 1，据消息称跟这和Vista SP1的版本号相同。Server
2008与Vista SP1是相同的版本的核心组件，这可以理解，但显示给用户看会不会很奇怪呢："RTM的版本就已经SP1了"。<br />
Create New Task对话框中的Browse按钮点击竟然无反应，看来在Server Core安装中是无法看到"文件夹图标"了，既然没有Shell这个按钮无效，为什么还要保留呢？灰的也可以理解啊。
</p>
<p>
于是我尝试安装一些Feature，使用ocsetup。。<br />
本以为完全安装完IIS7会有一个可视化的管理界面，上网搜索后发现那是<a href="http://blogs.iis.net/metegokt/archive/2007/06/26/administering-iis7-on-server-core-installations-of-windows-server-2008.aspx">不会有的</a>。。<br />
安装GUI Shell界面到Server Core必定不是很简单的事情，我甚至没有找到一篇相关的文章。
我便想念GUI界面了，命令行对专家来说效率的确可以比GUI高，但GUI也并不是那么邪恶吧，有个选择多好呢（Server Core with GUI）？
</p>
<p>
Server Core对我来说没什么意义了，回北京买了新本后装个Full installation吧~</p>
<p>&nbsp;</p>
Original post: <a href="http://x-dev.cn/post/Windows-Server-2008-Server-Core-Exp.aspx">http://x-dev.cn/post/Windows-Server-2008-Server-Core-Exp.aspx</a><br />
<img src ="http://www.cnblogs.com/Dah/aggbug/1066610.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41937/" target="_blank">[新闻]Google拟在9月发布自有浏览器 或采用火狐内核</a>]]></description></item><item><title>C# Future Focus: 动态查找（Dynamic Lookup）</title><link>http://www.cnblogs.com/Dah/archive/2008/02/05/CSharp_Future_Focus_Dynamic_Lookup.html</link><dc:creator>Adrian H.</dc:creator><author>Adrian H.</author><pubDate>Tue, 05 Feb 2008 13:23:00 GMT</pubDate><guid>http://www.cnblogs.com/Dah/archive/2008/02/05/CSharp_Future_Focus_Dynamic_Lookup.html</guid><wfw:comment>http://www.cnblogs.com/Dah/comments/1065107.html</wfw:comment><comments>http://www.cnblogs.com/Dah/archive/2008/02/05/CSharp_Future_Focus_Dynamic_Lookup.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/Dah/comments/commentRss/1065107.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/Dah/services/trackbacks/1065107.html</trackback:ping><description><![CDATA[<p>
C#小组<a href="http://blogs.msdn.com/charlie/default.aspx">Charlie Calvert</a>在其博客发了一篇有关<a href="http://blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx">C#语言未来方向的文章</a>，这片文章介绍了一个叫做<strong>动态查找</strong>的特性，它为.NET语言（包括建立在DLR上的语言）能有一个统一的动态运行时名称绑定方案，让C#能与其他.NET动态语言（如IronPython和IronRuby）进行交互。它的应用场景包括：
</p>
<ol>
    <li>办公自动化：其实就是能更方便得调用Office的COM Interop，避免了膨胀的类数目</li>
    <li>与动态语言交互：动态！动态！</li>
    <li>调用反射：更方便的运行时动态调用 <br />
    </li>
</ol>
<p>
&nbsp;
<br />
未来的C#动态部分可能采取一下的语法，即使用dynamic与静态部分分离：
</p>
<div class="code">
<p>
<span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args)<br />
{<br />
&nbsp;&nbsp;&nbsp; dynamic<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="kwrd">object</span> myDynamicObject = GetDynamicObject();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myDynamicObject.SomeMethod();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="rem">// call a method&nbsp;&nbsp; <br />
</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myDynamicObject.someString = "<span class="kwrd">value</span>"; <span class="rem">// Set a field<br />
</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myDynamicObject[0] = 25;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="rem">// Access an indexer<br />
</span>
&nbsp;&nbsp;&nbsp; }<br />
}
</p>
</div>
<p>
其实ActionScript本身是动态语言，在3.0中加入了静态特性，同时也支持dynamic class和dynamic
call等完全的ECMAScript的特性，有时候我写AS3的时候觉得比C#还舒服，我只是写一个小testing程序，为什么我要声明它的类型？于
是我们的C#也要来凑动态语言的热闹了，本身纯洁的C#已经慢慢变成了一个大杂烩&#8230;&#8230;很早前看到的一篇文章说Microsoft就是一个厨师，总是希望能
满足所有人的口味，但那真的不好做，事物必须得发展（与时俱进）。
</p>
<p>
我一直觉得还没有一个语言能让我满足，现在的程序开发中依然有许多冗余的信息和文本，我始终觉得人的逻辑到计算机的映射可以更加无损和简洁。期待未来吧，C# 4.0，还有VS 10。</p>
<p>&nbsp;</p>
Original Post: <a href="http://x-dev.cn/post/C-Future-Focus-e58aa8e68081e69fa5e689beefbc88Dynamic-Lookupefbc89.aspx">http://x-dev.cn/post/C-Future-Focus-e58aa8e68081e69fa5e689beefbc88Dynamic-Lookupefbc89.aspx</a><br />
<img src ="http://www.cnblogs.com/Dah/aggbug/1065107.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41936/" target="_blank">[新闻]微软正在构思将Wi-Fi带入汽车</a>]]></description></item></channel></rss>