タグ

ブックマーク / freak-da.hatenablog.com (4)

  • Clojureにおけるデータ構造の抽象化を理解して独自のデータ構造を実装する Part 1: Collectionとは何か - 本当は怖いHPC

    この記事シリーズでは、プログラマもしくはライブラリ作者が独自のデータ構造を作成する際、それをClojureの組み込みデータ構造と同等に振る舞わせる方法について説明する。このPart 1では、Clojureの組み込みデータ構造がどのような抽象化とデザインの上に構築されているかを見てみよう。最後に、vector型と同じように振る舞うデータ型を定義してみる。 Part 0: 導入 Part 1: Collectionとは何か(ここ) Part 2: Sequenceとは何か Part 3: 独自Vector作成をマクロ化してみる おことわり: この記事は入門では無く、ClojureとJavaの知識をある程度仮定している。 末尾に示した参考文献を大いに参考にさせていただいた。 伝統的なLispにおけるデータ構造 伝統的なLispでは、基となるデータ構造はListである。そもそもLispという名前

    Clojureにおけるデータ構造の抽象化を理解して独自のデータ構造を実装する Part 1: Collectionとは何か - 本当は怖いHPC
    peketamin
    peketamin 2015/08/06
  • URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖いHPC

    POSTするデータを、(プレビューのために)javascriptでGETアクセスするような処理を書いていてハマった話。 発端は、textareaに'(シングルクオートまたはアポストロフィー)が入ると、Railsがそこから先のパラメーターを無視しちゃうっていうこと。いろいろ調べた結果、以下のことがわかった(Railsのバージョンは2.0.2)。 URIを定義する2つのRFC URIの構文はRFCで定義されている。これには2つあって、従来のRFC2396(1998年発行)と、RFC3986(2005年発行)だ。 RFC3986によれば、 This document obsoletes [RFC2396], which merged "Uniform Resource Locators" [RFC1738] and "Relative Uniform Resource Locators" [RF

    URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖いHPC
  • parallel と concurrent、並列と並行の違い - 本当は怖いHPC

    2017/01/10 誤字脱字を修正しました 2016/11/07 内容を修正しました 2010/09/17 文章を修正しました 一般的に、parallelは並列、concurrentは並行と訳されます。検索してもずばり書かれた物がなかったので、僕なりの理解を書いてみます。 (注:言葉の定義の問題なので、複数の流儀があり得ます。端的に言えば、いわゆるCPUSIMD命令を「並行」と見なすかどうかに違いが現れます) 参考リンク: http://d.hatena.ne.jp/NyaRuRu/20060129/p2 http://d.hatena.ne.jp/muimy/20070322/1174526368 一番妥当(だと思う)定義 一言で言えば、 Concurrent(並行)は「複数の動作が、論理的に、順不同もしくは同時に起こりうる」こと Parallel(並列)は、「複数の動作が、物理的に

    parallel と concurrent、並列と並行の違い - 本当は怖いHPC
    peketamin
    peketamin 2014/07/27
    タイムスライスが並行=擬似並列(見た目には同時)、CPUが複数あってそれぞれ同時に処理が走っている=新の並列、なのか
  • 高層ビルのエレベーターホールには、なぜ階数表示がないのか - 本当は怖いHPC

    以前に高橋幸雄先生の授業で聞いて非常に面白いと思ったこと。 オフィスビルとかホテルとか、エレベーターが何基も設置されているビルの場合、エレベーターホールに階数表示が無いことが多い。エレベーターホールで画像検索してみればわかると思う。 これはなぜだろうか。 その理由は、「客がいても、その階を通過することができるようにするため」だ。 基的に、多数のエレベーターを効率よく動かすのは難しい。工夫された高度なアルゴリズムが使われていることが多い。目標は「客の平均待ち時間を短くする」ことだ。ある階でボタンが押された場合、どのエレベーターがその客を迎えに行くか、という判断が平均待ち時間に大きな影響を与える。難しいアルゴリズムの中で、この点がもっとも重要なところだ。 高層ビルの場合、エレベーターはかなりの速度で走っている。既に客を乗せて走っているエレベーターが他の客を乗せるために停止すると、減速→停止→

    高層ビルのエレベーターホールには、なぜ階数表示がないのか - 本当は怖いHPC
  • 1