#
http://code.google.com/p/pubsubhubbub/
pubsubhubbub是google開發(fā)的一種Atom和RSS增強(qiáng)協(xié)議,能夠接近實(shí)時(shí)發(fā)布信息。
也就是說,如果blogjava支持了pubsubhubbub,我在這里發(fā)布了博客,你就可以在你的閱讀器里很快看到我的文章。
現(xiàn)在只有部分博客服務(wù)商提供了pubsubhubbub功能,譬如WordPress,F(xiàn)riendFeed,livedoor等。
pubsubhubbub的原理很簡單。它由3部分組成,pub,sub,hub(最后的bub不是的,hubbub是騷動(dòng)的意思)。
pub可以看成是博客,sub是閱讀器,而hub是一個(gè)中轉(zhuǎn)站。通常是由sub向pub請(qǐng)求內(nèi)容,而pubsubhubbub是由sub想hub請(qǐng)求,hub再向pub請(qǐng)求,多一層hub的作用是降低pub的壓力。hub收到pub的更新后,會(huì)向sub發(fā)布最新的內(nèi)容。
因?yàn)椴皇莗ub直接向sub發(fā)布,所以這里說的“接近”實(shí)時(shí)發(fā)布信息。
那么如何讓博客支持pubsubhubbub呢?只需要建立一個(gè)hub服務(wù)器,然后在生產(chǎn)rss時(shí)加入
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/>
http://pubsubhubbub.appspot.com就是hub服務(wù)器的地址。
<?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.aygfsteel.com/liwei/rss的代碼即可,沒有hub的影子。
再看一個(gè)支持的例子
http://rasjacobson.wordpress.com/feed/ ,里面有一句 <atom:link rel='hub' /> ,這個(gè)是支持的。
具體的hub實(shí)現(xiàn)請(qǐng)查看
http://code.google.com/p/pubsubhubbub/wiki/Hubs
我這里只是個(gè)人玩玩而已,沒實(shí)力自己搭hub服務(wù)器。不過可以借助他人提供的hub服務(wù)器,譬如剛才appspot的。
知道了原理,接下來就好辦。
因?yàn)橐拇a才能修改生產(chǎn)的RSS,所以blogjava這種博客服務(wù)商不提供pubsubhubbub功能的話,我們這些用戶是無能為力的。
但自建的獨(dú)立博客是能簡單支持。等咱啥時(shí)候有閑錢了,再去做吧……
deploy時(shí)會(huì)出現(xiàn)如下信息
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

當(dāng)打開上面的頁面時(shí)會(huì)自動(dòng)轉(zhuǎn)到 http://code.google.com/intl/zh-CN/appengine/kb/general.html#rpcssl ,在這里看不到任何幫助,因?yàn)間oogle還沒將這段幫助信息翻譯成中文Orz,可以到 http://code.google.com/intl/en/appengine/kb/general.html#rpcssl 查看。這里說明在用python appcfg.py update 命令時(shí)添加 --insecure
后就不會(huì)有問題。但我用GAE Launcher也無法修改命令。再讓我回到?jīng)]有Launcher,直接用命令行的時(shí)代,還真難適應(yīng)。作罷。
我試著安裝了ssl 模塊,但無法編譯。網(wǎng)上找到了這個(gè)頁面,http://canofy.javaeye.com/blog/651968 ,該同學(xué)和我遇到了同樣的問題,并且裝了cygwin。
貌似之后還有其他問題。不談。
今天,我突然發(fā)現(xiàn),deploy時(shí)出現(xiàn)的ssl信息,完全可以忽視,對(duì),可以忽視 ,之后仍會(huì)update成功的。
通常出現(xiàn)上述ssl提示后,console會(huì)沒有任何顯示,此時(shí)不要關(guān)閉console,再次deploy時(shí)會(huì)出現(xiàn)如下信息
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仍在進(jìn)行。請(qǐng)安心等待……
最后,好嘛,一個(gè)不是問題的問題,花了我不少時(shí)間……
這個(gè)不弄明白,代碼出問題了也不難以解決。
《learning Jquery 1.3》p15有一句 JavaScript code is generally run as soon as it is encountered in the browser
也就是說,瀏覽器遇到一個(gè)語句就立刻解析。貌似這個(gè)問題很快就解決了。
但javascript的寫法相當(dāng)多,譬如網(wǎng)上很多人討論的$(document).ready(和<body onload= 執(zhí)行先后問題
在p16中,提到onload to run after the page is completely loaded.即onload在頁面完全加載完之后執(zhí)行
ready是firing once the DOM is loaded—without waiting for images 。ready在DOM加載完,圖片未加載時(shí)執(zhí)行。
也即ready在onload之前調(diào)用。
這里就涉及html頁面的加載順序問題。網(wǎng)上搜到2篇相關(guān)文章。
瀏覽器做了什么?
http://www.cnblogs.com/guilipan/archive/2010/01/06/1640145.html
Javascript在頁面加載時(shí)的執(zhí)行順序
http://dancewithnet.com/2007/03/22/order-of-execution-of-javascript-on-web/
看完之后,比之前明白了些,但具體的關(guān)系還是沒能理解。
一個(gè)html頁面包括head和body兩個(gè)部分,head部會(huì)調(diào)用外部CSS和JS文件,body部會(huì)調(diào)用圖片,音視頻等內(nèi)容。
下載順序是html ->CSS JS ->圖片等。
解析順序是html(內(nèi)部是按序執(zhí)行head->body)->DOM生成 ->ready執(zhí)行 ->圖片下載 ->body.onload
將以上兩者結(jié)合,html ->head(CSS JS) ->body->DOM生成 ->ready執(zhí)行 ->圖片下載 ->body.onload
其中head和body部都可能包含js,按代碼順序執(zhí)行。
這里就有一個(gè)疑問,瀏覽器會(huì)等待JS等文件下載完后,并順序執(zhí)行該JS后再繼續(xù)執(zhí)行之后的html代碼么?
按想應(yīng)該不會(huì),不然JS文件過大,會(huì)影響html頁面渲染的速度,兩者應(yīng)該是異步的。
但這個(gè)異步就會(huì)將之前總結(jié)的順序攪亂。譬如onload都執(zhí)行完了,包含ready的JS還沒下完,此時(shí)會(huì)發(fā)生什么?
這里說得有問題,JS未下載完,onload是不會(huì)執(zhí)行的。
有待繼續(xù)總結(jié)……
[zz]30歲軟件工程師的迷茫和悲哀
http://bbs2.ustc.edu.cn/cgi/bbstcon?board=Job&file=M.1267231721.A
文章很長,就不轉(zhuǎn)載了。
其中有一段
---------------------------------------------------------
35歲左右還在從事軟硬件開發(fā)工作的仍有一大堆,分析這些仍然從事開發(fā)的朋友,
基本上都有以下特點(diǎn):
1癡迷工作或者癡迷電腦,晚上八點(diǎn)到十二點(diǎn)的這段時(shí)間,基本上是在電腦桌或工作臺(tái)前
渡過的。
2不喜歡與人交住,朋友很少,常聯(lián)系的人不超過五個(gè)。
3與朋友交往時(shí)談工作多,但一般不主動(dòng)談錢。
4體型偏胖或偏廋,不在正常區(qū)間。
5無未來計(jì)劃,對(duì)五年后自已生活怎么樣、從事什么工作說不清楚。
6儉省,從不亂花錢。
---------------------------------------------------------
和我很相似……嗯,我也確實(shí)想繼續(xù)做開發(fā),但人要生活,不可能一輩子這樣
迷茫和悲哀吧
試用了下heroku,結(jié)果安裝時(shí)就出問題了
windows環(huán)境,按照
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)
大概是網(wǎng)絡(luò)不行,于是下載后本地安裝
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/
還是不行,猜測(cè)是路徑空格的問題
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...