8 未闻小然桑

尚未进行身份认证

咱的目标是星辰大海。。。

等级
TA的排名 5w+

angularjs directive属性解析

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

2018-01-11 11:26:59

Scala Trait

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

2017-03-15 15:58:10

理解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

Spark RDD编程

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

2017-02-16 21:58:48

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

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

Awesome Maven

maven中如何指定jdk的版本 .

2017-01-14 15:54:42

Scala标识符

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

2016-12-02 00:02:36

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

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

SQL的那些事儿

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

2016-10-20 15:50:20

关系模型的那些事儿

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

2016-10-20 11:34:09

Java Happen-Before规则

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

2016-10-11 21:17:52

以太网(802.3)帧格式

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

2016-10-10 22:08:44

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

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

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

修改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

Java线程状态

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

2016-08-02 11:40:51

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

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!