Jul 03

免费的Godaddy空间使用起来很稳定,但是总是担心这个免费的空间某天突然由于不可抗拒的原因导致数据丢失,所以随时备份一下博客数据还是很有必要的。

主要的步骤:
1.注册IFTTT帐号,在“Channels”里添加WordPress和Blogger帐号(添加帐号有一定的风险,自己权衡)。

2.点击上面的“Create”按钮,按照步骤一步一步新建一个“Recipes”。“Choose Trigger Channel”选择“Feed”下的“New feed item”,然后就是添加“Feed URL”了,“Feed URL”就是你的WordPress博客的Feed地址,一般为”http://chun.pro/feed”的形式。然后点击”Create Trigger“按钮,选择”Choose an Action“下的”Create a post“,接着就是设置发布在Blogger上的文章的格式了,这个自己按照个人喜好修改就可以了。

Jun 29

为了刷存在感,我一直通过Twitter2Blogger将Twitter上的留言每天整理一份发到Blogger上,记记流水账,刷刷Timeline,也算不错。

但是一年前在GAE上搭建的Twitter2Blogger目前已知提示错误,错误代码为”tweepy,auth.get_username()”,估计是Twitter起用了API 1.1,导致了tweepy的不兼容。现在tweepy中的API版本也跟着升级到了1.1,所以我也重新上传了一下代码。为了防止忘记搭建的过程,我就将搭建的过程。

1.准备工作
1.1注册GAE帐户,新建APPID。
1.2下载并安装Google App Engine SDK for Python。
1.3注册Twitter Application,填写Callback URL地址为 http://APPID.appspot.com/twitter2blogger/oauth_callback的形式,设置Default Access type 设置成Read only或者Read and Write,记录得到的得到Consumer key 和 Consumer secret。
1.4下载Twitter2blogger,地址为https://code.google.com/p/twitter2blogger/
1.5下载Tweepy,地址为http://github.com/downloads/joshthecoder/tweepy/

2.修改上传代码
2.1解压Twitter2Blogger,将Tweepy文件夹解压到与app.yaml文件同一个目录。
2.2修改app.yaml中的application为自己的APPID(即前面1.1新建的APPID)。
2.3修改main.py中26-32行的相关项目,包括Consumer key、Consumer secret、domain、time_local_offset、replies、blogger_mail和gae_mail。这一步骤要注意blogger_mail和gae_mail的邮箱地址,如果不能正常发布到Blogger的话很有可能就是这里的问题。
2.4使用Google App Engine Launcher工具或者appcfg.py update命令将Twitter2Blogger发布到GAE上,我一般喜欢使用命令行,简单方便干脆。

3.验证和配置阶段
3.1在浏览器中输入 http://APPID.appspot.com/twitter2blogger/oauth ,按提示操作,Allow之前设定的GAE应用XXX访问Twitter。
3.2修改cron.ymal中的schedule和timezone,重新发布;

4.其他设置
4.1修改第60行的内容,将Blogger上的日文标题修改为英文或者英文。
4.2修改cron.ymal里的时区为Asia/Shanghai,默认是Asia/Tokyo。

参考地址:http://sns.juziyue.com/home.php?mod=space&uid=162&do=blog&id=36687

Dec 27

转自:http://valenliao.blogspot.com/2010/02/ie-compatible-for-gallery-template.html

也許你和我一樣也擁有與使用 Blogger 所提供的 Blog 空間。從前 Blogger 給網友的印像大概就是它所提供的 Template 太少,也太簡單了,因此也無法獲得一般網友的青睞。事實上在網路上已有許多Blogger Template 的設計者設計了許多令人驚艷的主題式樣本。這似乎也讓一般網友有機會接觸 Blogger 並在 Blogger 所堤供的空間裡經營 Blog。最近有一種 Blogger 主題式樣本 – Gallery 系列 – 蠻受大家喜歡的。這篇文章算是一篇教學文吧!想分享一些有關Gallery 系列主題樣本的資訊與如何修改它,讓它與 MSIE (Microsoft Internet Explorer) 相容。

當你安裝好 Gallery 樣版後,在 Header 下方你會看到一個 Navi-bar 。但如果你是 MSIE 的使用者 (版本早於 8.0.7600),你會發現那個 Navi-bar 對 Mouse 指標沒有反應。你需要修改的部份如下:

在 HTML 程式碼的的最上方,找到 Conditional Comment Code “[if IE]”。

刪掉以下的 Conditiional Comments:

[if IE]
[endif]

或者,如果你想對 MSIE CSS 提供更好的支援的話,把刪掉的 Conditional Comments 改成如下的 Conditional Comments:


存檔後,試看看重新執行 Galler,Mouse 對 Navi-bar 應該已經有反應了。

關於第二項需要修改的部份,如果你是MSIE的使用者,你會發現一個程式碼錯誤的警告,如右圖左下角所示。這項錯誤是有關於 Browser 解釋 div 物件 innerHTML 的問題。在這一點上,MSIE 的行為與其它 Browser 的行為不太相同。基本上,div.innerHTML 並非 div 的標準物件,但大部份的 Browser 都支援它就是了。MSIE 基本上在處理 div.innerHTML 時,程式設計師最好是把要塞入 div.innerHTML 的物件包裝成 DIV 的形式比較不會有問題。有興趣的話可以到 MSDN 網站去看看相關的說明。

在 Gallery 樣版中,相關的原始碼如下:

function createSummaryAndThumb(pID, pURL, pTITLE){
    var div = document.getElementById(pID);
    var imgtag = "";
    var img = div.getElementsByTagName("img");
    var summ = summary_noimg;
    if(img.length>=1) {
        imgtag = '';
        summ = summary_img;
    }
    var summary = imgtag + '
‘ + removeHtmlTag(div.innerHTML,summ) + ‘
';
    div.innerHTML = summary;
}

除了不與 MSIE 相容之外,在 Gallery 樣版中,createSummaryAndThumb() 函數, 會把相對於縮圖格內 (Photo Thumb) 的圖檔連結位址改成在 Item Mode 的位址,以便瀏覽者在點選縮圖時會開啟獨立顯示圖檔的 “大圖”。但此功能對於直幅相片的支援很爛,會把一張美美的照片弄到變形,就像是變形蟲一樣。因此在修改 createSummaryAndThumb() 函數時,我僅參照縮圖格的高度來改變縮圖的大小,並非原始程式碼中同時參照縮圖格的高度與寬度。 修改後的程式碼如下:

function createSummaryAndThumb(pID, pURL, pTITLE){
    var div = document.getElementById(pID);
    var imgtag = "";
    var img = div.getElementsByTagName("img");
    var summ = summary_noimg;
        var isMSIE = (navigator.appName == 'Microsoft Internet Explorer');
        var pic_height = img_thumb_height - 2;
        var pic_width = img_thumb_width - 2;
   if(img.length>=1)
   {
        if(isMSIE)
        {
      imgtag = '';
        }
        else
        {
      imgtag = '';
        }
        summ = summary_img;
   }
   var rmtag = removeHtmlTag(div.innerHTML,summ);
   if (rmtag == "..."){ rmtag = ""; }
   var summary = imgtag + '
‘ + rmtag + ‘
' ;
   summary = '
‘ + summary + ‘
';
   div.innerHTML = summary;
}

最後一個問題是有關於圖檔快取服務的問題。在 Gallery 樣版中會引入一項由 Dropbox 所提供的 Cache Directory Service。關於這個問題,其實也不算是個 Bug,基本上 Gallery 利用這項圖檔快取服務是為了要增加秀圖的速度。因為並非每一個網路相簿空間的提供者 ( 如:Flickr 與 Picasa ) 都提供足夠的速度來支援外連服務。因此,這項服務的引入似乎有其必要性。至於 Dropbox 所提供的 Cache Directory Service,可以參照 Dropbox 官方網站的說明。但我發現引入這項服務有時 (再次強調… 是 “有時候”) 反而會大幅降低秀圖速度。如果你的網路相簿空間的提供者提供高速的圖檔外連服務,基本上你不會需要這項圖檔快取的服務。

Sep 09

使用了很多的博客,包括自己搭建的Wordpress平台,最后发现还是Google Blogger最稳定最安全,尽管经常被抽风。但是我主要用Blogger来转载网上的一些有用的信息,所以可以用电子邮件的形式来发布,如果需要那篇文章直接翻过去看就行了。而且近来好像ghs.google.com好像解封了,这就更坚定了我使用Blogger的信息。

选用Blogger还有另外一个原因,那就是Blogger可以绑定域名。理论上Blogger是不能绑定裸域的,但是通过变通的方法还是可行的。在后台绑定的输入域名的地方,在域名前线添加一个空格,然后输入随机码就可以了。当然如果你喜欢www或者blog的前缀就不存在这个问题了,你直接输入就可以了。

使用上面的方法绑定了裸域以后会出现一个问题,那就是www.name.com的形式好像不能访问。我的解决方法是设置:cname name.com ghs.google.com,然后使用GAE平台的反向代理程序bs2grproxy(此处不给出链接了,自己搜索下载),目标地址填写name.com,同时还需要在DNS添加一条记录:cname www.name.com ghs.google.com。完成上面的设置后就算基本上可以访问了。但是有一个前提就是ghs.google.com你可以正常访问。

我自己还想试验了下面的设置能不能起效:
(1)在Blogger绑定A记录到ghs.google.com可用的ip上,然后将www设置别名,即A:  @ xxx.xxx.xxx.xxx,cname: www @。这种设置和上面的设置一样,裸域肯定能访问,但是www没经过试验就不知道了。

(2)在Blogger绑定www的A记录到ghs.google.com可用的ip上,然后设置别名@到www上。这种设置www肯定能访问,但是裸域就不知道了。因为我个人比较喜欢裸域的简单形式,所以不会采用这种形式,哪位如果感兴趣可以试一下。

Blogger绑定域名即可以才用A记录又可以使用cname,二者是等效的,但是从我个人的角度来看我比较喜欢使用cname别名,因为如果使用A记录的话,只绑定一两个域名没有什么问题,但是绑定的域名较多的话修改起来就比较麻烦。我自己的做法是将ghs.google.com目前可用的ip全部设置在A记录里面,也就是形如ghs.aaa.com xxx.xxx.xxx.1、ghs.aaa.com xxx.xxx.xxx.2、ghs.aaa.com xxx.xxx.xxx.3的形式,然后在别名里设置cname blog.aaa.com ghs.aaa.com,由于我设置的别名很多,这样万一需要修改ghs的可用ip的话就比较方便,A记录一修改后面马上就生效了。

当然你如果不怕麻烦也可以这样设置:
ghs1.aaa.com xxx.xxx.xxx.1、
ghs2.aaa.com xxx.xxx.xxx.2、
ghs3.aaa.com xxx.xxx.xxx.3
……
blog.aaa.com ghs1.aaa.com
blog.aaa.com ghs2.aaa.com
blog.aaa.com ghs3.aaa.com
相信这样设置的话防震减灾的效果也不错,就是太麻烦。

Jun 26

1. 進入控制主頁=>版面配置=>修改HTML=>修改範本=>,把「展開小裝置範本」打勾,找到下面這段代碼:

<span class=’post-labels’>
<b:if cond=’data:post.labels’>
<data:postLabelsLabel/>
<b:loop values=’data:post.labels’ var=’label’>
<a expr:href=’data:label.url’ rel=’tag’>
<data:label.name/>
</a>
<b:if cond=’data:label.isLast != “true”‘>,>/b:if>
</b:loop>
</b:if>
<—-程式碼插入處
</span>

2. 將下列整段程式碼插入:
align=”left”的位置可以自己調整,要置中的話可以改為align=”center”,置右改為align=”right”;
[AdSense 程式碼]為Google Adsense提供的廣告程式碼;

<div align=”left”>
<b:if cond=’data:blog.pageType == &quot;item&quot;’>
[AdSense 程式碼]
</b:if>
</div>

3. 最重要的地方是要修正一下AdSense程式碼,只是把xml格式換了一種寫法(因為blogger使用xml格式,如果語法要使用字符<﹐而該字符卻絕對不能以<出現在任何的XML 資料中﹐這樣必須遵循XML 1.0 的規則﹐也就是應鍵入成 &lt;)。

即:把<和>改為&lt;跟&gt;。