一些话
2010.03.01 // No Comments
收集了一些言论,注意最后一条 ^_^
关于爱情:
几米:
当你喜欢我的时候,我不喜欢你,
当你爱上我的时候,我喜欢上你,
当你离开我的时候,我却爱上你,
是你走得太快,还是我跟不上你的脚步,
我们错过了诺亚方舟,错过了泰坦尼克号,
错过了一切的惊险与不惊险,我们还要继续错过。
我不了解我的寂寞来自何方,但我真的感到寂寞。
你也寂寞,世界上每个人都寂寞,只是大家的寂寞都不同吧。
————————————————–
张小娴:
爱,从来就是一件千回百转的事。
不曾被离弃,不曾受伤害,怎懂得爱人?
如果没法忘记他,就不要忘记好了。
真正的忘记,是不需要努力的。
————————————————–
雪小禅:
我以为终有一天,我会彻底将爱情忘记,将你忘记,
可是,忽然有一天,我听到了一首旧歌,我的眼泪就下来了,
因为这首歌,我们一起听过。
————————————————–
三毛:
某些人的爱情,只是一种“当时的情绪”。
如果对方错将这份情绪当做长远的爱情,是本身的幼稚。
————————————————–
玄漪:
能够说出的委屈,便不算委屈;
能够抢走的爱人,便不算爱人。
————————————————–
人非草木:
再丑的人也能结婚,再美的人也会单身!
————————————————–
关于人生:
莎士比亚:
再好的东西,都有失去的一天。
再深的记忆,也有淡忘的一天。
再爱的人,也有远走的一天。
再美的梦,也有苏醒的一天。
该放弃的决不挽留,该珍惜的决不放手。
分手后不可以做朋友,因为彼此伤害过!
也不可以做敌人,因为彼此深爱过。
————————————————–
刘心武:
不要指望,麻雀会飞得很高。
高处的天空,那是鹰的领地。
麻雀如果摆正了自己的位置,它照样会过得很幸福!
对不起是一种真诚,没关系是一种风度。
如果你付出了真诚,却得不到风度,那只能说明对方的无知与粗俗!
与其讨好别人,不如武装自己;
与其逃避现实,不如笑对人生;
与其听风听雨,不如昂首出击!
————————————————–
郭敬明:
我终于发现自己看人的眼光太过简单,我从来没有去想面具下面是一张怎样的面容,
我总是直接把面具当做面孔来对待,却忘记了笑脸面具下往往都是一张流着泪的脸。
————————————————–
亦舒:
无论怎么样,一个人借故堕落总是不值得原谅的,越是没有人爱,越要爱自己。
————————————————–
三毛:
一个朋友很好,两个朋友就多了一点,三个朋友就未免太多了。
知音,能有一个已经很好了,不必太多,
如果实在没有,还有自己,好好对待自己,跟自己相处,也是一个朋友…
不要害怕拒绝他人,如果自己的理由出于正当。
当一个人开口提出要求的时候,他的心里根本预备好了两种答案。
所以,给他任何一个其中的答案,都是意料中的。
————————————————–
饶雪漫:
这个世界欺骗了我,我必须给与还击,我不会放掉任何一丁点儿属于我的幸福,
哪怕付出的代价是从此坠入地狱,我也在所不惜。
————————————————–
张爱玲:
因为爱过,所以慈悲;
因为懂得,所以宽容。
————————————————–
安妮宝贝:
当一个女子在看天空的时候,她并不想寻找什么。
她只是寂寞。
————————————————–
郭敖:
我们始终都在练习微笑,终于变成不敢哭的人。
————————————————–
觅觅:
那些曾以为念念不忘的事情,就在放屁拉屎的过程中,被我们无奈的遗忘了……
Ubuntu 9.10 安装 thinkpad APS 硬盘保护系统
2010.02.18 // 2 Comments
我的本本是T60,自从用了Linux之后,自带的硬盘保护功能就再也没用过,一直以为不支持Linux系统,早晨在Ubuntu论坛看到有人在Ubuntu8.10上面安装APS驱动成功了,才知道Linux也有APS驱动,迫不及待的去尝试一下,结果折腾了半天才弄好,
网上的方法都是针对Ubuntu8.10的,使用的包版本也都不是最新版的,现把针对最新版本系统和软件的过程记录下来:
首先,要安装hdaps驱动(参考:http://www.thinkwiki.org/wiki/HDAPS),
官方的地址在这里:http://hdaps.sourceforge.net/
最新版本是:hdapsd-20090401.tar.gz ,
但是老外们都推荐使用tp-smapi(参考:http://www.thinkwiki.org/wiki/Tp_smapi),
什么原因我也不知道,地址在这里:http://tpctl.sourceforge.net/
最新版本是:tp_smapi-0.40.tgz
把tp_smapi解压缩,先load一下:
#sudo make load HDAPS=1 FORCE_IO=1
如果显示”drivers successfully loaded”,可以进行下一步安装:
#sudo make install HDAPS=1 FORCE_IO=1
安装成功后,检查是不是有hdaps的mod:
#lsmod | grep hdaps
配置自动加载模块:
#sudo gedit /etc/modules
加入下面几行:
thinkpad_ec
tp_smapi
hdaps
然后:
#sudo gedit /etc/modprobe.d/local.conf
增加:
# enable thinkpad_ec
options thinkpad_ec force_io=1
# option to correctly set tilting through hdaps sensor
options hdaps invert=1
下一步安装hdapsd,下载地址在:http://sourceforge.net/projects/hdaps/files/hdapsd/hdapsd-20090401/hdapsd-20090401.tar.gz/download
解压缩后直接make:
#sudo make
#sudo make install
装好了之后,启动服务HDAPS:
#sudo service hdapsd start
配置自动启动:
wget http://www.unet.univie.ac.at/~a0604095/hdapsd
sudo chmod 733 hdapsd
sudo cp hdapsd /etc/init.d/
sudo /etc/init.d/hdapsd start
接下来,安装显示硬盘状态的小图标,下载地址:http://www.zen24593.zen.co.uk/hdaps/gnome-hdaps-applet-20081204.tar.gz
#tar zxvf gnome-hdaps-applet-20081204.tar.gz
#gcc $(pkg-config –cflags –libs libpanelapplet-2.0) -o [...]
Win2003系统不能安装PostgreSQL 8.x的问题解决
2010.01.13 // 2 Comments
PostgreSQL 8.4.2发布了,于是去官方下载了Win版本做测试,
在Win2003上面怎么也安装不上,提示错误为:
Problem running post-install step
Installation may not complete correctly
The database cluster initialisation failed
安装了很多遍,依然如故,百思不得其解,只好求助Google。
Google告诉我,在Postgre官方社区上有很多跟我同样的问题,
看了看大意,无非是让去/tmp中找一个长得像bitrock_installer.log的日志文件,
然后根据详细错误信息作进一步判断。
好吧,我去找,但/tmp是Linux的临时目录,Win2003的应该是Temp吧,
经过了我很暴力的查找手段,果然找到了bitrock_installer_xxxx.log文件,
在日志文件中找到那么一段记录:
initializing pg_authid … FATAL: database locale is incompatible with operating system
DETAIL: The database was initialized with LC_COLLATE “Chinese_Peoples Republic of China.936″, which is not recognized by setlocale().
HINT: Recreate the database with another locale or install the missing locale.
child process [...]
自定义函数显示 Drupal 分类列表
2009.12.09 // 1 Comment
Drupal中的CCK和View模块功能强大,几乎可以用鼠标点出你想要的任何内容。
但耗费的性能和效率问题也与它的功能一样强大。
其实CCK和View能实现的我们手动一样可以实现,而且异常简单。
以国内网站最常见的显示某一分类最新文章列表为例:
在模板文件 template.php 中增加一个自定义函数如下:
function phptemplate_show_taxonomy($tid){
//根据tid读取术语名称
$sql =”SELECT name FROM {term_data} WHERE tid = %d”;
$result = db_query(db_rewrite_sql($sql),$tid);
while($data = db_fetch_object($result)){
$term_name = $data->name;
}
$output = “<div>”;
$output .= “<h2>”.$term_name.”</h2><ul>”;
$sql = “SELECT n.nid, n.title, n.created
FROM {term_node} tn
LEFT JOIN {node} n on n.nid = tn.nid
WHERE tn.tid = %d
ORDER BY n.created DESC”;
$result = db_query_range(db_rewrite_sql($sql),$tid,0,8);
while($data = db_fetch_object($result)){
$output .=”<li>”.l($data->title,”node/$data->nid”).”</li>”;
}
$output .= “</ul></div>”;
return $output;
}
在模板适当位置写入:
<?php print phptemplate_show_taxonomy(12) ?>
function [...]
Drupal中判断当前页面为分类页的方法
2009.11.05 // 1 Comment
在Drupal中,分类系统路径都是类似这种格式:
taxonomy/term/10
taxonomy/term/17
那么,根据Drupal API,判断当前页面为分类页面,可以这样写:
if ( arg(0) == ‘taxonomy’ && arg(1) == ‘term’ ) {
echo ‘这是分类’;
} else {
echo ‘这不是分类’;
}
if(arg(0) == ‘taxonomy’ && arg(1) == ‘term’){
//就肯定是分类列表了。
}
积极遵循国际网站标准(Web Standards)
2009.10.02 // 5 Comments
最近忙着整理WEB标准化相关的教案,无意中搜出来04年刚接触WEB标准化时发表的一篇文章,颇多感慨……
回想5年前,一本叫做《网站重构》的书,彻底改变了我在WEB前端的思想和观念,让我义无反顾的投入到标准化大军之中。
5年中,有多少个日日夜夜,在调试浏览器兼容性和CSS hack中痛并快乐着,感谢BlueIdea上面可爱又善良的朋友们,在我同浏览器斗争到抓狂的时候给了我雪中送炭的帮助。
通过WEB标准化认识的这帮可爱的朋友,是我最珍贵的友谊,感谢 秀才、单飞、猪猪、禽兽、七二、少龙、宇……以及那些我叫不上名字但却心有灵犀的人。
以下是帖子内容,发到这里作为纪念:
声明:本贴原出处为W3CN,经本人修改发表。
99.9%的网站是过时的”——当我猛然看到这个标题时,真的吃了一惊,但是当我仔细读完《网站重构》这本书后,觉得这句话一点不夸张。
想想自己从2000年开始到现在,做网站也有一段时间了,一直都以DW+FP为主,遇到软件实现不了的就手写一些html,可是不论我用什么方法,什么工具,同HTML规范相比是那么糟糕。
现在大部分网站都大量使用表格来进行定位,这样却实比较容易,但结果却造成代码臃肿不堪,看似华美的界面,背后却是不计其数的亢余代码,诺大的一片互联网真正遵循国际网站标准的寥寥无几
当国内的设计师现在都以为HTML已经没有什么可学,只要会使用Dreamweaver就行的时候,当我们沉醉在网页特效、Flash动画的时候,Web标准的推广已经成为国外一种普遍的现象。目前国内大多数客户都不清楚对网站的具体要求,他们注重的往往只是外观是否漂亮,基本功能是否实现,而不会去查看页面的原代码是否符合标准,也不会去问数据格式是否易于扩展交互。网站是否符合标准,很多时候都取决于设计者、开发者的知识面和认识。但是不能说因为客户不清楚、不要求采用Web标准,我们就可以偷懒和省略。作为网站设计师,有责任和义务去推广和采用Web标准。
那么让我们赶紧跟上新时代的步伐,一起来了解一下网站标准。
一.为什么要建立网站标准
我们大部分人都有深刻体验,每当主流浏览器版本的升级,我们刚建立的网站就可能变得过时,我们就需要升级或者重新建造一遍网站。例如1996-1999年典型的”浏览器大战”,为了兼容Netscape和IE,网站不得不为这两种浏览器写不同的代码。同样的,每当新的网络技术和交互设备的出现,我们也需要制作一个新版本来支持这种新技术或新设备,例如支持手机上网的WAP技术。类似的问题举不胜举:网站代码臃肿、繁杂浪费了我们大量的带宽;针对某种浏览器的DHTML特效,屏蔽了部分潜在的客户;不易用的代码,残障人士无法浏览网站等等。这是一种恶性循环,是一种巨大的浪费。
如何解决这些问题呢?有识之士早已开始思考,需要建立一种普遍认同的标准来结束这种无序和混乱。商业公司(Netscape、Microsoft等)也终于认识到统一标准的好处,因此在W3C(W3C.org)的组织下,网站标准开始被建立(1998年2月10日发布XML1.0为标志),并在网站标准组织(webstandards.org)的督促下推广执行。
简单说,网站标准的目的就是:
提供最多利益给最多的网站用户
确保任何网站文挡都能够长期有效
简化代码、降低建设成本
让网站更容易使用,能适应更多不同用户和更多网路设备
当浏览器版本更新,或者出现新的网络交互设备时,确保所有应用能够继续正确执行。
对于网站设计和开发人员来说,遵循网站标准就是使用标准;对于你的网站用户来说,网站标准就是最佳体验。
访问量排名世界第4,中国第1的新浪网站,也遭遇非标准DHTML的问题。在最新发布的Netscape7和Mozila1.6浏览器中,新浪首页的漂浮广告全部失效,层叠挤在页面左下角。也许那些广告主认为损失这些潜在的用户无所谓
二.什么是网站标准
网站标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Association)的ECMAScript标准。我们来简单了解一下这些标准:
1.结构标准语言
(1)XML
XML是The Extensible Markup Language(可扩展标识语言)的简写。目前推荐遵循的是W3C于2000年10月6日发布的XML1.0,参考(www.w3.org/TR/2000/REC-XML-20001006)。和HTML一样,XML同样来源于SGML,但XML是一种能定义其他语言的语。XML最初设计的目的是弥补HTML的不足,以强大的扩展性满足网络信息发布的需要,后来逐渐用于网络数据的转换和描述。关于XML的好处和技术规范细节这里就不多说了,网上有很多资料,也有很多书籍可以参考。
(2)XHTML
XHTML是The Extensible HyperText Markup Language可扩展标识语言的缩写。目前推荐遵循的是W3C于2000年1月26日推荐XML1.0(参考http://www.w3.org/TR/xhtml1)。XML虽然数据转换能力强大,完全可以替代HTML,但面对成千上万已有的站点,直接采用XML还为时过早。因此,我们在HTML4.0的基础上,用XML的规则对其进行扩展,得到了XHTML。简单的说,建立XHTML的目的就是实现HTML向XML的过渡。
2. 表现标准语言
CSS是Cascading Style Sheets层叠样式表的缩写。目前推荐遵循的是W3C于1998年5月12日推荐CSS2(参考http://www.w3.org/TR/CSS2/)。W3C创建CSS标准的目的是以CSS取代HTML表格式布局、帧和其他表现的语言。纯CSS布局与结构式XHTML相结合能帮助设计师分离外观与结构,使站点的访问及维护更加容易。
3.行为标准
(1)DOM
DOM是Document Object Model文档对象模型的缩写。根据W3C DOM规范(http://www.w3.org/DOM/),DOM是一种与浏览器,平台,语言的接口,使得你可以访问页面其他的标准组件。简单理解,DOM解决了Netscaped的Javascript和Microsoft的Jscript之间的冲突,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、脚本和表现层对像。
(2) ECMAScript
ECMAScript是ECMA(European Computer Manufacturers Association)制定的标准脚本语言(JAVAScript)。目前推荐遵循的是ECMAScript 262(http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM)。
三.遵循标准的网站与传统网站的区别
传统网站只是印刷媒体的延伸,设计目标是保证在4-6个主流浏览器版本中看起来一致。通常的特征是:
以表格为基础的布局。
内容与表现方式混杂在一起。典型的例子是<font>标签。
垃圾代码(非标准代码)。
不易用的代码。
语义不正确的代码。比如<b>不解释的话,你根本不明白这是字体加粗的意思。
而采用网站标准建立的网站是一个能够接受各种用户和各种设备的广泛的交流沟通工具。一般特征是:
语义正确的标识。即使用能够表达含义的标签。保证代码可以在文本浏览器、PDAs、搜索引擎中被正确理解。
正确有效的代码。通过W3C代码校验(http://validator.w3.org/)的就是正确代码。
对人、机都易用的代码。能够接受广泛的用户和设备的访问,
用CSS分离表现层和内容。使代码更简洁、下载速度更快,批量修改和定制表现形式更容易。
四.采用网站标准的好处和缺点
1.好处
对网站浏览者的好处:
文件下载与页面显示速度更快;
内容能被更多的用户所访问(包括失明、视弱、色盲等残障人士);
内容能被更广泛的设备所访问(包括屏幕阅读机、手持设备、搜索机器人、打印机、电冰箱等等)
用户能够通过样式选择定制自己的表现界面
所有页面都能提供适于打印的版本
对网站所有者的好处:
更少的代码和组件,容易维护
带宽要求降低(代码更简洁),成本降低。举个例子:当 ESPN.com 使用 CSS改版后,每天节约超过两兆字节(terabytes)的带宽。
更容易被搜寻引擎搜索到
改版方便,不需要变动页面内容
提供打印版本而不需要复制内容
提高网站易用性。在美国,有严格的法律条款(Section 508)来约束政府网站必须达到一定的易用性,其他国家也有类似的要求。
2.缺点
需要花费更多时间来学习标准
依然需要注意浏览器的兼容问题
用 CSS 来实现某些表现反而比表格更为麻烦
五.怎么改善现有网站
我们大部分的设计师依旧在采用传统的表格布局、表现与结构混杂在一起的方式来建立网站。学习使用XHTML+CSS的方法需要一个过程,使现有网站符合网站标准也不可能一步到位。最好的方法是循序渐进,分阶段来逐步达到完全符合网站标准的目标。如果你是新手,或者对代码不是很熟悉,也可以采用遵循标准的编辑工具,例如Dreamweaver MX 2004,它是目前支持CSS标准最完善的工具。
1.初级改善
为页面添加正确的DOCTYPE
很多设计师和开发者都不知道什么是DOCTYPE,DOCTYPE有什么用。DOCTYPE是document type的简写。主要用来说明你用的XHTML或者HTML是什么版本。浏览器根据你DOCTYPE定义的DTD(文档类型定义)来解释页面代码。所以,如果你不注意设置了错误的DOCTYPE,结果会让你大吃一惊。XHTML1.0提供了三种DOCTYPE可选择:
(1)过渡型(Transitional )
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
(2)严格型(Strict )
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
(3)框架型(Frameset )
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML [...]
phpMyAdmin出现PHP has encountered an Access Violation at XXXXXXXX
2009.09.20 // 2 Comments
昨天在帮朋友配置IIS+PHP环境的时候,安装phpMyAdmin出现了PHP has encountered an Access Violation at XXXXXXXX的错误。
由于第一次碰上这种问题,只好去百度搜索答案,然而每次用百度解决技术问题都令我很失望,同时也越来越感慨国内Copy精神的强大。
翻遍了百度前10页的内容,得出错误可能原因如下:
1. ZendOptimizer和php不兼容
2. session_save_path路径不存在或没有足够的权限
3. 内存不足
4. libmysql.dll版本不兼容
5. php或IIS相关文件权限不够
看来不能指望百度,于是又去google继续搜,翻译结果如下:
1. 这是一个PHP的版本bug,是php典型的bug
2. 据说此bug已经修复近4年,仍未完全解决
3. 老外们在使用IIS时经常碰到同样的错误,不同的内存地址
4. 老外的论坛中有很多人提问相同问题,但没有回帖的,没有很好的解决方法。
5. 可以参考:http://bugs.php.net/bug.php?id=28929
看来这个错误没有固定的解决方法,只能靠自己摸索了。
我尝试了所有搜索到的、可能的方法,但仍然没有解决问题。
最后抱着试试看的态度,下载了一个最新版本的phpMyAdmin,问题解决了。
总结:
1. 造成此错误的随机性太强,不要期望有固定的解决方法
2. 根据硬件、软件环境,具体情况具体分析
3. 重点检查权限问题和兼容性问题
4. 不要仅仅考虑php、Zend等服务环境的兼容,网站代码的兼容性也不能放过
5. 遇事冷静思考,没有解决不了的问题
对 Zend Studio 7.0 失望了(用了一段时间后,感觉ZS7挺顺手的,推荐使用)
2009.08.25 // 9 Comments
Zend Studio 7.0出来几个月了,一直都没空试用它,今天看了Zend官方的一篇文章,又恰好有些空余时间,心里稍微蠢蠢欲动一下,就把7.0安装到了硬盘上。
官方文章中描述的总是令人心潮澎湃,罗列了7.0的一堆优点,并建议用户升级,就文字方面的描述,确实很有吸引力。但当你用过之后,就像一盆冷水浇到了发烫的脑袋上,除了很爽之外还会让你很郁闷。
Zend Studio作为一个历史悠久的IDE,从诞生以来就BUG不断,5.5版本算是最经典的,从6.0开始使用了eclipse架构,虽然提高了系统的兼容性,但是Java那东西太耗费系统资源了,没有强悍的硬件支持,跑一个Zend Studio 7 简直是折磨。
折磨就折磨一下吧,卡一点,慢一点还可以忍受,if、while等语句不能折叠这我也能忍受,偶尔有点中文乱码我也勉强忍受了,但是最最不能忍受的是代码提示慢,我代码都敲完了,他的代码提示还没出来,总不能逼我按Alt+/去手动打开代码提示吧。
Zend Studio 6.x 已经很失败了,7.0虽有亮点但依然鸡肋,不知未来的8.0会不会那么让人失望。
把Zend Studio 7 OOXX了一下,不过按照惯例还是提供一下注册码:
User Name:mimiz_cn
License Key:3B9B9BB76C218B98BB76C218
官方下载地址:http://downloads.zend.com/studio-eclipse/7.0.0/ZendStudio-7.0.0.exe
20090826:
很抱歉我错怪了 ZendStudio7,既然是基于Eclipse开发的东西,同样也继承了eclipse的优点,在Window -> preferences -> PHP -> Editor -> Content assist -> Auto-Activation 中,可以调整自动提示的时间,我把它改为0,提示超快,哇咔咔~~~
20090920:
使用Zend Studio 7.0一个多月,越来越顺手了,现在他已经成了我最主要的php开发集成环境,甚至我的CentOS上面也把Eclipse换Zend Studio 7
20100118:
不少朋友说代码提示慢,确实,跟5.5比是慢多了,但这个是跟硬件环境成正比的,硬件在飞速的发展,软件当然也越做越大,越来越耗费资源,目前我用双核U,3G内存,没有任何不妥,硬件配置不高的朋友,建议回到5.5的平台,或者试试 NetBeans 和 Komodo 。古董机的话,还是用Editplus或者Dreamweaver吧。

