<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.2" -->
<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/"
	>

<channel>
	<title>Hui's Thinkpad</title>
	<link>http://huichen.org</link>
	<description></description>
	<pubDate>Wed, 20 Aug 2008 07:16:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>Teach yourself string theory in Half Life &#8230; with zombies</title>
		<link>http://huichen.org/109</link>
		<comments>http://huichen.org/109#comments</comments>
		<pubDate>Wed, 20 Aug 2008 06:50:10 +0000</pubDate>
		<dc:creator>hui</dc:creator>
		
		<category><![CDATA[Game]]></category>

		<guid isPermaLink="false">http://huichen.org/109</guid>
		<description><![CDATA[




From Half Life Physics


阅读(396 次)]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td><a href="http://picasaweb.google.com/usa.chen/HalfLifePhysics"><img src="http://lh3.ggpht.com/usa.chen/SKu-AHYDksI/AAAAAAAABlU/kZTPhpsemUo/s144/d1_eli_010004.jpg" width="144"></a></td>
</tr>
<tr>
<td>From <a href="http://picasaweb.google.com/usa.chen/HalfLifePhysics">Half Life Physics</a></td>
</tr>
</table>
<p class="postviews_count">阅读(396 次)</p>]]></content:encoded>
			<wfw:commentRss>http://huichen.org/109/feed</wfw:commentRss>
		</item>
		<item>
		<title>[下载] 一本C#和.NET的好书</title>
		<link>http://huichen.org/106</link>
		<comments>http://huichen.org/106#comments</comments>
		<pubDate>Fri, 25 Jul 2008 04:48:05 +0000</pubDate>
		<dc:creator>hui</dc:creator>
		
		<category><![CDATA[程序]]></category>

		<guid isPermaLink="false">http://huichen.org/106</guid>
		<description><![CDATA[
《Pro C# 2008 and the .NET 3.5 Platform, Fourth Edition》
作者 Andrew Troelsen
我把这本电子书放在了Megaupload上，下载链接。打开时需要密码 c@sharp.com
这本书的前一半介绍C#和.NET的基础，包括四个部分，分别是：
1. .NET的基础概念(CLR/CTS/CLS等)和C#的编译环境。值得一提的是侧重介绍了非Visual Studio环境，包括命令行环境。这对理解C#的编译过程很有帮助。
2. 核心的C#语言构造，包括类的定义、继承、多态、成员函数重载、虚函数和抽象类，exception处理，以及特别有一章是关于garbage collection的，值得一看。
3. 高阶C#构造，包括interface, collection, delegate, indexder, 以及C#2008的新特性和LINQ入门。
4. 介绍 .NET 的assembly构造，多线程和CIL等。
后半介绍C#下的微软扩展库（比如ADO.NET, WCF, WindowsForms, WPF和ASP.NET等）。
特别值得一提的在附录中专门有一章介绍.NET的平台无关移植 &#8212; Mono项目。
该书条理清晰，将一个个概念按逻辑顺序逐个解释，同时辅以例子。即可以作为初学者的入门书，同时这部1300页、拥有详细索引的书也可作为进阶的参考书，所以强烈推荐!
阅读(669 次)]]></description>
			<content:encoded><![CDATA[<p><img src='http://huic.72pines.com/files/2008/07/9781590598849.gif' alt='9781590598849.gif' width="125"></p>
<p><a href="http://www.amazon.com/gp/product/1590598849/ref=cm_rdp_product">《Pro C# 2008 and the .NET 3.5 Platform, Fourth Edition》</a></p>
<p>作者 Andrew Troelsen</p>
<p>我把这本电子书放在了Megaupload上，<a href="http://www.megaupload.com/?d=18RAUXK8">下载链接</a>。打开时需要密码 c@sharp.com</p>
<p>这本书的前一半介绍C#和.NET的基础，包括四个部分，分别是：</p>
<p>1. .NET的基础概念(CLR/CTS/CLS等)和C#的编译环境。值得一提的是侧重介绍了非Visual Studio环境，包括命令行环境。这对理解C#的编译过程很有帮助。</p>
<p>2. 核心的C#语言构造，包括类的定义、继承、多态、成员函数重载、虚函数和抽象类，exception处理，以及特别有一章是关于garbage collection的，值得一看。</p>
<p>3. 高阶C#构造，包括interface, collection, delegate, indexder, 以及C#2008的新特性和LINQ入门。</p>
<p>4. 介绍 .NET 的assembly构造，多线程和CIL等。</p>
<p>后半介绍C#下的微软扩展库（比如ADO.NET, WCF, WindowsForms, WPF和ASP.NET等）。</p>
<p>特别值得一提的在附录中专门有一章介绍.NET的平台无关移植 &#8212; Mono项目。</p>
<p>该书条理清晰，将一个个概念按逻辑顺序逐个解释，同时辅以例子。即可以作为初学者的入门书，同时这部1300页、拥有详细索引的书也可作为进阶的参考书，所以强烈推荐!</p>
<p class="postviews_count">阅读(669 次)</p>]]></content:encoded>
			<wfw:commentRss>http://huichen.org/106/feed</wfw:commentRss>
		</item>
		<item>
		<title>.NET比C/C++更快？</title>
		<link>http://huichen.org/105</link>
		<comments>http://huichen.org/105#comments</comments>
		<pubDate>Sat, 19 Jul 2008 23:09:52 +0000</pubDate>
		<dc:creator>hui</dc:creator>
		
		<category><![CDATA[程序]]></category>

		<guid isPermaLink="false">http://huichen.org/105</guid>
		<description><![CDATA[C#和JAVA以及Python一样，是解释性语言(Interpreted language)的一种，这类语言和编译性语言(Compiled language)如C/C++/FORTRAN的区别在于后者将源代码编译为机器代码执行，而前者通过将源代码编译为平台无关的bytecode，然后再通过虚拟机的“即时编译”(Just-in-time compilation, JIT)在执行时“解释”为机器代码然后运行。在跨平台性和代码易于调试维护上前者比后者有绝对优势，而且往往添加了一些关键特性比如garbage collection。
通常编译性语言比解释性语言快，但并不是一定的。两者执行效率差距完全取决于编译器和虚拟机的质量。.NET平台就是一个很好的例子。
.NET 是微软的一种应用程序构架(Framework)，C#/C++/VB等源代码可以通过微软的编译器先生成一种称为CIL(Common Intermediate Language, 通用中间语言)的bytecode，然后通过.net的虚拟机编译为机器代码执行。C#是.NET的默认语言，你也许会争论C++是.NET的默认语言，因为其可控性更强，但这种争论是错误的，因为：C#和managed C++生成的都是相同的CIL bytecode，而C++语言本身显然缺少C#的新特性。
即使是C#.NET和unmanaged C++(非生成CIL的C++)相比，前者执行效率上也有优势。下面我通过实例（N体问题的数值解）来比较C#和C++(unmanaged)的运行效率，采用了computer language shootout中的源代码，并做了少量修改，但算法都是一样的。我修改过的代码在下面下载：
C# 源代码文件 nbody.cs
C 源代码文件 nbody.c
C++ 源代码文件 nbody.cpp
编译环境为：
CPU: Pentium 4 3.0Ghz
OS: Windows XP / SP2
Memory: 1G
Compilers:
Visual Studio 08: .NET(3.5), C# 编译器 csc.exe (3.5.21022.8), C++/C 编译器 cl.exe(15.00.21022.08),
Cygwin中的gcc/g++(3.4.4)
另外对C#编译后的.exe的bytecode还可以通过ngen.exe进行预编译为机器码放入Native Image Cache(C:\windows\assembler)中尝试加快执行速度（免去对CIL的JIT时间）。
编译和运行都在cygwin的shell下通过命令行执行，编译命令行和程序执行的时间见下。
C# (csc.exe)
$ csc /o nbody.cs
9.604s, 9.587s, 9.593s, 平均值 9.595s
C# (csc.exe with ngen.exe)
$ csc /o nbody.cs
$ [...]]]></description>
			<content:encoded><![CDATA[<p>C#和JAVA以及Python一样，是解释性语言(Interpreted language)的一种，这类语言和编译性语言(Compiled language)如C/C++/FORTRAN的区别在于后者将源代码编译为机器代码执行，而前者通过将源代码编译为平台无关的bytecode，然后再通过虚拟机的“即时编译”(Just-in-time compilation, JIT)在执行时“解释”为机器代码然后运行。在跨平台性和代码易于调试维护上前者比后者有绝对优势，而且往往添加了一些关键特性比如garbage collection。</p>
<p>通常编译性语言比解释性语言快，但并不是一定的。两者执行效率差距完全取决于编译器和虚拟机的质量。.NET平台就是一个很好的例子。</p>
<p>.NET 是微软的一种应用程序构架(Framework)，C#/C++/VB等源代码可以通过微软的编译器先生成一种称为CIL(Common Intermediate Language, 通用中间语言)的bytecode，然后通过.net的虚拟机编译为机器代码执行。C#是.NET的默认语言，你也许会争论C++是.NET的默认语言，因为其可控性更强，但这种争论是错误的，因为：C#和managed C++生成的都是相同的CIL bytecode，而C++语言本身显然缺少C#的新特性。</p>
<p>即使是C#.NET和unmanaged C++(非生成CIL的C++)相比，前者执行效率上也有优势。下面我通过实例（N体问题的数值解）来比较C#和C++(unmanaged)的运行效率，采用了<a href="http://shootout.alioth.debian.org/">computer language shootout</a>中的源代码，并做了少量修改，但算法都是一样的。我修改过的代码在下面下载：</p>
<p>C# 源代码文件 <a href="http://hui-test.googlecode.com/svn/trunk/csharp_vs_ccpp/nbody.cs">nbody.cs</a><br />
C 源代码文件 <a href="http://hui-test.googlecode.com/svn/trunk/csharp_vs_ccpp/nbody.c">nbody.c</a><br />
C++ 源代码文件 <a href="http://hui-test.googlecode.com/svn/trunk/csharp_vs_ccpp/nbody.cpp">nbody.cpp</a></p>
<p>编译环境为：</p>
<p>CPU: Pentium 4 3.0Ghz<br />
OS: Windows XP / SP2<br />
Memory: 1G<br />
Compilers:<br />
Visual Studio 08: .NET(3.5), C# 编译器 csc.exe (3.5.21022.8), C++/C 编译器 cl.exe(15.00.21022.08),<br />
Cygwin中的gcc/g++(3.4.4)<br />
另外对C#编译后的.exe的bytecode还可以通过ngen.exe进行预编译为机器码放入Native Image Cache(C:\windows\assembler)中尝试加快执行速度（免去对CIL的JIT时间）。</p>
<p>编译和运行都在cygwin的shell下通过命令行执行，编译命令行和程序执行的时间见下。</p>
<p>C# (csc.exe)<br />
<code>$ csc /o nbody.cs</code><br />
9.604s, 9.587s, 9.593s, 平均值 9.595s</p>
<p>C# (csc.exe with ngen.exe)<br />
<code>$ csc /o nbody.cs<br />
$ ngen install nbody.exe</code><br />
9.000s, 8.984s, 9.000s, 平均值 8.995s</p>
<p>C (gcc)<br />
<code>$ gcc -O3 nbody.c -o body</code><br />
10.859s, 10.781s, 10.828s, 平均值 10.823s</p>
<p>C (cl.exe)<br />
<code>$ cl /Ox nbody.c</code><br />
12.029s, 12.008s, 12.004s, 平均值 12.014s</p>
<p>C++ (g++)<br />
<code>$ g++ -O3 nbody.cpp -o nbody</code><br />
10.938s, 11.016s, 11.015s, 平均值 10.990s</p>
<p>c++ (cl.exe)<br />
<code>$ cl /Ox nbody.cpp</code><br />
12.584s, 12.572s, 12.528s, 平均值 12.561s</p>
<p>执行的命令行都是</p>
<p><code>$ time ./nbody.exe 20000000</code></p>
<p>通过比较得出结论：</p>
<p>1. 算法才是王道。决定效率的第一因素是算法而不是语言。</p>
<p>2. 解释性语言和编译性语言的执行效率取决于解释器和编译器，而.NET的执行效率确实是高度优化的。从上面的结果可以看出.NET的虚拟机比gcc或者微软自身的C++编译器生成的机器代码效率都要高(9.595s vs 10.823s)。也许你会说这个N体问题特殊，对其他某些问题C/C++会比C#快，但两者效率肯定是一个数量级别的。</p>
<p>3. 微软的C++编译器很烂。在都是用优化选项的前提下，无论是C还是C++代码，微软的cl.exe编译器都比GCC生成的代码慢。C代码慢11%而C++慢了14%. </p>
<p>4. 从对比使用ngen和不用ngen的结果来看，后者仅仅比前者慢了6.7%(0.6秒)，可见.NET对CIL的执行时编译为机器的效率是很高的。</p>
<p>总之，C#.NET的前途是光明的，考虑到Windows的market share有90%，未来的<a href="http://radar.oreilly.com/2007/05/state-of-the-computer-book-mar-15.html">趋势</a>将是：C#.NET打败JAVA，千秋万代一统江湖 <img src='http://huic.72pines.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<p class="postviews_count">阅读(516 次)</p>]]></content:encoded>
			<wfw:commentRss>http://huichen.org/105/feed</wfw:commentRss>
		</item>
		<item>
		<title>机车男代码片段欣赏</title>
		<link>http://huichen.org/104</link>
		<comments>http://huichen.org/104#comments</comments>
		<pubDate>Wed, 16 Jul 2008 20:33:25 +0000</pubDate>
		<dc:creator>hui</dc:creator>
		
		<category><![CDATA[笑话]]></category>

		<guid isPermaLink="false">http://huichen.org/104</guid>
		<description><![CDATA[
上面是以前实验室一位机车男写的C++代码片段。
机车男的风格就是：当你厌倦了temp1, temp2, i, j, k等临时变量的时候，请考虑用 jiche1, jiche2 &#8230;
阅读(455 次)]]></description>
			<content:encoded><![CDATA[<p><a href='http://huic.72pines.com/files/2008/07/jiche.PNG' title='jiche.PNG'><img src='http://huic.72pines.com/files/2008/07/jiche.PNG' alt='jiche.PNG' width="344"></a></p>
<p>上面是以前实验室一位机车男写的C++代码片段。</p>
<p>机车男的风格就是：当你厌倦了temp1, temp2, i, j, k等临时变量的时候，请考虑用 jiche1, jiche2 &#8230;</p>
<p class="postviews_count">阅读(455 次)</p>]]></content:encoded>
			<wfw:commentRss>http://huichen.org/104/feed</wfw:commentRss>
		</item>
		<item>
		<title>Wenjing&#8217;s Kitchen Fu</title>
		<link>http://huichen.org/102</link>
		<comments>http://huichen.org/102#comments</comments>
		<pubDate>Mon, 23 Jun 2008 00:06:08 +0000</pubDate>
		<dc:creator>hui</dc:creator>
		
		<category><![CDATA[Kitchen Fu]]></category>

		<guid isPermaLink="false">http://huichen.org/102</guid>
		<description><![CDATA[文静最近迷上了做菜，大家可以到相册里欣赏一下她的厨艺。文静的菜不仅好吃，而且很有卖相！
http://picasaweb.google.com/usa.chen/WenjingSKitchenFu
沙嗲牛肉

自制酸奶

红烧鱼

大家可以到MITBBS的food版找食谱，很多菜只要严格遵循食谱即可。
阅读(526 次)]]></description>
			<content:encoded><![CDATA[<p>文静最近迷上了做菜，大家可以到相册里欣赏一下她的厨艺。文静的菜不仅好吃，而且很有卖相！</p>
<p><a href="http://picasaweb.google.com/usa.chen/WenjingSKitchenFu">http://picasaweb.google.com/usa.chen/WenjingSKitchenFu</a></p>
<p>沙嗲牛肉<br />
<a href="http://picasaweb.google.com/usa.chen/WenjingSKitchenFu/photo#5214858653726919938"><img src="http://lh6.ggpht.com/usa.chen/SF7mUOlDzQI/AAAAAAAABac/MskpdnbkRzE/s144/%E6%B2%99%E5%97%B2%E7%89%9B%E8%82%895.jpg" width="144"></a></p>
<p>自制酸奶<br />
<a href="http://picasaweb.google.com/usa.chen/WenjingSKitchenFu/photo#5214858653553987746"><img src="http://lh4.ggpht.com/usa.chen/SF7mUN71EKI/AAAAAAAABak/5HHf-BYMqt4/s144/%E9%85%B8%E5%A5%B61.jpg" width="108"></a></p>
<p>红烧鱼<br />
<a href="http://picasaweb.google.com/usa.chen/WenjingSKitchenFu/photo#5208619320591385474"><img src="http://lh3.ggpht.com/usa.chen/SEi7rPYWA4I/AAAAAAAABXI/miQ-FT4a-p8/s144/%E7%BA%A2%E7%83%A7%E9%B1%BC3.jpg" width="144"></a></p>
<p>大家可以到MITBBS的food版找食谱，很多菜只要严格遵循食谱即可。</p>
<p class="postviews_count">阅读(526 次)</p>]]></content:encoded>
			<wfw:commentRss>http://huichen.org/102/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
