随笔-10  评论-46  文章-0  trackbacks-1
  2008年3月3日

看着baidu的空间不错,欢迎大家来踩
http://hi.baidu.com/microanty
posted @ 2008-03-03 11:42 microant 阅读(11) | 评论 (0)编辑
  2007年9月14日

     岁月匆匆无情,虽说没有催人老的这种感慨,时间却也不知不觉从指尖悄悄溜走。

一直在想,自己 抓住了什么,自己得到了什么,是不是自己想要的,是不是自己喜欢的。

自己失去了什么,是不是不再需要的,或许是不是现在紧缺的。

人在轻松自在的时候很难去思考,难怪苏格拉底会成为哲学家,压力之下,人总是要思考的。“假如你的妻子是善良的,你就是一个幸运儿……”。很显然,我是不会成为哲学家的了。但是老苏给了我们一个很豁达的想法,一种大度,也是一种情怀。

过一些时间,总想驻足一下,回头看看自己或深或浅的脚印,记录一下,聊以自慰。

论论国家大事,银行调息了,猪肉降价了,安倍辞职了,老帕西游了,马上毕业了,学校开学了,食堂涨价了……请务必记住,这是一个大环境,大环境下的个人行动,总会有联系的吧。

最近,周围的兄弟都在发飙,偶是这么认为滴。老杨终于买了自行车,chao哥在学校与广大MM打成一片,P哥也开始沐浴了不一样的阳光,我呢,则是中规中矩,一个哗哗响却没铃铛的自行车,“奔波”在校园里。

首先,祝福P哥,以及P哥滴那位一直没看见尊容滴嫂子。说句心里话,就这么过就行了,哈哈。不过这个重色轻友滴老哥,到现在都没见个图呢都。我建议发动一批再烟滴同志,在老杨滴带领下,掀起一波跟踪+偷拍滴狗仔高潮,充分显示人民群众是不可战胜地。玩笑归玩笑,希望能有时间聚聚。

老杨,要啥自行车啊,不知道上周那个20公里是不是让你放弃了单车去拉萨滴想法。但是,骑车到这来这一步时务必要实施滴,来了请你米西,8D40要拿来爽爽,还没玩过单反呢。建议再上个长焦镜头,哈哈。其实,挺想骑车去西行滴,无奈兄弟我是一俗人,理想之前现实更重要一点。现在不骑,以后估计也就没有耐力和体力了。So,又做了一个梦,等咱有了大米,咱就整个陆虎开到伊拉克去,暂且叫理想吧,呵呵。

Chao哥,汉子,爷们,兄弟,啥都不说了。你小日子挺滋润,上次到我家没能够让你进门,哈哈。暑假又没能去看看你,8过,兄弟有空一定去吃你一顿,看看你的安乐窝。

又开学了,又交钱了,有一批新生入学了。没曾想,暑期居然要起了电费,faint,这群人总能制造出点事端出来,忍了。老规矩,偶很不舍得滴祭出自己的零钱罐,狠狠心把近乎所有的钢蹦拿了出来。这次楼下阿姨似乎很不乐意,why,数钱难道不好玩吗。

前天,被神秘招聘,号称薪水不菲。没曾想,要做waigua,我滴神,的确很好玩啊。8过,精力不够,时间不够,8是长期,最重要滴,在咨询偶滴法律顾问后,偶觉得不妥,不妥。waigua滴不做。热身滴目的达到了,路在远方,不在此时,此地。

洋洋洒洒,松松散散,看的累的就批一句,看不惯的就说一声,总之,有人捧场就行了。

这几天,在三叶的花中无意之间找到了四个叶,难不成就是传说中的四叶草,希望她能带来运气,能让她顺利通过明后天的司考,真诚祈愿……


posted @ 2007-09-14 10:44 microant 阅读(40) | 评论 (7)编辑
  2007年8月28日
     摘要: 最近正在搞我的毕业论文,要用的集群,搞分布式计算,所以就研究了一下mpich的安装,也是边学边做记号,一直到现在都没有调通,呵呵,一会提出来,还请高手给指点。
1、MPICH安装配置
下载就不必多说了,到官方网站下载就行了http://www.mcs.anl.gov/mpi/mpich2 。
在配置前每个主机最好都添加一个用户名和密码都相同的管理员帐户。
安装时在每台主机上用具有管理权限的帐户登录,运行直接安装就可以了。安装之后在安装路径有MPICH2的目录,并且进程管理器中可以看到smpd.exe的进程,说明安装已经成功,接下来就是如何配置的问题了。
首先要在每台主机上进行注册,注册可在安装目录bin目录下运行wmpiregister.exe,输入前面添加的用户名密码,如图:  阅读全文
posted @ 2007-08-28 21:37 microant 阅读(1401) | 评论 (15)编辑
  2007年8月25日
     摘要: 抽空写一下自己用的关于GridView存储过程分页的代码,优点就不用多说了,主要是用于数据库端分页,解决数据量过大的分页问题。存储过程还是以前写的CTE方法的分页,还是在这里贴一下代码吧,具体请见存储过程分页实现代码,2005 T-SQL新增功能一文。
USE [WGSMSDbase]
GO
/**//****** 对象: StoredProcedure [dbo].[sp_CTE] 脚本日期: 08/25/2007 11:39:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:
-- Create date:
-- Description: 阅读全文
posted @ 2007-08-25 11:54 microant 阅读(1023) | 评论 (4)编辑
  2007年8月23日
    好些天都在糊里糊涂,最近也比较懒,居然看到了个留言,永远不更新的博客一等奖,相当尴尬,哈哈。写一些最近自己或别人遇到的小问题吧。
    1、关于updatepanel注册js
    最近在项目里需要用到altas,本人也是新手,老用最简单的updatepanel,在注册脚本时也遇到了困难,无法注册。本来是在updatepanel中放了一个gridview,偶想在girdview中一个模板列点击弹出一个窗体,注册window.open()来解决问题。本来不是在updatepanel中,所以用ClientScript.RegisterStartupScript直接注册挺好使。
    在拖入updatepanel后发现无法注册脚本,想想RegisterStartupScript本来是在页面加载时启动js的,在updatepanel中部分刷新,肯定是无法注册的。
    后来发现了ScriptManager.RegisterStartupScript方法,挺好使,呵呵。
    ScriptManager.RegisterClientScriptBlock(UpdatePanelName, typeof(UpdatePanel), "标识key", "脚本", true);
    下面是一个demo,模板列定义如下:


<asp:TemplateField HeaderText="客户ID">
     
<ItemTemplate>            
      
<asp:LinkButton ID="linkbtnCID"  runat="server"  Text='<%# Eval("CID") %>' CommandName="linkbtnCID"   >                      </asp:LinkButton>
      
</ItemTemplate>
</asp:TemplateField>
   
    在GridView对应的RowCommand事件中如下操作:

protected void gvClientInfo_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        
//如果是linkButton被点击
        if(e.CommandName.Equals("linkbtnCID"))
        {
            LinkButton lbtn 
= (LinkButton)e.CommandSource;
            GridViewRow dgRow 
= (GridViewRow)lbtn.Parent.Parent;
            
string tmpText = lbtn.Text.ToString();          
            tmpText 
="window.open('customerDetailsInfo.aspx?CID=" + tmpText + "' ,'newwindow','height=550,
                width=700, menubar=no ')
";
            ScriptManager.RegisterStartupScript(
this.UpdatePanel2, this.GetType(), "click", tmpText, true);      
      
        }
    }

    2、关于RegisterStartupScript,RegisterClientScriptBlock
        RegisterStartupScript 将 js嵌入到页面的底部,</form> 的前面
        RegisterClientScriptBlock 将 js嵌入到页面中开启元素 <form> 后面

    3、关于“该行已经属于另一个表”错误
       这个问是出现在不同dataTable之间的行复制出现的问题。
       看这个代码:

       
 DataTable tmpdt = sodo.getDataTable("text", strSql, sp);             
 dt.Rows.Add(tmpdt.Rows[
0]);
    
     这个明显的错误就是tmpdt的行是一个对象引用,相当于一个指针,错误是难免的,可有以下解决办法:

DataTable tmpdt = sodo.getDataTable("text", strSql, sp);             
1、 dt.Rows.Add(tmpdt.Rows[
0].ItemArray);
2、 dt.ImportRow(tmpdt.Rows[0]);
posted @ 2007-08-23 01:05 microant 阅读(456) | 评论 (2)编辑
  2007年7月5日
     摘要: 今天看了看2005中T-SQL的新增功能,心血来潮,试了试利用CTE方法做的分页,感觉还不错。下面贴一下TopN方法和CTE方法的数据分页的存储过程,写的还算是比较通用。性能分析我以后会进一步研究一下。 代码还是先来一个测试用表,代码如下:1SETANSI_NULLSON2GO3SETQUOTED_IDENTIFIERON4GO5CREATETABLE[dbo].[testTable](6[id]... 阅读全文
posted @ 2007-07-05 19:53 microant 阅读(491) | 评论 (3)编辑
  2007年7月1日
      近来在做一个运营系统的开发,做完初步需求后确定同时使用B/S和C/S两种模式进行,主要是考虑到各自的优缺点,B/S主要是用于操作员和工程组这些分散的用户,C/S则来做一些管理用户。

      下面来写一下自己关于在权限管理方面的工作,有一些不足请指正。

       在设计中,主要用到了角色、用户组。但是这里的角色做的比较怪异,也是我和总设计一个争议的地方,他坚持用户的一个直接授权,而提出了角色这个概念则是在具体的授权操作中按照用户性质粗分了几类,以方便授权操作,号称虚拟角色,呵呵。我还是比较坚持用户—〉角色—〉角色授权—〉模块这种比较通用的方式。

      上面是一个功能的授权,用户组则是用来进行数据访问限制的。其中分为用于操作员组和工程组的组一,用来规定组的管辖区域,其中还牵扯到跨区域的问题。另外一个组为管理组,规定了组的管辖组一。这样就解决了数据访问域的问题。

      表达能力不佳,说的可能不明确,下面给我数据库的模型图,做的比较匆忙,省略了一些表。其中有用户表:Acount_Users; 表group1和group2主要用来进行控制数据的访问权限,在表rolePermission和表modules主要用来做一个功能权限的管理,说白了就是控制用户所能访问的菜单。而右上角则是纯为了授权方便做的一个分类。如上所说,这个设计没有用到真正的角色概念。

       

      在动态菜单实现的时候主要分为了B/S和C/S两种。

        先说B/S模式,这个超级简单,偶使用了框架和TreeView,在用户登录后把所有所允许的菜单项在TreeView里列出,每个菜单项只需要做一个链接就可以了。但是这不是全部,在每页都会调用一个类方法进行功能权限的检查。在需要的时候要做数据访问权限的验证。

        C/S模式和B/S类似,用到的是MDI容器加载各个模块的MDI子窗体的方法。在用户登录后,用的是MenuStrip控件,根据用户的授权动态的将菜单项载入,并且将每个菜单项加入一个点击事件的委托,此委托用与在点击时判断子窗体的ID,以便加载该子窗体。

        在这里只是大体叙述了自己的方法,省略掉了其中类的设计。都是自己摸索的,有些设计可能并不科学,存在一些问题,还请各位能多多指正,希望能起到抛砖引玉的效果,如果能有好的办法还请赐教。
posted @ 2007-07-01 18:56 microant 阅读(786) | 评论 (8)编辑
  2007年6月30日
      刚刚送走师兄,一切感觉都是那么突然,突然间他们都要离开了。
      师兄已经在去京的列车上,不知道什么感觉,脑海里是淡淡的忧伤,离别的忧伤。
      以前一直有师兄们的照顾,现在他们去工作了,去追求梦想了,希望他们都能够成功,他们都是我的榜样,好榜样
      喝了不少,头脑比较混乱,不知道是离愁,还是酒精的作用,也可能是同时的作用。总之,想起这点点滴滴,就感觉到了光阴易逝。
      自己也马上就要毕业了,好好把握,好好努力......
      
      


posted @ 2007-06-30 21:23 microant 阅读(47) | 评论 (3)编辑
  2007年6月29日

      昨天总算是把CA调通了,本来说是3DES加密,没说什么类型。本来四种类型,结果就用.net 2.0 默认的吧,再去问一下加密向量,结果那边的工程师说俺们这一套没啥向量。那就是ECB模式喽,又一件不幸的事情发生了,默认密钥是个彻头彻尾的弱密钥。用.net这一套还抛出异常,CryptographicException异常。
      恩,换个密钥,积极响应,一切正常,呵呵,也算摆脱了一件事情。
      中午时一个单位终于把经费掏了出来,不容易啊,也算摆脱了另一件事。终于不用像以前那样丁点大的小事就要去看看咋回事了,去了发现一点事没有太痛苦了。一个没有网管的单位最好还是别和他去做事情,太恐怖了。
      老婆一会过来一块吃饭,这些天真是怠慢了,真对不住。想想真是不应该,工作是一顺位的,老婆呢,肯定是零顺位啦
       昨天和一哥们聊天,上来还是挺疑惑的,心情还是挺沉重的。可是呢,我越说她越兴奋,看到现在自己的明显改进,每一件都和老婆息息相关,自己为她做的太少了。
      不过我会好好努力的。

posted @ 2007-06-29 11:23 microant 阅读(20) | 评论 (0)编辑
  2007年6月28日

     1、文件夹权限问题
       前天给一个客户部署了一个关于公文的web项目,部署完之后老觉得系统盘是Fat格式不太好,手比较痒就给转换成ntfs了。结果文件夹的权限都给丢了,导致了web无法访问,但是关于iis的用户和用户组的确是不太熟,可是总不能把所有的权限和用户都给加上吧。so,偶就热线求助了一下场外人员,和家里的比对了一下。
     现坐一下总结,学习一下iis的用户
     没有安装 FrontPage Server Extensions 的 Windows Server 2003上,按默认值安装 IIS 6 时 wwwroot 文件夹的权限设置:
            Administrators - 完全控制
            System - 完全控制
            IIS_WPG – 列出文件夹内容、读取和执行、读取
            Users – 列出文件夹内容、读取和执行、读取
            Internet Guest 帐户– 拒绝写入
        在对应目录分配权限时,一般采取在目录上点击右键, 然后在"属性"中选择"安全", 然后添加用户到当前用户列表中。也可将用户加入一些用户组中,比如administrator,但安全性不高,不推荐。下面是转的一个权限表。
       

ASP.NET 进程帐户所需的 NTFS 权限(转载)

目录 所需权限
Temporary ASP.NET Files%windir%\Microsoft.NET\Framework\{版本}Temporary ASP.NET Files 进程帐户和模拟标识:
完全控制
临时目录 (%temp%) 进程帐户
完全控制
.NET Framework 目录%windir%\Microsoft.NET\Framework\{版本} 进程帐户和模拟标识:
读取和执行
列出文件夹内容
读取
.NET Framework 配置目录%windir%\Microsoft.NET\Framework\{版本}\CONFIG 进程帐户和模拟标识:
读取和执行
列出文件夹内容
读取
网站根目录
C:\inetpub\wwwroot
或默认网站指向的路径
进程帐户:
读取
系统根目录
%windir%\system32
进程帐户:
读取
全局程序集高速缓存
%windir%\assembly
进程帐户和模拟标识:
读取
内容目录
C:\inetpub\wwwroot\YourWebApp
(一般来说不用默认目录,管理员可根据实际情况调整比如D:\wwwroot)
进程帐户:
读取和执行
列出文件夹内容
读取
注意 对于 .NET Framework 1.0,直到文件系统根目录的所有父目录也都需要上述权限。父目录包括:
C:\
C:\inetpub\
C:\inetpub\wwwroot\

        2、FreeTextBox不能提交问题。

        这个问题一般不会遇到,但是恰巧那个服务器预装了版本比较老的2003server,恰巧一老版本的.NET Framework,就导致了这一问题的发生。症状主要是提交按钮点击无反应,明显是提交事件被截获了。本以为是ftb的代码问题,看了相关代码如下:

 1<form name="Form1" method="post" action="Manage_Material_Modify.aspx" language="javascript" onsubmit="if (!ValidatorOnSubmit()) return false;FTB_CopyHtmlToHidden(ftbContent_editor,document.getElementById('ftbContent'),ftbContent_HtmlMode);" id="Form1" enctype="multipart/form-data">
 2
 3<script language="javascript" type="text/javascript" src="/aspnet_client/system_web/1_1_4322/WebUIValidation.js"></script>
 4
 5
 6function ValidatorOnSubmit() {
 7    if (Page_ValidationActive) {
 8        return ValidatorCommonOnSubmit();
 9    }
10    return true;
11}

            在第一行可以看到主要是在onsubmit上出了问题,函数ValidatorOnSubmit返回false,使得无法提交。其中又牵扯到了ValidatorCommonOnSubmit,包含在WebUIValidation.js中。按目录找到这个js文件,发现如下代码:

function ValidatorCommonOnSubmit() 

event.returnValue = !Page_BlockSubmit; 
Page_BlockSubmit = false; 

         
    由于版本比较老,如果页面中有验证的页面是无法提交的,这就可以用下面两种法解决,最简单的就是在页面中去掉validator,可以在web.config中system.web节中配置<pages validateRequest = "false"/>,或者直接在页面中配置。另一种方法就是替换以前的这个js文件,新的js文件中的function如下:

function ValidatorCommonOnSubmit() {
    var result = !Page_BlockSubmit;
    Page_BlockSubmit = false;
    event.returnValue = result;
    return result;
}
          
    最好是替换掉1_1_4322文件夹下WebUIValidation.js和SmartNav.js两个文件。
posted @ 2007-06-28 16:43 microant 阅读(178) | 评论 (5)编辑