2014年3月

CodeIgniter code completion in Zend Studio

如何在Zend Studio中添加CodeIgniter框架的代码提示功能呢?

把以下代码分别增加到CI_Controller和CI_Model的类声明中,也就是注释里面:

在CI_Controller和CI_Model的类定义前追加如下代码。
既能够进行代码提示,也能够在自定义Model中访问$this->db了。

- 阅读剩余部分 -

javascript learning notes——function

函数:一次定义,多次执行。js的函数调用还有一个特性,每次调用都会拥有另一个值——本次调用的this值(上下文/context)。函数可以作为对象的一个属性,称为对象的方法。当通过对象调用函数时,该对象就是此次调用的上下文。

//在定义的时候递归
var f = function fact(x) {if (x<=1) return 1; else return x*fact(x-1);};
//作为参数传递
data.sort(function(a,b){return a-b;});
//定义后立即使用
var tensquared = (function(x){return x*x}(10));

- 阅读剩余部分 -

difference between snapdragon 800 and 801

高通6个葫芦娃-_,-

A couple of weeks ago at MWC, Qualcomm announced its Snapdragon 801 which was positioned as a speed bump for the next wave of flagship smartphones. Qualcomm touted a 2.5GHz CPU frequency (up from 2.3GHz with Snapdragon 800), as well as increased GPU, ISP and memory interface speeds. Samsung announced immediate support for the new Snapdragon 801 with the Galaxy S 5, as did Sony with the Xperia Z2. Unfortunately this is where confusion set in. The Galaxy S 5 was advertised as a Snapdragon 801 with a 2.5GHz CPU clock, while the Xperia Z2 claimed the same Snapdragon 801 branding but with a 2.3GHz CPU clock - the same frequency as a Snapdragon 800. If it's not CPU frequency that separates a Snapdragon 800 from an 801, what does? The answer, as it turns out, is a little more complex. The table below should help explain it all:

- 阅读剩余部分 -

set debian default editor

debian终端下默认编辑器为nano,比如crontab -e就会打开nano,这个编辑器用起来很不习惯,想修改为vim,当然,你的debian系统必须先安装vim.如果已经安装vim,请输入如下命令:
输入命令:

update-alternatives --config editor

- 阅读剩余部分 -

rsync install & configuration

配置rsync 同步数据 rpm包安装rsync及配置

[root@Hammer home]# rpm -qa |grep rsync #检查系统是否安装了rsync软件包
rsync-2.6.8-3.1
[root@Hammer CentOS]# rpm -ivh rsync-2.6.8-3.1.i386.rpm # 如果没有安装则手动安装

[root@test rsync-3.0.4]# vim /etc/xinetd.d/rsync 

- 阅读剩余部分 -

javascript learning notes——array

把数组的笔记写完先
数组继承自Array.prototype中的属性,定义了一套丰富的数组操作函数,对于类数组对象同样有效。
数组是javascript对象的特殊形式,用数字引索来访问数组元素要比访问常规的对象属性快很多。
javascript数组的引索是从零开始的32位数值。对于稠密数组,length即是数组包含的元素个数。对于稀疏数值,length比所有元素的引索都要大。

- 阅读剩余部分 -

javascript learning notes——object

《javascript权威指南》这本书有点太专业了,今天只是看了对象和数组。
对象:不知道是我之前看的书太少还是js的对象实在很特别。我感觉js里面的对象和其他语言里面的用法差了很远。
除了字符串、数字、true、false、null和undefined之外,js中的值都是对象
对象是可变的,是通过引用来操作对象的,对象的属性可以变动,甚至还有属性的特性(writable\enumerable\configurable)
对象都拥有的三个相关的对象属性(protoype\class\extensible flag)
三类对象(native obj\host obj\user-defined obj),两类属性(own property\inherited property)

- 阅读剩余部分 -

Authenticating with OAuth

http://tools.ietf.org/html/draft-ietf-oauth-v2-21

在认证和授权的过程中涉及的三方包括:

服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
用户 ,存放在服务提供方的受保护的资源的拥有者。
客户端 ,要访问服务提供方资源的第三方应用。在认证过程之前,客户端要向服务提供者申请客户端标识。

- 阅读剩余部分 -

GB11643-1999 & ISO 7064 verify function

http://blog.csdn.net/nsq122/article/details/6699002
身份证校验位的计算/ISO 7064:1983.MOD 11-2 算法

<?
function iso7064($vString)
{
// ISO 7064:1983.MOD 11-2
// by goseaside@sina.com
$wi = array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
$hash_map = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
$i_size = strlen($vString);
$bModify = '?' == substr($vString, -1);
$i_size1 = $bModify ? $i_size : $i_size + 1;
for ($i = 1; $i <= $i_size; $i++) { 
$i1 = $vString[$i - 1] * 1;
$w1 = $wi[($i_size1 - $i) % 10];
$sigma += ($i1 * $w1) % 11; 
}
if($bModify) return str_replace('?', $hash_map[($sigma % 11)], $vString);
else return $hash_map[($sigma % 11)];
}
/*
// Demo
// $s 为某个 17 位身份证号码,不包含校验位
echo iso7064($s); // 获得校验位的值
echo iso7064("$s?"); // 包含校验位的结果
*/
?>

- 阅读剩余部分 -