<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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>Nicholas Ding</title>
	<link>http://www.nicholasding.com</link>
	<description>Thinking in new Technologies, Methodologies and ITO in China</description>
	<pubDate>Wed, 09 Jul 2008 01:42:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Long time no see, Hessian</title>
		<link>http://www.nicholasding.com/2008/07/09/long-time-no-see-hessian/</link>
		<comments>http://www.nicholasding.com/2008/07/09/long-time-no-see-hessian/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 01:40:00 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/07/09/long-time-no-see-hessian/</guid>
		<description><![CDATA[Still remember the great company Caucho? Yes, it&#8217;s still alive. Besides its flagship product Resin, it also provides some open source libraries.
Actually, there are 2 remoting libraries you can use. One is Burlap, and another is Hessian. Hessian is the binary protocol implementation of Burlap. Burlap is xml based RPC. That&#8217;s quick easy to use [...]]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/07/09/long-time-no-see-hessian/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Django namespaces hacks</title>
		<link>http://www.nicholasding.com/2008/07/08/django-namespaces-hacks/</link>
		<comments>http://www.nicholasding.com/2008/07/08/django-namespaces-hacks/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 09:17:46 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[Django]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/07/08/django-namespaces-hacks/</guid>
		<description><![CDATA[今天把大概一年前写的 Django 程序拿出来做一些改进，主要这一年来 Django 做了重大升级，虽然兼容性非常不错，但是以前代码里面扩展 manage.py 的部分已经可以重写了，因为 Django 提供了 API 来进行扩展。
因为 Django 根据字符串形式的 namespace 来加载模块，所以我见过不少修改 manage.py，通过重新定义全局变量来修改 Django 设置的代码。我虽然也非常喜欢 hack Django 这个框架，但是我一定不喜欢去改 Django 本身的代码，尽可能通过外部修改来达到自己想要的功能。
trunk 中的 Django 版本提供了扩展 manage.py 的 Command 的 API，只需要在相应的 module 中加入 management/commands 目录，在 commands 下面创建多个 py 就可以得到扩展自定义命令的功能了。譬如加入 management/commands/mycommand.py，就可以通过 manage.py mycommand 来执行，非常的方便。我早起的程序通过修改 manage.py 本身来实现，现在完全可以升级一下了。
但是没想到出问题了，因为 namespace 的问题，Django 在搜索 commands 的方式上是通过 relative import 形式。但是我习惯性把 INSTALLED_APPS 这个变量中的 [...]]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/07/08/django-namespaces-hacks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Flex Remoting</title>
		<link>http://www.nicholasding.com/2008/07/03/flex-remoting/</link>
		<comments>http://www.nicholasding.com/2008/07/03/flex-remoting/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 04:37:53 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[ActionScript]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/07/03/flex-remoting/</guid>
		<description><![CDATA[昨天开始看 Flex 相关的东西，打算把一个现有的 Python Web 应用前端逐渐转换成 Flex。向 咖啡屋的鼠标 了解了下 Flex 如何与后端应用通讯，知道了一个新的协议叫做 AMF，是  Flash/Flex 原生支持的 RPC 协议，而且用起来也要比 XML 方式更加简单。
正好又一个 Python 的实现叫做 PyAMF 可以做协议的解析，很不错！
]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/07/03/flex-remoting/feed/</wfw:commentRss>
		</item>
		<item>
		<title>半年来的 Facebook 实践</title>
		<link>http://www.nicholasding.com/2008/06/20/%e5%8d%8a%e5%b9%b4%e6%9d%a5%e7%9a%84-facebook-%e5%ae%9e%e8%b7%b5/</link>
		<comments>http://www.nicholasding.com/2008/06/20/%e5%8d%8a%e5%b9%b4%e6%9d%a5%e7%9a%84-facebook-%e5%ae%9e%e8%b7%b5/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 10:39:44 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/06/20/%e5%8d%8a%e5%b9%b4%e6%9d%a5%e7%9a%84-facebook-%e5%ae%9e%e8%b7%b5/</guid>
		<description><![CDATA[看了 Robbin 写的 我为什么鼓吹facebook，为什么唱衰OpenSocial？ 这篇文章之后感触良多。这半年来做的网站也就如 Robbin 提及的一样，我们从 Facebook 带来了主要的流量。
在接触 Facebook 之前，我就听说过 OpenSocial，那时候对 SNS 不是很感兴趣，于是没有深入研究过 OpenSocial。半年前我的合伙人应该看到了 Facebook 平台的成功，于是制定了新的开发计划。先立足与 Facebook，开发几个 Facebook 小程序来吸引用户，随后把这些用户引导到我们网站上来。
谈到 Facebook 的小程序，不得不说的 Viral Marketing
如果做 Facebook 小程序，那么无庸置疑，取得用户是最关键的，所以我们需要看一下 Facebook 平台提供什么样的方式让我们能接触到用户。这里不得不提到 Viral Marketing，光是用户喜欢还不行，我们需要让用户把他喜欢的东西告诉他的朋友，通过这样实现流量的提升。那么具体有大概几种方式呢？
1. 发送邀请
发送邀请成为了一个非常简单的功能，Facebook 提供的 FBML 有预定义的标签，很方便的做这个事情，通过两个标签，并且不需要任何编码，就可以实现下面的邀请页面，让你很方便的将这个程序推广给你的好友们。

2. Newsfeed
Newsfeed 让你知道你周围发生的事情，譬如我的一个朋友同时也做了 &#8220;IQ 测试&#8221;，并且分数不错，那么显然她希望别人知道或者了解这样一件事情。那么简单的很，Facebook 让你发送 Newsfeed，这样作为她的朋友，我的首页上面就会出现我的朋友进行了 IQ 测试这么一个 Newsfeed，如果我感兴趣的话，我也可以去试一试。

Newsfeed 可以使用图片，一张设计精美的图片和有趣的文字会让人对这个小程序更感兴趣。因为 Newsfeed 同时存在与 Profile 页面，所以有时候浏览朋友的页面，顺便看到有趣的 Feed 也会让人有试一试的冲动。
3. Notification
通过邀请和 Newsfeed 我们已经可以有一定的用户基础了，但是玩过这个小程序之后可能用户就放着了。某天如果我们更新了小程序，加了新功能，或者是我们希望在今后与用户互动，我们该怎么做呢？虽然 Facebook 处于安全考虑，不会提供用户的 [...]]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/06/20/%e5%8d%8a%e5%b9%b4%e6%9d%a5%e7%9a%84-facebook-%e5%ae%9e%e8%b7%b5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Python 核心编程第二版</title>
		<link>http://www.nicholasding.com/2008/06/20/python-%e6%a0%b8%e5%bf%83%e7%bc%96%e7%a8%8b%e7%ac%ac%e4%ba%8c%e7%89%88/</link>
		<comments>http://www.nicholasding.com/2008/06/20/python-%e6%a0%b8%e5%bf%83%e7%bc%96%e7%a8%8b%e7%ac%ac%e4%ba%8c%e7%89%88/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 07:29:10 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[Book]]></category>

		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/06/20/python-%e6%a0%b8%e5%bf%83%e7%bc%96%e7%a8%8b%e7%ac%ac%e4%ba%8c%e7%89%88/</guid>
		<description><![CDATA[《Python 核心编程》第二版总算要出了，这本是一个振奋人心的消息，毕竟有超过 10 位以上的 Python 爱好者一起合作翻译了这本书，能够翻译完这本长达 1000 页的 Python 巨著，这是非常不容易的。
最早是在 《Core Python Programming》(中文第二版)有奖书评活动 看到这个消息的，里面的链接指向 CPUG 的推广页，打开就能看到清风同学帅气的照片了 :D。不过仔细一看译者却另有其人，封皮上赫然写着“宋吉广”，但这本书可是 CPUG 组织翻译的啊，为什么译者却另有其人了呢？
看一下 China-pub 中此书的序言部分，可以很有意思的看到贡献者列表，但正是这些贡献者们完成了本书超过 90% 以上的翻译任务。
这本书的翻译开始与 2007 年 10 月份，针对这个翻译 CPUG 还专门成立了名为 OpenBookProject 的小组。就在这个小组上，依然可以看到当时开始启动《Python 核心编程》翻译项目的页面，Py核心编程第二版翻译工程倡议！。翻译项目启动之后收到了非常多 Pythoner 的支持，CPUG 的老大 Zoom.Quiet 更是带头参与。现在在啄木鸟社区依然可以看到这个主题页面。
这本书的翻译可以说历时 3 个月左右吧，判随严格的审校制度，质量得到了保证。在啄木鸟的页面 审校计划 里面可以看到所有的参与者以及参与审校的朋友们，大家付出了很多的心血保证这次翻译的完成，在这份邮件里面，可以看到项目在 12 月出总算胜利结束了。
但是随着翻译结束，关于此书的消息就一直没有下文了，没人知道这本书什么时候会出版，这本书也没有作为 PDF 在网上流传。但目前这本书却已经在市面上开始销售了，并且译者也不再是 CPUG 所熟悉的名字，我大概看了一下 CSDN 在网上提供的示例章节，并且对比 OpenBookProject 中此书的翻译，我的直觉告诉我，这些翻译就是来自 CPUG 的朋友们，没有他们的努力，这本书不可能完成。
但是还是这个译者的问题，列表中的 CorePy 就是宋吉广，为什么他当初匿名参与，不愿意透露自己的身份，再者，为什么出版的时候他就以自己的名字作为译者，将广大参与翻译的 [...]]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/06/20/python-%e6%a0%b8%e5%bf%83%e7%bc%96%e7%a8%8b%e7%ac%ac%e4%ba%8c%e7%89%88/feed/</wfw:commentRss>
		</item>
		<item>
		<title>10 年后在北京又见到这恶心的小虫</title>
		<link>http://www.nicholasding.com/2008/06/17/10-%e5%b9%b4%e5%90%8e%e5%9c%a8%e5%8c%97%e4%ba%ac%e5%8f%88%e8%a7%81%e5%88%b0%e8%bf%99%e6%81%b6%e5%bf%83%e7%9a%84%e5%b0%8f%e8%99%ab/</link>
		<comments>http://www.nicholasding.com/2008/06/17/10-%e5%b9%b4%e5%90%8e%e5%9c%a8%e5%8c%97%e4%ba%ac%e5%8f%88%e8%a7%81%e5%88%b0%e8%bf%99%e6%81%b6%e5%bf%83%e7%9a%84%e5%b0%8f%e8%99%ab/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 18:07:28 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/06/17/10-%e5%b9%b4%e5%90%8e%e5%9c%a8%e5%8c%97%e4%ba%ac%e5%8f%88%e8%a7%81%e5%88%b0%e8%bf%99%e6%81%b6%e5%bf%83%e7%9a%84%e5%b0%8f%e8%99%ab/</guid>
		<description><![CDATA[今天实在太衰了，或者说可能还比较幸运。白天醒来收笔记本的时候发现桌上一只小强大摇大摆的从我面前走过。小强这种动物只有在晚上才会出没，居然白天能大摇大摆的出现在桌子上，那真是说明某个地方小强的数量已经达到一个数量级，以至于这一只没地方住，落单了，只能来我心爱的 MacBook Pro 里面寻找容身之地了啊。MacBook Pro 夏天巨热，这可好，成了小强的最爱，温暖的地方它是最喜欢不过了。所以决定晚上一定把机器收包里，万一小强转进去了我机器也就要完了。
凌晨 1 点左右，还没睡，厨房开着灯，卧室门开着，我的位置正好能从卧室看到外面。眼下的一幕让我惊呆了，一只黑色小虫突然间从厨房跳了出来，透过灯光一看，我呆了。我的天，这东西也实在太大了吧。光是身体就长 2cm，有 6 条腿，头上两根胡须特别长、这东西，长的很像蟋蟀，要从远处看，可能真以为就是蟋蟀了。
这是一种非常恶心的虫子，我能清楚的记得小时候经常看到它。因为跟蟋蟀长的特别像，当第一次看到它的时候还真以为就是蟋蟀了。这东西的后肢特别发达，翅膀已经退化了，弹跳能力相当的强。后肢的构造跟跳蚤一样。这恶心的小虫一般出现在阴暗潮湿的地方，尤其是下水道口附近经常有他们的身影。但今天它居然跳进了我卧室的门，跟我对视了一段时间。虽然清楚的记得在南方的时候见到的这样的虫子是黄色的，但眼前的黑色小虫一定就是它，不会错了。距离上次见到这种虫子该有 10 年了啊，10 年后的今天，在离家 1200 多公里的北京看到了该死的小东西的远房亲戚出现在了我的卧室，说什么也不能留下活口了！
雷达杀虫剂早就准备好了，中午要杀小强没成，就拿这个当替死鬼吧。喷了一阵，貌似对这个小虫效果不明显，它逐渐向我跳来，太挑衅了。用拖鞋踩实在太恶心了，我顺手拿起 MM 的拖鞋以 29.4N 的力量拍了下去（考虑到这东西肚子这么鼓，里面不定有什么了，万一用力太猛，那就乱七八糟了）。果然恰到好处啊，没拍扁，不过肚子破了，后肢掉了一个，应该挂了，虽然还能动活下。用扫帚打扫了战场，用拖把 + 消毒液把地面收拾了，但还是心有余悸啊，不知道还会不会从厨房再跑出什么来。
上网搜了一下，原来这恶心的小虫学名叫 “灶马”，是群居类，寒了 -_-&#124;&#124;&#124;，不知道还有多少隐藏在阴暗潮湿的角落里面&#8230;&#8230;
更新：
六月 18 日晚九点，回来发现小强在我 MacBook Pro 上休息，2 分钟后被消灭，大快人心啊！
]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/06/17/10-%e5%b9%b4%e5%90%8e%e5%9c%a8%e5%8c%97%e4%ba%ac%e5%8f%88%e8%a7%81%e5%88%b0%e8%bf%99%e6%81%b6%e5%bf%83%e7%9a%84%e5%b0%8f%e8%99%ab/feed/</wfw:commentRss>
		</item>
		<item>
		<title>C# on Mac OS X</title>
		<link>http://www.nicholasding.com/2008/06/02/c-on-mac-os-x/</link>
		<comments>http://www.nicholasding.com/2008/06/02/c-on-mac-os-x/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 06:42:31 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/06/02/c-on-mac-os-x/</guid>
		<description><![CDATA[打算看看 C#，听说 Mono 有 Mac OS 支持，下了一个看看，没想到效果还真不错，GNOME 的风格，貌似用的是 GTK+ 的 Mac Port，要比 X11 的界面漂亮不少。
Resource:
Mono Project

]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/06/02/c-on-mac-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenSSH Public Key Authentication</title>
		<link>http://www.nicholasding.com/2008/05/26/openssh-public-key-authentication/</link>
		<comments>http://www.nicholasding.com/2008/05/26/openssh-public-key-authentication/#comments</comments>
		<pubDate>Mon, 26 May 2008 04:02:10 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[Hacks]]></category>

		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/05/26/openssh-public-key-authentication/</guid>
		<description><![CDATA[鉴于受服务器被黑的影响，为了增强安全性，打算取消密码登录的方式，改用 Key 登录。不过查了一圈中文的帮助，实在无法理解为什么这么简单的东西就没人能写的让人看明白。下面附上浅显易懂的英文教程一份，3 分钟搞定。
OpenSSH Public Key Authentication
主要流程是自己在本机使用 ssh-keygen 生成好密码，然后上传到服务器上相应帐户的 .ssh/id_dsa.pub 然后将其改成 .ssh/authorized_keys，然后从本机 ssh 过去就可以了，当然需要修改下 /etc/ssh/sshd_config 文件，为了保证安全把端口和允许密码认证都给改了，这样就算再多的 SSH brute force attempts 应该都没什么效果了。
]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/05/26/openssh-public-key-authentication/feed/</wfw:commentRss>
		</item>
		<item>
		<title>服务器被黑，不知道什么原因</title>
		<link>http://www.nicholasding.com/2008/05/25/%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%a2%ab%e9%bb%91%ef%bc%8c%e4%b8%8d%e7%9f%a5%e9%81%93%e4%bb%80%e4%b9%88%e5%8e%9f%e5%9b%a0/</link>
		<comments>http://www.nicholasding.com/2008/05/25/%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%a2%ab%e9%bb%91%ef%bc%8c%e4%b8%8d%e7%9f%a5%e9%81%93%e4%bb%80%e4%b9%88%e5%8e%9f%e5%9b%a0/#comments</comments>
		<pubDate>Sun, 25 May 2008 07:35:14 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/05/25/%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%a2%ab%e9%bb%91%ef%bc%8c%e4%b8%8d%e7%9f%a5%e9%81%93%e4%bb%80%e4%b9%88%e5%8e%9f%e5%9b%a0/</guid>
		<description><![CDATA[运行在 Slicehost 的服务器被黑了，完全不知道怎么进入系统的，我觉得不太可能是通过 Django 做的网站进来的。昨天重新创建系统，没几分钟的时间检查 auth.log 发现又被进入了。通过 whois 79.117.133.110 看到的结果很有意思，这个 IP 已经被多次指责从事入侵，垃圾信息发布等违法行为了。

inetnum:        79.112.0.0 - 79.119.255.255
netname:        RO-RDS-20070529
org:            ORG-RA18-RIPE
descr:          RCS &#038; RDS SA
country: [...]]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/05/25/%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%a2%ab%e9%bb%91%ef%bc%8c%e4%b8%8d%e7%9f%a5%e9%81%93%e4%bb%80%e4%b9%88%e5%8e%9f%e5%9b%a0/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jinja Template</title>
		<link>http://www.nicholasding.com/2008/05/22/jinja-template/</link>
		<comments>http://www.nicholasding.com/2008/05/22/jinja-template/#comments</comments>
		<pubDate>Thu, 22 May 2008 14:23:20 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.nicholasding.com/2008/05/22/jinja-template/</guid>
		<description><![CDATA[今天偶然间看到一个新的模板系统，叫做 Jinja (日语：神社)
这个模板系统采用了类似 Django 的 non-XML 风格，语法和 Django 非常接近！今天用下来发现还是比较不错的，模板可以使用表达式计算，这无疑比 Django 要方便的多，而且还支持模板级别的 Macro 功能，实在不错。
]]></description>
		<wfw:commentRss>http://www.nicholasding.com/2008/05/22/jinja-template/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
