こんにちは、ゲストさん

Choklogトップ - ランダムブログ - ログイン - ヘルプ

ブログを書く

ブログを書くと、心情が整理されて、とてもよい。

よいツールを作ったものだ、と自尊心も満たされる。まさに今、満たされた感じがする

うまく伝わらない感じ

他人と話すときに、うまく伝わらない感じがするときがある。うまく伝わらない感じはすごく気持ち悪くて、むずがゆい。話がうまく伝わらない理由を二つ考えた(本当はもっとたくさんあると思う)。

1. うまく表現できていない
2. 他人と価値観(及びバックグラウンド)を共有できていない

もちろん、2.の方がずっと深刻な問題だ。2.の問題なのにも関わらず、1.の方を問題と捉えると悲惨な目に会う。うまく表現すればするほど、価値観の相違が顕著になる。「もっときちんと表現できれば、きっとわかってくれるはず」と思えば思うほど、深みに嵌る。

--

古い友だちが好きです。友だちは古ければ古いほどいい。何かをうまく表現できなくても、空気を感じ取ってくれる。価値観及びバックグラウンドは、深く共有できている。近くにいる古い友だちと、もっと古い友だちになりたい。

感情的になる

みんな誰にも似ていないから、人間をカテゴリ分けするなんてことは、できるわけがない。だから、誰のすることも、絶対的に正しくはなくて、個々人の中でのみ正しい。誰のすることも絶対的に正しくないなら、他人に対して「お前は間違っている」と言うのは絶対的に間違いだ。

...と、少し感情的に考えた。

たくさん話すと後悔する。

私は高校一年生レベルの文章を書く

image

「帯」というサービスらしいです。


テキストエリアに日本語を打ち込むと、テキストを解析して難易度を表示してくれます。何をもって「難易度」としているかは、参照されている論文を読んでいないのでわかりません。語彙ベースかな?


面白いなあ。

善人になりたい

誰に対しても悪意なく接することができて、自分のことよりも他人のことを考えられる人間になりたい。そういう人間になることができたなら、死に際に「自分の人生には意味があった」と満足できるのではないか。

どう考えても自分は善人ではなくて、どこをどう変えれば善人になれるのかもよくわからない。

本当の善人は、「善人になりたい」などと願うことすらなく、自然に善人なのかもしれない。自分は善人に憧れるだけで、せいぜい努力しても偽善者にしかなれないのかもしれない。偽善者にしかなれないなら、死ぬまで偽善を貫きたい。善人をよく観察することから始めるべきなのか。スタート地点はどこだ。誰が善人なんだろう。

GREE勉強会「セルの海 マクロの空」

昨日(2008/04/23)、GREE勉強会に出席しました。Mew開発者の山本さんによるLispトークを聞くことができました。「GREEオープンソーステクノロジー勉強会」のサイトから、概要を引用します。


Lisperの僕にはそんな自覚はなかったのですが、Lispに憧れているプログラマもいらっしゃるようです。この講演では、Lispの基本データ型であるセルがなぜ一対のポインタなのか、そしてマクロを使ってどうLispを成長させていけるのかを説明することで、Lispプログラミングの雰囲気を伝えたいと思います。



ということで、にわかSchemerな僕は一も二もなく、この勉強会に飛びつくことにしました。以下は勉強会のレポートです。概ね、資料の通りにお話されていたので、併せて参照してもらえればと思います。また、記憶違いなどがあるかもしれないので、その際はご指摘お願いします。


なお、他の参加者のブログはこちらから参照できます。


--


1. Lispことはじめ

- 黒澤明監督はアカデミー賞の授賞式で、「僕はまだ映画がわからない」と言っていた
- 一方で、私はまだLispがわからない

- Lispの求人数はJavaの求人数の0.2%しかない
- IIJは和田さんと私で、二人もLisperがいる珍しい組織
- SchemeとHaskellとCのポインタがわかれば、Java歴5年の人に2日で追いつける

- 『Little Schemer』と『プログラミングGauche』を読めば、たいていは事足りる

amazon
『The Little Schemer』


amazon
『プログラミングGauche』


- Lispを学べば括弧は見えなくなる
- Lispを学べばインデントしか見えなくなる
- 括弧やインデントはエディタに任せる

2. セルはどうして2つのポインタなのか?

(print (cons 1 (cons 2 (cons 3 '())))) #=> (1 2 3)(print '(1 . (2 . (3 . ())))) #=> (1 2 3)(print '(1 2 3)) #=> (1 2 3)


- 上記の式は全て同じ結果を返す
- (だけど) これが入れ子構造になっているのを理解することが重要
- 入れ子構造になっているのを理解すれば再帰で処理しようと思える

(define member?    (lambda (a l)        (cond            ((null? l) #f)            ((eq? (car l) a) #t)            (else                (member? a (cdr l))))))(print (member? 2 '(1 2 3))) #=> #t(print (member? 4 '(1 2 3))) #=> #f


- 上記の式は再帰の例

(print (assoc "foo" '(("boo" "ワラの家")                    ("foo" "木の家")                    ("woo" "レンガの家"))))


- 二分木も簡単に表現できる
- 逆ポーランド記法も簡単に書ける(資料にコードが記述されています)

- 本質と効率をわけて考える
- Schemeには本質的に必要な物しかない
- 効率は問題になるまで考えない方がよい (from 『珠玉のプログラミング』)

amazon
『珠玉のプログラミング―本質を見抜いたア...』


3. Lispのマクロはどんな風に使うのか?

- 関数は小さく
- 副作用のある関数とない関数を分ける
- 再帰する(高階関数を使う)
- マクロを書く
- Cのマクロは嫌われもの、Lispのマクロはヒーロー
- 直交的なプログラミング(少数のオペレータを組み合わせて多様な意味を表現する)
- DRY(Don't Repeat Yourself)

(資料ではFizzBuzz問題を例にして、それを解くためにマクロで機能拡張をしていく様子が記述されています)

4. データと関数の区別がないとはどういうことか?

- Lispのインタプリタを書けば理解できる

(正直なところ、この辺りから僕(=mahata)の理解が曖昧です)
(ひたすらLispのevalを実装していきました)

- 『LISP 1.5 Programmer's Manual』はLisperなら一度は読むことになる本
- Lispには5つの関数(car,cdr,cons,eq,atom)と2つの特殊形式(quote,cond)しかない

amazon
『Lisp 1.5 Programmer's Manual』


(後は資料を確認してください : 説明できるほど理解できていない...)

5. 感想

Lisperから話を聞く機会など滅多にないので、今回の勉強会は、テーマ発表時からかなり楽しみにしていました。その期待は裏切られず、充実した時間を過ごすことができました。その一方で、資料に対して発表時間がやや短いように思えました。発表の後半はやや加速度がついてしまい、理解が浅くなってしまったように思えます(僕の事前知識が足りない、というのもある)。

もう少し、Lispの勉強をした後で、改めてお話を伺えればいいなあ。そんな機会に恵まれるかわからないけど。

ソーシャルって何

SNSの最初の'S'は「Social」の略なわけです。

Socialは「社会的な」とか訳されるけど、SNS(=ソーシャルネットワークサービス)は、全然、社会を反映していませんよね。mixiとかSNSの代表格みたいな扱われかたをされますけど、すごく仲がよい人も、大して仲がよくない人も等しくマイミクになっていたりするわけです。

「お前は俺のチョーマイミク」

みたいなことはありえない。

よくよく考えると、実社会の縮図をウェブサービスに持ってきてもつまらないですよね。上司がマイミクだったりしたら、職場の愚痴も書けないですよね。ネットワークサービスはソーシャルじゃない方がいいのではないか。

Yahoo! の過疎SNSサービスを使っていて思うのは、これは別に特段優れたサービスではないけれど、そこで「書いた記事を読んでくれる層」が限定されることに価値があるなあ、と思います。

要するに、仲がいい人とか、尊敬する人とかしかその場にいないのですよ。これは快適だ。アンチソーシャルの時代ですね、わかります。

半歩

僕がかなり重度なB'zファンであるということは、その筋の人には有名な話です。ところで、最近B'zの『Action』というアルバムに収録されている「光芒」という曲がマイブームです。マイブームって言葉はもう賞味期限切れなのかな。


amazon
『ACTION』



「光芒」の歌詞に次のような節があります。


消えないTruth すべて請けおって
半歩でも 進めるなら
景色は少しずつ変わってゆく



あー、ダメだ。歌詞とか音に乗らないと感動を伝えられないですよね。ともかく、この詩にグッと来るのです。「半歩進む」ことに躊躇してはならないな、と思いました。だって半歩なんだぜ。たかだか。


がんばります。

勢い

勢いで生きると後悔する。