cabal sandbox環境のpackage DBを参照する

cabal-install-1.18 がきた.全国のHaskeller待望のcabal sandboxが使える.cabal-devさん今までありがとう.さようなら. この記事は余計なことをしている可能性があります! さて,テスト時にプログラムをビルドする必要があるとする.これは*.cabalファイ…

ICFP Programming Contest 2013

今年ものとがわさんパンピーやった(1年ぶりn度目) 問題はここ.64bit非負整数に対する限られた関数と単純なlambda式からなるプログラムがコンテストサーバ側にいっぱいあってIDが付いている.サーバ側にある各プログラムの具体的な形はわからない.プログラ…

anarchy proofのAgda版作った

全国一億三千万のAgdarの皆様に送る Agda Challenge最近chaton haskellがchaton agdaと化していたりすることもあり,anarchy proofがうらやましくてAgda版が欲しい人いっぱいいるのではないかと思って作ってみた.開発中にステージング環境を作り近くの数人…

Agdaとフォントと微妙な設定

Agda書くとみんなフォントに困る…と,思う.Agda標準ライブラリの時点で_⊔_とか_⊎_とか⟨_⟩とか普通のランゲッジでは使わないような文字入りの演算が目白押しだ.当然下手なフォント設定すると正しく表示されない.プログラミングに適したmonospaceのフォント…

ghcjsをhardened profileのGentooにインストールするには

今年もよろしくおねがいします. 大晦日にghcjsのREADMEが更新され,ghc-7.6ベースになったり,これまで煩雑だったインストール作業がスクリプト化されたりするなど,いろいろと変更があった.実にはタイミングの悪いことに,このREADME更新が行われる直前,…

fluent-logger-haskell作った

なんかイマサラだけど,少し前にfluent-loggerのHaskell版と,そのconduitインターフェース版を作った. fluent-logger fluent-logger-conduit Haskellからfluentdにポンポンとイベントログ吐ける.以下,process-conduitとcsv-conduitでdstatの出力を吐き出…

Hackage2によるインハウスパッケージサーバを試す

この記事は Haskell Advent Calendar 2012 15日目の記事です. みんな何かヨサゲなもの作ったら hackage に upload してシアワセおすそわけしてると思う.ああ,すばらしきこのせかい.ユウジョウ!が,たとえば,オシゴトとかでソースをオープンにせずに Ha…

孤独のHaskell

孤独のHaskellに行ってきた.ので,感想とそのフォローアップになりそうなことを書く.とてもいい会だったように思う.遅刻して現場に付いたらRLEしてみようという例題("AABBCCC"を"A2B2C3"にする関数を書こう)をやっていて, id:khibino0 さんがおもむろに …

sigma.jsでhackageのパッケージ依存関係を視覚化する

sigma.jsを使ってみたかったので,hackageの(baseを除外して)パッケージ依存関係を視覚化してみた. 頂点(=パッケージ)数が多くてForceAtlas2による頂点配置がある程度安定するまでが長いしFPSも低い.でもまぁじっと待ってればそれなりになる.最初は各パッ…

Boost.Preprocessorを使う

ghcはC preprocessorを使える.となると,より一層強力なマクロを求めてBoost.Preprocessorを使ってみたくなるかもしれない.いや,やっぱそんなことないかもしれない.ともかくサンプルコード {-# LANGUAGE CPP #-} {-# OPTIONS_GHC -F -pgmF ./cpp.sh -I/u…

第4回 スタートHaskell2

第4回 スタートHaskell2でLightning Talkしてきた.LTとはいえ自分しか枠使う人いなかったので,ゆったり時間使わせてもらえた.主催陣に感謝.ちょうどIOの回だったので(というかここまで来るのを待ってLT枠もらったので),ごるふ場への勧誘という意図でふ…

ICFP Programming Contest 2012 Result

結果,Lightningは何故かエントリーされてなかった(投稿ミス?).MainはRound1を99位通過,Round2もあまり変わらず100位で敗退.どうもSIGINTのハンドル周りでスコア0死したチームが多かったみたい.合掌.今回のように公式の用意した実行環境を試せない場合…

AtCoder Regular Contest #006

結果ABC3完300点. A 前回もこのミスやったが今回も出力末尾改行が必要というAtCoder自体の仕様を完全に忘れていて1WA.あなごる病かも.http://arc006.contest.atcoder.jp/submissions/33407 B foldrで下からアタリ位置を上げていった.http://arc006.conte…

bashのプロンプトにブランチ名を右寄せ表示する

.bashrcとかで以下のように設定 function length() { echo -n ${#1} } function init-prompt-git-branch() { git symbolic-ref HEAD 2>/dev/null >/dev/null && echo "($(git symbolic-ref HEAD 2>/dev/null | sed 's/^refs\/heads\///'))" } if which git 2…

ghc-modのflymakeエラーをミニバッファに表示する

(2014/04/05追記) この記事の内容はghc-mod-4以降では通用しなくなりました.私のようなNo Window派のEmacs使いにとってはエラー・警告がミニバッファに出てくれないと正直困る.もしかするとWindowモードではM-n/M-p時にポップアップとかしてくれてるのかも…

ICFP Programming Contest 2012

去年に続いて今年ものとがわさんパンピーやった…(恒例)問題はここ.落盤や浸水やヒゲなど複雑な形状を持ったLambda鉱床からLambda資源を掘り出すLambda探索ロボットを作るというもの.コンテスト開始時に与えられた障害要素の他,コンテストが進んでいくと前…

Kyoto University Programming Contest 2012

結果ABCDE完+J部分点で503点の84位.後半は大幅に時間余らせてプレイ放棄.Haskellでvectorとかmonad-memo使えないのキビシイ. A 誤差内に倍数でおさまる砂時計を探すのみ.許容レンジの最大を時間で割ってもっかい時間をかけた値が許容レンジの最小以上な…

AtCoder Regular Contest #005

結果ABC3完300点.AとCでとてもくだらないWAくらったので問題良く読め自分.ところでAtCoderは難易度傾斜配点しないのだろうか? A こんなのにWAった.まず出力末尾改行が必要というAtCoder自体の仕様を完全に忘れていた.次に末尾に'.'が付くことがあるとい…

AtCoder Regular Contest #004

結果ABC3完300点の45位.とくになにも言うことない. A データが小さいので総当たりでいい.http://arc004.contest.atcoder.jp/submissions/23166 B 最長はまぁ総和で,最短は三角形を構成するに足るかを調べる.http://arc004.contest.atcoder.jp/submissio…

Gentoo Haskell Overlay 使うときの基本的な設定

最近なにやらDebian勢が「Haskell使うならDebian」と猛プッシュしてきててアレなので,Gentoo勢としての話を少々.Debian勢が現時点のcabalが持つ脆弱なhackage間依存性解決やcabalが干渉できないhackage外パッケージとの依存性解決をaptでカバーしているよ…

やったーHaskellの動くMySQLできたよー

やったー○○の動くMySQLできたよーシリーズ JavaScript mruby を見て.このネタは自分にもできそうだなーと思って,Haskellの式を評価するMySQL UDFを作ってみた.mysql-haskell-plugin mysql> select hs_eval('sum [1 .. 10]'); +--------------------------…

GTALibでTSP

GTALibでは,ライブラリ側の提供してくれるJoinListのGeneratorが「そういう形」になっているため,それらのGeneratorを使ってればDP化及び並列化がかかる.segs,inits,tailsなどはどれも組化リスト準同型で効率的に構成でき,これらのGeneratorもそのように…

Google Code Jam 2012 Round2

だーめーだー.ASのみでグズグズ.A,Bは十分取れた問題だったので悔しいところ. A ターザンのようにツタを渡ってむこう岸まで行けるか問題.サンプル3が怪しいけどツタとツタの間まで両方のツタを引いて次へ繋げられるのを読み飛ばしていた.最初greedyかと…

Google Code Jam 2012 Round1A/B/C

まさかR1全部やるハメになろうとは.R1を一発パスしなかったのって始めてかも. R1A 1062位でギリひっかからず.AS,AL,BS,BL獲ってスコア的にはボーダー上だったのだが,時間負け.特に妙なハマりがあったわけでもなく問題自体も大して難しくはなかったが,…

AtCoder Regular Contest #002

まだ終わってない時間から書き出すなど.Dメンドそうなんだもん.結果3完300点の147位,CでくらいまくったWAペナが痛い. A とくになし.書くだけ.http://arc002.contest.atcoder.jp/submissions/6983 main=readLn>>=putStrLn.isLeap isLeap n | 0 == mod n…

libift

Branch Coverage 100% とかって戸愚呂弟めいた条件に対し,mallocとかfopenとかそういうやつの失敗ルートをどう確認する?みたいな話が出ることがあると思う.define置換する方法とかあるみたいだけど,余計な場所まで根刮ぎ失敗させちゃったり,別のmalloc…

Time Limit Exceeded 2012

TLEに今年は3時間しか参加できてない.ヒドイ!みんなもっと私にやさしくするべき.いつにも増してザックリな運営だったような気がする.CfP来なかったから直前に公式サイト(1年の塩漬けブックマーク)にアナウンスされるまで日程わからなかったし.ま,わか…

ダイアリーからのインポート機能無い?

puttyへの細工とoperational monadでputtyをマクロ操作する

私の昼間の仕事は残念なことにHaskellとはまだ距離のある分野であろう組み込み屋さんに分類される.当然シリアルコンソールを叩く機会が多い.ターミナルとしては周囲ではTeraTerm様が幅を利かせている.というかTeraTerm様以外を使ってシリアルコンソールに…

ccscope-1.0.0

最近,昼間の仕事で他部署の出してきた酷いCコードのデバッグ&スピードチューニングしなきゃならないことが多くてムスカ状態.目がー.目がー.まぁ,ソレはソレとして,CやC++のプロジェクト読むとき皆GNU globalとかcscopeとかタグリファレンスツールを使…