月度归档:2012年05月

乔布什 每个人都该读一读

史蒂夫•乔布斯(Steve Jobs)今年 6 月在斯坦福大学的演讲中谈到了他生活中的三次体验,这三次体验不仅在斯坦福大学的毕业生、也在硅谷乃至其他地方的技术同行中引起了巨大反响。尤其The Whole Earth Catalog提到的话,作为杂志,这是一种精神,一种气质。 
“好学若饥、谦卑若愚” 
很荣幸和大家一道参加这所世界上最好的一座大学的毕业典礼。我大学没毕业,说实话,这是我第一次离大学毕业典礼这么近。今天我想给大家讲三个我自己的故事,不讲别的,也不讲大道理,就讲三个故事。 
第一个故事讲的是点与点之间的关系。我在里德学院(Reed College)只读了六个月就退学了,此后便在学校里旁听,又过了大约一年半,我彻底离开。那么,我为什么退学呢? 
这得从我出生前讲起。我的生母是一名年轻的未婚在校研究生,她决定将我送给别人收养。她非常希望收养我的是有大学学历的人,所以把一切都安排好了,我一出 生就交给一对律师夫妇收养。没想到我落地的霎那间,那对夫妇却决定收养一名女孩。就这样,我的养父母—当时他们还在登记册上排队等著呢—半夜三更接到一个 电话: “我们这儿有一个没人要的男婴,你们要么?”“当然要”他们回答。但是,我的生母后来发现我的养母不是大学毕业生,我的养父甚至连中学都没有毕业,所以她 拒绝在最后的收养文件上签字。不过,没过几个月她就心软了,因为我的养父母许诺日后一定送我上大学。 
17 年后,我真的进了大学。当时我很天真,选了一所学费几乎和斯坦福大学一样昂贵的学校,当工人的养父母倾其所有的积蓄为我支付了大学学费。读了六个月后,我 却看不出上学有什么意义。我既不知道自己这一生想干什么,也不知道大学是否能够帮我弄明白自己想干什么。这时,我就要花光父母一辈子节省下来的钱了。所 以,我决定退学,并且坚信日后会证明我这样做是对的。当年做出这个决定时心里直打鼓,但现在回想起来,这还真是我有生以来做出的最好的决定之一。从退学那 一刻起,我就可以不再选那些我毫无兴趣的必修课,开始旁听一些看上去有意思的课。 那些日子一点儿都不浪漫。我没有宿舍,只能睡在朋友房间的地板上。我去退还可乐瓶,用那五分钱的押金来买吃的。每个星期天晚上我都要走七英里,到城那头的 黑尔-科里施纳礼拜堂去,吃每周才能享用一次的美餐。我喜欢这样。我凭著好奇心和直觉所干的这些事情,有许多后来都证明是无价之宝。我给大家举个例子: 
当时,里德学院的书法课大概是全国最好的。校园里所有的公告栏和每个抽屉标签上的字都写得非常漂亮。当时我已经退学,不用正常上课,所以我决定选一门书法 课,学学怎么写好字。我学习写带短截线和不带短截线的印刷字体,根据不同字母组合调整其间距,以及怎样把版式调整得好上加好。这门课太棒了,既有历史价 值,又有艺术造诣,这一点科学就做不到,而我觉得它妙不可言。 
当时我并不指望书法在以后的生活中能有什么实用价值。但是,十年之后,我们在设计第一台 Macintosh 计算机时,它一下子浮现在我眼前。于是,我们把这些东西全都设计进了计算机中。这是第一台有这么漂亮的文字版式的计算机。要不是我当初在大学里偶然选了这么一门课,Macintosh 计算机绝不会有那么多种印刷字体或间距安排合理的字号。要不是 Windows 照搬了 Macintosh,个人电脑可能不会有这些字体和字号。要不是退了学,我决不会碰巧选了这门书法课,个人电脑也可能不会有现在这些漂亮的版式了。当然,我在大学里不可能从这一点上看到它与将来的关系。十年之后再回头看,两者之间的关系就非常、非常清楚了。 你们同样不可能从现在这个点上看到将来;只有回头看时,才会发现它们之间的关系。所以,要相信这些点迟早会连接到一起。你们必须信赖某些东西—直觉、归宿、生命,还有业力,等等。这样做从来没有让我的希望落空过,而且还彻底改变了我的生活。 

我的第二个故事是关于好恶与得失。幸运的是,我在很小的时候就发现自己喜欢做什么。我在 20 岁时和沃兹(Woz,苹果公司创始人之一 Wozon 的昵称—译注)在我父母的车库里办起了苹果公司。我们干得很卖力,十年后,苹果公司就从车库里我们两个人发展成为一个拥有 20 亿元资产、4,000 名员工的大企业。那时,我们刚刚推出了我们最好的产品— Macintosh 电脑—那是在第 9 年,我刚满 30 岁。可后来,我被解雇了。你怎么会被自己办的公司解雇呢?是这样,随著苹果公司越做越大,我们聘了一位我认为非常有才华的人与我一道管理公司。在开始的一 年多里,一切都很顺利。可是,随后我俩对公司前景的看法开始出现分歧,最后我俩反目了。这时,董事会站在了他那一边,所以在 30 岁那年,我离开了公司,而且这件事闹得满城风雨。我成年后的整个生活重心都没有了,这使我心力交瘁。 
一连几个月,我真的不知道应该怎么办。我感到自己给老一代的创业者丢了脸—因为我扔掉了交到自己手里的接力棒。我去见了戴维•帕卡德(David Packard,惠普公司创始人之一—译注)和鲍勃•诺伊斯(Bob Noyce,英特尔公司创建者之一—译注),想为把事情搞得这么糟糕说声道歉。这次失败弄得沸沸扬扬的,我甚至想过逃离硅谷。但是,渐渐地,我开始有了一 个想法—我仍然热爱我过去做的一切。在苹果公司发生的这些风波丝毫没有改变这一点。我虽然被拒之门外,但我仍然深爱我的事业。于是,我决定从头开始。 
虽然当时我并没有意识到,但事实证明,被苹果公司炒鱿鱼是我一生中碰到的最好的事情。尽管前景未卜,但从头开始的轻松感取代了保持成功的沉重感。这使我进入了一生中最富有创造力的时期之一。 在此后的五年里,我开了一家名叫 NeXT 的公司和一家叫皮克斯的公司,我还爱上一位了不起的女人,后来娶了她。皮克斯公司推出了世界上第一部用电脑制作的动画片《玩具总动员》(Toy Story),它现在是全球最成功的动画制作室。世道轮回,苹果公司买下 NeXT 后,我又回到了苹果公司,我们在 NeXT 公司开发的技术成了苹果公司这次重新崛起的核心。我和劳伦娜(Laurene)也建立了美满的家庭。 
我确信,如果不是被苹果公司解雇,这一切决不可能发生。这是一剂苦药,可我认为苦药利于病。有时生活会当头给你一棒,但不要灰心。我坚信让我一往无前的唯 一力量就是我热爱我所做的一切。所以,一定得知道自己喜欢什么,选择爱人时如此,选择工作时同样如此。工作将是生活中的一大部分,让自己真正满意的唯一办 法,是做自己认为是有意义的工作;做有意义的工作的唯一办法,是热爱自己的工作。你们如果还没有发现自己喜欢什么,那就不断地去寻找,不要急于做出决定。 就像一切要凭著感觉去做的事情一样,一旦找到了自己喜欢的事,感觉就会告诉你。就像任何一种美妙的东西,历久弥新。所以说,要不断地寻找,直到找到自己喜 欢的东西。不要半途而废。 我的第三个故事与死亡有关。17 岁那年,我读到过这样一段话,大意是:“如果把每一天都当作生命的最后一天,总有一天你会如愿以偿。”我记住了这句话,从那时起,33 年过去了,我每天早晨都对著镜子自问: “假如今天是生命的最后一天,我还会去做今天要做的事吗?”如果一连许多天我的回答都是“不”,我知道自己应该有所改变了。 
让我能够做出人生重大抉择的最主要办法是,记住生命随时都有可能结束。因为几乎所有的东西—所有对自身之外的希求、所有的尊严、所有对困窘和失败的恐惧— 在死亡来临时都将不复存在,只剩下真正重要的东西。记住自己随时都会死去,这是我所知道的防止患得患失的最好方法。你已经一无所有了,还有什么理由不跟著 自己的感觉走呢。 
大约一年前,我被诊断患了癌症。那天早上七点半,我做了一次扫描检查,结果清楚地表明我的胰腺上长了一个瘤子,可那时我连胰腺是什么还不知道呢!医生告诉我说,几乎可以确诊这是一种无法治愈的恶性肿瘤,我最多还能活 3 到 6 个月。医生建议我回去把一切都安排好,其实这是在暗示“准备后事”。也就是说,把今后十年要跟孩子们说的事情在这几个月内嘱咐完;也就是说,把一切都安排妥当,尽可能不给家人留麻烦;也就是说,去跟大家诀别

那一整天里,我的脑子一直没离开这个诊断。到了晚上,我做了一次组织切片检查,他们把一个内窥镜通过喉咙穿过我的胃进入肠子,用针头在胰腺的瘤子上取了一 些细胞组织。当时我用了麻醉剂,陪在一旁的妻子后来告诉我,医生在显微镜里看了细胞之后叫了起来,原来这是一种少见的可以通过外科手术治愈的恶性肿瘤。我 做了手术,现在好了。 
这是我和死神离得最近的一次,我希望也是今后几十年里最近的一次。有了这次经历之后,现在我可以更加实在地和你们谈论死亡,而不是纯粹纸上谈兵,那就是: 谁都不愿意死。就是那些想进天堂的人也不愿意死后再进。然而,死亡是我们共同的归宿,没人能摆脱。我们注定会死,因为死亡很可能是生命最好的一项发明。它 推进生命的变迁,旧的不去,新的不来。现在,你们就是新的,但在不久的将来,你们也会逐渐成为旧的,也会被淘汰。对不起,话说得太过分了,不过这是千真万 确的。 
你们的时间都有限,所以不要按照别人的意愿去活,这是浪费时间。不要囿于成见,那是在按照别人设想的结果而活。不要让别人观点的聒噪声淹没自己的心声。最主要的是,要有跟著自己感觉和直觉走的勇气。无论如何,感觉和直觉早就知道你到底想成为什么样的人,其他都是次要的。 
我年轻时有一本非常好的刊物,叫《全球概览》(The Whole Earth Catalog),这是我那代人的宝书之一,创办人名叫斯图尔特•布兰德(Stewart Brand),就住在离这儿不远的门洛帕克市。他用诗一般的语言把刊物办得生动活泼。那是 20 世纪 60 年代末,还没有个人电脑和桌面印刷系统,全靠打字机、剪刀和宝丽莱照相机(Polaroid)。它就像一种纸质的 Google,却比 Google 早问世了 35 年。这份刊物太完美了,查阅手段齐备、构思不凡。 
斯图尔特和他的同事们出了好几期《全球概览》,到最后办不下去时,他们出了最后一期。那是 20 世纪 70 年代中期,我也就是你们现在的年纪。最后一期的封底上是一张清晨乡间小路的照片,就是那种爱冒险的人等在那儿搭便车的那种小路。照片下面写道: 好学若饥、谦卑若愚。那是他们停刊前的告别辞。 
求知若渴,大智若愚。这也是我一直想做到的。眼下正值诸位大学毕业、开始新生活之际,我同样愿大家: 好学若饥、谦卑若愚。

使用php批量旋转图片

在服务器上面有一批图片处理,方向不对头,要是用ps之类的软件来处理,肯定会耗费大量时间

于是写了一个小函数,使用php批量旋转图片,下面说一下思路:

先是用递归遍历目录,然后对要旋转的图像做出选择,然后进行旋转。

 

这么一大批的图片,非常费时间,php.ini默认程序内存和超时时间都是有限制的

超过了程序就会停止报:PHP Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 67108888 bytes)主机提示内存不足

 

对于主机提示内存不足的解决办法网上有好多:

  1、修改php.ini(保举)
memory_limit = 12M 改大数值
2、在程序里面添加如下语句
ini_set(”memory_limit”, ”12M”);
3、在根目录建立
.htaccess文件,添加如下内容
php_value memory_limit 12M
如果还不能解决,就把它改得再大一些。 

  最后注意的是重启服务器 

 下面是程序:非常菜的程序

$dir=”d:/web/baijiu/baijiu1″;
reimg($dir);

function reimg($dir){
$res=opendir($dir);//和fopen不一样
readdir($res);
readdir($res);
while($filename=readdir($res)){
$path=$dir.’/’.$filename;
if(is_dir($path)){
//echo $filename.’ is dir<br>’;
reimg($path);
}else{
if(preg_match(“/(d+).jpg/”,$filename,$match)){
// echo $path . ‘—‘ . $filename . ‘<br>’;

$degrees = 180;
// Content type
header(‘Content-type: image/jpeg’);
// Load
$source = imagecreatefromjpeg($path);
// Rotate
$rotate = imagerotate($source, $degrees, 0);
// Output
imagejpeg($rotate,$path);
}else{

//echo $path.’—‘.$filename.’—错误,没有您要找的图像<br>’;
}
}
}
}

 

SQL效率之truncate 、delete与drop区别

在数据库操作中避免不了要删除表中的内容,删除表的整个结构…可用方法有很多,下面来分析一下SQL效率之truncate 、delete与drop区别

相同之处:

1.truncate和不带where子句的delete、以及drop都会删除表内的数据。

2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。

 

不同之处:

1.drop和delete只是删除表的数据(定义),drop语句将删除表的结构、被依赖的约束(constrain)、触发器 (trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态。

2.delete语句是DML语言,这个操作会放在rollback segement中,事物提交后才生效;如果有相应的触发器(trigger),执行的时候将被触发。truncate、drop是DDL语言,操作后即 生效,原数据不会放到rollback中,不能回滚,操作不会触发trigger。

3.delete语句不影响表所占用的extent、高水线(high watermark)保持原位置不动。drop语句将表所占用的空间全部释放。truncate语句缺省情况下将空间释放到minextents的 extent,除非使用reuse storage。truncate会将高水线复位(回到最初)。

4.效率方面:drop > truncate > delete

5.安全性:小心使用drop与truncate,尤其是在 没有备份的时候,想删除部分数据可使用delete需要带上where子句,回滚段要足够大,想删除表可以用drop,想保留表只是想删除表的所有数据、 如果跟事物无关可以使用truncate,如果和事物有关、又或者想触发 trigger,还是用delete,如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入、插入数据。

6.delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。

 

drop一般用于删除整体性数据 如表,模式,索引,视图,完整性限制等

delete用于删除局部性数据 如表中的某一元组

 

DROP把表结构都删了

DELETE只是把数据清掉

 

当你不再需要该表时, 用 drop;

当你仍要保留该表,但要删除所有记录时, 用 truncate;

当你要删除部分记录时(always with a WHERE clause), 用 delete.

ie6不支持min-height的解决方法

如果页面内容非常少时,最小高度min-height是很有用的,但IE6却不支持。

在这里LAMP技术博客和大家分享一下IE6不支持min-height的解决办法,希望你对本文介绍感兴趣。

IE6不支持min-height的解决办法

我们可以利用IE6不识别!important来实现:

  1. height:auto!important;
  2. height:500px;
  3. min-height:500px;

这3句代码就让IE6也有了高度min-height的效果,大家可以把下面的代码复制保存成网页文件看看效果。

ie6中DIV最小高度的解决方法

今天想写一个3像素的红框,在ie6下面测试,不是3像素很高。查资料解决此问题。
这是因为在IE6中,系统默认的并非是Div有一个默认的高度,而是你没有解决一个隐藏的参数,font-size,这个是ie6中对于Div属性中的font-size大小和你系统css中定义的font-size有很大关系,因此必须单独定义这个Div的font-size,这样才能解决这个问题。更改后的代码如下。

 

CentOS中本地yum源设置

【设置本地镜像作为yum源】

  1. mkdir /mnt/cdrom
  2. mount  /dev/cdrom  /mnt/cdrom #挂载镜像,光盘
  3. mkdir /mnt/cd
  4. cp -R /mnt/cdrom/* /mnt/cd #将光盘内的内容copy到某个路径下
  5. vi /etc/yum.repos.d/CentOS-Media.repo #编辑repo文件

1)编辑yum配置文件,添加一下内容:
[c5-media]
name=CentOS-$releasever – Media
baseurl=file:///mnt/cd * 修改为自己建的那个目录,这样以后就不用挂载了
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1 * 改为1意为启用
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
2)将网络yum源配置文件移至其他位置:
mv /etc/yum.repos.d/CentOS-Base.repo /backup/CentOS-Base.repo_$(date +%F)

在CentOS下设置vim语法高亮

在CentoS下面使用root登录,执行vi时会发现没有语法高亮.
一般系统默认就把vi alias到vim才对.

在.bashrc中加上alias后搞定.
vi ~/.bashrc
alias vi=’vim’

vi ~/.vimrc
syntax on
set showcmd ” Show (partial) command in status line.
set showmatch ” Show matching brackets.
set ignorecase ” Do case insensitive matching
set smartcase ” Do smart case matching
set incsearch ” Incremental search
set autowrite ” Automatically save before commands like :next and :make
set hidden ” Hide buffers when they are abandoned