タグ

ブックマーク / secondlife.hatenablog.jp (39)

  • crossdomain.xml と CSRF 脆弱性について - 2nd life (移転しました)

    crossdomain.xml を安易に設置すると CSRF 脆弱性を引き起こす可能性があります。というのも、ここ数が月、それなりの数の crossdomain.xml による CSRF 脆弱性を発見し(現在、それらのサイトでは対策がなされています)、まだまだ Web プログラマに脆弱性を引き起こす可能性がある、という考え方が浸透してないんじゃないか、と思ったので。 先月、Life is beautiful: ウェブサービスAPIにおける『成りすまし問題』に関する一考察にも crossdomain.xml について書かれてたのですが、その後もいくつかのサービスで crossdomain.xml を許可ドメインすべてにしているサービスがあったので、注意喚起としてエントリーに書き起こします。 自分も一年半ぐらい前は、crossdomain.xml を許可ドメインすべて ('*') にして設置し

    crossdomain.xml と CSRF 脆弱性について - 2nd life (移転しました)
  • Shibuya.JS 運営について - 2nd life (移転しました)

    なにやら運営(費)について書くのがブームなようで、Shibuya.JS のテクニカルトークなどの開催をどんな感じで行っているかを書いてみます。 主に100人強の、大きくはない規模のイベントですが、今後イベントを開こうと思ってる人の参考になれば幸いです。 運営・企画 初回はスピーカを集めるところからでした。自分の知り合いや、この人にしゃべってもらえたら面白そう!という方々に連絡しました。そしてミーティング。ミーティング会場は、会社の会議室を貸してもらって行いました。そこでホワイトボードに自分の話したいこと、誰かに話してもらいたいこと、むしろ誰かこれについて喋って!のようなことを書きます。それをたたき台として、その後は qwik.jp の ML + Wiki を活用し、誰が何分、どんなことについて話すかを決めていきます。 二回目からのトークは、qwik にこれぐらいの時期にイベント開こうと思う

    Shibuya.JS 運営について - 2nd life (移転しました)
    stfh
    stfh 2007/07/17
  • 川o・-・)<2nd life - Rails における信頼とは

    アンカテ(Uncategorizable Blog) - Rails的世界の「安心」と「信頼」の力学 自分の場合 Rails における信頼とは DHH (Rails 作者) のセンスだと思ってます。Rails はマーケティング、設計思想、共に成功したと言えますが、そのうちエンジニアの自分が興味があるのは設計思想なわけで。 最初 Rails に出会ったときは、日では一年遅れでやってきた「Rails って簡単に素早く Web アプリケーションが作れるよね」といったスピード感に Rails ってばスゲー、と思いましたが今は違います。ここら辺は結局フレームワークに慣れれば、他のフレームワークでも大概は出だしのスピード感をつけることができます*1。 実際 Rails を使っていても、周りのその他たくさんの開発者と技術力の差をつけるには、結局 Rails のソースを読み、ネット上でかなりの情報が流れ

    川o・-・)<2nd life - Rails における信頼とは
  • 川o・-・)<2nd life - Firefox 2.0 Beta 1 で Rails のドキュメントをインクリメンタルサーチ

    先日、Firefox の Beta 1 がリリースされました。で、2.0 の新機能の一つで、OpenSearchを利用した検索プラグインを個人でも簡単に作成することができるようになりました。また A9.com > OpenSearch > OpenSearch Autodiscovery を利用すると、2クリックで簡単に閲覧しているサイトを検索プラグインとして Firefox に追加することができます。 で、Creating MozSearch plugins - MDCを読んでいたら、JSON でデータを返すと google suggest のようなインクリメンタルな検索結果を表示できるようです。面白そう!ということで早速 api.rails2u.com にOpenSearch Autodiscovery と 検索結果を JSON で返すAPIを仕込んでインクリメンタルサーチするようにし

    川o・-・)<2nd life - Firefox 2.0 Beta 1 で Rails のドキュメントをインクリメンタルサーチ
  • 川o・-・)<2nd life - rlwrap - readline ラッパー

    http://utopia.knoware.nl/~hlub/rlwrap/ 今の今まで知らなかったんですが、rlwrap という readline ラッパーがかなり便利ちっくです。 これを使うと Readline によるコマンドライン入力に対応してないようなプログラムでも対応させてしまうことが可能です。 例えば ruby インタプリタを引数無しで起動して、カーソルキーの↑や←や ^H を押すと $ ruby ^[[A^[[D^Hなことになってしまうのですが、この rlwrap でラップして起動すると $ rlwrap rubyカーソルキーや ^H はもちろん、↑や C-p によるヒストリーバック、C-r による入力履歴のインクリメンタルサーチまでできてしまいます。すげー。入力した履歴はデフォルトだと ~/.プログラム名_history, ruby なら ~/.ruby_history に

    川o・-・)<2nd life - rlwrap - readline ラッパー
    stfh
    stfh 2006/06/07
  • 川o・-・)<2nd life - Rails 1.0 -> 1.1 の ActiveSupport 変更点まとめ

    Ruby on Rails 1.0 までは AWDwR を読んで使い方が解ってる人も多いと思うのですが、1.1 以降でどんな詳細な機能が加わったのかはあまり知られてません。 そのために ActiveSupport の CHANGELOG を淡々と読んでまとめてみました。間違ってる可能性もあるのでそういう箇所があったらご指摘下さい。 Add CachingTools::HashCaching to simplify the creation of nested, autofilling hashes. [Nicholas Seckar] CachingTools::HashCaching という Hash を利用したシンプルなキャッシュ機能のモジュールが加わりました。このモジュールを利用したいクラスで extend して hash_cache :methodnameとすると、そのメソッドが

    川o・-・)<2nd life - Rails 1.0 -> 1.1 の ActiveSupport 変更点まとめ
  • 川o・-・)<2nd life - Rails の API を Hyper Estraier で全文検索

    http://rails2u.com/esearch/ http://rails2u.com/esearch/estseek.fcgi?phrase=Reloaded&perpage=10 (サンプル) 自分が作ったウェブアプリの中じゃ、一番利用していると言っても過言ではない http://api.rails2u.com/ 。Rails のクラスやメソッドのインクリメンタル検索は便利ですが、やはり全文検索もしたくなることがあります。 というわけで高速検索が可能で利用方法もお手軽な Hyper Estraier を設置してみました。驚くほど簡単に Rails API のインデックスは作成が終わり、設置も FastCGI 版を lighttpd で動かしてみましたがすんなりと。 というわけで html などの全文検索をやってみたい人は Hyper Estraier を使ってみるといいかもしれま

    川o・-・)<2nd life - Rails の API を Hyper Estraier で全文検索
  • 川o・-・)<2nd life - prototype.js 1.5 からの新機能 Template の使い方

    JavaScript での変数を使った文字列の作成は何かとめんどくさいですね。prototype.js では 1.5_pre0 から Template という簡易テンプレートとして使えるクラスが加わりました。相変わらずドキュメントはソースと test 嫁なので簡単な使い方を紹介します。 まずは Template となる文字列を new Template で作ります。Template のリテラルは #{}です*1 。 var t = new Template('#{foo}, #{bar}!');次に作成した Template インスタンスの evaluate 関数を呼び出し、引数として Hash(Object) を渡します。 t.evaluate({ foo: 'hello', bar: 'world' }); // hello, world!もしテンプレートを使い回さず、一度限りの文字列

    川o・-・)<2nd life - prototype.js 1.5 からの新機能 Template の使い方
  • 川o・-・)<2nd life - JavaScript や CSS の query に自動で最終更新時間をつける Rails Plugin

    最近いろいろなサイトで <script src="/javascripts/foo.js?1142509269" type="text/javascript"></script>や <script src="/javascripts/bar.js?v=2.3" type="text/javascript"></script>の記述を見るようになってきました。また CSS でも <link href="/stylesheets/foo.css?1142509300" media="screen" rel="Stylesheet" type="text/css" />といった記述もちらほら見かけます。 これは JavaScriptCSS を更新しても、ブラウザキャッシュが読み込まれているため、更新された JS ファイルなどがロードされない場合への対策です。上記のような最終更新時刻やバージ

    川o・-・)<2nd life - JavaScript や CSS の query に自動で最終更新時間をつける Rails Plugin
  • Pathname - ファイル名のグッドラッパー - 2nd life (移転しました)

    http://www.ruby-lang.org/ja/man/?cmd=view;name=pathname 先日のRails勉強会でetoさんにPathnameというパスやファイル名のすごい便利なライブラリを教えて貰った。で、早速使ってみたところめっちゃ便利でいま書いてるアプリケーションじゃほとんどのファイル名の操作に使ってるという。 使い方はめっちゃ簡単でパスやファイル名を引数としてオブジェクトを作るだけ。 require 'pathname' file = '/tmp/foo' path = Pathname.new file で、これの何が便利っていうとリファレンスマニュアルのメソッドを眺めて貰うと解るんだけど、ファイル関係の操作が何でもできてしまう。通常だとFileオブジェクトを作るには実体が無いとダメなんだけど無くてももちろん作れるため str = IO.read(file)

    Pathname - ファイル名のグッドラッパー - 2nd life (移転しました)
    stfh
    stfh 2006/03/10
  • Shibuya.js - 2nd life (移転しました)

    http://shibuyajs.org/ 以前、他の言語はコミュニティがあって、勉強会なりカンファレンスなりいろいろ開かれて活発だけど、去年から見直されてきた JavaScript はそういうコミュが無くて悲しいよねという話をしました。その時、コミュを作ったら参加するよというありがたい言葉を数人からもらったので思い切って作ってみました!ネーミングは Shibuya.pm リスペクト。 現在は第一回のテクニカルトークに向けて動いているところです。テクニカルトークの詳細が決まったらまたアナウンスすると思うので JavaScript プログラマの人は良かったらご参加下さい。 あとサイトのデザインは id:tnx に、Rediscover the JavaScript は id:antipop に書いてもらいました。thx!

    Shibuya.js - 2nd life (移転しました)
  • 川o・-・)<2nd life - MigemizeExplorer が便利すぎる件

    http://www12.plala.or.jp/yoshi223/MigemizeExplorer/ 今更ですが、使ってみたら超便利だったので紹介。普段キーボードを使ったexplorerでファイルを選択をする時は、頭文字の英数を打って目的のファイルの近い場所まで移動して選択したりしてます。日語ファイル名の場合はより面倒です。そんなときMigemizeExplorerを使うとファイル選択がとても簡単になります。 Migemoはみなさんご存じのローマ字で日語インクリメンタルサーチできるツールで、使ったことがある人はわかると思いますが、いちいちIMEを立ち上げずとも日語を検索できるので大変便利です。その Migemo 検索を簡単にexplorerからできちゃうようにするのが MigemizeExplorer です。 MigemizeExplorerを立ち上げればexplorerのどこから

    川o・-・)<2nd life - MigemizeExplorer が便利すぎる件
    stfh
    stfh 2006/02/17
  • 川o・-・)<2nd life script.aculo.usのファイルサイズを軽減

    http://www.goodpic.com/mt/archives2/2006/02/ajax.html で紹介されてる通り、script.aculo.usは通常のロードではファイルサイズが100KBを超えます。しかし、それはフルでロードしたときの容量なのです。script.aculo.usはロードするパッケージを選ぶことができる*1ので必要な機能だけを選べば良いのです。例えば、たいていの場合はscript.aculo.usのeffects.jsだけしか使わなかったりするので <script src="/js/scriptaculous.js?load=effects" type="text/javascript"></script> とすればOK。これでファイルサイズは34KBに収まります。また、二つ以上のパッケージを選択したい場合は <script src="/js/scriptac

    川o・-・)<2nd life script.aculo.usのファイルサイズを軽減
  • vim でのオススメ plugin

    最近 .vimrcを貼り付けるのが流行ってるみたいなので自分も.vimrcを貼り付け、るわけでなくオススメの plugin を紹介してみようかと。 Align.vim http://www.vim.org/scripts/script.php?script_id=294 痒いところに手が届く整形ぷらぎん。 options = { width => 100, height => 50, background => nil, } なソースを範囲選択して :'<,'>Align => すると options = { width => 100, height => 50, background => nil, } のように整形してくれます。 Allargs.vim すべてのバッファでコマンドを実行。例えば開いてるバッファのすべての文字列を置換したければ、 :Allargs %s/perl/ruby

    vim でのオススメ plugin
    stfh
    stfh 2006/02/04
  • perl でインタラクティブなシェルを実現する perlsh - 2nd life (移転しました)

    http://search.cpan.org/~hayashi/Term-ReadLine-Gnu-1.15/eg/perlsh 最近 perl を勉強中で、ちょくちょく挙動に関する疑問が出てきます。ですが Ruby における irb のようなインタラクティブシェルが無い(と思っていた)ため、挙動をちょくちょく調べるのに、エディタ開いてソース書いたりしていてめんどくさい!と思ってたりします。 しかし今日 id:hideoki が挙動チェックでなにやら便利そうな対話型のシェルを使っており、それが perlsh というインタラクティブなシェルでした。 $ perlsh # 起動 main[10]$ @ary = qw(1 2 3 4 5) 1 2 3 4 5 main[11]$ map { $_ * $_ } grep { $_ % 2 } @ary 1 9 25 のように対話的に実行でき、返

    perl でインタラクティブなシェルを実現する perlsh - 2nd life (移転しました)
    stfh
    stfh 2006/01/11
  • zsh + screen で端末に表示されてる文字列を補完する - 川o・-・)<2nd life:

    以前に入力したコマンドの履歴を覚えていて補完してくれるshellはあるが、 端末に表示されている文字列を補完してくれるshellは無いだろうか。 表示されている文字列を補完してくれるshellが欲しい とvimrc diaryに書かれてたのでzsh + screenで端末に表示されてる文字列を補完する方法を。.zshrcなどに # dabbrev HARDCOPYFILE=$HOME/tmp/screen-hardcopy touch $HARDCOPYFILE dabbrev-complete () { local reply lines=80 # 80行分 screen -X eval "hardcopy -h $HARDCOPYFILE" reply=($(sed '/^$/d' $HARDCOPYFILE | sed '$ d' | tail -$lines)) compadd -

    zsh + screen で端末に表示されてる文字列を補完する - 川o・-・)<2nd life:
    stfh
    stfh 2006/01/08
  • 川o・-・)<2nd life - オブLOVE夜会第2弾「イマドキのJavaScript」

    http://kakutani.com/20051222.html#p01 http://rails2u.com/misc/imadoki/ (資料、キーボードのs, wでプレゼン操作可能) でゲスト講師してきました。参加者の皆さん、セッティングマネージャ兼幹事1.0の角谷さん、お疲れ様でした。 というわけでJavaScript, Ajax, prototype.js そしてGiza(オレオレJavaScript Framework inspired by しょこたん)について放談ということで緩い感じにだらだらとお話しをしてきました。その中でとりわけGiza.Eventsについて関心を持たれた方が多かったようなので、Giza.Eventsについての説明をちょっと。 Giza.Eventsは主に三つの機能があります。 giza:a, giza:c などのgiza: 接頭辞つきの拡張属性を利用

    川o・-・)<2nd life - オブLOVE夜会第2弾「イマドキのJavaScript」
  • 川o・-・)<2nd life - MochiKit

    http://mochikit.com/ http://mochikit.com/screencasts/MochiKit_Intro-1.html 名前はご存じの人も多いと思われるJavaScriptライブラリMochiKit。自分もJavaScriptライブラリはprototype.js + scriptaculousで決まり、みたいな感じでMochiKitには全然注目してなかったのですが、screencast見ると凄さが解るとtypoさんのCLONに書いてあったので見たらスゲーと思いました。まだ見てない人は必見! prototype.jsがクラスベースのOOPみたいなことをしてライブラリを形成してるとしたら、MochiKitJavaScriptらしく良い意味でどんどんグローバルな関数を定義して使い勝手を向上させてます。また標準のexampleに入ってるinterpreterがブラウ

    川o・-・)<2nd life - MochiKit
  • Web2.0 アプリケーションライク な背景画像を生成する Background Image Maker

    http://lab.rails2u.com/bgmaker/ ウェブサイトのデザインをしているとき、自分はCSSを利用します。そのCSSを書いていて、「ああ、こんな背景画像がほしーな」と思うと、今までは画像編集ソフトでちまちま作ってSCPでサーバにアップして確認し「いやここはもうちょいこうした方が」とまた少しだけ修正してアップして…という繰り返し作業を行ってました。 しかしその作業単調が面倒になってきたため、簡単にWeb2.0っぽいアプリケーションでよく使わるような背景画像をWeb上から作成できるツール、「Background Image Maker」を作ってみました。下のような背景画像を簡単に作成ができます。また先日このページを現在のデザインにリニューアルしたのですが、今使っている背景画像も全部 Background Image Maker を使って作成してます。 使い方は値を適当に弄

    stfh
    stfh 2005/12/17
  • 川o・-・)<2nd life - prototype.js with mousehweel event

    http://rails2u.com/misc/wheel_event/ prototype.jsではイベントハンドラの登録をEvent.observeに追加することにより行えます。これはWinIEだとelement.attachEvent, Firefoxだとelement.addEventLisnerと登録用の関数が違う互換性を吸収してくれるので大変便利です。しかし、ホイールイベントは少々特殊なため、通常のEvent.observeでは上手く登録が行えません。 ホイールイベントをwebアプリケーションで上手く使うとユーザビリティの向上が見込める*1ので、簡単にホイールイベントを登録できるEvent.observeを作ってみました。上記URL先のwheel_event.jsをprototype.jsを読み込んだ後に読み込むことによって、mousewheelイベントを扱えるようになります。

    川o・-・)<2nd life - prototype.js with mousehweel event