タグ

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

  • さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)

    先日のももクロハッカソンで出会った wantedly を作ってる仲さんが と言ってたので、面白そうなので wantedly を速くしてみました。 wantedly ちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそうだなぁという感覚はやる前からありました。 アプリケーションサイドのチューニング 初心者*1にありがちな問題として SQL に適切にインデックス張ってない キャッシュすべき場所をキャッシュしていない 無駄なデータを引きすぎてる ことがよくあります。ので順に実装を見ていきました。 SQLに適切なインデックスを張ってない 張ってありました!びっくり!\(^o^)/ キャッシュすべき場所をキャッシュしていない Facebook API を利用したアプリケーションなんですが、ユーザのデータの取得を毎回馬鹿正直に HT

    さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)
  • watchr - ファイルに変更があったら何かする / もしくはオサーンについて - 2nd life (移転しました)

    みなさま、いかがお過ごしでしょうか。以前人のことをオサーンオサーン云いまくっていたけどその当時のオサーン年齢のもうすぐ三十路になります secondlife ですこんばんわ。言葉のしっぺ返しが痛い今日この頃です。 さて、若かりし頃には合わなかったけど今使ってみるとしっくり来る物もありますね。その一つが AutoTest(ZenTest) です。ファイルが更新したらこける / SyntaxError になると解っていてもテストが走りFFF、自分のテストサイクルでテストが実行できないのが我慢できませんでしたが、久しぶりに使ってみるとそんなのは気にならず、いちいちテスト実行しなくてよくなってとても気持ちがよい感じです。 しかしながら ZenTest に含まれる AutoTest はレールが敷かれているテスト環境では利用しやすいけど、ちょっと道を踏み外すと結構テストを実行するのがめんどくさいです。

    watchr - ファイルに変更があったら何かする / もしくはオサーンについて - 2nd life (移転しました)
    takkan_m
    takkan_m 2011/01/21
    近所の30歳Railsプログラマも最近sporkの整備してた
  • デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)

    先日のデブサミ2009で発表した、はてなの開発戦略 (すごい名前だ…) のプレゼン資料を公開します。前半は主に git の話で、後半ははてなブックマークリニューアルの、Perl 層の開発をどんな感じで行っていったか、という話です。 デブサミ2009 はてなの開発戦略View more presentations from hotchpotch. はてなの git では、中央のマスタレポジトリサーバがあって、そこから各自 clone / fetch して開発を行ってるので、完全に github のような分散のメリットを生かしているわけではありません。 しかし完全に分散を生かさずとも、git に移行したメリットは十分にあって、資料の中でもふれていますが、やはり一番便利なのが git のブランチ機能です。もうこれ無しでの開発は考えられないなぁ、ぐらいで、さくっとブランチ切って開発、ブランチの切り

    デブサミ2009 はてなの開発戦略 - 2nd life (移転しました)
  • github に gem を公開する - 2nd life (移転しました)

    http://github.com/ 最近一部で話題沸騰の githubgithubRails で作られたアプリケーションでは、自分が知りうる限り一番の完成度と使いやすさを誇るんじゃないか、と思っています。 ソースコードツリーの見やすさ、(g)zipでくれ機能、各種 git の情報へのアクセスしやすさ、最初に git レポジトリを作ったとき表示されるチュートリアルと云った基的なことはもちろんですが、オープンソースプロジェクト・コミュニティを加速させるであろう、分散レポジトリを利用した様々な機能がすばらしいですね。 誰かが公開してるレポジトリを fork ボタン一つで自分のレポジトリにクローンし、いろいろ変更を加え、大に取り込んで欲しいなぁ、と思ったら pull request。大のコミッタは気に入れば pull で取り込めばよいし、もし気に入らなかったとしても、変更者がそのフ

    github に gem を公開する - 2nd life (移転しました)
    takkan_m
    takkan_m 2008/05/20
  • AS3勉強会資料 - 2nd life (移転しました)

    先日、スーパーな方々に集まっていただき勉強会を開きました。インタラクティブデザインを表現するためのプログラミングを、さっぱり知らなかったので自分が勉強させてもらいまくり会でした。参加者のみなさん、ありがとうございました! 以下、そんなに役に立たないと思われる資料です。Flex2/Apollo に対する雑感とかそんな感じ。 Flex2 Flex2 フレームワークについていろいろ 雑感 悪いところ 良いところ Flex 弄っての雑感 すべて理解しようとすると覚えること大杉 最低の全機能覚えるだけでまるまる5日ぐらいかかりそう 導入・投資コストに見合う価値は? Flex 自体のサイクル もうじき 3 が出るぽい? 1.5 > 2 ほどは違わないらしい サイクル早杉? 手になじんだ頃には次 ver? Flex の悪いところ UI なパッケージを含めると突然200Kbyte 超え できの良い、汎用的

    AS3勉強会資料 - 2nd life (移転しました)
  • はてなハイク お絵描き機能の話 - 2nd life (移転しました)

    さてさて、日リリースされたはてなハイクですが、実は一昨日にはお絵描き機能がありませんでした。リリース日の前日の朝、id:jkondo がすっごくニコニコしながら(ニコニコしてるときは大抵なにかしてもらいたいときだ!騙されるな!)ねーねーと声をかけてきました。 「jkondo: シンプルなお絵描き機能があったら絶対面白いねん!実現出来ないかなぁ(ニコニコ)。」 突然!しかもリリースは明日ですよシャチョー!でもこんなシチュはエンジニアなら燃え(萌え)ますよね。Ruby など LL を弄ってる(今回はAS3だけど)と、出来るだけ短い期間でどれだけの物を作れるかというのは熱くなれる瞬間です。はてなは作ったら即座にサービスに反映してくれるので、自分の思想と合った物なら作るモチベーションもぐんぐん上がります。 というわけでミニマムな機能だけ最低限実装することにして、サーバサイドは Fotolife

    はてなハイク お絵描き機能の話 - 2nd life (移転しました)
  • はてな認証API Ruby 版モジュール作りました - 2nd life (移転しました)

    http://rubyforge.org/projects/hatenaapiauth/ 先日ローンチしたはてな認証APIRuby 版のモジュールを作りました。rubyforge にアップしたので、gem を使ってる人は # gem install hatenaapiauthでインストールできるかと思います。perlHatena::API::Auth と同じインターフェイスです。認証に失敗すると例外 Hatena::API::AuthError が発生します。また認証時に返す値が perl 版では Hatena::API::Auth::User を作って返してますが、Ruby 版では Hash になってます。 はてな認証API を使った Rails の認証系 plugin も作れそうなのでそのうち作ろうと思ってます。 以下は簡単なサンプルアプリとそのソース。gem パッケージの中

    はてな認証API Ruby 版モジュール作りました - 2nd life (移転しました)
  • 川o・-・)<2nd life - Rack を使って Web サーバで統一されたインターフェイスの利用する

    http://rack.rubyforge.org/ 先日登場した Rack というライブラリを使うと、Web サーバごとに同一のインターフェイスを利用できるようになります。通常、Ruby で Web アプリケーション を動作させるとき、cgi なのか、fcgi なのか、もしくは mongrel や webrick を使うのか、ということを考えなければなりません。cgi のみで動作決めうち、など良いのですが、ガワである Web アプリケーションフレームワークや一般に配布するアプリケーションなど、既存のフレームワークを用いずに作るときは、さまざまな動作環境でも動くように考慮しなくてはなりません。 たとえば既存のフレームワークである Rails や Camping はそれぞれ個別に cgi/fcgi/mongrel/webrick などの対応を行っています。しかし Rack で定義されているイ

    川o・-・)<2nd life - Rack を使って Web サーバで統一されたインターフェイスの利用する
  • 川o・-・)<2nd life - favicon を dot's ぽく変換する - favicon2dots

    http://favicon2dots.com/ favicon を dot's っぽく似非3D表示するサービス、favicon2dots を作ってみました。サイト上から 変換したい favicon やそのサイトの URL を打ち込むと、それっぽく変換してくれます。 またはてなidを id:secondlife のようにそのまんまフォームに打ち込むと、はてなユーザアイコンを変換してくれます。 id:secondlife id:nagayama id:eureka id:tikeda また、適当な gif/png 画像を指定しても dot's ぽく変換してくれます。 http://subtech.g.hatena.ne.jp/images/report.gif http://subtech.g.hatena.ne.jp/images/task.gif その他オプションとかもあるのでいろいろ弄

  • vim で Ruby のリファレンスマニュアルをさくさく検索する - refe.vim - 2nd life (移転しました)

    http://rails2u.com/projects/refe.vim/ http://rails2u.com/projects/refe.vim/screencast.html (スクリーンキャスト) プログラムを書いてるとどれだけ簡単にリファレンスマニュアルを検索できるかによって効率が数割変わると言っても過言ではありません。普段は Ruby のリファレンスマニュアルの検索には htmlhelp を愛用してるのですが、windows を使ってないときやコンソールから検索したいときに不便です。 で、コマンドラインから日語の Ruby リファレンスマニュアルを検索するすばらしいツールとして青木さん作の ReFe があります。ReFe 単体だけでも十分便利なのですが、結果の絞り込みをインクリメンタルサーチで行いたいなぁとか、リファレンスを引きたい時はほとんど vim でプログラミングしてい

    vim で Ruby のリファレンスマニュアルをさくさく検索する - refe.vim - 2nd life (移転しました)
  • 川o・-・)<2nd life

    Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :

    川o・-・)<2nd life
  • ruby のスクレイピングツールキット scrAPI - 川o・-・)<2nd life

    http://blog.labnotes.org/category/scrapi/ rubyスクレイピングして web の情報を取得するのには、今まで正規表現か xpath でやってたので、わりと面倒でした。で、ふと scrAPI というスクレイピングツールキットを知ったのですが、これがかなり便利そう。 このツールキットを使うと、CSS3 なセレクタを記述することで、要素を取得することができます。たとえばとあるサイトのリンクを全部取得したければ、 require 'rubygems' require 'scrapi' require 'open-uri' require 'nkf' require 'pp' $KCODE = 'u' links = Scraper.define do process "a[href]", "urls[]"=>"@href" result :urls e

    ruby のスクレイピングツールキット scrAPI - 川o・-・)<2nd life
  • 川o・-・)<2nd life - Developer Enviroments Conference の発表資料

    9/8 に開かれた DEcon で windows enviroments and vim という内容で発表してきました。主に自分が使ってる windows の開発に便利なツールと、vim についてプレゼンしてきました。時間大幅に押してしまいましてスイマセン…。 また、スピーカと参加者のみなさん、お疲れ様でした。他の方の開発環境やポリシーが聴けて大変参考になりました。あとカンジマン(id:tnx)には毎度の事ながら様々な準備お疲れ様でした。 自分のプレゼンには自作のはてな記法つかったプレゼンツールを使ったのですが、よくよく考えるとそれをエントリーに貼り付ければいいじゃん!ということに気づいたので、以下に発表資料を貼り付けておきます。 windows environments and vim secondlife 発表内容 windows での環境 どんなツールがあると便利か vim vim

    川o・-・)<2nd life - Developer Enviroments Conference の発表資料
    takkan_m
    takkan_m 2006/09/09
  • 日本 Ruby カンファレンス 2006 発表資料 - 2nd life (移転しました)

    週末は Ruby カンファレンス 2006 にお越しの皆さん、スピーカ、スタッフの皆さん、お疲れ様でした!かなり面白い Ruby のイベントになりましたね!特に裏方のスタッフの皆さんの働きで、スピーカとしてもとても発表しやすかったですし、一参加者としても様々なところに配慮が行き届いているなぁ、と感じとても良かったです。 http://rails2u.com/misc/rubyka2006/ というわけで、自分の発表資料、「Perl の会社で使われる Ruby の利用法とは!?」 を公開します。中身ははてなのこんなところで Ruby がつかわれてるぞー、というのと dRuby 最高、というお話しです。二日目は咳さんの dRuby 話(資料: http://www.druby.org/dRubyAgain.pdf )もあり、これから dRuby が流行りまくる予感が! dRubyによる分散・W

    日本 Ruby カンファレンス 2006 発表資料 - 2nd life (移転しました)
  • 川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 ラッパー
    takkan_m
    takkan_m 2006/06/07
    はげしく便利
  • Google SketchUp の API は ruby ! - 2nd life (移転しました)

    http://sketchup.google.com/ http://sketchup.google.com/support/bin/search.py?query=ruby 先日公開された Google SketchUp の API はなんと ruby*1 ! ということで rubyist の間では話題になってたりなかったりします。ということで早速使ってみて RSS を読み込んで表示する単純な Plugin を書いてみました。表示はこんな感じ。 API のドキュメントがまとまっている*2 し、サンプルコードもあるので ruby 使える人ならすぐにでも Plugin 書くことができると思います。使い方も簡単で Plugins ディレクトリに .rb ファイルを放り込むだけ。また window -> ruby Console から対話型のコンソールを使えるので簡単な動作テストが簡単にできるで

    Google SketchUp の API は ruby ! - 2nd life (移転しました)
    takkan_m
    takkan_m 2006/04/30
    ついにgoogleにもrubyが
  • 川o・-・)<2nd life - Haskell の日本語リファレンスマニュアル引きツール href

    http://i.loveruby.net/w/href.html 入門HaskellやYAPC::Asia の Audrey のセッション、Learning Haskellで LL 界隈でも熱くなり始めた Haskell。かくいう自分も少しづつ勉強中です。 で、最初勉強するのに必至なドキュメントの一つがリファレンスマニュアルです。href はコマンドラインから日語のリファレンスを引くことができる便利ツール。用例も載ってるのもありがたいですね。使用方法は簡単( ReFe と同じ )で href コマンドの引数に調べたい関数を書いて実行するだけ! $ href reverse Data.List.reverse reverse :: [a] -> [a] PRELUDE reverse xs リスト xs を逆順にしたリストを返す。 reverse [1,2,3] = [3,2,1] re

    川o・-・)<2nd life - Haskell の日本語リファレンスマニュアル引きツール href
  • 川o・-・)<2nd life - lighttpd fastcgi Ruby on Rails

    設定がいまいちわからなくって、動かすのに一時間ぐらいかかった、、、のでメモ書き。lighttpdのインストールは、debianなら展開したソースにdebian/rulesがあるんでdebuild -us -ucでサクッと.debが作れてそれをインストール。rpmならオフィシャルにバイナリがあったはず。gemでfcgiもインストールしておく。んで、lighttpdのrails向け設定は #/home/gorou/work/bbs_test がrails app server.port = 3000 server.modules = ( "mod_rewrite", "mod_fastcgi" ) url.rewrite = ( "^/$" => "index.html", "^([^.]+)$" => "$1.html" ) server.error-handler-404 = "/disp

    川o・-・)<2nd life - lighttpd fastcgi Ruby on Rails
    takkan_m
    takkan_m 2006/01/22
    日本語でかかれたrails+lighttpdの設定
  • ActionWebServiceでxmlrpcサービスを作る - 2nd life (移転しました)

    下が変な人に「くれりんこ」と云われたような気もするので作り方を解説します。 RailsではActionWebServiceを使うとxmlrpcやsoapのサービスを簡単に作ることができます。今回はTraipyという以前実装したTropyクローンに簡単にxmlrpcで投稿(newTropy)、エントリーの取得(getTropy)をできるAPIを実装してみましょう。 まずAPIのライブラリを置く場所ですが、Rails的にはRAILS_ROOT/app/apis/*_api.rbとして置くのが一般的です。今回はxmlrpc_api.rbという名前を付けて配置します。 module XmlrpcStruct class Tropy < ActionWebService::Struct member :key, :string member :source, :string end end cla

    ActionWebServiceでxmlrpcサービスを作る - 2nd life (移転しました)
    takkan_m
    takkan_m 2006/01/04
    railsでxmlrpc実装
  • はてな 入社しました - 2nd life (移転しました)

    2006年からはてなエンジニアとして働くことになりました。よろしくお願いいたします。初出社の昼ごはんはカップ麺!!!

    はてな 入社しました - 2nd life (移転しました)
    takkan_m
    takkan_m 2006/01/04
    railsの偉い人がはてなへ