Rakuten API PHP〜楽天SDKを斬る(part2)〜

イントロダクション

前回は、楽天APIを使うために楽天SDKをレンタルサーバー上にアップロード(インストール)しました。

今回は、SDKを使用して1つページを作成しようと思います。

APIの使い方はこちらのページ(楽天のヘルプ)です。

楽天APIの実装

ヘルプを見ると、上の様な画面が見つかります。「アプリ登録」が必要ということで、はやい話がAPIを使用するためのキーを取得します

上の様にアプリ名と起動するPHPファイルのURLを入力します。

上の様な感じで登録が完了します。

レッツPHP

まず初めに、パスの切り方とかどの様になっているかわからないので以下のコードでrakutenAPI.phpを実装します。

<? php
      phpinfo();
?>
<!DOCTYPE html>
<html>
<head>
 <link rel="stylesheet" href="./rakuten.css">
</head>
<body>
</body>
</html>

そして対象のページを開きます。

上の様なヘッダーがあるページが表示されて色々と詳細が書いてあります。「SCRIPT_URL」という項目があるのでそれを見ると現在の起動しているファイルパスが記載されているのでそれを元にルートパスを確認します。

今回自分のところには「/project」から始まるURLが記載されていたのでルートディレクトリはprojectフォルダのあるディレクトリとなります。

そして使用する楽天APIのSDK→ライブラリのあるパスを指定して「autoload.php」を取り込む様にプログラムを書きます。

こちらのページを参考に作成しました。

// エラーを出力する ini_set('display_errors', 1); require_once('../rws-php-sdk-1.1.0/autoload.php'); $client = new RakutenRws_Client(); // アプリID (デベロッパーID) をセットします $client->setApplicationId('1069312965684050347');

//アプリID (デベロッパーID) をセットします
client->setApplicationId('取得したアプリID');

// アフィリエイトID をセットします(任意)
$client->setAffiliateId('取得したアフィリエイトID');

// IchibaItem/Search API から、keyword=うどん を検索します
$response = $client->execute('IchibaItemSearch', array(
  'keyword' => 'AI'
));
// レスポンスが正しいかを isOk() で確認することができます
if ($response->isOk() == false) {
    // 配列アクセスによりレスポンスにアクセスすることができます。
	echo 'Error:'.$response->getMessage();
	return;
}
foreach($response as $items) {
	var_dump($items);
	foreach($items as $cols) {
		break;
	}
	break;
}

取得する項目に関してのドキュメントはこちらでテストフォームよりGETして見ると取得する内容がJSON形式で取得できます。PHPで取得する場合は変数->項目名で取得します。

取得したデータの初めの1レコード分です、ここから表示したい情報を取り出して紹介画面に表示します。

単純に出力したデータ

["itemName"]=> string(256) "さらにクーポン割引 DAKINE ダカイン メンズ スノーボード グローブ ミトン GORE-TEX AI237-718 手ぶくろ ミトングローブ スノボ スノーグローブ 手袋 ゴアテックス スキーグローブ てぶくろ 男性用"

["catchcopy"]=> string(120) "全3色 DAKINE のスノーボード グローブ ミトン GORE-TEX が20%OFF IMPREZA MITT 2019 WINTER【あす楽】"

["itemCode"]=> string(18) "oc-sports:10024681"

["itemPrice"]=> int(7776)

["itemCaption"]=> string(1244) "メーカー希望小売価格はメーカー商品タグに基づいて掲載しています商品詳細素材・仕様DAKINE/ダカイン メンズ グローブ ミトン IMPREZA MITT 2019 WINTER AI237-7182019-DAKINE WINTER COLLECTION透湿性・防水性に優れたGORE-TEXを採用した、高品質なメンズスノーボードグローブ。裏起毛でゲレンデでも寒さからしっかり守ってくれます!手首はベルクロ使用で自分好みの大きさに調整可能!◆素材:ポリエステル65%、ポリウレタン22%、ナイロン13%サイズS:全長22cm×周囲20cm×幅11cm×親指7cmM:全長23.5cm×周囲22cm×幅13cm×親指8cmL:全長24.5cm×周囲25cm×幅14cm×親指9cm※商品によって多少の誤差がございますので、予めご了承ください。注意事項※初期不良以外の返品・交換は固くお断りしております。サイズ・カラー選び等は慎重に行ってください。※掲載商品の色は、できる限り現品と同じになるよう努めておりますが、ご使用のパソコン環境により多少色合いが異なる場合がございます。著しい色の相違は御座いませんのでご安心ください。"

["itemUrl"]=> string(191) "http://hb.afl.rakuten.co.jp/hgc/g00s1ld6.jciuf633.g00s1ld6.jciujad2/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Foc-sports%2F206040057%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Foc-sports%2Fi%2F10024681%2F" ["shopUrl"]=> string(163) "http://hb.afl.rakuten.co.jp/hgc/g00s1ld6.jciuf633.g00s1ld6.jciujad2/?pc=http%3A%2F%2Fwww.rakuten.co.jp%2Foc-sports%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Foc-sports%2F"

["smallImageUrls"]=> array(3) { [0]=> array(1) { ["imageUrl"]=> string(92) "http://thumbnail.image.rakuten.co.jp/@0_mall/oc-sports/cabinet/20618/206040057.jpg?_ex=64x64" } [1]=> array(1) {

["imageUrl"]=> string(94) "http://thumbnail.image.rakuten.co.jp/@0_mall/oc-sports/cabinet/20618/206040057_1.jpg?_ex=64x64" } [2]=> array(1) {

["imageUrl"]=> string(94) "http://thumbnail.image.rakuten.co.jp/@0_mall/oc-sports/cabinet/20618/206040057_2.jpg?_ex=64x64" } } ["mediumImageUrls"]=> array(3) { [0]=> array(1) { ["imageUrl"]=> string(94) "http://thumbnail.image.rakuten.co.jp/@0_mall/oc-sports/cabinet/20618/206040057.jpg?_ex=128x128" } [1]=> array(1) {

["imageUrl"]=> string(96) "http://thumbnail.image.rakuten.co.jp/@0_mall/oc-sports/cabinet/20618/206040057_1.jpg?_ex=128x128" } [2]=> array(1) {

["imageUrl"]=> string(96) "http://thumbnail.image.rakuten.co.jp/@0_mall/oc-sports/cabinet/20618/206040057_2.jpg?_ex=128x128" } } ["affiliateUrl"]=> string(191) "http://hb.afl.rakuten.co.jp/hgc/g00s1ld6.jciuf633.g00s1ld6.jciujad2/?pc=http%3A%2F%2Fitem.rakuten.co.jp%2Foc-sports%2F206040057%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Foc-sports%2Fi%2F10024681%2F"

["shopAffiliateUrl"]=> string(163) "http://hb.afl.rakuten.co.jp/hgc/g00s1ld6.jciuf633.g00s1ld6.jciujad2/?pc=http%3A%2F%2Fwww.rakuten.co.jp%2Foc-sports%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Foc-sports%2F"

["imageFlag"]=> int(1) ["availability"]=> int(1) ["taxFlag"]=> int(0)

["postageFlag"]=> int(0) ["creditCardFlag"]=> int(1) ["shopOfTheYearFlag"]=> int(0)

["shipOverseasFlag"]=> int(0)

["shipOverseasArea"]=> string(0) ""

["asurakuFlag"]=> int(1)

["asurakuClosingTime"]=> string(5) "13:00"

["asurakuArea"]=> string(305) "群馬県/埼玉県/千葉県/東京都/神奈川県/新潟県/富山県/石川県/福井県/山梨県/長野県/岐阜県/静岡県/愛知県/三重県/滋賀県/京都府/大阪府/兵庫県/奈良県/和歌山県/鳥取県/島根県/岡山県/広島県/山口県/徳島県/香川県/愛媛県/高知県"

["affiliateRate"]=> int(1)

["startTime"]=> string(0) ""

["endTime"]=> string(0) ""

["reviewCount"]=> int(0)

["reviewAverage"]=> int(0)

["pointRate"]=> int(1)

["pointRateStartTime"]=> string(0) ""

["pointRateEndTime"]=> string(0) ""

["giftFlag"]=> int(0)

["shopName"]=> string(15) "OC SPORTS ANNEX"

["shopCode"]=> string(9) "oc-sports"

["genreId"]=> string(6) "501854"

["tagIds"]=> array(0) { }


Rakuten API PHP〜楽天SDKを切る(part1)〜

イントロダクション

前回、Microbit〜WebServerまでのデータを送信する実装を行なったので。。。ものはついてで、PHPに触れてみようかと思います。

アフィリエイターなどやっている人など「プログラム?」なんて思っている人もやってみてください。簡単にできるところがこういうAPIの魅力です。

楽天APIとは?

世間で「〜API」なんて言葉がたまに聞こえてきますが、早い話が「これを使うと簡単にいろんなことができるよ?」というものです。中には難しいものもありますが。。。

似た様なものでは以下の様なものがあります。

  1. Facebook API
  2. Azure API
  3. Amazon API
  4. Yahoo API
  5. Hatena API
  6. Health planet API

などなど沢山あります。6番目のAPIはヘルスチェック(体組計関連)用のAPIでオムロン、タニタなど大手機器との連携が取れるという品物です。

楽天APIを切る

「切る」と言いましたが、指先や皮一枚を切る程度にします。妖怪でいうところの「カマイタチ」の様な感じでソフトに行こうと思います。

そして、自分は「WordPress」を使用しているのでプラグインを使用しようと思います。ワードプレスにログインしたら左の方に「プラグイン」という文字があると思うのでそれをクリックします。

赤い丸がついている部分がそれです。

そしてプラグイン「新規」でインストールします。

物によってはプラグインをインストールするときに「パスワード」を聞かれると思います。それはレンタルサーバーの「サーバー設定情報」をみて使用するFTPSのサーバー名を記入します。

※ミニムサーバーの場合は上の様な項目名が表示されます。サイトマネージャ→サーバー設定情報でみることができます。

楽天プラグインをインストールしたら?

下の様な楽天マークがブログ投稿ページと左のメニューに表示されます。

 

そして選択すると下の様な画面が表示されて、選択すると下の様なリンク?が挿入されます。


ここまでは、GUIの使い方

PHP実装の準備

ちょっと試したことがないのですが、記事の中にPHPコードが書けると思いますので、ちょっとやってみます。。。がダメでした。ワードプレスのエディタ(自分が使用しているもの)ではPHPのコードは書けませんでした。「<!--?php echo "Testing PGP" ?-->」の様にコメントアウトされてしまいました。

でわどうするか?

PHPファイルを作成します。今回は「rakutenAPI.php」という名前にします。

レンタルサーバーに上の様なファイルを作成します。

  1. ワードプレスの左側にある「外観」にマウスを当てます
  2. そのあと吹き出しの様なものが出るので「テーマの編集」をクリックします
  3. クリックすると下の様なページがあるので「メインインデックスのテンプレート」を選択します

そうするとindex.phpファイルの中身が表示されるのでそれをコピってペってやります。→「index.php」を自分のPC上に作成

一応確認

先ほど選択した「メインインデックスのテンプレート」から「テーマヘッダー」を開きその中から下の様な文を探します

<?php get_template_part( 'template-parts/header/header', 'image' ); ?>

これはパスを指定していて「XXXのファイルを読み込みますよ」という意味です。そして、このファイルの一番初めの部分「template-parts」はルートになるパス(ディレクトリ or フォルダ)の位置を示す重要な手がかりになります。

自分のレンタルサーバー(ミニムサーバー)ではルートになるのが「/web」担っています。なのでそこからワードプレスをインストールした場所を開きます。

インストールした場所には「wp-admin」というフォルダ(ディレクトリ)があるのですぐにわかります。そして今回探しているフォルダは「template-parts」なのでそれを探します。

結論から言うと「テンプレート」を使用するときはルートがテンプレートフォルダになるので「/web/wp/wp-content/themes/twentyseventeen」の様になります。

なので、楽天SDKを使用するにはテンプレートから切り離して使用する方がわかりやすいと思いますので以下の様なフォルダにダウンロードしたSDKをアップロードします。

そして、先ほど作成した「index.php」も同様にアップロードします。

これでSDKを使用する準備が整いました。

ターミナル(コマンド)を使う 〜FTPSを使ってファイルアップロード〜

イントロダクション

ようやく、Microbitでのデータ送信の作業の目処が立ち残すは画面の表示部分のみとなりました。

この部分に関しては、仲間内に協力してもらうことになったので、自分は次のことを考えます。

レンタルサーバーって?

早い話が、自分用のサーバーを借りるということです。自分でサーバーを立てて運用となるとすごく大変です。

  1. ネットワークの構築、自宅から外部ヘルータのポートを開けたり。。。
  2. DNSサーバーの構築、サーバーマシン or DNS用のマシンでDNSサーバーを作ります。主にやることはBINDというアプリケーションのインストールと設定です。
  3. DBのデータ、利用者に対する様々な補償など。。。

でも、自分で立てれる様になれば、ラズパイやアルディーニョなどの上でAPサーバーを作ったりとできることは格段に広がります。※機会があれば何かやりたいです。

FTPSで何やるの?

ファイルのアップロードです。作成したアプリや必要なライブラリなどをアップロードしてレンタルサーバー上で遊びます。今考えているのはJavaを起動したいと思っています。

ちなみにレンタルサーバー上ではコントロールパネルとかファイルマネージャの様な名前で以下の様なパネルがあるのでそれをクリックします。

ちなみに「ミニムサーバー」の場合

ファイルマネージャでファイルのアップロードや編集などができます。しかしアップロードするデータ量は小さいです。

そこでコマンドを使う!

Macであればターミナル、Windowsはコマンドプロンプト、Linuxではターミナル?とまぁコマンド入力ができるコンソールがあるのでそれを使用します。

Macの場合

手段1

  1. コマンドキーとスペースを押下
  2. 「Terminal.app」と入力してEnterキーを押下

手段2

右の様なアイコンをクリックする

そして以下の様にコマンドを入力します。確認するのは  

  

の部分です、ユーザー名とパスワードも確認してください。

「現在のディレクトリにあるファイルの確認」

> ls    (Mac, Linux)

> dir    (Windows)

アップロードしたいファイルのあるディレクトリに移動します。

cd /XXX/XXX

FTPを起動します。ここでアクセスすときに「FTPS」プロトコルでアクセスするところが「FTPS」(笑)

>ftp[Enter]

そして開きます。

>open

そして、FTPSサーバーの方の名前(XXX.XX.jpなど)を入力します。FTPSサーバーのところを確認してください。以下の様な順序で入力します。

  1. openでFTPを起動
  2. XXX.XXX.jpで接続しようとする
  3. ユーザー名を入力
  4. パスワードを入力

ログインできたら「put」コマンドでアップロードできます。

細かなコマンドなどは他のサイトを参考にしてみてください。

どうやるの?

Javaを起動するにはJREがあればどこでも動きますので以下の手順を踏みます

  1. JREをサーバー上にアップロード
  2. PHPやPythonなどからJavaを起動します。"./jre/bin/java -jar Hello.jar"など

まだ試していないので行けるかどうかは、次回!


WebSocket in PHP And JS 〜レンタルサーバー上でのWebSocket〜

イントロダクション

ここ数日、WebSocketを実装しようと色々とやりました。結局のところJSでの「WebSocket」を使用すれば簡単に行けることがわかりました。

WebSocket実装について

シンプルにサーバーはPHPでクライアントがJSになります。参考にしたソースはそれぞれ以下のようになっていました。

index.php:クライアント

デザイン的な部分はさておきにして。。。PHPの処理はメッセージの色をランダムに選択する処理を行なっているのみでした。

そして、本題のJS部分に関して

// ウェブソケットの作成処理
var wsUri = "ws://zenryokuservice.com:9000/demo/server.php"; 	
websocket = new WebSocket(wsUri);

ここではURLを設定する時に「ws://」で始める(プロトコル指定)を行いブラウザに実装されている「WebSocket」を作成(new)しています。

そして、作成したWebSocketにイベント処理を追加しています。

websocket.onopen = function(ev) {...};
websocket.onmessage = function(ev) {...};
websocket.onerror = function(ev) {...};
websocket.onclose = function(ev) {...};

送信部分の処理で以下の様になってました。

//prepare json data
var msg = {
	message: message_input.val(),
	name: name_input.val(),
	color : ''
};
websocket.send(JSON.stringify(msg));

そして。。。

サーバーサイドPHP(Socketサーバー)

通常通りにSocketサーバーを作成します。ちなみにJavaでやっても同じ手順を踏んでSocketサーバーを作成します。※java.net.ServerSocket

「通常通りというのは以下の手順です。」

  1. ソケットを作成      php -> socket_create();
  2. オプション設定      php -> socket_set_option();
  3. バインド         php -> socket_bind();
  4. リッスン開始            php -> socket_listen(); ※Javaは「listen」ではない
  5. 受信          php -> socket_accept();
  6. データの読み込み    php -> socket_read();


ここまでが大体ですがJavaでやる時と同じです。※メソッドなどは違います。。。

HTTPヘッダをWebSocket様に書き換えてソケット送信していました。

$secKey = $headers['Sec-WebSocket-Key'];
$secAccept = base64_encode(pack('H*', sha1($secKey . '258EAFA5-E914-47DA-95CA-C5AB0DC85B11')));
//hand shaking header
$upgrade  = "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" .
"Upgrade: websocket\r\n" .
"Connection: Upgrade\r\n" .
"WebSocket-Origin: $host\r\n" .
"WebSocket-Location: ws://$host:$port/demo/shout.php\r\n".
"Sec-WebSocket-Accept:$secAccept\r\n\r\n";
// 送信処理
socket_write($client_conn,$upgrade,strlen($upgrade));

どうやらここがキーポイントだと思います。まだ調べていないのでなんとも言えませんが、今まで色々と試したことはPOSTリクエストとGETリクエストを送信する処理からイベントハンドラを使用して受信したメッセージを画面に表示するものでした。

なので、受信したデータは画面に表示されませんでした。サーバーで受けてもクライアント側に通知がいかないのでそれは何も起きません。。。

つまるところ、サーバー側からクライアント側にメッセージの受信を通知するためにはHTTPのヘッダメッセージを「Web Socket Protocol Handshake」にしないとダメなのではなかろうか?と疑っているところです。

これをうまく、Pythonからのソケット受信を受けた時にクライアントサイドの画面に表示できる様にしたい。。。

戦いはまだまだ続きます(笑)

 

PHP ServerSocket 〜レンタルサーバーでSocket受信〜

イントロダクション

Microbit〜PC〜ウェブサイトとデータの送信処理を実装することを目標に今までやってきています。「関連ページ一覧」に記載しています。

WebSocketの実装

色々と試したけれど、結局はGitからのソースを参照することにしました。

Chat-Using-WebSocket-and-PHP-Socket

<実際に実行してみた結果>

 

こちらは初めに起動してテスト入力を行いました。次に下の画面を開きさらにメッセージを入力しました。

 

後から起動した方には初めに起動したものとメッセージの数が違う。

 

結局のところは動かしてみないとわからないのですが。。。

画面を開いた状態であればChatすることができるようです。細かいところは下のサイトを見て内容を理解する必要があります。

https://www.sanwebe.com/2013/05/chat-using-websocket-php-socket

作成したものは、このリンクで見ることができます。でも長く起動しているものではありません。起動開始日:2018/12/15 15:00〜


関連ページ一覧

PHP JS 〜WebSocketもどきの作成〜

イントロダクション

WebSocketの実装をやろうと、色々と調べていくうちに下のサイトを見つけました。

https://www.w3schools.com/Html/html5_serversentevents.asp

試しに実装してみました。

結果

<?php 
header('Content-Type: text/event-stream'); 
header('Cache-Control: no-cache'); 
$time = date('r'); 
echo "data: The server time is: {$time}\n\n";
flush();
?>

このコードをwebsocket.phpに実装

JSでのイベントハンドラ部分をserver.phpに実装

var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
  document.getElementById("result").innerHTML += event.data + "<br>";
};

やってみた結果は一応動くが、Socketでデータを飛ばした時には全く反応してくれなかった。。。

PHPにもSocketでの受信処理があるのでそれを少し眺めてみることにする

http://php.net/manual/ja/function.socket-create.php


関連ページ一覧

レンタルサーバーでのPython使用方法

イントロダクション

レンタルサーバーで「Python」が使えることって結構ある、と思います。

PHPからPythonコマンドで使う

レンタルサーバーだとTeratermでログインできない場合があります(契約的に)でもPHPは使えたりする。。。場合

<PHP>

<?php
   $command = "python XXX.py"
   exec($command, $output);
   print($output);
?>

<XXX.py>

print("Hello Python!")

 

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サーバーを立てる(自端末上で)

 

WordPress.orgでのメール通知管理

イントロダクション

最近、「WordPress.org」のアプリの存在に気がつきました。

携帯からの操作もやりやすいので良いのですが、フォロー中のサイト通知はPCで管理したいので携帯で通知を受け取りたくありませんでした。

メールの通知設定の方法をメモします。

メール通知設定の方法

購読ブログの一覧を開き「管理」と書いてあるボタンを押下します。

スクリーンショット 2018-10-21 13.33.58.png

購読サイト、管理画面の右のほうに

スクリーンショット 2018-10-21 13.36.13.png

と言う表示がありますので、「設定」をクリック

スクリーンショット 2018-10-21 13.37.28.png

全て未設定の状態なのでそれをクリックしてスライドボタンを「ON」に変更します。

プログラミング関連(Java)一覧

Mapping of Java Bassic etc …~Java Basicなど記事一覧~








Mapping of Java Bassic JUnit Eclipse LWJGL IntelliJ Discord OpenCV RPi ~記事一覧~

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

やったこと一覧


ワンポイントレッスン的な

  1. JavaFX SceneBuilder〜ボタンにメソッドを割り当てるワンポイント〜
  2. JavaFX LineChart 〜グラフを描く、ワンポイントレッスン的な〜
  3. ND4J ベクトル生成〜ワンポイントレッスン的な〜

Micro:bitで遊ぶ

  1. Micro:bit(Chibi:bit) での開発環境セットアップ
  2. Micro:bit スマホでプログラミング〜ブラウザにアクセス〜
  3. Micro:bit スマホでプログラミング〜Bluetoothの設定〜
  4. PHP JS 〜WebSocketもどきの作成〜
  5. PHP ServerSocket 〜レンタルサーバーでSocket受信〜
  6. Python websocket client〜WebSocket送信処理を作る〜
  7. Micro:bit Python 〜マイクロビット→PCへシリアル通信〜
  8. ターミナル(コマンド)を使う 〜FTPSを使ってファイルアップロード〜
  9. Microbit リファレンス 〜サイトを眺めてみる〜
  10. Microbitで遊んでみる
  11. Microbitで遊ぶ〜ボタンを押す〜
  12. Microbitで遊ぶ〜シリアル通信をする〜
  13. Java Microbit Serial data connect 〜シリアル通信〜※中途半端です
  14. Microbit Python 〜シリアル通信データを受け取る〜
  15. Microbit Python HTTP リクエストを飛ばす
  16. Microbit花火〜MicrobitからWebServerまでの旅〜

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連携~

Eclipse+Gluon(MobileApp)

  1. Eclipse Android〜Gluonでアプリを作る〜
  2. Eclipse Android〜Gluonでアプリを作る2〜
  3. Eclipse Android〜Gluonでアプリを作る3: 3Dモデル〜
  4. Eclipse Android〜Gluonでアプリを作る4: 普通に作る〜
  5. Eclipse Android〜Gluonでアプリを作る5: ゲーム部分を作る〜

LWJGL

  1.  Chapter1[外枠の表示のみ]
  2. Chapter2-1〜クラスの構成〜
  3. Chapter2-2〜インターフェースの使い方と詳細〜
  4. Chapter2-3〜GameEngineクラス(サンプルクラス)〜/li>
  5. Chapter2-4〜Windowクラス(サンプルクラス)〜
  6. Chapter3〜描画処理を読む〜
  7. Chapter4〜シェーダについて〜
  8. Chapter5-1〜レンダリングについて〜
  9. Chapter5-2〜レンダリング詳細〜
  10. Chapter6Projection(投影)
  11. Chapter7-1〜Cubeを作る〜
  12. Chapter7-2〜Texture〜
  13. Java 3DGame LWJGL Retry Lv1 〜動かして理解する〜
  14. Java 3DGame LWJGL Retry Lv2 〜動かして理解する2
  15. Java 3DGame LWJGL Retry Lv3 Texture〜動かして理解する3「負け越し」
  16. Java 3DGame LWJGL Retry Lv4 デバック〜動かして理解する4「黒星」
  17. Java 3DGame LWJGL Retry Lv5 遊んでみる〜動かして理解する5「引分け」
  18. Java 3DGame LWJGL Retry Lv6 遊んでみる2〜動かして理解する6「白星」
  19. ava 3DGame LWJGL Retry Lv7 遊んでみる3〜全部テクスチャにする〜

IntelliJ IDEA

  1. IntelliJ IDEA 環境構築 〜インストールと起動〜
  2. IntelliJ IDEA GitGitリポジトリからクローン〜
  3. IntelliJ IDEA 使い方〜Git接続 Java起動 etc
  4. IntelliJ IDEA Jarファイルを作る
  5. IntelliJ IDEA 使い方〜Maven Projectの作成〜
  6. IntelliJ IDEA 使い方〜Mavenでライブラリを追加する〜
  7. IntelliJ IDEA 使い方〜Javaのコンパイルレベル設定〜
  8. IntelliJ IDEA Gradleセットアップ〜コマンド入力部の表示〜
  9. IntelliJ IDEA Discord Botを作る〜Gradle環境のセットアップ〜

Java Discord

  1. IntelliJ IDEA Discord Botを作る〜Gradle環境のセットアップ〜
  2. Java Discord セットアップ〜Hello Discord
  3.  Java Discord ピンポン〜Discordプログラム〜
  4. Java Discord Listener実装〜コマンドを好きなだけ追加しよう〜

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 4Boolean
  5. Java Basic Level 5If 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 9Training 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 〜テストスイートの作り方〜

JavaDoc

  1. Java Doc 読解 System
  2. Java Doc 読解〜System.out
  3. Java Doc読解 System.In
  4. JavaDoc 読解 Filesクラス
  5. Java Doc読解 BufferedReader
  6. Java Doc 読解〜BufferedWriter
  7. Java Doc 読解 List JavaDocList その1〜
  8. Java Doc 読解 Map
  9. Java Doc Classloader

ラズパイ(RPi)関連

  1. ラズパイ SSH接続メモ
  2.  ラズパイ Under-voltage detected! 〜エラー対処〜
  3.  ラズパイ(CUI)セットアップ
  4.  RPi Settingup Wifi in CUI ~ラズパイ CUI Wifi接続~
  5. Memos about Settingup RPi ~使用したコマンドメモ~
  6. RPi and JavaFX sample of deployment 〜ラズパイにサンプルデプロイ〜
  7.  RPi JavaFX execution ~ラズパイ JavaFX自動起動~
  8. RPi Install Git 〜ラズパイにGitのインストール〜
  9. RPi Java Swing〜ラズパイにJava Swingアプリを起動する〜※失敗しています。。。」
  10. RPi Maven Install 〜ラズパイでMeven
  11. Install XFCE4 on RPi 〜ラズパイに高速軽量デスクトップインストール〜

<Java Step1〜ミニゲーム作成>

  1. Java Hello World はじめのプログラム Step1-1
  2. Java 四則演算 演算子 Step1-2
  3. Java データ型 変数の扱い方〜Step1-2-1
  4. Java Basic Booleanなどの意味 Step1_2_2
  5. Java Basic for Step1_3_1
  6. Java Basic While Step1_3_2
  7. Java Basic try catch Step1_3_3
  8. Java Basic クラスとは〜Step2_1
  9. Java Basic API Listの使い方 Step2_2
  10. Java Basic インターフェース Step2_3
  11. Java Basic ミニゲーム作成 Step3_1
  12. Java Basic ミニゲーム作成 Step3_2

 家計簿アプリ作成

  1. Eclipse アプリ作成 Lv1〜家計簿を作る準備〜
  2. Eclipse アプリ作成 Lv2〜家計簿を作る土台作り〜
  3. Eclipse アプリ作成 Lv33Dグラフ用Cube作り〜
  4. Eclipse アプリ作成 Lv43Dグラフ用Cubeに高さを与える〜
  5. Eclipse アプリ作成 Lv5〜惨敗:CubeTextureを貼る〜
  6. Eclipse アプリ作成 Lv7Cubeを日付順に並べる〜

Git

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

OpenCv

  1. Java OpenCV 環境セットアップ(on Mac)
  2. Java OpenCv Lv1 〜入門: 写真の表示〜
  3. Java OpenCV Lv2 〜画像を表示する〜
  4. Java OpenCV Lv3 〜画像の平滑化(smooth())
  5. Java OpenCV Lv3 〜画像にガウシアンフィルタ(GaussianBlur())
  6. Java OpenCV Lv3 〜画像に中央値フィルタ(medianBlur())
  7. Java OpenCV Lv4 〜画像の中身をみてみる〜
  8. Java OpenCV Lv5 Matクラスで描画処理〜
  9. Java OpenCV Lv6 Matクラスで背景から作成してみる〜
  10. Java OpenCV Lv7 MatクラスでEllipseしてみる〜
  11. Java OpenCV Lv9 〜画像編集「足し算」(cvAdd)
  12. Java OpenCV Lv9 〜画像編集「引き算」(cvSubtract)
  13. Java OpenCV Lv9 〜画像の掛け算〜
  14. Java OpenCV Lv10 〜行列演算Mat#submat()
  15. Java OpenCv Lv10〜画像の平均値をだす〜

OpenCv + JavaFX

  1. EclipseにSceneBuilderを追加する
  2. JavaFX SceneBuilder 〜EclipseとSceneBuilder連携~
  3. Java OpenCv Lv1 〜入門: 写真の表示〜
  4. Java OpenCV Lv2 〜JavaFXでの画像表示〜
  5. Java OpenCv ビデオキャプチャ〜カメラからの入力を表示〜
  6. OpenCV tutorial〜ヒストグラム〜
  7. OpenCV tutorial 解析 〜ヒストグラム〜
  8. OpenCV tutorial 解析2 〜ヒストグラム計算〜
  9. OpenCV tutorial 〜フーリエ変換など〜

JavaFXでハローワールド〜OpenCVまで

  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: ベクトル(配列)の作成方法〜
  4. ND4J ベクトル生成〜ワンポイントレッスン的な〜
  5. JavaFX + ND4J 〜数学への挑戦:5グラフを描く〜
  6. JavaFX + ND4J 〜グラフ作成の準備〜
  7. JavaFX + ND4J 〜グラフ作成:とりあえず表示〜
  8. JavaFX グラフ描画〜AreaChartを使う〜
  9. JavaFX + ND4J〜数学への挑戦6:グラフの土台を作る〜

JUnit関連

  1. Java Basic JUnit 〜テストスイートの作り方〜

TensorFLowを学ぶ

  1. Tensorflow Keras 〜初めてのKeras
  2. Tensorflow Keras Errors”python is not installed as a framework.”
  3. Python Tensorflow 〜初めての人工知能(TensorFlowインストール)
  4. Tensorflow Keras〜初めのトレーニング_1
  5. Tensorflow Keras〜初めのトレーニング_2:前処理〜
  6. TensorFlow Keras〜テキストの分類〜
    1. TensorFlow Keras 実行結果〜テキストの分類〜
  7. Python TensorFlow tutorial〜チュートリアルを進めるコツ、ワンポイント〜
  8. TensorFlow Keras〜回帰、準備から予測まで〜
  9. TensorFlow Java 環境構築〜JavaでもTensorFlow〜