Archive for the ‘技术 | Info&Tech’ Category

June 7th, 2008

最近在VMware上用到的几个小技巧

  上学期还去听了EMC公司在大学生活动中心的招聘宣讲会,能把把VMware收购和发展,EMC也算是无敌公司了。当时弄到了一张如此PP的EMC宣传硬壳纸,可惜已经被我狠心的折叠起来顺带送某人了,嘿。

  以前,只拿vmware来跑两三个不方便直接安装的操作系统,比如要用到ie6,就在里面装了一个xp。到现在为止还有一个LFS跑出来的最小系统,一个实用的Redhat9,一个基本没用过的ubuntu-server版在上面。现在越来越发掘出vmware的方便之处了。

  1.让VMware只负责开机,不负责Console。这种方式真是屡试不爽,开了系统,我不用你的console,嘿嘿,其中一个原因,卡呗,而且,命令行下装不好vmware-tools,所以切进切出的时候还要Ctrl+Alt用来用去,麻烦。不如开机后直接让它跑到后台去运行,整个VMware缩小到tray图标上,然后平时就用putty来远程Console,哈,看起来好清爽。

  2.端口映射功能。以前翻VMware菜单时翻出过网络设置这个功能,当时没细研究。最近需要把VMware局域网内网上的服务放到外面公网上来访问,就重新看了一下这里的端口映射,把外网的端口映射到里面局域网的另一个端口,非常人性化的设置,几秒钟搞定。跟通过设置路由器的端口映射或者开启DMZ的思路完全一样,很方便。

  3.快照功能。有时担心某些操作造成不可预见或者难以恢复的后果,可以给系统拍一个快照,才10几k而已。如果万一后悔了,就恢复当时的快照就可以了。看一下文件变化就基本可以确定,拍快照无非是设定记录点,重新开始记录“硬盘”文件数据而已,所以快照文件相当小。一个建议是拍照的时候最好将系统先关机,然后再拍,否则开机时拍照的话,速度比较慢。

  先用到这几个小技巧,慢慢发掘,恩。

Tags: , , , ,

June 3rd, 2008

用vsftpd搭了一个FTP

相比起Windows平台下强大的Serv-U,这vsftpd还真是难弄,费了好长时间呢,不过,学了好多知识感觉,真不错。记一下遇到的难题:

已有环境是在VMware中的linux通过NAT方式联网,ip为192.168.37.10。目的是搭建一个FTP服务器,监听端口改21为2121。设定A、B两个用户,A用户仅有只读权限,B用户有写权限,并且禁止匿名访问。

1.编译与安装。相对于RPM安装方式,现场编译安装的机动性更强一些,可是因此也会遇到一些问题。比如,编译之前的builddefs.h这个头文件,如果有特殊需求就要进行修改。这里不考虑SSL安全链接,并且需要用到PAM来配置虚拟用户,所以对保持默认不进行修改。然后直接make。在make install之前必须手动做的一步是需要建立ftp目录和ftp用户匿名的ftp用户,否则make install会报告不存在目录而失败。

2.整个vsftpd的配置精髓都存在于一个文件之中:vsftpd.conf。我们既然要用PAM来进行虚拟用户管理,那么就要手动生成一个虚拟用户的数据库,然后创建一个对应的PAM文件和本地的用户virtual。这样,所有的其他用户都以virtual用户来代替了。修改vsftpd.conf使之不能匿名,然后添加这两行

guest_enable=YES
guest_username=virtual

这样就使得其他用户都映射到virtual用户。之后通过设定user_config_dir参数来实现对不同用户的不通权限设置。

Read the rest of this entry »

Tags: , ,

May 31st, 2008

纪念在冰岩作坊的一年零一个月

        一年零一个月之后,自己也成为了老人!

        想起做的第一个页面,当时正值7周年,于是lrl让我做的各个周年的纪念视频汇总页。花了大概一个周的时间,总算弄了出来,当时,连页面居中的问题也是在工作间当场问才学习到的(好像问的竟然是万能的zl)。然后,就慢慢的写一些其他的东西,有像mail和talk一样相对单独的东西,也有ftp关键字提示等触及到网站各个角落的一些比较杂的东西,总之哪里能些什么,就帮忙做一下。然后在网站最好玩的事呢,应该就是到暑假和小玉段磊liny刘磊还有猩猩等一群人早晨看完贞子姐姐就去吃早饭顺便八卦下,然后天亮说晚安,开始睡觉。期间出现了不计可数的搞笑事件和搞笑照片,呵呵。

        对于自己来说,说实话,自己的静态页面写的只能算作一般般,而js脚本呢,则总是在一些基础应用上停滞不前,比如对于jquery、YUI这些强势前沿几乎完全没有理解和应用。也许,在web技术上自己并没有学到很多东西。可是,我强烈的感觉,web技术仅仅是在华中大在线的学到的众多技能之一而已,这仅仅是一项技能。

        相反,我感觉自己在其他方面则更深深受益于在网站的工作。其中很重要的一点就是,在冰岩作坊的经历可是使一个人的眼界十分开阔。自己会不由自主的人去搜寻和了解最近互联网上以及相关IT界的前沿信息、最新动态、发展方向,对于一些软件和工具(简单的例子比如vs、浏览器)的了解程度也远远比其他人知道的多,对于一些解决方案的横向比较也能够看的更清晰,比如c++、c#,比如.net和php,比如linux平台和win平台,比如apache和iis。前些日子在联系实习,当实验室的老师提到一些解决方案时,像c++自己几乎完全不会写,但是不会写并不等于不了解,所以,还是有话可谈,让老师觉得有潜力可挖,这一点,其实就是跟网站的刘磊、liny他们程序员接触的多了,也就多少知道一些相关的东西。再比如上学期软考网工,自己完全没有复习直接裸考,可是考试中的知识相当多的内容(像windows server系列等等),自己都在网站有过相关经历或者了解,解答起来仍然应对自如。另外,尽管自己不会做页面设计,但是,我却学会了冰岩作坊一直强调和重视的一点:用户体验UE。做一个产品,或者简单说写一段程序,是否具备良好的用户体验,两种结果的效果截然不同。我们网站的每件产品都想尽心思来挖掘用户体验,就是为了获得良好的用户评价。这种思想,可以运用在几乎所有的其他工作中。在用户体验这一点上的考虑,是其他许多没有相关项目经验的同学所不具备的。

Read the rest of this entry »

Tags: ,

May 26th, 2008

“im”leon,互联网中心第一天

实习单位:电信系互联网中心无线多媒体技术VoIP组

下午跟老师打了声招呼。师兄mutecat说正好实验室还有一个空位,让我直接过去就行。正好和他背对,很近,有什么问题请教和交流就方便多了,真不错。

老师在隔间里面忙,直接把我交给mutecat了。开始时有点小紧张,拿电脑,分配IP都让我出了不少汗,还好空调吹的爽,很快就凉快了下来,Hoho……

之前老师给的课题是“基于linux平台的im软件”,应该是她在带研究生做的一个xmpp项目的缩减版本吧,基本要求是异步文字聊天、用户管理和认证服务器、聊天记录转发、存储、历史记录。

要读的资料很多,基于xmpp标准协议来写的话,有RFC3920、3921两个权威的文档。模范产品以Gtalk为首,然后用开源的c++类库libJingle,还有基于libjingle的一个开源软件MyJingle可以参考,这个软件的登录应该会是我学习的重点,然后其中的Call功能涉及到语音,可能做不了。用心把文字功能做好再说。

mutecat师兄建议我先看libjingle,Google Code上面libjingle的文档全英的好几十页。没办法,中文资料几乎没有,只好硬着头皮读。然后建议我用Qt来写,方便跨平台。在linux下面先实现功能,再实现界面GUI。真不错的师兄,不愧是linux版版大,考虑问题就是有水平,人也很好,一直笑嘻嘻的,嘿嘿……

Read the rest of this entry »

Tags: , , , ,

May 2nd, 2008

基于Huffman编码译码的文件压缩器

最开始是两个周之前帮同学写的一个小工具,一直没有完善和收尾,趁这次五一假期,终于弄了出来。开始时同学的要求是基于二进制Huffman编码,对bmp图片进行译码、解码,从而实现压缩和解压缩的功能。我在写的过程中对这份要求进行了大大的扩展,已经能够实现对任意大小(内存等硬件限制除外)的文件,并且任意格式的文件而不只限于bmp文件,进行压缩、解压缩。界面如下:

huffman-encode-decode

开发工具选的是Java,后来才感受到,如果换成c或者c++来写,在存储时,大概会省去许多麻烦。因为,Java毕竟是擅长开发一些比较大的应用的,对于比较底层的二进制位存储,是不支持的,只有自己花了点时间写了一个字节缓冲,来实现二进制存储。

Read the rest of this entry »

Tags: , , , , ,

April 9th, 2008

Java实验小结

一个看起来并不怎么困难的小项目,结果花去了我总共大概50个小时左右的时间,记录一下写代码时的所感所想,以备后鉴。

首先,对于一门刚刚接手的语言,给我最大的学习助手除了google,还是google。相比较而言,我并不觉得那本被传的神乎其神的《Thinking in Java》比Google更优秀。当然,这句话的前提是针对“刚刚接手Java的初学者”,并且,我的意思是,与其总是单纯显耀自己手中有一本厚厚的经典之著而只翻看前面的简介几页,还不如务实的用Google多查几个实例认真研究一下。所以,谢谢你,Google。

然后,当一个客户(老师)提出的需求是一种模糊性的方向性需求,并且尽可能给你发挥的空间的时候,那么你就可以充分利用这个可以发挥的空间,进行想象、进行实现。我发现同学们之间各个最终成果的差距就是,除了代码实现的能力些许不同以外,更大的差距在于,你是不是能想象得到某种实现,你的视野是不是很开阔。比如,在存储结构中,既然我能用xml,为什么还要用c语言擅长的文本流?不是怕做不到,就怕想象不到。

项目的框架搭建和细节撰写同样重要。例如,整个项目如果能用多个有不同意义的java类来实现,并且界面操作和功能操作相分离,比只用一个庞大的java class,晕头转向的将滚动条拖来拖去要简洁明了的多,更重要的是,前者的做法远远提高了程序运行的时间和空间效率。因为,我不必在一开始就将所有的类都实例化成对象,仅仅这一点就大大降低了内存占用率。

注重用户界面(UI)和用户体验(UE)。对于开发者来说,应当把我们的用户都当作纯粹的傻瓜。这一点上,在Bingyan工作的经历给我相当大的帮助,每一个对用户友好的细节之处,也许都是最终结果赢得客户(老师)赞赏的原因之一。从模糊搜索、智能提示、到用户帮助文档,都是很容易考虑到的方面。

Read the rest of this entry »

Tags:

April 9th, 2008

失望的虚拟主机

     之前,我一直以为,九州未来科技是一个不错的虚拟主机提供商。就在前几天,我甚至还收到了从推荐链接获得的推荐佣金。可是,如果还有人想从我的推荐链接去购买这个空间的服务,我现在的建议是,think it again。

     2周内的莫名其妙的5次停机无法访问事件,让我一个曾经对九州未来科技很赞赏的Blogger非常伤心。客服对我提交的几次技术支持问题都回答得遮遮掩掩,让我不得不心生怀疑,难道他们的服务器就这么不稳定?

     无间道言,欠下的债,总是要还的。你让我失去了信心,自己惹的祸,总是要还的。

Tags: ,

March 22nd, 2008

硬件课程设计开始

      本来我们组看好的是“微功耗无线数字通信模块”,后来因为这个课题有三个组都希望做,所以最后抽签决定,结果运气差,没有抽到,于是分到一个“无感无刷电机调速器”的题目。在略微查了一些“无感无刷电机调速器”的资料之后,觉得同样可以做出很好的东西来。

      前几个周先把需求分析做出来,虽然没有学习过软件工程,但是还是很清楚,在一个系统的设计过程中,需求分析是一个相当重要的环节,我们最后要做什么,能做什么,做到什么程度,经费如何分配,结果如何测试,有哪些可能的困难,都应该尽可能的考虑周全。

      之后几个周来动手做,硬件考虑以单片机或者DSP处理器为主要实现,实验检测可以尽量充分用中心的设备。因为这次是硬件课设,所以软件的内容考虑相对少一些,程序控制方面初步预期以安静而强大的C语言加为主,可能辅以一点点汇编,目前不是很了解是否会涉及很多嵌入式的内容,如果有的话正好是自己的强项。板子的开发工具选择OrCAD和PowerPCB,很强大。

      测试阶段可能会经常跑实验室,老师不一定跟随辅导,但是实验室的设备比空荡荡的寝室要强的多,而且经常的联系下指导老师总有它的益处。

      目前来说资料的搜集、文档的草拟和撰写、任务分工都可以慢慢展开,恩,一定带我们组认认真真的把第一次课设做好。大家都加油!

Tags: ,