March 3rd, 2009

fGmail发布!

  Gmail难道开通了新邮件免费短信通知?失望的是,仍然没有。不过,我做了一个“曲线救国”的方案,运用Gmail Feed + wget + sed + libfetion + cron + 我写的小程序fGmail,然后有一台在网的linux主机,即可实现这个功能!

  OK,实现思路如下:Gmail提供了通过Feed访问新邮件的功能,我们通过wget来抓取它并保存成xml文件,然后写个shell脚本运用sed将新邮件数、邮件标题和发送者解析出来,传递给另一个小程序,这个程序利用DDD开发的libfetion库,实现向自己的手机发送短信的功能。将那个shell脚本放在cron中,设定每隔一段时间执行一次即可。是不是很简单?

  我把所有程序都放在了这个Google Code的工程中,直接下载地址在这。除了libfetion等已经声明版权的内容外,fGmail遵从GPLv3协议。

  使用时,只需解压后按照README安装即可。

  费了这么多周折,终于实现了Gmail的新邮件短信通知。不过其局限性也是很显而易见的,如只是Gmail,没有其他邮件,只能是中国移动飞信的已注册用户,要有一个linux系统来跑等等。不过这些限制对我自己来说,刚好已经满足了。

  基于libfetion开发的项目很多,网上最常见的例子比如免费天气预报之类。如果有好的构思,完全可以做出非常实用的东西来。也希望我的这个fGmail小例子能实现抛砖引玉的作用。最后希望能早日实现上手G2的梦想,爽歪歪的直接用手机收发邮件。

Q & A :

Q:Why fGmail?
A:I choose `f’ and `Gmail’ to name it simply for fetion Gmail or fetch Gmail.

Q:Hey, but how about its safety, I mean the Gmail and fetion account information?
A:Your Gmail account information is directly stored in the file `account’, and I am sorry for that. Maybe I will fix it in the next version.

Tags: , , , , , ,

January 16th, 2009

NS2环境安装完毕

      家里网速实在卡,redhat是不可能马上就下下来了,于是就用了手头仅有的cygwin来安装,也不错其实。反正实际上都是在ns内部写代码,暂时不需要真实的linux环境。

      cygwin有各种版本吧,几十M到十几G的都有,我下的是50M多的很小的一个版本,事实证明已经足够了,不够的几个包完全可以临时附加安装。

      根据nsnam网站给的提示,安装ns2之前,需要实现在cygwin中打好gcc、gcc-g++、gawk、tar、gzip、make、patch、perl、w32api这几个包,另外X11也是必须的,可以是Xfree86 (需要XFree86-base、XFree86-bin、XFree86-prog、XFree86-lib,和XFree86-etc几个包) 或者X.org (需要xorg-x11-bin、xorg-x11-bin-dlls、xorg-x11-devel、xorg-x11-libs-data,和xorg-x11-etc几个包)。

      除此外,还需要X-startup-scripts这个包,否则的话就无法运行起startxwin.sh。

      另外特别注意的是,安装ns2之前要打一个补丁,在ns-allinone-2.29tk8.4.11generictkBind.c文件的588~589行之间插入下面三行:
#ifdef GenericEvent
/* GenericEvent */ 0,
#endif
否则的话nam将无法运行起来。

      ns的编译过程将非常漫长,期间可以去吃个饭或者睡个小觉。装完后运行个example3.tcl看下,出现如下结果,应该就说明没有问题了。

ns-example

      OK,最基础的环境已经搭好了,可以开始工作了。

Tags: , , , ,

November 25th, 2008

说说这两天考试

TCP/IP,本人本科四年倒数第二门考试,复习时新体会和新感悟到的东西罗列如下:

  1. tracert 是个有用的东西,真好用,真有用。(废话)
  2. curl也是一个好东西,特别是是能够使用-H 和-A来改变请求的状态,这样就可以随便模拟IE、FF、甚至搜索引擎。记得zl就曾经对于ik.hustonline.net的构架中采用了识别不同的User-Agent来区分用户和搜索引擎的。
  3. 用wireshark对于无线网卡抓包,硬是抓不到anything,一搜,原来是需要关闭混杂模式。我郁闷了,这不就是暑假时姐夫特地嘱托过我的嘛,抓包选项要关闭混杂模式,结果自己忘的一干二净。
  4. 用windump对网卡抓包,同样要加上-p参数,关闭混杂模式,否则仍然是什么也抓不到。
  5. 忍不住又下了cygwin装上了,这年头,人就是这么个感情。不摸摸电脑,不敲敲键盘手痒。

Tags: , , , , , ,

July 25th, 2008

基于linux平台的聊天软件——TextTalk

实习成果终于出来了,三个周的心血呐……

不多说,下午赶火车时间紧,上PPT,想说的都在里面了。

演讲稿下载:GaoLei’s Summer Intern Report.pdf

源代码下载:texttalk.1.0.tar.gz

Tags: , , ,

July 13th, 2008

Socket网络编程

Server side:

socket > bind > listen > accept

Client side:

socket > connect

一个周的实习成果总结成上面的简单描述,安静而强大。

Tags: , , ,

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 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: , , , ,