タグ

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

  • パーフェクトなCRubyを目指して - 1行のバグ修正に潜む苦労 - - I am Cruby!

    この記事はパーフェクトRuby Advent Calendar 2013 - Adventar の9日目です。 前の日のエントリーはパーフェクトRuby Advent Calendar 2013(8日目) Let's Sinatra Life - たちブログです。 まだ参加できますので、みなさまもぜひ。 パーフェクトRuby Advent Calendar 2013 - Adventar パーフェクトRubyRubyの仕様に大変詳しい同僚への献をインターセプトして読ませていただきました。 さまざまな機能をまとめたとてもよいだと思います。 著者のみなさまの苦労が偲ばれました。パーフェクトRuby (PERFECT SERIES 6)作者: Rubyサポーターズ,すがわらまさのり,寺田玄太郎,三村益隆,近藤宇智朗,橋立友宏,関口亮一出版社/メーカー: 技術評論社発売日: 2013/08/1

    パーフェクトなCRubyを目指して - 1行のバグ修正に潜む苦労 - - I am Cruby!
  • プレゼンテーションのこつぅ?( ・´ー・`) - I am Cruby!

    「俺の発表、自分でもスゴイとたまに思うことあるのに誰も褒めねぇ…」 っていう自画自賛ツイートで(/ω・\)チラッしていたところ、私の発表を褒めていただくことが多くなりました。 そこで私がプレゼンをするときに気をつけていることを列挙してみます。 序盤は「アイスブレイク」。笑いをとって聴衆を和やかにさせる 手を上げてもらうのもいいかもしれませんねぇプレゼンの基的な構成は… 問題点見つけた 実はこういう解決方法があるらしい 実際に試行錯誤 結果はこうなったようだ これについてオレはこう思った この説明の中でもたまに笑いが取れるとなお良いと思う ※「笑い」は大事ですがそれがすべてではありません 「テーマ」をスムーズに伝えるひとつの手段 テーマの選定基準は自分が「面白いなぁ」と思うこと 自分が「これ面白い」と思ってないと不思議なことに相手にも伝わりません 『異常に興奮して』伝えるといいかもしれない

    プレゼンテーションのこつぅ?( ・´ー・`) - I am Cruby!
  • RubyConf2013参戦記 - I am Cruby!

    今回は日Rubyの会の「RubyConf2013参加支援」を受けての参加となりました。 Rubyconf2013supportprogram ? ruby-no-kai/official Wiki ? GitHubRubyの会のみなさま、ありがとうございます。 行きたい人はもっと積極的に応募したらいいよ。 1日目(移動日)松江->米子->羽田->サンフランシスコ->マイアミの旅程。 羽田から国際線に乗るのは初めてだったので国際線ターミナルの行き方がわからずウロウロ。 警備員のおじさんに聞いたら「バスがでてるよー」とのこと。歩いていけるようにしたらよかったのに…。 航空券を発券してもらうも1枚しかでてこない。「あれ?もう一枚は向こうで手続きですか?」って聞いたら「実は出てました。てへぺろ(・ω バーガー類を頼むと「ピクルスとかトマトとか全部入れてもいい?」みたいなことを聞かれることが

  • 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

  • RubyKaigi2013の動画を勝手にオススメ #rubykaigi - I am Cruby!

    会議中に自分が聞けなかった講演、気分が悪くて(二日酔い)まともに聞けなかった講演を動画でみた。 もちろん会議中に自分が聞いた講演は大体オススメなのでそっちの感想はここの方で確認して欲しい。 Viemoの方にはまだちょっとしか上がってないので、それまではyharaさんのまとめからustの動画を見るのがよいでしょう。 List of ustream recordings and slides of RubyKaigi 2013 talks. (Videos will officially uploaded to vimeo) えーっと、以下は単純に観た順です。コメントの興奮度で勝手にランキングしてください。 (ランキング付けして自由を感じなさい(この言葉、好きすぎて困る)) 'Ruby Archaeology'- Keiju Ishitsuka Rubyが生まれる辺りの歴史の話。 今現在、広く

  • RubyKaigiで出された問題 - I am Cruby!

    RubyKaigiでは、とある問題が出されていました。 decode the answer | Code Puzzle 実際に解いてみた(まだ表だけ)のですが、問題がとてもよくできていて解けた時には謎の感動が待っていました。いや、感動した。 これはRubyKaigi用に作られた問題なのだそうですよ。任天堂さんかっけー!! ツイッターとか見てる限りまだの人もいるようなので、ぜひチャレンジしてみてください。 私のようなポンコツでもがんばれば解けるくらいのレベルなのがよかったですね。 あと最初の問題をクリアしたあとの『大きなNextボタン』を忘れずに押すようにしましょう。 次は裏の方も頑張って見つけてみようっと…(というかPythonの方もあとでやってみよう)。ツイートする

  • Ruby's GC 2.0 - #rubykaigi - I am Cruby!

    あいかわらずRubyのGCの話をしました。新規性のない発表でしたが、お楽しみいただけたでしょうか…。 Ruby's GC 20 from Narihiro Nakamura GCの説明とアニメーションの相性がいいことがわかったので、今回はRabbitではなくimpressで資料を作りました。 わりと作るのに苦労したのでアニメーション付きの資料はGumroadで売ることにしました。 超わかりやすいと思うので買ってください!! Ruby's GC 2.0 (with animation) お金を払えばslideboomへのリンクがゲットできます。それつかむことに自由を感じなさい!!ツイートする

  • TRICK 2013 at RubyKaigi - I am Cruby!

    tric/trick2013 ? GitHub "Worst house of garbage"という賞をいただきました。まさか貰えるとは。ありがとうございます。 あと変態の称号もいただきました。私なんぞが変態だなんて真の変態に申し訳ないですが、ありがたく頂戴いたします。 コードはここ: trick2013/nari at master ? tric/trick2013 ? GitHub 簡単な解説(trick2013/nari/remarks.markdown at master ? tric/trick2013 ? GitHubからの引用) CRubyのオブジェクト空間自体を無限のテープとして利用したBrainf*ckの言語処理系です。 ObjectSpace.each_objectのブロックにメモリアドレスの低い順にオブジェクトが渡される特徴を利用しています。 この特徴を利用すれば、

  • RubyKaigi感想 - I am Cruby!

    箇条書き 1日目 Openingの角谷さんの喋り方がエモくてグッと来た いろんなアナウンスを英語でもされていてスゴイと思ったRuby歴史 イイハナシダナーKeynote 1人で開発してた時の話がとても重要だと思った Inside RubyMotion llvmあたりの話までしてくれて超楽しいトークだった あとで聞いたらMacRubyの資産をかなり使ってるそうな(JITの部分) だからC++で書かれてる Two Legal Bodies about Ruby and its projects 漫談よかった。Grantは今年もやるそうな TWO CARTOON FOXES: the _why documentary (Japanese Subtitled) _whyのプレゼン動画の最初と最後だけ使ってるのがいいなあと思った _why自身に優しい作りというか。いっぱい人シーンがあると_why

  • CRubyのGC実装で参考にされたScheme処理系:SIOD - GC Advent Calendar - I am Cruby!

    Garbage Collection Advent Calendarの8日目(!!)の記事です。 gc.cの最初のほうのコミットを見るとCOPYRIGHTがあって、SIOD:Scheme In One Defunという処理系を参考にまつもとさんはCRubyのGCを実装されたみたいなんですね。 /gc.c - ruby-trunk - Ruby Issue Tracking System この当時はスッキリしたソースコードですね。 SIOD - Wikipedia, the free encyclopedia SIOD: Scheme in One Defun SIODは公式サイトなどを読むと1988年にリリースされ、最後のリリースが2007年、と。 30年も続いてんのかあ。 で、wikipediaには以下のように書かれていますね。Scheme In One Defun (or Scheme

  • perfume-devのモーションデータをRuby/SDLで動かす #perfume-dev - I am Cruby!

    Rubyいまさらな感じはありますがPerfume official global websiteで公開されているPerfumeのモーションデータをRuby/SDLで描画してみました。 動画はこんな感じでキビキビ動いております。 ソースコードは以下に置いてあります。 authorNari/perfume-dev-rubysdl2d ? GitHub 解説みたいな感じの苦労話モーションデータは.bvhという形式で公開されており、こいつのフォーマットの理解が必要不可欠であります。 これについては以下のwikiページを参考にしました。 MOCAPデータファイル - TMPSwiki よーしわかったということで、パーサを書きはじめる…前にgemを探したらすでにありました。 bvh | RubyGems.org | your community gem host なんだじゃあもう描画するだけでいいじゃ

  • 『徹底解剖「G1GC」実装編(β版)』を公開しました!! - I am Cruby!

    全国数千人(GC売上調べ)のGCファンのみなさま、おまたせいたしました。 『徹底解剖「G1GC」実装編(β版)』を以下のURLに公開しました! 徹底解剖「G1GC」実装編(執筆中) (PDFやEPUB,mobiもリンク先から辿れます) なかなか面白い内容になったと思いますのでぜひぜひ読んでみてください! β版と銘打っていますが、書きたい部分はすべて書いたつもりですので正式公開になっても内容が大きく変わる可能性は低いです。 ただ読者様から重大な指摘があったりすると困るのでとりあえず1ヶ月くらいはβ版とし公開させていただきます。 ぼちぼち書きながら休みながら結局完成にさせるのに半年もかかってしまいました…。 ページ数も140ページくらいいってしまったし…。 書きは書き始めてからちゃんと終わらせることが一番大事なことのように思います。 いやー終わらせられてよかった(遠い目)。ツイートする

  • 円環の理(Garbage Collection) - 闇RubyKaigi - I am Cruby!

    yamirubykaigi闇葬られたスライドを公開しておこう。 円環の理(Garbage Collection) View more presentations from authorNari leakyは以下のURLからダウンロードできる。 authorNari/ruby at leaky - GitHub ※ただし、minirubyまでしか作れないので注意だ。 みなさんお馴染みのhell world.rbを書こう p a = "welcome! hell world!" a.free ようこそHell worldへ。 finalizeもすぐ実行 a = 'a' proc = Proc.new{ p (a = 'do_finalize'); a.free } ObjectSpace.define_finalizer(a, aProc=proc) a.free # => 'do_final

  • Rails2系 => Rails3.0系移行時の実践的まとめ - I am Cruby!

    railsrails3.1系になるとまた大きく変わりそうだけど(特にJavaScript周り)、一旦まとめておこう。 routes.rb /:controller/:action/:id はroutes.rbに記述されなくなった。RESTを使え。 代わりに以下のコメントを外すとレガシーなものも使える。 match ':controller(/:action(/:id(.:format)))' routes.rbの記述形式は他にもいろいろ異なる。 Ruby on Rails Guides: Rails Routing from the Outside In find周りArelを使うならfind(:all, ...)系は基的に使わない。 すべてwhere(...)やallを使った方がいい。 ただし、find(1) や find_by_name('hoge') みたいなものは今後も消えないだ

  • 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

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

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

  • hudsonでrvmを使ってrails3アプリを継続的インテグレーション(CI) - I am Cruby!

    hudson, rails前々から興味があったhudsonをrails3のアプリケーションで使ってみた。rvmを利用して綺麗な環境でビルドすることが目標。 hudsonの起動第1回 Hudsonの導入|gihyo.jp … 技術評論社を参考にしました。すんなり動くかと思いきや、HTTPサーバが起動しない。しかもエラーも吐かないものだから困った。 原因を調べるとhudsonが悪いワケじゃなかった。winstoneの中でIPv6localhostにconnectしているところでシーンという感じ。ip6tablesを見るとloが空いてなくて、パケットがことごとく捨てられてたみたい。 ping6 ::1 すら何も帰ってこなかった…。タイムアウトに時間がかかるのでエラーが吐かれる前に手で止めてて、エラーが確認できなかったのです。しくしく。 とりあえず、IPv4を優先的に使うようにする。 $ jav

  • いろんなものが自動起動しまくってなんだコレ - I am Cruby!

    ubuntu「自動起動するアプリ」は以下のファイルに置かれるとかで、ゴミが残ってました。 ~/.config/gnome-session/saved-session/ ちっ。

  • rackを読むのまとめ - I am Cruby!

    Rubyrackを読む#1 - I am Cruby!rackを読む #2 - I am Cruby!rackを読む #3 - I am Cruby!Rackを読む #4 - I am Cruby!rackを読む #5 - I am Cruby!エゴまとめ

  • org-mode、remember-modeでいろいろしたい!! - I am Cruby!

    emacs今までclmemo.elを愛用してきましたが、org-modeに乗り換えることにしました。org-mode、remember-modeについてはid:rubikitchさんの以下の記事を参考にしました。org-mode + remember-mode でEmacs内で瞬時にメモをする→コードリーディングに生かす・メモ検索する - (rubikitch loves (Emacs Ruby CUI)) 僕の org-remember-templates は以下のように落ち着きました。 (setq org-remember-templates '(("Task" ?t "** TODO %?\n %i\n %a\n %t" nil "Task") ("Work" ?w "** TODO %? :work:\n %i\n %a\n %t" nil "Task") ("Idea" ?i "