2012 年 04 月

浏览模式: 标准 | 列表 | 图文
phpstorm4:自定义代码折叠区域

phpstorm4:自定义代码折叠区域

众所周知啦,IDE里可代码折叠的区域很多,例如:注释、if等各种条件区域、函数、类、等等

除此之外,以前还用过editplus是根据代码的缩进来折腾的,所以,在代码中只要遇到代码缩进规范的,理论上就应该是可以折叠的。
但事实上,除了我最开始的那句话中所涉及的区域,其他区域几乎都无法折叠。PHPstorm4有新功能了,就是自定义折叠,官方网址参考:http://blog.jetbrains.com/webide/2012/03/new-in-4-0-custom-code-folding-regions/,可以定义很多方式哦。而且快捷键也不难。
原博客中的那句:

I press Ctrl+Alt+T now to get “surround with” action options:

证明了快倢键就是ctrl+alt+t,有两种风格,一种类似netbeans一种 象vs。看个人习惯了
上个图41c4cd9e19150401606ae8363b6f3587
看看,是不是很方便?

phpstorm 4发布啦。。。

phpstorm 4发布啦。。。

PHPSTORM4发布啦。这回的特性感觉不是特别多,不知道为什么当成一个大版本来发布
3和4,更新的也太快了,难道也想学firefox来个版本比赛?jre还是没有升级成1.7,不知道是为什么。只记得以前用netbeans的时候,升级到1.7问题多多。
按照官方的说法:

To keep pace with the times, the new release includes full compliance with PHP 5.4 language features and ECMAScript Harmony support, and killer bug-prevention abilities using PHP Code Sniffer and PHPUnit Code Coverage. This makes PhpStorm 4.0 a must-have IDE for today’s sophisticated PHP developers.

The most important changes in PhpStorm 4.0 include:

  • PHP 5.4 language features support
  • ECMAScript Harmony support
  • Code coverage for PHPUnit
  • Code checking with PHP Code Sniffer
  • Drupal coding style support
  • New PHP code inspections
  • Smarter JavaScript completion

不过只是支持了5.4和代码覆率,其他的都还是一般,居然还支持了drupal的代码风格,看来drupal的风格还是被很多人接受啊。只是那个缩进只有2个空格,好不习惯啊。。。
就这点东西更新就变成了4.0,好不习惯啊。还有,不支持yii,不和谐

工作生活杂记

工作生活杂记

工作、生活杂记
1、crontab 的时候程序没有退出,导致进程一下子变成了几十个,然后执行的时候,一下子执行了几十次。。。纠结,以后要记住,怎么着也得wc -l一下,防止重复执行

2、也正是由于1的原因,开始尝试2个玩意:1是redis的发布和订阅2是队列。不过现在还没有完成,所以只是记录

3、发现广告的力量真的挺不错,广告看来还是要投的。至于详情,不便 多说

4、浮夸,这是一个非常浮夸的世界。果然是只要会说,怎么着都OK。象我们不会说的就纠结了。要向九品芝麻官学习,如果能将死的说成活的就OK了。

5、对于html5中的localStorage,感觉有点想法了,嗯,还有openDatabase,即本地数据库,有意思,看来是到了用的时候了。不过canvas和opengl之类的,我还没有看过。时间,TMD就是时间

6、交规没考成。因为在老家有摩托驾照,导致不能在上海考 ,要先转入才OK。郁闷

7、还有一些,又TMD忘了,老了,记性越来越差了。

几个名词,搏君一笑

几个名词,搏君一笑

强烈谴责
深表遗憾
强烈抗议
保证冷静
不明真相
一小撮
热血分子
围观群众
深入…深入…大力加强
增长…促进…扩大力度
保持…持续

Yii的AR效率释疑

关于yii的AR效率,其实一直以来都有很多的想法,试想,如果不做metadata的缓存,每次查询前,都必须先做一下metadata的查询,效率也不会太高到哪里吧?
所以,看到官方有人在问就关注了一下:http://www.yiiframework.com/forum/index.php/topic/16597-yii%E7%9A%84ar%E7%9C%9F%E7%9A%84%E8%83%BD%E7%94%A8%E4%B9%88%EF%BC%9F/

有人提问:

我在首页会很多个ar的请求。热门文章、最新文章、编辑推荐、最新评论的文章。。。。

我把这些通过 model()->findAll()的结果放在一个数组里。

然后把这个数组var_dump了一下,这些数据高达1.06M。这是不是太耗内存了?

页面上全是密密麻麻的数据表结构,如果关联关系复杂点的,会更多。

我光var_dump(yii::app()->db) 就有5000多行的数据。


这样的db操作这么耗内存,敢用么?谁能消除我这个担心?多谢

AcitveRecord ,只能玩一玩开拓眼界. 真要生产环境用, 就不行!

然后,Qiang就回复了:

你的结论有点想当然了。建议你仔细做profiling来验证。事实上,AR已经被成功应用在若干大流量的网站上了。

你不能用var_dump()来估计AR的内存开销。var_dump会把所有被reference到的对象都dump出来,包括application,以及所有的application component,因为它们都被AR间接reference到了。

AR额外的内存开销是存储10个左右变量的开销。如果按20字节来估算,额外的开销是200字节,这样在1000个AR对象情况下,额外的内存开销为200KB。这个对几乎所有的web应用而言应该不是问题。

如果你需要装载更多的数据,建议你使用DAO。

另外,对于任何大流量的web应用而言,cache都是必须的。cache可以帮助解决绝大多数的性能瓶颈。

cache在DB中有一些处理的,比如那个duration,在db中查询就可以做一下缓存了。然后metadata再做一下缓存,不也挺好?

insertBefore

有时候发现insertBefore还是很有用的。
在指定的内容前插入指定的元素,果然还是很不错:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div id="test">
<div class="x1">Node1</div>
<div class="x1">Node2</div>
<div class="x1">Node3</div>
</div>
<script type="text/javascript">
var oTest = document.getElementById("test");
//var x2= document.getElementsByTagName("div");
var x2 = document.getElementsByClassName("x1");
var newNode = document.createElement("div");
newNode.innerHTML = "This is a test";
oTest.insertBefore(newNode,x2[0]);
oTest.removeChild(x2[0]);
</script>
</body>
</html>

这段代码的主要来源是http://bbs.blueidea.com/thread-2877763-1-1.html,果然是可以做参考的。比如放在哪个节点前,删除哪个节点。
如果将节点都存储到localStorage中,就能够随时替换节点了。
做个纪录

记录Xcode4.3无法安装的问题

记录Xcode4.3无法安装的问题

Xcode4.3出来一阵了,但由于好象上次install Xcode这个快键方式被我删除了,然后现在在app store里就无法看到xcode更新了。
于是找了xcode的app过来安装,但是安装的时候提示一Mobile什么的pkg无法安装。一直很纠结。
直到昨天,CTO电话我,告诉 我一个技巧就安装成功了。
右键xcode.app,选择查看包内容,然后进入/Xcode.app/Contents/Resources/Packages,直接安装:MobileDevice.pkg,安装好之后,再运行xcode.app就正常安装成功了。

以后还是需要细心一点。果然对这些不熟,动手能力不强啊

网站PR继续下降

网站PR继续下降

不知道为什么,网站自从移到东京节点后,PR值一降再降。
或许,这也是一种激励,准备乘这个机会,将网站改版一次。
原来的内容也有点杂,我是不是该好好处理一下?去芜存精?不清楚,反正心是乱了。

Yii Behavior的简单用法

Yii Behavior的简单用法

Yii的behavior用起来是十分方便的,官方的文档也很多,我不多嘴一一解释,我只说一些简单的用法
如果你看过PHP5.4,你应该知道5.4多了个新功能traits。
那你可以对着手册看了,你就当yii的behavior就是5.4的traits。

在任何基于CComponents类扩展的类里,都可以用attachBehavior来附加一个行为,这就象5.4的在类里面 use traits类一样
附加行为后,直接可以$this->行为中的方法,嗯,这个与traits也一样。
好吧,来个简单的例子:

<?php
class Base {
public function sayHello() {
echo 'Hello ';
}
}

trait SayWorld {
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}

class MyHelloWorld extends Base {
use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
?>

Yii的用法:

<?php
class xxx extends CBehavior
{
public function show(){
echo "show";
}
}

class test extends CComponents
{
public function hello(){
$this->attachBehavior('唯一标记符',"xxx");
$this->show();
}
}

看看,是不是用法一样?不过这样也带来一个问题。。。TMD,没法在IDE里面自动识别了。

好吧,只能这样折腾自己了。。忍忍。

假如泰坦尼克在天朝沉没

假如泰坦尼克在天朝沉没

1.出航当日,ccav:今日,由我朝自主研发的泰坦尼克号首次出航,泰坦尼克长xx宽yy吃水zz吨。是我国拥有独立知识产权的新型豪华游轮,也是世界最大的邮轮(。。。。省略若干字。。。。。)象征着我国的造船业已居于世...