タグ

ブックマーク / blog.yugui.jp (14)

  • はまちちゃんと脆弱性報告のあり方 - 世界線航跡蔵

    はまちちゃん がいつものごとく、AmebaなうにCSRF脆弱性を発見して いたずらを仕掛けた 。そして、何故か今回だけ「それは迷惑行為だ」とかなんか騒がしい。 私はそもそも、はまちちゃんのいたずらを「隙があったからカンチョー」に喩えるのが程度がおかしいんじゃないかと思う。それで非技術者には話が通じていないのでは? CSRFやSQL Injectionを許していたら、何よりも守るべきユーザーの情報が危険だ。そしてAmebaがそういう脆弱性を持っていると言うことは、生越さんが指摘するように首相官邸からの公式情報を操作できるという意味だ。これは「隙があった」んじゃないだろう。「開腹したまま内臓が露出している」んだ。 ところが、どうも現実の医師とは違ってこの世界の、特にAmebaみたいな大きな会社の開発者はその辺の意識が甘い。「手術したけど、まー、内臓が見えててもすぐに死ぬ訳じゃないし、適当に皮被

    はまちちゃんと脆弱性報告のあり方 - 世界線航跡蔵
  • Ruby1.9 のクラスのメタ階層とかevil-rubyとか - 世界線航跡蔵

    sumimさんの「 Ruby1.9のクラスのメタ階層を整理する 」という記事、Rubyの型階層は雑然としているというのは、なんかsumimさんの図が悪いような気もするなぁ。整理すればもうちょっと情報を引き出せるよ。あと、モジュールのせいもある。 前提知識 Rubyは基的には単一継承のクラスベースオブジェクト指向言語なのだけれども、幾つか注意すべき処がある。 クラスはClassクラスのインスタンスである。 モジュール 制限付きの実装多重継承をもたらす仕組み。内部的には、モジュールの「化身」となるクラスを継承階層を挟み込むことで実装されている。 以下、モジュール M に対してその化身クラスを I(M) と表記する。 詳しくは 以前の記事 を参照。 特異クラス 特定のオブジェクトに専属するクラスのこと。特定のオブジェクトにだけ存在するメソッド「特異メソッド」を定義すると、内部的には特異クラスを

    Ruby1.9 のクラスのメタ階層とかevil-rubyとか - 世界線航跡蔵
  • Rubyに関してやりたいこと - 世界線航跡蔵

    もともと今年の上半期はRubyに費やすつもりで活動してきた。といっても大部分はを書いていただけだけど。 今後やりたいと思っていることを挙げる。 ドキュメントの充実 RubyPHPだのPythonだのに比べるとドキュメントが不足してる。PHPは嫌いだけど、あの見るだけでも涎の出てくるマニュアルは素晴らしい。PHPの隆盛もさもありなん。Pythonは、あのstrictさは完全に文化なのでしょう。PerlにしたってCPANモジュールにはPODが必ず付いているし。 それにひきかえRubyは、未だに標準添付ライブラリの完全なリファレンスすら完成していない。メンテナンスも不十分だし。ソースコードに入ってるコメントが間違ってたり、新しいコマンドラインオプションがマニュアルに反映されてなかったりもした(そのままリリースしちゃったんだよ? 信じられる?)。 これは別にRuby開発陣の体質の問題とかそうい

    Rubyに関してやりたいこと - 世界線航跡蔵
  • Rails勉強会@東京 第27回 - 世界線航跡蔵

    Rails勉強会@東京 第27回 に行ってきた。今回は伊藤忠テクノソリューションズさんの会議室を借りて開催。形式はいつものごとく、オープンスペースを前後半2回に分けて開催。 前半 前半セッションでは、私が今書いているRuby入門書のダメ出しをやった。 細かいところは公開できないのだけれども、書籍の構成や技術的な表現について、執筆経験豊富なメンバーからいろいろな意見を頂いた。 技術書の出版技法について 某オーム社では Subversionで原稿を管理してる そうな。これはちょっと前に話題になったね。 私の場合は、原稿はRDで書いてる。 出版社側に出すのは独自の簡易マークアップ言語なので、 rdtool をつかってトランスレータを作成した。 書きながら分量を知りたいので自分でそれっぽいPDFを作成している。 rd2latex をベースにカスタマイズしたトランスレータでRD→LaTeXPDF

    Rails勉強会@東京 第27回 - 世界線航跡蔵
  • Rails勉強会@東京第23回 - 世界線航跡蔵

    Rails勉強会@東京第23回 に行ってきた。2週間遅れだけどレポートする。 勉強会の形式は いつものごとく 。 ただ、今回は試験的に「昼懇親会」を行なった。 そこで話しているうちにうち解けてセッションが弾むのでは? セッションの時間を潰して長い自己紹介をしなくても、自然に相手を認識できるのでは? セッション案も自然に出てくるのでは? 夜の「飲み会懇親会」よりも安く済むのでは? という趣旨だ。おおむね好評だった模様。ただ、私はどうも元気が出なくて遅れていったので懇親会は殆ど出てない。 前半 前半は3つのセッションに分かれた。 Rails 2.0を読む。 初心者セッション - Scaffoldの半歩先に ぐだぐだ喋る 初心者セッションは前回と同じ内容だそうだ。Scaffoldは試してみたけれどもその先へ進めないというRails初心者のために、Scaffoldで生成されたモデルやコントローラ

    Rails勉強会@東京第23回 - 世界線航跡蔵
  • デファクトに乗っかりながらそれを超えるというRubyの話 - 世界線航跡蔵

    ひがさんが思考停止を批判している 実際良く見かけるんだけど「最新の技術についていくのは疲れた」「なにかスーパーなデファクトが現れてそれで統一されて欲しい」「考えるのめんどくさいから標準で統一したほうが無難」なんてのは、おやじ予備軍シンドロームだと思う。 で、Railsにもその虞ありとのことだ。 Javaの世界はフレームワークが乱立していて適切な組み合わせを選ぶのが大変だからRailsで統一されているRubyがいいんだと。 これには、全然賛成できません。悩みたくないからスーパーなデファクトを望むのは、危険だと思うんですよね。ライバルがいないとどうしても進歩の速度が鈍ります。Rails一党独裁よりも、いくつかのフレームワークが競い合うほうが健全なのではないかと思います。 これについてのRailsサイドからの言い分はあかさたさんが「筋には大賛成です。枝葉末節についてです。」と断った上で「 Ra

    デファクトに乗っかりながらそれを超えるというRubyの話 - 世界線航跡蔵
  • Rails勉強会@東京 第22回 - 世界線航跡蔵

    Rails勉強会 に行ってきた。しばらく抑うつ症状やらパニック症状やらの状態が悪かったので、久しぶりの参加だ。でも、最初から最後までどうも頭が働いてなかった。処理が追いつかなくて、切り返しが鈍かったり反応を返せなかったりした人にはごめんなさい。医師には「もう暫くゆっくりしなさい」 と言われてしまったけど、なるほどまだ調子じゃないね。 うむ。気がつけばこの勉強会も回数を重ねて、もうすぐ2周年。 いつもの通りの形式 である。 前半セッション 3つのセッションに分かれた。 初心者セッション(acts_as_authenticated) Rails悩み事相談Ruby Hoedown 2007 の動画を見る 私は初心者セッションに出た。オーナーは諸橋さん。とはいえ、私も我が物顔で口を挟ませてもらった。 acts_as_authenticatedとは acts_as_authenticatedと

    Rails勉強会@東京 第22回 - 世界線航跡蔵
  • 無断リンクを禁止する移民たち - 世界線航跡蔵

    「 無断リンク禁止は、WWW をどう考えているかの問題あたりらへん 」を読んだ。 え、何? また「無断リンク禁止」が問題になってるの? これ、何周目の議論だろ。WWW日語圏に限っても5周や6周じゃ済まないよね。ただ、私にとってはその繰り返しもまったくの無意味ではなかった。無断リンクを禁止したがる人々にとってのWWW、彼らが感じているWWWというものがいくらかは分かってきたのだ。彼らの「ほーむぺーじ」も「ぶろぐ」も「ぷろふ」も発信者個人のアイデンティティと極めて密接に結び付いた感情表現の集積であり、リンクが成す生態系それ自体も彼らの感情ネットワークの反映であり、そこに土足で暴力的なリンク(=感情)が割り込んできては困るのだ。 昔々、書いたことがある けれども、これはどうやら文化の違いらしい。何を見るのか、何を感じるのか、思考の枠組、その違い。見ているものがちがうのだから、まずそこからすり合

    無断リンクを禁止する移民たち - 世界線航跡蔵
  • 続・Railsの画面生成を10倍高速化する方法: フィルタ編 - 世界線航跡蔵

    さて、昨日は SSIとの組み合わせでPageキャッシュの適用範囲を広げる話 をした。 なぜSSIかというと、これは組込みの手軽なフィルタ機構だからだ。Apache 1系統ではSSIはハンドラとして実装されているけれども、2系統では新たにフィルタ機構が加わって、SSIはこちらで再実装されている。 フィルタ機構ならmongrelからの出力にも加工できる。Pageキャッシュとキャッシュでないものを透過的に扱えてうれしい訳だ。 ただ、確かにちょっとDRYさに欠ける。どうせならRailsのレイアウトファイルにPHPコード片を直接書きたいではないか。で、これを出力するとPHPとして処理してその結果がクライアントに伝わる、と。 id:yamazさんが「 rhtmlで直接phpを吐き出して処理する方法を模索したいのです。 」と言ってるのはたぶんそういうことだ。私もそれが理想だと思う。今日はそれに挑戦してみ

    続・Railsの画面生成を10倍高速化する方法: フィルタ編 - 世界線航跡蔵
  • Railsの画面生成を10倍高速化する方法 - 世界線航跡蔵

    RailsでPageキャッシュをより広く活用する方法を考えてみました。以下、ちょっと長く前置きが続きます。 Rails遅杉 Railsは遅い。何が遅いって、Rubyが遅くてRoutingが遅くてRDBとRHTMLが遅い。RDBが遅いのは大抵のWebアプリケーションでは変わらない話、で、だからRailsなんかが評価される余地があるんだよね。RubyやRHTMLの遅さは柔軟性の代償として受け入れよう。なにしろRDBがもともと遅いんだから。ただ、Routingは無駄に高機能だったりして頭にくる。Rhino on RailsのSteve YeggeもRoutingは黒魔術だと言っていたし。私はActionPackの全てが黒魔術だと思うけど。 そういう訳で、RoutingをCで書き直すのはドリコムのみなさんがいつかやってくれると期待するとして(可能なら手伝いたいけどね)、当面の対応としてはキャッシュ

    Railsの画面生成を10倍高速化する方法 - 世界線航跡蔵
    dbfireball
    dbfireball 2007/07/17
    phpとrailsの合わせ技
  • Rails勉強会@東京 第15回 @ 2007年02月 (Capistrano)

    18日の Rails勉強会 に行ってきた。 前半 前半は4つのセッションに分かれた。私はCapistranoセッションのオーナーになった。 先日会社でデプロイするときにミスをやらかしてしまって、デプロイツールの重要性が身に染みた。それで今まではそれほどちゃんと触ったことはなかったけれども、ひとつCapistranoを触ってみようと思ってセッションを開いた。 Capistrano はRubyで書かれたデプロイツールで、Rakeをデプロイ作業向けに強化したようなものだ。基はRakeなのでRakeとかMakeとかAntとかを使ったことがあれば怖くない。 デフォルトではRailsアプリケーションの構成に合わせた設定になっているけれども、設定(レシピと呼ばれる)を変更すれば任意のアプリケーションに適用可能である。実際、 はてな ではPerlアプリケーションに適用しているらしい。次の条件を満たす環境

    Rails勉強会@東京 第15回 @ 2007年02月 (Capistrano)
  • Rubyの呼び出し可能オブジェクトの比較 (3) - なんかklassの話

    前回 はコンテキストの概念を眺めて、klassを理解することが必要だという話になったのであった。 klass class文の中では構築しようとしているクラスに対応するClassオブジェクトがselfとなっている。それに、class文の中でのクラスメソッド定義をみると、なんとなく、「デフォルトではselfに、指定すればそのオブジェクトに」というメソッド呼び出しにおけるレシーバー解決に似ている。 class Foo def self.class_method_hoge p :hoge end end class Bar def Foo.class_method_huga p :huga end def self.class_method_huga_of_bar p :huga end end このことを考えるとRubyでは、メソッドはselfに定義されると考えたくなるが、そうではない。実はこれ

    Rubyの呼び出し可能オブジェクトの比較 (3) - なんかklassの話
  • Rubyの呼び出し可能オブジェクトの比較 (2) - というよりコンテキストの話 - 世界線航跡蔵

    前回 は各オブジェクトの基的な特徴を見ただけで終わってしまった。今回はこれらをコンテキストという観点から見てみたい。 前回のまとめ 呼び出し外側のscopeblock中身戻り値 __send____send__不可能(そもそもコンテキストを保存していない)可能保持しないメソッドの戻り値 Method[],call参照不可能可能メソッド体とselfメソッドの戻り値 UnboundMethod不能参照不可能-体メソッドの戻り値 Proc[],call,yield参照可能不可能closureProcの最後の値 Continuation[],call-不可能「続き」戻らない Proc#callにおいてブロック付きの呼び出しが不可能であることは前回は記述しなかった。 sshiさんにご指摘いただいた 。 Procを作成するときに指定するブロック仮引数の記述は、メソッド定義の際の仮引数の記述にとて

    Rubyの呼び出し可能オブジェクトの比較 (2) - というよりコンテキストの話 - 世界線航跡蔵
  • Rubyの呼び出し可能オブジェクトの比較(1) - 世界線航跡蔵

    Rubyにはコード片を表すオブジェクトが複数ある。 Method , UnboundMethod , Proc である。 Continuation は少し違うけど、実行コンテキストを記憶しているオブジェクトという意味では近いものがあるか。『 Ruby Way 』にはこういういろいろがあることについて「驚くほどのことではありません」と書いてあるけれども私は驚いた。で、これらが微妙に違うのだ。困ったもんだ。いや、便利なのかもしれないが。 それで今回はこれらの概要を眺めてみたいと思う。 普通のメソッド defでメソッドを定義するのが一番普通だやな。 class C def greeting(arg) puts "C#greeting reveived #{arg}" end def iterator yield 'iterator 1st' yield 'iterator 2nd' yield

    Rubyの呼び出し可能オブジェクトの比較(1) - 世界線航跡蔵
  • 1