<?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/"
	>

<channel>
	<title>Never Ending</title>
	<atom:link href="http://www.never-ending.me/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.never-ending.me/blog</link>
	<description>// Author: Garriot Zhang</description>
	<lastBuildDate>Sat, 04 Sep 2010 08:45:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How to load java classes from a jar file</title>
		<link>http://www.never-ending.me/blog/2010/09/04/250/</link>
		<comments>http://www.never-ending.me/blog/2010/09/04/250/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 08:45:54 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[classes]]></category>
		<category><![CDATA[classloader]]></category>
		<category><![CDATA[jar]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.never-ending.me/blog/?p=250</guid>
		<description><![CDATA[Views: 15Yesterday, a colleague asked me how to load classes from a jar file (of course, I&#8217;m talking about java). All most information from internet tell us how to load java classes from a folder or class files. Less talk about how to load java classes from a jar. Actually, the thought to load classes [...]]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/09/04/250/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>30岁，失眠了</title>
		<link>http://www.never-ending.me/blog/2010/08/29/241/</link>
		<comments>http://www.never-ending.me/blog/2010/08/29/241/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 13:55:03 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Living]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[创业]]></category>

		<guid isPermaLink="false">http://www.never-ending.me/blog/?p=241</guid>
		<description><![CDATA[Views: 8我一次拥有自己的计算机还是在96年，那时候计算机对我的作用就是能让我用Foxbase弄个通讯录，要不就使用QBasic算个二次函数。那时候我的机器在世界上是孤独的，只有我能和它用简单的DOS或者QBasic的方式交流交流。别人很难理解这个方盒子里面到底是什么东西。 那时候，我毫无互联网这个概念。有次去我一个哥哥家里，看到他正在用term泡BBS，一个黑底黄边白字的界面，我还以为是个某个单机DOS程序，当时表示对此毫无兴趣。那时候我还不知道这种程序加了个猫和电话线的程序将改变大多数人对那个方盒子的认识和使用方式。 98年，上了大学以后，我开始上网了。最初上网的原因是，自己学VB，周围资料太少，就去一些杂志和报纸上的推荐网页去找资料。后来有了叫CSDN的网站，就彻底开始了泡网生涯。（那时候的CSDN有很多牛人。好像VB的版主是个微软的技术人员）。 那年，当我扎入网络的时候，见识到了当年的网络风潮。那时候，互联网上到处都是免费的host服务，从html网页到asp/php服务一应俱全。那时候就有了免费给你送钱的广告链：只要你把广告放在你的页面上，甚至浏览者不用点击你都可以赚钱。看着满天飞的概念、热词，和各类层出不穷的网站，我傻眼了，我当时感觉真的是：IT这个行业真的是“钱多，人傻！”，于是立志要一头扎进去，奋斗一把，然后开始苦学编程。 可到2002年，我大学毕业的时候，第一次网络泡沫开始次第破灭。犹如冰川纪的突然降临，互联网好像被冻住了，各类网站，关门的关门，整合的整合，转型的转型。编程的找个工作也如“多收了三五斗”一般，落差很大。 这段历史，我一直都记在心里。它就像我心中的“淘金热”，这种行为和时期吸引人的不是单纯的“金”、利益，而是人们的狂热精神以及这种精神背后的向往和追求。我记着这份狂热，记着这种向往，然后几经辗转，我进了IT这个行业，但我没有去创富，也没有成为一个勤恳的程序员，而是在写了几年代码之后，搭了外包的快车，成了个咨询师（consultant）。 这三年来，我做的工作是我们上学时不断在讨论的“企业级”产品，包括安全方面的SSO，中间件的ESB。不断的学习新的商业系统、企业应用模式，不断的了解别人的设计思想，并用来解决问题，工作、生活倒也安逸。技术上也有了满足感，毕竟当我和别人聊起某种价格不菲的服务器或者商业产品的时候，别人偶尔也会给个向往的媚眼。 做了咨询师以后，一个毛病就是技术细节不再是主要关心的问题，而更关心产品的价值与风险预估的比例以及如何调节。用这个观点来审视自己现在的技术生涯，到底什么是我技术生涯的价值，什么是我的风险。 我想这么多年来，有一个念头在我心里始终没有按下去，就是能在某个产品上留下自己的名字。刚开始鼓捣计算机的时候，其中有一个乐趣就是在各种软件中寻找各种复活节彩蛋，比如Delphi中Hejlsberg的照片，MS Excel中的赛车游戏。我期待有一天我自己也能做一个有广泛用户的产品，然后恶搞式的留个彩蛋在里面。这是我认为的我的技术生涯的价值：做一个有人用的东西；然后在里面留下自己的名字，至少弄一个Credits列表。 做咨询师以来，在我心里这种可能性在不断降低。我现在的尴尬就是对于一个系统，我比客户都要了解，但客户结帐以后，我就变得和这个系统毫无关系。这让我毫无成就感。 现在新的网络风潮带着成熟和务实的气质再次到来，新的网络创富神话又开始层出不穷。相比之下这次新的创业风潮要成熟了不少：要有别出心裁的点子，要有出奇制胜的产品，还要有实打实的技术实践和拓展能力。技术上也有ASP/PHP的应用级别提高到了高负载、大吞吐架构，大型分布式系统，和各种各样的系统级概念。要是这些名词还不够刺激，那还有云计算这种buzz word。每个词都代表了在某种条件下的极致追求和创新思路。 看着现在的年轻人不断在创造着刻着自己名字的产品，我越来越坐不住了。这又让我内心泛起了那点小“狂热”：再年轻一把，去投入一次！。 没想到自己的30岁就这么开始了。自己20岁的时候没有解决的问题，现在又开始刺激我。打开音箱，听听歌，做个梦。 I was lyin&#8217; in a burned out basement With a full moon in my eyes I was hopin&#8217; for a replacement When the sun burst through the skies There was a band playin&#8217; in my head And I felt [...]]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/08/29/241/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dance me to the end of love</title>
		<link>http://www.never-ending.me/blog/2010/04/15/228/</link>
		<comments>http://www.never-ending.me/blog/2010/04/15/228/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 10:26:03 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Living]]></category>
		<category><![CDATA[emotion]]></category>
		<category><![CDATA[Leonard Cohen]]></category>
		<category><![CDATA[thought]]></category>

		<guid isPermaLink="false">http://www.never-ending.me/blog/?p=228</guid>
		<description><![CDATA[Views: 4再次打开Leonard Cohen的音乐已是完全不同的环境。第一次听Leonard Cohen的时候还是在研究生宿舍里，无拘无束的心情下，听着他苍老的声音诉说发生在异国他乡的心情和故事。这就像在一个安静的小岛上吹海风的时候，一个阅历丰富的人要和你聊聊他的过去，也许也想听听你的故事。他可能是个诗人，作家，也可能是个吟游歌者。有很多事，很多心情，也许你只能说给他听。 Baby, I&#8217;ve been waiting, I&#8217;ve been waiting night and day. I didn&#8217;t see the time, I waited half my life away. There were lots of invitations and I know you sent me some, but I was waiting for the miracle, for the miracle to come. （《Waiting for the miracle》Leonard Cohen） 我曾一直讲给自己听：人一生最重要的就是要有一个守候，矢志不渝。就如树丛中守候猎物的枪手，黑暗中等待黎明的守夜人，目标明确，坚韧不拔，就算生命毁灭，身体也要化作一座雕像，眼朝守候的方向。 [...]]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/04/15/228/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>网络英雄纪念碑</title>
		<link>http://www.never-ending.me/blog/2010/03/24/222/</link>
		<comments>http://www.never-ending.me/blog/2010/03/24/222/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 03:17:30 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Surfing]]></category>

		<guid isPermaLink="false">http://www.never-ending.me/blog/?p=222</guid>
		<description><![CDATA[Views: 2为了忘却的纪念。Google.cn, google.com也许即将上榜 唉，这事不能细说]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/03/24/222/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>升级到Ubuntu 10.04了</title>
		<link>http://www.never-ending.me/blog/2010/03/21/220/</link>
		<comments>http://www.never-ending.me/blog/2010/03/21/220/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 06:30:55 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Skill]]></category>
		<category><![CDATA[Surfing]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[fstab]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.never-ending.me/blog/?p=220</guid>
		<description><![CDATA[Views: 2周五看到新闻Ubuntu 10.04的beta 1放出来了,晚上就把我的9.10升级了上去 打开terminal，运行sudo update-manager -d，就会提示你已经有了一个新版本，选择更新就可以。下载速度非常快，当时安装过程需要两个多小时。 更新完重启还出了点小问题。我的机器是win7，ubuntu双系统。更新完ubuntu10.04，第一次启动的时候，启动界面停在wait for window drive上那一步不动了。控制台输出一个moutall.c错误。用命令行登录进去发现syslog有很多挂载的错误。初步断定是服务器挂载windows的NTFS驱动器出错了。用命令行登录进去，把/etc/fstab里面的windows分区注释掉。启动就没问题了。 首先启动画面变了。也说不上来漂亮不漂亮，看9.10的时间长了再看这个觉得也挺好的。进去以后没发现什么大变化，就是social network的工具图标添加到右上角用户名旁边了，有twitter，flickr，facebook的支持。可惜在功夫网的保护下，这些功能对咱们来说都是浮云。内核变成了2.6.32.16。FireFox的默认搜索引擎变成了Yahoo。 Ubuntu 10.04的相关更新和信息可以看下面两个link http://www.ubuntugeek.com/ubuntu-10-04-beta-1-released-and-download-links-included.html http://www.ubuntugeek.com/ubuntu-10-04-lucid-beta-1-screenshots-gallery.html 另外，现在在Ubuntu 64bit上，还没有正式版的Flash 10的插件，可以根据下面的这个link用个试用版 http://www.ubuntugeek.com/adobe-flash-player-10-for-64-bit-linux-released-and-ubuntu-installation-instructions.html （如果根据这个介绍里面你发现用locate找出来的不是那个flash的so的名字，拷贝的时候要按照找出来的名字拷贝）]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/03/21/220/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>豆瓣提供了一个简单的SSO应用场景</title>
		<link>http://www.never-ending.me/blog/2010/03/21/214/</link>
		<comments>http://www.never-ending.me/blog/2010/03/21/214/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 05:22:34 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[单点登录]]></category>
		<category><![CDATA[豆瓣]]></category>
		<category><![CDATA[SSO]]></category>

		<guid isPermaLink="false">http://www.never-ending.me/blog/?p=214</guid>
		<description><![CDATA[Views: 2豆瓣电台上线以后，有人在twitter上问了一句douban.com和douban.fm之间的相互认证是怎么做的，是不是用到了cross-domain cookie。 实际上，cookie本身就不是为了跨域访问的设计的，我现在还不知道有真正的跨域cookie访问存在。如果存在，在一定程度上，我也认为那是个安全漏洞。 豆瓣的这个多个域名的共享认证是个典型的跨域SSO（单点登录）案例。虽然中间机关众多，但说一下其中的道理还是很简单的。 SSO，单点登录，有几个前提概念需要先说清楚： 1. 现在的SSO，大部分场景，都由一个专门的应用来提供认证。认证功能不像以前一样是内嵌在具体应用内部的。这个提供认证的应用一般都叫做identity provider，它所在的域我们称为认证域。这个应用会在你访问的时候简历你的基础认证信息，表明你在这个域里有个基础账户和基础权限。豆瓣的identity provider是http://www.douban.com/service/account/ 2. 具体的应用，比如douban.fm，称作service provider。service provider里会有一个优先级相当高的模块负责检查用户请求是否是认证过的。如果不是，它会将当前用户请求用某种方式保留并重新导向用户到认证域去做认证。这种模块在apache里设置在最前的mod，在IIS里就是一个priority是High的ISAPI filter。它能在一切应用处理以前检查请求内的认证信息。 3. 虽然说cookie不是跨域认证的解决方案，但cookie在跨域认证的过程中却是必需的。因为HTTP协议的无状态特性，服务器端要知道新收到的请求是不是来自于过去认证过的用户，它必须在客户端留下一些信息，一般就是cookie的方式保存。也有例外，比如HTTP Basic的认证方式，cookie不参与认证，但用户名和密码是被浏览器保存在内存里的，每次都会跟随请求发送。 4. 关于整个认证流程，浏览器可能会在identity provider和service provider之间跳转多次，一些HTTP的监视工具可以帮助你发现这些跳转，比如ieHTTPHeaders。 一个简单跨域SSO的认识过程应该是这样的（以豆瓣的域名为例，但并不是说豆瓣一定就是这么做的）： 用户发请求到douban.fm。douban.fm就是一个service provider，它上面的那个检查模块会先检查这个请求里有没有有效的认证信息。如果没有，它就把用户导向到http://www.douban.com/service/account/去做认证。这时的跳转URL类似http://www.douban.com/service/account/?return_to=http://douban.fm/ 。 最后的参数告诉identity provider，认证完要回到什么地方。 http://www.douban.com/service/account/作为identity provider会提示用户登录，并建立本地的认证信息，包括本域的认证cookie，和本域的session。然后根据跳转过来的URL return_to参数再把用户送回去。这时，除了return_to参数的URL以外，它还会附加一些认证相关的信息，比如在本域的认证id或者session id之类的。我刚登录的时候豆瓣重新导向我的url是http://douban.fm?sig=c3a7f19879&#38;response_nonce=1269147513&#38;data=%C9%ACVt%60%2C%C4K%89c%BD%07%B0Al%25%DD%F6%5D%D2%B2%E0%AC%16W%D9znW%935%AF%84%D4Vz%8C%9B%85g+%C3%C6%5D%FED9%96%84%D4Vz%8C%9B%85g+%C3%C6%5D%FED9%96&#38;mode=id_res&#38;return_to=http%3A%2F%2Fdouban.fm 后面的sig和response_nonce，data三个字段估计就是用于验证登录的相关信息。 当用户通过这个URL再次回到douban.fm的时候，那个检查认证的模块会发现这次回来的时候sig，response_nonce，data三个字段，然后用这三个信息从后台去identity provider寻求认证（比如socket去链接identity provider上的认证信息提供端口）。如果有效，就马上建立本地session和相关cookie信息以完成认证。然后再将请求放进具体的应用中去。这时候这个应用就得到了认证的用户信息了。 另一种常见也是标准方式之一，就是Identity Provider生成SAML Assertion页面，通过HTTP-POST的方式提交到Service Provider。一般来讲SAML Assertion都会经过PKI方式的加密，所以也可以防止中间人攻击。Service Provider通过HTTP协议收到了SAML Assertion，然后构造本地Session。这种方式更有效的解开Identity Provider和Service Provider的耦合。 完整的跨域SSO应用场景： 上述只是一个简单的跨域SSO场景。真正的跨域场景还是要复杂很多。比如Google有自己的identity provider，service provider。但它收购一个不同域名的新公司，这个公司也有自己的identity provider和service provider，这种集成就要复杂一层，但大体流程还是这样的，只不过service provider和identity provider的概念稍微有些改变。双方需要有公认的IDP，而针对于这个IDP，其他的IDP就成了SP。而如果只在自己的域内，自己的IDP还是IDP，SP还是SP。 SSO的其它问题： SSO是个安全问题。安全肯定是第一位的，信息传递时如何加密，如何仿冒，如何防止各种攻击（比如跨站脚本攻击）。还有各种服务器的集成。 [...]]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/03/21/214/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>代码，有时不写也罢。</title>
		<link>http://www.never-ending.me/blog/2010/02/15/207/</link>
		<comments>http://www.never-ending.me/blog/2010/02/15/207/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 08:57:38 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://www.never-ending.me/blog/?p=207</guid>
		<description><![CDATA[Views: 1近来依然忙于SSO和ESB两个项目。这两个项目基本都不需要手写什么代码。SSO只需要从web console里配置好服务器和相关的安全策略。额外做的工作最多是用工具或者找个页面检查一下HTTP Head和Cookie里的安全信息。ESB需要的可能要复杂点，需要手写一些Xquery，甚至Java代码，而整个流程只需要在web console或者workshop里像visio一样拖拽节点就可以了，简单明了。我旁边的哥们不无沮丧的给我说：“唉，整天的任务就是连连看”。 我也已经记不起自己的上一行JAVA代码是什么时候写的了，可能是一年半以前写了一个更新LDAP信息的JAVA模块。我曾向Mr. V抱怨：唉，我离代码已经太远了，我可能已经什么都不会写了。Mr.V的回应向我传达了两个信息：第一，写代码的思想和能力就像骑自行车，一旦你学会了，就算很久不骑也不会忘记；第二，谁想一遍一遍的重复写那些代码。 我曾经也很纳闷，编码这么有创造性的事，为什么我们不干呢。有人也建议我们自己使用甚至写个domain specified language来处理web service可能还会比从头开始学ALSB，WLI更直观更顺手更快更令人兴奋。但谁会去做呢。 原因很简单：第一，我们不想重复发明轮子。既然已经有了ALSB，WLI这么成熟的Web Service集成模式，我们没必要从头开始按照自己的习惯早一个不知道会不会圆的新轮子。第二，手写的代码越多，项目的风险越大。项目的进程多多少少都是悲观的，最后我们往往会被淹没在漫无边际的代码里。ALSB和WLI这种开发模式只是让我们有了更好的方式去关注我们的处理流程，而不是代码细节。 重复每天的CRUD的java代码很难说就比画画节点的WLI强多少，但风险却很大。而在WLI过程中，我们同样会面对很多更深层次的技术设计和分析。不落窠臼的创造性更来源于对技术的挖掘，而不是门类。]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/02/15/207/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android上的应用，享受一下在云上的感觉</title>
		<link>http://www.never-ending.me/blog/2010/02/01/196/</link>
		<comments>http://www.never-ending.me/blog/2010/02/01/196/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 15:44:29 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Living]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Gphone]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.never-ending.me/blog/?p=196</guid>
		<description><![CDATA[Views: 2去年11月份，把手机换成HTC Hero了，就是坊间称呼的G3，决定把Google带在身上了。 换了3G号，装上一大坨软件，无论走到哪里，不自觉的看一眼手机，所有想要的信息都在上面，终于有点“云应用”的感觉了。 手机第一次启动的时候就会让你输入你的Google帐号，然后同步Google联系人，Gmail邮件等等到手机上，还会把Gtalk的头像也同步下来，很方便。我现在完全使用Google 联系人来同步通讯录了，不用担心换设备的时候丢失信息了。而且还能绑定Twitter、Flickr、Facebook帐号，让你无时无刻SNS。（这个大家还是无视吧，因为……墙依然屹立……） 下面是我在上面装的用起来还可以的软件： 3banana： 一个notes软件，我选来选去最终选了这个。这个notes软件支持在线同步，支持标签、图片、相片等功能，简单易用。 Advanced Task Manager（Free）：进程管理的，最好装上。 AndroZip：压缩解压缩软件，装上以备不时之需。 Backgrounds：桌面背景软件，搜索在线图片，并设成桌面背景。 ColorDict：电子词典。需要另装词库和插件，有wiki插件。 ConnectBot：SSH客户端。 Dolphin：另一个浏览器，支持手势，很好用，而且速度不慢。 dopool播放器（体验版）：在线电视，有中央台和几个地方台，还有NBA直播。 Droid Armory：作为一个魔兽玩家，这个是必需的。Android版的英雄榜，支持3D预览。 大牛新闻：新闻阅读器（有英文版）。 大众点评：大众点评的客户端，找优惠券的时候方便。 eBuddy：IM集成工具，用来用去，还是这个舒服。 ES文件浏览器：国人开发的文件管理器，很好用，带进程管理。 Finance：Google的股票软件。 FMyLife：这个事F**k My Life这个网站的官方客户端。每天看10分钟，调整一下心情：） FxCamera：带特效的照相程序。 NBA Game Time：NBA比分播报软件，球迷不能缺。 Google Sky Map： Google的天空地图，用来看星座的，泡MM看星星绝对不能少的小玩意。 GPS Status：检查GPS状态的软件。爬山的时候用来看海拔，还有指南针的作用。 Latitude Launcher：如果你的Google Map没有Google纵横功能，就安装这个软件，它可以帮你打开这个功能。Google纵横可以显示你和好友的位置，非常好用。 Listen：Google自己开发的podcast软件，挺好用。我用它来订阅和听FLOSS和Linux outlaws。 Movie Finder：查看影讯，还能找到你周围影院正在放映的电影信息。不过信息不太准确。 My Maps Editor， My Tracks：用于记录你的整个的行程路线，还能同步到Google My Map上，标记属于你自己的地图。 Photoshop.com Mobile：如果你觉得Picasa给你提供的1G免费空间不够用，那你还可以去PhotoShop.com看看，它提供2G的免费图片空间。这个就是它的客户端，还有简单的图片处理功能。 PicSay： [...]]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/02/01/196/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>服务器搬家</title>
		<link>http://www.never-ending.me/blog/2010/02/01/167/</link>
		<comments>http://www.never-ending.me/blog/2010/02/01/167/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 11:23:53 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Surfing]]></category>
		<category><![CDATA[Linode]]></category>

		<guid isPermaLink="false">http://www.pocketwiki.org/blog/?p=167</guid>
		<description><![CDATA[Views: 1安静了3个多月，就做了一件事：服务器搬到linode上了。搬着搬着，2009年都过去了。 从DreamHost上搬出来并不是觉得DreamHost不够好，而是觉得需要一点更独立的东西做更多的事。更多的自由度能让我觉得安全。 Linode 360的plan对我来说已经够了，用Nginx+ PHP（Fast CGI）的方式放了blog在上面。性能还可以，比想象的360M内存的机器好。据说Nginx + PHP-FPM才是现在php最awesome的运行方式，但php-fpm还不是php默认的配置，需要重新编译。我被ubuntu的apt-get养懒了，先这么跑吧。 另外，在用的过程中，我发现我的宽带服务商（杭州）华数竟然限制了SSH的访问。我从本地SSH到服务器的时候，5分钟能建立连接就不错了，大多数时间都不能建立连接，但是从我的手机上却可以轻松的SSH获取，使用VPN也可以SSH。我有点无语了，难道是因为SSH Proxy最近太火爆，连这个都受限了？！ 2009年的年底实在是太sucks了，有几个经常去的blog都不能访问了。很多人都在向国外搬家，直接养肥了Godaddy,Dreamhost，Linode这些服务商。GoDaddy都支持支付宝了，令人大跌眼镜。 前段时间由于国内的白名单制度（说是就算在国外的网站如果提供中文内容也得在国内备案，否则就封），我问哥们blog怎么办。哥们非常斩钉截铁的说：那就换英文照写不误！]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2010/02/01/167/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>有人自美国来</title>
		<link>http://www.never-ending.me/blog/2009/09/18/159/</link>
		<comments>http://www.never-ending.me/blog/2009/09/18/159/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 08:39:05 +0000</pubDate>
		<dc:creator>garriot</dc:creator>
				<category><![CDATA[Living]]></category>
		<category><![CDATA[architect]]></category>

		<guid isPermaLink="false">http://www.stackoverflow.info/blog/?p=159</guid>
		<description><![CDATA[Views: 1在Golive开始的时候，客户的一个架构师从美国来我们公司做一天的访问。 客户是一个北美非常出名的通信公司。我们team主要负责他们的SSO系统整合的解决方案与测试，公司还有其他team在做它的CRM系统和性能测试。这个架构师主要是负责SSO和很多应用系统的。 这个架构师是个非常有意思的人，看平时开会时的口气应该是职位不低，也许他boss的boss的boss就是VP了。平时我们在工作中有了失误，如果他说这个事已经捅到他boss的boss那里去了，那就意味着我们要看到“blood on the floor”了。 午餐的时候和这个架构师聊了一些他在选择合作伙伴时候原则，他说了他的两个看法： 1. 他感觉到了一定程度以后，技术人员的水平都差不多，很好的和很差的都很少。所以他从不期待遇到极端棘手的问题的时候一个英雄式的人物旋马出来解决所有的问题，然后传奇般的消失。（这个观点刺了一下我那梦想的个人英雄主义） 2. 他说他不太愿意找5000人以下的公司合作。他解释说国内的遗留系统比较少，很多东西对技术的要求没有那么多。而他面对的系统都是从60年代一代一代遗留下来的，集成和维护的时候会遇到各种各样的问题。如果不了解这些问题背后各种环节的原理，可能一两个月才能搞定，但如果熟悉，十几分钟也就可以了。所以为了降低风险，他总是希望合作的公司能大一点，能提供专家的面也更广一点。 比比看，我们公司在全球的人数加起来估计也达不到他的要求。不过鉴于我们在SSO系统维护上的成功（我自吹自擂，反对的人请飘过:P）他还是打算试探性的把一个Performance Monitoring &#38; Tuning的工作交给我们做，估计是想探探我们这边技术方面的底。]]></description>
		<wfw:commentRss>http://www.never-ending.me/blog/2009/09/18/159/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
