是什么造就了伟大的程序员(转)

aed7d2b181afbf9f

 回想起来就像是在昨天。那是2000年,在数据结构课程的课堂上,Pargas博士站在前面给我们讲一些关于数据结构的话题,一个SSH的画面投影在我们前 面的墙上。有人问了一个问题,他说了一些东西,差不多是这样的话“是这样,如果你想成为一个真正的计算机科学家,你需要从现在开始就使用vi编辑器”。

我想他是在笑谈,课后感觉他说的话并不是完全的正确,但作为年轻且容易被感染的我,回到寝室立刻就开始学习如何使用vi。学习过程不容易,花费了不少时间,但一旦掌握了其中的窍门,我发现,使用vi的确可以更快的做事情。

时间推到6年前,那时我对TextMate十分的着迷。我的工作是做Java开发,但同时我学习Rails,在业余时间开发一些Rails项目。那时几乎所有我读的文章和观看的视频都是说明和演示如何使用TextMate来完成文本编辑工作的方法技巧的。事实上,我每天都在使用的Eclipse想要把我变成一头蠢猪。于是,我买了一台Mac电脑,开机后十分钟内我就买了一套TextMate装了上去。

说老实话,这两种编辑器没有一种使我成为一个更好的程序员。 Continue reading »是什么造就了伟大的程序员(转)

图片垂直居中CSS

图片垂直居中代码:(IE要求外围div高度是固定的)
.box {
        /*非IE的主流浏览器识别的垂直居中的方法*/
        display: table-cell;
        vertical-align:middle;

        /*设置水平居中*/
        text-align:center;

        /* 针对IE的Hack */
        *display: block;
        *font-size: 175px;/*约为高度的0.873,200*0.873 约为175*/
        *font-family:Arial;/*防止非utf-8引起的hack失效问题,如gbk编码*/

        width:200px;
        height:200px;
        border: 1px solid #eee;
}
.box img {
        /*设置图片垂直居中*/
        vertical-align:middle;
        margin:0 auto;
}

<div class="box">
        <img src="*.jpg" />
</div>

Continue reading »图片垂直居中CSS

fastcgi mod_fcgid: HTTP request length

最近在win2003 apache+php+fastcgi+mysql  开发环境下,使用wordpress上传图片时,遇到稍大的图片总是会遇到“HTTP error”,但是检查过php.ini发现文件大小限制post_max_size设置的没有问题,查看apache的logs 日志记录才显示了问题所在:

“mod_fcgid: HTTP request length 135567 (so far) exceeds MaxRequestLen (131072)”

原来是fastcgi模式下的设置问题,需要在配置文件.htaccess或者直接在apache的配置文件http.conf 中指明,如下:

<IfModule mod_fcgid.c>   AddHandler    fcgid-script .fcgi   FcgidConnectTimeout  20   # to get around upload errors when uploading images increase the MaxRequestLen size to 15MB   MaxRequestLen  15728640 </IfModule>

里面的“MaxRequestLen”就是fastcgi模式下上传文件也就是http接受的最大文件长度。

CSS3圆角在IE,Firefox,Chrome,Safari的实现

 

Firefox的圆角属性:

如果你想设置四个角都是一样圆角的话,可以像这样子直接设置-moz-border-radius:5px; 也可以单独设置元素的上左、上右、下右、下左四个角的值,分别用

-moz-border-radius-topleft -moz-border- radius-topright -moz-border-radius-bottomright -moz-border-radius- bottomleft

来设置。 也可以用合并起来一起设置如:-moz-border-radius:5px 0 5px 0;

对chrome、Safari这两个webkit内核的浏览器来说,是用-webkit-border-radius来实现的。

如果你想设置四个角都是一样圆角的话,依然可以像这样子直接设置-moz-border-radius:3px;

如果是单独设置四个角的话,需要采取这种方式

-webkit-border-top-left-radius:5px 10px; -webkit-border-top-right-radius:5px 10px; -webkit-border-bottom-right-radius:5px 10px; -webkit-border-bottom-left-radius:5px 10px;

如果是要合并的话,只支持-webkit-border-radius:3px;或者是这样子-webkit-border-radius:3px 4px;使用-webkit-border-radius:5px 0 5px 0;将不会有任何效果。

对于IE浏览器,由于对CSS3支持欠佳,可以考虑加入behavior属性。

不同浏览器下的综合一下可以这样写:

-moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; behavior: url(ie-circle-css3.htc);

如果要圆角效果,外加圆角背景的话可以借助border设置:

border-width:10px; border-color:#000; border-style:solid;

中间引入的ie-circle-css3.htc 内容如下:

// = limit) . . . → Read More: CSS3圆角在IE,Firefox,Chrome,Safari的实现

PHP5.3开发者模式

PHP开发者模式

最近升级到php5.36 最新版本运行,总是会很多 “Fatal Error” 或 “Notice” 错误,后来发现Notice 是因为 php.ini 里在development模式下定义error_reporting = E_ALL | E_STRICT, 在此模式下php解释器检查语法比较严格,如果想忽略的话可以改为error_reporting  =  E_ALL & ~E_NOTICE 来跳过Notice级别的警告。

而deprecate的error警告,提示我们的PHP程序要与时俱进的向着最新的编码要求看齐,这样在以后升级PHP版本时才不会带来很多不可预测的错误,编码也更加规范。

php升级为5.3后,程序会报 Function split() is deprecated 的错误。 这是因为种种原因(主要是关于正则的原因,具体见后),split这个函数在新版本不支持了。 在php中,再使用deprecated的函数会报错,必须改掉。(java里deprecated的函数只是给警告,还可以继续用) 改为什么呢? 看第一个参数,如果第一个参数不是正则表达式,split改为 explode;如果是正则表达式,split改为preg_split。 explode会比以前快很多,因为以前要考虑正则,explode不考虑正则。 ————- PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?). 所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, . . . → Read More: PHP5.3开发者模式