<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
<channel>
	<title>飞纯技术</title>
	<link>http://blog.ftao.org</link>
	<description></description>
	<lastBuildDate>Mon, 03 Oct 2011 04:35:26 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	

	<item>
		<title>Kinper Update &#8211; Feed To Kindle</title>
		<description><![CDATA[更新一下Kinper 的一个新服务， Feeds To Kindle 。 简单来说你可以添加一个RSS/Atom Feed , 然后订阅， 我们会在你指定的时间，将其发送到你的Kindle。 我自己使用这个服务将 HackNews 的Feed 每天早上推送到我的Kindle , 然后在上班的地铁上看。 从此我基本不看Google Reader 了。 已经稳定运行大概一个1月了。 如果你有类似的需求，可以尝试用一下。]]></description>
		<link>http://blog.ftao.org/2011/10/03/kinper-update-feed-to-kindle/</link>
			</item>
	<item>
		<title>密码保护：计划</title>
		<description><![CDATA[无法提供摘要。这是一篇受保护的文章。]]></description>
		<link>http://blog.ftao.org/2011/10/03/plan/</link>
			</item>
	<item>
		<title>厦门行简单记录</title>
		<description><![CDATA[　上个星期去厦门玩了一次, 4天。我是比较悠闲/懒的玩的。有不少时间是在旅馆的院子里面看书。　 　鼓浪屿也就是建筑可以看看，非常喧闹，很难找到安静一点的地方。那些所谓的特色店铺很多完全是炒作出来的吧。 　 　厦门大学确实挺漂亮的, 校园其实不大，基本走遍。有一个校门门口就是海滩（白城），景色不错。（但是和网上传言海滩在校园里面还是不一样的）。 　比较惊喜在厦大的一条芙蓉隧道里面发现了不少有趣的涂鸦。　 　更多图片，请看我的Picasa 相册 其他发现/感想，厦门本地人喜欢在门口那个小茶壶，小杯子喝茶。（功夫茶），这个和台湾倒是一样。。 　8月很热，太阳太厉害了。公交还算方便，便宜。　 　鼓浪屿不准骑自行车，但是我觉得这是否侵犯了岛上居民的权益，毕竟不是整个岛都是旅游区啊。　 　鼓浪屿也有城管，目睹一摊贩在城管出现是紧急撤退。。　 　另外一个事，在旅馆碰到一捷克的同学，也是IT从业人士　（不过似乎还在上学），也拿着个Kindle 。交流了一下看的书，以及有关在中国使用VPN的经验。 　]]></description>
		<link>http://blog.ftao.org/2011/09/04/notes-about-trip-to-xiamen/</link>
			</item>
	<item>
		<title>Kinper &#8211; A Kindle Helper Service</title>
		<description><![CDATA[前几天买了一个Kindle 3。 于是做了一个服务（名字叫Kinper) 把Dropbox 中的文件推送到Kindle , 来方便自己将书放到Kindle 里， 不用每次都连USB了。 简单来说, 需要5步。 注册一个Kinper账号 (http://kinper.ftao.org) 输入你的Kindle Email 地址。（一般是 xx@free.kindle.com 或者 xxx@kindle.com) 访问的Amazon 的 “Personal Document Settings” 页面， 将 kinper-bot@ftao.org 加入到”Approved Personal Document E-mail List” 连接你的Dropbox 账号 将你的电子书放到Dropbox 的 “/Public/kindle” 目录中 网站地址: http://kinper.ftao.org/dropboxtokindle/ 截图:]]></description>
		<link>http://blog.ftao.org/2011/06/30/kinper-a-kindle-helper-service/</link>
			</item>
	<item>
		<title>解决天涯小筑的RSSFeed 乱码问题</title>
		<description><![CDATA[不知道从哪一天开始 天涯小筑的标题就是是乱码的了。 （在GoogleReader里面或者直接打开都是标题乱码。) 昨天决定不再忍受，于是就写了一个程序把RSS Feed 抓过来，然后把乱码清理好。 清理过的RSS Feed 放在 http://fun.ftao.dotcloud.com/cache/rss/tyxz.xml 。 （由于天涯小筑本身的网站似乎不是很稳定，我把Feed的更新时间设置为每半小时更新一次。) Code: https://github.com/ftao/fun/ 这种微型项目用web.py 很合适， 顺便用了一下 redis 作为缓存。]]></description>
		<link>http://blog.ftao.org/2011/06/17/solve-tianyaxiaozhu-rss-mess/</link>
			</item>
	<item>
		<title>WeiBoPay</title>
		<description><![CDATA[做了一个小服务，以一条微博的价格出售你的产品。 主页: http://weibopay.ftao.dotcloud.com/ 测试产品: 用微博购买 “The Big Secret” 主要是为了演示ezEngage API 的使用，微博登录和发表微博都是调用ezEngage 的API实现的。 代码放在 https://github.com/ftao/weibopay/]]></description>
		<link>http://blog.ftao.org/2011/06/15/weibopay/</link>
			</item>
	<item>
		<title>由 dotcloud 引发的思考</title>
		<description><![CDATA[最近玩了一下dotcloud (http://dotcloud.com) , 非常喜欢。 之前在公司的时候，有一位IT同学负责发布代码，有一阵非常苦恼。因为系统有很多模块，那几天每天都有很多次发布，每次都需要他SSH到服务器上去敲命令。 （后来这位同学就写了个Web界面的发布系统&#8230;) 发布和部署代码应该是一件简单，愉快的事情，不应该那么痛苦。。 前几年，开始玩GAE 的时候，GAE 的代码上传，发布方式让我第一次觉得可以发布代码可以这么简单。 做ezEngage 的时候，自己写fabric 的脚本来发布代码，也能做到一个命令搞定，但是写了很多额外的代码来到达这个目的。 另外mysql/nginx 等等还是手工配置的。 这次尝试用dotcloud, 非常简单，我将之前的火车票API的那个小项目拿过来尝试部署到dotcloud 上面，按照教程一步成功。 更好的是包括mysql 等等的常用的组件也可以一个命令部署。 我很喜欢dotcloud 的一个原因是这是个开发者给开发者创造的产品。 界面很简单，主要的功能通过一个(命令行)客户端 来操作API来实现。网站很简单，没有复杂的管理后台。 而我做的ezEngage有一个很大的问题，产品的主要的客户和我完全不是同类的人。 如果有下一次，我一定做一些给自己用，给开发者用的东西。]]></description>
		<link>http://blog.ftao.org/2011/06/12/some-thoughts-about-dotcloud/</link>
			</item>
	<item>
		<title>关于Django 部署方式的选择</title>
		<description><![CDATA[最近写了一些Django 项目，尝试了一些部署方式。写一下各种方式的优点和缺点。　 Apache + mod_wsgi 这个方式是Django 推荐的部署方式，优点是比较简单。但是有两个比较大的缺点 1. 和virtualenv 的结合比较麻烦 2. mod_wsgi 会关闭标准输出。如果你的代码里面不小心写了一个 print , 就会出现500错误了。和开发环境的区别比较大。 Apache + mod_fcgid + mod_rewrite 这个方式是对服务器环境要求最低的方式，很多虚拟主机都支持这个方式。 另外有一个优点 fcgi 进程可以由apache 启动，不需要额外的进程管理工具。 Nginx + fcgi 这个方式的好处是Nginx 比较轻量级，适合内存比较小的 VPS。 确定是Django 的FCGI 进程需要自己管理。　　 我在Github 上建立了一个工程，提供了这几种部署方式的模版。 https://github.com/ftao/django-deploy-template 当然我们还有其他的选择，比如nginx + mod_wsgi 之类的。 我没有尝试，主要是我使用的Linux 发行版里面没有对应的包，不想自己编译。]]></description>
		<link>http://blog.ftao.org/2011/05/31/django-deploy-solution/</link>
			</item>
	<item>
		<title>使用 reStructuredText 编写用户手册</title>
		<description><![CDATA[前几天，将ezEngage 的帮助文档重新写了一遍。这么做的原因是原来的文档直接用HTML写的，并且和主站放在一起。 发布不方便，只是修改一点东西也要和主站一起发布。并且原始文件就是HTML，写起来很麻烦。 我用reStructuredText + Sphinx + github pages 重新编写，部署和发布了一份帮助文档。 reStructuredText 是一种轻量级的标记语言，特点是原始文件可读性很好。 Python 以及很多Python著名的开源项目（比如Django) 都使用该格式的来编写文档和手册。　 Sphinx 的一个将reStructuredText 文件转换成各种格式（比如HTML,LeTex,PDF 等)的工具。　 GitHub Pages 是一个GitHub 提供的托管静态页面的服务，只要内容通过git 推送到github 上面，就很可以方便发布内容了。　 步骤如下: 1. 在github 上面建立一个仓库，开通github pages 功能 2. 将master 和 gh-pages 两个分支checkout 到本地的两个目录 (比如说 example-master , example-gh-pages) 3. 在master branch 里面正常写 reStructuredText , 4. 符号链接 example-master/_build/html 　到 example-gh-pages 5. make html [...]]]></description>
		<link>http://blog.ftao.org/2011/05/28/write-user-manual-using-restructredtest-and-sphinx/</link>
			</item>
	<item>
		<title>火车余票查询的RESTful API</title>
		<description><![CDATA[前几天出去玩， 做了几次火车。用来几次 12306.cn 。 余票查询还是挺有用的。 作为API控，花一点时间写了个查询余票的Web API 。 用法: http://trans.labs.ftao.org/api/yupiao.json?date={date}&#038;start={start_station}&#038;arrive={arrive_station} 比如4.29日上海到南京的余票 curl "http://train.labs.ftao.org/api/yupiao.html?date=2011-04-29&#038;start=%E4%B8%8A%E6%B5%B7&#038;arrive=%E5%8D%97%E4%BA%AC" 存在的问题:很慢，数据不稳定（同一个查询会有短时间内会有不同的结果）。不过这都是 12306.cn 的问题。 简单的界面: http://train.labs.ftao.org/ui/ 有空用JQuery Mobile 写一个适合移动设备的界面。 （这个才是我真正的需求） 代码: https://github.com/ftao/cn-train-tool]]></description>
		<link>http://blog.ftao.org/2011/04/27/china-train-ticketrestful-api/</link>
			</item>
	<item>
		<title>使用Django的一些小经验</title>
		<description><![CDATA[分享一些使用Django 的小经验: django-sentry 用来记录异常信息很棒，另外配合logging 模块做错误日志也很好用。（关键时它把没一层函数调用的局部变量都记录下来了，找Bug 很方便) Signal 可以将代码解耦。 比如说支付流程，有一个支付宝接口的app, 受到支付宝的通知，验证数据，然后发出一个Signal , 别的app connect 这个Signal , 然后更新订单状态之类的。 这个支付宝app 就完全是一个 reusable app . Django 的model 来做报表还是很不方便的，这种情况下用 Raw SQL 比较好。 Piston 用来写RESTful API 很方便。 South is great . &#8211;EOF&#8211;]]></description>
		<link>http://blog.ftao.org/2011/04/17/django-tips/</link>
			</item>
	<item>
		<title>单人项目git常用操作</title>
		<description><![CDATA[注意:下面的内容只适用于 1. 单人项目 2.代码托管在github 3.开发环境为Linux 创建仓库 访问github, 点击 创建仓库。 在本地创建一个仓库 $ git init 第一次push 到github $ git remote add origin git@github.com:username/your-repo.git $ git push origin master 本地创建branch,并切换到该branch $ git branch branch-name $ git checkout branch-name push branch 到 github $ git push origin branch-name 创建tag $ git tag v0.1 push (所有) tag 到 github（push tag [...]]]></description>
		<link>http://blog.ftao.org/2011/04/13/useful-git-command-for-single-person-project/</link>
			</item>
	<item>
		<title>ezEngage (预)发布</title>
		<description><![CDATA[作为我辞职后1个月后的第一个尝试. ezEngage 上线了一个Demo 版本, 欢迎围观. http://ezengage.com ezEngage － 将你的站点连接到社交网络 ezEngage 通过简单的API和Widget将你的站点连接到各个社交网络, 简化你站点的登录和注册， 让你的用户更方便的同你的站点互动。 这个项目主要的功能是简化各种网站实现 “连接到新浪/腾讯微博” , “连接到人人” 的难度. 主要借鉴的国外产品是 janrain 明天回家过年, 祝大家新年快乐.]]></description>
		<link>http://blog.ftao.org/2011/01/30/ezengage-pre-launc/</link>
			</item>
	<item>
		<title>新浪微博OAuth 认证的bug</title>
		<description><![CDATA[新浪微博API 的 OAuth 认证在对于https 的请求在计算basestring 的时候似乎有问题。 根据http://tools.ietf.org/html/rfc5849#section-3.4.1.2 . 3. The port MUST be included if it is not the default port for the scheme, and MUST be excluded if it is the default. Specifically, the port MUST be excluded when making an HTTP request [RFC2616] to port 80 or when making an HTTPS request [RFC2818] [...]]]></description>
		<link>http://blog.ftao.org/2011/01/16/oauth-bug%ef%bc%8dfor-sina-weibo-api/</link>
			</item>
	<item>
		<title>tips for 2011-01-12</title>
		<description><![CDATA[Python 正则表达式  w     = [a-zA-Z0-9_] w When the LOCALE and UNICODE flags are not specified, matches any alphanumeric character and the underscore; this is equivalent to the set [a-zA-Z0-9_]. With LOCALE, it will match the set [0-9_] plus whatever characters are defined as alphanumeric for the current locale. If UNICODE is set, this will match the characters [0-9_] plus whatever is classified as alphanumeric in [...]]]></description>
		<link>http://blog.ftao.org/2011/01/12/tips-for-2011-01-12/</link>
			</item>
	<item>
		<title>Web/重用</title>
		<description><![CDATA[本文没有条理。 纯粹乱想。 Web 世界里面， 还是不停的在重复造轮子。 比如最近尝试用Django 做了一个小东西，虽然已经重用了一些Django 的App，但是最后还是发现很大时间都花在那些个非常通用的问题上面， 比如登录/注册/激活，以及对应的找回密码／修改密码等功能。 这些个功能真的需要每个网站都去实现一遍吗？ 对比一下我在开发Android 的时候的一些感受， Android 中的Intent 的意思是 “我试图(intent) 做一件事情, 请给我找一个 模块 来达到这个目的“。 这样的方式很大的好处能够解耦，重用功能。 问题是做产品可能不喜欢这样子， 比如一个微博分享功能， 会觉得“这样需要3步啊， 不行需要做到一键分享“ 。当然这个从他们的角度是没有问题的。 于是产品中就加入了微博登录/微博分享等等功能。 在Web 的世界里面，我们开始看到一些东西， 比如说评论， 你可能已经不需要实现自己的评论功能， 只加入一端第三方服务的Javascript 脚本就一个给自己的网站加入评论功能。 我希望下一次我需要做一个网站的时候，那些个通用的功能都可以是通过WebService 的方式实现。 我不需要再去实现一遍。 我只要说我要“注册功能” 就可以了:)]]></description>
		<link>http://blog.ftao.org/2011/01/11/web-app-reuse/</link>
			</item>
	<item>
		<title>debian 同步系统时间</title>
		<description><![CDATA[刚才发现服务器的时间不对了。 更新了一下 sudo apt-get install ntpdate sudo ntpdate north-america.pool.ntp.org sudo hwclock --systohc]]></description>
		<link>http://blog.ftao.org/2011/01/09/debian-sync-system-date/</link>
			</item>
	<item>
		<title>2010 总结</title>
		<description><![CDATA[2010 年结束了。 前几天，很冲动的作出了一个决定， 辞职了。 基本交接完了， 元旦后在去办点手续就正式结束自己的第一份工作了。 算上实习，基本在这个公司也呆了3年了。 算了下， 什么都写过。 网页前端/后端，爬虫，Windows 应用程序，嵌入式QT 应用程序，Android 手机应用程序 。 HTML/CSS/Javascript/PHP/Python/Java/C++ 都写过。 也认识了不少有趣或无趣， 牛或不牛的同事。 做了一个失败的产品，最后现在在做的这个产品还算小有名气了， 但并不是我喜欢的东西，做的并不开心。 辞职这个决定虽然有点冲动， 但是我希望它成为我人生的一个重要的决定。 2011年，我目前没有另外找工作的愿望。 考虑自己创业，做一点有趣的应用，put a dent in the universe 。 或者成为一个 freelancer 。 趁还不算老， 可以挥霍一下时间。 2011年，更希望能让自己有比较大的变化，克服自己性格上的缺陷， 做一点事情。 2011年，希望自己不在孤单。 最后，推荐一下 《Rework》，《The 4 Hour work Week 》 这两本书在2010 对我影响很大。 ps: 2011，我会有更多的时间，应该会更有规律的来更新Blog。]]></description>
		<link>http://blog.ftao.org/2010/12/31/2010-don/</link>
			</item>
	<item>
		<title>Xen 下面 net-snmpd 的问题</title>
		<description><![CDATA[最近 Xen 下面的Debian 上的snmpd 不能正常运行， 启动之后很快就崩溃了。 Log 里面出现 “ error finding row index in _ifXTable_container_row_restore ” 出现这样的提示。 Google 了一圈似乎没有什么答案？ 有人知道怎么办吗？]]></description>
		<link>http://blog.ftao.org/2010/09/10/xen-net-nmpd-proble/</link>
			</item>
	<item>
		<title>linux 没有mail 命令怎么办？</title>
		<description><![CDATA[debian 系统的cron job 的输出是已mail 方式发送给用户的。 之前一直是用mail 命令看邮件的。 上次不知道改了什么，mail 命令不见了。 -bash: mail: command not found google 了一下，装一下mailx 就可以了。 之前真懒， google 1 分钟就能解决的问题，都没有去解决。 sudo apt-get install mailx]]></description>
		<link>http://blog.ftao.org/2010/08/01/linux-mail-command-not-found/</link>
			</item>
</channel>
</rss>

