Ajile開発手法

イントロダクション

Ajile開発のワークショップに行ってきました。
とても、有意義かつ、勉強になったワークショップでした。
そんなわけで、学んだことをまとめます。

Ajile開発とは

Wikiを参照すると下のようなものでした。

アジャイルソフトウェア開発手法の多くは、反復 (イテレーション) と呼ばれる短い期間単位を採用することで、リスクを最小化しようとしている。 1つの反復の期間は、プロジェクトごとに異なるが、1週間から4週間くらいであることが多い。
アジャイル開発手法においては、開発対象を多数の小さな機能に分割し、1つの反復 (イテレーション) で1つの機能を開発する(⇒反復型開発)。そして、この反復のサイクルを継続して行うことで、1つずつ機能を追加的に開発してゆくのである。また、各々の反復は、小規模なソフトウェア開発プロジェクトに似ている。なぜなら、計画、要求分析、設計、実装(コーディング)、テスト、文書化といった、ソフトウェアプロジェクトに要する全ての工程を、1つの反復内で行うからである。

そして、まとめると開発の作業範囲を限定して、細かく作業を分けて、その単位で開発を行うということです。

具体的に

例えば、コンソール出力版テキストRPGを作成するプロジェクトがあったとします。その時に作成するべき内容は以下の通りです。※自分で作成するのにこのような仕様にしました。

作成する項目(仕様)(TextRPG)

  1. 戦闘シーンを作成する(単体のモンスターと)
  2. 複数モンスターとの戦闘
  3. 仲間を加え戦闘することができるようにする
  4. プレーヤーがレベルアップできるようにする
  5. ストーリー展開のシーンを表示できるようにする
  6. タイトルを表示をできるようにする
  7. ストーリー展開と戦闘シーンの切り替えをできるようにする
  8. タイトルとストーリー展開シーンの切り替えをできるようにする
  9. タイトル~戦闘シーンまでの切り替えをできるようにする
  10. ストーリー展開シーンの中でストーリーを進行させることができるようにする
  11. 装備などでステータスを、変更できるようにする
  12. 町などで、買い物ができるようにする
  13. アイテムの使用ができるようにする(戦闘シーンも含む)
  14. エンディングを表示できるようにする

上記のように、各仕様に対してその実装を行うのですが、その使用でちゃんとアプリケーションが動くように作成していきます。

ここでポイントになるのがテスト駆動開発です、それは、各仕様を実装していくのに、実装した部分を修正し続けていく必要があるためです。

ここで、テスト仕様から作成し、動きを確かめながら実装してくのもそうですが、修正するときに「テストが通ればどんな修正でもOK]という形にしておけば修正も楽だしレビューだって楽にできる状態になります。
つまり、レビューワーはテスト仕様がちゃんと組まれているか?を確認、テストの実行結果もOKということを確認するだけでよいのです。

「楽」というのは、作業時間が少なくて済むということです。空いた時間はほかの作業を行えばよいので仕事にも余裕ができます。

スクラムフレームワーク

アジャイル開発の現場では「スクラム」というフレームワークを使用することが多いようです。リンク先はWikiです。
このフレームワークは、下のようなフローで作業を行うと作業効率がよく、作業員が成長できるというスグれものです。

スクラムに登場する役割

  • 開発チーム: プログラマーチーム
  • プロダクトオーナー: 製品の総責任者。 顧客の意思の代表としての役割を担う。
  • スクラムマスター: チーム内外の組織間調停( ファシリテーション )と外部妨害を対処することとされる。顧客側で担当することが多い。

作業その1:バックログの作成

製品に対する「要求」を作成すること、上の仕様がこの部分に当たる。
上の仕様は、大まかなものなので、これらの仕様を実現するための仕様(タスク)を実現するために「スプリント」という期間を作り、対応する。

作業その2:スプリントの作成

スプリントは上記の「要求」を実現するための「タスク」を切り出して、特定の期間内で完了するための作業です。
スプリントプランニング

  1. チームはスプリントで実現するバックログの項目を選択
  2. 選択したバックログ項目を実現するためのタスク化を行う
  3. チームが共同でタスク化する過程で、チーム内メンバーの認識差異がないことを最終確認する。

デイリースクラム

  1. 毎日スクラム会議を開く。
  2. 平日の決まった時間に決まった場所で行う。また、15分以内で完了させなければならない。
  3. スクラムマスターは、必ず出席、チーム全員に対して、以下の質問を行う
      1. 「前回のスクラム会議以降、何をしたか」
      1. 「問題はあるか」
      1. 「次回のスクラム会議までに何をするか」
  4. 問題があると報告された場合、スクラムマスターは、即座に意思決定する責任を負う。問題が外的要因によるものである場合、スクラムマスターが、その解決の責任を負う。

プロダクトバックログリファインメント
実際に行う作業の見積もりを行う、作業量がどのくらいか?期間内で完了できるか?を見積もるのにポイントを振り分ける。
初めて、行う作業に関しては、実際にポイントを振って行いその結果「XXポイント」でどのくらいの時間が必要だったか?の平均をとり、おおよその見積もりを取る。
(例)

  1. タスクA,B,Cとあったときに基準にするタスクを決めポイントを割りふる。
  2. 基準にしたタスクから「これぐらい」という見積もりをチームのメンバー内で話し合いで決める。
  3. 実行してみて、その結果、ポイントの消化がどれくらいでできたか?の平均値を取り基準にする

スプリントレビュー
スプリントレビューでは、スプリントで開発されたソフトウェアのレビューが行われ、必要に応じて、新たなバックログ項目が追加される。
このレビューには、顧客、マネージャ、開発者が参加する。
なお、場合によっては、営業やマーケティング関係者も参加する場合もある。

スプリントレトロスペクティブ(振り返り)
振り返りを行う。その振り返りのフレームワークとして以下のものがある。
各項目に対して意見をメンバーで出して、それを話し合い次のスプリントへつなげる

  • KPT: Keep, Problem, Try
  • YWT: やったこと、わかったこと、次にやること
  • FDL: Fun(面白かったこと), Done(やったこと), Learn(学んだこと)

モブプログラミング

実装者一人、他は全部レビューワー。の形で実装を進める方法。

実装者のレベルが近く、互いに切磋琢磨できる関係ができていればとても有意義なプログラミング手法

実際にやってみて面白かった。

ペアプログラミング

これも、上記同様実装者一人、レビューワー一人で実装を行う。

まとめ

スクラムフレームワークを使用してチーム開発を行うときに下のようなツールを使用するとやり易い。

  1. Gitなどのバージョン管理ソフト
  2. 意見交換するためのツール、ウェブホワイトボード、スケッチブックなど
  3. 時間の管理を行うタイムキーパー
  4. チームの活動を見守る人

今回のワークショップは仕事ではなく、「学習」だったのでとても楽しかったが「仕事だと楽しくないよな。。。」という意見もありました。

最も作業効率が良く、生産性の高い現場というのは、「楽しく仕事ができる」というところだと思いました。

でわでわ。。。

関連ページ一覧

EclipseセットアップWindows版

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

JavaFX関連ページ

  1. Eclipse SceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  4. Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜

ステップアップ関連ページ一覧

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine

JavaFX + ND4Jで機械学習準備

  1. JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
  2. JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
  3. Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜

オブジェクト指向関連ページ

  1. [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
  2. オブジェクト指向の概念2〜クラスとは〜

開発環境構築~Windows版Eclipseの設定~

Index

Install Eclipse

MergeDocからダウンロードします。

最新版のものを選択します。すると下のようにダウンロードするEclipseを選択できる部分が見つけられるので、迷ったら「Standerd Edition」を選択しましょう。細かいプラグインなどはいつでもインストールできます。※これでも結構なプラグインが入っていました。

そして、ダウンロードが始まらない場合は、リンクの部分をクリックします。

今回は、「20200702.zip」というファイルをダウンロードしました。
ダウンロードしたら、Cドライブ直下(C:)に解凍します。パスが長くなってEclipseが動かなくなる可能性があるためです。

ちなみに、自分の場合ZIPファイルの解凍ができなくてつまずきました。
7ZIPをインストールして実行したらうまくいきました。ちなみに回答したのは。「D:\」です。なので解凍後は「D:\pleiades」となりました。

Eclipseを動かす

試しに、eclipse.exeを起動してみてください。うまく動けばそれでよし。もし動かない場合はエラーメッセージが出るのでそれをちょっと眺めます。

早話が、「JDK(JRE)がないですよ!」というエラーです。JDKをダウンロードしてください。
解凍したフォルダにある「eclipse.ini」を開きバーチャルマシン=JDKを設定します。(追記してください。)

ちなみにエラーログの場所は以下になります。
WORKSPACE_HOME/.metadata/.log
自分の環境だと以下になります。

D:\pleiades\workspace.metadata.log

-vm
JAVA_HOME¥bin¥javaw.exe

JDKがない場合は

  1. OracleのHPからダウンロードできます。※この場合はOracleのユーザー登録が必要です。

  2. OpenJDKを開いてほしいバージョン番号(widows 64bit jdk8)を選択します。

  3. eclipse.iniの設定を行う。

    • 使用するJVM(JDK)を指定します。

      -vm
      D:/Apps/jdk1.8.0_265/bin/javaw.exe
    • 使用するメモリの指定を行います。

      -vmargs
      -Xms512m # メモリの最小値
      -Xmx1024m # メモリの最大値

      最終的に以下のようになりました。

-vm
D:/Apps/jdk1.8.0_265/bin/javaw.exe
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Xms512m
-Xmx1024m
-Dosgi.requiredJavaVersion=1.8
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.dataAreaRequiresExplicitInit=true
-Xverify:none
-javaagent:dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
-javaagent:lombok.jar

しかし、これで終わりではありませんでした。JDKが32bit版だったようで下のようなエラーが出ました。

なので、再度64ビット版をダウンロードしました。amazonのページでした。

これで自分のところではEclipseの起動ができました。

Setting Eclipse

Eclipseの設定を行います。
初めにEclipseを起動するとワークスペースの場所を聞かれます。
特に気にしないのであれば、そのままの値でワークスペースを作成して問題ありません。

そして、起動すると下のような画面が見れます。

不要なプラグインの削除

ヘッダーメニューから。。。
Help(ヘルプ) -> Market Place(マーケットプレイス)を開く
すると下のように、追加するプラグインを検索する画面が見れます。
MarketPlace

そして、インストール済みのタブを選択します。
InstalledPlugin

引き続き、不要なプラグインを選択
noNeedPlugin

変更と表示されているプルダウンからアンインストールを選択し不要なプラグインを削除します。

更新(プラグインのアンインストール)を適用するのにEclipseの再起動を行います。

プロジェクトの作成From Github

Githubにあるリポジトリからプロジェクトを作成します。
まずは、Githubにて、プロジェクト用リポジトリを作成します。
gitRepo1

そして、Codeとある部分をクリックすると下のようにダイアログが出ます。
dialog1
ここからURLをコピーします。

今度はEclipseに戻り、プロジェクトのインポートを選択します。
pachageExp

すると、下のようなダイアログが開くので、Gitからプロジェクト(スマートインポートでもどちらでもよいが今回はスマートインポートを選択しました。)
gitImport1

次は、クローンを選択します。
gitImport2

そして、先ほどコピーしたGihubのリポジトリURLを貼り付け,
Githubのユーザーとパスワードを入力します。
clone1

「セキュアストアに保管」にチェックを入れると毎回入力しなくてよいです。

そして、間違いがなければ下のように対象になるブランチが表示されますので、次へ進みます。
clone2

クローンする場所(ローカルリポジトリ)は下のような場所に設定しました。サブモジュールのクローンにチェックを入れ忘れないようにしてください。 ※今回は、サブモジュールがないので関係ありませんが。。。
clone3

クローンの完了です。
clone4
workspace2

Javaのソース配置

ここまで来たらJavaコードを書きたいのですが、パッケージなどの配置先をどのようにするか?を決めないといけません。
とりあえず、プロジェクトがJavaプロジェクトになっていないのでMavenプロジェクトに変更し、パッケージ構成を作成します。

  1. プロジェクトを右クリック
    構成 > Mavenプロジェクトへ変換

  2. 「src/main/java」と「src/test/java」というフォルダができるのでそれぞれ、メインの実装、テストクラスの実装用に使用する
    maven1

  3. パッケージを作成し、その配下にJavaソースを作成、とりあえずはHello Worldを実行して問題なくJavaを起動できることを確認
    ResultHelloWorld

JavaFX

JavaFXを使用してGUIアプリを作成したいと思ったときにjfxrt.jarがビルドパスに含まれてない場合があるようです。自分の場合は下のように解決しました。
「プロジェクトを右クリック⇒プロパティ⇒Javaのビルドパス」を開きます。
次に、「外部JARの追加をクリックして下のようにjfxrt.jarをビルドパスに追加します。

Jfxrt.jar

これで、動けばよいのですが最近ではJavaFXに関してGluonがメインで配布しているようで。。。

Setting Junit

JUNITの設定を行います、単純にjunit.jarをビルドパスにつなげるだけです。
しかし、ライブラリがあるのでそれを設定するほうが楽です。

  1. プロジェクトを右クリック -> プロパティ、もしくはAlt + Enterでプロジェクトの設定を開きます。
    projectProperty

  2. ライブラリの追加をクリック
    elipseAddLibrary

  3. JUnitを選択(選択後の画像です)
    elipseJunit5

  4. JUnit追加後
    eclipseAfterJunit
    プロジェクトにJUnitが追加されています。
    eclipseAfterJunit2

カバレッジを使用する

JUnitでテストを実行した後に、テストケースが網羅できているかの確認をしたいときに使えます。
今回のセットアップでは、すでにカバレッジ(プラグイン)が入っていたので、実行手順を示します。

ちなみに、プラグインの追加方法は以下

Junitでカバレッジを取得する
1.まずはeclipseを起動し、「ヘルプ」→「Eclipseマーケットプレース」を選択します。
2.Eclipseマーケットプレースのウィンドウが開くので、検索欄にEclEmmaと入力し、「Go」ボタンを押下してください。
検索結果にEclEmmaが表示されるので、「インストール」ボタンを押下してインストールします。

カバレッジ起動方法
  1. テストクラスを右クリック
    coverage

  2. JUnitテストを(実行)

実行構成は下の「カバレッジの構成」を選択します。
coverageConf


関連ページ一覧

Eclipse セットアップ(Mac版)

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 GitからソースをPullしよう〜
  3. IntelliJ IDEA GitGitリポジトリからクローン〜

JavaFX関連ページ

  1. Eclipse SceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  4. Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜

ステップアップ関連ページ一覧

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine

JavaFX + ND4Jで機械学習準備

  1. JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
  2. JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
  3. Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜

オブジェクト指向関連ページ

  1. [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
  2. オブジェクト指向の概念2〜クラスとは〜

Atomを使う~マークダウンエディタとして使用する~

Introduction

Githubでお馴染みの「Atom」について、以下の内容を学習しました。

  1. インストール
  2. MD, PDF出力、HTML出力のセットアップ
  3. マークダウンの書き方

AtomとMarkDownを使用する(for Windows)

  1. Install Atom
  2. Short Cuts
  3. Setup
    3-1. ATOMToJapanese
    3-2. PDF出力
  4. MarkDown
  5. Charctor encoding

※ページ内リンクは、日本語ではうまくいかなかった(日本語化していない状態です。)そしてワードプレス上でも、うまくいかないようです。。。

Install Atom

Atomのダウンロード先にアクセスして、対象のファイルをダウンロードします。
AtomDownload

インストーラーをダウンロードできるので、簡単にインストールできます。ただし、Cドライブにインストールされてしまいます。
Atom1

Short Cuts

ショートカット一覧

  • プレビュー:Controll + Shift + M
  • 設定:Controll + カンマ
  • GitTab(Repository作成):Controll + Shift + 9

Setup

AtomToJapaneseをインストール

  1. ヘッダメニュー、「Package -> Setting View -> install Packages/Themes」をクリック
    AtomPackageInstall
  2. 検索部分に「japanese-menu」を入力。
  3. 下のような画面が見れるのでインストールする

PDF

  1. パッケージのインストールを行います。日本語化の時と同様に検索部分に「md pdf」と入力すると、下のような画面が見れます。
    MdToPdf
    mdToHtml
  2. インストールされたら、下のように表示されます。htmlに関しても同様です。
    そして、PDFはAdobeReaderなどのインストールを済ませておきましょう。
  3. 使用するときは、ヘッダメニューから下のように選択して使用します。

絵文字の設定

現在調査中

  1. JSなどでインポートして使用
  2. 絵文字定義ファイルをダウンロードして使用する

MarkDown

書き方一覧

No MDの記述 意味
1 # 見出し
2 - / * リスト
3 1. 番号付きリスト
4 > 引用
5 ** / __ 強調
6 * / _ イタリック
7 *** / --- 水平線
8 \(バックスラッシュ) エスケープ文字
9 * [x] チェックリスト
10 ``` コードブロック
11 ~~ 打消し
12 [リンク名](URL) URLリンク
13 \<http:\//xxxx.com> URLリンク
14 ![代替え文書](画像URI) 画像参照
15 :emoji名: 絵文字~調査中~
16 (末尾にスペース二つ) 改行する

記述サンプル

  1. 見出し
  2. Hader1(#)

  3. Header2(##)

  4. Header3(###)

  5. Header4(####)

  6. Header5(#####)
  7. リスト
    • アイテム1
    • アイテム2
    • アイテム3
    • アイテム4
    • アイテム5
      ※スペースを入れることでインデントできる
    • アイテム1
    • アイテム2
      = 補助情報
    • アイテム3
      :詳細などを記載する
    • ウルトラマン
      M78星雲からやってきた正義のヒーロー
  8. 番号付きリスト
    1. リスト1
    2. リスト2
    3. リスト3
    4. リスト4
      ※スペースを入れることでインデントできる
  9. 引用
  10. 引用文章です

  11. 強調
    強調文言
  12. イタリック
    Itaric font
  13. 水平線

***


---


  1. エスケープ文字
  2. チェックリスト
    • [x] test1
    • [x] test2
    • [ ] test2.1
    • [ ] test2.2
    • [ ] test2.3
    • [ ] test3
  3. コードブロック
  4. public static void main(String[] args) {
  5. System.out.println("Hello World!");
  6. }
  7. 打消し戦
    ~打消し戦のサンプル~
  8. URLリンク
    PGボックスのURL
  9. https://zenryokuservice.com
  10. 画像参照
    ![Test](img/Test.png)
  11. 絵文字 調査中
    ~:smile:~

Charctor encoding

<文字コードの指定方法>
ctrl + shift + Uを押下して使用する文字コードを選択する

File Grep

<プロジェクト内の文字検索>
Ctrl + Shift + F

関連ページ一覧

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseにCDTをインストール〜
  3. Setup OpenGL with Java〜JOGLを使う準備 for Eclipse〜
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~

Java Basic一覧

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 9〜Training of for statement〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜
  17. Java Basic JUnit 〜テストスイートの作り方〜

Git関連

  1. Java Git clone in Eclipse 〜サンプルの取得〜
  2. Eclipse Gitリポジトリの取得 〜GitからソースをPullしよう〜
  3. IntelliJ IDEA Git〜Gitリポジトリからクローン〜

JavaFX関連ページ

  1. Eclipse SceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  4. Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜

ステップアップ関連ページ一覧

  1. Java 初めてでも大丈夫〜ステップアッププログラミングのススメ〜
  2. ステップアッププログラミング〜Java FxでHelloWorld解説〜
  3. Java StepUpPrograming〜JavaFX で四則計算〜
  4. Java StepUpPrograming〜JavaFXで画面切り替えを作る1〜
  5. Java StepUpPrograming〜JavaFXで画面切り替え2ボタン作成〜
  6. Java StepUpPrograming〜JavaFXで画面切り替え3アクション〜
  7. Java StepUpPrograming〜JavaFXで画面切り替え4Pane切り替え〜
  8. Java StepUpPrograming〜JavaFXで画面切り替え5WebEngine

JavaFX + ND4Jで機械学習準備

  1. JavaFX + ND4J〜数学への挑戦1:ND4Jのインストール〜
  2. JavaFX + ND4J〜数学への挑戦2: 行列の計算〜
  3. Java + ND4J 〜数学への挑戦3: ベクトル(配列)の作成方法〜

オブジェクト指向関連ページ

  1. [オブジェクト指向の概念1〜OracleDocのチュートリアル1〜](https://zenryokuservice.com/wp/2019/10/301. /%e3%82%aa%e3%83%96%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e6%8c%87%e5%90%91%e3%81%ae%e6%a6%82%e5%bf%b5-%e3%80%9coracledoc%e3%81%ae%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab%ef%bc%91/)
  2. オブジェクト指向の概念2〜クラスとは〜

Eclipse Codename one〜クロス開発環境の構築(Eclipseでは動かなかった)〜

IoTの開発をJavaでやりたいと思い色々と調べています。元々はMicrobit〜ラズパイ〜MIDI音源と音を鳴らすための仕組みを作ることにあるのですが、J2ME(Bluetooth)のテストを行うのに色々と不都合があり、Code name oneを使うことにしました。エミュレータでテストを行えばいちいち実機を動かしたりしなくて良いので便利です。
そういう意味であれば、VirtualBoxとか便利なんでしょうね。。。

初めに、Code name oneでJavaMEの開発環境を作ろうとしましたが、自分の想定通りにいかないので(スマホ用のプラグインのようなので、)やめることにしました。

今回の記載内容

インストールおよびセットアップは下のようになります。
しかし、NetBeansでないと動かないという記事も見つけたので、今回はインストール方法のみを記載しました。
他の方法を模索しようと思います。

Codename one plugin イントール

早速、Eclipseへのインストールと設定などを行い開発の準備を進めたいと思います。参照するURLはこちらです
そのままEclipseMarket Placeでインストールできます。

そして、細かい設定、手順などはこちらにありました。

なのでここのページを参照して行きます。

eclipse.ini

初めに設定ファイル(eclipse.ini)に関して以下のような記述がありました。ちなみに自分の環境ではCode name oneをインストールしただけでは動きませんでした。

JAVA_HOME環境変数がJDK 8を指していること、およびJDK 8 binディレクトリへのパスがPATHステートメントの最初にあることを確認してください。他のすべてが失敗した場合は、eclipse.iniファイルを編集してEclipseにJDK 8インストールを強制的に使用させます。

なるほど、そこらへんの設定が必要なのね。。。

まずは、eclipse.iniの確認を行います。これに関しても説明ページがありました
Macなので以下のように対象ファイルを開きます。

  1. 起動しているEclipseのアイコンを右クリックします。
  2. finderでパッケージを開き
  3. eclipse.iniを参照します。

    下のような内容が記載されています。

    -startup
    ../Eclipse/plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
    --launcher.library
    ../../../../../.p2/pool/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.551.v20171108-1834
    -product
    org.eclipse.epp.package.java.product
    -showsplash
    org.eclipse.epp.package.common
    --launcher.defaultAction
    openFile
    --launcher.appendVmargs
    -vm
    /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin
    -install
    /Users/takk/eclipse/java-oxygen/Eclipse.app/Contents/Eclipse/../MacOS
    -configuration
    ../Eclipse/configuration
    -vmargs
    -Dosgi.requiredJavaVersion=1.8
    -Dosgi.instance.area.default=@user.home/eclipse-workspace
    -XX:+UseG1GC
    -XX:+UseStringDeduplication
    --add-modules=ALL-SYSTEM
    -XstartOnFirstThread
    -Dorg.eclipse.swt.internal.carbon.smallFonts
    -Dosgi.requiredJavaVersion=1.8
    -Xms256m
    -Xmx1024m
    --add-modules=ALL-SYSTEM
    -Xdock:icon=../Resources/Eclipse.icns
    -XstartOnFirstThread
    -Dorg.eclipse.swt.internal.carbon.smallFonts
    -Declipse.p2.max.threads=10
    -Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest
    -Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/
    

    ポイント

  4. JVMの指定がない
  5. JAVA_HOMEの指定がない

なので、ここの部分をeclipse.iniに追記します。

JVMの確認と記述

ターミナルを立ち上げて確認します。ちなみにCodename oneではJava8(JDK1.8)を使用するようです。

java -version

と入力してエンターキーを押すとJavaのバージョンを確認できます。

そして、Mac OSXの場合は/usr/binにコマンドがインストールされているのでeclipse.iniには以下のように追記します。

-vm
/usr/bin

もし、java -verisonで1.8でない場合は下のように直接VM(JDKのjavaコマンド)を指定すると良いです。

-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin
-vm
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/bin/java

JAVA_HOME

Javaの環境構築で初めにやったきりになりがちなのが「環境変数」です、毎度毎度やっていると覚えるので、慌てて覚える必要はありません。
<Mac, Linux>
$JAVA_HOME: jdk/binが参照されてればよし上のように/usr/binはMacの場合です。
<Windows>
コントロールパネル→システム設定→環境変数の一覧の中にJAVA_HOMEがあり、PATHの中にJAVA_HOMEがあること
確認するときは、コマンドプロンプトでpathと入力する、pathコマンドは環境変数を設定するコマンドなのでpath以外に入力しないようにしてください。path /?でヘルプが見れます。
ちなみにJAVA_HOMEの確認は下のようにecho $JAVA_HOMEで見れます。

Windowsの場合はecho %JAVA_HOME%でけます。

JUnit 開発方法〜テスト駆動型開発のススメ〜

イントロダクション

U16プログラミングコンテストのサーバーに接続するクライアントアプリをJavaで実装しようという試みを行っております。

その最中にちょうど、テスト駆動型開発をやることにしたのでメモがてらに記載します。

テスト駆動型開発?

早い話が「テストを初めに作る」ということなのですが、世間ではどのような認識をしているのか、よくわかっていません。かと言って自分の認識が正しいと思っているわけではないのですが、自分の解釈はこーというものを記載します。

テストを初めに作る

テストを初めに作るということは「仕様を明確にしてやる」ということになります。つまり以下のように仕様を明確にします。

  1. サーバーから受信するデータは1回の操作で3回ある
    ・GetReady: 現在位置を受信
    ・操作コマンド: 操作によるレスポンスを受信
    ・動作終了"#": 現在位置を受信
  2. GetReadyで受信した情報から周囲の確認を行う
    ・ブロック(その場所に移動するとゲームオーバー)の位置
    ・相手(プレーヤ)がいるかどうか
    ・アイテムがあるかどうか
  3. 操作コマンドの受信結果による次の動作の決定
    ・仕様未決定
  4. 動作終了時の処理
    ・これも周囲の確認処理を行う
  5. 操作を行いながら自分の位置を確認するためのMapを作成する
    ・マップのサイズは15 x 17のサイズ
    ・プレーヤーの初期位置はランダムに決定する
    ・使用できるコマンドはSearch, Put, Walk, Lookなど詳細はこちら(U16旭川プログラミングコンテスト)

以上のような仕様で実装します、未決定の部分に関してはこれから考えます。

テスト作成の前に

まずはクラス構成を考えます(詳細設計)。これは規模としては小さいものなので単純にデータを送受信するU16ProconClientクラスとクライアントの細かい操作(マップを作ったり、次の動作を確認したり。。。)を担当するClientManagerクラスの2つを作成します。

U16ProconClientクラスは、実際にサーバーとのやりとりを行いながらやったので割愛します。

ClientManagerの実装

このクラスは、作成する時に上記で決めた仕様を先に実装します。具体的に以下のように実装します。作成したクラスはTestNd4jです。そして、JUnitの作成方法に関してはこちらのページを参照下さい。

まずは仕様を満たすための実装手順をテストケースに書きます。これは仕様の5番目にある部分を実装するために必要な処理なので、上の仕様を満たすための処理のテストケースです。コメントにある「2.移動した時にMapを。。。」とあるぶぶに関しては今後のことを考えて同じようにテスト(実装方法の確認)を行なった次第です。

/**
 * ClientManagerのコンストラクタで、マッピング用行列を初期化する。
 * 1.初期化時に中身を4で埋める
 * 2.移動した時にMapを拡張するので配列の拡張方法も確認
 */
@Test
public void testCreateINDArray() {
	// INT型データの行列を作成する
	INDArray data = Nd4j.create(new int[] {3, 3});
	System.out.println("*** init zeros***");
	System.out.println(data);
	System.out.println("*** putScalar ***");
	System.out.println(data.putScalar(new int[] {2, 1}, 1.0));
	System.out.println("*** init ones ***");
	// 1の値で初期化された配列に全て3を足す
	INDArray reData = Nd4j.ones(new int[] {3, 3}).addi(3);
	System.out.println(reData);
	System.out.println(Nd4j.pad(reData, new int[] {6,  6}, Nd4j.PadMode.CONSTANT));
}

このような形で、仕様→テストケース→実装とやって行くのが自分の認識している「テスト駆動型開発」です。

実装の例(作成中)

/** 自分の周りをチェックするメソッドのテストケース */
@Test
public void testCheckAround() {
	//// 本当はメソッド1つにつき1ケースのテストを行うが、小さなテストなので勘弁してください。。。 ////
	try {
		Method test = this.getPrivateMethod("checkAround", String.class);
		// テストケース1:周囲にアイテムがある場合
		target.setBufMap(new String[] {"0", "0", "0","0", "0", "0", "0", "0", "0"});
		test.invoke(target, "1010010010");
		//(これから実装)テストケース2:周囲に相手プレーヤがいる場合
		//(これから実装)テストケース3:行動できるスペースにブロックがあるかどうか
	} catch (SecurityException e) {
		e.printStackTrace();
		fail("セキュリティ違反です。");
	} catch (InvocationTargetException e) {
		e.printStackTrace();
		fail("メソッド実行時エラーです。");
	} catch (IllegalAccessException e) {
		e.printStackTrace();
		fail("アクセス違反です。");
	} catch (IllegalArgumentException e) {
		e.printStackTrace();
		fail("メソッドの引数違反です。");
	}
}

仕様を先に持ってくるから仕様を詰めて考えたい人(ほとんどの人がそうだと思う)にはうってつけの開発手法だと思います。

Maven利用の場合

ちなみにMavenを使用してJUnitを入れるときは以下のようなコードを追加します。<project>タグの中に入れてください。

  <properties>
   <junit.version>4.12</junit.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>

でわでわ。。。



Eclipse インストール方法~windowsへのインストール~

Windows端末へのEclipseインストール方法

1.Eclipseのインストールページ(MergiDocProject)へ移動し「最新版」の部分をクリックします。下の画面では一番左上のものがそうでした。

2.下の赤枠で囲んだものを選択してやるとあまり重くないスタンダードなものがダウンロードできます。これにプラグインなどをたくさん追加するとめちゃくちゃ重いのですが、最近の(PentiamⅢ以降)のものはサクサク動くと思います。。。環境に依存するので何とも言い難し。。。

上の赤い部分をクリックすると下のような画面が表示され、対象のファイルをダウンロード開始しました。大体5分くらいかかりました。(ネットワークのスピードなども影響するのでおおざっぱなアタリ程度に】

そして、ダウンロードしたものをC:\フォルダ 直下に回答します。

そして、Eclipse.exeを起動(ダブルクリック)すると起動できます。EXEファイルは「C:\pleiades\eclipse」の位置にあるのでそいつを起動します。

そしてうまく動かないときは、多少時間がたってからですが、下のようなログが出力されます。

一番上の部分を見てください「java was started but returned exit code = 13」と書いてありました。なのでこいつをコピーしてググります。そしてたらこちらのページが引っ掛かったので見てみるとJDKのインストールとかの記載があります。

まとめると「JDKがきどうできないよ」というエラーでした。なのでJDKを使用できるように設定します。

Eclipse.ini:設定ファイル

動かないときは、下の位置にある「Eclipse.ini」ファイルを開いてみてください。Windowsの設定によっては拡張子が表示されません。

ちなみに「フォルダオプションで拡張子を表示する設定を行うと拡張子が見れます。

そしてここにはEclipseを起動するときの設定が記載されています。

不足分を追加してやると動きます。上にあげたケース(自分の場合)はJDKはあるけどそれが「Eclipseにあっていないよ」というエラーメッセージでした。

なので、使用できるJDKを使用してEclipseを動かします。

結論

eclipse.iniに下のような設定を行います。

-vm
C:\jdk1.8.0_45_glassfish\bin\java.exe

上が実行結果です。

 

でわでわ。。。

 

Java DB 起動〜Derbyの起動〜

イントロダクション

JavaDB、Derbyの起動について記載します。DerbyはJDK=Javaをインストールしたら一緒についてきます。JDKつまり下のキャプチャになります。

Java(JDK)のインストール先から「db」と言うフォルダがあればインストール済みと言うことです。

起動するためにどうやるのか?

起動するのには大まかに2つのタイプがあります

  1. サーバータイプ:「ij」コマンドでDerbyを起動して、それにアクセス
  2. Embedタイプ:システムプロパティに起動する場所を設定して起動する

今回は2の「Embed」タイプの起動を行います。

  1. Derbyを起動する場所を指定する
  2. エンコード指定をする

<実際のコード>

String url = "jdbc:derby:/Users/takk/eclipse-workspace/AutoBlogPoster/db;create=true";
try {
        // システムのホーム=>Derbyを起動する場所
	System.setProperty("derby.system.home", "/Users/takk/eclipse-workspace/AutoBlogPoster/");
        // エンコードの指定
	System.setProperty("derby.ui.codeset", "UTF8");
        // 指定した場所で起動するDBのコネクションを取得する
	con = DriverManager.getConnection(url);
        // オートコミットする設定
	con.setAutoCommit(true);
        // SQLを実行するためのオブジェクト
	stm = con.createStatement();
        // SQL文
	String isTable = "select * from BUNSETSU_MST";
        // SQLの実行と実行結果取得
	ResultSet rs = stm.executeQuery(isTable);
	while(rs.next()) {
		String st = rs.getString(1);
		System.out.println(st);
	}
} catch(SQLException e) {
	e.printStackTrace();
} finally {
	try {
                // SQLを実行するオブジェクトを閉じる
		stm.close();
                // コネクションを閉じる
		con.close();
                // オブジェクトの解放(メモリ解放)
		stm = null;
                // 同上
		con = null;
	} catch(SQLException e) {
		e.printStackTrace();
	}
	
}


TensorFlow Java 環境構築〜JavaでもTensorFlow〜

イントロダクション

前回まではPythonでのTensorFlowのチュートリアルを一通り(Text Classificationまで)やりました。

  1. Python Tensorflow 〜初めての人工知能〜
  2. Tensorflow Keras〜初めのトレーニング_1〜
  3. Tensorflow Keras〜初めのトレーニング_2:前処理〜
  4. TensorFlow Keras〜テキストの分類〜
  5. TensorFlow Keras〜回帰、準備から予測まで〜

今回はJavaで、もう少し深掘りしてみようと思います。参考サイトはこちら

Javaでの環境構築

eclipseでMavenプロジェクトを作成します。(シンプルプロジェクトでもWebProjectでも大丈夫)。そして、POMファイルを編集します。参考サイトの記載を追加してMavenインストールを行うだけです。

サンプルとして、既存のプロジェクトですが以下のようになっています、POMファイルがある状態でMavenプロジェクトになっていればOKです。

<元のPOMファイル>

<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>zenryokuservice</groupId>
  <artifactId>gui.mtm</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>gui.mtm</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
         <groupId>org.joml</groupId>
         <artifactId>joml</artifactId >
         <version>1.9.6</version >
    </dependency>
    <dependency>
         <groupId>org.l33tlabs.twl</groupId>
         <artifactId>pngdecoder</artifactId>
         <version>1.0</version>
   </dependency>
  </dependencies>
</project>

<変更後POMファイル>

<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>zenryokuservice</groupId>
  <artifactId>gui.mtm</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>gui.mtm</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
         <groupId>org.joml</groupId>
         <artifactId>joml</artifactId >
         <version>1.9.6</version >
    </dependency>
    <dependency>
         <groupId>org.l33tlabs.twl</groupId>
         <artifactId>pngdecoder</artifactId>
         <version>1.0</version>
   </dependency>
   <!-- TensorFlow -->
   <dependency>
     <groupId>org.tensorflow</groupId>
      <artifactId>tensorflow</artifactId>
      <version>1.12.0</version>
     </dependency>
 </dependencies>
</project>

太字の部分を追記しました。

一番しから3行文がTensorFlowのライブラリです。

この状態でサンプルコードを実行するとエラリます。。。

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot find TensorFlow native library for OS: darwin, architecture: x86_64. See https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java/README.md for possible solutions (such as building the library from source). Additional information on attempts to find the native library can be obtained by adding org.tensorflow.NativeLibrary.DEBUG=1 to the system properties of the JVM.
at org.tensorflow.NativeLibrary.load(NativeLibrary.java:77)
at org.tensorflow.TensorFlow.init(TensorFlow.java:66)
at org.tensorflow.TensorFlow.<clinit>(TensorFlow.java:70)
at org.tensorflow.Graph.<clinit>(Graph.java:361)
at zenryoku.servise.app.autoblog.AutoBlogPoster.helloTensorflow(AutoBlogPoster.java:225)
at zenryoku.servise.app.autoblog.AutoBlogPoster.main(AutoBlogPoster.java:258)

ネイティブライブラリが足りないようです。参考サイトよりネイティブライブラリをダウンロードします。自分の端末はMacなのでmacのものを選択します。

そして解凍します。ここのフォルダをネイティブライブラリのパスとして登録します。

そして、プロジェクトのプロパティを開き以下のようにネイティブライブラリのパスを設定します。Java Build Path -> Native Library Location -> Edit

そして実行すると以下のようにバージョン番号が出力されます。

とりあえずはこれでTensorFlow in Java が起動できます。

 


Git 作成 プッシュ〜コマンドでの新規登録 ワンポイントレッスン〜

イントロダクション

コマンドでのリポジトリ登録です、GUIよりも簡単にできます。

コマンドでのリポジトリ登録

Gitでリポジトリを作成すると下のような画面が見れます。

ここのコマンドを順番に入力するだけです。


ローカルにgitリポジトリを作成する

# リポジトリのディレクトリ(フォルダ)作成
mkdir ripositoryName
# 移動
cd ./ripositoryName
# gitの初期化
git init

リポジトリに登録するファイルを追加

git add sakuseiFile

ちなみに上の画面では「README」ファイルをコマンドで作成しています。

※ehco "XXXX" > README.md -> 「XXXX」がファイルの中に書き込まれます。

リモートリポジトリの登録

git remote add origin https://github.com/ZenryokuService/tensorflow.git

プッシュ

git push -u origin master

お疲れ様でした。

Java BlueJ 〜インストール〜

BlueJ

よりJavaを身近にコーディングできるであろうIDEがありました。

上のリンクからダウンロードできます。

そして、Macの場合は、ダウンロード後にファイルを解凍してファイルをダブルクリックします。

<ダウンロード後>

Zipファイルが解凍されて、フォルダになっています。

<起動ファイル>

「BlueJ」というファイル名です、これをダブルクリックで起動します。

プログラムを作成するときは、左上のメニューから新規作成をクリックします。

とりあえず、クラスを作成した段階で基本的なコードが出力されているので参考になると思います。