Archive for November, 2006

Enjoy Working Time

iCer, 一个好友. 曾说睡觉是最幸福的事情. 你不用付钱, 就能享受到快乐. 深表认同.

不过其实工作应该是更幸福的事情, 因为你能享受到快乐, 而且还有人付钱给你. :). Simple code, simple life.

Varchar in MySQL

我对MySQL的知识还停留在4.0的版本上. 那天朋友发了个sql过来, 我随口就说了varchar错了, Length不能大于255. 结果被狠狠BS了…

4之前, 1-255.
4之后是, 0-255.
5以后则是0-65,535. 不过还与row最大size和使用的character有关. 实际的最大有效长度是65,532字节.

看来以后要踏踏实实, 并且与时俱进啊…

XML Learning & JSON

JSON正在越来越收到欢迎. 那天在和cmsware的Hawking聊天的时候, Hawking就提到他在Ajax的时候越来越多的使用JSON, 因为无论是在Javascript还是在PHP中使用JSON都非常simple. 对此我非常认同, JSON既简单又极具扩展性. 特别是那种类似hash的access方式, 比起DOM来确实方便. 于是很多人提出用JSON替换XML在Ajax中的位置.

在我看来很多人不喜欢XML的原因在于XML的解析稍显复杂, 并因此认为XML不好用, 效率低. 比如很多人不喜欢用Spring是因为Spring的配置方式. 在我没用从事现在的开发工作前, 我对XML也挺发怵的, 觉得XML挺复杂的. 然而实质却是XML太简单了, 本质就是Element. 所以我现在的生活已经无法缺少XML了, 当然这也和我的工作有关.

个人认为学习并掌握所有XML的相关基础知识的时间不超过1个月. 而几个最基础的点在于XML, XML Schema(DTD就算了, 了解一下即可), XPath,  XSLT.  并且这些基础点都可以同步进行, 互相促进.  而且由于Schema和XSLT本身就是XML, 所以学习起来相当简单. Schema些许难掌握的是ComplexType, 而XSLT的难点在于递归, 如果这些都掌握了. 那XML就是非常有力的武器, 在你的Application的各个方面.

JSON最具杀伤力的弱点在于没有Validation. :D 同时没有XML便于查询的优点, 并且没有XSL那样的转换技术. 所以本质上来说JSON仅是一种数据交换方式.

Phalanger 2.0 Beta3 Release

虽然微软已经为PHP开发了IIS的FastCGI, 但是Phalanger也可以是PHPer的另外一种Windows上的选择. 今天Phalanger发布了最新的Beta3版本, 这个版本中, Generic, LINQ的的支持都基本没问题了, 最基本的Namespace的使用也完全没有问题了.

此次发布中还包括了一个PersonalWebStartKit的Template, 是原来C#等语言实现的PHP实现. 看上去很不错.phppersonalwebstarterkit

Moving

今天xSharp告诉我服务器不能再放在原来的机柜里了. 这意味着要搬迁了. 我的Blog一直以来都寄居在他人的服务器上. DreamHost也听说很久了, 看到用promote码的话第一年只要22.4美元, 所以决定买个空间放吧, 可能会自由点吧.

Dreamhost支持很多东西. 而且支持多域名, 所以0926.net, 99enjoy.com也都可以搬去了, 反正没有什么流量:D 最头疼的事情可能就是备份了. 发现0926原来一年没有新的blog entry了. 呵呵. 回忆总是愁人的, 特别的今天看见一个家伙的messenger的签名居然是怀念皇朝新城…

只是DreamHost居然需要Fax回去Confirm这个Payment… 只能明天了… 虽然还是不死心的写信过去问有没有其他方法.

Castle 1.0 RC2上周发布

Castle在11.1日发布了RC2的版本, 并且网站也大变样, 离上次的Release差不多1年之久. 前阶段用MonoRail在做东西. 因为之前的RC1基本不能用, 所以用的都是svn里的codes, 而且NHibernate现在的代码也与之前的发布变化很大. MonoRail用起来也较为顺手. 只是如果以前没接触过Velocity这样的东西(个人比较习惯这个View), 可能会稍微花点时间来掌握语法.

只是还是觉得有点粗制滥造. 因为RC2中NHibernate用的还是旧版, 于是我还是用自己build的dll.

Schema Tip: 允许无序数量不定的Element

有时候会需要这样的定义. 比如在某个element下面只能有某些element出现, 但是element又是无序无数量要求的. 那下面的schema可以做到. 

<?xml version=”1.0″ encoding=”utf-8″ ?>
<xs:schema id=”test”
                  xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
  <xs:element name=”ele1″>
    <xs:complexType>
      <xs:group ref=”group1″ maxOccurs=”unbounded” minOccurs=”0″/>
    </xs:complexType>
  </xs:element>
  <xs:group name=”group1″>
    <xs:choice>
      <xs:element name=”tag1″ type=”xs:string” />
      <xs:element name=”tag2″ type=”xs:string” />
      <xs:element name=”tag3″ type=”xs:string” />
    </xs:choice>
  </xs:group>
</xs:schema>

Microsoft和Zend的合作

前2天Microsoft和Zend宣布了双方的合作. 重点在于PHP在windows上的部署, 性能和稳定性. 为此微软为之开发了IIS的FastCGI模块(Scott Gu的介绍Blog). 而Zend也为此成立专门的Lab和管理人员来提升PHP在windows上的稳定性和性能.

随着web 2.0的风潮, 微软已经变得越来越开放, CodePlex上很多项目其实是Internal的CodePlex上出来的. 而各个开发Team的PM, Dev, Test也都有着各自的blog发布相关的信息及收集feedback.

而微软和Zend的合作, 让我感觉俨然PHP真正成了Zend自家的东西.