Ubuntu 16.x 安装Gitlab

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 在GitLab的官方网站上面对Ubuntu的支持也是很好的,有比较详尽的安装指南。 在介绍postfix的地方有少部分的坑,本文抛砖引玉,解决一些我遇到的坑。 本文主要针对Ubuntu 16.04,介绍如何安装Gitlab。其他的Ubuntu可以作为一个参考。

Read more

Ubuntu 安装 JDK7 / JDK8的两种方式

使用ppa源方式安装

  1. 添加ppa
1
2
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
  1. 安装oracle-java-installer

JDK7

1
sudo apt-get install oracle-java7-installer

JDK8

1
sudo apt-get install oracle-java8-installer
Read more

docker学习记录

一、Docker 简介

Docker 两个主要部件:

  • Docker: 开源的容器虚拟化平台
  • Docker Hub: 用于分享、管理 Docker 容器的 Docker SaaS 平台 – Docker Hub

Docker 使用客户端-服务器 (C/S) 架构模式。Docker 客户端会与 Docker 守护进程进行通信。Docker 守护进程会处理复杂繁重的任务,例如建立、运行、发布你的 Docker 容器。Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker 客户端去连接一个远程的 Docker 守护进程。Docker 客户端和守护进程之间通过 socket 或者 RESTful API 进行通信。

Read more

第十二章:Akka构建扩展、分布式应用

主要内容:

  1. Akka背后哲学思想
  2. Actor并发、STM、代理以及数据流
  3. 构建一个大型的可扩展应用:Akkaoogle

本章介绍一个已有的Scala工具包:Akka,让你为JVM平台构建新一代的、事件驱动的、容错的、可伸缩的分布式应用。Akka提供了多并发的抽象,本章着重探索其内容。前面内容,仅介绍了Actor面向消息的(message-oriented)并发使用。这里将继续探索诸如 STM、Agent和Dataflow的并发抽象内容。

Read more

第十一章:Scala和Java相互集成

主要内容:

  1. Scala中使用Java
  2. 使用Java泛型和集合
  3. 集成问题
  4. 使用Java框架构建Web应用

最激动人心的事情是,Scala可以运行在JVM上。这带来的好处是你可以使用构建在JVM语言上的所有框架和工具。基于JVM,更有一些公司甚至不使用Java作为他们的首选编程语言。对于大多数企业软件项目,我坚信不支持JVM的语言,几乎不可能实现。

Scala的一个主要设计目的,是令其运行在JVM上,并提供对Java的相互协作。Scala被编译为Java字节码,所以你可以使用如javap(Java class file disassembler)工具,对有Scala编译器生成的字节码进行反编译。大部分情况下,Scala的特性被转换为Java的特性,因此Scala可以轻松和Java集成。例如,Scala使用类型擦除来兼容Java。类型擦除1 (Type erasure)也允许Scala对JVM的动态类型进行集成。一些Scala特性(如traits),不会直接地映射为Java,在这种情况下,你需要灵活变通地使用。

虽然对Java的大部分集成都可轻松实现,我仍然更推荐你使用 pure Scala。我尝试查找两者之间某些等价的部分,以及Scala不能实现的,则使用Java来解决。使用Java库的不好的方面是,你必须处理可变性、异常、空值这些Scala中绝对不会出现的问题。在Scala中,需要特别小心地选择Java的库或者框架。以一个编码良好的Java库Joda-Time为例。

Scala和Java最通常的集成,是指部分项目由Scala编写的。小节11.4将介绍Scala中使用Java框架,Hibernate、Spring等的web项目构建。

Read more