あずきみるくのあずきはニガテ - for Engineer

ひよっこプログラマがやってみたことやハマっちゃったことなど、備忘録的な感じで書いていきます。

AzureMLをはじめてみた。(6)いざ、予想と分析!編

これまでに、以下の作業をやってきました。

AzureMLをはじめてみた。(1)MLStudioの準備 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(2)データの準備ー取得編 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(3)データの準備ー整形?編 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(4)どの項目に着目するか?編 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(5)アルゴリズムを適用する編 - あずきみるくのあずきはニガテ - for Engineer


総仕上げとして、実験を実行します!!

これまでに75%のデータを使ってトレーニングを行ったわけですが、
残りの25%を使ってトレーニングの効果の検証をします。

1)実行
 1. 「score」で検索

 2. [Score Model(モデルのスコア付け)]モジュールをドラッグ&ドロップ

 3.4. つなぐ
  →ここも、ポートの位置には意味があるので、これどおりつなぎましょう。

 5. 実行

f:id:azuki-milk-lush:20170904115836p:plain



2)結果の確認
 1. [Score Model(モデルのスコア付け)]を右クリック
  >[Scored Dataset(スコア付けされたデータ)]>[Visualize(視覚化)]をクリック
f:id:azuki-milk-lush:20170904120835p:plain

  すると、 予測された価格の値と、テストデータにて既知の値が表示されます。
  ・・・意外と乖離あるな。。。(ぼそっ)
f:id:azuki-milk-lush:20170904120814p:plain



3)評価(品質チェック)
先ほど、結果を確認しました。
この機械学習と予想はどうだったのか?を最後に評価します。

 1.「eva」とかで検索

 2. [Evaluate Model(モデルの評価)]モジュールをドラッグ&ドロップ

 3. つなぐ
  →[Evaluate Model(モデルの評価)]モジュールにポートが2つあるのは、
   別々のアルゴリズムをつないで、評価を比較したりするのに便利だから、
   だそうな。

 4. 実行

f:id:azuki-milk-lush:20170904140219p:plain


 5. [Evaluate Model(モデルの評価)]モジュールを右クリック
  >「Evaluation Results(結果を評価する)]>[Visualize(視覚化)]を選択
 
f:id:azuki-milk-lush:20170904140309p:plain

  こんな感じになるかと。
f:id:azuki-milk-lush:20170904141125p:plain


じゃー、次の問題は、このデータをどー見るか、ってことですね。。。
このデータはあくまで、予想した内容と、現実とでこんだけ差異がありますよ、ってことを見るのかな?

エラーの各統計情報を小さくすることをお勧めします。 小さい値は、予測が実際の値をより厳密に照合することを示します。 決定係数では、値が 1 (1.0) に近づくほど、予測の精度が高くなります。

と先生は言っているので、最後の値を1に近づけるべく、アルゴリズムだったり、データを引っ張るために絞り込んだカラムを変更したりして、試行錯誤してみてください、ってことでしょうか。

こんな感じのグラフも出てるのですが、ますます見方がわからない。。。
f:id:azuki-milk-lush:20170904142051p:plain

最終的にMLStudioはこうなりました。
f:id:azuki-milk-lush:20170904142238p:plain



***** やってみた まとめ と 感想 *****

えと、一応これでチュートリアルはひととおりやってみたことになります。

最後までお付き合いありがとうございます。
やってみて思ったのは、
手順としては楽なんだけど、知識は必要
ってことです。

そもそも機械学習統計学とかに基づいているらしいので、
どのアルゴリズムが検証に向いているのか、とかそういう知識はいるだろな、と。

あとは、欲しい予測を導き出すためにどのカラムに着目するか。

機械学習、一筋縄ではいきません。。。
でも、引き続きいろいろ見てみたいと思います。
というわけで、、、お疲れ様でしたっ!!!

AzureMLをはじめてみた。(5)アルゴリズムを適用する編

今までの手順はこちら。
AzureMLをはじめてみた。(1)MLStudioの準備 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(2)データの準備ー取得編 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(3)データの準備ー整形?編 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(4)どの項目に着目するか?編 - あずきみるくのあずきはニガテ - for Engineer


これで、データを準備して、きれいにして、着目するカラムの選択ができました。

次は、いよいよ機械学習のキモと勝手に思っている、
アルゴリズムの選択です。


そもそも、アルゴリズムってなんやねん、っていうあなたに。

アルゴリズム(英: algorithm [ˈælgəˌrɪðəm])とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。算法と訳されることもある。
「問題」はその「解」を持っているが、アルゴリズムは正しくその解を得るための具体的手順および根拠を与える。さらに多くの場合において効率性が重要となる。

アルゴリズム - Wikipedia


問題を解くための手順ってことすね。たぶん。いや、そのまんまか。。。


機械学習においては、どのアルゴリズムを使って学習させるのか、って
結構重要だと勝手に思っております。

じゃー、どうやって選ぶのか。
。。。ながくなりそうなので、詳しくはこちらをご覧ください。
Machine Learning アルゴリズムの選択方法 | Microsoft Docs

・・・正直、まだよくわかんない。
でも、ここはチュートリアルを進める場なので、
お手本に書いてある通り、単純な「線形回帰」を使うことにします。


AzureMLでは、データを「トレーニング」用と「テスト」用に分けて使うことができるそうな。

早速やっていくことにします。


1)トレーニングデータの分割
 1. 「split」で検索

 2. [Split Data(データの分割)]モジュールを選択し、ドラッグ&ドロップ

 3. 接続

 4. プロパティにて、[Fraction of rows in the first output dataset
  (最初の出力データセットにおける列の割合)] を探して 0.75 に設定
  →この設定で、データの75%をトレーニング用として割り当てます。
  (後で変更することも可能。)

 5. 実行
  →こうすることで、分割されたデータが次に紐付けるモジュールに
   うまいこと渡してもらえるようになるらしい。

f:id:azuki-milk-lush:20170904104448p:plain



2)アルゴリズムの適用
 1. モジュールのパレットの [Machine Learning(機械学習)] カテゴリを展開

 2. [Initialize Model(モデルを初期化)] を展開
  →機械学習アルゴリズムの初期化に使用できる
   モジュールのカテゴリが複数表示される。いっぱいだ。

 3. [Regression(回帰)] カテゴリにある[Liner Regression(線形回帰)]
  モジュールをドラッグ&ドロップ
  →今回はいろんなアルゴリズムがあるよ、ってことでこの方法ですが、
   いつも通り、検索ボックスにいきなり「Liner」とか入力して探してもOKです。
 
f:id:azuki-milk-lush:20170904105045p:plain



3)予測する値の設定
 今回は価格を予想したいので、「価格」を予想する値として設定します。

 1.「train」とかで検索

 2. [Train Model(モデルのトレーニング)] モジュールをドラッグ&ドロップ

 3. 4. つなぐ
  →つなぐポートは右と左で意味があるみたいなので、この通りにつないでください。

 5. [Train Model(モデルのトレーニング)] モジュールの[プロパティ]にて、
   [Launch Column Selecter(起動列セレクター)] をクリック

f:id:azuki-milk-lush:20170904112351p:plain


 6.7. [Available columns (使用できる列)] の一覧から [price(価格)]
  を選択し、「>」をクリック

f:id:azuki-milk-lush:20170904112453p:plain


  こうなっていればOK!
  最後にチェックボタンをポチして、完了です。
f:id:azuki-milk-lush:20170904112003p:plain



4)トレーニングの実行
では、いよいよ。。。トレーニングを実行します。
[Run(実行)]ボタンをポチすることで、実行されます。
15秒くらいかかったけど、無事実行できました。

実行が完了すると、 [Train Model(モデルのトレーニング)] モジュールに
緑のチェックがつきますね。
f:id:azuki-milk-lush:20170904112741p:plain


というわけで、この時点の最終形はこちら。
f:id:azuki-milk-lush:20170904113100p:plain

次はとうとう予測させてみる!です!!


docs.microsoft.com

AzureMLをはじめてみた。(4)どの項目に着目するか?編

ちょっと空きました。。。

本題に入る前に。
各項目がどんな処理をしているのか、ちょっと空くとすぐ忘れるのです。

というわけで、メモしておこう。

AzureMLにはコメントという機能があります。
項目をクリックすると、なんか入力できるフィールドが出てくるので、
ここに書きます。
f:id:azuki-milk-lush:20170901170908p:plain


入力したのに、「あれ?でない?」って時は、ここをぽちっとしてみてください。
ぴろっと出てきます。表示・非表示は制御できるんですね。
f:id:azuki-milk-lush:20170901171118p:plain



というわけで本題に入ります。
今回、使用しているサンプルデータはたくさんのカラムがあるのですが、
「価格を予想したい」
と思ったときに、必要なカラムとそうでないカラムがいたりします。

車の価格に何が影響するか、を考えたら、
きっとメーカーとか排気量とか燃費なんかが、ポイントになるのでしょう。
車の横幅とか、細かいサイズが必ずしも必要か、って言われると、、、、
きっと必要ないね。

つまり、本来の目的に必要なカラムだけを抽出して、機械学習させた方が
効率がいいのでは?ってことです。

ただし、ここで抽出するときに気をつけたいのが、
そのカラムが本当に必要かどうか、を判断する知識が必要です。
やみくもに選んでも意味がない、ってことです。

そりゃそうだ。


ということがわかったところで、今回は以下のカラムに着目して学習させます。

make, body-style, wheel-base, engine-size, horsepower,
peak-rpm, highway-mpg, price


早速登録してみます。


手順は下記の通り。

1)「Select Columns in Dataset(列の選択)」モジュール追加
 1. 検索boxに「select」と入力

 2. 「Select Columns in Dataset(列の選択)」モジュールをドラッグ&ドロップ

 3. 「Clean Missing Data(見つからないデータのクリーンアップ)」の
   左側から矢印をつなぐ

 4. コメントを書いてみる

 5. プロパティ内の「Launch Column Selecter(列セレクターの起動)」をぽち。

f:id:azuki-milk-lush:20170901173806p:plain


2)必要カラムの選択
では、次に必要なカラムを設定します。

 1. [With rules (規則を使用)]をクリックします。
で、[Begin With (次で始まる)] の [No columns (列なし)] をクリックします。
   →プルダウンは、[Include (含める)] と [column names (列名)] を選択

 2. テキスト ボックスで、必要な列を選択します。
   →それぞれの意味は下記の通り。
    、、、「馬力」が「horsepower」ってまんまやん。。。初めて知ったw

カラム名意味
makeメーカー
body-styleボディスタイル
wheel-baseホイールベース
engine-sizeエンジンサイズ
horsepower馬力
peak-rpm最大 rpm
highway-mpg高速道路 mpg
price価格

 3. 最後にチェックボタンをぽちします。

f:id:azuki-milk-lush:20170901174244p:plain


こんな感じで登録されてればOK!
f:id:azuki-milk-lush:20170901175652p:plain



これで、着目する項目の設定ができました。
ちなみに、この項目はいつでも変更できます。

思うような結果が出ない時は、必要に応じて変更して試してみましょう〜。


いつもの先生。
docs.microsoft.com




********** シリーズはこちらをどーぞ。 **********
AzureMLをはじめてみた。(1)MLStudioの準備 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(2)データの準備ー取得編 - あずきみるくのあずきはニガテ - for Engineer
AzureMLをはじめてみた。(3)データの準備ー整形?編 - あずきみるくのあずきはニガテ - for Engineer

AzureMLをはじめてみた。(3)データの準備ー整形?編

今回もお手本にならって進めます。

・・・ていうか、このお手本、中途半端に日本語訳されてるから、
ほんと困っちゃう、、、

それはさておき。

データをとりこんだはいいものの、正しいデータの条件である
「全てのデータに抜けがなく、連続したデータであること」
が満たせていないことが今回の問題。


ここでいう、赤枠の部分が抜け、ね。
f:id:azuki-milk-lush:20170818131636p:plain


これを解決していきます。



1)モデルから不要な列を除外する
そもそも、この列が何を意味している列なのか、イマイチわかってないけど、、、
とりあえず除外するらしい。
不必要なデータ、ってことかしらね。。。

まずは、横から「Select Columns in Dataset(列の選択)」モジュールを
ドラッグ&ドロップ。

すると、こんな感じになります。
f:id:azuki-milk-lush:20170818131235p:plain


それから、上の○から下の○に線をひっぱります。
f:id:azuki-milk-lush:20170818132138p:plain


これで接続できた、のかな?


で、「Select〜」を選択して、プロパティウィンドウを開きます。
右上の「<」をぽちすると右からぺろっと出てきます。
(先生には「プロパティウィンドウを〜」とか書いてあるけど、
 最初どこから開くかわかんなかった。。。
 勝手に閉じちゃったからだね)
f:id:azuki-milk-lush:20170818135522p:plain


ので、そこの「Launch Column Selecter(列セレクターの起動)」をポチします。
f:id:azuki-milk-lush:20170818133119p:plain


こんな感じの画面出ましたね。
f:id:azuki-milk-lush:20170818133355p:plain


じゃー、順番に設定します。

  1. 左側の「WITH RULES(規則を使用)」を選択
  2. 「Bigin With(次で始まる)」は「All Column(全ての列)」を選択
  3. 「Exclude(除外)」を選択
  4. テキストボックスをクリックすると、全部の列名が表示される ←いまココ

f:id:azuki-milk-lush:20170818133914p:plain


で、今回は「normalized-losses」列が問題だったので、
そいつを選択してやると、こうなる。(複数選択もできるみたいやね)
#ちなみに、読み進めてわかったんだけど、
 「normalized-losses」は「正規化された損失」って意味だったんだね。
 まだよくわかってないアホがここにおりますが。。。
f:id:azuki-milk-lush:20170818134902p:plain


で、仕上げに右下のチェックボタンを押してあげると、こうなる。
f:id:azuki-milk-lush:20170818140024p:plain


これで、「normalized-losses」列以外は全ての列がフィルターを通過することになった、らしい。



2)データのクリーンアップ
さて、邪魔モノを除外する準備が整ったので、あとは綺麗にするだけ、ってことでしょうか。

今度は、「clean」で検索をかけて、
「Clean Missing Data(見つからないデータのクリーンアップ)」を
ドラッグ&ドロップします。
f:id:azuki-milk-lush:20170818140730p:plain


で、また同じようにつなぎます。
f:id:azuki-milk-lush:20170818141033p:plain


そしたら、またプロパティを編集。
#今度は開きっぱなしだったから迷わないよ笑
「Cleaning mode(クリーニングモード)」を「Remove entire row(行全体を削除)」
にするだけ。

これで、見つからない値を含む行は削除されて、対象データとして
妥当?正当?なデータだけが残されることになる、ようです。
f:id:azuki-milk-lush:20170818141300p:plain


そしたら、仕上げに「RUN(実行)」ボタンをポチしましょう。
f:id:azuki-milk-lush:20170818141750p:plain


正常に動いた場合は、右側に緑のチェックがついて、
上の方に「Finished runnning(実行が完了しました)」って表示されます。
f:id:azuki-milk-lush:20170818141937p:plain


・・・ならなったら、、、がんばって調べてくださいw


3)確認
じゃー、最後に確認してみましょう。
ほんとにちゃんとデータできた?


「Clean Missing Data」を右クリック >「Cleaned dataset」 > 「Visualize」
f:id:azuki-milk-lush:20170818142343p:plain


おおー!なんか、抜けがなくなってる!!
f:id:azuki-milk-lush:20170818142547p:plain



ぶっちゃけ、何が起こってるのかはまだよくわかってないけど、
とりあえず綺麗になった、ってことかな。。。

まだまだ先は長い。。。




docs.microsoft.com

AzureMLをはじめてみた。(2)データの準備ー取得編

なにはともあれ、、、

まずは食わせるデータの準備が必要です。

でも、どんなデータを用意すればいいの?ってことになるかと思います。
そんな時はこちらを参照してください。

データ サイエンス用のデータの準備はお済みですか? データの分析 - Azure Machine Learning | Microsoft Docs

ビデオもありますが、全部英語なのでビビりますw
一通り聞いた後、わけわかんね。ってなって、
下をみると日本語で書かれてあるので、ちょっとだけしょんぼりします。。。

気を取り直して。
データに必要なポイントは以下の通り。


  • 関連性があること
  • 全てのデータに抜けがなく、連続したデータであること
  • 正確であること
  • 十分な量があること


これらの内容に関する詳細は、上部のリンクを参照してください。

そんなデータ、ちょっと試したいだけなのに、すぐ用意できないよ!
というあなた。。。。。

安心してください。
AzureMLにはちょっと試すだけのサンプルデータもそろっている、らしーです。

どんなデータか、、、見てみましょうー。


というわけで、こちらを参考に、自動車の価格予測を作ってみるらしい。
ちょっとだけわかりやすく、解説できたらいいな。。

docs.microsoft.com



ここからは、上記のサイトを個人的にやってみたやつを貼っていきます。
絵がいっぱいを目指していますw


1)新たな実験の作成
とりあえず、「+New」をポチしてみます。
f:id:azuki-milk-lush:20170817105733p:plain


こんな画面が出てくるので、とりあえず、新規で作ってみます。
f:id:azuki-milk-lush:20170817110009p:plain


そしたら、うっひゃー!こんなわけわかんない画面出てきた。。。
f:id:azuki-milk-lush:20170817110215p:plain


2)命名
実験には名前をつけてあげる。
f:id:azuki-milk-lush:20170817110840p:plain


3)サンプルデータの取得
左側のメニューから
「Saved DataSets」>「Samples」
を選ぶと、いっぱい出てくる。。。
こんなにいっぱいサンプルデータがあるのね。
f:id:azuki-milk-lush:20170817111308p:plain
。。。ただ、いかんせん、あずきは英語がそんなに得意じゃないのでよくわからない。

気を取り直して、今回は自動車の価格予測なので、
「automobile」
で検索してみませう。

f:id:azuki-milk-lush:20170817111605p:plain
かなり絞り込んだな。。。

で、「Automobile price data(Raw)」を、ドラッグ&ドロップ。
したらこんな感じになった。
f:id:azuki-milk-lush:20170817111941p:plain
さすがのMicrosoftさん、いっぱいいろんなダイアログ出してくれるあたり親切です。


4)サンプルデータの確認
とったデータの中身はどんなもんなのか、をみることもできるようです。

「Automobile price data(Raw)」を右クリック >「Visualize(視覚化)」
f:id:azuki-milk-lush:20170817112401p:plain


こんな感じのデータが入っているみたいです。
205件、ってことでしょうか。
f:id:azuki-milk-lush:20170817112750p:plain


でも、よく見ると、データに穴がありますね。。。
うーん。これだと、条件の
「全てのデータに抜けがなく、連続したデータであること」
に該当しないですね。。。

というわけで、今回はここまで!

次はデータの加工をせねばならぬ?!

AzureMLをはじめてみた。(1)MLStudioの準備

AzureMLってなに?

ってところからスタートしました。
MLは機械学習ってことみたい。

今の知識でいうと、機械にデータをいっぱい食べさせて、
ふむふむさせて、、、、質問に答えさせる。的な。

もっというと、例えば
食べた量
歩いた時間
減った体重
っていうデータを毎日とって、食わせる。
で、それをしばらく溜め込んで。。。

こんだけ食べて、こんだけ歩いたら体重はどのくらい減る?

っていうのを聞くと、○キロ!!って答えてくれる。

って感じでしょうか?



とりあえず、そんな機械学習をタダで試させてくれる、
しかもプログラミング、ツールのインストール不要!!
ってことでやってみます。。。。AzureML。


AzureMLっていうのは、ブラウザで操作できるみたい。
ブラウザでMLStudio(Machine Learning Studio)っていうのを使うそうな。

ではさっそく、ここにGO。
 
Microsoft Azure Machine Learning Studio

で、サインイン。
f:id:azuki-milk-lush:20170817100059p:plain

すると、ML契約方法?を選べる画面が出てきます。
今回はタダでやりたいので、真ん中かな。

Microsoftアカウントが必要みたいですが、無料で作れるので
ない人は作ったらいいと思います。

f:id:azuki-milk-lush:20170817100320p:plain

で、ぽちぽちすると、こんな画面になります。
f:id:azuki-milk-lush:20170817100421p:plain


これで準備OK!!

これから、サンプルデータとかを使って機械学習を試してみたいと思います!

iOSでsubmitボタンが消えた!!buttons.cssのせい?!

うそのような、ほんとの話。

ボタンが消えたんです。iOS上でのみ。

PCでもAndroidでも、問題なく見えているのに、
iPhoneとかiPadではボタンが忽然と消えたんです。

でも、見えないだけでボタンは存在してて。
「この辺にボタンアッタヨネ~」ってところを
タップすると反応する、という何とも不思議な現象。

これをなんとか解決したいと思います。

■状況

手っ取り早く言うと、cakePHPにbuttons.cssを使ってボタンを作ってます。

現象としては、

  <iOS8では・・・>
     PC、iPhoneともに、ボタンが見えていた。

  <iOS9になると・・・>
     ボタン消えた!!

いろんなところをググったけど、おなじ現象の人は見当たらず。

<環境>
 ・php 5.4
 ・cakePHP 2.5.8
 ・buttons.css(1.0?)
    ※「2.0 comming soon!」ってなってたから、たぶん1.x?。
 ・iOS 9.2

■buttons.cssとは。。。

ボタンを作るためのcssライブラリです。
詳しくはここでー。
unicorn-ui.com


■で。

使ってるソースは一緒。

echo $this->Form->submit('送信', array(
            'name'=>'smt', 
            'div'=>false, 'label'=>false,
            'class'=>'button button-rounded button-flat-caution'));


実行すると、こんな感じで出力されるはずだった。

f:id:azuki-milk-lush:20160307141051p:plain

iOS8までは、こんな感じでちゃんと出てたのに。

iOSアップデートしたとたん、消えたんですわ。

不思議だ・・・


■解決法

いろいろやってみたけど、一番簡単な解決法は

echo $this->Form->button('送信', array(
            'name'=>'smt', 'type'=>'submit', 
            'div'=>false, 'label'=>false,
            'class'=>'button button-rounded button-flat-caution'));

にすること。やったことは以下の2ステップです。


① FormHelper:submit → FormHelper:button

② 'type'=>'submit'の追加



■検証してみる。

出力されるHTMLがどう変わるか。

FormHelper:submit

<input name="smt" class="button button-rounded button-flat-caution" type="submit" value="送信">

FormHelper:button

<button name="smt" type="submit" class="button button-rounded button-flat-caution">送信</button>


・・・ふむ。タグが変わっただけで、動作も変わらない。
やってみれば一発なんだけど、それまでは
・Buttons.cssの中身を変更するか
・Buttons.cssのアップデートを待つか
iOSのアップデートを待つか
なんて考えてた。

iOSのバグなんじゃない?!
とか思ってたけど、、、実際のところは謎のまま。

とりあえず、事象は解消されたから、これでいいかな?

他の解決方法をお持ちの方、ぜひコメントお願いします!!

Heroku ことはじめ

すみません。前回の投稿と前後します。
実は、だいぶ前(日付見たら2015/7/11作成だとか)に下書きしてたやつです。。。
なので、随所で画面がちょっと古いです。。。ゴメンナサイm(_ _)m
ついでなのでUPしときます。。。


今回は、うちの旦那からの依頼です。

「Heroku使って、javaアプリ載せたいねん。
 でもGitとMavenがめんどくさいねん。教えて。」

なんてことだ。。。

Mavenjavaなら使ったことありますが・・・
HerokuとGitは未着手です。


Herokuについては、こちら(↓)が詳しいのですが、

無料で使える範囲はこちらをご参照ください。
HerokuでWebアプリ開発を始めるなら知っておきたいこと(1) 無料のスペック - アインシュタインの電話番号


大雑把にまとめると、

  • Paas(Platform as a Service)です
  • ある程度までなら無料で使えて、面倒な設定をやってくれてるサーバです
  • ちょっといろいろやってみたかったらアドオンを入れればできます
  • でも、そのいろいろにはお金がかかります

   (よくあるよね。ゲームとかで早く進めたかったら課金、的な。)

  • そのおかげで、多くの人が無料の恩恵にあずかれます

   (課金してくれた人、ありがとう)



ちょっと話がそれましたが、こんな感じでしょうか。

・・・まだよくわかんないな。

とりあえず触ってみるか。



と、いうわけで、さっそく、今回の先生をご紹介します。
qiita.com


Javaのための準備のページが用意されているようなので、
以下のサイトを参考に進めていきます。

devcenter.heroku.com


ページはこちら。
f:id:azuki-milk-lush:20150710160955p:plain

準備としては
1)Herokuのアカウント作成
2)Java8のインストール
3)Maven3のインストール
です。
※2015/9ごろから、Gradleにも対応したようです。

1)Herokuのアカウント作成

Herokuはレンタルサーバーの便利版的な印象です。
と、いうことは、とりあえずアカウントが必要になるということで。
早速登録してみましょう。

1-1. HerokuのページへGo!

 www.heroku.com

 真ん中の「Sign up for free」をポチします。
 ※右上にも「Sign up」ありますよ~
 f:id:azuki-milk-lush:20150710114915p:plain

1-2. 名前とメアドを入力して、

「Create Free Account」ボタンを押下する
f:id:azuki-milk-lush:20150710115025p:plain

1-3. メール到着!

 こんな感じのメールが来ます。
 リンクをぽちしていただければ、パスワード入力画面に遷移します。
f:id:azuki-milk-lush:20150710170844p:plain

1-4. パスワード入力

f:id:azuki-milk-lush:20150710170526p:plain

1-5. Welcome!

パスワードを入力するとWelcome画面が表示されます。
さらに、メールアドレスが書かれている部分をクリックすると・・・
f:id:azuki-milk-lush:20150710170448p:plain

この画面が出たらひとまずOK。
アカウントの作成はできたと思われます。
f:id:azuki-milk-lush:20150710170302p:plain

2)Java8のインストール

いつものあそこ。
そう、ここから、OSに合わせてダウンロードしてください。
Java SE Development Kit 8 - Downloads
※ ライセンスに同意するのを忘れないでね。

いけたか確認してみましょう!
コマンドプロンプト

java -version

こんな感じで出たらちゃんと反映されてます。

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

3)Maven3のインストール

3-1.ダウンロード

ここからダウンロード。
お好きな形式を選択してください。

mavenインストール

3-2.インストール

解凍すると、「apache-maven-3.2.5」っていう名前のフォルダがいるので、
コピーしてC直下に置くことにします。

3-3.環境変数(PATH)設定

PATHの設定を行います。

Windows8.1の場合

Windowsキー」を右クリック>「システム」>
「システムの詳細設定」>「環境変数

から編集してください。

設定するのは以下の2つです。

JAVA_HOME

  JDKのインストール場所です。
  あずきはProgramFiles以下のため、

  C:\Program Files\Java\jdk1.8.0_45\bin

  と書き込みます。
  ※「JAVA_HOME」という変数が存在しない場合は「追加」などから
   新規作成してください。

②PATH

  あずきはC直下なので、この通り。
  C:\apache-maven-3.2.5\bin
  
  ※「PATH」はだいたい、もういます。
   小文字の「path」でも同じ意味です。
   その場合は、区切り文字として「;(セミコロン)」をつけて
   編集(追記)してください。

3-4.インストールの確認

ここまでできたら、コマンドプロンプトを新しく立ち上げ、

mvn --version

と入力してみてください。(Windowsの場合)

こんな感じでバージョン情報が表示されていれば、
インストール完了です。

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; ...)
Maven home: C:\apache-maven-3.2.5\bin\..
Java version: 1.8.0_45, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_45\jre
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"


で、とりあえず準備ができました。
次からいろいろデプロイして試してみたいと思います。

参考:
Apache Maven3 (3.2.5) インストール手順 (Windows) | WEB ARCH LABO

【Java】 WARファイルをHerokuにデプロイしたい

最近、Herokuを使い倒したいあずきです。

今回やりたいこと。


WARファイルをHerokuにデプロイしたい

以下の2点も追加でやってみたいと思います。

  • Gradleを使ってみる
  • プロジェクトの編集はeclipseで行う

この内容が不要な方は・・・下の方まで飛んでくださいw
※一番下の「続きを読む」をクリックしていただけると、
 下の手順から飛べます。

手順は以下の通りです。
eclipseは既に用意されているものとします。

1)Herokuアカウント取得
2)Gradleインストール
3)Gradleプロジェクトの作成
4)eclipseプロジェクトの作成
5)アプリケーションプログラムの作成
6)WARの作成
7)Herokuへのデプロイ
8)まとめ

続きを読む

eclipseとSVNの連携あれこれ

SVNの設定はこちらをご参照ください。
Subversion - Linuxにインストールして、Windowsで使えるまで - あずきみるくのあずきはニガテ - for Engineer
Subversion - ベーシック認証でいいっすか? - あずきみるくのあずきはニガテ - for Engineer

んで、今回はeclipseで作成しているプロジェクトを新規にSVNに登録したり、
既存のプロジェクトをチェックアウトしたりする流れ。

ちなみに、SVNの使い方や用語解説などは割愛しております。



<環境>
pleiadeseclipse 4.4 LUNA)
Subversive -SVN チーム・プロバイダー 3.0.0(eclipseプラグイン
SVN 
 
 ※pleiadesをインストールした時点で、SVNを扱う
 Subversiveというプラグイン?はインストールされているようです。
 もし、単体(pleiadesではない)を使用している場合は、
 「ヘルプ」>「eclipseマーケットプレース」から
 インストールしてください。



1)既存プロジェクトの共用

SVNリポジトリは作成されていることを前提とします。

で、

いま、ふつーに作っているeclipseのプロジェクトを
SVNで共用したい、

って時のやり方。



プロジェクトエクスプローラで右クリック
>「チーム」>「プロジェクトの共用」を選択します。

f:id:azuki-milk-lush:20160114172233p:plain

今回はSVNを使用するので、「SVN」を選択します。

で、次へ。


以下、画像はURLなどに説明用文言を入力しているため、
エラーになっていますが、そこは気にせず、必要項目を
入力していってください。



SVNのURL、ユーザ名、パスワードを入力します。
※画像の訂正
  (誤)http://(SVNサーバのIP)/svn/(SVNリポジトリ名)/trunk
  (正)http://(SVNサーバのIP)/svn/(SVNリポジトリ名)
 trunkは「拡張」タブで設定されているので、ここでは書かなくてもOKです。

f:id:azuki-milk-lush:20160114172654p:plain
※「認証の保管」にチェックを入れておくと、後々楽かも。

で、次へ。


f:id:azuki-milk-lush:20160114173641p:plain

シンプルモードのままでいいのですが、「参照」ボタンを押下して、
「trunk」を選択します。


で、次へ。



コメントはそのままでOKなので、
「完了」ボタンを押下します。


プロジェクトエクスプローラにて、
こんな感じに表示されていればOKです。

f:id:azuki-milk-lush:20160114174145p:plain


2)既存プロジェクトの取り込み

既にSVNにプロジェクトとして登録されているものを
eclipseに取り込んで編集したい、

もしくは、

既に動いているプロジェクトに途中から参画する

って時のやり方。

「ウィンドウ」>「パースペクティブを開く」>
SVNリポジトリエクスプローラー」

を開きます。

f:id:azuki-milk-lush:20160114181302p:plain

SVNリポジトリー」にて右クリック>
「新規」>「リポジトリロケーション」で以下のポップアップが表示されます。

f:id:azuki-milk-lush:20160118120100p:plain

URL、ユーザ名、パスワードを入力します。

すると、こんな感じで取り込めます。
f:id:azuki-milk-lush:20160120114155p:plain

あとは「trunk」を右クリック>「チェックアウト」とすると、
eclipse上のプロジェクトエクスプローラーなどで
ソースを編集、コミットetcすることができるようになります。


とりあえず、今回はここまで~。