非诚勿扰
前天接到一个电话,是“山西视创网络公司”打来的,说是要招PHP程序员,让我过去面试。本来不打算过去的,我便说“等我有时间的话我就过去了”。不料想他们貌似招人心切,昨天上午又给我打了个电话,说很着急,让我最好下午就马上过去面试一下,我于是又推辞了一番“等我有时间我就过去,过去时给你们打电话”,电话那头说“你下午过来面试一下吧,底薪是2000元”,听到这个待遇难免有些心动,谁会跟钱过不去?不过我并没有表现出很激动的样子,还是那句话“等我有时间我给你们打电话”。
挂掉电话后就在网站查了一下关于“视创网络”的一些资料,原来是一个做网络视频的公司,前身是“山西飘香多媒体工作室”,好像现在被“视创网络”以1000万美金收购了,真实性不好说。引起我关注的是他们开发一套名为“猫岛UCC视频分享WEB平台”的程序,就像56.com那样的视频分享网站,至少去了可以学到一些FLA视频的技术,更重要的是我喜欢团队合作。
了解到这些后,我主动打电话了解到了他们此次招人的目的是想要将原本ASP的视频分享平台开发一个PHP的版本。有点心动了,至少可以学到很多东西,而且工资也很诱人。所以决定下午去面试,看看具体情况。
下午3点左右,带着对未来的美好憧憬来到了“鼎元时代中心”,找到了这家“山西视创网络科技公司(又名‘六度科技’)”。一进门,给人感觉很压抑,不像是一个搞技术的公司,更像是一个做服务的公司。其实说白了,给别人做网站或者做视频就是一个服务的行业,但我一直认为有成就的网络公司应该是一个像Google那样的技术公司(其实我也不清楚Google到底是一个什么样的办公环境,但让我很向往)。和其他公司一样,首先填一份公司准备好的简历。简历上我没有填写太多的内容,因为我在网上发布的求职简历已经写得再清楚不过了,他如果不清楚,说明他根本不了解我,那我来这里的意义也就不大了。填完简历后,我也不知道是公司的一个什么职务的“负责人”让我说了一下我的作品,之后便让我上机操作一下——搭配PHP环境,并并且编写按要求编写一个小程序。
这当然难不倒我了,在WINDOWS下搭建PHP环境再熟悉不过了。由于搭配环境的时候我有些紧张,花了大概五分钟的时间下载了一个PHP的源代码文件包,把我郁闷坏了,不过很快我就又重新下载了一个PHP在WIN32环境下的安装包。本想要在PHP上加载PHP的ISAPI,没料想让我使用的机子连IIS6.0也没有安装,看来只能配置一个Apache2.2下的PHP环境了。于是又去网上下载了一个Apache在WIN32下的安装包,环境配置特别顺利,就是下载占用了差不多半个小时的时间。搭配好环境后,按照要求基本完成了一个简单的PHP程序。
但出乎我意料之外的待遇条件让我一下子恼怒了:试用期800元,负责DZ!论坛的修改和CMS程序的修改。说实话,听到这样的话,心里很恼火。其一,我很尊重源代码的作者,要在源程序上改版权或者之类的话,我是坚决反对的;其二,打电话说好是2000元,怎么可以言而无信,可见“视创网络”的诚信;其三,让我更改别人的源程序,这个工作太“神圣”了,我没办法胜任。于是我便推辞“我回去考虑考虑吧”,其实这时候,我心里已经很明确了,即使给我月薪一万我也不会在这里工作的。
可能由于我还正“年轻气盛”,工资多少还看得不是很重要,但我对技术很执着,我希望可以找到一个欣赏我的人。
我的求职简历写的很清楚了,非诚勿扰!
博客中加入Trackback(引用通告)功能
博客中又增加了一个不错的功能:Trackback(引用通告)。其实我在去年的时候就想要在博客中加入Trackback,但由于一直不知道其运行原理,所以很没有头绪。
今天经过查阅资料后了解了Trackback的实现原理:在发送Trackback的时候伪造了一个POST方式的HTTP请求,然后对方服务器接收到这个请求后,会返回一段XML格式的应答。由于Trackback Ping是由Moveable Type发明的规范,就应当遵循他们的Trackback规范,这是他们的技术规范文档:http://www.movabletype.org/docs/mttrackback.html
要实现Trackback的功能至少要包括两个功能:1、发送Trackback Ping;2、接收和处理Trackback Ping,并返回处理结果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
'发送Trackback Ping Public Function Trackback(RemoteURL,BlogName,LogURL,LogTitle,LogExcerpt) Dim objXMLHttp,objXML,intStat,strMessage,strPostInfo '将要发送的参数进行URL编码 BlogName = Server.URLEncode(BlogName) LogURL = Server.URLEncode(LogURL) LogTitle = Server.URLEncode(LogTitle) LogExcerpt = Server.URLEncode(LogExcerpt) strPostInfo = "title=" & LogTitle strPostInfo = strPostInfo & "&url=" & BlogURL strPostInfo = strPostInfo & "&excerpt=" & LogExcerpt strPostInfo = strPostInfo & "&blog_name=" & BlogName '创建对象 Set objXMLHttp = Server.CreateObject("MSXML2.ServerXMLHTTP") Set objXML = Server.CreateObject("Microsoft.XMLDOM") '以POST方式打开XMLHttp对象 objXMLHttp.Open "POST", RemoteURL, False objXMLHttp.setRequestHeader "Content-Type", "application/x-www-Form-urlencoded" '发送请求内容 On Error Resume Next objXMLHttp.Send strPostInfo If Err.Number <> 0 Then Trackback = "TrackBack错误:无法连接服务器" Else If (objXMLHttp.readyState <> 4) or (objXMLHttp.Status <> 200) Then objXMLHttp.Abort Trackback = "Trackback超时" Else objXML.async = False objXML.load(objXMLHttp.responseXML) If objXML.parseError.errorCode <> 0 Then Trackback = "TrackBack响应解析错误" Else If objXML.getElementsByTagName("error")(0).Text="0" Then Trackback = "Trackback成功" Else Trackback = "Trackback错误:"&objXML.getElementsByTagName("message")(0).Text End If End If End If End If '释放对象 Set objXMLHTTP = Nothing : Set objDom = Nothing End Function |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
'接收和处理Trackback Ping Public Sub DealRequest() Dim logid,tbTitle,tbName,tbURL,tbExcerpt,stat logid = Request.QueryString("id") '网上说QueryString集合已经在2004年就被费除了,所以只使用了form集合。如果想要都兼容的话可以写为:request("title")这种类型 tbTitle = Request.Form("title") tbName = Request.Form("blog_name") tbURL = Request.Form("url") tbExcerpt = Request.Form("excerpt") '根据判断返回相应的信息 '先根据接收到的logid查询是否存在日志,返回stat = 0 '如果存在则继续判断,根据tbURL判断是否已经引用过此日志,返回stat = 2 '日志不存在返回stat = 1 Set r = execute("select id from table where id="&logid) If not (r.eof and r.bof) Then stat = 0'成功 Set r_tb = execute("select * from trackback where logid="&logid&" and tburl='"&tbURL&"'") If r_tb.eof and r_tb.bof Then '执行到这步表示一切都正确,下面运行插入trackback表的数据,这里省略 Else stat = 2'记录存在 str = "您已经引用过此文章" End If r_tb.close : set r_tb=nothing Else stat = 1'日志不存在 str = "引用的文章不存在" End If r.Close : Set r=Nothing Response.ContentType = "text/xml" Response.Charset = "utf-8" Response.Write "<?xml version=""1.0"" encoding=""utf-8""?>" & vbNewLine Response.Write " <response>" & vbNewLine Response.Write " <error>" & stat & "</error>" & vbNewLine If stat > 0 Then Response.Write " <message>"&str&"</message>" & vbNewLine End If Response.Write " </response>" End Sub |
以上两段代码便是用ASP实现Trackback的核心代码了。其中要注意的是提交的内容必须经过URL编码后再发送,否则遇到中文字符就会出错。
六月瓜香
六月初,就有不同品种的香瓜上市了,不由嘴馋,便想起了家乡的香瓜,勾起了儿时不少的回忆。
儿时,每年总盼望着六月的到来,到了六月末地里的香瓜便都熟了,满村子漂着都是瓜的香味。自打母亲走后,家里便没再种过瓜,亲戚会给送点,不过要等到香瓜都卖的差不多,才挑卖不出去的送来。不过终归是在农村,地里多的是,实在嘴馋的不行,便去地里“偷”几个来解馋。
每年到了这里时候,我便会和张晋凯去他地里看瓜,坐在地头,满地里的瓜随便吃。我也好吃这东西,每次去了地里总是先吃个够,瓜籽都舍不得吐出来,然后就躺在地头品味着这满口的瓜香,好不快活。
前段时间我曾打电话问姐姐地里的瓜何时能熟,也好回去吃个够。姐姐也知道我嘴馋的厉害,前天便发来短信催我和妹妹一块回去吃瓜。不过妹妹刚去美容院,实在不好请假,所以我便没有回去。
好香,老远就闻到从家乡漂来的瓜香,终归还是家乡的瓜更香、更甜,夹杂着儿时的美好回忆!
评论列表中增加Gravatar头像展示
今天去 Evance 的博客逛的时候,发现自己的头像可以显示了,突然“心血来潮”,想要在博客的评论列表中加入Gravatar(个人全球统一标识)的头像展示功能,于是便把博客程序的博客功能和评论列表布局都大改了一遍。
增加 Gravatar 还算简单,它是以 Email 地址作为唯一标识符来识别头像的。
基本格式:http://www.gravatar.com/avatar/32位MD5加密后的Email地址?d=默认图片地址(必须经过URL转码)&s=头像大小(单位:px)&r=头像等级(G 普通级、PG 辅导级、R 和 X 为限制级,一般为G)
把上面的地址经过处理后作为图片地址加入到<img>标签内就可以了,这样基于自己的博客程序的 Gravatar 头像展示功能就做好了。
除止之外,评论列表的布局也进行了改动:取消了原来使用<ol><li></li></ol>这样的有序列表标签进行布局,而是使用<div>标签来进行布局。因为用有序列表标签的话,我实在没办法控制好CSS样式。
提交评论后的显示方式也进行了改动,之前是使用JS的方式实现不刷新页面显示提交后的评论数据,但由于JS回显对有HTML格式的内容支持的不是很好,所以便改为了使用AJAX调用回显的方法来实现这个功能。
改动的时候还发现了几个小问题,原来JS保存Cookie的代码一直没有使用。这次改动还算顺利,虽然用了中午的时间,但改动后的效果还算不错。
永远怀念黄家驹
转眼间,家驹离开我们已经16个年头了。16年的时间可以用来遗忘所要忘记的事,但我们却用这16年的时间来怀念家驹,怀念在我们孤独落寞时陪伴着我们一起坚强的家驹,怀念那些美好的音乐和息息相关的岁月。我想在今天,很多喜欢Beyond的朋友的心情都和我一样,家驹和Beyond仍然是我们心中永恒的感动。
虽然我们都不像从前那样为之疯狂。我记的前几年,每当到了六月,歌迷们便会聚集在各大聊天室,一起高歌理想,一起怀念家驹,享受这一刻的感动;现在已经很少看到这样的场景了,但我们并没有忘记家驹,我们仍然会在这一天听着Beyond的歌,默默的怀念,享受着家驹留给我们的每一个笑容,享受我们心中那份永恒的感动。
海阔天空:[music name=”海阔天空” auto=”no”]http://zhangqian.me/uploadfiles/music/haikuotiankong.mp3[/music]
日记一则 09年6月25日
6月22日中午,妹妹QQ上跟我说了一件让我感到很意外的事,让我整个下午心里都充满着不安。于是下午下班后我便请了2天的假,准备回家把妹妹接到太原。
23日凌晨5点左右,我便与张鹏结伴赶往火车站,踏上了回家的列车。一路上,我不停着想着把妹妹接到太原后应该如何安顿?真的很想与我妈联系一下,希望她可以回来照顾妹妹。但与母亲失去联系已经10年有余,联系起来诸多不便。我曾试着打探母亲的下落,终无结果。
当日10点多终于到家了,本想第一件事儿就去父亲的坟地看看父亲,但因时间已经不早了,所以就决定第二天一大早再去看望父亲。
这次回家的主要目的便是要接妹妹和我一块来太原,由于某些原因迫使我不得不将妹妹带过来。嘱托姐姐给妹妹办理落户的事儿要紧,并说明我此次回家的目的,可以看出来姐姐很担心我在外面的生活,尤其再把妹妹也带过去。不过事已至此,再无其他办法。
24日凌晨我去坟地看望父亲,将我把妹妹带到太原的事告诉了父亲,并向父亲讲诉了我近段时间在外面的情况以及家里的情况。从坟地回到家中,吃过早饭后就和妹妹一块准备前往太原。
妹妹现在在我身边,基本上我是放心了,唯一放不下的就是家里父亲留下的几间破房子和空旷的院子。虽然姐姐在家里住着,但这次我把妹妹也接过来,她也难免会回她家,只盼姐姐可以经常过去打扫。
妹妹的工作也是要考虑的,由于她的年龄太小,我不想将她送到饭店当服务生。之前妹妹和我说过她想学美容,所以我便托朋友帮忙联系了一家美容院,让妹妹去当学徒。
朋友帮忙联系到的那家美容院,要签两年的合同,每个月的工资是300元,我放心不下,第一次的时候我拒绝了。后来想了想,也唯有这样,所以准备这个周日带妹妹去看看,如果那边感觉合适,我便让妹妹跟着做学徒。
现在我感觉到了当家长的不容易,回想从前,我第一次出外地打工时给家里打电话,可以深深地感受到父亲对我关心和牵挂。妹妹的事儿,我总是放心不下,也不知道如何是好。我问了她的想法,我说什么也答应“哦”,看来她不反对,也只有先送她去做学徒了。
CCTV谴责谷歌 目的何在?
2009年6月18日,央视分别在“新闻联播”和“焦点访谈”两个栏目中谴责谷歌中国大量传播淫秽色情和低俗信息,谷歌中国可谓是“出尽风头”。今天已经21号了,“谷歌涉黄风波”已经过去3天时间了,其实我在第一时间就想说一下我的看法,后因种种原因未能发表这个日志。但现在我不得不说,CCTV为何此次专门针对“谷歌中国”呢?虽然央视在19日回应曝光“谷歌涉黄”是出于正常的舆论监督,但是网上的对央视的各种猜测却不断升温。
2008年11月15日、16日CCTV曾对百度竞价排名进行过两次曝光,此次曝光并没有引起网友们的猜测。在09年央视的春节晚会上,百度赞助央视高达4000万元,百度被央视和谐了。
现在我来具体谈谈我对“谷歌涉黄”的个人看法。据猫扑网友曝光,“焦点访谈”中有位被采访的一位名为高也的大学生其实是中央电视台记者二组的在校实习生,肉友通过人肉搜索发现在其校内网中写了一篇标题为《你好,北京。再见,武汉》的网络日志,其中明确告知自己将去中央电视台进行为期3个月的实习。
这个名为高也的大学生,在采访中他这样说道:
我觉得这个黄色啊什么淫秽信息在网上那个毒害特别大,特别是经过一些像Google这样的链接,那种毒害特别大。就是我一个同学,他以前,就比较好奇这些东西,他就去点击黄色网站,搞得那段时间心神不宁。后来国家打击淫秽黄色网站,他就没上,那段时间好了。
结果后来他又发现,通过Google这些用户比较多的搜索引擎可以打开这些网址。然后又进入了这些黄色网站,链接特别多,导致又反复了。
以下是一位网友的恶搞:
我觉得这个淫秽书刊毒害特别大。就是我一个同学,他以前,就比较好奇这些东西,他就自己买淫秽书刊来看,搞得那段时间心神不宁。后来国家打击淫秽书刊,他就没再看,那段时间好了。
结果后来他又发现,通过新华字典这样比较权威的工具书可以找到这些淫秽的字词。然后就把这些字拼起来阅读,后来导致他又反复了。
呵呵,很牵强的说词。难道百度在中国的用户不多吗?百度中同样可以打开内容低俗的网站,在百度中输入“92”这个关键词,便出来一大堆色情网站,其中内容低俗不堪,以下是搜索截图(链接到的网站中的内容就不截了,太不堪入目了!):
很明显CCTV此次曝光”谷歌涉黄“动机不良,为何不曝光百度和其他搜索引擎或者网站呢?央视究竟出于什么目的,我们不得而知,但此次曝光”谷歌涉黄“确实引起不少网民的不满和对央视的各种猜测。
央视的话已经不能再信了,作为中国最有影响力的电视媒体,他确实应该自我检讨一下,为什么会遭网民频频的不满和猜测?顺便说一下,央视19日在”面对面“栏目中报道关于”神医“李培刚的节目已经删除。
日记一则 09年6月17日
有段时间没写关于自己生活的日记了,博客更新也不像去年那么频繁。发现自己现在变的懒了很多,下了班后不想做利用工作之外时间接到的业务,甚至电脑都懒得去碰,几乎下班后沉寂在模拟街机的游戏中。
前段时间刘晨军(刘鉴雨)从南昌放假来我这儿住了两天,期间陪他去火车站买票时顺便到新华书店转了转,想买本关于JAVA的书籍。4月初的时候买了一本“PHP完全自学手册”,之后发现书上知识少之又少,没看书自己倒先从网上的资料中自学会了,后来再翻看时感觉这本书的意义不是很大,所以关于JAVA的书籍也便没有买,过段时间再考虑吧,因为自己现在真的太懒了,懒得去学,需要自己给自己施加点压力了。
想要换工作,因为现在的工资无法保障我基本的生活,除了网站制作真不知道自己还能做什么,貌似山西没有好的网络公司,工资又都低的可怜。上个月新泰基的人QQ联系到我,因为一篇日志涉及其公司的利益,所以让我删除之前写的一篇日志,涉及的内容无关紧要,我也便答应了。后又有意让我去他们公司应聘,由于某种原因这件事儿被暂时搁浅。
6月初,谷歌网站管理员支持小组给我送来一份小礼品——带有 Google Logo 的笔记本和圆珠笔,上面还有 谷歌网站管理员支持小组 成员的签名祝福,在此感谢下他们。
ASP判断搜索引擎(bot,Spider,机器人,爬虫)的函数
最近用 PHP 做了一个 WAP 的站点,因为只想做个专注于 无线应用协议 的网站,所以没有做电脑客户端浏览的页面。但是为了让使用IE浏览器浏览网站的用户也可以浏览网站,所以就用了一个WAP模拟器的功能,以便使用IE浏览器的朋友也可以浏览到 WAP 站点中的内容。
我分别用了两个域名来指向两个不同的空间,IE浏览的站点其实是使用了一个模拟器模拟手机上网的方式来浏览WAP站点的,所以在输出时使用的JS。但我想让搜索引擎的机器人在浏览IE可以浏览的网页时也显示WAP站点的内容,因此,这个 is_bot 函数便产生了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Function is_bot() Dim user_agent,Re user_agent = lcase(Request.servervariables("Http_User_Agent")) Set Re = New Regexp Re.IgnoreCase = True Re.Global = True Re.Pattern = "(bot|crawl|spider|slurp|yahoo|sohu-search|lycos|robozilla)" is_bot = Re.Test(user_agent) Set Re = Nothing End Function If is_bot = True Then Response.Status="301 Moved Permanently" Response.AddHeader "Location","http://gjmwap.cn/" Response.End() End If |
这样,当搜索引擎在索引供IE用户浏览的网址时,程序则会根据判断来进行301永久重定向。
Sitemap警告——网址无法追踪
今天打开“谷歌管理员工具”发现Sitemap出现了“警告”,打开后看到详细信息:
当我们从您的 Sitemap 中测试网址实例时,我们发现有些网址重定向至其它位置。我们建议让您的 Sitemap 包含指向最终目的地(重定向目标)的网址,而不是包含重定向的其它网址。
HTTP 错误: 301 (永久重定向)
错误信息写的很清楚了,在我的Sitemap文档中,有的网址不是网站的直接地址,而是一个转向页面,而Sitemap中的网址,必须是访问网页的最终地址。奇怪,错误信息中的网址并没有使用301重定向,怎么会出现这样的错误呢?
原来我在Sitemap中有个网址写成了:http://zhangqian.me/gbook,而实际IIS对这样的地址自动永久重定向到http://zhangqian.me/gbook/上面,只是后面多了个“/”,问题就得已解决了。