euphonictechnologies’s diary

Haskell超初心者の日記です。OCamlが好きです。

follow us in feedly

ものすごいメモ - いま注目している論文・技術資料など

かなり個人的なメモです。いま注目している論文や技術資料などです。今読んでるものと後で読むものを混在させています。 Contextual Bandit Taming the Monster: A Fast and Simple Algorithm for Contextual Bandits - Microsoft Research Thomson Sampling…

Haskell - GHC for iOS : 既存のSwiftプロジェクトにHaskellで作った関数をさくっと組み込む

動機 Swiftでそこそこ普通の大きさのアプリケーションを書いてきたのですが、いかんせん遅い。どうも配列とか構造体とかの実装がまだ成熟しておらず、超高速なAIを実装するにはコンパイラの最適化が…とかなんとか書こうと思ったんですが、ぶっちゃけ実行速度…

クールなSwift用ドキュメントジェネレーターjazzyを使った

Swiftにdoxygenが使えない Objective-Cしか対応していないことに気づきました。私は愚か者なので1ヶ月前から触ってないSwiftコードについて何も覚えていないことに気づきました。一生懸命思い出そうとするのですが、思い出せるのは初孫の名前ばかり。なので…

Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、のタッチ操作編

前回までのあらすじ Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、のシェーダコンパイラ編 - euphonictechnologies’s diaryblog.euphonictech.com 今回は やっつけハックですが、タッチに反応するようにしてみます。 完成図 画面をうり…

Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、のシェーダコンパイラ編

前回までのあらすじ Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の描画の詳細編 - euphonictechnologies’s diary Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の描画の詳細編 - euphonictechnologies’s diary …

Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の描画の詳細編

前回は描画の流れを眺めてみました XcodeのOpenGLテンプレートプロジェクトは以下の流れで描画を行うことがわかりました。 画面をクリアする モデルデータからVAOオブジェクトを作り出す モデル描画に使う行列を計算する シェーダプログラムに計算した行列を…

Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の描画編

前回までのあらすじ Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の準備 - euphonictechnologies’s diary Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の準備 - euphonictechnologies’s diary 前回はあらすじ紹…

Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の準備

動機 前回はHaskellで書いたコードをghc-iosでコンパイルして、そのバイナリをObjective-Cで書かれたレイヤから呼び出すことができました。 Haskell - GHC for iOS : iOSアプリをHaskellで開発する - euphonictechnologies’s diary Haskell - GHC for iOS : …

ルンバの修理 - ルンバがベースに戻らない

Symptom - ルンバがベースに戻らない うちのルンバが壊れました。ルンバ560という並行輸入品なのですが、ベースに戻らなくなりました。ベースに戻らないだけだとベースに問題があるか本体の問題かわかりませんが、バーチャルウォールにも反応しなくなり我が…

Haskell - GHC for iOS : cabal-iosをできるようにする

前回までのあらすじ Haskell - GHC for iOS : iOSアプリをHaskellで開発する - euphonictechnologies’s diary Haskell - GHC for iOS : iOSアプリをHaskellで開発する - euphonictechnologies’s diary 前回はデバッグアウトプットに丸を表示するアプリケーシ…

Haskell - メモ: Haskellでモバイルアプリ開発するときに必要そうな話題

Dropboxがマルチプラットフォームでやってること C++によるiOSとAndroidでのクロスプラットフォーム開発:Dropboxの教訓 C++によるiOSとAndroidでのクロスプラットフォーム開発:Dropboxの教訓 クライアントとコアコードを分けるという普通の話。 FFI周りの…

Haskell - GHC for iOS : iOSアプリをHaskellで開発する

ここ数週間ずっとswiftを書いてきたのですが、swiftは 書いていてつまらない 言語仕様がちょっと頭おかしい オフィシャル言語なのにIDEが糞 未来が見えない と、ぶっちゃけ飽きてしまったので、HaskellでiOSアプリを書くという茨の道に行ってみたいと思いま…

Haskell - ghc-modiが新しいcabalで動かない事件

2015/01/22現在、cabal 1.22とghc-modi 5.2.1.2の組み合わせではうまく動きません。 NG BUG: GMEIOException /home/rik/haskell/projects/scotty/dist/setup-config: hGetContents: invalid argument (invalid byte sequence) というエラーが出ます。 簡単な…

Haskell - SDK設定のGHCがおかしくなった時に無理矢理治す方法

IntelliJ 14にアップグレードにした記念で先のエントリのようにGHCを綺麗に入れなおしてみました。するとGHCの場所が当然ですが変わります。すると以前の設定通りの場所にはGHCが当然ないのでビルドできなくなります。 設定を変えればいいじゃないかとおっし…

Haskell - 2015年のMac + Haskell + IntelliJことはじめ、あるいはghcの再インストール

2015-08-09:この記事にはアップグレード版があります Haskell :: GHCを再インストールでアップグレードする - Mac + Haskell + IntelliJ環境構築 - euphonictechnologies’s diaryblog.euphonictech.com この記事の入れ方は今は推奨しません。上記の新しい版…

Swift - 整数型でハマる

Swiftの整数型はSwift Standard Library | Apple Developer Documentationにあるように、符号ありと符号なしの幅指定なしのInt/UIntと幅指定有りのInt32/Int64...などがあります。 こんな感じです。 Type Minimum Value Maximum Value Int8 -128 127 Int16 -…

日本語で読めるコンピュータオセロのAIに関する参考資料

日本語で読めるものに限ってみました Thell - アルゴリズム解説 リバーシソフトウェアThellの開発者によるアルゴリズムの解説。本格的なAIのための情報が非常によくまとまっているのでここをエントリポイントにしてもよいと思う。 Web archive - vsOtha リバ…

Haskellで将棋 - Small update - 探索を劇的に高速化させる方法

もしくは探索を劇的に低速化させる方法。 バックグラウンド 遅延評価パワーとか言って指し手生成部分を手前のマイクロベンチマークで2倍以上低速化させた前々回。 Haskellで将棋 - 指し手生成部を少しずつ改良していく - euphonictechnologies’s diary Haske…

Haskellで将棋 - 探索を遅延評価を駆使した形に置き換える

Haskellのパワーはなんといっても遅延評価。Ocamlから移ってきた私としては一番戸惑うのはその部分で、末尾最適化への気の払い方とかが若干違ってくる気がします。なんというか、foldl'と比べてfoldrなら必要な部分しか評価されないから無限リストも処理でき…

Haskellで将棋 - 指し手生成のスピードテストとHaskellのマイクロベンチマークライブラリ:criterion

前回は指し手生成部分に手を加えてみた。ここにあるよくベンチマークに使われている局面からの指し手生成スピードを測定して、先の変更がどれ位悪影響をもたらしているかを確認しておく必要がある。 当然のことながら一発で計算できるものを分割してリストを…

Haskellで将棋 - 指し手生成部を少しずつ改良していく

今回は、指し手生成部を2つの関数に分解する。 現在は指し手生成を駒を移動する手と持ち駒を打つ手に分けて生成しているが、これをさらに分解して 駒を打つ手 駒を移動する手のうち取る手 駒を移動する手のうち取らない手 に分解していきたい。正確に言うと…

Intellij IDEAやAppCodeが起動しない場合に考えられること

おそらくは JVMが存在しないために、起動しないはずです。まず試してみることはターミナルから起動してエラーメッセージをみることです。 $ open AppCode.app LSOpenURLsWithRole() failed with error -10810 for the file /Applications/AppCode.app. なる…

df-pnとproof number searchはじめました+雑記

オセロのAIを実装しています。 将棋を少し離れて諸事情によりオセロのAIを実装しています。将棋に少し関わりがあるので、少しメモを。 いま実装しているのは必勝読みルーチン、読みきりルーチンです。df-pnを勉強しつつ単純なpnsを実装しています df-pn探索(…

Swift - delegateを実装する、通知する、通知される

protocolの仕様は未だに不安定 Appleは未だにこの辺りの仕様をXcodeのバージョンを上げるたびにコロコロ変えているように見えます。この情報は2014/10/25日現在私がXcode ver 6.1(611052d)で確認した内容です。 delegateってどんなだっけ おさらい。デザイン…

Swiftに触ってみた

事情があってSwiftを触ってみた。さらっと覚えておくことと所感をメモしておく。 覚えておくこと Optional型はアンラップするとき基本こう使う if let unwrappedNonNilVariable = NillableVariable { something... } Optional型な引数とそうでない引数でシグ…

Haskellで将棋 - off-topic: 将棋ぶらうざQのYosemiteでの動作とHaskell将棋の設定方法(未熟編)

コメントを頂いたので早速Haskell将棋の設定方法の現状の問題点と回避方法をメモしておきます。 ついでにYosemiteにアップグレードしたので将棋ぶらうざQの動作に必要なことをさらっとメモしておきます。 Yosemiteで将棋ぶらうざQを立ち上げる Yosemiteにア…

Haskellで将棋 - 探索と指し手生成の改善について考える

現状のコード 現状の探索と指し手生成は、実際にコードを見るほうが早いので早速見てみると Search.hs: minmax :: Int -> Board.Bd -> Result minmax 0 bd = Result (Eval.eval bd) [] minmax dep bd = maximumBy (compare `on` va) nexts where nexts = map…

Haskellで将棋 - 指し手生成

指し手生成は大事 指し手生成は局面探索のために必要なルーチンで、非常に重要なコンポーネントの一つだ。 指し手生成の肝は無駄なく素早く必要な指し手を生成して探索モジュールに渡すこと。Bonanzaの指し手生成は指し手を幾つかのカテゴリに分類して必要な…

Haskellで将棋 - KKP/KPP評価関数を見てみる

今回は ボナンザ型の評価関数(ここでは単にfv.binを使ったKKP/KPP評価のことを指すことにする)、であるコードを解析していく。 コード: hamilcar/Eval.hs at master · ysnrkdm/hamilcar · GitHub KPP/KKP Kは王、Pはピースで2つの王と一つの何かしらの駒、…

SMALL GAPS BETWEEN PRIMES

素数の新定理発見 極端な偏りなく分布 米英数学者「夢のような成果」 ― スポニチ Sponichi Annex 社会 素数の新定理発見 極端な偏りなく分布 米英数学者「夢のような成果」 ― スポニチ Sponichi Annex 社会 スポニチの記事でこの発見を知ったのはどうかと思…