ブログ::=(メモ|落書き)帳

一人前になれないプログラマのメモと落書き

SonarQubeをUbuntu14.04にインストール

コードの品質管理ツールであるSonarQubeのインストール手順をまとめる。 SonarQubeの説明は、ユカイ、ツーカイ、カイハツ環境!(17):コード探知機「Sonar」でプロジェクトの深海を探れ! (1/4) - @ITを読むべし。

SonarQubeのセットアップ

SonarQubeは、以下の3つのコンポーネントを必要とする。

  1. データベース
  2. Webサーバ
  3. アナライザ

データベースとアナライザはいくつか選択肢があるけど、今回は、データベースをMySQL、アナライザはMavenのPluginを使う。 他の構成で設定したければ、Installing - SonarQube - Confluenceを参考に。

MySQLの設定

MySQLのインストールはネット調べればすぐ出るので今回は省略し、設定だけ書く。

まず、ターミナルで以下のコマンドを打つ。

mysql -u root -p

次に以下の設定を行う。

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;

↓こんなの↓を用意してくれているのでそれを使用すればいいと思う。 sonar-examples/scripts/database/mysql at master · SonarSource/sonar-examples · GitHub

Web serverのインストール

/etc/apt/sources.listに以下の内容を追加する。

deb http://downloads.sourceforge.net/project/sonar-pkg/deb binary/

そして以下のコマンドを打つ。

$sudo apt-get update
$sudo apt-get install sonar

次に、/opt/sonar/conf/sonar.propertiesを以下のように編集する。

# The schema must be created first.
sonar.jdbc.username=sonar #コメントを外す。
sonar.jdbc.password=sonar #コメントを外す。

#----- MySQL 5.x
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance #コメントを外す。

設定が完了たら、SonarQubeを実行する。

$sudo service sonar start

http://localhost:9000にアクセスし、以下の画面が表示されれば準備完了。 f:id:radian19831019:20150316011346p:plain

アナライザでメトリクス収集する

Mavenのプロジェクトからアナライザを実行して、メトリクスの収集結果をWebサーバで確認する。 今回は以下のプロジェクトで確認する。

sonar-examples/projects/languages/java/maven/java-maven-simple at master · SonarSource/sonar-examples · GitHub

java-maven-simple/pom.xmlに以下の設定を追加する。

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <sonar.language>java</sonar.language>
    <!-- ここから -->
        <sonar.jdbc.url>
            jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
        </sonar.jdbc.url>
        <sonar.jdbc.username>sonar</sonar.jdbc.username>
        <sonar.jdbc.password>sonar</sonar.jdbc.password>

        <sonar.host.url>
            http://localhost:9000
        </sonar.host.url>
    <!-- ここまで追加 -->
  </properties>

以下のゴールを実行する。

$mvn sonar:sonar

エラーなく完了すると、http://localhost:9000に「Simple Java Maven Project」が追加される。 f:id:radian19831019:20150316012518p:plain

projectsタブの「Simple Java Maven Project」をクリックすると、プロジェクトの詳細なメトリクスが表示される。 f:id:radian19831019:20150316012749p:plain

以上で、SonarQubeのインストールが完了!

参照URL

Setup and Upgrade - SonarQube - Confluence
Sonar native packages

Ubuntu14.04にJenkinsをインストールした

話題のCIサーバを導入ですよ。

Oracle JDK 8インストール手順

JenkinsはJavaを必要とするのでOracle JDK 8をインストールした。公式での推奨はOpen JDK 7だけど、問題ないだろう。

Oracle JDKをインストールすために、以前書いた方法で、PPAリポジトリを追加して、Java8をインストールした。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Jenkinsインストール手順

インストール方法は、公式ページを参考にした、というかそのままやった。特につまずくことなし。 Installing Jenkins on Ubuntu - Jenkins - Jenkins Wiki

wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

インストール後に、http://localhost:8080にアクセスすればJenkinsのTOP画面が開く。

Eclipse Plug-inに含まれるFileの取得

Eclipseプラグイン開発でプラグイン内に静的にファイルをおいて、それを実行時に取得したいことがたまにある。 そんなときは以下のようにすれば、取得できる。

Bundle bundle = Activator.getDefault().getBundle();
URL fileUrl = bundle.getEntry("/resources/hoge.txt");
File file = null;
try {
    file = new File(FileLocator.resolve(fileUrl).toURI());
} catch(IOException | URISyntaxException e) {
    e.printStackTrace();
}

「お金持ちの教科書」を読んだ

お金持ちになるために気になった部分をメモしとく。

お金持ちの教科書

お金持ちの教科書

お金持ちは人に感謝しない P.97

お金持ちは人から何かしてもらったら感謝ではなく、お礼をする。 自分は他人からお礼されるだけのことをしているか、振り返る。

お金持ちはすべて自分のせいにする P.100

お金持ちになれる人は、他人が引き起こした事態や、自分自身の環境などもすべて自分のせいと考えることができる。 すべての責任が自分にあると考えると冷静な危機管理を行うことになる。

人を妬むと、人と違うことができなくなる P.149

人を妬むとうことは相手と同じ土俵に立っていることを意味する。それは、与えられた競争のルールを無意識に受け入れてしまっている。お金持ちになるためには、自分で競争のルールを作り出さなければならない。

物に興味をもつ P.158

お金儲けの仕組みに興味関心を持ち、それを普遍化して理解する。

安心ではなく安全を求める P.170

安全なものは安心であるけど、安心は安全ではない。安心という言葉に惑わされない。

「使われる側」になってはいけない P.212

自分の能力を人に認めてもらってお金をもらう(雇ってもらう)という発想ではなく、「自分に投資をすれば、あなたも儲かりますよ」という「上から目線」が大事。

ラッキーであることを否定するな P.219

偶然がもたらすパワーの恐ろしさを知り、人と違うことをしないと大金は稼げないことや、偶然の出会いも確実にお金に変えていく貪欲さが必要である。 がんばれば、ご褒美をもらえるという考え方では、与えられたゲームの中でしかプレイできない。

お金について学ぶ

最近読んだお金に関する本。

ちょっと前まで、働いて稼いだお金で最低限の暮らしができればいいと思ってたけど、その考えは甘かったなと振り返る。

知っておきたいホントに大事なお金の話

知っておきたい ホントに大事なお金の話

知っておきたい ホントに大事なお金の話

お金の教科書。お金の特性について丁寧に教えてくれる。

改訂版 金持ち父さん 貧乏父さん:アメリカの金持ちが教えてくれるお金の哲学 (単行本)

改訂版 金持ち父さん 貧乏父さん:アメリカの金持ちが教えてくれるお金の哲学 (単行本)

改訂版 金持ち父さん 貧乏父さん:アメリカの金持ちが教えてくれるお金の哲学 (単行本)

お金に対する考え方を大きく変えてくれた素晴らしい本、ベストセラーらしいし、もっと早くから読んでおけばよかった。

お金の大事な話~「稼ぐX貯まるX増える」のヒミツ~

お金の大事な話~「稼ぐX貯まるX増える」のヒミツ~

お金の大事な話~「稼ぐX貯まるX増える」のヒミツ~

「金持ち父さん」の行っていることを実践して実践して成功した人が書いた本。 この人が作ったファイナンシャルアカデミーで投資について学べるので、本を読んで興味が出た人は一度無料セミナーに参加してみると良いかも。

ファイナンシャルアカデミー|株式投資・不動産投資・お金の教養を学ぶ総合マネースクール

Android Studioでアプリ開発を始めた

Android Studioではじめる 簡単Androidアプリ開発」を購入したので、早速Android StudioAndroidアプリの開発環境作った。

Android Studioではじめる 簡単Androidアプリ開発

Android Studioではじめる 簡単Androidアプリ開発

Android Studioのインストール方法が本の説明と変わっていたけど、最新のインストール方法をWeb上で公開してくれている問題なく進められた。
http://gihyo.jp/book/2014/978-4-7741-6998-9


半年ぐらい前にWeb上の情報だけで環境構築しようとしてややこしくて面倒くさくなって投げ出したのだけど、エミュレータ上でハロワを出力するまで行けた、ありがたやー。(1章から3章まで)

書いてあるとおりに進めれば良いだけなのでとりあえず開発環境を作ってアプリ開発したいって人にはもってこいやね。サンプルのソースコードも展開してくれてるしね。

あと個人的にはAndroid Studioで説明してくれているのもありがたい。普段はEclipse使いなのだけど、Android Studioに(というかIntelliJ IDEAに)あこがれを抱いていたので。

日付文字列をDateオブジェクトに変換する方法

Javaで文字列の日付をSimpleDataFormatでフォーマットを指定してDateオブジェクトに変換する方法。
文字列を日付でソートしたいときに便利かも。

import static org.junit.Assert.assertThat;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import static org.hamcrest.CoreMatchers.*;
import org.junit.Test;

public class DataFormatTest {

	private DateFormat usDateFormat = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss", Locale.US);
	private DateFormat jaDateFormat = new SimpleDateFormat("dd/MM/yyyy:HH:mm:ss");

	@Test
	public void test() throws ParseException {
		Date date1 = usDateFormat.parse("10/Aug/2014:20:41:03");
		assertThat(date1.toString(), is("Sun Aug 10 20:41:03 JST 2014"));

		Date date2 = jaDateFormat.parse("10/08/2014:20:41:03");
		assertThat(date2, is(date1));
	}

}

本ブログはAmazon.co.jpアソシエイトに参加しています