自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

^_^

LFF's Blog

  • 博客(63)
  • 资源 (6)
  • 收藏
  • 关注

原创 LogStash查不到记录的问题

如题。折腾了半天发现这个问题是这样产生的:LogStash自动创建了索引,字段类型是text(没做映射,默认的),同时自动创建了字段名.keyword的字段,类型为keyword。当然这没什么问题。但是默认的长度,它设置成了256。而这个字段的数据,是超过256的,结果就是.keyword压根就没东西。修改logstash的template,重新灌入数据,搞定。...

2018-09-27 09:59:24 711

原创 JDK11,Fix SpringBoot 2.0.3 启动的异常

其实没啥特别的,因为JDK11移除了一部分JavaEE的东西, 所以Class找不到了在pom里面加上就行了 <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> ...

2018-09-26 10:42:16 1490

原创 React/Redux和UglifyJS的一个奇怪的问题

使用React/Redux开发。在本地调试的时候一切正常。但是使用UglifyJS的时候,发现点击按钮的事件响应不对。本来应该调用按钮1的事件,结果调用了按钮2。仔细分析,事件触发是通过Redux的createAction来的:createAction(‘ACTION_1’, (param1, param2) => {param1, param2})) // 本来应该是这里 ...

2018-07-18 10:55:11 363

原创 puppeteer,解决无法选择父元素的兄弟元素的问题

页面原型如下,是一个下拉框组件,无关的CSS样式之类的省略了。<div> <div> <input name='x'> </div> <div> <div>Item1</div> <div>Item2&l

2018-04-13 12:15:20 3889

原创 发布Jacoco的结果到Confluence上

大概的流程是用Jenkins调用Maven,在Maven里面用Jacoco测试覆盖率。Jacoco的报告文件是本地的CSV文件。但是这样不太好看,还要去Jeknins Server上把CSV拉下来。后来测试了下,可以把CSV直接发布到Confluence里面,这样就方便了。在Confluence里面直接写CSV很简单,就是通过CSV宏{CSV}HEAD1,HEAD21,23,4{CSV}要...

2018-04-02 11:35:11 332

原创 大数据量的MongoDB快速删除数据

一个Document,里面有2亿条数据。使用Java Driver。原来的方法是 DBObject query = new BasicDBObject(); query.put("valuedatetime", new BasicDBObject("$lte", end) .append("$gte",

2017-12-06 17:21:13 14020 1

原创 写了一段代码检测jpg,gif,png的实际类型

项目中有一些图片,在IE里面没法正确显示。Chrome等没问题。经检查,发现这个图片的扩展名是.jpg,但是实际上是个png。。。。。。把文件保存成正确的.jpg就没问题了。为了解决这个问题写了段代码检测所有的jpg, png, gif文件内容和扩展名是否一致(检测文件头)public class PNGJPGTest { public static void main(String[] a

2017-12-06 17:10:26 628 1

原创 Java处理生僻字的问题

前几天遇到了生僻字的问题。很有意思。在不同的平台上显示的字符不一样,有些是方块有些是?有些干脆就是一个表情图标。 检查了编码没有问题,是UTF-8。研究了一下最终发现了原因。 出错的字符,落到了UNICODE的私人造字区里面,参考如下。 http://jicheng.tw/hanzi/unicode.html 不同的系统/字体,不能保证私人造字区的一致性。 自己写了段测试代码,发现目前Un

2017-12-05 10:56:29 18182

原创 SimpleDateFormat的坑

问题是一个错误的日期,没有得到正确的ParseException.查了下发现SimpleDateFormat有个方法,是指定是否参与计算的。比如13/01/2017 , MM/dd/yyyy来格式化,本来应该是错误的,因为月份是13了。但是因为指定了这个参数,结果参与计算,就没有得到异常而是得到了01/01/2018这个日期。代码如下:String s =

2017-11-02 10:46:27 879

原创 使用Chisel来突破公司代理服务器的封锁

环境很简单,内网的机器不能直接上外网,必须通过代理服务器。代理服务器设置了各种规则,封了外网的各种邮箱,等等。为了突破封锁,试验了各种方法,最终发现比较好的方法,记录如下。# 首先尝试XXXAgent, XXXProxy因为代理服务器可以访问Google,自然而然想到了这个,因为他们都是基于GAE的。但是部分网站的证书总是有些问题。当然大部分网站是没有问题的。# 接着尝试了Chisel

2017-09-29 16:55:06 3646

原创 优化Java调用Nashorn引擎的性能

之前的项目里面大量使用了Nashorn引擎,目的是很多需要动态执行的代码放到了JavaScript里面,这样在用户那边比较好调试。但是因为性能的问题遇到了几个坑,最后经过一段时间,最终解决了,形成了这篇文章。使用预编译JS来加速在实际的应用中,基本上JS是不变的,变的只是调用的参数。于是乎可以通过预编辑,来进行加速。这样可以省略每次编译的耗时。代码如下。String scrip

2017-09-29 09:53:44 10706 5

原创 一不小心搞出来的空指针

没啥说的,看代码 String r = .....; String n = "Result: " + r == null ? "" : r.toString();嘿嘿。是运算符顺序的问题。上面的代码等价于("Result: " + r == null)? : "" : r.toString();

2017-08-23 09:38:38 191

原创 Oracle JDBC驱动, Tomcat连接池的坑

之前开发过程中遇到脏数据的问题.经过一段时间的分析,结果如下:1. 应用通过Tomcat JDBC Pool获得一个数据库连接;2. 通过这个连接执行了一些Insert, Update之类;3. 之后的业务代码,执行了一个时间比较长的查询;4. Tomcat JDBC Pool 认为这个连接使用的时间过长, 没有在配置的时间内把这个连接close, 所以自动回收并Close了这个连

2017-04-25 21:16:40 4650

原创 使用JDK的ServiceAbility获得特定的对象

遇到这样一个问题: Java程序中有很多个HashSet. 想找到其元素数目不正常的HashSet的实例. 当然这个可以用各种工具来做(比如JProfiler等等).这里用的是JDK自带的ServiceAbility Agent.具体介绍可以参见http://rednaxelafx.iteye.com/blog/1847971首先写个简单的测试程序:

2017-04-10 22:19:47 445

原创 问题: 一个数组长度为n, 求出其最小的k个元素并从小到大输出

遇到这样一个问题: 一个数组长度为n, 求出其最小的k个元素.想到三种解决方法:1. 最简单的, 给数组排个序, 然后把前面k个元素输出, OK.优点是简单明了. 缺点是做了很多额外的工作: k个元素后面的没有必要.2. 比上面好一些, 就是使用一个堆, 或者排序树. 首先把数组中前k个元素插入这个堆(或者排序二叉树中). 然后, 对后面所有的元素,    a. 讲这个元素插入

2017-04-07 23:18:00 1381

原创 一个奇怪的Exception

环境大概是,jdk8 + tomcat8,为了进行强加密,使用了bouncycastle的库。但是在启动的时候总报告一个错误 : must be passed recipient's private EC key for decryption查了半天发现代码没有问题,于是下载了bouncycastle的源代码,跟踪进bouncycastle发现错误出在一个instance of的判

2016-05-29 11:00:19 545

转载 一个帮助编辑,测试Cron表达式的网站

用来协助测试*nix下计划任务脚本,和Quartz配置文件里面的CronExpressionhttp://www.cronmaker.com/很方便。

2016-05-22 15:44:52 2096

原创 计算行列式的值

遇到一个问题,就是计算方块矩阵的行列式值。在网上找了一些现成的,但是问题是太慢了,原因是这些现成的都是依据行列式值定义来进行计算的。没办法自己按照书上的比较快速的计算方法写了个程序,如下。基本原理就是变成上三角为0的来进行计算。代码如下:#include "stdafx.h"#include "stdio.h"#include "stdlib.h"#include "ma

2016-05-08 10:14:30 2957

原创 解决Tomcat jspc的异常 Syntax error on token "<", ? expected after this token

在客户那边遇到这样的问题:An error occurred at line: [30] in the generated java file: [/usr/local/SharpView/work/Catalina/localhost/ROOT/org/apache/jsp/jsp/login_jsp.java]Type mismatch: cannot convert from Has

2016-02-24 17:27:16 4493

原创 解决Unable to locate Spring NamespaceHandler for XML schema namespace

今天把Spring Security升级到3.2.9,然后报了这个错误。后来经检查相应的配置文件放在了spring-security-config-3.2.9.RELEASE.jar这个包里面,具体的位置就是META-INF/spring.schemas这个文本文件。把这个jar加入项目的classpath,解决。

2015-12-15 12:08:14 7321 1

原创 Fix 使用JMX读取Weblogic性能信息的时候报

如题。环境是一台Weblogic Server 10.3.6.0。在另一台机器上通过JMX来获取这台weblogic server的性能信息,比如可用堆内存之类。由于并发量比较大,偶尔会出现异常java.lang.IllegalStateException: Cannot register two instances of WorkContextAccessControllerat w

2015-12-09 15:02:56 1202

原创 Java中Mongo Aggregate 的$match的写法

环境: MongoDB 3.0, Java Driver 3.0 一般的查询(find()) ,用的查询条件是Filter等相关的工具类。但是这个在aggregate中的$match行不通,会报错(codec not found for Filter.and)经过试验,发现要用如下的方法: List l = new ArrayList();

2015-12-09 12:17:21 6099

原创 快速计算乘方的算法

其实很简单,原理就是两部:1. 把乘方数,转换为以2为基底的一个乘方数;2. 把多个数相乘,转换为自乘,来快速升高幂次数。利用的公式和例子如下。要证明最上面的公式也比较简单,等式两边取对数就很简单就能证明了。

2015-12-06 10:06:20 15143

原创 用多线程并发的方式来计算两个矩阵的乘法

要求很简单,计算两个矩阵的乘法。为了加速,这里面使用了pthread库,来并发计算。基本思路如下图。比如用两个线程来计算。矩阵A * B。那么就把A分成两份。比如下图,就是0,2,4和1,3,5这两份。在线程1中计算第0,2,4行和B个列的乘积,在线程2中计算1,3,5行和B各个列的乘积。思路很简单。最后代码如下:// pthread.cpp : Defines the

2015-12-04 11:18:18 12588 2

原创 jQuery的i18n插件的一个限制

jQuery的i18n插件,作者是Nuno Fernandes和Matthew Lohbihler,提供了比较好的在JS中国际化的功能。近来在使用这个插件的时候发现了一个限制,如果不注意会引发js 的 error (可以在浏览器的console中看到)。具体为:如果一个资源的定义,为foo.bar = This is a message然后又有一个资源的定义,和上面的嵌套了:

2015-11-29 10:56:29 1758

原创 在虚拟机里部署ROS来拨号上网

公司以前的设备是个Cisco路由器,连接中兴的光猫拨号上网。进来发现Cisco路由器每天经常重启。可能是年头久了不行了。又不想花钱。于是就用ESXI里的虚拟化的ROS来当路由器,效果还不错。步骤如下。1. 首先确定ESXI的服务器是双网卡的。单网卡好像不行。2. 在ESXI里面进行网络配置,创建一个虚拟交换机。将所有的正常使用的虚拟机配置到一个虚拟交换机中, 该虚拟交换机连接一个真

2015-11-29 10:51:45 4384

原创 MongoDB中的一个分组统计的查询(Group ... Distinct)

数据很简单,如下:> db.t2.find();{ "country" : "china", "province" : "sh", "userid" : "a" }{  "country" : "china", "province" : "sh", "userid" : "b" }{  "country" : "china", "province" : "sh", "userid"

2015-11-25 11:51:06 58749 7

原创 用树莓派来操控一个四位数码管

从TB买了个四位数码管。驱动是两个74HC755。代码如下。基本原理为:动态扫描,也就是一次点亮一个数码管,熄灭其它的,然后点亮下一个,熄灭其它的,以此往复。由于人眼镜的视觉暂留效应,看起来就像一直在点亮一样。四个数码管,数据输入ABCDEFGH连接到一个74HC755的八个输出输出口上。然后四个数码管的阳极通过三极管分别连接到另一个755的四个数据输出口上(另外四个没有使用)。当

2015-11-10 11:36:14 5047

原创 Pi4j的一个Performance的Bug

在玩树莓派的时候写了个程序,用来动态控制4位数码管。但是遇到了一个问题,就是数码管的刷新频率太慢,结果就是闪烁。于是写了一篇测试程序,最后结果是,用Java + Pi4j,大概每秒钟可以把GPIO置高置低1400次左右。这也太慢了。网上有一篇文章,http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/

2015-11-09 16:27:22 1227

原创 使用Embedded Tomcat 和 Resteasy 来发布一个 Restful Service

需求是比较简便的发布,不需要配置文件。于是就像到了Embedded Tomcat。代码如下:public class TomcatLauncher { public static void main(String[] args) throws Exception { Path path = Files.createTempDirectory("webapps");

2015-11-09 16:11:31 1619

原创 Load JDBC Driver引起的死锁

在初始化JDBC Connection Pool的时候出现了死锁。 经分析,该死锁出现的前提为:1. Load 不同的JDBC Driver;2. 要在不同的Thread中。代码如下:public class PoolTest { public static void main(String[] args) throws Exception { boolean dea

2015-11-06 12:11:03 1079

原创 Proteus 8.3 sp2闪退的一种解决方法

如题。安装之后总是用一会就退出。后来经过研究,发现问题如下:1. 在安装之后,破解的过程中,显示几个文件没有找到(图片中的那些MODELS\下面的DLL)这个时候,其实是可以运行的,但是我就发现了闪退的问题。用WinDBG载入,发现退出的原因,是AVR.DLL模块raise了一个AV Exception。后来发现这个AVR.DLL的位置,是在c:\ProgramData

2015-10-31 12:45:50 27290 6

原创 使用椭圆曲线进行加密解密

JDK中自带了椭圆曲线的签名,但是没有实现椭圆曲线的加密解密。不过bouncycastle库实现了,下面的代码需要bouncycastle库。需要做的准备工作:1. 去JDK的下载页面,下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE 8这个东西。

2015-10-29 16:10:25 10699 2

原创 在ESXI的虚拟机里,搭建Android开发环境和模拟器,一波三折

环境为ESXI6.0,虚拟机为Server 2008R2 X64遇到的问题,以及解决方案,如下。1. 需要Intel HAWM,但是安装失败了。原因是虚拟机的虚拟化配置没有打开。解决方法:编辑ESXI服务器上的 vi /etc/vmware/config 加入一行 vhv.enable = "TRUE" (最后一行)libdir = "/usr/lib/vmware"authd.p

2015-10-09 16:13:05 12706

原创 一次Java内存泄漏的分析

测试服务器,跑了一夜之后,java.exe占用了大量内存(将近5GB),系统内存占用97%。使用jconsole连接到该进程,发现一下的现象:1. Heap内存占用比较正常,不到2个G。非Heap内存不正常,大概3个G。2. 系统的线程数正常(500个左右)。3. 可以断定问题处在非Heap内存。进一步分析。查看Class页面。发现有一百多万个!!!类被加载。而且数目还在不断升

2015-09-15 17:31:29 1841

原创 发现国内不少邮箱,登录之后都没有使用https

如题。测试了QQ邮箱,163邮箱,都是如此。仅仅在登录的时候使用了https。登陆成功后,邮箱内部,是没有https的。也就意味着,随便用个抓包工具,就能够抓到右键的内容。无语啊。。。。。。。不知道是不是故意的

2015-06-25 10:00:33 843

原创 在访问OneDrive的时候,发现证书被替换成了一个自签署的证书

替换后的证书如下:挂上tunnel,正确的证书如下:懂https的就会懂了,这是谁干的,想要干什么。

2015-05-20 11:55:11 1474

原创 用Java加载Mathematica做面部识别

版本信息:JDK8 + Mathematica 10.0比较简单。Java加载Jlink库,调用Math Kernel的FindFaces函数。具体如下:1. JLink.jar加入classpath中;2. JVM运行参数中,加入-Djava.library.path="D:\Program Files\Wolfram Research\Mathematica\10.0\System

2015-04-27 17:42:27 1993 1

原创 在Linux上用wget把tail输出的东西提交到其它服务器上

用户的需求。主要目的是判断Linux服务器上的日志文件中是否出现了某个关键字(比如XXX错误)。本来如果可以在上面装东西,就很简单了,用Java写一个。但是用户不喜欢在 服务器上装第三方的东西,只能接受使用Linux自带的工具。于是看了下,发现tail结合awk,wget可以实现。最后结果是tail -f /tmp/1.log | awk '{ system("wget -q

2015-03-16 11:27:35 1324

原创 RaphaelJS 的反锯齿设置

一些Raphael的函数,比如rect,默认会做反锯齿,结果就是边缘模糊,特别是那些比较小的Raphael组件。经查询可以通过下面的方式禁用:var paper = new Raphael(...)if (Raphael.svg) { paper.setViewBox(0.5, 0.5, paper.width, paper.height);}这样就好看多了。

2015-03-15 17:24:43 972

SecureCRT 8.1.0 Build 1294

最新的SecureCRT 8.1.0 for X64。注册破解可以用老版本的keygen.

2017-03-02

Java Service Wrapper 3.5.25 标准版破解

已经破解,应该没啥问题。example的输出为 D:\Develope\wrapper\wrapper-windows-x86-64-3.5.25-st\bin>wrapper.exe -c ..\conf\ wrapper.conf wrapper | --> Wrapper Started as Console wrapper | Checking License Key: wrapper | wrapper.license.type=TIME wrapper | wrapper.license.id=201306250012 wrapper | wrapper.license.licensee=Tanuki Software, Ltd. wrapper | wrapper.license.run_time=999999999 wrapper | wrapper.license.features=pro, 64bit wrapper | wrapper.license.upgrade_term.begin_date=2010-06-10 wrapper | wrapper.license.upgrade_term.end_date=2014-06-25 wrapper | wrapper.license.key.1=baed-9dbf-b70b-665d wrapper | wrapper.license.key.2=4502-0922-7776-f6c7 wrapper | wrapper.license.key.3=658b-5ee4-47e4-7459 wrapper | wrapper.license.key.4=8f28-61ff-fba8-40b9 wrapper | Java Service Wrapper Standard Edition 64-bit 3.5.25 wrapper | Copyright (C) 1999-2014 Tanuki Software, Ltd. All Rights Reserved. wrapper | http://wrapper.tanukisoftware.com wrapper | Licensed to Tanuki Software, Ltd. for (null) wrapper | wrapper | Launching a JVM... jvm 1 | WrapperManager: Initializing... jvm 1 | TestWrapper: Initializing... jvm 1 | TestWrapper: start() jvm 1 | TestWrapper: An action was not specified. Default to "dialog". Use "help" for list of actions. jvm 1 | TestWrapper: ActionServer Enabled. jvm 1 | TestWrapper: Telnet localhost 9999 jvm 1 | TestWrapper: Commands: jvm 1 | TestWrapper: S: Shutdown jvm 1 | TestWrapper: H: Expected Halt jvm 1 | TestWrapper: R: Restart jvm 1 | TestWrapper: D: Thread Dump jvm 1 | TestWrapper: U: Unexpected Halt (Simulate crash)

2015-04-20

Resin Pro 4.0.42 破解文件

最新的4.0.42的破解。替换lib下同名文件即可。需要JDK6+

2015-02-22

pdnsd 1.2.9a win32_cygwin

Linux的DNS工具pdnsd的Windows版(32位,使用Cygwin编译)。作用是使用TCP来查询指定的域名而不是UDP(方斌X的那个东西,目前为止只能污染UDP),同时进行缓存,提高效率。 运行方式是 1. 创建一个缓存目录,比如c:\\temp 2. 在pdnsd.conf里修改 cache_dir="c:\\temp"; 保存。 然后运行pdhsd -c pdhsd.conf,在网络设置里面指定DNS服务器为127.0.0.1

2014-11-07

JGoodies Look and Feel

Free的JGoodies Look and Feel. 不知道为啥它的网站从国内访问不了(www.jgoodies.com)

2009-03-09

空空如也

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

TA关注的人

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