感悟一

    其实有很多事情,你根本说不出它是对是错,即使你用很正确的逻辑,花很长的时间,你仍然不能得到令你满意的答案。就像《美丽心灵》中的主人公,他希望用自己的才华和惊人的逻辑思维弄懂一切东西,包括感情,可最终都是不可能的。

Posted: November 23, 2006 Comments (0)

计算开机时间的软件

今天在电脑面前从中午坐到晚上,终于将用来计算电脑开机时间的软件写完了,使用这个软件可以知道某段日子你的电脑的总工作时间,进而推断出电费情况,这在人们使用电脑时间很不均匀而又要交纳昂贵的电费的宿舍里比较有用,可以根据每个人的开机时间交纳相应比例的电费。

这次编写软件使用的是原本再也不想接触的vb.net,高中的时候读过一本这方面教程而且上机操作过,但直到现在还没有很认真的学习过,可以说是完全荒废了。更重要的事,编写当前软件要解决的问题非常之多,令我根本无从下手。一开始只能从google搜索相关信息从0学习日志的使用,学习vb的类及其成员。到黄昏的时候,这些问题就渐渐明朗了,到晚上,经过深入分析,终于写完了。

这件事让我想到,将来走向社会的话,所从事的行业很可能根本就不是我们在大学里学习研究过的,要想在社会中成长,就应该掌握从一个行业迅速转入另一个行业的能力,其中自学能力和自信心非常重要。我们应该在大学里就注意培养自己的这方面能力,主动扩展自己的知识面,同时还要一直相信没有什么是不可能的,我能过完成任何事情。

鉴于对开源的热爱,我也将这个程序的源代码及注释公布出来,希望一起交流学习。
(由于是可视化的开发工具,相应控件没有在代码中表现出来。)

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        ‘该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()

        ‘在 InitializeComponent() 调用之后添加任何初始化

    End Sub

    ‘窗体重写 dispose 以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ‘Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    ‘注意: 以下过程是 Windows 窗体设计器所必需的
    ‘可以使用 Windows 窗体设计器修改此过程。
    ‘不要使用代码编辑器修改它。
    Friend WithEvents EventLog1 As System.Diagnostics.EventLog
    Friend WithEvents cong As System.Windows.Forms.Label
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents screen As System.Windows.Forms.Label
    Friend WithEvents displayItem As System.Windows.Forms.Button
    Friend WithEvents fromDatetime As System.Windows.Forms.DateTimePicker
    Friend WithEvents toDatetime As System.Windows.Forms.DateTimePicker
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.EventLog1 = New System.Diagnostics.EventLog
        Me.screen = New System.Windows.Forms.Label
        Me.displayItem = New System.Windows.Forms.Button
        Me.fromDatetime = New System.Windows.Forms.DateTimePicker
        Me.cong = New System.Windows.Forms.Label
        Me.Label2 = New System.Windows.Forms.Label
        Me.toDatetime = New System.Windows.Forms.DateTimePicker
        CType(Me.EventLog1, System.ComponentModel.ISupportInitialize).BeginInit()
        Me.SuspendLayout()
        ‘
        ‘EventLog1
        ‘
        Me.EventLog1.Log = "System"
        Me.EventLog1.MachineName = "xombat-thinkpad"
        Me.EventLog1.SynchronizingObject = Me
        ‘
        ’screen
        ‘
        Me.screen.Location = New System.Drawing.Point(24, 112)
        Me.screen.Name = "screen"
        Me.screen.Size = New System.Drawing.Size(200, 40)
        Me.screen.TabIndex = 2
        ‘
        ‘displayItem
        ‘
        Me.displayItem.Location = New System.Drawing.Point(56, 168)
        Me.displayItem.Name = "displayItem"
        Me.displayItem.Size = New System.Drawing.Size(120, 48)
        Me.displayItem.TabIndex = 3
        Me.displayItem.Text = "显示开机时间"
        ‘
        ‘fromDatetime
        ‘
        Me.fromDatetime.Location = New System.Drawing.Point(40, 24)
        Me.fromDatetime.Name = "fromDatetime"
        Me.fromDatetime.Size = New System.Drawing.Size(120, 21)
        Me.fromDatetime.TabIndex = 4
        ‘
        ‘cong
        ‘
        Me.cong.Location = New System.Drawing.Point(16, 32)
        Me.cong.Name = "cong"
        Me.cong.Size = New System.Drawing.Size(24, 16)
        Me.cong.TabIndex = 5
        Me.cong.Text = "从"
        ‘
        ‘Label2
        ‘
        Me.Label2.Location = New System.Drawing.Point(64, 72)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(16, 16)
        Me.Label2.TabIndex = 6
        Me.Label2.Text = "到"
        ‘
        ‘toDatetime
        ‘
        Me.toDatetime.Checked = False
        Me.toDatetime.Location = New System.Drawing.Point(88, 64)
        Me.toDatetime.Name = "toDatetime"
        Me.toDatetime.Size = New System.Drawing.Size(120, 21)
        Me.toDatetime.TabIndex = 7
        ‘
        ‘Form1
        ‘
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(240, 230)
        Me.Controls.Add(Me.toDatetime)
        Me.Controls.Add(Me.Label2)
        Me.Controls.Add(Me.cong)
        Me.Controls.Add(Me.fromDatetime)
        Me.Controls.Add(Me.displayItem)
        Me.Controls.Add(Me.screen)
        Me.Name = "Form1"
        Me.Text = "显示开机时间"
        CType(Me.EventLog1, System.ComponentModel.ISupportInitialize).EndInit()
        Me.ResumeLayout(False)

    End Sub

#End Region
    ‘此软件在什么情况下不适用:
    ‘1.通宵干电脑,而且在规定的断电时间前死机
    ‘2.玩电脑经常死机,而且断电时间和东北大学六舍的断电时间严重不一样的宿舍

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        fromDatetime.Value = DateTime.Now.AddDays(1 - DateTime.Now.Day)         ‘默认值设为从这个月的第一天开始算起

        toDateTime.Value = DateTime.Now                                         ‘将当前时间设为默认值,作为时间段的末端
    End Sub

  
    Private Sub DisplayItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles displayItem.Click
        Dim entry As EventLogEntry
        Dim a As DateTime                                                       ‘a作为开机时间在下面的循环中被使用
        Dim opened As Boolean = False
        Dim spanTime As New TimeSpan(0)
        ‘”””””””””””””””””””””””””””””””””””'’用她的生日作为日期来填充这两个断电时间变量的初始化参数
        Dim forceShutdownTime As New DateTime(2006, 1, 15, 23, 0, 0, 0)           ‘周日到周四晚上的关机时间11点

        Dim fromTime As DateTime = fromDatetime.Value                           ‘处理起始时间,使之从该天的0点0分0秒开始算起
        fromTime = fromTime.AddHours(0 - fromTime.Hour)                         ‘否则,该天的时间会设为现在的时间
        fromTime = fromTime.AddMinutes(0 - fromTime.Minute)
        fromTime = fromTime.AddSeconds(0 - fromTime.Second)

        For Each entry In EventLog1.Entries
            ‘”””””””””””””””””””””””””””””””””'’筛选时间段和特定事件
            If (entry.EventID = 6005 Or entry.EventID = 6006) And entry.TimeGenerated >= fromTime And entry.TimeGenerated <= toDatetime.Value Then
                If entry.EventID = 6005 And Not opened Then                     ‘开机时间
                    a = entry.TimeGenerated
                    opened = True
                ElseIf (entry.TimeGenerated.Month > a.Month Or (entry.TimeGenerated.Month = a.Month And entry.TimeGenerated.Day > a.Day)) And entry.EventID = 6005 And opened Then
                    ‘如果有死机事件发生,则会出现连续的多次6005事件,
                    ‘如果这些6005事件发生在同一天,则后面的6005事件信息舍去;如果发生在不同的日期,
                    ‘那么第一个开机事件相对应的关机事件被认为是强制关机(, 关机事件为学校规定的断电时间)

                    forceShutdownTime = forceShutdownTime.AddYears(entry.TimeGenerated.Year - forceShutdownTime.Year)    ‘将日期设为当前日期才能加减计算出开机时间
                    forceShutdownTime = forceShutdownTime.AddMonths(entry.TimeGenerated.Month - forceShutdownTime.Month)
                    forceShutdownTime = forceShutdownTime.AddDays(entry.TimeGenerated.Day - forceShutdownTime.Day)

                    spanTime = spanTime.Add(forceShutdownTime.Subtract(a))

                    If entry.TimeGenerated.DayOfWeek > DayOfWeek.Thursday Then                    ‘如果在星期五星期六这两天死机,断电时间为11点
                        spanTime = spanTime.Add(forceShutdownTime.Subtract(forceShutdownTime.AddDays(-2)))
                    End If
                    a = entry.TimeGenerated
                    opened = True
                ElseIf entry.EventID = 6006 And opened Then                                         ‘关机时间
                    spanTime = spanTime.Add(entry.TimeGenerated.Subtract(a))
                    opened = False
                End If
            End If
        Next
        If toDatetime.Value.Day = DateTime.Now.Day Then
            spanTime = spanTime.Add(DateTime.Now.Subtract(a))                                       ‘当前这次的开机时间
        End If
        screen.Text = "开机时间:" + CStr(spanTime.TotalHours)
    End Sub
End Class
 

Posted: November 4, 2006 Comments (0)

海阔天空

如果心中全是迷茫,那就用歌来发泄吧

海阔天空
我曾怀疑我 走在沙漠中 从不结果 无论种什么梦
才张开翅膀 风却便沉默 习惯伤痛能不能 算收获
庆幸的是我 一直没回头 终于发现 真的是有绿洲
每把汗流了 生命变的厚重 走出沮丧才看见 新宇宙
海阔天空 在勇敢以后 要拿执着 将命运的锁打破
冷漠的人 谢谢你们曾经看轻我 让我不低头 更精采的活
凌晨的窗口 失眠整夜以后 看着黎明 从云里抬起了头
日落是沉潜 日出是成熟 只要是光一定会 灿烂的
海阔天空 在勇敢以后 要拿执着 将命运的锁打破
海阔天空 狂风暴雨以后 转过头 对旧心酸一笑而过
最懂我的人 谢谢一路默默的陪着我
让我拥有好故事可以说 看未来 一步步来了

Posted: October 29, 2006 Comments (0)

7月27日

Movies:
《美丽心灵》
影片越能写到心灵深处,越能引起观众的震撼。
《我们的存在》
现在很火的动漫,描写得很细腻很健康,能让人很容易联想到《冬日恋情》
Posted: September 22, 2006 Comments (0)

使用google为你的网站/blog升值

Google AdSense:通过广告获得收入
你必须先申请。
      Google AdSense是一个快速简便的方法,可以让各种规模的网站发布商为他们的网站展示与网站内容相关的 Google广告并获取收入,这样你可以通过网页获得经济效益。
能够在您的内容网页上展示的 Google 广告既可以是按每次点击费用 (CPC) 付费的广告,也可以是按每千次展示费用 (CPM) 付费的广告,而 AdSense for search 结果页仅展示 CPC 广告。也就是说,在用户点击广告或者您的网站上展示了广告客户的广告时,广告客户会向您付款。您收到的金额是针对贵网站所发生的一种或两种行为的一部分付款。
Google Sitemaps:提交您所有的网址供 Google 索引
通过Google Sitemaps,您可以向 Google 提供有关您所有网页的具体信息,如网页的最新修改时间或网页的更改频率,而获得更为智能的抓取。
GoogleGoogleAdWords:提高网站的访问量
(前提是:如果你很有钱的话,或者你肯为你的网站花钱的话)你可以通过google.像别的网站投放广告,收费原则是点击付费,不点击不付费。 也就是说,只当您的广告产生效果后,您才需要付费。
Google Analytics介绍:精明. 易用. 免费.
Google Analytics会告诉你你想知道的任何东西,包括你的访客是如何找到你的,他们和你的网站是如何相互影响的。这样你可以将你的行销资源集中在那些可以获得ROI(投资回报率)的参与和互动上面,从而改善你的网站使覆盖更多的访客。
Google还为发布商提供了更多 Google 工具
https://services.google.com/inquiry/publishertools?hl=zh_CN
Posted: Comments (0)

linux下最新版本Apache(version2.2.3)的安装与配置

学习前提
  1> 安装了linux操作系统,本人使用的是redhat8.0.
  2> 会使用终端,只需懂得cd命令.
  3> 拥有root权限.
       注意: 必须从root用户安装,配置和启动程序,所以以普通用户登录,然后再使用su命令获得root的权限这种方法非常重要.你当然可以从一开始就以root用户登录来实施以下操作,但这样,安全性会有所降低.
安装
安装前需求
   1.硬盘空间:
   需要至少50M的临时硬盘空闲空间.安装之后,Apache会占用大约10M硬盘空间,具体大小还要看你选择的设置和第三方模块.
   2.ANSI-C 编译器和Build(生成)系统
   需要安装上ANSI-C编译器,推荐来自FSF的GCC(2.7.2版本很好),如果没有的话,你的编译器至少要支持ANSI.另外你的PATH不许包含有基本的build(生成)工具,比如make.
   3.保持精确的时间
   因为http协议的很多组件都倚赖于一天中的时间.(通常基于NTP(网络时间协议)的ntpdate或xntpd程序被用来作这些.)
   4.Perl5(可选的)
   有些支持脚本比如apxs或dbmmanage(他们是用perl写的)需要Perl 5编译器(5.003或更新的版本会非常有效).
   5.apr/apr-util >= 1.2
    apr和apr-util已经被绑定在Apache HTTPD原文件的发行版本中,在大多数情况不会出现什么问题.但是,如果你的系统中已经安装了apr或apr-util的1.0或1.1版本,你就必须先升级他到1.2版本,或者对httpd进行单独编译生成.要使用绑定的apr/apr-util原文件,你必须手动安装他们:
    # Build and install apr 1.2
    cd srclib/apr
    ./configure –prefix=/usr/local/apr-httpd/
    make
    make install
    # Build and install apr-util 1.2
    cd ../apr-util
    ./configure –prefix=/usr/local/apr-util-httpd/ –with-apr=/usr/local/apr-httpd/
    make
    make install
    # Configure httpd
    cd ../../
    ./configure –with-apr=/usr/local/apr-httpd/ –with-apr-util=/usr/local/apr-util-httpd/
下载
    两者任选一个
    * Unix Source: httpd-2.2.3.tar.gz(http://apache.justdn.org/httpd/httpd-2.2.3.tar.gz
    或
    * Unix Source: httpd-2.2.3.tar.bz2(http://apache.justdn.org/httpd/httpd-2.2.3.tar.bz2)
编译-安装
   你必须先看看安装需求中的第5条.
   打开终端,进入下载的文件所在的目录(使用cd命令).
1.解压缩下载的文件
   如果下载的以.gz结尾的文件,使用这个命令:
   tar xvfz httpd-2.2.3.tar.gz
   如果是下面的以.bz2结尾的文件,使用下面两个命令:
   bunzip2 httpd-2.2.3.tar.bz2
   tar xvf httpd-2.2.3.tar
2.编译
   压缩包被解压缩为一个目录树,进入这个目录httpd-2.2.3:
   cd httpd-2.2.3
   然后执行以下的命令:
   (以下三行为一个命令)
   ./configure –prefix=/usr/local/apache2.2.3 \
   –enable-rewrite=shared \
   –enable-speling=shared
3.生成(build)
   在终端中输入:
   make
4.安装
   在终端中输入:
   make install
   程序安装在/usr/local/apache2.2.3/中
配置
   打开apache2.2.3/conf中的httpd.conf文件进行编辑.由于对于其它用户,这个文件为只读,所以,你应该以root身分登录来编辑,或在命令行中使用su命令,然后使用vi编辑.
   我们只改变首字母不是#的行,因为#表示注释符号,后面的文字被注释掉了,修改这些不会对程序运行有什么影响,除非你把#去掉.
   1>ServerAdmin you@example.com
      后面的邮箱地址改为你自己的邮箱地址,比如我改成了:
      ServerAdmin xombat@hotmail.com
   2>如果你的计算机有固定的IP地址(比如为192.168.0.12),你可以将
      Listen 80
      改为:
      Listen 192.168.0.12:80
   3>建议在实施这一步之前,首先创建一个专门用来运行apache程序的用户,比如:WebServer(创建用户的过程不再详叙),在WebServer组中
      如果创建了这个用户,那么可以将:
      User daemon
      Group daemon

      这两行改为:
      User WebServer
      Group WebServer

 说明:上面的配置你可以不做,但按照要求做了,方便性,安全性和运行性能上会有些改善.
运行
   以root用户启动apachectl:
   /usr/local/apache2.2.3/apachectl -f /usr/local/apache2.2.3/conf/httpd.conf
   然后验证是否运行正常,首先你应该知道你的计算机的名字,输入以下命令:
   hostname
   从下面可以得知你的计算机名,假设为xombat,那么打开浏览器,在地址栏中输入的就是:
   http://xombat/index.html
   如果网页显示正常(显示"It work!"),则表示你的apache安装配置正确.
参考资料:
编译和安装:
http://httpd.apache.org/docs/2.2/install.html
还有apache2.2.3安装目录中的conf/httpd.conf文件
Posted: Comments (0)

在linux 中为三键鼠标设置参数

打开/etc/X11/XF86Config文件将其中
Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "PS/2"
        Option      "Device" "/dev/psaux"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "no"
EndSection

中的:    Option      "Protocol" "PS/2"
改为:    Option      "Protocol" "IMPS/2"
将       Option     "Emulate3Buttons"  "no" 删掉.
Posted: Comments (0)

讨论:windows Live 计划

  • 微软的myspace的访问速度越来越慢,而且经过改革,页面变得很简陋,大不如前.
  • 微软的hotmail,登陆速度也是慢得可怜,体验版经常出现界面显示错乱的问题,而且在linux系统中,一些邮件竟然看不到,需要刷新好几次。
  • 每次登录微软的live产品时,本机中安装的msn都会自动启动,而且尝试登陆,这给机子性能造成很大影响。

以上是我在使用windows live产品一段时间后的体会。而且我想采取的最主要计划便是,远离他。恩,不久我的myspace会完全转移到另一个站点,hotmail已经转到yahoo!,至于msn,会尝试完全卸载掉。

      再回过头来看看微软的动作,风风火火要启动Windows Live计划,希望推出很多新服务,但是却没有在这方面倾注足够的精力。大家都知道,微软公司已经"进化"得和中国政府部门很像了,或者高层投入大量资金,但到达下面的却很少;或者只是雷声大雨点小,拿不出资金来,白白耗费了内力。

      但是不能不说微软的初衷是好的,“您的朋友、最新的信息、电子邮件、搜索、PC 文件以及所有信息,您联机时关心的所有内容都融为一体”,这固然会给用户带来极大的方便,但微软没有注意到其他许多同样重要的方面。比如整合的同时还要注意独立,没有人希望自己要查看邮件的同时,还要分出一些宝贵的网络资源去打开目前不想使用的msn,myspace等;增加用户体验的同时还要注意性能,看看微软那极其妩媚的wollop,他确实增加了用户的体验,说实话设计得非常好,但是除了一些网络带宽足够快的用户,我相信大多数网民不会轻易登陆自己的wollop吧,很明显,没有人有哪些闲工夫,望着loading…的窗口等半天,然后耐着性子看着她慢腾腾地处理一些简单的动作。性能对大多数用户,尤其对于商务人士来说,非常重要,在时间(效率)和美观面前,他们当然会选择前者。

      《微软离职员工称windows Live濒临瘫痪》见:http://tech.sina.com.cn/i/2006-08-11/08041081306.shtml

    希望讨论一切有关windows Live策划方面的问题,不包括开发的技术问题

Posted: August 16, 2006 Comments (0)

从msn space中搬出来了

鉴于msn space种种无法令人忍受的缺点,我决定更换BSP,blogsome提供的blog是基于wordpress的,应该不错,就定居在这里了

Posted: Comments (1)

8月15日

信息安全:
一安全专家称:同美国打黑客战等同于自杀
http://community.csdn.net/Expert/topic/4948/4948856.xml?temp=.9122126
看了这篇讨论,不知道你们的信心是增长了还是减得更少了。但不管怎么样,我们还是要努力学习,不光是为了自己,更重要的是保卫国家。
linux
Linux不是Windows
http://www.linuxeden.com/forum/t136261.html
翻译的很好,写得更精辟.
 
Linux培训的正确方向
http://www.lpichina.org/new_linux_1.htm
其他
blog-志趣
去php-wind技术论坛上偶然看到的一篇情感文章:
http://www.phpwind.net/read-htm-tid-16737-keyword-.html
 
苹果树(同上):
http://www.phpwind.net/read -htm-tid-223603-keyword-.html
有个副标题是: 不看后悔一辈子,看了不顶内疚一辈子
 
摘星
http://www.openphp.cn/index.php/article/8/11/index.html

失去,也是一种笃定。
就算拥有的时光,是那么短暂;
能够无怨无悔地为一个人付出,就是幸福。
Posted: August 15, 2006 Comments (0)