- 博客(134)
- 资源 (3)
- 收藏
- 关注
原创 Springboot 1.5 SpringBootServletInitializer error
利用maven将多个工程组织起来,使得不同的项目可以互相引用。在处理SpringBootServletInitializer的时候,一直出错,错误信息如下:error: package org.springframework.boot.context.web does not exist找了好久,一直以为是maven的错误,后来才发现是在springboot1.5中,org.s
2017-03-29 16:32:14
10184
转载 一致性hash算法
转载自:http://www.cnblogs.com/yuxc/archive/2012/06/22/2558312.html 所有版权皆归属原作者简介OpenStack是一个美国国家航空航天局和Rackspace合作研发的开源云计算项目,并成为Apache下的一个重要开源项目,目前已经发展到了180家公司参与其中。OpenStack Object Storage(Swift)是Ope
2017-03-06 10:55:34
764
原创 2017年书单
1.高效程序员的45个习惯:敏捷开发修炼之道 [Done]感觉很不错,值得再读一次;2.sicp in python [Done] 还没有体会到它的奥妙之处,会再次阅读3.乔布斯传4.禅与摩托车维修艺术5.剑桥中国史6.人类简史7.算法8.战争论9.权利的转移10.九品官人发研究
2017-02-28 12:44:55
826
原创 OpenSSL 生成证书
1.生成root keyopenssl genrsa -out ca.key 20482.根据private root key 生成根证书openssl req -x509 -new -nodes -key ca.key -subj "/CN=IP_LOCAL_ADDRESS" -days 10000 -out ca.crt3.生成server keyopenssl genr
2017-02-20 20:28:40
1128
转载 Go和HTTPS
转载自:http://studygolang.com/wr?u=http%3a%2f%2ftonybai.com%2f2015%2f04%2f30%2fgo-and-https%2f 原作者享有所有版权近期在构思一个产品,考虑到安全性的原因,可能需要使用到HTTPS协议以及双向数字证书校验。之前只是粗浅接触过HTTP(使用Golang开 发微信系列)。对HTTPS的了解则始于那次自行
2017-02-20 18:04:29
1167
原创 ubuntu16.04 编译安装kubernetes1.6
本文是基于 http://www.cnblogs.com/LinuxGo/p/5729788.html 工作的基础上,针对新的版本存在的一些问题做了修改环境信息版本信息组件版本etcd3.1.0Flannel0.5.5Kubernetes1.6.0alpha
2017-02-17 10:49:42
4966
1
原创 未来之路
工作一年半了,做了几个用于线上系统的模块,但是访问量都不是很高,看着其他一起进公司的人每天忙着各种高大上的技术,同组的人每天都在把玩各种比较新潮的东西,我在想我将来的路在哪里。心里还是充满对未来的焦虑的,技术服务于市场,服务于需求,任何没有需求的技术最终都会逐步的被淘汰,这一点在IT行业尤其是如此。如何在快速变化的IT市场里面获得不败之地,是一个很严峻的问题。很多职业有比较好的积累效果,IT行业却
2017-01-04 16:26:09
664
原创 algorithm 1.4.22 Binary search with only addition and subtraction
题目:Binary search with only addition and subtraction.[Mihai Patrascu] Write a program that, given an array ofN distinctint values in ascending order, determines whether a given integer is in th
2016-11-18 16:01:48
776
原创 algorithm 1.4.20 Bitonic search
题目:An array isbitonic if it is comprised of an increasing sequence of integers followed immediately by a decreasing sequence of integers. Write a program that, given a bitonic array ofN distin
2016-11-16 17:24:14
599
原创 algorithm 1.4.19 Local minimum of a matrix
题目:Given anN-by-Narray a[] of N 2 distinct integers, design an algorithm that runs in time proportional to N to find a local minimum:a pair of indicesi and j such that a[i][j] ,
2016-11-15 18:21:37
823
原创 queue by one stack、two stack and three stack
1、用一个栈实现队列;要想用一个栈实现队列,可以通过push过程中递归处理或者pop过程递归处理,这个方法虽然只是用了一个栈,但是是用了系统的栈。2、使用两个栈实现队列;一个栈用于push,另一个栈用于pop,如果pop栈空,就把push栈里面的数据放入pop栈里面。3.用三个栈实现队列,最差的操作时间O(1);用三个栈,从网上的结果来看,只有使用栈嵌套栈的方式才能够实现在O(
2016-11-15 11:26:33
534
原创 algorithm 1.4.18
题目:Local minimum of an array.Write a program that, given an arraya[] of N distinct integers, finds alocal minimum: an indexi such that a[i-1] .Your program should use ~2lgN compares in
2016-11-13 11:49:28
549
原创 algorithm 1.3.10
package com.frozenxia.algorithm.basic.exercises;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.frozenxia.algorithm.basic.LinkedStack;
2016-11-04 14:50:51
521
原创 algorithm 1.3.4 1.3.9 solutions
1.3.4 solutionpublic class Parentheses { public boolean isParentheses(String s) { LinkedStack stack = new LinkedStack(); Map pmap = new HashMap() { { put('(', ')'); put('{', '}');
2016-10-27 09:58:10
961
原创 洗牌算法简单分析
关于洗牌算法,网上有比较多的实现,一个比较简单直接的实现如下:void ShuffleArray_Fisher_Yates(char* arr, int len){ int i = len, j; char temp; if ( i == 0 ) return; while ( --i ) { j = rand() % (i+1);
2016-10-25 19:37:42
1022
原创 algorithm (4th edition) 1.1.27 1.1.29
1.1.27 solutionpublic static double binomial(int N, int k, double p) { if (N == 0 && k == 0) { return 1.0; } if (N < 0 || k < 0) { return 0.0; } double ret = (1.0 - p) * binom
2016-10-19 17:40:26
529
原创 Raft算法分析与理解
最近看Raft算法,相比于Paxos算法的而言,这个算法确实是要容易理解很多。在官网上面也能够找到很好的实现代码。我挑选了https://github.com/willemt/raft 这个版本的实现帮助自己理解Raft算法。
2016-09-19 15:07:56
2504
转载 生成PKI公私密钥对及数字证书
转载自:http://openwares.net/misc/pki_key_pair_certificate.htmlPKI体系是数字证书的基础。有些情形只需要公私密钥对就够了, 不需要数字证书,比如私有的SSH服务。但是对于一些要求身份认证的情形,则需要对公钥进行数字签名形成数字证书。公私密钥对(key pair)有两种常见的工具来生成RSA公私密钥对
2016-05-27 09:28:43
5180
转载 40个Java多线程问题总结
转载自:http://www.cnblogs.com/xrq730/p/5060921.html前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己
2016-03-15 14:32:30
486
转载 面试感悟:3年工作经验程序员应有的技能
转载自:http://blog.jobbole.com/98487/前言因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内容也是专门面向咱们Java程序员的。简单先说一下,LZ坐标杭州,13届本科毕业,算上年前在阿里巴巴B2B事业部的面试,一共有面试了有
2016-03-15 14:31:52
611
转载 缓存、缓存算法和缓存框架简介
转载自:http://blog.jobbole.com/30940/引言我们都听过 cache,当你问他们是什么是缓存的时候,他们会给你一个完美的答案,可是他们不知道缓存是怎么构建的,或者没有告诉你应该采用什么标准去选择缓存框架。在这边文章,我们会去讨论缓存,缓存算法,缓存框架以及哪个缓存框架会更好。面试“缓存就是存贮数据(使用频繁的数据)的临时地方,因为取原始数据
2016-03-15 14:27:48
489
原创 Springboot ServletContextListener @Autowired null 解决办法
是用SpringBoot框架进行开发的时候,如果使用ServletContextListener对spring启动前和停止前做一些清理工作的时时候,需要用到一些autowired的类,测试发现这些类在启动的时候,由于相应的beanfactory还没有加载,所以会出现问题。找了一段时间,发现下面的方法能够有效解决这个问题。解决办法也是参照stackflow上面的。。@WebListenerpu
2016-03-09 14:29:26
8808
原创 monit监控tomcat service
利用monit对tomcat进行监控,在服务不可用的时候对tomcat进行重启。1.安装monit# apt-get install monit2.配置monit在/etc/monit/conf.d目录下面,创建一个tomcatrc的文件,写入如下内容 check host all with address localhost start program = "/h
2016-03-02 20:03:20
2397
转载 SPRING SECURITY JAVA配置:Web Security
在前一篇,我已经介绍了Spring Security Java配置,也概括的介绍了一下这个项目方方面面。在这篇文章中,我们来看一看一个简单的基于web security配置的例子。之后我们再来作更多的个人定制。Hello Web Security在这个部分,我们对一个基于web的security作一些基本的配置。可以分成四个部分:更新依赖 – 我们已经在前一篇文章中用Mav
2016-03-02 15:09:29
2241
转载 在SpringMVC中使用Jackson并格式化时间
转载自:http://atomato.me/blog/2014/10/use-jackson-format-time-in-springmvc/在Spring MVC 3中,要实现REST风格的JSON服务,最简单的方式是使用 @ResponseBody 注解。该注解会自动把返回的对象,序列化为JSON。来看一个最简单的例子。这个例子先使用Spring 3.0.5 +
2016-02-15 17:00:28
15203
转载 复杂度为O(1)的最不常用[LFU]缓存算法
这篇文章描述了怎么用 Python 实现复杂度为 O(1) 的「最不常用」(Least Frequently Used, LFU)缓存回收算法。在 Ketan Shah、Anirban Mitra 和 Dhruv Matani的论文中有算法描述。实现中的命名是按照论文中的命名。LFU 缓存回收机制对于 HTTP 缓存网络代理是非常有用的,我们可以从缓存中移除那些最不常使用的条目。本文旨在设
2015-10-31 15:27:36
1426
原创 Populating Next Right Pointers in Each Node
题目:Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; }Populate each next pointer to point to its next rig
2015-10-23 16:03:08
636
原创 Spring Boot 配置log4j
1.首先在pom.xml文件中增加依赖: org.springframework.boot spring-boot-starter-log4j 2.在application.properties文件中增加log的配置#log4jlogging.level.org.springframework.web=INFOlogging.level.org.hibern
2015-08-24 17:26:52
4740
原创 Java Concurrency in Practice——LogService
书中的List7.15的代码给出的在多线程中,producer-consumer模型下,如何有效的终止服务的实现方式。在示例代码中,利用reservations来表明还有多少的消息需要取出来,并利用isShutdown来表明服务是否已经终止,通过确保isShutdown和reservations的改变是原子的,来获得整个服务的线程安全。public class LogService { p
2015-08-17 21:13:42
633
原创 flask0.1源码阅读
最近使用了一下Flask框架做简单的Res开发,发现Flask是一个很好的用来理解web框架以及Python 编程的工具,所以准备看一下它的源码,先占个坑。
2015-07-28 11:23:00
1427
转载 ubuntu下,thinkpad触摸板关闭方法
查了好几天英文资料才不完美解决。1、LENOVO T440P 的触摸板,一体式的十分难用,换成了经典的实体键的,哈哈。2、装好UBUNTU后,触摸板滑动,手势都管用,就是上面的三个实体键不管用,郁闷。用习惯了小黑的红点和实体键,没办法之下,参考网上的资料,动态加载模块,把触摸板当成鼠标来用。sudo modprobe -r psmousesudo modprobe psmouse
2015-07-17 14:55:10
2786
2
翻译 Fast Paxos
FastPaxosLeslie Lamport1 Introduction一致性问题需要处理机集合选择一个值。本文研究受到非拜占庭错误影响的异步消息传递系统中的一致性问题。不论发生什么样的故障,针对这种问题的解决方案决不能允许选择两个不相同的值,并且,如果足够的处理机没有出现故障且能够互相通讯,该解决方案最终将选择一个值。在传统的一致性问题描述中,每一个处理机处理一个值并且该选中的
2015-03-27 16:19:45
2617
原创 3-6月份学习计划
农历年一过完,就已经是2月底了,离毕业还有2个多月,在这两个多月的时间里,希望能够完成以下的计划:1.阅读完leveldb的源代码;2.看完java核心编程思想、java并发编程等三本书;3.看完python核心编程,初步理解Python语言;4.阅读完基本关于linux的编程书籍,包括深入理解linux内核、unix环境高级编程、unix网络编程等几本书;5.熟悉一下hado
2015-02-25 19:46:16
851
原创 leveldb源码阅读-memtable
memtable在leveldb中扮演着及其重要的地位,用于存储最新的数据修改信息,当数据的规模达到一定的上限之后,就会将数据转存储为immutable memtable,这时候就会被存储到sstale中;因此总的来说,所有在内存的数据都是以memtable进行存储的;memtable的接口如下:void Ref() { ++refs_; }//引用次数// Drop referenc
2014-12-30 16:14:11
930
原创 leveldb阅读-Skiplist
Skiplist是一种随机化的链表,通过并联链表,可以实现数据的快速插入和查找,同时能够取得比较好的时间开销和空间开销。详细的实现原理可以参照http://blog.csdn.net/haidao2009/article/details/8206856。leveldb采用skiplist来实现k-value的处理应该也是综合考虑到空间开销和时间开销的成本。在介绍leveldb中的Skiplis
2014-11-29 16:11:46
931
原创 leveldb阅读-Status
LevelDB中,使用Status用来统一处理返回状态,其设计业是遵循了之前的一贯设计风格,简单明了。为了节省空间,Status采用了const char* state_;来存储数据,利用 state_[0..3] == length of message来表示状态的长度,state_[4] == code表示状态的类型,state_[5..] == message表示详细信息;Sta
2014-11-27 17:02:34
821
原创 leveldb阅读-Slice字符串
Slice是一个类似于String的类,用于管理字符串,相比较于String支持的许多操作,Slice只包含最简单和基本的功能,也就是字符串的地址、字符串的大小;与string不同的是,Slice自己本身并不提供存储字符串的空间,而是保留字符串的指针,因此相比较于String,Slice运行起来就简单多了。Slice里面包含了两个基本的组成部分,指向字符串存储地址的const char* da
2014-11-27 11:08:47
801
原创 leveldb阅读-arena内存池
arena内存缓冲池采用一种比较简单的分配方案,只提供了Allocate() 和AllocateAligned()接口,系统申请的缓冲池随着arena的销毁而销毁。简单来说,arena不应该算作是缓冲池,应理解为一种内存管理机制,适合memtable的内存管理方案。其中,arena.h头文件内容如下:// Copyright (c) 2011 The LevelDB Authors. Al
2014-11-26 17:01:24
926
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人