June 17, 2013
golang中的Array 、Slices 和 Maps
"**注意slice和数组在声明时的区别:**声明数组时,方括号内写明了数组的长度或使用...自动计算长度,而声明slice时,方括号内没有任何字符。\narr1 := [10]int{1,2,3,4} //数组,长度为10,只有4个元素指定,其它的元素值默认为0 arr2 := [...]string{\u0026#34;a\u0026#34;,\u0026#34;b\u0026#34;,\u0026#34;c\u0026#34;} //数组,长度自适应,这里长度为3 s1 := []int{1,2,3,4} //slice,目前长度为4,可能通过append来动态添加元素个数 示例:\npackage main import ( \u0026#34;fmt\u0026#34; ) func main() { //array example arr := [10]int{1, 2, 3} //array 指定前三个值,其它值使用默认类型值0 fmt.Println(len(arr)) fmt.Println(arr) //a1 := append(arr, 4, 5) //数组不支持append,只有slice才支持append //fmt.Println(a1) …"
June 4, 2013
golang中包的用法
"将d:/gotest/ 目录加入到GOPATH中.这里会涉及到包和结构体还有一些方法的用法,可以再深入的了了解一下\n注意一下一些struct和 func 名称的大小写问题.\n首先要在 $GOPATH/src 目录里创建一个包名目录,这里包名目录为stu,与文件名一样(也可以不一样),大概流程参考: d:/gotest/src/main/main.go\npackage main import ( \u0026#34;fmt\u0026#34; \u0026#34;stu\u0026#34; ) func main() { //sxf := new(stu.Stu) sxf := \u0026amp;stu.Stu{} sxf.SetName(\u0026#34;zhangli\u0026#34;) a := sxf.GetName() fmt.Println(a) } d:/gotest/src/stu/stu.go\npackage stu type Stu struct { name string //age int } func (s *Stu) SetName(name string) { s.name = name } func (s *Stu) …"
June 3, 2013
centos下更新Python版本的步骤
"准备安装gitlab,发现系统目前的python版本为2.4.3版本.太低了, 虽然目前最高版本为3.3.0版本.但gitlab不支持这个版本.没有办法,我们这里将python升级到2.7.6版本.\n更新python千万不要把老版本的删除!新老版本是可以共存的,很多基本的命令、软件包都要依赖预装的老版本python的,比如yum。\n第1步:更新gcc,因为gcc版本太老会导致新版本python包编译不成功\n[shell]yum -y install gcc[/shell]\n系统会自动下载并安装或更新,等它自己结束\n第2步:下载Python 2.7.0软件包\n[shell]wget http://python.org/ftp/python/2.7/Python-2.7.tar.bz2 tar -jxvf Python-2.7.tar.bz2 cd Python-2.7 ./configure make all make install make clean make distclean /usr/local/bin/python2.7 -V cd ../[/shell]\n编译安装完毕以 …"
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(); …"