飞's profile程序人生PhotosBlogListsMore Tools Help

Blog


    February 23

    青黄不接的机遇

        客户端软件开发现在是什么样子的一个状况呢?C/S结构的东东不是主流了吧,B/S结构的发展又遇到不少瓶颈。Smart Client时代要到来了么,可是还没有出现一个很好满足要求的语言或者平台。
        未来的这个时代,客户端又变成了重心,随着个人计算机性能的不断提升,有很多事情都可以不必通过服务器去做了,跟原来的C/S结构相比,显著的特点是网络协议层次的提高,从TCP变成了HTTP,能够兼有原来C/S的客户端强悍功能和B/S结构的跨防火墙等特点。
        从服务端来说,没什么大问题,web service流行了起来,但是相比之下,客户端有点可怜,优势最大的Microsoft .net framework要取代win32 API为基础的软件开发,也还是需要不少时间的,这个时候,真叫一个青黄不接。
        那么,总不能什么都不做的,继续在原来的东西上面做文章吧,不得已,只好还继续折腾浏览器,因为现在它还存在着。在浏览器里面开发,主角就是多年不变的script了,事物毕竟是在进步的,我接触javascript是98年,那时候功能还是挺弱的,不过已经可以做很多效果了,仅仅是一些特效而已,谁都不会当真拿它来做个大东西。这么多年下来,javascript一路进化,到了1.5的版本,特性挺多,不过我用的最多的还是M$的JScript,因为我从来都没在别的浏览器里面开发过,虽然IE并不是很稳定,很多地方不好,但是功能强大是足够有诱惑力的一件事情。
        其实一段时间(两或三年)以前,已经有很多人要用script做大玩意了,做出来的东西还是不少的,国外bindows是个很出色的框架,其他的也有一些,最近一阵51js的一些人搞的jsvm,也是个不错的框架,可是不知道为什么,我老觉得他们偏离了方向。打个比方吧,我觉得如果把java那样的语言比喻成钢筋混凝土,script语言就像竹子,同样是造房子,各有各的造法,不一定也要把竹子按照钢筋混凝土的方式去折腾,竹子就该做有竹子特色的屋子,精巧漂亮。
        我自己,几年来,大概写到现在写了两万行js代码吧,其中有几个比较有代表性的东西,2003年的词法分析器是一个尝试,2004年的象棋是思维方式转型的产物,虽然一度我以这个东西而高兴了好一阵,但是后来渐渐觉得那代码的实现方式不够优雅,好的代码是应该如同艺术品一样的。我用js做的最庞大的东西则是这半年多来做的流程建模子系统,做这个东西之前,是不知道自己能做成这个样子的,虽然有很多地方我还不是很满意,但我毕竟惊叹于摆在我面前的东西,因为它改变了我的看法,改变了我的一些思维方式,我终于觉得,script还是能做很多事情的,在现在这个青黄不接的时代,它还是应该好好作为,最后辉煌一把的。
        一种语言的辉煌,总是要有很多不朽的作品来陪衬的,正如unix系统对于C语言,不然,纵使语言本身如何伟大,当黯然逝去的时候,也留不下多少值得回味的东西。
        好吧,我想,我该做点什么了。生活并不是只有工作,而且,并不是只有在工作的时候写代码才是一个优秀的程序员。靠工作去培养自己的实力,实在不是一个好的打算,功利性太强了,无法实现出真正的艺术品。嗯,那么有时间我就动手吧,平均每天一个小时的时间应该还是能找到的,呵呵。
        快下班了,不写了。不是我上班的时候偷懒哦,是系统变更,到明天早上才能继续干活,发呆还不如写点感想,充分利用时间,嗯嗯,写得好乱哦。
    July 13

    自动改IP

        天天带电脑,到公司要改IP、掩码、网关跟DNS,回来又要改,麻烦死了,写了个代码,保存成officeIp.vbs,双击就可以了。再copy一个,改成住的地方的,叫houseIp.vbs,就搞定了,这下轻松了,嘿嘿。代码如下:
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colNetAdapters = objWMIService.ExecQuery _
        ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    strIPAddress = Array("10.42.34.16")
    strSubnetMask = Array("255.255.252.0")
    strGateway = Array("10.42.35.254")
    strGatewayMetric = Array(1)
    arrDNSServers = Array("10.30.1.9", "10.30.1.10")
     
    For Each objNetAdapter in colNetAdapters
        errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
        errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
        objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)
        If errEnable = 0 Then
            WScript.Echo "The IP address has been changed."
        Else
            WScript.Echo "The IP address could not be changed."
        End If
    Next