为四川人民祈祷! www.onefoundation.cn
logo of kjam.org

Make OS X support NTFS

各位新年好! 这个新年假期第一次真正属于了自己, 玩的开心, 休息的也很不错.
这里分享一下新年里学到的小技巧, 在 OS X 上读写 NTFS 格式.

大家知道 NTFS 格式是微软专有的, 苹果 OS X 上只能读, 某些新一点的 Linux 发行版配置了具备读写功能的文件系统驱动程序.

说白了, 大家都是 UNIX. 只要加个文件系统驱动, 也就是说给内核加一个模块(一些常用的文件系统驱动是编译到内核里面去 的), 就可以直接通过 mount 命令来直接用指定驱动挂上设备.
这里所说的文件系统驱动, ntfs-3g 就是一个.

但是... 在 OS X 下面, 没人愿意通过命令行来挂载硬盘.
于是 Google 的一位工程师创建了一个项目叫 MacFUSE, 注意这个软件并不能让 OS X 直接支持 NTFS 文件系统, 但是他可以给 OS X 添加文件系统支持.

最后, 大家把前面的原理都忘记了吧.
先安装 MacFuse, 再去下载 macntfs-3g.
两个都是 dmg 安装文件, 安装完重新启动, 你的系统就可以向 NTFS 硬盘中写文件了.
comments: 0  
by kernel1983

实战招行手机支付

招商银行的确已经推出了针对 Linux 和 OS X 的网上支付解决方案, 那就是手机支付.

相信绝大多数网友都在使用招商银行和支付宝作为网络交易工具, 所以在支付宝支持 Firefox 的 OS X/Linux 版本之前(Linux版本已经放出), 招商银行的解决方案貌似鸡肋. 因为实在没有什么机会去用.

偶尔一次手机充值, 让我找到了机会体验一下手机支付.

在招行首页点手机充值, 就不用通过支付宝. 当使用 Firefox 输入好手机号码以及充值金额信息, 进入支付环节的时候, 填入手机号码, 银行卡最后四位以及验证码, 电脑上的操作倒是很简单.

接下来手机收到短信, 我用的是 BlackBerry 7290, 短信里面的网址不能直接打开, 复制粘贴到手机上的Opera mini浏览器, 进入支付页面: 这个页面也比较让人头大, 需要输入的信息很多, 不过还好都是数字, 包括支付密码(实际上是查询密码), 信用卡到期时间以及CVV2等信息. 使用银行卡付账应该会简单一些.

一大堆事情不出差错的做完以后, 网上付账终于成功了.

经过测试, Safari 以及 Opera 都能成功, 有一个奇怪的问题是 Firefox2 在进入支付页面的时候, 页面无法正确显示. 难道是逼老用户升级?

另外, 希望招行能公布一下测试过的手机列表, 让Linux和OS X用户选一款好用的手机.
comments: 0  
by kernel1983

2008

2008年还有几个小时就过去了, 真是不平凡的一年

一月, 得到了一份 python 的职业, 开发django, 同时光荣的加入了传说中的 freelancer 的队伍.

四月, 从自由职业者上位, 帮助公司落地, 忙碌季节.

六月我我们家来了一只受伤的小可怜, 一只长毛虎斑猫(当时也不知道他毛这么长, 只有巴掌大, 后腿折了). 两周后开始正常走路, 并且不断跳上椅子, 桌子以及电冰箱... 招财猫!

八月, 乘着奥运会结束之后, 举行 GAE Camp, 地点在 Google 上海办公室.

九月, 度假, 去了一趟云南. 度假回来以后趁着好心情, 全心投入到公司的工作中.

十一月, GAE Camp 在 Google 上海办公室成功的又来了一次, 会场气氛相当的热烈.

十二月, 就是这个月, 有幸参加了 opensocial hackathon 上海站的活动, 自己的 opensocial app 在现场 coding 比赛中胜出.

完美的2008
comments: 1  
by kernel1983

Facebook Connect

Facebook ConnectGoogle Friend Connect 是 Facebook 和 Opensocial 的升级.

SNS 的作用有两点:
1. 它们至少起到一个 openid 的左右, 你只需要一个帐号遍可以使用 Facebook 中的所有 App. 既然只使用一个id, 所以添加好友的工作也只需要做一次.
2. 每一个 App 都可以使用到好友信息, 起到SNS传播的作用.

这里写一写 Facebook Connect 的原理.
首先说一说传统 Facebook App 原理:

1. 传统 Facebook App 的是采用 POST, 我们在 Facebook 的 canvas 里所有的操作, 都回转化为对自己 App Server 的 POST 请求.

2. 除了自己的应用程序的数据以外, 还有很多以 fb_sig_ 打头的 POST 数据... 这些数据告诉你用户id, 用户朋友id...等等

3. 为了不让任何Facebook以外的冒牌请求折腾你的App Server, Facebook 在 POST 里面加上了 fb_sig 的签名. 所有的数据按照特定的排列以后md5, 结果和签名相等才可以.

Facebook Connect 要求在你服务器上放一个 html 文件用于 callback (当然你也可以命名为.php结尾)

1. 用户在你的站点上, 使用 Facebook 帐号登录你的站点, 成功以后 Facebook 会 callback 放置在你网站上的 html 文件, 该文件中的js代码负责写一些 cookies 到你浏览器本地.

2. Cookies的用途和传统 Facebook App 中 fb_sig 打头的 POST 数据一样, 具有签名作用. 传统的 Facebook App 中 Facebook 可以直接 POST 请求 App Server. 这里只能采取间接的方式, Facebook 写 cookies 到本地浏览器, 浏览器提交cookies给App Server, App Server 则可以验证用户是否登录了 Facebook, 并且取得用户的好友信息.

为了验证这些 cookies, 使用 Facebook 官方的 PHP 库可以解决问题. 如果使用 minifb.py, 需要做一定修改, 这里有我修改过的 minifb.py 版本
validate(secret, params, apikey)

validate最后一个apikey是可选参数, 用来 valid cookies 的时候必须要加上这个参数. 需要注意的是, 如果在 GAE 上使用, 需要将 urllib2 替换为 urlfetch.
comments: 0  
by kernel1983

ZoomType

Shanghaionrails的朋友们开始搭建起hosting服务了

ZoomType(ZT) 听起来很像 (mt) Media Temple. 希望一个好名字, 希望能被国内的rails人士记住.

在虚拟主机方面, 国外的优秀产品数不胜数, 但是在国内就变成了垃圾服务盛行的行业. 大量的主机空间只停留在ASP和PHP的局限中, 对于最新的web技术发展漠不关心以及无视. 导致了在python/ruby的用户群中, 很多人都不得不购买国外的虚拟主机, 并且忍受龟速服务.

现在, 我们很高兴的看到, 国内也有越来越多优秀的服务商, 开始重视这一点.
ZoomType, 浪点, 这些服务商仅仅是一个开始.
comments: 0  
by kernel1983
1234567...27