骑日

今天是圣地亚哥的“骑车上班日”。怀着能够拿到免费汗衫和食物的美好期盼,我早上六点刚过就闻鸡而起,跨上自行车,踏上了骑车上班的征途。
一路的经历可以用“波澜不惊”来形容。而完成了大约8英里路程的我,也如愿以偿的和众多自行车客一样,在活动的参与之中,得到了精神上和物质上的满足。

Bike To Work Day

Bike To Work Day


峰会

这周的主要议题之一是峰会。
周二的“安全峰会”之后,紧接着就是周三的“开源峰会”。
会上有不少引人入胜的演讲。在聆听了Ubuntu首席运营官马特的旗帜鲜明的游说公司积极参与开源互动却又不乏我所赞同观点的“关键笔记”演讲之后,我的峰会之旅就此结束。

20100520 Open Source Summit

20100520 Open Source Summit


谜团

乘昨日骑车上下班之东风,今日继续骑车的我,在一路上坡的归家途中,终于体会到了被压垮背的骆驼生活的艰辛。经历了将近一个小时的跋涉,身心俱疲的我拖着有如灌了铅的双腿,蹒跚而至。在浑身疼痛之余,我还是强打精神进行了一把搜索。地图显示,这条杰茜勾画出的路线,单程居然有7.8英里之多。
至此,疲惫的谜团终于解开了。


骑车

今日第一次骑车上班,走的是昨日杰茜给我画出的路线。在经历长途跋涉、误闯海军陆战队基地并折回继续艰难前行、以40迈每小时的时速冲下山坡和气喘吁吁的推车无奈爬坡等一系列活动的50多分钟之后,我终于完成了克莱格所说的他每日耗时20分钟的路线,来到了办公室。


海滩

今日终于得以去了趟海边,踩着海水沙滩,感受云淡风轻,看海鸥飞翔,夕阳西下。

La Jolla Shore Beach Sunset

La Jolla Shore Beach Sunset


版控

离开学校有段时间了,前些天收到封邮件说我在学校的一个帐号就要到期。一直以来我用这个帐号对各个项目、文章还有代码进行版本控制(version control)。旧的数据备份问题应该不大,可是找寻一个新的稳定的私有版本控制服务成了当务之急。
在昨天研究了半天gitfarm.appspot.com提供的免费服务而相当不甚满意之后,通过阅读了无数的网络文章,今天我终于发掘了一个从保密性、经济适用性和管理性上看都不错的方法。这方法就是利用git的分布式版本控制功能加目前流行的同步存储软件(服务)来实现目的。我所推测能用的同步存储软件包括LiveMesh (Windows),Ubuntu One (Ubuntu Linux)还有DropBox (Windows, Linux, Mac OS)。很显然,从可移植性角度考虑,DropBox是不二选择。
下面咱们就看一下如何用git+DropBox在Linux下实现基于云存储(DropBox目前使用亚马逊的S3作为后台存储)的版本控制。别的软件/系统组合可以类推。
首先相应软件(git, DropBox客户端)需要得以安装,DropBox帐号需要注册,这些自然不必提起。
假设DropBox的本地根目录位于$HOME/Dropbox。咱们首先建立一个名为`myproject.git’的git的远端中心栈(remote central repository):
cd ~/Dropbox
mkdir -p repos/myproject.git
cd !$
git –bare init
至此,一个新的栈已被建立。
然后咱们转到需要导入的项目目录,假设为$HOME/myproject。如果这里还没有建立一个git栈,为之:
git init
git add . # (加入当前目录下所有文件)
git commit -m “A commit message such as ‘init import’”
然后咱们把它和刚才建立的新的栈建立联系:
git remote add dropbox file://$HOME/Dropbox/repos/myproject.git
并把当前分支(master)的数据导入
git push dropbox master
至此咱们大功告成:当前项目目录里的文件已和位于DropBox目录的远端栈同步,而包含远端栈的DropBox下的子目录repos/myproject.git也同步更新了云上的存储。即使不多久本地的myproject下数据有所损坏,咱们仍然可以跟随类似如下的方法将其恢复:在另一台别的电脑上安装DropBox并使用如上的帐号进行同步,假设DropBox的根目录依旧是$HOME/Dropbox,而将要到入项目的目录是$HOME,
cd $HOME
git clone -o dropbox file://$HOME/Dropbox/repos/myproject.git
此举在建立本地栈的同时,也将dropbox和本地的master建立联接。
看来,DropBox还真是个好东西!

另:如果远端的栈在同步的过程中发生了数据损坏,而本地栈的数据完好,一个恢复数据的简单方法是先在本地将远端栈删除
cd $HOME/myproject
git remote rm dropbox
然后清除DropBox里对应远端栈的目录并重新建立栈
rm -rf $HOME/Dropbox/repos/myproject.git/*
cd $HOME/Dropbox/repos/myproject.git/
git –bare init
接着在本地栈重新建立和远端栈的联系并将本地数据导入
cd $HOME/myproject
git remote add dropbox file://$HOME/Dropbox/repos/myproject.git
git push dropbox master


西瓜

今天第一次大规模地吃了今年的西瓜。夏天似乎就这么来了!