タグ

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

  • ChipでWebページ上のコードを簡単に扱おう #advent11rb - I am Cruby!

    RubyRuby Advent Calendar jp: 2011 : ATNDの7日目の記事です。昨日は@sakuroさんの/var/log/messagesでした。明日は@sato_ryuさんのターンです。) みなさんが有用なTIPSを記事に書いたり書かなかったりする中、私はChipというToolを紹介します。 Chipは私が今日(!!)リリースしたツールで、Webページ上のマイクロコードを管理するものです。 authorNari/chip - GitHub インストール方法: $ gem install chip 何に使うか?Web上に書き捨てているコードは結構あると思います。ブログの記事上とか、gistとか。 そういうのをコマンドラインで管理できたら楽しいだろうと思い、作りました。 ちょっとだけ具体例を書いてみましょう。 「おれだけのモンキーパッチ貼っておきますね」例えば A m

  • Redmineのチケットをコマンドラインで扱う「redcuine」 - I am Cruby!

    rubyRedmineのチケット操作って絶対ブラウザつかわないといけないので面倒ですよね…。どうせならコマンドラインでスコーンと登録したい。 以前はコマンドラインでメール投稿してチケット登録するツールを作ってたんですが、登録されるタイミングとか微妙でどうも使いづらかった。会社のRedmineが1.1に上がったので調べてたらREST APIを見つけて、そっちに乗り換え。どうせなら公開しようと思って、昨日夜なべして作り上げました。 authorNari/redcuine - GitHub gem install redcuine で入ると思います。ドキュメントとかほぼないし、テストもないので(酷い)、使う人はexperimentalだと思って使ってください。 Issueの取得、登録、更新、削除と一通りできます。Redmine1.1でしか試してないので、1.0系だと動かないかも。

    Sixeight
    Sixeight 2011/01/31
    ktkr!
  • Module#prepend - alias_method_chainが滅ぶ日 - I am Cruby!

    ruby(この記事はRuby Advent Calendar jp 2010の4日目の記事です。前日はUmeyashikiさんでした) Ruby2.0の新しい機能(となるかもしれない)Module#prependについて紹介します。# もうtipsとかじゃ全然ないですね…。Module#prependはRailsコアチームのYehuda Katzが提案しました。  Module#prependModule#prependを呼び出すと、クラスの手前にモジュールがぴょこんと追加されます。例えば、クラスcにモジュールmをprependした場合、以下のような順番でメソッド探索するはず。 m => c mがc前に来ていますね(なんのこっちゃ)。 ちなみにクラスcはクラスhを親に持ち、クラスhはaを、aはmを、mはmを、mはeを、eはrを親に持ったとします。 m => c => h => a => m

    Sixeight
    Sixeight 2010/12/04
    はやく欲しい!
  • i18n_page_title - Auto generation some page title. - I am Cruby!

  • GC本のツクリカタ - ガベージコレクションのアルゴリズムと実装読書会 in 大阪 - I am Cruby!

    GC 発表資料GCのツクリカタ イベント情報以下のページにまとまっていくと思います。http://wiki.github.com/ujihisa/nari.gc/ 感想参加者が40人を越えたのがびっくりでした。みんなGCのために集まってくれてるのかと思うとちょっともう言葉も出ないくらい感動してしまって。懇親会では帰りの都合もあってお先に帰らせてもらったのですが、帰るときにみなさんに拍手してもらったのも嬉しかったです。「を書いてよかったなー」と心底思いました。 やっぱし、しんどいぶんだけ、いいことがありますね!!  謝辞が出てすぐに「読書会やりましょう!」と言ってくださり実行してくれた@ujmさん、参加していただいたみなさんに感謝します。

    Sixeight
    Sixeight 2010/05/10
  • GC本の読書会 - I am Cruby!

    gcbook, GCなんと色んな所でGC読書会が開催される流れのようです。著者として、こんなに嬉しいことはありません(T-T) ガベージコレクションのアルゴリズムと実装読書大阪読書会には参加する予定でいます。GCの裏話とかお話しできると良いと思いますです。 Twitter / どみにをん525: @nari3 かなりの勢いで、次回テーマをGCにす ...名古屋の方でも読書会のお話がありました。長いスパンで読書会をやられるそうなので、どこかのタイミングで遊びに行くつもりです。 Twitter / GNUE(鵺): けっこう反響があったのでマジで企画します。まずは場所 ...東京の方でも読書会のお話がありました。東京には共著者の @_hikari_ がいるので気軽に声を掛けると反応するんじゃないかと思います。 Twitter / TakanoriNakanowatari: @nar

    Sixeight
    Sixeight 2010/03/13
  • GC本の作業ログ - I am Cruby!

    結城さんのデザパタの作業ログがとても参考になったので。# しかし、あのクオリティを持つがたった3ヶ月で書き上がったというのは神がかり的ですよね。 2009/04/29 執筆開始 2009/05/30 Pythonの章書き始め 2009/07/06 Pythonの章書き上げ: 78P 2009/07/11 Pythonの章を監修者様へ 2009/07/30 DalvikVMの章書き始め 2009/08/09 DalvikVMの章書き上がり: 58P 2009/08/09 Pythonの章をレビュア様へ 2009/08/17 Rubiniusの章書き始め 2009/09/05 Rubiniusの章書き上がり: 47P 2009/09/07 DalvikVMの章をレビュア様へ 2009/09/07 保守的GCの章書き始め 2009/09/14 DalvikVMの章を監修者様へ 2009/09

  • 「ガベージコレクションのアルゴリズムと実装」という本を書きました。

    gcbook, gcai, GCGCLoverのみなさん、お待たせしました。「ガベージコレクションのアルゴリズムと実装」の情報公開です。 書名:ガベージコレクションのアルゴリズムと実装 著者:中村 成洋/相川 光 監修:竹内 郁雄 ページ数:472ページ 体価格:3,200円 発売開始日:2010年3月17日(水) ※地域・書店によって遅れることがあります ISBN:978-4-7980-2562-9 C3055 読み所 書は次の2つのテーマを扱います。 1.GCのアルゴリズム(アルゴリズム編) 2.GCの実装(実装編) アルゴリズム編では、これまでに考案されてきた数多くのGCアルゴリズムの中 から、重要なものを厳選して紹介します。伝統的かつ基的なものから、やや 高度なアルゴリズムを選定しています。GC独特の考え方や各アルゴリズムの特 性などを理解していただくのがアルゴリズム編の最大

    Sixeight
    Sixeight 2010/03/04
    なりさんの本きたー!
  • シャイなRubyistにできること - 松江Ruby会議02 - I am Cruby!

    matsuerubykaigi02, matrk02 発表資料シャイなRubyistにできることView more presentations from authorNari. この発表で伝えたかったこと 勉強会に無理して行く必要ない。 そんなに素晴らしいもんじゃねー 自分のために情報を発信する 人のためにやってるんじゃねー カリスマシャイは静かに暮らしたい ヤオモテ、OK 動画matsuerubykaigi02 02/13/10 12:39AM, matsuerubykaigi02 02/13/10 12:39AM rubycity on USTREAM. Conference 19分くらいからです。 懇親会takkanmさんやkakutaniさんとお話ししました。他にも色々な方とお話ししました。とっても楽しかったです!また、まつもとさんに「良いプレゼンだった!」といわれたのが凄く嬉しか

  • 興味のある技術にGCと書いておいたら面接で爆笑された - I am Cruby!

    GCRailsエンジニアを募集してる会社の採用面接を受けた時の話。転職エージェントに作れと言われて作ったシートに、「興味のある技術/言語」という欄があったんです。仮想化技術とか色々書いたけど、プログラミング言語処理系実装の中で興味があるのはGCだったので、GCと書いておいたのですが、それを見た面接官のリアクションが酷かった。 面接官「GC・・・ふははっ!GC!」面接官「GCやってるんですか?wwwww」  俺「(唖然)は、はい・・まだマークスイープを理解したくらいですが。。」面接官「GC・・・ニヤニヤ」 その人はエンジニアで、当然Rubyのコードを書いている人だったので、CRubyにも「Matz製」のGCが搭載されていることを知らないワケが無いだろうと思っていた。つまり、このリアクションは"理不尽な状況に直面した時にどう対応するか"を見ているんだろうと判断し、あえて突っ込みは入れずに対処し

  • GC本の妄想 - I am Cruby!

    執筆友達:何のを書いてるの?僕:ゴミ集めのだよ友達:えっ?エライね。どういう内容なの?僕:ゴミ集めの手法を紹介するんだ。友達:えっ?例えば?僕:マークスイープとかかな。友達:えっ?どういうの?僕:生きているものに印を付けるんだ。死んでるゴミはリサイクルするの友達:えっ?ゴミって死んでるの?僕:注意しないと、生きているものでも、実は死んでるゴミだったりするよ友達:何それ怖い僕:えっ?友達:えっ? 友達:他にはどういう手法があるの?僕:世代別ゴミ集めとかかなぁ友達:どういうの?僕:若いものはゴミになりやすいから、若者中心にゴミ集めするの友達:えっ?じゃあ、年寄りは?僕:年寄りは逆にゴミになりにくいから、ちょっと隔離しとくの友達:何それ可哀想。お年寄りも混ぜてあげて僕:ゴミになったお年寄りは捨てるけどね友達:えっ?何それ怖い僕:若者はもっとゴミになりやすいから、大量に捨てるよ友達:えっ?何そ

    Sixeight
    Sixeight 2010/01/25
  • Rubyist Magazine 0028号 - I am Cruby!

    Ruby, るびまるびまの28号がでましたね!関係者のみなさま、お疲れ様でした。Rubyist Magazine - Rubyist Magazine 0028 号 たいへん光栄なことに、RubyistHotlinksに載せていただきました。るびまの中でもっとも好きな連載なので当に嬉しいです!Rubyist Magazine - Rubyist Hotlinks 【第 22 回】 nari さん# あんまり言うと恥ずかしいのであれなんですけど、一生に一度の機会なのでブログに載せておきます。 GCの話とか、あとはGCの話とか盛りだくさんの内容になっています。その他にはアイス工場の話とか、なんでGCとかやってんのとか。その辺りを喋ってます。興味のある方はご覧ください。# 私の経歴について感心がある人が少なからずいらっしゃるようなので  蛇足私なんかがHotlinkしていただいたのにはわけがあ

  • メモリ破壊の現場を見つける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

  • 開発速度を上げるための3つの方法 - I am Cruby!

    Rails, git, Emacsこの記事では開発速度を上げるために努力していることをちょろちょろっと書きます。当はRuby Advent Calendar jp: 2009 : ATND用のネタだったんですけど、量があるので「これはtipsじゃないだろう」という判断を下しました。  タイプ数を短くする例えばよくターミナルで打つコマンドは短くした方がよいでしょう。具体的にはgitのコマンドを"g"にしています。「Mr.g!!」 # ~/.zshrc alias g="git" # ~/.gitconfig [alias] s = status st = status ci = commit co = checkout cob = checkout -b br = branch sh = !git-sh a = add aa = add -A b = branch sa = stash s

  • プレゼンテーションZen - I am Cruby!

    抜粋 デザインは当初から考慮すべきものであり、最後に付け足すものではない。 率直に言って、プレゼンテーションを行うことは、世界(あるいは地域社会、会社、学校など) にちょっとした変化をもたらすチャンスである。 「ユーモア」とは、くだらないジョークを連発したり、ピエロのようにおどけてみせることではない。 昔ながらの控えめなユーモアで観客をクスッとさせることである。 何が言いたいのか?なぜそれが重要なのか? 重要なのは「答え」だが、まずは「疑問」を抱くことが大切だ。 プレゼンテーション Zen作者: Garr Reynolds, ガー・レイノルズ, 熊谷小百合出版社/メーカー: ピアソンエデュケーション発売日: 2009/09/07メディア: 単行(ソフトカバー)購入: 7人 クリック: 25回Amazon.co.jpで詳細を見る著者の方は大阪に住んでらっしゃるんですね。へー。

  • 関西Ruby会議02感想など - I am Cruby!

    関西Ruby会議02関西Ruby会議02に参加してきました。 「Hacking parse.y」 - ujihisaさんparse.yというと、私のような一般人は眉をひそめる系のファイルなのですけど、すごく簡単に楽しくいじれるんだということがわかったセッション。 parse.yってこういう風に読んでいくといいんだな。すごく面白かった。難解なものに対してこういうアプローチをすれば楽しく理解できるのか。むーすごいなー。  お昼ご飯ujmさんの一団にこっそりついていって、こっそりご飯をべるというライフハックを発動。 @prototechnoさん, @murachikaさんらとお話しする。熱いなー。  「RubyLightningTalks」立ち見が出るほどの盛況っぷり。会場は色んな意味で熱かった。 以下、メモ ifchanged 便利そう。使おう。 g いいなー! n(notify-send)

  • GC黄金時代ー関西Ruby会議02にてー - I am Cruby!

    関西Ruby会議02 発表資料GC黄金時代View more documents from authorNari. 反省GCについての電波を放出しすぎた 1分間に5回「GC」と言えなかった parse.yよりgc.cアルゴリズムの説明がうまくできなかった 欲張りすぎるのはよくない 猛省 謝辞関西Ruby会議スタッフの皆様お疲れ様でした。そして、素晴らしいイベントをありがとうございました。また、私なんか呼んで貰っちゃってありがとうございました…。(交通費も非常に助かりました。ありがとうございます) また、参加者の皆様、セッションを聞いてくださった皆様。ありがとうございました! 神まとめこのログが神のごとくまとまってますけどっ!?2009-11-07 - 総合的な学習のお時間

  • 高尾さんRHC本サイン会@第44回オープンソースサロン - I am Cruby!

  • 今まで読んできたGCのイメージ - I am Cruby!

    執筆流行の擬人化で一つ。 PythonのGCはコメントもしっかり書かれていて、優等生のイメージ。ただ、関数がドカーンと定義してあったりして、一気すぎる所に難あり。 DalvikVMのGCはコメントもあんまり書いてないし、かなり難解。いつも難しそうなこと考えている人イメージ。関数に2つの役割を持たせたりして、とっても大変だ。 RubiniusのGCは綺麗だった。イケメンイメージ。コメントは少ないんだけど、適切に名前が付けてあったり、関数の粒度がちょうどよかったりでかなりいい。読んでみたらどうか。 V8は今読んでる(v8なう)。ぱーっと見た感じだと、クラスの抽象度にバラツキがある。ちゃんとしようしてるけど、どこか抜けてる感じ。 と、こんなくだらないことしてないで、さっさと作業進めないとな(笑)

    Sixeight
    Sixeight 2009/09/29
    かわいすぎる><
  • 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