google-inline

搜索结果中出现了题目外的另外一个链接,点击会自动跳转到文档的一个书签位置。莫非Google开始对重要文档页面进行特殊的处理?还是自动生成的摘要中,如果匹配到了某个书签之后的地方,就会这样显示呢?

google-analytics

本人是完美主义者,所以会注意到这种小”问题”…
在橙色条最左端弧线处,有条border-bottom漏出了那么若干pixalpixel.同样的右边也是对称的情况.
我是在Mac OS X下用Safari 4.0.1 (5530.18)看到的效果.
Google Analytics已经不是beta啦,检查要注意些噢…

Google.COM被屏蔽.这种事情发生了就没办法评论了,这算是什么事情呢?
Anyway,对策还是经典办法,Proxy过去访问.
我想提示大家的是,一个具备SSH访问的服务器天生就可以作为一个代理服务器使用.如果这样一个服务器在中国以外,就可以通过这个Proxy访问到Google了.
有一种方式,可以在本机开上一个代理服务器,SSH连到服务器,然后把本机的SOCK通信都转发到服务器,通信出去.
这种方式称为”SSH Port Forwarding”,也直接称”SSH Tunnels”
方式非常简单:

Windows下:
你需要Plink这款软件,下载下来,命令行进入它的目录,下面输入:
[code=’sh’]plink your_username@somewherefree.com -D 1748[/code]

Mac OS X下:
之间打开Terminal,用系统自带的ssh客户端,输入以下命令:
[code=’sh’]ssh -D 1748 your_username@somewherefree.com[/code]

这样,你的localhost,端口1748就是一个SOCK的代理服务器了.设置你的浏览器代理服务器选项即可.

SSH-Tunnel

注意:

  1. 这是一个SOCK代理服务器,不是常用的HTTP服务器.
  2. 端口1748的选择我不是随意的,1748代表”你去死吧”.
  3. 只想查邮件,又怕麻烦的同学不如到我机器上来查吧.我想没有Google阅读器你们一样能活着,不像我…
  4. 你知道最简单的办法么?只需要把DNS设置成OpenDNS就可以了…208.67.220.220和208.67.222.222,也许这次事件不是GFW,只是个不凑巧的DNS故障?

gmail

哪里有绝对的可靠?Gmail这次也挂了,而且一挂就是几个小时。
我承认我有点过度依赖Google的服务了,最近还大爱Google Docs,热衷于把很多频繁更新的表格整理到Google Docs上去。
这次Gmail的Outage让我发现我居然有这么依赖Gmail,这几个小时积压的电子邮件居然到了让我回归钢笔A4纸时代…

Update:

Google在太平洋时间3点49分宣布正式解决了此问题,并公布了问题发生的原因:Google对一个欧洲的数据中心进行例行维修活动,而出口被转移到了另一个数据中心。结果一些新的代码造成了意想不到的问题,这些代码根据IP地址来判断用户地理位置,从而把他们引向较近的数据中心。结果,一个欧洲数据中心超载停机,并连锁反应引发了另一个数据中心出现问题。大约1个小时后,一切才得到控制。
Google表示这种事故非常罕见,而且他们将严加防范,以防止同类事故再次发生。

这样的解释可以理解,可是正常运行中的Gmail服务数据中心有这么高度平衡吗?

什么是 Google 数据 API?

Google 数据 API 提供用于在网络上读写数据的简单标准协议。
这些 API 可以使用基于 XML 的两种标准联合格式:Atom 或 RSS。它们还具有一个供稿发布系统,其中包括 Atom 发布协议和用于处理查询的一些扩展功能(使用 Atom 的标准扩展模型)。
许多 Google 服务都支持 Google 数据 API 协议。以下数据 API 可以使您的客户端应用程序与 Google 服务进行互动:

动机

这几天我在做自己的一个网站制作及托管服务的网站,牵涉到一些客户信息的管理什么的,最好是能做成OA之类的形式,就像Google Docs里的SpreadSheet一样,在线编辑,在线显示。不过我实在没时间去自己做这种东西,于是我在想是不是能直接通过API把Google Docs里的SpreadSheet直接嵌入我自己写的网页里去。不见得需要编辑功能,估计Google也不会提供,不然Google Docs不就变成带有后门的网站留言文本编辑器了么…(所谓带有后门,是指与一般留言文本编辑器不同,不是把数据存储在本地网站,而是存储在另一个服务器,在这里就是Google Docs服务器上)

php_google_docs1

站在巨人的肩上,感谢Lim Jiunn Haur写的WordPress插件Inline Google Docs早就提供了这个功能,我把这个插件拆开,去掉多余的,为我所用了。

php_google_docs2

使用方法

用法很简单,后面的相关下载中提供了一个RAR包,当中包含两个文件夹,styles里包含了一个CSS,用于修饰SpreadSheet表格显示的效果,这里的风格基本上是白灰风格,如上图所示。鉴于保密需求我做了模糊处理,反正就那么个意思。你需要在你的网站中加入这个CSS或者将这个集成到你的CSS中,或者干脆不要,自己写。
includes文件夹是库,其中Zend是Google Data API库,由Google发布。gdocs是本文所述的库。加载Google Data API库的代码在gdocs下gdocs.php中,你可能需要做一点路径修改之类。至少在你的全局include库的地方加入Zend的位置,并include gdocs.php这个文件。

[code=’php’]
/* Add Zend library to path */
$path = dirname (__FILE__) . “/includes”;
set_include_path (get_include_path () . PATH_SEPARATOR . $path);
[/code]

另有一个全局配置文件config.php,我并没有给出,你自己要补上。示例如下:

[code=’php’]
/* Site Configuration */
define(‘SITE_URL’, ‘http://www.yourdomain.com/’);

/* Google Docs Settings */
define(‘GOOGLE_DOMAIN’, ‘yourdomain.com’);
define(‘GOOGLE_USERNAME’, ‘username@yourdomain.com’);
define(‘GOOGLE_PASSWORD’, ‘YourGooglePassword’);
define(‘PROXY_HOST’, ”);
define(‘PROXY_PORT’, ”);
define(‘PROXY_USERNAME’, ”);
define(‘PROXY_PASSWORD’, ”);
[/code]

调用显示Google Docs中包含的文档时,PHP代码如下:
[code=’php’]
gdocs_list();
[/code]
具体的显示风格请自行修改includes的gdocs下,gdisplay.php文件。

调用显示某一个具体的SpreadSheet的时候,$atts[‘type’]置’spreadsheet’,st_id为SpreadSheet的ID,例如’pNrLCrMF9srEYeIRCLO5kEF’,wt_id为工作表ID,例如’od6’,PHP代码如下:
[code=’php’]
$atts[‘type’] = $_GET[‘type’];
$atts[‘st_id’] = $_GET[‘st_id’];
$atts[‘wt_id’] = $_GET[‘wt_id’];
$atts[‘style’] = ‘googledocs’;
$atts[‘headings’] = NULL;

gdocs_display($atts);
[/code]

注意事项

  • 按照原作者Lim Jiunn Haur代码中的声明,本作品源代码依旧遵循GNU Public License
  • 修改之后的代码示例只包含了必要的我能用到的功能,就是对Google Docs中Document和SpreadSheet的列表,以及SpreadSheet的显示功能,其他功能并未写出实例,但是包含的Google Data API是完整的,应该可以写出进一步功能的代码,这里留给读者去自行研究吧。

相关下载

参考资料

0. 动机

如果你是一个没什么事情的人,估计这篇文章对你来说一点作用都没,甚至觉得有点无病呻吟。
如果你是个忽然间陷入忙碌的工作中的人,你可能还没意识到工作和生活可以有一套方法去管理。恭喜你,这篇文章目标就是写给你的。当然这里的方案都是我在使用的方案,很多时候也许对你来说,还存在着更好的方案。(举个例子,我用联通,也许你用移动,那么恭喜你你可以用飞信。飞信是开放API的你知道吗?这种优势,写个程序,也许可以让你的烤面包机给你发SMS呢。)
如果你和我一样是一个被事情缠住根本无法脱身而不得不做,而且和我一样是一个崇尚高效鄙夷浪费时间的人,看过这篇文章之后,一定会产生共鸣吧。我希望你能够在下面留言,告诉我你的方法,我们共同进步。

1. 圣经

s2754540 《时间管理——给系统管理员》,Thomas A. Limoncelli
这本书是圣经。
记得第一次读这本书纯属比较懒的一种动机。2008发生了很多事情,在这一年里,我在2月、3月、4月、5月、6月、7月、8月、9月都回家一次。在回家的火车里,读一本书俨然是routine。记得以前拿着Java编程思想啃,也学习过打印出书的某一章读完这样破坏环境的事情。其实拿起这本书的时候我的角色是一个新系统管理员想学点东西,放下这本书的时候是一个激动的我寻找到了知音一晚上没睡着觉满脑子想架一套个人信息管理系统。
可惜豆瓣没有六颗星。

2. 信息中心——E-mail

别告诉我看到这个题目你很惊讶。我也知道很多人一个月都不一定打开一次Email。记得我入职MSRA Intern的第一天,被HR MM(97分!!)领着去见我的Mentor,海东见到我第一件事情是领我到计算机旁边,然后让我先建好工作环境,说,这是Outlook,用你的域帐户登陆。Outlook是你的最重要的工作工具,重于Visual Studio。其实那个时候我已经很重视了Email的作用。

身份:
我知道你是个忙人,你一定有很多种身份吧~你也许喜欢注册很多很NB的邮箱,但是注册了就忘记了。其实,Gmail可以管理这样的多重身份,最终效果就是你只需要在一个Gmail里检查邮件就可以,不需要一次性登录到所有的邮箱。那样真的很麻烦,估计这也是某些人远离Email的原因之一。

[singlepic=18227,600,413]

解决多重身份问题,使用Gmail的Accounts概念。原理其实很简单,大家都知道Email发件人其实是可以伪造的吧。Gmail其实是在你授权之下伪造发件人地址,使用你指定的发件人。

Continue reading