前回の入れ方はなかったことに Haskell - 2015年のMac + Haskell + IntelliJことはじめ、あるいはghcの再インストール - euphonictechnologies’s diaryblog.euphonictech.com この方法はやっぱなしで。再インストール時に若干面倒なことになったので、もう少…
前回までのあらすじ 前回はherokuへデプロイする予定のアプリケーションをローカルで作成し、ローカルのRedisと接続してデータの読み書きができることを確認しました。 今回はそのアプリケーションをherokuへデプロイしてRedis Cloudとワークさせるための設…
前回はSnap + Herokuをデプロイしました Haskell - SnapフレームワークをHeroku上にデプロイして遊ぶ - euphonictechnologies’s diaryblog.euphonictech.com Hello, world!を表示することが出来ました。なので今回はデータベースを使ってみます。 Redisを使…
OpenShiftはHaskellに優しかったはずなのですが Haskell + OpenShiftでWarp + HaskellのウェブアプリケーションをPaaS上にデプロイするてはじめ - euphonictechnologies’s diaryblog.euphonictech.com この記事の通りカートリッジってのがあってそれを読み込…
原問題はこちら Five programming problems every Software Engineer should be able to solve in less than 1 hourblog.svpino.com なんかまたFizzBuzzの匂いがします。5番がすこしだけ篩になりそうな問題です。4番はpermしてconsしてmax取れば良いので簡単…
終盤ソルバ 現在オセロは残り40手ぐらいまでは解析が終わっているらしい。出典を探してみたのだけど今すぐに見つからない。それが正しいとすると、残り40手終盤データーベースを搭載したオセロプログラム同士の対戦は24手までさしたところで勝敗が決まる。 …
Swiftが遅いので Haskellでオセロプログラムを書いて、それをSwiftから呼び出します。一連のghc-iosの実験はそのためのものなのでした。 Haskell - GHC for iOS : 既存のSwiftプロジェクトにHaskellで作った関数をさくっと組み込む - euphonictechnologies’s…
Swiftの言語仕様が新しくなってたのはSwift 1.2というやつだったらしい そうだとは知らずにまた開発者に告知もなく言語仕様を変えやがったのかと思っていました。アップグレードならまあ、仕方ない。 Swift - また言語仕様が変わっていやがる 2015春 - eupho…
You have been warned! Swiftは開発途上の言語です というわけで、またSwiftの言語仕様がガラリと変わりまして、さっぱりビルドを通りません。ぱっと見ると17個ものビルドエラー。なーんかC->C++->Ocamlあがりの私としては言語仕様というのはバックワーズコ…
お金がない ので、高いモバイルプリンタは買えません。なので中古のHP Officejet H470を購入しました。 これ、バッテリがついていて電源は一旦充電すればしばらくコードレスで使えます。ただ、パソコンとの接続はUSBの有線接続。切ない。大きさは高さが手の…
かなり個人的なメモです。いま注目している論文や技術資料などです。今読んでるものと後で読むものを混在させています。 Contextual Bandit Taming the Monster: A Fast and Simple Algorithm for Contextual Bandits - Microsoft Research Thomson Sampling…
動機 Swiftでそこそこ普通の大きさのアプリケーションを書いてきたのですが、いかんせん遅い。どうも配列とか構造体とかの実装がまだ成熟しておらず、超高速なAIを実装するにはコンパイラの最適化が…とかなんとか書こうと思ったんですが、ぶっちゃけ実行速度…
Swiftにdoxygenが使えない Objective-Cしか対応していないことに気づきました。私は愚か者なので1ヶ月前から触ってないSwiftコードについて何も覚えていないことに気づきました。一生懸命思い出そうとするのですが、思い出せるのは初孫の名前ばかり。なので…
前回までのあらすじ Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、のシェーダコンパイラ編 - euphonictechnologies’s diaryblog.euphonictech.com 今回は やっつけハックですが、タッチに反応するようにしてみます。 完成図 画面をうり…
前回までのあらすじ Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の描画の詳細編 - euphonictechnologies’s diary Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の描画の詳細編 - euphonictechnologies’s diary …
前回は描画の流れを眺めてみました XcodeのOpenGLテンプレートプロジェクトは以下の流れで描画を行うことがわかりました。 画面をクリアする モデルデータからVAOオブジェクトを作り出す モデル描画に使う行列を計算する シェーダプログラムに計算した行列を…
前回までのあらすじ Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の準備 - euphonictechnologies’s diary Haskell - GHC for iOS : OpenGLで3Dグラフィックスを表示してみる、の準備 - euphonictechnologies’s diary 前回はあらすじ紹…
動機 前回はHaskellで書いたコードをghc-iosでコンパイルして、そのバイナリをObjective-Cで書かれたレイヤから呼び出すことができました。 Haskell - GHC for iOS : iOSアプリをHaskellで開発する - euphonictechnologies’s diary Haskell - GHC for iOS : …
Symptom - ルンバがベースに戻らない うちのルンバが壊れました。ルンバ560という並行輸入品なのですが、ベースに戻らなくなりました。ベースに戻らないだけだとベースに問題があるか本体の問題かわかりませんが、バーチャルウォールにも反応しなくなり我が…
前回までのあらすじ Haskell - GHC for iOS : iOSアプリをHaskellで開発する - euphonictechnologies’s diary Haskell - GHC for iOS : iOSアプリをHaskellで開発する - euphonictechnologies’s diary 前回はデバッグアウトプットに丸を表示するアプリケーシ…
Dropboxがマルチプラットフォームでやってること C++によるiOSとAndroidでのクロスプラットフォーム開発:Dropboxの教訓 C++によるiOSとAndroidでのクロスプラットフォーム開発:Dropboxの教訓 クライアントとコアコードを分けるという普通の話。 FFI周りの…
ここ数週間ずっとswiftを書いてきたのですが、swiftは 書いていてつまらない 言語仕様がちょっと頭おかしい オフィシャル言語なのにIDEが糞 未来が見えない と、ぶっちゃけ飽きてしまったので、HaskellでiOSアプリを書くという茨の道に行ってみたいと思いま…
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) というエラーが出ます。 簡単な…
IntelliJ 14にアップグレードにした記念で先のエントリのようにGHCを綺麗に入れなおしてみました。するとGHCの場所が当然ですが変わります。すると以前の設定通りの場所にはGHCが当然ないのでビルドできなくなります。 設定を変えればいいじゃないかとおっし…
2015-08-09:この記事にはアップグレード版があります Haskell :: GHCを再インストールでアップグレードする - Mac + Haskell + IntelliJ環境構築 - euphonictechnologies’s diaryblog.euphonictech.com この記事の入れ方は今は推奨しません。上記の新しい版…
Swiftの整数型はSwift Standard Library | Apple Developer Documentationにあるように、符号ありと符号なしの幅指定なしのInt/UIntと幅指定有りのInt32/Int64...などがあります。 こんな感じです。 Type Minimum Value Maximum Value Int8 -128 127 Int16 -…
日本語で読めるものに限ってみました Thell - アルゴリズム解説 リバーシソフトウェアThellの開発者によるアルゴリズムの解説。本格的なAIのための情報が非常によくまとまっているのでここをエントリポイントにしてもよいと思う。 Web archive - vsOtha リバ…
もしくは探索を劇的に低速化させる方法。 バックグラウンド 遅延評価パワーとか言って指し手生成部分を手前のマイクロベンチマークで2倍以上低速化させた前々回。 Haskellで将棋 - 指し手生成部を少しずつ改良していく - euphonictechnologies’s diary Haske…
Haskellのパワーはなんといっても遅延評価。Ocamlから移ってきた私としては一番戸惑うのはその部分で、末尾最適化への気の払い方とかが若干違ってくる気がします。なんというか、foldl'と比べてfoldrなら必要な部分しか評価されないから無限リストも処理でき…
前回は指し手生成部分に手を加えてみた。ここにあるよくベンチマークに使われている局面からの指し手生成スピードを測定して、先の変更がどれ位悪影響をもたらしているかを確認しておく必要がある。 当然のことながら一発で計算できるものを分割してリストを…