- 博客(204)
- 资源 (48)
- 收藏
- 关注
原创 有意思的记录-python
1.变量 类变量紧接在类名后面定义,相当于java和c++的static变量 实例变量在init里定义,相当于java和c++的普通变量2.日期#coding:utf-8import timeimport datetime#日期格式化,time.strftime(format[, t]),#输出:2015-08-28 15:50:51currentTime = time.strftim
2015-08-28 15:57:43 744
原创 有意思的记录-Java
1.文件读取项目外的绝对路径或相对路径文件读取String path = "/xx/xx.txt";BufferedReader reader = new BufferedReader( new FileReader(new File(path));项目内(常常是resources目录下)或jar包内文件读取InputStream file = this.getClass
2015-08-07 17:05:44 631
原创 Linux常用系统查看命令(持续更新)
1.查看cpu个数cat /proc/cpuinfo | grep processor | wc -l2.查看任务及系统情况top第一行是任务队列信息,等同于uptime命令;第二三行为进程和CPU信息;第四五行为内存信息。补:load average-系统负载,就是任务队列的平均长度,分别是1分钟、5分钟、15分钟内的平均值。load average小于CPU个数,属
2012-10-09 11:09:58 1269
原创 sh有意思的记录-shell(持续更新)
1.统计重复行的个数如:uid.txtaaabbbbbbaaa sort uid.txt | uniq -c得到2 aaa 2 bbb 2.查看压缩文件a.gz, b.gz, c.gzcat *.gz | gunzip > 1233.查看2个文件的交集、差集comm 显示3列,第一列为1.txt独有的元素(1.txt-2.txt)
2012-08-23 17:51:44 1421
原创 有意思的记录-C++(持续更新)
1.数组指针void main(){ int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1));}输出结果为:2,5&a是数组指针,其类型为 int (*)[5];而指针加1要根据指针类型加上一定的值,不同类型的指针+1之后增加的大小不同。&a是长度为5的int
2011-09-11 15:47:32 930
原创 Java动态编译
程序产生过程下图展示了从源代码到可运行程序的过程,正常情况下先编译(明文源码到字节码),后执行(JVM加载字节码,获得类模板,实例化,方法使用)。本文来探索下当程序已经开始执行,但在.class甚至.java还未就绪的情况下,程序如何获得指定的实现。这就是我们下面的主题,动态编译。 相关类介绍JavaCompiler: 负责读取源代码,编译诊断,输出class JavaFileObject: 文
2015-11-13 16:14:02 4477 1
原创 聊聊排名算法
很多网站或应用会提供各样的排行榜,如热门查询、热门应用、最佳文章、论坛评论/文章列表展示等。前段时间做游戏的搜索热词就看了几篇文章,总结记录下。先介绍下流传比较广的算法,再说下我的算法。
2015-11-06 11:42:45 2056
原创 Lucene系列-FieldCache
域缓存,加载所有文档中某个特定域的值到内存,便于随机存取该域值。用途及使用场景当用户需要访问各文档中某个域的值时,IndexSearcher.doc(docId)获得Document的所有域值,但访问速度比较慢,而且只能获得Stored域的值。 FieldCache能获得域值数组,根据docId random access域值。FieldCache是高级内部API,通常用户不会直接使用,Lucen
2015-10-09 17:46:54 2598 1
原创 Redis系列-好玩的用法
分布式锁客户端执行如下命令,来获取锁和释放锁。random = random()ok = (Set key random PX 2000ms NX)if (ok) { //do something if (redis->get(key) == random) { (del key) }}key不存在时设置,过期时间是2000ms。如果命令成功,表示获取锁
2015-09-18 19:51:14 1012
原创 Maven常用插件
maven利用各种插件来管理构建项目,本文记录下工作中常用到的插件及使用方法。常用插件见:http://maven.apache.org/plugins/index.html,http://www.mojohaus.org/plugins.html。 每个插件都会提供多个目标(goal),用于标示任务。各插件配置在pom.xml里,如下:<build> [...] <plugins>
2015-09-10 17:12:47 1990
原创 Hadoop相关日常操作
1.Hive相关脚本导数据,并设置运行队列bin/beeline -u 'url' --outputformat=tsv -e "set mapreduce.job.queuename=queue_1" -e "select * from search_log where date = 20150523" > test.txt2.Spark相关spark任务提交$SPA
2015-08-28 16:37:20 649
原创 Spark使用实例
1.介绍Spark是基于Hadoop的大数据处理框架,相比较MapReduce,Spark对数据的处理是在本地内存中进行,中间数据不需要落地,因此速度有很大的提升。而MapReduce在map阶段和Reduce阶段后都需要文件落地,对于连续的数据处理,就需要写多个MapReduce Job接力执行。最近分析用户查询日志提取共现查询,流程如下:a.先获得对;b.合并同一个uid的querie
2015-08-28 15:04:59 2529
原创 阿里巴巴B2B搜索学习
1.搜索业务主搜索:商品搜索、商家搜索、采购搜索、app搜索行业搜索:淘货源、淘工厂、聚好货、主题市场、品牌馆等2.优势由于用户多,需求强烈,收益大,所以功能、场景、架构做到极致高效。代码复用性强:基础通用功能进行组件抽象化组件通用性好:一些组件或者组件进行组合的服务,适用更多场景,支持更多功能转化效果好:算法做的比较深入、细致3.搜索技术架构架构分为三部分
2015-07-31 14:26:09 1371
原创 海量数据搜索的思考
后续完善。背景miui有1亿用户(108),每个用户有1万张相片(104)。从数据量和数据大小两个方面认识下。数据量:共有1012条数据,100台机子存储,每台机子1010条数据(100亿)。数据大小:每个用户的数据占2MB,共2*108MB = 200TB,200台机子存储,每台机子存储1TB。初步印象集群需要机器数量以百衡量;从海量数据中查询想要的结果需要架构分层、数据分治;海量数据的管理
2015-06-24 16:37:20 914
原创 Linux网络编程系列-TCP传输控制
滑动窗口(sliding window)滑动窗口是用于流量控制的,发送端根据接收端的处理能力发送数据,不至于造成过多的丢包。 在TCP头中有一个字段window,这个字段就是接收端告诉发送端自己还有多少缓冲区可以接收数据。发送端根据这个字段的值来发送数据,当值为0时就停止发送。 发送端和接收端各自维护着一个窗口,发送的滑动窗口控制可以发送的数据大小,接收端的窗口控制可以接收数据的大小。 发
2015-05-22 20:33:27 839
原创 Lucene系列-索引文件
本文介绍下lucene生成的索引有哪些文件组成,每个文件包含了什么信息。基于Lucene 4.10.0。数据结构索引(index)包含了存储的文档(document)正排、倒排信息,用于文本搜索。索引又分为多个段(segments),每个新添加的doc都会存到一个新segment中,不同的segments又会合并成一个segment。segment存储着具体的documents,每个doc有一系列的
2015-04-24 19:08:39 2206
原创 python Web开发框架-Django (1)
以前用web.py(另外一款轻量级web开发框架)做一个监控管理平台,没有做特别的记录就不好拾起来。最近做一个日志聚合系统,使用的是django,这次就记下来,方便查询。Django是一个高效的web开发框架,上手容易,便于调试和发布。设计模式它的设计遵循经典的web设计架构-MVC(Model-view-controller),一个应用分为四部分:models.py:文件
2015-03-24 16:36:34 1583
原创 Java垃圾回收-分代收集
Java自动垃圾回收(Automatic Garbage Collection)是自动回收堆上不再使用的内存,new的对象在程序中没有引用指向它,就不会被回收。回收的实现很多,有Reference Counting Collector/Tracing Collector/Compacting Collector/Coping Collector/Generational Collector/Ada
2015-02-15 19:15:06 3201
原创 Lucene系列-近实时搜索(1)
近实时搜索(near-real-time)可以搜索IndexWriter还未commit的内容,介于immediate和eventual之间,在数据比较大、更新较频繁的情况下使用。lucene的nrt可以控制更新生效的间隔时间。基本过程:打开indexwriter从indexwriter中获得indexreader建立indexsearcher查看是否有变化,有变化则建立新read
2015-01-20 20:01:33 3815 1
原创 Lucene系列-facet
1.facet的直观认识facet:面、切面、方面。个人理解就是维度,在满足query的前提下,观察结果在各维度上的分布。如jd上搜“手机”,得到4009个商品。其中品牌、网络、价格就是商品的维度(facet),点击某个品牌或者网络,获取更细分的结果。点击品牌小米,获得小米手机的结果,显示27个。点击移动4G,获得移动4G、小米手机,显示4个。2.fac
2015-01-09 15:42:53 6242
原创 消息队列-rabbitMQ
消息队列两个用处:服务间解耦,缓解压力(削峰平谷),以前用过ZMQ、狼厂内部的NMQ,现在接触了java开源的kafka和RabbitMQ。目前先不求甚解,有个大概的认识。RabbitMQ的安装和入门例子见http://www.rabbitmq.com/,挺全的。安装前需要安装erlang,启动方便。RabbitMQ是一个强壮的消息队列,安装使用都很容易,支持常用的发布/订阅、消息分发功能
2014-12-18 21:05:34 1873
原创 redis源码系列-数据结构(adlist/ziplist/dict)
该系列基于redis-2.8.18,主要记录自己的理解或者想法。redis以自己支持存储的数据结构丰富吸引了大批人,把memcached比了下去。本文就从简单基本的数据结构入手。双向链表(adlist.h)typedef struct listNode { struct listNode *prev; struct listNode *next; void *val
2014-12-12 16:06:09 913
原创 zk系列-zookeeper的使用
zk支持java/c访问,java常用的有apache-zkclient,以及社区版的i0tec-zkclient,i0
2014-09-26 16:57:43 4856
原创 设计模式-行为模式(读书笔记)
行为模式涉及到算法和对象间职责的分配,行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。这些模式刻划了在运行时难以跟踪的复杂的控制流,将程序员的注意力从控制流转移到对象间的联系方式上来。职责链(chain of responsibility)使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止
2014-08-08 15:07:40 764
原创 MooseFS学习-概述
MFS(MooseFS)是一个容错的、网络分布式文件系统,是GFS的开源实现。它把数据分散在多个物理机上,对外展现为一个整体资源。功能:
2014-07-29 11:53:58 947
Tuscany SCA与Spring、Hibernate整合实例-简洁方法
2011-07-19
Flex_Spring3_Hibernate3整合Demo
2011-07-18
RPG 教程 源代码
2009-05-06
DirectX 9入门教程 Beginning Directtx 9
2009-05-06
c++ 3D 游戏开发实例教程 chm
2009-04-10
网络游戏开发 英文教材 chm
2009-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人