Northpark博客

Today does not walk, will have to run tomorrow.


  • 首页

  • 关于

  • 旅行

  • 微世界

  • 音乐

  • 读书

  • 归档

日志维度分析以及自动邮件发送

Posted on 2016-04-26 | In java

今天要统计下各种维度下的数据,访问量等等,写了几个方法,实现了维度分析,并将返回结果自动发送邮件到自定义邮箱

主要实现类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public static void main(String[] args) {
try{

List<trackVO> tlist = new ArrayList<trackVO>();
List<String> list = ReadFile("/Users/jeyy/Documents/test_pc.access.log.2016-04-25");
//System.out.println(JsonContext);
for (int i = 0; i < list.size(); i++) {

//System.out.println(list.get(i));
trackVO model = JsonUtil.jsonUtil.jsonToModel(list.get(i), trackVO.class);
tlist.add(model);


}


//实现统计逻辑

Map<String, Integer> m = getCount(tlist,"pageUrl");


//打印统计结果|发送邮件
String rs = printMap(m);


EmailUtils.emailUtil.analyseLog("[email protected]", rs);



}catch(Exception e){
e.printStackTrace();
}
}
Read more »

nodejs规范工具grunt

Posted on 2016-04-11 | In nodejs , grunt

前言

一个应用开发到一定阶段,普遍会遇到一个问题。当功能越来越多,代码量越来越大,bug修复越来越频繁,开发人员一波一波的交替,…..应该用会向着越来越不可控发展。我们不能再准确估计新功能的开发时间,也不知道一个bug修复后是否会引发另一个bug出现。所有的程序开发,都会面临着这样的问题。

C/C++程序通过makefile管理编译测试打包的过程,Java程序通过Maven,Ant实现项目构建管理功能,Python有pip,Ruby有gem。在Nodejs的领域,我们同样需要一个项目构建工具,这就是Grunt。Grunt可以执行像压缩, 编译, 单元测试, 代码检查以及打包发布的任务。

目录

  • Grunt介绍
  • Grunt安装
  • Grunt使用
  • Grunt常用插件:
    1).grunt-contrib-uglify:压缩js代码
    2).grunt-contrib-concat:合并js文件
    3).grunt-contrib-qunit:单元测试
    4).grunt-contrib-jshint:js代码检查
    5).grunt-contrib-watch:文件监控

1.Grunt介绍

Grunt是一个自动化的项目构建工具. 如果你需要重复的执行像压缩, 编译, 单元测试, 代码检查以及打包发布的任务. 那么你可以使用Grunt来处理这些任务, 你所需要做的只是配置好Grunt, 这样能很大程度的简化你的工作.

如果在团队中使用Grunt, 你只需要与其他人员约定好使用Grunt应该规避的问题, 就能够很方便的自动化的处理大部分的常见工作任务, 你所付出的努力几乎为0.

Read more »

Gradle介绍及安装

Posted on 2016-04-05 | In Gradle

对Gradle进行一个简单的介绍,以及它的安装。

Gradle介绍

  • Gradle是一个基于JVM的构建工具,它提供了:
  • 像Ant一样,通用灵活的构建工具
  • 可以切换的,基于约定的构建框架
  • 强大的多工程构建支持
  • 基于Apache Ivy的强大的依赖管理
  • 支持maven, Ivy仓库
  • 支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件。
  • 对Ant的任务做了很好的集成
  • 基于Groovy,build脚本使用Groovy编写
  • 有广泛的领域模型支持构建

    Gradle 概述

  • 基于声明和基于约定的构建。
  • 依赖型的编程语言。
  • 可以结构化构建,易于维护和理解。
  • 有高级的API允许你在构建执行的整个过程当中,对它的核心进行监视,或者是配置它的行为。
  • 有良好的扩展性。有增量构建功能来克服性能瓶颈问题。
  • 多项目构建的支持。
  • 多种方式的依赖管理。
  • 是第一个构建集成工具。集成了Ant, maven的功能。
  • 易于移值。
  • 脚本采用Groovy编写,易于维护。
  • 通过Gradle Wrapper允许你在没有安装Gradle的机器上进行Gradle构建。
  • 自由,开源。
Read more »

恶棍快车之旅

Posted on 2016-03-26 | In 碎碎念

万圣节,出没在小区里的快递员穿上了动物外套,一只毛茸茸的熊头出现在门禁对讲屏上,着实吓人一跳。最近,她并没有在网店上下过单,好奇心让她早早地打开门。一只“大灰熊”从电梯里出来,麻溜地摘下熊头套,递给她一封信。
关门,拆信,里面是一张明信片形式的参观券,上面印有一列火车。她想起来了,前几天去逛商场时,促销活动是“恶棍快车之旅”,她漫不经心地签上了自己的地址,随后就忘了这事儿了。还真的要去参观吗?她走向厨房,将明信片贴在冰箱门上,冰箱压缩器恰好轰鸣起来,不知怎地,她的视线恍惚了,冰箱不再是冰箱,而是一只卡住白鲸的长方形笼子,一头白鲸眼神悲哀地在其中扭动,她扶住冰箱门,定神一看,果然只是幻觉。

“你知道方块鲸吗?一条鲸鱼卡在方块里了。”吃晚饭时,她不经意地说。

“下午办公室里还在聊这个呢。”丈夫疲倦的脸上,闪出兴奋的光,对神秘的事情,他一向热衷,“说是恶棍快车进入终点站时,会发出一种鲸鱼的叫声,就像一头鲸鱼卡在方块里,慢慢地,慢慢地窒息……”丈夫夸张地做了一个掉脑袋的动作,随后总结:即使是机器人,面对死亡,也是会被痛苦折磨的,所以,他们最好别干坏事。
胃不太舒服,她不想继续这个话题了。

晚上,他们早早地躺下。她睡了一小会儿,眼皮又睁开了,陷入了所谓的对自己完全无能为力的失眠的长夜。思绪拉扯得很开,散漫,像血瘀女子脸上的红血丝。肚子里不知发生了什么事情,不断有咕噜噜的叫声,焦躁与烦闷一阵阵地涌上来,脸颊像傍晚的天边,堆满了绚烂的火烧云。后来,月光透过窗帘缝洒到被子上,她安静了下来,一遍遍地想到海,如果那辆列车真的在终点站掉下去的话,会不会径直掉到大海里,如果是在海水里,鲸鱼就不会被卡住了吧。头一回,她对身边人的呼噜声没有反感,聆听着,像在海边住着的人,呼噜声只是海浪,她从未去过海边——现在,她对海可以一遍又一遍地猜想。


Read more »

为什么我们不会谈恋爱了

Posted on 2016-03-17 | In 碎碎念

最近看到了一篇文章

《为什么我们不会谈恋爱了?》

文丨烟波人长安

我有一个朋友,单身好些年,最近看了几场爱情电影,少女心勃发,哭着喊着要谈恋爱。我说这个简单啊,满世界是男人,总有一个你看上眼的吧?难不成你看上的是吴彦祖?
朋友说不是啊,你不觉得谈恋爱很难吗?
哪里难了?我反问,喜欢就表白,成功了就在一起,不成功找下一个,不难啊。
你说得轻松。朋友说,第一眼看上了,要找机会说话吧?万一聊不到一块儿怎么办?两个人都不说话,给谁默哀呢?有了共同话题,就要考虑将来一起生活,是不是又一堆问题?到我这年纪,恋爱多数都是奔着结婚去的,我总不能等结婚了,发现不合适,再离婚吧?
哦,她今年27,家里催婚,已经催了两年。
真的,都快不会谈恋爱了。朋友说。
这种时候,一般都应该我出马,告诉她爱情很美好恋爱很温馨喜欢就要上一类的话,灌一碗鸡汤,打一打鸡血,安慰加鼓励。
但我仔细想想她那一连串问句,发现我没有办法说些这样的话。
再仔细想想,周围单身的朋友一大把,年龄相仿境遇相似,每年的愿望都是脱单,但他娘的,一直没有实现过。也不是没有“好像还挺合适的”那个人,但都没有走到一起。
什么时候,谈恋爱变得这么难了?

(~﹃~)~zZ

Read more »

hibernate基于注解的主键生成策略

Posted on 2016-03-15 | In hibernate

楔子

最近想把UUID32位的主键策略改为6位的INT自增的主键,来改善个人网站的优雅和简洁性。于是找了些资料整理在这。由于我的网站用的注解,来减少xml配置文件带来的烦躁,所以主键策略一定要是基于注解的。

一. 自定义主键生成策略,由@GenericGenerator实现。**

hibernate在JPA的基础上进行了扩展,可以用一下方式引入hibernate独有的主键生成策略,就是通过@GenericGenerator加入的。**

比如说,JPA标准用法**

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

@Id
@GeneratedValue(GenerationType.AUTO)

就可以用hibernate特有以下用法来实现

@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "assigned")


@GenericGenerator的定义:

@Target({PACKAGE, TYPE, METHOD, FIELD})
@Retention(RUNTIME)
public @interface GenericGenerator {

String name();

String strategy();

Parameter[] parameters() default {};
}

  • name属性指定生成器名称。
  • strategy属性指定具体生成器的类名。
  • parameters得到strategy指定的具体生成器所用到的参数。
Read more »
1…678…16
Bruce

Bruce

Extreme ways

92 posts
45 categories
83 tags
RSS
GitHub Twitter Facebook
Links
  • NorthPark
  • 挖粪の男孩
  • 小白博客
© 2015 - 2019 Bruce
Powered by Hexo
NorthPark中文网
Mac破解软件
院线大片
情商提升
  本站访客数 人次   本站总访问量 次