博文

目前显示的是 七月, 2006的博文

reset button的bug

很多人都喜欢在表单的末尾加一个<inputtype="reset"/>就是把表单的内容重置
但是有两个问题
1.如果表单内有readonly的input,这些也会被重置为空值
2.如果表单内有hidden的input,这些也会被重置为空值
而这些通常都是用来保存一些需要再次post back给sever的。

OO

我很少自己动手写类
常常在思考一个问题,对于小型应用程序(例如短小的CGI回应),结构化的几个函数就已经可以完成任务,那么还有使用OO的必要吗?
什么时候需要自定义一个类?
对于函数,安全性很容易保障。只要多用const,不要用静态变量,它就是很安全的。而C++中的Functor,充其量不过是可实例化、带状态的函数而已。
不过它太复杂了,我不敢用

ld的问题

本来我是用g++编译文件,然后用g++链接的
后来改用了ld
代价就是发现居然所有的C++中的异常都没有被catch
即使我在编译的时候在CFLAGS中写了-fexceptions
终于明白,还是得用g++来链接

在win下用SecureCRT登陆solaris全攻略

首先
SecureCRT的term类型最好是设置为xterm,vt220也可,不要尝试什么vt100
然后把backspace映射到\177,类型为string
然后在server上的.cshrc或者.bashrc中把term设置 为dtterm
只有dtterm可以显示彩色。
然后就ok了。
现在唯一搞不定的就是Home和End这两个键

可恶的"Sun Service Plan"

Sun把它的新OS免费发布
但是要打补丁就得购买它的Sun Service Plan
但是它的补丁包多如牛毛!

apt-get,pkg-get & portinstall

Linux下就用apt-getFreeBSD下就用pkg_fetct/portinstall突然发现,solaris下也有类似的,pkg-get用起来真舒服不过只有FreeBSD具有binary和source安装双重机制,在FreeBSD下手动编译一个gnome不过是时间的问题

再遭中文尴尬

我在用dojo的时候,发现所有用post提交过去的表单,内容中的中文,都被替换成了
&#2575;这样的东西记在这里,一定要记在这里。我终于搞定了终于搞定了,原来dojo只有在把所有encoding都设置为utf-8的情况下才能正常传输中文一个是在bind的时候就加encodingdojo.io.updateNode("state", { url: "/snnn/cgi-bin/savefile.pl", formNode: dojo.byId("form_save"), encoding: "UTF-8", method: "post" }); 再者就是在全局设置djConfig = { bindEncoding: "UTF-8" }; 例如<scripttype="text/javascript"> dojo.require("dojo.event.*"); // sophisticated AOP event handling dojo.require("dojo.io.*"); //forAjax requests djConfig = { bindEncoding:"UTF-8" }; </script>

ajax小技巧:防止表单被提交

把form的action设置为action="javascript:;"
然后在window.onload 事件中将表单的提交按钮设置为不可见
例如<input type="submit" id="form1_submit" name="form1_submit" /> window.onload = function(){ document.getElementById("form1_submit").style.display="none"; }

pmake和gmake的一个大区别

pmake的$(.TARGET)是gmake的$@
pmake的$(.IMPSRC)是gmake的$<

perl/CGI editing file online

昨天在网上看见一个perl脚本,就是打开一个文件显示出来,然后用户编辑后再保存我自己重写了下,就这样这个是主页面#!/usr/bin/perluse warnings; #use strict;use CGI qw/:standard/; use IO::File; use CGI::Carp; use MyConfig; #页面标题use constant TITILE =>"保存文件"; use constant CSS_FILENAME =>"editor_save.css"; #把错误从STDERR重定向到指定文件 BEGIN { use CGI::Carp qw(carpout); open(LOG, ">>".LOG_FILENAME) ordie"Unable to append to mycgi-log: $!\n"; carpout(*LOG); } sub save_file_content{my$filename=shift; my$content=shift; my$fh = new IO::File($filename,O_WRONLY); my$s=""; if(defined$fh && defined$content) { $fh->write($content); $fh->close(); undef$fh; return0; }else{ print"打开".$filename."失败: $!"; return -1; } return0; } main:{ my$q=new CGI; $q->charset("GB2312"); print$q->header ,$q->start_html(-title => TITILE,����������…

调试perl脚本

perl的调试器太简单了,我没看一句文档就会用
因为和gdb的命令几乎完全一样,不过功能没有gdb强大
可惜这个调试器似乎还没有被集成到emacs中去
(however,美国人告诉我们,nothing is impossible.)

用Perl/CGI写第一个hello world

#!/usr/bin/perlusewarnings; #use strict;useCGIqw/:standard/; $q=new CGI; $q->charset(GB2312); print$q->header, $q->start_html('Hello World'), #title$q->h1('你好!'), $q->end_html;

软件未必全要用root安装

configure的时候设置下prefix,装在自己的目录下就是了
emacs的lisp文件也可以自己在$home目录下建个目录,然后把这个目录加入到emacs的load-path就是了

operator

C/C++中的sizeof 是operatorperl中的shift,unshift,push,pop,reverse这些都是operator那么operator与内置函数的区别是什么?

在baidu搜东西时请注意

据内部人士介绍
" 百度目前的搜索结果分为"自然搜索结果"和"竞价排名搜索结果"
参与竞价排名的企业,百度在右下方都会标拄出"推广"字样
自然抓拍结果,就是自然搜索结果,百度在右下方会标拄出"百度快照"字样
竞价排名结果只能出现在第一页左侧
和第2,3,4,5。。的右侧
第2页左侧肯定是自然搜索结果。
如果某些关键词参与推广的企业相对很少,只有5个
第一页前5个是竞价排名
剩下5个是自然搜索的"百度快照""
我想,大家对广告和竞价排名都不是很感兴趣吧?如果你不想打开一个垃圾网站就弹出窗口满天飞那么就最好不要点击这些竞价排名网站

无题

最近几日来什么都没有写,于是很过意不去也想写点东西却不知道写什么好。
是记流水账说说最近几天发生了什么呢?还是说说北京的天气和那次忽悠悠的地震? 打开gmail,却不知道该写什么标题。
这次来北京玩,发现很受鄙视。这里每个人都抽烟,无论男女,除了我之外。当然,我不是说北京的每个人都抽烟,只是我见过的每个人都抽烟。我不抽烟,仿佛成了一个怪物。
前几天还喜欢上了喝北京的"黑加仑",碳酸饮料的一种,很次。不过喜欢那个黑玻璃瓶子,和那个古怪的味道。我不喜欢喝可乐,但是看大家都这么极力追捧,于是大部分时间下,也就逐大流吧。昨天晚上在外面买的那瓶茉莉花茶的瓶装饮料感觉很不错,可能是因为刚刚在街头吃完麻辣烫的缘故,喝起来极舒服。

未定义的行为?

上次考试的时候,老师写了一段形如func(i,i++);的代码问执行后的结果是多少。这次去某公司笔试,再次遇到这个。上次据smth上的朋友说,这个题有问题嘛~

又是防火墙惹的祸

最近几天在朋友的机子上学校的BBS总是出现"您提交的数据不合法,请不要从外部提交发言。"
google之才明白,又是诺顿惹的祸

存储器的效率

14:32 2006-7-1L1 128K 12298MB/s
L2 256K 3915MB/s
Memory 512M 928MB/s
harddisk 160G 约50MB/s可以看出,L1速度远高于L2,而L2和内存速度相差无几。这是对于我的CPU而言。不过不同的CPU不一样,例如很多PC的Cpu的L1甚至比Xeox
3.04G的L2还大。学数据结构的时候,书上常说,实际上内存的读写速度是硬盘的1000倍以上。可是实际测量就会发现,区别是很大的,但是没有那么夸张。在我的机子上,相差大概20倍吧。希望有兴趣的朋友也帮忙在自己的机器上一起做做测试。这个结果很重要,
例如,如果memory和harddisk的读写速度在200倍以上,那么只有在万不得已的时候才应该占用硬盘空间做虚拟内存(而实际目前大部分OS都是如此,尤其是FreeBSD,虚拟内存很少被占用)。