将棋盤をHTML/CSSで構成し、駒をJavaScriptで動かしてみる。

趣味で英語の将棋入門サイトをホストして5年くらい経つ。 駒の動きとか手筋、などをみせるのに過去ネット上で入手できる色々なアプリに世話になってきた。一番お世話になっているのが柿木さんのkifu for Flash で、定跡の紹介などは、このアプリケーションが欠かせない。 他にもユモケンさんのFlashを使った将棋盤を使って歩の手筋の紹介などをしてきた。 数年前に簡単な詰め将棋集をつくるのにBCM将棋で画像を生成し、これを順次表示して詰め手順を示すしくみを当時覚えたてのJavaScriptで書いてみた。 ただそのときわかったのだが、手数ごとの画像をいちいちセーブしてそれを組みたてる、というのはJavaScriptを使っていても結構手間がかかる。 今回駒職人1さんのサイトからCreative common license による駒と将棋盤の画像が入手できたのでこれを機会に初期の駒配置と動きのデータをJavaScriptファイルに書いておけば、それをなぞって実行してくれるようなしかけを作ってみた。

一応うごくようになったので、ここに公開しておくことにする。

特徴としては

駒の配置をCSSで処理しているということで、具体的にいうと たとえば先手の銀を34におきたい場合、銀のイメージファイルがSgin.png とすると

<img  src=”Sgin.png” class=”koma c3 r4″ alt=”” /> というようなイメージエレメントをJavascriptで動的に生成して将棋盤の3四の位置に銀を表示させる、というような手法をとっている。

動くサンプルをここにおいておく。 また、3年経つと何をやっているのかわからなくなる、というのが前回の経験でよくわかったので少し詳しい説明を順次ここに書きのこしておくことにする。 誰かの参考になればうれしいし、もっと経験のある方から助言をいただけるとありがたい。

ねらい: サイトの教材作成に使えるような動く将棋盤
データのエラーチェックなどはつけない(自分でしか使わないので)
前もって用意しておいたデータファイルをもとに初期配置およびその後の駒の動きを表示できる
CSSとJavaScript、HTMLの3種の神器のみで記述、JavaScriptはJqueryLibraryも使用

上記のページにはHTML記述に余計なものは入れていないので、ブラウザーの開発ツールを使って二つのJSファイルの中身とCSSファイルの中身も一緒に見てもらえれば、それなりにコメントも入れたので、ほぼ全容がつかめると思う。

ModX Revolution2.2 とIIS の相性

modXの2.2 がリリースされてから2ヶ月ほど経ったが、今回自宅のサーバーに導入してみた。 ホストサービスのほうで運用しているサーバーはApache なのだが、自宅はWindowsに実装したIIS7だ。

で、インストールしてマネージャ画面に行ってみたら、なんとリソースツリーがない。メニューとお知らせは表示されるのだが メニューをクリックしても空白の画面が出てくるばかり。 ログアウトもできない。

インストールを繰り替えしてみたり色々やってみたが拉致あかず

サポートフォーラムに行って2.2のエントリーを眺めてみると、結構類似の問題が発生している模様、 その中で

「どういう訳か、IISではJS とCSSを圧縮するとうまく行かない」という記述があり、対策としてはPHPMyadminなどで直接mysqlデータにアクセスし、System settingの当該項目を圧縮あり(1)からなし(0)に変更すればよい、との書き込みを見つけた。

もっとはやく言ってよ。

早速SQLBUDDYでデータ内容を書き換えて解決。

 

Comcast blocked my port 25

About a week ago, my PC’s mail client (Thunderbird) started to complain that it can not login to mail.comcast.net and i could not send any email.

It continued to do so for about a couple of days. my wife’s PC was in the same condition.

When I logged into Comcast web mail, an e-mail from Comcast was waiting. It basically told me that due to suspicious activity, they blocked my port 25 to protect me being from a victim of security attack.

It also tells me how to setup a client to listen to another port.  So I went ahead and setup my client to use another port.  That was an end of the story for Comcast mails. (outgoing port 25)

However, I also have hMail server running for my own domain in my home server. the mail server receives emails via port 25 (incoming) this was also blocked, so I was not receiving any mails.

The my domain is served by TZO DDNS service.  they also offer the service called Store and forward.  The service can be a proxy receiver for mails sent to my domain, then it will forward them to my PC via port of your choice.  SO I had to buy this service and configured the service to use another port (in my case 8025) to forward emails to my domain.   In the htserver admin panel, I added smtp port 8025 so that the server can listen to the port.

 

Now the home mail server started to receive mails again.

I hope Comcast eventually removes this block after a while so that I can revert back to normal setting and unsubscribe from this Store and Forward service.

本屋のあるまちかど

久しぶりに日本に10日ほど行ってきた。 業務出張である。

今回あらためて気がついたことがある。 日本の本屋の多さ、紙の出版物の多さである。

アメリカではメガブックストアの雄であったBordersが去年の初めに倒産し、会社更生を目指したがこれがうまくいかず、夏には全米の書店で在庫の書籍から棚から家具にいたるまですべての資産を売り飛ばして文字通り消滅してしまった。  これで自分が住むAnn Arborに残ったのはNichola’s という町の本屋, Borders の競合相手であったBarne’s and Noble、ダウンタウンにある大学の書籍を主に扱う店の3店になってしまった。アンアーバーはミシガン大学の本拠地だ その大学町でこれである。
いずれの店もBordersのような多彩な書籍のラインアップから比べると見劣りがする。 ますますAmazonへの依存度が強くなりそうである。

Amazonから購入する場合、 現在の彼らの戦略なのか、電子書籍に非常な割安感がある。 しかも購入即ダウンロードで読み始めることができる。郵送してくるのを待つ必要がない。 自分はKindleは持っていないのだが、Android携帯のアプリとPCのアプリで十分閲覧は可能。しかもKindleのもっとも安価な専用端末はいまや70ドル台、 というわけでアマゾンへ依存が高まるということは、電子書籍への移行も進む、ということになる。 よって、 今回の出張前までは 紙の出版物はどんどん減っていく、という実感を持っていた。

 

ところがだ、日本ではまだまだ紙の出版物、そして本屋さんが元気なようなのだ。

今回は客先への打ち合わせであちこち走り回ったが、「本・CD」という看板を掲げた古本屋がどこにでもある

また、八重洲のbooksCenter,池袋のリブロなど、以前来た時より間口が広がったんじゃないか、という感触を受けた。

あるいはアメリカでは特別注文で店頭においてないような米国の書籍が丸善書店に並んでいたりする。

円高ドル安で割高感には閉口したが、 (300ドル両替して2万2千円弱にしかならない、ってのは何よ) 手にとってみられる、という贅沢がいまだにできる日本。 つくづく活字大国だったのだなあ、とあらためて認識した次第

WP34s version 3

Eric さんがWP34s のオーバーレイのV3仕様を売り始めた。(オーバーレイの販売ページがV3になっている。逆にV2.2を入手しようとした場合はEricさんに連絡を取る必要がありそうだ) 早速入手し、この日のためにと買い置きしてあった、HP-30bに貼り付けた後、 バージョン3のファームウエアを導入。

WP34sのプロジェクトサイトのダウンロードページから入手できるファームウエアはV2.2であるので、開発中のバージョン3はSubVersionのデポジトリから拾ってくる必要がある。

Calc_full.bin , Calc.bin の両方をダウンロードしてきて、まずはオプションのアプリケーションが同梱されているCalc_full.binをフラッシュする。 本本今日の時点でbuild2294である。これにCalc.binを上書きする。 やはり今日の時点でBuild2309となる。

 

個人的には、電源OFFがhキー+Onにアサインされたのが一番、気に入っていたりする。

WP34S version 2.2

またまたWP34Sである。 Development site からはすでにダウンロードできていたが、プロジェクトサイトの FileセクションのZIPも正式にバージョン2.2がポストされたようだ。

これで2.2の開発は終了し、今後はキーボードレイアウトの変更を含むV3の開発がスタートする、ということなのだろう。

http://sourceforge.net/projects/wp34s/files/

このページにはケーブルの入手方法、オーバーレイの入手方法、フラッシュツールなどが明記されるようになった。 これで必要な情報はすべて一瞥できるようになったわけだ。

ところで、オーバーレイのx<>y(swapキー)のシフト部分がf、g、hがそれぞれ、x<>任意のレジスタ、xレジスタからアルファレジスタへの変換、アルファレジスタからxレジスタへの変換となっているところ、実機の動作はx<>任意のレジスタ、y<>任意のレジスタ、z<>任意のレジスタ となっている。 ではxレジスターとアルファレジスタの変換はなくなったのか、というとそうではなく、f-Enter でアルファモードにしたときにはオーバーレイ通りの動作になる。 ということで、まったくなくなったわけではない。

最初はオーバーレイのレイアウトに準拠した形に戻す、というコメントもでていたが、結局この形に落ち着いたようだ。実際に使ってみるとわかるが、このキーはすべてレジスタのスワップの機能になっているし、押したときに選択された機能がドットマトリクスの表示部に出るので迷うことはない。

t<>任意のレジスタ という機能もP.FCNメニューの中にあるので、スタックレジスタ4本、すべて個々に内容の操作が可能ということになる。

 

フォーラムの住人たちの中には2.2の実機をまず作成しておいて、 V3の実装にはまた新しくHP30bを購入するつもり、というコメントを出す人たちが少なからずいて、hpの計算機って、趣味のせかいなのだなあ、と改めて思った次第。(まあ、私もTrapされてしまった一人ではあるのですが)

ところで、WP34Sには LastXというHP使いにはなじみのあるキーが無い。 これはRCL  Lというキー操作がLastXと同じ機能を提供する。 LastXを設定してもシフトキーを使うとすると同じ2ストロークの操作になり、ただでさえ機能の数に対してキーの数が足りない状態。あえて入れる必要がない、ということで落着しているようである。

 

WP34Sのファームウエアをアップデートしてみる

今日現在、WP34SのプロジェクトサイトからダウンロードできるZIPファイルに格納されているファームウエア、およびマニュアルはバージョン2.1である。 バージョン情報はX.FCN からVERSコマンドを選ぶと見ることができるが、”34S 2.1, 1630″ と表示されるはずだ。

この時点からも開発は滞りなく続いてでおり、/develop ページを見るとわかるが今のバージョンは2.2だ。Buildは本日の時点で1747まで進んでいる。

大きく変わったのはマトリクス機能が追加されたこと。 自分としては実質1行表示の計算機でいまさらマトリクス計算を試みるとは思えないが、「持っているという満足感」だけのためにアップグレードしてみることにする(おい)

フォーラムからの情報によれば、現在のエリックさんのオーバーレイシールのキー設定が使える最後のbuild は1722だそうだ。 それ以後はSwap keyのシフト設定が異なってしまっているとのこと。 そこんとこはどうせ使っていません、と割り切って最新のファームウエアにアップデートしてしまうのも手だが、今回はとりあえず1722 build へのアップデートに挑戦してみた。

開発コードはプロジェクトサイトのSVNデポジトリで管理されており、ここから当該バージョンのCalc.binをダウンロードしてくることになる。

Sourceforge のプロジェクトページ から/Develop ページに移動し、SVN Browse code  のリンクをクリックする。 まずは /doc フォルダーから 2.2のマニュアルをダウンロードしておく。このマニュアルには「HEX、OCTなどの整数モードから実数モードに戻るためのキー操作」が1ページ目にかいてある。(確かに自分もわからなかった[苦笑])

次にTrunk フォルダー―>Realbuildフォルダーに移動し、”Calc.bin”をクリックすると バージョンのリストが現れるので1722を選んでダウンロード。 このフォルダーにはユーザーライブラリーのファイルも置いてあり、Join.cmd でCalc.binと合体させることができるようであるが、 buildを見ると1726しか登録されていないため、今回は見送ることにした。

(追記:フォーラムの議論によれば、バージョン2.2の最終リリースではキー設定を現状のオーバーレイに戻す方向である、という。 バージョン3からマトリクス関数専用キーなど、キー設定の変更を行う、との事。 )

前回はAtmel のSam-BAというフラッシュツールを使ったが、最近WP34SプロジェクトのほうでMysamBAというWindows用の簡易ツールを用意してくれた。これはWindows7でも使える、ということで今回はこちらを使用してみる。 プロジェクトのトップページからFilesタブを選び、FlashToolのフォルダーの中にあるMySamBA.zipをダウンロードし、解凍するとExeファイルが現れる。実行してみるとわかるが、フラッシュ用の機能にしぼってあり、操作が非常に簡単。

なお、Windows7 の64bitでも実行できたが、アドミニストレーター権限で実行しないと、Com ポートの選択ができない。

Com-portを選び、アップロードするファイルを選択したのちDownloadボタンを押すだけの簡単操作

ケーブルセットとRS232コンバーターは前回と同じものを使用。

 

なお、一度WP34Sにフラッシュしてしまうと、計算機だけの操作でフラッシュを受け入れる状態に持っていくことができる。接続ケーブルのerase ボタンを使う必要がない。

On key + D key でデバッグモードにし(=インジケータが点灯する)、この状態で On + S
キーを押す。 ONを押しっぱなしにしておいて、Sキーは2度押す必要がある。 これでフラッシュ用のビットが立ち、計算機はオフし、死んだふり状態となる。(この操作はケーブルを持っていない人は絶対やってはいけません。復帰が不可能になります)

あとはケーブルを接続し、MysamBAでフラッシュするだけ。

Download ボタンを押す前にケーブルのリセットボタンを押し、そのあとONを押すのはSam-Ba と同様

 

自分の環境では24秒で完了

Pauli とWalter という二人の開発者の名前が見える。だからhpではなくWPなのだ

ところでこの計算機の今後の予定だが、いくつかのキー設定の変更がフォーラムで議論されている。 現在エリックさんが売っているシートは使えなくなるわけだが、彼は1~2ドルで頒布するパッチキットを考えていると発言している。 このシートはビニール地に印刷し、その上から摩耗防止用のクリアコートをかけてあり、デジタル印刷なので版を用意しているわけではなく、 (費用がかかったはずの)打ち抜きの型はそのまま使えるので売るほうとしてもそんなに深刻に受け取っていないようだ。

ユーザーとしてはベータファームを承知で使ったわけだし、最初から張りなおしても一枚5~6ドルなので目くじらをたてるほどでもない。

フォーラムの議論の中で面白いとおもったのは ”||”キーの扱い。 これは”/”キーのgシフトに割り当てられているのだが、抵抗の並列に接続した場合の抵抗値の計算に使う。電気技術者しかつかわないのだから、もっと汎用度のある機能を割り当てるべきだという意見が散々でているのだが、変更されていない。 確かにやっていることは <<1/x swap 1/x + 1/x>> というたわいのない計算で必要な個人がラベルA~Dのどれかに割り当てれば済むという議論ももっともなのだが、もしかしたら開発者も電気系の出身か?

ところで、自分は20bを改造したのだが、まだ20bも30bを持っておらず、WP34Sを作ってみたいという人は30bを使うのがお勧めだ。 とにかくキークリックのタッチが全くちがう。フェースプレートもインモールドデコレーションが使われてすっきりした仕上げになっている。 ちなみにamazon.comで値段をみると30ドル以下で買える。なので、全部米国で調達した場合、

ケーブルセット6ドル(ジーンさんの手間賃:ケーブルはHPからの無料頒布:ちなみに海外郵送は10ドル)
オーバーレイシール 10ドル(失敗した場合の事を考えて2枚購入:世界中どこでもこの値段だそうです
RS232/usb 変換ケーブル $24 (FTDI チップを内蔵したもの)
30B   $33 (amazon seller の最安値)
合計 : $73 = 約6000円

これがWP34Sを所有するためのコストということになる。

hp-20b re-purposed into WP34S “Scientific RPN”

エリックさんのオーバーレイが届いたので貼ってみた。 キートップがどうかと思ったが、柔らかい素材でうまく馴染んでくれたようだ。

よく見ると色々ケチがつきそうになるが、老眼にはそれなりによく見える

hp20b with Eric Rechlin's overlay, version Oct 2011.

HP10シリーズ と比べてみてわかったが、hp20b/30bって、意外と小さくできていたのだ。

hp-20b をフラッシュしてみる その3, 遂にwp34sを導入

一度コツを覚えてしまうと、うまくできなかったのは何故なんだろうと思えるくらいに確実にSam-baと接続できるようになってきた。ケーブルセットひとつだけで、非常に重宝する  。 HP15C LEのファームウエアのアップデートも(リリースされるかどうかは判らないが)これで準備は整ったわけだ。

そこで当初の目的であるところのwp34sの導入(hp20b のre-purposing)に踏み切った。

このプロジェクトはsourceforgeで公開されており、誰でもファイルをダウンロードしてくることができる。Zip fileを解凍し、Real というフォルダーの中にあるCalc.binというのがhp20b/30b用のファームウエアでこれをhp20b/30bにフラッシングしてあげると、金融電卓として売られていたハードウエアが科学技術電卓として使えるようになる。

実はフラッシュが終わってからマニュアルを読んでいるのだが

  1. ベースはHP42s
  2. HP16cの整数及びビット処理機能
  3. HP 32SII の分数表示
  4. HP21Sの分布関数
  5. スタックは4レベルと8レベルに設定可能
  6. 単位変換80種類以上、定数50種類以上のカタログ機能
  7. 500ステップのプログラム (+フラッシュバンクに3x500ステップのストレージ)
  8. 速度的にも42Sの50~100倍位でている

 

さらにパソコン上で動くエミュレーターも同梱されており、このエミュレーターと本体との間でデータのやりとりが可能、というマニアが泣いて喜ぶような仕様になっている。 hp20bのハードのポテンシャルで充分ものになったということか。

しかし弱みがあって、それは見栄え。キー設定がほとんど変更になってしまうため、オーバーレイを使ってキー表示するのだが、 Real のフォルダーにある二つのイメージのうち、キートップに表示しないタイプのものをとりあえず紙に印刷し、 キーボードの部分を切り抜いて両面テープで留めてみると下の写真のようになってしまう。

WP34S fisrt shot

30bはTVMを、34sは単位変換カタログ中の温度変換を表示中

hpcalc.orgのエリックさんが裏に接着剤のついたマイラーフィルムに印刷したものを販売しているのでこれを入手しようとしているところである。 キートップに一枚一枚貼り付けて行くというのは想像しただけで気が遠くなるのだが 、 さてどうなることやら

ふとおもったのだが、この電卓の組み立てキットを大人の科学のような体裁で売り出せば売れるかもしれない。

hp-20b をフラッシュしてみる その2、まずはupdate

我がhp-20b は消去・リセットのステップを通して見事にブリキと化したわけで、なんらかのファームウエアを入れてあげないと電卓として機能しない状態になっていた。

用意したもの

  1. Windows XP が実装されたネットブック
  2. ATMEL のホームページからdownload してきたSam-ba 2.10 とパッチファイルSAM7 Patch for SAM-BA 2.10 . 本体をインストールしたら、パッチ部分を解凍して該当するフォルダーに上書きコピーしておく
  3. USB serial converter – RS232 コネクタをUSBコネクタに接続するケーブル、FTDI チップを実装したインターフェースがコネクタ内部に組み込んである。
  4. Gene Wright さんから郵送してもらった HP 電卓専用のケーブルセット
  5. 昨日ダウンロードしておいたHP20_DEVELOPMENT_KIT 内のHP 20 ORIGINAL ROM.BIN

 

ケーブルセット、USBシリアルコンバーターを介して電卓をつなぎ、電池を再セット

そこから sam-ba を起動し、手引書の4頁にあるとおり、comポートを選び、Select your board のdropdown にはat91sam7l128-ekを選ぶ。 Connect buttonをクリックする直前まで準備しておき

 

この状態でケーブルのリセットボタンを一度押し、続いて hp20bのON/CEボタンを半秒から1秒押した後、画面上の”connect”ボタンをクリック。

これでSam-ba  の画面が現れればほぼ成功である。

これでSam-baの画面もエラーメッセージも現れなければTask manager からSam-baのプロセスを殺してもう一度最初からやり直さなければならない。フォーラムのコメントには最初から(フラッシュを消去する手順から)やり直すという方法が推奨されている。

Sam-baの画面が現れた場合はSend file name の入力部分に通常のファイルダイアログボックスから焼きたいファイル名(今回は”hp20b original Rom.bin”) を指定してやる。  そしてSend file ボタンをクリックするとコードの転送が始まる。 手引きには45秒くらいと書いてあるが自分のセットアップでは1分以上かかっているようだ。この間画面上のデータが逐次アップデーとされるので迷うことはない。

終了するとlock region to Lock というダイアログが現れるので”NO”を選択。

次にスクリプトエリアで”boot from Flash(GPNVM1) となっているはずなのでExecute ボタンをクリック。

ケーブルセットのリセットボタンを押す。

内部処理が済むのを5秒ほど待ってあげてから ON/CE ボタンをおす。

 

これで計算機が復活する。ちなみに手引書に書いてあるチェックサムは 9.16.2009バージョンのものなので、比べてみることはできないが、ファームウエアの日付が10/19/2009にアップデートされていたのでフラッシュ成功とわかる。

ポイント

1. Sam-ba.exe を使用する。 Sam-ba_cdcでは接続できない。

2.Sam-baをConnect する前にケーブルセットのリセット、本体のON/CE を順番に押す。

3. うまく行かなくても計算機内部のブートアップルーチンは必ず生きているので焦らないこと。

4. 電池のスペアを用意しておく。作業を中断する場合には電卓から電池を抜いておく。

5.OSはあるなら Windows XP が無難。Windows 7にインストールする際、Windows XP compatible mode に設定してインストールというコメントがフォーラムにあったがどうか?(未確認)

6. シリアルコンバーターを使う場合はFTDIチップを使用したものが推奨されている。