- 博客(107)
- 资源 (10)
- 收藏
- 关注
原创 正则表达式在工作中的应用
正则表达式是字符串匹配、替换和提取时经常用到的一种技术,但由于它的语法晦涩(尤其像上面对比较复杂的场景时),初学者不容易读,更不容易写,所以并不是所有人都熟悉它的用法。现在网络上已经有很多正则表达式的教程了,这里不打算照抄一遍,而是换一个角度,从实用的场景出发,来介绍正则表达式的用法。
2022-09-27 23:09:06
1479
1
原创 基于MySQL的实时日志分析
最近公司要求对公共平台的接口,进行监控。对于用户敏感信息、用户登录信息,以及用户其他的附属信息的访问,做实时统计,例如敏感信息,按每小时统计访问了多少用户的敏感信息;ip访问敏感信息量TopN排行等。 数据来源于项目打印的debug日志,这些日志是由核心框架打印的标准日志,其中大概包含了原始ip,当前用户id与类型,访问接口的客户端,访问时间,接口入参等信息。 日志采用flume收集,并放入kafka中。 我们的系统接入kafka,消息日志数据。 刚开始定方案时,是将...
2020-06-14 16:41:31
585
原创 高效管理之团队梯度建设
经常听人讲,我们要建设高效的团队,如何提高团队的执行效率等等,空谈效率没有意义,这篇文章结合作者自身的经历,谈谈梯度团队是什么样子的,为什么一个有梯度的团队是高效的,以及在管理中如何建设这样的团队。梯度团队介绍 下图是我经历的一家中型互联网公司的技术团队组织架构图,展现了在我离开这家公司之前的一个组织状态,首先介绍一下这个图的含义。这个图分成两大块,事业部和基础研发部。事业部就指的一个相对独立的业务线,不同的业务线之间有较大的差异,在业务上没有关联和延续。而基础研发部,是指的...
2020-05-18 20:03:21
7544
转载 基层管理者必备的能力和素质
基层管理的核心是基层管理者基层管理区别于中层管理和高层管理的特点是以执行为主基层管理者的自身角色可以体现在学习者、模范者、建设者和培训者四种身份上基层管理者官不大,责任却一点也不小。所以,并不是谁都可以当基层管理者的。一名优秀的基层管理者必须具备有相当的能力与素质,这样才能管好团队,为企业效力。专业能力基层管理者日常管理工作的重点集中在一线管理与操作上,其是否具有专业技术方面的能力至关重要。基层管理者只有成为业务尖子、行家里手,在管理下属员工时才具有较高的权威性。因此,...
2020-05-18 20:02:37
1238
原创 基层管理者的第一步——从“我”变成“我们”
1、基层管理者的优势基层的管理者,往往不是技术有一定的造诣,就是经验非常丰富,或者业务非常娴熟。总之都是在专业方面表现出色的人。另外基层管理者不用像高层管理者那样,要做一些重大的决策,因此风险相对较少;基层管理者处于管理层的最下层,是衔接管理层与普通职工非常重要的一环,起到了承上启下,意识传达的作用,而且处于战斗的最前沿,是最容易拉近与普通职工关系,最容易取得普通职工信任的人。2、基层管理者的劣势优势用不好,或者使用过度,就有可能成为劣势。正因为基层管理者是职场中的佼佼者,技能过...
2020-05-18 20:01:15
779
原创 技术团队常见的管理困惑与误区
1、如何与下属沟通从开发上来的基层管理者,由于长期面对电脑,因此不免缺乏沟通技巧,不知道下属有什么需求,他为什么不积极工作,为什么想要脱离团队……遇到这样的问题后,那真是一头雾水啊,有时感觉这个员工表现不稳定了,但怎么确认下自己的猜测呢?怎么去和他沟通?沟通要说些什么?怎么开始?这些问题,没有人能教你怎么做,即使有时和同行朋友交流,交谈的一切的经验之谈,你也会发现那些偏门偏方,主观因素偏多,而且信息相当零散。你最终还是不知道如何去做。2、高级工程师不需要培养每当...
2020-05-18 20:00:18
1319
原创 项目经理的管理心得
在我工作第4年的时候,我接触到了项目经理这个角色,至今带项目已经有4年多的经验了,现在总结下来: 一个项目的流程经常是这样的:产品小组内部沟通讨论一个idea;产品经理与技术小组leader探讨该idea的技术可行性;产品经理将idea转化为产品,编写产品文档、原型设计并交付UI部门进行UI设计;产品讲解会,小组leader指定开发负责人,测试负责人;然后是技术设计、开发、联调、测试、上线,产品经理验收。如果有条件,技术人员要尽可能早的参与到产品的设计中去。因为有些产品的提出,可能有千...
2020-05-18 19:59:23
416
原创 在Y公司的管理心得
我17年入职Y公司后,开始了“真正意义的”管理工作。为什么说是“真正意义的”呢?因为之前在L公司的时候,也做了一部分管理,但主要做项目的管理,带着几个人,十几个人,甚至横跨若干部门的若干人做一个项目,这其中有开发、测试、前端、产品或运营等等,所以总体来说,这并不是真正意义的管理。而由于我沟通能力不错,也几乎没有遇到特别大的障碍。但到了Y公司后,真正给了我几个人,组成一个小组,并有组员向我汇报时,这期间却经历了各种各样管理人方面棘手的问题,也总结了一套自己的经验。 因为我之前所在的L公司,是...
2020-05-18 19:58:33
255
原创 图片识别——需求篇
最近由于工作的关系,学习了一些关于图片识别的知识,并成功用于解决实际问题当中,特此一一记录下来,以备后用,同时希望对大家有用。场景 企业端用户在注册时,会上传一下公司的Logo。上传的步骤是:选择本地Logo图片,点上传,图片被上传至公司图片服务器(此时这张图片有了一个id:id_a);由于用户的图片尺寸不一定适合网页的展示,因此要用户做一下截取并保存(此时这张图片有了新的id:id_b),图片服务器会根据这张图片,缩略为大中小等多个长图以适用不同场景的页面展示使用。数据库里把id_b...
2020-05-18 19:50:50
2182
原创 汉明距离——提高海量查询性能的方法
在前面讨论的三种图片识别的哈希算法,最后都是通过比较哈希的相似度,即汉明距离实现的。虽然比较两个hash值的汉明距离非常快,但受不住数据的爆发式增长,在海量的数据中找出两个相似的hash值,性能也会慢慢变差,显然这种最基本的顺序查找,无法扩展到数以亿计的数据中。 在图片的识别中,汉明距离在0~10之间认为是相似的。如果采用顺序查找,查询完的次数为1万次。算法原理 如果把hash值分成11份,那么两个hash值相同,则必有一块区域是完全相同的。这个分法不太科学,我们可以把has...
2020-05-18 19:49:33
435
原创 图片识别——汉明距离
汉明距离是以理查德·卫斯里·汉明的名字命名的。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。 例如: 1011101 与 1001001 之间的汉明距离是 2。 2143896 与 2233796 之间的汉明距离是 3。 "toned" 与 "roses" 之间的汉明距离是 3。 汉明重量是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符...
2020-05-18 19:48:38
1193
原创 图片识别——三种哈希算法性能与准确度比较
前面几篇文章对图片的三种哈希算法做了简单的介绍:均值哈希算法,感知哈希算法,差异哈希算法。本篇将对上面算法做一个总结。并对在性能方面做些对比。性能和准确度 目前有个超过150,000张图片的实验,有几张已知出现次数的待查找测试图片。比如一张图片(针)在150,000张图片(草堆)中出现一次,另外一张出现两次,第三张测试图片出现了32次。 分别使用aHash、pHash、dHash三种算法在这一“草堆”查找一只“针”。为了作比较,没有预先缓存图片库中的任何哈希值。比较值(汉明距离...
2020-05-18 19:47:35
3109
原创 图片识别——差异哈希算法
差异哈希算法(Different Hash Algorithms,dHash),像aHash和pHash一样,dHash易于实现,相比于它的简单,其实它的识别更为准确。作为一种感知算法的实现,dHash比aHash相近,但比aHash效果更好。aHash关注于平均值,pHash关注频率模式,dHash则基于渐变。下面介绍下dHash算法的工作原理。算法步骤缩小尺寸。最快速去掉高频和细节的办法就是缩小民族教育。在这里,收缩到9*8的大小,以便它有72的像素点(之后会解释为什么这样)。通过忽略...
2020-05-18 19:45:27
2031
原创 图片识别——感知哈希算法
所谓感知哈希算法(Perceptual hash algorithm,PHA),它是用于对多种格式的数据生成一个指纹的算法。当然本文只讨论图片格式。感知哈希不同于密码哈希(如md5云云),它对于相似特征的输入,会有相似的输出;而密码哈希,依赖于雪崩效应,对于非常微小的输入,都会有完全不同的输出。感知哈希算法被广泛应用于网络上的侵权查找,还有数字取证,因为它有能力可以发现两个相似的数据(根据比特位对比)。Perceptual hashing - Wikipedia、Looks Like It - Th...
2020-05-18 19:37:44
4209
原创 图片识别——均值哈希算法
均值哈希算法(Average hash algorithm,AHA)第一次是从著名的阮一峰阮老师的博文《相似图片搜索的原理》看到的。而此篇文章与阮老师也很类似Looks Like It - The Hacker Factor Blog。这里不对原谅做摘抄,有兴趣的自己看一下,在此对学习过程中的心得和遇到过的问题做一下总结。 均值哈希算法,是感知哈希算法中最简单的一种,基本原理是对图片降频。对于图片,高频有很多细节,如颜色、亮度、透明度等等,而低频丢弃细节,只有图像结构。算法步骤 ...
2020-05-18 19:34:44
4252
1
原创 震惊!256G的mac磁盘还不够用,竟然是因为它!
在使用自己心爱的mac电脑时,经常会被磁盘空间不足的告警给打断,安装个软件,下载点东西,每每都让人心烦,可是感觉自己的mac本并没有用多长时间啊,到底是什么东西占了这么多空间呢?今天终于让我发现了。...
2020-05-15 22:47:12
4857
原创 狂赞!海量数据迁移方案,免费送给你
一、背景在创业初期,为了快速把项目搭建运行起来,往往不会过多地去考虑系统是否可以支持未来更大的数据吞吐量,所以往往不会分表或分库。可当项目真正运行了一年两年之后,会发现原来的单表已经存储不了更多的数据了,或者查询性能受到影响,此时就要考虑分库或分表了。一般涉及到分库分表,数据迁移是必须要做的一个工作。那么接下来,笔者就以自己亲身实践过的一次数据迁移经验为依据,向大家介绍一下,当数据量过亿时,进行数据迁移,我们要做些什么,有哪些坑(限于保密协议,笔者会对表名及字段名做一定的脱敏,但不妨碍理解)。假
2020-05-09 12:05:30
684
1
翻译 Url Rewrite Filter 3.2.0中文手册
注:本文档基本3.2.0版本。原文请参阅:http://tuckey.org/urlrewrite/manual/3.2/index.html手册 社区支持请访问:urlrewrite谷歌小组。 阅读 使用示例 和 ant任务 报告。如果你有任何找反馈,或者你想分享给大家的配置,可以邮件我们,如果有任何建议和使用示例,请将它们提交到urlrewrite谷歌小组论坛。安装下载zip(或tar.gz)并将解压到你的上下文目录中,比如把urlrewrite.xml放...
2020-05-09 12:05:22
475
原创 Sublime 3114 安装代码格式化插件
在网上介绍安装方法中,大多首先会告诉大家使用ctrl + shift + p ,然后输入install 会弹出install package命令框。但sublime在初始状态,却没有这个选项,岂不是很沮丧?1. 安装Package Control a) 菜单栏中找到 "Preferences" 然后选择 "Browse Packages…"打开了一个文件夹Packages。 b)从..\Sublime Text 2(或者3)\Packages返回到..\Sublime T...
2020-05-09 12:05:13
294
原创 在window中使用linux命令
习惯了linux超爽的命令以后,回到window中,面对简陋的cmd如何忍受得了?下面笔者结合自己的经验,在window下配置linux环境:1 下载并安装CygwinPortable网盘资源Cygwin.下载以后,解压其中的“CygwinPortable一键安装包.7z”。双击CygwinPortable.exe安装。2 配置我把Cygwin安装到d:/software下面了,因此找到linux命令程序所在的bin目录:D:\software\CygwinPortable...
2020-05-09 12:05:05
303
原创 MIME类型完整列表
后缀 媒体类型和子类型 .3dm x-world/x-3dmf .3dmf x-world/x-3dmf .a application/octet-stream .aab application/x-authorware-bin .aam application/x-authorware-map .aas application/x-authorware-seg .abc text/vnd.abc .acgi text/h
2020-05-09 12:04:55
1138
转载 彻底清除Linux centos minerd木马
前几天感觉tomcat服务启动很慢,没太注意,今天一top,竟然发现有个minerd进程把整个cpu都占满了,在网上一查,发现已有前辈遇到这样的问题了,在此转载一下,以供大家参考。原文:http://jingyan.baidu.com/article/b7001fe1bf71ee0e7282dddb.html1 现状描述1.1 现像top可以看到,这个minerd 程序把cpu跑满了1.2 定位进程ps aux | grep minerd可知是这个程序: /opt/miner
2020-05-08 22:54:31
666
原创 记一次SimpleDateFormat出现的线程安全问题
以前只把SimpleDateFormat类当前一个简单的工具类使用,并没有注意它存在的线程安全问题,直到最近在近期一个数据迁移项目中才碰到。我的迁移程序会比较迁移前和后的数据是否一致,在做这个事情的时候,由于之前的数据库中存储的日期使用的14位字符串,即20140502112230,而新库中规范要求使用Timestamp类型,这自然要涉及到日期类型与字符串之间的转化。因为日期格式固定,因此...
2020-05-08 11:33:35
155
翻译 servlet和filter的uri是如何过滤url的?
以下是大家熟悉的servlet配置:<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet </servlet-class></servlet&g...
2020-05-08 11:17:33
776
原创 MySQL执行大量delete后磁盘空间为什么不降反升
在生产环境上,有一个表,记录微信消息推送。发现表大小已经到5.8G了,库总容量是6.4G,占比近91%。非常惊人。 表结构如下:CREATE TABLE `weixin_push_log_test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `openid` char(50) DEFA...
2020-05-08 11:02:50
1595
原创 JavaMail实战——内容解析,如何去除历史内容,只收取本次内容
这个问题不太好描述,因此还原一下场景: 看下面的邮件,这封邮件是对之前一封邮件的回复,因此在内容上就把之前邮件的内容也附加上了,那如果想只取本次邮件内容,该怎么做呢? 笔者在JavaMail API和邮件协议上都没有找到好的解决办法,有对邮件协议深刻了解的同学可以赐教,本文通过对内容分析,结构整理,“总结”出一套解决方案,但方案并不完美。1. 原始内容用bloc...
2020-05-08 08:00:15
1143
1
原创 JavaMail实战——内容解析(包含文本、图片)
邮件内容的解析,包括:发件人 收件人:收件人、抄送人、秘密抄送人 主题 发送时间 接收时间 消息id 消息所在文件夹 消息内容:文本内容和图片,暂时不包含附件import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Unsupp...
2020-05-08 07:59:50
2593
原创 JavaMail详解(十)——应用实战,邮件监听
通过前面的介绍,大家已经对用JavaMail来开发简单的收发邮件应用没有问题了,下面从实际情况出发,看一下笔者经历过的一个邮件项目。背景 现在公司的销售在工作中遇到问题时(可能是技术方面,也可能是产品问题),就会发邮件到公司的支持团队的邮箱中,支持团队在接收到问题邮件后,会给出相应的解答。但这个流程还有一定的问题:销售提出问题以后,不能及时了解到问题的进度 无法排除提相...
2020-05-08 07:59:28
4033
4
原创 JavaMail详解(九)——文件夹管理
到现在为止,前面我们接触的都是INBOX这个文件夹。这是大多数邮件的存在的默认目录。有些系统可能称之为INBOX,而有些可能有其他的名字。但是,通过JavaMail API,你总是可以用INBOX来访问收件箱。 JavaMail API代表文件夹的类是抽象类Folder:public abstract class Folder 该类中声明了一些方法,用以向服务端请求...
2020-05-08 07:58:59
819
原创 JavaMail详解(八)——邮件删除
本节我们看看如何用JavaMail API消息邮件。删除邮件实际上是通过设置邮件的相关标识完成的。不同的消息状态有不同的标识,有些是系统定义的,有些是用户自定义的。预定义的消息标识在类Flags.Flag中,如下:Flags.Flag.ANSWEREDFlags.Flag.DELETEDFlags.Flag.DRAFTFlags.Flag.FLAGGEDFlags.Flag....
2020-05-08 07:58:25
1018
原创 JavaMail详解(七)——邮件转发
本节我们看看如何用JavaMail API转发一个邮件。基本的步骤如下:获取持有POP和SMTP详情属性的Session对象。我们将使用POP详情查询消息,使用SMPT详情发送消息 创建POP3的Store对象并连接到Store 创建Folder对象并打开邮件中的相应文件夹 查询消息 遍历消息,键入Y或y就转发该邮件 获取消息的所有信息(To、From、Subject、Con...
2020-05-08 07:57:51
758
原创 JavaMail详解(六)——邮件回复
本节将学习如何使用JavaMail API回复邮件。基本的步骤包括:获取带有POP和SMTP服务细节属性的会话Session对象。我们将用到POP服务查询邮件,并使用SMTP服务发送邮件。 创建POP3 Store对象并连接。 创建Folder对象并打开邮箱中相应的文件夹 查询消息 遍历消息并将想要回复的邮件设置上Y或y 获取消息的所有信息(如To,From,Subject,...
2020-05-07 16:45:26
795
原创 JavaMail详解(五)——身份验证
前面介绍了邮件的验证和读取,在连接邮件的Store时,我们传递了身份验证证书(用户名和密码)连同host。接下来我配置Properties,通过自定义身份验证实例来调用Session。一下示例通过对CheckingMail修改,使用自定义Authentication类,如下:import java.util.Properties;import javax.mail.Folder;...
2020-05-07 16:44:36
420
原创 JavaMail详解(四)——邮件验证和读取
在学习本节之前,要先了解两个概念:验证(Check)和读取(Fetch)。 在JavaMail中验证邮件,是在打开邮件各个文件夹并获取各个消息的一个过程。这时我们仅仅验证每个邮件消息的头部,如From、To、Subject。而内容不会读取。 在JavaMail中读取邮件,是在打开各个文件夹并获取消息的过程,除了邮件的头部,还会根据识别的邮件类型来读取邮件内容。 ...
2020-05-07 16:42:22
1007
2
原创 JavaMail详解(三)——发送邮件
现在我们已经对JavaMail API和核心类都有了初步的了解,现在来写一个简单的程序发送简单的邮件、带附件的邮件、HTML内容的邮件和内嵌图片的邮件。 上面所有场景都有下面的相同的基本步骤:获得Session对象 组装消息 发送消息发送简单邮件 SendEmail.javaimport java.util.Properties;import jav...
2020-05-07 16:41:15
447
原创 JavaMail详解(二)——API简介
官网:https://java.net/projects/javamail/pages/Home1. API简介 JavaMail API提供了一个独立于平台和协议的框架,用来构建邮件和消息应用。JavaMail API提供了一个包含邮件系统的抽象定义的类集。它是个用来阅读、组建和发送电子邮件的可选包(标准扩展)。 JavaMail提供了用于构建消息系统的接口的元素,包含了...
2020-05-07 16:39:52
522
原创 Session的隐式创建和销毁流程
上文通过源码,分析了session显式创建和销毁的流程,但有些时候,我们并没有亲自去创建session,但不代表它不存在,笔者将这种情况,称之为隐式创建和销毁。一、创建流程 这里介绍session隐式创建的一种情况,即jsp的执行过程。由于jsp内置9个对象,其中就有session,在不禁用session的情况下(<%@page session="false"%>...
2020-05-07 12:08:51
504
原创 Session的显式创建和销毁流程
Session的创建分为隐式创建和显式创建,隐式创建对开发者是透明的,我们不关心它的什么时候创建,什么时候销毁,也不知道他是如何使用的。但是显示创建却需要我们自己去维护它的生命周期。这很类似于Java的GC之于C语言的malloc和free。相似的,销毁也有显式销毁和隐式销毁之分。一、创建流程 Servlet的API给我们提供了两个接口,用以创建session。/** * R...
2020-05-07 11:52:38
767
原创 JVM的FullGC优化实战(二)
上一篇文章,分析了导致GC的原因:内存中持有了大量的session。当时查代码比较粗心,竟没有看到一些显式使用session的地方。业务是这样的:在请求到来时,根据用户请求信息(如ip),获取用户所在地区,然后将该dp信息放到session中,后面Controller直接拿来使用,不必在进行判断。 先看地区Filter:public class DqFilter implement...
2020-05-07 11:42:51
272
批量更新工程文件
2012-11-15
radius的TinyRadius实现
2011-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人