タグ

ブックマーク / m-hiyama.hatenablog.com (54)

  • RESTfulなWebサイトと拡張子を含むURLについて - 檜山正幸のキマイラ飼育記 (はてなBlog)

    2009年12月16日「チュートリアルを少し変更、おバカな設定例」 Catyでは、ファイル名拡張子の意味付けや扱い方がデスクトップと同じなんだけど、「クールなURIは、拡張子がねーんだぞ」とか言われそうだから、そのうちラショネールを書かなきゃ。 「ラショネール」なんて奇妙な言葉が出てきてますが、目論見や主張が正当であることを示す根拠、てな意味ですかね>ラショネール。 僕とKuwataさんが開発しているWebフレームワークCatyは、URLに、.html, .cgi などの拡張子を必ず要求します。クエリパラメータも遠慮なしに使います。「拡張子とかクエリパラメータなんて、RESTfulじゃないなー、クールじゃないなー」とか言う人がいますが、なにゆえに「拡張子やクエリパラメータがダメなのか?」 -- その根拠を示して欲しいもんです。僕らが積極的に拡張子やクエリパラメータを使う事情と根拠は、このエ

    RESTfulなWebサイトと拡張子を含むURLについて - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • HTTPメソッドの正統的使い方と現実的対処法 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「最小抽象ファイルシステムの仕様案 その2」 に書いたように、ファイルシステムAPIとHTTPを関係付けようとしてます。そこで、id:yoheiさん監訳の『RESTful Webサービス』を拾い読みしてみました*1。 RESTful Webサービス 作者: Leonard Richardson,Sam Ruby,山陽平,株式会社クイープ出版社/メーカー: オライリー・ジャパン発売日: 2007/12/21メディア: 単行購入: 25人 クリック: 842回この商品を含むブログ (168件) を見る それで知ったり考えたりしたことを以下に書きます。 HTTPクライアントとしてブラウザを使うときの問題点 HTTPメソッドの来の意味/使い方は次のようらしいです。 HTTPメソッド 意味/使い方 GET リソース(の表現)を取得する PUT 新しいリソースを作る/既存リリースを上書き変更する

    HTTPメソッドの正統的使い方と現実的対処法 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • MinGW/MSYSをインストールした(何度目かな?) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ひと月ほど前に使ってたコンピュータが壊れて、自分のホームディレクトリ以下のフルバックアップ以外はほぼなくなりました(ホントに困る事にはなりませんでしたが)。んで、折に触れてソフトウェアのインストールをしてます。今日はMinGW/MSYS。 Cygwinでもいいんだけど(Cygwinは既にインストール済み)、MinGW/MSYS(http://www.mingw.org/)のほうが僕の好み。現時点での最新版は MinGW-5.1.6.exe。http://sourceforge.net/projects/mingw/files/ からダウンロードできます。Windowsインストーラなんで特に問題はないでしょう。適当な場所(僕は C:\Installed\MinGW)にインストールして、環境変数Pathにbinを追加すれば、gcc, as, ar, nm などが使えるようになります。hello

    MinGW/MSYSをインストールした(何度目かな?) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    久々にThe n-Category Cafeを見たら、Mike Stayによる"The Continuation Passing Transform and the Yoneda Embedding"なんて記事がありました。 米田埋め込みは圏論ではお馴染み。継続渡しへの変換はコンピュータ・プログラミングではお馴染み。 この2つは、実は同じものなんだよ。なんで、誰もこのことを言わないんだろうね? The Yoneda embedding is familiar in category theory. The continuation passing transform is familiar in computer programming. They're the same thing! Why doesn't anyone ever say so? Mike Stayのこの記事、面白いのだ

    CPS(継続渡し方式)変換をJavaScriptで説明してみるべ、ナーニ、たいしたことねーべよ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 竹内さんの『層・圏・トポス』を読む人達へ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「読む人達へ」とはいっても一般論ではなくて、ジョニーが『層・圏・トポス』を読む勉強会をするらしいので、このメンバーへ老婆心から二三言っておきたいことです。 「層・圏・トポス 現代的集合像を求めて」 勉強会 - hiroki_fの日記 Diary?::2009-04-28 ジョニーの最初の企画「第5回Student Chapter, 「層、圏、トポス」の集中勉強会(企画中)」へのコメントにも書いたことだけど、竹内は短時間・短期間で読むテキストには向いていません。一度ならず「もっと短いテキストがいいよ」って勧めたんだけど、ジョニーは「どうしてもコレを読みたい」と。 もちろん、『層・圏・トポス』がマズイということではありません。以下のエントリーでこのを紹介もしてますし、僕個人にとってはなつかしいでもあります。 「圏論番外:米田の補題に向けてのオシャベリ」のコメント欄 「竹内外史・著『層・圏

    竹内さんの『層・圏・トポス』を読む人達へ - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Erlangのコーディングから、述語、ガード、レトラクト、そしてモナド - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Erlangの話題は別なブログ「檜山正幸のErlang未確認情報」に分けました。久々に編でErlangの話をしてみます。とはいっても、Erlangは導入に使うだけで、言いたいことは「日常プログラミングでも、いたるところにモナドが顔を出すよ」ってこと。 ここでモナド自体の説明はしないので、モナドの事例をひとつくらいは事前に知っておいたほうがいいでしょう。僕が書いたモナド関係エントリーは「予告:セミナー「モナド」シリーズを開始します」に列挙されています。 内容: Erlangでも引数チェックが必要なとき ボトム付き集合 部分関数と例外 関数を部分集合へ制限すること 述語を使う方法 ガードを使う方法 レトラクトを使う方法 どこがモナドなの? Erlangでも引数チェックが必要なとき Erlangにおけるエラーの考え方と取り扱い方は独特のものがあります(「Erlang実験室:武士道と云ふは死ぬ事

    Erlangのコーディングから、述語、ガード、レトラクト、そしてモナド - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記

    全体目次: 第1歩:しりとりの圏 (このエントリー) 第2歩:行列の圏 第3歩:極端な圏達 第4歩:部分圏 第5歩:変換キューの圏 第6歩:有限変換キューと半圏 第7歩:アミダの圏 第8歩:順序集合の埋め込み表現 第9歩:基に戻って、圏論感覚を養うハナシとか 付録/番外など: 中間付録A:絵を描いてみた 番外:同期/非同期の結合 中間付録B:アミダとブレイド 番外:米田の補題に向けてのオシャベリ 一部のプログラミング言語の背景として、圏論(カテゴリー論)が使われたりするせいか、以前に比べれば多少は圏論に興味を持つ人が増えたような気がしなくもないような。でも、安直な入門的文書はあまり見かけないですね。もちろん、シッカリした教科書や論説はあるんですが、どうもシッカリし過ぎているような。例えば、圏の例として「コンパクト・ハウスドルフ空間と連続写像の圏」とか言われてもねぇ(この例はいい例なんです

    はじめての圏論 その第1歩:しりとりの圏 - 檜山正幸のキマイラ飼育記
  • Erlangメッセージによる割り込み -- 継続への入り口として - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Erlangにはシステムメッセージというものが定義されていて、これを使って走行中のプロセスを中断して介入することができます。とは言っても、システムメッセージは何ら特殊なものではなくて、普通のErlangメッセージに過ぎません。{system, From, Request}という形のメッセージが来たらどう行動すべきかの約束があるだけなのです。 したがって、システムメッセージの規約を守らないプロセスの中断・再開はできません。この点で、OSカーネルがサポートする割り込みとは違います。でも、規約による割り込みのメカニズムが面白いので、単純化した例で紹介します。 実例:カウンター まずは、実例のコード。 -module(counter). -export([start/1, loop/1]). start(N) when is_integer(N) -> spawn(?MODULE, loop, [

    Erlangメッセージによる割り込み -- 継続への入り口として - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • プログラマのための「ゲーデルの不完全性定理」(2):速攻速習編 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    予定を変更して、“ご用とお急ぎ”があるかた向けに、「停止問題+不完全性定理チョビット」に関して、1回で完結する説明をします。ですから、忙しい方は、「あとで読む」ってタグでこのエントリーを単品ブックマークするといいですよ :-)。 ※ それと、印刷時にはサイドバーは消えるはずです、お試しください。 実は、このエントリーで述べる速攻速習に向いた説明は、最初に思い付いたものの、しばらく考えてから却下したアイディアです。が、初回(兼ハブエントリー)が多少は注目されたようなので、「数回の続きものを順番に読むのは耐えられん!」という要望にも応えようか、と気が変わりました。実際に要望があったわけじゃないけど、(いろんなリンクから来る)多くの人の眼に触れれば、そう思う人がいるのも当然だと推測するので。 僕が速攻速習方式をなぜ一旦は却下したかは、次回エントリーまたはキマイラ・サイトの記事で説明します、たぶん

    プログラマのための「ゲーデルの不完全性定理」(2):速攻速習編 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JavaScriptで学ぶ・プログラマのためのラムダ計算」は、1回では述べ切らなくて、一段落付いたところで区切りました。これはかえって良かったですね、ブックマークやトラックバックでフィードバックが得られたので。 そのフィードバックなどをかんがみて、「残り=次回の話題」として予告した内容とはい違ってしまうのだけど、今回は、文章では伝わりにくい(前回うまく伝わらなかったと思える)ラムダ計算の大事なツボを、なんとか表現してみようと思います。 [このエントリーの内容はだいぶ前にほぼ出来上がっていたのだけど、ココに書いてある事情で、“お絵描き”がなかなか出来なかったのです。] ※印刷のときはサイドバーが消えます。 内容: 知っていて損はない 計算は身体的に理解しよう ラムダ項のツリー表示:準備 ラムダ項のツリー表示:描く! β変換に対応するツリーの描き換え もっとβ変換をやってみよう 計算現象を

    絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • ボブ・クックの「物理系実務者のための圏論入門」 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    圏論に関する解説的論文(サーベイ/チュートリアル)で、あまり長くないものというと、次はお勧めです。 題名:A Categorical Manifesto 著者:Joseph A. Goguen 分量:20ページ URL:http://citeseer.ist.psu.edu/goguen91categorical.html 題名:SHORT INTRODUCTION TO ENRICHED CATEGORIES 著者:Francis Borceux, Isar Stubbe 分量:28ページ URL:http://www.win.ua.ac.be/~istubbe/PDF/EnrichedCatsKLUWER.pdf 最近、もう1つ秀逸な記事を見つけました。「幼稚園児のための量子力学」を書いたボブ・クック(↓このニイチャン)*1による「物理系実務者のための圏論入門」(Introducing

    ボブ・クックの「物理系実務者のための圏論入門」 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 「物理系実務者のための圏論入門」への補遺+檜山の戯言 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日の「ボブ・クックの『物理系実務者のための圏論入門』」に補足。 実際にそうなんだからしょうがない、っつうの! まず、「物理系実務者のための圏論入門」の要旨(abstract)をイイカゲンに訳すと: この論説の目的は、物理関係者 -- 特に量子力学/量子情報学の研究者や利用者に、圏論が日々の実践に必須な道具であることを納得してもらうことである。圏論が役に立つ理由は、それがよりカッコヨク数学を行う手段であるからではない。そんなこっちゃなくて、モノイド圏が、実務上の物理システムを実際に表現する代数構造に他ならないからである。 この解説では、精密厳格な定義や数学的に整合した理論を提示することはしない。その代わり読者を、圏論の世界(その一部だが)を周遊する旅に招待しよう。それは、物理関係者にも十分に楽しめる旅だと思う。 注目して欲しいのは、「モノイド圏が、実務上の物理システムを実際に表現する代数構

    「物理系実務者のための圏論入門」への補遺+檜山の戯言 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 僕もErlangを試してみたよ -- 軽量プロセスを中心に - 檜山正幸のキマイラ飼育記 (はてなBlog)

    えっ、Erlang(アーラン)を紹介するのが流行なの? フーン、じゃ僕もやってみよう。 というわけで、ちょっと試してみたので、感想+解説を書きます。あまり他で触れられてないようなネタを選ぶつもり。 内容: 予備知識への参照 構文はPrologじゃん ランタイム・システムとEシェル で、Erlangって何がいいのよ? 繰り返しとプロセス メッセージング=プロセス間通信 最後の例題:greetingプロセス もう一度、Erlangって何がいいのか? ●予備知識への参照 HelloWorldを書くまでの案内は: 「これから15分でErlangを始めるための資料」(http://blog.overlasting.net/2007-05-09-1.html) Erlangの特徴は、次のスライドによくまとまってます。 "Concurrent Functional Programming with Er

    僕もErlangを試してみたよ -- 軽量プロセスを中心に - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

    気まぐれと偶然となりゆきで、ここ2,3回はモナドを話題にしました。googleで「モナド」を引いてザッと眺めると、「モナドはむずかしいー」とか「モナドで挫折した」みたいな雰囲気が感じられて、説明芸人の血が少し騒ぎましたね。「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 タイトルはだいぶ煽っちゃった…… けど、ハッタリじゃないつもり…… けど、実際はどうかな? ※印刷のときはサイドバーが消えます。 内容: とりあえず、あたりさわりなくモナドの来歴を紹介する こんな課題を考えてみよう:副作用付き計算 カウントアップする関数達 カウントアップしたい意志を戻り値で伝える それでは、いったい誰がカウントアップをするのだ 関数の引数の型をCountup型にまで拡張する そして、これがモナドだ とりあえず、あたりさわりなくモナドの来歴を紹介する 今からここで説明する「モナド(monad)

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」