0.前言 距离上一次分析算法已经过去好几年了- -以我的算法水平其实是很讨厌分析算法的,一个是想写明白耗时很长,一个是说人话很啰嗦。但是写代码或公式又大部分人很难理解。今天要分析的算法是字符串相似度,Levenshtein距离 形式化描述:给定字符串strA,strB,求解dist(strA,strB)的值,dist为Levenshtein距离 说人话:两个字符串,编辑几次能变得完全一样,编辑允许的操作(插入,删除,替换字符) 0.定理/公理,人人都能看懂的情况 字符串基本操作: 连接 下文用+代表 删除字符 下文用 删除strA[0]表示 增加字符 下文用 str[x]=’ ...
CAS对接的坑,一个字母引发的惨案
有两个类定义如下 package org.apereo.cas.services public abstract class AbstractRegisteredServiceAttributeReleasePolicy implements RegisteredServiceAttributeReleasePolicy { 012 package org.apereo.cas.servicespublic abstract class AbstractRegisteredServiceAttributeReleasePolicy implements RegisteredServiceAttributeReleasePolicy { package org.apereo.cas.ws.idp.services; pu ...
调试方法总结
简介 可能是目前为止最全的调试指南 前言 在编程开发的过程中总会遇到一些迷人的BUG,最近几个人来找我帮忙DEBUG,都是很难通过搜索引擎解决的问题。最后发现都是很神奇的错误,于是决定写一篇文章好好来聊一聊如何DEBUG。 0 整体思路 总的来说,问题的本质是预期结果A与实际结果B不符。这个时候就要DEBUG了,下文将以本人DEBUG的经验说一说DEBUG的原则,以及从不同的平台来聊一聊如何DEBUG。 调试条件: – 有预期结果 – 结果可观测 (注意一些薛定谔的结果,试图观测可能会破坏原有状态) 基本方法: – 控 ...
spring jmstemplate的坑
jmstemplate 发送文本消息的写法 第一种手动构造msg的话不需要做特殊处理,但是很麻烦 Java private void sendMessage(String msg) { jmsTemplate.send(new ActiveMQQueue(someQueueName), new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { return session.createTextMessage(msg); } }); } 012345678 &n ...
MongoDB基础
https://www.mongodb.com/presentations/webinar-back-to-basics-thinking-in-documents?utm_campaign=T5_V3_DEV_ZH_E1_Schema_Design_A&utm_medium=email&utm_source=Eloqua
https://www.slideshare.net/mongodb/webinar-back-to-basics-thinking-in-documents
[slideshare id=52598563&doc=thinkingindocuments1-150909190439-lva1-app6891]
apache反向代理tomcat获取用户真实IP
校内CAS单点登录的审计日志中,用户的IP地址一直是服务器地址。这个问题拖了好久,今天终于解决了。 通过追查日志的来源,发现是自己实现了一个appender配置在了log4j中。 从这个类入手开始追查代码,最终发现IP的来源是通过request.getRemoteAddr这个方法来获得的。 而这个方法是来源于tomcat自身的servlet-api提供,返回的向tomcat发起请求的客户端IP。 但是一般情况下tomcat都会用nginx或apache代理tomcat,所以这个方法得到的IP就是服务器自身的IP而不是真实的远程IP了 而我又不想更改CAS的源码重新部署,所以只能想办法更改tomca ...
解决IDEA控制台乱码问题
今天做实验,迷之乱码。项目结构:Spring+Mybaits,同时用了log4j。但是tomcat控制台总是乱码。 项目编码、文件本身编码都是UTF8,我之前使用IDEA也没出现过类似问题,这次却耽误了我好长时间= = 把IDEA编译的class文件反编译,发现已经是乱码了,所以给javac附加UTF-8参数,之后依然乱码。 网上有人在运行tomcat时候传入UTF-8我也试了,依然不行。log4j也设置了UTF-8。 经过实验,发现有一次控制台是乱码但是输出的日志文件不是乱码,才把注意力转向了IDEA自身 最后发现居然是IDEA自身编码没改,解决方案如下 打开IDEA安装目录找到id ...