我的数码生活 – 硬件篇

一直以来都很向往数码化的家居生活,但在没有能力直接拿下现成方案的时候,就需要自己折腾了。自打搬出合租的地方,开始慢慢购买一些比较实用的网络设备,到现也买了不少,当然,也折腾掉了不少时间,现在也算是有个雏形,算个家庭的“云”么,哈~

这篇主要介绍我使用的硬件,至于软件方便,如果买的设备软件功能上已经足够完善,基本上是不需要怎么折腾的。折腾的话,基本上就是 Linux 的事了,这个下次再说。

上面就是现在使用的设备和大致网络拓扑结构了。

需求

一般说来,现在个人的需求也不是特别复杂,主要就是下载、影音和备份。

1. 下载

现在看电影啥的,动不动就720P,1080P,文件大小少则2G,多至蓝光原盘的20多G,例如,用2M ADSL的小水管来下载一个8G的视频文件,就需要近10个小时,电脑一整天开着下载比较不实际,而且也比较费电。

这个时候就需要下载机出场了,下载机的功率一般都只有10几瓦,加上硬盘,24小时都不到半度电,无疑比使用电脑下载合算许多。

2. 影音

我对电影或者音乐的需求并不是特别大,现在越来越多的是去电影院看电影,但是在折腾的时候,总归想把事情弄得完美一些,于是就顺带着把电影播放和音乐播放的东西也搞定。

3. 存储

可以说,我折腾这些的主要目的就是为了存储了。存储包括了存放一些软件、文档、代码等,还有 Time Machine 的备份。作为一个程序员,最怕的就是代码丢失了,因此这一块相对而言是投入最大的。

网络

虽然许多人说用无线有辐射,但是我还是觉得无线比较舒服,不用许多网线,而且移动来移动去也比较方便。并且现在的无线使用 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 扩展功能也不是特别实用。

在 Synology 的网站翻了好久之后,决定入手 …

阅读全文 »

爱糗事上线啦

漫长的 In Review 终于过了,爱糗事终于上线了。

爱糗事是一个糗事百科的 iOS 客户端,支持 iPhone 以及 iPad,详细介绍及截图请看这里

通过 iTunes 下载

Snow Leopard Server 上配置 Gitosis 笔记

为了迁移项目 Git 仓库到 Mini Server 上,需要在 Snow Leopard Server 上配置一下 Gitosis,但是 Mac OS X 和 Linux 不太一样,有些地方需要特殊处理一下。

安装 Gitosis

Gitosis 的安装就不多说,在参考文档2中有。

添加 Git 用户组及用户

添加用户可以用参考文档1中的方法来创建,没有尝试直接用 OSX 的用户管理来创建是否可用。

# 这里的用户组和用户ID 用 401,但是实际用时需要根据服务器上的情况来创建
# 我在使用时 401 这个 gid 就已经被占用了,可以使用以下两个命令看看要用的
# ID 是否已经被用了。
sudo dscl . list /Users uid
sudo dscl . list 


阅读全文 »

[Cocoa学习]格式化日期和解析日期字符串

在应用程序中,显示消息的时候一般都需要附带一个消息接收的时间,使用 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 


阅读全文 »

[Cocoa学习] 限制 NSTextField 中输入文本的长度

需求

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 = 


阅读全文 »

iWangWang v0.3.0 Released

在上一个版本发布之后,过了两个月的时间,终于又有一个可以发布的版本了。

使用菜单中的“检查更新”既可完成更新,或者前往 Google Code 下载。

这次的更新如下:

  • [FIX] 修正在 Snow Leopard 中无法在 Dock 上显示未读消息数目的bug
  • [FIX] 修正在网页中点击旺旺图标无法打开聊天窗口的bug
  • [FIX] 修正无法使用“指定发送”和“添加好友”功能的bug
  • [FIX] 修正表情选择框在一些情况下引起程序崩溃的bug
  • [FIX] 修正在聊天窗口中无法指定发送功能无法使用的bug
  • [FIX] 修正一些菜单无法在所有窗口中使用的bug
  • [NEW] 现在可以使用 Ctrl+N 同时运行多个 iWangWang 来实现同时登录多个淘宝帐号
  • [NEW] 现在如果聊天时消息发送失败,可以重新输入验证码
  • [NEW] 登录后会恢复上一次退出时主窗口的位置
  • [NEW] 表情选择框现在可以用 ESC 键关闭
  • [NOTE] 有bug可以在 http://code.google.com/p/iwangwang/issues/entry 提出

这次主要修正了 iWangWang 在 Snow Leopard 下的兼容性,之前的开发环境是 Leopard,没能在 …

阅读全文 »

iWangWang for Mac v0.2.0 发布

iWangWang v0.2.0 更新日志

  • [NEW] 在 Dock 上显示未读消息的个数
  • [NEW] 在“窗口”菜单中显示已经打开聊天窗口的列表
  • [FIX] 修正即使没有勾选“记住密码”时复选框还是会被自动选中的bug
  • [FIX] 修正登录超时导致程序崩溃的bug
  • [FIX] 修正“指定发送”中发送给自己时,关闭消息框后无法继续输入用户名的bug
  • [FIX] 修正在升级时关闭窗口会导致程序崩溃的bug
  • [FIX] 更新旺旺图标聊天脚本,修正了在某些页面点击图标聊天会出现乱码的bug,请重新安装用户脚本即可,用户脚本地址请参考
  • http://www.xujiwei.com/blog/iwangwang/use-iwangwang-in-browsers/
  • [MOD] 使用邮件来代替 Google Docs 进行使用反馈
  • [MOD] 调整了一下分组按钮的背景

安装

可以使用菜单“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,谢谢:)

[HOWTO] 在 Mac 下的 Safari 中直接打开 iWangWang 进行聊天

鉴于支付宝已经发布供 Safari 使用的安全登录控件,并且 Safari 可以自动调用关联程序来打开自定义协议,所有 Safari 下的点击旺旺图标打开 iWangWang 进行聊天比较容易实现,使用一个用户脚本就行。

要实现在 Safari 中点击旺旺图标进行聊天,步骤如下:

  1. 安装 SIMBL
    下载地址:http://www.culater.net/software/SIMBL/SIMBL.php
    SIMBL 可以理解为一个扩展加载器,因为 Safari 本身并不支持扩展机制,所有 SIMBL 使用了一种 Hack 的方式来方便加载第三方扩展。
  2. 安装 GreaseKit
    下载地址:http://8-p.info/greasekit/
    GreaseKit 是一个类似于 GreaseMonkey 的扩展,可以通过它在 Safari 运行用户脚本。
    如果你的系统是 Mac OS X Leopard,那么可能会出现安装 GreaseKit 失败的情况,这时可以试试一位网友重新编译的 GreaseKit,下载地址,关于这个问题的讨论可以看这里
  3. 最后,安装 iWangWang 聊天用户脚本
    安装地址:


阅读全文 »

iWangWang v0.1.2 for Mac 发布

iWangWang 是一个在 Mac OS X 下使用的 Web 旺旺的客户端,使用 Mac 用户在淘宝购物时也可以方便地与卖家沟通,不需要每次打开 Web 旺旺,以及弥补 Web 旺旺不支持联系人列表及聊天记录的缺陷,并且目前只支持淘宝网帐号登录。

iWangWang 使用 REALbasic 编写,因为是基于 Web 旺旺的,所以 Web 旺旺不支持的功能 iWangWang 也没有实现,包括但不限于旺旺群、自定义表情、文件传送,并且和某一个联系人第一次聊天时,需要输入验证码。

注意:

  1. 这纯粹是我个人出于兴趣而制作的一个程序,与公司无关。
  2. 因为使用非公开接口,协议通过黑盒分析所得,因此有可能会由于 Web 旺旺修改通信协议而导致程序无法使用。
  3. 由于缺乏艺术细胞,因此程序界面仿照 MacQQ,如果觉得有内容侵犯了您的权利,请及时联系我修改,谢谢 :)
  4. 因为淘宝帐号涉及到金钱,所以如果不放心请不要使用这个程序 :)

如果有任何问题或建议,请联系 ohdarling88 # gmail dot com,或者点击菜单“文件》填写使用反馈”来填写反馈内容。

14:40 Update 更新下载链接,修正了接收带有自定义表情的消息时会导致程序崩溃的bug,如果已经下载,可以直接点击菜单“iWangWang > 检查更新”

阅读全文 »

HostsManager v0.4.1

使用 REALbasic 写的一个 hosts 文件管理工具,可以快速方便的管理系统中的 hosts,支持 Mac OS X 与 Windows。

注:Vista 和 Win7 需要使用管理员权限运行。

如果有bug或建议,请发送邮件到 ohdarling88 # gmail dot com

下载: