May 15, 2004

MovableType(MT) 3.0 变收费软件 [Tech ]

  MT因其前卫的功能,静态内容发布,已经最为流行的个人网站的Blog系统。

  但是刚收到MovableType.org寄来的Mail,大致意思是感谢参与3.0版本的测试(我只是提交过想参加Beta测试的表单,但后来并没有回应了)……然后兴匆匆到官方网站上想下载3.0体验一下,却被满页的$吓住了……原来的movabletype.org/download.shtml也转到了Six Apart销售MT的页面,连原先的免费版本都找不到了……还好自己机器上有存档,否则,哎。

  想想也是,现在随便一个服务器提供商都能提供MT的安装环境,甚至帮你全部安装配制好,实在没道理使用Six Apart的TypePad。Six Apart是.com,不是有大把$养着的open source社区。

  看来偶的2.661已经是Final Version了。

Posted by xdanger at May 15, 2004 08:23 PM | Comments (2) | TrackBack

May 08, 2004

初识Python [Tech ]

  记得第一次看到 Python 这个词是 Dash 跟我说编 BT 的语言号称是和 C# 一样完美的,当时也没注意,上个月看《Thinking in Java》Bruce Eckel 也是大力推荐,昨天在找CMS时发现一个很好用的系统:Plone ,也是Python编的。于是花了两天时间捉摸着入门,发现还是很让人吃惊的。

Python.cn 上是这样介绍的:

  1. 是一种解释性的,面向对象的,具有动态语义的程序设计语言
  2. 适合快速开发
  3. 代码具有优秀的可读性
  4. 具有模块和包的概念
  5. 支持各种主流平台,并具有很好的跨平台性
  6. 可以很容易地包装C/C++的代码供Python使用

  经过短暂实践,我个人总结了以下几点,仅供参考:

  1. Python是支持带类和多继承的面向对象程序设计。虽然面向对象,但是和C++/Java的概念不太一样。在Python中“对象”这个词不一定指类实例。Python中并非所有的类型都是类(而Java几乎可以这么认为),然而,所有的Python类型在语义上都有一点相同之处:描述它们的最贴切词语不是“类”,是“对象”。
  2. 代码格式及其前卫,完全抛弃了C系列,包括Java使用的花括号{},改用空格(Space)或制表符(Tab)控制封装块。比如

    def buildConnectionString(params):
        """Build a connection string from a dictionary of parameters.
        Returns string."""
        return ";".join(["%s=%s" % (k, params[k]) for k in params.keys()])

    代码块(函数,if 语句,for 循环,等等)通过它们的缩排来定义。缩排表示块的开始,非缩排表示结束,不存在明显的括号,大括号,或关键字。这就意味着空白是有意义的,并且要一致。在这个例子中,函数代码(包括文档字符串)缩近了4个空格。不一定非要是4个,只要一致就可以了。第一行没有缩近,则不算在函数内。经过一段时间的适应,你将会心平气和地对待它,开始理解它的好处。一个主要的好处是,所有的Python程序看上去差不多,因为缩排是语言的要求而不是风格问题。这样就更容易阅读和理解他人的Python代码。因此Python赢得了最优美代码、最强的可读性的称号。用Phthon做程序设计,你甚至可以不太考虑你的程序的可维护性很差。
  3. 基本的数据类型有变量:数字型(整型,浮点型,复数,无限制长整型),指针(ASCII码和Unicode码),表,字典。

别人总结的其他几点:

  1. 代码可以被集成为模板和包。
  2. 这种语言支持异常处理追踪并能够列出比较清晰详细的错误提示。
  3. 数据类型非常的强大,而且是动态的。混合的数据类型(例如试图将指针与数相加)将被编译器提出一个异常情况信息。
  4. Python包含了一些高级的程序设计特性,例如代码生成器和解释器。自动垃圾收集功能使你从内存管理的争战中解脱出来。
    庞大的标准库支持很多一般的程序设计任务,比如与网络服务器连接,正则表达式,文件操作。
  5. Python的交互式模式使得调试小段的程序非常便捷。当然,处理大型的程序他还具备一个捆绑式的开发环境,叫做IDLE。
  6. Python编译器是很容易扩展的,我们可以将C或者C++编译后的模板作为新的模板加入到其中。
  7. 编译器也可以被嵌入到另外一个应用程序中以提供一个可编程的界面。
    Python可以在很多不同种类的计算机和操作系统上运行:比如Windows, MacOS, OS/2,以及很多作为Unix分支的操作系统。


参考站点:

 

Posted by xdanger at May 8, 2004 08:30 PM | Comments (0) | TrackBack

May 07, 2004

PHP之MVC [Tech ]

  前段时间在学习Java,顺水推舟得学了MVC构架。在网上查阅相关资料的时候,发现对于PHP是否以及怎样套用MVC构架,已经有相当多的探讨。以下给出几个链接:

  这几篇文章(以及相关的评论)几乎包含了所有PHPer对于MVC构架的认识和疑惑。在我实践使用MVC构造了一个站点之后,可以说对于PHP中的MVC有了自己的一些认识:

  MVC是面向对象思想的集中体现。特别是模块(Model)的封装、抽象,运用得好就能将OO的封装、多态性表现得淋漓尽致。至少Web应用上,MVC肯定是先进的,甚至我个人认为小型的PHP站点也应采用MVC的构架。

  中大型站点一定需要MVC架构。PHP在企业级应用上如此至少,除去商业界和开原界在意识形态上有巨大分歧外,PHP本身的极弱面面向对象的缺陷也是最大的原因。道理很简单,不是高度面向对象的项目,越是大型,维护成本越是成几何级数上升。

  那到底该怎么运用MVC呢?应该说对于不同类型,不同规模,不同开发周期,不同维护费用预算,都可以有不同的具体实现。但是有一点是肯定的:并不像《PHP:MVC迷思》所说的“把业务逻辑并入M中,这其实是MVC的思想背道而驰的。”——业务逻辑绝对应该是Model部分的核心,而这篇文章的作者所指出的类似于JSPJava Beans的作用,只是Model部分最底层的抽象,如果就此理解,那MVC的确不应该应用于PHP了(相信作者肯定没使用过structs)。实际上,判断MVC是否强壮,就是看业务逻辑部分的抽象和封装是否到位。Smarty模版引擎的最大特点就是将业务逻辑从视图中分离,因此说他的思想是最前卫的。以我的看法,Smarty就是在PHP中最大程度地实现JSP的自定义标签库(Custom Taglib),当然,两者还是有很大不同的,这个也只是我个人的理解。如果还不能理解业务逻辑为什么是属于Model部分,那还是先看看一些面向对象的教科书吧。

  BTW:4月25日PHP5出了第二个Candidate版本,虽然对于PHP的前景,尤其是php5大量借鉴Java的特点还有很大的争论,但是我认为PHP5无疑会大大延长其寿命,至少让我在做项目的时候会犹豫到底是JSP还是PHP……PHP5也体现了绝大多数程序员对于PHP的最大需求——面向对象。

Posted by xdanger at May 7, 2004 08:57 PM | Comments (0) | TrackBack

May 03, 2004

买了Notebook PC [Life ]

  记得4年前买第一台PC时,双休日徐家汇电脑铺位前基本都是挤满了人,让人有很凑热闹的感觉,所以去了芙蓉江路的电脑市场配机子,安静些。时隔4年,这个月帮同学配了2台台式机,自己买了台笔记本,逛了无数次徐家汇,很明显的感受就是,台式机已经赚不到钱了,与之鲜明对比的就是笔记本、数码相机的热销。一个双休日一个笔记本的铺位可以卖出15台以上,平均下来每台利润估计至少2k,而一天能卖10台台式机的铺位可以算是很不错了,而利润基本就200左右。

  其实要说的很简单,现在买台式机基本已经没什么风险,竞争相当激烈,只需要一个懂点的人配好部件基本没什么问题了。而如果要买笔记本的话,首先千万得沉得住气,一定不能说着说着就掏钱了,那肯定被砍得头破血流。也不要贸然还价,因为很可能你以为是底价了,没想到他就一口答应了,或者形式上去问问销售代表/店长什么的,回来后跟你说这个价格实在不赚钱,不过既然谈了那么长时间了,就希望能做成这笔生意……之类的……应该是跟他说还没有了解市场行情,让他报个价,然后跟他说你再去其他地方看看是不是有更便宜的,然后果断地走。等跑遍商场问到一个最便宜的价格之后不要怕没面子,回去买吧。记着这时候的价格还没到底线,你应该挑出所有能讲出来的毛病,或者他推荐时夸大其辞的地方,再减掉个三五百块是完全有可能的……

Posted by xdanger at May 3, 2004 04:46 AM | Comments (1) | TrackBack

May 02, 2004

日志变月志 [Life ]

  写Blog之前看到过这样一句笑话:世上最恐怖的莫过于一个月不更新的Blog。哈哈,我竟然那么快就变成拍恐怖片的了。

  这个月的确有点喘不过气来。先是Java考试;然后前后断断续续做了一年的ExSun.net最后还是放弃了;然后是忙着逛太平洋买笔记本;砍了一个星期的价买回来之后发现兜里没钱了,又拼了一星期做了个换生活费(帐还没结给我……555),其间好好研究了下PEAR和MVC;这个星期在啃JSP,发现开发Java项目爆复杂……

  先算是做个总结吧,马上分批写点东西下来。

Posted by xdanger at May 2, 2004 11:06 PM | Comments (1) | TrackBack