SLF4J源码分析(二)——SLF4J 绑定实现原理

总的入口就是这句 LoggerFactory.getLogger(Main.class),我们从这里入手。

SLF4J源码分析(一)

介绍

SLF4J(Simple Logging Facade for Java)是一个简单的日志门面框架,它允许应用程序使用单一的 API 进行日志记录,而不用关心具体的日志实现。SLF4J 提供了一个简单的抽象层,可以在运行时绑定到不同的日志框架,比如 logback、log4j 等。

【翻译】PDF中的数字签名[3]

原文:Digital Signatures in a PDF

三、PDF语言签名功能

1. 标准支持

PDF本身是一个开放的ISO标准。ISO 32000对PDF中的数字签名支持进行了全面描述,Adobe在其开放SDK中提供了与PDF和Acrobat系列产品api交互的工具。但是,PDF中也内置了对其他标准的支持,像Acrobat和Adobe Reader这样的PDF阅读器应该遵守表2(注:见原文第五部分)中列出的标准。

【翻译】PDF中的数字签名[2]

原文:Digital Signatures in a PDF

二、公钥基础设施(PKI)

PDF的数字签名功能旨在与企业和政府环境中部署的与主流公钥基础设施(PKI)相关的所有标准兼容。PKI是在创建,分发,管理,吊销以及使用数字ID时使用的人员,策略,过程,硬件和软件的集合,这些数字ID中包含签署PDF时使用的公钥/私钥对。

【翻译】PDF中的数字签名[1]

原文:Digital Signatures in a PDF

一、在PDF文件中表示签名

在PDF中,签名信息包含在一个签名字典中。字典中的对象由PDF Reference定义。签名字典可以引用或者被其它字典引用,通常是下图这样。这些字典中的条目决定了签名的性质和特征,并通过扩展确定了哪些数据可被任何设计用于签名数据处理的PDF阅读器使用。

【翻译】PDF中的数字签名[0]

原文:Digital Signatures in a PDF

本文档介绍了如何在PDF文件中表示数字签名,以及PDF语言支持哪些与签名相关的功能。Adobe® Reader®与Acrobat®实现了PDF的所有功能,因此为基于公钥基础设施(PKI)技术的数字数据认证提供了全面的支持。第三方开发人员可以以Acrobat插件签名处理程序的形式定义自己的处理方式。

我开发的第一款chrome插件——“标签文件夹”介绍

“标签文件夹”是一款用来临时保存浏览器标签页的插件。是我个人开发的第一款Chrome插件,希望能够帮到和我一样,标签页偶尔会塞满浏览器的人。

Chrome插件开发——踩坑记录

记录一下最近开发中的坑点。

说说HTTP和RPC

最近被问到一个问题:“RPC和HTTP有什么区别?”
我说:“前者比后者效率高,但实现比较麻烦。总得来说后者比前者更“重”,导致效率低。”
回答的十分笼统,我觉得甚至没有解释清楚这个东西。
所以决定认真的再看看这两位“熟悉的朋友”。

[纯前端]打造自己的OKR管理软件

OKR(Objectives and Key Results)即目标与关键成果法,可以理解为对目标完成情况的一种管理方法。
一般需要列出当前周期的目标,然后列举一些关键结果来衡量目标的完成情况。

时间管理工具——PlayTask安利

今天给大家安利一款时间管理工具——PlayTask。

如何用github和typora打造自己的云笔记

缘起

从2016年冬季开始,我就有了看书会记些笔记的习惯,在比对了各个软件之后,选定了有道云笔记。主要看中了:1.免费;2.跨多个平台(手机、mac、windows);3.可以用markdown写。

青岛中秋三日游

前言

本来是想着中秋来一场说走就走的旅行,结果在询问秦皇岛和青岛哪一个比较好玩的时候,恰巧他们也打算去,此行就此成立~

主要行程

Arnold变换(附Python实现)

介绍

首先是一个概念:置乱。意即将图像的信息次序打乱,使其变换成杂乱无章难以辨认的图像。

用处大概就是:对图像加个密,除非你暴力破解,否则你不知道这是个啥。所以就能安心地在百度云上存些蜜汁图片(≧▽≦)/

日本之旅(4.4~4.14)

前言

北京室友大佬17年自己一个人去日本旅行过,今年旅行带上了我,程序宅于是有了一次出门~~(毕业旅行)~~的机会。

主要行程一览

光学字符识别-闲谈3

本期题目

在给出的10000张图片中,有一个单词重复出现了两次,请找出这个单词~

无边界地图[闲谈2]

本期题目

一起来玩生命游戏~

这是一款二维平面游戏,模拟生命的演化过程,规则十分简单:

动态爬虫[闲谈1]

开题介绍~

打算开一个“闲谈”专题,定期(不定期?)收录一些自己觉得有趣的题,记录解题过程~

图数据库Neo4j总结

前言

最近业务上需要表现一些数据间的层级关系,考虑到关系型数据库的联表查询随着量级增大,复杂度骤增,打算采用图数据来存储这一部分数据用于展示。

从今天开始使用HyperComments啦!

UPDATE 2018.05.30

HyperComments将于2018.06.15起不再提供免费服务。需要免费评论系统的,可以参考这篇文章“Gitment:使用 GitHub Issues 搭建评论系统”了。目前博客将采用gitment作为评论系统,有疑问的可以到留言页留言,旧文章不再提供评论,新文章可正常评论。

Java泛型中的通配符

最近想学学集合框架的源代码,结果画风是这样的:

boolean addAll(Collection<? extends E> c);
default boolean removeIf(Predicate<? super E> filter) {
	...
}
boolean containsAll(Collection<?> c);

一下就暴露了泛型没好好学的锅= =,今天总结一下。

关于Java中parseInt的一个趣事

今天看Java的时候突然好奇parseInt()的实现,想着会不会和自己平常比赛时候的实现方法一样。于是就翻到了这个:

GitHub入门与实践 笔记+书评

笔记

  • git diff HEAD (查看本次提交和上次提交的区别)

  • git reset --hard hashValue 回退到哈希值对应版本。这条命令会把你工作目录中所有未提交的内容清空(当然这不包括未置于版控制下的文件 untracked files)

  • git checkout -- xx.txt 恢复单个文件

  • git commit --amend 修改最近一次的提交信息

  • git commit -am '...' 个别文件修改时,直接这样,省事。

Codeforces 706E Working routine (模拟链表)

题目链接:

Codeforces 706E Working routine (模拟链表)

题意分析:

给出一个矩阵和q个操作,每次操作需要交换矩阵的两个子矩形,问:经过q次操作后,最终矩阵长什么样子。

HDU 5812 Distance

题目链接:

HDU 5812 Distance

题意分析:

给出一个空集合和三个操作。操作I向集合中插入元素X,操作D删除集合中的元素X,操作Q,查询集合中与X的最小距离最小是多少?
定义最小距离 d(x,y)d(x,y) 为从x变为y只通过乘或者除素数所需要的最少操作。例如:d(15,50)=3d(15, 50) = 3,因为 15/3×2×5=5015 / 3 \times 2 \times 5 = 50

2016 Pre-summer Training Ⅳ - Data Structure

前言

数据结构亦可赛艇!我已经中了树的煮粥XD坐等官方题解,学习一波剩下的题Orz 丧病韬面向AC出数据,至今不会那题TAT

Union Training III - Graph Theory

前言

图论专题结束!数据库课设也只剩下小修小补,GJ!总结这次专题:见多识广,建多识广。抓紧在暑假前搞定那本书!

CQU&SCU Union Training II - Dynamic Programming

前言

DP专题。斜率优化,单调队列,还有各种迷之姿势,反正这个专题我是废了Orz。

CQU&SCU Union Training I - Searching and Strings

前言

为期10天的第一次训练结束~ 时间好快。学到了好多知识~ 不过后缀数组还是不敢碰呀,算是这个专题的一个小遗憾吧。

HDU 1824 Let's go home (2-SAT)

题目链接:
HDU 1824 Let's go home (2-SAT)

题意分析:
n支队伍,m个关系。满足:1.队伍里面,队长和其余两名队员两者中必须有一个要留下来;2.关系中,A队员留下B队员就得离开,B队员留下,A队员就要离开。问:能否合理安排满足以上两个关系。

HDU 3966 Aragorn's Story (树链剖分,线段树)

题目链接:
HDU 3966 Aragorn's Story (树链剖分,线段树)

题意分析:
有三种操作,操作I:增加一个区间中结点的值;操作D:减少一个区间中结点的值;操作Q:查询结点值。

ZJU 1008 Gnome Tetravex (DFS)

题目链接:
ZJU 1008 Gnome Tetravex (DFS)

题意分析:
给出N×NN \times N块正方形,每一块被切割成上下左右四个三角形,每个三角形写上0~9的值,问:能否移动这些正方形的位置,使得它们排列成N×NN \times N的方块,每一个相邻的边上数字都相同。

POJ 2763 Housewife Wind (LCA,RMQ,BIT)

题目链接:
POJ 2763 Housewife Wind (LCA,RMQ,BIT)

题意分析:
给出两个操作,0:妈妈需要到树上某个结点接孩子,每次输出最短距离,然后妈妈的位置变成孩子所在的位置。1:更改树上某条边的距离为w。

POJ 1426 Find The Multiple (BFS)

题目链接:
POJ 1426 Find The Multiple (BFS)

题意分析:
给出一个数字n,查找一个只由0和1构成的数字,使得这个数字能够整除n。输出一个这样的数字。

POJ 3264 Balanced Lineup (RMQ,ST)

题目链接:
POJ 3264 Balanced Lineup (RMQ,ST)

题意分析:
询问区间[L,R][L,R]最大值和最小值的差值为多少?

ZJU 2760 How Many Shortest Path (最大流)

题目链接:ZJU 2760 How Many Shortest Path (最大流)

题意分析:

求从指定点到指定点的没有重边的最短路个数。如果起点终点相同,则输出“inf”。

UESTC 92 Journey (离线LCA)

题目链接:UESTC 92 Journey (离线LCA)

题意分析:
给出一棵树和一条边,问加上这条边后,对于每一个查询,能优化多少的距离?

建站小记

写在前面

昨晚折腾到了凌晨4点,总算是收尾了,祝贺下~这篇也不打算讲具体如何建站,这类教程网上都是。所以打算总结下这期间比较让我费时的事情。

POJ 1986 Distance Queries (LCA)

题目链接:POJ 1986 Distance Queries (LCA)
题意分析:
求树上两点间的最短距离。