読者です 読者をやめる 読者になる 読者になる

北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

今日はYAPC::Asia Tokyo 2013の1日目です

一日目です。今日もgihyo.jpさんのスペシャルレポートにレポーターとして参加しています。

今日はYAPC::Asia Tokyo 2013の前夜祭です

今年もYAPC::Asia Tokyoの季節がやって参りました。今年の会場は慶應義塾日吉キャンパスです。夕方から始まる前夜祭から参加する予定ですので、いつものように適当にメモをとっていきます。今年もgihyo.jpさんのスペシャルレポートにレポーターとして参加し…

今日は 圏論勉強会 第13回 の日です

元祖圏論勉強会ではない方の圏論勉強会 第13回の最終回です。資料とustreamは公開されています。 ワークスアプリケーションズさんに感謝 三脚復活してる! 第13回: 随伴・モナド / 講師 @9_ties さん 「モナドが途中で終わるのは嫌でしょう」「随伴を説明し…

今日は 圏論勉強会 第12回 の日です

木曜日なので圏論勉強会ではない方の圏論勉強会 第12回に来ています。資料とustreamは公開されています。 ワークスアプリケーションズさんに感謝 ついに三脚が貸してもらえなくなった 第12回: 自然性・米田の補題 / 講師 @9_ties さん 圏論は自然性の記述の…

今日は 圏論勉強会 第11回 の日です

毎度おなじみ、圏論勉強会ではない方の圏論勉強会 第11回に来ています。資料とustreamは公開されています。 ワークスアプリケーションズさんに感謝 第11回: 指数対象・デカルト閉圏 / 講師 @9_ties さん 今日からはがらっと話が変わるので、前回までの話は忘…

今日は 圏論勉強会 第10回 の日です

今週も圏論勉強会ではない方の圏論勉強会 第10回に来ています。資料とustreamは公開されています。 とびいりの話は大歓迎なので、面白い話がある人は面白くなくても言って下さい 13回目もやる(12回だとモナドに入れない。最終回はモナド) ワークスアプリケー…

採択されればYAPCで話すつもりの型の話について

今年のYAPC Asia 2013にはTypes and Perl Languageというタイトルで話をしようと申し込んだのだけど、リジェクトされそうな気しかしないので話そうとしていることの概要を書いておく。なお、トークのタイトルは名著TaPLのオマージュである*1。以下のGoのコー…

今日は 圏論勉強会 第9回 の日です

前々回ぶりに圏論勉強会ではない方の圏論勉強会 第9回に来ています。資料とustreamは公開されています。 ワークスアプリケーションズさんに感謝 前回の練習問題の回答を作りますのでお楽しみに 第9回: 領域理論・不動点意味論 / 講師 @9_ties さん 意味論は…

今日は 圏論勉強会 第7回 の日です

圏論勉強会ではない方の圏論勉強会 第7回です。資料とustreamは公開されています。 司会の方がワークスアプリケーションズ社を退社されたので今回からバトンタッチ 後半第一回目 第7回: 様々な極限 | 代数的データ型 / 講師 @9_ties さん 1時間で話せる内容…

今日は第一回 ゆるふわHaskell入門会の日です

第一回 ゆるふわHaskell入門会に来ています。Hackathonがメインですが、トークもボチボチありますのでメモります。 究極の手続き型言語Haskell / @fumieval さん 関数型言語とは 関数を自在に操作、組み合わせて記述 手続き型とは 手続きを自在に組み合わせ…

今日は 圏論勉強会 第6回 の日です

圏論勉強会ではない方の圏論勉強会 第6回です。資料とustreamは公開されています。 第6回: 積・余積・極限 / 講師 @9_ties さん 普遍性の概念によって定義される極限と余極限について 終対象 任意の対象から射がひとつだけ存在 同型を除いて一意 1と1'があれ…

JITで爆速なgperlを試す

Linux Mint上でgperlをビルドした。原則、ないと言われたものをどんどんaptで入れてっただけだけど、jit/jit.hがないって言われてそいつだけaptで解決できなかったのでこのPostScriptのファイル読んでlibjitをビルドした。これで万事うまくgperlが作れたので…

今日は 圏論勉強会 第5回 の日です

圏論勉強会ではない方の圏論勉強会 第5回です。資料とustreamは公開されています。 今日は倚子が追加された ワークスアプリケーションズ社さんに感謝しましよう 第5回: 様々な射 / 講師 @9_ties さん Hom集合についての補足 A言語とB言語のトランスレーターt…

私のHom関手暗記法

圏論勉強会 第4回のHom関手で悲鳴が上がってたので補足してみる。Hom関手がなんであるかは@9_tiesさんもおっしゃっていたようにひたすら手を動かすしかなくて、圏論を覚えたいのであればしっかりと復習する必要がある部分なのは間違いない。とは言え、効率の…

今日は 圏論勉強会 第4回 の日です

圏論勉強会ではない方の圏論勉強会 第4回にまたやって来ました。資料とustreamは公開されています。 ワークスアプリケーションズ社に入ると、リハーサルも見れてお得だよ! 第4回: 射で考える / 講師 @9_ties さん 様々な概念を圏論の言葉のみで述べる 今日…

Configuring Linux Mint on LaVie Z

インストールが終わったので設定メモ(随時更新)。 日本語化 ここ。 様々なアプリでEmacsキーバインディング 以下みたいな感じ。(ほんとはdconf Editor使ったけど) $ sudo apt-get install dconf-tools $ gsettings set org.mate.interface gtk-key-theme Ema…

Installing Linux Mint on LaVie Z

LZ750/LSを中古で買ってLinux Mintを突っ込んだメモ。ちょっと前のエントリだけど、UEFI Secure Boot と Linux の微妙な関係を読めば今はちょうどブートローダー周りの過渡期にあるということが分かる。なので、普通に作業するとインストールディスクが起動…

第3回Tech Compassへ行ってきた

マイナビさん主催の勉強会に参加してレポートを書いてきました。大変面白い内容でしたので、興味がある方は以下からどうぞ。 2013年5月22日に開催したTech Compassでは、大前広樹(@pigeon6)氏、白石俊平(@Shumpei)氏、増井雄一郎(@masuidrive)氏の3方名をプ…

今日は 圏論勉強会 第3回 の日です

圏論勉強会ではない方の圏論勉強会 第3回に来ました。資料とustreamは公開されています。 今回からヘッドセット完備 中高生も見ているらしい(のでプログラミング以外のネタも) 第3回: 様々な圏 / 講師 @9_ties さん 視野が狭くならないよう、プログラムに関…

自由マグマを自由対象の定義の図で書くと

圏論勉強会 第3回の自由対象で悲鳴が上がってたようなので、参考までに図に書いて説明しておく。まず、マグマと自由マグマを以下のように定義する(というか、勉強会においてこう定義していた)。 class Magma a where magappend :: a -> a -> a data FreeMagm…

自由モノイドとFreeモナド

以前、モナドは自己関手圏におけるモノイドであるという話をしたことがあるのだけど、この時は理解が足りなくてFreeモナドにまで踏み込めなかった。今日調べていたら、Free Monoid Objectsというわかりやすいエントリを見つけたので簡単に紹介。まず、以前の…

今日は 圏論勉強会 第2回 の日です

圏論勉強会ではないモノイド勉・・・いや、圏論勉強会 第2回に来ました。資料とustreamは公開されています。 第2回: モノイド・群 / 講師 @9_ties さん モノイド、圏は計算機に必要な概念 対象が1つの圏。シンプルだけどシンプル過ぎない圏 約束: 自然数は0…

fmap head VS sequence

sequenceを使えば、複数個あるモナド値を1つのモナド値に集められる。 xs :: (Functor m, Monad m) => m [()] xs = sequence [return x' | x' <- [(),()..]] xsはモナドに包まったリストなので、fmapを使ってheadを持ち上げれば先頭要素がとれる。 x :: (Fun…

今日は 圏論勉強会 第1回 の日です

圏論勉強会ではない圏論勉強会 第1回に来ました。資料とustreamは公開されています。 @seizans さんより ekmett勉強会でekmettさんが圏論勉強するといいよというから開催 日本始まったな 講師 @9_ties さん 圏論だけではなく、圏論を題材に色んなことを学ぶ…

スツルムの定理の直感的な解説

昨日の計算機代数勉強会で代数的実数の実装のために出てきたスツルムの定理、共立出版の数値解析でも近似値の算出に使っており、証明も詳しく載っている。互除法だけではなく3重対角行列の主小行列式がスツルム列をなすことを使って固有値の算出をしたりもし…

今日は Haskellで計算機代数勉強会 の日です

せっかくのGWなので、朝からHaskellで計算機代数勉強会に来ています。内容が内容なので正確性は保証できませんが、自分用のメモということで。 HALでもわかるGröbner基底 / @mr_konn さん グレブナー基底 高次連立方程式、初等幾何、統計ロボティクス、計算…

第2回Tech Compassへ行ってきた

マイナビさん主催の勉強会に参加してレポートを書いてきました。イベントの詳細は以下からどうぞ。 閑歳孝子(@kansai_takako)氏と和田裕介(@yusukebe)氏をプレゼンターとして招き、人気のあるWebサービスはどのように作られるのかというテーマでディスカッシ…

今日は「データベースは圏なんだよ!の会」の日です

中原市民館に来ております。データベースは圏なんだそうです。SGL読書会の姉妹イベントです。 Databases are categories by Spivakさん / @bonotakeさん Spivakさんのスライドの解説です。 情報の世界の coherence の欠如を解決するためにフレームワークが必…

QAハッカソンでTest::BangAwayってモジュール書いた

Perl QA Hackathon 2013 Satellite at Tokyo なるものに参加してきた。こういうイベントで貢献できるガラではないのだけど、開催場所が自分の職場だったのでお邪魔させてもらった。MillaとMinilla周りの話題が熱い中、前々から作ってみたかったQuickCheckも…

"圏論とかモナドなんて簡単だからscalaを使って説明してみた"を検証してみた

射っていうのはscalaだと単なる関数だし、関手はmap、モナドはflatMapなだけです。これのどこが難しいというのでしょう。圏論とかモナドなんて簡単だからscalaを使って説明してみた 内容について考えてみよう。 圏の定義? trait Cat { type A type B def f:…

今日はekmett勉強会の日です

ekmett勉強会に来ています。ekmettさんがオンライン参加されています。 I love profunctors. They're so easy / liyanghuさん 傘を指し棒に使うと言う斬新なプレゼン。詳細はこちら。 HaskellのFunctorは共変 Predicate (a -> Bool) は Functor ではない (半…

第1回Tech Compassへ行ってきた

マイナビさん主催の勉強会に参加してレポートを書いてきました。イベントの詳細は以下からどうぞ。 3月19日に竹橋で開催された第1回Tech Compassでは、伊藤直也(@naoya_ito)氏と山本裕介(@yusuke)氏をプレゼンターとして招き、このテーマで議論がなされた。…

今日は Hokkaido.pm#9 の日です

実家に帰るついでに、久々にHokkaido.pmへふらっと立ち寄ります。マイクスタンドを借りたのでライブコーディングでも安心です。 cpanfile / @aloelight さん cpanファイルとは? Ruby Gemfileの移植 依存モジュールのバージョン cpanmとcartonで利用可能 ア…

Class::Accessor::TrackDirty っての書いた

KVMにハッシュ的なデータ構造出し入れするのに、O/Rマッパーのエンティティみたいにプロパティが変わったかを追っかけて必要なときだけ保存したかったんだけど、良さげなのを見つけられなかったので自分で Class::Accessor::TrackDirty て名前のClass::Acces…

Parsecのソースちら見(1)〜(3)

Parsecのソース読んでQiitaにメモった。 Parsecのソースちら見 Parsecのソースちら見(2) Parsecのソースちら見(3) 最初に全体構造さえ掴めれば比較的読みやすい内容。 let ... in がhaskellにしては多いのかなと思ったのだけど*1、もしかすると作ってるのOCa…

((weak )?head )?normal formの違いってなんなの

以下、拾い読みした感じこうなのかなあってのを書いただけだからあってるのかよく知らない。例えば簡約前がこうだとすると、 (λxy.(λz.y((λu.u)z))x)vweak head normal form はλ抽象された中身のλ式は簡約しなくてよい。 λy.(λz.y((λu.u)z))vhead normal for…

擬リスト

最近関数プログミラング入門を読んでるのだけど、擬リストって概念が新鮮だったのでメモ。 関数プログラミング入門 ―Haskellで学ぶ原理と技法―Richard Bird 山下伸夫 予備知識 擬リストの話をするのに必要な概念がボトムとか正格性とか。ボトムとは値の1つで…

2012年にニートになったこと

2012年のまとめとして、今年ニートになったことをまとめておく。 経緯 3月に転職して新しい職場に勤め始めたのだけど、業務内容が合わなくて適応障害を起こしてしまった。具体的には、マニュアルに従って進める大量の単純作業が合わなかったんだと思う。早朝…

Stateモナドとオブジェクト

面白くもなんともないParsonオブジェクト。 package Parson; sub new { my ($class, $self) = @_; bless $self => $class; } sub change_name { my ($self, $name) = @_; $self->{name} = $name; } sub get_name { my ($self) = @_; $self->{name}; } my $p …

命令型言語Haskell

※これはHaskell Advent Calendar 2012の12/12分の記事です。こんにちわ、Perlのプログラマの@hirataraです。関数型言語はまともに使ったことがないので、命令型言語の話を書きます。

今日は『Webサービスのつくり方』出版記念イベントの日です

仕事をサボって『Webサービスのつくり方』出版記念イベントに来ていますので、適当にレポートします。結局ゆーすけべーさん不在のまま始まりました(笑)。 今日の進め方 → 参加者が紙に書いた質問に全て答える けんすうさんの案らしい ゆーすけべーさん登場 …

Re: C vs Python vs Ruby vs Haskell(無意味な処理deベンチマーク)

C vs Python vs Ruby vs Haskell(無意味な処理deベンチマーク)のコードをHaskell でなるべくC実装に忠実に書いて、オーバーヘッドを見てみた。 {-# LANGUAGE ScopedTypeVariables #-} import Control.Monad import Data.Array.IO import Data.IORef revers…

rebaseとrebase -iの挙動は違うっぽい

git

どっちの挙動も間違ってないだろうってのはわかるんだけど、それぞれで挙動が違ってるのは悲しい。git rebaseの方の挙動は(間違ってないだろうってのは置いておいて)罠だし。 % git --version git version 1.7.9.6 (Apple Git-31.1) ※masterとtopicを準備 % …

MonoidもMonadもモノイドだって話

わかめのモナド浸しと第6回 スタートHaskell2で「モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?」という話をしてきた。スライドは以下。 モナモナ言うモナド入門 *1 モナモナ言うモナド入門.tar.gz .tar.gz の方はHaskellでの説明だ…

git log --first-parentのすゝめ

git

かなり長い間 git svn を使わざるを得なかった愛用していたこともあって、個人的に git log --first-parent が大好きなんだけど、ふとググったらHamanoさん自らが素晴らしいエントリを書いてたので紹介。 Depending on the work style of their project, som…

オフラインリアルタイムどう書くの参加者が事前にやっておくべき1つのこと

満員御礼の第5回 オフラインリアルタイムどう書く。問題が事前公開されていないために参加してからじゃないとコードを書き始められないと思っている参加者がほとんどかもしれない(自分も含めて:p)けど、事前にやっておくべきことが1つだけある。それは何かと…

「プログラム意味論」が面白かった

ずーっと前から読みたかったけど絶版になってしまって読めなかった本が復刊。 プログラム意味論 (情報数学講座)横内 寛文 最初はラムダ計算とコンビネータ理論から入り、3章で領域理論について解説する。posetの取り扱いとか最小不動点定理とかまともに学ん…

JSON::XSで作られる浮動小数点数でハマった話

JSON::XSを使うと、小数は浮動小数点数にパースしてくれる。 use JSON::XS qw(decode_json); my ($double) = @{decode_json("[0.6]")}; この値、printすると "0.6" なのだけど、0.6とイコールではない。 print $double, "\n"; # 0.6 print +($double - 0.6),…

今日はYokohama.pm #9の日です

残念ながら横浜市民ではなくなりましたが、Yokohama.pm #9に参加しています。USTはこちら。

PerlによるFreeモナドの実装

悟りを開けると話題のFreeモナドをPerlで実装した。実装はこちら。 Freeモナドとは? モナドの性質の1つとして、flatten : TTX → TX (または join、またはη)によって重複する関手Tを1つに押しつぶせるという点がある。そのお陰で、TTTTTTXのようにTが複数あ…