跳到主内容

Unison 同步/备份

unison是啥?

unison是一个跨平台的同步工具, 基于ssh, 安全方便. 我一直使用同一个版本, 无需安装, 只要放置在系统目录中就可以, 或者从系统目录中建立一个链接即可.

注意事项

  • 相同版本的unison
  • 从B测试A上unison是否安装好:
ssh user@A_ip unison

替代选项

  • dropbox
  • lftp的 mirror 功能
  • rsync

update

2009: 用着用着好像问题多了起来. 如果文件多了, 不是每次都能成功

2010: 好吧, 有了dropbox, 我就不用unison了. dropbox可以自动同步, 而unison需要手工同步.

2011: rsync 看起来也是不错.

货真价实蒸汽小火车

West Ryde有个蒸汽小火车, 和真的蒸汽火车一样, 都是烧媒的. 这玩意儿应该可以帮助小孩子获取工程学的一些经验吧.

开放时间是每个月的第三个星期六下午1:30-4:30. 里面的工作人员应该都是爱好者, 年纪都比较大, 后继无人亚.

地址:

Cnr Anthony Rd & Betts St
West Ryde, NSW 2114
(next to West Ryde Marketplace Carpark)

很便宜, 入场费成人2澳刀, 小孩子1澳刀, 坐一次1澳刀.

如果你幸运的话, 可以看到下面的这个录像:

twill - 浏览网页的脚本语言

twill的用途

twill可以用来在命令行浏览网页,当然, 更可以用来自动获取某些信息, 特别是需要登录才能获取的. 例如图书馆的书什么时候到期.

twill是python的库, 可以直接在python中调用. 它还提供一个命令行程序, twill-sh, 可以直接在命令行中调用. 以前用过mechanize(以前的clientform), 也是python的一个库, 但是感觉有点乱. twill的好处就是很直觉的操作, 例如输入用户名/密码,按"提交"按钮, 等等.

twill操作

具体操作它有自己的脚本格式. 下面是个简单的例子:

go http://xxx.com/login
formvalue 1 username YOURNAME
formvalue 1 password PASSWORD
submit
save_html xxx.html

以上代码就是到某网页,输入用户名/密码,提交,保存得到的页面. 然后则可以从保存的内容中提取需要的信息了.

其他

重导向死循环

有的网站设计有问题,例如我们council的图书馆,登录之后会进入死循环.只好先设置

config acknowledge_equiv_refresh false

登录后直接go到相应页面即可.

替换品: curl

根据阮一峰的文章, curl也可以操作表单啥的. 这样就可以把数据拿下来了.

神奇的 pathogen

pathogen + git

pathogen + git 真是太强大了.

以前安装vim插件的话, 里面的内容要分装到几个目录中, 例如doc, plugin等. 升级的时候尤其麻烦. 而pathogen是vim的一个插件, 装了它以后, 其他插件就可以放在.vim/bundle里面单独的一个目录中即可.

现在vim 插件几乎都被搬到github上. 通过git可以很容易就下载/更新vim插件, 因为在pathogen的帮助下, 每个插件都是一个单独的目录了, 互相之间不影响.

vim scripts提到一些管理的工具.

git module

现在.vim/bundle里面有若干个目录, 每个目录都是一个git管理的仓库, 每次更新都要手工更新, 当然写脚本也可以, 只是感觉不够优美.

今天看到一篇文章, 里面提到"git module", 就是一个git仓库中还可以嵌入其他独立的仓库. 这个用来管理整个vim配置目录, 甚是完美. 例如我把.vim作为一个仓库, 而从github上clone下来各种插件到.vim/bundle中. 我从其他机器上克隆的时候, 就可以自动把这些插件也下载下来.

假设我有项目super, 其中有4个submodules, a, b, c, d.

初始化modules

# add remote repo
$ git submodule add path_to_repo local_subdirectory/name
# add submodule repo urls to config
$ git submodule init
# clone and checkout
$ git submodule update

更新

(在super的目录中)

$ git pull
$ git submodule update
$ git submodule foreach git pull # 如果上面一行不行

在其他地方clone

$ git clone path_to_remote_repo
$ git submodule init
$ git submodule update # 以后只要这个即可

移动模块

修改模块的名字, 见stackoverflow:

$ vim .gitmodules # 修改对应路径
$ mv oldpath newpath
$ git rm oldpath
$ git add newpath
$ git submodule sync

注意

  • 子模块可以看作只读的. 要修改也可以, 签出"master"branch即可.
  • 删除module有点麻烦, 目前不能自动删除, 步骤和修改模块名字差不多.

链接

virtualenv 真是一个好东西

virtualenv

virtualenv 相当于在一个目录中形成一个单独的python环境. 其中安装的包和系统没有关系. 这个特点对于爱折腾,要使用最新版库的人 来说非常有用. 例如flask / blogofile就推荐使用virtualenv.

让我想起vim的pathogen插件,真是太神奇了.

初始化

$ cd somewhere
$ virtualenv --no-site-packages myproject
$ ls myproject
bin include lib

--no-site-package让新安装的包都装到该目录, 而非链接到系统里面的库.

激活

$ cd myproject
$ source bin/activate

使用

在这里就和以前一样使用了, 使用easy_install/pip来安装python软件.

evernote

现在网络上资源很多, 有时候想保存下来. 最好能

  • 跨平台. Linux/Mac/Android. 虽然Mac快挂了.
  • 跨浏览器. Firefox/Chrome.
  • 能够脱机浏览, 特别是图片. 主要现在网站挂得太快了, 一不小心就找不到了. 还是保存在自己手里比较放心.
  • 速度不能太慢. 否则真是煎熬呀.

Evernote不错

update 2016

  • 抛弃 evernote.
  • PC 上竟然不能选择性同步 文件夹. ipad上可以哟.
  • 没有linux 客户端
  • 来了一次彻底的导出数据, 花了好几天, 貌似成功了.
  • 我唯一怀念的是它的OCR 功能, 搜索起来很方便.
  • 保存HTMl 文档我现在用 pinboard 的归档功能. 一年$20.

update 2012-10

购买了premium账户. 感觉不错.

  • 浏览器(插件web clipper)可以快速摘录文章
  • ipad客户端可以阅读, 加亮某些重要内容
  • 利用插件, 搜索google时自动也会搜索evernote.
  • 配合ifttt, 可以自动把某些内容备份进来.
  • 配合zootool+ifttt, 把书签自动加进来.
  • 把收据拍照片后上传, 可以搜索哦. . . hohoho

现在只用evernote了. 但是这个公司的作风像是一个传统公司. 做的广告都是面对初级使用者的.

Update 2011-11

在chrome里面试了一下evernote, 感觉现在保存速度还是很快的, 图片也可以保存. 目前就用它了. 加上它还有一个插件, 类似与readibility之类功能. 现在chrome只要装这两个插件就可以了.

本地同步版本

以前这么用, 现在改投evernote了.

工具 感觉
scrapbook + dropbox 资料保存得很不错, 包括图片什么的. scrapbook是firefox的插件, 可惜chrome没法用. 利用dropbox来同步. 太多文件的时候,同步速度慢, 而且dropbox也会有警告(linux上).
chrome + readability + SingleFile + PageArchiver 保存在本地, 甚是清爽. readability 把网页重新排版, SingleFile把图片等嵌入到网页中, 保存的时候就是一个单纯的网页文件, 没有其他乱七八糟的东西了. 就是步骤烦了一点. 要先点 readability, 然后点SingleFile, 最后ctrl-s保存.

截图

有时候截图就比较方便, 例如菜谱, 但是不能搜索呀.

|chrome插件 awesome screenshot: Capture & Annotate |截图插件, 来自diigo, 可选择大小, 选择时可以滚动到当前看不到的区域, 可编辑 |快且简洁| |chrome插件 webpage screenshot |截图, 可选择大小, 选择时可以滚动到当前看不到的区域, 可编辑 |有点慢| |firefox插件 screengrab |截图软件, 可选择大小, 可是无法选择当前看不到的区域, 不能编辑 |速度快|

网络版本

很多网站现在提供这种服务, 几乎各大浏览器都有插件:

网站 comments
read later fast for chrome 好像也是来自 diigo. 速度飞快. 只能保存书签? 哦,好像可以离线浏览的. 不知道保存在什么地方, 没法用dropbox同步呀. 恩, 可以同步到diigo.com, 不知道速度如何.
clipboard.com / js按钮 可选择保存某些frame, 可保存图片到服务器上, 有点慢
diigo 好像是中国人开发的? 可以保存成cached page, 可是有的页面也没有保存下来. 图片也没有保存? 高级版本貌似可以,但是只能另外单独保存. 要是可以保存选择的部分 (包括文字和图片), 我还是愿意掏钱的. 擦, 保存的东西都是公开的. 幸好没有保存敏感的东西.
instapaper 相当于保存书签, 另外可以保存txt. 界面简单. 速度快. 但是有时候貌似抓得不行. 不能保存图片
readitlaterlist.com 和instapaper差不多
Q for later 只能保存原样的网页, 图片没有保存

Building Academic Vocabulary

By Lawrence J. Zwier

Including, Making Up

Group1 Group2 Group3 Group4
consist of involve constitute conprehensive
comprise encompass make up all told
be composed of include form mainstream
contain

Excluding, Not Being Part of

Group1 Group2 Group3 Group4
anomalous keep out filter rogue
exception exclude screen outcast
egregious ban alien
marginal

Equivalence, Similarity

Group1 Group2 Group3 Group4 Group5
equality parallel alike just as conterpart
parity echo identical likewise clone
equivalent image

Difference, Inequality

Group1 Group2 Group3 Group4 Group5 Group6
disparity differ differentiate discrete heterogeneous contrast
inequality diverge distinguish disparate diverse discrepancy
gap

Changes, Increases, Decreases

Group1 Group2 Group3 Group4
alter transform raise reduce
modify redesign rise diminish
transition restructure accelerate contract
expand decline

Links, Correlations, Happening Together

Group1 Group2 Group3 Group4 Group5
link accompany characteristic of in conjunction with imply
correlation go along with associated with to the degree that infer

Causes and Effects

Group1 Group2 Group3 Group4 Group5
stem from lead to render favor be resonsible for
be due to yield make promote porvoke
derive from generate be blamed for

Permitting, Making Easier

Group1 Group2 Group3 Group4 Group5 Group6
permit permissive consent exempt facilitate clear the way for
allow lenient approval excuse ease remove obstacles to

Stopping, Preventing

Group1 Group2 Group3 Group4 Group5
halt restrict forbid prevent hinder
cease restrain deny forestall block
suspend deter