更新日志
HostsManager for Mac OS X v0.4.2 更新
- 修正在 Mac OS X Lion 下启动失败的bug
- 在 Mac 系统中,使用 \n 作为 hosts 文件的行分隔符
下载
HostsManager for Mac OS X v0.4.2
注意: 此次仅更新 Mac OS X 版本,HostsManager for Windows 版本没有更新
HostsManager for Mac OS X v0.4.2 更新
HostsManager for Mac OS X v0.4.2
注意: 此次仅更新 Mac OS X 版本,HostsManager for Windows 版本没有更新

嗯,这算是一个帖子引发的血案。之前在逛恩山的时候,看到一个帖子,《给tp-link wr941n增加一个液晶屏,散热片和USB口》,这就跨上了改造路由器的不归路。
先秀一下最终改造结果:
需要说明的是,改造路由器加装液晶屏,只能算是一个玩票的行为,实际意义不是特别大,成本相对路由器来说,也不低,所以只推荐喜欢折腾的人玩。
另外,这篇文章只介绍怎么去加装液晶屏,不涉及到加装 USB 口。
要改造路由器,首先就需要去准备一个路由器,一般的路由器可不行。为了能在液晶屏是显示内容,需要有程序去控制液晶屏,而一般的路由器是不能运行自己的程序的,这就需要路由器可以刷机,可以刷 dd-wrt 或者 openwrt 等等的都可以。
我用的路由器是迅捷 fw300r,实惠,京东的价格在79左右浮动,比较便宜的另外一个好处就是折腾坏了不心疼,这篇文章的内容也是以 fw300r 为基础而写。我买的 fw300r 是 v2 版本,配置为 4M Flash 和 32M RAM。
加装液晶屏,再需要的当然就是液晶屏了。我这里选择的是 12864 液晶,分辨率是 128x64。
需要注意的是,一般买到的 12864 的接口都是并行或者SPI,并不能直接连接在路由器上使用。因此,在选购液晶的时候,要注意选择带 TTL 或者 UART 支持的,要不然还得加个单片机在路由器和液晶屏之间。如果是在淘宝上购买,可以找串口支持的 12864 液晶,但是特别注意,SPI 串口不是我们这里要用的串口,最好和卖家沟通之后再买。
液晶屏的电压也需要注意,路由器的 TTL 针脚一般也带电源输出,但是电压只有 3.3v,如果选购的液晶屏驱动电压是 5v 的话,那就需要安装额外的电源了。
液晶屏建议选择小屏,路由器本身体积不大,如果选择大屏的话,有可能装不下,要把液晶屏放在外面。
另外,路由器上需要加装 …
 阅读全文 » 
我的数码生活 - 硬件篇 写了一些硬件的使用,这次写一下在使用过程中的设备性能表现。
这次测试的主要内容是 MacBook Pro,DS211j 以及 Maxtor Shared Storage 之间的传输速度,包括使用 LAN 和使用 WiFi 的情况。测试使用的文件是两个7G左右的视频文件,因为这次测试不能体现小文件的拷贝速度。
我的 DS211j 为了文件安全考虑,采用的是 RAID 1,而不是 RAID 0,因此在 NAS 这一端,性能瓶颈应该会在硬盘的传输速度上。DS211j 和 WZR-HP-G300NH 都是支持千兆LAN的,但是我不清楚我测试时使用的网线是否为超五类线,不过测试表现还不错。MSS 只有百兆LAN口与 WZR-HP-G300NH 相连。
另外,由于 MBP 和 WZR-HP-G300NH 在 802.11n 上的兼容性问题,实际连接速度只有 130M,而不是 802.11n 标称的 300M。因此使用 Windows 电脑来测试的时候,在 WiFi 传输速度测试时表现可能会更好。
测试数据是使用的 Synology DSM 的性能监测和 …
 阅读全文 » 
一直以来都很向往数码化的家居生活,但在没有能力直接拿下现成方案的时候,就需要自己折腾了。自打搬出合租的地方,开始慢慢购买一些比较实用的网络设备,到现也买了不少,当然,也折腾掉了不少时间,现在也算是有个雏形,算个家庭的“云”么,哈~
这篇主要介绍我使用的硬件,至于软件方便,如果买的设备软件功能上已经足够完善,基本上是不需要怎么折腾的。折腾的话,基本上就是 Linux 的事了,这个下次再说。

上面就是现在使用的设备和大致网络拓扑结构了。
一般说来,现在个人的需求也不是特别复杂,主要就是下载、影音和备份。
1. 下载
现在看电影啥的,动不动就720P,1080P,文件大小少则2G,多至蓝光原盘的20多G,例如,用2M ADSL的小水管来下载一个8G的视频文件,就需要近10个小时,电脑一整天开着下载比较不实际,而且也比较费电。
这个时候就需要下载机出场了,下载机的功率一般都只有10几瓦,加上硬盘,24小时都不到半度电,无疑比使用电脑下载合算许多。
2. 影音
我对电影或者音乐的需求并不是特别大,现在越来越多的是去电影院看电影,但是在折腾的时候,总归想把事情弄得完美一些,于是就顺带着把电影播放和音乐播放的东西也搞定。
3. 存储
可以说,我折腾这些的主要目的就是为了存储了。存储包括了存放一些软件、文档、代码等,还有 Time Machine 的备份。作为一个程序员,最怕的就是代码丢失了,因此这一块相对而言是投入最大的。
 虽然许多人说用无线有辐射,但是我还是觉得无线比较舒服,不用许多网线,而且移动来移动去也比较方便。并且现在的无线使用 802.11n,速度虽然不一定能到 300Mbps,但是达到 100Mbps 还是没有问题的,可以满足多数应用的需要。从一开始的图中也可以看到,我只有个别设备使用了网线连接,其他的都用无线。
虽然许多人说用无线有辐射,但是我还是觉得无线比较舒服,不用许多网线,而且移动来移动去也比较方便。并且现在的无线使用 802.11n,速度虽然不一定能到 300Mbps,但是达到 100Mbps 还是没有问题的,可以满足多数应用的需要。从一开始的图中也可以看到,我只有个别设备使用了网线连接,其他的都用无线。
路由器使用 WZR-HP-G300NH 是因为这是能找到可以刷 dd-wrt,而且有千兆LAN,外形又比较中意的机型了。虽然现在也有双频的型号,但是可能LAN就没有千兆了,不能两全。另外,WZR-HP-G300NH 也有一点不好,它使用的 802.11n Draft,并不是正式版,与 Mac 配合并不完美,MBP 连接后传输速率只有 130Mbps。
如果不需要 dd-wrt,不需要千兆LAN的话,还是有不少路由器可以选择的,并且 802.11n 正式版也已经出来了,适应性可能更好。
 存储这一块着实考虑了点时间,一开始也看上了 DS710+,但是价格实在有些高,不在接受范围之内,而且暂时也没有扩展的需求,所以它的 eSATA 扩展功能也不是特别实用。
存储这一块着实考虑了点时间,一开始也看上了 DS710+,但是价格实在有些高,不在接受范围之内,而且暂时也没有扩展的需求,所以它的 eSATA 扩展功能也不是特别实用。
在 Synology 的网站翻了好久之后,决定入手 …
 阅读全文 » 
为了迁移项目 Git 仓库到 Mini Server 上,需要在 Snow Leopard Server 上配置一下 Gitosis,但是 Mac OS X 和 Linux 不太一样,有些地方需要特殊处理一下。
Gitosis 的安装就不多说,在参考文档2中有。
添加用户可以用参考文档1中的方法来创建,没有尝试直接用 OSX 的用户管理来创建是否可用。
# 这里的用户组和用户ID 用 401,但是实际用时需要根据服务器上的情况来创建
# 我在使用时 401 这个 gid 就已经被占用了,可以使用以下两个命令看看要用的
# ID 是否已经被用了。
sudo dscl . list /Users uid
sudo dscl . list …在应用程序中,显示消息的时候一般都需要附带一个消息接收的时间,使用 NSDate 和 NSDateFormatter 即可完成格式化输出日期的任务,但是在使用时会比较麻烦,通过 Category 的方式来给 NSDate 类直接添加两个类方法来做这些事情会比较好,在以后需要格式化字符串时不需要每次都去创建一个 NSDateFormatter 对象。
对于解析日期时间也是同理。
@interface NSDate (FormatString)
- (NSString*)stringWithFormat:(NSString*)fmt;
+ (NSDate*)dateFromString:(NSString*)str withFormat:(NSString*)fmt;
@end
@implementation NSDate (FormatString)
- (NSString*)stringWithFormat:(NSString*)fmt {
    static NSDateFormatter *fmtter;
    
    if (fmtter == nil) {
        fmtter = [[NSDateFormatter alloc] init];
    }
    
    if (fmt == nil || [fmt isEqualToString:@""]) {
        fmt …NSTextField 作为一个常用的输入控件,有些在使用时需要去限制其中可以输入文本的长度,而 NSTextField 本身并没有提供这个功能,这就需要我们自己去想办法来实现了。
在网上找了一下,发现可以通过继承 NSFormatter 实现一个子类来实现这个功能,参考了一下找到的代码[1],再将主要的 isPartialStringValid 方法根据自己的需要改了一下。
- (BOOL)isPartialStringValid:(NSString **)partialStringPtr
       proposedSelectedRange:(NSRangePointer)proposedSelRangePtr
              originalString:(NSString *)origString
       originalSelectedRange:(NSRange)origSelRange
            errorDescription:(NSString **)error 
{
    int size = [*partialStringPtr length];
    if ( size maxLength ) {
        if (origSelRange.location == [origString length]) {
            // 如果修改的位置在原来字符串的最后,则不做修改,只是拒绝内容修改
        } else {
            // 如果修改的位置在原来字符串的中间,就根据剩余的可用的长度把新增加的字符串进行截取
            int preLen = …在上一个版本发布之后,过了两个月的时间,终于又有一个可以发布的版本了。
使用菜单中的“检查更新”既可完成更新,或者前往 Google Code 下载。
这次的更新如下:
这次主要修正了 iWangWang 在 Snow Leopard 下的兼容性,之前的开发环境是 Leopard,没能在 …
 阅读全文 » 
可以使用菜单“iWangWang》检查更新”来自动安装或访问下面这个地址来下载安装:
http://iwangwang.googlecode.com/files/iWangWang-v0.2.0.zip
这次更新的还有浏览器中旺旺图标点击聊天的脚本,修正了在淘宝宝贝详情页点击卖家旺旺图标出现乱码导致而无法聊天的bug
安装指南:
http://www.xujiwei.com/blog/iwangwang/use-iwangwang-in-browsers/
已经安装的用户可以只需要重新安装用户脚本,用户脚本地址:
https://iwangwang.googlecode.com/hg/wwprotocol.user.js
如果您有任何建议或意见,请发送邮件到 ohdarling88 # gmail dot com,谢谢:)
近期评论