月度归档:2006年04月

流氓下载站赢利全攻略

作为决心采用流氓手段赚钱的站长来说,最佳的选择就是软件下载站,而且一定要是免费下载,连注册都不需要。网站里添加的资源全都是平时很难找到的软件,大软件。介绍一定要全,资料要详细——这些网上有的是,只要动手添加就可以了,软件的下载地址,可以随便写,FTP的也行,HTTP的也行,切记不要写自己站点的地址,可以随便编一个,文件名也要煞有介事地添加(虽然目标不存在)。 继续阅读

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

关于博客和链接

忘了是前几天在哪里看到一篇文章,写“链接是博客的生命”,而且好像也的确是在很多博客上都看到长长一大串的友情链接。我的不多,最近新增了几个才达到了10多个。

研究SEO的同学经常提到友情链接对于提高网站访问量有大作用,要找什么样的网站做链接……在6571学生网排名很高的时候,也有一些做学生网站的站长来找我做链接。我才知道原来6571排名高,给他们做链接能帮助他们提高排名。

继续阅读

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

上网之累

  因为看了易中天教授的节目,于是读了易中天教授的书;因为读了易中天教授的书,所以上了易中天教授的blog;因为上了易中天教授的blog,所以写了篇关于易中天的评论——这是我写这篇文章的动机和起因,但这篇文章却不是要评论易中天教授的观点或者是他的研究。

  小李刀刀是个程序员——还是兼职的,既不是评论员,更不是史学研究员,要对厦门大学教授的学术研究作评论,我还没这个胆。但是在网络上就有这样的自由——不管我是干什么的,我只要愿意,我就有这个机会对别人的言论行为指手画脚——这就是我所谓的“上网之累”。

  易中天教授发表了一篇《关于诸葛亮》,于是引来了近400条评论,这些评论有和易教授交流看法的,有批评的,还有谩骂的,当然也有支持的,这就是网络环境下特有的现象。按说易教授是搞研究和大学教学的,跟某些行业的人肯定是扯不上关系的,怎么引来了这些人的谩骂呢?就因为他展示自己学术研究成果的场合,一个是媒体——中央电视台的《百家讲坛》,一个是网络——新浪的“名人博客”。

  我不知道易教授看了他博客里那些评论什么想法,但是看到易教授有写专门的文章来答网友评论的。有些人在评论里说“我就看不惯你们这些老家伙如何如何……”,希望易教授看了不会生气和感叹现在人的素质低下。这纯粹是因为网络的原因。

  网络让人可以藏在屏幕背后肆无忌惮地说话,上网的人鱼龙混杂,有搞研究的专家,有经济精英、文化精英、科技精英,有普通知识分子、工人、商人,有家庭主妇,当然也有地痞流氓。

  易中天是大学教授,是搞历史研究的,他不可能跟我们普通人一样看看《三国演义》,然后就把诸葛亮惊为天人,他们要研究分析,读无数的历史资料。罗贯中只是个小说家,就像金庸一样。历史学家不会读了《鹿鼎记》就把韦小宝当成清初重要历史人物。我们喜欢读金庸的小说,愿意把他小说里的当成真人真事,但是不等于我们应该阻止和拒绝接受真实的历史。

  所以有点知识水平的人有点素质的人,读了易中天教授对诸葛亮的评价,要么是像我一样,把这作为一种专家的观点来看,要么是自己有看法,提出来跟易教授探讨,或者就是一笑而过不置一词。那种没知识还偏以为自己掌握着真理,非要强迫别人接受自己观点的人,说出话来除了谩骂或者强硬摆出自己观点外甚至没有任何辩论能力,这种人如果易中天也要去想,要去“答复”,要去给他们解释。那只能说易教授受了上网的拖累……

  其实任何人只要在网上摆出自己的观点,难免就会遭到各种各样的不同评价和评论,原因上面已经说过了。网络从最早很虚幻的东西到如今已经越来越像真实的社会。唯独一点不同就是在现实中为我们不耻的某些人和事,居然在网上找到了温床和生长的土壤。这是难免的,我们不需要去逃避,但是应该要认清网络和现实的这点区别。不然,就真的要被网络累死。

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

中国教育的“连坐制度”

  今天读了一本书——《帝国的惆怅》,作者易中天,就是在CCTV的百家讲坛开讲三国的那位厦门大学教授。易教授的文字很有意思,把历史故事、历史评论这些很多人可能会绝对乏味无趣的东西,用生动的语言像说评书一样讲出来。比如王安石变法,中学历史课本讲过的,历史课本上除了简单介绍青苗法之类具体措施,就是把所谓的“意义”告诉你。而实际上学了之后依旧不明所以而且这段历史能够印在我们心里的只有五个字——“王安石变法”。

  中学历史的责任是让学生知道历史上发生过什么样的事,有些什么样的人。并不要求学生研究历史,因此说白了中学历史就是讲故事,当然了,教育大纲还有一个目的是要通过历史课把一些希望灌输给孩子的“研究结论”或者意识形态结合历史故事让学生接受。但即使是这样的目的,中学历史教学也绝对做得不合格。

  为什么?最简单的原因就在于故事没讲清楚,历史变成了政治甚至变成了死记硬背。考试是应付过去了,中国几千年历史上发生过什么,还是没概念,想起中学历史,脑子就剩下几个词:年代、内容、意义。

  我记得以前看那么多历史书,甚至还用心看,但是对一些概念从来没有真正理解过,对于秦朝的郡县、唐朝的州县、宋朝的府县、元朝的省……这些到底是什么样一个概念,我一直就没有,遇到好的历史老师,可能会给你比较一下“相当于今天的什么什么”。就这么简单一句话,写历史书的人坚决不肯说。

  如果是研究历史为目的,不学文言文显然是不行的,但是了解历史需不需要掌握文言文?似乎不需要,学习文言文是语文课——更准确说是古汉语课程的责任,历史课——特别是中学历史课,不应该去承担这个莫名其妙的责任和义务。那为什么历史课本在讲古代的人物事件,地名人名官职机构条款的时候,就不能白话一点呢?

  让十几岁的孩子硬记“大鸿胪”这么一个名词恐怕很难,但是如果告诉孩子“外交部长”,会不会好一些?起码这样就算是要灌输某些理论某些思想,也能灌输得到位一点。否则对历史感兴趣但是语文又不好,怎么办?听评书,看小说,看“演义”,看“戏说”……最后再来责备成年了成命了成了公众人物人物的当年的孩子连历史常识都不知道,这的确有点不应该了!

  因为文言文没学好导致语文成绩好不了,因为古代汉语学不好导致历史成绩好不了,因为英语没学好导致专业成绩好不了……在面向就业的领域,这样的现象太多也太不正常了。如果要搞历史研究的,要搞中文研究的,当然应该文言文要掌握好。可是对于普通人,有些行业连书面语用得都还算少,为什么把现代汉语把普通话都掌握好了还不能放过人家呢?在堂堂中国的土地上,怎么把英语搞得比语文都还要重要,什么科目都要被英语“连坐”了呢?真是怪哉……

  本文本来想写别的,写着写着跑题了,跑到别的主题去了……,不过还好这是自己的博客,不是作文考试,就改了标题权当另写一篇了,呵呵……

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

再战子域共享Cookie问题

昨天贾宁旨光临寒舍,吃过晚饭回来后就跟他聊天,后来又玩了一会儿《Black Hawk Down》对战,到了大概晚上11点多,开始继续尝试用 Response.Cookies.Domain 来解决子域共享 Cookie 的问题。

继续阅读

本条目发布于。属于所谓技术分类。

发个小牢骚

  这两天每天只要上线,就在论坛上解答问题。《 三方整合问题坐诊-有问题都进来》这个帖子到今天已经有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修改用户扩展信息不能在动易同步的问题。