可能是我生下来见到的最大的雪天了,今天体验了下童年... 看了别笑...
恩,造型很另类...
基本是1:1高度的了
面部特写...
远景
可能是我生下来见到的最大的雪天了,今天体验了下童年... 看了别笑...
恩,造型很另类...
基本是1:1高度的了
面部特写...
远景
一直有人询问我能不能帮忙制作网站这类的事情,所以一不高兴一一回答了。在此统一答复:
近期(1-3年内),我原则上不受理任何网站设计或者制作的事情。无论有多高的报酬
但对于一些特殊情况,我可以无偿帮助制作(但应该不会有)
已经觉得空虚了, 那么这个寒假就别闲着好了。
下面列出一些我寒假计划要做的事,还有一些就不便透露了。
1.智能化家庭系统 Phase#1
前一段时间虽忙着考G/T,随后又是申请,不过还是做了些其他的事。比如为了实现职能家庭系统购买的服务器。
目前服务器可以通过home.csksoft.net访问到,运行的是Debain r4。不过目前没有多少实现维护,开放的服务只有SSH、web、bt/emule下载、http代理。
其实买这个服务器最核心的目的就是让它其他中央服务器的作用。
智能化家庭系统是我很早就好TonyHuang商量的项目,不过一直没机会和他合作。而且我实行的方案可能比较封闭(暂时考虑我家情况)。
下面是Phase #1的目标和一些实施想法,希望有经验的朋友能提供帮助
1). 智能摄像监控设备
这个是应老爸要求,同时考虑小区的安全情况,所以把它作为第一考虑要素。需要实现的功能是在家的周围安装摄像头若干。要求智能系统能对采集的画面作实施图像识别,至少需要能实现仅对画面中有运动物体的时刻进行录像监控,而对陌生人、动物、家人的情况加以识别和报告。
目前采取的方案是购买基于VHF波段的无线摄像头,因为不需要很高的清晰度,同时模拟信号还能被家里的电视机接收到。这种摄像头在taobao上大约¥150一个,采用9V电池供电
在服务器上通过VHF接受终端将视频采集通过usb传输至linux, 识别模块为了加快效率采用OpenCV
2).通讯网络
因为不可能为了设置这套系统重新敲墙啥的,所以我一直把电力线传输和无线传输放在首位。不过考虑目前自己的实力有限,而现成的电力线传输模块单块需要¥300,就考虑采用市面上的无线模块了。虽然很简陋,传输速率只有10kbps,不过单片模块只需要¥10左右,绝对可以接受。
基于无线模块的通讯网络可以用以组建家庭环境的控制和感知网络,比如简单的将各类插座、开关的控制通过web界面来管理。今后在外面通过登陆家里网站管理空调温度啥的还是很不错的。
其次我也考虑设置基于GSM的通讯网络,家里有不少闲置且过时的手机,如果能查到GSM模块的datasheet就可以加以利用。当然实现一个短信发送还是相当容易的。这个可以实现目标1中当探头捕获可疑画面时候能通过短信联系我们。
3).供电系统
这个主要是针对终端控制设备的供电,以前计划采用电力线通讯的时候这个问题不算是问题,但如果采用无线的话就必须要考虑。我目前的计划是
a). 无线探头和一些弱点开关采用蓄电池+太阳能/AC混合供电模式,这样同时还能实现一个走道应急照明系统。考虑到摄像头会安装在室外,我想光照应该不成问题。
b). 强电开关部分,按照我家的情况,强电的控制应该就在AC电源附近,那么直接用变压器吧...
4).和电话交换网络的互动
这部分目前主要想实现自动语音应答(就是“要xx功能请按1”这样),这部分只需要modem配合目前现成的软件即可实现。至于电话交换机我觉得目前还没有必要。这部分的功能是实现除了web管理接口外,能通过电话进行管理
5).局域网络
就是计算机网络,这部分需要实现的功能有,家庭的档案管理接口和软件仓库以及下载服务器。其实下载服务器采用mldonkey已经足够了,对于家庭的档案管理接口我计划Phase#1就是用一个SVN或者SMB做一个很简单的文档管理即可。软件仓库是考虑到今后家里电脑需要重装,只需要登录对应界面,服务器会为目标机器配置安装程序自动安装。这个主要为了我春节后去北京实习,如果家里网络或计算机故障父母可以自己着手解决。(我家网络拓扑结构还算有点复杂了...)
6).交互接口
目前首要考虑的还是web界面,主要是这样可以通过手机也能访问。而增加终端机我暂时就不考虑了。目前没这个能力制作...不过可以考虑将服务器作为一个大型机顶盒来用。不过要实现语音识别交互目前还是很容易做到的。不知道linux下有没有什么优秀的TTS系统。
上面就是我Phase#1的计划,目前纯属YY。而且作为一名CSer,好久没有基础电子方面的东西了。就算是圆我童年的梦吧。或许当初选专业让我现在再选择一次的话,我会选择电子方向。无论我再累,看到PCB板和芯片我总能提起精神,但现在让我看VS2008,我只想关掉。不过毕竟不是自己专业,如果有在行的朋友希望能给点建议阿。
2. ETH_SENSOR
由于没有完成,就用codename称呼好了。我想在1周内将它完工。我也不指望这个程序将来会被多少人使用,仅仅作为我接触linux开发、涉足开源界的第一步吧(其实我很多东西都开源了)
3. 学习数学
觉得自己数学年年退步,都不配做学计算机的人了... 所以这个寒假要恶补,没什么说的
4. 玩
要逼自己玩,虽然看了上面的计划,我已经不想玩了...
-----------------------------
和以前一样,有时一片雄心勃勃的计划书,就看执行情况了。
虽然这周三已经考完了本学期所有的考试,同时也标志这本科课程全部结束。不过严格的说今天才是校历上“法定”的寒假开始。
回想自己3年半走过的路,大一整个寒假我用来开发Stereoic,暑假学开车和作ReformCore以及计协网站。大二的寒假用来读新东方以及兼职。暑假前期用来完成兼职和ReforeCore,后半部分学校开学完成了EZ-UML。大三寒假完成第二版网站,暑假用来考GRE和实习。平时除了大一时候的放纵自己以及大二忙于协会事务外。几乎都是在coding中度过的(这学期是申请)。
现在大四的寒假开始了,或许我能够好好休息一阵了。
展望未来,虽然申请结果还不明朗,但春节以后应该说是相当明确的:去MSRA实习同时作为毕业设计。回忆自己走过的这3年半,我想我可以问心无愧的说我的本科没有白读,不是混出来的。
长时间过着紧张的日子,现在还真不习惯。昨天下载了魔兽世界客户端,尝试着玩一回。唉,现在的时光是幸福的。
记得我曾和gf开玩笑说“现在大好时光都用来读书了,多浪费。等老了青春都没了”,不过那终究是玩笑话。我想与其让我过着安逸但空虚的生活,还不如现在好好拼搏一下。曾记得有为长者对我说过,现在每天省出点睡眠时间用来做事,这样日积月累,时间长了你领先别人的差距是人家根本无法追上的。我也不指望能领先别人,但他的话至少激励了我,希望今后还能保持现在的状态。
其实原本打算推迟发布的时间,不过既然有言在先,就先放出目前的版本。
我先把一些事情交待了(我有一个习惯,不会对那些已经在网站或blog上明确给出答案的问题给与回复。这次也是一样):
1.我目前还是对这个项目很不满意,因为它的完成度还是很低,从等会我列出的功能列表上就能看出。所以目前这个版本可用性不是很强,我已经打算在寒假放出一个我自己认为合格的版本。
2.这是我第一次接触GTK编程,甚至也是我第一次接触linux下的程序开发(之前只是编译过单文件的module)。所以一些不符合开源界规范的事情就请各位多多包涵。
3.整个工程从创建到提交只有5天时间(01/12/2008 - 01/16/2008),期间还有2天时间用于出国申请和考试复习(其间有2门考试),所以代码质量有一定影响,同时在后期(这是我网络课的大作业)临近作业检查时候也作了一些妥协。所以在寒假中会对那些缩水的部分加以改善
4.对于程序中尚未完成的部分或者会存在问题的部分,已经用"TODO"和"FIXME"标出了
5.本程序使用GTK+库和glade库,同时必然也使用了libpcap
6.不提供可执行版本,请自行编译(这个没啥好说的)。今后在完善后可能会考虑出rpm或者deb包
7.暂时不考虑为windows移植
8.采用的许可证是GPL
9.我开发的环境是Ubuntu 7.10, Anjuta IDE 2.3.0(unstable)
----------------------------------------------------
目前具有的功能:
1.完全图形化界面
2.基本的截包功能
3.包过滤(Layer II/III的协议过滤、端口过滤、ip地址过滤)
4.包数据察看
5.包的Decoder(采用树形结构表示,目前实现的是ethernet MAC, ARP/RARP, ICMP, IGMP, IP, UDP, TCP
6.包的保存(tcpdump兼容格式)
7.监听网卡选择
距离我满意还缺少的功能
1.包数据的重组
2.应用层协议的decoder
3.更完善的Filter
4.可配置的包decoder引擎
程序运行效果:
再附上些开发的环境,其实用glade还是很方便的:
源代码下载:
http://www.csksoft.net/data/legacyftp/Products/code_and_lib/code_eth-sensor_src_0.01.rar
编译和安装
1. 使用Anjuta IDE编译
2. 采用常用的编译安装流程:
./configure
make
make install
最后再补充下,这个程序和那些商业软件或者目前常用的tcpdump还是不具有可比性的,我也不打算在功能上有所超越。不过可能今后打算做一个可配置、扩充的包解析引擎。我希望实现的效果是:改善目前linux下GUI程序缺乏的情况,毕竟就我个人而言,不是所有时候都喜欢开命令行操作的,很多时候点点按钮还是很省力的事情。
其实开发这个项目效率很低,就完成的功能来说,换成windows,我可能2天内就能做完,但是linux下就不同了,很多时间都浪费在研究GTK+的使用上,GTK+是个很优秀的GUI库,或许有足够好的IDE作为支撑,windows下那些都是小儿科。
这个项目如果将来做的好,我的计划是发布在SourceForge.net, 不过将来肯定是没时间维护的了