java

Java的那些日志框架们

日志在排查线上问题、跟踪线上系统运行情况中发挥着重要作用。在Java应用的开发中,常见的日志框架有JCL(commons-logging),slf4jJUL(java.util.logging),log4jlog4j2logback等。这些日志框架大致可以分为两类,一类是日志门面(JCL、slf4j),定义日志的抽象接口;另一类是日志实现(JUL,log4j,log4j2,logback),负责真正地处理日志。为什么会有这么多的日志框架呢?从Java日志框架的发展史里大概可以一探究竟。

Back to Top ↑

linux

给hosts文件生成ctags文件

经常编辑hosts文件, 定位具体位置的时候以前用搜索功能,但是域名相似的配置实在太多,不能立即跳转到指定地方, 其实已经把hosts划分成若干组,

Shell书签功能

使用shell时总会有些经常访问的目录,老是cdcd去的实在是麻烦, 这不,总会有些大牛闲着木事解放我们的双手,利用软连接实现shell下的书签(类似浏览器)。

Linux下解压zip中文乱码问题

遇此问题良久了,就是在该死的Windows上压缩的zip文件,在linux解压中文就乱码了,
之前只好弱弱地只在Windows下查看,好麻烦。终于忍不住google了一下,如下:

Back to Top ↑

ubuntu

Ubuntu 12.04 vim 无系统剪切板

突然间发现我的vim系统剪切板不能用了,
之前还写过一篇日志介绍剪切板来着呢,
执行:reg确实没了"+系统剪切板,那就修复之:

Ubuntu 12.04 创建wifi分享

如果你曾想过要用12.04建立个wifi分享的话,
你应该了解到,
直接通过右上角的网络管理新建的ad-hoc很多安卓设备没法识别。

Ubuntu命令行切换鼠标左右键

话不多说,让我们开始切换:
首先让我们把鼠标切换到反手(这里之所以用反手一词,是因为有人可能是左撇子,有人是右撇子「还有右撇子?」):

Back to Top ↑

maven

用dependency插件解决依赖包冲突

偶然翻阅了下 maven dependency 插件的官方文档,颇有收获,记录一下。可能有些标题党的嫌疑,并没有具体介绍怎么解决依赖冲突问题,不过既然你都打印出了依赖树,

Back to Top ↑

reading

读《居里夫人自传》

看到“自传”二字的时候我的第一反应就是这些名人都这么把自己当回事儿了吗?不过在第一章第一节中居里夫人就回答了我的疑惑:“刚开始的时候,我觉得这个建议(写自传)对我来说真的是难以接受”。后来想了下其实 Michelle Obama 的《Becoming》也是自传啊,当时阅读时就没有这么强烈的质疑,原因大概是我对书籍类型的区分上还停留在书名而不是书籍内容上。

读《大教堂与集市》

浏览开发者头条的时候看到一篇题为《系统架构》读书笔记的文章,突然想到自己刚读完《大教堂与集市》,还没有留下一点点观后感之类的文字,没有对书本的思考,这本书就白读了吧,就像之前的《黑客与画家》,现在都记不清它都有些什么内容了。所以决定还是写点读后感类的内容。

Back to Top ↑

ssh

ProxyJump

为了安全起见,线上机器一般不会允许用户通过ssh直接登录,而是需要通过堡垒机(跳板机)跳转到目标线上机器,这样方便对权限控制的管理和访问操作的审计。不知道公司用的是哪款堡垒机产品,选择目标机器的过程异常繁琐。查看ssh的手册(manual)看到了-J选项,可以通过该选项指定ProxyJump然后直接登录到目标机器,命令如下:

SSH无密码登陆

这方面的文章网上写的也是异常泛滥了, 那我为啥还要冗余的写上一篇? 难不成这篇文章有不同于乌合之众的独特见解。

Back to Top ↑

vim

Ubuntu 12.04 vim 无系统剪切板

突然间发现我的vim系统剪切板不能用了,
之前还写过一篇日志介绍剪切板来着呢,
执行:reg确实没了"+系统剪切板,那就修复之:

VIM的剪切板

使用vim也好长时间了,差不多快三年了吧(起始大部分时间在使用模拟器)?
竟然连怎么把文本从vim复制到其他编辑器都不知道,
真是弱爆了。

Back to Top ↑

FlappyBird

Flappy Bird

<p>按空格键开始</p>
<div id="game_div"> </div>
<p>
    <a href="http://blog.lessmilk.com/how-to-make-flappy-bird-in-html5-1/" 
    target="_blank">点我</a>学习制作教程(英文)
</p>
Back to Top ↑

Kubernetes

Kubernetes原理(1)

本文将主要介绍Kubernetes集群中各个组件的工作原理(非源码级别),以帮助大家更深入的了解K8S,从而更高效地使用K8S。由于本篇不是入门级文章,需要大家对K8S有些基本的了解,知道它提供了哪些功能,才能更好地理解这篇文章。如果还不了解K8S的功能特性,可以参考这篇一起学习k8s做个快速入门。

Back to Top ↑

airflow

任务调度系统系列之Airflow

这是任务调度系统调研系列文章的开篇,后续会陆续调研Oozie,Azkaban,Dolphin Scheduler等系统。本文的主要内容是来自对官方文档和网上相关资料的调研,并非基于实际使用的经验总结,文章中难免会有一些不尽的细节或者关于Airflow错误的观点,如有不当之处,欢迎指正交流。

Back to Top ↑

ctags

给hosts文件生成ctags文件

经常编辑hosts文件, 定位具体位置的时候以前用搜索功能,但是域名相似的配置实在太多,不能立即跳转到指定地方, 其实已经把hosts划分成若干组,

Back to Top ↑

hello

你好,世界

静夜思

床前明月光,
疑是地上霜;
举头望明月,
低头思故乡。

Back to Top ↑

jump

Shell书签功能

使用shell时总会有些经常访问的目录,老是cdcd去的实在是麻烦, 这不,总会有些大牛闲着木事解放我们的双手,利用软连接实现shell下的书签(类似浏览器)。

Back to Top ↑

k8s

Kubernetes原理(1)

本文将主要介绍Kubernetes集群中各个组件的工作原理(非源码级别),以帮助大家更深入的了解K8S,从而更高效地使用K8S。由于本篇不是入门级文章,需要大家对K8S有些基本的了解,知道它提供了哪些功能,才能更好地理解这篇文章。如果还不了解K8S的功能特性,可以参考这篇一起学习k8s做个快速入门。

Back to Top ↑

logging

Java的那些日志框架们

日志在排查线上问题、跟踪线上系统运行情况中发挥着重要作用。在Java应用的开发中,常见的日志框架有JCL(commons-logging),slf4jJUL(java.util.logging),log4jlog4j2logback等。这些日志框架大致可以分为两类,一类是日志门面(JCL、slf4j),定义日志的抽象接口;另一类是日志实现(JUL,log4j,log4j2,logback),负责真正地处理日志。为什么会有这么多的日志框架呢?从Java日志框架的发展史里大概可以一探究竟。

Back to Top ↑

mysql

Back to Top ↑

pipeline

任务调度系统系列之Airflow

这是任务调度系统调研系列文章的开篇,后续会陆续调研Oozie,Azkaban,Dolphin Scheduler等系统。本文的主要内容是来自对官方文档和网上相关资料的调研,并非基于实际使用的经验总结,文章中难免会有一些不尽的细节或者关于Airflow错误的观点,如有不当之处,欢迎指正交流。

Back to Top ↑

profile

Back to Top ↑

scheduler

任务调度系统系列之Airflow

这是任务调度系统调研系列文章的开篇,后续会陆续调研Oozie,Azkaban,Dolphin Scheduler等系统。本文的主要内容是来自对官方文档和网上相关资料的调研,并非基于实际使用的经验总结,文章中难免会有一些不尽的细节或者关于Airflow错误的观点,如有不当之处,欢迎指正交流。

Back to Top ↑

self

两周年庆–好好学习

在一家公司待上两年应该也是段很漫长的日子了吧, 青春里能有几个两个(初中也才三年而已)? 第一年,虚度了闲暇的光阴,

Back to Top ↑

shell

Shell书签功能

使用shell时总会有些经常访问的目录,老是cdcd去的实在是麻烦, 这不,总会有些大牛闲着木事解放我们的双手,利用软连接实现shell下的书签(类似浏览器)。

Back to Top ↑

slf4j

Java的那些日志框架们

日志在排查线上问题、跟踪线上系统运行情况中发挥着重要作用。在Java应用的开发中,常见的日志框架有JCL(commons-logging),slf4jJUL(java.util.logging),log4jlog4j2logback等。这些日志框架大致可以分为两类,一类是日志门面(JCL、slf4j),定义日志的抽象接口;另一类是日志实现(JUL,log4j,log4j2,logback),负责真正地处理日志。为什么会有这么多的日志框架呢?从Java日志框架的发展史里大概可以一探究竟。

Back to Top ↑

thinking

长大后我就成了你

第一次接触Chrome是在大学寝室里龙哥的电脑上,那时候IE6还霸占者绝对的浏览器市场份额,装着IE内核、披着华丽外衣的国产浏览器也正春笋般崛起,真是有点被那蓝色简洁的窗体给惊讶到了,但是并没有让我从Firefox转战到Chrome,这么简单的一款产品在功能性和扩展性上怎么能和插件丰富的Firefox相比,于是我坚守在Firefox的阵地,同时鄙视、谩骂着IE。

Back to Top ↑

tomcat

Tomcat NIO Connector

Tomcat服务请求量巨大时connector线程数剧增。 Tomcat默认的connector是阻塞模式的(即BIO), 每次请求都需要一个单独线程处理,另外对于keep-alive的HTTP请求,

Back to Top ↑

translation

[译]Netflix数据平台自动诊断和自动修复系统

Netflix 目前拥有公有云上最复杂的数据平台之一,数据科学家和数据开发工程师在该平台上每天运行着大量批处理和流处理任务。随着我们的付费订阅用户在全球范围内的增长以及Netflix 正式进入游戏赛道,批、流处理任务的数量也迅速增加。我们的数据平台基于诸多分布式系统构建而成,由于分布式系统的固有特性,运行在数据平台上的任务不可避免地隔三差五出现问题。对这些问题进行定位分析是件很繁琐的事,涉及从多个不同系统收集日志和相关指标,并对其进行分析以找出问题的根本原因。在我们当前规模上,如果人工手动地定位和解决问题,即使是处理一小部分异常任务,也会给数据平台团队带来巨大的运维负担。另外,这种手动定位问题的方式,对平台用户工作效率上造成影响也不可小觑。

Back to Top ↑

world

你好,世界

静夜思

床前明月光,
疑是地上霜;
举头望明月,
低头思故乡。

Back to Top ↑

zip

Linux下解压zip中文乱码问题

遇此问题良久了,就是在该死的Windows上压缩的zip文件,在linux解压中文就乱码了,
之前只好弱弱地只在Windows下查看,好麻烦。终于忍不住google了一下,如下:

Back to Top ↑