May 27, 2013
Centos下gitlab安装指南[原创]
"最后一次更新时间:2013-05-29\ngitlab 5.2.0 centos6.3 i686 Redis 2.6.13 nginx-1.4.1 mysql-5.5.31-linux2.6-i686.tar.gz\n这里与官方的教程有些不一样,主要是一些软件如mysql nginx redis之类的以前是手动编译安装的.\n网上也有提供一键安装包工具:http://bitnami.com/stack/gitlab gitlab中文使用指南:GitLab使用介绍\n首先我们选择比较快的yum源,不然安装速度会非常的慢的.这里使用中国科技大学的yum源更换yum源方法参考:,\n说明: 默认安装的git版本可能会低一些,需要升级到最新版本才可以.\n1. Packages / Dependencies\n[shell]yum -y install readline-devel gdbm-devel ncurses-devel openssl-devel zlib-devel gcc gcc-c++ make autoconf curl-devel expat-devel gettext-devel …"
May 20, 2013
mysql 根据英文首字母来查询汉字函数
"gbk编码:\nmysql\u0026gt; SELECT *, -\u0026gt; ELT(INTERVAL(CONV(HEX(left(A_UserName,1)),16,10), -\u0026gt; 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,0 xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6,0xCBFA,0xCDDA,0xCE F4,0xD1B9,0xD4D1), -\u0026gt; \u0026#39;A\u0026#39;,\u0026#39;B\u0026#39;,\u0026#39;C\u0026#39;,\u0026#39;D\u0026#39;,\u0026#39;E\u0026#39;,\u0026#39;F\u0026#39;,\u0026#39;G\u0026#39;,\u0026#39;H\u0026#39;,\u0026#39;J\u0026#39;,\u0026#39;K\u0026#39;,\u0026#39;L\u0026#39;,\u0026#39;M\u0026#39;,\u0026#39;N\u0026#39;,\u0026#39;O\u0026#39;,\u0026#39;P\u0026#39;,\u0026#39;Q\u0026#39;, …"
May 5, 2013
linux下安装zeromq消息队列软件
"在上一节 消息中间件的技术选型心得-RabbitMQ、ActiveMQ和ZeroMQ 我们介绍了一些相关的消息队列软件.这里我们对安装zeromqq这款软件的安装及php使用方法介绍一下.\ncentos下安装zeromq消息队列软件.\n一.安装服务端\ncd ~ wget http://download.zeromq.org/zeromq-3.2.3.tar.gz tar zxvf zeromq-3.2.3.tar.gz cd zeromq-3.2.3 ./configure # –prefix=/usr/local/zeromq make \u0026amp;\u0026amp; make install **二.安装php扩展 **\ngit clone git://github.com/mkoppanen/php-zmq.git cd php-zmq phpize ./configure –with-php-config=/usr/local/php/bin/php-config make \u0026amp;\u0026amp; make install 执行完以后,会提示:\nInstalling shared …"
May 5, 2013
消息中间件的技术选型心得-RabbitMQ、ActiveMQ和ZeroMQ
"RabbitMQ、ActiveMQ和ZeroMQ都是极好的消息中间件,但是我们在项目中该选择哪个更适合呢?很多开发者面临这个烦恼。下面我会对这三个消息中间件做一个比较,看了后你们就心中有数了。\nRabbitMQ是AMQP协议领先的一个实现,它实现了代理(Broker)架构,意味着消息在发送到客户端之前可以在中央节点上排队。此特性使得RabbitMQ易于使用和部署,适宜于很多场景如路由、负载均衡或消息持久化等,用消息队列只需几行代码即可搞定。但是,这使得它的可扩展性差,速度较慢,因为中央节点增加了延迟,消息封装后也比较大。\nZeroMQ 是一个非常轻量级的消息系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常可以发现它。与RabbitMQ相比,ZeroMQ支持许多高级消息场景,但是你必须实现ZeroMQ框架中的各个块(比如Socket或Device等)。ZeroMQ非常灵活,但是你必须学习它的80页的手册(如果你要写一个分布式系统,一定要阅读它)。 ActiveMQ居于两者之间,类似于ZemoMQ,它可以部署于代理模式和P2P模式。类似于RabbitMQ,它易于实现高级场景,而 …"
May 5, 2013
editplus查找替换的正则表达式应用
"表达式 说明 \\t 制表符. \\n 新行. . 匹配任意字符. | 匹配表达式左边和右边的字符. 例如, “ab|bc” 匹配 “ab” 或者 “bc”. [] 匹配列表之中的任何单个字符. 例如, “[ab]” 匹配 “a” 或者 “b”. “[0-9]” 匹配任意数字. [^] 匹配列表之外的任何单个字符. 例如, “[^ab]” 匹配 “a” 和 “b” 以外的字符. “[^0-9]” 匹配任意非数字字符. * 其左边的字符被匹配任意次(0次,或者多次). 例如 “be*” 匹配 “b”, “be” 或者 “bee”.\n其左边的字符被匹配至少一次(1次,或者多次). 例如 “be+” 匹配 “be” 或者 “bee” 但是不匹配 “b”. ? 其左边的字符被匹配0次或者1次. 例如 “be?” 匹配 “b” 或者 “be” 但是不匹配 “bee”. ^ 其右边的表达式被匹配在一行的开始. 例如 “^A” 仅仅匹配以 “A” 开头的行."
April 23, 2013
golang中实现自定义数据类型struct
"可以参考: golang中的函数\nfunc.go\npackage main import ( \u0026#34;fmt\u0026#34; ) type stu struct { Name string //首字母大写,允许其它包直接使用,可以直接使用 stu.Name = \u0026#39;test\u0026#39; 也可以使用 setName和getName age int //不允许外面的包使用,可以使用 setAge和getAge方法 } func main() { perl := new(stu) perl.Name = \u0026#34;zhang\u0026#34; // age setAge(perl, 30) age := getAge(perl) fmt.Printf(\u0026#34;%v\\n\u0026#34;, age) //name var name string perl.setName(\u0026#34;sun\u0026#34;) name = perl.getName() fmt.Printf(\u0026#34;%i\\n\u0026#34;, name) //print struct fmt.Printf(\u0026#34;%v\\n\u0026#34;, perl) } …"
April 23, 2013
开发jquery插件
"jquery插件开发文档:\n以下为一简单的实例:\nchajia.js:\n(function($) { //录入框点击事件 $.fn.alertWhileClick = function() { $(this).click(function(){ window.console.log(‘execute click event’); alert($(this).val()); }); window.console.log(‘ok2’); } //获取页面最大div的最大高度 $.fn.maxHeight = function(){ var max = 0; this.each(function(){ window.console.log(‘a’); max = Math.max(max, $(this).height()); }); return max; } })(jQuery); //插件用法 $(function(){ $(‘#login_username’).alertWhileClick(); var tallest = $(‘div’).maxHeight(); …"
April 9, 2013
使用nohup在后台运行scp
"对于scp的用法见:\n需要从远程拷贝一个比较大的文件,所以要让SCP在后台运行\ngoogle搜了一下都是说使用ssh的public key让两台机器可以不用密码连接\n但不是每个人都有这个条件允许两台机器无密码通行的\n所以可以使用下面的方法实现:\n1.nohup scp user@server:path/file localpath\n2.输入密码\n3.按Ctrl+z挂起当前进程\n4.使用命令bg让挂起的进程继续运行"
March 19, 2013
sphinx分布式索引简介
"sphinx分布式索引原理:\n当searchd收到一个对分布式索引的查询时,它做如下操作:\n连接到远程代理\n执行查询\n(在远程代理执行搜索的同时)对本地索引进行查询\n接收来自远程代理的搜索结果\n将所有结果合并,删除重复项\n将合并后的结果返回给客户端\n在应用程序看来,普通索引和分布式索引完全没有区别。\n任一个searchd实例可以同时做为主控端(master,对搜索结果做聚合)和从属端(只做本地\n搜索)。这有如下几点好处:\n集群中的每台机器都可以做为主控端来搜索整个集群,搜索请求可以在主控端之间获 得负载平衡,相当于实现了一种HA(high availability,高可用性),可以应对某个\n节点失效的情况。\n如果在单台多CPU或多核机器上使用,一个做为代理对本机进行搜索的searchd实例 就可以利用到全部的CPU或者核。\n更好的HA支持已在计划之中,到时将允许指定哪些代理之间互相备份、有效性检查、跟踪\n运行中的代理、对检索请求进行负载均衡,等等。\nsphinx分布式索引配置:\nindex dist1\n{\nlocal index to be searched\nthere can be …"
March 9, 2013
linux下启动mysql提示”mysql deamon failed to start”错误的解决办法
"有台linux服务器,系统为centos系统.\n描述:\n网站突然连接不上数据库,于是朋友直接重启了一下服务器。进到cli模式下,执行 service myqsld start 发现还是提示”mysql deamon failed to start”错误信息.\n/etc/init.d/mysqld start\nMySQL Daemon failed to start.\nStarting mysqld: [FAILED]\n查看mysqld的log文件\n#less /var/log/mysqld.log\n/usr/libexec/mysqld: Can’t change dir to ‘XXX’ (Errcode: 13)\n首先是查看数据库日志\nmysqld started\n[Warning] Can’t create test file xxx.lower-test [Warning] Can’t create test file xxx.lower-test /usr/libexec/mysqld: Can’t change dir to ‘/xxx’ (Errcode: 13) …"