• 网志分类
  • » 查看所有日志 (34)
    » 理想 (8)
    » 数学 (2)
    » 物理 (1)
    » 编程 (17)
    » 音乐 (1)
    » 其他 (3)
    » 更新日志 (2)
  • 最新评论
  • 站内搜索
  • 友情链接
  • » 我的歪酷 非非共享界
    » 博客精华

    订阅 RSS

    歪酷博客

    0047170

    如飞 @ 2007-06-20 10:16

     

    C# Libraries

    PDF

    Another PDFLib - Part1: Show text and draw graphs
    Last Updated: 4 Jan 2006  Page views: 20,738  Rating: 2.3/5  Votes: 14  Popularity: 2.7
    A .NET library to create PDF files manually.

    Unedited Reader Contributions

    Project Tool
    Last Updated: 4 Dec 2006  Page views: 6,529  Rating: 4.5/5  Votes: 5  Popularity: 3.1
    Backup your C# solution and projects for archive or source code sharing. Temporary or unused files are excluded.

    Microsoft Office

    Microsoft Excel

    Excel Reader
    Last Updated: 2 Nov 2006  Page views: 10,148  Rating: 3.9/5  Votes: 9  Popularity: 3.7
    Read Excel files in pure C# without interop.

    Multimedia

    Unedited Reader Contributions

    Repair RealMedia Files
    Last Updated: 24 Dec 2006  Page views: 3,189  Rating: 4.5/5  Votes: 8  Popularity: 4.0
    Check and fix errors, rebuild index chunks, cut real media files.

    http://www.codeproject.com/script/articles/list_articles.asp?userid=511631




     
    如飞 @ 2006-12-04 18:07

    以前一直认为宗教就是迷信,有了科学,宗教就不必存在了。

    最近看了《佛法与科学是怎样的关系》一文,言道:“科学是一种工具,而佛法是一种精神,是一种观念,是一种智慧。科学作为工具,需要健全的精神去运用它,去指导它。” 细想,很有道理。

    现代科学在研究和利用自然领域取得了巨大的成就,在社会领域则有些成就还很不完善,在精神领域就更少了。不管在什么领域,科学都是对客观事物的研究和认识,人的主观意志则是由信仰来决定的。

    科学并不是一种信仰,而宗教是解决信仰问题的,因此科学并不能取代宗教。
    在新的信仰体系出现之前,宗教是不会很快消亡的。
    宗教并不是解决信仰的最好方法,也不是最终的方法。

    正确的信仰也需要一套理论体系来说明和确立,这种理论体系与科学应当是并行不悖的。
    一些宗教的教理的起源都比较古老,并沿用到现在,其中有的内容是不科学的,
    并且宗教对人的行为实践提出的指导方法,也不是完全合理的。

    我想正确的信仰将能提升人的精神境界,提高社会的道德水平,达到这样的状态:
    一、没有人违法犯罪,贪污偷盗抢劫杀人。
    二、人们互相帮助,共同为社会的发展作出贡献。
    三、每个人都有正确的人生价值观,积极地实践自己的人生。



     
    如飞 @ 2006-04-04 20:38

    1. 调用可执行程序时传入的命令行参数中有文件路径时,一定要用引号括起来。
       否则当路径中有空格时,要操作的文件和其他的命令行参数都错掉了。

    2. 异常处理一定要想得周到,而且在异常处理中也有可能出现新的异常。
       比如文件是否存在,是否具有只读属性,资源流是否为空等。

    3. Form_Load中放入的代码不能在某些可能的情况下致使窗体不能很快显示。
       比如Timer_Tick事件的调用。

    4. Queue<T>的Count随着入队和出队操作的进行而发生变化,因此根据Count
       做循环时要注意循环操作中Queue的变化。

    5. 多线程中一定要注意各线程操作的公共对象、调用的公共方法是否是线程安全的,
       全局对象的状态能否在各线程的操作中保持协调有效!
       否则不知道什么地方就会出现莫名其妙的错误。

    在各种环境下做多种类型的测试,尽可能地和尽早地发现错误。



     
    如飞 @ 2005-12-12 11:26

    有没有想过电视机、影碟机、空调可以共用一个遥控器? 有没有想过家里的所有电器都能被遥控?
    这就是万能遥控器。其原理是把遥控信号的发射器与掌上电脑集成起来,通过编制软件来设定针对
    各种电器的遥控器界面,这样可以放置的按钮个数是不受限制的,通编程来指定每个按钮所发射的
    遥控信号。

    制定一种遥控信号的通信标准和指令语言协议,凡是可以接收和处理这种信号的电器都能被遥控。
    再进一步,接收器也能发射信号来反馈指令执行的情况或者报告机器的状态。比如温度计、湿度计
    之类的器件可能只需要报告一些参数而不需要执行遥控指令。

    有了互相通信机制后,还可以自动化地完成一些事情。一种是通过定时的方式,指定多长时间后发
    一个指令,过多长时间后再发一个指令,如此继续,通过一连串的指令序列就可以完成一个任务。
    另一种是通过交互的方式,发出指令后,以一定的时间间隔不断地查询机器的状态,当状态参数
    满足给定的条件时再发送其他的指令,这种方式的灵活性和适应性更强一些。

    相当于把电器上需要编程来自动执行的功能剥离出来,都集中到一个遥控器上进行,被遥控的终端
    只需要接收和解码指令并执行就可以了。实现这一系统的几个关键部件如下:

    遥控开关:只接收开关信号,内部有一个可充电电池,开通时自动充电,关闭时由电池来供电,
    要去控制的电源则完全断开,而不像现在的电视机和空调,在关机指令下达后只是处于待机状态。

    可编程的遥控器:可发射的信号由程序来编制,并可以集成到掌上电脑、手机之中。目前的红外
    通迅设备已基本可以满足这一要求。

    通用的遥控指令接收和解码器:由于通信的信号和协议是标准化的,这样的器件便于制造也便于
    集成到各种电器中使用。


     
    如飞 @ 2005-08-31 16:08


    ASP.NET的几个技巧

    1.显示通过代码生成的图片

    把生成图片的代码放在一个aspx页面中,在PageLoad事件中把图片写入输出流:
    private void Page_Load(object sender, System.EventArgs e) {
       string code = Request.Params["code"];
       Bitmap image = DrawImage(code);
       Response.ContentType = "image/gif";
       image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Gif);
       Response.End();
    }

    在需要引用图片的地方,设定图片URL为生成图片的aspx页面:
    ImageCode.ImageUrl = "CodeImage.aspx?code="+code;

    2.使用System.Web.HttpContext.Current来实现一些页面中常用的方法,比如:
    public class WebApp{
    public static void ShowMessage(string message){
       HttpContext.Current.Response.Write ("<script language=javascript>alert('"+message+"')</script>");
    }
    public static string CurrentUser{
       get{
           return HttpContext.Current.Session["UserID"]+"";
       }
    }
    }

    3.在自定义的Web控件中,把Javascript脚本文件编译为内嵌的资源,然后从资源中读取脚本并注册。

    public class Res {
       public static StreamReader GetStream(Type type,string name){
           //Assembly assembly = Assembly.GetAssembly(type);
           Assembly assembly = type.Assembly;
           Stream stream = assembly.GetManifestResourceStream(type,name);
           return new StreamReader(stream);
       }
    }

    public class ScriptControl : Control {

       /// <summary>
       /// Register Client Script Block
       /// </summary>
       /// <param name="control">custom web control</param>
       /// <param name="scriptfile">resource script file name</param>
       public void RegisterScript(string scriptfile){
           if (!this.Page.IsClientScriptBlockRegistered(scriptfile)) {
               StreamReader reader = Res.GetStream(this.GetType(),scriptfile);
               using(reader){
                   string script
                       = "<script language=\"javascript\" type=\"text/javascript\">\r\n<!--\r\n"
                       + reader.ReadToEnd()
                       + "\r\n//-->\r\n</script>";
                   this.Page.RegisterClientScriptBlock(scriptfile, script);
               }
           }
       }
    }

    [DefaultProperty("Text"),
    ToolboxData("<{0}:ShowDialogListBox runat=server></{0}:ShowDialogListBox>")]
    public class ShowDialogListBox : ScriptControl {
       ......
       protected override void OnInit(EventArgs e) {
           this.RegisterScript("EnDeListBox.js");
       }
       ......
    }