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

<channel>
	<title>Yining.write() &#187; Random Thoughts</title>
	<atom:link href="http://www.yining.org/category/random-thoughts/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yining.org</link>
	<description>public virtual stream Yining.write()</description>
	<lastBuildDate>Fri, 04 Jun 2010 12:01:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>		<item>
		<title>从HTTP GET和POST的区别说起</title>
		<link>http://www.yining.org/2010/05/04/http-get-vs-post-and-thoughts/</link>
		<comments>http://www.yining.org/2010/05/04/http-get-vs-post-and-thoughts/#comments</comments>
		<pubDate>Tue, 04 May 2010 11:05:41 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[WebDev]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[学习]]></category>

		<guid isPermaLink="false">http://www.yining.org/?p=371</guid>
		<description><![CDATA[在推特上抱怨面试时问HTTP GETE和POST的区别得到回答都不满意，有人不清楚，当时只回复了看 RFC2616。趁有空说说
面试时得到的回答大多是：POST是安全的，因为被提交的数据看不到，或者被加密的，其它的还有GET的时候中文出现乱码（在地址栏里），数据最大长度限制等等。
说 POST 比 GET 安全肯定是错的，POST跟GET都是明文传输，用httpfox等插件，或者像WireShark 等类似工具就能观察到。
POST和GET的差别其实是很大的。语义上，GET是获取指定URL上的资源，是读操作，重要的一点是不论对某个资源GET多少次，它的状态是不会改变的，在这个意义上，我们说GET是安全的（不是被密码学或者数据保护意义上的安全）。因为GET是安全的，所以GET返回的内容可以被浏览器，Cache服务器缓存起来（其中还有很多细节，但不影响这里的讨论）。
而POST的语意是对指定资源“追加/添加”数据，所以是不安全的，每次提交的POST，参与的代码都会认为这个操作会修改操作对象资源的状态，于是，浏览器在你按下F5的时候会跳出确认框，缓存服务器不会缓存POST请求返回内容。
很遗憾到目前为止没有应聘者能够提到这一点。我猜测这背后的原因大概有两个，一是也许大多数人往往（我也一样）满足于只要完成任务就好，不管用哪个，表单提交了，数据处理了，内容显示或者重新定向到另外一个页面，就算完成了一个任务，从任务表里划掉，结束。而且对大部分项目(OA, CRM, MIS)的大部分情况下，用哪个似乎都可以。
同时，在被商业机构在媒体和书籍上宣传兜售的WS-*概念和使用集成开发环境提供的“方便”的代码生成工具后，“了解”到所有Web服务调用都是通过POST，更潜意识里确定了POST和GET是一样的，而且GET能做的，POST都能做，POST简直就是GET++嘛。自然，能用POST就用POST，不必在乎两者的差别了。
这又让我想起最近学到的一个概念: Radius Of Comprehension，理解的半径:
当学习概念A的时候，需要先了解概念B，而概念C又是理解B的前提。当B和C都是新的需要学习的概念时，可以说A的理解半径是2，如图:

A --> B --> C
&#124;--1--&#124;--2--&#124;

在学习Web开发时，接触到GET和POST时，“理解的半径”可能包涵:

POST vs. GET
     &#124;---> Conditional GET -> ETag -> Cache
     &#124;         `--> Status Code
     `---> HTTP的方法 --> URL

往往因为仅仅满足于完成手上被要求的任务，或者懒于问一个为什么，我们就把自己的理解半径设置成零，那么就学不到更深入的东西，也因此仅仅知道POST和GET不同，而不再会了解不同在哪里，什么是Conditional GET和缓存header等概念。
从一个简单的面试问题谈到这，貌似小题大作了，写到哪算哪吧。 [...]]]></description>
			<content:encoded><![CDATA[<p>在推特上<a href="http://twitter.com/yining/status/12993863581">抱怨面试时问HTTP GETE和POST的区别得到回答都不满意</a>，有人不清楚，当时只回复了看 RFC2616。趁有空说说</p>
<p>面试时得到的回答大多是：POST是安全的，因为被提交的数据看不到，或者被加密的，其它的还有GET的时候中文出现乱码（在地址栏里），数据最大长度限制等等。</p>
<p>说 POST 比 GET 安全肯定是错的，POST跟GET都是明文传输，用<a href="http://code.google.com/p/httpfox/">httpfox</a>等插件，或者像<a href="http://www.wireshark.org/">WireShark </a>等类似工具就能观察到。</p>
<p>POST和GET的差别其实是很大的。语义上，GET是获取指定URL上的资源，是读操作，重要的一点是不论对某个资源GET多少次，它的状态是不会改变的，在这个意义上，我们说GET是安全的（不是被密码学或者数据保护意义上的安全）。因为GET是安全的，所以GET返回的内容可以被浏览器，Cache服务器缓存起来（其中还有很多细节，但不影响这里的讨论）。</p>
<p>而POST的语意是对指定资源“追加/添加”数据，所以是不安全的，每次提交的POST，参与的代码都会认为这个操作会修改操作对象资源的状态，于是，浏览器在你按下F5的时候会跳出确认框，缓存服务器不会缓存POST请求返回内容。</p>
<p>很遗憾到目前为止没有应聘者能够提到这一点。我猜测这背后的原因大概有两个，一是也许大多数人往往（我也一样）满足于只要完成任务就好，不管用哪个，表单提交了，数据处理了，内容显示或者重新定向到另外一个页面，就算完成了一个任务，从任务表里划掉，结束。而且对大部分项目(OA, CRM, MIS)的大部分情况下，用哪个似乎都可以。</p>
<p>同时，在被商业机构在媒体和书籍上宣传兜售的WS-*概念和使用集成开发环境提供的“方便”的代码生成工具后，“了解”到所有Web服务调用都是通过POST，更潜意识里确定了POST和GET是一样的，而且GET能做的，POST都能做，POST简直就是GET++嘛。自然，能用POST就用POST，不必在乎两者的差别了。</p>
<p>这又让我想起最近学到的一个概念: Radius Of Comprehension，理解的半径:</p>
<p>当学习概念A的时候，需要先了解概念B，而概念C又是理解B的前提。当B和C都是新的需要学习的概念时，可以说A的理解半径是2，如图:</p>
<pre>
A --> B --> C
|--1--|--2--|
</pre>
<p>在学习Web开发时，接触到GET和POST时，“理解的半径”可能包涵:</p>
<pre>
POST vs. GET
     |---> Conditional GET -> ETag -> Cache
     |         `--> Status Code
     `---> HTTP的方法 --> URL
</pre>
<p>往往因为仅仅满足于完成手上被要求的任务，或者懒于问一个为什么，我们就把自己的理解半径设置成零，那么就学不到更深入的东西，也因此仅仅知道POST和GET不同，而不再会了解不同在哪里，什么是Conditional GET和缓存header等概念。</p>
<p>从一个简单的面试问题谈到这，貌似小题大作了，写到哪算哪吧。 </p>
<p>&lt;UPDATE&gt;<br />
看到Fenng <a href="http://www.google.com/buzz/dbanotes/BuxABaL5oam/%E4%BB%8EHTTP-GET%E5%92%8CPOST%E7%9A%84%E5%8C%BA%E5%88%AB%E8%AF%B4%E8%B5%B7-Yining">Buzz 了这篇文字</a>，引起一些评论，因此在这再讨论两个概念: <a href="http://tools.ietf.org/html/rfc2616#section-9.1">安全的(Safe)和幂等的(Idempotent)</a>。</p>
<p>安全的是指没有明显的对用户有影响的副作用(包括修改该资源的状态)。HTTP方法里的GET和HEAD都是安全的。</p>
<p>幂等的是指一个方法不论多少次操作，结果都是一样。PUT(把内容放到指定URL)，DELETE(删除某个URL代表的资源)，虽然都修改了资源内容，但多次操作，结果是相同的，因此和HEAD，GET一样都是幂等的。</p>
<p>所以根据HTTP协议，GET是安全的，也是幂等的，而POST既不是安全的，也不是幂等的。<br />
&lt;/UPDATE&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2010/05/04/http-get-vs-post-and-thoughts/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>也说绿色IT生活</title>
		<link>http://www.yining.org/2009/01/21/on-eco-friendly-it-life/</link>
		<comments>http://www.yining.org/2009/01/21/on-eco-friendly-it-life/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 20:27:09 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[green]]></category>

		<guid isPermaLink="false">http://www.yining.org/?p=294</guid>
		<description><![CDATA[Fenng 前阵子写了“绿色IT生活“，分享了一些心得和建议。
我已经做到或者基本做到的有:

无线网络，网线再见；这个基本做到了，除了特殊情况，比如速度、安全或者稳定要求高的特殊情况。
不用光盘，网上下载；
不换电话，少打电话；从手机更新频率（现在的手机是一年半前买的）和话费，都属于运营商定义的“垃圾用户”；
不写笔记，多写网志 ；这给我改成写在Wiki上（毕竟我写在网志上的东西不会写在纸上，笔记上的也多半不会放在网志上）；
买东西尽量买同类商品中品质好一点的那个；这个毛病/习惯我早就有了；
少弄一些劣质 T 恤。穿过一次就扔掉了，太浪费。牛仔裤也尽量少买，发扬&#8221;一条裤子穿三年&#8221;的革命朴素主义精神。－ 这里一定要赞一下自己，过去的365天里没买一件/双 衣服/袜子/鞋子（除了网志年会和厦门马拉松的T-shirt，那都已经算在报名费里的）；
不去领一些惠而不费的礼品。基本上都没什么实际用途的东西，尤其是一些展会上厂商分发的玩意儿。－ 恩，我也没这样的机会 :-D

我确定做不到或者有别的办法的有：

少买图书，不买杂志；这点对我来说，那是相当的难啊。的确，图书杂志浪费纸张，不环保，在家里还占地方。但又不能不买，解决办法是可以跟朋友同好共享，比如互相借阅或者交换，跟Fenng在线上曾经讨论过，他说异地借书需要快递，可快递也浪费资源。可那至少减少浪费纸张了，再不行就本地朋友之间借阅吧。对了，家里占地方的旧杂志可以废物利用，比如：Craft a Table Using Old Magazines，省了买家具；
抛弃鼠标，这点确实做不到，买个好点的鼠标和鼠标垫（参见前面“买东西尽量买同类商品中品质好一点的那个”一项 :-D）；至于尽量熟悉键盘快捷键，减少鼠标操作对阅读造成的中断，这点我赞成并要不断提高；

自己再补充几条：

关于读书，多读电子书，并继续订阅O&#8217;Reilly的Safari在线图书馆，昨天看到O&#8217;Reilly也裁员了，继续订阅也算是继续支持他们；
使用白板，不仅办公室里用，家里房间里也摆一块，页面设计，程序设计，To-Do-List都可以用。尽量用环保的马克笔，实在不行可以争取废品回收；
使用dopplr.com来记录自己的每一次旅行，dopplr会提供每次和一年里旅行所产生的C2O值，这也算保持对环保的意识和对自己的监督吧；
使用小软件来控制和优化电脑的电源使用，比如：Local Cooling和省省看；
重复利用硬件，废品回收。看看今年有没有机会做个硬件复用的项目，到时候汇报；
去咖啡屋买咖啡争取带自己的杯子，据说这样会被人说是213，213就213吧，比那什么还少37不是？
少抽烟到不抽烟，现在每天在线汇报并记录，自我监控；

最后，对作为写代码的（SA和DBA也需要写代码的）来说，也是最重要的：
写高效率的代码，减少和优化CPU和硬盘使用；
先记这些，年底的时候再回头看看自己做得怎么样。
问题：假设有n个城市C1,C2,&#8230;Cn，每个城市里有Mi(1&#60;i&#60;n)个人，他们互相信任并愿意交换和借阅各自拥有的图书，每两个城市(x,y)之间的快递所需耗费的能源已知是Exy，且已知每个人拥有并愿意借出的书(Bi1,Bi2,&#8230; )和想看的书；设计一个算法能够：1）让他们所有人能够借阅到自己想看的书，且；2）因快递图书而导致的能源消耗最少。
这要是延伸做个豆瓣App应该很赞吧？
]]></description>
			<content:encoded><![CDATA[<p>Fenng 前阵子写了<a href="http://www.dbanotes.net/mylife/green_it_life.html">“绿色IT生活“</a>，分享了一些心得和建议。</p>
<p>我已经做到或者基本做到的有:</p>
<ul>
<li>无线网络，网线再见；这个基本做到了，除了特殊情况，比如速度、安全或者稳定要求高的特殊情况。</li>
<li>不用光盘，网上下载；</li>
<li>不换电话，少打电话；从手机更新频率（现在的手机是一年半前买的）和话费，都属于运营商定义的“垃圾用户”；</li>
<li>不写笔记，多写网志 ；这给我改成写在Wiki上（毕竟我写在网志上的东西不会写在纸上，笔记上的也多半不会放在网志上）；</li>
<li>买东西尽量买同类商品中品质好一点的那个；这个毛病/习惯我早就有了；</li>
<li>少弄一些劣质 T 恤。穿过一次就扔掉了，太浪费。牛仔裤也尽量少买，发扬&#8221;一条裤子穿三年&#8221;的革命朴素主义精神。－ 这里一定要赞一下自己，过去的365天里没买一件/双 衣服/袜子/鞋子（除了网志年会和厦门马拉松的T-shirt，那都已经算在报名费里的）；</li>
<li>不去领一些惠而不费的礼品。基本上都没什么实际用途的东西，尤其是一些展会上厂商分发的玩意儿。－ 恩，我也没这样的机会 :-D</li>
</ul>
<p>我确定做不到或者有别的办法的有：</p>
<ul>
<li>少买图书，不买杂志；<a href="http://www.douban.com/book/list/yining/wish">这点对我来说，那是相当的难啊</a>。的确，图书杂志浪费纸张，不环保，在家里还占地方。但又不能不买，解决办法是可以跟朋友同好共享，比如互相借阅或者交换，跟Fenng在线上曾经讨论过，他说异地借书需要快递，可快递也浪费资源。可那至少减少浪费纸张了，再不行就本地朋友之间借阅吧。对了，家里占地方的旧杂志可以废物利用，比如：<a href="http://www.re-nest.com/re-nest/how-to/how-to-craft-a-table-using-old-magazines-060208">Craft a Table Using Old Magazines</a>，省了买家具；</li>
<li>抛弃鼠标，这点确实做不到，买个好点的鼠标和鼠标垫（参见前面“买东西尽量买同类商品中品质好一点的那个”一项 :-D）；至于尽量熟悉键盘快捷键，减少鼠标操作对阅读造成的中断，这点我赞成并要不断提高；</li>
</ul>
<p>自己再补充几条：</p>
<ul>
<li>关于读书，多读电子书，并继续订阅<a href="http://safari.oreilly.com">O&#8217;Reilly的Safari在线图书馆</a>，昨天看到<a href="http://fyi.oreilly.com/2009/01/changes-at-oreilly.html">O&#8217;Reilly也裁员了</a>，继续订阅也算是继续支持他们；</li>
<li>使用白板，不仅办公室里用，家里房间里也摆一块，页面设计，程序设计，To-Do-List都可以用。尽量用环保的马克笔，实在不行可以<a href="http://gogreen.theconsortium.co.uk/teachers-are-you-eco-friendly-with-your-whiteboard-marker-pens/">争取废品回收</a>；</li>
<li>使用<a href="http://www.dopplr.com">dopplr.com</a>来记录自己的每一次旅行，dopplr会提供每次和一年里旅行所产生的C2O值，这也算保持对环保的意识和对自己的监督吧；</li>
<li>使用小软件来控制和优化电脑的电源使用，比如：<a href="http://www.localcooling.com/">Local Cooling</a>和<a href="http://www.appinn.com/shengshengkan/">省省看</a>；</li>
<li>重复利用硬件，废品回收。看看今年有没有机会做个硬件复用的项目，到时候汇报；</li>
<li>去咖啡屋买咖啡争取带自己的杯子，据说这样会被人说是213，213就213吧，比那什么还少37不是？</li>
<li>少抽烟到不抽烟，现在每天在线汇报并记录，自我监控；</li>
</ul>
<p>最后，对作为写代码的（SA和DBA也需要写代码的）来说，也是最重要的：</p>
<p><em style="font-weight:bold">写高效率的代码，减少和优化CPU和硬盘使用；</em></p>
<p>先记这些，年底的时候再回头看看自己做得怎么样。</p>
<p>问题：假设有n个城市C1,C2,&#8230;Cn，每个城市里有Mi(1&lt;i&lt;n)个人，他们互相信任并愿意交换和借阅各自拥有的图书，每两个城市(x,y)之间的快递所需耗费的能源已知是Exy，且已知每个人拥有并愿意借出的书(Bi1,Bi2,&#8230; )和想看的书；设计一个算法能够：1）让他们所有人能够借阅到自己想看的书，且；2）因快递图书而导致的能源消耗最少。</p>
<p>这要是延伸做个豆瓣App应该很赞吧？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2009/01/21/on-eco-friendly-it-life/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ciao, 2008. Hi, 2009.</title>
		<link>http://www.yining.org/2008/12/31/ciao-2008-hi-2009/</link>
		<comments>http://www.yining.org/2008/12/31/ciao-2008-hi-2009/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 14:57:13 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[new-year]]></category>

		<guid isPermaLink="false">http://www.yining.org/?p=242</guid>
		<description><![CDATA[Best wishes to you all.
Hope we all will have done something good/meaningful/great/interesting/fun/profitable in the next 365 days, and most of all, have no regrets.
]]></description>
			<content:encoded><![CDATA[<p>Best wishes to you all.</p>
<p>Hope we all will have done something good/meaningful/great/interesting/fun/profitable in the next 365 days, and most of all, have no regrets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2008/12/31/ciao-2008-hi-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>微软，盗版，和粉丝</title>
		<link>http://www.yining.org/2008/10/21/piracy-microsoft-and-fans/</link>
		<comments>http://www.yining.org/2008/10/21/piracy-microsoft-and-fans/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 13:58:01 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[piracy]]></category>
		<category><![CDATA[微软]]></category>
		<category><![CDATA[盗版]]></category>

		<guid isPermaLink="false">http://www.yining.org/?p=167</guid>
		<description><![CDATA[keso说：

 中国用户是有骨气的，很多出色的开源操作系统摆在我们面前，我们从来都没有正眼瞧过。我们不光热爱微软的Windows，还热爱微软的 Office，微软的IE。我们热爱微软，所以我们不给微软的竞争对手任何机会，你的产品再好，我就是不用。我们万众一心，牢牢地替微软把守着市场占有率的阵地。让Linux走开，让金山转型做游戏，让所有超越的梦想慢慢枯竭而死。不用谢我们，这都是一名粉丝应该做的。

其实，粉丝与粉丝还是不一样的，只要掌握了一小撮粉丝，所有的粉丝就会永远像现在“早已丧失了选择的能力“而“爱微软”。
还是让Steve Balmer亲自告诉大家这一群粉丝是谁吧，请看大屏幕：

Developer，软件开发者。只要他们还在开发只在Windows上运行的软件（股票客户端，图片编辑，即时通讯，在线银行服务&#8230; 所有工作的挣钱的管钱的打发时间的），那么大部分的用户还是要使用Windows不可。究其根源，与爱无关，与盗版无关，这是依赖。要让大众有更多的选择，首先就要让开发者提供相应的选择。 在大陆，很遗憾，大部分的程序员还是离不开Windows，即使开发语言是跨平台的Java，PHP等，他们还是要在Windows上编程和测试。
哦，对了，他们学习起步的教材的编纂者们，他们的老师们，恐怕也多是粉丝，而且还有言传身教盗版的粉丝。
不改变软件开发者们对Windows的依赖，就算半年微软后把黑屏改成每俩小时重启一次，粉丝们的爱还是爱不完的。即使Windows最后彻底不让用了，他们也会像电影《肖申克的救赎》里的老Brooks一样，恢复自由身后，还是在墙上刻上“粉丝曾经在这里”，然后踢倒脚下的凳子，吊死自己，如Brooks的狱友，Morgan Freeman扮演的Red的一句台词：

These walls are funny. First you hate &#8216;em, then you get used to &#8216;em. Enough time passes, you get so you depend on them. That&#8217;s institutionalized.

]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.donews.com/keso/archive/2008/10/21/1364509.aspx">keso说</a>：</p>
<blockquote><p>
 中国用户是有骨气的，很多出色的开源操作系统摆在我们面前，我们从来都没有正眼瞧过。我们不光热爱微软的Windows，还热爱微软的 Office，微软的IE。我们热爱微软，所以我们不给微软的竞争对手任何机会，你的产品再好，我就是不用。我们万众一心，牢牢地替微软把守着市场占有率的阵地。让Linux走开，让金山转型做游戏，让所有超越的梦想慢慢枯竭而死。不用谢我们，这都是一名粉丝应该做的。
</p></blockquote>
<p>其实，粉丝与粉丝还是不一样的，只要掌握了一小撮粉丝，所有的粉丝就会永远像现在“早已丧失了选择的能力“而“爱微软”。</p>
<p>还是让Steve Balmer亲自告诉大家这一群粉丝是谁吧，请看大屏幕：</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/8To-6VIJZRE&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/8To-6VIJZRE&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Developer，软件开发者。只要他们还在开发只在Windows上运行的软件（股票客户端，图片编辑，即时通讯，在线银行服务&#8230; 所有工作的挣钱的管钱的打发时间的），那么大部分的用户还是要使用Windows不可。究其根源，与爱无关，与盗版无关，这是依赖。要让大众有更多的选择，首先就要让开发者提供相应的选择。 在大陆，很遗憾，大部分的程序员还是离不开Windows，即使开发语言是跨平台的Java，PHP等，他们还是要在Windows上编程和测试。</p>
<p>哦，对了，他们学习起步的教材的编纂者们，他们的老师们，恐怕也多是粉丝，而且还有<a href="http://digibbs.tech.163.com/bbs/nbdiy/97104676.html">言传身教盗版的粉丝</a>。</p>
<p>不改变软件开发者们对Windows的依赖，就算半年微软后把黑屏改成每俩小时重启一次，粉丝们的爱还是爱不完的。即使Windows最后彻底不让用了，他们也会像电影《肖申克的救赎》里的老Brooks一样，恢复自由身后，还是在墙上刻上“粉丝曾经在这里”，然后踢倒脚下的凳子，吊死自己，如Brooks的狱友，Morgan Freeman扮演的Red的一句台词：</p>
<blockquote><p>
These walls are funny. First you hate &#8216;em, then you get used to &#8216;em. Enough time passes, you get so you depend on them. That&#8217;s institutionalized.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2008/10/21/piracy-microsoft-and-fans/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>也算文物：Windows 95和我</title>
		<link>http://www.yining.org/2008/05/05/looking-back-windows-95-and-me/</link>
		<comments>http://www.yining.org/2008/05/05/looking-back-windows-95-and-me/#comments</comments>
		<pubDate>Mon, 05 May 2008 15:13:37 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[windows95]]></category>

		<guid isPermaLink="false">http://www.yining.org/?p=157</guid>
		<description><![CDATA[这几天在收拾东西，惊喜地翻出95年买的Windows 95和Plus!一套！那天微软全球同步发布Windows 95，晚上（因为与美国的时差）我和同学一起到Funan Center排队购买。当时发布的媒介分CD和3寸盘两种版本（没有MSDN下载，MSJ杂志也还没改名MSDN），轮到我的时候已经没有CD版了，于是先拿了3寸盘的，结果后来补了CD，但3寸盘也留下了。
当时还在上学，系里有个很有名的教授(AP)，出版过IBM360(?)操作系统的专著，于是当年操作系统有一个学期的一大部分课时就是听这个瘦小精干的老头侃IBM的JCL(Job Control Language)。那时候学生个人用的都是DOS和Windows 3.11，学校机房里是Sun的工作站和DEC VAX的终端，几乎没人知道离开自己一个北半球的地方有个将在几年内影响全球IT界的Linux。
那个JCL让我昏昏欲睡，虽然老教授目光炯炯抑扬顿挫，但我知道自己不会在那玩意上浪费哪怕一分钟（当然，要是那时候努力学习并精通的话，也许一辈子工作都有保证了 － 但这既不是当时也不是现在的我想要的）。自己买了Jeffrey Ritcher的Advanced Windows了解Win32，直到现在我还是觉得那是一本非常经典的好书，把Windows上的pre-emptive multi-tasking，32位寻址空间，虚拟内存，线程和进程等操作系统上的核心概念深入浅出解释得很透彻明白，我也从此开始了几年的基于Windows开发的历程，OLE, COM, MTS，COM+, &#8230; 甚至一直到工作上使用Java之后，曾经为了实现EJB Container也向MTS借鉴了一番。
我现在基本上已经不用Windows了，改用Linux已经好几年，而且是直接从网络上下载后安装。大部分人包括我自己都不是技术上的弄潮儿，都是被新的技术和发现不断推着向前冲。想想看，如果回到过去看现在，对一切的变化，一定要比站在此时看过去要感到震惊得多。
Windows 95是自己掏钱买的第一套Windows，也是自己掏钱买的第一套操作系统（本来想说也是最后一套，但是想想，那些随笔记本一起的OEM的Windows XP其实也是自己掏钱买的&#8230;）。
写了上面这些字，回顾一把；拍几张照，纪念一下。
包装盒外观和当时把Windows95作封面的Newsweek和BusinessWeek：

里面的东西，有CDKEY和正版证书 :)

相关链接：

Wikpedia上的Windows 95的介绍

]]></description>
			<content:encoded><![CDATA[<p>这几天在收拾东西，惊喜地翻出95年买的Windows 95和Plus!一套！那天微软全球同步发布Windows 95，晚上（因为与美国的时差）我和同学一起到Funan Center排队购买。当时发布的媒介分CD和3寸盘两种版本（没有MSDN下载，MSJ杂志也还没改名MSDN），轮到我的时候已经没有CD版了，于是先拿了3寸盘的，结果后来补了CD，但3寸盘也留下了。</p>
<p>当时还在上学，系里有个很有名的教授(AP)，出版过IBM360(?)操作系统的专著，于是当年操作系统有一个学期的一大部分课时就是听这个瘦小精干的老头侃IBM的JCL(<a href="http://en.wikipedia.org/wiki/Job_control_language">Job Control Language</a>)。那时候学生个人用的都是DOS和Windows 3.11，学校机房里是Sun的工作站和DEC VAX的终端，几乎没人知道离开自己一个北半球的地方有个将在几年内影响全球IT界的Linux。</p>
<p>那个JCL让我昏昏欲睡，虽然老教授目光炯炯抑扬顿挫，但我知道自己不会在那玩意上浪费哪怕一分钟（当然，要是那时候努力学习并精通的话，也许一辈子工作都有保证了 － 但这既不是当时也不是现在的我想要的）。自己买了Jeffrey Ritcher的<a href="http://www.douban.com/subject/3063405/">Advanced Windows</a>了解Win32，直到现在我还是觉得那是一本非常经典的好书，把Windows上的pre-emptive multi-tasking，32位寻址空间，虚拟内存，线程和进程等操作系统上的核心概念深入浅出解释得很透彻明白，我也从此开始了几年的基于Windows开发的历程，OLE, COM, MTS，COM+, &#8230; 甚至一直到工作上使用Java之后，曾经为了实现EJB Container也向MTS借鉴了一番。</p>
<p>我现在基本上已经不用Windows了，改用Linux已经好几年，而且是直接从网络上下载后安装。大部分人包括我自己都不是技术上的弄潮儿，都是被新的技术和发现不断推着向前冲。想想看，如果回到过去看现在，对一切的变化，一定要比站在此时看过去要感到震惊得多。</p>
<p>Windows 95是自己掏钱买的第一套Windows，也是自己掏钱买的第一套操作系统（本来想说也是最后一套，但是想想，那些随笔记本一起的OEM的Windows XP其实也是自己掏钱买的&#8230;）。</p>
<p>写了上面这些字，回顾一把；拍几张照，纪念一下。</p>
<p>包装盒外观和当时把Windows95作封面的Newsweek和BusinessWeek：</p>
<p><a href="http://www.flickr.com/photos/yining/2467868288/" title="IMG_0539 by ZhangYining, on Flickr"><img src="http://farm4.static.flickr.com/3032/2467868288_bd8ee2c6ac.jpg" width="500" height="375" alt="IMG_0539" /></a></p>
<p>里面的东西，有CDKEY和正版证书 :)</p>
<p><a href="http://www.flickr.com/photos/yining/2467868316/" title="img_0541 by ZhangYining, on Flickr"><img src="http://farm4.static.flickr.com/3029/2467868316_4aba28e2c1.jpg" width="500" height="375" alt="img_0541" /></a></p>
<p>相关链接：</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Windows_95">Wikpedia上的Windows 95的介绍</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2008/05/05/looking-back-windows-95-and-me/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>QOTD &#8211; million-line Perl programs</title>
		<link>http://www.yining.org/2008/04/02/qotd-million-line-perl-programs/</link>
		<comments>http://www.yining.org/2008/04/02/qotd-million-line-perl-programs/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 20:32:03 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.yining.org/?p=143</guid>
		<description><![CDATA[In Infoworld&#8217;s article, Java performance improvements touted quoted:

As your program grows in size, the lack of strong typing basically kills your ability to handle a very large program and so you don&#8217;t find the million-line Perl program.

In response, chromatic said:

the reason that there aren’t many million-line Perl programs is that the people who are capable [...]]]></description>
			<content:encoded><![CDATA[<p>In Infoworld&#8217;s article, <a href="http://www.infoworld.com/article/08/03/26/java-speed_1.html">Java performance improvements touted</a> quoted:</p>
<blockquote><p>
As your program grows in size, the lack of strong typing basically kills your ability to handle a very large program and so you don&#8217;t find the million-line Perl program.
</p></blockquote>
<p>In response, <a href="http://www.oreillynet.com/onlamp/blog/2008/03/mistaking_cons_for_pros.html">chromatic said</a>:</p>
<blockquote><p>
the reason that there aren’t many million-line Perl programs is that the people who are capable of writing and managing million-line Perl programs have better ways to organize their projects than glomming a million lines of Java into a single shared-everything instance.
</p></blockquote>
<p>My reflection and thoughts:</p>
<ol>
<li>Interestingly, why the pick on Perl? not Python or Ruby or Lisp-flavoured ones?</li>
<li>s/Perl/PHP/g or s/Perl/Python/g etc. on chromatic&#8217;s quote still valid and sound;</li>
<li>Java =&gt; Strong typing? Not necessarily always;</li>
<li>IntelliJ IDEA is the only reason I still code in Java, Eclipse? that would be another post;</li>
<li>Vim (together with some bash scripts and esvn) has been my primary &#8220;IDE&#8221; for projects that involve php, python, bash and javascript;</li>
<li>I have written Perl applications before, and would be very happy to pick it up for my next project if everything else fits (e.g. the team factor);</li>
<li>When would I code in Java? most likely a project that:
<ul>
<li>being <em>&#8220;enterprisy&#8221;</em>, or</li>
<li>I am really interested to learn, explore and apply, e.g. Antlr.</li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2008/04/02/qotd-million-line-perl-programs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>无题</title>
		<link>http://www.yining.org/2008/03/29/no-title/</link>
		<comments>http://www.yining.org/2008/03/29/no-title/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 08:05:07 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>

		<guid isPermaLink="false">http://www.yining.org/2008/03/29/no-title/</guid>
		<description><![CDATA[王佩入了一台Canon 400D。
读着他的文字，自己当时进了第一台相机时的感受冒了出来。
很久很久很久很久以前，我开始玩摄影（准确地说是照相），耗费了许多精力，财力，和时间，周末和朋友出门拍照然后聚在一起放片子，和各家器材店的伙计们混个脸熟，下载无数图片，阅读器材评测报告，研究镜头和胶卷特性曲线，千万思量后下狠心告诉自己这是今年最后进的一个镜头或者相机，然后没多久又进一个&#8230;，上班下班只要上网就流连于各个摄影论坛，灌水或者看人灌水，拍砖或者被人拍砖。
那时在无忌摄影论坛（器材派们最热爱的论坛，那时那里只讨论摄影器材不像现在无所不涵连烟斗似乎都有专门的版块）上有一句经典：
如果你爱一个人，送他一台相机；如果你恨一个人，送他一台相机。
王佩一定非常爱自己，除了笔，他又多了一支表达自己的工具。
我已经很久很久很久很久很久没有真正地摸相机了。
就算拿起来，按了快门，也不再有当时那种热情和专注，或者说，那种幸福感。
王佩说：“人生之所以痛苦而有趣，乃是因为永远充满着选择。”
无间道里说：“出来混，总是要还的。”
要还多久？
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.baibanbao.net/?p=1423">王佩入了一台Canon 400D</a>。</p>
<p>读着他的文字，自己当时进了第一台相机时的感受冒了出来。</p>
<p>很久很久很久很久以前，我开始玩摄影（准确地说是照相），耗费了许多精力，财力，和时间，周末和朋友出门拍照然后聚在一起放片子，和各家器材店的伙计们混个脸熟，下载无数图片，阅读器材评测报告，研究镜头和胶卷特性曲线，千万思量后下狠心告诉自己这是今年最后进的一个镜头或者相机，然后没多久又进一个&#8230;，上班下班只要上网就流连于各个摄影论坛，灌水或者看人灌水，拍砖或者被人拍砖。</p>
<p>那时在无忌摄影论坛（器材派们最热爱的论坛，那时那里只讨论摄影器材不像现在无所不涵连烟斗似乎都有专门的版块）上有一句经典：</p>
<blockquote><p>如果你爱一个人，送他一台相机；如果你恨一个人，送他一台相机。</p></blockquote>
<p>王佩一定非常爱自己，除了笔，他又多了一支表达自己的工具。</p>
<p>我已经很久很久很久很久很久没有真正地摸相机了。</p>
<p>就算拿起来，按了快门，也不再有当时那种热情和专注，或者说，那种幸福感。</p>
<p>王佩说：“人生之所以痛苦而有趣，乃是因为永远充满着选择。”</p>
<p>无间道里说：“出来混，总是要还的。”</p>
<p>要还多久？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2008/03/29/no-title/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>会议和听众注意力</title>
		<link>http://www.yining.org/2008/03/18/conference-and-audience-attention/</link>
		<comments>http://www.yining.org/2008/03/18/conference-and-audience-attention/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 03:23:16 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[cnbloggercon]]></category>

		<guid isPermaLink="false">http://www.yining.org/2008/03/18/conference-and-audience-attention/</guid>
		<description><![CDATA[Ian Betteridge：

At tech conferences, you have an audience that is largely paying attention to their screens, rather than to what’s happening on stage. This means that the reaction of the audience will be magnified, as the reaction is passed from audience member to audience member in real time.
&#8230;
But the problem with an audience which is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.technovia.co.uk/2008/03/sarah-lacy-and-the-cult-of-continuous-partial-attention.html">Ian Betteridge</a>：</p>
<blockquote><p>
At tech conferences, you have an audience that is largely paying attention to their screens, rather than to what’s happening on stage. This means that the reaction of the audience will be magnified, as the reaction is passed from audience member to audience member in real time.<br />
&#8230;<br />
But the problem with an audience which is live blogging, Twittering, and so on is that it’s not paying attention to what’s happening on stage.
</p></blockquote>
<p>虽然<a href="http://www.cnbloggercon.org">网志年会</a>算不上“tech conference”，但这种现象在往届会场上已经很熟悉了，从台上看下去，满场尽是笔记本。而且去年的会场上的一大特点就是专门有个大屏幕实时更新汇集的短信。不知道如果讲台上也能看到同样的在线反馈，会有怎样的效果。</p>
<p>吸引和保持观众（包括异地在线观众）的注意力，这对组织者和台上的演讲者是个挑战。今年的网志年会也要开始准备筹办工作了，还不知道今年会在哪个城市举办，期待中。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2008/03/18/conference-and-audience-attention/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>到底是这网站挂了还是我有问题？</title>
		<link>http://www.yining.org/2008/03/18/is-this-website-down-for-everyone-or-just-me/</link>
		<comments>http://www.yining.org/2008/03/18/is-this-website-down-for-everyone-or-just-me/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 18:20:07 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.yining.org/2008/03/18/is-this-website-down-for-everyone-or-just-me/</guid>
		<description><![CDATA[发现一个有用的网站：Is this website down for everyone or just me，中文就是：到底是这网站挂了还是我有问题。
很明显它只做一件事情，就是当你发现某个网站访问不了或者出故障的时候，可以把网站的地址输入，它会告诉你到底是所有人都访问不了这个网站，还是只有你遇到问题。
当然，同学们，这回复结果就非此即彼的两个答案，一看就知道这网站是吃不上河鲜的人做的，too simple! sometimes naive!
至少要多两个答案：墙内的访问不了；墙外的访问不了。
这个案例告诉我们什么呢，第一，网络产品/服务的本地化不是换换文本和字体这么简单；第二，吃不上河鲜代表不了先进生产力。
最后，希望这网络服务的本地化的国产版本能够早日出来。
更新：
今天的LifeHacker推荐了另外一个类似的手段，使用的是Firefox的Bookmark Keyword的功能结合Network Tools的服务。当然，也可以实现traceroute等。同样的，也可以用相同的办法给http://downforeveryoneorjustme.com/ 也做一个：
创建一个新bookmark，名字随便，地址为：
http://downforeveryoneorjustme.com/%s
 自己想个keyword，比如“justme”，保存，搞定。
比如要想查youtube，在地址栏上直接输入justme www.youtube.com
]]></description>
			<content:encoded><![CDATA[<p>发现一个有用的网站：<a href="http://downforeveryoneorjustme.com/">Is this website down for everyone or just me</a>，中文就是：到底是这网站挂了还是我有问题。</p>
<p>很明显它只做一件事情，就是当你发现某个网站访问不了或者出故障的时候，可以把网站的地址输入，它会告诉你到底是所有人都访问不了这个网站，还是只有你遇到问题。</p>
<p>当然，同学们，这回复结果就非此即彼的两个答案，一看就知道这网站是吃不上河鲜的人做的，too simple! sometimes naive!</p>
<p>至少要多两个答案：墙内的访问不了；墙外的访问不了。</p>
<p>这个案例告诉我们什么呢，第一，网络产品/服务的本地化不是换换文本和字体这么简单；第二，吃不上河鲜代表不了先进生产力。</p>
<p>最后，希望这网络服务的本地化的国产版本能够早日出来。</p>
<p>更新：</p>
<p>今天的<a href="http://lifehacker.com/368611/ping-servers-from-the-firefox-address-bar">LifeHacker推荐了另外一个类似的手段</a>，使用的是Firefox的Bookmark Keyword的功能结合<a href="http://network-tools.com">Network Tools</a>的服务。当然，也可以实现traceroute等。同样的，也可以用相同的办法给http://downforeveryoneorjustme.com/ 也做一个：</p>
<p>创建一个新bookmark，名字随便，地址为：
<pre>http://downforeveryoneorjustme.com/%s</pre>
<p> 自己想个keyword，比如“justme”，保存，搞定。</p>
<p>比如要想查youtube，在地址栏上直接输入justme www.youtube.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2008/03/18/is-this-website-down-for-everyone-or-just-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网志年会的不算后记的后记 2</title>
		<link>http://www.yining.org/2007/11/09/cnbloggercon2007-random-thoughts-2/</link>
		<comments>http://www.yining.org/2007/11/09/cnbloggercon2007-random-thoughts-2/#comments</comments>
		<pubDate>Fri, 09 Nov 2007 06:22:12 +0000</pubDate>
		<dc:creator>Yining</dc:creator>
				<category><![CDATA[Random Thoughts]]></category>
		<category><![CDATA[cnbloggercon]]></category>
		<category><![CDATA[cbc2007]]></category>

		<guid isPermaLink="false">http://www.yining.org/2007/11/09/cnbloggercon2007-random-thoughts-2/</guid>
		<description><![CDATA[年会后的记录和评论有很多，有人说失败，有人说尴尬，有人只待了半天，有人根本不想来，有人认为这种网人的聚会根本没有意义，也有说这年会是个失败的项目管理。
没有什么能够让每个人都满意都高兴，也没有什么能够让不满意不高兴的人不说话，也许除了前不久的那个会。
大多数的意见都是在各自的blog上说的，能有多样的反馈，及时出现，轻松找到，正是blog的力量和blog带来的更丰富对话的魅力 &#8211; Amen.
来了，参与了，有收获就好。每个参会的人从年会带走的都不一样，我知道有人可能回去就开始动手写个在线杀人的网站。于鹏飞建议年会的形式或者部分时间段的形式可以考虑参照MIDI音乐节的组织形式，小众的，分散的，spontaneous的，self-emergent的，这是个好主意，也许明年亲自去体验看看？
会场关闭，年会结束，欣欣有些忧伤，在我看来，年会结束只是 the end of begining，年会上的话题没能继续下去或者仍然停留在小圈子的回音室里，那才算是失败。
P.S. 这回从福州去的朋友多了不少，可是除了跟Avenger聊了一会儿以外，还没机会多沟通，争取在福州找机会聚聚吧
]]></description>
			<content:encoded><![CDATA[<p>年会后的记录和评论有很多，有人说失败，有人说尴尬，有人只待了半天，有人根本不想来，有人认为这种网人的聚会根本没有意义，也有说这年会是个失败的项目管理。</p>
<p>没有什么能够让每个人都满意都高兴，也没有什么能够让不满意不高兴的人不说话，也许除了前不久的那个会。</p>
<p>大多数的意见都是在各自的blog上说的，能有多样的反馈，<a href="http://www.technorati.com/search/cnbloggercon?authority=a4&#038;language=n">及时出现</a>，<a href="http://blogsearch.google.com/blogsearch?hl=en&#038;ie=UTF-8&#038;q=%E7%BD%91%E5%BF%97%E5%B9%B4%E4%BC%9A&#038;btnG=Search+Blogs">轻松找到</a>，正是blog的力量和blog带来的更丰富对话的魅力 &#8211; Amen.</p>
<p>来了，参与了，有收获就好。每个参会的人从年会带走的都不一样，我知道有人可能回去就开始动手写个在线杀人的网站。<a href="http://blog.yupf.com/">于鹏飞</a>建议年会的形式或者部分时间段的形式可以考虑参照MIDI音乐节的组织形式，小众的，分散的，spontaneous的，self-emergent的，这是个好主意，也许明年亲自去体验看看？</p>
<p>会场关闭，年会结束，<a href="http://www.lvxinxin.com/archives/230">欣欣有些忧伤</a>，在我看来，年会结束只是 the end of begining，年会上的话题没能继续下去或者仍然停留在小圈子的<a href="http://en.wikipedia.org/wiki/Echo_chamber">回音室</a>里，那才算是失败。</p>
<p>P.S. 这回从福州去的朋友多了不少，可是除了跟<a href="http://avenger.name/blog/">Avenger</a>聊了一会儿以外，还没机会多沟通，争取在福州找机会聚聚吧</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yining.org/2007/11/09/cnbloggercon2007-random-thoughts-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

