プログラム 習得 順序2 hello world(Java)

イントロダクション

前回は、大雑把な流れを示したつもりです。今回は具体的に「どーやるの?」について記載しようと思います。

動機付けなどは自分で考えるしかないので「ハローワールド」から始めます。

とりあえず、プログラムが使えるようになると以下のスキルが身につきます。

  1. 問題を解決するためのフロー(流れ、手順)を自分で導き出す
  2. 物事、自分の思いを理論的に説明できるようになる(レベル高め)
  3. 世界にない「新しい何か」を発明することができる(大変だけど)

とまぁこんな感じです、別にプログラムをガリガリ書いてプログラマになって。。。とか、そんなことを言いたいのではなく、上にあげたように「理論的な考え方」と「やればできる!」と言うことを知って頂きたいのです。(ついでに「こんなのを作ったら、面白いのでは?」なんて会話ができる人が増えてくれるといいなぁ)

そして「プログラムしかできません」なんて言う人は「プログラムができない人」です。プログラムが組めると言うことは、いろんなことを噛み砕き、理解して「仕組み」を作れると言うことです。自分自身も学習の途中です。

さて、本題に戻ります。初めのプログラムを組みます。

ハローワールド(Java)

結論から言うとクラスを作ってメインメソッド作って…コンソール表示して終わりです。

大した事はありません。手順は以下に示します。

  1. IDE(開発ツール)を自分のパソコンにインストールする
  2. プロジェクトを作成し、HelloWorldクラスを作成
  3. 下のコードを書いて、プログラムを動かす
public static void main(String[] args) {
   System.out.println("Hello World!");
}

細かいことは以下のページに記載しています。

<開発ツールのインストール>

Java Install Eclipse〜開発ツールのインストール〜

<Hello World>

Java Hello World はじめのプログラム 〜 Step1-1〜

駄菓子菓子!

だがしかし、たかが「ハローワールド」とはいえ侮るなかれ!「遊び」の基本にもなります。初めは表示して終わりですが、これに「入力」を加えます。プログラム引数を使用して、渡した引数を表示するなどやってみると面白いです。

そのほかに、「標準入力」プログラムを起動してからの入力を行うプログラムを追加、画面を更新する、「入力→画面の更新→入力」を繰り返して1つの流れを作ることができたら…それは、既に「ゲーム」です。

Java Game作成 〜ゲームの処理フロー〜

横道に逸れましたが、一歩ずつ確実に進みましょう(理想です)これがいちばんの近道です。

古典的にやる(IDEがない時代はこうでした)

これは、ひとつの例ですが、メインメソッドを起動するだけならコマンドプロンプトからも行けます。コマンドから実行する場合はプログラム引数を直接渡すので、プログラム引数については理解できます。

// 下のコマンドでJavaファイルをコンパイルします。
>javac HelloWorld.java
// 次のこまんどでJava(クラスファイル)を起動します。
>java HelloWorld

プログラム引数を渡す場合

>java HelloWorld プログラム引数1 プロ恨む引数2 スペースで区切る

上のように、コマンドの後にスペースを入れて文字を入力するとJavaを起動した時に「プログラム引数」として値が渡されます。main(String[] args)の「args」に以下のような形で入っています。

args[0]="プログラム引数1"
args[1]="プログラム引数2"
args[2]="スペースで区切る"

これに文法を理解してやると簡単なアプリがつくれるかも?

それは、アイデア次第です。

でわでわ。。。

プログラム 習得 順序1 概要

イントロダクション

プログラミングのススメと自分の経験からこの学習順序(学習フロー)が良いであろうと言う学習順序を記載します。

<初めに>

今現在、学生の方は将来に向けて「あーしたい、こーしたい」と言う気持ちを大切にして欲しいと思います。

そして、成人して社会人の方、特に若い方は目標、夢などを具体的にイメージ出来るようにイメージを具体的に持ってください。少しずつ、ゆっくり具体的にしていく感じです。

「火事場のクソ力」と言う言葉があります。本当は「馬鹿力」らしいですが…、早い話が「人間やる気になれば何でも出来る」と言うことを言いたかったのです。なので、次の「動機」について自問自答してみてください。

1.動機について

元々自分はイベント屋とか音響屋さんになろうと思っていました。が「これはいつまでたっても生活が出来ない!」(まともな収入が得られない)と気が付き「IT業界へ行くべきだな!」と意を決して異種業界へ行く事にしました。

丁度良く「未経験者歓迎」と言う求人があったので、そこに食いつきました。

自分の動機としては「まともに収入を得て働きたい」と「手に職をつけて将来的に独立したい」と言うのがありました。

2.学習開始!

会社で学習しながら、アルバイトして生活する感じでした。パソコンやプログラムとは無縁の仕事をしていたので「プログラムとはなんぞや?」から入りました。パソコンは学生の頃にバンドの音を録音するのに使った程度。ワードやエクセルの存在も知りませんでした。

とりあえず会社からのミッションは「指定の課題をクリアする」でした。

課題をクリアしたら正社員として働けるので、収入も入ります。

ガテン系の人間なので「とりあえず手を動かす」事で「わからない」を「そーゆーこと?」に変えて行きました。

3.課題をこなす

課題と言うのは、プログラミングの教本にあるような問題を解いて、プログラムを実行して起動確認するものでした。やっぱり「ハローワールド」に始まり、文法→アプリ作成とやって行きました。

ハローワールドは、頭ごなしに覚えました。メインメソッドの書き方は常に決まっているからです。

足し算〜四則計算をするプログラムを作りコンソールに表示したりしました。

この時に、変数の型について理解が深まったと思います。ビルドエラーが出るので「なんでエラーになる?」を解決していく事で「データ型」に対する理解が深まったのです。ドキュメントには「この型は〜」と書いてあるけど実際にはいじってみないとわかりませんでした。

4.作ったもの

  1. コンソールアプリ(配列の並べ替え)
  2. ユーザ登録削除(ユーザ管理アプリ)

ここまでが自分が研修としてやった事です。

初めのコンソールアプリはC言語で作りました。構造体とか配列とか初めは訳がわからんになっていましたが、作り終える頃には、なんとか理解したかな?って位になってました。

A.振り返り

実際にやってみて、かなり時が経っているけど、今思い返してみて、思うのは以下の点です。

<やると良い事>

  1. 実際に手を動かして、プログラムを書いて理解する事
  2. 学習(プログラムを組む)の後に理論的に理解する事
  3. 作ったプログラムをいじって思い通りにカスタムする事→ちゃんと理解していれば難しくないし、ちょっと面白い(笑)

<やると悪いこと>

  1. コードも書かないで理論(頭)だけで理解する
  2. 「説明が出来た」=「理解した」と解釈する
  3. 理解が出来ないのに人に相談しない
  4. 理解(実装)した事を起動確認しない

まとめ

次のような手順で学習するのが一般的な手順になります。

  1. ハローワールドをやる
  2. そのプログラムの文法を理解する
  3. とりあえず、何か作る

ここまでは良いのですが、やった後に「理解」する様に各ステージをクリアしていくと効率的かつ実戦的だと思います。理想としては、簡単な操作の出来るアプリを作るのが良いのですがいっぺんには出来ません。

なのでプログラムを書き、起動して、各処理が何をしているのか?を理解しながら学習、そしてアプリではどんな風に使うか?をイメージ出来ると素晴らしいと思います。

ポイント

ゆっくりでもいいので確実に一歩ずつ進む事です。

これが一番の近道だからです。

あと「こんなものを作りたい。」という感じで夢を膨らますとより「やる気」になります。

自分は「何を作ろうか?」から入ったので少し出遅れた感じです。インターネットもよく知らない状態だったので…

Microbit リファレンス 〜サイトを眺めてみる〜

イントロダクション

MBedオンラインコンパイラの使い方がいまいちわからないので一通りドキュメントを眺めたメモ

APIリファレンスページもあった

1.ワークスペース.

上のようなディレクトリ(フォルダ)構成になっている

C++ではヘッダファイル(*.h)とソース(*.cpp)ファイルがセットになっている。

ヘッダファイル(*.h)

定数、継承関係、マクロ、依存関係(インポートファイル)などを定義する。大雑把にどんなクラスなのかを見たいときはこのファイルを見れば良い。

ソースファイル(*.cpp)

実装部分が書いてある、継承関係などがないのでJavaで言うとこの親クラスにあるフィールドなどは、ヘッダファイルなどを見ないとわからない。

なんでも行けてしまうからJavaよりも難しいです。(自分の認識)

<main.cpp>参照するヘッダは<MicroBit.h>

#include "MicroBit.h"

MicroBit uBit;

int main()
{
    // Initialise the micro:bit runtime.
    uBit.init();

    // Insert your code here!
    uBit.display.scroll("HELLO WORLD! :)");

    // If main exits, there may still be other fibers running or registered event handlers etc.
    // Simply release this fiber, which will mean we enter the scheduler. Worse case, we then
    // sit in the idle task forever, in a power efficient sleep.
    release_fiber();
}

処理は、3行。以下の通り

  1. マイクロビットを初期化
  2. "HELLO WORLD! :)"を表示する
  3. 細かいところはわからないが終了処理

こんなけ。。。

「C/C++」だからちょっとビビってたけど、これならなんとか(笑)

そして、他のフォルダを見てみると。。。

  • Classes         : Microbitのクラスリファレンスが入っている
  • inc                 : MicroBit.h マイクロビットのヘッダファイル
  • Microbit-dal  : Microbit-dalプロジェクト、この階層と同じようになっている
  • module.json : このモジュール(プロジェクト)の名前などのJSON形式のデータ
  • source          : Microbit.cppが入っている
  • README.md: 初めに読んでね。のファイル


まとめ

マイクロビットのMBedワークスペースは、下のような構成になっている

一番上の「リファレンス」あるのが嬉しい(笑)

Micro:bitで遊ぶ

  1. Micro:bit(Chibi:bit) での開発環境セットアップ
  2. Micro:bit スマホでプログラミング〜Bluetoothの設定〜

C/C++ Micro:bit(Chibi:bit) 〜オンライン コンパイラ(ワークスペース)の使い方〜

イントロダクション

前回は、Microbitにサンプルプロジェクトをインポートしました。

今度はそれをどのようにして動かすのかを学びます。とりあえずはセットアップがまだ続くようです。

オンラインコンパイラの使い方

プロジェクトのインポートを完了したら下の画面のようにある「コンパイル」をクリックします。

すると「〜HEX」ファイルが出力(ダウンロード)されるのでそれをMirobitにインストールします(HEXファイルを配置します)

※HEXファイルをMicrobitにコピーした時にMicrobitの接続が切れてしまう時があるようです。自分の場合は一度外して再度接続したらプログラムがちゃんと起動しました。

 

C/C++ Micro:bit(Chibi:bit) 〜MBED CLIのインストール〜

<Macの場合> ※他のOSの手順も記載してありました。

このページからCLIをインストールする

そして起動、セットアップ処理が走るようです。

処理が終わったら下のようにコマンドの入力待ち状態になります。

この状態で、コンパイラなどの必要な物が揃った状態のようです。

コマンドで色々と実行できるようですが、IDEと連携することもできるようです。


 

C/C++ Micro:bit(Chibi:bit) 〜初めのプログラム開発〜

イントロダクション

マイクロビット + C/C++で開発をしようと思います。まずは手順に沿って開発のセットアップを行います。

余談ですが、これは「ハローワールド」と呼ばれるプログラムです。以前に「Java Basic」でやりました。どのプログラム言語でもやると思います。

大きな目的としては「プログラムが走ることの確認」のため、初めてプログラムを作成するときなどです。プログラムに慣れてきたら、自作ライブラリ、フレームワークなどいろんなものの起動確認で実行する機会があります。

ちなみに、PCでの開発環境と、スマホでの開発環境(IDE)と色々出てきたので混乱しないようにしてください。

いざ!C/C++!

参考サイトは「Getting start with C/C++ on Micro:bit」です。日本語訳を利用して読みます。

初めにオフラインで開発しようと思い、色々やりましたが、下の「惨敗履歴」に示したように結局何も進展がなく。。。

とりあえずは、オンラインコンパイラを使用して慣れていこうと思います。

セットアップ

上記のリンクはChibibitでやった時の手順ですが、Microbitでも同じようになります。ちなみに、自分の作業としてはChibibitが自分のワークスペースに登録されていたので「ボードの追加」を行いました。

1. https://os.mbed.com/platforms/Microbit/へ移動します。

2.下の「Compiler」をクリックしてワークスペースに移動します。

3.画面の右上部分が以前「Chibibit」になっていたので名前の部分をクリック

4.下のような画面を開きます。

5.左下ので左から2番目に「Add Bord」とあるのでそれをクリック

そして使用するのは「Microbit」なのでそれを選択します。

するとワークスペースに「Microbit」が追加されます。※「Blinky」をインポートした後の画像です。

サイトにサンプルプログラムをインポートします。

ボードを追加した時にインポートするものを聞かれるので「Blinky」を選択します。

ここまででひと段落です。下のものは作業がうまくいかなかった時の履歴なので読まなくても大丈夫です。オフラインでの開発をするのであれば多少は参考になると思います。


惨敗履歴:オフラインでやるのは難しい

yottaのインストール

自分の使用している端末はMacなのでHome brewを使用してインストールします。

<Home brewでのインストール>

  1. ターミナルを開く
  2. brew install srecord」とコマンドを入力してEnter

下のリンクを参照してください

手動でのインストール

<手順: Macの場合>

  1. yottaをインストールする
  2. yotta.appをクリックしてターミナルを起動する
  3. brew upgradeを実行する

自分の実行結果

1:リンクを参考にyottaをインストールして以下のようなアイコンがでた(yotta.appのインストール完了)

2:上記のアプリを起動するとターミナルを起動する

3:以下のコマンドでサンプルプロジェクトを取得する

git clone https://github.com/lancaster-university/microbit-samples

そして、ディレクトリを移動する

cd ./microbit-sample

さらにビルドをかける

yt build

とここでビルドエラーがでました。

ちなみに「ビルド」というのは起動ファイルを作成するコマンドのことだと思ってくれれば良いです。

そして、ここのサイトではビルド時に必要なことが記載されていました。

ここには、以下のように手順が書かれていました。

    1. 「brew tap ArmMbed/homebrew-formulae」を実行する
    2. 「brew install python cmake ninja arm-none-eabi-gcc」を実行する

などと色々やりましたが、結局解決せず。。。

別の手法でアプローチ

基本的に初めからやってみることにしました。http://docs.yottabuild.org/tutorial/tutorial.html

上のサイトでは、「yotta init」コマンドでそのままプロジェクトを作成するものでした。

テンプレートのディレクトリ構成が作成されます。ここからオフラインでの開発を行うようです。。。

中途半端ですが。。。

 

 

Micro:bit Python 〜PythonでのIDEをインストール!〜

イントロダクション

PythonでのIDEをインストール!

自分は、Macでの開発を行うためMac用のものをダウンロードします。

ダウンロードしたファイル(dmg)を開きます

「Agree」を押下します。(Push "Agree")

Install

 


Micro:bitで遊ぶ

  1. Micro:bit(Chibi:bit) での開発環境セットアップ
  2. Micro:bit スマホでプログラミング〜Bluetoothの設定〜

 

Micro:bit スマホに開発アプリをインストール

いざ!マイクロビット(Let's Micro:bit!)

単純にスマートフォンにmiciro:bitのIDE(開発ツール)をインストールします。

First of all. Install micro:bit IDE(Development tool) to iPhone or Android or smart phone.

と行っても可愛い感じのスマホアプリです。

単純に、Play storeやApp storeからインストールでます。

<Download Micro:bit>


関連ページ

  1. Micro:bit(Chibi:bit) での開発環境セットアップ
  2. Micro:bit スマホでプログラミング〜Bluetoothの設定〜

sitemap.xml 作成方法 〜XMLサイトマップのタグの意味と作り方〜

イントロダクション

作成しているブログの記事が増えてきたので「サイトマップ」を作成します。

以下のような目的で作成するようです。

  1. HTMLでのナビゲーション
  2. XMLでのクローラー向けのナビゲーション

今回はXMLサイトマップを作成します。

ちょっと調べてみるとジェネレータ(自動生成ツール)があるようなのでそちらを使用します。:https://www.xml-sitemaps.com/

画像のように自分のとこのURLのルートになる部分を入力します。

すると上のようなダイアログが表示されました。スキャンが走るようです。

そして、すぐには登録の結果などが確認できないようです。レポートなどはデータを集めないと表示できませんからね(笑)

そして、処理が終わったらボタンをクリックしてダイアログを閉じたら上のような画面が出ます。そこから作成されたXMLファイル(sitemap.xml)をダウンロードします。

<sitemap.xml>

<!--?xml version="1.0" encoding="UTF-8"?-->
<urlset
   xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
                       http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<!-- created with Free Online Sitemap Generator www.xml-sitemaps.com -->


自分のサイトにより詳しいサイトマップを作成するには、こちらのサイトで作成できます。

 

そして、GoogleConsoleに登録するURLを入力してボタンを押下します。


上の画面が表示されたらファイルをダウンロードして、そのファイルを指定のURLにアップロードします。

確認ボタンを押下してダイアログを閉じます。

上のような画面が確認できると思います。「数日後にまた確認して見てください」と記載されていました。

 

 

関連ページ

JavaでWebサーバーを立てる(自端末上で)

 

Java Tomcat〜Webサーバをインストール〜

Javaでクロス!モンハンじゃないよ?

イントロダクション

Micro:bitでボタンを押したらWeb画面に何かを表示しようと考えています。

サンプルとして、良いページ(Microbit)があったのでそれを見てマイクロビットを設定しました。

ブラウザを使うなら。。。

仕事でもよく使うWebサーバーを立ててそこにマイクロビットでリクエストを飛ばすようにしようと思います。

これで小規模のアプリでも楽しめそうだ。

そんなわけで、Eclipseを開き。。。

Tomcatプラグインを追加します。

真ん中の猫だか虎だかわからないやつです。

プラグインのインストールが終わったら、Eclipseの再起動が走ります。

Eclipseが起動したら。。。

左のようなアイコンがEclipseの上部にいると思います。これでプラグインのインストールは完了です。

Tomcatサーバーのインストール

Tomcatサーバーのページからダウンロードします。

上のキャプチャにあるtar.gz.ファイルはMacとかリナックス(Zipもいけそうだが…)他はウィンドウズとか書いてあります。ちなみに自分は「Tomcat8」をダウンロードしました。JDK1.8を使用しているからです。

ダウンロードしてから解凍して、適当な場所に解凍します。ここでいう「適当」というのは、「Eclipseから参照しやすい」という意味です。

Eclipseに戻り、Tomcatの設定

「Mac」 Eclipse -> Preference

「Windows」  wIndow -> Preference

上のような画面を開きます。「Tomcat」を選択してダウンロードしたバージョンを選択します。Tomcat8なら。。。

Tomcatホームを設定

Version8を選択

Tomcatホームに先ほど解凍したTomcatのフォルダを指定する

そして「Apply」でおっけー

プロジェクトの作成

プロジェクトエクスプローラ(プロジェクのところ)を右クリックしてプロジェクトの作成を開きます。

Tomcatプロジェクトを指定して、プロジェクト名をつけます。

今回は「MicrobitServlet」と名前をつけました。

上のようなディレクトリ構成(フォルダ構成)ができていると思います。

そして、プロジェクトを右クリックして「Tomcatプロジェクト」->「Tomcatライグラリをプロジェクトのビルドパスに追加」を選択するとビルドパスにTomcatのライブラリが登録されます。

ビルドパスはここね!

解凍したフォルダの「lib」直下にあるJARファイルです。パスとしては「TOMCAT_HOME(Tomcatを解凍したフォルダ)/lib」になります。

ちなみに、OpenCV、JavaFXなど外部のライブラリ(JAR)を使用するときは必ずビルドパスを使用するので、ビルドパスを理解しておくと後が楽です。

「プロジェクトのビルドパスに〜」

「ビルドパスのさしている場所」

ビルドパスを通した後

ちなみにサーブレット(Spring, Playフレームワーク, SeaSaa, Struts」などもservlet-api.jarは使用しています。JavaEEも当然使用しています。

サーバーを動かす

画面上部のの一番左側をクリックしてください

こんな感じでTomcatが起動します。

「情報: Server startup in 26924 ms」のような文言が出力されたら起動完了です。

ブラウザで「localhost:8080」と入力して画面を開いて見ましょう。

サーバー起動確認完了!


関連ページ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. Java Basic JUnit 〜テストスイートの作り方〜
  3. Java Basic インターフェース・抽象クラスの作り方
  4. Java Basic クラスとは〜Step2_1〜