トップ «前の日記(2007-11-22) 最新 次の日記(2007-11-24)» 編集

日々の破片

著作一覧

2007-11-23

_ 他人に厳しい人たち

ワーキングプア―日本を蝕む病(NHKスペシャル『ワーキングプア』取材班)

アマゾンの書評がものすごいらしいので見に行ったら、本当にそうだった。とはいえ、実際には4星とってるので、高評価が続いたあとになって、こっそりと低評価軍団が襲来したというところなのかも。

目の前の人に厳しくなるってのは、自分の足が引っ張られるからとか、正当化のための理由は確かにあり得ると思うんだけど、こういうアカの他人に厳しい人ってのは、どういう倫理感を持ってるんだか、おれには非常に不思議だ。

ここからジャンプした

_ Cで多態

木村さんのところ) 実例を見たければ、%JDK_HOME%\include\jni.hを見るとか
struct JNINativeInterface_ {
    void *reserved0;
    void *reserved1;
    void *reserved2;
 
    void *reserved3;
    jint (JNICALL *GetVersion)(JNIEnv *env);
(たくさん続く)
あるいは、Win32SDKのCOM周りのヘッダ見るとか(これはoaidl.h)
#else 	/* C style interface */
 
    typedef struct ICreateTypeInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            ICreateTypeInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            ICreateTypeInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            ICreateTypeInfo * This);
(たくさん続く)
いくらでもサンプルはありますね。

あと、手元の石田訳K&R第2版の1989年版だと、

a = f(x,y); で良いと明確に規定されたのは、
どころか
第1版では型は"関数"に限られ、関数へのポインタを介する呼び出しには、明示的な*演算子が必要であった。
(上掲書P.247 以下同じ)
「必要」であったです。
ANSI標準では、ある種のコンパイラを尊重して、関数への呼び出しとポインタで指定される関数に同じ構文を許している。もちろん古い構文も依然として使用可能である。

「許している」という言葉のニュアンス(空気とかふいんきとかだ)を尊重すれば、「無意味なことをしてまどろっこしくしているだけ」という言葉は、無知としか言えないな。許されてるだけの話なのにね(「古臭い書き方ですね」というだけのことだ)。

あと(ここからは別の話題)、同じ場所に引数とパラメータの違いが書かれているのだけど、このあたりはごっちゃにしてる人(おれも面倒だから全部引数と書くときはある)は多い。

引数ということばは関数呼び出しで渡される式に対して使われる。一方、パラメータということばは、関数定義によって受け取られる、あるいは関数宣言で記述された入力オブジェクト(あるいはその識別子)を表す。"実引数(パラメータ)"および"仮引数(パラメータ)"ということばが同じ区別を示すのにそれぞれ使われることもある。

(ただ、思うに、「引数ということばは」の個所は「引数(argument)ということばは」のように、英単語も付けておいた方が良かったのにね)

あと、原文がどうなっているかは、これまた別の話で、上はあくまでも日本でのCのバイブル石田訳本にどう書かれているか、だ。もっともそれが水準器になっているわけだからだからどうともならないわけだけど。(ここらへんには指摘はなかった

Javaを独習する前に読む本(青木 峰郎)

引数とパラメータの区別をきちんと解説している良心的な初心者用入門書もある。

追記:それにしても、なんでこの日本語が読めないんだ?(多分、実際には読まずに印象と風聞で★1つをつけてるだけなのではないかなぁ。最初のエントリと同じことかも)

プログラミング言語C 第2版 ANSI規格準拠(B.W. カーニハン)

勝手に正誤表を見ても、天地がひっくり返るほど致命的なものはないし。転写型暗記ができる人には向かないとかなのかな。

さらに追記:なんとなくだが、「ある種のコンパイラ」「敬意」あたりから、プラガー(綴り忘れた)の作っていたコンパイラではないか? とか

_ Whitesmithインデント

上でプラガー(綴り忘れた)とか書いてから、ちょっと気になっていろいろ見てたら、Whitesmithインデントスタイルについてのページが見つかって(Plaugerだった。プラウガーかな? フランス人ならプロージェで一意に決まるんだが、英語は良くわからない)、そのあまりの変質者ぶりと、それに対して

(according to the Jargon File), Whitesmith is actually more common than K&R among C/C++ programmers

というコメントの無茶っぷりにびっくりする。このスタイルがモアコモンか?

でも、確かにブロックの開始と終了がブロックそのもののであるならば、それほど無茶でもないのかな? いや、おれはこれはだめだな。

_ アルカン

やっぱ、アルカンはええのう、と何度も聴く。

Symphony for Solo Piano(Valentin Alkan)

(ソロピアノのための交響曲が入っている)

リストにもあるが、ピアノはオーケストラエミュレータだから、交響曲をピアノで表現できるわけだ。

ベートーヴェン:交響曲第5番ハ短調「運命」(リスト編)(紙ジャケット仕様)(グールド(グレン))

えーと、つまり、フランツリストの時代だって、オーケストラは金も場所もかかる。楽団員を集めるわけなので時間も限定される。

しかし、エミュレータを使えば、超絶技巧のピアノ野郎と良く響くピアノさえ用意すれば、その場所(サロン、ホール、広場)でオーケストラを聴くことができる。

だから、人気作曲家の交響曲の忠実なエミュレータは人気者だ。リストのコンサートといえば、それは何よりも、ベートーヴェンの交響曲が聴けるチャンスであった。あの時代のパリの人々は、ベートーヴェンの交響曲をフランツエミュレータで経験していたのであった。

というわけでリストのベートーヴェンの楽譜を読むと、オーケストレーションとピアニズムの差異をどうエミュレートするかについてのリストのデザイン戦略がうかがえて、おもしろいのなんのって。

でも、アルカンになると、他人の曲より自分の曲というわけで、交響曲を自分のためにピアノで書き、ピアノで演る。でも、これには問題があって、リストと違ってピアニズムが勝って(かってじゃなくてまさって)しまうのであった。ところどころエミューションが見えるところもないわけではないが、やはりおれにはピアノに聴こえるなぁ。

Concerto for Solo Piano Op 39(Valentin Alkan)

これもおもしろそうだ。ピアノのための、ピアノ協奏曲。メタにメタを重ねているな。今度、買おう。

で、思い出したが、以前ベルリオーズの幻想交響曲をリストがピアノにエミュレートしたのをホグウッドじゃないけどそんなような名前のピアニストがLP化したのを持ってたけど、あれはすごくおもしろかった。っていうのはベートーヴェンと違ってベルリオーズの交響曲用のテンプレートというかモデリングツールはピアノじゃなくてギターだから、ピアニズムに合致しない部分が多いのだ。そこをリストが強引にピアノでエミュレートしているため、メタモデル(ギター)→モデル(交響曲)→メタモデル(ピアノ)という妙な三角構造になってしまって、とんでもない音世界が構築されていたからだ。あれは変だったな。もう一度聴いてみたいな。

追記:さがすとそれなりに見つかるな。おもしろいからだな。

Liszt Arrangement of Symphonie Fantastique(Berlioz)

Symphonie Fantasique(Berlioz)

Symphonies Fantastique(Liszt)

しかし、どのピアニストも知らん。最後のやつには評がついてるが、そこで比較されているペトロフとデュシャブールってのは見つからないし、思い出したがおれが聴いていたのは、レスリーハワードみたいだ。

本日のツッコミ(全6件) [ツッコミを入れる]
_ きむら(K) (2007-11-23 11:09)

情報ありがとうございます。K&R1はたぶん処分してしまっているのであてがありませんでした。<br>#国会図書館にはそうはいけないw<br>#って今の版からの引用でしたね<br>>「必要」であったです。<br>これはわたしの書き方が悪かったです。*抜きの記述を許す仕様の<br>コンパイラがあって、それを追認したのではないかと思ってちょっとぼかしました。<br>裏が取れればはっきり書いたんですが。<br>何もないところからいきなりあの仕様は出てこないんじゃないかなあと。<br>> 無知としか言えないな。<br>はう。すみません。

_ arton (2007-11-23 11:37)

え、「無意味なことをして……」って、木村さんが書いたんじゃないですよね? なんで、木村さんが謝るの?

_ きむら(K) (2007-11-24 01:38)

いや、引用部分ですけど、artonさんの指摘は自分にも向いてるんじゃないかなあと。<br>あと、Plauger はCマガジンではプラウガーという表記でした<br>#連載記事がありました(もちろん翻訳)<br>ついでに脱線するとポインタ経由で関数を呼び出すのに、(*fp)() を使うようにしているコーディングルールが<br>あったと思うのですが見つかりませんでした。<br>GNU coding standard あたりにあったような気がしたんですが。

_ arton (2007-11-24 02:53)

全然、木村さんには向いてませんよ。三田なんちゃらはどうでも良いけど、無知から来る罵倒(というほどでも無いか。最初見たとき、なんて下品な言い方だとむかついたけどちょっと過敏だったかも)は見ていて気分が悪いわけで、むしろ木村さんはたしなめられていたわけなので、補強したというか。

_ arton (2007-11-24 02:56)

>(*fp)() を使うようにしているコーディングルール<br>ポータビリティ(K&R前提)とかかな。

_ とおりすがり (2007-11-28 13:23)

>このスタイルがモアコモンか?<br>むかーしの MS System Journal とかでよくみたような気が。<br>個人的にはこのスタイルは変態だとおもいますが。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え