#
http://code.google.com/p/pubsubhubbub/
pubsubhubbub是google开发的一种Atom和RSS增强协议,能够接近实时发布信息。
也就是说,如果blogjava支持了pubsubhubbub,我在这里发布了博客,你就可以在你的阅读器里很快看到我的文章。
现在只有部分博客服务商提供了pubsubhubbub功能,譬如WordPress,FriendFeed,livedoor等。
pubsubhubbub的原理很简单。它由3部分组成,pub,sub,hub(最后的bub不是的,hubbub是骚动的意思)。
pub可以看成是博客,sub是阅读器,而hub是一个中转站。通常是由sub向pub请求内容,而pubsubhubbub是由sub想hub请求,hub再向pub请求,多一层hub的作用是降低pub的压力。hub收到pub的更新后,会向sub发布最新的内容。
因为不是pub直接向sub发布,所以这里说的“接近”实时发布信息。
那么如何让博客支持pubsubhubbub呢?只需要建立一个hub服务器,然后在生产rss时加入
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/>
http://pubsubhubbub.appspot.com就是hub服务器的地址。
<?xml version="1.0"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/>
</channel>
</rss>
因此判断博客是否正常pubsubhubbub,也很简单,查看
http://www.blogjava.net/liwei/rss的代码即可,没有hub的影子。
再看一个支持的例子
http://rasjacobson.wordpress.com/feed/ ,里面有一句 <atom:link rel='hub' href='http://rasjacobson.wordpress.com/?pushpress=hub'/> ,这个是支持的。
具体的hub实现请查看
http://code.google.com/p/pubsubhubbub/wiki/Hubs
我这里只是个人玩玩而已,没实力自己搭hub服务器。不过可以借助他人提供的hub服务器,譬如刚才appspot的。
知道了原理,接下来就好办。
因为要改代码才能修改生产的RSS,所以blogjava这种博客服务商不提供pubsubhubbub功能的话,我们这些用户是无能为力的。
但自建的独立博客是能简单支持。等咱啥时候有闲钱了,再去做吧……
deploy时会出现如下信息
WARNING appengine_rpc.py:399 ssl module not found.
Without the ssl module, the identity of the remote host cannot be verified, and
connections may NOT be secure. To fix this, please install the ssl module from
http://pypi.python.org/pypi/ssl .
To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl
当打开上面的页面时会自动转到 http://code.google.com/intl/zh-CN/appengine/kb/general.html#rpcssl ,在这里看不到任何帮助,因为google还没将这段帮助信息翻译成中文Orz,可以到 http://code.google.com/intl/en/appengine/kb/general.html#rpcssl 查看。这里说明在用python appcfg.py update 命令时添加 --insecure
后就不会有问题。但我用GAE Launcher也无法修改命令。再让我回到没有Launcher,直接用命令行的时代,还真难适应。作罢。
我试着安装了ssl 模块,但无法编译。网上找到了这个页面,http://canofy.javaeye.com/blog/651968 ,该同学和我遇到了同样的问题,并且装了cygwin。
貌似之后还有其他问题。不谈。
今天,我突然发现,deploy时出现的ssl信息,完全可以忽视,对,可以忽视 ,之后仍会update成功的。
通常出现上述ssl提示后,console会没有任何显示,此时不要关闭console,再次deploy时会出现如下信息
Error 409: --- begin server output ---
Another transaction by user xxxxxx is already in progress for this app and major version. That user can undo the transaction with appcfg.py's "rollback" command.
--- end server output ---
这表明之前的update仍在进行。请安心等待……
最后,好嘛,一个不是问题的问题,花了我不少时间……
这个不弄明白,代码出问题了也不难以解决。
《learning Jquery 1.3》p15有一句 JavaScript code is generally run as soon as it is encountered in the browser
也就是说,浏览器遇到一个语句就立刻解析。貌似这个问题很快就解决了。
但javascript的写法相当多,譬如网上很多人讨论的$(document).ready(和<body onload= 执行先后问题
在p16中,提到onload to run after the page is completely loaded.即onload在页面完全加载完之后执行
ready是firing once the DOM is loaded—without waiting for images 。ready在DOM加载完,图片未加载时执行。
也即ready在onload之前调用。
这里就涉及html页面的加载顺序问题。网上搜到2篇相关文章。
浏览器做了什么?
http://www.cnblogs.com/guilipan/archive/2010/01/06/1640145.html
Javascript在页面加载时的执行顺序
http://dancewithnet.com/2007/03/22/order-of-execution-of-javascript-on-web/
看完之后,比之前明白了些,但具体的关系还是没能理解。
一个html页面包括head和body两个部分,head部会调用外部CSS和JS文件,body部会调用图片,音视频等内容。
下载顺序是html ->CSS JS ->图片等。
解析顺序是html(内部是按序执行head->body)->DOM生成 ->ready执行 ->图片下载 ->body.onload
将以上两者结合,html ->head(CSS JS) ->body->DOM生成 ->ready执行 ->图片下载 ->body.onload
其中head和body部都可能包含js,按代码顺序执行。
这里就有一个疑问,浏览器会等待JS等文件下载完后,并顺序执行该JS后再继续执行之后的html代码么?
按想应该不会,不然JS文件过大,会影响html页面渲染的速度,两者应该是异步的。
但这个异步就会将之前总结的顺序搅乱。譬如onload都执行完了,包含ready的JS还没下完,此时会发生什么?
这里说得有问题,JS未下载完,onload是不会执行的。
有待继续总结……
[zz]30岁软件工程师的迷茫和悲哀
http://bbs2.ustc.edu.cn/cgi/bbstcon?board=Job&file=M.1267231721.A
文章很长,就不转载了。
其中有一段
---------------------------------------------------------
35岁左右还在从事软硬件开发工作的仍有一大堆,分析这些仍然从事开发的朋友,
基本上都有以下特点:
1痴迷工作或者痴迷电脑,晚上八点到十二点的这段时间,基本上是在电脑桌或工作台前
渡过的。
2不喜欢与人交住,朋友很少,常联系的人不超过五个。
3与朋友交往时谈工作多,但一般不主动谈钱。
4体型偏胖或偏廋,不在正常区间。
5无未来计划,对五年后自已生活怎么样、从事什么工作说不清楚。
6俭省,从不乱花钱。
---------------------------------------------------------
和我很相似……嗯,我也确实想继续做开发,但人要生活,不可能一辈子这样
迷茫和悲哀吧
试用了下heroku,结果安装时就出问题了
windows环境,按照
http://docs.heroku.com/windows 装了
msysgit和
1.8.6 one click ruby installer
D:\Ruby>gem install heroku
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
timed out (http://gems.rubyforge.org/gems/json_pure-1.2.0.gem)
大概是网络不行,于是下载后本地安装
D:\Ruby>gem install "C:\Documents and Settings\wli\My Documents\Downloa
ds\heroku-1.8.0.gem"
ERROR: While executing gem ... (URI::InvalidURIError)
bad URI(is not URI?): C:/Documents and Settings/wli/My Documents/Do
wnloads/heroku-1.8.0.gem
不行
D:\Ruby>gem install C:\Documents and Settings\wli\My Documents\Download
s\heroku-1.8.0.gem
ERROR: could not find gem C:\Documents locally or in a repository
ERROR: could not find gem and locally or in a repository
ERROR: While executing gem ... (RegexpError)
Invalid escape character syntax: /\ASettings\wli\My\Z/
还是不行,猜测是路径空格的问题
D:\Ruby>gem install E:/json_pure-1.2.0.gem
Successfully installed json_pure-1.2.0
1 gem installed
Installing ri documentation for json_pure-1.2.0...
Installing RDoc documentation for json_pure-1.2.0...
OK,成功
如此
D:\Ruby>gem install E:/heroku-1.8.0.gem
Successfully installed heroku-1.8.0
1 gem installed
Installing ri documentation for heroku-1.8.0...
Installing RDoc documentation for heroku-1.8.0...