「最大200文字以内」という条件はいいとして、「正答の直接的な記載を禁ずる」ことと、「プログラミング言語名の記載を禁ずる」という条件がある。」いやしかし正答は「オブジェクト指向プログラミング」しかないのだから当たらないのかな。自分にとってこの2つは限りなくイコールに等しい(※すべてを書ききってはいないのでイコールではない。しかし almost equal to equal ってややこしいな)から直接的記載に見えるんだなあ。■Smalltalkを念頭におく人は(俺は Smalltalkを知らないけど)、オブジェクトの概念が Active Object パターンのそれだと思ってる。乗り越えられない断絶。昔にもちょっと書いてた>20110610。■20110610からリンクしてる先のリンク先にこう書かれてる。「当初は三番目にクックの「手続きによる抽象化」(Object-Oriented Programming Versus Abstract Data Types (PDF))を挙げていましたが、その後の学習で、これは新たなオブジェクト指向の提唱ではなくリスコフの抽象データ型の再定義(整理・分割)であるとの解釈が可能であること、つまり、データ(オブジェクト)に手続きを内包した場合を「オブジェクト指向」、そうでない場合をこれまでどおり「抽象データ型」と呼べばいい…という比較的単純な主張であったと遅まきながら気づくことができました。したがって、二番目の大枠である「型を意識したOO」のバリエーションのひとつとしてこれに含めてよいと判断し思い切ってばっさり削除しました。」俺の理解は「クックの「手続きによる抽象化」」とちゃうかな。PDFは読んでないけど。そして、ばっさり削除する方を選び間違えてると俺は思う。■俺が OOP の必須要素をただの現実的な解・手段であるとして削ぎ落とし無視してる可能性が微粒子より大きいレベルで存在してるかな。■インタフェイス、テンプレート(ダックタイピング)、コンセプトの置き所は Design by Contractの周縁? OOP、DbC のその先は関数型プログラミングに由来する何かを引っぱってくるのだろうか(もう来てる?)。「なぜ関数プログラミングは重要か - 関数型プログラミング言語は二つの新しいタイプの糊を供給する。すなわち、高階関数と 遅延評価である。これらの糊を用いて新しいわくわくするような方法でプログラムを簡単にモジュール化できる」。他には宣言型プログラミング言語と分類されるらしい SQL (ja.wikipedia.org)から何か引っぱってくるのだろうか。それなんて LINQ (msdn.microsoft.com)?■LINQのベース技術がなかなか興味深い。リンクした MSDNからキーワードを抜き出すと「
ラムダ式と式木(Expression Tree)」Expression Treeは式を実行時に操作可能な対象とするしくみ。「
拡張メソッド - 拡張メソッドとは、動的言語のコミュニティでは一般的になった "duck typing" の柔軟性と、静的に型指定される言語のパフォーマンスとコンパイル時検証を組み合わせたものです。」「
クエリの遅延評価 - クエリが評価される時点に達すると、IQueryable<T> が列挙されるため、データ ソースは全クエリを 1 つのバッチで表現する式のツリーを処理できます。」「
データ中心のプログラミングスタイル - LINQ プロジェクトでは、状態と動作の両方を兼ね備えた完全なオブジェクトではなく、主に構造化された値に静的な "形状" を提供することを目的として何らかの型が存在するような、データ中心のプログラミング スタイルをサポートします。このような論理的結論に達する前提を考えると、多くの場合、開発者の関心事項のすべては値の構造にあり、その形状に名前付きの型が必要になることはほとんどない点にあります。これが "匿名型" の導入につながりました。」データ中心のプログラミングスタイルだってさ。たとえばこの日記で関連するエントリを5つ表示したいと考えたとき、ファイルからエントリを配列に読み込んで、スコアを計算して、ソートして、表示するために体裁を整えて、それぞれの行程に設定ファイルに書かれたオプションがあって、速度とメモリ使用量を最適化するハックがあって、と、個別具体的でとっちらかったファイル操作・配列操作・DB操作を順々に並べたくないというのはある。■関数型由来でも宣言型由来でもそれが、これまで操作対象ではなかったもの、これまで手続き・実行軸に沿って並べられていたものを取り扱う新しい方法であり、「ストレートなコードを直列につなぎ合わせて入力を望みの出力へ導きたい。直列でなければ Map & Reduceで。(20150514)」に対する答えなら嬉しい。■OpenCLとかも、計算資源としての GPUの他に実行時コンパイルの側面が興味あるけど、言語の後ろに隠れてくれないかなあ。■@2015-12-06 これぐらい書けるといいのにね。「オブジェクト指向プログラミングとは結局なんなのか | 黒曜の吹き溜まり」■@2015-12-17 読む。「技術解説 – LINQ – kekyoの丼」
125 N・m
だという。すごいねーと言われても、それがどれだけ強いのか見当がつかない。それはよろしくないね。トルクレンチ持ってないしね。■検索したりはしない。そんなお勉強は嫌だ。でも 9.8倍すると kgf・m を N・m に換算できることはどこかで読んだ。1 kgf・m = 9.8 N・m
ってことだ。■9.8っていうのはたぶん g(重力定数) ってやつだろう。物理は習ってないので正式には知らないけど。そうすると N・m という単位は kgf・m から地球固有の定数を外出ししたユニバーサルな、文字通り全宇宙的に通用する単位ということだ。キログラム原器を置き換えようっていうのも同じような話なのか。宇宙人に対して 1 kg であるとはこの塊とつり合うことを指しますとは説明しづらいもんな。「どれだけ?」「こんだけ」みたいなほほえましいやりとり。■洗濯表示の例(20141102)と同じくドメスティックな方がわかりやすい。125 N・m は 9.8(およそ10)で割っておよそ 12.5 kgf・m
だ。■kgf・m というのは 1メートルの棒の先に 1 kg のおもりをぶら下げて反対の端を手に持ったときに感じられるのが 1 kgf・m だとかそんな感じ。■ところでリアホイールアクスルナットの大きさは 27 mm だ。どこが 27 mm なのか、たぶん六角形の向かい合った辺の間隔が 27 mm なのだと思うけど、これに合うメガネレンチの全長はだいたい 30 cm ちょっと。およそ 3分の 1メートル。これをてこの原理というのか知らないけど、必要な力は 1/3 に対応して 3倍。12.5 kgf・m = 37.5 kgf・(m/3)
■kgf ってどういう単位だろう。kg重って読むんだとしたら知らないではないけど。f って Forceの頭文字だろうか。37.5 kgf っていうのは体重が 37.5 kg の人に全体重をかけて踏まれたときに感じられる重さ(力?喜び?)だよね。圧力との区別が難しいけど。■結論。125 N・m というのは地球より重力が 3割ちょっと弱い場所でメガネレンチに乗っかったぐらいの締め付け。地球では、レンチに乗っかったり飛び跳ねたり、バイクの重さと脚力・背筋を利用したクソぢからまではいらないみたい。でも腕力(というか大胸筋?)だとどうだろう。ヒョロガリの全力を超えてそう?■27 mm の車載工具は全長が 15 cm くらいなんだけど、フロント用の 22 mm との両口で延長ソケットもないんだけど(22 mm のナットでメガネとメガネを連結するの?)、そうすると 85.0 kg の体重が必要になるのかな。飛び跳ねてもぴくりとも動かなかった。■六角形の辺と辺の間隔を二面幅というらしい。リアホイールアクスルナットの二面幅が 27mmで、ネジ径が M20。……20ミリ?g 検索語 site:
を入力するというのは、怠惰の度合いが足りないというふうに言える。まだまだなのだな。■ちなみに g はグーグル検索で、y はヤフー検索、a はアマゾン検索、w は Wikipedia(ja)検索にしてる。専用の検索ボックスは Bing検索。Ctrl+↑(↓)で検索ボックスのエンジンを切り替えられるけど、これをするとテキストを選択しての右クリックメニュー > "~で検索" まで連動して変わってしまうので、Bingに固定。■はっきり言ってプログラミングなど自分の興味の対象に関する検索は googleの方が強い。Bingのスコアリングは俺に合っていないし、Bingでだけ検索して終わりにはできないほど、Bingは重要な検索結果を漏らしている。あと Bingの画像検索は何も表示しない、スクリプトなしでは。あと googleはなにげに YouTube検索が便利。YouTubeはもはや完全に Flashを要求しない動画サイトであり、そこに限定して検索できるのが便利。■SearchWPというアドオンで、検索ボックスに入力した単語はページ内検索を実行するボタンに変化する。そういうわけで専用の検索ボックスが必要。ハイライト機能もあって、これはうるさいのでオフにしてるけど、どちらもグーグルツールバーの機能だったんだよね。なくなったけど。