2017-09-22 Eric Wang
背景 在日常开发中,有一些常见的环境,比如Dev、UAT、预发、生产等,当然并不是每个公司都是这样。有时候开发环境一切正常,但是到线上的UAT环境或预发等等会出现各种问题,那么你是不是经常需要进行本地修改代码、提交、编译、打包、上传、运行、查看日志等这一系列步骤呢?这种方式不仅低效、繁琐而且容易引入诸多不可控的因素,比如你在任意一个环节出现问题,可能都会影响到程序最终的运行结果。而如果能有一种神器,可以对正在运行的程序,进行动态追踪、错误诊断、性能剖析等,是不是无形中为你延长了生命呢?如果你之前不知道也就罢了,然而如果你看到这里了,却还不学习的话,就是你自己的锅了。 Java运行时追踪工具 常见的动态追踪工具有BTrace、H 继续阅读 »
2017-07-09 Eric Wang
作者简介:芭芭拉•明托,麦肯锡公司第一位女性咨询顾问。明托是哈佛商学院录取的第二批女学员之一,毕业时被国际知名管理咨询公司——麦肯锡聘请为该公司有史以来的第一位女性咨询顾问。她在写作方面的优势很快得到麦肯锡高层的赏识,负责提高麦肯锡公司员工的写作能力,致力于探索条理清晰的文章所必需的思维结构。本书在1973年首次出版,当即引起轰动,畅销欧美市场30年不衰,书中传授的方式与技巧,被公认为即便对于最有经验的管理者来说也是十分关键的。 表达的逻辑 为什么要用金字塔结构 文章中的思想必须符合以下规则: - 纵向:文章中任一层次上的思想必须是其下一层次思想的概括 - 横向:每组中的思想必须属于同一逻辑范畴 - 横向:每组中的思想必须按逻 继续阅读 »
2017-06-28 Eric Wang
RAMDirectory和FSDirectory都继承自BaseDirectory,而BaseDirectory继承自Directory,Directory是Lucene中设计的一个顶层抽象类,可以将其看做本地文件系统的一个目录。 RAMDirectory是基于内存实现的,具有较高的存储速度,但是受到内存大小的限制,而FSDirectory是基于文件系统实现的,针对不同的操作系统有不同的具体实现类,这些实现类无需用户操心,只需要调用FSDirectory.open(Path path)方法,它就会帮助我们选择最适合的子类,FSDirectory的瓶颈在于磁盘I/O。 如果机器内存足够大的话,那么组合使用RAMDirectory和 继续阅读 »
2017-06-13 Eric Wang
在Maven中,默认地,是不会将依赖的Jar包打入可执行Jar包的,如果需要将依赖打入可执行Jar包,需要在pom中添加maven-assembly-plugin插件,这个很容易实现,但是在正规开发中不推荐这样使用,为什么?因为稍微大型一些的项目都至少有几十个依赖项,而每次打包都将这些Jar包打入可执行Jar,使得最后生成的可执行Jar体积非常大。标准的做法是,将所有的依赖Jar包都打入lib目录中,而在可执行Jar的MANIFEST.MF中指定lib路径即可。这也很容易实现,并不是本文的重点,本文的重点是如何将不在Maven中央仓库中的Jar包,或者说依赖本地的Jar包打入可执行Jar,并更新MANIFEST.MF文件。 例如在 继续阅读 »
2017-06-11 Eric Wang
作者简介:尤瓦尔•赫拉利,1976年生,青年怪才,全球瞩目的新锐历史学家,牛津大学历史学博士,耶路撒冷希伯来大学历史系教授,著有国际畅销书《人类简史》。其新作《未来简史》,以宏大视角审视人类未来的终极命运,甫一出版就在全球掀起一股风潮,引起广泛关注。 人类的新议题 在这一章中,作者提出在21世纪,人类面临的三大议题似乎是不死、快乐和神性。现今因肥胖而死亡的人数已经远超因饥饿而死亡的人数了;同样因自杀而死亡的人数也已经远超因战争和恐怖主义而死亡的人数了,以目前的科技向前推进,在可以想象的未来,也许不死或者说永生可以成为一部分富人可选的一种生活方式呢。至于快乐不仅仅是物质上的,当然也包括精神上的,在这本书中,作者似乎特别喜欢谈动物, 继续阅读 »
2017-05-31 Eric Wang
FieldSelector 提高Lucene检索性能的方法有很多种,这里简单介绍一种常用且便捷可行的方法快速提高Lucene检索性能。在早期的Lucene版本中,使用FieldSelector来决定哪些Fields应该被加载,并以何种方式加载,但是在LUCENE-3309中该接口被废弃,并且提出了新的替代接口StoredFieldVisitor。 FieldCache 另一种提高检索性能的方案是使用FieldCache来缓存Lucene的term values信息,不过该接口目前已被移至org.apache.lucene.uninverting包下,并且访问权限变成包级私有,也就是说,用户再也无法直接使用FieldCache了 继续阅读 »
2017-05-23 Eric Wang
我的图书馆时光 姓名:codepub      学号:13721035      学院:计算机工程与科学学院 一、入馆记录 2013年—2016年4月,一共到馆205次,第一次走进宝山校区图书馆是在2013年9月6日10时21分22秒。 13级硕士生平均入馆138.52次,我的次数是205次,我的入馆次数是平均次数的1.48倍。 二、选座记录 2013年—2013年10月,一共预约座位4次,第一次预约的是本部图书馆的二楼综合阅览(东区)的141号座位,时间在2013年9月6日10时23分1秒。 三、上机记录 您无上机记录。 四、借还记录 2013年—2015年10月,一共借还图书69本,我第一次借还的书籍是《语 继续阅读 »
2017-05-12 Eric Wang
在用最基本的JDBC拉取数据的时候,由于拉取的是海量数据,所以程序跑了一段时间之后报java.lang.OutOfMemoryError: Java heap space,这个错误很简单,也很好解决,网上一搜一大把,只需要设置ResultSet获取数据模式为row-by-row,但是总结多数的解决方案是如下两种: ① 以PreparedStatement为例,需要设置四个参数 java preparedStatement = connection.prepareStatement(formatSql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); prepared 继续阅读 »
2017-05-09 Eric Wang
Maven预设变量 使用过Maven的人应该都知道,我们在Maven项目中添加依赖的一般性做法。就是打开pom.xml文件,在节点下添加 xml org.apache.lucene lucene-core 5.5.0 包含坐标和版本号的内容,那么在Java类文件中,就可以引用Lucene包中的各种类了。但是要注意一点,这里面的版本号是以硬编码的形式存在,作为一个合格的软件开发者,要尽量在你的代码中避免硬编码的情况。为什么呢?比如我需要依赖其它的Lucene模块,那么pom.xml中添加内容如下: xml org.apache.lucene lucene-analyzers-commo 继续阅读 »
2017-05-06 Eric Wang
一不小心,追了一个剧《人民的名义》,随着剧情一点一点地推进,突然开始很心疼,心疼的不是别人,也不是剧中的人物,因为那毕竟是虚构的,不是真实的人生,而是我们自己,这才是真真实实的生活与生命。看了剧中的情节,真是大开眼界,不论是祁同伟的一人得道,鸡犬升天,还是赵瑞龙的草菅人命亦或是丁义珍在饭局上左右逢源,逢场作戏,近似人生赢家。甚至一个处级干部赵德汉,都能狂贪几个亿,要知道,除了国家级领导人,下面就是部司厅局处科,小小一个处级干部,都能贪污几个亿?你知道天朝有多少处级干部吗?呵呵,我还真查了下,毛爷爷说,没有调查就没有发言权,参考链接在这里,处级干部约60万,一个人一亿的话,不敢想象,当然了,不能这么悲观,要相信党相信政府,我还是有这觉 继续阅读 »