2008年9月20日

有备无患:豆瓣离线 - 利用 Google Gears 实现离线浏览豆瓣的 GreaseMonkey 脚本

豆瓣离线(Douban Offline)是一个可以让用户可以离线浏览豆瓣的 GreaseMonkey 脚本。它可以在网络无法使用的情况下,浏览保存在本地的页面。它也可以用来收藏或备份豆瓣上的条目、小组和友邻等页面。

豆瓣离线使用 Google Gears API 来实现离线浏览的功能。Google Gears 是一款 Google 开发的软件。Gears 通过 SQLite 数据库让客户端能够把网页暂存起来,并通过内部服务器(Local server)把数据库中暂存的网页重现,从而让用户实现离线上网的功能。Google DocsGoogle Reader 都支持用 Gears 将本地暂存的资料与网络做同步。

豆瓣离线现在版本为 0.1,还有许多的不完善之处,欢迎大家的建议、意见和 Bug 报告:-)


功能

  • 保存豆瓣上的某个页面,以及相关的图片、CSS 和 Javascript 脚本
  • 按分类浏览已缓存的页面,目前的分类有:条目,小组和用户

使用方法

  • 如果希望保存当前页面,我们先找到导航栏“退出”附近的“离线”。点击“离线”,待离线状态栏展开完毕后,点击“离线”下面的“收藏此页面”。注意,点击之后不要马上关闭窗口,因为相关的文件可能还在下载中。另外我们也可以打开 FireBug 的终端(Console)来看看究竟那些文件被下载下来了。
  • 如果希望浏览已缓存的页面,点击 Firefox -> File(文件) -> Work Offline(离线工作)来强制 Firefox 进入离线工作的状态。点击“离线” -> “离线浏览”,然后在缓存页面目录,我们可以点击其中的链接访问已被缓存的页面。
  • 如果希望恢复在线浏览,在同样的地方点击“在线浏览”。
  • 第一次使用豆瓣离线脚本时,Gears 会弹出两个安全警告对话框,都选择 Allow(允许)就可以了。

安装需求

  1. Firefox (>=3.0.0): http://www.mozilla.com/en-US/firefox/
  2. GreaseMonkey (>=0.8):https://addons.mozilla.org/en-US/firefox/addon/748
  3. Google Gears (>=0.4):http://gears.google.com/

下载


大家可以从我的 GitHub Repo 中检出最新的脚本试用
git clone git://github.com/wuyuntao/douban-offline.git

或者从 UserScripts 网站上下载
下载


2008-09-23 UPDATE 0.2:

豆瓣离线脚本更新为 0.2,有下面这些改动:
  1. 可以手动切换上线/离线浏览
  2. 可以更新缓存页
  3. 新增两个分类,日记和相册
  4. 选中分类有高亮


2008-10-15 下载链接更新:

祸不单行。github 前几天数据库出了问题,到现在还没有恢复; userscripts.org 貌似被 GFW 给封了;今天 GAE 提供的四个 IP 中的又一个阵亡了。。。不管怎样,上面两个下载的链接都不管用了,现在提供一个本地的下载链接。
下载

2008-10-22 UPDATE 0.4:

豆瓣离线脚本更新为 0.4,有下面这些改动:
  1. 增加了翻页的功能
  2. 增加了评论和豆邮两个标签
  3. 增加了一条 Douban Helper 的控制台命令:write(wyt:Douban Helper 请安装最新版本
  4. 改正了相册日记等页面离线按钮位置不正确的bug

2008年9月14日

有备无患:Google Reader 风的豆瓣广播 widget 更新

今天为 Google Reader 风的豆瓣广播 widget 新增了三个选项:手动设置宽度 width,隐藏标题 hidetitle 和隐藏主页链接 hidefooter。谢谢 cowasiapan建议先。

使用方法和以前的说明一样,只需要将下面这段代码插入到你的 blog 模板中,并替换其中的参数。

<script type="text/javascript" src="http://luliban.com/scripts/miniblog.js?username=wyt&amp;maxresults=16&amp;style=blue"></script>

参数列表如下

  • username: 用户名,或者用户 id。(必填)
  • maxresults: 输出广播条目的数量。最大值为50,默认为10。
  • style: widget 的配色样式,默认为绿色。其他样式包括 black(黑)、blue(蓝)、gray(灰)、green(绿)、khaki(卡其色)、pink(粉红)、slate(蓝灰) 和 none(无)。其中,none 为不带任何样式的原始 HTML,适合希望自定义广播风格的 bloggers。
  • width: 手动设定 widget 的宽度,输入应为宽度的像素值,如 width=300。默认为自适应宽度(推荐)。
  • hidetitle: 如果设 hidetitle=true,将隐藏顶部标题。默认为 false。
  • hidefooter: 如果设 hidefooter=true,将隐藏底部豆瓣主页的链接。默认为 false。

隐藏标题和主页的效果如下

2008年9月12日

有备无患:升级到 Git 1.6.01 之后无法启动 git-daemon 的解决办法

git 升级到 1.6 之后,发现 git-daemon 不能启动,自然也不能作 clone 或 push 之类的操作。原因是原来的 /usr/bin/git-daemon 搬到了 /usr/libexec/git-core 目录,但是 Gentoo 的启动脚本没有随之更新。不过有人已经提交了这个 bug

自己也可动手,将启动脚本 /etc/init.d/git-daemon 中的 start 函数修改如下。
start() {
    ebegin "Starting git-daemon"
        start-stop-daemon --start --quiet --background \
        --exec /usr/libexec/git-core/git-daemon -- ${GITDAEMON_OPTS}
    eend $?
}

另外,我用来架设 Git 版本库的 gitosis 也和 git 1.6 有一点兼容问题,原因是 /usr/bin/git-shell 也搬到了 /usr/libexec/git-core 目录。好在已经有 patch 推出,只需要修改 /usr/lib/python2.5/site-packages/gitosis/serve.py,将其中调用 git-shell 的指令,替换成调用 git shell 即可。
--- a/gitosis/serve.py
+++ b/gitosis/serve.py
@@ -201,6 +201,6 @@ class Main(app.App):
             sys.exit(1)
         main_log.debug('Serving %s', newcmd)
-        os.execvp('git-shell', ['git-shell', '-c', newcmd])
+        os.execvp('git', ['git', 'shell', '-c', newcmd])
         main_log.error('Cannot execute git-shell.')
         sys.exit(1)

2008年9月10日

南言北哲:Battier or Artest,谁将首发?

1,Battier or Artest,谁将首发?

Artest。联盟最好的人盯人防守者之一,上赛季场均20.5分的进攻水准,以及38%的三分球命中率。加上曾在主教练 Rick Adelman 手底下打过一年球,对火箭现在这套动态进攻的体系了然在胸。如果在训练营和季前赛中一切顺利,他极有可能会取代 Shane Battier 成为火箭的正印前锋。

有同学认为,Artest 应妨 Luis Scola 之例,先从替补打起,走循序渐进的路线。可是你要知道,Scola 虽然在 FIBA 摸爬滚打了多年,但是他也需要时间来适应 NBA,另一方面主教练也需要时间来了解他的技术特点,所以 Scola 必须从替补打起。Artest 却是已经在联盟混迹了整九年,别说 Adelman,就是联盟其余的29位主教练也同样对他知根知底。

另外,虽然 Artest 曾经表过态,说愿意从替补打起。可是,以史为鉴,Artest 不是甘居替补之人——05年他炮轰 Jermaine O'Neal 出手权多和进攻效率低,被交易到 Sacramento 之后,又与 Mike Bibby 争当“国王”。(wyt: 最终都以阿泰“抢班夺权”失败而告终。)

2,如果 Battier 做替补,能不能胜任第六人的角色?

像 Battier 这样的防守型球员也一样可以胜任第六人,这甚至还有可能成为一股潮流。

联盟的大多数第六人都是长于进攻的球员,比如被交易回国王的 Bobby Jackson,湖人签下肥约的 Sasha Vujacic,小牛老将 Jerry Stackhouse,还有掘金的 J.R. Smith 等,他们的主要作用是在主力下场的时候带领其他替补球员,提供持续的进攻力,并为主力争取更多的休息时间。(wyt:我不喜欢把 Manu Ginobili 和 Jason Terry 归类到第六人。如果非要说,我更愿意称他们为“伪第六人”,或者,“联盟第六人奖项欺诈师”)

但是对于拥有所谓的“三巨头”的球队,这个角色常常是由“三巨头”的其中之一所担任,比如凯尔特人的 Ray Allen 和马刺的 Manu Ginobili。因而这些球队对第六人在进攻端的要求也有所不同。以 Boston 为例,上赛季第六人就是场均只有7.4分进帐的防守悍将 James Posey。总决赛中出色的表现,也让黄蜂弃用原来的第六人 Jannero Pargo,花重金将 Posey 挖来作为下赛季他们的第六人。另外,湖人下赛季也有可能让 Odom 出任第六人。

Battier 之于火箭,就像 Posey 之于 Boston 和 New Olean。而且 Battier 有更出色的协防能力和不错的背身技巧,可以想见新赛季的第四节,我们经常会看到 Battier 和 Artest 一起打完最后一分钟。

3,如果 Artest 做先发,出手次数会不会不够?

这很可能是杞人忧天。

上赛季,有三支球队的核心球员被称作“三巨头”,分别是凯尔特人的 Garnett、Pierce 和 Allen,马刺的 Duncan、Parker 和 Ginobili,以及湖人的 Kobe、Odom 和 Gasol。我们首先来看看他们的出手分配情况,并和火箭作一下对比。


表格中的 FGA 为出手次数 (Field Goal Attempts),FTA 为罚球次数 (Free Throw Attempts),TP 为球队节奏 (Team Pace),TSA 为每100次球权的真实出手次数 (True Shooting Attempts),所使用的统计公式为 TSA = (FGA + 0.44 * FTA) / TP * 100。要说明的,湖人的数据是“打劫” Gasol 以后的全明星之后的数据,而其他球队是整个赛季的数据。



从图表中,我们可以看出光是姚明,T-Mac 和 Battier 三个人的出手次数,就已经和其他几个三巨头基本持平。所以即使 Artest 取代 Battier 成为先发,只要姚明和 T-Mac 愿意牺牲自己的球权,火箭的出手次数对于 Artest 来说是绰绰有余的。

另外,由于伤病的关系,姚明和 T-Mac 都有相当长一段时间单独带队,所以也有同学质疑,这段时间他们的出手数是不是突增的,会不会影响到最后的统计结果。我也捎带统计了一下他们同时带队的10月、11月和2月份,姚明的出手数是20.0次,而 T-Mac 的是 24.4次。相比整个赛季并没有太大的变化,这主要是因为无论是姚明还是 T-Mac 带队,他们都是以火箭这个团队来进攻,谁也没有像 Kobe 在 Bynum 和 Gasol 缺席的时候那样贸然增加自己的出手。

2008年9月5日

有备无患:用 Gaupol 生成文本字幕

Gaupol 是一个用 Python 编写的文本字幕文件的编辑工具,支持包括.ssa、.ass、.srt和.sub在内的多种字幕文件格式,并提供文本校正的方法以及时间处理。其用户界面基于 pyGTK,注重对多文档和翻译的批量处理。最新版本为 0.13

下面的命令示范了利用 Gaupol 生成一个 SubRip 格式的字幕文件,以作备忘。

$ python
>>> from gaupol.files.subrip import SubRip
>>> from gaupol import NEWLINE
>>> srt = SubRip('/home/wyt/demo.srt', encoding='utf-8', newline=NEWLINE.UNIX)
>>> srt.write(starts=[u'00:00:5.000', u'00:00:15.000', u'00:00:25.000'], \
              ends=[u'00:00:10.000', u'00:00:20.000', u'00:00:30.000'], \
              texts=[u'字幕测试一', u'字幕测试二', u'字幕测试三'])

生成的 .srt 字幕文件如下

1
00:00:5,000 --> 00:00:10,000
字幕测试一

2
00:00:15,000 --> 00:00:20,000
字幕测试二

3
00:00:25,000 --> 00:00:30,000
字幕测试三

订阅我的博客

搜索我的博客

正在加载...

我的豆瓣广播

分享阅读

豆瓣秀

休斯敦火箭

我的文章归档

版权申明