サイト内検索

oracleハンズオン!オラクルGoのベース技術OracleJETを触ってみよう

お疲れ様です、
最近JavaScriptのライブラリマニアになりつつあります、野村です。

OracleJETの話が、と言うよりは前段の講義であった「オラクルGO!話題の位置情報アプリをクラウドで簡単に作ってみる」という講義を受けてみて、なるほど面白そうだ!と思って突撃してきた、というのが実態です。

本日の議題

対象者

  • oracleが好きな人
  • Web関連やjavascriptが好きな人
  • とりあえず何かのハンズオンに参加したい人(私)
本日のはハンズオンのまとめです。

Oracle JETを使うために

NetBeansを入れる

まずはいつものところから環境を作りましょう。今回はNetBeansを入れます。今回は執筆時点で最新の8.2を入れましたが、バージョンは何でもいいです。
後でプラグインを入れます。

NetBeansダウンロード

私の環境ではJavaを入れてないので、リンク先はJavaSEをまるごと入れるインストーラです。
Javaが既に入っている人はそれぞれの環境を使う事もできます。

特にwindowsユーザーが多いと思うので敢えて言うんですが、それぞれの環境にあったインストーラを選択して下さい。
結構間違えて入れて動かない!なんて話を聞きます。よくわからないなら両方ともダウンロードしちゃうっていう手もあります。

NetBeansにJETを入れる

私は既に入れちゃったので若干環境は違いますが…
NetBeans1.png

NetBeans2.png


まずは皆さんの環境で起動したらプラグインをインストールってボタンを押してください。
ボタン、と言われないと良くわからないようなデザインになってるので、文言を追いかけてください。
プラグインをインストール です

その次に、使用可能なプラグインタブでJETとかを検索するとJETサポート~っていうのが出てきます。
私の場合、インストールしちゃったので、インストール済みタブを参照しています。
見落としやすいので気を付けて!

ハンズオン!

教材用のソースコードはこちら
https://github.com/JETs-JP/oraclego-JET

ローカルに持ってきたらそのプロジェクトを開きましょう。NetBeansで追いかけて開こうとすると、oraclejet-appってプロジェクトが開く事が出来ると思います。
教材用のファイルの中にHandsOnTutorial.docxがあるので、それを開けばOKです。
宗教上の理由でdocxを開けない人は宗派を改宗するかgoogleで提供しているdocx開けるサービスを使うか、何かしらでご対応ください。

ちょっと脱線。MS製品の普及率は異常

Microsoft Office Solo高いですけど便利です。
MS系のOfficeツールは国内普及率があまりにも高すぎるんや…
Macユーザーさんはdocxとかelsxとか、どうやって読んでるんですかね?ちょっと気になりました。

やってみた感じ

さすがノウハウが多いオラクルさんと言いますか、ハマる事なくスムーズに進行することができました。
若干ブラウザの挙動が怪しかったりしますが、大体は何とかなる感じです。
クライアント側よりサービス側、サーバーシステム側に色々あったりなど、ちょっとしたデバッグ作業が混じったのもハンズオンあるあるですね!

更にJETを使う

oracleJETのクックブックがありますので、そこから色々できます。
http://oraclejet.org/
http://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html

通常で使う場合は正直にgoogleさんにお問い合わせ*1をしてあげるのが良さそうです。

htmlソース側をいい感じに変えるだけで描画が変わるので、今のソースをそのまま使うことができます。
まずはチャート関連を触ってみるのがおススメです。

そうでなくても、cookbookを眺めているだけでも結構楽しいです。
ソースコードは直接画面上からも変更できます。(要oracleの環境イメージ。require.jsの概念)


今回のハンズオンの一番楽しかったところはオラクルのクックブックがすごい、というところでした。

*1 : 検索支援:oracle JET cookbook

[JavaScript][TRPG]ダイスプログラム(アリアンロッドTRPGを想定)

お疲れ様です、野村です。
昔運営していたサイト(【Age of Networks(AoN-DB)え~ちゃんぶろぐねっとわ~く】)で懐かしいものを見つけたので、こちらでも公開します。
今日はヤバい話ではないので、主に私が安心して記事を書けます。

本日の議題

2016/6/24 追記

アリアンロッドRPG 2E 公式サイト
無料で遊べるようになってるんですね、驚いた!

懐かしいもの とは

TRPGのダイスポッドを自作しよう、という事で裏側の処理だけサクッと書いたものです。
当時は*1JavaScriptにガッツリハマっていた*2時期だったので、全部JavaScriptで作ってます。
JQueryは今回意図して使っていない、と思います。
コードを見てると、当時JQueryは使えなかったんじゃないかな、という気がしています。

*1 : 今も

*2 : 二重の意味で

ソースコード(コメント付き)

function diceroll(form)
{
  //定義フォーム
  const nD = form.nD.value;
  const Dx = form.Dx.value;
  const nx = form.nx.value;
  //わがままなアナタへの試算用フォーム
  const kitai = form.kitai.value;
  
  //結果を受け取る
  var n=new Array();  //要素としてのnx回目を出力
  var dice=new Array();  //ダイスの目を二次元的に保持
  //ダイスロール実行
  tmp=roll_process();

  //動作部
  function roll_process()
  {
	tmp=throw_process();  //ダイスを振る回数行う
	function throw_process()  //ダイスを一回投げられた処理
	{
	  var sum_nx=0;
	  var max=0;
      dice[0]=new Array(1);  //ダイスの目。2次元
	  for(var now_nx=1;now_nx<=nx;now_nx++)
	  {
        n[now_nx]=new Array("n"+now_nx);
        dice[now_nx]=new Array();  //ダイスの目。2次元
	    tmp=throw_once(now_nx);
		sum_nx+=tmp;
		max=compare(max,tmp);
        dice[now_nx][0]=tmp;
		
		//ここで描画するのはMVC的にどうなんだろうか?別途処理を用意できるが
		document.getElementById(n[now_nx]).value=dice[now_nx][0];
	  }
	  dice[0][0]=sum_nx;
	  output(sum_nx,max);
	}
    function output(sum,max)
    {
	  form.sum_n.value=sum;
	  form.max_n.value=max;
	  form.ave_n.value=sum/nx;
	  form.kitai_n.value=kitai*nD;
	  //dice[0][N]に何か入れる?
	}
	function compare(old,now)  //N-1回目とN回目の合計を比較すると想定
	{
	  if(old<now)return now;
	  return old;
	}

	function throw_once(now_nx)  //ダイス1つをnD個分転がした処理
	{
      var sum_nD = 0;  //dice[N][0]に合計を格納する。dice[0]ではない
	  var critical = 0;
	  var fumble = 0;
	  for(var now_nD=1;now_nD<=nD;now_nD++)
	  {
        tmp=dice_once();
		dice[now_nx][now_nD]=tmp;
		sum_nD+=tmp;
		if(tmp==1)fumble++;
		else if(tmp==6)critical++;
		if(fumble==nD)document.getElementById(n[now_nx]).style.backgroundColor = '#f00';
		else if(critical>=2)document.getElementById(n[now_nx]).style.backgroundColor = '#0f0';
		else document.getElementById(n[now_nx]).style.backgroundColor = '#eee';
	  }
	  
	  return sum_nD;
	}
    function dice_once()  //ダイスを1つ転がした処理
    {
      return Math.floor(Dx*Math.random())+1;
    }
  }
}

//入力が0だったら1にする。-は出来ない
function checker(check)
{
  if(check.value==0)check.value=1;
//  if(check.value<10)check.value=9;	期待値にも適用される。個別対応?
}

//スペルチェッカー。全角は面倒だからスルー。ちゃんと関数あるよ
function numOnly() 
{
	m = String.fromCharCode(event.keyCode);
	if("0123456789\b\r".indexOf(m, 0) < 0)return false;
}

//ボタン押したら最適化する
function radio_trpg(value,Dx)
{
  switch(value)
  {
    case "Arianrhod":
    case "AngelGear":
    select="6";
	break;
    case "DX":
    select="10";
	break;
	case "Noselect":
    Dx.disabled = false;
	return;
	break;
  }
  Dx.value=select;
  Dx.disabled = true;
}

使い方

動く場所:【Age of Networks(AoN-DB)え~ちゃんぶろぐねっとわ~く】があるのでそこを見れば分かります。
ダイス用のフォームを用意します。

名前は適宜いい感じに変えましょう。

振り返って曰く

長くなったんで別の記事にしました。

タグについて

ECMAScriptとありますが、よく分からなければJavaScriptで概ね間違いではありません。
が、Webコーダーさんはちゃんと違いを理解しておきましょう。

業務の効率化:セレニウムビルダー編

お疲れ様です、野村です。

2016/04/22 追記

タグ綴じを間違えていたのを修正、見直しだいじ!
探せばいろいろひどかったのでちゃんと整理します。すみません

はじめに

最近はshellの記事ばかり書いてますが、私のオートメーションはSeleniumもベースです。
AutoIT使えばいいんじゃないか、とよく打診されますがやはり画面上でそのまま操作した内容をアレコレこねくり回せるのは大きいんです。
しばらくはSeleniumから離れられないかなぁ。

目次

続きを読む

OK キャンセル 確認 その他