过网而居,点点滴滴

我的IT日记------冲刺流星 isaacct@163.com

IT博客 联系 聚合 管理
  13 Posts :: 0 Stories :: 2 Comments :: 0 Trackbacks

2006年12月20日 #

1。NUL是一个ASCII字符串结束的标记,而NULL是一个什么也不指向的指针
posted @ 2006-12-20 20:51 冲刺流星 阅读(36) | 评论 (0)编辑 收藏

2006年12月18日 #

1。请求重定向和请求转发的区别
HttpServletResponse.sendRedirect
方法对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个 URL 的访问请求,这个过程好比有个绰号叫“浏览器”的人写信找张三借钱,张三回信说没有钱,让“浏览器”去找李四借,并将李四现在的通信地址告诉给了“浏览器”。于是,“浏览器”又按张三提供通信地址给李四写信借钱,李四收到信后就把钱汇给了“浏览器”。可见,“浏览器”一共发出了两封信和收到了两次回复,“浏览器”也知道他借到的钱出自李四之手。 RequestDispatcher .forward 方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。这个过程好比绰号叫“浏览器”的人写信找张三借钱,张三没有钱,于是张三找李四借了一些钱,甚至还可以加上自己的一些钱,然后再将这些钱汇给了“浏览器”。可见,“浏览器”只发出了一封信和收到了一次回复,他只知道从张三那里借到了钱,并不知道有一部分钱出自李四之手。
2。防止盗链
需要检查请求消息的Referer字段是否与本站匹配,一般即是用这样的方法

posted @ 2006-12-18 13:23 冲刺流星 阅读(74) | 评论 (0)编辑 收藏

2006年11月28日 #

加州旅馆的含义

加州旅馆到底是指什么?它在哪里?
  
    有的人认为歌曲中的加州旅馆是确实存在的,而这之中还有旅馆、戒毒所、精神病院三种说法。
  
    (1)认为确实存在这个旅馆的人,在南加州的托多斯桑托斯(TodosSantos ) 这个小镇算是找到他们需要的一切。小镇在南加州高速公路的沙漠旁边,在小镇 内有一座类似唱片封面的旅馆,在旅馆的不远处是会半夜传来钟声的教堂,而这旅馆在以前正是有暗地的色情交易。
  
    旅馆的主人号称这正是歌曲中的“加州旅馆”,不过小镇历史上,旅馆的改 名是在歌曲已经流行后的八十年代才发生的。在九十年代后期,数篇报章开始登 载这个正宗“加州旅馆”的故事,最后终于引来了歌曲创作者Don Henley在二 ○○○年的正式否认:老鹰乐队的成员从未到过此地。
  
    (2)歌曲本身的数次对毒品的暗示,是加州旅馆原是戒毒所说法的来源。按此说 法:加州旅馆是在南加州公路旁的一个自愿戒毒院,老鹰队员曾经吸毒与入院的 经历是歌词的创作来源。
  
    歌词在一开始colitas的暗示,头感到发重是吸大麻烟的特征。“lit up a candle”是一个吸毒的常用语,在后院跳舞更是吸毒后失控发作的一个现象。
  
    这种自愿戒毒院是主要为中产阶层开的,介于疗养院与戒毒所之间,而淫乱 现象更是七十年代中产阶层放荡后的一种常态。毒品的瘾性使得你可以在某段时 间痊愈而离开戒毒院,不过却永远无法摆脱那重蹈旧轨的阴影,这正是“你可以一时结账,却永远无法离开”的写照。
  
    (3)歌词的诡异可能是精神病院说法的来源。歌词中与之相关联的暗示有:不断 有远处声音的幻听想象;天堂和地狱指精神病人中某些如恶魔的邪恶人性和如天 使纯洁无知觉;在后院里病人如着魔般的跳舞;头脑思想扭曲正是精神病的直语; 自己思想的囚犯也是暗语;想杀死恶魔却总杀不死的精神病幻觉。当然精神病也 和毒品一样,你可以觉得你暂时是正常了,却无法保证将来是正常的,永远无法 离开那阴影。
  
    七十年代曾经是电影界恐怖片流行的时候,而这歌词正勾出这样的故事框架。 边远沙漠大路上的孤独一人,大门前掌烛的丽人,酒吧的神秘领班,后院的召魔 舞蹈,意图杀死却总杀不死的恶魔,即使结束却总有人来在背后提醒还有续集的结尾。这些种种,使得歌词有一种鬼影森森的感觉,而在恐怖片中,精神病院更 常是主要的背景场所了。
  
    相对于实地去寻找,加州旅馆是虚指的象征显然更加有说服力。但是这象征 是何所指呢?这也至少有音乐界、洛杉矶生活、美国社会三种说法。
  
    六十年代是美国音乐界的自由创作时期,摇滚乐的流行成为六十年代自由与反叛思想的象征,然而其盛况也带来了商人无限贪婪的眼光。吸毒和淫乱几乎成 了每个摇滚手在七十年代走的同一条堕落之路,金钱与享乐成为了摇滚音乐在七 十年代的新形像。
  
    同为音乐人的老鹰乐团看到这样的事实,却无能为力。乐手们已经将这种沉 迷的生活看成了是音乐界的常态,摇滚乐手们身边总充满了漂亮的面孔与漂亮的 地点。对于外界的质疑,他们总是自我原谅:放轻松点吧,我们是天生易于被诱 惑。音乐界已经无法杀死金钱的这个心魔,即使某些个人可以暂时结束,却永远 无法摆脱。
  
    一九六九年的伍德斯多克(woodstock),被视为摇滚的颠峰聚会。spirit 同时有精神之意,歌词暗示在伍德斯多克之后,无论看起来多美丽,摇滚的精神 已经不再存在了。
  
    认为这首歌象征美国社会的人则这样来理解一九六九:一九六九是六十年代 最后一年,说自一九六九就再没有那样的精神了,是指美国六十年代的自由、和 平、平等的精神。
  
    美国一进入七十年代,就遭遇到了中东石油危机、越战的战败、尼克松的水 门事件等。就在一夜间,美国的精神面貌就从奋斗的青年们变成了庸俗与颓废的 中年了。
  
    在两三年前有一部斯坦利·库别克(Stanley Kubrick)拍摄的电影“大开 眼界”(Eye wide open),看过这部电影的观众就可以在这部电影内容中发现 与这首歌词许多神似的情节内容。也是同样的吸毒堕落,也是同样的荒淫性乱, 也是同样的拜魔情结,也有同样的无法摆脱的阴影。这部电影就如同是这首歌的 一个解说,讲述那种已经不堪的美国社会状态。
  
    洛杉矶之说是老鹰乐队自己在人们无数次追问后的一个回答,虽然说歌曲就 如同小说一样,离开了作者后要由听者来解释,堂·亨莱(Don Henley)是这 样解说的:“我们是一群来自中西部州中产阶层背景的年轻人,加州旅馆是我们 对洛杉矶的上流社会的理解。它可看做是对总是追求奢淫生活的美国的一个象征, 而不仅仅是关于加州和毕利华山区。”(毕利华山区是洛杉矶的一个最富人区, 好莱坞的影星歌星的居处)
  
  (“We were all middle-class kids from the Midwest,” Henley said of the Eagles. “’’Hotel California’’ was our interpretation of the high life in Los Angeles. It was meant to be a metaphor for the United States, for the excesses this country has always been known for. It wasn’’t meant to be just about California or Beverly Hills.”)
  
    《加州旅馆》自面世开始,立即就引来很多的质疑与批评。尽管谁也不敢夸 口说自己的理解是正解版本,但歌词中明显的吸毒、性乱、邪教等暗示还是引起 道德卫士的不满,并且在美国数州受到宗教团体的杯葛。不过,《加州旅馆》歌 曲中那成经典的吉他旋律、诡异莫名的歌词内容、感人心弦的悲世情怀,使得这 首《加州旅馆》神秘永远,成为最爱。
  
歌词:

       on a dark desert highway,行驶在昏黑的荒漠公路上,
  cool wind in my hair.凉风吹过我的头发.
  warm smell of colitas,温馨的大麻香,
  rising up through the air.弥漫在空气中.
  up ahead in the distance,抬头遥望远方,
  i saw a shimmering light.我看到微弱的灯光.
  my head grew heavy my sight grew dim.我的头越来越沉,视线也变得模糊.
  i had 2 stop 4 the night.我不得不停下来过夜.
  there she stood in the doorway;她站在门口那儿招呼我
  i heard the mission bell.我听到远处教堂的钟声.
  and i was thinking 2 myself,我在心里对自己说
  this could b heaven or this could b hell .这里可能是天堂也可能是地狱.
  then she lit up a candle,然后她点燃了蜡烛,
  and she showed me the way.给我引路.
  there were voices down the corridor.沿着走廊传来阵阵说话声.
  i thought i heard them say...我想我听到他们在说……
  welcome to the hotel california!欢迎来到加州旅馆!
  such a lovely place!如此美丽的地方!
  such a lovely face!多么可爱的的面容!!
  plenty of room at the hotel california!加州旅馆有充足的房间!
  any time of year,u can find it here!一年的任何时候,你都能在这找到房间.
  her mind is tiffany-twisted,她的心为珠宝所扭曲,
  she got the mercedes bends.她拥有豪华奔驰车.
  she got a lot of pretty,pretty boys.她有许多漂亮的小伙子.
  that she calls friends.她称之为朋友.
  how they dance in the courtyard,他们在庭院里翩翩起舞,
  sweet summer sweat.夏日的香汗伶俐.
  some dance to remember!有些舞是为了回忆!
  some dance to forget!而有些舞是为了忘却!
  so i called up the captain,于是我叫来领班,
  please bring me my wine. 请给我来些酒.
  he said we haven t had that spirit here,他说我们这不供应列酒 since nineteen sixty nine. 从1969年起.
  and still those voices are calling from far away.远处仍然传来他们的话语.
  wake u up in the middle of the night.在半夜把你吵醒.
  just 2 hear them say...只听到他们在说……
  welcome to the hotel california!欢迎到加州旅馆来!
  such a lovely place!如此美丽的地方!
  such a lovely face!多么可爱的的面容!
  they livin it up at the hotel california.他们在加州旅馆尽情狂欢.
  what a nice surprise,好得令人吃惊,
  bring your alibis.使你有来到这的借口.
  mirrors on the ceiling,天花板上镶嵌着的镜子,
  the pink champagne on ice.冰镇着的粉色香槟
  and she said we are all just prisoners here-她说我们都是这的囚徒
  -of our own device .但是是我们自愿的.
  and in the master s chambers.在主人的卧房里.
  they gathered 4 the feast.他们为宴会聚在一起.
  they stabbed it with their steely knives.他们彼此间用钢刀相互砍杀.
  but they just can t kill the beast.但他们甚至不能杀死野兽!
  last thing i remember,我所记得的最后一件事
  i was running 4 the door.是我跑向门口.
  i had 2 find the passage back,我必须找到来时的路,
  to the place i was before.回到我过去的地方.
  relax ,said the night man,守夜人说放宽心,
  we are programmed to receive.我们只是照常接待
  u can checkout any time u like.你想什么时候结帐都可以.
  but u can never leave! 但你永远无法离去!
------------------------------------------------------------------------
想象我们今天中国的娱乐圈,不也正是美国七十年代情形的翻版么?

posted @ 2006-11-28 20:30 冲刺流星 阅读(34) | 评论 (0)编辑 收藏

2006年11月27日 #

11月24日晕乎乎的去了一趟招聘会,胡乱投了几家公司,却意外的在下午一点收到了面试通知,于是就匆忙地赶到玉泉饭店,20分钟的面试结束以后,我拿到了人生的第一个OFFER。
一切来的太突然,突然得让我难以接受。一个小时以前我还在想,我究竟什么时候才能够找好工作,而现在,突然一下子我就必须面临艰难的选择,是往东还是往西?是留下来还是回去?是昆明还是杭州?是匆忙还是安逸?。。。
面试官和蔼的表情还闪现在我的脑海里,在短短的二十分钟里面,我感受到了一钟来自云贵高原的熟悉气息。我清楚的知道公司开出的条件在当地已经是不错了,而且昆明离我的家并不很远,那似乎就是我应该去的地方。我已经可以想见到了昆明以后的生活,我可以在忙碌了一天之后静下来轻抚我心爱的琴,还可以跟从前的朋友们时常聚在一起回味旧事。在这样的地方我可以更现实的生活,也有可能在当地买房和结婚。。。最现实的条件摆在我的面前,尽管我不知道以后会不会找到更好的,但是对于我来说,眼前的这一切应该已算是一个较好的选择,我几乎已经快要决定去,可是,最后却没有。
到现在我也找不出太多的理由来说服自己,也许是因为来的太快,无法仓促选择?抑或是由于依然残存着对阿里巴巴的向往?我知道我早晚是一定要回去的,并不是因为怀疑自己的能力无法在这样竞争激烈的地方常驻,而是一直以来我都认为那巍峨的青山和蜿蜒的秀水才是我真正的归属地。我知道留在这里将可能会失去自己一直向往的生活习惯,也可能就此将自己陷入一钟紧张的生活节奏中,甚至完全可能因为回归的坚定决心而让自己在数年中没有爱情,当然也会因此带来更多的苦闷。。。可是,我要的是什么?我留下的理由只有一个,那就是继续学习,我希望在刚毕业的这几年学到更多的东西,而不是就此停步。于是我放弃了回家的机会,需要换取在今天坚定的决心。
希望明天的我用事实告诉自己,我的决定是正确的

posted @ 2006-11-27 21:33 冲刺流星 阅读(55) | 评论 (0)编辑 收藏

学了那么久的JAVA,竟然在这个问题上犯错误。。。
JAVA的环境变量classpath需要包括当前目录,然后就算是加了以后也没有用,还是会出现
Exception in thread "main" java.lang.classdeffound 的提示
原来是因为当前路径中出现了非法符号,把我搞昏了
posted @ 2006-11-27 16:26 冲刺流星 阅读(45) | 评论 (0)编辑 收藏

2006年11月20日 #

ch6  关于宏
1。为什么要用宏?构建一个类似于函数的功能块,在经常调用的环境中是直接嵌入的,保证了速度,而不是像函数那样费时。比如getchar()
2.宏定义的空格问题,容易被忽略而产生郁闷的错误,好在编译器一般会报错
3。为了避免表达式误解,定义宏的时候必须将表达式用(),否则产生的错误将很难发现
4。宏定义中加入运算符,很有可能造成误解
如  max(a,b)换成了max(biggest,x[i++])
++和--的副作用很大
5。应该考虑在宏展开后会不会产生庞大的表达式,才决定要不要使用宏
6。宏不应该写成语句,而仅写一个表达式就可以了,否则容易产生悬挂else的问题
7。如果使用宏定义一个类型指针,一次只能定义一个变量
如  #define t1 struct foo *
      t1 a,b  //这样a,b就不是一个类型了,此处应小心

ch7  预处理器和可移植
1。为了兼容旧版本的C,有些规范容易造成不合理的错误
比如 square( )函数不检查参数
2。有些C编译器环境不区分大小写的变量,因此尽量不要使用同名字的变量,在小型的程序中可以加起个人前缀来实现
3。在将字符串转化为整数时应该严格的转化为无符号整数,因为有些机器可能把字符串作为16位整数的高8位或者低8位存储,转化之后会造成错误
4。对于有符号数,移位运算标准并不规定补充位的值,有些机器按0补充,有些则按溢出的值补充。移位运算的允许值 0<=x<n.当然,可以在二分查找法中对无符号数进行移位,以节省时间(除法尽量不要用)
5。有些编译器可以对内存0位置读写,有些不能
6。执行处罚应该尽量避免被除数为负,这样容易溢出产生错误结果
7。对大小写字母的实现
A。#define toUpper(c) ((c)+'A'-'a') :只对传入值为字母时产生效果,如果为其他,会产生垃圾信息
B。用函数实现:速度慢但是质量高
应该根据应用选择细节
8。内存分配问题
malloc  分配新的内存
realloc  分配原有内存,早期版本的realloc要求先被释放才能分配
9。'0'+n得到字符n,是在ASCII和EBCDIC规范下的,注意有些机器不是在这个字符集下
10。类似 a=-a 这样的表达式,应注意,改变一个负数的符号可能发生溢出

作者对C程序员的建议
*尽量不要用指针
*应该使用程序集
*要使用类

这不是叫人去学面向对象么。。。

posted @ 2006-11-20 21:29 冲刺流星 阅读(124) | 评论 (0)编辑 收藏

2006年11月10日 #

TNND,明天要参加三场笔试,怎么会那么集中,看来是场硬仗。。。
大概是没什么时间看书了。哎,找工作这种事情,什么时候都可以找。
郁闷
posted @ 2006-11-10 20:37 冲刺流星 阅读(34) | 评论 (0)编辑 收藏

2006年11月9日 #

这几天在读《BORLAND传奇》,看着里面那一个个发生在10年前的故事,我想起了自己刚接触计算机的日子。仍记得第一次上机是在刚上初一的时候,看着面前这个陌生的器物,正是有点无所适从的感觉,玩得正开心,突然的死机却吓得我呆坐在那里,又不敢报告老师,此后好几天都担心着会不会被叫去赔偿那“已经坏了的机子”,呵呵,想起那时候的紧张心情,还真是有趣。
那个时代虽然已经有了WINDOWS,学校里用的还是那经典的DOS 6.22,于是对DOS和DOS下面的WPS,WORDSTAR等等软件充满感情,初二的时候老师开始教我们编程,出于强烈的兴趣,我每天跟在老师屁股后面跑,为的就是在课外活动时间能够到机房去用QBASIC实现一些程序。课余的时间,还向老师借了书来自己学习。那是一种什么样的激情呵,不像是今天和以后,可能要为了生计而去写那些令自己讨厌的代码,而是出于一种由衷的热爱。那时候惊叹于这些小小的字符居然可以做出好看耐玩的游戏来,也梦想着能够在今后做出类似的东西。那个时候的电脑就是黑黑的屏幕,上机的内容除了编程就是偷着玩一些小游戏,而我却实实在在的从那样朴素的设备中得到了比今天更多的快乐。电脑五彩斑斓的屏幕散发着巨大的吸引力,却让我离程序设计的世界越来越远。。。
 高一的时候,停了一年的微机课程又开了,于是我们开始学习PASCAL,最初只知道这种语言有着太多的BEGIN 。。。 END,烦都烦死了,而且对于需要使用的变量居然要事先定义,这实在是让人难以忍受的事情,学了PASCAL,感觉这种东西实在严谨得多了,也渐渐扭转了一些错误的观念,知道了程序设计需要的不仅仅是兴趣和激情。尽管高中只有一年的微机课,但是在这一年中我觉得学到了好多的东西,接触了简单的数据结构和常用算法,当然,也知道了WIN3.1和WIN98,知道了原来电脑还可以用来听歌,看电影。。。
然而就是高一快结束的时候,一次在图书馆看《学生计算机世界》,却被微机老师训了:
“这东西当作兴趣可以,你要好好去搞高考那些课程,以后不能再到机房去了。。。”
于是我再没有去过学校机房,自那以后我也以为再也不会去编程了,因为我一直想要去的是清华的土木工程,然而2002年的夏天是黑暗的,4分的差距把我挡在了门外,或许是命运的安排,后来我还是来到浙大学计算机了。尽管在今天的感觉里面,程序早已经不再像“蓝色屏幕”的TURBO PASCAL时代那样亲切,但毕竟,这是我曾经热爱过的东西

posted @ 2006-11-09 14:19 冲刺流星 阅读(107) | 评论 (1)编辑 收藏

通过函数指针可以实现类似于C++中虚函数的功能,在C++中,虚函数的指针不是指向一段代码,而是指向一个虚函数表,通过调用的情形找到相关的函数再载入运行
比如:
typedef void (*fun_pointer_type1)(void);
typedef void (*fun_pointer_type2)(int);
typedef void (*fun_pointer_type3)(char);
struct a
{
    fun_pointer_type1 f1;
    fun_pointer_type2 f2;
    fun_pointer_type3 f3;
//...
};
相当于定义了一个可以指向某一种函数的函数指针,可以模拟虚函数的实现
和C++的虚函数实现相比,这种方法会更快一些么?
看版上的人讨论来讨论去,还是没结果。。。

posted @ 2006-11-09 13:12 冲刺流星 阅读(158) | 评论 (0)编辑 收藏

2006年11月6日 #

1。对(*(void(*)( ))0)( )的解释:
该表达式的功能是在计算机启动时候调用首地址为0 的程序,这是一个函数调用,调用的函数是
(void(*)( ))0.。而它是一个强制转换,意思是“将数值0转换为返回值为void的函数指针”,其中的
void (*)( )说明了这是一个函数指针
2。运算符优先级
优先级带来的困惑实在比较多。最简单的避免混乱的方法莫过于加括号,然而括号太多也会影响阅读。于是一些基本的记忆仍然是必须的
A。运算符优先级大于赋值
很容易犯这样的错误:
while (c=getc(in) != EOF)
       {
         ...
        }
编译器会理解成
while (c=(getc(in) != EOF))
       {
         ...
        }
而与我们预想的结果大不相同
B。基本的优先级顺序
函数运算符 〉单目 〉算术 〉移位 〉关系 〉逻辑 〉赋值 〉条件
比如典型的
 *p++ = *c++不是 (*p)++ = (*c)++ 而是 *(p++) = *(c++)
C。结合性
除了 赋值 ?:是从右向左以外,其他都是从左向右的结合性

3。关于分号 ;
分号的缺失是一个不容易被发现的问题,这是很多语言都具有的特点,尤其是在main( )函数前面定义了某一种数据类型,缺少分号导致它成为main( )函数的返回值,会产生奇怪的错误
*main( )缺省返回值为 int

4.switch
和PASCAL的CASE语句相比较,switch 有所不同,程序流会流过每一种情况,如果忘记加 break,则会产生错误。但是有时候也会带来一些好处,比如
需要在判断的时候计算A+B,那么无论B为正负,让程序流通过B的时候将其反号即可,即
case SUBTRACT
         op2 = -op2;
        /* NO break here!*/
case ...
一定要在注释处醒目标注,否则阅读时不能分辨这里是否应该有 break

5.悬挂 else 问题
这已经是一个古老的问题了,在各种编译器设计中都有自己的处理方法,C 中的处理是 与最近的一个未匹配 else 的 if  匹配 ,但是也可以通过其他的办法,例如宏定义,来消除二义性

posted @ 2006-11-06 10:37 冲刺流星 阅读(53) | 评论 (0)编辑 收藏

仅列出标题  下一页