サイト内検索
Translation here

2016/12/24(土)#エアLT ファイラ―使ってますか?便利すぎるエクスプローラー型タブファイラ「tablacus explorer」 #社内ツール大公開

社内ツール.png


お疲れ様です、野村です。
21日のイベントにこういうのがありました。
エンジニア交流会~マル秘?!こだわりの社内ツール大公開!~(画像引用元)

ここにJsonleniumという、オートメーションエンジニアの関心を一手に引き付ける魔法のキーワードがあるんですが、これ検索しても出てこないんですよね……
情報欲しいです、切実に!

なければ作るしかないのか……!

と、いうことで

悔しいのでエアLTします。
社内で使っているものでなければ、ツールでもありませんがどうぞ、ご査収ください。

本日の対象者

  • ファイラ―を使ってない人
  • エクスプローラーに物足りなさを感じる人
  • Windowsユーザー

アジェンダ

ファイラ、使ってますか?

まずファイラとは何か、ご存知でしょうか?
乱暴な言い方をすると、Windowsとかについているエクスプローラーを強化したアプリケーションの事です。
その手の界隈の方は結構使ってるみたいなんですが、Macユーザーの方やWindowsユーザーの方でもExplorerを使っている人が多いので、知って使っていないのか、知らなくて使ってないのかでは意味が異なりますので、お節介を承知で紹介させていただきます。

最初にまとめ

おすすめのファイラは何ですか?と言われれば迷いなくTablacus Explorerを推します。
アドオンで拡張できるタブ型ファイラー Tablacus Explorer

使用例(と、カスタマイズイメージ)

tablacus.png

左側で作業用BGMを、右側で色々やってます。ゲーム系のセーブフォルダをマイドキュメントに置くのは管理が面倒になるから本当にやめてほしいですね……!

画面で見える範囲だと、分割とタブロックとペイン、検索フィルターバーが目立つぐらいですね。
デフォルトでマウスジェスチャー機能があったり、裏側でマルチプロセス・マルチタスク機能をONにしています。
あんまり多機能にしすぎると干渉しそうなので、類似機能は重複させないようにしています。

安定感

同じ系統にX-Finderというものがありますが、こちらの後継です。週に1、2度更新されていてバージョンアップがめちゃくちゃ早いです。
また、アドオンも充実しておりかゆいところに手が届く、というよりは直接かゆみ止めを塗りつけている感覚です。
便利すぎてこわい。

JavaScript製

です!結構すごいな、と思ってます。ただ、エラーハンドリング系は弱いので、ネットワーク障害が起こると頻繁に落ちるようです。
対策(?)として、定期セーブや定期再起動といったアドオンがあり、障害回復に注力されています。

欠点

  • さっきも少し書きましたが、ネットワーク障害などのエラーハンドリング系が本当に弱いです。
  • ネットワークを介して使うのは少々危険な気がします(アプリを再起動すれば問題は軽減できます)
  • はじめて触る場合、アドオンが豊富すぎて何をすればいいか分からないかも知れません。意味の分かるところから少しずつ入れてみる事をお勧めします。
  • アドオンの安全性は保障されていません。セキュリティ面には注意を払っておいてください。
    tablacus自体がセキュリティホールにはなりませんが、JavaScriptである以上未知の脆弱性を孕みます。最新版であることを確認しておきましょう。
とはいえ
便利さはピカイチです。
他のファイラ―はもう使わなくなったので分かりませんが、tablacus explorerだけで満足できる体にされてしまったので不便を感じていません。
不満、というか要望
贅沢な話をするなら、コマンドツールが使えるともっといいですが、どう考えてもエンジニアしか喜ばない機能ですね。
cd,ls,find,git,wget辺りは頻繁に使うと思います。使いませんか?
batやshell程度ならvimでサクッと書いてちゃちゃっとrun出来たらいいのにな~、とか思ってますが、そこまでやったらファイラではなくなりますね。

主催の方へ、要望

もう一回、社内ツール大公開やってくださいませませ、超行きたいマジ行きたい!
LTでもブログでもやります、ツール沼の人間としては気になりすぎてここ数日つらい……!

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コーダーさんはちゃんと違いを理解しておきましょう。
OK キャンセル 確認 その他