——此文的“上半身”完成于15日,“下半身”完成于24日。太久未更新,灰常抱歉。谨以此文,献给我最敬爱的三位八卦奖得主!
杭州lib2.0会议,在现场,上台的第一句话我很想说:“这是我的第一次,没经验,希望大家多包涵。”或者很想说:“我把第一次献给你们。”不过鉴于图林八卦金奖银奖铜奖在台上台下都爆出了超强战斗力,游园更是以一句“我很悲哀”将八卦提升到一个不可企及的高度,我唯有生生地把这些话咽回了肚子里。
第一次总是生涩的,第一次总会痛的,第一次总要留下遗憾的,当然第一次总是难忘的。杭州的会议,是我第一次做报告。面对着这么多牛人这么多偶像,当然也是面对着这么多帅哥这么多美女,我恍如梦中,紧张得连紧张都忘记了。照本宣科,战战兢兢,只求在十分钟内把内容读完,根本没考虑到语速快慢、听众反应,更别说什么顾盼生辉、仪态万千了。对比起新涯师兄的雍容大度,斋主的才思敏捷,keven的儒雅风范,那不是加减乘除的差距,而是几何级数的鸿沟。
那么,我要记录一下这次论剑2.0的那些人、那些事,以我的第一次开篇,我认为是很恰当的。
第一次,准备是不足的。虽然知道,就像新娘子总要入洞房一样,这一天总要到来,但准备仍然是不足的。我是10号早上十点多的飞机到杭州,3号那天找了PPT模板,并初步拟定了PPT大纲,9号一早开始准备PPT的内容,并把相关的程序实现一遍。ppt内容完成得很顺利,但在程序实现方面,却被“ajax跨域问题”打个措手不及。一直以来,对这个问题都不甚在意,真正实现程序的时候,才知道这个问题对实际应用的影响是如此巨大。当我把这个问题解决离开办公室时,已经是10号凌晨4点了。中途曾经想过敷衍过去,但深知放空炮是多么的可耻;也曾想过放弃,但更害怕面对放弃。
对于一个技术话题而言,是不能想当然的,一定要有数据和实例支撑——从这点上来看,有如第一次XX,再怎么提前的充分的准备都不算过分。
第一次,重点是丢失的。没有考虑到,这是一个小的报告,时间短,与会者注意力有限。我没能在第一时间把问题和重点抛出,吸引与会者的注意力。当我花老半天的时间介绍完ajax这个完全是技术性的内容而没有提及任何与大家熟悉的内容时,大家的潜意识里可能已经有所抵制,因为,知道ajax的没必要听,不知道ajax的不用听。现在我想,大家并不关心这个东西是什么,而是关心这个东西可以用来干什么,可以解决什么问题,达到一种什么样的效果。
企图滔滔不绝地向所有人解释清楚一种技术是什么东西,这是技术人员的通病。有如第一次XX,无数实践证明,直奔重点才是最有效的。
第一次,节奏是失控的。准备内容的时候,曾大体想到过哪里简略些,语速快些,哪里详细些,语速慢些;也想到过哪里语气重些,感情丰富些,哪里幽默些,表达随意些。然而实际上根本不是那么一回事。没有勇气站起来面对观众,只躲在显示器后面读,读,读,眼神也只敢在人群上空飘。整个报告过程,毫无节奏可言,只想着快点完成,节奏完全是失控的。
曾以为自己可以一板一眼,轻松自如地随着自己的想法来表演,殊不知这是天才的本领,或是百般历练下的习惯。有如第一次XX,想象总是美好的,节奏却是控制不了的。
第一次,细节是忽略的。重点都把握不了,细节自然更是照顾不到。在讲稿中,还专门列了几页代码分析,而且详细地把注释加上,以为可以讲解一下。然而在台上一讲,讲到那里的时候,忽然发现,讲这些代码几乎没有什么意义。不用关心代码的人,根本不会听,需要关心代码的人,给个代码下载的链接就好了,多此一举了。而真正需要提及的细节,诸如资源整合的具体体现,却被忽略。
细节很重要,但不是所有的细节都重要。提及一些不相关的细节更是一种失误。有如第一次XX,那时你还在意外面是不是下雨,就有可能大煞风景了。
第一次,时间是仓促的。也许是因为有了时间限制,时间更显得仓促。虽然举了黄牌,槐师还是于心不忍手下留情,我也因此逃过一劫~当然我那时已打好主意,就是举了红牌,也要死皮赖脸不讲完不下台。所以,重庆lib2.09也许可以期待——类似于”搞笑诺贝尔奖”,找个四五岁的小女孩,用脆生生的地道的重庆话——把像我这样超时的的撵下去~
欢乐的时光过得特别快,其实兴奋和紧张更是如此。有如第一次XX,手忙脚乱的十分钟,太短了。
第一次,发生了。第一次,过去了。下一次,就不是第一次了。下一次,就不能说没有经验了。如果下一次,还是“Ajax在图书馆的应用”这么一个题目,我想我应该像“下半身”这么说:
Ajax在OPAC资源整合中的应用
一、OPAC对比:
1、一般的OPAC页面:只显示书目记录,没有办法在同一页面上提供随书光盘、电子图书、电子期刊等相关馆藏的信息,不能提供相关的下载链接。读者如果需要查找相关的馆藏资源,必须登陆更多的系统(如随书光盘系统、电子图书系统,期刊导航系统等)。馆藏资源是分散的,不利于读者发现、读者检索和读者使用。

由于OPAC系统不开源,我们无法直接修改,所以以往的整合方式,往往通过修改856字段实现,工作量大,不易更新。
2、整合后的OPAC页面:可以做到在OPAC检索结果页面中,同步显示与该书相关的随书光盘信息(如有光盘,提供下载链接)、电子图书信息、电子期刊信息,甚至可以提供google的检索链接、主题相关的最新学术论文信息等。
以Ajax方式整合,可以避开绝大部分难题,只要能在相关页面模板中嵌入几行html代码,就可以一步到位,轻松地整合更多的分布式数据。
1、以随书光盘为例,介绍如何实现:
首先是修改OPAC模板文件,增加两段脚本引用,这两段脚本是引入开源的ajax框架prototype和跨域插件transport.js。
接着还是修改OPAC模板文件,再增加一段脚本引用,这段脚本主要作用是通过document.getElementsByTagName()、document.getElementsByClassName()和innerHTML分析用户正在浏览的网页,判断该书是否有光盘,同时获取ISBN号;然后通过xmlhttprequest对象将ISBN号跨域发送到随书光盘服务器,并接收随书光盘服务器端返回的数据,无刷新地更新当前页面。
最后是编写随书光盘服务器端的程序,该程序通过接收ajax传递过来的参数,执行随书光盘系统的数据库检索,并以json格式将数据返回给用户浏览的页面。
2、ajax随书光盘的流程图:
三、整合更多的的内容:同样的原理,可以整合到更多的分布式馆藏资源,如磁带、电子图书、电子期刊、图书封面、标签、书评等等。
四、Ajax在图书馆中更多的应用:除了在OPAC中整合资源,应用ajax,也可以在门户等多种web应用中进行分布式资源的整合。同时,应用ajax技术,还可以在资源揭示和用户体验上面,给用户带来更多的全新体验。例如让用户自定义个人门户的内容显示,用户拖曳等功能。
五、推荐阅读:
3、杭州会议,精彩下载:
Tags: Ajax, lib2.0, web2.0, 图书馆2.0, 浙江大学, 讲演
引言:
用Aajx来实现嵌入式Tag系统,有这个想法已经很久了。“嵌入式”是指在目标页面嵌入一个脚本文件,通过该脚本文件,实现相关数据抽取、与服务器通信、页面重写的实现方式。这样的好处显而易见——目标系统可以是数据封闭的,目标页面是无需进行大幅度修改的,服务器端是平台无关的,从而部署是灵活的。
这将作为我学习Ajax和RoR的题目,该系统实现后开源。
这个题目会向Millennium
OPAC整合一样,分成系列来写,预计有以下内容:
1、系统功能分析;
2、数据结构设计;
3、应用prototype框架实现嵌入式脚本的编写;
3.1、Ajax框架 prototype基本内容;
3.2、页面分析与信息抽取;
3.3、页面重写;
3.4、与服务器通讯;
4、使用Rails on Ruby来实现服务器端程序;
4.1、Tag更新及数据返回;
4.2、Tag云图;
4.3、Tag检索;
4.4、个性化Tag及其分享;
4.5、统计;
5、其他语言平台的服务器端程序;
5.1、使用Java来实现;
5.2、使用Asp来实现;
5.3、使用PHP来实现(本人不熟PHP,征求他人参与)
6、其他的一些讨论,比如其他的Ajax框架,还有意见整理等等。
Tags: Ajax, tag
友情敬告:开放是出路,服务是前途!
这两天本想继续写Ajax,回应一下
K师的博文和清心的提问,但下午碰到了件事情,之后偶不得不将之前所写的“Millennium系统OPAC整合”系列文章做出一些改动——主要是将一些被某些人视之为神圣的东西,应要求供奉起来。
但说实话,神圣么,偶不觉得,不过《国产007》的司令说了:即使是一张厕纸,也要好好对待的。因此,偶应要求去掉或改写了相关内容:如相关屏幕截图(即使是偶们馆的哦)、相关参数内容及其他。如果有朋友需要进一步交流,请先联系他们,取得授权,否则偶们只能偷偷摸摸的哦~特此公告,嘿嘿~
在
整合之三:构建自己的WebBridge一文中,原本思路是采用系统开放的参数,来提交到第三方服务器,从而实现相关功能。那么,如果系统没有这些参数,或者说偶觉得这些参数过于恶心,不用,还能不能实现我们想要的功能呢?
能!
这就是Ajax。
Ajax伟大的地方 在于其所带来的Web
应用客户端化,在于其提供的异步交互颠覆了传统的“提交/等待/
重新显示” 模式。
那么对于整合之三一文,偶在这里提出一个更好的解决方案,该方案,具有更广泛的应用价值,也就是说,本方案已经不再局限于Mllnnm系统了。
第一节:得到参数
让我们回头看看整合之三一文中所隐藏掉的东西,那是告诉我们如何获取参数的一段话。我们在那里,绕来绕去得到了一个检索词,和一个ISBN号,从而实现参数的提交。
现在我觉得这种方式很笨,我决定,通过Ajax来取得我想要的东西——最正规的方式是通过Javascript脚本将当前用户浏览器的DOM文档分解,使用getElementsByTagName()逐一分析并得出任意页面上的值。
当然,也有些捷径。
一般来说,大部分OPAC系统的参数提交,都是通过GET方式进行——我们可以通过看看浏览器的地址栏上是否带有一串很长的参数得出判断。这一串地址,我们要得到它,可以通过window.location.href、window.location.search等等方式获取。获取这串URL之后,我们可以发现,该URL里面包含了许多丰富的信息,我们所需要做的只是进行简单的文本分析。
比如,通过关键词检索得出《thinking in java》一书的书目详细信息页面Url是:
(该URL不需授权吧?有点怕怕呢……)
将多余的信息去掉,我们可以得出:
SUBKEY=thinking%20in%20java
这其实就是用户提交的关键字。
除了URL,我们还可以用FORM,像在Millennium系统的书目信息页面,仍然提供了检索框,方便用户进行进一步检索,对于该检索框的值,我们可以通过document.form.searcharg.value语句来获取,当然,这是不正规的写法,正规写法是:doucument.getElementsByTagName(”searcharg”).getAttribute(”value”)。
如果说URL和FORM中没有我们想要的值,如本例子中的ISBN号,那么我们只有老老实实的分析DOM,并找出
ISNB号所在的单元格,再通过innerHTML()属性获取相关值。
而上面这一切,都只是通过一段脚本,在用户浏览器上执行的。
那么得到了参数之后,接下来就要和服务器通讯了。
第二节:异步通讯
用户在继续他的操作,而浏览器已经在不打扰用户的情况下,跟我们的服务器通讯了。
这就是XMLHttpRequest对象。
XMLHttpRequest对象可以通过脚本创建,并且可以给服务器发送HTTP请求,当然,毫无疑问的它能接收服务器的反馈。我们通过以下语句创建一个XMLHttpRequest对象:
xRequest=new
XMLHttpRequest();//创建对象,实际上要复杂一些
同时,我们通过onreadystatechange定义它的回调函数,然后将相关参数传送至服务器。
xRequest.onreadystatechange=onReadyState;//定义回调函数
xRequest.open(HttpMethod,url,true);//打开http访问
xReqeust.send(params);//传送相关参数
而在在服务器端,我们接收用户提交的参数,并执行数据库操作,完成后,将相关信息反馈回客户端浏览器。反馈数据的形式可以是txt、html、甚至是JavaScript数组等。
第三节:更新页面的某一部分
客户端浏览器通过侦听回调函数,确定服务器处理完请求后,就可以通过createElement()等方法来实现文档的修改,把相关反馈信息,更新到当前文档即可。代码…..略……
以上三节内容,已经给我们揭示了一个很好的方向,对于一些封闭的WEB应用,我们可以通过Ajax,实现很多原本不可实现的事情。大家一起发挥想象吧~
总结:
呵呵,写着写着,就变成写Ajax了,其实Ajax是非常有用的工具,随着用户“我的地盘我做主”的吼声越来越多,相关技术肯定会不断涌现。保守,只能被淘汰。软件不是什么值钱的东西,服务才是。
Tags: Ajax, millennium, OPAC, 开放
因为无知,所以进步,只有努力,才能专业——以此自勉。
对于近乎封闭的OPAC系统来说,AJAX是把利剑。为什么这么说呢?
OPAC系统失败之处:
1、绝大部分基于自有web解析服务器,web页面程序不开放,无法进行数据层面的操作和修改;
2、绝大部分基于封闭的数据库,用户无法直接访问数据库取到相关记录;
3、几乎没有支持用户开发需求的第三方接口。
AJAX的锋利之处:
1、运行在客户端浏览器上,与OPAC平台无关。只要能在OPAC页面中嵌入相关脚本,即可实现相关功能;
2、可以通过DOM操作,获取用户当前页面上的所有信息——包括书名、ISBN号、索书号等等;
3、可以在不影响用户操作的前提下,通过xmlhttprequest对象,向某一服务器发送请求,并得到反馈数据;
4、可以通过DOM操作,无刷新改变当前页面的结构与内容。
由上面的对比,可以看到,要做OPAC资源整合,AJAX是绝妙的武器。那么操作AJAX的基础是不是很简单呢?
是的,下面是一些最基本的操作方式,但这些基本的操作方式,已经足以让我们完成80%的工作。
首先,假设有这么一个理想的页面:
sample.html
<html>
<head>
<title>Ajax in
action</title>
</head>
<body>
<table width=”200″
border=”1″>
<tr>
<td>书名:</td>
<!–此处定义了td标签的id–>
<td
id=”t”>Ajax in Action</td>
</tr>
</table>
</body>
</html> |
那么我们要嵌入脚本,是很容易的事情,我们可以把脚本直接写到里面,也可以通过外接脚本文件的形式嵌入,例如,在</head>标签之上加上一行:
<script
type=”text/javascript”
src=”ajax_sample.js”></script>
二、页面信息的读取:
脚本是AJAX的核心,只有通过脚本,才能实现AJAX的操作。
我们现在要实现ajax_sample.js对sample.html页面信息的读取,确切的说,是要得到该页面上的书名。
ajax_sample.js:
window.onload=function() //当网页加载后运行脚本
{
//通过id获取当前文档的书名单元格对象
var
objTitle=document.getElementById(’t');
//输出对象内容
alert(objTitle.innerHTML);
} |
通过document.getElementById()方法,我们分别获取了sample.html网页中的书名单元格对象,并通过innerHTML属性得到了具体的值——“Ajax
in
Action”——这样,我们初步实现了文档内容的分析操作。
当然,sample.html具有一定的理想性——结构清晰、具有id属性——目前OPAC系统里面,我相信大部分页面的HTML是极其恶心、惨不忍睹的,但是这并不能阻挡AJAX的步伐,除了getElementById()方法,我们还可以通过getElementsByTagName()来实现节点的搜索。
三、发送请求到服务器:
好了,我们顺利的分析了文档的内容,那么在这里首先问大家一下:分析用户文档的意义何在?
意义在于,我们要知道读者正在浏览的信息,比如是哪一本书,这样我们才能针对读者的行为给他们更多的惊喜。
在本例中,得到了书名之后,我们就可以通过xmlhttprequest对象,将书名传送到专门的服务器,由服务器去实现更多的功能。
ajax_sample.js:
window.onload=function() //当网页加载后运行脚本
{
//通过id获取当前文档的书名单元格对象
var
objTitle=document.getElementById(’t');
//输出对象内容
//alert(objTitle.innerHTML);
//与服务器通讯
sendRequest(”[服务器处理程序的URL]“,”t=”+objTitle.innerHTML);
}
function
CreateXmlHttpRequest()//创建XmlHttpRequest对象
{
var xRequest=null;//定义
if(window.XMLHttpReqeust)//支持XMLHttpReqeust对象
{
xRequest=new XMLHttpRequest();
}
else if(typeof ActiveXobject !=”undefined”)//支持ActiveX对象
{
xRequest=new
ActiveXobject(”Microsoft.XMLHTTP”);
}
return xRequest;//返回
}
function
sendRequest(url,params)//发送请求函数
{
HttpMethod=”GET”;//传送方式
var
sRequest=CreateXmlHttpRequest();//创建实例
if(sRequest)
{
sRequest.open(HttpMethod,url,true);//打开http访问
sReqeust.send(params);//传送相关参数
}
} |
四、服务器的反馈程序:
通过上面的步骤,已经实现了客户端将数据传送到服务器,这时,服务器可以做的事情很多了,比如,检索一下有没有电子图书,并向用户返回相关信息。
ajaxsample.java
|
//yuanxinz.2007.05.09
package ajaxsample;
import java.io.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.servlet.*;
import java.servlet.http.*;
public class ajaxsample extends
HttpServlet
{
public void init(ServletConfig config) throws
ServletException
{
//…..
}
protected void doGet(HttpServletRequest
request,HttpServletResponse response) throws
ServletException,IOException
{
String s =
request.getParameter(”s”);//获取参数
//执行电子图书数据库检索
……
rs = pool.getRs(”select * from
表 where 题名 like ‘%”+s+”%’);
try{
if(rs.next())
{
rs.previous();
//将结果输出为文本
PrintWriter
out = response.getWriter();
response.setContentType(”text/plain;charset=gb2312″);
response.setHeader(”Cache-Control”,
“no-cache”);
response.setHeader(”Pragma”,
“no-cache”);
String
outstr=”";
int
i = 0;
while(rs.next())
{
outstr
= outstr + rs.getString(”题名”) + “|” + rs.getString(”url”) +
“\n”;
i++;
}
out.println(outstr);
out.close();
}
else
{
response.setStatus(HttpServletResponse.SC_NO_CONTENT);
}
//关闭数据库连接之类的….
…….
}
catch(SQLException e)
{
e.printStackTrace();
}
}
} |
上面的servlet在接到用户请求后,将进行相关检索,并返回一个文本:
Ajax in Action|http://******
……
Ajax in action
**|http://*****
AJAX可以返回多种类型的数据,包括html、XML文档和javascript脚本等等。
五、接收反馈数据,并修改当前文档:
现在一切又回到了用户浏览器,首先,我们要通过定义回调处理函数,来确定服务器已经将相关的数据返回。
ajax_sample.js:
window.onload=function() //当网页加载后运行脚本
{
//通过id获取当前文档的书名单元格对象
var
objTitle=document.getElementById(’t');
//输出对象内容
//alert(objTitle.innerHTML);
//与服务器通讯
sendRequest(”[服务器处理程序的URL]“,”t=”+objTitle.innerHTML);
}
function
CreateXmlHttpRequest()//创建XmlHttpRequest对象
{
var
xRequest=null;//定义
if(window.XMLHttpReqeust)//支持XMLHttpReqeust对象
{
xRequest=new XMLHttpRequest();
}
else if(typeof
ActiveXobject !=”undefined”)//支持ActiveX对象
{
xRequest=new
ActiveXobject(”Microsoft.XMLHTTP”);
}
return
xRequest;//返回
}
function
sendRequest(url,params)//发送请求函数
{
HttpMethod=”POST”;//传送方式
var
sRequest=CreateXmlHttpRequest();//创建实例
if(sRequest)
{
//这里调用回调
sRequest.onreadystatechange=onReadyState;
sRequest.open(HttpMethod,url,true);//打开http访问
sReqeust.send(params);//传送相关参数
}
}
function
onReadyState()
{
var redy=sRequest.readyState;//获取sRequest实例的状态
var data=null;
if(ready=4)//完成状态
{
data=xRequest.responseText;
}
else
{
data=”正在读取相关数据….”
}
} |
用户浏览器收到服务器反馈的文本后,就可以通过createElement()等方法来实现文档的修改。
ajax_sample.js:
window.onload=function() //当网页加载后运行脚本
{
//通过id获取当前文档的书名单元格对象
var
objTitle=document.getElementById(’t');
//输出对象内容
//alert(objTitle.innerHTML);
//与服务器通讯
var
empty=document.getElementById(’empty’);//定义一个空节点
sendRequest(”[服务器处理程序的URL]“,”t=”+objTitle.innerHTML);
}
function
CreateXmlHttpRequest()//创建XmlHttpRequest对象
{
var
xRequest=null;//定义
if(window.XMLHttpReqeust)//支持XMLHttpReqeust对象
{
xRequest=new XMLHttpRequest();
}
else if(typeof
ActiveXobject !=”undefined”)//支持ActiveX对象
{
xRequest=new
ActiveXobject(”Microsoft.XMLHTTP”);
}
return
xRequest;//返回
}
function
sendRequest(url,params)//发送请求函数
{ |
Tags: Ajax, millennium, OPAC
看了超平老师的《
“有用”才是硬道理》,忍不住想说说自己这么一段时间以来对于Web2.0的一些想法。
首先,绝对不能为了新技术而技术,技术不是用来炫耀的,如果新技术不能更进一步地给用户带来方便,那么新技术的应用将适得其反。在这一点上,我强烈同意超平老师的“替代性”论断。
其次,从2.0出现,我就在想,哪些具体的技术是可以应用到现行的图书馆系统中,并且真正能够给图书馆和用户带来美妙改变。目前,小钟认为有以下几个地方:
不过,在此之前,我需要阐述一个观念:我们要把自己当成商家,把资源当成产品,把读者当成顾客,我们所努力去做的,就是尽全力推销我们的产品!Web2.0的出现,只不过是给了我们更多的推销手段。
第一当然是RSS订阅,做图书馆的新闻订阅吗?不,那没有多少意义。要用RSS来做新书通报,针对不同学科和兴趣的读者,生成个性化的RSS文件,供读者订阅。举个最简单的例子,比如,小钟关心图书馆学期刊的状况,那么通过我定制的RSS文件,我可以很快了解到:哦,今天新的一期《大学图书馆学报》上架了。
第二是WIKI,WIKI的好处在于集众人之智慧,去完善一篇文档。那么,对于图书馆的帮助文档中心来说,采用WIKI模式来实现,是最完美的解决方案了!例如对于CNKI的使用指南,通过馆员、读者共同的完善,我想,这个使用指南,绝对是最经典的。
第三是AJAX,AJAX最大的用处在于异步传输和在客户端修改文档。应用AJAX,可以做的事情非常的多,举个最有用的例子,我们的OPAC系统,往往是很难更改的,但应用AJAX,我们可以在客户端(即用户的浏览器)上,通过分析当前文档结构,获取相关参数(如题名,ISBN号),然后以异步传输的方式将参数传至专门的服务器,由服务器端实现各类资源(比如随书光盘、电子图书、电子期刊、甚至GOOGLE等)的检索,检索完成后再以XML或者文本或者脚本数组的形式返回给客户端,最后由客户端无刷新修改当前文档,创建新的文档内容,让读者在OPAC当前页面中,可以获取到与其检索相关的更多资源——这就是Web2.0时代的资源整合。
而AJAX可以做的事情远远不止这些,比如要实现随时随地的解决用户的困惑,给用户输入前提示,针对用户检索词给用户检索建议,都可以通过AJAX,得意完美的实现。
第四是TAGGING,针对图书馆的各类资源,都可以开放TAGGING功能,并且提供检索入口,这都是很容易实现的模块。当然,如果要在OPAC中针对书目记录开放TAGGING功能,则需要AJAX的帮忙。
第五是推送,推送用到的不一定是2.0的技术,却体现了2.0的精髓,结合读者的借阅信息、学科信息、阅读兴趣等等,通过EMAIL、网站短消息、手机短信等方式,把个性化的服务内容主动推送到读者手中。
第六是强调用户体验,做一些更美观的页面,通过CSS,针对用户的操作行为,给出反应,比如改变一下背景颜色等等,告诉用户你知道他在做什么。这样的改变,虽然小,很多馆可能不屑于去做,但实际上这才是2.0的精髓。
第七才提到BLOG,说实话,小钟认为图书馆架设BLOG纯粹是在扯淡!当然,事情没有绝对,如果BLOG用的方向对,比如用在学科专家服务上,可能会形成图书馆的重要特色资源,而如果仅仅是泛泛而用,小钟绝对会毫不犹豫的批判!所以,这第七点,小钟不看好,因此杀掉!
以上六点,是小钟认为的当前Web2.0可以给图书馆带来积极改变的地方。小钟乃后学晚辈,本科专业课成绩更是惨不忍睹,一家之言,欢迎补充,更欢迎向我开炮!
回万二:
虽然blog可以增加互动,或者说由馆员来写博客提升图书馆人气,但小钟还是认为,这样的营销手段效果是有限的。
首先,读者不一定鸟你的博客,即使像斋主那样的大家来操刀,也仅仅是一部分读者有兴趣读上一读,笑上一笑而已。
其次,现在博客已经非常普遍了,对这个东西感兴趣的读者,基本上都有博客了,要说服他们换个地方,其实并不容易。比方说吧,偶现在搞个博客网站,功能绝对不比新浪的差,邀请大家过来,大家会过来吗?不会,因为麻烦。
最后,如果架设博客,不管是馆员的也好,读者的也好,都需要人气才能延续的,不要小看管理、维护、造势一个博客所需要耗费的人力物力,图书馆目前做得起吗?其实我们看到的更多是把站点搭建起来后,就由它自生自灭了。
其实,回到最根本的一点,读者的需求,他们向图书馆要的只是更好的找到他们所需要的资源,而做好资源的揭示,才是图书馆的根本职责。当然,如果有些馆有钱没处花,吃饱没事干,可以搞搞,小钟可以去捧捧场。
以合适的身份,做合适的事情,这是这个世界进步的基础。
回薄学多毛:
由馆员去开博客,对图书馆的服务进行宣传,看似个好点子,但实际上会起到一个弱化图书馆网站的功能。有什么东西我们认为放在馆员博客上会比放在图书馆网站上更有宣传效果的吗?如果有,那么我们应该首先考虑,我们的网站是不是要做一些改变?
其实,我也想塔个博客,主要面向教师服务,让他们通过博客与学生进行更多的互动,有助于教学相长,并且由其博客,可以为图书馆形成一定的资源,但最终还是不了了之。
回后山草地人
恩,后山草地人讲得也有道理,但小钟的本意是在于,很多东西,其实并不一定要用blog才是最好的实现方式,或者说,blog本身不具备完美的替代性。比如您说的台交大的实践,小钟就认为,这个评论功能,以ajax方式直接写入OPAC更有效!这样,对读者而言就是一套系统,而不是另外一套系统了。要知道,读者如果在检索图书的时候看到图书的评价,会很高兴,但把检索图书和图书评价独立开来,没有联系,检索图书的时候看不到评价,看书评的时候看不到图书的记录,就不是很妙了——这个通过blog方式搭建起来的书评和web上其他书评网站又有多大的区别呢?
Tags: Ajax, rss, tag, web2.0, wiki, 有用, 讨论