hacked by sH5abeT


RHG読書会

東京

RHG読書会について

RHG読書会(東京)は、SICP読書会の影響を受け、また、「Rubyソースコード完全解説」(RHG)は良い本なのでみんなで読もう、ということで始まった読書会です。長らく曙橋(国電の最寄駅は四ツ谷または市ヶ谷)のタイムインターメディアさんに場所をお貸しいただいて開催されていました。何回か流浪を繰り替えした後、現在は東京大学大学院 情報理工学系研究科 秋葉原拠点で開かれています。

参加者の気まぐれや、その場の勢いなどで、次に読むものが決まる傾向があります。

タイムインターメディア本社案内図

参加希望の方は下記 ML に参加してください。

from ([ruby-list:36911])←リンク先にあるアドレスは古いものなので注意

現行のアドレスは↓こちら

興味のある方、参加したい方は、
  To: rhg-tokyo at quickml.atdot.net
  Cc: maki at rubycolor.org
宛に、RHGをどこまで読んだか(読んでないか)も合わせて書いて
メールしてみてください。(at -> @)

(次に RHG を読むことになるのがいつかはわかりませんが一応?)

現在停止しています → アーカイブ(2006-11-28以後 2010-07 初頭まで。以後の内容を知りたいかたは誰かまで連絡を。特に何もありませんが)

大阪

どれぐらい集まるだろ? 買ったけどまだちょっぴりしか読んでないや。 一人で目的もなく読める自信は全くないので、読書会をするなら行きます。

本は拉致事件の時には持って行くつもりなので、サインペンよろしく(笑)>ボス

2003 年 1 月、Rubyist連続多発拉致事件勃発

女性の話は今のところ関西では心配する必要がないな…。

らぐやねん、2003年新年会の話題

決めること

RHGメモノート

RHG/第2章 RHG/第3章

RHG読書会

RHG読書会::東京 Rubyではじめるゲームプログラミング

RHG読書会

RHG読書会::東京 Practical Common Lisp に予定変更

第一回

RHG読書会::東京 Rubyではじめるゲームプログラミング

RHG読書会

RHG読書会::東京 ふつパイラ篇

RHG忘年会

第七回

第六回

(たぶん)第五回

15章

16章

17章

紹介がメインの章

たぶん第三回か第四回なのでまあ第四回でいいか

前座

第12章

第13章

第14章

次回は

第二回

4 章

5 章

第一回

1 章

2 章

3 章

二次会

RHG読書会::東京 ふつパイラ篇

RHG読書会::東京 Practical Common Lisp

RHG読書会

第十五回(最終回)

第十四回

第十三回

26章

27章

28章

二次会

第十二回

24章

25章

2次会

第十一回

第十回

第九回

第八回

第17章 オブジェクト指向再入門:クラス

第18章 FORMAT の手習い

2次会

第七回

第15章 実践:パスネーム可搬ライブラリ

第16章 オブジェクト指向再入門:総称関数

2次会

第六回

第13章 リストの向こう側:コンスセルの別用途

第14章 ファイルとファイルI/O

二次会

第五回

第11章 コレクション

第12章 リスト処理: やつらがLISPと呼ぶ理由

第四回

7 章

第三回

5 章 関数

6 章 変数

2次会 (プチ忘年会とか) 、雑談の話題

第二回

stream 中継終了

4 章

読取器と評価器の 2 段階

S 式 (syntax) と Lisp 式 (semantics)

S 式になる時点で整数と有理数は既約化されてしまう

初めての人のためのLISP asin:4781904548 は、やはりすごい

第一回

1 章

(原)著者は二世Lisper (!)

2 章

Emacs にいやな思い出があるなら、Lisp in a Box を Emacs 風のエディタを備えた IDE だと思えばいい - それができるなら苦労しない

21-bit Unicode って? UTF-16 な空間の大きさ

拡張子 .cl って使うか?

Deep Space 1 に搭載の REPL のエピソードと、「深宇宙へと」はピンと来るか?

3 章

CD とレコード(DBのレコードと、音盤のレコードをかけているかも)

format のフォーマット文字列は printf や Python, Ruby の String#% 演算子より「格段に複雑になっているわけじゃない」そうか?

クロージャについての説明は難しい。いつどう説明するか

"-" とか "," のように書かないとわからない。英語だとスペースで区切られてる

RHG読書会::東京 Practical Common Lisp

RHG読書会::東京 RubyistMagazine出張版・コラム

RHG読書会

サポートページ <URL:http://i.loveruby.net/ja/rubimabook/>

第三回

書き下ろしの章を読みます

第二回

西山さんのコラムから

第一回

2007/5/19(土) タイムインターメディア 2F会議室にて。 13:00 -

巻頭言

美しいプログラム……(まつもとゆきひろ)

3タブ同盟は滅びぬ。何度でもよみがえるさ!……(ただただし)帯で...

わたしの開発スタイル……(関将俊)

動作するきれいなコードのために……(角谷信太郎)

雑談

二次会

RHG読書会::東京 RubyistMagazine出張版・コラム

RHG読書会::東京 入門JavaScript

第四回

2007/4/14 (土) タイムインターメディア 2F会議室にて。 13:00 -

第三回

2007/2/10 (土) タイムインターメディア 2F会議室にて。 13:00 -

『入門JavaScript』(久野靖、ISBN:4756138713)の続きから。

夕方から久野先生がいらっしゃいます。

第二回

2007/1/13(土) タイムインターメディア 2F会議室にて。 13:00 -

『入門JavaScript』(久野靖、ISBN:4756138713)の続きから。

二次会

第一回

2006/12/23(土) タイムインターメディア 2F会議室にて。 13:00 -

『入門JavaScript』(久野靖、ISBN:4756138713)を読みます。

二次会

正誤表

RHG読書会::東京 入門JavaScript
RHG読書会::東京 Revolution::ふつうのHaskellプログラミング

RHG読書会::東京 Revolution::ふつうのLinuxプログラミング

次は Haskell 編

ふつうの Haskell プログラミングは RHG読書会::東京 Revolution::ふつうのHaskellプログラミング として専用のページを作りました。

次回のも Pre 「ふつうの Haskell プログラミング」読書会って扱いで良いのかな?

第八回

2006/4/15、タイムインターメディアにて。第15章から

無事最後まで読み終わる

第18章

二次会

第七回

2006 3/19 (注意:変更されました!) タイムインターメディア 2F 会議室にて 日曜日につき、ビルの玄関が締まっています。ビルの入りかたはMLで尋ねてください。

「ふつうのHaskell」読み

第六回

2006 2/25

第13章

休憩時間

第14章

第五回

第11章から

2006 1/21

メモ.途中寝てしまったのでいい加減.

11.1

11.2

11.3

12.1

特別編

2005-12-10(土)タイムインターメディア 2F会議室にて 13:00 -

特別編ということで RHG読書会::東京 Sound Stage にまとめておいた方が良いと思ったけど、安全のため今回やるものに対するログを書くのは禁止 ([rhg-tokyo:604]) で、飲み会の内容ぐらいしか書くことないならわざわざ別のページでやる必要ないかも。

COINS の話

忘年会

二次会

第四回

2005-11-19(土)タイムインターメディア 2F会議室にて 13:00 -

第八章 (pp.171 8.2 日本語文字列処理と国際化から)

第9章

第10章

次回は

第11章から。

二次会

第三回

2005-10-22(土)タイムインターメディア 2F会議室にて 13:00 -

今回はネットワークに繋がらなかった時間があるため、確認せずに憶測で語られている箇所がある。

はじまるまえ

第六章

第七章

第八章

次回は

§8.2から。

二次会

第二回

2005-09-10(土)タイムインターメディア 2F会議室にて 13:00 -

第四章 Linux とユーザ

第二部 Linux プログラミングの根幹

第五章 ストリームにかかわるシステムコール

次回は

第六章から。

二次会

第一回

2005-08-20(土)タイムインターメディア 2F会議室にて 14:00 -

まえがき

第一章

第二章

第三章

次回は

第四章から。

二次会


*1だったと思う。記憶が曖昧

RHG読書会::東京 Revolution::ふつうのLinuxプログラミング

RHG読書会::東京 Sound Stage

再び読書会へ

ふつうのLinuxプログラミングは RHG読書会::東京 Revolution::ふつうのLinuxプログラミング として専用のページを作りました。

美しい日本のMLコンパイラを読む会

2005-07-23 (土) タイムインターメディア 2F会議室にて 13:00 -

<URL:http://min-caml.sourceforge.net/>

発表資料

Rubyistのための超音速ML入門

>
 ふくもり
 ---------------------
 SML しかやってない(スピーカ)
  OCaml は実はいちやづけ

 オーディエンス(の一部)も(わらい)
 ---------------------
 とりあえず factrial

 let rec factorial n =
       if n = 1 then 1 else
       factorial (n - 1) * n

 でも,,,
 本命は

 let rec factorial = function
       |1 -> 1
       |n -> factorial (n - 1) * n

 fun と function の違い

 ---------------------
 対話型環境を使ってみる

 Cigwin だと DL のローディングでアレ
 MinGW を使えばたぶん幸せ
 ---------------------
 ふつ〜の計算

 # 123 + 456;;   ";;" <- これが付くと「ここで評価しろ」
 -:int=579

 "-:" ってのは
 "名前:", 捨てちゃったから "-"
 ---------------------
 # 123.0 +. 456.0;;  ( float の足し算が "+." )
 -:float = 579.

 Ocaml には単項 - がある
 ---------------------
 暗黙の型変換がない

 123.0 + 456;;
 ---------------------
 # 123.0 +. float_of_int 456;;
 -:float = 579.

 float_of_int は "float" でもいける(?)
 ---------------------
 変数の定義

 # let a = 1;;
 val a:int = 1

 # let x = "abc";;
 val x:string = "abc"

 型が表示される
 一行で複数...
 let x = "abc" and a = 1
 ---------------------
 let rec a = 1 and b = a とかすると
 "This kind of exp... is not allowed"
 ---------------------
 関数の定義

 関数の定義も let
 #let f x = x + 1;;
 val f:int -> int = <fun>
 型が表示  , じつは + で型推論が走っている
 ---------------------
 #let f x = x;;
 val f:'a -> 'a = <fun>
 ---------------------
 #let f x y = (x = y);;
 val f : 'a -> 'a -> bool = <fun>
 ---------------------
 #let f = f;;
 ????
 ---------------------
 # let g x y = x * y;;
 val g : int -> int -> int = <fun>
 SML では複数引数っていうか 1 個のタプルというスタイルが
 ふつう.OCaml ではこういうカリー化がふつう

 ηエクスパンションができない(?)
 ---------------------
 関数と変数の区別は
 ---------------------
 無名関数
 --
 以下は構文糖
 let f x = x + 1
 let f = fun x -> x + 1
 ---------------------
 関数型言語であるからして....

 変数に代入(変更)はできない

 "()" って何よ?

 #let counter = ();;
 val counter:unit = ()

 関数は同じ引数に対しては同じ値を返す
 ---------------------
 そのためのツール
 ---------------------
 リスト
 #[1;2;3];;
 -:int list=[1;2;3]

 タプル
 #(1,2,3);;
 -:int*int*int=(1,2,3)
 ---------------------
 リストのいろいろ

 #1::[2,3];;
 -:int list=[1;2;3]

 #1::2::3::[]
 -:int list=[1;2;3]
 ---------------------
 レコード型

 Ocaml では定義必要,SML では必要ない.
 (ほんとに必要?...)

 #type rt = {a:int; b:string};;
 type rt={a:int; b:string;}

 #let rv = {a=1; b="xyz"};;
 val rv:rt={a=1; b="xyz"}

 (OCaml ではぜんぶ type, SML では datatype)
 ---------------------
 ヴァリアント型

 #type vt = Apple | Banana | Orange;;
 type vt = Apple | Banana | Orange

 # let vv = Orange
 val vv:vt=Orange
 ---------------------
 引数が付くヴァリアント型
 ---------------------
 パターンマッチング

 let recc pp_list = function
       | [] -> ""
       | [x] -> x
       | x::xs -> x ^ " " ^ pp_list xs

 "^" は文字列の連結
 ---------------------
 ヴァリアントに対するパターンマッチング
 ---------------------
 モジュール
 ---------------------
 標準ライブラリ

 map
 # List.map (fun x -> x + 1) [1;2;3];;
 -:int list = [2;3;4]
 ---------------------
 List.fold_left
 ---------------------
 命令型処理

 # let counter = ref 0;;
 val counter : int ref = {contents = 0}
>

MinCaml を読む

>
 MinCaml とは

 OCaml のサブセット

 あるものとないもの

 あるもの
 ・型推論
 ・基本型
 ・派生型
 ・高階関数
 ないもの
 ・パターンマッチング
 ・
 ・

 モジュール

 12個

 yacc と lex も使っている

 syntax.ml -> Syntax モジュール
 typing.ml -> Typing モジュール
 ...

 ファイル名をキャピタライズしたのがモジュール名

 .mli モジュールインタフェース
 ----
 .mli インタフェースを押さえる

 モジュール名.f が主要な関数
 ----
 モジュール間のデータの流れ
 ずらずらと一気通貫に書く

 "モジュール.f" これは作者の流儀.
 f だけ export
 でもたまに g も export している.
 ----
 データ型定義を押さえる

 なんとか.t

 「K正規形」は context normal form (?)
 "??? ML Kit" というコンパイラキット (?)
 A正規形

 Syntax.t 構文の時のデータ型

 KNormal.t

 K正規形 - 引数が全て変数か定数 (プライマリ)
 ツリー
 ----
 型の表現 Type.t

 なんで関数引数についてはリストになってるのか?
 カリー化されてるならいらない
 タプルになってるにしても(タプルがあるんだから)いらない
  -- uncurried とコメントがある
 ----
 重要な変数とイディオム

 typing.ml とかで出てくる env という変数は

 Id.t (名前をキーとするMap)
 値は型だったり別名

 M.empty を初期値とし,再帰処理でこれをひきまわす
 --
 M.add x t env

 ex)
 M.add "a" Type.Int env

 env に "a"→Type.Int というマッピングを追加
 --
 M.mem x env
 x に対応する型・別名がenvに存在するか(member)

 etc
 ----
 型推論

 Typing モジュールで実行

 Syntax.t から Syntax.t への変換
 --
 Typing.f -- 外とのインタフェース

       v-- Syntax.t が渡されてくる
 let f e =
    extenv = M.empty
    ...
 --
 Typing.g -- 型推論本体

 let rec g env e = ...
    try
       match e with
       |Unit -> Type.Unit
       |Bool(_) -> Type.Bool
         --
       |Add(e1,e2)|Sub(e1,e2) ->
          unify Type.Int(g env e1);
          unify Type.Int(g env e2);
          Type.Int

 let x = e1 in e2 の型推論

       |Let((x,t),e1,e2)->
          unify t (g env e1);
          g (M.add x t env) e2

 では Typing.unify の中身は?

 let rec unify t1 t2 =
    match t1 t2 with
      | ...... (* 同じ型なら同じで ok *)
      | ...
 Var の場合
      |Type.Var({contents = None} as r1), _ ->
         if occur r1 t2 then raise (Unify(t1, t2));
         r1 := Some(t2)

 --

 KNormal.f

 Syntax.t から KNormal.t に

 KNormal.g

 (ごめんなさい,沈没しました(記録者))
>

二次会

なでしこと HSP の言語処理系を学ぶ会

2005-06-18 (土)タイムインターメディア 2F会議室にて 13:00 -

HSP

なでしこ

二次会

鈴木さんを囲む会

2005-05-14 (土)タイムインターメディア 2F会議室にて 13:00 -

(メモ消失)

二次会

三次会

arton さんを囲む会

2005-04-16 (土)タイムインターメディア 2F会議室にて 13:00 -

発表資料など: <URL:http://arton.no-ip.info/diary/20050417.html#p01>

二次会

Ruby On Rails について知る日なの?

2005-03-19 (土)タイムインターメディア 2F会議室にて 13:00 -

前座

高橋先生による WebApp 講座 〜 Rails 講座

二次会

YARVの発表会なの!

2005-02-12 (土)タイムインターメディア 2F会議室にて 13:00 -

YARV未踏発表準備

チョコレートが!

二次会

このまま名前は RHG 読書会なの?

2005-01-15 (土)タイムインターメディア 2F会議室にて 13:00 -

RHG 読書会準備会

次に読む本の候補

もう一度読みたいという人がいれば、その人達で独立して RHG 読書会

Ruby の会新年会


*1だったと思う。記憶が曖昧

RHG読書会::東京 Sound Stage

RHG読書会::東京 Reloaded

特別編

読書会選定会とかYARV未踏発表資料お披露目などは RHG読書会::東京 Sound Stage に移動

第十六回

2004-12-18(土)タイムインターメディア 2F会議室にて 13:00 -

始まる前

17章: 動的評価

18章: ロード

19章: スレッド

20章: Ruby の未来

二次会

三次会

第十五回

2004-11-6 (土) タイムインターメディアにて 14:00 -

始まる前

16章: ブロック

二次会

読書会が一次会なのか……

第十四回

2004-10-16 (土) 13:00 - 東京農工大学工学部7号館

始まる前の雑談

第14章 4節 代入と参照

第15章 メソッド

飲み会

第十三回

2004-09-18 (土) 13:00 - 東京農工大学工学部7号館

次回

会場不確定につき未定

第14章 コンテキスト

中休み

飲み会

第十二回

2004-08-21 (土) 13:00 @ 東京農工大学工学部7号館

第12章 構文木の構築

(12.4「ローカル変数」から)

第13章 評価器の構造

飲み会

第十一回

2004-07-17 (土)

前座

pp. 311 11.7 tLPAREN_ARG(2) 〜

中休み

12章 構文木の構築〜

飲み会

ジョナサンに移動

第十回

2004-06-12 (土)

第11章「状態付きスキャナ」11.1〜11.7.2 (p.289〜p.313)

読書会

前座

pp.289- 状態付きスキャナ

飲み会移動前

飲み会

第九回

2004 5/15 (土) 13:00〜@タイムインターメディア

近来稀に見る進捗の遅さを記録した。

p.267 10.3 「スキャナ」

宴会

第八回

2004 4/17 (土) 13:00〜@タイムインターメディア

8 章 (Ruby言語の詳細) はパス。

第9章「速習yacc」

二次会

三次会

第七回

2004 3/20 (土) 13:00〜@タイムインターメディア

当日は祝日のため、ビルの入口が閉まっており、通用口からの出入りになります。

議事録

第6章

休憩

第7章

飲み会

その後

第六回

2004 1/31(土) 13:00〜@タイムインターメディア様

内容

今回はまったり気味

宴会

あまり思い出せない

第五回

2003 12/27(土)13:00〜@タイムインターメディア様

今月も書記ってない・・・。

出席者(敬称略)

宴会

読書会

宴会

第四回

2003 11/29 (土) 13:00〜@タイムインターメディア様

''15日から29日に変更になりました!''

3 章『名前と名前表』から

ガーン、誰も書記してないじゃん。

出席者(敬称略)

読書会

飲み会

順番や内容いいかげん。

第三回

2003 10/18(土) 13:00〜、タイムインターメディア様

次は2章から。

出席者

議事録

飲み会

第二回

書き忘れてました。RHG再読ということになるそうです。

2003 9/20 13:00〜, タイムインターメディア様

出席者

たくさん。敬称略。

スペシャルゲスト

shiroさん

議事録

今日は非常に盛りだくさんでした。よく追えていないので足してってください。

自己紹介とか

ソースコードの読み方

一章

飲み会

第一回

2003 8/30, タイムインターメディア様

なにやってたんだか、よくわかりません。

なんとなく飲み会

もうちょっと飲み会


*1だったと思う。記憶が曖昧

RHG読書会::東京 Reloaded

RHG読書会::東京2003 (「〜」が取れた)

(Jan. 2003〜Jul. 2003)

7回で読破、終了!

第1回

日時

2003-01-26 13:00-18:00

場所

東京・新宿・曙橋 タイムインターメディア様の会議室

参加者

15名 (うち女性0)

スペシャルゲスト

参加者のみなさま :-)

概要

自己紹介、冒頭を軽く流して、第2章・第3章

進行

なにとはなくmakiさん?

議事録

(担当: みかみさん)

第2回

日時

2003-02-15 13:00-18:00

場所

東京・新宿・曙橋 タイムインターメディア様の会議室

参加者

10名くらい (うち女性0)

スペシャルゲスト

参加者のみなさま :-)

概要

第4章先頭から第5章6.2節まで

進行

なんとなくmakiさん

議事メモ

第3回

日時

2003-03-15 13:00-18:00

場所

東京・新宿・曙橋 タイムインターメディア様の会議室

概要

5.6.3 から

議事メモ

5 章

6 章

7 章

8 章

9 章

10 章

二次会の話題 (ほとんど Haskell)

第4回

日時

2003-04-19 Sat 13:00-18:30

場所

東京・新宿・曙橋 タイムインターメディア様の会議室

内容

11 章「状態付きスキャナ」

参加者

議事メモ

二次会の話題

第5回

日時

2003-05-10 13:00-

場所

東京・新宿・曙橋 タイムインターメディア様の会議室

内容

12 章「構文木の構築」から

出席者

席順(ホワイトボード前から時計回り)

これ反時計回りでは? (裏から見てる?)

12 章

なんかの例

p id if id = 1
p id if id = 1

13章

14章

一次会

二次会以降

第6回

日時

2003-06-14 13:00-

場所

東京・新宿・曙橋 タイムインターメディア様の会議室

内容

15 章「メソッド」から

15 章

16 章

一次会

二次会以降

第7回

日時

2003-07-05 13:00-18:30

場所

東京・新宿・曙橋 タイムインターメディア様の会議室

内容

17 章「動的評価」から

参加者

きしもとさん(初参加)ほか11人

17章

18章

休憩

19章

終章

飲み会(餃子屋)

終わっちゃった


*1だったと思う。記憶が曖昧

RHG読書会::東京2003〜

nori::2003

nori > nori::2003

2003-01-28 RHG読書会までの道

私の場合、以下の点でつまずき

2003-01-27 ループ外(Perl)

foreach $i (1, 2) {
  print "= ", $i, "\n";
  $j = $i;
}
print $i, "\n";
print $j, "\n";

の結果は

= 1
= 2

2

となるようだ。

2003-01-23 みねろうさん

って、もしかして試験期間中?

[2003-01-24] そういうときこそ現実逃避で他の作業が進む気もするな、普通は。 ということは、違うのかな?

2003-01-23 文字コード自動判定

「日本語文なら助詞が含まれるだろうとか、 句読点が含まれるだろう」とかいう推測を 判定の材料にしてはダメなのだろうか? と思いながら風呂からあがった(昨日のできごと)。

効果があるか知らないけど。

2003-01-23 Emacs in Haskell

何かを検索しているはずみで、 「Why Haskell matters」Emacs in Haskell <URL:http://lc.linux.or.jp/lc2001/papers/haskell-paper.pdf> というページがひっかかったので、なんだ?と思って 「Emacs Haskell」で検索してみたら濃い(興味深い)ページが色々ひっかかるよ。 (多分 Haskell だけでも十分濃いページがひっかかると思うけど…)

Emacs in Ruby はないのかな?

こんなぺーじもみつけた。 「推薦書籍集」 <URL:http://bookshelves.tripod.co.jp/>

2003-01-23 POBox考

CLIEを読書記録(書名、作者、出版者とか)に使い出したのだが、 やっぱりキーボードに比べて入力がちょい面倒。 PDA とかこそ POBox とかが役に立つのかもと感じる。

別に POBox じゃなくて Emacs の M-/(dabbrev-expand) 程度で十分なのだけど…。 で、思ったこと。

結局 POBox とはなんぞや?

他にも違いがありそうだ。

良く考えると、動的 abbrev の方が実行時の処理は重いんだろうな。

2003-01-22 Ruby で POS

だって。は、は、は。 <URL:http://sourceforge.jp/projects/opossum/>

バーコード読む部分をどうしているのか分からなかった。

2003-01-20 RWiki で長い名前

RWiki でリンクにOSの制限を超えるような長い名前(256文字?1024文字?)を使ったら どうなるのだろう?と、ふと思いながら食堂を後にした。

[2003-01-22] 日本語をデコードした後に、切れ目付近がちょうど制限のところに あたったらどうなるんだろう?と思った。

2003-01-20 Emacs 日付順の検索

Emacs で日付を日付順(or 逆順)に検索する機能はないのだろうか? と、ふと思った。

1.「2003-01-10」2.「2003-01-20」とかの順に並んでいる場合、 2 --> 1 の順で検索していくというような感じ。

もちろん 「2003-01-10」とか「2003 年1月10日」とかありそうな日付に 対応しているのを想定。

[2003-01-22] <URL:http://znz.s1.xrea.com/t/?date=20030121#p03>

なるほど、MHC のライブラリを使用ですか! そもそも、MHC で日付推測をするらしいと聞いたことがあったのも 思いつきのきっかけの一つでもあったのですが、 MHC の Elisp を利用できるとは便利。

記述順でなくて、日付の新しい順、古い順に検索していくには defvar でどこかの変数に覚えておくように改造していけば良いのかな

[2003-01-22] 手順

やっぱり、最初の検索と次へジャンプは 別のキー操作(関数)にしないと実現できないか?

2003-01-19 デスクトップを超えた日

CLIE 用に128MBのメモリスティックを買ったのだが、 良く考えてみると私のメインデスクトップのメインメモリは 128MBなので PDA の方が上ってこと?

メモリスティックはメインメモリでないと考えても、 10年くらい前に買った 98互換機の HDD は 120M 程度だったので この 98互換機は確実に抜いている…(メインメモリ 10M なかったし)。

で、よくよく考えると Linux Zaurus とか最新 CLIE とかの CPU は 200, 400MHz とかいっているので、(周波数で単純に決まらないとは言え) もしかしたら私のメインデスクトップを抜いているのか?

2003-01-19 CLIE

PEG-SJ30 のマニュアルは結構できが悪い(設定とか)。 ???と指向錯誤しないと分からなかったりすること数回。 機械が得意でない人は解決できない場合ありそう。

しょせんPDAなんてマニアのものだからなのか?

説明を省かず操作手順をちゃんと書いておいてくれたら、 つまずかなかっただろうに。

2003-01-19 名前の衝突

今本屋に置いてある Mac Fanに「AppleScript StudioでXアプリケーションを作ろう!」と いう記事があったので、ウィンドウシステムの X のことかと思って見てみたら、 Mac OS X のことだった。

そういえば、iアプリと言えば 携帯のiモードの Java アプリケーション だと思っていたら、最近の Mac の i〜 というアプリケーションも iアプリと呼ぶらしい。

2003-01-18 ブラボー川崎市図書館

インターネット検索ができるようになった。 調べてみると、読もうと思っていた本がかなり蔵書としてあることが分かった。 メモしていたものだけで 20冊近く図書館にあることが分かった。(1冊1000円としたら2万円)

コンピュータ関係はたぶんダメだろうけど、その他は結構使えそうだ。 そもそもシステムができるのが遅すぎなんだけど。

浮いたお金を有効的に他の本にあてよう :-)

2003-01-17 New Project

SourceForge って新しくつくられたプロジェクト一覧はないのだろうか?

2003-01-16 コードの質

一般にそんなに悪いものなのでしょうか?

私は2つくらいしか見たことがないのですが、 完璧とは言えないし直した方が良さそうな記述も色々あるけど、 まあゴミ箱行きというのはまだ見たことがないです。

ただ、「仕事は速いけど、テストが甘い」というのは日常茶飯事。 仕様(書)もちゃんと出さずに書いてもらっているのが悪いのかも。 コードレビューなんてやったことないし。

そういえば、 『Cプログラミング診断室』 も確か最後まで読んでいないので読まなくちゃ(何年前に買ったんだよ〜)。

2003-01-16 疑惑

Ruby

トヨタ

教育業界

2003-01-16 『yaccによるCコンパイラプログラミング』

借りてきた。 こういうおもしろそうな本が、すぐ買えなくなっちゃうってまずくない?

既に買えない(し、自分が持っていない)おもしろそうな本といえば、

2003-01-16 『実践Java

arton さんって、あの arton さん? (お目にかかったことはないけど…)

2003-01-16 MSX MAGAZINE 永久保存版

MSX ユーザでもなかったのに手にいれてみた。 妄想がわいてきて 『PC-E200 PC-G801 Z80ポケコン入門(工学社)』、 『構造化アセンブラPASMの製作(CQ出版)』を読み返し。

2003-01-15 データベース

こんな例もあった。「Shneilderman Ben」、「BEN SHNEIDERMAN」 (そもそもつづりが違うんだけど…)

2003-01-14 上梓

「じょうし」本を出版すること

2003-01-14 Emacs 誤操作

以前から分からなくていつか調べなくてはと、ずーと思っていること。

なんかのタイミングで $ が縦につらなった、 他に何も表示されない状態になってしまう。 どう復帰するのか分からないので、いつも再読み込みで対処。

どういうキー操作でなるのかもいまいち良くつかめていない。

どういうキー操作でなるのか?

[2003-01-16] どうやら C-x < (scroll-left) が原因のようです。 <URL:http://znz.s1.xrea.com/t/?date=20030114#c01>

何かのタイミングで C-x < を押してしまっているようだ。

ありがとうございます!!数年来の疑問ひとつ解決!!

2003-01-10 明細

紙の給料明細は数年前になくなってしまいました。 入社したときは、ボーナス(明細)だけは部長が配っていたのですが、 今はそれもなし(物理的にできないのだが…)。

2003-01-09 PDCurses

X11 モードがあるらしい。 おもしろいのだが、良く考えると何の意味があるのだろう? という気もしてしまう。

2003-01-09 global

参照先へジャンプできるのは便利そうだ

2003-01-08 Kylix3 Open Edition

今日発売の Linux Magazine の CD-ROM に Kylix3 Open Edition が 入っていたので、インストール。 まだライセンスをもらっていないのだけど、 コマンドライン版は使えるに違いないと思って挑戦。

$ bc++ list0203.cpp
  Borland C++ 5.7 Open Edition Copyright (c) 1987, 2002 Borland
  list0203.cpp:
  /usr/bin/ld: cannot open linker script file bcc.lds: そのようなファイルやディレクトリはありません

dcc は使えた。

[2003-01-22]

以下のような __ld.ini というファイルが出ている。

INCLUDE bcc.lds
STARTUP("/usr/lib/crt1.o")
INPUT("/usr/lib/crti.o")
INPUT("/usr/lib/gcc-lib/i386-linux/2.95.4/crtbegin.o")
INPUT("list0203.o")
OUTPUT("list0203")
SEARCH_DIR("/usr/local/kylix3/lib/obj/")
SEARCH_DIR("/usr/local/kylix3/lib/")
SEARCH_DIR("/usr/local/kylix3/lib/release/")
SEARCH_DIR("/usr/lib/")
SEARCH_DIR("/lib/")
SEARCH_DIR("/usr/X11R6/lib/")
SEARCH_DIR("/usr/local/kylix3/bin/")
SEARCH_DIR("/usr/lib/gcc-lib/i386-linux/2.95.4/")
SEARCH_DIR("/usr/lib/")
SEARCH_DIR("/lib/")
INPUT("/usr/lib/libc.so")
INPUT("/usr/lib/libm.so")
GROUP("/usr/local/kylix3/lib/libborcrtl.a")
INPUT("/usr/lib/libdl.so")
GROUP("/usr/local/kylix3/lib/libborstl.a")
INPUT("/usr/lib/libm.so")
GROUP("/usr/local/kylix3/lib/libborunwind.a")
INPUT("/usr/lib/libc.so")
INPUT("/usr/lib/gcc-lib/i386-linux/2.95.4/crtend.o")
INPUT("_initexit.o")
GROUP("/usr/local/kylix3/lib/libborcrtl.a")
GROUP("/usr/lib/libdl.a")
GROUP("/usr/local/kylix3/lib/libborunwind.a")
INPUT("/usr/lib/crtn.o")

ld のことなんて良く分からないのだが、以下のように実行してみた。

$ ld /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i386-linux/2.95.4/crtbegin.o list0203.o -L/usr/local/kylix3/lib/obj -L/usr/local/kylix3/lib -L/usr/local/kylix3/lib/release -L/usr/local/kylix3/bin -L/usr/lib/gcc-lib/i386-linux/2.95.4  /usr/lib/libc.so /usr/lib/libm.so /usr/local/kylix3/lib/libborcrtl.a /usr/lib/libdl.so /usr/local/kylix3/lib/libborstl.a /usr/lib/libm.so /usr/local/kylix3/lib/libborunwind.a /usr/lib/libc.so /usr/lib/gcc-lib/i386-linux/2.95.4/crtend.o /usr/local/kylix3/lib/libborcrtl.a /usr/local/kylix3/lib/libborunwind.a /usr/lib/crtn.o initexit.o -o list0203 

そしたら、以下のエラー

/usr/local/kylix3/lib/libborcrtl.a(initexit.o): In function `_init_exit_proc':
initexit.o(.text+0x57): undefined reference to `__borland_exit_start'
initexit.o(.text+0x5e): undefined reference to `__borland_init_start'
initexit.o(.text+0x6c): undefined reference to `__borland_exit_end'
initexit.o(.text+0x73): undefined reference to `__borland_init_end'
initexit.o(.text+0x115): undefined reference to `__borland_init_start'
initexit.o(.text+0x11e): undefined reference to `__borland_init_start'

ダミーを作って以下を実行。

$ bc++ -c initexit.c
$ ld /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i386-linux/2.95.4/crtbegin.o list0203.o -L/usr/local/kylix3/lib/obj -L/usr/local/kylix3/lib -L/usr/local/kylix3/lib/release -L/usr/local/kylix3/bin -L/usr/lib/gcc-lib/i386-linux/2.95.4  /usr/lib/libc.so /usr/lib/libm.so /usr/local/kylix3/lib/libborcrtl.a /usr/lib/libdl.so /usr/local/kylix3/lib/libborstl.a /usr/lib/libm.so /usr/local/kylix3/lib/libborunwind.a /usr/lib/libc.so /usr/lib/gcc-lib/i386-linux/2.95.4/crtend.o /usr/local/kylix3/lib/libborcrtl.a /usr/local/kylix3/lib/libborunwind.a /usr/lib/crtn.o initexit.o -o list0203

そしたら、以下のワーニング

ld: Warning: type of symbol `__borland_init_start' changed from 1 to 2 in initexit.o
ld: Warning: type of symbol `__borland_exit_start' changed from 1 to 2 in initexit.o
ld: Warning: type of symbol `__borland_init_end' changed from 1 to 2 in initexit.o
ld: Warning: type of symbol `__borland_exit_end' changed from 1 to 2 in initexit.o

一応 list0203 ができていたので実行してみたが、なぜかこける。

$ ./list0203
bash: ./list0203: No such file or directory
$ file list0203
list0203: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

2003-01-07 RHG

1ヵ月近くたって品切れの通知とは。 しょうがないので、本屋で直接買って来よう。 本屋に並んでいるのに手に入らないとは、、、


*1だったと思う。記憶が曖昧

nori::2003

らぐやねん

RUGってほどのもんじゃないけど、RWiki上のプレースホルダとしての名称 :)

次、何やる? 企画参考

2005年忘年会?2006年新年会?

過去


*1だったと思う。記憶が曖昧

らぐやねん

RHG/第2章

Hacking Guideとしては実質最初の章なので、 特に難しいところはないです。

VALUE型の意味

「VALUE obj;」……みたいに、Rubyのオブジェクトなら とにかく何でもVALUE型として宣言しておいて、 使うときにキャストする。

RXxxx型

メジャーなものは覚えておく(というか、何度も出てくるので 自然に覚える)。

RBasic型、RObject型、そのほかのRXxxx型の関係

basic.flagsの意味

構造体の型を覚えておかなければいけないので必要

VALUE埋め込みオブジェクト

6種類ある。

0bxxxxxxxx xxxxxxxx xxxxxxxx xxxxxxx1 数値
0bxxxxxxxx xxxxxxxx xxxxxxxx xxxx1110 シンボル
0b00000000 00000000 00000000 00000000 false
0b00000000 00000000 00000000 00000010 true
0b00000000 00000000 00000000 00000100 nil
0b00000000 00000000 00000000 00000110 Qundef

シンボル

昔は数値だったけど、今は別になっている (理由は? なんか区別したい、って話があった記憶はあるんですが)

メソッドのありか

RClass構造体の m_tbl (st_table型) にある。

メソッドの探索

Rubyでのメソッド探索方法を思い出しながら、クラスのチェインをたどる。

インスタンス変数

基本は各オブジェクトの構造体のiv_tblだが、例外的に グローバルなgeneric_iv_tblに記憶させるものもある。 理由は、構造体の大きさを各オブジェクトでそろえるため。

インスタンス変数へのアクセスは第3章を読んだ後で読み返したほうが いいかも。

各オブジェクト構造体

ざっと眺めておく。RHGの続きを読む上ではあんまり重要ではないかも。 自分で拡張ライブラリを書いたりするならどれも重要。


*1だったと思う。記憶が曖昧

RHG/第2章

RHG/第3章

ハッシュの連鎖法については RHGだけではちょっと説明が足りないかも。 というか、予備知識として知っておいてほしいところ。

st.[ch]については、ハッシュ関数と比較関数が 複数あること以外は普通の実装にみえる。 というわけでがんがん読むのみ。

RHGで省略されているのは、初期化関数や破棄関数など。 あと、rehashが省略されている。これもやってる内容は 想像どおりではある。


*1だったと思う。記憶が曖昧

RHG/第3章

The RWiki