Yoichi's diary


2015-07-04

_ 関西関数型道場 - 第03回

興味深い話をたくさん聞けて楽しかった。理解は全然付いて行けてなかったけど。

  • Reflexの紹介 @Nakau さん
    • FRP = Functional Reactive Programming の話。
    • Excelの自動計算にデータを入れるように、システム側で計算の面倒を見てもらう。
    • Behavior (時間とともに動的に変化する一つ一つの値), Event (データの流れを時間と値のペアで表す)
  • 再帰について @wakamatz さん
    • 明示的な再帰はGOTOだ。高階関数を使え、ということで、明示的に再帰を書かないパターンの紹介。
    • Catamorphism = foldr, Anamorphism = unfoldr, Hylomorphism, Paramorphism
  • 型レベルプログラミング(仮) @philomel202 さん
    • 型を語るということの七つの大罪
    • ghc拡張使いまくり。
    • iHaskell Notebook の資料を共有してくださったので手元で実行しながら聞いていたが、途中でエラーが。。。
    • Typed Holes
    • その先に何があるのか?→コンパイル時の型チェックで安全に書けるシステムが得られる。
    • Programming Bottom-Up の話と少し共通点があるなと思った。
  • 『正しさ』の話 @ its_out_of_tune さん
    • Haskellわかってなくても雰囲気をつかめそうな流れになっていてすごいと思った。
    • 数式を出さず(最後にちらっと見せるだけ)にモナド則の説明が進んでいく。
    • Coq
    • objective
  • CPLやろう @solo_rab さん
  • ATSのすすめ @murase_syuka さん
    • MLの記法でプログラミングできる。
    • do記法的な感じでふつうのC風にも書ける。
    • ATSではC (か Javascript) に変換された上で、gcc でコンパイルされる。
    • 余計なものがついてこないので組み込みのリソース制約が厳しいところにも使える。
    • 名古屋で行われている ATSプログラミング入門読書会、そのうち次回があるので興味ある方はぜひとのこと。
  • 関数型アセンブリー?! @tataminomusi さん
    • Sinclair ZX Spectrum イギリスではよく知られたものらしい。
    • Z80アセンブリをHaskellで記述
    • ゲームがうごいた。すごい。

2015-07-05

_ 五月山公園

天気が微妙だったのでドライブするだけになるかもと思っていたが、天気良くなってきたので動物園にも行けたし公園でも遊べた。

_ [Emacs] flycheck

これまで flymake でごにょごにょしてたが、Flycheckでモダンなシンタックスチェックを見て flycheck 試してみたところいい感じだ。

  • チェッカの設定を勝手にしてくれる
  • エラー箇所について行だけでなく、どの部分で何のエラーになっているか示してくれる。
  • カーソルを合わせるとエラーをミニバッファに出してくれる
  • C-c ! l (flycheck-list-errors) でエラーの一覧を出してくれる

設定 (2行目の方は、エラー一杯のファイル(CheckIOの Break PEP8 のコード)で試したらあきらめてしまったので調整)

(add-hook 'python-mode-hook '(lambda () (flycheck-mode 1)))
(setq flycheck-checker-error-threshold 500)

2015-07-08

_ すごいHaskell読書会 in 大阪 2週目 #18

第15章「Zipper」、ふじやんさんの発表でした。話の途中でいくつか演習問題をやりつつ、本編が終わったと思ったら、なんと EXTRA STAGE が現れました。

予習してるときにState ととの関連はなんとなく感じていたのですが、その先にこんな話が待ち受けていたとは。

Hoogleで検索した時とかに、何とかTという型がちらほら目に入っていたのですが、モナド変換子(monad transformers) の T とのこと。EXTRA STAGE分はほとんど理解が追いつかなかったので復習しとこう。


2015-07-10

_ 打ち上げ

前職で最後に関わっていたプロジェクトの打ち上げに誘っていただいたので参加。少し早く着いたので会社の前で出待ちさせていただいたが、通りすがりの何人かとちょっとずつ会話ができてよかった。

打ち上げ自体は急遽参加できなくなった人が居たため、やや多めのお料理でしたが、お腹いっぱい味わわせていてだきました。


2015-07-11

_ 彦根

花火目的だったがせっかくなので早めに行ってひこにゃんにも会おうということで、彦根城まで。

夕方、近江鉄道に乗って移動し、高宮納涼花火大会へ。近くに新幹線が走っているので、開始を待っている間、時々通り過ぎて行く新幹線を眺めて過ごせた。花火は川の逆側からの打ち上げで、高いのはほぼ真上を見上げるような格好で、近くで音と光を満喫できました。


2015-07-12

_ 水浴び

花園公園に行ったら噴水で水浴びしている人々が居たので混じって水遊び。すごく暑かったのでひんやりした水が気持ちよかった。


2015-07-16

_ ひと月経過

入社から一ヶ月経ってしまった。時間を有効に使わなかったことが何度もあったのが反省点。 毎日自己ふりかえりを継続しようと決めていたのに、小学校の夏休みの日記のごとく数日分まとめてつけてしまっていることがあるというのが駄目。

一方、よかったと思うことは周りの人々がすごく助けてくれること。僕だけに親切なわけではなく、みんなで船を漕いでいこうという雰囲気が浸透しているのだと思っている。いつまでも引っ張ってもらうだけじゃなく自分も一緒に漕がないとな。


2015-07-20

_ Learn X in Y minutes

知らなかったプログラミング言語に実際に触る機会を与えてくれる、サンプルコードを集めたサイト。 書籍 Seven Languages in Seven Weeksと何か通じるものがあるなと感じた。

こういうの欲しいと思っていたので、今度から必要に応じて参照する。というか、ある程度知ってるつもりの言語と、勉強中の言語についてはすぐ読む。何か気づきが得られるはず。

_ ひまわり

兵庫県丹波市のひまわり柚遊農園に行きました。こないだの台風でやられたとのことで、だいぶ倒れていましたが、風に負けなかった子たちは元気に花を咲かせていました。元気いっぱい。


2015-07-22

_ show python stacktrace in gdb

例えば ubuntu で python2.7 の場合なら python2.7-dbg パッケージを入れておくと、gdb 上で py-bt コマンドが使えるようになる。(参照: Python Developer's Guide 22. gdb Support)

(gdb) py-bt
#4 Frame 0x7fd2a0d9bdd0, for file infloop.py, line 5, in <module> ()
    time.sleep(1)

python3 の場合なら python3-dbg パッケージを入れるのだが、python3-dbg で実行すれば py-bt 使えるのに python3 で実行すると

(gdb) py-bt
Undefined command: "py-bt".  Try "help".

と冷たくあしらわれるので何でかと思ったが、以下のようにしたら解消できた。

vagrant@vagrant-ubuntu-trusty-64:/usr/lib/debug/usr/bin$ ls -l
total 19344
-rw-r--r-- 1 root root  7916110 Jun 22 18:51 python2.7
lrwxrwxrwx 1 root root       16 Jun 22 18:51 python2.7-dbg-gdb.py -> python2.7-gdb.py
-rwxr-xr-x 1 root root    49548 Jun 22 18:51 python2.7-gdb.py
-rw-r--r-- 1 root root 11772195 Jun 19 15:35 python3.4
lrwxrwxrwx 1 root root       17 Jun 19 15:36 python3.4-dbg-gdb.py -> python3.4m-gdb.py
lrwxrwxrwx 1 root root       17 Jun 19 15:36 python3.4dm-gdb.py -> python3.4m-gdb.py
-rwxr-xr-x 1 root root    60998 Jun 19 15:36 python3.4m-gdb.py
vagrant@vagrant-ubuntu-trusty-64:/usr/lib/debug/usr/bin$ sudo ln -s python3.4m-gdb.py python3.4-gdb.py

何で名前がずれているのだろう?(これが関係してそうだけど)

(追記) 次のようにして手動で読み込ませても行けました。

(gdb) source /usr/lib/debug/usr/bin/python3.4m-gdb.py

2015-07-23

_ 結婚記念日

10年経ちました。というわけで仕事帰りに梅田で待ち合わせて家族3人でごはん。


2015-07-24

_ [DevLove] クラウド時代のエンジニアの役割〜AWSを使い続けて気づいたこと〜

僕何もわかってないや、あせらず基礎から勉強しようと思った。お話をされていた佐々木さん、佐藤さんが書かれたが良さそうで、一番分厚い本だと言われていたのでKindle版を購入。読んでみる。

_ ばんごはん

勉強会の帰りに、前から行きたいと思ってた店に行ったら並んでいたので、別の店にしようと帰りの電車を途中下車したらやたら人が居る。そうか、天神祭か。あまりの人の多さに退却して結局家の近くで食べて帰りました。


2015-07-25

_ 琴引浜

京都縦貫自動車道を走って京丹後市の琴引浜へ海水浴に行きました。砂浜があったりちょっとした岩場があったり、お風呂があったりと盛りだくさん。天気もよかったし存分に楽しめました。