タグ

ブックマーク / nari.hatenablog.com (18)

  • 桐島、Rubyやめるってよ #odrk03 - I am Cruby!

    大江戸Ruby会議03の招待講演として発表してきました。たのしかったです!! 桐島、Rubyやめるってよ from Narihiro Nakamura 「思いっきりエモい(emotional)、コードが一行も出てこないプレゼン」をRubyKaigi系列で一度やってみたいという思いがあり、上記のようなネタを考えてみました。 ただ、かなり幅広い層に見られる(古参Rubyist、初心者Rubyist、コミッタ)こともあり、いずれの層にも楽しんでもらえる話にしなければ、と思って、だいぶネタを練りました。 特に超練度が高いRubyistたちにどのように受け入れられるか心配ではあったのですが、artonさんや咳さんに「面白かった」と言ってもらえてホッとしました。 懇親会等ではありがたいことにみなさんから絶賛系のコメントをいただくことが多く、逆に心配になるくらいだったのですけど、akrさんだけは「目的オ

    gom68
    gom68 2013/03/25
    最近、遊びを忘れてたなあ・・・
  • マイ.emacs探訪 - I am Cruby!

    Emacs(Emacs Advent Calendar jp: 2009 : ATNDの参加記事。すいません、私なんかがトリなんです。昨日はshugoさん。最初はk1LoWさんでした。)みなさん。メリークリスマス。こんな暇な日は自分の.emacsを見ながらニヤニヤすることにしましょう。emacsでメモclmemoemacsのメモはclmemoを愛用しています。clmemoはプログラマお馴染みのChageLogの書式を使ってメモを取るelispです。 (autoload 'clmemo "clmemo" "ChangeLog memo mode." t) (setq clmemo-file-name "~/memo/clmemo.txt") (global-set-key "\C-xM" 'clmemo) 重要なメモはココに集結させています。clmemoが便利なのは、メモを取る先が一つのテキ

  • メモリ破壊の現場を見つけるTips - I am Cruby!

    RubyAdventJP, GC, Ruby(この記事はRuby Advent Calendar jp: 2009 : ATNDの4日目です。前日はmrknさんでした) 健全なるRubyistであれば、RubyのGCをいじることが週に一度はあるでしょう。そのときに困るのが、GCをいじってしまったことによるバグの修正です。GCをいじるというのは想像以上に難しく、少しでも書き間違えるとメモリ破壊が発生します。そのときに使えるTipsをこの記事で書くことにします。 みなさんご存じの通り、メモリ破壊というのは原因を特定するのが困難です。これは問題が発覚する場所とメモリ破壊が起こった現場が位置的に遠いことに起因しています。偉大なるハッカーのまつもとさんですら、その発見は困難です。 [ruby-dev:38628] Re: [BUG: trunk] called on terminated objec

    gom68
    gom68 2009/12/05
  • Termtterの片思い診断プラグイン one_way_love - I am Cruby!

    Termtter これは何?自分がFollowされているかどうかを知ることができます。 使い方 > plug one_way_love => true > one_way_love @termtter Yes. one_way_love @jugyo No. 困ったこと指定したユーザのFollow数が多いとTime outしてしまうので、どうしたものかな。。 ソース # -*- coding: utf-8 -*- module Termtter::Client register_command( :name => :one_way_love, :exec_proc => lambda {|arg| target_name = normalize_as_user_name(arg) break puts "please input [USERNAME]" if target_name.emp

  • レールに乗っていゆくには - I am Cruby!

    RailsRailsのレールにうまく乗るのは難しいなぁと日々実感する毎日。ということで最近思っていることをメモ程度に。  fixture は使わない、代わりにmachinistかfactory_girl もうこりごりです。 fixture。 感想&理由はあとで書く 手動テストデータをどうするか。 fixture を自動テストで使っている場合、どうしてもinvalidなデータが入る。動かない。yaml_waml や yaml_db を使ってDBダンプしたデータを使うとどうか。 まぁ machinist とか使う場合は rake db:fixtures:load でもいいか。 マスターはymlで書く。fixtureみたいな感じで読み込めばいい。(DBのマスタデータをfixtureからロード - I am Cruby!) マスターデータに id は絶対に振ること。id : 235121651 と

  • 発表資料 RubyのGC改善による私のエコライフ - I am Cruby!

    rubykaigi2009RubyのGC改善による私のエコライフView more documents from authorNari.  動画TODO: ニコニコ?に載ったらココに貼りますね.  感想こんなにホームだったのは初めてです.というのも「GCに興味ある人」っていったら100人くらいいる人がみんな手を挙げたんだから(T-T) コミッタの方々が前にいらっしゃって,とても緊張した.たぶん今までのプレゼンで一番の緊張だった気がする.ドキドキ. GCの話.手を挙げて貰ったこれも80人くらい買うよと言って貰えた.ちょ!「これが全員なんじゃない?」というツッコミがあって笑ってしまった. なぜか,45分くらい時間があって,30分の資料しか作っていなかったので,やっぱり15分時間が余った.「質問タイムナウ」となって,いっぱい質問をいただく.ありがとうございます.この質問タイムが予想以上に盛り上

  • EmacsでのRails開発にrinariを使い始めた - I am Cruby!

    Rails, Emacsemacs-railsを捨てて,rinariを使い始めた.理由はコードネームにnariが入っていて,好感をもったから.emacs-railsのココが好き flymakeが使える riが引ける rdocが引けるemacs上でテストが実行できる TAGが作れるemacs-railsのココが嫌い デカイ 読み込むだけでruby-modeを汚染する メソッド単位のテストができない そこでrinariの登場 メソッド単位のテストができる 検索が賢い flymakeは自分で設定すればいける素晴らしい紹介があるので,あとはこちらで.emacsとRinariで快適Rails開発! - おもしろWEBサービス開発日記 設定など ;; C-c ' がprefixキー (setq rinari-minor-mode-prefixes (list "'")) (require 'rinar

  • git mergeの時にコミットしたくない - I am Cruby!

    Git $ git merge hoge_branch とするとmergeした後,勝手にコミットしてしまう.branchでのコミットログも一緒に入ってしまうため,適当に書いたコミットログが push した時に入ってしまう. そんな時は $ git merge --squash hoge_branch コミットはせずに,マージだけしてくれる.

    gom68
    gom68 2009/03/20
  • git事始め - I am Cruby!

    Gitそろそろ git 使ってみるか. 初めの設定svn like なショートカットを登録 $ git config --global alias.st status $ git config --global alias.ci commit $ git config --global alias.co checkout $ git config --global alias.br branch commiter の情報を登録 $ git config --global user.name "Your Name Comes Here" $ git config --global user.email you@yourdomain.example.com 色々と色づけして見やすく $ git config --global color.branch auto $ git config --g

  • Thunderbirdのメール編集をEmacsで - I am Cruby!

    Emacs, ThunderbirdWanderlustを使い始めて一週間ほど経ったが,私には合わないようだった.そこですっぱりとwanderlustを捨てて,Thunderbirdに出戻りした.今回は,まじめにThunderbirdを拡張する事にする.そっちの方が私にとってBestWayな気がしている.スレッド表示Thunderbirdをデフォルトでスレッド表示させるには[設定]->[詳細]->[一般タブ]->[設定エディタ]を開き.mailnews.thread_pane_column_unthreads を false に設定する.Thunderbird のスレッド表示まとめ - えむもじらメールの編集をEmacsでExternalEditerというアドオンをインストール. 窓の杜 - 【NEWS】「Thunderbird」で外部エディターによるメール編集を可能にするプラグイン アド

  • 安定な結婚の問題 stable marriage problem - I am Cruby!

    Ruby, アルゴリズム早起きをする事にした.ラジオ体操とかするのもあれなんで,アルゴリズム体操でもしようかと思う. 問題N人の男性とN人の女性が集団お見合いをし,おのおの異性を好みの順に順位付けした.この順位表を元に安定な縁結びをしなさい. 感想※ただしイケメンに限る番兵かわいい. コード N = 3 # 各性の人数 boy = []; girl = []; position = []; rank = [] (1..N).each do |g| puts "女性#{g}の好み" (1..N).each {|b| rank[g] ||= []; rank[g][b] = gets.to_i } boy[g] = 0; rank[g][0] = N + 1; end (1..N).each do |b| puts "男性#{b}の好み" (1..N).each {|r| girl[b] ||

  • Skype.elが凄すぎる件 - I am Cruby!

    Emacsid:kiwanamiさんのskype.elをいち早く試してみる.テキストエディタ勉強会に出ました - 技術日記@kiwanamiこれは凄い...めちゃくちゃ使いやすい..linuxのSkypeは使いづらくて腐りまくってると思ってたので凄く助かります.自分の設定ソースコードは以下の様に取得した. $ svn co http://svn.codecheck.in/lang/elisp/skype/trunk/ skype .emacsはフォルダへのパスを通した後で以下の設定をする (require 'skype) (setq skype--my-user-handle "nari") (setq skype--icon-path "~/.emacs.d/skype/icons") (setq skype--emoticon-path "~/.emacs.d/skype/emotic

  • そろそろ分かっておきたいY Combinator - I am Cruby!

    Rubyもうすぐ年明けだし,Yコンビネータの魔法みたいな動きに惑わされる人たちがでてくるんじゃないかなと思ってRubyで解説してみます. 参考に[ruby-list:35058] Y CombinatorY CombinatorY Combinator Y Combinatorって何?3年周期くらいでお騒がせのYさんってそもそも何なのかという話ですが,動機として 再帰の時に自分の名前を使わずに,なんとかして関数そのものを呼びたい というのがあって,例えば階乗とかしたいときに def fact(n); n == 0 ? 1 : n * fact(n-1); end # ここを消したい! と言う事です.何が嬉しいのかというと,さっぱり分かりませんし,arguments.calleeとか普通に名前使える所では使えばいいんじゃないのかな. 前置きRuby1.9のlambdaでは ->{|n| pu

  • ミニミニGCを作ってみた - I am Cruby!

    gom68
    gom68 2009/02/23
  • acts_as_taggable_on_steroidsのnamed_scope - I am Cruby!

    Rails named_scope :tagged_with, lambda{|tags| find_options_for_find_tagged_with(tags) } とこんな感じ.  class Reminder ActiveRecord::Base acts_as_taggable named_scope :user, lambda{|user_id| {:conditions => ["#{table_name}.user_id = ?", user_id]} } named_scope :tagged_with, lambda{|tags| find_options_for_find_tagged_with(tags) } end こんな定義であれば,  Reminder.user(1).tagged_with("hoge") という感じでできる.おお,何かかっこいい.

  • DBのマスタデータをfixtureからロード - I am Cruby!

    RailsDBのマスタデータ(例えばプルダウンなど)のロードはみんなどうしてるんだろうか.私は以下の様なタスクを書いた. # lib/tasks/load_master_data.rake require 'active_record' require 'active_record/fixtures' require 'yaml' namespace :db do desc "loading master data" task :load_master do conf = YAML::load(IO.read(File.join(RAILS_ROOT, "config/database.yml"))) ActiveRecord::Base.establish_connection(conf[RAILS_ENV]) Fixtures.create_fixtures("db/master_fi

    gom68
    gom68 2009/02/10
  • Object.__id__ってタダのFixnumみたいだろ.ポインタなんだぜ.それ. - I am Cruby!

    RubyRubyのObjectのIDは生のポインタが見えているかもという話.例えば ("a".__id__) 1 とすると求められた値は実はヒープに格納されたオブジェクトのポインタだったりする.前提知識:第2章 オブジェクト Object.__id__の実装 VALUE rb_obj_id(VALUE obj) { if (TYPE(obj) == T_SYMBOL) { return (SYM2ID(obj) * sizeof(RVALUE) + (4 2)) | FIXNUM_FLAG; } if (SPECIAL_CONST_P(obj)) { return LONG2NUM((SIGNED_VALUE)obj); } return (VALUE)((SIGNED_VALUE)obj|FIXNUM_FLAG); } それぞれのVALUEの値はFixnumに変換.つまり奇数にするわけだ

  • Passenger+Railsでファイルダウンロードを三倍早くするアレの話 - I am Cruby!

    Rails, Ruby 結論:x_sendfileを使う。  調査内容Passenger(mod_rails | mod_rack)でApacheのx_sendfileが正常に動作するか。 PassengerについてApacheでアプリケーションサーバを介さずにRailsを動作させる拡張モジュール。Rackも動作します。構造としては、mod_rubyと違い、ApacheにRailsRuby)は取り込まないようです。PassengerSpawnサーバというRubyで動くサーバがApacheのWorkerProcessと連携する構造になっており、そのSpawnサーバで、Railsと、アプリケーションが二層に渡ってキャッシュされる仕組みになっています。 以下のサイトに、日語訳の技術的な概要について乗っています。http://lab.koshigoe.jp/en2ja/passenger/Ar

  • 1