分享Dropbox的两个奇葩用法。

写这篇文章时,心里总想起大妈 ZoomQuiet 早前在微博上的签名

“备份不做,十恶不赦。”

对于一个安全意识健全的人而言,做好备份工作,也是良好职业素养的体现。进度备份、文件冗余备份、RAID备份、云备份、……怎么备份都不过分。Dropbox 就是一个非常流行的云存储备份文件的工具,它可以很方便的将文件保存到云端,与好友共享,并且在一段时间内提供简单的版本控制功能。

Dropbox
Dropbox

当然,Dropbox 的用处绝不止这么简单。除了备份和共享文件,越来越多的人正试图利用它开展一些非常有意思的工作,比如建网站啦、GTD啦,等等。

今天也赶个时髦,介绍我自己的两个比较 奇葩 的用法。如果你也有什么有趣用法,也欢迎发邮件跟我交流。

奇葩用法一:远程查看进度

先来看看这幅出自 geekoftheday 的漫画:

Spare Time For Computer Workers
Spare Time For Computer Workers

为什么计算机工作者总给人一种悠闲的感觉?因为他们的悠闲时间大部分来源于等待(血淋淋的事实啊 T_T),对于码农,等待编译完成或者程序运行跑出结果是家常便饭的事情了,有时为了第一时间了解进度,还得一直守在屏幕旁不敢走开,以防 leader 突然间逮住你说:

程序猿的忧桑
程序猿的忧桑

其实可以利用 Dropbox 实时汇报程序编译/运行进度。做法是在你的程序里将进度信息输出到 Dropbox 里,这样即使人走开了,利用手机上的Dropbox客户端也可以随时了解进度。对于不方便导出进度信息的程序,也可以通过截屏工具定时截屏,然后将图片保存到 Dropbox 里,这样活脱脱就是一个远程监控呀!

用Dropbox手机客户端查看进度
用Dropbox手机客户端查看进度

如果你的 leader 比你还想快一点知道结果,你可以将编译进度和每一步的结果做成一个网页,放在 Dropbox 目录下的 public 子目录,然后获取它的公开访问链接,你的 leader 就可以和你一样关注进度了!比如 这个示例页面

用这个办法,遇到再 push 的 leader 也无压力了哟亲!

程序猿的欢乐
程序猿的欢乐

奇葩用法二:团队 I/O

还是提到等待,除了等待程序执行,程序猿还要等待数据。《我是歌手》唱红了一首歌,来自黄琦珊的《等待》——

等待,

永久的等待。

树叶绿了又黄,

你还没来。

在团队项目中有时会遇到这种情况:你把跑数据的算法实现了,但另一个人数据还没给你,“巧妇难为无米之炊”,没数据你也跑不了程序。碰上比较迫近的 deadline,你可能就得陪着他一块熬夜。等他把数据弄出来了,他潇洒的去睡了,你却要跑程序给结果。

程序猿的等待
程序猿的等待

利用 Dropbox,你可以让程序代替你去等待和自动处理数据。方法如下:假设团队用于共享数据的目录名为 data ,首先在你的程序里写一个循环,监测 data 目录,一旦发现有数据文件,就进入处理,然后把处理完的数据移动到其他目录;否则等待一段时间再判断一次。例如,这是我在一个 Matlab 程序中加的一段辅助代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
while true

%% 测试数据目录是否有新文件
filelist = dir('data/');
if length(filelist)>2

%% 读入数据
filename = filelist(3).name;
dataplace= strcat('data/',filename);
resultplace = sprintf('result/%s-cluster.cla',filename);

% 处理数据

% 将数据和结果复制到结果文件夹和存放已处理数据的文件夹
copyorder=sprintf('cp %s result/%s-progress.txt',log,filename);
system(copyorder);
mvorder=sprintf('mv data/%s processed/%s',filename,filename);
system(mvorder);
else
disp('Data目录还没有文件!系统将在10秒后再次检测...\n');
pause(10);
end;

end;

程序猿的得瑟
程序猿的得瑟

Comments