手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

Yii框架中使用PDO时强制将表字段设为小写的BUG

Yii框架的使用者越来越多,虽然大多数情况下都能够被使用的很正常,但偶尔还是有一些小问题,比如mysql对库名和表名区分大小写,但字段名不区分;这个问题就给Yii框架使用者带来很大的烦恼,特别是这个表还不是自己设计的,只是你拿来使用的,这个郁闷程度啊。
于是有人提醒我,应该这么用,在components中的db数组里加入:attributes=>array(PDO::ATTR_CASE,PDO::CASE_LOWER),以达到强制小写的目的,嗯,想法是好的,但是gii没法用了,gii直接报错,排查了半天,发现可能是CMysqlSchema这个类中的createColumn方法导致的错误,因为当你设置为列名小写后,这个方法中的一些判断却还是用的大写,于是很多变量就找不到了,没有办法继续下一步操作,于是我改了一下这个函数:

PHP代码
  1. /** 
  2.  * Creates a table column. 
  3.  * @param array $column column metadata 
  4.  * @return CDbColumnSchema normalized column metadata 
  5.  */  
  6.    protected function createColumn($column) {  
  7.        $column = array_change_key_case($column, CASE_LOWER);  
  8.        $c = new CMysqlColumnSchema;  
  9.        $c->name = $this->getDbConnection()->getColumnCase() == PDO::CASE_LOWER  
  10.                ? strtolower($column['field'])  
  11.                : ($this->getDbConnection()->getColumnCase() == PDO::CASE_UPPER ? strtoupper($column['field'])  
  12.                        : $column['field']);  
  13.        $c->rawName = $this->quoteColumnName($c->name);  
  14.        $c->allowNull = $column['null'] === 'YES';  
  15.        $c->isPrimaryKey = strpos($column['key'], 'PRI') !== false;  
  16.        $c->isForeignKey = false;  
  17.        $c->init($column['type'], $column['default']);  
  18.        $c->autoIncrement = strpos(strtolower($column['extra']), 'auto_increment') !== false;  
  19.        return $c;  
  20.    }  


当然上面的代码很粗燥,我也只是先临时解决这个问题,这么写之后,马上gii就恢复正常了。黑黑

顺便再说一个技巧:以前用gii的时候,对于生成model类都是一个个的输入一个个的生成,总想着应该可以批量生成,但一直不知道如何操作,直到昨天在解决上面的问题时,发现原来在gii里有这样一段代码:

PHP代码
  1. if($this->tableName[strlen($this->tableName)-1]==='*')  

我晶啊,原来那个表名可以写成*啊,这样就是自动生成整个数据库的model了,哎,以前居然一直没在意。

Tags: yii, model

来自Fenng:创业团队成员的「挑战」以及「成长」的问题

以下这篇文章来自于Fenng的博客,主要是其中有几段对我来说很有意义,当前我也是正处在一个创业公司中,也遇到了其中所提到的一些问题,工作量和工作难度这一点其实很多时候都无法界定,工作量大的时候,工作难度肯定是低的,这让我想起很久以前看到过的一篇文章:某一个实习生去某大公司实习,发现做的都是一些重复重复再重复的事情,问其他人为什么不改变,或简化流程或合并制作,但很多老人都告诉她还是按部就班吧;她不愿意这样,于是在实习期间自己想办法把自己的工作简化了流程,提升了很大的工作效率,实习结束后,被上面看中升为了部门经理。嗯,其实大家都知道做网站很多时候大量的时间都浪费在做表单上,不过也没有办法,总是各种各样不同的表单,于是很多人就开始做表单自动生成器,表单验证器,这何尝不是一种学习?
哎,不说废话了,看看Fenng怎么说的吧,我会将一些话标红,也希望能够引起共鸣: 创业团队成员的「挑战」以及「成长」的问题

回想从最初开始负责丁香园技 术团队到现在,团队规模已经增加了几倍,有人离职,也有更多的人加入。团队一大,自然有些问题会浮现出来。比如最近在和团队同事聊天或是面试面谈的时候, 经常会听到类似的话「觉得现在的工作没什么挑战」或是「感觉学不到东西」,以前偶尔听到团队同事这样的反馈,还是挺让我着急的,我第一直觉是很惭愧,公司 或是团队给同事提供的资源和机会太少了,于是,不停的争取资源或是尽量改进,但是最后我逐渐发现,这样还是不能完全解决问题,这并非是问题的根源,因为一 方面有人说没挑战 ,一方面是一堆老大难问题很久得不到解决。觉得「没挑战」和「没成长」其实是很多人会有的心态,尤其是刚参加工作没几年的容易形成这样习惯上的认知。

我以前写过一篇 工程师在创业团队的技术挑战 ,说了一下我对技术上的「挑战」的看法,现在趁着有点空闲,再谈谈谈创业团队中的成员的「挑战」以及「成长」的问题。{请注意,这只是一篇随笔,我无意去讨论什么管理之类的废话,也不奢望就这么几个字能解决所有问题,对少数人起到一个提醒的作用就足够了}

一般觉得工作没什么挑战的,原因可能无外乎几个: 要么认为自己的能力足够高了,不屑于再做「简单」的事情; 要么认为自己是在做「重复」的工作;要么,觉得没接触到新东西;也很有可能只是各种借口或是「心态」的体现。

实际上,任何团队中都没有「简单」的事情,只有做得好或是做不好的事情。什么是简单? 给产品写一段文字说明够简单么?写一封 EDM 够简单么? 如果仔细推敲的话,会看到绝大多数文案都是糟糕的一塌糊涂,那么为什么不用更高的标准要求以下自己呢?既然能力够高了,为什么你说的「简单」的事情还做不好呢?所谓眼高手低,不就是说这种情况么? 如果小事情做到比别人好,那么大一点的事情团队就会更加放心的给你去做。否则的话,换了是你,你也不会将重要的任务交给连小事情都做不好的人吧?

任何团队中也没有「重复」的事情。任何事情,如果不针对反馈做任何改进的话,做第二遍你就会觉得是重复;而如果每次都能根据反馈不停的修正,那么做 成千上万次可能还会找到乐趣。比如说我们网站经常要给用户设计一些广告图片,有的同事说,总让我做广告图片,枯燥、乏味,我的设计能力如何得到提高? 的确,如果每次都用最低的标准要求自己,怎么提高呢?客户或是同事给你的反馈,比如,图片上的文字都是毛边的,无论怎么说你都无动于衷,那么怎么可能真的 提高呢? 所以,面对「重复」的事情,必须不断的给自己设立新标准,然后努力去突破,重复的事情里面依然大有文章,想想如何提高质量,再想想如何提升效率

至于说接触不到新技术,其实问一句话就好: 你业余时间为什么不学呢? 大部分回答是: 没时间。这是无解的问题。一般听到「没时间」,有时间整天逛淘宝难道没时间学习么? 其实潜台词都是「这是不重要的事情」,任何事情,你不投入比别人更多的精力,怎么做到比别人更好么? 正所谓,「以大多数人的努力程度之低,根本轮不到去拼天赋」,同样,不做好准备,也等不来机会。

至于心态,我引用丁香园 CEO 张进的一句话:两个都是新入职的同事,也都是第一份工作,交给他们差不多的事情做,一个想「他奶奶的,就这么点工资,让干这么多活?」,另一个则想「没想 到新人都给这么多机会锻炼」,你说过几年谁的成就更大? 这或许可以回答某些人的疑问「为什么我和同学毕业的时候都差不多,怎么过几年不见,人家都做到某公司总监乃至副总了,我还是在不停的换工作?」,就是心态 导致的差异。

有些人觉得创业团队或是小型公司里面,资源少,「学不到什么东西」,其实,是你没仔细去学习应该学的东西。前几天给几个好友的新创业项目提建议,我 说你们某个地方做的不及格,他们说要我给讲讲,我说这个应该不用讲的,你们团队中的某某,以前看过我做同样的事情,按理说,他也能做一下的。遗憾的是,没 去做,也做不来。为什么? 别人做他熟悉的那一点领域之外的事情,他是漠不关心的,意识不到学习更多东西是有价值的。有人说,问题就是机会,团队的问题,就是每个人的机会,谁能解决 掉,就会给团队带来更大的价值,相应的,他也会得到更大的回报。而在创业团队里面,恰恰是需要解决问题的人,不欢迎那些不动脑筋的螺丝钉。创业团队中,可 接触的问题不可谓不多,公司的方方面面都需要有人动手来做,如果平时多用点心思,学到的东西早晚在将来还会用到。很多人不都是有创业的想法么?但是你连基 本的积累都不够,创业? 怕是要撞墙。

那么是不是在大公司里面才能让人得到锻炼呢? 曾经遇到过不少工程师当面告诉我,想去某某大型互联网公司去工作几年,提高一下技术,遗憾的是,几乎没看到一个人在几年后能力真的得到提升,有的甚至退 步,为什么?一个很大的原因是,大公司里面多数的事情都已经固定下来了,而很多牛人之所以牛,是因为他们遇到公司从小到大的过程,在这个过程中他们得到了 难得的成长机遇,不停的学习充实自己,解决各种问题,才成为牛人,牛人也多是苦日子熬过来的。等到天下皆定,哪还有那么多硬仗好打呢? 另外,「想锻炼技术」并不是一个很好的出发点,单纯的想锻炼技术实际上并不利于「解决问题」,培养能力和意识更为关键。

我在微博上调侃过:很多人都希望找到一个完美的公司,比如,办公室要无比舒适;用最好的设备;完备的培训机制,还别占用休息时间;弹性工作制;别他 妈太累;也别让老子加班;公司前台要好看;没有刻板的工作流程;工作要有创造性不是重复劳动,别管我是否有创造性;队友不是猪而且都是天才,遇到困难他们 就会出手解决;做的事必须是最潮的,但别管赚钱与否... 还有,最重要的,薪水要高。遗憾的是,这样的工作估计是做公务员也不一定完全具备,只会让自己更加痛苦,甚至增加无谓的抱怨。

提起抱怨来,也有必要说一下对队友的抱怨这个事情。曾经见过有人对一起合作项目同事的抱怨,比如设计师抱怨合作的产品经理有问题,总要不停的修改, 时间长了,认为产品团队都很烂,经常打扰你,那么有没有想过,你是否可以给产品设计提出更好的建议呢? 甚至,有些产品设计你是否可以进行改进呢? 什么?「那不是我的工作!」 可是,为什么要给自己的能力设定一个边界? 这是多么可悲的事情,你完全可以无限制的突破边界,突破个人的局限。或许再过几年你会成为一个更好的产品设计师的啊。Zynga 的核心价值观有一条是「Level up」,不断升级,这恰恰是我们普遍缺少的心态。

的确,这是个浮躁的时代。大家容易听到各种各样的声音,每当心存困惑的时候不妨静下心来,加强对自身的认知。别幻想着走捷径,也尽量少去问别人如何成功,那些没有用,只要你别总在错误的路上越绕越远,将一些看似细微的事情做到更好,最后的成就依然惊人。

看清无处不在的「挑战」,让自己真正有所「成长」,毕竟,以后每个人都要承担更多的责任,只要你愿意。

--EOF--

最后补充一句话:「一个真正聪明的人,应该去发现别人话语中合理的部分,并且加以吸收利用,改正自己不正确的地方。而不是一发现别人言语中有漏洞或是有疑议就全盘否定。」

---------------

上面的内容全部来自于dbanotes.

Tags: dbanotes, fenng

假日记事

三天的小长假转瞬即过,期间发生了一些事情,随便记录记录
1、水管。水管的事情以前在博客里也提过,爆了两三次了,但以前都是头疼医头,可是这样折腾几次之后反而更累,所以这次乘着小长假,直接铺明管了。虽然打了不少洞,但水力是大了不少,感觉也好一点了。只是不知道这次水管的寿命是多久,每一次新材料出来都说可以用几十年,但事实上十年左右都算长的了。原来的复合管理论上是40年左右,其实也就是15年不到,接口就裂了。哎

2、手表,swatch,也是新材料的事情,老婆买的手表,说是表带是新材料,很开心,结果还没有满半年,表带就裂了。然后乘着小长假想去换个表带,结果swatch的人说表带不属保修范围,那问了一下,表带换一下多少钱,服务员很平淡的说,200。我问他表多少钱,他说表500多,我晶啊,一个表带200,一个表才300多,怪不得表带不属保修范围内。老婆是下决心不再买swatch了。也要和朋友们说说,少买啊,所谓的新材料,实在不保险,关键是裂开的地方还不是那些经常使用的部位。

3、小朋友。小朋友发高烧了,这回愿意贴冰贴了,问他为什么现在愿意以前不愿意,回答是我长大了呀。每次都感觉他在生病一次后,人会长大不少,会懂事不少。所幸这次只是发烧,其他没啥大事。

4、其他。其他的事情就是物价上涨了,以前6块的拉面,现在8块了;以前6毛的油条,现在1块了;以前1块的包子,现在1.5了,这种上涨幅度太吓人了,以后不知道还会涨成什么样子。以前100块真的可以用1周,现在一破开就不知道用到哪里了。可乐这么多年来都是2.5左右的,现在也3.2了。哎,喝不起了。看来以后还是需要象小时候那样,每天带个水壶了。

Tags: 清明

怎样吸引用户

很简单的几个想法,也只是我个人的见解没有其他意义,请不要深究

1、有内容,至于这个内容是什么样的,仁者见仁,毕竟每个人的爱好都不一样,是想要小众还是大众,得看产品定位,但切不可乱,一乱就麻烦了

2、有争议,如果没有争议,只是平庸,终究很快就被人淡忘

3、有品味,这个品味不一定是指内容高雅,也许是设计,也许是操作也许是其他

4、有手感,如果网站(APP)的操作没有流畅度可言,也是不会留住用户的

5、有互动,这就不多说了,SNS就是最大的互动,但怎么样算是做好,就难说了。。。

6、有深度,不管是内容还是品味,还是其他,要有深度,太肤浅的东西,或者刚开始有兴趣,但不会让用户有停留

7、有更新,不一定是说内容更新要快,也可能是网站(APP)经常会有一些小亮点,这点对于升级控来说很重要,即使不是升级控,或许多一个贴心的小功能也会让人很开心,增加粘度。

其实还有不少,但不想说了,反正说白了,要多为别人考虑,同时也要将自身代入,试想,如果是你看到这个网站或者APP,你会怎么看待它,等这个做好了就完满了。

几个有用的网站链接

我日,写了半天就没了。。。

1、http://www.colorzilla.com/gradient-editor/
     A powerful Photoshop-like CSS gradient editor from ColorZilla.

2、http://www.speich.net/articles/2010/07/27/how-to-create-php-documentation-in-phpstorm/
    如何配置phpstorm中的phpdoc

3、http://www.ibm.com/developerworks/cn/aix/library/es-unix-perfmonsar.html
    http://www.cnblogs.com/jackyrong/archive/2008/08/02/1258835.html
这两天我的VPS经常CPU过高,11爷推荐我说用Sar,由于不清楚sar,所以找了点资料,上面的URL是我找的,下面的是11爷给推荐的

4、 http://www.cnblogs.com/stephen-liu74/archive/2012/03/28/2357783.html
http://blog.nosqlfan.com/html/2942.html
http://www.cnblogs.com/stephen-liu74/archive/2012/03/26/2356951.html
   Redis 相关资料

5、http://www.myhack58.com/Article/html/3/62/2012/32870.htm
     http://www.linuxde.net/2011/11/1953.html
这两个URL是防范http trace攻击的

6、http://jsfiddle.net/k5VET/
http://www.zhangxinxu.com/study/200909/text-overflow-ellipsis-so-on.html
关于文字内容溢出用点点点(...)省略号表示
-------
暂时只放这么多。。。