三思而后行

文章分类:misc | 发表评论  查看次数:255 + 80

错已酿成,唯一的补救方法就是吸取教训,不要在一块石头上绊两次。

似乎是工作来的太顺利了,我的心里起了小小的涟漪,于是,很快工作没了,教训有了。

其实之前也犯过类似错误,但并没能避免错误再次发生。不知道轻重缓急,太感性,考虑问题太狭隘。

你很明白冲动是魔鬼,但你不知道你当时是处于冲动状态。

那就这样吧,别再让自己,让身边的人失望了。

druapl的模板系统

文章分类:drupal | 共3 条评论  查看次数:365 + 90

上一篇文章简要介绍了一下,我觉得在国内之所以不太流行,关键是她不够傻瓜,就像傻瓜相机一样,那都是一些入门级的人玩的,你再怎么玩的转,没有专业的镜头配合,那都是瞎胡闹。忽然想到了firefox,某种程度上,跟她有一定的相似性,比如:有完善的插件库,各种功能主要通过插件来实现;新手需要摸索一段时间,才能入门,继而为之陶醉;还有就是在中国,使用人数不多,一方面可能是中文文档的不齐全,另一方面国内的CMS也是另一选择。

说了那么多的废话,下面进入正题。

的默认模板引擎是PHPTemplate,如果要创建一个自己的主题,可以在theme目录下,新建一个文件夹,比如mytheme,然后再创建一个page.tpl.,这样最简单的模板就建立完了(注意:必须是.tpl.结尾;文件名必须是page.tpl.)。你可以创建一系列文件来覆盖默认函数

  • theme('page') (page.tpl.):主题的首页
  • theme('block')(block.tpl.):区块模板,通常用在侧边栏
  • theme('box')(box.tpl.):内容区域的模板
  • theme('comment')(comment.tpl.):评论模板
  • theme('node')(node.tpl.)详细内容模板

每一个模板,都有各自可以使用的变量,这个在上一篇文章也大概说了一下,具体内容查看

以下是我曾经碰到过的问题,以及解决办法

1、如果我要为单独的页面做一个特殊的模板怎么办

比如说要为http://www.example.com/node/1/edit这个页面,单独做一个模板 ,PHPTemplate会在模板文件夹下按照以下次序寻找模板:

page-node-edit.tpl.
page-node-1.tpl.
page-node.tpl.
page.tpl.

如果是访问http://www.example.com/tracker

那么搜寻的模板次序就是:

page-tracker.tpl.
page.tpl.

具体可以查看这篇文章

2、我想在特定的页面显示特定的区块(block)怎么办?

在block里设置,新建block后,点击“配置”,最后的页面可见性设置,有三个选项可以选择。

3、如果我想对不同的区块(block),设置不同的样式,怎么办?

PHPTemplate会在模板目录下,按照下面的顺序查找

block-[module]-[delta].tpl.
block-[module].tpl.
block-[region].tpl.
block.tpl.

可以参考这篇文章

我们都是上帝的实验品

文章分类:misc | 发表评论  查看次数:264 + 107

 如果要问这世间谁最累,我觉得上帝最累。

上帝一刻也不能休息,ta(他/她/它)要安排众生的历程,从蚊子到人类,他都得安排,真的难以想象ta的效率高到了什么程度。

以前,我从来不信什么上帝之类的,因为我对传统本身就抱着一种抵制态度,因此对于从传统的口中说出来的事物,我多表示怀疑。但是现在我长大了,过了法定结婚年龄、大学毕业、有工作经验。我有了独立思考的能力,生活中发生的点点滴滴让我不得不去相信一些事情。

我们都是上帝的实验品,上帝把我们创造出来,然后给我们安排了各种路,看我们怎么选;给了我们各种机会,看看我们怎么把握;给了我们各种诱惑,看看我们能不能抵抗地住;给了我们各种优点,看看我们如何发挥这些优点;给了我们各种缺点,看看我们如何看待自己的缺点。

在佛山的时候,我想租一个小一点的屋子,想体验一下那种被拘束在小空间里的感觉,结果找到中介,中介给我看的屋子,恰恰跟我想象的一样,于是我毫不犹豫地租下了。到了大连,我不再想感受那种生活了,我想租一个宽敞点,家具、电器齐全,装修也还过得去的屋子,结果,当天下午,在朋友的帮助下,我又如愿了。

在佛山的时候,有一个大连的朋友,加了我的gtalk,到了大连之后,我问他在哪儿工作,他说软件园,结果就在我工作地点的上一层,世界就是这么小。

结果谁也不知道,not you,not I ,not the god 。

生活中,上帝总是会给你一点提示,你必须领会这些提示,然后作出判断。

运行php程序时出现内存不够的解决办法

文章分类:PHP | 发表评论  查看次数:298 + 113

在安装一些大的程序或者模块的时候,有时会出现这种情况,这是因为默认的配置是使用8M的内存,有下面几种解决办法

在应用程序的包含文件里,加入


ini_set ( "memory_limit", "20M");

当然ini_set也不是万能的,具体可以查看官网说明

或者使用.htaccess,如果可以的话

php_value memory_limit 20M
 

drupal使用笔记

文章分类:drupal | 发表评论  查看次数:447 + 59

是一款开源的内容管理系统(CMS),其官方主站为:http://www.drupal.org

更多的CMS可以到OpenSourceCMS查看 ,如果你喜欢哪款CMS,可以对其投票,不过都是国外的,从投票的情况来看,排名第一。

可以到这里查看成功案例http://drupal.org/node/15237

点击这里查看统计的使用其构建的网站

可以免费下载使用,可以方便的发布、组织、管理网站的各类内容,有上万的个人或公司使用来搭建自己的个性网站,包括

  • 社区门户网站
  • 论坛
  • 企业网站
  • 互联网应用
  • 个人网站或博客
  • 网站迷
  • 电子商务网站
  • 资源共享
  • SNS

在你下载后,可以非常方便地进行安装,内建的功能系统和丰富的模块可以让你的网站非常有特色,包括:

  • 内容管理系统(CMS)
  • blog
  • 共同创作环境
  • 论坛系统
  • p2p网站
  • 实事通讯
  • 播客
  • 图库
  • 文件上传下载

当然还有更多。

以下是我的使用感受

Read more

MySQL优化小技巧

文章分类:MySQL | 发表评论  查看次数:278 + 82

原文地址:click here

以下为译文


最近经常看到有人讨论的优化,可以理解,其实他们都没有尝试过在海量数据下,哪些因素会成为瓶颈。一些简单的建议 我不认为自己是专家,但我有在大数据量下工作的经验,以及自己总结的关于查询的优化。通过使用EXPLAIN来优化查询EXPLAIN 是你的朋友,你应该去了解她。如果你花时间去了解EXPLAIN的说明文档 的话,会发现许多有价值的东西,部分显示如下。

优化 JOIN

是通过但扫描多连接的方式来处理JOIN的,也就是说,首先从第一个表获取所有的行,然后从第二个表中查找匹配数据,接着是第三个,以此类推。当所有的表都被处理后,输出所选择的列然后撤出该表。

为什么这很重要?假设一个表(tableA)有8000条数据,这个表有一个对应的n:n的表(locations),存储的是tableA的location,可以这么来写这个查询

SELECT tableA.*, locations.location FROM tableA
LEFT JOIN tableA2locations ON
tableA2locations.tableA_id = tableA.id
LEFT JOIN locations ON
tableA2locations.location_id = locations.id
WHERE locations.location = 'sometown'
 

对这个查询语句留个印象。会首先从第一个表获取记录,然后从join table中筛选出符合的数据,以此类推。这将带领我们进入下一个话题

执行一个查询所需要的行数

通过观察EXPLAIN的输出可以对这个查询语句的优劣有一个大致的判断。她能够告诉你有多少条数据必须检测。

通过上面这个例子可以看出,如果一个表没有索引,那么在处理一个普通的3表查询(1000x1000x1000)时,一个join语句就有可能变得很慢。可以参考这篇文章

减少一个查询语句里面的行数

仍然拿上面那个例子来看,我们通过多一个where条件,来使得查询的行数减半(tableA.foo = 'bar')。

SELECT tableA.*, locations.location FROM tableA
LEFT JOIN tableA2locations ON
tableA2locations.tableA_id = tableA.id
LEFT JOIN locations ON
tableA2locations.location_id = locations.id
WHERE locations.location = 'sometown' AND tableA.foo = 'bar'
 

这样我们只需从tableA的4万条数据开始查询。如果tableA2locations还有2千条数据的话,总共是80,000(我不知道怎么来的)条数据。情况有些好转,但如果有3个表或者更多呢?答案应该是首先查询数量最少的表

SELECT tableA.*, locations.location FROM locations
LEFT JOIN tableA2locations ON
tableA2locations.location_id = locations.id
LEFT JOIN tableA ON
tableA2locations.tableA_id = tableA.id
WHERE locations.location = 'sometown' AND tableA.foo = 'bar'
 

如果tableA2locations和tableA都有做索引的话,那么查询将是相当快的。

最初我编程的时候,我总是先选择主表然后关联其他的表。但是当你添加一些数据后并开始使用EXPLAIN时,你会发现首先select行数最少的表是最佳选择。

如果想更深入地了解这个话题,可以到HackMySQL去看看。

共3页 上一页 1 2 3 下一页