2015年12月31日木曜日

WordPressをmacにインストール


WordPressとは?

私もブログを書き始めて後から知ったのですが、言わずと知れた、ブログサイトを立ち上げるためのツールです。
apache,php,mysqlで動作しますので、特別な環境は必要なく、一般的的なレンタルサーバを借りて構築できます。
レンタルサーバによっては、これから記述するような手順はブラウザから、構築ウィザード画面が用意されているものも多くありますので、レンタルサーバの説明をよく読んで選択すると良いでしょう。

レンタルサーバを借りてブログを書き込むような人はアフェリエイトなどが目的の人が多いとは思いますが、WordPressがブログの作成ツールとしてよく選択される理由は、Google等の検索エンジンに検索されやすくなっており、このSEOの適正が高いためよく選択されるようです。

対象者(ターゲット)

今回、WordPressを自前のマシン上に構築しようと考えたきっかけは以下の理由です。
  1. 友人がブログを始めて、無謀豪勢にもいきなりレンタルサーバを借りたらしい、なんとか悪戦苦闘しながらブログを書き始めたそうなのですが、Web開発技術者として、友人として何か支援できればと考えた。
  2. 自分も将来的に、このような一般技術に触れておこうと考えました、特に小規模サーバにはPHPをよく利用されているのは知っていたのですが、実際にほぼ、Java専門で続けているので、ちょっと横道に逸れてみてもいいかなってところです。
ですので、今回のこの記事に対して、役に立つと思われるのは以下の内容かなと想定します。
  • サイト構築に興味があるけど、まだレンタルサーバを借りるほどではい。
  • 操作に習熟するために、ひとまず、本番環境ではない環境でお試しがしたい。
  • 構築方法に興味がある。

対象のスキル
  • unix系のコマンドを一部利用します。コピー、ディレクトの移動、viで簡単な編集ができる程度で良いです。

実際にインストールした環境は以下の環境です。
  • OS X 10.11.2

インストール手順の概要

  1. Apacheのインストール&設定 ー これは、すでにインストールされていたので、本ページでは設定のみを行います。
  2. PHPのインストール&設定 ー これも、インストール済みでしたので、ApacheからPHPを呼び出せるように設定を行います。
  3. MySQLのインストール&データベース構築 ー mysqlのインストールからWordPressが利用するデータベース作成までを説明します。

Apacheのインストール

これは、Macを利用した場合は、既にインストールされているので、割愛します。
簡単に、Macにインストールされていたapcheの環境について調べたことを記載しておきます。

apacheの操作に関してはrootの管理者権限が必要です。
以下の操作は、全てターミナルから実施してください。

apacheのバージョンの確認方法
$ httpd -version
Server version: Apache/2.4.16 (Unix)
Server built:   Jul 31 2015 15:53:26

apacheの起動停止方法  root権限
$ sudo apachectl start | stop | restart

ドキュメントの格納場所
/Library/WebServer/Documents

設定ファイルの場所
/etc/apache2/httpd.conf

MYSQLのインストール

これはさすがに、インストールされてなかったので、自力でインストールしてみたいと思います。
mysqlのインストール自体はこちらを参照してください。

初期データベースの構築

ターミナルから、以下のコマンドを実行します。入力するコマンドはコマンドで表現しております。

mysqlコマンドでデータベースに接続しますが、パスワードを求められます。特に設定を行った記憶のない人は何も入力せず、パスワードなしで利用できるはずです。

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 146
Server version: 5.6.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 

これから作成するデータベースを操作するためのデータベースのユーザを作成します。
WordPressの初期設定にて自由に設定できますので、ユーザ名パスワードの部分は任意で決めてください。

mysql> create user 'ユーザ名'@'localhost' identified by 'パスワード';

Query OK, 0 rows affected (0.01 sec)

データベースを作成します。
同じくWordPressの初期設定に自由に設定できますので、データベース名の部分は任意で決めてください。

mysql> create database データベース名;
Query OK, 1 row affected (0.01 sec)

作成したユーザにデータベースを利用する為の権限を与えます。

mysql> grant all privileges on データベース名.* to 'ユーザ名'@'localhost';


Query OK, 0 rows affected (0.00 sec)

mysqlのsockファイルをメモしておく

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.6.28, for osx10.8 (x86_64) using  EditLine wrapper

Connection id: 317
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.28 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db     characterset: latin1
Client characterset: utf8
Conn.  characterset: utf8
UNIX socket: /tmp/mysql.sock  ここをメモしておく
Uptime: 3 days 23 min 36 sec

Threads: 1  Questions: 4833  Slow queries: 0  Opens: 81  Flush tables: 1  Open tables: 73  Queries per second avg: 0.018

--------------

PHPのインストール

これも、インストール不要です。調べたところ、PHPのインストールはされているようなので、特にインストールはしませんが、apacheとPHPが連携して動作するように設定を行う必要があります。

sudo vi /etc/apache2/httpd.conf

でviエディタを起動して、以下の行のコメントを取り除くだけです。
#LoadModule php5_module libexec/apache2/libphp5.so
   ↓
LoadModule php5_module libexec/apache2/libphp5.so

phpの設定ファイルを準備とPHPへの接続設定の追加

$ sudo cp /etc/php.ini.default /etc/php.ini
$ sudo vi /etc/php.ini

ファイル内の「mysql.default_socket」にmysqlをインストール時に「status」コマンドで取得した。UNIX socketに指定されたファイル名を入力してください。

mysql.default_socket = /tmp/mysql.sock

apacheの再起動
sudo apachectl restart

動作確認
sudo vi /Library/WebServer/Documents/index.php 

viエディタを起動して、以下の内容のファイルを作成します。
中身は他に入りません。これだけ記述して:wqで保存して終了しましょう。

ブラウザ起動して、以下のURLを入力するとこんな感じのが画面が帰ってくるはずでです。
URL http://localhost/index.php




WordPressのインストールと初期設定

WordPressのインストールですが、まずここからダウンロードします。

ダウンロードしたファイルを解凍します。
$ sudo unzip -d /Library/WebServer/Documents/ wordpress-4.4-ja.zip
$ cd /Library/WebServer/Documents/
$ sudo cp wp-config-sample.php wp-config.php

コピーしたwp-config.phpファイルの以下の内容を書き換えます。

/** WordPress のためのデータベース名 */
define('DB_NAME', 'データベース名');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'ユーザ名');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'パスワード');

設定が完了したら、以下のURLにアクセスします。


必要な項目を入力してWordPressをインストールボタンを押します。
成功すると以下の画面が表示されます。


そのままログイン画面を呼び出しても良いのですが、以下のURLからログイン画面を表示できます。

ログイン・パスワードを入力すると、ブログをカスタマイズしたり投稿したりするダッシュボードが表示されます。


以上が、WordPressのインストールまでです。
あなたのこれからブログ構築に少しでもお役に立てれば幸いです。


2015年12月29日火曜日

MySQLのインストール

今回はいきなりですが、MySQLのインストールいついて記録しておきます。

対象環境

OS X 10.11.2 

MySQLの入手

ダウンロード場所

以下のファイルを選択してダウンロードしました。
Mac OS X 10.10 (x86, 64-bit), DMG Archive

で、突如気になったのですがDMGってなに!?(すいません、最近Macユーザになったので)ってことで少し脱線してみて調べてみました。
すぐにわかったのですが、これってディスクイメージ(Windowsで言う、.iso)なんですね。
なるほど、疑問が一つ解決したので、作業を継続します。

インストール開始

と言っても、インストールに関しては、特に戸惑うことはありません。表示される画面に従って、「続ける」ボタンを連打していけばインストールは完了してしまいます。

Finder等で、ダウンロードしたファイルを選択すると、勝手にデスクトップにディスクイメージをマウントしたディレクトリが作成されます。


「mysql-5.6.28-osx10.8-x86_64.pkg」を実行するとインストーラーが起動します。
 「続ける」ボタンクリック
 英語だ!?分かんね、無視して「続ける」ボタンをクリックします。
 いいですか、これを押すとインストールが開始されちゃいますよ。。
「インストール」ボタンをクリック

  インストール中、しばらく待つと以下の画面が表示されて、本当に、クリックするだけでインストールが完了してしまいました。

動作確認をしてみよう

ここからは、ターミナルを起動して操作してください。赤く括った部分が実際に入力する箇所になります。

まずは、mysqlのコマンドを実行できるようにパスを通してください。
以下は、参考です。自分の環境やスタイルに合わせて実施してください。

$ vi ~/.bash_profile

でエディタを開き、以下のような記述を追加してください。

export PATH=$PATH:/usr/local/mysql/bin

データベースを扱うための、コンソールを起動します。(Oracleでいうsqlplusですね ←わかんない人は無視してください。)

$ mysql -u root -p
Enter password: 

パスワードの入力を求められますが、初期値は設定されていませんので、そのままreturnキーを押しちゃってください。そうすると以下の内容が表示されるはずです。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 314
Server version: 5.6.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

これを持って、動作確認を完了してもいいのですが、興味がある人は、以下にデータベースの作成、テーブル作成、データの挿入、データの参照、データベースの削除までを記述してみたので、よかったらお試しあれ。

データベース作成
mysql> create database testdb;
Query OK, 1 row affected (0.01 sec)

使用するデータベースの切り替え
mysql> use testdb
Database changed

ちょー簡単なテーブルの作成からのデータ登録からのデータ参照まで一気にやっちゃいます。

mysql> create table testtable (text char(10));
Query OK, 0 rows affected (0.04 sec)

mysql> insert into testtable (text) values('aaaaaaaaaa');
Query OK, 1 row affected (0.01 sec)

mysql> select * from testtable;
+------------+
| text       |
+------------+
| aaaaaaaaaa |
+------------+
1 row in set (0.00 sec)

最後に、使ったデータベースはいらないので、消しておきます。
mysql> drop database testdb
    -> ;
Query OK, 1 row affected (0.02 sec)

ついでなんで、本当に消えたか見てみます。
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+

最後に、コンソールから抜けるのは

mysql> exit
Bye

Byeって言われて、終了します。

最後に、起動と停止方法

> sudo /usr/local/mysql-5.6.28-osx10.8-x86_64/support-files/mysql.server [start / stop]

2015年12月20日日曜日

Mac Book Pro買いました

経緯

 もう、20年MS-DOSから始まり、現在、Windowsユーザをやってますが、確か私が高校生の時にMachintoshが発売されました。その頃のPCはとても高価で、簡単には手に入らない代物だったのですが、高校の部活の顧問からMacはすごいという話を聞かされました。

 その頃、ちょうど、Windowsが発売され、CUIからGUIへ時代が変わろうとしていたのですが、私はまだ、MS-DOSしか触ったことがなかったの正直、ピンとこないのととても高価なPCを簡単に買い換えることができなかったので、手に触れることはありませんでした。

 スティーブ・ジョブズが死去し、Microsoft系列のOSしか利用したことがなく興味が出なかったのっですが、ちょうど、プレゼンの機会が増えてきて、プレゼンの腕を磨くために買った、「スティーブ・ジョブズの脅威のプレゼン」からAppleに興味を持って数年、やっと、整備品ですがやっと手に入れました。

なんだろう、このワクワク感

 Apple製品を始めて購入したのは初代iPodNanoですが、これは、パソコンショップに行った際に、別に音楽プレイヤーを買いに来たわけでもないのに、即衝動買いをしました。

 この頃からそうなのですが、Apple製品は箱の状態からインパクトがあり、開封するときに、なんとも言えないワクワク感から始まります。美しい包装の中に、美しい製品を収めている。他の製品にはないこだわりが箱の状態からあるのです。

なんたって、Retinaディスプレイ

 さあ、開封してセットアップを開始したのですが、セットアップはすごく簡単に終わってしまいました。(これもWindowsとは大違いですね)

 デスクトップ画面が起動した瞬間に、Retinaすごい、ディスプレイっていう感じじゃなくて、ガラスケースの額縁に入った絵を見てるみたいに美しいことに感動です。

 また、しばらくmacを利用した後、昔使っていたWindows Vistaの画面を見ると、今まで気になっていなかったドットがすごく気になり文字がカクカクしているのがすごくわかるようになりました。

 おまけに、フォントがすごく美しい!!デフォルトで使ってるのに、一味違います。やっぱり、いいものを見ると見る目が養われるというのは本当ですね。
これは、もうやめれまへんな

ちなみに出荷状態のディスプレイ設定では、文字が大きすぎてRetinaの恩恵が少ないです。
「システム環境設定」
「ディスプレイ」
「ディスプレイ」タブの解像度:変更
スペースを拡大
を選ぶと解像度が変わり、画面に表示される情報量が増えます。(もちろん字が小さくなりますが...)

 あっ、欠点は、背景の白がきつすぎて、コントラストを強くすると目が痛いです。(すごく綺麗なんですけ、目に悪そうだから下げて使ってます)

なに、このパッドの使いやすさは

 最近はどうか知らないけど、ふた昔前のWindowsノートパソコンではパッドにちょっと当たっただけで、クリックされたことになって、文字入力を一生懸命やっている最中に、トラックパッドに当たって、入力カーソルが明後日の方向に飛んでいくってことがよくありました。

 なんだかんだと言っても、マウス操作の時間より文字入力の時間の方が長いので、この不快さはどうしても許せず、ThinkPadを今まで使ってきましたし、どうしてもトラックパッドを利用せざるを得ない場合はタップ機能を無効化していました。

 その点、Macのパッドはちょっと触れたくらいでは反応せず、意識して押した時だけちゃんと反応します。これによりトラックパッドでの不快感は全くなくむしろマウスより使いやすいかもと感じさせる一品です。

 そして、感圧パッドを購入したのですが、こいつもすごい。
 利用者側としては、どっちでもいいのですが、このパッド実は凹んでないのです。機械式ではないのにクリック感がある。しかも強く押し込む感覚もあり、2段階でのクリックを利用できます。

 この機能のおかげで、パッドで操作できることが増えます。実はまだ活用しきれていないのですが、この辺りの話で面白いことがあれば、また報告しますが、故障が減るなどの利点はあるようです。

 利用者の立場に立つとどうでも良いことですが、見えないこだわりに同じ技術者として心を燻られる思いがあります。

 この技術をスマートフォンに活用すると、また、新しいことができるようになるのではないかとワクワクするような技術です。

キーボード

 実は、Macで気に入らないのはこの点ですし、正直キーボードの使用感はThinkPadの方が私は好きです。

 アイソレーションキーボードはブラインドタッチの感覚をかなり狂わせます。具体的にはホームポジションを認識するためのF、Jキーについている凹凸が指で認識しにくい(Windowsでよく利用するキーボードはバー状ですが、iMacは点状で控えめです)、それからキーとキーの隙間が指で認識しにくい(これはキーのくぼみがなく指にフィット感がないためだと思います)ので、キーの位置を認識するためのタイムラグがあり、いつもの入力速度をキープできません。

キーボード入力のスピードを重視しない人は、あまり気にならないかもしれません。

 使い始めると徐々に変わるのですが、冬場に起動した直後に利用するとこのアルミディブが冷たくて、冬場に利用するには少し冷たすぎます。

 ちなみに私は、お気に入りのRealForceキーボードを利用しています。外部キーボードをつけると、前に紹介したトラックパッドが利用できないので、前のPCで利用していたWindowsのマウスとセットで利用している状態です。感圧トラックパッドが利用できないのは少し残念なので、トラックパッドだけ購入したと考えていますが、新しく発売されたMagic Trackpad 2はApple Storeで14,800円でちょっと高いです。

OSを使ってみての最初の感想

 まだ、まだ使い始めて1週間なのですが、正直、使い方が違う点に日々、格闘中ですが、これは、ショートカットなんかをWindowsでは活用できた状態から考えると、Macで同じレベルになるまでの話です。普通にアプリケーションを起動して使う分にはさほど大変ではありません。

 ちなみに、ユーザインターフェースがいろいろと、WIndowsとは逆なんですよ。例えばアプリケーションが表示されるウィンドウを閉じる、最小化、最大化ボタンが左にあったり、ダイアログのOK、キャンセルボタンが逆だったり、スクロールマウスのホイールの回す方向が逆だったり(でも、よくよく考えたら、画面上の紙をつかんで、雨紙を動かす方向にホイールさせると考えるとMacの方が正しい気がします。)

2015年11月23日月曜日

システムにおける失敗プロジェクトの考察(見積り編)



良くある失敗項目

私がITプロジェクトで失敗しているなー、と感じている流れを整理してみました。

見積りから始まる失敗事例

まずは、見積りの失敗から始まる失敗パターンです。

さあ、新しいプロジェクトが始まります。
まずは、見積りを作成して交渉するのですが、
高いといわれ続け、値下げしていきます。
(最初から損をするような見積りをする人はいません)


費用が無ければ、必要な人員や機材を確保できません。
が、何かの理由で、この採算の取れない案件を受注してしまいます。
プロジェクト計画書を作りますが、理想論しかかけず、
その理想を遂行するためのビジョンが描けない状態です。
(要はまったく出来る気がしない状態です)


必要な人員や機材を確保できないので、品質や納期および生産性に影響が出る。
上流工程では、ドキュメントだけなので騙し、騙しでドキュメントを完成させるが
内容について要件漏れや、矛盾があるような状況です。
このごまかしが、製造工程で泥沼を引き寄せます。
(ここで、悪循環の種を植え付けてしまいます)

当然、今後の泥沼を回避するためのアイデアなんて考えている暇はありません。


常に進捗遅れ状態、間に合わないから残業をするけど、焼け石に水
このころになると、具体的な施策より、精神論が横行しだす。
また、あわてて人を入れるが、当然何も知らないド素人が入るので
新しく入った要員の対応に追われるが、思った成果は出ない。


品質が悪いので不具合が大量に発生する。
対応に追われ、さらに進捗の遅れが悪化する。
また、残業もさらに増えて徹夜なんてことも

不具合の対処も当然ですが、他にも横展開などの対策にも追われるハメになる。

当然不具合に対する、想定も当初の計画には盛り込まれていなかったりするし
単純な誤りが目立ち、外部からもにらまれる。
(リーダーの精神状態が心配になります)


突然会社に来なくなる人や、うつ病になる社員が出る。
ひどい場所では、リーダーが逃げるといった話も聞く。


サービスインに持っていっても
瑕疵だの言われながら、サービスイン後の不具合の改修
を続け、新しい案件にメンバーを回せない。
瑕疵では無いと抵抗をしたいところだが、今まで出した不具合やそもそも
そういった戦いを行う体力さえも無い状態

どうでしたか、皆さんのイメージと同じでしょうか?
「ある、ある」と感じた人がほとんどではないでしょうか。

大きな失敗をしているプロジェクトの大半が、見積り誤りです。
いろんな手法の見積りが出ていますが、あくまで参考に出来るだけで、IT業界では未だに、経験に勝る見積りは無いと感じています。
あらゆる見積り手法は、相手を納得させるための道具と割り切り、自分の経験に近い見積りを出すようにしましょう。
もちろん自分が蓄積してきた実績に基づく数値を使うのであれば問題はありませんが、他の会社が持ち込んだ指標は全くあてになりませんし、要員により大きく変わります。
今まで私が読んできた書籍でも、優秀な社員とそうではない社員の差は100倍あるとも書かれていますし、製造の生産性と言う意味では、人によっては、達成できないというケースもあり、100倍どころではない状況に追いやられたこともあります。
といっても、本当に理想的な体制は作れないものです、まずは理想から何が妥協できるかを考えるようにしましょう。

それでも受注するの?

 時には会社の戦略として、採算が取れなくても、受注しなくてはならないケースもあるでしょうがその際は、どうか、引け目を感じず、最初の初期投資はしっかり行うことをお奨めします。
 途中で安定してくれば、そのタイミングで要員を削るという手もありますが、途中で人を入れるのはランニングコストが高くつき、どんなに優秀な人でも力を発揮するのは難しい状況になります。
 この場合は、費用のことは考えず、プロジェクト達成するためのどうしたらいいかということに集中するべきと考えます。(立ち上がったら要員は返却するなど適当なことを言ってでもいったんキープした方が良いです。もし泥沼になれば、それが分かっていても要員を引っこ抜くような冷徹な人は私は少ないと信じています。)


十分な体制が取れなかったらますます酷くなります。
マスターマインド、同じ志を持つ仲間と十分に議論し、達せしいたプロジェクトに関しては問題が起きたことは今までありません。

2015年10月7日水曜日

大容量のアップロード、ダウンロードについて

どうだ!?、これで大容量のアップロードも可能になります。

って事で、今回は大容量のアップロードを可能にする方法を考えてみました。
JQueryを利用するとコーディングが取っても楽になるのですが、業務シーンにより利用できないケースもあるので、pure Javascriptで作成しました。

さて利用に当たってですが、以下の条件があります。

  1. HTML5 File APIを利用しているので、動作可能なブラウザのバージョンに制限があります。
  2. 一応SafariやIEも考慮していますが、動作確認を行ったのはChromeです。私の端末はvistaなので、IE9までしかなくて、HTML5に非対応なので、動作確認できていません。
  3. サーバ側のアプリケーションサーバはwildfly9.0で実装しました。
こんな雰囲気で作成しています。

  • FileAPIのsliceによりファイルを一定のサイズで分割
  • 分割したファイルをXMLHttpRequestにより、Ajaxによりサーバへ送信
  • サーバ側で受信したファイルを追記モードでファイルに書き出し
といった感じです。

まだまだ、異常系の考慮についてはこれからですが、ひとまず巨大なファイルを分割してアップロードすることにより理論的にはアップロードするファイルの大きさに対する制限はなくなります。
また、今回のスクリプトは順次アップロードする仕組みにしておりますので、サーバへの負荷も比較的低く抑えることができるかと思います。

JavaScript



入力用画面サンプル


サーバ側のサンプル


最後に

今回はmultipart form-data形式でアップロードにチャレンジしてみましたが、アップロードするファイルのサイズを大きくするにつれてXMLHttpRequest.send(form)で実際にサーバへ送信されるまでの時間がかかっている印象がありました。恐らく、formデータを送信するための電文に変換する処理に時間がかかっている印象です。
XMLHttpRequest.send()を調べてみると、どうやらblobも送信できそうな記述が見つかったので、次はformデータではなくバイナリをそのまま送信してみるとこのあたりのオーバーヘッドが減るかもしれません。
今回は実測値はないので、もう少しがんばって、更新していきたいと思います。

課題

  • 途中で失敗した際のファイルの後片付けとかはどうする?(一定時間応答が無ければ捨てるような仕組みでいけないかな...)
  • ロードバランサ等による振り分けには耐えられない(共有ディスクを使ってなんとかかんとかすると出来るかも)

2015年9月27日日曜日

言霊それは信念、今までに心を動かしたと感じた言葉

私のシステム開発人生の中で、きっとこの言葉は、人の心に響いたと感じた言葉をまとめてみます。

本当に人の心に響いたかは、本人から聞いたわけではないのですが、システム開発は一人でやるものではないので、人間重視の視点が必要です。

担当ではなく、リーダーの立場でプロジェクトを遂行しなくてはならない立場となったときに、どうやったらメンバーが納得して、仕事をやってもらうかを常に考えてきて、私なりに確立した言葉を列挙してみました。

言葉には重みがあり、相手に使うときは信念が必要です。利用する場合は必ず自分のものにして自分の言葉として利用してください。信念がこもっていない言葉は重みがありません。

もっとシンプルに(俺馬鹿だから、もっと分かりやすくして)


私は、昔から、記憶する勉強が苦手でした。
難しいことを難しいまま覚えるのは私には出来ないと考えた私は、何のためにそうするのかということを理解した上で、物事を覚えることにしました。
私の脳には、この記憶方法が一番良いようで、覚えたことを「何故?、何のために?」というコネクタで関連付けていくことにより、目的から結論を導けるようになりました。

さて、導くための方法も「何故?、何のために?」が分かれば、実は他の方法もあります。
そこで、覚えることを単純にするために、この導くための方法を考え直すと、実はもっと簡単な方法があることにも気づけます。

難しいことは人に理解できません > 理解できないことは他の人には利用できません > つまり、創造したもの自身の価値が下がるのです。

もっと人に使ってもらえるものを創造しましょう。

プログラムでは、分かりにくい1行より、分かりやすい10行のプログラムを書けとよく言ってました。


何故このような仕組みにしたのか、あなたの考えを聞きたい


システム開発にはレビューが欠かせません。
レビューで私は、疑問に思ったことは、こう聞きます。「なぜこのような仕組みにしたのか、あなたの考えを聞きたい」こう聞くと、他もこうしているからとか、ググッて検索して出てきたものをそのまま活用しているような人は、「ハッ!?」とします。(たまにポカーンとして、しない人もいますが...)

正直に言うと、まねでもいいのです。
真似る理由が分かればいいんです。

近年のシステム開発では、レビューアが何でも知っているわけではなく、レビューア自身も答えを知らない場合が多々あります。私もレビューアをよくやるのですが、何故こうしたのかをしっかりレビューしたものは、たとえ答えを知らなくても、バグが発生する可能性が非常に低い傾向があります。

また、この問答をやっていると自分の知らない事が情報として得られ知識が高まるのも実感できます。
禅の言葉で、「たとえ七歳の子であっても私より優れていれば教えを乞おう」というのがあります。知らないことを探求する興味も失わないようにしましょう。


役割には、いろいろある。あなたの価値はマネージャとメンバーの橋渡しを行えることです。


これは、ある飲み会で「俺はもうプログラムも書けない、かといって偉くもなれない」といった人に対して言った言葉です。この人は、「ハッとして、そんな考え方もあるのか」と驚いて、かなり喜んでくれました。
システム開発ではどうしても、マネージャ、SE、プログラマといったポジションが目に付きますが、組織に必要な役割というのはいろいろなものがあり、3つだけに分類されるものではないと考えていました。
良くある役割に惑わされず、目的を達成するために必要な事ができるというのは本当はすばらしいことです。


システム開発はアナログ→デジタルのコンバートです。なので人とシステムの両方を知る必要がある。


学校を卒業してこの仕事に就いたときは、本当は人付き合いが嫌いでした。
技術を追い求めて、就職しましたが受注型のシステム開発はやればやるほど、機械ではなくて人がやりたいことを理解することがまずは肝心ということが分かりました。(何故なら、やりたいことが出来ないシステムは価値が無いからです)
慌てて、苦手なコミュニケーションを積極的にとるようにしました。今では人付き合いが好きになっている自分がいます。

技術は、このやりたいことをどう実現するかという次のステップに利用します。
技術は不要という意味ではなく両方必要という、実は非常に厄介な職種と私は感じました。


NO


一言ですが、私はこれを言い続けて、システム開発で何度か、運用故障0件のシステムを構築しました。
スティーブ・ジョブズも細部にこだわり、この言葉を言い続けました。
この言葉の奥には、あなたがやりたいと考えていることを妥協せず貫けるかという意味があります。
これは、人の心を動かすためには即効性はありませんが、何かを達成した際にともに喜ぶことが出来る一体感が生まれます。
ただし、使い方は気をつけましょう。私の場合は、この言葉を使うときは、一緒に苦労する覚悟を持って使っていました。


個性は何も無いところから生まれない、人の物まねの集合体である。


学校ではなくもっと広い視野で勉強をせず、個性だと主張するのは間違っています。
そもそも、人間は生まれてから何かを学習して、得た情報を改善したり、情報同士を関連付けたりして新しい事を生み出してきました。
個性を生み出すための種が情報なのです。情報を得るための学習を怠らないようにしましょう。


サラリーマンは会社からの評価は遅れてくる。だからあきらめるな、気が付いたら現場の人たちが高い評価をしてくれる。そうなると会社も無視できなくなるから。


最初に注意です。結果が後から付いてくるという意味ではありません。スポーツ業界でのイチローも言っていますが、これは甘えです。結果はリアルタイムで出しましょう。

さて、ここで言いたいことは

やっていることに比べて給料が低いと感じたことはありませんか?
それが嫌なら、サラリーマンは止めるべきですし、そもそも、会社が利益を上げてから、ボーナスや昇給などで評価される仕組みをとっている以上、あなたへの評価は直ぐには現れません。

誰かの役に立つために仕事をやっていけばどんな現場でも、あなたのことを認めてくれる人は現れます。

私は、会社に褒められるより、一緒に目的を目指したメンバーから褒められるほうがうれしいです。
間違えないでください、現場で最善の結果を出すことに注力してください。
それがあなたの、スキルアップにつながり結果、会社に依存することなく生きていける能力が身につくのです。

2015年9月26日土曜日

個人的にEclipseでよく利用しているショートカット(更新中)

個人的に良く使うショートカット順に並べてみました。 EclipseのMarsを使っているので、古いバージョンでは使えないショートカットキーもあります。

エディタ編

動作 Windows Mac 利用シーン
ファイル名を検索して開く Ctrl + Shif + r + Shif + r ファイル名を覚えている人はここから開いたほうが速い
検索
次へ
戻る
Ctrl + f
Ctrl + k
Ctrl + Shift + k
+ f
+ k
+ Shift + k
ファイル内の文字列検索です。
この3つのショートカットはセットで覚えましょう
インクリメンタル検索
次へ
戻る
Ctrl + j

+ k
+ j

Shift +
入力順にリアルタイムで検索してくれます。
ちょっと癖があるけどなれるとこっちの方が便利かも
次へ
戻る
Alt +
Alt +
option + +
option + +
ブラウザの戻る、進むのような操作が出来ます。
ctrl+左クリックで参照クラスやメソッドに飛んだ後、戻る際に利用しています。
指定行へジャンプ Ctrl + L + L スタックトレースの情報から該当箇所に飛ぶ際に便利
ウィンドウの分割(水平) Ctrl + Shift + - 調査中 ひとつのソースを上下に分割して参考にしながらコーディング!!
ウィンドウの分割(垂直)
Ctrl + Shift + [
調査中 ひとつのソースを左右に分割して参考にしながら最近の液晶は幅が広いので結構使えます。
クイックフィックス
Ctrl + 1
+ 1
import追加等

画面切り替え編

動作 Windows Mac 利用シーン
パースペクティブ切替 Ctrl + F8  + F8 デバッグとJava EEの切り替えに良く使います。
検索
次へ
戻る
Ctrl + f
Ctrl + k
Ctrl + Shift + k
 + f
 + k
 + Shift + k
ファイル内の文字列検索です。
この3つのショートカットはセットで覚えましょう

2015年9月24日木曜日

mevenによるJavascriptライブラリの自動取り込み【webjars編】

なぜ、webjars?

  1. jquery等のjsを毎回ダウンロードしてwebappに配置するのは少し面倒
  2. ライブラリ類は旨く配置しないと、自分がつくったjsなんかと混在して煩雑になっていく

実施環境

  1. java version "1.8.0_51"
  2. wildfly-9.0.1.Final

チュートリアル

今回はJqueryの2.1.4を利用できるようにしてみようと思います。
読み込む対象を以下のサイトから検索します。

mavenに依存関係を追記するので、mavenを選択してください。

バージョンの選択と、依存関係の記述をpom.xmlへ追加する。


pom.xmlの依存関係を追加




読み込んだjqueryの構造をチェック

webjars配下のディレクトリ構成をチェックしておきましょう。
ここではjquery/2.1.4/dist/にjquery関係のjsファイルが格納されているのが分かります。


サンプルHTML作成


動作検証

感想

若干便利さは感じましたが、正直以下の対応まで出来ればもっと良かったです。
  1. servlet3による追加方法を検証してみたのですが、bootstrap.min.cssを追加する必要があるので、出来ればこの記述もなくしたい。。。
  2. ディレクトリにバージョンが含まれてしまっているので、バージョンを変える場合は依存関係を変えるだけではなく利用しているソースも同様に修正する必要がある。


2015年9月22日火曜日

jsdoc3によるJavascriptドキュメント作成

はじめに

以前、YUIDocに関するJavaScriptのドキュメント作成方法について、このブログで紹介しました。
どうも、調べているとjsdocのほうが一般的?(何をデファクトスタンダードとするかは基準に迷うところです)のようなので、改めてjsdocの生成について行ってみようと思います。

Goals

さて今回の目標設定は以下としました。
  1. Eclipse上でドキュメント生成する。
  2. Eclipse上でコメント記入中にリアルタイムにプレビューしたい。(これは難しそう)
  3. JavaScriptのコーディング中に生成したドキュメント参照できるようにする。

実施環境

  • Eclipse  Mars Release (4.5.0)
  • java version "1.8.0_51"

1.Eclipse上でドキュメント生成

まずこの目標ですが、今回はMavenを利用してpom.xmからJavaScriptのドキュメントを自動生成するようにしてみようと思います。

プロジェクト構成

  HellowWorld
    │
    │   pom.xml
    └─src
          │
          └─main
                │
                └─webapp
                      │
                      └─js
                            │
                            └─jsdoc3sample.js

pom.xmlの定義


pom.xmlの構成のポイント

  • outputDirectory:
    言わずと知れた。ドキュメントを出力する場所です。今回はMavenのビルドパス上に作成するようにしてみました。
  • jsdocInput:
    ドキュメント作成するJavaScriptを指定します。


サンプルJavaScriptファイル

まだ、ドキュメント用のコメント記述が良く分かっていないところもありますが、とりあえず以下のサンプルを作成しました。

ビルド実施

Eclipseでプロジェクトを選択して、以下のコマンドを実行です。

コマンド

> mvn clean jsdoc3:jsdoc3

Eclipse上から実行する場合

EclipseのメインメニューからRun(R)-Configuretionsを選択するとRun Configurationsダイアログが表示されます。


左側のツリーにてMaven Build下に新しいビルドを追加

Name:ご自由に
Base directory:対象のプロジェクトを選択
Goals:jsdoc3:jsdoc3

上記の内容を入力し、Runをクリック


ドキュメントが生成が成功すると上記の内容がコンソールに表示されます。


成功するとProject Explorerのtargetフォルダを再描画(F5キーを押す)するとjsdoc3フォルダが表示されます。

jsdoc3フォルダ配下のindex.htmlをブラウザで開くとドキュメントが作成されていることが分かります。



以上で、ドキュメント作成までの流れは終了です。

2.Eclipse上でコメント記入中にリアルタイムにプレビューしてみる。

Javaだと以下の画面のように、作成中のドキュメントを簡易ではあるが確認できる。


こんな感じで、作成しながら確認できればうれしい!!

とりあえずEclipseのViewをあさってみると以下のようなものがったので使ってみる。
EclipseのメインメニューからWindow(W)-Show View-Other...を選択するとShow Viewダイアログが表示されます。


JavaScript - Documentationを選択してOKをクリックする。
Documentationビューの動作を確認してみる

表示される。

表示されない。

これだけでは表示されないケースがあるみたいです。これはJsDocの記述が悪いのか、そもそもJsDocにツールが対応していないのか...
引き続き調査して、何か見つかったら追って更新します。

3.作成したドキュメントとの紐付け方

探してみましたが、そもそも、EclipseからJavaScriptのHelpを呼び出すという仕組みは見当たりませんでした。
正直これが出来ないと、つくったドキュメントを一番活用するのはコーディング中です。つまり統合開発環境と連携できないとドキュメントを見てもらえるケースが激減するので、作成に気合が入らなくなってしまいます。

総評

以下の3つの目標を立てましたが、残念ながら今回はコンプリートできませんでした。
解決策が見えましたら、随時更新していきます。
  1. Eclipse上でドキュメント生成する。

    ⇒ mavenにて自動的に作成できるので、クリア
  2. Eclipse上でコメント記入中にリアルタイムにプレビューしたい。(これは難しそう)

    ⇒ コメントの記述方法が悪いのかjsdocが対応していないのかコツを掴むのに時間がかかりそう、とりあえず継続利用して何か分かりましたらページを更新しいます。
  3. JavaScriptのコーディング中に生成したドキュメント参照できるようにする。

    ⇒ 全く、見つけれませんでした。すみません。

2015年9月20日日曜日

ウェブ・ページにソースコードをスタイリッシュに表示する方法(GitHub編)

経緯

ブログを書いていてソースコードを掲載することがあるのですが、ページに記載することが多くなりタグで書くのは面倒だったので簡単に貼り付けれるような方法を探してみました。

Goles(いつものように目標設定)

  1. ソースコードをWebページにかっこよくハイライト表示できること。
  2. 出来れば、タグなどを付与せずそのまま貼り付けたい。
  3. Java、HTML,JavaScriptに対応しているいること。

選定

検索してみると条件を満たせそうなものとして、以下のものが見つかった。
  1. SyntaxHighlighter
  2. GitHubのGistを利用して、自分のページにScriptを埋め込む
今回は、GitHubを選定してみました。理由は、GitHubに興味があり、一度使ってみたかっただけです。

GitHubとは?

個人的には以下の理解です。(まじめには勉強していないので感覚的なものです。正しい理解をしたい方は、自分で調べてみてください)
  1. ソースコードがバージョン管理できる。
  2. 世界中の人がレビューしてくれる。
    今回サンプルをアップしましたが、1時間ほどで3人ほどレビューしてくれました。たいしたものをアップしなかったので、修正はありませんでしたが、すぐに見てくれる人がいるのはすごい!!
  3. ついでに、評価もしてくれる。(ソーシャルネットワークの「いいね!」にあたるものが用意されていますが、、、何でもかんでも「いいね!」には賛同できかねますが)
開発をかれこれ、20年ほどやっていますが、こんなに簡単にグローバルに開発が行えてしまう状況はには正直、感動します。いろいろと感じた点はあるのですが、話がそれそうなので、別の機会にします。

作業の流れ

  1. GitHubへユーザ登録
  2. GitHubへログインし、Gistでソースコードを登録する。
  3. 好きなページにスクリプトを埋め込む
上記の4ステップです。実際やってみましたが、私はGoogleのBloggerを利用しており動的ページを利用していると表示できないという罠にはまった以外はあっさりとうまくいきました。

1.GitHubへのユーザ登録

ここは省略します。
必要がある方は、ここから登録できます。

2.GitHubへログインし、Gistでソースコードを登録する。

ログインすると以下の画面が表示されます。


画面上にある、Gistをクリックします。

ソースコードを入力します。
ファイルの拡張子でハイライト表示が変わるみたいなので必ず拡張子を入力すること


作成したら、Create secret gistをクリック

3.好きなページにスクリプトを埋め込む

画面右にある、Embed URLのアイコンをクリックすると
クリップボードに貼り付けるScriptタグがコピーされます。

自分のブログやホームページに貼り付けると完成です。
ちなみにこんな感じです。

Eclipseでソースを見てるみたいです。かっこいいので、皆さんもブログなど自分のコードを公開する場合は利用してみたください。

2015年8月16日日曜日

Java Web開発コーディング編 ステップ1 Hellow World

経緯とGoles

さてEclipseのインストール、WildFlyのインストールまで完了したら、いよいよプログラミングです。

今回は簡単なサーブレット、JSPプログラムを作っていこうと思いますが、せっかくなのでJava EE6で採用されたJAX-RSを利用して作成したいと思います。
また、今後のパッケージ追加が楽になるようにMavenプロジェクト化していきたいと思います。

JAX-RSのポイント


  1. 従来のサーブレットのようにWeb.xmlにURLマッピングの設定がアノテーションで可能となった。
  2. パラメータのバインドが簡単

ステップ1.動的Webプロジェクトを作成

File | New | Dynamic Web Prjectを選択します。

プロジェクトの初期設定を行っていきます。
Project name:プロジェクト名です。やる気が出るようにかっこいい名前をつけましょう
その他はそのままで、Next >をクリック

ソースを格納するパスと、ビルドしたクラスファイルなどを格納するフォルダを指定します。
ここでは、最終的にMavenプロジェクトにするので、src/main/javaにEdit...ボタンをクリックして変更してみたのですが、以下の画面のように変更できませんでした。
なんだか悔しいのですが、後で対処するとして、デフォルトのsrcのままNext>をクリックします。

次にContext rootを指定する画面ですが、WebページのURLのディレクトリになるので、こだわって名前をつけたほうが良いですが、練習なので、デフォルトのプロジェクト名と同じ設定のままFinishをクリックします。
気に入らなかった、ソースのディレクトリを変更します。
Project Explorerから作成したプロジェクトを選択して、右クリックから「Properties」をクリックします。
Propertiesから、「Java Build Path」を選択し、Sourceタブを選択します。
右中央にあるAdd Folderでsrc/main/javaを作成し、src/main/javaにチェックを入れてOKををクリック。

src/main/javaが追加されたのが確認できたら、OKをクリックする。
なぜか「ui WebContent」なんて変な名前になっているWebConetentもMaveにそって、src/main/webappに変更します。「ui WebContenet」フォルダをドラッグして、そのままsrc/mainしたに移動します。

そのまま、F2キーを押して名前をwebappに変更します。


Mavenプロジェクトにコンバートする。

プロジェクト右クリック | Configure | Convert to Maven Project
pom.xmlのDependenciesタブのDependenciesのAddボタンから以下の依存関係を追加する。


Group Id:org.jboss.spec.javax.ws.rs
Artifact Id:jboss-jaxrs-api_2.0_spec
Version:1.0.0.Final
Scope:proided

ちなみにpom.xmlの内容は以下のようになりました。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>HellowWorld</groupId>
  <artifactId>HellowWorld</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
   <dependency>
    <groupId>org.jboss.spec.javax.ws.rs</groupId>
    <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
    <version>1.0.0.Final</version>
    <scope>provided</scope>
   </dependency>
  </dependencies>
</project>





2015年8月14日金曜日

WildFly 9.0.1.Final のインストール

経緯とGoals


 仕事上、JavaEE環境によるWebサイトを構築する機会が多く、何度かJBoss Application Serverを利用した機会がありました。
 技術はもうそろそろいいかなと思いつつも、ある程度、動向は掴んでおく必要があるので、自宅のマシンにも開発環境を保持した状態にしたいため、久々にバージョンアップを行っていこうと思う。

今回の説明では、インストールするのはWildFlyの9.0.1.Finalを選択しました、GoalはEclipseとの連携までもって行きます。
途中発生した事象は、省略せず記述して行きます。

前提条件

  • Java SDKをインストールしていること(本説明では、バージョン1.8.0_51をインストールしています)
  • Eclipseのインストールが完了していること

WildFlyのダウンロード


上記サイトから、9.0.1Finalのダウンロード(ちなみに私が選択肢したのはJava EE7 & Web DistributionのZIP版)

インストール

とても簡単です。ZIPを好きなところに解凍してください。
移行WildFlyを展開したフォルダを$WFLY_HOMEと表現します。

動作確認

コマンドプロンプトから、起動してみますが、Eclipseからしか起動する気がない人はここは読み飛ばしてください。

以下のファイルを実行してください。
$WFLY_HOME\bin\standalone.bat
  Started in XXXXXmsというキーワードが出てくると起動完了です。

起動したサイトにアクセスしてみます。
ブラウザを起動して、「http://localhost:8080/」にアクセスして、以下のような画面が表示されると起動OKです。


確認が終わったら停止ですが。
起動したコマンドプロンプトからCtrl+Cで、強制終了させてもいいのですが、技術者なので、正規の停止方法も念のため。

$WFLY_HOME\bin\jboss-cli.bat -c --command=":shutdown"

Eclipseからの起動方法

Eclipseを起動してください。
Eclipseのインストール、起動はこちらを参照してください。
  1. Window |  Show View | Other...を選択してShow Viewダイアログを表示させ、Server | Serversを選択してOKをクリック。
  2. Serversタブから「No servers are available.Click this link ....」を選択
  3. New Serverダイアログを開くとWild Flyが無いので、「Download additional server adapters」をクリック
  4. Install New Extenstionから「JBoss AS, WildFly, & EAP Serer Tools」を選択する。
  5. Install New Extension | Review Licensesの「I accept the terms of the license agreement」を選択して「Finish」をクリックする。


    以下のメッセージが表示されるが、かまわずOKをクリック。

    するとインストールが開始されます。
  6. (後で確認)しばらくすると以下の警告が表示されました。

    なになに。後で調べるために、とりあえずDetailsで確認

    なんか、いっぱい出てきたので、中身もとりあえずコピッておこう。
    ※ おそらく、Eclipse上にインストールされているプラグインに既に含まれているという意味なので、影響はないかと思います。(WildFly起動までは特に何も影響はありませんでした)
    Warning: You are installing software that contains unsigned content. The authenticity or validity of this software cannot be established. Do you want to continue with the installation?
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.core_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.archives.feature_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.jdt.integration_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.ui_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.webtools_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.archives.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.classpath.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.classpath.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.dmr_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.doc.user_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.jmx.integration_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.jmx.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.as7_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.wildfly9_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.rse.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.rse.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.server.rse.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.serverAdapter.wtp.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.ui.mbeans_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.wtp.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.wtp.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.archives.scanner_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.archives.scanner.feature_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.tools.as.catalog_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.as.runtimes.integration_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.common.jdt.debug_3.7.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.checkup_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.core_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.ui_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.core_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.jmx.feature_1.7.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.core_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.tools_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.ui_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.local_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.ui_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.runtime.core_3.1.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.runtime.core.feature_3.1.0.Beta2-v20150724-1456-B25
      C:\usr\bin\eclipse\plugins\org.jboss.tools.runtime.ui_3.1.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.stacks.core_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.stacks.core.feature_1.2.0.Beta2-v20150724-1456-B25
      C:\usr\bin\eclipse\plugins\org.jboss.tools.usage_2.1.0.Beta2-v20150724-1456-B25.jar
    
    とりえず、OKを押して継続すると、無事完了したので、YesをクリックしてEclipseを再起動
  7. JBoss Tools UsageダイアログでYesをクリックして、もう一度「No servers are available.Click this link ....」を選択





    すると、やっと、WildFly 9.x(Experimental)が表示されます。

    さっそく、選択して起動してみましょう。
  8. ここはそのまま、Next>をクリック



    Home Directoryに、$WFLY_HOMEを指定する。
    ダイアログの上部に、JDKの警告が表示されている場合は、JDKのパスを登録します。
    ダイアログ中央右のInstalled JREsボタンをクリックする。

    画面上部の右、Add..ボタンをクリック

    Standard VMを選択したまま、Next>をクリック

    FinishをクリックするとJDK1.8.0_XXが追加されたことが確認できます。
    チェックボックスを選択して、OKボタンをクリックする。
  9. New Server画面で、Alternate JREのオプションを選択して、8.で追加したJDKを選択すると、警告が消えたことが確認できる。

    ダイアログ上部の、警告メッセージが消えます。Finishボタンを押すと、ServersタブにWildFlyが追加され、設定の完了です。

EclipseからWildFlyを起動してみよう

  1. ServersタブからWildFly 9.Xを選択して、右クリックし、ショートカットメニューからStartをクリックする。
  2. 自動的にConsoleタブに切り替わりますので、Started in XXXXmsと表示されると、起動完了です。
  3. ブラウザを起動して、「http://localhost:8080/」にアクセスして、以下のような画面が表示されると起動OKです。

次のブログではサンプルプログラムを作成して、実際にプログラムをデプロイしてみます。