タグ

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

  • 論理的言明を装った感情論は嫌い、という感情論 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ちょっと時間がたってしまったネタですが: プログラミングの出来る人と出来ない人の決定的な違い。 「プログラミングの出来る人と出来ない人の決定的な違い」? ワンヤグさんの「プログラミングの出来る人と出来ない人の決定的な違い。」は、たくさんのブックマークを集めた記事。それに対して、id:JavaBlackさんが随分と否定的な記事を書き、さらにワンヤグさんが当該記事への追記として反論(らしきこと)を書いています。内容的に、ドチラかが全面的に正しいとは思えないし、ドチラかに味方する気もありません。 ですが、僕のセンサー(どんなセンサーかは最後に述べます)が反応したので、思うところを書いておきます。 時間順が前後しますが、まずはJavaBlackさんの記事のほうから。僕は、元記事「プログラミングの出来る人と出来ない人の決定的な違い。」を読む前に、JavaBlackさんの記事のほうを先に読んだのです。

    論理的言明を装った感情論は嫌い、という感情論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
    send
    send 2010/12/21
  • JSONの可能性がグンと拡がるぞ! JSONスキーマ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JSON(http://www.json.org/)データはけっこうよく使うので、何度か話題にしたことがあります(例えば「もう一度、ちゃんとJSON入門」)。でも、JSONには型情報/メタ情報が付けられないのがとても不満で、JSON改なんてもんを考えたこともありました。(後でXIONに改名) JSONデータに対するスキーマ定義の仕様がかたまりつつあることを、ごく最近になって知りました。 http://json-schema.org/ JSON体はRFC 4627になっていますが、JSONスキーマの標準化のステータスは、あまりハッキリとは分かりません(僕には)。http://groups.google.com/group/json-schema?pli=1 を覗き見した感じでは、現状ワーキングドラフトという位置付けらしいです。 なかなか面白いし役に立ちそうなので紹介します。ただし、僕にとっ

    JSONの可能性がグンと拡がるぞ! JSONスキーマ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    send
    send 2009/04/13
  • Erlang実験室:武士道と云ふは死ぬ事と見付けたり - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Erlangでは、「死ぬこと=プロセスをクラッシュさせること」の解釈/意義/価値観が、他の言語とは随分違います。潔<いさぎよ>く死ぬことが推奨されていますが、これは責務の放棄とは違います。 内容: 事故や災害への対処は個人ではなくて企業や社会が行うべき 正常と異常のはざま 例外を使うのは例外的? 多プロセス並列プログラミングと例外 潔さと無責任は違う -- 武士道プログラミング ●事故や災害への対処は個人ではなくて企業や社会が行うべき Erlangの書き方や文化で、なかなか馴染めないのが「異常時の処理を書かない」という方針です。 多くのプログラミング言語のコードでは、次のような分岐をしばしば見受けます。 if (正常条件) { 正常時の処理; } else { 異常時の処理; } switch (値) { case 正常な値_1 : 正常時の処理_1; break; case 正常な値_2

    Erlang実験室:武士道と云ふは死ぬ事と見付けたり - 檜山正幸のキマイラ飼育記 (はてなBlog)
    send
    send 2008/11/16
  • シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Java BlockingQueueで遊ぶ:パイプラインごっこ」でパイプラインの話をしたので、来の、つまりUnixのパイプやリダイレクトを少し調べてみました。 たまに話題となる some-command >file 2>&1 と some-command 2>&1 >fileの挙動の違いについて、「シェルはコマンドラインリダイレクトの指定を右から左に解釈実行する」なんて説明が見つかりました。んなバカな! パージングは左から右にするものですよ。パーズツリーを逆順にたどることはできるけど、そんなことする必然性はなんにもないよ。 次の記事を読むと、「右から左」なんて事情じゃないことが分かるでしょう。 UNIXの部屋 検索: リダイレクト シェルのリダイレクトにまつわる失敗 さてここでは、複雑なリダイレクト処理も完全に理解できる処方箋を示しましょう。例えば、次のコマンドラインが何をするか分かる

    シェルのリダイレクトを「こわいものなし」というくらい完全に理解しよう - 檜山正幸のキマイラ飼育記 (はてなBlog)
    send
    send 2008/01/03
    たまに混乱する
  • 僕も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)
    send
    send 2007/05/15
  • 絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)

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

    絵を描いて学ぶ・プログラマのためのラムダ計算 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 檜山正幸のキマイラ飼育記 - JavaScriptで学ぶ・プログラマのためのラムダ計算

    JavaScriptによるテンプレート・モナド、すっげー簡単!」にて: 紙と鉛筆でラムダ計算を実行できることは必要だな、やっぱり。 なんて強調したので、ラムダ計算の入門、いってみよう。 [追記]練習問題集を追加しました。説明を読みながら、あるいは読んだ後で是非やってみてください。→「JavaScriptで学ぶ・プログラマのためのラムダ計算 問題集」[/追記] ※印刷のときはサイドバーが消えます。 内容: JavaScriptの関数リテラル ラムダ式ってなんだ ラムダ計算の体系と適用操作 ラムダ式の例をいくつか β変換 -- ラムダ計算のキモ! β変換を何度か実行してみる 中間まとめ、まだ続きがあるよ JavaScriptの関数リテラル 最初に、JavaScriptに関する知識を確認しておきましょう。なお、JavaScriptの対話的実行環境については「もっともお手軽な対話的JavaScr

    檜山正幸のキマイラ飼育記 - JavaScriptで学ぶ・プログラマのためのラムダ計算
  • 詐欺師・江本勝さんの言うことを信じないでください - 檜山正幸のキマイラ飼育記 (はてなBlog)

    物理学者の田崎さんが次のページを公開なさっています。 「水からの伝言」を信じないでください (http://www.gakushuin.ac.jp/~881791/fs/) 水伝ネタは、僕自身も何度も扱っています(はてなブックマーク - voodooに関するm-hiyama-taxonのブックマークを参照)。そんな事情から、田崎さんページを参照した川俣さんのエントリからトラックバックをいただいたのでしょう。 同エントリーにて川俣さん曰く: この手の話題に熱心にリアクションすることはありません。 なぜかといえば、同様の話は「あまりにも多すぎる」からです。[…略…] IT業界やインターネットは「トンデモ塊」と言って良いほど悲惨な状況と言っても良いぐらいです。いや当に、業界の常識であっても冷静に基礎から積み上げて論証するとおかしい話は山ほどあります。 僕のタクソノミー(このブログを分類したリン

    詐欺師・江本勝さんの言うことを信じないでください - 檜山正幸のキマイラ飼育記 (はてなBlog)
    send
    send 2006/11/15
    たかっ!
  • VOODOOな理論達:いいセンいってる南堂久史さん - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日のエントリー「VOODOOな理論達:平成の万能大学者」の「2004 JIS をめぐる混乱」に関して、安岡孝一さんご人から教えていただきました。安岡さんは、http://slashdot.jp/~alp/journal/313207 に次のようにコメントなさっているそうです。 JIS X 0213は例示字体を変えましたけど、JIS X 0208は例示字体を変更してません。つまり、JIS X 0213では「2点しんにょうの辻」が例示されてるコードポイントに対して、JIS X 0208では「1点しんにょうの辻」が例示されている。つまり、あるコードポイントに「1点しんにょうの辻」と「2点しんにょうの辻」が包摂されてるってのを、JIS X 0208とJIS X 0213の両方で表してるわけです。JIS X 0208について全然触れようともしない「南堂論」に騙されちゃいけません。 まー、それはそ

    VOODOOな理論達:いいセンいってる南堂久史さん - 檜山正幸のキマイラ飼育記 (はてなBlog)
    send
    send 2006/06/08
    ほうほう
  • 16進を知らない子供達へ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    僕はハードウェアは苦手・無知だし、なんでも低水準現象に還元しちゃう説明がいいとも思っていません。むしろ個人的な興味は、(アブストラクト・ナンセンスと呼ばれるほどに)高水準の道具立てで計算現象を理解するほうにあるんです。 でも、それでも、次のような状況には、さすがにグンニャリしちゃいますよ。 0x20が、(多くの場合に)どんな文字(「文字」概念はホントに難しいのだけど!)を指すか知らない。そもそも、0xナントカはワケワカラン記号だとしか思ってない。 IDEからビルドはできるが、背後にコンパイラやリンカ/ローダという処理系があることを全く知らない。コンパイラを直接起動することはできない。 「正の数+正の数=負の数」という(コンピュータにおける)現象に出会ったことがない(少なくともそう思っている)。 「ファイルには、テキストファイルとバイナリファイルの2種類があります」なんて説明を素直に納得して

    16進を知らない子供達へ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    send
    send 2006/06/06
    共感した
  • 子供に気付かれたくない事だが現実に目をそらすのもナンだし - 檜山正幸のキマイラ飼育記 (はてなBlog)

    子供達が話をしていた。 兄:「アンパンマンをやっつけるのは絶対無理」 弟:「アンパンマン強いから?」 兄:「違うよ、弱いこともあるよ。でも、すぐにジャムおじさんとバタコさんが新しい顔を焼いちゃうからな」 弟:「……」 兄:「でも、アンパンマンに勝つ方法もあるんだ。教えてやろうか」 弟:「どうするの?」 兄:「まず、アンパンマンがパトロールに行っているあいだに、ジャムおじさんとバタコさんをやっちまう(檜山注:正確な表現は忘れた)」 弟:「うん」 兄:「パン工場も壊す」 弟:「うん」 兄:「それから、アンパンマンの顔に水をかける」 弟:「顔がぬれると弱くなるんだよね」 兄:「そうそう。でも、もう新しい顔を焼いてくれる人はいない」 弟:「うん」 兄:「これで、アンパンマンもオシマイだ」 弟:「なるほど(檜山注:正確な表現は忘れた)」 オニイチャン、そういうことを弟に教えるなよ。しかし、ちょっと否

    子供に気付かれたくない事だが現実に目をそらすのもナンだし - 檜山正幸のキマイラ飼育記 (はてなBlog)
    send
    send 2006/05/17
    面白い
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

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

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
    send
    send 2006/04/19
    勉強になる
  • 檜山正幸のキマイラ飼育記 - 「プログラマの常識」ってなによ

    僕は、「プログラマのための***」という続き物をボチボチと(きわめてボチボチと)書いていますが、タイトルに「常識的な知識は仮定するよ」って意味を込めています。んじゃ、「プログラマの常識」って、それなによ? って、実はハッキリしない。 別な事情もあって、「プログラマの常識」をハッキリさせたほうがいいな、と感じたりしてます。客観的な基準なんて求めないのだけど、「プログラマのための***」で暗黙に仮定している常識、それを少し明白にしたいのです、個人的にね。 思い付き順にバババッと並べるけど、次のようなことを知っていて欲しい: コードもデータも(それが所詮ビットコンビネーションだという意味で)一様なこと。 メモリセルには、そのコンテンツ(中身)とアドレスがあること。 コンテンツもアドレスも、やっぱりビットコンビネーションとしては一様であること。 コンピュータの実行は、順次実行以外に、無条件または条

    檜山正幸のキマイラ飼育記 - 「プログラマの常識」ってなによ
    send
    send 2006/01/31
    知らない人は知らないから困ったりする。
  • JavaScriptでカリー化 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JavaScriptでカリー化。ありがち、つうか実際にあるでしょうね。小ネタと思ってやりはじめたら、意外と混乱した。一種のメタプログラミングのはずだが、実際にはテキスト加工処理。 内容: カリー化ってなに? カリー化を行う関数を作る:準備 カリー化を行う関数を作る:テキストのパッチワーク カリー化を行う関数を作る:組み立て ●カリー化ってなに? 2引数の関数f(x, y)に対して、「gがfのカリー化」だとは、f(x, y) = g(x)(y) が常に成立すること -- ゴチャゴチャ説明するより実例実例: functio sum(x, y) { return x + y; } このsumのカリー化の例: function curried_sum(x) { return function (y) {return sum(x, y);} } curreid_sum関数は1引数で、戻り値として関数

    JavaScriptでカリー化 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • JSAN vs. Dojo (モジュールシステム) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    [追記 dateTime = "土曜の午前"]:このネタでこれからも書きそうだし、既にこのエントリーをブックマークされている方もいるようなので、ハブエントリーとして使えるように、最後に関連リンクを付け加えます。[/追記] JSAN.jsにより提供されるJSANモジュールシステムについては以前紹介しました。もう1つ気になってるモジュールシステムがありまして、それはDojo(http://www.dojotoolkit.org/)のものです。 Dojoもザッと調べたので、ザッと(ほんとに概要を)記しておきます。 JSANとDojoは、モジュールシステムに関してだけ言えば、やっていることも機能性もほとんど同じです。モジュールのロードに関して、JSAN.require("Foo.Bar"); と、dojo.require("foo.Bar"); は同じことをします。Dojoには、大域スコープへの登

    JSAN vs. Dojo (モジュールシステム) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 1