- 浏览: 506058 次
- 性别:
- 来自: 北京
最新评论
-
gaoke:
"我觉得这是java动态生成代码的方式得到的,因为使 ...
InvocationHandler中invoke()方法的调用问题 -
lyandyhk:
可以,反正对于我这个水平来说刚刚好,正好全部看懂,满分
InvocationHandler中invoke()方法的调用问题 -
593844923:
Subject subject=(Subject) Proxy ...
InvocationHandler中invoke()方法的调用问题 -
hl174:
写的不错 源码确实有点长 第一次大致看还有些没看怎么明白
InvocationHandler中invoke()方法的调用问题 -
draem0507:
129应该表示为00000000 10000001,转成byt ...
Java的补码表示
文章列表
Spring利用注解进行多次拦截
- 博客分类:
- Spring
最近在用Spring AOP时遇到一个问题。一个切入点会触发两个通知,而切入点是通过注解进行标注的,而注解作为参数传递给通知方法。这样的情况下同时触发两个通知,Spring调用通知方法时传递的注解参数会出现类型错 ...
HBase Coprocessor示例
- 博客分类:
- HBase
HBase的coprocessor分为两类,Observer和EndPoint。Observer相当于触发器,代码部署在服务端,相当于对API调用的代理。介绍这方面的文章不少,在此不赘述。这里想说一下EndPoint的使用。
EndPoint相当于存储过程。0.94.x之前使用EndPoint需要实现CoprocessorProtocol接口,而0.96.x的EndPoint改为用protobufs作为RPC的协议。在此用一个具体的例子说明一下新版的EndPoint该怎么使用。
例如:统计一张表的行数。
首先首先编写protob ...
遇到一个Hive需求:有A、B、C三列,按A列进行聚合,求出C列聚合后的最小值和最大值各自对应的B列值。这个需求用hql和内建函数也可完成,但是比较繁琐,会解析成几个MR进行执行,如果自定义UDAF便可只利用一个MR完 ...
Applier是MySQL推出的MySQL数据库与HDFS数据的实时同步工具,Hive的数据实时同步同样适用。官方介绍可参见:http://dev.mysql.com/tech-resources/articles/mysql-hadoop-applier.html
环境:
Applier当前的版本为0.1.0-alpha,只支持MySQL5.6及以上版本。需要的环境:
Hadoop1.0.4:hadoop需要开启append模式(hdfs-site.xml中dfs.support.append设为true)
libhdfs (it comes preco ...
Mysql Applier是Mysql向hdfs进行实时备份的工具。其中用到了libhdfs,是hadoop提供的C语言访问hdfs的接口。以下是编译过程和遇到的问题。
libhdfs编译过程比较顺利,执行如下命令即可:
ant compile-c++-libhdfs -Dislibhdfs=true
下面的官方提供的例子:
#include "hdfs.h"
int main(int argc, char **argv) {
hdfsFS fs = hdfsConnect("default", 0 ...
调整gofmt和goimports的缩进
- 博客分类:
- golang
goimports是一个类似于gofmt的go代码格式化工具,除此之外还可以自动修正import的package,但仅限于标准库。
goimports的缩进默认是8个长度单位的tab,但个人已经习惯了4个长度单位,所以对goimports进行了一下修改,使其行首缩进4格。
1、下载goimports的源码
goimports的github地址是:https://github.com/bradfitz/goimports,但是建议从Google code直接下载源码。
go get code.go ...
synergy共享键鼠
- 博客分类:
- 其他
sharemouse和synergy是局域网内共享键鼠比较好的两款软件。
我是在linux和mac之间进行共享,sharemouse只支持win和mac,所以选择了synergy。synergy几乎是全平台支持,也包括android。
服务端和客户端的配置不在赘述,使用的过程中我没用配置文件,都是gui直接操作的。需要注意的一点是在服务端配置客户端的screen时,screen name需要和客户端的hostname一致。
启动客户端后显示connection refused。开始以为是网络问题,因为两台机器不在同一个子网内,但提示信息是拒绝链接,不是找不到服务器。google了一下,又是 ...
Eclipse for mac 支持Retina
- 博客分类:
- 开发环境
Eclipse.app下找到Info.plist,添加如下信息:
<key>NSHighResolutionCapable</key>
<true/>
用java7启动Eclipse for mac
- 博客分类:
- 开发环境
mac上装的是eclipse 3.7,直接启动时会提示没有安装java6,但机器上已经有了java7。做一下修改可以用java7启动eclipse。
1、Eclipse.app内找到Info.plist,在<key>Eclipse</key>下添加如下内容
<string>-vm</string><string>/Library/Java/Ja vaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/server/libjvm.dylib< /string& ...
RCFile是Facebook制定的一种数据格式,应用在Hive、pig等系统中。RCFile结合了行存储和列存储的优点,对数据进行行分割和列分割后存储。行分割形成的多行组成一个row split,每个row split里面进行列分割。即:一个row split表示多行数据,row split内部的一行表示一列数据。需要注意的是:RCFile中的“key”和“value”一般不与MR的key和value对应,而是指一个row split中的一组key和一组value。
RCFile的文件格式在javadoc中的层次不是很清楚,应为如下所示:
- Header
- ...
如果在Eclipse使用某些访问受限的API时,会报这种错误:
Access restriction: The type Resource is not accessible due to restriction on required library
这是因为Eclipse默认把这些受访问限制的API设成了ERROR,在java-compiler-Errors/Warnings选项里面的Deprecated and restricted API中的Forbidden references(access rules)选为Warning就可以编译通过,只是报警告而不是报错,保证了编译能通过。
之前看过KMP的算法,道理挺简单,但是算法实现有点不好懂。近来重温,转一篇写的比较好的blog。
http://www.cppblog.com/oosky/archive/2006/07/06/9486.html
这个求模式值的函数逆天了,反正我写不出来
void nextIndex(const char *t, int next[]) {
int j=0,k=-1;
next[0] = -1;
while(t[j] != '\0') {
if(k == -1 || t[k] == t[j]) {
...
C语言中一个函数返回值不一致的问题
- 博客分类:
- C
对于一个只用C写十几二十行程序的菜鸟,也能遇到这样那样诡异郁闷的问题,其实知道点底层也挺好的。先说这个问题:
#include <stdio.h>
#include <malloc.h>
#define max(a,b) ((a)>(b)?(a):(b))
int computeMax(int [], int);
int main() {
int array[10] = {1,-1,2,2,3,-3,4,-4,5,-5};
/*printf("\n");*/
printf("%d ...
编译安装googlepinyin输入法
- 博客分类:
- Linux
苦于没找到fedora下googlepinyin的rpm安装包,好像也没有fedora源(貌似ubuntu有),直接下载了源码安装。
googlepinyin依赖libgooglepinyin,我下载的是fcitx-googlepinyin-0.1.5.tar.xz和libgooglepinyin-0.1.2.tar.bz2
先安装libgooglepinyin,根据INSTALL安装说明,可以添加-DCMAKE_INSTALL_PREFIX参数指定安装的目录,但不建议指定,因为之后安装googlepinyin时,会从默认目录找libgooglepiny ...