2007年10月的存档

  • 23
  • 10月
  1. 看不见的之流量流量统计
  2. 看不见的之“希望泉录入系统”
  3. 看的见的之读者评论系统(本篇)
  4. 看的见的之侧边浮动导航

希望泉从曾经用过两套读者评论系统:
QuestionForm和互动力量

至今《希望泉》杂志订阅系统还是使用的QuestionForm。它是一个非常强大的在线评论及调查系统,有着可视化的调查表单编辑界面,可以非常方便地添加各种形式的问题,支持单选、复选、评级、留言等功能。并且有着完善的后台统计功能。功能上近乎完美。

但可惜的是这个系统后来收费了,免费的版本只能创建一个只有7个问题的问卷。致使原始的读者调查模板失效。只有那个《希望泉》订阅页面因为问题少还能继续使用。

后来我在互动力量找到了一个免费的网页评论系统。这个系统优点是只需要在网页中加入一小段JavaScript代码就可以为网页增加评论功能。我们的读者可以在看完文章之后直接在当页留下自己的感想。但缺点它的后台管理竟不提供任何对评论的查看和编辑功能,要查看和编辑评论必需要到评论所在的页面才行。对于有很多网页的《希望泉》杂志来说很不方便管理与反馈。这是技术部下一步需要解决的问题之一。

另外由于这个评论系统是直接用JavaScript把相关内容插入网页代码之中的,所以又遇到的网络应用中最让人头痛的问题——乱码!

另外在上一篇文章中了提到过了,自打“希望泉录入系统”上线后,希望泉杂志页面开始使用UTF-8编码。而这个评论系统编码是基于gb2312的。放在一起用的后果就是乱码。于是第15、17期《希望泉》我们手动把编码转换为了gb2312。

编码转换是一件相当费心的工作,虽然在Google一搜相关的工具一大堆,可以批量完成,但不得不提到的一点技术问题是UTF-8能表示的文字量比gb2312大得多,这样在UTF-8转换为gb2312是就会产生一些字符不能被正确转换的问题。转换出来的页面内会多出一些“?”,需要手动一个个去改,相当费时间。

目前技术部的Toly正在研究如何用技术手段,保持《希望泉》页面UTF-8的编码,且能正常使用这个评论系统。让我们期待她的成果!

  • 18
  • 10月
  1. 看不见的之流量流量统计
  2. 看不见的之“希望泉录入系统”(本篇)
  3. 看的见的之读者评论系统
  4. 看的见的之侧边浮动导航

之前希望泉一直是编辑部将稿件以Word文件的形式编辑好,提交给技术部,技术部统一用DreamWeaver将其转换为网页格式。但由于Word文档和网页之间的差异,转换过程中总会出现些小问题,尤其是段首缩进和一些特殊字符。这样技术部后期制作相当大一部分时间都是用在修正这些细节错误上了。

于是我在WordPress(一款著名的blog系统)基础上制作了一个“希望泉录入系统”。借助于WordPress本身很强大的后台编辑功能,在系统后台可直接完成文章的编辑功能,而前台可直接获取文章的html代码。再加上WordPress本身自带的文章评论功能,文章录入时有什么问题还可以很方便地进行反馈。

这套系统相对于原始版本的WordPress主要修改了两点
1.在数据库及文章结构上增加了一个“文章编辑”的属性。以适应《希望泉》文章的实际需要。
2.修改前台模板,使其能显示文章编辑。并且增加了一些“复制”按钮,可以直接将对应的文字复制到剪切版中。以节约后期编辑的时间。

另外不得不提的是,由于WordPress是一套基于UTF-8编码的系统,输出的文本信息也都是UTF-8编码的。所以在使用这套系统后,《希望泉》的网页编码也被迫从gb2312转换到UTF-8。这对“读者评论系统”造成了一定的影响,在下一篇文章中我会详细说一下这件事的。

对于这个“希望泉编辑系统”我为希望泉的编辑写了一个使用说明:
希望泉录入系统使用说明
发布在希望泉Google Group的Google Page上了。

  • 15
  • 10月
  1. 看不见的之流量流量统计(本篇)
  2. 看不见的之“希望泉录入系统”
  3. 看的见的之读者评论系统
  4. 看的见的之侧边浮动导航

学着Google的吴军,写个系列文章,分享一下自己的积累。我这里写个What’s behind Hope Spring,将自己在做《希望泉杂志》技术一年多来积累的东西整理一下。也希望对技术部其他同学有所帮助。

这一篇主要写的是《希望泉》页面中用到的流量统计代码。

在06年8月之后的《希望泉》页面代码里你总能找到类似以下的一段:

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
<script type="text/javascript">
_uacct = "UA-1351459-1";
urchinTracker();
</script>

这段代码使用的是Google Analytics的统计服务。只要申请一个Google Analytics的帐户,在页面上放置这样一段代码,就可以实现相当完善的流量统计服务。每天的访问量多少、读者都是来自哪个地区的、他们都看了哪些页面、读者是从哪个网站找到《希望泉》的……在Google提供的控制台上,这一切都一目了然。

另外,如果你对比一下各期《希望泉》这段代码出现的位置,就会发现最近几期《希望泉》中这段代码是放在页面最下端的,而以前很长时间这段代码是被放在代码头部head标签之中的。这主要是为了改善读者体验:

对外部javascript的引用如果出现在head之中,浏览器(尤其是IE)会试图在渲染页面之前加载这个外部文件,而Google Analytics的服务器在国外,加载速度比较慢,于是降低页面的显示速度;而把它放在接近</body> 的地方,页面在加载这个外部文件之前就已经渲染地差不多了,即使没有执行这段代码,他们也已经可以阅读其中的文字了。

  • 12
  • 10月

今天终于把《代码大全》读完了。读这本书的感觉就一个字——爽!

具体对这本书的赞美之辞我就不重复了:http://www.cc2e.com.cn书的中文网站上有很多的。

作者强调自己这本书是在讲软件构建的技术。但就我的理解,这本书从头到尾的主题就是一个:为人编程!

正如作者所言,人的智力是有限的,而软件开发是一个庞大的智力产品开发过程。人的大脑不足以一次完全驾驭这一过程。于是为了完成这一复杂的开发,我们必须想办法将这个大的问题拆分、简化到人类大脑可以完全理解并且能用计算机正确实现它的地步。而且为了确保软件的正确性,在编程时我们要尽力做到要让人易于理解。以方便调试和维护。

为了达到这个目标,我们发明了子程序,提出了对象对象的概念,在编码时要遵循一定的格式,让代码尽可能地易于人的理解。于是乎便到了为人编程这个中心。

当然,为人编程也是有些代价的,为了让程序更便于人的理解,很多时候我们牺牲了一些代码的运行效率。在尽可能提高程序的正确性时,我们消耗掉了越来越多的硬件成本,这便产生了安迪-比尔定理 (Andy and Bill’s Law)。但不管怎样,我们最需要的还是软件的正确性,而且借助于现在运行效率低一些的高级语言,我们可以在更短的时间内开发出更正确的软件来,这难道不是一种效率的提升吗?

为人编程,实为王道!

PS:将Code Complete翻译成代码大全可能是这本书唯一的败笔。害得我每次对没听说过这本书的人都得解释半天这是本到底讲什么的书…

  • 08
  • 10月

今天上网搜索jseclipse的文章时无意发现了一个好玩的东东:Snap Shots。作用嘛,把鼠标指向下面的链接就知道了:

http://www.snap.com/

怎样,帅吧*_^,其实只需要在页面中加入那么一行javascript代码就OK了:

<script type="text/javascript" src="http://shots.snap.com/snap_shots.js?ap=1&amp;key=208846eadce902c91c9ef7a3843f1b00&amp;sb=1&amp;th=ice&amp;cl=0&amp;si=0&amp;po=0&amp;df=0&amp;oi=0&amp;link_icon=on&amp;shots_trigger=both&amp;lang=en-us&amp;domain=www.seebit.org&amp;as=1"></script>

想要的话自己去申请一个吧。

所有标签:.net Ajax Java javascript Linux map MySQL RSS TD-SCDMA Ubuntu vim web Win7 乱码 基础知识 备份 奥运会 希望泉 性能 缓存 编程