`
文章列表
Groovy写得久了,很难再写纯Java程序了。 我最近换工作,就抽时间把之前累积的代码重写一下,开源出来。   ActiveRecord Style RMDB Database Access Library For Groovy Developers.   A macro groovy web framework inspired by sparkjava.   Docker Container Manage System, Like A Mini Kubernetes.
其实gradle ssh plugin已经很方便了,就是我们公司的内网没有外网环境,配置gradle依赖有点麻烦。所以就模仿写了一个,发现还是挺好用的,附上一个例子,扫描一些目标机器并添加ssh key免登陆。只依赖了commons-net/jsch import org.apache.commons.net.telnet.TelnetClient def mkHostTrust = {String hostToBeTrust, String targetHosts -> JschUtils.session(hostToBeTrust){session -> Js ...

撸一个sso server

sso的软件之前公司也在用,现在的小团队准备上一个,cas之类。原理方面大概懂,就补了下知识,参考了这个文章——单点登录原理与简单实现,撸了一个,请参考附件。PS:只支持数据库存储和验证,没有抽象验证源等,比较简单。
公司的团队有这方面的需求,为了配合前端做一些接口mock,一般我们会先写文档和假数据的接口。http://git.oschina.net/key232323/mocker   为了方便,我就写了一个利用“元数据”(非dsl),比较像yaml格式的描述字符串,解析生成对应的文档、数据接口和类型,用jetty提供http mock,h2做持久化,gradle构建。用法很简单,clone or download下来,gradle runJetty就可以了。   元数据类似这样:     mbegin method=get des=xxx url=/mock/test/ur ...
gradle是个构建工具,dsl特性,向前还兼容已有的java/maven生态的技术,已经发展的比较庞大了。   之前只是做java的项目构建,最多在部署到服务器的时候用他的ssh插件做个file upload和服务器重启。   这几天公司里有了好多台 ...
Spring使用groovy作为bean,官方用了lang标签,但都是一个个文件。Groovy本身编译成class文件后当然可以和Java完全一样可以被component-scan。   但是我想实现能够扫描groovy文件,并且groovy文件发生修改时候能够重新load(方便开发环境中提高效率),网上查查了,然后自己摸索了下,简单实现了。   思路: 1. 通过NamespaceHandlerSupport自己写一个parser,parser和已有的component-scan的区别就是修改了ClassPathBeanDefinitionScanner的reourceLoader ...
从14年中开始陆续一年,断断续续学习了下Golang,看了Go语言编程,Go语言程序设计2本书。 始终觉得应该做点项目锻炼下,因为正好看《从paxos到zookeeper》,就尝试写一些网络应用,分布式存储这块是比较热门的,自己就比葫芦画瓢做了一个项目whisper。 http://git.oschina.net/key232323/whisper   Raft协议到是看懂了,但一直没有自己写,开源上也有golang的库,自己就偷懒了,还是master/slave的简单粗暴。   用了一些第三方库gorpc,btree做索引,自己设计了索引分片、日志,多副本存储,sub/pub等。 ...
摘要:Groovy用@CompileStatic性能和Java一样,Script比Java慢一个数量级。 在业务方法占主要消耗时间的情况下,均无区别。   先说结论,如上面摘要所述,用Groovy的语法糖的同时如果苛求性能,就加@CompileStatic编译注解。 下面是用punit做的2次并发性能测试结果,第一次是执行一个简单的方法调用,第二个是模拟一个耗时的业务方法。 工程代码,请参考我的git: http://git.oschina.net/key232323/groovy-performance-test  
groovy都已经2.4.*版本了,好多新特性,对于其他语言不算新了,积累的语法糖其实都是1.8以后都有的   // no class declareation -> subclass of Script package com.innohub.syntax // 输出太多,这个作为一块开始的标示 String hr = (1..10).collect{'***'}.join(' ') def pp = {String str, obj -> println str.padRight(40, ' ') + obj } pp 'My Class' ...
工作一直做web开发,今天偶尔看到讲解算法的blog,想试试看看根据思路能否自己实现下,对算法不自信的曾经的学渣同学竟然写出来了!正好好久不写blog,发一篇证明下自己还活着。   class kmp { final static boolean isDebug = false private static List getMatMapNumber(String str){ def numList = [0] int len = str.size() str.eachWithIndex{ch, i -> // 首位是0,跳过 ...
最近看知乎,好有多讨论ng的,有观望准备学习的,也有使用中传播经验的。   我们公司算是大范围用(金融类核心系统,ng的业务相关的代码量在百万级别),ng的经验算是积累了些,写这篇blog发表下我的一些看法。   1. 如题目说angular是强大的,这里是有应用场景做背景的,双向绑定很多框架都能做,但 scope的设计 + 容器思想 + 双向绑定这些特性组合起来,更适合复杂的web开发场景:组件化,解耦。   2. angular官方介绍的首先提出的是增强的html语法,组件化技术也有很多,和服务端驱动相比,处理视图部分ng的理念应该是标记语言+ 声明式更适合UI,简单很重要 ...
大家先看下PC网站的样子(请用webkit浏览器访问) http://115.28.42.207/jj/index 功能包括 用户注册、登录、发帖、评论   1. 网站已经有的内容是自己写脚本爬下来的 2. 前端用的ionic,配合angular,写代码很少,不愧是mobile web开发利器 3. 服务端用的nginx + vert.x,json交互 4. 用phonegap打包成apk的时候有点讲究,为了b/s结构不让客户端更新版本,所以动态的内容全部引用远程的html/js/css,但是这样速度很慢。我的做法是:  a) 把固定的第三方库的js/css都放到asset ...
最近职业上瓶颈感很强,有跳槽打算,准备好了简历,在外边尝试面试了一些公司。   在职状态6月份面试了6个职位,一个创业公司,一个华为云计算的职位,3个腾讯的前端职位,一个百度的前端职位——我简历上明明写的 ...
工作中为测试童鞋们写的一个小工具,之前都是测试自己写java代码,调用一些公用的方法,如登录,准备数据接口,然后再调用http,返回json做断言。我看到大部分流程都类似,反复写这些代码不如写个脚本,只需要简单的配置文件就可以了,可惜脚本写的不够强大,没有达到dsl输入的目标。   eg. 配置文件如下   # des 测试2说明# setup ;sql insert into t_test(name) values ('kerry1'); insert into t_test(name) values ('kerry2'); ;sqlFile insert1.sql ;request ...
PrimeUI是JSF框架Primefaces的团队开发的一套基于jquery/jquery-ui的一套前端控件库, github上有人基于PrimeUI做了angular的wrapper,但我觉得不够the angular way——当然the angular way我也不绝对认同,我这次重新的代码也有很多dom操作、事件代理而非用模板。目前已经重写了以下控件,和PrimeUI相比还缺少dialog/menu系列,代码共享在github/osc git上,如果有感兴趣的童鞋,可以参考下,欢迎拍砖,和push request。   https://github.com/segment1 ...
Global site tag (gtag.js) - Google Analytics