SQLSTATE[HY000]: General error: 1366 Incorrect string value: ‘\xF0\x9F\x98\x8A\xF0\x9F…’ 解决

Reason
The culprit is the emoji in the tweets. Some of the emojis have four bytes UTF-8 character.

The MYSQL's character set named UTF8 uses a maximum of three bytes per character and contains only BMP characters. As of MySQL 5.5.3, the UTF8MB4 character set uses a maximum of four bytes per character supports. http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html

继续阅读

HBase shell根据列值筛选

import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
import org.apache.hadoop.hbase.util.Bytes
scan 'ld_login_2',{STARTROW=>'1395590400',LIMIT=>1,FILTER=>SingleColumnValueFilter.new(Bytes.toBytes('cf'),Bytes.toBytes('uid'),CompareFilter::CompareOp.valueOf('EQUAL'),Bytes.toBytes('48159865'))}

http://stackoverflow.com/questions/12634321/doing-a-valuefilter-or-a-columnfilter-on-hbase-shell

通过yum工具下载RPM源码包

可以使用yumdownloader命令的--source参数下载RPM源码包。

要使用yumdownloader工具,需要确认系统已经安装了yum-utils软件包。

# rpm -q -yum-utils
如果系统没有安装这个软件包,可以使用下面命令来安装:

# yum install yum-utils 下一步,设置一个源码包的软件仓库。编辑/etc/yum.repos.d/rhel-src.repo文件,在这个文件内添加下面内容:
[rhel-src]
name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
这样,源码软件仓库就设置好了,下面是一个下载RPM源码包的示例:
# yumdownloader --source openldap

Visual C++中函数调用方式浅探

1、_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。 int f(void *p) -->> _f@4(在外部汇编语言里可以用这个名字引用这个函数) 。

2、C调用约定(即用__cdecl关键字说明)(The C default calling convention)按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于传送参数的内存栈是由调用者来维护的(正因为如此,实现可变参数 vararg的函数(如printf)只能使用该调用约定)。另外,在函数名修饰约定方面也有所不同。 _cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函 数采用从右到左的压栈方式。VC将函数编译后会在函数名前面加上下划线前缀。

继续阅读