タグ

ブックマーク / blog.wktk.co.jp (7)

  • Deep Learningを用いた将棋プログラムGunyanzaを公開しました

    ディープラーニング(深層学習)というのが流行っているそうです。すべての人類はディープラーニングによって実現されたAIに隷属する未来なんですってよ!!! こわーい。 そんなバラ色の技術、いっちょかみしておきたいですよね。 さて、オフィスで社長とダベっていたところ、「将棋プログラム面白そうだよね」という話になりました。お互将棋プログラムを作って闘わせようぜ、いぇー、と盛り上がり、勢いでコンピュータ将棋選手権に申し込みまでしてしまいました。 そんな経緯で、ディープラーニングをミリしら(=1ミリも知らない)な僕が、試しにディープラーニングを使って将棋AIを書いてみたらいいやん、と思いついたのでした。将棋も、ハム将棋でハム8枚落ちで負けるレベルくらい。ダメじゃん。 ミリしらなので、「チェスで何かやってるヤツがいるだろう」とアタリをつけてググった結果、Erik Bernhardssonさんによる d

    Deep Learningを用いた将棋プログラムGunyanzaを公開しました
  • CoreからRubyのバックトレースを表示するgdbruby.rbを作った

    gdbperl.plというスクリプトがあります。そんkする樋口証さん作の、gdbを操作してPerlのプロセスのバックトレースを取るツールです。生きているプロセスだけではなく、coreを取っておけばそのcoreからバックトレースが取れるのが特徴です。 gcoreというコマンドが/usr/binあたりにあって、これを使えば走っているプロセスのcoreを取得することができます。よって、番環境で気軽にcoreを取ってgdbperl.plにかけることによって、刺さっているポイントを見つけたりすることができます。超便利。 くわしくは、Perlスクリプトをgdbでデバッグを参照ください。 んで、その便利なgdbperl.plをRubyに移植してみました。その名もgdbruby.rb。単純。 gdbruby.rb 使い方とか Rubyはデバッグシンボル付きのものをご用意ください。 生きているプロセスにア

    CoreからRubyのバックトレースを表示するgdbruby.rbを作った
  • EditorConfigがなかったら、心がグシャグシャになってしまうなぁ。

    昨今、プロジェクトごとに言語のバージョンや、各種設定、ライブラリを使い分けることが当たり前となってきている。 上記のような使い分けは、Visual Studio/Eclipse/Xcodeなど、IDEにひもづいたプロジェクトファイルがある環境では当たり前だった概念ではある。プロジェクトディレクトリトップに.xxxconfig的なファイルを置くという手法がデファクトスタンダードとなったことによって、コマンドライナー(ライフライナー的)たちの間でもそういった文化が広がりつつあると捉えている。 プログラミング言語について、Rubyのrvm/rbenvのように、複数のバージョンの実行系を気軽に切り替えられるようになってきている。また、Rubyのrvmでは.rvmrc、rbenvでは.rbenv-versionというファイル名で設定を記述していたものを、両者とも.ruby-versionというファイ

    EditorConfigがなかったら、心がグシャグシャになってしまうなぁ。
    hide_o_55
    hide_o_55 2013/09/05
  • Digest::BLAKE2作成で学ぶモダンPerl XSモジュール作成と、挫折

    Perlを3行書くと死ぬ奇病にかかってはや数年、毎日青息吐息で出社している僕です。一番好きな言語はC言語です。裏切らないから。 というわけで、裏切らないC言語でPerlのモジュールがかければ死ぬ可能性が低まるのではないか、という仮説のもとに、XS module作成を習作してみよう。 BLAKE2というとよさげなハッシュアルゴリズムがあるので、それをPerl module化してみた。 https://github.com/gunyarakun/p5-Digest-BLAKE2 http://search.cpan.org/~gunya/Digest-BLAKE2/ ベンチマーク まずはベンチマークから。 BLAKE2には4つのアルゴリズムがあるが、マルチプロセス版はセグフォしたので、BLAKE2bとBLAKE2sのみ。 BLAKE2bは64bit CPUで高速に動き512bit出力。BLAK

    Digest::BLAKE2作成で学ぶモダンPerl XSモジュール作成と、挫折
  • 危なくないgitこと、うちのチームのgit戦略草案(ver. 2)

    履歴 恥を忍んで記事を公開させていただいたおかげで、いろいろフィードバックいただきました。フィードバックを取り込んで更新を行なっています。 2012/11/16: cherry-pickしやすいように、というくだりのところは論理通ってないので削除しました。 1 pull req. 1 commitの原則をやめました。言いたいことであった「試行錯誤の過程を入れないで」を丸パクリしました! > id:kazuho その他表記修正、クリアコードさんの記事に説明丸投げなど。 まえがき gitでトラブった!という話を何度か聞いたことがあります。なんでトラブッてるんだろう…と話を聞いたところ、同一のリモートブランチに対して複数人・複数環境から操作が行われているようです。極端な例を挙げると、masterブランチしか存在しておらず、コミットログをキレイにするためと称してgit pull –rebaseを常

    危なくないgitこと、うちのチームのgit戦略草案(ver. 2)
  • Scala + MongoDB + Herokuで2chクローンを作る(連載第1回)

    人生で3回2chクローン掲示板システムをプログラムし、運用したことがある。 まずはじめは、C++。boostを使ってテンプレート満載な構成だった。VC6でコンパイルできないパターンがあって泣いたっけ。コンパイルの「遅さ」にほくそ笑んでた。あの頃は若かった。 そのコードを使って東京工業大学掲示板というWeb掲示板システムを運用していた。C++では機動的な新機能開発が難しいことを、すぐに思い知った。当時使ったことがなかったPHPで試しにリライトしてみた。数時間で開発できちゃった。すぐリプレイスしちゃうよね。 ニコニコ大百科というWikiシステムを書いたときにも、付随する2ch式の掲示板システムを書いた。Rubyだった。Rubyで実用的なWebアプリケーションを書いたことがなかったが、これも難なく実装することができた。UTF-8を採用したので、トリップの互換性を取るのが面倒だった。 Python

    Scala + MongoDB + Herokuで2chクローンを作る(連載第1回)
  • MySQL Casual Talks #2で発表しました

    MySQL Casual Talks #2にて発表してきました。「超カジュアルに使うMySQL」という内容で、いつものごとくジョーク枠担当です。 発表資料は以下のとおりです。 超カジュアルに使うMySQL @ MySQL Casual Talks #2 View more presentations from Tasuku Suenaga

    MySQL Casual Talks #2で発表しました
  • 1