January 14, 2013
nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file解决办法
"NGINX启动时提示错误:\n/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory\nldd $(which /usr/local/nginx/sbin/nginx)\nlinux-vdso.so.1 =\u0026gt; (0x00007fff48ff0000) libcrypt.so.1 =\u0026gt; /lib64/libcrypt.so.1 (0x0000003065800000) libpcre.so.1 =\u0026gt; not found libssl.so.6 =\u0026gt; /lib64/libssl.so.6 (0x0000003067000000) libcrypto.so.6 =\u0026gt; /lib64/libcrypto.so.6 (0x0000003066400000) libdl.so.2 =\u0026gt; …"
December 31, 2012
golang中的函数
"函数是构建Go程序的基础部件;所遇有趣的事情都是在它其中发生的。函数 的定义看起来像这样: Listing 3.1. 函数定义\ntype mytype int 新的类型,参阅第 5 章 0 保留字func用于定义一个函数;\n1 函数可以定义用于特定的类型,这类函数更加通俗的称呼是method。这 部分称作receiver而它是可选的(可参考: http://blog.haohtml.com/archives/13766)。如下图:\n2 funcname是你函数的名字; 3 int类型的变量q作为输入参数。参数用pass-by-value方式传递,意味着它 们会被复制; 4 变量r和s是这个函数的命名返回值。在Go的函数中可以返回多个值。 参阅第32页的“多值返回”。如果不想对返回的参数命名,只需要提供类 型:(int,int)。如果只有一个返回值,可以省略圆括号。如果函数是一 个子过程,并且没有任何返回值,也可以省略这些内容; 5 这是函数体,注意return是一个语句,所以包裹参数的括号是可选的。\n这里有两个例子,左边的函数没有返回值,右边的只是简单的将输入返回。 …"
December 27, 2012
[golang]将函数作为值
"就像其它在Go中的几乎所有的东西,函数也同样是值而已.它们可以像下面这样赋值给变量:\npackage main import \u0026#34;fmt\u0026#34; func main() { f := func() { fmt.Println(\u0026#34;func\u0026#34;) } // 下面才开始调用函数 f() } 结果会打印出 func 字符串。\n另一种用法是立即调用函数,但是要求匿名函数要有返回值才可以,不然会提示错误信息."
December 16, 2012
mysql中alter语句中change和modify的区别
"以下摘自mysql5手册\n您可以使用CHANGE _old_col_name__column_definition_子句对列进行重命名。重命名时,需给定旧的和新的列名称和列当前的类型。例如:要把一个INTEGER列的名称从a变更到b,您需要如下操作:\n· mysql\u0026gt; ALTER TABLE t1 CHANGE a b INTEGER;\n如果您想要更改列的类型而不是名称, CHANGE语法仍然要求旧的和新的列名称,即使旧的和新的列名称是一样的。例如:\nmysql\u0026gt; ALTER TABLE t1 CHANGE b b BIGINT NOT NULL;\n您也可以使用MODIFY来改变列的类型,此时不需要重命名:\nmysql\u0026gt; ALTER TABLE t1 MODIFY b BIGINT NOT NULL;\nmysql alter 语句用法,添加、修改、删除字段等\n//主键549830479\nalter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment …"
December 15, 2012
windows 下搭建 GoLang 语言开发环境
"golang官方二进制分发包包括FreeBSD, Linux, Mac OS X (Snow Leopard/Lion), and Windows等平台,包括32位、64位等版本。\n我自己使用的是windows 32位分发包,MSI格式的,下载地址为: http://code.google.com/p/go/downloads/list\ngolang支持交叉编译,也就是说你在32位平台的机器上开发,可以编译生成64位平台上的可执行程序。\n环境变量说明: $GOROOT 指向golang安装之后的根目录,windows平台下默认为c:\\go,会在安装过程中由安装程序自动写入系统环境变量。 $GOARCH 目标平台(编译后的目标平台)的处理器架构(386、amd64、arm) $GOOS 目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows) $GOBIN 指向安装之后根目录下的bin目录,即$GOROOT/bin,windows平台下默认为c:\\go\\bin,会在安装过程中由安装程序自动添加到PATH变量中\n配置windows环境变量: …"
December 11, 2012
破解youku等视频网站广告的插件OpenGG.Clean.Player
"官方网址: http://opengg.me/781/opengg-clean-player/\n安装地址: http://userscripts.org/scripts/show/120679"
December 8, 2012
PHP类中static 和self的使用区别
"摘自: http://php.net/manual/en/language.oop5.late-static-bindings.php\nLimitations of self:: Static references to the current class like self:: or CLASS are resolved using the class in which the function belongs, as in where it was defined:\nExample #1 self:: usage\n\u0026lt;code\u0026gt;\u0026lt;?php\u0026lt;br /\u0026gt; class A {\u0026lt;br /\u0026gt; public static function who() {\u0026lt;br /\u0026gt; echo __CLASS__;\u0026lt;br /\u0026gt; }\u0026lt;br /\u0026gt; public static function test() {\u0026lt;br /\u0026gt; self::who();\u0026lt;br /\u0026gt; }\u0026lt;br /\u0026gt; } class B …"
November 24, 2012
mysql中的主从复制slave-skip-errors参数使用方法
"在主从复制中,难免会遇到一些sql语句错误的问题。这个时候我们需要手动来重新设置中继日志的起始点了,有些麻烦。今天在看“2012华东架构师大会”视频的时候,发现淘宝丁奇的ppt里有这个参数,看名字就知道是让从库跳过一些错误了。以前没有注意过这个参数,这里了解一下这个参数的用法。\n—————————————-\n环境说明:\nmysql\u0026gt;show slave stsatus\\G;\n报错信息如下:\n……\nLast_Errno: 1062\nLast_Error: Error ‘Duplicate entry ‘1’ for key ‘PRIMARY” on query…….\n……\n1062的错误是指一些主键重复的错误,在my.cnf用slave-skip-erros 可以跳过去。这样就避免了由于sql出错导致的从复制失效。\n—————————————-\nError_code: 1032; handler error HA_ERR_KEY_NOT_FOUND;\n造成1032错误的根本原因是主从数据库数据不一致,导致同步操作在从库上无法执行.解决办法同上\n在slave的my.cnf …"
November 22, 2012
ftp中“二进制传输模式”和“ASCII传输模式”有什么区别?
"《Red Hat Linux 指南:服务器设置与程序设计篇》第2章FTP:跨越网络传送文件,这一章为您介绍实现FTP协议的服务器和客户端有很多种、以及开FTP服务器可以让用户以匿名用户身份anonymous或者ftp登录,最后为您介绍FTP提供了两种传输文件的模式:二进制模式和ASCII模式。本小节讲述的是二进制传输模式和ASCII传输模式。\n2.3.6 二进制传输模式和ASCII传输模式\nFTP服务器vsftpd能够(但并不总是)提供两种文件传输模式。二进制模式传输总是复制文件的精确的、字节对字节的文件映像,而绝不会改变行结束符。所有二进制文件都用二进制模式传送。除非需要转换行结束符,否则也要使用二进制模式来传输ASCII文件。\nASCII文件(比如文本文件或程序源代码,在Linux下使用vi之类的文本编辑器创建这些文件)使用单个换行符(NEWLINE,CONTROL-J,记作”\\n”)来标记每行的末尾;其他操作系统则用不同的方式来标记行尾。Windows用RETURN(CONTROL-M,记作”\\r”)后面跟随NEWLINE(总共两个字符)来标记每行的末尾。Mac系统只使 …"
November 21, 2012
理解MySQL数据库覆盖索引
"话说有这么一个表:\nCREATE TABLE user_group (\nid int(11) NOT NULL auto_increment,\nuid int(11) NOT NULL,\ngroup_id int(11) NOT NULL,\nPRIMARY KEY (id),\nKEY uid (uid),\nKEY group_id (group_id),\n) ENGINE=InnoDB AUTO_INCREMENT=750366 DEFAULT CHARSET=utf8\n看AUTO_INCREMENT就知道数据并不多,75万条。然后是一条简单的查询:\nSELECT SQL_NO_CACHE uid FROM user_group WHERE group_id = 245;\n很简单对不对?怪异的地方在于:\n如果换成MyISAM做存储引擎的时候,查询耗时只需要0.01s,用InnoDB却会是0.15s左右。\n如果只是就这么点差距其实不是什么大不了的事,但是真实的业务需求比这个复杂,造成的差距也很大:MyISAM只需要0.12s,InnoDB则需要2.2s.,最终定位到问题症结是在这 …"