发个小牢骚

  这两天每天只要上线,就在论坛上解答问题。《 三方整合问题坐诊-有问题都进来》这个帖子到今天已经有12页了。除了服务器原因和特殊需求外,使用最后更新的文件包的用户问题基本都通过检查配置文件能够得以解决。

  三个接口文件文件名各不相同,路径上有类似(动易和oblog都放在API目录下,而且配置文件都叫API_Config.asp),这也就难怪有些用户会想当然的以为oblog的接口也叫“API_Response.asp”,从而出现配置错误了。

  但是在12页的帖子里,极少有按照要求的格式来提出问题的。很多是描述一下问题,然后问“怎么解决”。于是我只能猜测可能是因为什么导致,让他去检查,排除一个可能,再让他检查下一个可能……。本来一次回复就能解决的问题,往往回复三次到四次解决。耽误了我的时间,也耽误了他的整合。

  有些问题是已经解答了的,问题也解决了,用户单独回复一个帖子说“问题解决了,谢谢刀刀”。一声“谢谢”让我觉得愧不敢当,因为本身是我们整合接口开发不够完善,设置上不够简单导致如此多的问题,而且论坛技术支持也是职责所在。但是我往往每次再来解决问题的时候,要单开一个记事本,遇到提问的就记下几楼,然后往后看,看到问题已解决,从记事本里删除掉。过滤一遍然后开始回答尚未解决的。

  基本上也没有人按照我提的建议或者叫要求,在问题解决后,修改一下自己的帖子说明“已解决”的。

  前天看到一个单发的帖子,标题前面写着“[已解决]”,但是帖子后面的标题我记得我没见过,又是和整合有关。就打开看看,原来是一个用户单独发帖咨询整合问题的,后来在别的帖子里他的问题得到了解决。他就把另外这个帖子修改了一下,标题说明“已解决”,内容里又写了如何解决的。

  后来我特意搜索了一下,看到如下帖子:

  印象最深的是langzi_xw,他从第一个贴“整成这鬼样了!”,先后遇到过几次问题,还帮别人解决过一些问题。每次问题解决后,他都要回复说明已经解决。自己的帖子,标题也要改一下。

  我想我也应该对他还有和他一样的朋友说声谢谢!“已解决”三个字,帮我节约了很多时间,鲁迅说“浪费别人的时间等于谋财害命”,那节约别人的时间,也不亚于救人一命啊。真的,非常感谢这些朋友!

Microsoft SQL Server 2005商务智能初体验

昨天去北京昆仑瑞通高级技术培训中心参加了微软TechNet动手实验营的实验课程,一天的时间里,在微软高级讲师的指导下,亲自动手操作,体验了MSSQL Server 2005强大的商务智能(Business Intelligence)功能。

以前用SQL 2000和ACCESS,通常要进行一些数据批量处理,或者把数据动态显示输出到WEB页面,都是自己写SQL语句和ASP程序来实现。对于SQL 2000和ACCESS自带的创建web页面、导出Excell等功能,则只是知道,从来没有用过,毕竟可定制性太小了。

继续阅读

本条目发布于。属于旧文归档分类。

关于整合后动易后台不能修改用户信息的解决

大家知道整合三方都发布是在4月14号,而动易2006的最后一次更新是4月10日,组件最后更新是4月11日。动易后台与整合相关的代码是在4月7号左右封装到组件里的,之后就没动过了。

但是三方统一接口规范在后来做了调整。因此按4月7日前的讨论稿写的动易后台的整合接口就和现行规范不一致了,发送的是32位大写的MD5密码,导致在论坛和博客的接口返回安全码校验失败的问题。

已经把问题转告了悟空和感觉,要求他们在接口中增加对安全码长度和大小写的处理。在三合一文件包中的动网和oblog接口,已经增加了长度判断处理的大小写处理。如果是先整合的出现了这个问题,可以用三合一文件包中的文件来解决。

动易2006通行接口更新记录及下载

最新文件下载:

/works/PDO_API_TIO.rar [文件更新日期:2006-04-18](年代久远,链接已取消)

更新记录:

4月11日:

 'API_Response.asp:
    If sPE_Items(conUserstatus,1) = "1" Then
        rsReg("IsLocked") = True
    Else
        rsReg("IsLocked") = False
    End If
'说明:解决同步注册默认状态为锁定的问题。

'User/User_Logout.asp
Action = Trim(Request("action"))
Dim MemberName,APISysKey
MemberName = Request.Cookies(Site_Sn)("UserName")
APISysKey = MD5(MemberName&API_Key,16)
'Response.Cookies(Site_Sn)("UserName") = ""
Response.Cookies(Site_Sn)("UserPassword") = ""
Response.Cookies(Site_Sn)("LastPassword") = ""
'说明:解决注销时取不到用户名而不能注销的问题

'JS/checklogin.js
function getAPIUrls(root,username,userpass){
 var strTempHTML = "";
 var iName,iPass;
 var syskey = root.item(0).getElementsByTagName("syskey").item(0).text;
 var savecookie = root.item(0).getElementsByTagName("savecookie").item(0).text;
 if (savecookie != "") {
  savecookie = "&savecookie=" + savecookie;
 }else{
                savecookie = "&savecookie=";
        }
 if (syskey != "" && username != "") {
  iName = "&username=" + username;
  if (userpass != "") {
   iPass = "&password=" + userpass;
  }else{
                        iPass = "&password=";
                }
  var iUrls = root.item(0).getElementsByTagName("apiurl");
  for (var i=0; i<iUrls.length; i++){
   strTempHTML += "<iframe frameborder="0" width="1" height="1" src="" + iUrls.item(i).text + "?syskey=" + syskey + iName + iPass + savecookie + "" />";
  }
 }
 return strTempHTML;
}'说明:解决多个程序整合时不能同步的问题

4月12日:

'API/API_Response.asp
Select Case sPE_Items(conUserstatus,1)
    Case "0"
        tRs("Islocked") = False
        tRs("GroupID") = GroupID_ok
    Case "4"
        tRs("Islocked") = True
        tRs("GroupID") = GroupID_chk
    Case "1"
        tRs("IsLocked") = True
        tRs("GroupID") = GroupID_ok
    Case Else
        tRs("IsLocked") = True
        tRs("GroupID") = GroupID_ok
End Select '补充对锁定用户的请求的处理过程

         'User/User_GetPassword.asp
         If rsGetPassword("Answer") <> MD5(Answer, 16) Then
            '对动网加密结果的兼容处理
            MD5OLD = 0
            If rsGetPassword("Answer") <> MD5(Answer,16) Then
             
FoundErr = True
             ErrMsg = ErrMsg & "<br><li>对不起,您的答案不对!</li>"
            End If
            MD5OLD = 1

        End If
        '说明:增加对动网加密结果的兼容处理

'/User/User_ChkLogin.asp
            UserPassword = MD5(UserPassword, 16)
            Set rs = Server.CreateObject("adodb.recordset")
            sql = "select UserID,UserName,UserPassword,LastPassword,LastLoginIP,LastLoginTime,LoginTimes from PE_User where UserName='" & UserName & "'"
            rs.Open sql, Conn, 1, 3

'=================================================
                    Dim tempPassword
                    tempPassword = sPE_Items(conPassword,1)
                    MD5OLD = 0
                    tempPassword = MD5(tempPassword,16)
                    Md5OLD = 1
                    If tempPassword <> rs(2) Then
                       
FoundErr = True
                        ErrMsg = ErrMsg & "{a}密码错误!!!{b}"
                    Else
                        rs("UserPassword") = UserPassword
                    End If
'说明:增加对动网方式Md5加密的兼容

Md5.asp更换新文件

 4月17日:

'/User/User_Info.asp

    Response.Write "        <input name='UserName' type='hidden' id='UserName' value='" & UserName & "'>" & vbCrLf
    Response.Write "        <input name='Action' type='hidden' id='Action' value='SavePwd'>" & vbCrLf
    Response.Write "        <input name='Submit' type='submit' id='Submit' value=' 保 存 '>" & vbCrLf

'===================================
    If API_Enable Then
        If createXmlDom Then
            sPE_Items(conAction,1) = "update"
            sPE_Items(conUsername,1) = UserName
            sPE_Items(conPassword,1) = Password
            prepareXml True
            SendPost
            If FoundErr Then
                ErrMsg = "<li>" & ErrMsg & "</li>"
            End If
        Else
            FoundErr = True
            ErrMsg = "<li>用户服务当前不可用。 [APIError-XmlDom-Runtime]</li>"
        End If
    End If

    If FoundErr = True Then
        Exit Sub
    End If

'说明:修正在会员中心点“修改密码”进行密码修改不生效的问题。增加判断避免远程修改失败后在本地修改。

 4月18日:

'/User/User_ChkLogin.asp

If FoundErr <> True Then
    '保存用户名
    TempUserName = UserName

    If CheckUserLogined() = False Then
        If Action = "xmlstat" Then
            FoundErr = True
            ErrMsg = ""
        Else
            '恢复可能被替换的用户名
            UserName = TempUserName

            sPE_Items(conPassword,1) = UserPassword
            UserPassword = MD5(UserPassword, 16)
'解决由于缓存不能换名登陆的问题 

4月19日

'/Reg/User_RegPost.asp

                        tempAPIScripts = tempAPIScripts & "<script type=""text/javascript"" language=""JavaScript"" src=""" & arrAPIUrl(1) & "?syskey=" & sPE_Items(conSyskey,1) & "&username=" & UserName & "&password=" & Md5(sPE_Items(conPassword,1),16) & """></script>"

'解决注册成功不能自动登陆论坛和博客的问题

4月22日:

'/API/API_Response.asp

    For intIndex = 7 to 20
        If intIndex <8 Or intIndex > 10 Then
            If sPE_Items(intIndex,1) <> "" Then
                NeedContacter = True
                Exit For
            End If
        End If
    Next

'修正一个程序逻辑上的错误,解决在动网和Oblog修改用户扩展信息不能在动易同步的问题。

 

女子十二乐坊——中国的,世界的

  最近有一次去中关村的时候,在硅谷门口等老马,站得双脚发麻他还没出来,我闲得无聊,去买了一本《新周刊》看,这个杂志好贵&mdash;&mdash;十五块钱一本,买之前不知道,知道的时候已经是付款的时候了,忍痛买了一本,还好看完感觉挺有内容。

  我买的这期《新周刊》的主题策划叫“软中国”,谈的是中国的文化,把文化看作是军事、经济等硬国力之外的软国力,挺有道理的。这期“软中国”里弹到了最近风靡日本,在美国又开始大红大紫的“女子十二乐坊”。“女子十二乐坊”其实出道好几年了,在一些演出还是经常能看到的,我记得在“女子十二乐坊”之前,先看到的是陈美的小提琴,那种把高雅艺术和流行元素融为一体的风格,的确是很讨人喜欢,后来“女子十二乐坊”则更具特色,陈美的流行元素是和西方的乐器&mdash;&mdash;小提琴结合,而十二乐坊则是把中国传统民乐用现代流行音乐风格来包装。

  《茉莉花》、《大河之舞》等传统民乐,用现代化的电声乐器&mdash;&mdash;乐器还是中国的传统乐器:古筝、琵琶、二胡、笛子等,由12个人的乐队演奏出来,立刻显示出了恢宏的气势,而且经过重新编曲之后,乐曲的节奏也更明快,融入了更为丰富的合声。与克莱德曼演奏的钢琴曲、班德瑞等一样,在轻音乐界女子十二乐坊很快成为了一股新生力量。虽然在国内的名声似乎不是特别响亮,但是在日本和美国,“一打玫瑰”(美国人对女子十二乐坊的叫法)的专辑都创造了短时间内攀升到销量冠军或者名列前茅的奇迹。

  我原来曾经听过十二乐坊的《茉莉花》,印象很深,但是后来没有更多地接触,这次正好看到“软中国”专题的介绍之后,立刻想到了她们的特色和对中国传统民乐的包装,在西方和日韩文化大举侵占中国市场的今天,十二乐坊把最具中国民族特色的宫商角徵羽推向了世界,而且成为世界级的流行元素,的确是一大成功。

  期待更多、更好的将中国文化包装后推向国际市场的文化产业,我想女子十二乐坊的奇迹,充分向世人展示了这样一个道理:中国的几千年文化积淀,并不是陈旧了没有市场了,而是需要与时俱进地重新整理、包装。

  中国的二胡、笛子、葫芦丝,的的确确与萨克斯、苏古兰风笛一样,充满了韵味,是世界民族之林中的瑰宝!

  女子十二乐坊官方网站:http://www.12girls.org

本条目发布于。属于指手划脚分类。

二外:21世纪最宝贵的不是人才

  一个中国传媒大学(原北京广播学院)毕业的研究生,本科是新闻专业,研究生是西方影视艺术研究(好像)。毕业时考取了中国传媒大学的公费博士,由于联系了工作,学校同意把她转成在职博士研究生,然而,一墙之隔的用人单位不允许,所以她放弃了这个无数人梦寐以求的“公费博士”的深造机会,开始了她的职业人生。

  一年将满,跟她一起到这个单位的其它部门的研究生们,在“管理岗”上很快要顺顺利利通过中级职称评定,而她——由于一场旨在“提高教工工作积极性”的内部改革,虽然在机关单位——党委宣传部工作,负责的是新闻采编、报纸编辑等工作,却从“管理岗”变成了“专业技术岗”。 继续阅读

CSS居然可以这样用

睡觉前,NT给我发了两个网址,是老外的,那个家伙暴强,居然用纯CSS在页面上画出房子来,平面的、3D的,都画出来了。 看了一下他的CSS代码,一开始以为是这样用:

.class{
    width:100px;
    w\idth:60px;
    height:200px;
    h\eight:160px;
}

后来发现其实一些特殊图形的绘制跟上面的这个怪异的用法没关系,而是用边框来实现的,比如:

这三个形状除了Div,没有任何其它的元素或者文本,更不用说图形了。这是充分利用了border的显示特性。因为当我们同时设置四个方向的border时,浏览器自动会把交叉的部分叠加或者相互剪除。当border足够大的时候,我们就看到了上面这样的特殊效果。谁能想象到这是4个200像素的边框形成的效果呢? 代码如下:

 

好久以前的一个作品

今天整理硬盘,偶然发现了原来做的一个东西,办公室平面图,好像是用Microsoft Visio还是什么做的吧,忘记了,当时的文件都删除了,就剩下一张效果图。这可是我们办公室的真实平面图。

我记得原来做出来的那个效果图,鼠标指到图上某个东西的时候,会出现具体的提示信息和说明。比如宽度、高度、厚度、名称、用途,而且那个门还是可以开和关的。

继续阅读

本条目发布于。属于乱七八糟分类。

整合后测试是否成功的全部步骤

以下是我们在测试的时候的完整步骤:

整合设置好以后,同时打开三个窗口,分别打开动易、动网、博客,然后:

第一步:从动易测试:

  1. 在动易注册一个新用户;
  2. 在动易登陆,然后刷新动网的窗口看是否同步登陆;刷新博客的窗口看是否同步登陆;
  3. 在动易修改拥护资料看是否成功(只要能修改就成功)。
  4. 在动易注销,然后刷新动网的窗口看是否注销;刷新博客的窗口看是否注销;

继续阅读