自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(633)
  • 收藏
  • 关注

原创 每日学习笔记(24)

1,一开始都是调用HttpMethod的getResponseBody()和getResponseBodyAsString,但这样总会出现下图中的警告信息  这是由于没有使用缓存的缘故,如果字符串数据过多,会出警告,应该改用流和缓存来读取数据:   InputStream resStream = null; String response = null; ...

2012-03-11 14:10:12 147

深入剖析SolrCloud(四)

    在上一篇中介绍了连接Zookeeper集群的方法,这一篇将围绕一个有趣的话题---来展开,这就是Replication(索引复制),关于Solr Replication的详细介绍,可以参考http://wiki.apache.org/solr/SolrReplication。          在开始这个话题之前,先从我最近在应用中引入solr的master/slave架构时,遇到的一...

2012-03-10 20:02:57 124

深入剖析SolrCloud(三)

  在上一篇中介绍了SolrCloud的第一个模块---构建管理solr集群状态信息的zookeeper集群。当我们在solr服务器启动时拥有了这样一个Zookeeper集群后,显然我们需要连接到Zookeeper集群的方便手段,在这一篇中我将对Zookeeper客户端相关的各个封装类进行分析。 SolrZkClient类是Solr服务器用来与Zookeeper集群进行通信的接口类,它包含...

2012-03-10 19:56:38 123

深入剖析SolrCloud(二)

上一篇介绍了SolrCloud的基本概念,从这一篇开始我将深入到其实现代码中进行剖析。 SolrCloud最重要的一点就是引入了ZooKeeper来统一管理各种配置和状态信息。zookeeper是一个开源分布式的服务,它提供了分布式协作,分布式同步,配置管理等功能. 其实现的功能与google的chubby基本一致.zookeeper的官方网站已经写了一篇非常经典的概述性文章,请大家参...

2012-03-10 19:48:31 86

深入剖析SolrCloud(一)

SolrCloud是基于Solr和Zookeeper的分布式搜索方案,是正在开发中的Solr4.0的核心组件之一,它的主要思想是使用Zookeeper作为集群的配置信息中心。它有几个特色功能:1)集中式的配置信息 2)自动容错 3)近实时搜索 4)查询时自动负载均衡。 基本可以用上面这幅图来概述,这是一个拥有4个Solr节点的集群,索引分布在两个Shard里面,每个Shard包含两个Solr...

2012-03-10 19:41:09 91

技术宅---我的网上抢火车票攻略

    在前面      写这篇文章的起因是今天在12306上买火车票时,被这牛逼的网站给震撼到了,靠,牛叉得让人无语的用户体验啊。就讲讲我是如何利用一个小工具做辅助,幸运地抢到了回家的卧铺票的。希望能给有需要的兄弟们做个参考。     回顾下我今天网上购票的全过程,总结起来有四个难关,第一是登陆,第二是预定,第三是提交订单,第四是支付。本文的目的主要是为了在第一和第二关提供一些帮助。 ...

2012-01-07 13:16:00 141

每日学习笔记(23)

1,从前端传过来的参数是"\u9676\u9676\u6D4B\u8BD5\u8D26\u53F701"这样的unicode编码,需要将其转换为中文字符串,发现java.util.Properties类中有一个loadConvert函数可以完成这件事,直接copy过来使用。   public static String loadConvert(char[] in, int off, int l...

2011-11-17 12:15:00 92

一次内存泄露问题的排查

系统对外提供的Solr查询接口,在来自外部调用的压力加大之后,就会出现solr查询报Read Timed Out的异常,从表面现象上看是此时solr核压力过大,无法响应过多的查询请求。 但实际上此时并发查询压力并不是很大,那么为何solr核会无法及时响应查询请求呢?首先用top查看了下load average,也是很低,也佐证了系统本身压力并不大。 然后,用jstack –l...

2011-11-14 12:32:00 88

每日学习笔记(21)

1,今天收到报警信息,说应用所在机器的硬盘空间不足了,上去一看,居然发现国庆这几天的日志信息累计达到了260多G,可看了下应用下的日志,实际只有几十M而已,进一步check后发现是调用的第三方应用在另一个日志路径下打出大量的Debug信息,回查代码后才明白是Logback和Log4J的冲突问题,于是写了一个类在应用启动时将Log4J的级别调高至ERROR级别,代码如下: public class...

2011-10-12 19:50:00 65

每日学习笔记(20)

1,Solr合并索引数据有两种方法,第一种是1.4版本中引入的,通过CoreAdminHandler来实现,示例如下: http://localhost:8983/solr/admin/cores?action=mergeindexes&core=core0&indexDir=/opt/solr/core1/data/index&indexDir=/opt/solr/co...

2011-09-28 15:02:00 99

每日学习笔记(19)

今天的工作需求如下:有一个生产者负责生成源数据,将数据插入到多个工作队列中,每个工作队列由一个线程池进行处理,即每个线程池中可以启动多个线程对与其对应的工作队列中的元素取出来进行处理。 我将业务需求抽象为一个“单生产者—多消费者集群”模型,写了一个模拟代码进行测试,明天打算把模型再套回到业务中去。 import java.text.DateFormat; import java...

2011-08-23 23:00:00 73

使用JavaScript下进行iframe的DOM操作(考虑浏览器兼容性)

今天碰到一个浏览器兼容性的问题,是IE和Firefox下iframe DOM操作的差异。本文借IE和Firefox在iframe DOM操作的不同,进行分析说明JavaScript在DOM操作中两者的不同。 IE和Firefox对iframe document对象的差异性 在IE6、IE7中,我们可以使用document.frames[ID].document来访问iframe子窗口中...

2011-07-01 16:38:00 80

每日学习笔记(16)

在看jdk里的collection framework这部分,小结一下: 1,Arrays.copyOf, System.arraycopy这两个方法用得非常多。 2,比较两个Object是否相等 if (o1==null ? o2 == null : o1.equals(o2)) 3, equals方法一般写法 Public Boolean equals(Object o) { ...

2011-07-01 16:37:00 66

每日学习笔记(17)

由于以前没接触过Maven,上周第一次checkout项目代码学习时,看到项目的结构觉得挺奇怪的,src/main/java下放代码,src/main/resource下放配置文件,src/test/java下放单元测试文件,src/main/webapp下放web层的代码,今天看了《Maven权威指南》后,才明白这是Maven的约定的代码结构,它的核心理念就是“约定优于配置”。 Mave...

2011-07-01 16:37:00 66

每日学习笔记(18)

1,iBatis源码中DefaultSqlSession.java,下面这个方法中匿名类的使用比较有意思,我对这个语法不熟悉,师兄说这是匿名类的初始化, privateObject wrapCollection(finalObject object) { if(objectinstanceofList) { returnnewHashMap() {{ put("list", obje...

2011-07-01 16:37:00 80

每日学习笔记(14)

1)今天在读《MySQL技术内幕InnoDB存储引擎》,作者在第四章讲到MySQL的分区时提到了一个问题,“对数据表分区真的会提高数据库的查询性能吗?”。 对于OLAP的应用,分区的确可以很好地提高查询的性能,因为OLAP应用中大多数查询需要频繁地扫描一张很大的表。假设表中数据有1亿行,其中有一个时间戳属性列。你的查询需要从这张表中获取一年的数据。如果按数据戳进行分区,则只需要扫描相应的分区...

2011-07-01 16:36:00 78

每日学习笔记(15)

今天接着读《MySQL技术内幕InnoDB存储引擎》的第5章关于索引这部分内容。 什么时候使用B+树索引?并不是在所有的查询条件下出现的列都需要添加索引,作者指出当访问表中很少一部分行时,使用B+树索引才有意义。对于像性别,地区,类型等字段,它们的可取值范围很小,即所谓低选择性,比如Select * from student where sex=’M’,那么结果可能是该表50%的数据,此时添...

2011-07-01 16:36:00 79

每日学习笔记(12)

一,源码编译openfetion 0,将所需的依赖库都安装好 1,安装CMake,版本2.8以上 2,在openfetion目录下建立一个build目录 3,cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=debug 4,进入build目录中进行编译:make 安装:make install 5,安装完成后若出现...

2011-07-01 16:35:00 78

每日学习笔记(13)

1,ubuntu中mysql好久没用了,密码忘记了, 首先停止mysql /etc/init.d/mysql stop 然后以不检查权限的方式启动mysql mysqld_safe --skip-grant-tables & 然后root用户以空密码登录mysql mysql -u root 然后修改root用户密码: mysql> update mysq...

2011-07-01 16:35:00 69

CodeIgniter剖析(1)

下载CodeIgniter1.7并解压缩后,将index.php和system目录拷贝到web服务器的根目录下,这样就完成了CodeIgniter的安装。 安装完后可以看下system目录下的结构。Application是你自己项目存放文件的目录(简单来说,控制器,模型和视图都在这里)。System目录下其他文件夹是CodeIgniter自身的代码,比较常用的有libraries等。 要建...

2011-07-01 16:35:00 76

【分享】Firefox和Chrome扩展开发

今天在公司内部做的一个技术分享,内容涉及Firefox扩展开发,XPCOM组件,Chrome扩展开发,以及两者可扩展性的比较。 以下是讲稿的大纲: 1,Firefox扩展快速入门 2,实例1:Hello World for firefox 3,实例2:图片批量下载扩展 4,XPCOM—跨平台的COM技术 5,实例3:迅雷下载扩展 6,Chrome扩展快速入门 7,实例4:Hel...

2011-07-01 16:34:00 74

每日学习笔记(7)

本文是对Python自带的unittest框架学习笔记的入门篇,简单介绍PyUnit框架的基础知识。 待测试的目标类 代码 <!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlig...

2010-08-19 16:08:00 78

每日学习笔记(6)

今天在做的事情是将一个as3项目的部分代码移植到PHP中来,记录下移植过程中遇到的两个问题。 1,AS3中String类的charCodeAt函数是返回字符的unicode编码,而在PHP中并没有直接与之对应的库函数,可以用下面这个函数做替代: 代码 <!--<br/ /><br/ />Code highlighting produced by Actipro...

2010-07-08 19:08:00 82

Adobe Achemy入门指南

1,需要用到的开发工具有:1)Alchemy 2)Cygwin 3)Flex SDK(3.2+) 4)Java(只需要JRE就够了) 5)Flex Builder 2,安装步骤: 1)Alchemy解压缩到c:/alchemy下 2)Flex SDK解压缩到c:/flex下 3)Cygwin在”选择包“这一步时,确保选中下述三个包: a)Archive目录...

2010-07-07 16:13:00 80

《Head First设计模式》读书笔记(二)

对于观察者模式,PHP通过标准PHP库(SPL)提供了内建的支持,下面用SPL对昨天的观察者模式示例进行修改。 代码 <!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com...

2010-07-07 10:13:00 82

《Head First设计模式》读书笔记(一)

用php来实现书中的示例和习题,昨天完成策略模式和观察者模式,代码如下: 代码 <!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ />&lt...

2010-07-06 09:09:00 59

每日学习笔记(5)

1,python的全局变量使用类似于php,但有一点值得注意,如果你的全局变量是List或Dictionary之类的,那它就默认是可以全局访问,并不需要加global关键字 代码 <!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ /&gt...

2010-06-08 11:08:00 58

5月读书小结

1,《可爱的Python》,难得的一本国人写的好书。这本书最有特色的一点就是以一个CD信息搜索程序作为载体,从最简单的需求入手,逐步深入下去,一点点对python脚本进行重构和改进。这个项目虽然很小,但却能体会到作者的整个思路过程,尤其是作者的思维过程的展现,很有实用价值。不过这个项目还应当更深入提升一些,应该将CD信息构造成倒排索引,再对搜索的关键字进行分词,然后进行搜索,如果像这样能与搜索引擎...

2010-05-28 21:12:00 61

使用C语言扩展Python(五)

上一篇中我们在python端的做法是每次读取一个数据块,然后将这个数据块传递进C扩展模块中去,但对于目标文件的数据写入是在C扩展模块中完成的,但其实可以更面向对象一点,不是吗?原来outfp是一个文件指针, 不如改成一个从Python中传递一个文件对象到C模块里去,这个文件对象有自己的write方法,这样在C扩展模块中你就可以回调文件对象的write方法来完成数据的写入。 首先来看Python...

2010-05-23 23:08:00 77

使用C语言扩展Python(四)

上一篇里的LAME项目已经展示了python如何与C语言交互,但程序仍不够理想,在python这一端仅仅是传递源文件和目标文件的路径,再调用C模块的encode方法来进行编码,但问题在于你无法控制encode函数,比如你想编码的源文件如果不是原始数据,而是wav文件或者其他格式呢?对于这个问题,有两种方法可以选择,一种模仿前面的C模块,在你的Python代码中读取数据,并将数据块逐个传递给enco...

2010-05-23 00:08:00 56

使用C语言扩展Python(三)

上一篇中我们已经了解如何在Python程序和C模块之间进行值的相互传递,现在我们来进入实作阶段,看看如何将一个C语言开发的开源mp3编解码库LAME包装为一个Python下可以使用的扩展模块。 首先去http://lame.sourceforge.net/download.php下载LAME的源代码,然后切换到root用户编译源代码, <!--<br/ /><br/ /&...

2010-05-22 18:08:00 80

使用C语言扩展Python(二)

在上一篇中我们已经使用c语言实现了一个最简单的扩展模块,这一篇中将在其基础上进行功能的丰富。 首先来考虑如何从外部的Python向C模块传递进参数,foo_bar2展示了如何向C模块传递整数,浮点数,字符串三个参数,其中"ids"指明了传入参数的数据类型。PyArg_ParseTuple负责对args进行解析,若解析失败则返回0. 代码 <!--<br/ /><br/ /...

2010-05-22 01:10:00 68

使用C语言扩展Python(一)

开发环境:Ubuntu9.10,python2.6,gcc4.4.1 1,ubuntu下的python运行包和开发包是分开的,因此需要在新利得里面安装python-all-dev,从而可以在代码中引用python的头文件和库。 2.下面是一个最简单的可以供python调用的c扩展模块,假设c程序文件名为foo.c: 代码 <!--<br/ /><br/ />Code...

2010-05-17 02:08:00 75

AMFPHP快速入门

AMFPHP是PHP的远程调用(RPC, Remote Procedure Call)工具。它可以使PHP与下述技术无缝通信: (1) Flash 和 Flex Remoting (2) JavaScript JSON 和 Ajax JSON (3) XML 和XML-RPC 什么是RPC 远端程序调用(RPC, Remote Procedure Call) 是一种客户端...

2010-05-10 11:07:00 81

每日学习笔记(4)

1,字典的输出 <!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->person={'name':...

2010-05-09 23:07:00 70

python中package机制的两种实现方式

当执行import module时,解释器会根据下面的搜索路径,搜索module1.py文件。 1) 当前工作目录 2) PYTHONPATH中的目录 3) Python安装目录 (/usr/local/lib/python) 事实上,模块搜索是在保存在sys.path这个全局变量中的目录列表中进行搜索。 sys.path会在解释器开始执行时被初始化成...

2010-05-07 20:09:00 169

4月读书小结

1,《Python How To Program》 这本书是2001年的老书了,连它使用的python版本我都没弄清楚,不过我python却是从此书入门的。里面没有Set,还在讲老掉牙的CGI,不过对操作符的重载讲解的不错,其他诸如多线程,网络,XMl,数据库,文件,序列化,异常等都还可以,比较适合没有任何python基础的人学习,作者可以说是极其耐心了,恨不能把代码一句一句分析给你听。...

2010-05-04 20:09:00 72

每日学习笔记(3)

1,先说说今天体会最深刻的一点:写python代码,一个好的编辑器至关重要,这其中VIM确实是最佳选择。由于python是根据缩进来判断上下文的,因此tab和空格使用不当会害死你的。一段代码在Notepad++里看起来对齐格式没问题,可就是死活编译不过,来到vim下一看,damn it,格式是乱的。本想用4个空格替换掉所有的tab,可该死的Notepad++居然并没有全部替换掉,再换UltraEd...

2010-04-29 20:08:00 61

每日学习笔记(2)

1,使用python提交post请求时,如果参数中包含中文,则会提交失败,因此需要将参数进行utf-8编码,示例如下: <!--<br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter...

2010-04-28 20:08:00 63

每日学习笔记(1)

  1,python2.4不支持下面这种异常处理语法 <!--<br/ /> <br/ /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ /> http://www.CodeHighlighter.com/<br/ /> <br/...

2010-04-27 21:08:00 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除