euphonictechnologies’s diary

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

follow us in feedly

Swift製のオセロエンジンを公開しました

Swift製オセロエンジンです 苦労に苦労を重ねて書いたおかげでとても遅くて弱いエンジンです。まだまだ若輩者です。 これは何か オセロAIとオセロ環境、あとオセロエンジンと喋るプロトコルとそれをコマンドラインで動かすためのアプリケーションです。 gith…

超かんたんなSwift on Linux用のMakefile

あると便利 gist.github.com こんなもので良ければどうぞ。 使い方 $ make # make buildに同等。ビルドします。 # コンパイルオプションで分けたりしてもいいと思います。 # make buildでデバッグ版、make build_releaseでリリース版とか。 $ make update # …

Python Redisでredis.exceptions.ConnectionError: Error 99 connecting to ~~~.com:XXXX. Cannot assign requested address.

が出た 多分大量の接続を作っては切ってを繰り返している。OSがあなたが要らなくなったポートやコネクションを開放するより早くあなたが新しいのを作ろうとしているので足らなくなっている。 対処法 全部おんなじDBへのアクセスならいちいち繋いで切ってを繰…

Linux上でSwift Package Managerを使ってビルドするときに躓いたこと

けっこう茨の道です なんかまだ「初心者でも鼻くそほじりながら日曜日にさらっとね」って感じではないです。なにせコンパイラ、Xcode、Swift Package Manager(以下SPM)すべてが日進月歩でバージョンアップしているのでウェブに書いてあることそのまま試すと…

"iOSアプリとLinuxコマンドラインアプリケーション間でライブラリを共有する"を実践した時のメモ

前回は iOSアプリとLinuxコマンドラインアプリケーションでライブラリを共有するためにSwift Package Managerをつかってライブラリを作ってそれをiOS側ではEmbedded Binariesとして、Linux側では単純にパッケージとしてリンクして使えるようにしてみました。…

iOSアプリとLinuxコマンドラインアプリケーション間でライブラリを共有する

サーバサイドSwiftって全然盛り上がってないですね なんかフロントエンド盛り上がってますがサーバサイドっていまいちそういう感じしませんね。悲しいです。フロントエンドアプリばっかり作ってるとフロントエンド脳になってまうで。 というわけで拙作のオセ…

耳にすっぽり収まるワイヤレスイヤホン「Dot Stereo」を使った!

Dot

前回は開封してみました 前回の記事では開封とか本体の様子とかを見てみました。使ってみたところ非常に満足度が高いので不況のために今回の記事を書くことにしました。Indiegogoで(めっちゃ待ったとはいえ)安く手に入れられたのは非常にラッキーでした。 bl…

耳にすっぽり収まるワイヤレスイヤホン「Dot Stereo」が来た!

Dot

Indiegogoで頼んで幾星霜 あれはクラウドファンディングつって投資なんですよね。で、株主に対するおまけとして商品を送ると。ふるさと納税の言い訳みたいですね。ともあれ楽しみにしていた超小型インナーイヤーヘッドホンDotが来ました。 Dot - World's Sma…

macOS SierraでPicture in Picture使ってYoutubeを観る

macOS Sierraになったよ アップグレード終わりまして、やっぱり新しいOSは大して変わってなくても楽しいね! Picture in Picture とは動画を右上にテレビ番組で言うワイプみたいに表示して作業中も動画みたいとかそういう機能です。 こんな感じです。 オペレ…

Mac用OmniGraffleをタダで使いたい

Mac

OmniGraffle便利です 簡単に見栄えのいいグラフとかダイアグラムが作れるのでとっても便利です。プログラマのプレゼンとかで多用されるタイプの図表が(センスが無い俺みたいな奴でも)きれいにできるのでありがたいソフトです。 ただ最近評価版の使用期限が切…

個人用メモ プログラミングのための圏論参考資料集

この記事は? 筆者が個人的に集めるプログラミングのための圏論の勉強に役立つ参考資料へのリンク等です。随時アップデートしていくことになると思います。 2016/09/08: 今のところは順序もめちゃくちゃで追加したりないものもたくさんあります。 はじめに ブ…

AtCoder Beginner Contest 038 in OCaml

ABC038をOCamlで解いてみました。 なんでOCaml? fetburner.hatenablog.com ここを見ていただければよくわかると思うのですが、OCamlは関数型言語でありながら副作用もimperativeスタイルも使える非常にバランスの取れた実践的な言語です。関数型の記述の簡明…

TopCoder SRM 694 Div2 Hard : UpDownNess

全然解けなかった。頑張って一週間かけて解いてみた。 問題 TopCoder Statistics - Problem Statement 1からNまで数字を並べるとき、並べ終わった列の中のlo-hi-loの出現数を考えます。lo-hi-loとは0<=i<j<kのときに並べ終わった列x中でx[i]<x[j]かつx[j]>x[k]となるような(要は真ん中がこんもりしてる)3つの</j<kのときに並べ終わった列x中でx[i]<x[j]かつx[j]>…

Swift 1.2から2.2でウラシマ状態 - ワーニングを撲滅する

ワーニングはエラーだ 今更かも知れませんがワーニングはエラーです。ワーニングはエラーです。ワーニングはエラーなんです。ワーニングを放置してコミットする意味がわかりません。なのでワーニングを修正していきます。 このエントリは前回のエントリの続…

Swift 1.2から2.2でウラシマ状態 - ビルドできるように修正する

久しぶりにXCodeを起動しました。 昔のプロジェクトをインポートしたところ"最新のswiftに自動で変換しますか?"と余計なお世話をぶちかましてきたのでスルーしてビルドしたところビルドエラーの嵐。後方互換性とか関係ねえからっていうAppleの教えが心に響…

HaskellからSlackにさくっとPOSTする

動機 Haskell用の強化学習クラスタを作っていてさくっとdebug printを確認したいことがあります。そんな時にそのマシンのローカルstdoutに吐いてもしょうがないのでslackにdebug printを吐きたいと思いました。ほったらかして学習させまくってる間スマホでい…

Intellijcoderでツールバーボタンが表示されなくてアリーナに入れない時の対処法

Search Everything (Shift2回) からの"arena" でサーチすると出てくる。

TopCoder SRM 667 Div1 Easy : OrderOfOperations

全然解けなかった。朝起きてもう一回やってみたら解けた。おそらく寝てる間に頑張ったのかな。 方針 bitDPを使う。全ビットのOR和がゴール状態なのでdp[ <ゴール状態> ]が答え。例えば 1110 0100 0010 ならdp[ "0b1110" ] が答え。 更新方法はstateから遷移…

ディスクイメージファイル(dmg)にかけたパスワードをAmazon EC2上でクラックする

パスワードが分からない! 昔アーカイブしたパスワード付きdmgファイルのパスワードがわからなくなってしまいました…。何とかしてクラック、いや、パスワードリカバリをしなければいけません。 おまけに手元にあるのは古いMacbook Airなのであんまりぶんぶん…

Haskell :: 2015年8月現在ghc-modをghc 7.10.2にインストールする

ghc-modは2015年8月現在、cabalでインストール出来ません。 Failed to install ghc-mod with ghc 7.10 & cabal 1.22 · Issue #437 · kazu-yamamoto/ghc-modgithub.com このissueにあるように $ cabal install ghc-mod と普通にインストールすると Language/…

Haskell :: GHCを再インストールでアップグレードする - Mac + Haskell + IntelliJ環境構築

前回の入れ方はなかったことに Haskell - 2015年のMac + Haskell + IntelliJことはじめ、あるいはghcの再インストール - euphonictechnologies’s diaryblog.euphonictech.com この方法はやっぱなしで。再インストール時に若干面倒なことになったので、もう少…

Haskell :: Snap + HerokuでRedisを使う - herokuへデプロイしてRedis Cloudと接続する

前回までのあらすじ 前回はherokuへデプロイする予定のアプリケーションをローカルで作成し、ローカルのRedisと接続してデータの読み書きができることを確認しました。 今回はそのアプリケーションをherokuへデプロイしてRedis Cloudとワークさせるための設…

Haskell :: Snap + HerokuでRedisを使う - ローカルRedisに接続する

前回はSnap + Herokuをデプロイしました Haskell - SnapフレームワークをHeroku上にデプロイして遊ぶ - euphonictechnologies’s diaryblog.euphonictech.com Hello, world!を表示することが出来ました。なので今回はデータベースを使ってみます。 Redisを使…

Haskell - SnapフレームワークをHeroku上にデプロイして遊ぶ

OpenShiftはHaskellに優しかったはずなのですが Haskell + OpenShiftでWarp + HaskellのウェブアプリケーションをPaaS上にデプロイするてはじめ - euphonictechnologies’s diaryblog.euphonictech.com この記事の通りカートリッジってのがあってそれを読み込…

Haskell - 1時間以内に解けなければプログラマ失格となってしまう5つの問題

原問題はこちら Five programming problems every Software Engineer should be able to solve in less than 1 hourblog.svpino.com なんかまたFizzBuzzの匂いがします。5番がすこしだけ篩になりそうな問題です。4番はpermしてconsしてmax取れば良いので簡単…

Haskell オセロ - Zeblaの作者謹製の終盤ソルバをMacで使う

終盤ソルバ 現在オセロは残り40手ぐらいまでは解析が終わっているらしい。出典を探してみたのだけど今すぐに見つからない。それが正しいとすると、残り40手終盤データーベースを搭載したオセロプログラム同士の対戦は24手までさしたところで勝敗が決まる。 …

Haskell オセロ - Small update - Haskellオセロ始めました

Swiftが遅いので Haskellでオセロプログラムを書いて、それをSwiftから呼び出します。一連のghc-iosの実験はそのためのものなのでした。 Haskell - GHC for iOS : 既存のSwiftプロジェクトにHaskellで作った関数をさくっと組み込む - euphonictechnologies’s…

Swift - Swift1.2のコンパイラの最適化

Swiftの言語仕様が新しくなってたのはSwift 1.2というやつだったらしい そうだとは知らずにまた開発者に告知もなく言語仕様を変えやがったのかと思っていました。アップグレードならまあ、仕方ない。 Swift - また言語仕様が変わっていやがる 2015春 - eupho…

Swift - また言語仕様が変わっていやがる 2015春

You have been warned! Swiftは開発途上の言語です というわけで、またSwiftの言語仕様がガラリと変わりまして、さっぱりビルドを通りません。ぱっと見ると17個ものビルドエラー。なーんかC->C++->Ocamlあがりの私としては言語仕様というのはバックワーズコ…

中古のHP Office Jet H470モバイルプリンタをBluetoothアダプタでワイヤレス化する

お金がない ので、高いモバイルプリンタは買えません。なので中古のHP Officejet H470を購入しました。 これ、バッテリがついていて電源は一旦充電すればしばらくコードレスで使えます。ただ、パソコンとの接続はUSBの有線接続。切ない。大きさは高さが手の…