- 博客(108)
- 资源 (2)
- 收藏
- 关注
原创 线上排查工具btrace和jvm-inspector使用说明
btrace=================================================================btrace官网:https://kenai.com/projects/btrace/pages/UserGuide下载1.2可执行包的,上传到线上机器。解压后将chmod 755 btrace,将btrace设为可执行。一个简单的b
2014-03-21 14:16:52
2483
原创 maven in action读书笔记
零零碎碎scopecompile:默认的scope。对编译、测试、运行有效。test:只对编译测试代码及运行测试有效。编译主代码及运行无效。provided:对编译(主代码及测试代码)和运行测试有效,但是运行时无效,如servlet-api。runtime:测试和运行有效,对编译主代码无效(不明白。。。)system:显式依赖指定的jar包。 xxx …
2014-02-28 15:33:20
1168
转载 mac os安装open cv2 for python
转自:http://blog.youkuaiyun.com/flyfy1/article/details/8274288看了几篇安装open cv2 for python,感觉都有点麻烦。上面这两个算是比较简单的。我的操作系统是10.7,python 2.7.3。首先就是要安装cmake,这个很简单,brew install cmake。一个命令就搞定。然后下载open cv的
2014-02-07 16:05:52
7637
原创 intellij idea build时出现illegal character的解决
碰到有中文的项目,有可能包名、类名或者方法名都会包含中文,这时在build的时候会出现 illegal charater 这样的错误。这种情况,可能有两种原因,1. 保存代码文件的时候出现了BOM头关于BOM头及去除方法,网上有非常多的文章,比如这里:http://my.oschina.net/xianggao/blog/796942. 编码问题。比如文件编码是GBK的,这时如
2014-01-23 11:10:33
13391
原创 disruptor学习笔记
1. 内存屏障:volatile提供与锁类似的语义,但是代码比锁小得多。volatile可以阻止代码重排序,并且值被更新的时候,会导致缓存失效,强制回写到主存中。2. 伪共享与缓存行CPU缓存通常一次缓存多个字(32、64或128字节),称为缓存行。如果位于同一个缓存行中的多个变量被不同的线程进行写,由于每次写都有可能刷新主存导致缓存失效,从而导致性能低下,即伪共享。可以使用缓
2013-10-26 17:14:54
2319
转载 java日志系统详解
转自:http://ieye.iteye.com/blog/1924215Java日志系统确实比较丰富,常用的有log4j、JUL、logback等等,同时伴随着日志系统的发展,出现了日志框架commons-logging和slf4j。简短地描述下日志发展,最先出现的是apache开源社区的log4j,这个日志确实是应用最广泛的日志工具,成为了java日志的事实上的标准。然而,
2013-09-18 15:20:44
1275
原创 hbase时间戳踩坑小记
大家知道,像OB,HBase这种存储系统,插入数据的时候,一般数据上都会有一个时间戳(ts)。Hbase有一个TTL(time to live),可以标识数据的有效期,比如,可以把TTL设置成86400*1000,也就是说数据将于1天后过期。这是一个表级的设置,必须在建表时指定。但是如果说你需要存储某一天内的数据,到第二天0点失效。这种情况TTL是没法控制的,因为TTL只能控制数据在一段时
2013-09-14 17:16:32
9749
原创 google guava bloom filter包的坑
关于bloom filter以及原理,见我之前转的这篇:http://blog.youkuaiyun.com/inte_sleeper/article/details/7824857下面开始实战篇。google guava包是包含了一个bloom filter的实现的,使用方式比较简单,其实就是一行代码:BloomFilter filter = BloomFilter.create
2013-09-14 17:08:41
10277
2
原创 maven filter插件只替换了部分变量问题排查小记
maven的resources插件,有一个filter的作用,能够在打包的时候,从特定文件里读取key-value对,替换配置文件中的占位符变量。很多线上线下有不同环境的应用,都是用这种方式来打包,只需要在文件中配置不同的值即可。下面就是一个最简单的配置: Test ${user.home}/antx.properties
2013-08-20 23:49:43
3916
原创 BDB je二级索引操作
BDB是使用k-v存储的,默认就是一个key对应一个value,也就是说以key为索引。但是BDB是支持二级索引的,即Secondary Database,这个在官方文档有。不过它没提到的是,BDB支持多个二级索引。下面的代码,演示了如何创建多个二级索引,插入数据,然后通过二级索引查询数据。/** * @author wange */import com.sleepycat.je.
2013-07-15 14:51:27
1602
原创 IDEA中文项目问题解决小记
写之前还是YY一下,如果这个世界只有UTF-8,那就清静了,没那么多乱码问题了。。。公司的WEB项目基本上都是GBK编码的,在IDEA中,就自然会碰到各种乱码问题。
2013-07-14 16:53:11
6864
翻译 iOS开发学习笔记 -- (五)关于Table的更多
原文:http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/TableViewStyles/TableViewCharacteristics.html#//apple_ref/doc/uid/TP40007451-CH3-SW1一、Table的样式表格
2013-03-12 14:25:25
1392
原创 iOS开发学习笔记 -- (四)使用Table
【update 2013-03-13 添加了分组的表格的示例】今天开始学使用表格。iOS的表格是UITableView实现的,一个table包含多行,但每行只有一列。这篇文章:http://www.cnblogs.com/minglz/archive/2013/01/10/2845032.html 比较详细地说明了结合使用interface builder创建table的过程,我们还是
2013-03-07 18:10:24
1219
原创 iOS开发学习笔记 -- (二)动态添加控件和事件处理
刚开始学iOS开发的时候,经常要跟interface builder打交道,乍一看拖控件是挺方便的,跟以前做C#开发类似,但是Xcode比较恶心的一点是,拖完控件之后,还得手动地在Connections Inspector中绑定控件和变量的关系,事件的绑定也在这里完成。当然如果这些都有一个源代码给我们看到,倒也还好(比如C#中的xx.designer.cs),但是Xcode又全部给扔到了.xib文
2013-03-04 19:04:59
5158
原创 iOS开发学习笔记 -- (三)动态创建视图
这次的例子会演示用编程的方式使用TabBarController及创建视图。它会创建两个TAB,然后在每个TAB页中,加载我们自己定义的一个视图。最终结果如下: 先新建一个项目,因为不需要interface builder,我们选择Empty的项目类型。项目创建完成后,主要文件只有:AppDelegate.h和AppDelegate.m。接下来,我们需要创建自定义
2013-03-04 15:48:44
2083
原创 iOS开发学习笔记 -- (一)hybrid app
最近开始看iOS开发,看了个把星期,写几篇笔记。顺序有点乱,想到什么写什么好了。因为上周刚刚参加了一个hybrid app开发的培训,感觉Hybrid app开发是一个比较好的方式,可以充分利用web页面布局的特性(当然,还重用了web开发的知识),避免写纯native app UI的痛苦。而目前纯HTML5的开发,虽然也有相关的应用,但是有时又损失了hybrid方式的灵活性。当然hybr
2013-03-04 15:10:42
2959
转载 相似图片搜索的三种哈希算法
【转自】:http://blog.youkuaiyun.com/nash_/article/details/8618775想必大家都用google或baidu的识图功能,上面就是我搜索冠希哥一幅图片的结果,达到图片比较目的且利用信息指纹比较有三种算法,这些算法都很易懂,下面分别介绍一下:一、平均哈希算法(aHash)此算法是基于比较灰度图每个像素与平均值来实现的
2013-03-02 23:23:30
1123
原创 精通正则表达式读书笔记(三)
优化:0. 正则表达式应用原理a. 编译b. 传动开始:将正则引擎定位至目标字符串的起始位置。c. 元素检测d. 寻找匹配结果:如果找到一个匹配结果,传统型NFA会锁定在当前状态,并报告匹配成功。而对于POSIX NFA来说,如果这个匹配是迄今为止最长的,它会记住这个可能的匹配,然后从可用的状态继续下去。直到尝试了所有的可能,并找到全局的最大匹配。e. 传动装置的驱动过程:
2013-01-21 18:40:18
828
原创 python的curses模块使用
参考:http://docs.python.org/2/howto/curses.htmlcurses(早期名称,现在是ncurses)包的封装,用于实现终端无关的控制台输出以及输入处理。curses包支持各种终端,从古老的VT100到LINUX控制台到X11终端如xterm或rxvt。curses把终端当作一个矩阵,即单元格的集合,每一个ascii字符代表最小的char-cell。注
2013-01-09 15:39:59
12919
翻译 使用python的termcolor包
原文:http://pypi.python.org/pypi/termcolortermcolor是一个python包,可以改变控制台输出的颜色,支持各种terminal(WINDOWS的cmd.exe除外)。它支持下列的文字颜色:grey, red, green, yellow, blue, magenta, cyan, white支持下列的背景高亮:on
2013-01-09 14:03:48
9025
原创 ascii art的一些资源
怎么来定义ascii art呢,其实可以认为是一些ascii控吧,用简单的ascii字符,做出很多很酷的效果,如ascii拼成的大字,图片,甚至动画(早期BBS,甚至现在的许多高校BBS仍然有这种风格)。比如这个FIGlet文字: 888 888 888 8888b
2013-01-08 15:20:04
8035
原创 python对中文路径/文件名的重命名
先贴代码吧:#coding=utf-8import sys,osif __name__=='__main__': dust = u'要替换的中文字符' path = r'D:\your_dir' for root, subdirs, files in os.walk(path): for name in files:
2012-12-28 15:37:44
4653
原创 使用subprocess代替popen
很多时候,需要用Python来执行外部命令,然后通过管理获取命令的执行结果(不是ret code)。这时其实有多种选择,os.system当然是不行,因为它直接把结果打印出来了,返回的结果只是一个ret code。这就意味着我们没法通过变量来获取执行结果。一个可行的方法是使用popen2模块。下面是示例代码:def execute_cmd(cmd): stdout, std
2012-12-27 11:54:38
1866
原创 stanford compiler学习笔记(二)
自顶向下(TOP-DOWN)解析:预测分析(Predictive parsers)look ahead a few tokensLL(k) :没有回溯的TOP-DOWN方法Left-to-right,Left-most,look ahead k tokens(如LL(1))构造First Set和Follow Set。解析:转移状态表非递归的预测分析
2012-12-25 20:37:36
1482
转载 Linux文件查找
转自:http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html1. findfind是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下: $ find - : 所要搜索的目录及其所有子目录。默认为当前目录
2012-12-25 13:08:31
511
原创 stanford compiler学习笔记(一)
lexical analysis:根据输入,输出Tokens,即二元组。如, , etc.look ahead sometimesparse tree叶子节点:终结符内节点:非终结符对上下文无关文法的展开(derivation):最左展开(left-most derivation),最右展开(right-most derivation)正确的上下文无关
2012-12-24 13:27:30
1398
原创 精通正则表达式读书笔记(二)
DFA VS NFADFA:确定有限自动机。对一个输入,只有一个转移状态。NFA:非确定有限自动机。对一个输入,可以有多个转移状态。DFA的一个例子:如果模式串为: abc|abcdef,待匹配串为abcdef,在DFA中,它总是会去尝试所有可能的匹配。首先它会用abc中的a来匹配,发现满足;同时它还会用abcdef中的a来匹配,发现也满足。这时它会同时保留两个匹配的串
2012-12-21 19:26:38
580
原创 精通正则表达式读书笔记(一)
0. 元字符:.*?^[]+等。1. [abc]与(a|b|c)的区别:前者匹配普通字符,也就是说[]里面的都是普通字符,即使是.?*也一样([^除外,表示否定,-也除外,表示范围)。而(a|b|c)里的()模式内,不仅仅可以用普通字符,还可以用更复杂的表达式。2. egrep -options 'pattern' filee.g., egrep -i '^abc' thefile
2012-12-19 00:21:28
461
转载 Map-Reduce的过程解析
转自:http://www.cnblogs.com/forfuture1978/archive/2010/11/19/1882268.html一、客户端Map-Reduce的过程首先是由客户端提交一个任务开始的。提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:public static RunningJob runJob(Jo
2012-11-26 14:36:54
652
转载 HBase技术介绍
这是一篇关于HBase的概念性的文章,感觉写得非常好,从比较大的维度来描述了HBase与Hadoop的关系,没有特别陷入细节。转自淘宝搜索技术博客:http://www.searchtb.com/2011/01/understanding-hbase.htmlHBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储
2012-11-18 00:49:12
651
原创 hive动态分区与静态分区
HIVE分区,实际上是通过一个路径来标识的,而不是在物理数据中。比如每天的数据,可能分区是pt=20121023这样,那么路径中它就会变成:/hdfs/path/pt=20121023/data_files。通过路径来标识的好处是,如果我们需要取特定分区的数据,只需要把这个路径下的数据取出来就可以了,不用扫描全部的数据。HIVE默认是静态分区。但是有时候可能需要动态创建不同的分区,比如商品
2012-10-24 11:52:06
3953
1
转载 vim多行插入注释//
转自:http://att.newsmth.net/att.php?s.731.16603.568.txt写代码的时候,经常需要注释多行,对于大多数的代码,也就是在行首插入//。最笨的方法,其实是正则表达式了。这个正则表达式能够做到::m,ns/\(.*\)/\/\/\1/g其中m,n为注释起始行和结束行。当然,就是有点蛋疼了。还有另外一种比较好的方法:移动
2012-08-20 20:00:46
3108
转载 关于Richard Stallman的若干惊人事实
转自:http://www.soimort.org/tech-blog/2012/07/19/rms-facts.html下面所有的事情以及评论都来自原文,不出自我之口。。。今天在GNU Octave里无意把算阶乘的factorial()弄成了fact(),于是发现混进来了神马奇怪的东西:“关于世界上最伟大的黑客的惊人事实”,搜索了一下发现这些段子来自一个网站叫
2012-08-12 22:30:42
5060
转载 ProtocolBuffer和lzo技术Hadoop系统上的使用
转自:http://www.searchtb.com/2010/09/pb-lzo-used-in-hadoop.html概述基于hadoop的集群分布式数据处理目前是淘宝搜索中心最重要的数据处理平台,在集群物理条件确定的情况下,有几个方面影响了数据处理的速度。1、数据大小 (影响磁盘IO和网络IO)2、数据格式 (影响数据的解析及构造速度)3、并行度使用 prot
2012-08-11 16:29:09
1030
转载 HIVE的表操作语句
转自:http://hi.baidu.com/zhangxinandala/item/49752510cc7ad08789a956171.创建表的语句:Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT tabl
2012-08-11 16:21:26
2260
转载 深入理解Bloom Filter
转自:http://blog.youkuaiyun.com/liuben/article/details/6602683部分内容还译自:http://en.wikipedia.org/wiki/Bloom_filter原文有C实现代码,这里略去了。Bloom Filter是1970年由Bloom提出的,最初广泛用于拼写检查和数据库系统中。近年来,随着计算机和互联网技术的发展,数据集
2012-08-02 22:17:16
1216
转载 最大熵模型
转自廖先桃的最大熵PPT熵:描述事物无序性的参数,熵越大则越无序。熵在自然界的变化规律:熵增原理当熵处于最小值,即能量集中程度最高、有效能量处于最大值时,整个系统也处于最有序的状态(大爆炸前?)。相反为最无序状态(宇宙的终结?混沌均匀。。。)熵增原理预示着自然界越变越无序。信息熵:事物不确定的程度(香农)随机事件的信息熵:设随机变量ξ,它有A1, A2, A
2012-07-31 16:55:36
1490
原创 mahout基于hadoop的CF代码分析
mahout的taste框架是协同过滤算法的实现。它支持DataModel,如文件、数据库、NoSQL存储等,也支持hadoop的MapReduce。这里主要分析的基于MR的实现。基于MR的CF实现主要流程就在org.apache.mahout.cf.taste.hadoop.item.RecommenderJob类中(注意mahout有两个RecommendJob,要看清楚是哪一个包)。这
2012-06-10 18:01:34
3761
原创 hive中间结果和结果的压缩
hadoop中常见的压缩格式及特性如下:压缩格式工具算法文件扩展名多文件可分割性DEFLATE*无DEFLATE.deflate不不GzipgzipDEFLATE.gz不不ZIPzipDEFLATE.zip是是,在文件范围内bzip2bzip2
2012-05-16 14:14:18
3661
翻译 Elo rating system
原文:http://en.wikipedia.org/wiki/Elo_rating_systemElo分级系统由美国物理学教授Arpad Elo提出,最初是用于计算象棋比赛中的选手的相对水平,现在已经广泛用于很多类比赛的选手分级。在一场比赛中,选手都有一个分数,这个分数代表了选手的实力。分越高表示选手实力也越高。而分数可以通过打败其他选手来获得。Elo算法的实现细节如下:假设选手
2012-05-02 13:19:54
6815
豆瓣备份工具
2013-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人