这篇记录一下浏览器的请求过程,NIO,字符编码等。
Vim 自动补全插件 YouCompleteMe 安装与配置
概述
对于代码自动补全,之前一直使用的是Shougo/neocomplcache和Shougo/neosnippet。早就听说过YouCompleteMe的大名,一直想尝试一下YCM,但是还是拖到了现在。YCM和其它Vim插件的安装有些不同,可能需要折腾一下。之所以安装稍微会麻烦些,是因为YCM 后端调用 libclang(以获取AST,当然还有其他语言的语义分析库)、前端由 C++ 开发(以提升补全效率)、外层由 python 封装(以成为 vim 插件),它可能是安装最复杂的 vim 插件了。YCM是Client-sever架构的,Vim这部分的YCM只是很小的一个客户端,与具有大量逻辑和功能的ycmd HTTP+JSON交互。server在你开启或关闭Vim是自动开启或关闭。
其它自动补全的插件基本上是基于文本的,也就是说它们基本上是使用正则去猜。区别于其它Vim的自动补全插件,YCM基于语义引擎(比如C家族的libclang)提供了语义补全,是通过分析源文件,经过语法分析之后进行补全。对于C家族的语言这种基于语义的自动补全依赖于clang/llvm,其他语言 ,会调用vim设置的omnifunc来匹配,可以查看github
- Java/Ruby eclim
- Python Jedi
- Go Gocode
- C# OmniSharp
- JavaScript Tern for Vim
YCM不是基于前缀补全的,而是子序列,所以输入 abc 可以补全 xaybgc,它对于大小写的补全也非常智能。对于C家族的语言和Python支持跳转到定义处。此外还可以对文件路径进行补全,和ultisnips也很好结合。
Shiro & CAS 实现单点登录
概览
单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。
本文使用开源框架Jasig CAS来完成单点登录。下载地址:https://www.apereo.org/cas/download。在写本文时,使用的cas server版本为4.0.1
Shiro笔记
简介
Apache Shiro是一个强大易用的Java安全框架,可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。
- Authentication:身份认证/登录,验证用户是不是拥有相应的身份;
- Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;
- Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;
- Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;
- Web Support:Web支持,可以非常容易的集成到Web环境;
- Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率;
- Concurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;
- Testing:提供测试支持;
- Run As:允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;
- Remember Me:记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。
FreeMarker-XML处理笔记
揭示XML文档
test.xml
1 | <book> |
- 根节点是“文档”而不是book
- 如果 B 是 A 的直接后继,我们说 B 节点是 A 节点的 child 子节点,A节点是B节点的parent父节点。
- 元素,文本,注释,处理指令都是DOM树的节点
FreeMarker-程序开发指南笔记
FreeMarker-模板开发笔记
深入理解Java虚拟机笔记三(JVM性能监控与故障处理工具)
概述
大多工具都是对jdk/lib/tools.jar类库的一层包装,SUN JDK监控和故障处理工具:
- jps:JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程
- jstat:JVM Statistics Monitoring Tool,用于收集HotSpot虚拟机各方面的运行数据
- jinfo:Configuration Info for Java,显示虚拟机配置信息
- jmap:Memory Map for Java,生成虚拟机的内存转储快照(heap dump文件)
- jhat:JVM Heap Dump Browser,用于分析heap dump文件,会建立一个HTTP/HTML服务器,让用户可以在浏览器查看分析结果
- jstack:Stack Trace for Java,显示虚拟机的线程快照
然后还有两个GUI工具:
- jconsole:略微过时的JVM各状态查看工具
- visualVM:Sun出品的强大的JVM工具,推荐使用!