タグ

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

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

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

    さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)
  • 大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)

    日大江戸*1で行われた大江戸Ruby会議01で、高速なテストサイクルを回すにはという内容で発表してきました。 大江戸Ruby会議01 高速なテストサイクルを回すには View more presentations from hotchpotch テストを速くするには二パターンあり、一つは単体実行時の速度・フィードバックの高速化、もう一つはすべてのテスト実行時の高速化があると思っていて、それらについての話です。ぎゅっとまとめると、前半の単体実行時の速度・フィードバック高速化には spork / prefetch-rspec / autotest / watchr を使おうという話と、後半は REE / parallel_tests による高速化・並列実行、remote spec によるリモートマシンでの分散テストについての話です。 特にオレオレプロジェクトの prefetch-rspec

    大江戸Ruby会議01 高速なテストサイクルを回すには - 2nd life (移転しました)
    mzp
    mzp 2011/04/11
  • 川o・-・)<2nd life - Rails pluginの作り方

    Rails 0.14からpluginの仕組みが導入され、今までは「libにライブラリを置いて、config/enviroment.rbに〜を記述して云々」という面倒な方法が、vender/plugins以下にファイルを配置するだけで、Rails体の拡張が簡単に可能になりました。その作り方をRailsでRESTを簡単に実現するpluginを題材に説明します。 まずは配置するファイルですが、 vender/plugins/プラグイン名/init.rb # 必須 vender/plugins/プラグイン名/lib/* # pluginで利用するライブラリ ディレクトリは$LOAD_PATHに追加される。必須ではない となります。順序としてはconfig/enviroment.rbが読み込まれた後に、init.rbがevalで実行されます。 ではvender/plugins/restmode/i

    川o・-・)<2nd life - Rails pluginの作り方
    mzp
    mzp 2011/01/30
  • Studying AS3 namespace - 2nd life (移転しました)

    先日行われた FxUG@関西の勉強会で、AS3 namespace についての発表を行った際の資料です。カスタム namespace の基的な使い方は理解しておくといろんな場面で活用できると思います。みんなもっと namespace まくろう!!! namespace 基的な namespace as3 namespace カスタム namespace namespace 応用と実践 namespace を利用したライブラリ 基的な namespace public private protected internal ご存じの通り、基的な namespace 上三つは、Java とほぼ同じ internal namespace デフォルト namespace 宣言無しで書くと、internal となる function myFunction():void { }internal

    Studying AS3 namespace - 2nd life (移転しました)
    mzp
    mzp 2008/10/28
    ABC的には7つのネームスペースがある。それぞれの違いはしらないので、あとで読む
  • 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 (移転しました)
    mzp
    mzp 2008/03/27
    ずっと探してた
  • 川o・-・)<2nd life

    このサイトは移転しました。 https://secon.dev/ https://secon.dev/feed 心のざわめきを無くして日記を書くということ / secon.dev への移転 - A Day in the Life alias open="pwsh.exe /c start" pwsh.exe を入れてない人は alias open="powershell.exe /c start" すると、open foobar がいい感じに開かれる。 # explorer が開く open . # デフォルトブラウザが開く open https://example.com/ # jpg に関連付けられているビュアーで開かれる open ./foo.jpg 先日、メインの開発環境を MacOS から Windows 10 Professional へと移しました。理由としては主に2点で、現

    川o・-・)<2nd life
  • fcwrap を使ったAS3オールドタイプ開発 - Shibuya.es 発表資料 - 川o・-・)<2nd life

    昨日の Shibuya.js Technical Talk #3 - Shibuya.es で LT をしてきました。関係者、来場者のみなさん、お疲れ様でした。 どの発表も面白かったです。技術的な面では omo さんのはじめてのABCでの、AVM2/JIT の話が大変面白かったです。なんで型を定義すると速くなるのかなど、「へーこう実行されるからなのかー」と解りやすかったです。 また会場では一斉を風靡するであろう、kushigahamaメソッドが生まれました。あのインパクトは正直高橋メソッドを初めて見たとき以上でした。今年は高橋メソッド以上にkushigahamaメソッドが流行る予感…。 また、fcwrap のデモも撮ったので置いておきます。 http://rails2u.com/misc/fcwrap_demo/fcwrap.htm このように保存するだけで即座に結果を表示/リロードしつつ

    fcwrap を使ったAS3オールドタイプ開発 - Shibuya.es 発表資料 - 川o・-・)<2nd life
  • ActionScript3 (mxmlc) でのコンパイルを100倍速にする方法 - 2nd life (移転しました)

    三日前から Flex2 SDK で ActionScript3 を始めました secondlife です。こんにちわ。AS3 は言語仕様的には ECMAScript と Java をあわせた感じで普通な書き方で OOP できるのでうーん、と頭をひねることはあまりないのですが、他のところでいろいろはまりまくってます。 で、原始的な解決方法として trace() を使ったプリントデバッグを行っているのですが、スクリプト言語に慣れきった体ではコンパイル時間が遅くて死にそうです。たとえばこんな HelloWorld.as package { import flash.display.Sprite; public class HelloWorld extends Sprite { public function HelloWorld() { trace("Hello World!"); } } }を

    ActionScript3 (mxmlc) でのコンパイルを100倍速にする方法 - 2nd life (移転しました)
  • 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
  • ファイル保存時に ERb でコンパイルして保存 - 2nd life (移転しました)

    ちょっと CSS で変数が使えたらなぁ、などと思うことが多々あります。そんなとき、適当なテンプレートエンジン使って CSS 記述しちゃえば!とか思うのですが、わざわざそんなことするまでもないし、と思いとどまってそれ以上何かすることはありませんでした。 CSS に限って云えば、Lucky bag::blog: CSS の値に変数を使用する の方法でサーバサイドで生成したり、その他アプローチで動的、静的に生成など、様々な手法があると云えます。 ちょっと話は変わって ERb。皆さんご存じの方も多いと思われる、ruby 1.8 標準添付のテンプレートエンジンです。ERb を使ってテンプレートファイルをコンパイルしたい場合、 ruby 1.8 以降さえあれば $ ruby -r erb -e "puts ERB.new(ARGF.read).result" file.template > fileの

    ファイル保存時に ERb でコンパイルして保存 - 2nd life (移転しました)
  • 1