我思故我在

歌德说,人的一辈子其实只能做一件事,做了,就要扎扎实实地把它做好。我也只能通过一种行业来认定我自己的人生价值。我选择了写程序,我希望我能写好。
随笔 - 55, 评论 - 457, 引用 - 159

导航

每月存档

最新留言

广告

【第1页/共5页,67条】
首页
前页
1
2006年11月29日

转眼间已经快两年没有管理这个blog了,想想真是对不起开心大哥!
旧地重游恍如隔世。
如果有人看过我现在个人网站的blog(http://www.wuyuntian.com/blogx)的内容就会发现我现在感兴趣的已经不是编程而是中国传统文化的学习。
虽然我的工作仍然还是软件开发,但我现在仅仅把编程当成工作,工作之余基本不再研究。
人都说:老骥伏枥,壮心不已!我是恰恰相反。
我想过一种:
白日看云坐,清秋对雨眠。眉头无一事,笔下有千年。
的生活。可能真是老了的原因吧,开始感叹世事无常了。
茶淡味悠远,书古意赜深,红尘无尽景,大千多沉沦。

如果对blog中的内容有兴趣,如果不怕失望可以通过我的邮箱:

nolan.shang@gmail.com

或者我的个人网站:http://www.wuyuntian.com

和我联系!

这就算是告别吧!开心大哥可将我的帐号和空间回收了。诚挚感谢!

何日人长久,一笑泯恩仇,聚散任凭缘,千里不用愁。

posted on 2006-11-29 15:38:00 by shannon  评论(13) 阅读(7351)

 
2004年07月19日

现在好像很流行RSS,它确实也很方便,本来仅仅是帮“黑色数据”为http://www.websitech.com/forum/作个RSS聚合功能,不过顺手也帮自己的论坛rss做了一下,代码很少,也很简单,谁有兴趣可以到我网站下载(http://www.blanksoft.com/Codesnippet.asp

对于WWF(Web Wiz Forums )rss.asp有两个参数fid和gid,fid对应某个版块的id,gid对应某个组的id,如果都不给,那么就是全部论坛数据

对于for Discuz!论坛的php程序,因为我这是第一次和php和mysql见面,所以还不是很熟悉,所以可能代码写的不好,不过用过php语言的人都可以自行修改!它有一个参数fid,对应版块id.

如果提取的数据版块比较零散,可以下载这个文件,直接修改里边的sql 查询字符串,这样参数也不用传递了。直接调用就可以了

 

posted on 2004-07-19 10:00:00 by shannon  评论(15) 阅读(5387)

 
2004年07月12日
2004年06月11日

了解这方面内容的起因是早上有位朋友让我看一段关于MSN开发程序,现在无法运行,我打开工程发现是针对4.7编写的,而他的计算机安装的6,2,因为我也用6.2所以我在VB中查看了一下,发现是缺少Messenger Type Library。但是多了Messenger API Type Library,可能是做为Messenger Type Library的替代,但是发现它的功能不如以前的Messenger Type Library 全面,起码我现在就发现它不能修改本地的MyFriendlyName,不明白为什么把它弄成只读的,MyStatus是可写。

下面简单用VB距离说明怎么调用它:

首先当然是引用对象Messenger API Type Library了。

然后声明一个对象MessengerAPI.Messenger
Private WithEvents oMSN As MessengerAPI.Messenger

我们需要的东西都在这里边,简单介绍几个:
MyContacts:IMessengerContacts 对象
MyFriendlyName: 当前的昵称
MyGroups: IMessengerGroupss对象
MyPhoneNumber:返回电话号码
MyProperty:现在没有使用
MyServiceId :返回Service id应该是{9b017612-c9f1-11d2-8d9f-0000f875c541}]
MyServiceName:返回Service name应该是 .NET Messenger Service
MySigninName:返回当前的签名,eMail地址
MyStatus:返回当前状态,MISTATUS枚举值
其实本地属性和通过PrimaryService得到的一样

做几个简单的演示:
首先是登陆演示,使用MessengerAPI.Messenger的 SignIn 或者AutoSignin方法:
Public Sub SignIn(ByVal bAuto As Boolean, Optional ByVal sSignInName As String, Optional ByVal sPassword As String)
On Error GoTo ErrorHandle
   If bAuto = True Then
       oMSN.AutoSignin
   Else
ManualSignIn:
       oMSN.SignIn 0, sSignInName, sPassword
   End If

   Exit Sub
ErrorHandle:
Dim MConstants As MSGRConstants
   MConstants = err.Number
   If MConstants = MSGR_E_FAIL Then
       GoTo ManualSignIn
   ElseIf MConstants = MSGR_E_ALREADY_LOGGED_ON Then
       '已经登陆
   End If
End Sub

获取全部用户列表:
通过Messenger的MyContacts对象(它是只读的)
它其实就是一个IMessengerContacts对象,而IMessengerContacts类又是IMessengerContact类的一个集合,在IMessengerContact中保存联系人信息。
因此可以这样遍历联系人。
Dim oContacts As IMessengerContacts
Dim oContact As IMessengerContact
Dim iCount As Integer
Dim i As Long
Set oContacts = oMSN.MyContacts
iCount = oContacts.Count
For i = 0 To iCount - 1
  Set oContact = MsgrContacts.Item灯泡
    List1.AddItem MsgrContact.FriendlyName & vbTab & "(" & getStatusDesc(MsgrContact.Status) & ")"
Next

getStatusDesc函数用来返回状态文本描述:
Private Function getStatusDesc(eStatus As MISTATUS) As String
    Select Case eStatus
        Case MISTATUS_AWAY
            getStatusDesc = "走开了"
        Case MISTATUS_BE_RIGHT_BACK
             getStatusDesc = "马上回来"
        Case MISTATUS_BUSY
             getStatusDesc = "在忙碌"
        Case MISTATUS_IDLE
            getStatusDesc = "在发呆"
        Case MISTATUS_INVISIBLE
            getStatusDesc = "隐身"
        Case MISTATUS_LOCAL_CONNECTING_TO_SERVER
            getStatusDesc = "正在链接服务器"
        Case MISTATUS_LOCAL_DISCONNECTING_FROM_SERVER
            getStatusDesc = "从服务器断开"
        Case MISTATUS_LOCAL_FINDING_SERVER
            getStatusDesc = "正在搜索服务器"
        Case MISTATUS_LOCAL_SYNCHRONIZING_WITH_SERVER
            getStatusDesc = "正在和服务器同步"
        Case MISTATUS_OFFLINE
            getStatusDesc = "离线"
        Case MISTATUS_ON_THE_PHONE
            getStatusDesc = "在接电话"
        Case MISTATUS_ONLINE
            getStatusDesc = "在线"
        Case MISTATUS_OUT_TO_LUNCH
            getStatusDesc = "外出就餐"
         Case MISTATUS_UNKNOWN
            getStatusDesc = "未知"
    End Select
   
End Function

获取组列表:
方法同获取联系人,只是换了一下对象.
Dim oGroups As IMessengerGroups
Dim oGroup As IMessengerGroup
  Set oGroups = oMSN.MyGroups
  For Each oGroup In oGroups
      List1.AddItem oGroup.Name
  Next
 
 下面就是将组和用户关联起来:
 明白上面的方法,这个很容易实现,IMessengerGroup类的对象中含有IMessengerContact类对象的集合。
 Dim oGroups As IMessengerGroups
Dim oGroup As IMessengerGroup
Dim oContacts As IMessengerContacts
Dim oContact As IMessengerContact
  Set oGroups = oMSN.MyGroups
  For Each oGroup In oGroups
      Set oContacts = oGroup.Contacts
      For Each oContact In oContacts
          List1.AddItem oGroup.Name & " " & oContact.SigninName
      Next
  Next
  在介绍一下服务:
  也是用样道理:
  Dim oServices As IMessengerServices
Dim oService As IMessengerService
  Set oServices = oMSN.Services
  Set oService = oServices.PrimaryService
  MsgBox oService.MyFriendlyName & getStatusDesc(oService.MyStatus) & oService.MySigninName & oService.ServiceId & oService.ServiceName

我现在怎么觉得PrimaryService的意义不大,IMessengerServices中就一个PrimaryService可用,还是只读的。
当然各个对象可能还有一些相应的方法就不多介绍,我介绍的这些通过对象浏览器就可以看明白,其中还有对象或成员我现在还没学会使用,现在只是大致了解一下,我希望看到这篇文章的人也有了一点初步了解。

 

posted on 2004-06-11 13:10:00 by shannon  评论(86) 阅读(25690)

 
2004年05月14日

这已经不是什么新话题,但是对于我是刚刚接触,所以拿出与人分享,如果你和我一样以前没有涉及过这方面的知识,希望它能起到抛砖引玉的作用。

可以说google绝对是我的良师益友,所以我比较关注他的技术,在建设个人网站过程中,需要为站点添加搜索引擎,我觉得没有搜索功能的网站就象缺少了双腿。

我对于搜索知识还很贫乏

一般可以使用fso对站点内物理文件进行处理,来找到复合条件的内容。对于保存于数据库内的文章,可以使用数据库引擎搜索数据库,找到满足条件的数据。

但是其实还有一个更简单方便的办法,就是使用google的强大搜索引擎,你可以用它实现本站内搜索,互联网搜索,大部分的做法是在本站添加一个入口,然后转到google网站。

我现在说的是使用google WEB API,完成在本站内搜索,因为Google WEB API符合SOAPWSDL标准,它使用XML的方式返回结果,因此你可以自定义返回的结果显示方式,也可以方便的存储这些数据。

因为我的网站是asp的,所以我分别用aspVB实现web serviceDesktop application的演示。

Google WEB API主要提供三种服务:

SearchCacheSpelling

这里只谈使用SOAP标准调用搜索功能。提示使用doGoogleSearch API非常容易,只要提交一个包含特定内容的XML文件即可,在google WEB API SDK中都有相应的模板.

doGoogleSearch.xml内容

<?xml version='1.0' encoding='UTF-8'?>

 

<SOAP-ENV:Envelope xmlns困惑的笑脸OAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

  <SOAP-ENV:Body>

    <ns1咧嘴笑脸oGoogleSearch xmlns:ns1="urn:GoogleSearch"

         SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

      <key xsi:type="xsd困惑的笑脸tring">00000000000000000000000000000000</key>

      <q xsi:type="xsd困惑的笑脸tring">shrdlu winograd maclisp teletype</q>

      <start xsi:type="xsd:int">0</start>

      <maxResults xsi:type="xsd:int">10</maxResults>

      <filter xsi:type="xsd:boolean">true</filter>

      <restrict xsi:type="xsd困惑的笑脸tring"></restrict>

      <safeSearch xsi:type="xsd:boolean">false</safeSearch>

      <lr xsi:type="xsd困惑的笑脸tring"></lr>

      <ie xsi:type="xsd困惑的笑脸tring">latin1</ie>

      <oe xsi:type="xsd困惑的笑脸tring">latin1</oe>

    </ns1咧嘴笑脸oGoogleSearch>

  </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

下面简要解释每个节点的含义:

key         使用者的license keygoogle可以通过它了解使用情况,每个key每天最多查询1000

q    要查找的字符串

start              结果记录中的起始位置,因为多页显示,用它来确定当前页显示的记录范围

maxResults       每页显示的记录数,现在最大值是10

filter              布尔值,过录结果中重复记录的开关。 特定国家和标题开关

restrict   约束搜索的范围

safeSearch       布尔值,是否过滤到成人信息

lr            搜索特定语言范围,比如“搜索所有简体中文网页”:lang_zh-CN

ieoe是输入输出的语言编码,这个被忽略,默认是UTF-8格式

以上这些就是一次提交所需要的参数。

设定好参数就可以发送到GoogleSOAP RPC Router

之后google会将搜索结果以xml文件的形式返回给调用者。调用者主要相应操作这个xml文件,就得到自己想要的数据。

摘录一段:

下面看一个实际的返回结果例子:

<?xml version='1.0' encoding='UTF-8'?>

<SOAP-ENV:Envelope xmlns困惑的笑脸OAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">

<SOAP-ENV:Body>

<ns1咧嘴笑脸oGoogleSearchResponse xmlns:ns1="urn:GoogleSearch" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<return xsi:type="ns1:GoogleSearchResult">

<directoryCategories xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Array" ns2:arrayType="ns1咧嘴笑脸irectoryCategory[0]">

</directoryCategories>

<documentFiltering xsi:type="xsd:boolean">true</documentFiltering>

<endIndex xsi:type="xsd:int">10</endIndex>

<estimateIsExact xsi:type="xsd:boolean">false</estimateIsExact>

<estimatedTotalResultsCount xsi:type="xsd:int">31</estimatedTotalResultsCount>

<resultElements xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:Array" ns3:arrayType="ns1:ResultElement[10]">

<item xsi:type="ns1:ResultElement">

<URL xsi:type="xsd困惑的笑脸tring">http://msdn.microsoft.com/library/en-us/dncenet/html/choose_api.asp</URL>

<cachedSize xsi:type="xsd困惑的笑脸tring">54k</cachedSize>

<directoryCategory xsi:type="ns1咧嘴笑脸irectoryCategory">

<fullViewableName xsi:type="xsd困惑的笑脸tring"></fullViewableName>

<specialEncoding xsi:type="xsd困惑的笑脸tring"></specialEncoding>

</directoryCategory>

<directoryTitle xsi:type="xsd困惑的笑脸tring"></directoryTitle>

<hostName xsi:type="xsd困惑的笑脸tring"></hostName>

<relatedInformationPresent xsi:type="xsd:boolean">true</relatedInformationPresent>

<snippet xsi:type="xsd困惑的笑脸tring">Choosing a Windows Embedded &lt;b&gt;API&lt;/b&gt;: Win32 vs. the .NET Compact Framework. Written by: Paul Yao, Windows&lt;br&gt; Embedded MVP The Paul Yao Company. &lt;b&gt;...&lt;/b&gt; This article focuses on two of these APIs—Win32 and the .NET Compact&lt;br&gt; Framework —to provide details on selecting an &lt;b&gt;API&lt;/b&gt; for specific programming tasks. &lt;b&gt;...&lt;/b&gt;  </snippet>

<summary xsi:type="xsd困惑的笑脸tring"></summary>

<title xsi:type="xsd困惑的笑脸tring">Choosing a Windows Embedded &lt;b&gt;API&lt;/b&gt;: Win32 vs. the .NET Compact &lt;b&gt;...&lt;/b&gt;</title>

</item>

 

</resultElements>

<searchComments xsi:type="xsd困惑的笑脸tring"></searchComments>

<searchQuery xsi:type="xsd困惑的笑脸tring">google site:www.blanksoft.com</searchQuery>

<searchTime xsi:type="xsd咧嘴笑脸ouble">0.177621</searchTime>

<searchTips xsi:type="xsd困惑的笑脸tring"></searchTips>

<startIndex xsi:type="xsd:int">1</startIndex>

</return>

</ns1咧嘴笑脸oGoogleSearchResponse>

 

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

完整可以看:http://www.blanksoft.com/gosearch/rettext.txt

我只保留了一个item信息(应该是maxResults个或者少于maxResults)。

下面结束主要的节点含义:

return节

estimatedTotalResultsCount:收到的总记录数。

searchComments:显示一些注释信息,比如“Google 会搜索所有的查询字词,您不必添加 "AND" 运算符

searchQuery:查询内容,一般等于你传入的查询字符串,但是并不总是一样。

SearchTime:返回服务器搜索花费的时间

SearchTips:显示一些小技巧

StartIndex:当前返回第一条记录的索引号

EndIndex当前返回最后一条记录的索引号

Item::返回的结果集合

 

Item节:

URL:页面地址

CachedSize:在Googlecache的页面大小

Snippet:内容摘录

Title:页面标题

大致常用的差不多就是这么多,ODP内容暂时省略。

查看asp的效果,可以访问:

http://www.blanksoft.com/gosearch/googlesearch.asp

我是仿造google的样子设计,当然可以随便定义成自己喜欢的样子

附加,Google Web APIs WSDL 描述文件

posted on 2004-05-14 16:38:00 by shannon  评论(17) 阅读(6604)

 
2004年05月11日

我的网站,论坛,blog都是使用access数据库,刚开始做网站所以安全问题考虑不足。但是用户反映在不正确的路径非法调用数据库配置文件,会暴露数据库名称。而且我也发现了这个问题,不仅仅是blog还有我网站,看了网上一些文章介绍可以将mdb扩展名改为asp,阻止直接下载,但是不能阻止flashget(阻止flashget可以文件名加“#“)或者用浏览器直接打开文件内容。

大多数做法(我看到的)好像是使用on error resume next跳过错误,继续运行,但我觉得还是有潜在问

题。我的论坛系统(WWF)采取的措施是将配置文件放在根目录。下面是我采取的办法(还没有通过实践检验)

我发现造成这个漏洞的大部分原因是使用相对路径造成的,就是使用Server.MapPath指定路径,它还有另外一个不方便之处,就是不能随意在任何位置include这个文件。因此我现在就绕过这种做法而是使用网站绝对路径来指定文件位置。这样可以解决我上面分析两点:

具体步骤是使用

Request.ServerVariables("APPL_PHYSICAL_PATH")得到根目录物理路径然后加上子文件夹的位置,文件名。

但是不能保证100%可靠(我认为不会得到100%的安全)但是我觉得还是有所提高的。

posted on 2004-05-11 09:22:00 by shannon  评论(25) 阅读(14148)

 
2004年05月08日

五一期间过的很艰苦,哪里没去,蹲在窝里吃跑面,睡眠倒是补回不少。

趁此时间,对我的网站,blog程序都做了些修改,网站升级了一下,界面变化不大,现在内部的格式控制统一由css控制,本来想加几个flash但是flash水平还太低。对于blogx程序的更新介绍详细内容及下载链接(包括英文原版)、屏幕截图可以访问http://www.blanksoft.com/blogx.asp,也可以访问http://www.blanksoft.com/blogx/Default.asp查看实际效果

更新内容:

  • 所有编辑功能采用所见及所得的编辑模式
  • 增加日志搜索功能
  • 采用无组件上传方式增加图片上传功能
  • 增加在线编辑“其他链接”功能,这个功能可能常用
  • 完善邮件列表功能(未经过测试,我的工作环境不能上网)
  • 增加几款主题(严格说是一种Dream Place)
  • 增加访问统计功能
  • 刚刚测试了文件上传和邮件列表功能,可以正常使用,这样就可以通过邮件列表发布最新消息给你的用户了。

     

    posted on 2004-05-08 11:33:00 by shannon  评论(18) 阅读(4367)

     
    2004年04月28日

    以下内容仅为个人意见,所以未必和事实相符!

    从各方面资料和我使用的第一印象,sp2的重点就是对于安全性的提高!从微软站点的说明也可以看出这点,原文:

    Microsoft Windows XP Service Pack 2 (SP2) provides an enhanced security infrastructure that defends against viruses, worms, and hackers, along with increased manageability and control for IT professionals and an improved experience for users.

    因为它所来带来的变动是从底层开始,所以更新一定要考虑到对原有应用程序的影响,也许你会发现原有的一些应用不能正常运行。为什么这么说,一位微软产品开发部经理(大概是这个职位)Tony Goodhew说:It may surprise some of the developers that we are changing some defaults, and that may affect the way some of the older applications run(因为sp2修改了许多系统默认值,比如ICF现在默认是打开的,如果开发人员在开发过程使用了默认值,那么老的应用程序就会受影响)。对于我们开发人员而言,在开发过程应该尽量避免这种情况发生,不要使用默认值。微软还专门提供在线培训,如果安装sp2。以下信息,开发人员可以看看:

    http://msdn.microsoft.com/security/productinfo/XPSP2/default.aspx

    SP2 will break some applications because they are insecure," Goodhew said. "Security is important, and it is not just a Microsoft problem but a developer community problem. We all need to work together to create a more secure computing environment“我同意这种说法,软件的安全可靠需要各个环境共同来打造。

    而且另据报道,之所以sp2发布时间这么长,是因为它也做为到longhorn系统的过渡的做准备,所以代号是“Springboard“(这是我说的,别当真),下面说说细节:

    •  Internet Connection Firewall (ICF):默认打开,增加出口扫描,还有以前仅仅在Microsoft Internet Security and Acceleration (ISA) Server 2000 企业版中提供的功能。它可以通过域控制器进行集中管理(比如它可以锁住一个域内所有计算机),最明显的它增加了管理面板(GUI),另外对于开发人员可以调用新的API来管理ICF,比如INetFwOpenPort。
    • DCOM/RPC 安全加强,这点开发人员要注意
    • 新的Windows更新程序,新的内存管理代码防止buffer-overrun攻击。
    • 任务调度的变化:任务被指派给特定用户而不是默认的LOCAL\SYSTEM ?用户
    • Internet Explorer(IE)、Outlook、Outlook Express、Windows Messenger
      全部采用新版本,比如outlook对于信件预览安全性
    • IE增加的内容也不少,比如增加插件管理面板,偷偷被安装的插件也一览无余;
    • IE Local Machine的概念的变化
    • MIME类型检查:现在要求Content-Type 和实际文档类型必须一致,比如如果指定是text/plain 类型而实际是MIME sniff类型,那么IE将在cache重命名它,以前好像文件实际类型优先,比如用text类型标识一个gif文件,也是可以正确显示,但是现在它将作为一个BUG;IE的Pop UP管理也是新的了。
    • 对于内存管理:如果处理器支持,它将取消data only页的执行许可(这个技术不完全,还要硬件了配合),还有一些俺不懂的技术。

    大体上我了解的就这些。可能有些说的不大准确,那就可能是因为我知识所限。
    --------------

    先说声抱歉,果然是我知识还不够,不过也因此借这个机会又学到一点。下面更正一些不大准确的内容:

    在SP2中Ooutlook Express,我感觉的变化就是对于HTML格式邮件预览安全性的增强,看看截屏大概就了解了(http://image2.sina.com.cn/IT/images/U74P2T78D122F3305DT20040326132813.gif)刚才搜索了一下,原来在新浪有一篇介绍http://tech.sina.com.cn/s/n/2004-03-26/1335339748.shtml

    对于内存管理部分(No eXecute),其实这部分内容我最陌生了,不过是现学现卖。

    上文我提到的需要硬件结合就是指cpu要支持。太深入我就不敢说了,NX bit技术我理解是当cpu工作在PAE(Physical Address Extension)模式下,它的PTE(page table entry )的第63位变成NX标识位,来标识是否执行。而sp2的做法是除非某个位置明显含有可执行代码,否则NX通过CPU将应用程序中所有的存储位置都标识成“不执行”。因此,当“蠕虫”或病毒在内存储中标识为“只存数据”的部分插入程序代码时,该代码将无法运行。

    64位处理的PTE表图示我不知道什么样的,但是可以看看32位处理的

    这种变化将影响到某些应用程序,比如Just-In-Time 程序,因为他们将执行代码存储在Data页。对于Microsoft .NET Framework's 的CLR可以放心,它不会受到影响,但是可能JAVA程序会受到影响!

    不知道,我写的这些是不是又出现新的BUG。

     

    posted on 2004-04-28 10:28:00 by shannon  评论(15) 阅读(4544)

     
    2004年04月26日

    如果以前在我的站点下载过blogx程序的可以看看,我昨天又对这个程序某些地方做了修改

    • 修改主题文件,并增加两个主题(由于时间有限,只是最源模板的颜色风格改了一下)
    • 配置文件(Includes/Config.asp)做了小小的改动,后面链接数据库统一使用本文件内定义的链接字符串,这样将来即使修改数据库类型也是很方便
    • 增加历史文档列表(过去每个月的统计)
    • 修改页面最上面(title Link)(现在是链接,当然可以放其他内容)不在需要修改title.asp,只需要修改titleLink.asp文件内容
    • 增加最分类名称的修改
    • 去掉每个IP仅仅能发表一条评论的限制

    现在三个主题分别是三种颜色,我现在使用蓝色的

    因为时间关系,所以修改的未必很仔细,有什么问题或要修改什么可以到我论坛反映

    马上要5.1了所以想趁着这个时间开始学.net,结果安装了一天的widbey还是没有安装成功,我差点疯掉。

    posted on 2004-04-26 11:26:00 by shannon  评论(13) 阅读(4018)

     
    2004年04月23日

    MSN 6.2中文版 已经可以下载,下载地址:

    http://messenger.msn-int.com/

    截图:

    posted on 2004-04-23 15:15:00 by shannon  评论(29) 阅读(65589)

     
    2004年04月20日

    从日经看到下面一篇报道:

    http://china.nikkeibp.co.jp/china/news/com/com200404130115.html

    http://itpro.nikkeibp.co.jp/free/NT/NEWS/20040409/1/

    Whidbey中C运行时函数具备防缓冲溢出功能!

    微软正在开发的开发工具“Visual Studio 2005”(开发代号:Whidbey)中,将在C运行时函数里采取防止缓冲区溢出的措施。具体而言,就是在strcat、strcpy、strlen等以str开头的各种字符串操作函数与lsearch、memmove等内存区操作函数中,将提供添加了缓冲区长度检查功能的新函数。所谓缓冲溢出,就是指在程序提供的输入缓冲区中通过写入超过缓冲区长度的长数据,来运行非法程序的攻击方法。

      作为新函数,一旦遇到超过缓冲区长度的访问,就会强制终止程序。不仅是微软产品,现有的标准C语言运行时间的字符串操作函数集均不检查缓冲区长度,因此均存在缓冲溢出的潜在危险。

      防缓冲溢出的函数增加了一个提取缓冲区长度的参数。新的安全函数名均在相应的原函数名后面加上了一个“_s”,比如,与strcat函数对应的新函数名为strcat_s。

      例如,对于下列程序,在strcpy函数处就会产生缓冲溢出:


    int main( void )
    {
     char strDst[5];
     const char* strSrc = "Hello World!";
     strcpy( strDst, strSrc );
     printf( strDst );
     return 0;
    }

    下面是用新函数对上述代码进行改写后的结果:
    int main( void )
    {
     char strDst[5];
     const char* strSrc = "Hello World!";
     strcpy_s( strDst, 5, strSrc );
     printf( strDst );
     return 0;
    }


      另外,现有的Visual C++如果利用/GS选项进行编译,那么运行时一旦检测到缓冲溢出,也会强制终止程序。而作为Whidbey中的Visual C++,/GS选项在标准状态下是有效(ON)的。顺便提一下,定于今年6月发布的Windows XP Service Pack 2就是在/GS选项下进行编译的。

    ----------

    看strcpy_s的调用方法不由得让我想起vb中调用api时,有字符串参数做为返回值的写法。

    posted on 2004-04-20 08:32:00 by shannon  评论(9) 阅读(5794)

     
    2004年04月19日

    根据经常遇到有关用VB进行bmp转化JPEG的问题,因为我编写了下面一个控件

    对VB 6标准Picturebox控件的扩展,主要实现位图到JPEG格式的转换!支持任意定义压缩质量、EXIF的Comment信息!

    附加其他功能:

    • 图片超过控件的大小自动出现滚动条,并支持鼠标拖动。
    • 图片小于控件尺寸自动居中
    • 可以通过属性获取图片的宽高
    • 支持六种边框样式

    图片内容操作(本部分使用api实现可能效率不是很高):

    • 顺时针、逆时针、180度旋转图像
    • 水平、垂直镜像
    • 灰度显示
    • 缩放图像

    以上就是简单的介绍,详细内容请到我的主页下载示例工程及控件

    个人觉得不是还不是很理想。不过在要求不是很严格的情况可以使用,至于这个控件到底有没有用,使用的人自己评论吧!

    -----------------------------

    我也一直因为VB不适合做图像处理方面的工作,而且非让VB做也有些强人所难,我想微软开发VB也没打算向图像处理方面发展,我觉得VB还是比较适合做上层的管理程序!

    但是在实际使用中,如果将bmp转化为jpg的问题经常遇到,也使用过几个第三方组件,大部分都要我花钱去买,因此这个周末我就决定试着自己写一个这样的组件,专家级的可能不需要,但是在一般的场合还比没有强的,于是借鉴John Korejwa 的提供的算法用VB(请原谅,我目前就对VB熟悉些)开始实现它,写的过程干脆就把我常遇到的问题结合到一起,最后就成了这个控件,可以说vb中picturebox和scrollbar有的限制我这个控件同样有,但是这里把scrollbar的一个颜色方面的bug消除了。

    没有什么特别之处,我仅仅把几个功能封装一下。所以我也觉得不理想,但是对于要求不是很高的人,还是可以使用看看。

    posted on 2004-04-19 11:13:00 by shannon  评论(20) 阅读(7187)

     
    2004年04月12日

    修改自Matthew1471's version of BlogX V1.0.3.05

    Mtthew1471's BlogX's 功能:

    • 完全在线的blog配置面板,方便进行blog配置.
    • 允许开启/关闭分类.
    • 允许开启/关闭日期链接.
    • 可以通过"OtherLinks.Txt"文件自定义扩展链接列表.
    • 允许设置每页显示的日志数目.
    • 允许在线邮件发送功能.
    • 允许自定义切换主题.
    • 支持RSS (Really Simple Syndication).
    • 可以设置12 小时制和24 小时制时间格式.
    • 提供在线的disclaimer 编辑和修改密码功能.
    • 动态创建分类.
    • 检查 SQL溢出.
    • 提供Matthew1471's WinBlogX.的windows客户端管理工具
    • 方便的安装配置

    目前我在原有版本的基础上进行了一下几处修改:

    • 主要内容的汉化
    • 页面布局,默认主题风格,因为我对页面布局进行了调整所以原有主题文件将不在适用!
    • 文本编辑器

    如果您想查看效果,请访问本人的blog,如有什么好的建议请到到我的论坛

    我改动内容并不多,如果你要使用本程序可以下载,自由使用,但是请一定保留原作者的版权信息!

    Powered by Matthew1471's edition of BlogX

    当前的用户名是:blanksoft.com 密码:blanksoft

    登陆后,在页面右下角有管理菜单,可以进行修改用户名、密码一进配置您的blog信息!

    到主页下载

    posted on 2004-04-12 11:03:00 by shannon  评论(35) 阅读(22240)

     
    2004年04月02日

    主页论坛启动之后,今天又启动了真正属于自己的blog(自己的虚拟主机,自己修改的程序,自己设计的风格),虽然还没有最后完成但是已经可以使用。

    对于“博客堂”我是做为面向广大技术高手的窗户,而我自己的blog就可以比较随意的记录我的生活琐事,我的胡思乱想,以及我整个网站设计过程!

    这个blog程序(asp程序)等我改的稍微满意点,如果有谁要我在提供下载,以前没有用过asp,所以可能改的不好!

    主题依然是“我思故我在”,我为什么老喜欢这句话呢?因为我觉得笛卡尔说这句话的意思是我无法否认自己的存在,因为当我否认怀疑时,我就已经存在。 他希望我们的一般知识也能跟数学知识一样,从最稳定的根本出发,进而导出所有可信赖的知识。所以他开始寻找最根本的无法怀疑的知识 – 就是我存在 (我思故我在)。藉由这个根本开始构建他认为值得信赖的知识系统。
    http://www.blanksoft.com/blogx/

    ----------------------------------------------------

    谢谢您的关注,我在这里回复一下:

    回复:alex孙展波

    我的虚拟主机提供商是:中华名网(www.bigwww.com

    其实我当初选择他的理由是因为他比较便宜,

    我注册一个国际域名65元,150M全能空间(100M网页空间,50M邮箱:允许10个用户),支持asp,php一年150元,比较了几家,这家最便宜,所以我就在这购买了,不过我有一点不放心,因为我开通主页最初,就出现域名解析错误的问题,文件上传功能不能用,我不想太麻烦他们,所以自己写程序进行检测他们服务器支持的email组件和文件上传组件,刚开始没检测到文件上传组件,但是过了几天又有了,其实我最关心的就是服务器是否能稳定工作,到目前位置,还算令我满意。我也和他们客户服务中心总统邮件联系过,反映也很快!我如实说出我的想法,我没有给他们做广告的意思,如果感兴趣,想测试什么可以先用的我的空间来测试。

    上传组件检测:http://www.blanksoft.com/tools/uploadComponentTest.asp(我就知道这几个组件,所以就列出这几个)

    email组件检测:http://www.blanksoft.com/tools/testemailcomponent.asp(可以看出支持四种)

    其实我最初建那个论坛就是方便同学联系,但是我的同学中经常上网的就三五个!

    回复: 小彻小悟isaac

    isaac 你好像哪里弄混了,asp.net的可不是我放出的,其实我对.net现在也是一知半解,没时间学,只在上下班路上才能抽空看看书,而我现在用的这个blogx其实就是有些模仿。text的这个版本,但是还有很多地方不完善,我现在修改的地方还不多,我想在稍微改改在放出,现在连删除日志还做不到,另外我还想将它的编辑功能提高一下,现在基本就是普通的文本框,我打算加入一个richtextbox,这个blog支持主题,我仅仅修改了默认的主题可界面布局。如果要下载,我会在http://www.blanksoft.com/blogx提供代码下载!

    posted on 2004-04-02 18:15:00 by shannon  评论(24) 阅读(4742)

     
    2004年04月01日

    我一直以为对于Visual Studio 6.0 ,SP5是最后的补丁版本,但是现在又有了Service Pack 6!

    http://support.microsoft.com/default.aspx?scid=kb;en-us;834001

    上面的地址列出了sp6修复的BUG列表,我更关心VB部分,修复了很多。

    可到此下载

    http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/

    posted on 2004-04-01 08:34:00 by shannon  评论(20) 阅读(11389)

     
    【第1页/共5页,67条】
    首页
    前页
    1

    Powered by: Joycode.MVC引擎 0.5.2.0