自建家庭私有云NAS——硬件篇

背景

现在网上在线看电影已经变成了常态,下载机的需求已经不再是那么的迫切。 但为什么我还是佩里不讨好的要自己DIY一个NAS呢?

听说微软准备把蓝屏改成绿屏了

我的公司笔记本电脑硬盘经常损坏,所以需要备份。但USB接口的移动硬盘也是脆弱的一个设备。而且每次都需要插上后备份。手机,家里的笔记本,台式机,相机……都存在类似的需求。这让USB接口的移动硬盘方案不太合理了。

将家人的照片和文件共享也是一个原因。现在的方法就是微信转发,但问题就是分辨率不高,或者占用大量的手机存储空间,更换手机后想要拷贝回来iCloud用量已经超标……。同时也存在检索以前的照片视频非常困难。

一台电脑编辑一个文件后,用另一个设备打开是一个非常常见的操作。比如手机或者相机拍照后用台式机来修图,然后又通过手机来分享照片。没有私有的云设备,很多时候我们不得不用微信一张张的传送分辨率极低的图片,或者用移动盘来拷贝。

实际上市面上已经有很多成熟的NAS产品,如果只是想要解决这些问题。还是建议直接采用厂家的标准解决方案,因为这些产品的软件和服务可以帮一般用户节省大量的时间和精力。但除了省钱这个必要的原因之外,DIYer的精神就是折腾,如果不能安抚自己躁动的内心,就像是没有找到合适的产品。除此之外,标准解决方案虽然非常高效,但也有一些不足的地方,我们在下面的文章中也会逐步探讨。

为什么不把数据都同步到云上面去?——这个问题怎么回答你呢?曾经突然收到网盘关门大吉的消息还没来得及备份的我看到这个问题就感觉到心里默默的痛…… 继续阅读“自建家庭私有云NAS——硬件篇”

关于调试工具的一些想法

在工业产品中,虽然USB接口越来越流行,但是固执的工业产品中标准的串行通讯总线:RS-485, RS-232还是最为流行的。原因之一就是相对于USB接口来说,其实现起来更加简单,对调试和现场安装的要求也相对简单一些。大量简单的MCU都集成了标准的串口通讯,只需要硬件接出来即可。而软件开发上,对调试等速度要求不高的功能,程序开发也相对简单很多。而简单的RS-485总线甚至可以在一定的范围内成为标准的工业网络使用,成为了小型自动化系统的物理标准。

对于市面上流行的各种设备,各个设备生产厂家都开发了相对成熟的调试工具。但随着新产品,新总线,新协议的不断增加,自动化系统的网络通讯变得越来越复杂,这些调试配置工具也变得越来越复杂,对使用者的要求,电脑硬件的要求也越来越高。很多简单的调试工作上,工程师反而不得不去远离这些庞大的调试工具,越来越依赖人工直接调试。

简单产品调试所需要的功能是什么呢?

  • 支持RS-485 /RS-232通讯即可
  • 对调试电脑的硬件的要求不要太高
  • 突出核心功能:设备基本调试,参数的上载和下载
  • 使用方便(这个要求是最模糊,却需要得到解决的)

怎么去满足这些要求呢?我自己其实来完全没有此类软件的开发经验(都多少年没有写过代码了,呵呵),却面对了不少这类的客户和大量此类产品。以我自己的想法,满足这些要求的产品,应该可以这样设想吧:

  • 单个程序,无须安装,配置和存储全部都在一个文件夹内,可以移动使用。
  • 硬件接口只支持RS-485/RS-232接口,其他的接口暂时不用考虑。
  • 程序针对WINDOWS系统,但最好能考虑可移植到linux等系统,毕竟工业系统中的各种情况还真的说不清。
  • 数据存储,坚决使用SQLite来进行存储。基本配置文件可以用文本文件,其他的数据全部都在SQLite中保存。
  • 用户界面要简单,就几个页面,但却要突出功能。不华丽,却足够显示和输入足够的信息。对设备的参数等信息有在线的帮助。
  • 最好能允许使用手机等设备来访问。如何实现呢?——Web方式!就是说程序的用户端是网页,而不是wxWindows等特定的实现。这样如果工作环境中有Wifi,在一台电脑上安装这个软件,调试工程师就可以通过手机访问它,来遥控这个设备。无须在设备和电脑之间跑来跑去。

所以,整个程序的设想就是一个程序即是一个web服务器,也是串口通讯程序,也是工控协议处理单元,也是数据库服务器,也是具体设备调试应用处理者。

是不是破费周折啊,把最落后的串口通讯,折腾成能用AJAX来实现的网页,让手机能通过WIFI调试近在咫尺的那些工业设备。但这样是不是就像是给了那些古董的机器一个内置Web服务器的感觉啊!一下子,新时代的大门为各样的机器敞开了大门。

怎么实现呢?其实来现在还真的没有怎么想过。现总结一些知道的资源吧:

  • 实现语言为Python(为什么?看看下面这些内置功能就知道了)
  • 服务器实现为Python标准库内置的Web服务器,或者pyWeb(如果网页复杂)
  • 串口部分采用pySerial作为接口,这里有一个参考
  • 由于Python的二进制处理比较弱,还要采用struct来帮忙。这里一个参考文章
  • 数据库就是标准的pySqlite库了
  • 由于使用Python,多平台,线程等问题就不用太多考虑了。
  • 网页上的Javascript通过AJAX来做数据的实时刷新
  • 调试和编程简单点,但是制作安装包估计麻烦不少。

关于录音笔那点事儿

最近因为选择录音笔,了解了一些关于录音笔的事情。算起来在这之前,我对这个较为冷僻的电子产品还真是一无所知的。所以,即便自己不能算是全面了解这类产品,还是把自己最近所得到的一些信息汇总在这里,以便于以后自己选购此类产品的时候使用。

录音笔和一般MP3的区别(应用场合)

个人对录音的需求按照以下应用场合分类:

  1. 高质量宽声域录音需要,比如在野外录一下空谷悠鸣,夏日后的晚风吹拂麦穗。如果看过韩国,日本小资的电影,肯定对这个向往不已。不过,这类录音,小小的麦克风实在是无法承担的,所以也不要指望小小的录音笔可以驱动了那超大的抗风噪的麦克风。
  2. 演奏会,演唱会等要求现场还原度高的场合。这类录音,需要CD般的录音品质。通常,这类产品的回放效果也要求是一流的。一般能达到这个要求的产品绝对是录音笔中的高端产品。
  3. 电话,手机,收音机或其他有Line out输出设备的录音。直接将录音设备的麦克风输入口(一般录音笔的Line In端口)接入即可。一般音质要求会接近收音机FM品质。
  4. 采访,演讲,会议等录音环境比较复杂的情况下需要进行记录。这类录音需要连续录制时间长,可分段或间断录音,抗噪声。录音设备要求小巧,操作方便。
  5. 个人语音备忘录记录。这类录音对录音质量的要求不高,只要录音回放可以清晰听见即可。

首先,单单如果要具备录音功能,目前市面上的所有MP3都是具备类似功能的。不过由于硬件上个别MP3并没有集成麦克风,甚至无法接入麦克风,所以此类产品是无法录音的。以目前我使用的iPod来说,支持录音的状况是这样的:

  • iPod nano 第五代内置麦克风可录音,无需配件。而第四代和第三代都需要额外的配件来连接麦克风进行录音。然后在“附加功能》语音备忘录”菜单下添加记录。记录的格式为WAV文件。
  • iPod touch 第三代支持录音。第二代则需要外接麦克风。
iPod可用的麦克风
iPod可用的麦克风

从iPod的介绍可以看出来,作为MP3来说,录音功能其实来是是非常简单的。大部分MP3由于芯片成本的限制,基本上都没有高采样精度,以及MP3文件格式输出的录音功能。一些简单的手机上,也采用类似的解决方案来进行录音操作。但手机的录音机大多采用AMR文件格式,而不是MP3播放器所采用的WAV格式。这是因为,相比WAV格式,AMR文件更加小巧,一秒的记录基本可以维持在1kB大小左右。(参见:语音文件格式

相比于普通MP3播放器和手机,在所有的录音笔产品中,都至少具备如下一些特点。如果缺少这些特点,这些录音笔的功能就是相当欠缺的。

  • 内建高品质麦克风,大多数为双声道麦克风,部分产品有专用的第三麦克风进行单声道录音操作。
  • 可外接麦克风。但由于录音笔一般体积小巧,驱动功率很小,无法直接接入如品质较好的电容式的标准麦克风。
  • 至少可以输出128kbps的MP3文件格式,部分可以输出320kbps的MP3文件。
  • 高级一些的录音笔支持PCM格式的WAV文件输出
  • 暂停后,可连续在一个文件上进行录音操作
  • 具备一定的抗噪声处理功能,当也可关闭此抗噪声处理功能(有点像相机的防抖功能,毕竟会损失一部分频带信息。)
  • 一节电池可进行不得少于4~6个小时的录音操作
  • 支持MP3的播放,录音的回放

和MP3,手机这些产品相比,录音笔主要可以实现现场还原度更高的录音(不要指望你的手机可以记录电脑风扇的微弱噪声,泉水的流淌,清亮的鸟鸣)。使用更加方便。

主要厂家和主要产品

目前市场中的录音笔中上市场,基本由日本厂家垄断。特别是SONY,绝对是录音笔行业的老大。如果购买者有足够的金钱,请直接考虑SONY的高端产品。

索尼PCM-D50(4GB)

PCM D50 绝对的经典,录音笔中的旗舰产品。可以录制线性以采样率44.1/48/96kHz的PCM(WAV)。内置的两个麦克风抗噪为20dB,而且方向可以根据现场的需要旋转以达到最好的录音效果。其他产品中都没有这个设计。而却它和PCM-M10在MP3播放上的效果也非常好,甚至很多人拿它来作为MP3播放器使用。

不过,显而易见的就是D50真的不能叫做录音笔,他的体积实在是有点肥大。而且一次要吃四颗AA电池也真的让人有点吃不消。如果留恋对D50的美好向往,却不愿意忍受它的体积和重量。PCM-M10绝对是一个不错的选择。它只需要两颗AA电池即可工作。

SONY高端录音笔的特点就是:支持PCM格式;高质量的内置麦克风;支持存储卡扩展。如果对以上几点没有特殊要求,甚至不希望没事录点山间鸟鸣,演奏会现场,就可以选择SONY的商务类型和个人类型的产品。相比PCM系列产品动辄两千余的价格,IDC系列产品的价格则相对亲民一些,而且尺寸重量,操作习惯也非常适合一般人使用。一般来说IDC-SX好于IDC-UX,高于IDC-PX系列。

但是就个人感觉,除了站在最高端的PCM系列产品。SONY的中低端产品性价比也许还真的比不上三洋,三星这些品牌的产品。举例来说,三洋的IDC-PS501RM产品,具备如下特点,

  • 支持PCM 44.1kHz录音 //比SONY的M10差一档
  • 支持高质量MP3录音
  • 内建三个麦克风 // 略微比M10的差一些
  • 第三麦克风可以支持特定方向的录音(zoom功能)
  • 内建2G内存
  • 可用TF卡扩展存储空间
  • 体积小巧(一节电池,集成USB插头),操作使用简便
  • 缺少EQ功能 //比SONY M10差一些

虽然一些高端功能稍微逊色一些,但是价格却非常亲民——只有SONY M10的一半而已。

国内的情况比较复杂一些,价格是主要的竞争目标。大量集中在300,400元的产品充斥市场。不过就自己在商场试用的经历来看(具体哪家产品就不说了),录音效果不是太理想。高音(女生的发音)清晰,但是失真严重。而低音,特别是我的嗓门实在是有点低沉,在一些录音笔上回放竟然完全听不到。

由于主要技术(芯片)来自国外,而主要器件(麦克风)等配置不高,国内录音笔目前不是特别适合在复杂一些环境中使用。所以我自己就不推荐了。

一些比较关注的产品的技术特点

说完了产品,我们看看录音笔我们关注的一些技术问题

  • PCM到底重要不重要
  • 录音时间到底怎么计算
  • 有效的减少噪声会不会损失音质
4bit PCM采样演示

PCM(Pulse-code modulation 脉冲编码调制)其实来就是A/D转换后的采样数值,这个记录没有头,也没有尾,完全是一段连续的波形数据而已。以目前16位的声卡来看(SONY D50/M10还支持24bit的PCM记录),22kHz的采样率就相当于收音机FM广播的效果,44kHz就相当于听CD的效果。这些数据是完全的“生/raw”数据,没有进行有损的压缩处理,也就是最大保持了现场的原汁原味。

而MP3格式则是一种有损的压缩,专业人士可以在电脑上各种压缩工具的设置进行细微的调节,进而得到更加合理压缩的音频文件。但如果交给录音笔,则只能在几档选项中进行粗略选择(会议,音乐,自然,等等)。

但是PCM格式的尺寸也是非常巨大的,以记录一分钟16位双声道来计算(和音乐CD的记录是一样的),所需要的存储空间将是

(44.1*1000*l6*2)*60/8=10,584,000(字节)=10.584MBytes

这样录音笔的容量其实来也没有想象中那么大。而厂家计算GB,MB的算法也是不一样的。在存储界,1GB = 1000MB,而不是1024MB。所以,即便是录音笔具备4G的存储空间,也录不了6个小时。

而噪声在录制的时候总是不能避免的。而避免噪声的方法主要是两种:

  • 物理方法:高质量的麦克风,抗风噪声的海绵(想起海绵宝宝……)
  • 数字方法:过滤一部分噪声。

一说过滤,就知道肯定是要损失什么的。常见的方法就是直接把300Hz一下的声音切掉,因为正常人的语音不会在那个频带,但是空调,风扇啊这些设备却会发出这个频段的噪声(多说一句,以前荧光灯整流器嗡嗡的噪声就是100Hz)。但是,像我这样声音低沉的家伙很吃亏,很多低频的发言也被直接cut掉了。但大部分录音笔会支持关闭抗噪滤波功能,以便于用户录制这些低频噪声。

总结

如果作为商务,学习口语使用,我的建议还是选一个这样的录音笔:

  • 支持PCM(16bit 44.1kHz)的录音
  • 支持高品质MP3录音
  • 支持SD卡扩展
  • 告诉USB接口
  • 支持Line in
  • 支持A-B回放
  • 体积小巧
  • 操作方便
  • FM 收音机功能

选相机,那可是一辈子的事情

首先相机这东西,基本是日本人在玩的游戏。主流相机其实来也就N家C家,像是Panasonic,Olympus,Sony,Fuji-film(不过和莱卡,柯达等等相比,还是大得多)。不过对于可换镜头的相机来说,镜头的投资可远远大于机身。由于各家镜头之间的不兼容,所以当你选定了第一步可换镜头相机,就意味着你也只能在这个厂家的产品范围内折腾了。我想这也是为什么单反相机变得如此便宜的原因之一。

不过个人比较喜欢的是Panasonic的Micro 4/3系列。这个系列的优点有如下一些:

  1. Panasonic的卡片机已经做得非常深入人心了,特别是LX2真是当时的机王。
  2. 扫街,抓拍,开机速度,防抖,电池能力等等能力Panasonic也算是不错。
  3. Micro 4/3自身的特点决定了相机的成像素质远远优于卡片机,对爱好者有不错的影响力。
  4. 更大的CCD/CMOS还意味着可以拥有更好的虚化效果。
  5. 这个系列的相机由于省去了反光镜等期间,整体尺寸很小,特别是GF1(内置闪光灯)。
  6. 别忘记Micro 4/3的镜头可换哦。(在Panasonic和Olympus的带领下,建立了M4/3镜头接口规范。可惜目前镜头不多,还需要转接口来驳接其他单反的镜头。)
  7. 相比于Olympus的E-PL1相机,GF1的成像素质略差一些,不过别忘记Panasonic的镜头家族可要比它强大的多(用Olympus机身加Panasonic的镜头会有多完美)。
  8. 最最关键的是,我现在的相机就是P家的……

目前的绝配就是:Panasonic LUMIX DMC-GF1(女友一号) 配那个传说中让人流口水的的神器——LUMIX G 20mm F1.7 ASPH 饼干镜头。

Panasonic GF1 + 20mm F1.7 ASPH
Panasonic GF1 + 20mm F1.7 ASPH

Panasonic Lumix GF1  (20mm/1.7F)
Panasonic Lumix GF1 (20mm/1.7F)

但是,目前GF1的成像质量还是存在一些问题(和Olympus的相比),火力基本只能靠三支镜头体现。而且机身不带防抖能力,造成镜头必须自己实现防抖功能,造成镜头(即使通过转接头接其他厂家镜头)的价格稍微贵了一些。要是能解决这个问题,那Panasonic真是无敌了(前提是别人什么都不做,哈哈)。

既然前面提过Sony老大,这个既在卡片机买机无数,在单反有略有建树的老大,自然不会放过可换镜头小相机这个市场。Sony说要有APS,于是有了NEX5,这个模样有点丑陋,却无比强大(机身极致小巧,可触LCD可翻转,采用索爱手机的操作UI设计)而且廉价(和Sony的产品,以及其他APS单反相比)的产物。

Sony NEX5C
Sony NEX5C

希望这款相机能带动其他厂家做一些对客户有益的事情,比如推出一个GF2之类的产品来。

最后还要说一句,虽然Sony NEX5的样子有点难看,不过广告还是拍的挺感人的。我很喜欢。

[youku id=”XMTk2MzM0NDA0″]

有事没事请备份

备份的起因

公司电脑上使用过几年后,居然已经积累了几千个文件,还有近十个G的邮件。由于有了Everything来搜索文件,lookout来搜索邮件以,平时查找文件什么的还是挺方便的。但是原来依靠U盘拷贝来备份的方法显然已经无法在这种状况下继续满足要求了。

而笔记本的机械硬盘到底是非常脆弱的,轴承,磁头,悬臂,玻璃盘,电缆这些东西在几万次的读写后肯定会有损耗,特别是在我这种不经意的人手里,保不齐那天挂掉。希望SSD之类固定大容量存储设备快快现身,解决这棘手的问题。

常见备份的方法

目前常见的备份方法有:

  • 移动硬盘拷贝。优点:容量大,速度快。缺点:不要丢掉,不要摔坏的话,估计还好吧。
  • 网盘同步。国内用户还是放弃这个吧,一是说不定那天你常用的那个网盘就盒斜了,而且容量有限,国内网速实在是……。最最关键的是,公司的内部文件是不能采用外部存储系统的,这个大家小心一些为好(Google Apps 大哭……)
  • 与另一个电脑同步。这是我的方法。好处是公司的所有文件我在家也可以使用,加班弄点什么,就不用开公司电脑(关键公司电脑实在是慢的无语)。下面介绍的就是这个。
  • 定期光盘。这个适合我的照片这些东西,不会修改,智只会增加。Picasa定期导出一个年度的照片做一个合集还是不错的。不过公司的文件要修 改,Outlook的PST文件可是一个大块头,刻不下。
  • 磁带机。哦,怀念这东西。不过,你现在还是好好安息吧。

电脑间同步的方法

在我看来在两个电脑之间同步,是最为节省资源的方法。如果是在目录(包括本地目录和共享目录)之间同步,微软的SyncToy感觉还不错。但是如果你要同步的内容无法在共享目录方式下访问,比如公司电脑禁止了共享,没有安装samba的Linux主机等,则无法使用此工具。

电脑间采用FTP同步

我倾向于使用更加简单而且标准的文件传输工具,这里推荐FTP方式,因为支持的工具最多,基本都是免费的。协议标准而且和平台无关。

  • 迷你FTP服务器,推荐一个TYPSoft FTP Server,网上可以找到小巧的绿色版本。
  • FTP客户端,Filezilla是一个不错的选择。功能全面,免费,使用起来也挺方便。
  • 另一个FTP,SFTP客户端,WinSCP绝对是一款值得拥有的工具。

所要做的事情就是

  • 设置FTP服务器,我喜欢把需要同步的目录的上一级目录作为跟目录。
  • 建议:单独建立一个FTP帐号用于同步重要信息,并设上密码。
  • Filezilla只需要用这个帐号连接这个服务器,下载相关的文件即可。
  • 而如果使用WinSCP作为客户端连接服务器,则可以实现双向同步。

由于Filezilla只能实现单向下载同步,对于重要文件只能单向来说是足够的。

  • 比如从公司电脑下载到移动硬盘上
  • 网站内容的定期备份

但是如果需要双向的同步,可以采用WinSCP来进行。

在我的Linux主机和本地电脑之间的同步上,就采用了WinSCP同步的方法。如果需要双向同步,请在Direction/target directory中选择Both进行。

结论和期望

目前看来,这种FTP同步的方法可以满足大部分需要。但是还是有一些不足之处

  • 速度还是比较缓慢(SyncToy > Filezilla > WinSCP)。
  • 而且由于文件名和目录深度的问题,经常导致有个别文件无法在FTP中传输(估计是文件名长度超过了FTP的规定)。
  • 在传输大文件的时候,由于只是更改了一小部分呢(比如outlook的PST文件),需要传送数G的文件。

在我看来,能否有这样一个同步软件,满足以下的要求:

  • 服务器和客户端一体,小巧而且绿色,操作简单。
  • 无需依赖文件共享等平台依赖的机制(部分Windows无法共享目录)
  • 传输文件需要用户认证,防止文件外泄。
  • 采用索引机制,对本地目录建立修改记录数据库。
  • 超过100MB的文件进行分块修改记录的建立。
  • 在同步的时候,两端先比较修改数据库,找出需要传输的文件和数据块。
  • 采用数据压缩的方式传输数据(类似HTTP的gzip方式),而对ZIP, RAR, JPG等文件则不进行压缩。
  • 同步结束后,两端进行数据校验。
  • 数据传输和平台(操作系统,字节顺序等)无关。

也许在目前网络硬盘同步的大形势下,还在想要这样的工具实在是有点落伍了。