2010年10月12日星期二

新的微博客同步方案

围着脖子推关闭了,我失去了一个好用的微博客同步方案。期间我尝试过多种方案始终不如人意,要不就是要用支持php的国外空间,要不就是因为新浪启用了OAuth认证的授权而失效。
然而!在分别尝试过twitter-feed和follow5之后,在重看twitter-feed的代码的时候居然发现了可以同步到follow5。那么事情就简单了。
于是设计出一个以GAE和follow5双中心的同步方案。
此方案的优点是:

1、 自动化程度比较高,只有一个信息出口,从twitter发一条推文,在1分钟内就可以自动同步到所有需要的微博客和SNS网站;
2、 客户端多样化,桌面端有Gtalk、twhirl,网页端有follow5、dabr甚至官网,手机端有Gravity和各种支持Gtalk的软件;
3、 所有的公开推文(非私信)都会被同步出去,除了一种: 开头就有@符号的reply推文;
4、 与围着脖子推相比,twitter客户端的地位强化了,以前在twitter上看到值得转推的推文还要复制黏贴到Gtalk客户端里再发送甚至手动转到其他微博客,现在直接在twitter里RT就可以了,GAE会把它自动同步到其他的微博客上。这样对手机尤其重要,不需要老是同时开着Gravity和Talkonaut。

下面就来看看是怎样搭建的吧!
1、  同样先要有一个GAE帐号,参照这篇文章开通并建立一个你自己命名的APP应用;
2、 下载这个压缩包,解压到c:/;
3、 用写字板打开app.yaml,修改第一行的yourappid为你建立的APP应用名字,保存关闭;
4、 用写字板打开cron.yaml,修改schedule: every 5 minutes这一行的数字为你希望的同步间隔,保存关闭;
5、 用写字板打开twitter.py,拉到最后,找到下面这段
# You MUST modify your username and password here #
       #ret = send_sina_msgs("username @sina.com"," password ",text)
       #ret = send_163_msgs("username@163.com","password",text)
       #ret = send_sohu_msgs("username@sohu.com","password",text)
       #ret = send_9911_msgs("username","password",text)
       #ret = send_zuosa_msgs("username "," password ",text)
       #ret = send_renjian_msgs("username","password",text)
       #ret = send_follow5_msgs("username "," password ",text)
       #ret = send_pingfm_msgs("api_key","user_app_key",text)
       #ret = send_hellotxt_msgs("user_key","app_key",text)
把你想要同步的微博客前面的#号去掉,把username替换为你在该微博客上的id,password替换为你的密码。要注意的是,通过这个来同步到新浪已经失效,所以我们还需要follow5来同步到墙内的各大微博客,于是follow5那一行是必须要的。然后把最后一行里
parseTwitter(twitter_id="twitterid",since_id=latest),twitterid替换为你的twitter用户名;
当然这里同步的是不包含@的信息,RT和回复是不显现的,如果需要同步@消息的话,需要修改第263行:将 if text.find(‘@’,1) == -1 :  中的@号变为其他符号即可。
6、 同样按照这篇文章里的方法用Google App Engine Launcher上传;
7、 在Follow5注册一个用户名,然后进入这个页面,选择你想要同步到的各大墙内微博客,按照步骤和提示完成绑定即可;
8、 按如上步骤大致完成了墙内外的微博客同步,如果想要在Facebook里同步也可以,只要添加twitter的应用并完成授权绑定即可;
9、 如果想要用twitter的推文做论坛的签名图片,那就把http://twitsig.com/chinese/username-600x80.png 这个地址里面的username替换成你的twitter用户名,600 x 80是你签名档图的尺寸;
10、这个同步方案没啥技术含量,只是把月光的twitter-feed和follow5两个同步方案拼装一下而已,技术牛人们吐槽轻点……
流程图如下:
查看更多精彩图片

2010年10月11日星期一

奶爸手把手教你搭建Gtalk群

一、    现在GAE越来越有用了,而且其开放性和开源性也让死宅们心动不已,更别说它那强大的运算处理能力了,最重要的是,它是免费的!虽然有收费的项目,但免费的部分足以用来干很多很多很多很多事情了!
今天就让奶爸一步一步教你在GAE上搭建用于多人群聊的Gtalk群。下面我们先来做些准备。
二、    首先,什么是GAE?
GAE全称Google App Engine,它能让开发人员在支持着我们自己的应用程序的可扩展系统上构建网络应用程序。好吧,这样骈五骈六的东西我也不想看,简单理解为一个能让你在上面运行一堆程序的免费服务器好了。
每个 Google App Engine 应用程序都会拥有足够的 CPU、带宽和存储空间来免费支持每月五百万次左右的页面访问量。也就是说,对于一般的使用者来说,够用了。
三、其次,要使用GAE,你先得有一个Google帐号。
虾米?你还没有?赶快猛击https://www.google.com/accounts注册一个吧!都现在这个网络时代了,没有一个Google帐号都不好意思跟人说你会上网。
四、    好了,你现在有一个Google帐号了,于是猛击这个传送门,在右边的这个地方登录。
查看更多精彩图片
登录之后你会看到一个这样的界面,猛击Greate an Application按钮。
查看更多精彩图片
然后进入下一个界面:
查看更多精彩图片
这个界面简直它喵的太有兲朝特色了!不就是手机号码验证神马的吗?身为一只兲朝屁民,纯熟到不行了!果断填入手机号码然后猛击Send吧!且慢!要加国家编码的,所以你要在你的手机号码前加上“+86”。跟手机号码之间记得要加空格!比如+86 13*********
然后就耐心等候验证码发到手机上吧,这个过程要等蛮久的,我那时可是等了一个下午。
等到你的验证码就输入验证,ok!就可以进入下一步了!
五、建立你的第一个APP!
如下图
查看更多精彩图片
填好之后猛击Create App,一个空白的新的APP就建好了。

六、好了,记住你建立的APP名字,下面要用到。
去这个地方http://python.org/ftp/python/2.7/python-2.7.msi 下载python环境(可能要翻墙,如果打不开,复制粘贴到迅雷里下载就好了),再去http://googleappengine.googlecode.com/files/GoogleAppEngine-1.3.7.msi 下载Google App Engine Launcher。两个都要安装好。

七、    去这里下载这个压缩包http://faph.googlecode.com/files/gtalk_groups.zip ,解压到任意一个根目录下,比如C:\。不用担心,等会可以移除,一点都不会伤害到你的硬盘,也不会造成数据紊乱。
    解压出来之后的文件夹里有这么几个文件。
查看更多精彩图片
下面小心了,最重要的步骤来了,我们要修改这几个文件。
用写字板打开m2ggg_config.py
把这一行          
root_gmail='math2gold@gmail.com'
        改成              
root_gmail='你的gmail用户名@gmail.com'

        在这两行    
protect_key1=''
protect_key2=''
        的引号里填入任意随机数字
        然后保存并关闭。
用写字板打开app.yaml
把这一行
                   application: your_program_name
改成
                  application: 你的APP名字
把这一行
- url: /chatbridge_entry.abcdef
里面的             chatbridge_entry.abcdef
改成任意网址,你最好把它保密,以保护你的这个gtalk群防止黑客入侵神马的。
然后保存并关闭。

八、在桌面或者开始菜单找到这个查看更多精彩图片图标
猛击之,就会出现下面这个界面
查看更多精彩图片
猛击file-Add exsiting……出现这个界面
查看更多精彩图片
猛击Browse,找到你刚才放置gtalk_groups文件夹的位置,比如c:\ gtalk_groups.zip,打开,然后就可以看到你的APP出现在主窗口里。轻轻点击之,然后按这个按钮查看更多精彩图片,然后再输入你的gmail帐号(要包括@gmail.com的!)和密码,静静等待上传。窗口里出现一句“you now can close this window”的时候就可以关闭上传窗口和APP launcher了。

九、接着打开你的GAE管理界面,进入你刚刚建立的那个APP程序,进入data→Datastore Indexes,就看到下图
查看更多精彩图片
等待右侧的status 变成serving,就大功告成了,一般要等几分钟。

十、打开gtalk,添加机器人 yourname@appspot.com 。相关的指令如下:
UserCmd (普通用户指令)
//online
用途:显示在线人员名单
//nick
用途:设置昵称
示例://nick 你好
说明:如果群里有其他人使用相同昵称则该昵称不能设置
//setid
用途:设置FID
示例://setid hello
说明:如果群里有其他人使用相同FID则该昵称不能设置。FID只能设置一次,重设无效。
//block
用途:屏蔽某人的消息
示例://block hello
说明:后面所跟的参数为FID。上面示例所的执行结果是屏蔽了FID为hello的用户的消息。
//unblock
用途:取消屏蔽某人的消息
示例://unblock hello
说明:后面所跟的参数为FID。上面示例所的执行结果是取消屏蔽FID为hello的用户的消息。
//m
用途:给某人发送私密消息
示例://m hello helloworld
说明:后面所跟的参数为FID和内容。上面示例所的执行结果是把私密消息helloworld发送到FID为hello的这个用户。发送成功会显示OK的。目前不能发送消息给形如@***||*** 这样的外连接用户。
//showinfo
用途:显示某人的基本信息
示例://showinfo hello
说明:后面所跟的参数为FID。上面示例所的执行结果是输出FID为hello的用户的基本资料。
//stop
用途:马上停止接收群内消息,直到若干秒后恢复
示例://stop 3600
说明:后面所跟的参数为秒数。上面示例所的执行结果是在一小时(3600秒)内不接收群内消息。如果重复输入此命令,时间不会叠加,以最后的一次执行为准。如果执行//stop -1,则取消屏蔽,马上显示消息。
//continue
用途:停止屏蔽群内消息,作用等同于//stop -1
//help
用途:输出帮助内容——指令的简单说明。
AdminCmd(管理员指令)
//whois
用途:查看某人消息
示例://whois hello
说明:参数必须为FID。使用whois可以获取用户的电邮,以供后面的其他指令作为参数用。
//blacklist
用途:将某人加入群黑名单
示例://blacklist somebody.you.want.to.disable@gmail.com
说明:参数为用户email
//pass
用途:把某人从黑名单上移除
示例://pass remove.from.blacklist@gmail.com
说明:参数为用户email
//admin
用途:设置某人为管理员
示例://admin admin.of.group@gmail.com
说明:参数为用户email
//unadmin
用途:解除某人的管理员身份
示例://unadmin not.a.admin.of.group@gmail.com
说明:参数为用户email
//add
用途:增加一个成员
示例://add new.member@gmail.com
说明:填写email,若email为已有成员,则执行指令后用户资料会被重新初始化。
//allok
用途:通过所有没有进入群的用户
更多指令和介绍看这里http://io43.com/io43.GtalkGroup/

十一、       好了,你就可以开始你的Gtalk群聊之路了。让我们把那该死的QQ抛弃吧。记住,要用版本号是1.0.0.104的英文版,其他的语言版本全部都不靠谱。为什么?你懂的。

十二、       什么?Gtalk是什么?掌柜!给我一把刀!

2010年10月10日星期日

2010十一从化漫游团

时间:2010.10.4~10.6
地点:广州从化古田-影村徒步线路
器材:Canon EOS 400D + 腾龙 SP AF 17-50mm F2.8 XR Di II LD Aspherical[IF] + 腾龙 70-300mm F4-5.6 Macro
摄影师:传奇神勇无敌魅力无限真爱创奇迹童子军奶爸
摄影手记:
广州从化影-古线被称为广东最美乡村,沿线竹林、枫桥、乡村、溪流、瀑布数之不尽。
竹筒饭是个好东西,嗯!
好吧,断开的两节从上到下分别是第一天和第二天的路线图,中途为啥断开了我也不知道,估计是手机没电神马的。


在较大的地图中查看2010年Fresh十一从化漫游团