OpenHSPをmacOSに移植した。

EC2にMacインスタンスが追加されて、Mac持ってなくてもmacOS/iOS向け開発できるようになったということで盆休みの自由研究に試してみた。 Linux向けHSP3DishだとSDL使ってて、ほぼLinux依存は無いので基本的にはコンパイルオプションの変更で動作するように…

LizGobanをクラウドで動かす

前回の続き。 SGF読み込みに対応して、HTML製のメニューを追加して、タッチパネル対応して、AMIを作った。 AMI(オレゴン:ami-0f6a99179a0f6560a 東京:ami-03840379d1bbf0293)を選択して、p2かp3インスタンスを選択して HTTPポートを開けて 使う。 詳細はユー…

LizGobanをクラウドで動かす

Electron製のLizGobanのローカル側をnode.jsで動かすようにして、Electron IPCをWebSocket経由のRPCに差し替えてみた。https://github.com/zakki/lizgoban/tree/server-client git clone https://github.com/zakki/lizgoban -b server-client cd lizgoban np…

CGFオープン2018

CGFオープンに参加してきた。2018年CGFオープン 今回は独自性ルールが緩かったので小林さんのRayとは別にRnとして出場。19路は現状安定して強いrn-4.32は1年以上前のPN/VNで代わり映えしないのと、一番強いrlo-0.4はELF OpenGoより弱くて改善点薄いのとで、 …

AI 竜星戦 2017

Raynzで出場して、予選11位突破(参加者全員突破だけど)、本線6位でした。 またPolicy network + value network + owner networkの重み共有による教師あり学習について、独創賞をもらいました。目的関数としてOwnerとValueの二乗誤差を足し合わせることでValu…

人工知能学会誌

人工知能学会誌 Vol. 32 No. 5にRayn の技術と自戦記 UEC 杯3 位への歩みで小林さんとRaynについて書きました。https://www.amazon.co.jp/dp/B076466H47

第10回UEC杯コンピュータ囲碁大会

Rayの作者の小林さんとチームでRay+Rn=Raynで出場して3位でした。 CGOSや内容から見るに4位〜8位引き離したというよりはコイントスして運よく勝てたに近い状況とはいえ暫定世界4位を名乗れる。 http://www.computer-go.jp/uec/public_html/result2.shtml実行…

Deep Learning 囲碁

RayをベースにKGSやGoGoDの棋譜をDCNNに学習させてみてる。 https://github.com/zakki/Raycgosレーティング3000以上届いた。 http://www.yss-aya.com/cgos/19x19/cross/Rn.3.0-4c.html

AlphaGo

各所で話題になってるGoogle の DeepMind 囲碁の論文が面白い。https://storage.googleapis.com/deepmind-data/assets/papers/deepmind-mastering-go.pdfRAVEやProgressive wideningのようなUCT系の探索ノード決定ヒューリスティックを使わず、ニューラルネ…

Arduboy

ArduboyのDeveloper kitが届いたのでaobench移植したり日本語表示したりarduboyでaobench. 誤差拡散で適当に。意外とはやいな。 pic.twitter.com/4zJj4VJ0WV— zakki (@k_matsuzaki) 2015, 10月 11 第一水準の半分ちょいでflash溢れる pic.twitter.com/BLDw7c…

SVGコードゴルフ

圧縮アルゴリズムの気持ちになるですよ推測するな計測せよに基づき最適化プログラムをでっちあげる。 import java.io.{BufferedReader, ByteArrayInputStream, ByteArrayOutputStream, InputStreamReader} import java.nio.charset.Charset import java.util…

CEDECの資料とか

WebGL http://app.famitsu.com/20150827_561788/ http://wgld.org/o/tools/slide/doc/005/ Emscripten http://www.aqualead.co.jp/getnow.html 汎用スマホ利用VRゴーグルって,やっぱダメですかね? http://www.4gamer.net/games/999/G999902/20150828125/ …

GamePlay + Emscripten

HGIMG4のEmscripten対応でGamePlay3DのEmscripten対応を部分的にやってたのをGamePlay本体に移植してみた。 元がOpenGL ES対応しててマルチプラットフォーム対応なので初期化と入力系以外は特に何もしなくても動く。音のストリーミングでスレッド使ってるの…

GamePlay3D + HGIMG4 + ANGLE

HSP

GamePlay3D を OpenGL3 非対応環境で動かせるように ANGLE 対応する。 wgl を使った OpenGL 初期化コードを Android のコードを真似して egl に差し替えるだけで動いて互換性高い。HGIMG4 3.5b2pre&ANGLE

HSP JIT

何年か前に放置してたHSPのJITを再開。実行時情報による最適化無し(--no-opt)はhsp3cnv+コンパイル相当の内容で、バイトコードのデコードとディスパッチ、オペランドスタックの操作などを最適化出来て数割の高速化。プログラム実行中に変数型が変わらないと…

WebGL+HGIMG4

HSP

hsp3dish.jsでHGIMG4対応した。普通のhsp3dishは一部OpenGL2.x系のAPIを使っているのでEmscriptenでLEGACY_GL_EMULATIONが必要だけど、 HGIMG4はGamePlay3DはOpenGL ES2ターゲットでFULL_ES2で十分なのでブラウザ実行ではむしろこっちのほうが素直かもしれな…

今年の振り返り

囲碁AI コンピュータ囲碁モンテカルロ法の理論と実践読みつつ、OCamlでモンテカルロ木探索なの書いた。 マルチプロセッサで検証したくてAWS使い始めたり。棋譜からのパターン学習のあたりで力尽きてGNU Goに勝ち越せてない。 OCamlは書きやすいっていう利点…

TypEcs

今後仕事でTypeScript多用することになりそうだったので、Eclipse向けのTypeScriptプラグインの一つのTypEcsにちまちまpull request投げてた。手元環境で特に変更無く動いたのとデバッガ内蔵していたり多機能ということもあってTypEcsをメインに見ていたけれ…

HSP3Dish.js

OpenHSPのhsp3dishをemscripten対応した。 http://peppermint.jp/products/hsp/hsp3dish.htmlFirefox・Chrome・IEとも最新バージョンでは実行速度問題なさげ。 IE11だとWebGL対応状況の関係でblock3はボール見えないくらい。hspcmp.dll相当の機能も動いてる…

js_of_ocamlとenchant.js

TypeScriptとenchant.jsの相性悪いという話があったけどjs_of_ocamlも辛い。 enchant.Class.createをうまく扱う方法が思いつかない。継承使わずに分厚いラッパー用意するほうがいいのかも。 open Js module Enchant = struct let enchant = Unsafe.variable …

OCamlからIntel SPMD Program Compilerを使う

せっかく最新のCPUではコア複数あるんだからOCamlからも活用したい。ispcではGPGPUのようなイメージで独自言語のコードを専用コンパイラでコンパイルしたものを普通のC/C++のコードから呼び出して使う。だったらocamlからもctypes.foreign経由で素直に使える…

ICFP Contest 2013

例年のようにicfpのコンテストに @khibino @plaster @dekosuke @Lost_dog_ @m2ym Kee -san達と参加。ルール等の詳細はhttp://icfpc2013.cloudapp.net/去年まではSchemeとC++を使っていた人々がふたりともHaskell派になったおかげで、一人でScala書いてた。de…

Cygwin/X + IME

内部コードをkinput2仕様のオレオレwcharからUCSに変更したので、ハングルや中国語も入力できているようにみえる。http://zakki.github.io/xserver/頂いたコードに言うのもなんだけど、いい加減K&RのやX11R5以前の事情を引き継いでるkinput2ベースじゃなくて…

TypeScript 勉強会

トップゲートさんで開催されたTypeScript勉強会でしゃべってきた。 予め喋る内容決めとかないと準備不足でグダグダだ。TypeScriptの処理系概要 http://prezi.com/56-dvutxh0un/typescript/ 喋りつつ思ったけど、AST の構築や TypeCheck は処理の流れをトップ…

Emacs + typescript-tools + auto-complete + flymake

引き続き TypeScript の環境整備。普通に flymake を使うと毎回 node tsc.js が走ってしまうのと取れるエラーの数に制限がかかっているのを解消するために typescript-tools からエラーをとれるようにして flymake に流しこむ。普通に flymake の初期化を定…

Emacs で TypeScript を auto-complete 使ってコード補完

Services.TypeScriptServicesFactory() 経由で補完情報を取れたのでそれを auto-complete につなげた。 公式の TypeScript.el だと (typescript-mode-hook) のフックが無いのでそっちも更新。今のところ同一ファイルか lib.d.ts で定義されたメンバーだけ使…

js_of_ocaml

ハマったところ幾つかメモ。Js.Unsafeは名前の通りUnsafeだった。 Js.Unsafe.variable Js.Unsafe.variableはごく普通にjs_of_ocamlが生成する関数内のスコープでが展開される。 何が起こるかというと、js_of_ocamlが生成する変数と名前の衝突が起こり、本当…

js_of_ocaml tips

make js_of_ocamlではグローバルな名前空間に関数が置かれてしまう。 また、外部の型付けの弱いライブラリを呼び出すときには、OCamlの型をつけることも難しく、Js.Unsafe.eval_stringも若干冗長。そこでOCamlで記述する範囲とは別にJavaScriptを書いて intr…

XMLVM

最近、XMLVMを触ってる。 JavaバイトコードやCILを、XMLVMの名前通りXML形式の中間表現に変換し、それをXSLTなどでC/Objective-CやJavaScriptを出力している。直近の日記がそればっかだけど、飽きずにaobenchを例にすると、Javaのコードが void intersect(In…

Js_of_ocamlでaobench

なんかAO Benchが続く。 画像処理をブラウザでやりたかったけれど、JavaScriptが1000行近くなったあたりで面倒になってきたので、http://d.hatena.ne.jp/camlspotter/20111015/1318664763を見てそのうち試そうと思ってたJs_of_ocamlを試してみた。とりあえず…