Ubuntu 12.04 LTS 中文输入法的安装

我装的是英文版的 Ubuntu12.04,如果安装中文版,会自动安装中文输入法,这篇文章也是为了以后重装 Ubuntu 做一个准备 废话不多说,进入正题:   第一步:安装语言包   进入 “System Settings” 找到 “Language Support” 那一项,点击进入 选择 “Install/Remove Languages” 找到 “Chinese (simplified)” 那一项,把后面到勾打上 然后点击 “Apply Changes” 等待一段时间即可 第二步:安装 Ibus 框架   调出 terminal 终端,输入命令: sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 启动 Ibus 框架,在终端下输入命令:im-switch -s ibus   PS:安装完 Ibus 框架之后,记得重启或者注销系统,要保证更改生效才行哦   第三步:安装拼音引擎   有很多拼音引擎可供选择,一般安装一种就够了,比如我就直接安

查看更多

Nginx Location配置总结

语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。 ~ 开头表示区分大小写的正则匹配 ~*  开头表示不区分大小写的正则匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则 / 通用匹配,任何请求都会匹配到。 多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考): 首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。 例子,有如下匹配规则: location = / { #规则A } location = /login { #规则B } location ^~ /static/ { #规则C } location ~ \.(gif|jpg|png|js|css)$ { #规则D } lo

查看更多

Mysql 存储引擎中InnoDB与Myisam的主要区别

1、 事务处理 innodb 支持事务功能,myisam 不支持。 Myisam 的执行速度更快,性能更好。 2、select ,update ,insert ,delete 操作 MyISAM:如果执行大量的SELECT,MyISAM是更好的选择 InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 3、锁机制不同 InnoDB 为行级锁,myisam 为表级锁。 注意:当数据库无法确定,所找的行时,也会变为锁定整个表。 如: update table set num = 10 where username like “%test%”; 4、查询表的行数不同 MyISAM:select count(*) from table,MyISAM只要简单的读出保存好的行数,注意的是,当count(*)语句包含   where条件时,两种表的操作是一样的 InnoDB : InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少

查看更多

几种常见的NoSQL数据库关键特性列表

NoSQL根据不同的数据模型,大致可以分为4类,分别是键值对存储(Key-Value Stores),列族存储(Column Families),文档数据库(Document Databases)以及图形数据库(Graph Databases)。四者从容量来讲,依次下降,而从复杂度来说则相反。 下面我根据最近看的一些资料,列出了目前常见的NoSQL数据库系统的一些主要特性,不一定都正确。另外,后面列了一些参考资料,偏向于PostgreSQL,个人觉得还不错。 Google BigTable 由Google开发 闭源产品 通过SSTable实现持久化 通过Chubby实现一致性 key-value存储 HBase Apache基金项目,开发语言为Java Apache License 2.0 许可 Google BigTable的开源版本 为Hadoop的后端数据库 通过HTTP REST,使用JSON协议通信 着重于CP 通过memtable/SStable实现持久化 通过ZooKeeper实现一致性 支持多主节点(multi-master) Hypertable 由Inkomi公司前

查看更多

PHP的生命周期

一个PHP实例,无论是从init脚本中调用的,还是从命令行启动的,都会向我们上一节说的那样, 依次进行Module init、Request init、Request Shutdown、Module shutdown四个过程, 当然之间还会执行脚本自己的逻辑。 那么两种init和两种shutdown各会执行多少次、各自的执行频率有多少呢? 这取决与PHP是用什么sapi与宿主通信的。最常见的四种方式如下所列: ·直接以CLI/CGI模式调用 ·多进程模块 ·多线程模 ·Embedded(嵌入式,在自己的C程序中调用Zend Engine) 1、CLI/CGI CLI和CGI的SAPI是相当特殊的,因为这时PHP的生命周期完全在一个单独的请求中完成。虽然简单,不过我们以前提过的两种init和两种shutdown仍然都会被执行。图1.1展示了PHP在这种模式下是怎么工作的。 2、多进程模式 [ps:书是2006年出版的,所以你应该理解作者说多进程是主流] PHP最常见的工作方式便是编译成为Apache2 的Pre-fork MPM或者Apache1 的APXS 模式,其它web服务器也大多

查看更多

php闭包

php闭包和js闭包写法有点不同: $x = ‘b’; php闭包的写法是 $a = function() use($x){};   其中,“}”后边必须加“;”。(PHP闭包中use()中的参数,只有在闭包前定义才生效) js闭包是 var a = function(){} 就可以了。

查看更多

通过反射机制,返回PHP所有方法

获取php类的方法有get_class_methods(),但这个只能获取public类型的。 获取private类型的需要用到php中的反射类ReflectionClass(),例: function get_all_class_methods($class){ $r = new ReflectionClass($class); foreach($r->getMethods() as $k=>$v){ $methods[$k][‘name’] = $v->name; $methods[$k][‘class’] = $v->class; $methods[$k][‘type’] = ‘public’; if($v->isPrivate()){ $methods[$k][‘type’] = ‘private’; } if($v->isProtected()){ $methods[$k][‘type&

查看更多

mysql存储过程详解

mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。 存储过程通常有以下优点: (1).存储过程增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 (2).存储过程允许标准组件是编程。存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。 (3).存储过程能实现较快的执行速度。如果某一操作包含大量的Tran

查看更多

检测浏览器语言

如果你的网站上有多种语言,那么可以使用这段代码作为默认的语言来检测浏览器语言。该段代码将返回浏览器客户端使用的初始语言 function get_client_language($availableLanguages, $default=’en’){     if (isset($_SERVER[‘HTTP_ACCEPT_LANGUAGE’])) {         $langs=explode(‘,’,$_SERVER[‘HTTP_ACCEPT_LANGUAGE’]);         foreach ($langs as $value){             $choice=substr($value,0,2);             if(in_array($choice, $availableLanguages)){                 return $choice;             }         }     }     return $default; }

查看更多

全角半角转换

 function make_semiangle($str) { $arr = array(‘0’ => ‘0’, ‘1’ => ‘1’, ‘2’ => ‘2’, ‘3’ => ‘3’, ‘4’ => ‘4’, ‘5’ => ‘5’, ‘6’ => ‘6’, ‘7’ => ‘7’, ‘8’ => ‘8’, ‘9’ => ‘9’, ‘A’ => ‘A’, ‘B’ => &#8

查看更多