月度存档: 八月 2011

淘宝 for iOS 历程

这是在 [淘宝2011技术嘉年华](http://developerclub.taobao.com/) 上讲的关于淘宝 for iOS 开发过程的演示文稿。

View more presentations from ohdarling88.

— EOF —

My Book Live 评测

早上到手,开箱照见 My Book Live 开箱照

之前做过 DS211j 的性能评测,这次也主要做一些传输性能的评测,另外加一些功能介绍。

在很早之前,就关注过西数的 My Book 系列,My Book World Edition 也是带网络接口的,不过价格相对较高,而且性能也是很强,性价比不高。前段时间在 Hi!PDA 看到别人发的 My Book Live 介绍之后就看了一下,目前的价格降到合适的位置,刚好下载机的硬盘坏了,就入手了一个 My Book Live。

基本信息

型号:WDBACG0010HCH-SESN

内核:

Linux MyBookLive 2.6.32.11-svn22400 #2 Fri Apr 15 11:08:36 PDT 2011 ppc GNU/Linux

CPU 和 内存:

MyBookLive:~# cat /proc/cpuinfo 
processor   : 0
cpu     : APM82181
clock       : 800.000008MHz
revision    : 28.129 (pvr 12c4 1c81)
bogomips    : 1600.00
timebase    : 800000008
platform    : PowerPC 44x Platform
model       : amcc,apollo3g
Memory      : 256 MB

默认数据分区格式为 ext4:

/dev/sda4 on /DataVolume type ext4 (rw,noatime,nodelalloc)

实际可用容量只有 992G,还是用 1K 的进制算的⋯⋯

MyBookLive:~# df -H
Filesystem             Size   Used  Avail Use% Mounted on
tmpfs                   53M      0    53M   0% /lib/init/rw
udev                    11M   6.9M   3.7M  65% /dev
tmpfs                   53M      0    53M   0% /dev/shm
rootfs                 2.1G   1.1G   865M  55% /
tmpfs                   53M   3.4M    50M   7% /tmp
ramlog-tmpfs            21M   2.5M    19M  12% /var/log
/dev/sda4              992G   6.7G   986G   1% /DataVolume

配置相对来说还不错,像 DS211j 也只有 128M 的内存⋯⋯

传输速度测试

传输性能测试环境:

  • My Book Live 1TB
  • MacBook Pro with SSD
  • Buffalo WZR-HP-G300NH
  • 网络环境:有线千兆LAN,无线 802.11n @ 130Mbps
  • 测试文件:Mac OS X Lion GM 文件,大小 3.75GB

小文件传输基本上和文件个数有关,就不做测试了。

LAN 上传

速度基本上稳定在 42MB/s 左右,和

继续阅读 »

WD My Book Live 开箱照

下载机的硬盘快挂了,MSS 是很老的东西,再买块硬盘挂上也不爽,刚好最近看到西数的 My Book Live,配置还不错,刚好入一个当下载机。

不过买了之后才想到,我已经有 DS211j,也可以当下载机⋯⋯不过 My Book Live 配置还不错,可以同时挂更多任务了。

— EOF —

给 iOS 项目添加自动更新属性

在 iOS 项目中,有些时候为了方便跟踪发布时的版本,方便调试,或者为了展示程序的编译日期,可以通过在 Info.plist 里面添加自定义属性的方式来实现,但是这个工作是一个纯粹机械的重复劳动,每次手工去更新是比较麻烦的一个事情。

好在 Xcode 项目支持自定义脚本的编译步骤,我们可以通过在编译过程中使用自定义脚本去更新 Info.plist。

在 /usr/libexec 目录下面,有一个工具 PlistBuddy,它可以很方便地修改 plist 文件,而不需要去用 sed 之类的编辑工具来修改。

为了在使用 PlistBuddy 的时候可以直接用 Set 命令设置属性,我们先在 iOS 项目的 Info.plist 里面加一个需要自动更新的属性,例如 BUILD_DATE 和 GIT_REVISION,类型选择为字符串,值填 AUTO_GENERATED。

然后在 iOS 项目的 Target 上添加一个新的编译步骤 Run Script Build Phase:

下页就是要编写脚本了

# 获取编译的日期
DATE=`date +%Y.%m.%d`
 
# 获取编译时 Git 库的短版本号
GIT_REVISION=`git rev-parse --short HEAD`
 
# 设置 Info.plist 中相关的属性
/usr/libexec/PlistBuddy "$TARGET_BUILD_DIR/$INFOPLIST_PATH" -c "Set BUILD_DATE $DATE"
/usr/libexec/PlistBuddy "$TARGET_BUILD_DIR/$INFOPLIST_PATH" -c "Set GIT_REVISION $GIT_REVISION"
 
# 将 Info.plist 转换为二进制格式
plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH"

如果需要在程序里获取这些属性,那么就可以用下面的方法:

NSString *buildDate = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"BUILD_DATE"];
NSString *revision = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"GIT_REVISION"];

— EOF —