在Fedora 10下,用到了十分优秀的libfetion库和cgi-util库,前者是DDD作者黑盒开发的飞信库,使用了最新的0.92版,后者是一个简洁c语言下的cgi库。通过在浏览器中调用
http://domain/cgi-bin/sms.cgi?msg=YourMsg
即可实现给自己的手机免费发送短信。


这个接口还应该做的和可以想到的:
1.短信目前不支持中文,待将URL编码问题解决
2.抓取网页内容(如天气预报信息)/或读取到新邮件通知,然后通过此接口发送短信
3.效率过低,编译后竟然后上百k大小
后续开发也在进行中,并且我会把比较成熟一点的代码贴出来。好久没有认真写C代码了,自己感觉太烂了……
家里网速实在卡,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看下,出现如下结果,应该就说明没有问题了。
OK,最基础的环境已经搭好了,可以开始工作了。
实习成果终于出来了,三个周的心血呐……
不多说,下午赶火车时间紧,上PPT,想说的都在里面了。
演讲稿下载:GaoLei’s Summer Intern Report.pdf
源代码下载:texttalk.1.0.tar.gz
Server side:
socket > bind > listen > accept
Client side:
socket > connect
一个周的实习成果总结成上面的简单描述,安静而强大。
上学期还去听了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而已。如果万一后悔了,就恢复当时的快照就可以了。看一下文件变化就基本可以确定,拍快照无非是设定记录点,重新开始记录“硬盘”文件数据而已,所以快照文件相当小。一个建议是拍照的时候最好将系统先关机,然后再拍,否则开机时拍照的话,速度比较慢。
先用到这几个小技巧,慢慢发掘,恩。
相比起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 »
实习单位:电信系互联网中心无线多媒体技术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 »
“对于我来说,vi是禅
使用vi是锻炼静坐与沉思
每条命令都引导你去深入的探索问题
对于使用者来说它是极其深奥的
对于未从接触过它的人来说它是难以理解的
每次使用它你都会发现真相。”
——reddy@lion.austin.com
可是,事实是,不论vi确实有多少优点,很多人都没有兴趣和耐性去使用vi这种古老的编辑器,他们唯一需要学习的命令就是——如何离开vi。可以在任何状态下依次按下键盘的【ESC】:q!【ENTER】五个键,从此vi与君别。
否则,就如reddy所说,每次使用vi都会发现事实的真相,厚着脸皮秀下我的vi cheat sheet,这回终于vi无敌。
