写在前面
本系列是综合了自己在学习spark过程中的理解记录 + 对参考文章中的一些理解 + 个人实践spark过程中的一些心得而来。写这样一个系列仅仅是为了梳理个人学习spark的笔记记录,所以一切以能够理解为主,没有必要的细节就不会记录了,而且文中有时候会出现英文原版文档,只要不影响理解,都不翻译了。若想深入了解,最好阅读参考文章和官方文档。
继续阅读 »
写在前面的话
公司一些项目已经使用了JMS相关的组件,我们的项目接下来可以在某些功能上也会使用此组件,公司其他项目使用的HornetQ,为了方便接下来项目的进展,前期对相关的JMS中间件进行技术了解。
前期准备
操作系统:ubuntu14.04 64位
ActiveMQ:5.9.1 下载地址:http://activemq.apache.org/download.html
JDK:1.7.0_55
继续阅读 »
nodejs安装
nodejs使用Linux Binaries安装
$ wget https://nodejs.org/dist/v4.1.0/node-v4.1.0.tar.gz
$ tar -zvxf node-v4.1.0.tar.gz
$ ./configure
$ make
$ [sudo] make install
继续阅读 »
有过网站优化经验的都知道,减少请求的页面大小可让网站速度变更快,这里我们可以利用Nginx自带的Gzip模块来实现优化
Gzip(GNU-ZIP)是一种压缩技术。经过Gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多。Gzip的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。浏览器那里不需要我们担心,因为目前的巨大多数浏览器都支持解析gzip过的页面。 Nginx的压缩输出有一组gzip压缩指令来实现。相关指令位于nginx.conf 的http{….}两个大括号之间。
继续阅读 »
现在让我们开始学习如何运行一个传统的“Hello World”程序,这基本上是学习任何编程语言的需要做的第一步。下面将会告诉你如何编写、保存与运行 Python 程序。
通过 Python 来运行的你的程序有两种方法
使用交互式解释器提示符
直接运行一个源代码文件
继续阅读 »
背景
在日常开发中,有一些常见的环境,比如Dev、UAT、预发、生产等,当然并不是每个公司都是这样。有时候开发环境一切正常,但是到线上的UAT环境或预发等等会出现各种问题,那么你是不是经常需要进行本地修改代码、提交、编译、打包、上传、运行、查看日志等这一系列步骤呢?这种方式不仅低效、繁琐而且容易引入诸多不可控的因素,比如你在任意一个环节出现问题,可能都会影响到程序最终的运行结果。而如果能有一种神器,可以对正在运行的程序,进行动态追踪、错误诊断、性能剖析等,是不是无形中为你延长了生命呢?如果你之前不知道也就罢了,然而如果你看到这里了,却还不学习的话,就是你自己的锅了。
Java运行时追踪工具
常见的动态追踪工具有BTrace、H
继续阅读 »
平时工作中,有时候需要将自己写的Python脚本在Windows运行,但是若Windows没有安装Python,那么就不能直接运行Python脚本。本文介绍一种方法,通过PyInstaller工具将Python脚本打包成一个可执行文件,可以直接在Windows运行,不管Windows是否安装Python都可以运行该可执行文件,详细步骤如下:
继续阅读 »
benchmark意为基准测试,常用来比较程序的性能。例如,比较不同方式拼接字符串的效率:
js
var a = 'hello' + 'world'
var b = ['hello', 'world'].join('')
常用方法有:
运行相同的次数,用时少的效率高
运行相同的时间,运行次数多的效率高
1. 运行相同的次数
例如:
```js
function f1() {
return 'hello' + 'world'
}
function f2() {
return ['hello', 'world'].join('')
}
function benchmark(name, fn) {
var ti
继续阅读 »
在项目开发中,大部分 Android 开发者都使用过 ButterKnife 这个通过注解简化代码的框架。部分 Android 开发者也使用过 xUtils 这种快速开发的框架。
两者均使用到了注解。在上一篇 Java注解、反射,安卓IOC(一) 中我们知道了注解及反射的用法。本篇会分别介绍下其实现机制。
运行时注解
首先我们自己简单实现类似 xUtils 这种运行时注解框架。
绑定 View 控件
创建注解:
```java
@Retention(RetentionPolicy.RUNTIME)//运行时注解
@Target(ElementType.FIELD)//Target为属性
public @interface
继续阅读 »
在Javascript的开发过程中,经常会遇到一些重复性的任务,比如合并文件、压缩代码、检查语法错误、将Sass代码转成CSS代码等等。通常,我们需要使用不同的工具,来完成不同的任务,既重复劳动又非常耗时。Grunt就是为了解决这个问题而发明的工具,可以帮助我们自动管理和运行各种任务。
简单说,Grunt是一个自动任务运行器,会按照预先设定的顺序自动运行一系列的任务。这可以简化工作流程,减轻重复性工作带来的负担。
安装
Grunt基于Node.js,安装之前要先安装Node.js,然后运行下面的命令。
```javascript
sudo npm install grunt-cli -g
```
grunt-cli表示
继续阅读 »