- 博客(95)
- 收藏
- 关注
转载 Vim - 常用配置
基本配置不用任何插件的情况下,先按如下配置:set nusyntax onset hlsearchset tabstop=4set shiftwidth=4set expandtabset smartcaseset iccolorscheme srcery-drkVundleVundle是Vim的插件管理器,像NeoB...
2017-10-28 20:27:00
224
转载 Thrift - 快速入门
Getting Started如果有homebrew的话,直接执行以下命令即可,brew会处理相关依赖(https://thrift.apache.org/docs/install/)。brew install thrift或者可以从源码安装。下载tar包 https://thrift.apache.org/download参考 https://thri...
2017-10-25 01:12:00
223
转载 Netflix Hystrix - 快速入门
Hystrix最初是由Netflix的API team研发的,用于提高API的弹性和性能,2012年在公司内部广受好评。如果你的应用是一个单独的应用,那几乎不用在意断路的问题。但在分布式环境中,各个应用错综复杂的依赖关系,一个不稳定的服务会拖累依赖它的服务。 简单来说,就是将服务之间的访问隔离开来,在错误(包括超时)被传播之前拦截下来,并提供相应的处理逻辑,让这个分布式应用...
2017-05-13 20:04:00
262
转载 Elasticsearch - 快速入门
Elasticsearch是基于Apache 2.0开源的实时、分布式、分析搜索引擎,相比Lucene,Elasticsearch的上手比较容易,这篇文章主要纪录Elasticsearch的基本概念和基本API。官方对Elasticsearch的定义:Elasticsearch is a distributed, RESTful search and analytics en...
2017-04-23 19:43:00
129
转载 Flume - 快速入门
关于Flume,官方定义如下:Apache Flume is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a cent...
2017-02-18 19:17:00
199
转载 Docker - 用Flannel跨主机
试了下比较流行的几种SDN,感觉flannel还是比较好用,这里简单记录一下。用的是virtualbox,3个机器,分别为:genesis : inet 192.168.99.103/24 brd 192.168.99.255 scope global dynamic enp0s3exodus : inet 192.168.99.105/24 brd 192.168...
2017-01-17 18:20:00
121
转载 OS X - 在80端口启动Nginx
不知道你是怎么在你的mac上安装nginx的,但是如果你跟我一样:brew install nginx然后你会发现你的nginx.conf中的端口是8080。于是你可能像我一样试着把端口改为80,然后reload一下。 你发现没有任何错误提示,当你访问localhost时却没有nginx的首页,甚至连403也没有。于是你尝试...sudo lso...
2016-03-30 23:57:00
86
转载 Grunt - 安装指南
发现周围有些人对前端存在偏见。他们认为前端只是用没那么复杂的技术对着界面调来调去,一点点打磨,最后做出一个没什么实用价值的“花瓶”。其实,前端的技术栈并不简单,比如我们可以用Grunt进行一些自动化操作。这里简单记录下Grunt的安装,希望对大家有帮助。Node.js我们用到的很多组建都是依赖Node.js构建的,所以首先要安装Node.js。安装Node....
2015-09-27 15:32:00
115
转载 ArchLinux - 安装指南
Step 1 将镜像写入u盘u盘从来不是唯一的选择,但多数人可能喜欢这么做。我是在OS X上进行操作,如果你用的是windows,也许可以使用Image Writer for Windows或者UltraISO。所以,先不提net booting,你可能需要一个iso...https://www.archlinux.org/download/ 会有适合你的下载方式。...
2015-06-21 22:17:00
122
转载 apt-*命令指南
安装包apt-get install package 重新安装包 apt-get install package --reinstall 强制安装?#"-f = --fix-missing"当是修复安装吧... apt-get -f install 删除包 apt-get remove package 删除包,包括删除配置文件等 ...
2015-04-08 18:50:00
86
转载 Maven - dependency那些事儿
身边有几位刚使用Maven的同学表示——在一个叫"pom.xml"的文件里声明一个依赖就不用去手动添加jar了,感觉这东西和自己手动管理依赖没太大区别。 当然,并不是这样,在此记录dependency那些事儿。dependency一个依赖可以按照maven的坐标标准进行定义。比如:<dependency> <groupId>javax...
2015-03-31 15:43:00
104
转载 Activiti - 设置会签
前些天在群里聊工作流和Activiti,群里有人分享了自己的工作流引擎开源项目,大伙纷纷问这问那(比如为什么突然自己搞个process engine、有没有eclipse plugin、能不能绘制流程图等等)。现实生活中的工作流程,我们也经常碰到需要会签的情况,支持会签是很必要的。正好有两个人问道:支持会签吗? 也有人也问道:什么是会签?如果从process engine...
2015-03-26 18:23:00
935
转载 JavaMelody - 常用配置
一直没怎么关注javaMelody这个东西。自己写东西的时候想弄点监控,于是把javaMelody装进去了。看了文档几乎全是法语,在此记录一些常用的配置。 首先依赖添加如下:<dependency> <groupId>net.bull.javamelody</groupId> <artifactId>...
2015-03-25 16:25:00
140
转载 Java - 延迟初始化
延迟初始化(lazy initialization),也就是在真正被使用的时候才开始初始化的技巧。不论是静态还是实例,都可以进行延迟初始化。其本质是初始化开销和访问开销之间的权衡。毕竟是一种优化技巧,使用不当会起反效果。尤其是在多线程场景中这种反效果会尤为明显,因为我们要对这个进行延迟初始化的field进行同步。 先一步步开始,如果初始化开销不值一提,我们只需要...
2015-03-25 16:12:00
136
转载 MySQL日志维护策略
日志类型:MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:日志文件记入文件中的信息类型错误日志记录启动、运行或停止时出现的问题查询日志记录建立的客户端连接和执行的语句二进制日志记录所有更改数据的语句。主要用于复制和即时点恢复慢日志记录所有执行时间超过long_query_ti...
2015-03-24 16:54:00
98
转载 Vim查找替换使用方法
For the impatientvi/vim中可以使用 :s 命令来替换字符串:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky:n,$s/vivian/sky/g...
2015-03-20 19:43:00
67
转载 SOAP和WebService的那些事
C_J 写道但是我想设计那些xml传输格式的委员会不会不懂吧?所以我觉得WebService设计的协议应该是有他的渊源的,“存在即合理”嘛不知道andot学长有没有了解过那些渊源呢?不妨给大家讲讲吧。当初对这段历史有过一点研究,不过当初写得关于这部分历史的论文不知道被我丢哪儿去了,下面我用通俗一点的语言来话说一下这段历史吧,因为当初详细到具体人物具体时间的已经记不...
2015-03-17 23:32:00
78
转载 Redmine - 安装指南
不知道同事为什么执着于Redmine,倒是给了一台旧机器让我帮忙安装,记录一下遇到的一些坑,兴许能帮到需要的朋友。安装Rubywindows的话可以直接通过RubyInstaller进行安装。Linux可以从源码安装。系统是redhat,编译之前yum检查一下是否存在依赖项yum -y install zlib-devel curl-devel openssl-...
2015-03-04 17:04:00
82
转载 Oracle - 为子查询提供动态结果集
曾经遇到过这样一个需求:要求为method传入String,内容如"用户ID0,用户ID1,用户ID2...",然后根据这些ID返回一个结果集作为数据表供别人查询。SELECT * FROM TBL WHERE ID IN ('用户ID0,用户ID1,用户ID2') 不就可以解决问题吗?但实际情况是,结果集无法通过一个简单的SELECT就可以得到。 让我明确一下需要...
2015-03-01 14:28:00
160
转载 AngularJS - 服务简介
服务是AngularJS中非常重要的一个概念,虽然我们有了控制器,但考虑到其生命实在脆弱,我们需要用到服务。起初用service时,我便把service和factory()理所当然地关联起来了。确实,factory()是创建一个服务的最简单的方式,但服务并非仅此而已。这里记录一下我对服务的一些简单认识。Service非常重要的一点 —— 服务是单例。一个服务在...
2015-02-28 18:32:00
102
转载 Sublime Text - 在浏览器打开当前文件
有没有办法通过快捷键在指定的浏览器中打开当前文件?有点怀念Dreamweaver的F12?其实Sublime也可以实现这一效果,而且不需要安装任何插件。进入Tools -> Build System -> New Build System...Sublime默认给出一段JSON:{ "cmd": ["make"] }将这段JSON改为...
2015-02-27 15:28:00
455
转载 AngularJS - 路由入门
我们有很多方法让一个视图随着用户的操作进行变化。但是,只是单单一个视图就要满足所有的需求会让代码变得非常复杂。 也许我们可以使用ng-include来引用各种模板,但这只限于部分场景。于是我们可以将视图拆分为两种:布局视图模板视图如此一来,我们便可以使用route实现模板和布局视图的组装,以构建多视图的应用。RoutengRoutes...
2015-02-15 17:28:00
97
转载 AngularJS - 自定义指令
这一篇从自定义指令出发,记录了定义一个指令时影响指令行为的各种因素。试着感受这些因素,让自己更高效地编写AngularJS应用。Directive先从定义一个简单的指令开始。定义一个指令本质上是在HTML中通过元素、属性、类或注释来添加功能。AngularJS的内置指令都是以ng开头,如果想自定义指令,建议自定义一个前缀代表自己的命名空间。这里我们先使用...
2015-02-12 20:33:00
93
转载 Java - 方法的参数声明
给方法的参数加上限制是很常见的,比如参数代表索引时不能为负数、对于某个关键对象引用不能为null,否则会进行一些处理,比如抛出相应的异常信息。对于这些参数限制,方法的提供者必须在文档中注明,并且在方法开头时检查参数,并在失败时提供明确的信息,即:detect errors as soon as possible after they occur这将成为准确定位错误的一...
2015-02-06 20:58:00
379
转载 AngularJS - 指令入门
指令,我将其理解为AngularJS操作HTML element的一种途径。 由于学习AngularJS的第一步就是写内置指令ng-app以指出该节点是应用的根节点,所以指令早已不陌生。 这篇日志简单记录了一些内置指令,先使用起来,再谈一些有趣的东西。内置指令所有的内置指令的前缀都为ng,不建议自定义指令使用该前缀,以免冲突。首先从一些常见的内置指令开始。...
2015-02-03 21:06:00
63
转载 Java - 枚举与注解
Enumeration于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样:public static final int APPLE_FUJI = 0;public static final int APPLE_PIPPIN...
2015-02-02 20:37:00
161
转载 Java - 关于泛型
自Java 1.5开始使用的泛型,泛型给人比较直观的印象是..."尖括号里写了类型我就不用检查类型也不用强转了"。确实,那先从API的使用者的角度上想问题,泛型还有什么意义? Discover errors as soon as possible after they are made, ideally at compile time....
2015-01-30 20:29:00
76
转载 Linux - ps命令
Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps。这个工具能在命令行中使用。PS 命令是什么查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态。如果你想不断更新查看的这个状态,可以使用top命令。ps命令支持三种使用的语法格式UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符...
2015-01-28 18:49:00
67
转载 AngularJS - 表单验证
虽然我不是前端程序员,但明白前端做好验证是多么重要。因为这样后端就可以多喘口气了,而且相比后端什么的果然还是前端可以提高用户的幸福感。 AngularJS提供了很方便的表单验证功能,在此记录一番。首先从下面这段代码开始<form ng-app="myApp" ng-controller="validationController" name="mainF...
2015-01-27 18:30:00
71
转载 Java - 慎用tagged class
作者的原标题是<Prefer class hierarchies to tagged classes>,即用类层次优于tagged class。我不知道有没有tagged class这么一说,其实作者指的tagged class的是一个类描述了多种抽象,可以根据某个field决定不同的实例。下面是书中例子,使用shape和部分表示长度的field构成形状并计算面积...
2015-01-26 20:36:00
127
转载 Java - 将可变性最小化
不可变类,即实例不能被修改的类,实例中包含的所有信息在对象的生命周期内固定不变。常见的比如String、基本类型的封装类、BigDecimal、BigInteger。 相对与可变类,不可变更易于设计、实现、使用,且更稳定(less prone to error)更安全。比如,不可变类本质上就是线程安全的,不需要做同步处理,使用起来也非常方便。设计不可变类,我们有...
2015-01-26 20:33:00
97
转载 AngularJS - 过滤器
过滤器,也就是展示数据之前对其过滤一番。AngularJS提供了一些常用的过滤器,而且支持自定义过滤器。在{{}}内通过|来调用filter,例如:{{ 2015 | number:2 }}其中number就是filter的名称,:后接参数。内置filter下面列出常用的内置过滤器。number以数字格式输出,第二个为可选参数,表示小数点...
2015-01-24 17:57:00
72
转载 Java - 复合模式优于继承
继承是实现代码重用的方法之一,但使用不当则会导致诸多问题。继承会破坏封装性,对一个具体类进行跨包访问级别的继承很危险。即,子类依赖父类的实现细节。如果父类的实现细节发生变化,子类则可能遭到破坏。 举个例子,扩展HashSet,记录HashSet实例创建以来一共进行了多少次添加元素的操作。HashSet有两个添加元素的方法——add(E e)和addAll...
2015-01-23 18:35:00
99
转载 Debian - 安装随记
为什么要突然换个操作系统? 之前使用的是Lubuntu,可见硬件非常糟糕。更糟糕的是Lubuntu被玩坏了,很多程序不能正常运行。于是打算换Debian + XFCE。随手记录一下遇到的一些坑,希望能帮大家省一些时间。好,先去下载一个镜像,http://live.debian.net/files/stable/images/current/amd64/iso...
2015-01-17 20:43:00
153
转载 Java - 用静态工厂方法代替构造器
Effective Item - 考虑用静态工厂方法代替构造器我们有两种常见的方法获得一个类的实例:公有的构造器提供静态工厂方法(static factory method)相对公有的构造器,静态工厂方法有以下几大优势。优势1.静态工厂方法的名称,因此比构造器更准确地描述返回的实例。比如BigInteger.probablePrime方法:publi...
2015-01-14 20:43:00
88
转载 AngularJS - 快速入门
刚开始接触时总是去wiki或各种百科以了解一番。它们会告诉我一些MVVM、双向数据绑定、依赖注入等等名词,觉得这些名词好上档次,然后我很可能就不打算用这个东西了。 AngularJS是什么?完全使用 JavaScript编写的客户端技术。同其他历史悠久的 Web技术( HTML、 CSS和JavaScript)配合使用,使Web应用开发比以往更简单、更快捷。...
2015-01-10 16:41:00
65
转载 Github - 修改语言统计
前些日子看到有人提到这个问题,于是自己也试着解决了一番,在此记录下来,希望对大家有帮助。Github中创建一个repository后会出现一个统计使用语言的颜色条。就是下面这个东西:似乎很多人遇到这个问题。创建了一个以某个语言为主工程,可是由于使用的第三方插件都不是这个语言写的,上传后插件使用的语言占的比例比主语言还要多。比如一个Java web工程里...
2015-01-09 20:20:00
339
转载 Java - 接口还是抽象类
Java有两种机制可以为某个抽象提供多种实现——Interface和abstract class。Interface 和 abstract class,除了比较明显的区别(也就是能否提供基本实现),比较重要的区别是——接口的实现类可以处于类层次的任何一个位置,而抽象类的子类则受到这一限制。Existing classes can be easily re...
2015-01-05 20:50:00
70
转载 Java - 使可访问性最小化
模块设计是否良好,有个重要的因素在于,相对外部模块是否隐藏内部数据以及实现细节。设计良好的模块会隐藏实现细节,并将API与其实现隔离开来。模块之间通过API进行通信,对于内部工作情况互不可见。即,封装(encapsulation)——软件设计的基本原则之一。 为什么要封装?通过封装可以有效地接触各个模块之间的耦合关系,使这些模块可以独立地开发、测试、优化、使...
2015-01-02 21:07:00
94
转载 Java - 谨慎实现Comparable接口
类实现了Comparable接口就表明类的实例本身具有内在的排序关系(natural ordering)。因此,该类可以与很多泛型算法和集合实现进行协作。而我们之需要实现Comparable接口唯一的方法——compareTo。 以下是相关规则:sgn(x.compareTo(y)) = -sgn(y.compareTo(x))(x.compareTo(...
2014-12-30 20:42:00
123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人