使用BTSync作数据同步

现在很多人有多台电脑或者设备,在这些设备间作数据同步是一件麻烦的事情,手动同步简直是梦魇。如果带宽足够,使用统一的网络存储,设备挂载网络硬盘可以避免数据同步。但是由于你懂的原因,国内的宽带还难以满足要求,特别是上行带宽不足以及没有公网IP。还是数据同步比较靠谱,目前比较好用的工具有rsync, BTSync, Syncthing ,Syncthing还没尝试过,rsync配置起来比较麻烦,于是选择BTSync,有下面几个原因:

  1. 配置非常方便,几乎不需要修改什么配置文件
  2. 不需要公网IP,只要两台电脑都可以访问公网,如果两台电脑可以相互连通,也可以不需要访问公网

使用教程:

  1. 下载需要的软件版本,windows,linux 和 Mac都是支持的,下面只说明windows和linux下的使用
  2. windows下安装软件后打开界面如下,linux下下载之后运行./btsync –webui.listen 0.0.0.0:8888,然后在浏览器中打开该地址,界面跟windows类似。

1

  1. 配置需要同步的文件夹,只要在其中一台电脑上添加文件夹,然后在另一台上输入密钥或者链接即可实现同步。
  2. 如果电脑不能访问公网,但是两台电脑可以互联,修改首选项->高级->高级用户偏好设置下folder_defaults.known_hosts配置,把其修改为其中一台的BTSync侦听地址即可,例如10.0.0.1:53708。BTSync的侦听端口可以在首选项->高级中查看或修改 。
  3. 如果想要过滤不需要的文件,例如Log等,修改同步文件夹下.svn/IgnoreList,添加需要过滤的文件即可,例如:

# IgnoreList is a UTF-8 encoded .txt file that helps you specify single files, paths and rules 
# for ignoring during the synchronization job. It supports "?" and "*" wildcard symbols.
#
#
# OS generated files #
.DS_Store
.Spotlight-V100
.Trashes
ehthumbs.db
desktop.ini
Thumbs.db
# Temporary files #
~*
*~
.~lock.*
*.part
*.crdownload
@eaDir
@SynoResource
.@__thumb
._*
*.o
*.log
*.log.*

使用Network Emulator for Windows Toolkit做弱网络环境模拟

做手机软件测试时,经常遇到弱网络环境测试。在windows下如何模拟手机的弱网络环境呢,Network Emulator for Windows Toolkit(NEWT)提供了一个解决方案。它可以设置网络延迟和丢包率等来模拟弱网络环境。打开后主界面如下:

 

 

使用时:

  1. 首先要New channel,创建一个频道(打开软件默认创建了一个VirtualChannel 1,所以可以跳过此步)
  2. New filter 创建一个过滤器,选择需要模拟的IP地址和端口(下图左)
  3. New Link 创建链路,然后右键设置链路上行和下行的丢包、延迟、带宽、乱序、重连等等(下图右)
  4. 这些都设置好之后 start 启动网络模拟,就可以开始你的测试了

可以使用此软件直接测试windows上的软件,也可以用wifi创建热点或者使用代理来测试手机软件。

SVN 命令行部分提交

最近使用SVN命令行提交项目时,发现目前没有工具可以做到像TortoiseSVN一样选择那些提交那些不提交的。因为有一些文件是本地编辑仅仅供自己测试来用的,或者是其他feature或者bug的修改,不想一起提交掉。 而且这些文件已经在SVN提交范围内,不能SVN ignore掉。而使用SVN changelist又太麻烦,每次都要一堆操作。于是自己写了一个脚本,模拟SVN commit,只需要在不需要提交的文件前用’#’注释掉即可。

#!/bin/bash
echo -e "\n--This line, and those below, will be ignored--\n" > svn-commit.tmp
svn status | grep "^[A|D|M].*" >> svn-commit.tmp
vim svn-commit.tmp
comment="$(head -1 svn-commit.tmp)"
svn ci -m "$comment" `tail -n +4 svn-commit.tmp | grep -v "^#.*" | awk '{print $2}' | tr "\\n" " "`
rm -f svn-commit.tmp

不过目前脚本不支持全部注释掉,我认为没有这个需求,如果以后有需求再加上。