前段时间由于 Tan-studio 提供的服务器出现了问题,导致超过一周的时间不能正常访问,于是切换到了 Godaddy。购买的 Godaddy 豪华版,空间和带宽都不限。新加坡线路,访问速度虽不及香港的空间,但还算可以。
再次感谢 Tan-studio 之前免费提供服务器。
分类目录归档:维护手册
自豪的使用 WordPress
由于近期备案查的严,原本所在的服务器被墙了,所以要更换新的空间和程序。
我也自豪的加入了 WordPress 的阵营,我还是一个新手。经过一上午的努力,把原先的 ASP 程序导向了 WordPress,对已经意识到的一些 URI 做了重定向。
现在基本保证原程序中的数据大部分可以使用,但不排除一些问题,例如:附件的显示、UBB代码的解析、CODE语法的解析、URL错误,和一些内容不可浏览的问题。
主题的话先使用 WordPress 默认的主题,接下来的时间再慢慢的把未完善的功能完善。另外,感谢 Tan Studio 提供空间。
加入“面包屑”和Google +1按钮
细心的朋友应该可以发现,博客有的小的变化:增加了“面包屑”(位置导航链接)和Google +1按钮。
经过对一些网站的对比发现,“面包屑”不仅可以提高用户体验,还可以使谷歌更加清晰的了解网站的链接结构。
昨天晚上,浏览新闻时发现Google +1按钮已经对第3方网站开放了,所以今天就加到了自己的博客中。在国内的用户可能会经常出现无法显示的现象,而且目前 +1 按钮只会在英文的搜索结果中才会出现。
但谷歌提到“谷歌在确定您的网页与用户查询之间的相关程度时,会适当地参考您的朋友和联系人发表的‘+1’内容。这只是谷歌用于确定网页的相关程度和排名的多种依据之一,我们会不断地调整并完善相关算法,以便提高整体搜索质量。与所有的新排名因素一样,我们会谨慎启用‘+1’并积极了解此类因素对搜索质量的影响。”
所以我认为加入“+1”按钮还是有好处的。
新的博客主题
前段时间,为了考验一下自己的对 Java 技术的了解,便用 Java EE 写了一个博客程序,其中用的样式就是现在博客使用的样式,这个样式是我从 Matt Cutts 的博客下扒下来的,此乃使用的是“照猫画虎”之术。对于我来说“照猫画虎”甚是简单,但自己做一个不错的主题,比登天还要难。
Java EE 版的博客完成后,发现代码甚是凌乱,虽然在其中用到了一些 MVC 的框架,但感觉与 Model 2 还相差甚远。
想要使用新的博客程序,但考虑到环境的搭建和在使用中可能会出现各种各样未知的问题,毕竟是一个很不成熟的程序,于是便放弃了使用。
又想要使现在的博客换个样子,于是便采用了这套新的主题。之前的 js 代码甚是混乱,所以把 js 的代码也换了。
评论部分也有了小小的改变,采用返回 json 格式信息的方法来判断和显示评论的发表情况。
真正的适合个人博客的域名
没错,我的博客启用了新的域名:zhangqian.me!
为什么选择.me域名?me就是我,而且.me域名是一种新推出的域名,所以资源非常多,更重要的是价格也比较合适,godaddy 的注册价格是$8.99/首年,折合人民币60元左右。查了一下万网的注册价格为 320元/年。
第一次在 godaddy 购买域名,是通过 alipay 支付的,从购买到解析没有遇到什么问题。现在已经把旧的域名做了301重定向,在谷歌网站管理员工具中也做了相应的调整,应该很快谷歌中就会重新索引,之前的域名 zhangqian.me 还将继续使用。
望交换了友情链接的朋友对链接更新一下。
震撼发布:Flex与Blog整合
很兴奋,昨天一整天都在看教程,不过知识点太多,还没有好好看,就开始做这个应用了,一边找资料,一边开发,花了整整一天的时间才做完。
这个实例还很不完善,现在只可以浏览博客中最新的20篇日志以及相对应的评论,今后会增加评论发表功能以及文章列表分页等功能。
有些网友可能第一次听说Flex,在这里以我的理解来简单介绍一下什么是Flex:
Flex是Adobe公司提供的一种基于Flash Player运行的程序。Flex使用Action Script 2.0作为编译界面和程序编译语言,她用MXML来对结构和内容进行定义。Flex发布到互联网上的应用程序其实就是一个Flash文件(.swf文件),但用Flex来设计的程序功能和界面美观都比Flash强大很多,而且比Flash更容易操作。
像现在网上已经有很多用Flex开发的网页程序,估计“豆丁网”就是用Flex开发的,如果用Flash做这样的应用实在太复杂了。
也有网友在一个简单的Flex实例演示这篇日志中发表评论说想要下载教程,我这个教程是很偶然的机会从朋友的U盘里得到的,是郑岩峰老师发布的一个视频讲座,想学习的朋友可以通过自己搜索一下。
PS:今天下了一整天的雪,天气开始变冷了,大家多注意身体。
这是一篇用Windows Live Writer发布的日志
用WLW好像给我的感觉更加专业:(,作为主流的博客功能,我的博客当然不能少了这么优秀的功能!
通过对XML-RPC协议的查看和对WP的XML-RPC API的研究,在自己的博客中也写了一个相应的WLW接口。WP的API功能算是比较全的了,可以设置关键字、摘要、自定义静态日志名、分类、发布日期等,所以我就选用这个API。
总体来说还算比较简单,现在只支持发布日志,其它功能也用不着,所以也不打算增加功能了。发布还存在小小的一点问题,发布成功后返回的应答请求错误的,在WLW总是显示“从日志服务器接收的对 metaWeblog.newPost 方法的响应无效”,暂时还没有找到什么原因。
WLW是非常不错,但相比我强大的后台发布还是有些逊色,当然这是从SEO的角度说的。
这只是一篇用来测试WLW的日志。
将Twitter整合到博客
博客中加入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 |
<code class="vb">'发送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</code> |
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 |
<code class="vb">'接收和处理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</code> |
以上两段代码便是用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的代码一直没有使用。这次改动还算顺利,虽然用了中午的时间,但改动后的效果还算不错。