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

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

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));
	}

}

Apache Mavenの基本的な使い方を学習した

Java使ってるのにMaven使ったことないってどうなの?と不安になったため学習し始めた。

Mavanインストール

Maven - Download Apache Mavenにある手順を行えばよい。
UbuntuならUbuntu 12.04にOracle Java 7を簡単にインストールした。 - ブログ::=(メモ|落書き)帳JDKをインストールして `sudo apt-get install maven` すれば設定することがなくて楽(たぶん)。ただし最新のMavenはインストールされない。
インストールできたか確認する。

$mvn -version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 22:51:28+0900)
Maven home: C:\maven-3.0.5
Java version: 1.7.0_17, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_17\jre
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

プロジェクトの作成

$mvn archetype:generate

実行すると選択可能なarchetype(プロジェクトのテンプレート)の一覧が表示されるので作りたいアプリにあわせて適切なのを選ぶ。単純なJavaアプリ作るのであればデフォルト(maven-archetype-quickstart)のままでよと思う。
次にarchetypeのversionの選択をする。
最後にプロジェクトの基本情報であるgroupId、artifactId、version、packageの入力を行う。

groupId ルートパッケージを入力するのが一般的らしい。
artifactId プロジェクトの識別子
version プロジェクトのバージョン
package Javaのパッケージと同じ

最後に入力に誤りがないか確認されるので問題がなければそのままenterを押す。

プロジェクトの作成が完了するとartifactIdでしていた名前でプロジェクトのルートディレクトリが作成され、その中にpom.xmlとかjavaファイル(App.java、AppTest.java)が生成される。

ディレクトリのレイアウトについてはMaven - Introduction to the Standard Directory Layoutを参照する。

またコマンド一発でプロジェクトを作成する方法として以下のように引数でarchetypeArtifactId、groupId、artifactIdを指定することもできる。(もちろん、version、packageも-Dversion、-Dpackageで指定することができる。)-DinteractiveMode=falseを指定すると対話を行わずコマンドを完了するがgroupIdなど必須情報が指定されていなければエラーとなる。

mvn archetype:generate -DgroupId=<ルートパッケージ名> -DartifactId=<プロジェクト名> -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

プロジェクトのコンパイル

プロジェクトのルートディレクトリで以下のコマンドを実行する。

mvn compile

プロジェクトのテスト

プロジェクトのルートディレクトリで以下のコマンドを実行する。

mvn test

プロジェクトのクリーン

プロジェクトのルートディレクトリで以下のコマンドを実行する。

mvn clean

compileやtestを行うとできるtargetディレクトリが削除されるっぽい。


Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集

Eclipseを使ったheadless applicationの作成方法

なんとなくEclipseのheadlessモードでplug-inを実行できぬものかと調べてheadless applicationに行き着いたのでブログに残しとく。
plug-in作成なのでEclipseにはPDEがインストールされてることを前提とする。

テンプレートからHeadless Applicationを作成

  1. 「File」->「Plugin-Project」->「Other...」で新規作成ウィザードを立ち上げる。
  2. 「Plugin-in Project」を選択して「Next>」をクリックする。
  3. project nameを入力して「Next>」をクリックする。
  4. Optionsの「Generate an acivator, a Java class that controls the plug-in's life cycle」のチェックをはずす。「This plug-in will make contributions to the UI」のチェックをはずす。またRich Client Applicationは「yes」のまま、「Next>」をクリックする。f:id:radian19831019:20130321000032p:plain
  5. 「Headless Hello RCP」を選択して「Finish」をクリックする。※ここで「Headless Hello RCP」が選択できない場合、前のページの設定を再度確認する。

アプリケーションの実行

プロジェクトはプラグインとしてエクスポートした後、{eclipse.home}/pluginsディレクトリにいれ、以下のようにコマンドから実行する。

eclipse -application ${plug-in name}.application

${plug-in name}にはプロジェクト作成時に入力したplug-in idを入力する。

以下のサイトを参考にさせていただきました。感謝!
Add headless capability to existing eclipse plugin - Stack Overflow
Code & Me: Creating a headless application

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