観察日記 2010-05-18

ruby-changes と ruby-cvs への参加方法について追記したよ

Contribution

RubyKaigi で募集している contribution を列挙するのはどうかなあ
ライブラリのメンテナと、プラットフォームメンテナと、チケットの整理をする人と、
redmine 自体のメンテナと、C API の整理とドキュメント化について悩む人と
ruby-dev と ruby-core の要約を相互に翻訳して流す人と
ほかあるかな
RubyKaigiにおいて、現在我々が募集しているcontributionを列挙してボランティアを募るのはどうか
と言ってるのかな。
そうそう
Rubyに関するcontributionについていつも思うんだけど、足りてないのは
コアデベロッパを雇ってください
なんだよなあ
金出せよ。
んー
雇えとまでは言わんが、金出してくれると助かる。
卜部さんはそういうところに転職しますか
そういうところに転職しました。NaClなんで。
フルタイムで Ruby のことをやっているのですか
フルタイムじゃないです。が、ぜんぜんできないわけでもない。
フルタイムである必要は全くないよねえ
コアデベロッパを雇えといっても、候補がないとなあ
最近Windowsサポートがしょぼいので、俺に発注とか。
なるほど
そうそう。ちゃんとお金が出て案件になると大手を振って開発できるんだよね。こそこそとじゃなくて。
しかし金を出す方は Ruby に貢献しているというのを宣伝したいはずで
うささんの会社にお金を払うというのは堂々と宣伝しにくいのではないか
なんとなく。
そこで、日本Rubyの会とかを使ってロンダリング
Ruby アソシエーションどうなったんだっけ
たとえばIPAは以前、お金を出したので、今でもruby.cに
{shyouhei} Copyright (C) 2000 Information-technology Promotion Agency, Japan
と書いてある。
おお
こっそりすぎる
node.c には Copyright (C) 2009 Yusuke Endoh と書いてあるぜ
俺もどっかに書くか。
それはIPAがちゃんと宣伝する気がないからっしょ。素材はあげてるんだから料理の仕方はおまかせだよね
./ruby --copyright は
丁度その話を会社でしていて、10万円ずつ100社から集金してruby-assnでロンダリングして、適当に開発者を雇えると良いかも
もっと活用されていいと思う
rubyアサシンがそのまま食べちゃったりして。

contribute しやすい環境をどう作るかというのはなかなか難しい問題ですねぇ。

Redmineのステータス

information needed
contribution wanted
wontfix
の 3 つが欲しいと思う
feedbackなんじゃないかなそれ
全部 close 扱いなところが違う
wontfixはとにかく欲しい。
abandoned
つかまあpendingでもなんでもいいんだけど。
wontfixとrejectの違いは?
rejectは直さない。
wontfixは直すかもしれない。
それは世間の wontfix と意味が違いますね
もっと積極的だな。直したいけど今じゃない
wontfix って将来的にも修正されないよ、なので
世間では違うのか。
世間的には。
wontfixに「直さない」以外の訳を与えるのは俺にはむずかった。なので別の言葉を。
wantとwontは全然違うな。 (ボケてた
つまり、直したい、が欲しい。
rejected は、報告者の誤認とか、チケット自体が無効なものだったものに使う
無難なのはpendingかな。
wontfix はバグであることは認めるけど、直さないことに決める
というわけでpendingキボンヌ
pending なら、target を 1.9.x にすればよくない?
まあ、そうかもしれない。
墓場ステータスをたくさん作るモチベーションがあまり出てこないんだよなあ。
直さない/直せない/直す
は分けたい。
直せない、とか言っちゃうとアレだな。直したいけど(今は)直せない
まあ、未来に投げるでいいといえばいいのか。
直す!直すとは言ったが、いつ、どこをとは言っていない
遠藤さんが次回もいるならそれでいい。
アンタのために直すんじゃないんだからねっ!
いやー、1.9.2 のリリースだけにしようと思ってますね
同じ事をやる人身御供がいればいいだけなので。
うん
とりあえずそれは募集しよう。
焼畑式というか
結局、地道なところがいちばん人が集まりにくいな。
えんどうさんは一人で頑張ってるので残念ながら燃え尽きようとしているが、
遠藤さんほどまでは期待しないので、単にアサインしたりつっついたりしたりするだけでいいから
そこまで炎上させないようにコントロールするのは可能だと思うんだよな
ujihisa さんがさり気なく頑張ってるよ
知ってる。
あとまーかんどれ
コード読み書きできない人でも貢献できるよ! できるよ!
そんな言い方して貢献したい人いるんかな
今日は日本語が変だ
いつもにもまして
よくある話じゃないかな<貢献したいけど××できないし...
やっぱDebianのうんこなリリースがCanonicalの登場で一気に解決したように
実際は人が出てこないので都市伝説かもしれないが。
よくある話だけど、それって単に「やりたくない」の別表現じゃないかな
自分への言い訳という気はする。
モチベーションが出辛い分野の貢献に金銭的な支援は有効だと
俺は思うなあ。
Canonical ってなんだろ
ぐぐれ?
ぐぐるかす
g> debian canonical
{ko1_ndk} google web bot: Ubuntu - Wikipedia - http://ja.wikipedia.org/wiki/Ubuntu (and 15,200 hits)
会社か
Ubuntu
母屋を乗っ取った感じですね
シャトルワースたんの会社なのね。
Rubyはなまじ俺とかが無料でやっちゃってるからかえってたちがわるいかもね。Debianくらい崩壊してたら「Canonicalネ申」ってみんな分かるし。
そういえば、彼はどうやって金持ちになったのん?
みんなでrubyから引退するか。
→終了
rubygems から --test オプションが消えそうだけど
べりさいんになんか売って儲けた> Mark Shuttleworth
もういいよね
べりさいんさん、俺からもなんか買ってください

ステータスは増やしすぎても少なくてもよくないので難しいところです。Pending あたりは増やしてもいいかなと思いつつありますが。

ruby-changes と ruby-cvs の違い

ruby-changesとruby-cvsはどういう役割分担なのでしょうか?
聞いてはいけないことを
ruby-cvsは公式サービス
ruby-changesはアングラ
暗に公式サービスだけでいいじゃんと言い含める説明のしかたのような・・・
そーだったのかー
いやいや、情報量が違いますからね。
ruby-cvsにあるViewVCへのリンクに加えて、
ruby-changesでは実際の差分もつけてくれるので
巨大なcommitがあったらすげーむかつけます^^
おお、それは素晴らしい
これは今も笹田さんが主導でメンバ管理してる?
とりあえず俺は参加する方法を知らない。
ruby-cvs もしらない
> 参加方法
ruby-cvsは他の公式MLと同じ。
なるほどー
とあるプロジェクトで同じことやって、数MのDiffが付いてきたことがある…
しかしあまり用を感じることはない

ruby-changes については http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/~poffice/mail/ruby-dev/30071:ruby-dev:30071 を、ruby-cvs については http://www.ruby-lang.org/ja/community/mailing-lists/:Ruby 公式 をご覧ください

ビルドボット

webkitいいもんもってんな
あれほしい
どれだ
http://twitter.com/shinh/statuses/12713696732
なるほろり
ビルドボットですかいいものですというか無しでやってるとかおかしいすごい
だれかくれ
ericがちょっと壊して、
chrome はもっと壊滅的に複雑な数のボットが http://build.chromium.org/buildbot/waterfall/console
kennethが止めを刺した、と。
きも
しかしこういうの欲しいね。
例えば俺のopensslコミットで一箇所赤くなるとかいう感じなわけだな。
すごいなーいいなー
数カ所だった気がする
ext/opensslだけじゃねーの?
最初の破壊は eric じゃないです eric のマシンが commit queue というもののボットになってるだけで別の人です
いや、どういう単位かわかんないけど。
FreeBSDUbuntuとかなふいんき
ふむふむ
色をマウスオーバーするとプラットフォーム名がでてるですよ
単位はプラットフォームだったのか。
いやかこいいな。
ほしいほしいほしい
ぱぱかってー
プラットフォームだけじゃなくて、特に chrome の方は遅くなってないかチェックするヤツとか valgrind でメモリリーク調べてるヤツとか色んな子がいますね
パパはね、えーと
特に提供できるネタがないな。
想定としては前田さんだった 実装は中田さん
むしろmameさんがこっそり作ってそう
chkbuildとは違うもの? > ビルドボット
ビルドして結果出すところまではあれでいいかもね。
chkbuildでもよい
chkbuildを回って収集するところまで欲しいがそれは自分で書けばいいし
書けばいいけど、現状debianだけだからな
macもなかったっけ
http://chkbuild.n-z.jp/ruby/ppc-mac-mini/ruby-trunk/last
なんか収集システム作るか
しかし、わたしが何か作ろうとするとそのライブラリを直すところで引っかかる罠があったりなかったり
こういうHTML生成系は
俺が作ろうとするとフレームワーク作成が始まってよくない
ぼくはsinatraを使うことにした
使うことにしたのだが、今sqlite3-ruby直してる
うちの会社のフレームワークになんか名前付けないとなあ。
どういう特徴ですか
ちなみにこれです http://buildbot.net/trac http://en.wikipedia.org/wiki/BuildBot
静的HTML生成しかしない
「静かなる中条」で
すごい名前が出てきたな
ぴちょんかよ、とか言い出すと長いのでやめて、と
衝撃のアルベルト がいいんだけどなあ。
衝撃のアルベルトっぽい機能が必要です
ぱっちん
真っ二つになれば素晴らしき
g>"静かなる中条"
{ko1_ndk} google web bot: ジャイアントロボ - http://senki.kusakage.com/setume/jaiantorobo.htm (and 1,590 hit)
g>"衝撃のアルベルト"
{ko1_ndk} google web bot: 十傑集:衝撃のアルベルト - http://www.geocities.co.jp/CollegeLife-Labo/7543/bf_albert.html (and 2,790 hits)
ジャイアントロボ THE ANIMATION -地球が静止する日」は、一見の価値はある。
buildbotはopenoffice.orgでも使ってたような気が。
なんか構築大変そうだ、いや、大変なのはわかりきっているんだが
大変なことはやりたくない(キリッ

CI や コンパイルファームが欲しいよーってのも割と前からある話。

WindowsにおけるRuby用エディタ

Linux捨ててWindows7で生きることにしたんだけど結局Rubyは何で書くのが正解なん?
秀丸?
notepadでもがんばれるよ!
って、そういう意味じゃないのかな。
がんばりたくないから聞いてるんじゃん。。。
真面目にエディタの話なのか。
Linuxで慣れているのであれば、Emacsとかvi系のエディタとか?
Meadowでいいんじゃない?
いずれにせよエディタは既に一家言ありそうな人にはあまり勧めたくないんだが。
Windows 7ってまだedlinあるのかなーw
Windowsに真面目に速いXサーバがあればsshのX forwarding使うんだけど
Meadowかあ。
もちろんある<edlin
いや、だから、頑張りたくないんだってば
Windowsrubyistxyzzy愛好者は俺を含めて何人かいるわけだけど、
あんまりお勧めでもない。

vimとかどうなんだろうなあ
vimがいいならvimも普通に使える。というか割と便利。
うちの学生は vim 使ってる
いいか分からないが今更WindowsでわざわざEmacs使うこともないかなあという気になっていて
これが決定版です、ってのはないねえ。
EmacsはXが残念だったころの残滓だよねー
成瀬さんが先日言ってたのはなんだったっけ
試してないんだけど。
まあviはXどころかBSDがなかった時代の残滓だが
Peggyか
google> peggy
{ko1_ndk} google bot: Peggyの紹介 - http://www.anchorsystems.jp/anchor/ashp/peggy/pegindex.html (and 70,400 hits)
ああそういえばgit環境をなんとかしないとか。
cygwinでダメかな。
なんか結局cygwinとかcoLinuxとかそういう系は不可避なのかねえ
いまいち使えないOSだ。>Windows
cygwinを避けて苦労を踏むのとcygwinに慣れるのとどっちが早いかというと
後者だと思う。
今度クリーン環境を作る機会があったらcygwinなしでやってみようかな。
cygwinのアップデートがgoing my wayすぎてめどい
せめてWindows Updateに載ってくれ
ま、どっぷりWindowsオンリーの世界に浸かれば何にも困らないのかもしれないが。

Peggyは一時期色付けやインデント絡みの要望を出しまくったこともあって、Windowsの作法に沿ったエディタとしては最高峰の精度を誇っていると思うんだけど、内部SJISだったり、VCS連携にgitがなかったりという欠点もあるのが悩ましいところ。

UTF-16 での NUL-terminate

そういえばUTF-16用のNUL-terminate APIってないなぁ
sqlite3-rubyが踏んでいるが、まぁこれはsqlite3-ruby側が悪いかな
win32UTF-16化はその辺でギブアップした
無理
へろへろっとrb_str_buf_cat(str, "\x00", 1)とかかいた
負けっぽいよねそれ
StringValueCStr()にrb_enc_mbminlen()
>1なStringを渡したらStringValueCStr()がrb_enc_mbminlen()分だけのNULを埋めるようにする
で、前に同じ話題をしたときにStringValueCStr()を結局変えなかったのはなんでだったっけ?
その案出たっけ?
出したと思うのだが
CStrじゃないじゃん、と思ったからだったからかなあ
というわけでStringValueCStrでgrepると
なんかいろいろ面白い
1回目は2008年9月5日。結論はよくわからんが、1.9.1リリースに向けてfeature freezeされちゃってたような気がするので見送り、っぽい雰囲気
2回目は2008年12月16日。あれってどういう結論だったっけ? で終わり
3回目は2008年12月18日。単にそこで\0つけりゃいいんじゃね、とかなんとか
関係ないけど2009年3月23日。FilePathValueのStringValueCStrをRSTRING_PTRに変えるときはRB_GC_GUARDが要る、となかださんが発言
なんでじゃあ自分がcommitするときはしなかったんだよゴルァ
paste>
{ko1_ndk} http://www.atdot.net/sp/readonly/3z3j1l_nurse
というわけで、1年5ヶ月放置、と
こんなかんじに
クソキモイ
いれなかったなかださんのせいだ!
というわけで、StringValueCStr()で必要な長さのNUL終端を入れる作戦には特に反対意見はないのではないか。
どうせUTF-16,32と愉快な仲間達しか関係ないし
うむ
ていうか、StringValueCstrだとさ
"\x00\x61"とかだから、おもいっきりNULチェックで例外上がるんだよね
うん
BEだと即死
エンコーディング見ろよボケみたいな
サックリ入れていいのかしら
LEでも即死だと思うが、まあそれはともかく
1バイト多分耐える
そうきたか!
string contains nul character
かなあ。
U+0000だとエラーにしたほうがいいのかな、気にしないよね
悩むね。
それの趣旨って、strlenが使えるかどうかだと思ったんだ
つか、そこを悩んで止まったのか、俺
NULとはコードポイント0である。○か×か
あたりで固まってやる気をなくした、みたいな。
文脈による
文脈はもちろんStringValueCStr
で、StringValueCStrのそのチェックの趣旨はC stringとしてvalidかどうかのチェックだと思った
そうなんだけど
UTF-16なstringは言うまでもなくvalidじゃないのでいらん
じゃあNULターミネートもいらねーじゃん
そうなるな
そうなるとこまる
と、するとコードポイント0チェックが必要だ
しかし。
とりあえず実用上ほとんど問題ねーからNUL終端だけしようか
とかいう投げやりな対策もありえるのかなあ...
そんなきもするある
あとで忘れて泣きそうだけど。
そこはあてにするなとか書こうか
将来の課題として書いておくのはいいかも。
feature freezeが終わったら、encoding構造体にNULチェック関数を追加しようよ。
で、StringValueCStrはそれを使う。
open の引数に渡すものにそれをやられるとまずい
FilePathValueはStringValueCStrを呼ばなくなったんじゃなかったっけ
openの方を見ないといかんな
つかRSTRING_PTRしかしてない(Windowsは特別対応)
∴影響は出ないんじゃないかな
しかし
{unak} rb_enc_str_buf_cat(wstr, "", 1, utf16); /* workaround */
こんなところにも!
なるほど
うひw
テストきぼん
akr_: ところで、ファイル名にNULを入れられるシステムがあるってことすか?
なんか前にも聞いたような気もするなあ。
http://www.atdot.net/sp/readonly/jz4j1l
いや、意図せざるファイル名になってしまうので
せんせい、ぱっちがむずかしいです
でもないか。
別の関数の方がいいのかなぁ
str_make_independentはまあいいよね。
うむ
こっちだけいれて、rb_string_value_cstrは変えずに、README.EXTに一筆啓上
でどうか。
StringValueCStrはencoding無視してNUL checkしないといけないと
StringValueして、rb_str_modifyすればいいのかな
うーんうーん
やっぱりむずかしい
s+=n;を忘れてた
http://www.atdot.net/sp/readonly/156j1l

StringValueCStr で NUL が途中に入った String を通してしまうと、それが open に行った時に open("a.txt\000foobar".force_encoding("UTF-16LE")) とか出来てしまうという話だと思われる。

long long の大きさ

long longは64bitだと仮定していいだろうか
まずいよなー
64bit以上は期待していいんじゃね
ruby的には
うむ
NUM2INT64をどうしたもんかな
48bitなんて変態環境は無視
SIZE_OFみて分岐するか
あるかどうかしらんけど
それだとそもそもsqlite3が動かないので問題ない
configureで作らせる
っとおもったけどT_FIXNUMをNUM2LONGだから問題なかった
Bignumのこと忘れてやがるから大問題だった
long longを期待するのが×でちゅ
LONG_LONGを使ってね☆ミ
RUBY_REPLACE_TYPE(int64_t, [], INT64) で試したら
そこはちゃんと気づいたので大丈夫
合格
NUM2INT64はともかく
INT642NUMはワケ分からん
で、LONG_LONGが64bitなのはbignum.cあたりに暗黙の仮定として存在していそうな予感。
SIZEOF_LONGとか見まくって頑張る
そういうところはint64_tに置き換えるべきだな
LONG_LONGでいいならLL2NUMとNUM2LL
2NUMに関してはまぁ大は小を兼ねるので
LONG_LONGのサイズがlongと等しかったらLONG2NUM使えよって気はしないでもない
確かに、今ならint64_tは安心して使える
longが64bit超えるのは想定したほうがいいのかな
どうだろ。
longが64bitを超える=VALUEが128bit
色々ぶっ壊れそうだからその時考えるか
今ないことはわかってんだけどね。
longが128bitでもVALUEは64bitでいいじゃない。
sizeof(long) > sizeof(void*) って場合?
ずつうがいたくなるな
まあそんな心配をし出すころにはRubyは滅んでJRubyが宇宙を支配してるのできっと問題ない。気にするな。
いやいやIronRubyが
まあどっちでもいいんですけど。

sqlite3-ruby の文脈での話。Matz Ruby Implementation (MRI) では long long っぽいやつ用のラッパである LONG_LONG があるとか、int64_t はconfigure で調べてなければ作ってるよという話が含まれているので参考までに。 (MSVC6 には long long がない、2003 から)

Windows な SSH クライアント

WindowsなSSHクライアントが軒並み最終バージョンが2007年とかなので禿げしく不安になる。
http://sourceforge.jp/projects/ttssh2/ は2010年に見える。
putty 2007年、Poderosa 2006年
他に思い出せなかった。
cygwinは別として。
TeraTermって続いてたのか
原作者蒸発とかで停止してたんじゃなかったっけ
ちゃんとTera Term Proの作者からひきついで http://slashdot.jp/~doda/ の人とか開発してるはず。