1 The Lazy Person’s Guide to Institutional Research I wish someone would have shown me this sooner!
The last decade of RWiki and lazy me.
description
Transcript of The last decade of RWiki and lazy me.
![Page 1: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/1.jpg)
RWikiと怠惰な私の十年間The last decade of RWiki and lazy [email protected]
![Page 2: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/2.jpg)
Castoro
おもしろかった!
![Page 3: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/3.jpg)
今日の話
私について
RWikiのこと
某サイトのRWikiのこと
![Page 4: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/4.jpg)
私について
toRuby
サラリーマンと自称アーティスト
![Page 5: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/5.jpg)
toRuby
toRuby = とちぎRuby ≠ 鳥取Ruby
西那須野公民館を中心に活動
とちぎRubyの勉強会
とちぎRuby会議01,02
とちぎテストの会議(連番なし)
![Page 6: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/6.jpg)
メモのご用意を
とちぎRubyの勉強会
毎月第一水曜日 18:30から
つまり次回は9/1です
![Page 7: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/7.jpg)
Google間違ってるので注意
©2010 Google - 地図データ ©2010 ZENRIN -
栃木県那須塩原市 付近の 西那須野公民館
A. 那須塩原市役所 西那須野公民館栃木県那須塩原市太夫塚1丁目194!1 "
0287-36-1143 "
©2010 Google - 地図データ ©2010 ZENRIN -
◀正解はココ
![Page 8: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/8.jpg)
サラリーマン
ちゃんとした会社員
製品のためのプログラミング
eXtreme Programmingだったもの
プロセス・品質系イベントで講演
![Page 9: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/9.jpg)
会社員系イベントJaSST'04 - 忍者式テスト
XP祭り04 - XPと計画ゲーム
デブサミ05 - 複数バージョンを同時に扱う
JaSST'06 - テストレート
ソフトウェア品質シンポジウム06 - 自分たちのもの宣言
JaSST'07 - 規模
デブサミ'08 - TPSとのパネル
オブジェクト倶楽部夏イベント2010 - ロールプレイング ◀先月話した
![Page 10: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/10.jpg)
会社員系の講演
いつもいいことばっかり言ってる
「理想の開発者」とかインチキくさい
![Page 11: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/11.jpg)
重要
そういう話を日本語版に寄稿しました
CC-byなのでいつか公開するけど、まずは買って読んでね
宣伝しなくても売れそう
![Page 12: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/12.jpg)
自称アーティスト
わかって欲しい人にウケるため、自分のためのプログラミング
オープンソースへの愛や正義には興味がない
![Page 13: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/13.jpg)
Rubyと私
20世紀の終わり頃から
書籍、雑誌
講演
ERB, dRuby, Rinda, RWiki, Tofu
![Page 14: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/14.jpg)
重要
2005年夏
まだ初刷買えます!
初刷5周年!!
dRubyによる
関 将俊 著
分散・Webプログラミング
![Page 15: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/15.jpg)
RubyKaigi x 5
2006 dRuby, Again.
2007 Answering dRuby and Rinda
2008 erbを偲んで
2009 偉大なBigTableとぼくのおもちゃ
2010 RWikiと怠惰な私の10年間 ◀いまここ
遺産で登壇するのはそろそろ限界か。
![Page 16: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/16.jpg)
9年ぶりのRWiki
2000 Perl/RubyConference
2001 YARPC 19101 ◀ RWiki
![Page 17: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/17.jpg)
しばらくお待ちください
✓ 97プログラマ本✓ 初刷5周年✓ そろそろ遺産が尽きる✓ +03分✓ 次はRWikiのこと
![Page 18: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/18.jpg)
RWikiのことちゃんとした記録がないのでほどほどの正確さで説明します
![Page 19: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/19.jpg)
RWikiのこと
RWikiの現状と今日のテーマ
RWikiの起源と特徴
privateなRWikiとそこでおきた問題と対応について
![Page 20: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/20.jpg)
RWikiの現状
OSSのプロジェクト
publicなRWiki
privateのRWiki
![Page 21: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/21.jpg)
OSSのプロジェクト
cozmixngのsvn借りてる。感謝
最近はほとんど変更がない
1.9対応を途中までやったけど飽きた。どちらかと言えば1.9がRWikiに対応して欲しい
![Page 22: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/22.jpg)
publicなRWiki
The RWiki toRubyの業務連絡とkouさんの読書メモは活発
Rubyのドキュメント関連はRWikiから卒業してしまったぽい
![Page 23: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/23.jpg)
privateなRWiki
某組織の非公開なRWikiサイト
35000ページと25000ページの二つ
わりと活発に更新されてる
![Page 24: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/24.jpg)
RWikiの現状
死んだプロジェクトに見えてもしょうがない。
某サイトでは10年近く活発に更新されてる
RWiki使って!!というテーマではない。実装の自慢と運用の苦労の話
![Page 25: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/25.jpg)
しばらくお待ちください
✓ 今日のテーマは某サイトの運用の話だと念をおす
✓ +06分✓ 次はRWikiの起源と特徴
![Page 26: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/26.jpg)
RWikiのはじまり
[ruby-list:24661]
![Page 27: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/27.jpg)
RWikiのはじまり[ruby-list:24661]
◀dRuby, ERbメソッド化, RDToolのサンプル◀dRubyでサーバとCGIに分離
◀10周年
![Page 28: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/28.jpg)
RWikiのはじまり[ruby-list:24661]
◀軽い嘘もある
![Page 29: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/29.jpg)
OSSっぽい
はじめにNaHiさんが手伝ってくれて一部がNaHiさん色にそまり、その後kouさんがkouさん風に直してくれた
基本的に私の好みを尊重してくれてるので協力してくださる方は不満だったんじゃないだろうか
![Page 30: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/30.jpg)
しばらくお待ちください
✓ まもなくRWiki10周年✓ dRubyなどのサンプル✓ NaHiさんkouさんに感謝する✓ +08分✓ 次はRWikiの特徴
![Page 31: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/31.jpg)
RWikiの特徴機能と実装の特徴
![Page 32: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/32.jpg)
機能
コンテンツの記述にRDを使うWiki
RDoc以前に流行った書式
リンクはRD方式。WikiNameは使えない(ということはWikiじゃないのか?)
機能の数は追っていない
![Page 33: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/33.jpg)
実装
dRubyの長生きなサーバとCGIで構成
CGIは単なるhttpのインターフェイス
全てのコンテンツを一つのプロセスの中にオブジェクトとして配置
![Page 34: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/34.jpg)
RWiki
CGI
CGI
HTTP dRuby
長生きRWikiと短命CGI
![Page 35: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/35.jpg)
実装
dRubyのアプリケーションの典型的なプロセス構成
ふつうのデスクトップのアプリケーションにWebのUIを載せてる感じ
![Page 36: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/36.jpg)
起動時
RWiki
log
読み込み
![Page 37: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/37.jpg)
RWikiCGI
log
view
![Page 38: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/38.jpg)
RWikiCGI
log
書き込み
edit
![Page 39: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/39.jpg)
拡張
プラグインの機構は用意されないがdRubyで外部から操作し放題
![Page 40: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/40.jpg)
実装 view
htmlを生成するオブジェクトの話
本文の部分はコンパイルされたERBオブジェクト
共通の部分はERBメソッド化
リンク先の更新時刻等わざわざ動的に
![Page 41: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/41.jpg)
実装 view
RD→ERBソース→コンパイル済ERB へ変換。最終的なERBオブジェクトを保持する。
RDtoolによるRDの解釈、ERBのコンパイルなど時間のかかる処理は事前に
html生成時はERB#resultだけ
![Page 42: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/42.jpg)
In-Memory
全てのデータをRubyオブジェクトで表現してプロセス内に配置するだけ
要素が数万ならArrayやHashで充分
ものすごくふつう
![Page 43: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/43.jpg)
In-Memory
ファイルを読むのは起動時だけ
再起動の際に必要な最低限の情報をログする。編集結果はplainな文字列
いわゆるデータベースをもたない。当然SQLとか関係ないし、O/Rマッピングとか要らない
![Page 44: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/44.jpg)
NoSQL?
むしろRWiki自体がデータベースのように見える
ドキュメント指向データベース?
dRuby経由でページのCRUD
ページに対する演算
![Page 45: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/45.jpg)
しばらくお待ちください✓ RWikiはふつうのdRubyプログ
ラミングの構成✓ なんでもプロセスの中に✓ 流行のbuzzwordを押さえてる✓ +14分✓ 次は本題の某サイト
![Page 46: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/46.jpg)
某サイト
某サイトの紹介が今日のテーマ
ほぼ10年近い運用の中でおきた問題と対応について
![Page 47: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/47.jpg)
某サイト
2001年頃から使っているある大きなチーム向けのRWiki
開発メモ、日記、BTS、チケットシステム、テスト計画、履歴の管理
ソースの変更履歴のブラウズ
![Page 48: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/48.jpg)
利用者
開発者とスタッフ、マネージャなど、100人よりちょっと少ないくらい
![Page 49: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/49.jpg)
規模
35000ページと25000ページの二つのRWikiが一台のマシンで稼働
全ての情報をプロセスにためてしまうので一つのプロセスは1.2Gくらい
意外と大丈夫。Ruby強い!!
![Page 50: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/50.jpg)
メモリと速度
マシンに余裕があるのかメモリを喰らっても他のサービスに影響なかった
Xeon 4core x2、 32GB RAM
実行中のレスポンスも問題ない
問題になるのは再起動にかかる時間
![Page 51: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/51.jpg)
カスタマイズ
小技
Pageオブジェクト
StoryCard拡張
TestSuite生成システム
![Page 52: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/52.jpg)
小技
CIにあわせたスタイルシートの使用(gotokenさん作)
簡単なことだけど仕事してる感を増幅する魔法
![Page 53: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/53.jpg)
Pageオブジェクト
RDのソース、htmlを生成するerbオブジェクト、正・逆リンクなど基本情報
RDの木構造を処理することで求まる属性を集めた任意のオブジェクト。Propertyと呼んだ機構
どの情報もdRubyから触れる!
![Page 54: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/54.jpg)
StoryCard拡張
チケットシステム、計画ゲームを支援する拡張
チケット情報をPropertyを使って取得
dRubyを用いたチケット情報を処理するツールがたくさんある
![Page 55: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/55.jpg)
StoryCard拡張
運用中にチケットの属性、書式もワークフローもどんどん変更できる(た)
紙やExcelに近い無法っぷりが長期間の運用には必須である
チケットシステムのインストールとチケット駆動には関係がない
![Page 56: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/56.jpg)
TestSuite生成システム
StoryCardに記述されたテストケースを抽出し一覧する機能が基本
全て見せると多すぎてやる気なくす
テスト計画、成績、鮮度、脆さなどの属性を元に今日のおすすめプレイリストを生成するシステム
![Page 57: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/57.jpg)
TestSuite生成システム
iTunesスマートプレイリストのパクリ
会社員系講演で何度も話したネタ
Pageオブジェクトのリンク情報とStoryCard拡張のPropertyを利用
![Page 58: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/58.jpg)
その他のツール
CVSに対するsvn風の変更履歴のブラウズ、開発メモとの融合
チケットの遷移の統計情報
試験成績履歴の地図
![Page 59: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/59.jpg)
しばらくお待ちください
✓ 某サイトのRWikiの概要✓ PageとProperty, StoryCard拡張✓ ツールの多くは外部に✓ +20分✓ 次は問題だよ
![Page 60: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/60.jpg)
たくさんの問題
基本的に「遅いんですけど問題」
起動遅いんですけど問題
irbで操作すると遅いんですけど問題
全文検索遅いんですけど問題
![Page 61: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/61.jpg)
たびたび起こる問題
起動が遅いんですけど問題
原因はさまざま
再起動は数ヶ月に一度なのでがまんできなくもない
![Page 62: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/62.jpg)
起動シーケンス
起点となるページを読みながらリンクされているページを再帰的に読む
RDの木は再帰的に生成されRDの森になりオブジェクト数が膨大に。GCの処理で非常に遅くなる。(気がする)
![Page 63: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/63.jpg)
起動シーケンス
再帰的に辿りつつ、リンク先をキューに積むことで、木を同時に一つだけ生成することに
以前から気になってたんだけど無視してたらznzさんに指摘された。しょうがないから直した。起動がすごく速くなった。と思う。あやふや。
![Page 64: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/64.jpg)
起動シーケンス
自分で気づいていても、指摘されるまで行動しない。
ちゃんと検証しないで直してみたけどうまくいった。
![Page 65: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/65.jpg)
キャッシュの導入
再起動のたびにRDを木構造に変換してるのでもったいない
RDから変換されたhtml片、メタデータをMarshal.dumpしておいて、再起動時にMarshal.loadだけで済まそう
![Page 66: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/66.jpg)
キャッシュの導入
確かに速くなった!
初期の設計思想からちょっとずれてるような気がする。敗北感?
最低限のログにこだわらないことにした。たとえリッチでも、ログはログだ
自分に言い聞かせることで解決
![Page 67: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/67.jpg)
レスポンスの悪化
ページ数の増加にともないプロセスが太る
あるときからレスポンスが悪くなる←これってGCじゃね?
![Page 68: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/68.jpg)
レスポンスの悪化
GCで遅いと言えばオブジェクト数だろ
とするとRDの木構造?
案の定インスタンス変数がRDの木を参照してる部分があった
覚えないように変更
![Page 69: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/69.jpg)
レスポンスの悪化
メモリ半減、快適。起動も速い
めずらしく自主的に直した
たまにやると気分がいい
![Page 70: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/70.jpg)
irb遅いんですけど
irbから使うとよくメソッド名をtypoしてしまう→間違えると反応が非常に遅くなる問題
NoMethodErrorの際にinspectが呼ばれ最終的にRWikiの根となるオブジェクトのinspectが実行される。これが長い
![Page 71: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/71.jpg)
irb遅いんですけど
[ruby-dev:41329] NoMethodErrorなどのmessage
ruby-devで相談するも「咳さん」のアクセントの話題になってしまい議論終了。なにかの魔法をかけられたよう。
![Page 72: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/72.jpg)
irb遅いんですけど
全然関係ないんですが、私の住んでる地方では
関さん ̃___
咳さん _̃__
積算 __̃_
で、ぜんぶアクセントが違うので、文字で書くとかなり違和感があるのですが(心の中で「咳さん」を「関さん」のアクセントで読んでる)、好奇心にかられるのは、これは他の皆さんもそういう風に感じているものなんでしょうか。
![Page 73: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/73.jpg)
irb遅いんですけど
http://www.hcn.zaq.ne.jp/myattun/tochi/hatsuon.html発音の特徴 次に、栃木弁の発音について下にちょっと詳しく説明しておきましょう。
(1) アクセントによる単語の区別がありません。(中略)栃木の場合、アクセントによる単語の区別がなく、なおかつ固定した位置にアクセントが置かれるわけでもないので、無アクセントの方言と呼ばれます。
ということで、栃木県民としては無問題です。
![Page 74: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/74.jpg)
irb遅いんですけど
栃木県民的にアクセントは解決したが肝心のNoMethodErrorが解決せず
今回はRWikiサーバでのObject#inspectを再定義して回避したので追求しない
matzの魔法に注意
![Page 75: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/75.jpg)
全文検索
なんの工夫もなく35000のStringをscanしていた
最近なんとなく遅い
ユーザにはバレてないが直して遊びたい
![Page 76: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/76.jpg)
全文検索
この話はパス
たまにポジティブに修正する
![Page 77: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/77.jpg)
問題の傾向
全てのオブジェクトを一つのプロセスに配置するのはとても自然
予想通りメモリの問題、それによる速度の問題に出会う
メモリというよりオブジェクト数?
この規模まで育てば、の話
![Page 78: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/78.jpg)
問題の傾向
それ以外のトラブルはなさげ
設計があまりにふつうだから?
![Page 79: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/79.jpg)
解決の傾向
不要なオブジェクトを保持しない生成しない
問題がおきてから考える
![Page 80: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/80.jpg)
態度の傾向
基本的にがまんする
外部から指摘があってから動く
たまに自発的に直すが、実はみんなは困ってなかったりする
![Page 81: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/81.jpg)
態度の傾向
規模が大きくなるのに備えて最初から準備をするのはムダ
どんな風に大きくなるか、どこが大きくなるか予想がつかない。大きくならないかもしれない
一つの作戦で全ての大きさに対応できるとは考えない
![Page 82: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/82.jpg)
態度の傾向
問題に出会ったときに状況に応じた適切な解を考えるべき、かな
![Page 83: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/83.jpg)
さらなる不安
オブジェクト数の限界は?
サーバが64bit OSに変わったので気にしないことにした
最終的にはページ名ごとにRWikiサーバを分割するかもしれない
![Page 84: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/84.jpg)
肯定的なまとめ
大きなRubyのプロセスは、意外に丈夫でまだまだいけそう
dRubyの典型的なアプリケーションの配置はこのくらいのちょっとしたツールに適してる
DBMSを中心に考える必要なんてあるのかなあ
![Page 85: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/85.jpg)
肯定的なまとめ
数GBのGCはそこに
GC開発者はRWikiに挑戦するべき
![Page 86: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/86.jpg)
まとめ
今日はRWiki10周年イベントでした
某サイトのRWikiとそこでの問題を紹介
RWikiの構成でもまだまだいけそう。いつか限界がきてしまうと思うけど、それはそのとき考える
![Page 87: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/87.jpg)
重要
2005年夏
まだ初刷買えます!
初刷5周年!!
dRubyによる
関 将俊 著
分散・Webプログラミング
![Page 88: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/88.jpg)
重要
日本語版に寄稿しました
宣伝しなくても売れそう
![Page 89: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/89.jpg)
しばらくお待ちください✓ RWiki10周年✓ 初刷5周年✓ 97プログラマ本✓ RWikiまだいけそう✓ あまりだらしない人だと思われ
ないように
![Page 90: The last decade of RWiki and lazy me.](https://reader034.fdocuments.in/reader034/viewer/2022051412/5485adbf5806b5b3588b47f7/html5/thumbnails/90.jpg)
なにかご質問は