网站一键分享插件Share.js

一键分享功能是网站社交化的一个重要组件,当前发现一款使用非常简单的js插件,就是share.js,项目地址: https://github.com/overtrue/share.js 。 share.js使用非常简单,它可以通过参数配置自由控制展示哪些分享图标,同时它还可以自定义分享时的title以及icon。 如此简单的一个js组件,对于我这样的一个后端开发人员,
开源评论系统isso

开源评论系统isso

评论功能是静态博客系统的一个特色,是阅读者交流学习的一种手段。当前国内外都开源出很多评论系统, 包括企业或者个人贡献的,但是很多评论系统临时开放出来,过一段时间则关闭停止服务,所以给自己的博客选择一款稳定 的评论系统非常重要。 对于静态博客来说,由于它缺失后台服务,所以用户的评论数据都是落地在第
FutureTask原理分析

FutureTask原理分析

Callable Runnable 在Java中可以通过继承Thread或者实现Runnable接口两种方式来创建多线程,这两种方式创建的线程执行完毕之后,我们无法获取执行结果, 除非通过共享变量或者线程通信方式(Q消息等)间接实现,Java在1.5之后可以通过Callable和Future接口在线程执行完毕之后获取执行结
递归与非递归遍历二叉树

递归与非递归遍历二叉树

二叉树的遍历有三种方法,分别是先序、中序、后序,先序遍历顺序为根、左、右,中序遍历顺序为左、根、右,后序遍历顺序为左、右、根。 遍历二叉树的方式又包括递归、非递归两种方式。 先序遍历结果:50、30、20、40、60 中序遍历结果:20、30、40、50、60 后序遍历结果:20、40、30、60
二叉树

二叉树

先简单了解下有序数组和链表两种数据结构 有序数组 优点:用二分查找法可以在有序数组中快速查找特定的值,时间O(logN),当然按顺序遍历也只是O(N) 缺点:插入或者删除,需要多次移动数据项,平均要移动N/2次,不适合发生很多插入或者删除操作的场景 链表 优点:链表的插入和删除都非常快,时间O(1)
高效的静态网站生成器Hugo

高效的静态网站生成器Hugo

静态网站比较适用于博客、宣传、文档类的站点,比动态站点占用资源更小,访问速度更快。当前最流行的Wordpress博客系统功能很强大,插件也很丰富, 但是整体感觉很臃肿,占用资源也比较大,同时还需要部署一个MySQL数据库,国内有一些个人或者小团队研发了一些开源的轻量级博客,根本没什么吸引力。
Helm Harbor

Helm Harbor

chartmuseum chartmuseum是helm chart的仓库,它的存储层支持FileSystem以及各大云厂商的对象存储中间件, 默认支持阿里云的OSS、百度的BOS、Amazon S3、Microsoft Azure、Oracle、Openstack、Google等, 其他厂商需自行实现Storage的B
字典树的应用与实现

字典树的应用与实现

字典树又称为单词查找树或者前缀树,是一种用于快速检索的树形结构,比如小写字母词典数是一个26叉数,数字的字典树是一个10叉数。字典数的键并未保存在节点中,而是由节点在树中的位置决定的。 根节点一般对应空信息。字典树的优点是查询效率高,其核心思想是利用空间换时间,利用字符串的公共前缀来提高效率

字符串的最小包含子串

问题 给定字符串str1,str2,获取字符串str1中包含str2的最小字符子串。 str1=“abcde”, str2=“bd” -> bcd str1=“abcde”, str2=“cg” -> “” 思路 假定字符编码范围0~255 创建一个size为256的整形数组charCount,用来保存字符串str2所有字符的出现次数 整形变量match用来表示当前差几个字符未匹配 将str1、str2分

判断两个单词是否为变形词

问题 给定两个单词word1,word2,判断两个单词是否是变形词,即两个单词中的每个字符出现的次数一致。 word1=“abcc”, word=“acbc”, 返回true word1=“abcc”, word=“abbc”, 返回false word1=“abc”, word=“cba”, 返回true 思路 假定字符串的编码范围0~255。 新建一个size为256的int数组 分别将单词word1、word2转换为对应的字符数组word1C