网络上的部分地震消息报道(5月13日)

05月 13th, 2008

    全国 地震已造成9219人死亡(截至13:00)–新浪
    四川 死亡人数近万名 震中约6万人仍杳无音信 入院伤员近7000人
    北川县 死亡人数达到7000多人 广元 死亡52人
    德阳 死亡412人 成都市 死亡人数达323人,1059人受伤
    都江堰市 聚源镇中学死亡人数已增至50余人 资阳市 10人死亡,86人受伤
    眉山市 8人死亡,逾3000人受伤 中江县 5人死亡
    甘孜州 死亡5人 阿坝州 死亡59人,失踪5人,重伤67人,伤680人
    内江 死亡4人 遂宁 死亡7人
    茂县 死亡27人失踪4人
    重庆 死亡50人
    梁平小学 死亡5人,掩埋20多人,100多人受伤
    甘肃 甘肃死亡人数升至186人(最新)
    陇南市 武都区50多人死亡,西合县5人死亡,徽县6人死亡,礼县1人死亡 庆阳市 华池县新增1人死亡,西峰区一学校16名学生受伤,宁县新增1人受伤
    平凉市 崆峒区大秦乡新增10人受伤 天水市 武山县新增3人受伤
    甘南州 2人死亡
    云南 死亡1人
    昭通 1人死亡,9人受伤
    陕西 85人死亡,313人受伤

网络上的部分地震消息报道(5月12日)

05月 12th, 2008

    东方网记者刘歆5月12日报道:今天下午四川汶川发生七点八级地震,省会成都有强烈震感。东方网记者从上海市民处得知,四川成都温江区镇感强烈。 

    新华网快讯:四川汶川发生地震后,西安市中心震感明显,省政府大院人员纷纷从办公室跑出来。一个正在施工的建筑工地吊塔在高空被震断,操作员当场摔下身负重伤,其他建筑工人被紧急疏散。目前伤员正在医院抢救,尚未脱离生命危险。

    新华网成都5月12日电(记者 杨三军)记者从成都火车站获悉,受汶川地震影响,成都火车站所有首发列车暂时停止运行。

    北京时间2008年5月12日14时28分,重庆、成都、西安地区均不同程度发生地震,目前重庆、西安机场已恢复正常运行,成都机场仍然关闭,南航CZ3694乌鲁木齐-成都航班,现在乌鲁木齐机场等待。北京飞往成都重庆西安等地航班受地震影响延误。来源:中国民用航空网站。

    新华网宜昌5月12日电(记者江时强 皮曙初)据中国长江三峡工程开发总公司枢纽管理部门介绍,三峡工程建设和生产运行正常,四川汶川县地震没有给三峡大坝带来异常影响。北京时间5月12日14时28分,在四川汶川县发生7.8级地震,部分地区震感明显,湖北省宜昌市也有明显震感,办公楼晃动,许多市民涌上街头。三峡总公司枢纽建设运行管理局枢纽运行部主任胡兴娥12日下午表示,从目前的检查情况来看,没有迹象表明地震对三峡大坝产生影响,三峡工程建设和生产运行都在正常进行,没有异常现象发生。

    四川地震局称成都45人死亡。(摘自新浪)

    截止下午6点,陕西汉中地区死亡人数为22人,伤40人。

    四川北川县估计死亡人数达3000至5000人。(摘自新浪)

    新华网快讯:四川汶川发生地震后,胡锦涛总书记立即作出重要指示,要求尽快抢救伤员,保证灾区人民生命安全。温家宝总理正赶赴灾区指导救灾工作。16:39

    中央成立抗震救灾指挥部,温家宝任总指挥。(摘自新浪)

    温家宝抵达成都赶往灾区。温家宝在赶往灾区专机上发表讲话,号召干部身先士卒。(摘自新浪)

    16时,民政部已从西安中央救灾物资储备库紧急调拨5000顶救灾帐篷支援四川灾区。人民网北京5月12日16:53

    地震局称近期北京地区不会发生破坏性地震。有关北京地区今晚将会发生地震的说法,纯属谣言。(摘自新浪)

    专家预计四川都江堰可能破坏严重。四川都江堰中学楼房垮塌,死亡人数增至50余人。(摘自新浪)

    重庆梁平小学5人死20多人被埋。(摘自新浪)

    甘肃至少10人死亡。(摘自新浪)

    中国地震局:其他地区地震传言无科学根据。(新浪。5-12  20:13)

陕西网站地震消息

05月 12th, 2008

    17:40 分,登录华商网,看到地震报道:

    四川汶川县发生M7.6级地震 陕西有明显震感:
    http://news.hsw.cn/2008-05/12/content_6957221.htm

    2008年5月12日下午14点38分左右,河北石家庄市区震感强烈,正在办公的人们纷纷从办公大楼撤离。图片来源:CFP

  5月12日,成都震感强烈。这是新华社四川分社技术室内被晃倒的办公用品。 据国家地震台网测定,北京时间5月12日14时28分,在四川汶川县发生7.6级地震。 新华社记者陈燮摄

  新华网北京5月12日电 据中国国家地震台网测定,北京时间2008年5月12日14时28分,在四川汶川县(北纬31.0度,东经103.4度)发生7.6级地震。

  新华网快讯:据从地震局了解,此次强烈地震发生在四川境内。

  新华网快讯:12日14时35分左右,北京地区明显感觉到有地震发生。

  CCTV.com消息(15点新闻):来自国家地震局的最新消息,今天14点28分,四川汶川县发生7.6级地震,具体位置在成都附近温江西北55公里(北纬31度,东经103。4度)。而我们刚刚从各种渠道得到消息,重庆、湖南、湖北、山西、陕西、河北、北京等地都有震感。

    新民网5月12日15时15分快讯 接湖南省地震局震情通报,四川汶川地震级别已上升到7.8级。

 有关地震的最新消息,我们将随时为您进行报道。
    来源:新华网
    (华商网报道陕西有“震感”,没有自己采编的消息。)
    17:43 分,登录西部时空,看到地震报道:
    快讯:兰州、南昌、北京各地有震感:
    http://202.100.72.47/westcn-news/gsnews/20080512154510.htm
    内容与华商网相似。2幅图片一样。

    22:22 西部网 http://www.cnwest.com 报道:
    陕西有57人在地震中死亡
    ·K166次暂停售至西安车票 12个航班备降其他机场
    ·近半个中国都有震感 周边国家地区都有明显震感
    ·北京地区不会发生破坏性地震 如何识别地震谣言
    ·重庆今晚地震属谣传 地震有感范围大 勿轻信谣言
    ·四川成都余震已有四十四次 汶川县发生三次余震
    ·已致川甘渝滇等地107人死亡34伤 成都45人死亡
    ·重庆有4名学生死亡100多人受伤 多地有伤亡报告
    ·北川县3000至5000人死亡 资阳10人死亡86人受伤
    ·都江堰可能破坏严重 未给三峡大坝带来异常影响
    ·在第一时间告诉灾区人民 全国人民和你们在一起

    22:22 古城热线 http://www.xaonlie.com 报道:
    四川汶川县发生7.8级地震
    重庆山西陕西北京等地有震感

西安 5.12 地震记录

05月 12th, 2008

    2008 年 5 月 12 日,下午上班后不久,我在西安东郊某办公室与客户商谈招生事宜。我 14:21 分接到客户电话,说已经在公司大厅等我,我们把客户安排到会议室后,我给客户和我端了2杯水过去,刚刚谈了5分钟左右,大概 14:30 左右,我感觉到地板在晃动,我问了一声:是不是大楼在动啊?然后我站了起来,感到头晕,楼房明显在左右摇动!我知道,地震了。我赶快对客户说,赶快下楼,然后我出会议室,去办公室叫高总。出到楼道,大家还在茫然,问是不是楼在动?我说是啊,赶快下楼啊!那一帮同志们才赶快向楼梯口冲去。我赶紧喊,都别慌啊。我到了办公室,其实高总已经早知道了,我顺便拿了我的包,说快下楼啊。高总说,你们快走。我就走了。

    大家下楼梯很有秩序,都是年轻人,动作很快。下楼梯的时候,还能感觉到楼在晃动。我们是从5层下楼的,下到3层到2层的时候,我感觉到大家有点慢了,赶紧喊,前面的快点,明显感觉到大家又快了。

    下到楼下,看到人行道和马路上已经聚集了大量的人。我站到马路边上,还感觉到轻微的晃动,傍边的人也有同样的感觉。从我们有震感,到下到马路边上,肯定不止20或30秒,应该在 2 分钟左右。

    14:45分,交大电脑城说要锁门,清理店铺。楼上的办公室也不让人上去。

    有一位司机师傅从东门外回来,说正在开车,感觉到旁边坐的人在摇,还感觉到谁在推自己的车。旁边的人下去看情况,已经站不稳了。这个时候看到马路上的电线杆子在轻微摆动,楼房也在轻微摇动…

    交大对面皇埔庄有人在盖房子,被摇的从楼房上掉了下来,情况不明。

    大概 15:00 左右,有的办公室有人上去取包,准备下班。

    我 17:00 左右回到家里,发现倒扣在冰箱上的一个口杯倒了,看来家里摇晃的也很厉害。我在西安几十年从来没有这种地震的体验。

    地震考研我们的通信系统

    我从下到楼下,就想着打电话。但电话一直拨不同,不管是小灵通还是联通的号码都拨不通。15:15,我用小灵通拨通了西安郊县蓝田县白鹿原我老家的电话,没人接。15:21 分我拨通了老家我父亲的手机,问地震了知道吗?我父亲说,感觉到了,房子在晃,他们现在的街道上逛呢 - 今天正好是阴历四月初八,我老家的古庙会节,我们那里简称“四月八”。

    我除过打通了西安郊县的电话,我媳妇的电信号码,我打了2个小时,一直打不同,发短信一直报告失败。难怪,从14:45开始,我看到满大街的人都在拿着手机打电话,并且到处都在埋怨:根本打不通。我想是不是地震把通信系统破坏了啊?也许是电话量太大,已经超过了通信系统的容量?看来,我们的通信系统是多么的脆弱!我们的通信系统也同样发生地震了。这样的通信系统,在关键的时候阻隔了亲情传递,要这个破系统何用??

    多亏这次地震没有倒楼,假设真的发生灾害,这样的通信系统能给我们提供什么通信保障?

    17:22分,我的联通号码收到了我媳妇 15:21 分发来的短信。
    17:31分,我的小灵通和联通号码还是打不出去。发短信还是报告失败。

    (后来获悉,是四川那里发生大地震了,波及了中国许多地区。)

    张庆(网眼)
    2008-5-12 17:33

怎样成为优秀软件模型设计者?

05月 10th, 2008

    我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?
  将下列原则应用到你的软件工程中,你会获得立杆见影的成果。
1. 人远比技术重要
  你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们那时侯将主要精力都集中在技术上。显然,构件(components),EJB(Enterprise Java Beans)和代理(agent)是很有趣的东西。但是对于用户来说,如果你设计的软件很难使用或者不能满足他们的需求,后台用再好的技术也于事无补。多花点时间到软件需求和设计一个使用户能很容易理解的界面上。
2. 理解你要实现的东西
  好的软件设计人员把大多数时间花费在建立系统模型上,偶尔写一些源代码,但那只不过是为了验证设计过程中所遇到的问题。这将使他们的设计方案更加可行。
3. 谦虚是必须的品格
  你不可能知道一切,你甚至要很努力才能获得足够用的知识。软件开发是一项复杂而艰巨的工作,因为软件开发所用到的工具和技术是在不断更新的。而且,一个人也不可能了解软件开发的所有过程。在日常生活中你每天接触到的新鲜事物可能不会太多。但是对于从事软件开发的人来说,每天可以学习很多新东西(如果愿意的话)。
4. 需求就是需求
  如果你没有任何需求,你就不要动手开发任何软件。成功的软件取决于时间(在用户要求的时间内完成)、预算和是否满足用户的需求。如果你不能确切知道用户需要的是什么,或者软件的需求定义,那么你的工程注定会失败。
5. 需求其实很少改变,改变的是你对需求的理解
  Object ToolSmiths公司(www.objecttoolsmiths.com)的Doug Smith常喜欢说:“分析是一门科学,设计是一门艺术”。他的意思是说在众多的“正确”分析模型中只存在一个最“正确”分析模型可以完全满足解决某个具体问题的需要(我理解的意思是需求分析需要一丝不苟、精确的完成,而设计的时候反而可以发挥创造力和想象力 - 译者注)。
  如果需求经常改动,很可能是你没有作好需求分析,并不是需求真的改变了。
  你可以抱怨用户不能告诉你他们想得到什么,但是不要忘记,收集需求信息是你工作。
  你可以说是新来的开发人员把事情搞得一团糟,但是,你应该确定在工程的第一天就告诉他们应该做什么和怎样去做。
  如果你觉得公司不让你与用户充分接触,那只能说明公司的管理层并不是真正支持你的项目。
  你可以抱怨公司有关软件工程的管理制度不合理,但你必须了解大多同行公司是怎么做的。
  你可以借口说你们的竞争对手的成功是因为他们有了一个新的理念,但是为什么你没先想到呢?
  需求真正改变的情况很少,但是没有做好需求分析工作的理由却很多。
6. 经常阅读
  在这个每日都在发生变化的产业中,你不可能在已取得的成就上陶醉太久。
  每个月至少读2、3本专业杂志或者1本专业书籍。保持不落伍需要付出很多的时间和金钱,但会使你成为一个很有实力的竞争者。
7. 降低软件模块间的耦合度
  高耦合度的系统是很难维护的。一处的修改引起另一处甚至更多处的变动。
  你可以通过以下方法降低程序的耦合度:隐藏实现细节,强制构件接口定义,不使用公用数据结构,不让应用程序直接操作数据库(我的经验法则是:当应用程序员在写SQL代码的时候,你的程序的耦合度就已经很高了)。
  耦合度低的软件可以很容易被重用、维护和扩充。
8. 提高软件的内聚性
  如果一个软件的模块只实现一个功能,那么该模块具有高内聚性。高内聚性的软件更容易维护和改进。
  判断一个模块是否有高的内聚性,看一看你是否能够用一个简单的句子描述它的功能就行了。如果你用了一段话或者你需要使用类似“和”、“或”等连词,则说明你需要将该模块细化。
  只有高内聚性的模块才可能被重用。
9. 考虑软件的移植性
  移植是软件开发中一项具体而又实际的工作,不要相信某些软件工具的广告宣传(比如java 的宣传口号write once run many ? 译者注)。
  即使仅仅对软件进行常规升级,也要把这看得和向另一个操作系统或数据库移植一样重要。
  记得从16位Windows移植到32位windows的“乐趣”吗 ?当你使用了某个操作系统的特性,如它的进程间通信(IPC)策略,或用某数据库专有语言写了存储过程。你的软件和那个特定的产品结合度就已经很高了。
  好的软件设计者把那些特有的实现细节打包隐藏起来,所以,当那些特性该变的时候,你的仅仅需要更新那个包就可以了。
10. 接受变化
  这是一句老话了:唯一不变的只有变化。
  你应该将所有系统将可能发生的变化以及潜在需求记录下来,以便将来能够实现(参见“Architecting for Change”,Thinking Objectively, May 1999)
  通过在建模期间考虑这些假设的情况,你就有可能开发出足够强壮且容易维护的软件。设计强壮的软件是你最基本的目标。
11. 不要低估对软件规模的需求
  Internet 带给我们的最大的教训是你必须在软件开发的最初阶段就考虑软件规模的可扩充性。
  今天只有100人的部门使用的应用程序,明天可能会被有好几万人的组织使用,下月,通过因特网可能会有几百万人使用它。
  在软件设计的初期,根据在用例模型中定义的必须支持的基本事务处理,确定软件的基本功能。然后,在建造系统的时候再逐步加入比较常用的功能。
  在设计的开始考虑软件的规模需求,避免在用户群突然增大的情况下,重写软件。
12. 性能仅仅是很多设计因素之一
  关注软件设计中的一个重要因素–性能,这好象也是用户最关心的事情。一个性能不佳的软件将不可避免被重写。
  但是你的设计还必须具有可靠性,可用性,便携性和可扩展性。你应该在工程开始就应该定义并区分好这些因素,以便在工作中恰当使用。性能可以是,也可以不是优先级最高的因素,我的观点是,给每个设计因素应有的考虑。
13. 管理接口
  “UML User Guide”(Grady Booch,Ivar Jacobson和Jim Rumbaugh ,Addison Wesley, 1999)中指出,你应该在开发阶段的早期就定义软件模块之间的接口。
  这有助于你的开发人员全面理解软件的设计结构并取得一致意见,让各模块开发小组相对独立的工作。一旦模块的接口确定之后,模块怎样实现就不是很重要了。
  从根本上说,如果你不能够定义你的模块“从外部看上去会是什么样子”,你肯定也不清楚模块内要实现什么。
14. 走近路需要更长的时间
  在软件开发中没有捷径可以走。
  缩短你的在需求分析上花的时间,结果只能是开发出来的软件不能满足用户的需求,必须被重写。
  在软件建模上每节省一周,在将来的编码阶段可能会多花几周时间,因为你在全面思考之前就动手写程序。
  你为了节省一天的测试时间而漏掉了一个bug,在将来的维护阶段,可能需要花几周甚至几个月的时间去修复。与其如此,还不如重新安排一下项目计划。
  避免走捷径,只做一次但要做对(do it once by doing it right)。
15. 别信赖任何人
  产品和服务销售公司不是你的朋友,你的大部分员工和高层管理人员也不是。
  大部分产品供应商希望把你牢牢绑在他们的产品上,可能是操作系统,数据库或者某个开发工具。
  大部分的顾问和承包商只关心你的钱并不是你的工程(停止向他们付款,看一看他们会在周围呆多长时间)。
  大部分程序员认为他们自己比其他人更优秀,他们可能抛弃你设计的模型而用自己认为更好的。
  只有良好的沟通才能解决这些问题。
  要明确的是,不要只依靠一家产品或服务提供商,即使你的公司(或组织)已经在建模、文档和过程等方面向那个公司投入了很多钱。
16. 证明你的设计在实践中可行
  在设计的时候应当先建立一个技术原型, 或者称为“端到端”原型。以证明你的设计是能够工作的。
  你应该在开发工作的早期做这些事情,因为,如果软件的设计方案是不可行的,在编码实现阶段无论采取什么措施都于事无补。技术原型将证明你的设计的可行性,从而,你的设计将更容易获得支持。
17. 应用已知的模式
  目前,我们有大量现成的分析和设计模式以及问题的解决方案可以使用。
  一般来说,好的模型设计和开发人员,都会避免重新设计已经成熟的并被广泛应用的东西。http://www.ambysoft.com/processPatternsPage.html 收藏了许多开发模式的信息。
18. 研究每个模型的长处和弱点
  目前有很多种类的模型可以使用,如下图所示。用例捕获的是系统行为需求,数据模型则描述支持一个系统运行所需要的数据构成。你可能会试图在用例中加入实际数据描述,但是,这对开发者不是非常有用。同样,数据模型对描述软件需求来说是无用的。每个模型在你建模过程中有其相应的位置,但是,你需要明白在什么地方,什么时候使用它们。
19. 在现有任务中应用多个模型
  当你收集需求的时候,考虑使用用例模型,用户界面模型和领域级的类模型。
  当你设计软件的时候,应该考虑制作类模型,顺序图、状态图、协作图和最终的软件实际物理模型。
  程序设计人员应该慢慢意识到,仅仅使用一个模型而实现的软件要么不能够很好地满足用户的需求,要么很难扩展。
20. 教育你的听众
  你花了很大力气建立一个很成熟的系统模型,而你的听众却不能理解它们,甚至更糟-连为什么要先建立模型都不知道。那么你的工作是毫无意义的。
  教给你开发人员基本的建模知识;否则,他们会只看看你画的漂亮图表,然后继续编写不规范的程序。
  另外, 你还需要告诉你的用户一些需求建模的基础知识。给他们解释你的用例(uses case)和用户界面模型,以使他们能够明白你要表达地东西。当每个人都能使用一个通用的设计语言的时候(比如UML-译者注),你的团队才能实现真正的合作。
21. 带工具的傻瓜还是傻瓜
  你给我CAD/CAM工具,请我设计一座桥。但是,如果那座桥建成的话,我肯定不想当第一个从桥上过的人,因为我对建筑一窍不通。
  使用一个很优秀的CASE工具并不能使你成为一个建模专家,只能使你成为一个优秀CASE工具的使用者。成为一个优秀的建模专家需要多年的积累,不会是一周针对某个价值几千美元工具的培训。一个优秀的CASE工具是很重要,但你必须学习使用它,并能够使用它设计它支持的模型。
22. 理解完整的过程
  好的设计人员应该理解整个软件过程,尽管他们可能不是精通全部实现细节。
  软件开发是一个很复杂的过程,还记得《object-oriented software process》第36页的内容吗?除了编程、建模、测试等你擅长工作外,还有很多工作要做。
  好的设计者需要考虑全局。必须从长远考虑如何使软件满足用户需要,如何提供维护和技术支持等。
23. 常做测试,早做测试
  如果测试对你的软件来说是无所谓的,那么你的软件多半也没什么必要被开发出来。
  建立一个技术原型供技术评审使用,以检验你的软件模型。
  在软件生命周期中,越晚发现的错误越难修改,修改成本越昂贵。尽可能早的做测试是很值得的。
24. 把你的工作归档
  不值得归档的工作往往也不值得做。归档你的设想,以及根据设想做出的决定;归档软件模型中很重要但不很明显的部分。 给每个模型一些概要描述以使别人很快明白模型所表达的内容。
25. 技术会变,基本原理不会
  如果有人说“使用某种开发语言、某个工具或某某技术,我们就不需要再做需求分析,建模,编码或测试”。不要相信,这只说明他还缺乏经验。抛开技术和人的因素,实际上软件开发的基本原理自20世纪70年代以来就没有改变过。你必须还定义需求,建模,编码,测试,配置,面对风险,发布产品,管理工作人员等等。
  软件建模技术是需要多年的实际工作才能完全掌握的。好在你可以从我的建议开始,完善你们自己的软件开发经验。
  以鸡汤开始,加入自己的蔬菜。然后,开始享受你自己的丰盛晚餐吧。

西安站:微软Visual Studio 2008社区发布全国巡展

05月 10th, 2008

    会议时间:

    2008 年 5 月 10 日 星期六 13:00 - 16:50

    会址详情:

    西安软件园 秦风阁 综合楼 7 层多功能厅
    地址:西安市高新区科技二路 68 号

    在线报名:http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032377399&Culture=zh-CN

    13:00 - 13:40 来宾签到
    13:40 - 14:25 如何使用 Visual Studio 2008 开发下一代 Web 应用程序

    14:25 - 15:05 开启 Windows Mobile 美丽新世界

    15:05 - 15:15 休息
    15:15 - 16:00 利用 Silverlight 及 Expression 构建强大的用户体验

    16:00 - 16:35 Partner 创新经验及机遇——微软 SaaS 孵化计划

    16:35 - 16:50 问答及抽奖

    会议介绍:

    高手云集的开发人员群体中,谁才是真正的企业英雄?那些始终立足最新技术、并且时刻运用专业知识创造有益价值,推动企业与创新前沿同步发展的开发高手,就是当之无愧的企业英雄!

    为了推动更多开发人员实现从高手到英雄的完美蜕变,我们将于本年度最大规模群英盛会圆满落幕之际,特别举办“微软 Visual Studio 2008 社区发布全国巡展”,本次巡展将于 2008 年 4 月至 6 月,相继登陆南京、武汉、西安、哈尔滨、上海、苏州、广州、深圳、乌鲁木齐、北京、杭州、长沙、昆明和青岛共 14 个城市,旨在深入开发人员社区,通过全方位的互动和亲切交流,与各路高手共同分享微软最新技术产品与先导开发理念。如您亲临活动现场,则可亲身感受:

    - Visual Studio 2008 新增功能全面支持下一代 Web 应用程序开发
    - 以 Silverlight 及 Expression 构建炫目杰出的用户体验和富交互应用
    - Windows Mobile 6.0 和 .NET Compact Framework 3.5 的开发新特性
    - 微软 SaaS(Software as a Service)应用模式带来的创新经验和机遇

    微软在此力邀天下高手亲临本次会议,聆听微软专家技术演讲,分享最新产品生动演示,更可与同城高手切磋技艺交流提高,全程精彩令您不虚此行!我们坚信,掌握最新专业技术,人人都可成为推动企业高速前进的开发英雄!

    了解更多精彩内容:http://msdn.microsoft.com/zh-cn/cc498683.aspx

“请别再说‘华商网不重视技术’”

05月 8th, 2008

    近期我们一再听到尖锐的意见:华商网不重视技术
    作为公司领导,为此深深反省:
    我们在内容、营销、管理等方面倾注的精力远比技术多
    我们在技术上的投入远低于实际需求
    我们领导班子迄今无一位具有技术背景,甚至分不清G和U
    我们没有对现有技术人员以足够的关心、理解和支持
    我们的疏忽造成了若干骨干流失,也令更多的人才望而却步
    特别是本届班子就任近半年,仍无实质性行动
    我们为此深深自责
    网络是科技发展的产物,网络媒体一切内容呈现、用户体验都建立在技术基础上。
    我们知道,还会有人说华商网领导不懂技术,但是我们希望不再有人说:华商网不重视技术
    虽然公司处于创业期,还不可能有很大的财力在短期内全面提升技术装备水平、技术服务品质和技术人员待遇,但是我们一定尽力从意识到行动改变,改进、改善
    请大家帮助我们

        华商网络传媒有限公司
        总经理办公会全体成员
        2008.4.28

    –以上文字从华商网招聘页面粘来:
     http://www.hsw.cn/adv/2008/04/29_zp/index.htm

    我不是华商网的托儿,华商网已经用不着谁托自己了。只是因为我看这段像散文诗一样的文字透着一股诚意,而我是个容易被文字打动的人,更因为我长期从事技术工作,深切体验到技术人员的炎凉心境。

    我仅仅是希望这些文本背后的诚意是真实的,希望这些诚意投射到技术人员的心里,让他们感觉得到,更希望这些诚意体现在行动上,让他们看到。

    华商网是西安的大网站,我希望这个“大”字不是仅仅体现在利润最大化,我希望华商网大气、大度,具有大家风范,具有大企业的大气象。我还希望华商网成为陕西互联网的龙头老大,把陕西互联网带到一个大境界。

    张庆(网眼)
    2008-5-8

Zend Framework 中的认证和授权浅见

05月 7th, 2008

    –兼谈权限系统设计的一些问题

    Zend Framework 作为 PHP 的一个官方编程框架,刚一推出来就引起了震动,大家把它简称为“ZF”。看来 PHP 已经在寻求向企业开发市场进军。但是由于推出时间短,熟悉 ZF 的开发人员,特别是国内的程序员,对 ZF 了解的还不多。现在市面上还找不到一本专门介绍 ZF 的图书,现有的资料,大部分是英文版,Zend 公司与中国公司合作翻译的 Zend FrameWork 中文手册,还是个烂尾工程,而且是 1.0 或 1.2 版本的,最新的 ZF 1.5.1 资料更少。而用 ZF 全程编写的产品更是凤毛麟角。

    有人说,ZF 简直就是 ROR 的翻版,看来 ZF 应该具有当前流行的动态语言的优点,特别是对 MVC 的良好支持,

    了解 ZF 的人,应该对 ZF 的权限管理印象深刻。ZF 手册在第一章的简介之后,第二章就拉出 Zend_Acl(访问控制授权)来介绍,而第三章就是Zend_Auth 的内容(认证)。从知识认知的顺序上,我个人感觉这样安排的不合适的。事实上第二和第三章的内容介绍,牵扯了众多后续章节的内容,我们不得不从第 7 章 Zend_Controller 开始看起。

    但是不得不承认 ZF 的认证和授权是个优秀的设计。ZF 的认证相对简单,我们可以直接连接数据库表,对用户输入的用户名和密码进行比较,确认当前用户的身份。还提供了摘要式认证等方法。而 ACL(访问控制列表)提供的授权就很强大。

    ACL 提出了资源、角色、动作(访问)三个概念,用这些概念可以轻易构造一个强大的权限管理系统。而且权限管理可以细化到模块下的浏览、添加、删除、修改等细微动作。(ASP.NET 只能控制到页面(模块)级别,更细致的控制需要程序员自己设计和实现)。这里粘一些代码,仅仅是说明一下(在 IIS6.0 + ZF1.51 + Apache2.2 下调试的):

     //4种角色:admin, editor, guest, auditor, poweruser
     //4种资源:channel, item, bbs, blog
     //3种动作:view, edit, revise
     //要求:
     //admin对所有资源有所有权限
     //guest对所有资源只有view权限
     //editor对channel, item, bbs有view, edit权限
     //auditor对channel, item, bbs, blog有revise权限
     //poweruser继承editor, auditor权限

      //定义角色
      $acl = new Zend_Acl();

      $roleAdmin = new Zend_Acl_Role(’admin’);
      $acl->addRole($roleAdmin);
      $roleEditor = new Zend_Acl_Role(’editor’);
      $acl->addRole($roleEditor);
      $roleGuest = new Zend_Acl_Role(’guest’);
      $acl->addRole($roleGuest);
      $roleAuditor = new Zend_Acl_Role(’auditor’);
      $acl->addRole($roleAuditor);
      $rolePoweruser = new Zend_Acl_Role(’poweruser’);
      $acl->addRole($rolePoweruser, array(’editor’, ‘auditor’));

      //添加资源
      $acl->add(new Zend_Acl_Resource(’channel’));
      $acl->add(new Zend_Acl_Resource(’item’));
      $acl->add(new Zend_Acl_Resource(’bbs’));
      $acl->add(new Zend_Acl_Resource(’blog’));

      //分配权限
      //admin:
      $acl->allow($roleAdmin, null, null);

      //editor:
      $acl->allow(’editor’, array(’channel’, ‘item’, ‘bbs’), array(’view’, ‘edit’));

      //guest:
      $acl->allow(’guest’, null, ‘view’);

      //auditor:
      $acl->allow(’auditor’, array(’channel’, ‘item’, ‘bbs’, ‘blog’), array(’revise’));

      //poweruser(从 editor, auditor 继承权限),可以再叠加另外的权限
      //$acl->allow(’poweruser’, null, null);

      //给所有角色分配权限(包括 admin)
      //$acl->allow(null, ”, ”);
      //$acl->deny(null, ”, ”);

      查看以上代码的最终权限,可以参考一下代码:

      foreach (array(’admin’, ‘editor’, ‘guest’, ‘auditor’, ‘poweruser’) as $role)
      {
       echo ‘<br>’ . ‘角色 ‘ . $role . ‘<br>’;
       echo ‘<table border=1>’;
       echo ‘<tr><td align=center>\</td><th>channel</th><th>item</th><th>bbs</th><th>blog</th></tr>’;
        foreach (array(’view’, ‘edit’, ‘revise’) as $right)
        {
          echo ‘<tr>’;
          echo ‘<th>’. $right .’</th>’;
          foreach (array(’channel’, ‘item’, ‘bbs’, ‘blog’) as $resource)
          {
           echo ‘<td>’;
              echo $acl->isAllowed($role, $resource, $right)?”allowed” : “denied”;
           echo ‘</td>’;
          }
          echo ‘</tr>’;
        }
        echo ‘</table>’;
      }
    }

    这些资源、角色、动作,在以上代码片段里,是作为硬编码存在的,实际项目中,可以作为数据在数据库里保存。灵活应用就需要程序员的智慧了。

    ZF 的用户,只划分到“角色”这一级,也就是说,不能给某个用户直接分配权限。这肯定是出于简化设计而考虑的,否则设计和实现会复杂的多!这个有个小缺点,就是要为一个用户分配权限,必须首先建一个角色(相当于用户组),再把该用户加入到该角色下,通过角色来给该用户分配权限。而权限设计中,用户、角色、资源、动作的相互包含、交叉,其结果导致问题变得非常复杂!这么复杂的逻辑关系,不借助其他工具(例如计算机),人的大脑大多数情况下是很难想明白的。

我看鲁飞龙对 PHPCMS 的评价

05月 1st, 2008

    2008年5月1日,鲁飞龙|个人官方网站(http://www.lufeilong.cn)只显示一张432×184大小的图片:光辉互联。这个独立博客前阵子还在叫嚷“2008独立博客元年”,现在不知道为啥 Pause 了。

    不过我的 Rss 订阅里还是收到了鲁飞龙4月14日的一篇博文《活在西安:西安死了一个好项目,PHPCMS 半路夭折》,算了一下那几天正是钟胜辉即将离开西安的日子。

    鲁飞龙在博客里写到:

    PHPCMS 的激情还没有被点燃已经消逝。
    多少个梦想死在路上。
    ……

    钟胜辉自有自己的考虑,更多的我们不得而知。有人曾评价说,钟胜辉终于解脱了,话外之音带着相当的感慨。我看到西安的很多互联网人士带着一纸空想,满脑子浆糊,妄想从互联网捞到财富。但是既没胆识也没素质,既没本事也没资金,还对别人的成就不屑一顾。

    在西安的互联网圈子里,真正踏实做事的人不多。有些人总是以旁观者的身份出现,喜欢观摩和报道别人的事情,自己什么都不做。而不管是从做事风格,还是为人上讲,钟胜辉都称得上是一个“做事的人”。PHPCms 从代码质量上讲不能称得上是上乘的,但是从满足用户的需求上讲,它却是很够格的。钟胜辉其人也不像是互联网界的那些忽悠一族,他本人是很典型的技术人员的形象,我和他有过几次交往,谈话间总是离不开他的软件,他对他的系统充满自信。就连出席大家为他举办的送别聚会,钟胜辉也是普通着装,没有像大家想像的西装革履的样子。

    鲁飞龙说的可能是对的,PHPCMS 被收购后,也许从此就被收入深宫,只能为一个或几个网站做技术支撑。但是钟胜辉本人的事业也许从此有了新的转机!不知道钟胜辉本人原来掌控十几个人的公司时,个人收入如何。但起码他到北京后,万元以上的月收入足够他改善自己的生活。鲁飞龙感叹 PHPCMS 的死亡,而钟胜辉本人获得了提升,梦想才刚刚开始吧?

    回想 PHPCMS 在西安的这几年,PHPCMS 为我们做的是有目共睹的:有人靠它赚了钱;有人的网站跑在它的上面。但是平心而论,我们为 PHPCMS 和钟胜辉做了什么?我们为他的 PHPCMD 埋过单吗?!对于钟胜辉的成就,我们是诚心的祝贺呢,还是带着微微的嫉妒?

    借着这篇文章,我深深的祝贺钟胜辉一路走好,越走越好。

    希望继续看到鲁飞龙先生的好文章。希望鲁飞龙先生把你的生意经介绍给大家,希望更多的人淘到养家糊口的金子。希望鲁飞龙和他的“光辉互联”走向更大的成功。

    张庆(网眼)
    网眼视界:http://blog.why100000.com
    2008-5-1

咧咧一下“汉语编程”

05月 1st, 2008

    “汉语编程”我听说过,没用过,所以不敢妄加评论。我不想把自己归到网络上的“嬉笑怒骂”一族。

    “汉语编程”前几年提出来,去年不知道什么原因又闹过一阵子。汉语编程到现在为止,给人的感觉就是“用汉语写程序”。但是,我感觉事情可能不是这么简单!中国人不会弱智到这个档次。

    一门语言的精华不仅仅是语法的简单、简洁,这都是浅层次的。语言的精华在于编译器的品质,高效、跨平台、可移植性、兼容性等等。我们过去也在尝试编程语言的汉化,比如 Foxbase 汉化版,已经可以用汉字做变量名和数据库的字段名,但那根本和“汉语编程”不沾边。而“汉语编程”如果仅仅是用汉字做变量名,甚至用汉字写逻辑,比如:

    如果 工资 达到 十万 那么
        我将开个车队;
    否则如果 工资 大于 五万 那么
        我将买套房子;
    其他
        我不知道;
    结束

    我个人认为这还是换汤不换药,没意义。如果用 C 语言来改写上面的逻辑的话,伪代码可以为:

    if (gz>=100000)
    { … }
    else
      if (gz>50000)
      { … }
      else
      { … }

    用字母(不要认为字母是英语)来代替汉语变量和控制语句,要简洁的多,而且敲键盘的次数要少得多!因为汉字本身就是敲键盘上的字母输入的!除非语音输入、写字板输入,或者将来用意念输入。

    语言的目的是写逻辑,只要能把逻辑表达清楚,是不是用汉语,这种形式不是主要的。而“汉语编程”如果仅仅是用汉语表示逻辑,我认为根本没有必要,相反带来了一定的复杂性。

    “汉语编程”可能有一个理由,就是让“全中国人都会编程”。如果这仅仅是一句广告词,还好理解。如果真的是一个目标和理想,则显得牵强和幼稚。程序员只是众多职业的一种,根本不需全国人民都来参与,否则没人种地,我们连饭也吃不上。即使是现在落后的字母编程,也有程序员在失业。

    我前文强调是“字母编程”,就是说编程是和会不会英文没有关系的!只是如果英文好的话,资料来源多些,用单词做变量名,仅仅是增加了代码的可读性,而变量名我们用 a、b、c 并没有什么不可以,谭浩强老师的 C 语言教程就是喜欢用 a、b、c 做变量的。再说,能成为程序员的人,按我国现在的英语普及率,大概没几个人不会几句英语吧?起码要用电脑,都要会用键盘吧,学电脑的人都是从认识键盘开始的。

    我之所以相信“汉语编程”并不是我们平常理解的那么简单,是因为“汉语编程”的背后可能已经有一个很好的编译器了,从网上搜索到的资料也是这么说的,听说还有个数据库,还开发出了一些相关产品。

    但是“汉语编程”的宣传策略可能有点问题,我看到程序员对“汉语编程”是相当抵触的。“汉语编程”对非程序员可能有吸引力,而非程序员可能不能指望他们成为软件产品的主要制造者吧。所以如果“汉语编程”背后是真的、实在的核心技术,让程序员们接受它是完全可能的。

    2008-5-1