タグ

ブックマーク / mzp.hatenadiary.org (19)

  • 圏論勉強会『けんろん!〜休日カフェタイム〜』に行ってきました - みずぴー日記

    なんやかんやで圏論勉強会をやることになりました。 やったこと 教科書はBasic Category Theory for Computer Scientists (Foundations of Computing)です。 各example,exerciseに担当者を割り当てて、解説してもらう形式で進めることになりました。 今回は圏の定義と、圏の例を2つほどやりました。 読書記録 http://proofcafe.co.cc/ その他 参加者は7人(ぐらい)でした。 ustの視聴者数は50人ぐらいだったらしいです。なにそれこわい 会場を貸してくれたニューキャストさんすごい。

    圏論勉強会『けんろん!〜休日カフェタイム〜』に行ってきました - みずぴー日記
    kzfm
    kzfm 2010/10/19
    圏論の本が気になる
  • Google API から天気の取得 - みずぴー日記

    30分プログラム、その740。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_263にインスパイアされました。 Pythonなら、Webからの取得もXMLのパースも楽チンです。 使い方 $ python tenki.py Cloudy 5 Humidity: 72% Wind: NW at 10 mph ソースコード #! /usr/bin/python # -*- mode:python; coding:utf-8 -*- from urllib2 import urlopen from xml.dom.minidom import parseString from xml.etree.ElementTree import * io = urlopen("http://www.google.com/ig/api?weather

    Google API から天気の取得 - みずぴー日記
    kzfm
    kzfm 2010/03/11
  • 一白水成の純米吟醸 袋吊り生酒を飲んだよ - みずぴー日記

    新入荷しました、と買いてあったのでつい...。相変らず限定品という言葉に弱いです。ちなみに、一升瓶で2,940円でした。 驚くほど飲みやすいお酒です。 しかしながら、こんな高い液体をガブガブ飲めるほどブルジョアではないので、意識して味わってみたところ、しっかりとした味がしました。何を言ってるかわからねーと思うが(ry。 参考: http://www.syusendo-horiichi.co.jp/ippaku/ippak1.htm

    一白水成の純米吟醸 袋吊り生酒を飲んだよ - みずぴー日記
    kzfm
    kzfm 2010/01/24
    若手の酒の会で一番旨かったので蔵元にメール送ったら静岡では取扱店がなかった。
  • 「Haskellで副作用のあるプログラムを作れることをどうやって説明したらいいの?」まとめ - みずぴー日記

    発端 mzp「Haskellって副作用ないのにどうやってゲームとか作るの?」って質問にうまく答えれない。IOモナドのおかげで、副作用がなくても副作用があるプログラムが作れるんです、って言っても意味が分かんないよねlink とTwitterでつぶやいたら、いろんな人からリプライをもらいました。 まとめ みなさん、実にうまく説明していておもしろかったので、トゥギャッターでまとめてみました。「モナドが、副作用をうまく隠蔽してくれる。」という説明が直感的で分かりやすいと思いました。 Haskellで副作用が使えることをなんて説明すればいいの? - Togetter 結論 tanakhHaskellには副作用がないんじゃない。参照透明なだけだ。link これが一番しっくりすると思います。

    「Haskellで副作用のあるプログラムを作れることをどうやって説明したらいいの?」まとめ - みずぴー日記
    kzfm
    kzfm 2009/12/11
  • 修論のためのLaTeX設定 - みずぴー日記

    そろそろ修論を書こうかと思ったら、いつのまにかLaTeXEmacsの設定をしてました。こういう日もあっていいよね。 要約 hyperrefパッケージを使うと、目次をクリックできるようになるよ colorパッケージを使うと修正点を分かりやすくできるよ anything.el + imenuを使うと、特定の節への移動が楽だよ hyperrefパッケージによるハイパーリンク機能 目次から、その項目まで移動するのが面倒です。 ですので、hyperrefパッケージを使って、目次にハイパーリンクを貼りました。目次をクリックすると、その項目まで移動できます。 % プリアンブルに追加する \usepackage[dvipdfm, colorlinks=false, bookmarks=true, bookmarksnumbered=false, pdfborder={0 0 0}, bookmarkst

    修論のためのLaTeX設定 - みずぴー日記
    kzfm
    kzfm 2009/12/09
  • Pythonでsl - みずぴー日記

    30分プログラム、その705。前にcursesみたいにターミナルの任意の位置にテキストを出す関数 - みずぴー日記でcursesを使わずに端末の好きな位置に文字を出せるようになったので、slを作ってみました。 Perlで使っていた\eがPythonでは使えなかったので、hi_saitoさんが使っていた\033を使っています。 で、作ってから気がついたんですが、物のslと違って煙がでません。まあ、クリーンなSLということで。 使い方 $ python sl.py ________ __________ _______/ \__I_I_____===__|_________ | H\________/ | | =|___ ___| ________________ | H | | | | ||_| |_|| _| \_____ | H |__--------------------| [__

    Pythonでsl - みずぴー日記
    kzfm
    kzfm 2009/12/07
  • /dev/randomから読み込むプログラム - みずぴー日記

    30分プログラム、その688。/dev/randomから読み込むプログラム。 聞くところによると/dev/randomは無限に乱数が書いてある(ように見える)ファイルらしいです。 聞いたことはあっても試したことがないので、読み込むプログラムを作ってみました。数字を延々と表示されても困るので適当な回数で打ち切って、それぞれの値が何回出現したかをカウントしてみました。 使い方 $ gosh random.scm 1 31 2 28 3 35 ... 253 32 254 33 255 41 ソースコード #! /opt/local/bin/gosh ;; -*- mode:scheme; coding:utf-8 -*- ;; ;; random.scm - ;; ;; Copyright(C) 2009 by mzp ;; Author: MIZUNO Hiroki / mzpppp at

    /dev/randomから読み込むプログラム - みずぴー日記
    kzfm
    kzfm 2009/11/04
  • リストのディープコピー - みずぴー日記

    30分プログラム、その613。リストのディープコピーをやってみる。 みんな、Pythonでリストをコピーするには、どうしたらいいか知ってる? map(None,L) って書くんだよ。 mapを使うとこは、すんなり理解できるけど、まさか恒等関数の代わりにNoneを使うとは! おそるべし、Python、と思った記憶があります。 でも、このコピーは浅いコピー(shallow copy)です。というわけで、深いコピー(deep copy)を定義してみよう。 使い方 x = [1,[2,3]] y = deep_dup(x) x[0] = '*' x[1][0] = "***" print x # ['*',['***',3]] print y # [1,2,3] ソースコード #! /usr/bin/python # -*- mode:python; coding:utf-8 -*- # # du

    リストのディープコピー - みずぴー日記
    kzfm
    kzfm 2009/06/29
  • Fluent Interface(流れるようなインタフェース)をPythonでやってみよう - みずぴー日記

    30分プログラム、その529。ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーションを読んでいたら「言語内にDSLを作りたいときは、Fluent Interface(流れるようなインタフェース)を使うといいよ!」と書いてあった。 そういえばFluent Interface(流れるようなインタフェース)は書いたことがなかったので、Pythonでやってみよう。 個人的には、内部DSLを作るときはFluent Interfaceを使うよりも、クロージャとかを使うほうが好みです。 使い方 sb = ShapeBuilder() rect = sb. kind('square'). width(10). height(20). color('red'). shape() ソースコード #! /usr/bin/python # -*- mode:pytho

    Fluent Interface(流れるようなインタフェース)をPythonでやってみよう - みずぴー日記
    kzfm
    kzfm 2009/02/17
  • Erlangでambを作ろうとしたら、いつのまにかmapになっていた - みずぴー日記

    30分プログラム、その515。Erlangでambを作ろうとしたら、いつのまにかmapになっていた。 id:Gemmaさんが、またambを書いていた。ホントに ambって継続を使って、ひとつづつ計算してるけど、全部並列で計算しちゃえばよくね?と思ってErlangで作ってみた。そしたら、いつのまにか単なる並列mapになっていた。まあ、ambもconcatMapで書けるし、当然の結果だと思う。 使い方 三平方の定理を満たす整数の組を探してみる。 forever(F)-> receive X -> F(X), forever(F) end. main()-> Ans = spawn(fun() -> forever(fun(X)-> io:format("~p~n",[X]) end) end), amb([1,2,3], fun (A)-> amb([3,4,5], fun(B)-> amb(

    Erlangでambを作ろうとしたら、いつのまにかmapになっていた - みずぴー日記
  • 遅延リストでフィボナッチ数 - みずぴー日記

    30分プログラム、その504。今日、ミーティングで遅延リストの話をしたので、遅延リストを使ってフィボナッチ数を書いてみる。 最初、 improt itertools def ones(): return itertools.chain([1],ones()) とやったら、えらい目にあってしまった。 しょうがないので、俺chainを作って def ones(): return chain(lambda: [1],lambda: ones()) と書けるようにした。 使い方 $ python fib.py 1 2 3 5 8 13 21 34 55 89 144 233 ソースコード #! /usr/bin/python # -*- mode:python; coding:utf-8 -*- # # fib.py - # # Copyright(C) 2009 by mzp # Author:

    遅延リストでフィボナッチ数 - みずぴー日記
    kzfm
    kzfm 2009/01/07
  • ターミナルを2つ表示するようにした - みずぴー日記

    みなさんscreen+zshで幸せなシェル生活を送っていますか? ところで、せっかくモダンなウインドウ・マネージャを使っているのに、ターミナルがひとつだけってもったいなくありません? というわけで、2つ表示するようにした というわけで2つ表示して、片方は情報を垂れ流す用にしてみました。垂れ流す用は情報量を増やしたいので、フォントサイズを多少小さめに。 ボクはTwitterの発言とomakeの自動ビルドの結果を表示してます。Webプログラマはサーバのログとかを表示すると便利な気がします。 手順 1) Terminal.appの設定を活用して、フォントサイズを変えたウインドウを2つ表示する。個人的には小さいフォントはCourierがいい気がする。 2)メニューから"ウインドウをグループとして保存"を選んで、ウインドウの位置とかを保存する。 3) 快適、シェル生活!

    ターミナルを2つ表示するようにした - みずぴー日記
    kzfm
    kzfm 2008/12/25
  • Perlでも普通のリスト操作を - みずぴー日記

    30分プログラム、その372。Perlの話をするたびに、id:Gemmaさんが「Perlのリストはキモい、キモすぎる。ネストするだけでリファレンスを使うなんでありえない。」と言いつづけてる。 なので、Perlでもごく普通の単方向リストを作ってみた。これなら、あたりまえにネストできるぜ。 ネタのつもりで作ったんだけど、割りといいかもしれない。特にmapとかfold_rightみたいな再帰関数が、わりとすんなり実装できるのがうれしい。 使い方 # consしてリストを作る my $xs = List->cons(1, List->cons(2, List->cons(3,List->nil))); # 文字列にして表示 # => (1, 2, 3) print $xs->to_string,"\n"; # 別のリストの作り方 my $ys = List->new(1,2,3); print $

    Perlでも普通のリスト操作を - みずぴー日記
    kzfm
    kzfm 2008/09/23
  • 記事一覧 - みずぴー日記

    JSXの特徴は、トップページにも書いてあるとおり「faster, safer, easier」の3つです。安全性とか簡単さについては人とか状況によって様々な定義や意見がありますが、唯一Fasterだけは客観的に測れます。 しかしJSXと速度については、トップページにあるBox2…

    記事一覧 - みずぴー日記
    kzfm
    kzfm 2008/09/18
  • Gmailのメール一覧を取得 - みずぴー日記

    30分プログラム、その348。imaplibを試してみる。 前にid:dmp939が、『定期的に受信ボックスをチェックして、特定のメールをトリガーとして何かを起動するプログラムを作ろうぜ』っていう「それなんてprocmail」って感じのことを言っていたのを思いだしたので。 とりあえず、サーバはGmail固定。 使い方 $ python imap.py user name: example@gmail.com Password: Subject: =?ISO-2022-JP?B?GyRCJTUhPCVTJTlNeE1RTkE2YiROJDRAQTVhJEsbKEI=?= =?ISO-2022-JP?B?GyRCJEQkJCRGJE4kKkNOJGkkOyFKJDRAQTVhPXEhSxsoQg==?= Subject: Yay! Your Photojojo Order Shipped! (

    Gmailのメール一覧を取得 - みずぴー日記
    kzfm
    kzfm 2008/08/17
  • Pythonでdiff - みずぴー日記

    30分プログラム、その252。Pythonでdiffを作ってみる。 diffをちゃんと作ると大変そうだけど、Pythonのdifflibを使えば簡単にできる。 >>> import >>> a = file('foo').readlines() >>> b = file('bar').readlines() >>> difflib.unified_diff(a,b) とするだけで、diffがとれちゃう。便利、便利。 使い方 $ python diff.py ~/tmp/foo ~/tmp/bar --- /Users/mzp/tmp/foo Sat Feb 23 21:51:47 2008 +++ /Users/mzp/tmp/bar Sat Feb 23 21:51:53 2008 @@ -1,3 +1,3 @@ foo -bar +BAR baz ソースコード #! /usr/bin/

    Pythonでdiff - みずぴー日記
    kzfm
    kzfm 2008/02/24
  • PraggerのCustomFeed - みずぴー日記

    30分プログラム、その239。Praggerでお気に入りの酒屋さん、酒泉洞をRSS化した。 Feed::custom_feedで切り出したあと、相対パスによるリンクを修正している。 ところで、ちょうど今入荷している而今は、いいお酒だと思うんだ。しかも、なぜかはてなキーワードにもなってるし。参考: 而今 使い方 http://mzp.sakura.ne.jp/feeds/syusendou.rss ソースコード 設定ファイルはこんな感じ。 - module: Feed::custom_feed config: url: http://www.syusendo-horiichi.co.jp/ capture: '<TABLE border="1" width="769">(.*?)</TABLE>' split: '<TD[^>]*>(.*?)</TD>' link: '<A href="(.

    PraggerのCustomFeed - みずぴー日記
    kzfm
    kzfm 2008/02/09
    而今うまいですのー
  • テトリスっぽい何か - みずぴー日記

    30分プログラム、その230。HaskellのFALでテトリスを作ろうとした。 Macだとうまいことイベントがとれなくて、操作ができなかったので途中で飽きらめた。一応、ブロックが落ちてきて積み上げるとこまではできている。 ソースコード import Fal import Shape import Picture -- データ型の定義 data Block = Block Int Int | None deriving (Show,Eq) type Board = [[Block]] mapi = flip zipWith [0..] dmap f xs = mapi (\y -> mapi (\x -> f x y)) xs getBlock :: Board -> Int -> Int -> Block getBlock board x y = (board !! y) !! x isF

    テトリスっぽい何か - みずぴー日記
    kzfm
    kzfm 2008/01/29
  • tail -f - みずぴー日記

    30分プログラム、その214。tail -fを作ってみよう。 tail -fは、ファイルを監視するためのオプション。tail -f hoge.logとやるとhoge.logに追記されるたびに、それを表示してくれる。 $ tail hoge.log 0 1 2 $ tail -f hoge.log 0 1 2 # ここで終了しない 3 # <- 新しく追加された行これを1秒ごとにファイルを監視することで実現してみた。もっと賢い方法があったりするんだろうか。 あとsleepがtimeモジュールにあるのはどうなんだろう。最初、sysとかosを探したよ。 使い方 $ python tail-f.py hoge.log 0 1 2 ソースコード #! /usr/bin/python # -*- mode:python; coding:utf-8 -*- # # tail-f.py - # # Cop

    tail -f - みずぴー日記
    kzfm
    kzfm 2008/01/04
  • 1