自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ran's Hacking Zone

Welcome my friend.

  • 博客(71)
  • 收藏
  • 关注

原创 angularjs directive属性解析

代码样例angular.module('docsTransclusionExample', []).controller('Controller', ['$scope', function($scope) { $scope.name = 'Tobias';}]).directive('myDialog', function() { return { restrict: '

2018-01-11 11:26:59 364

原创 Scala Trait

trait 是一种支持多重继承的类。类、case类、对象,以及trait都只能扩展不超过一个类,但是可以同时扩展多个trait。不过,与其他类型不同,trait不能实例化。语法:定义traittrait identifier> [extends identifier>] [{ fields, methods, and classes }]trait看起来与其他类型的类是一样的。不过,类似对

2017-03-15 15:58:10 568

转载 理解Spark RDD中的aggregate函数

针对Spark的RDD,API中有一个aggregate函数,本人理解起来费了很大劲,明白之后,mark一下,供以后参考。首先,Spark文档中aggregate函数定义如下def aggregate[U](zeroValue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U)(implicit arg0: ClassTag[U]): UAggregate t

2017-03-01 16:33:37 822

原创 Spark RDD编程

0. RDD基础RDD(Resilient Distributed Dataset):弹性分布式数据集Spark中的RDD其实是一个不可变的分布式对象集合,每个RDD都被分为多个分区,这些分区运行在集群上的不同节点上。在Spark中,对数据的所有操作不外乎创建RDD、转化已有RDD以及调用RDD操作进行求值。而在这一切的背后,Spark会自动将RDD的数据分发到集群上,并将操作并行化执行。创

2017-02-16 21:58:48 1258

原创 Scala柯里化和反柯里化

名词解释 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。柯里化举例说明def curry1[A, B, C](a: A, f: (A, B) => C): B => C = (b: B) => f(a, b)这个函数的结果是一个高阶函数接收一个带有两个参数的函数,进行部分应

2017-02-11 15:00:50 1384

原创 Scala函数字面量

当我们定义一个函数字面量时,实际上定义了一个包含apply方法的Scala对象。Scala对这个方法名有特别的规则,一个有apply方法的对象可以把它当成方法一样调用。我们定义一个函数字面量(a, b) => a < b,它其实是一段创建函数对象的语法糖:val lessThan = new Function2[Int, Int, Boolean] { def apply(a: Int, b

2017-02-10 15:18:18 1351

原创 Awesome Maven

maven中如何指定jdk的版本 .

2017-01-14 15:54:42 479

原创 Scala标识符

0. 前言Scala 在构成标识符方面有非常灵活的规则,共分为以下四种:1. 字母数字标识符字母数字标识符(alphanumeric identifier): 起始于一个字母或下划线,之后可以跟字母,数字,或下划线。$ 字符也被当作是字母,但是被保留作为 Scala 编译器产生的标识符之用。用户程序里的标识符不应该包含$字符,尽管能够编译通过;但是这样做有可能导致与 Scala 编译器产生的标识符

2016-12-02 00:02:36 1359

原创 SQL完整性约束

0. 前言完整性约束保证授权用户对数据库所做的修改不会破坏数据的一致性。1. 单个关系上的约束1.1 not null 约束not null声明禁止在该属性上插入空值。任何可能导致向一个声明为not null的属性插入空值的数据都会产生错误诊断信息。1.2 unique约束unique (Aj1A_{j1}, Aj2A_{j2},…, AjmA_{jm}) unique声明指出Aj1A_{j1}

2016-11-06 15:40:01 2777

原创 SQL聚集函数

0. 简介聚集函数是以值的一个集合(集或多重集)为输入、返回单个值的函数。 SQL提供了五个固有聚集函数:平均值:avg最小值:min最大值:max总和:sum计数:count1. 基本聚集e.g.select avg(salary)from instructorwhere dept_name = "Computer"2. 分组聚集在SQL中可以使用group by子句将聚集函数作

2016-10-28 22:21:51 862

原创 SQL的那些事儿

1. SQL查询语言概览SQL语言有以下几个部分:数据定义语言(Data-Definition Language, DDL): SQL DDL提供定义关系模式、删除关系以及修改关系模式的命令。数据操纵语言(Data-Manipulation Language, DML): SQL DML提供从数据库中查询信息,以及在数据库中插入元组、删除元组、修改元组的能力。完整性(integrity): S

2016-10-20 15:50:20 288

原创 关系模型的那些事儿

数据模型:描述数据、数据联系、数据语义及一致性约束的概念工具的集合在关系模型的术语中,关系(relation)用来指代表,而元组(tuple)用来指代行, 属性(attribute)指代的是表中的列。超码(superkey)是一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一的标识一个元组。最小超码称为候选码(candidate key)。主码(primary key): 代表被数

2016-10-20 11:34:09 660

原创 Java Happen-Before规则

虽然Java虚拟机和执行系统会对指令进行一定的重排,但是指令重排是有原则的,并非所有的指令都可以随便改变执行位置,以下的原则是指令重排不可违背的:程序顺序原则: 一个线程内保证语义的串行性volatile规则:volatile变量的写,先发生于读,这保证了volatile变量的可见性锁机制:解锁(unlock)必然发生在随后的加锁(lock)前传递性:A先于B, B先于C, 辣么A必然先于C

2016-10-11 21:17:52 597

原创 以太网(802.3)帧格式

1. 以太网帧格式2. 字段说明Preamble(前导码): 用于接收方与发送方的同步,7个字节,每个字节的值固定为0xAA.SFD(start frame delimiter): 帧起始定界符,用于标识一个以太网帧的开始,值固定为0xAB.DST && SRC: 分别表示标识目标地址和源地址。它们均为6个字节长。如果传输出去的目标地址第一位是0,则表示这是一个普通地址;如果是1, 则表示这是

2016-10-10 22:08:44 23581 2

原创 Gnome 个人目录下中文路径转英文路径

1. 通过修改系统语言首先查看系统当前语言$echo $LANGzh_CN.UTF-8修改系统语言为en_US export LANG=en_US通过命令xdg-user-dirs-gtk-update自动修改个人目录下的文件名, 会跳出对话框,提示是否更新成英文,同意即可[zhuoran@localhost yum.repos.d]$ xdg-user-dirs-gtk-update Gt

2016-10-10 14:38:36 2770

原创 Extreme Summit交换机ACL配置

前言: 笔者实验用的交换机型号为Extreme Summit X670-48x。1. 查看交换机上全局ACL规则使用命令show access-list:2. 查看特定端口的ACL规则例如我要看port 29的规则,则可使用命令: show access-list port 29 egress detail3. 创建ACL命令使用create access-list <ACL名> <条件> per

2016-10-04 00:25:18 1802 1

原创 Junit4 with Intellij Idea and Maven

1. 预准备工作Intellij Ideamaven3.x2. 在maven中配置junit仓库在对应module的pom.xml中,添加:<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>

2016-09-30 10:50:34 407

原创 修改Maven仓库的存放位置

Maven仓库类型Local: 本地仓库Remote: 远程仓库位置Mirrors: 镜像仓库(e.g. Nexus, Artifactory)修改步骤在.m2目录下创建一个名为setting.xml的文件在settings.xml中添加以下内容:<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs

2016-09-29 17:28:30 457

原创 Java线程状态

1. 线程状态Java的线程可以有以下6种状态:New(新创建)Runnable(可运行)Blocked(被阻塞)Waiting(等待)Timed waiting(计时等待)Terminated(被终止)2. 新创建线程当用new操作符创建一个新线程时,如new Thread(T),该线程还没有开始运行。当线程处于新创建状态时,程序还没有开始运行线程中的代码。3. 可运行线程一旦调用s

2016-08-02 11:40:51 395

原创 byte[]数组作为map的key的问题

byte[]数组作为key值,只是数组的地址的引用的hashcode,不能够根据byte[]数组的内容来,创建相应的hashcode,也就是所谓的索引key。所以,如果想用byte[]数组来作为map的key值的话,有三种方法: 1. 将byte[],先转化为string 2. 将采用list<byte> 3. 将byte[]自己包装,使用byte[]数组的内容来重写hashcode和equ

2016-07-11 17:07:38 8025

原创 Suricata+PF_RING安装详解

1. 前言Suricata的安装包可以从 github上克隆安装,可以从Suricata官网进行下载。本文的测试以github上的版本为例。本文的测试平台为 CentOS release 6.7 (Final),不同Linux平台类似。由于实际需求,本文中的Suricata编译将加入PF_RING零拷贝工具。2. Suricata Build Info 详解[root@monster sur

2016-06-15 13:12:26 4166

原创 LeetCode No330. Patching Array

1. 题目描述Given a sorted positive integer array nums and an integer n, add/patch elements to the array such that any number in range [1, n] inclusive can be formed by the sum of some elements in the ar

2016-06-10 14:02:50 299

原创 LeetCode No331. Verify Preorder Serialization of a Binary Tree

1. 题目描述One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node’s value. If it is a null node, we record using a sentinel value such as

2016-06-06 23:09:30 268

原创 LeetCode No332. Reconstruct Itinerary

1. 题目描述Given a list of airline tickets represented by pairs of departure and arrival airports [from, to], reconstruct the itinerary in order. All of the tickets belong to a man who departs from JFK. Th

2016-06-04 15:47:54 406

原创 Graph的那些事儿

0. 导言为了让代码更加清晰,有以下一些约定:Graph的表示使用邻接表,更详细的说明参见 图的表示本文代码中使用的图为 有向图,图中的顶点用 int 型来表示图的顶点数经初始化后不可变,图的初始化有以下两种形式Graph(int verCount);Graph(String filename);其中文件内容为:100 // 顶点数1000 //边数52 59 // 以下每一行代表一

2016-05-30 17:09:32 677

原创 LeetCode No334. Increasing Triplet Subsequence

1. 问题描述Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the array.Formally the function should: Return true if there exists i, j, k such that arr[i] <

2016-05-27 22:18:08 310

原创 Web缓存工作原理

现代的商业化代理缓存相当的复杂。这些缓存构建的非常高效,可以支持HTTP和其他一些技术的各种高级特性。但除了一些微妙的细节之外,Web缓存的基本工作原理大多很简单。对一条HTTP GET报文的基本缓存处理过程包括7个步骤:接收——缓存从网络中读取抵达的请求报文解析——缓存对报文进行解析,提取URL和各种首部查询——缓存查看是否有本地副本可用,如果没有,就获取一份副本(将其保存在本地)新鲜度检

2016-05-24 23:46:46 5544

原创 LeetCode No336. Palindrome Pairs

1. 题目描述Given a list of unique words. Find all pairs of distinct indices (i, j) in the given list, so that the concatenation of the two words, i.e. words[i] + words[j] is a palindrome.Example 1: Given

2016-05-22 22:45:47 419

原创 LeetCode No.337. House Robber III

1. 题目描述The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the “root.” Besides the root, each house has one and only one parent house. Aft

2016-05-22 22:23:33 285

原创 HTTP代理的那些事儿

1. Web的中间实体Web代理(proxy)服务器是网络的中间实体。代理位于客户端和服务器之间,扮演”中间人”的角色,在各端点之间来回传送HTTP报文。代理服务器可以是某个客户端专用的,也可以是很多客户端共享的。单个客户端使用的代理被称为私有代理。众多客户端共享的代理被称为公共代理。代理与网关的对比:严格的说,代理连接的是两个或多个使用相同协议的应用程序,而网关连接的则是两个或多个使用不同协

2016-05-20 22:43:29 7275

原创 LeetCode No338. Counting Bits

1. 题目描述Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1’s in their binary representation and return them as an array.Example: For nu

2016-05-19 10:49:39 329

原创 CAP和BASE理论

1. CAP定理CAP理论告诉我们,一个分布式系统不可能同时满足一致性(C:Consistency),可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个需求,最多只能同时满足其中的两项。 1.1 一致性在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性。在一致性的需求下,当一个系统在数据一致的状况下执行更新操作后,应该保持系统的

2016-05-16 12:49:51 666

原创 PF_RING ZC流量转发详解

1. 准备工作首先新建四个虚拟接口(dummy interface)进行后续的报文转发和计数modprobe dummy numdummies=4ifconfig dummy0 upifconfig dummy1 upifconfig dummy2 upifconfig dummy3 up注:若想卸载这四个虚拟接口,请运行rmmod dummy2. zbalance_ipc程序进行流量转发测

2016-05-15 12:20:39 5680

原创 LeetCode No341. Flatten Nested List Iterator

1. 题目描述Given a nested list of integers, implement an iterator to flatten it.Each element is either an integer, or a list – whose elements may also be integers or other lists.Example 1: Given the list

2016-05-14 13:14:23 389

原创 LeetCode No342. Power of Four

1. 题目描述Given an integer (signed 32 bits), write a function to check whether it is a power of 4.Example: Given num = 16, return true. Given num = 5, return false.Follow up: Could you solve it without l

2016-05-13 12:09:00 300

原创 LeetCode No343. Integer Break

1. 题目描述Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.For example, given n = 2, r

2016-05-13 11:41:08 280

原创 HTTP连接管理的那些事儿

1. HTTP连接HTTP连接实际上就是TCP连接和一些使用连接的规则。TCP为HTTP提供了一条可靠的比特传输管道。从TCP连接一端填入的字节会从另一端以原有的顺序、正确地传送出来。E.g. http://blog.csdn.net/okingniko/article/details/50986039 1. 浏览器解析出主机名blog.csdn.net 2. 浏览器查询这个主机的IP地址(D

2016-05-12 16:09:19 480

原创 LeetCode No344. Reverse String

1. 题目描述Write a function that takes a string as input and returns the string reversed.Example: Given s = “hello”, return “olleh”.2. 初步思路直接使用标准库reverse函数3. 初步算法class Solution {public: string revers

2016-05-12 11:05:11 241

原创 LeetCode No345. Reverse Vowels of a String

1. 题目描述Write a function that takes a string as input and reverse only the vowels of a string.Example 1: Given s = “hello”, return “holle”.Example 2: Given s = “leetcode”, return “leotcede”.2. 初步算法cla

2016-05-12 10:59:46 289

原创 LeetCode No347. Top K Frequent Elements

1. 题目描述Given a non-empty array of integers, return the k most frequent elements.For example, Given [1,1,1,2,2,3] and k = 2, return [1,2].Note: You may assume k is always valid, 1 ≤ k ≤ number of uni

2016-05-12 10:38:39 286

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除