路由功能是Angular中的一个重要功能,他使得使用Angular来构建SPA项目变得格外简单。所谓SPA项目指的是Single Page Application, 整个项目只有一个页面,但是里面有大量的导航链接或按钮,点击了按钮整个页面并不会全部刷新,但是会根据点击的内容,和后台发生交互,改变页面中的部分内容。这种SPA项目和一般的项目相比,省去了大部分页面的请求和渲染,具有更高的响应能力。

阅读更多

众所周知,Java语言是啰嗦的,写久了就会发现很多地方的代码看着就很冗余。lombok提供了一种简化Java代码的解决方案,通过注解的方式,来生成模板化的代码。最典型的就是生成类的构造函数,getter/setter,toString方法等。

阅读更多

Docker引擎为我们提供两种管理数据的方式:

  1. 数据卷(data volume)
  2. 数据卷容器(data volume containers)

    阅读更多

如果你的程序运行在JDK8u111或者更高的版本之上,对于HTTPS请求,如果你的连接会走HTTP代理,且该代理使用的是BASIC认证的方式,那么你的连接将没法完成PROXY的鉴权认证。因为从JDK8u111开始,JVM默认禁用了对HTTPS tunnel的BASIC authentication。

In some environments, certain authentication schemes may be undesirable when proxying HTTPS. Accordingly, the Basic authentication scheme has been deactivated, by default, in the Oracle Java Runtime

阅读更多

在JAVA中通过Runtime启动一个外部进程是一个常见的做法,但是如果外部进程的输出流没有被正确的处理,往往会带来一些意想不到的结果。最近我就遇到过一次这样的问题。

在我的程序中,有这么一个功能,启动一个外部进程,获取该外部进程的输入流和输出流。这里权且将我的程序称为主程序,在主程序中启动起来的程序称做子程序。在主程序中,我们会拿到子程序的标准输入流和标准输出流,基于这两个流,主程序和子程序进行通信(不用问我为什么不用socket,这里有一堆理由~)。为了避免子程序空闲太长时间,子程序在空闲一段时间后,调用System.exit(-1)结束进程。

阅读更多

背景

不管哪种语言,特殊字符的escape都是令人头大的事情。最近,我们遇到了好几次特殊字符处理的问题,往返折腾了多次,经常是补了东墙拆了毁西墙,颇为恼火。这里,对最近我们遇到的问题做一个集中梳理,与诸君共勉。
首先介绍下我们的应用场景:客户可以通过我们的UI进行配置,生成周期执行的任务;我们在执行这些任务的时候,会将这些任务转换成groovy脚本执行。 问题就出在将配置的任务转换成groovy脚本,如果用的配置中包含了
一些特殊字符,则可能导致生成的脚本无法执行。在下文中,我将首先介绍下groovy中的字符串,然后根据我们的场景抽象一个简单的例子,并阐述我们遇到的问题,最后再来说我是如何解决我们的问题的。

阅读更多

前段时间发现chrome访问我的博客是,提示insecure connection。今天有空搜了下,这是因为google已经把startssl从受信CA列表里面一处了,于是搜了下其他的免费的CA,发现Let's Encrypt是个不错的选择。

环境信息: NGINX, Ubuntu 14.04

阅读更多

SEDA(Staged Event Driven Architecture),分段事件驱动架构。SEDA结合了传统基于线程和基于事件驱动的架构的优点,提倡将应用程序划分成多个阶段(Stage),阶段之间通过事件队列通信。在SEDA架构下,将整个程序进行了细分,
一方面实现了不同业务逻辑之间的解耦,另一方面使得整个系统更加鲁棒。

阅读更多

基本Logstash示例

为了验证你的Logstash安装,可以执行下面的最简单的Logstash管道(pipeline):

1
2
cd logstash-{logstash_version}
bin/logstash -e 'input { stdin { } } output { stdout {} }'

阅读更多

Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case letters. If no such two words exist, return 0.
Example 1:
Given [“abcw”, “baz”, “foo”, “bar”, “xtfn”, “abcdef”]
Return 16
The two words can be “abcw”, “xtfn”.
Example 2:
Given [“a”, “ab”, “abc”, “d”, “cd”, “bcd”, “abcd”]
Return 4
The two words can be “ab”, “cd”.
Example 3:
Given [“a”, “aa”, “aaa”, “aaaa”]
Return 0
No such pair of words.

阅读更多

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×