nkif と DB と検索

今日は、JSKifuForWP (その後のResponsive-Kifu)のコードをいじる。

コメント出力も可能になった。

JSKifuForWP は読み込むことのできるデータ形式は、nkif 形式のみである。nkif というのは、私が勝手に名付けた名称で、その出自が某放送局のためこの名前となっている (笑)。

今日の作業でそのデータ構造はほぼ理解した。

nkif は一局面を例えば

p=1b191716101617191b0014000000000012001d1d1d1d1d1d1d1d1d0000000000

00000000000000000000000000000e000000000000000e000e0e0e0e0e0e

0e0003000000000005000c0a08070207080a0c26;

h1=;

h2=;

という形で表す。p は盤面の駒配置、h1 は先手の持ち駒、h2 は後手の持ち駒、である。 “nkif と DB と検索” の続きを読む

pma さんの謎

この blog は、レンタルサーバ上で WordPress を使っているのだが、ローカルに xampp を導入してそのコピーを置いている。

以前は VMware に Ubuntu を入れ、apache サーバを立てて…などとやっていたのだが、正直、バックアップをとる程度であれば、xampp の方が楽だ。

ただ、xampp の phpMyAdmin にはバグがあって、かなりの頻度で「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください」というメッセージが出るようだ。

修正方法は、ググればちらほらでてくるのだが、このとき謎のユーザ pma さんが存在することに気づいて、最初戸惑った。
要するに、『MySQL を管理ユーザ root で phpMyAdmin から直接操作するのは危険なので、代わりに pma さんを作り、pma さんに権利を委任することで各種データベースの操作を行う』ということらしい。
修正している最中、よくわからなくなってきたため、pma さんをごそっと削除し、再度、pma さんをアカウント登録してパスワードなどを設定し、権利を委譲したら、エラーメッセージは嘘のように消えたので、まあ、この理解でいいのだろう。

そういえば、pma というのも Php My Admin の略なんだろうな。なんか納得。

CakePHP チュートリアル試してみた

WordPress 使ってながら、PHP に関してはまったく無知だったので、CakePHP 3 をちょこちょこお勉強。
まずは公式チュートリアルから。最初のサンプルのブックマークがどうしたこうしたはまったく興味なかったのでブログの方から試す。

おそらく最終成果物はこうなると思います。

対応する MySQL のテーブルを確認する。

CRUD 操作は確かに安定してますな。

 

あのプロジェクトを救え! NetBeans

エンジニアというものは、自分のつくったプロダクツに責任を持ち、万難を排して保守にに努めるべし(略)…と考えていた時期が私にもありました。

実際には、大人の事情等があってそう理想的にはいかないんでしょうが、特にIT系に深入りすると「けっこう使えるのになぜかメンテが今一つで敬遠されているプロジェクト」が山ほどあることに気がつきます。「食わず嫌いの方も多いかもしれないが、こう使えばけっこう使えるよ」的なことを書いていきたいと思います。

まず、Java 系の IDE である NetBeans から。

Java 系の IDE というと eclipse の方がメジャーなんでしょうが、多機能すぎて私は使用を途中で放棄しました。操作が今一つわかりにくいっていうか。。。

もちろん、NetBeans にも悪いところはかなりあるのは知っています。例えば、プロジェクトから WildFly などアプリケーションサーバを走らせると、ほとんどの場合、停止しない、とか。最近もこの手の問題に直面しててこずりました。ですが、なにかちょっとしたコードを書きたいとき、断然、NetBeans の方が便利だと思います。プロジェクトをつくる仰々しさがないっていうんでしょうか。。。

ですが、残念なことにそのチュートリアルとかがひどかったりするのですね。

まず、なんでこんな迂遠な書き方するんだろう? 翻訳ということを差し引いてもちょっとどうかと思います。やっていることは単純で「アプリケーションサーバ上に二つの JSP ページを載せる。一方のフォーム上の入力欄に文字列を書き込み、投稿ボタンを押下するともう一方のページに遷移し、その文字列を表示する。コントロールは beans でおこなう」というものです。最初にこれを書いておかないものだから、目的地がどこなのか初心者は混乱します。

要するに

というページを用意し、「OK」ボタンを押下すると

というページを出力するってことです。

情報も古いです。サンプルソースがなにしろ JDK 1.6 対応だったりします。

今回、手を出したついでに同内容を 『JDK 1.8 + NeteBeans 8.1 + WildFly 10』で作りなおしたものを github に上げておきました。

これを作成したときのポイントは

・操作は下手にショートカットなどはつかわず、自分の手慣れたやり方でOK。(ページやクラスの作成などは右クリック→新規追加で十分でしょう)

・コードは基本コピペ。

・IDE はプラグインなどが不安定なものが多い。デプロイは面倒がらずに http://localhost:9990 からおこなう。

といったところでしょうか。

なお、chrome では、現在(2017年夏)、デフォールトでは Java が動きません。npapi というやつを有効化しておきましょう。

 

将棋 NHK 杯サイトのデータ形式

ちょっと解析してみました。

初手が

p=1b191716101617191b00140000000000120……. ;

となっていて最初何のことかわからなかったが、これは局面表示のようです。

1. 最初の2文字を切り出し、16進数として解釈。 ( ‘1b’→27 )

2. 次の2文字も同様に。( ’19’→25)

以下同様

で、27 は後手香車、25 は後手桂馬と別の場所で定義されているので、これは「1一, 2一, … のマスに置かれている駒の種類を 9×9 まで書き出したもの」ということになります。 sfen に似てますが、駒記号の解釈がわかりやすく、ブラウザ(JavaScript)を用いたクライアント・サーバシステムには相性の良い形式といえるのではないでしょうか。

 

 

JavaScript 関係

・ウェブ上での開発環境はいくつかあるようだが、 Thimble が使いやすい。

・Ajax。「エージャックス」と読むのね。今まで「アヤックス」と認識していた。欧州の名門サッカークラブとは何の関係もなし。

 

windows10 で GCC

windows 環境で GCC を使うとすると、MinGW が有名だが、現時点で、公式には gcc  6.3くらいまでしか対応してない。

もうちょっと最新版が使えないか調べたら、MinGW Distro というのを見つけた。version は驚きの 7.1 。

すぐに使うことはないだろうが、紛れないように記録。