読者です 読者をやめる 読者になる 読者になる

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

この記事はパーフェクトRuby Advent Calendar 2013 - Adventar の9日目です。 前の日のエントリーはパーフェクトRuby Advent Calendar 2013(8日目) Let's Sinatra Life - たちブログです。 まだ参加できますので、みなさまもぜひ。 パーフェクトRuby Advent …

プレゼンテーションのこつぅ?( ・´ー・`)

「俺の発表、自分でもスゴイとたまに思うことあるのに誰も褒めねぇ…」 っていう自画自賛ツイートで(/ω・\)チラッしていたところ、私の発表を褒めていただくことが多くなりました。 そこで私がプレゼンをするときに気をつけていることを列挙してみます。 序盤は…

RubyConf2013参戦記

今回は日本Rubyの会の「RubyConf2013参加支援」を受けての参加となりました。 Rubyconf2013supportprogram · ruby-no-kai/official Wiki · GitHub 日本Rubyの会のみなさま、ありがとうございます。 行きたい人はもっと積極的に応募したらいいよ。 1日目(移…

マインクラフトはいろいろ面白い

(TL;DR マイクラはおもしろすぎるから最初からやるな) えー、いまさらではありますが、マインクラフトってゲームが面白いので最近ハマってやっていました。 Minecraft ゲームの内容以上に私が面白いなと思ったのはマインクラフト周りのコミュニティとか、…

ネットで評判知って買って良かったもの・悪かったもの

最近引っ越してわかったもの、まとめ。※効果には個人差があります 悪かったもの パナソニック ドルツ・ジェットウォッシャー 白 EW1250P-W出版社/メーカー: パナソニック(Panasonic)発売日: 2009/02/20メディア: ヘルスケア&ケア用品購入: 39人 クリック: 36…

ICFPC2013参戦記

ひとりで参加して、ひとりで打ち上げまでしてしまい、ひとりで二日酔いになっているのであんまり日記を書く元気もないんですが…、でもやるんだよ。 1日目 ざっとルールを読んで昼過ぎには\BV処理系が動くようになったっぽい。 肝心のソルバ部分はまずは全ケ…

Firefox拡張で外部コマンド叩きたいやつのときどうするか

日ごろ便利に使わせてもらってる、とあるFirefox拡張に外部コマンドを叩くようなのがありまして、でもwindows版・mac版はあるのにlinux版はない、けれどぼくはプログラミングができると。 じゃあ作ったろうじゃないですか、というのがことの発端です。 XPCOM…

セブ島で1ヶ月英語留学してみましたよの件とその後

ご存じの方もいらっしゃるかとは思いますが、4月から5月中旬くらいまでフィリピンのセブ島まで英語留学をしてきました。 「一回行ってみるとどんなもんかな〜」くらいの気持ちで行ってみたのですが「どんなもんかな〜」がなんとなく分かったのでここにご報告…

RubyKaigi2013の動画を勝手にオススメ #rubykaigi

会議中に自分が聞けなかった講演、気分が悪くて(二日酔い)まともに聞けなかった講演を動画でみた。 もちろん会議中に自分が聞いた講演は大体オススメなのでそっちの感想はここの方で確認して欲しい。Viemoの方にはまだちょっとしか上がってないので、それ…

RubyKaigiで出された問題

RubyKaigiでは、とある問題が出されていました。decode the answer | Code Puzzle実際に解いてみた(まだ表だけ)のですが、問題がとてもよくできていて解けた時には謎の感動が待っていました。いや、感動した。 これはRubyKaigi用に作られた問題なのだそう…

TRICK 2013 at RubyKaigi

tric/trick2013 · GitHub 「最悪のゴミ屋敷(Worst house of garbage)」賞をいただきました。まさか貰えるとは。ありがとうございます。 あと変態の称号もいただきました。私なんぞが変態だなんて真の変態に申し訳ないですが、ありがたく頂戴いたします。 …

RubyKaigi感想

箇条書き 1日目 Openingの角谷さんの喋り方がエモくてグッと来た いろんなアナウンスを英語でもされていてスゴイと思った Rubyの歴史 イイハナシダナー Keynote 1人で開発してた時の話がとても重要だと思った Inside RubyMotion llvmあたりの話までしてくれ…

Ruby's GC 2.0 - #rubykaigi

あいかわらずRubyのGCの話をしました。新規性のない発表でしたが、お楽しみいただけたでしょうか…。 Ruby's GC 20 from Narihiro Nakamura GCの説明とアニメーションの相性がいいことがわかったので、今回はRabbitではなくimpressで資料を作りました。 わり…

桐島、Rubyやめるってよ #odrk03

大江戸Ruby会議03の招待講演として発表してきました。たのしかったです!! 桐島、Rubyやめるってよ from Narihiro Nakamura 「思いっきりエモい(emotional)、コードが一行も出てこないプレゼン」をRubyKaigi系列で一度やってみたいという思いがあり、上記…

LLVM(ruby-llvm)とPEG(Treetop)で電卓作り

きつねさんの本を読んだので、LLVMを使ってお約束の電卓をゴソゴソと作ってみました。authorNari/ttcalvm · GitHubこんな感じで動きます。 $ cat /tmp/a.txt 1 + 2 + 3 * 2 * (3 + 2) % 6 $ ./bin/ttcalvm /tmp/a.txt 3 あ〜、これ、電卓だ〜。LLVMとの連携…

スマホを使ってコンビニでPDFプリントしてみた

世の中にはネットプリントという便利なサービスがある。 ネットプリント 上記はセブンイレブンで使えるサービス。 セブンイレブンは全国約14,000店舗もあるので「どこでも」プリントできるそうだ。素晴らしい。 …しかし、松江にはセブンイレブンがない!!セ…

SPDYと「やったー、net-http-spdyできたよー」の話

SPDYを知る SPDYという実験的なプロトコルがありまして、 SPDY - The Chromium Projects HTTP2.0はSPDYをベースに作られるかも、みたいな話も風の噂で聞いたりするのでじゃあどんなもんかなあと仕様を読んで見ました。 SPDY Protocol - Draft 2 - The Chromi…

ゆく年、くる年

毎年恒例のやつ。去年の記事を参考に、と。 ゆく年、くる年 - I am Cruby! 今年の目標は達成できたか 今の本を書き上げる 書き終わったんですぞ!! -> 徹底解剖「G1GC」実装編 もう一冊書きはじめる もう疲れたもんで。当分いいです…。 CRubyGCの改善パッチ…

mrubyのGC解説まとめ - GC Advent Calendar

Garbage Collection Advent Calendarの25日目の記事です。 ついに、か、完走したぞ!!うぉぉー。はあ、つかれた。もう来年はいいです。ということで今日の分のスライドもあわせて、まとめてこの記事にはりつけておきます。 (あーあ、はてなダイアリーにsli…

GC Handbook読んでる - GC Advent Calendar

Garbage Collection Advent Calendarの22日目の記事です。 前の二つの記事比べるとクオリティが随分下がって申し訳ないんですが…。 エデンの園でおきたこと - steps to phantasien 20th article on Garbage Collection Advent Calendar 2012 · GitHub 毎朝GC…

GCフレームワーク Beltway - GC Advent Calendar

Garbage Collection Advent Calendarの18日目の記事です。 前日のDartVMの話、楽しいですね。(それに比べると随分クオリティが下がるわけですが) Garbage Collection Advent Calendar 2012 12/17 — Dart VM Overview 1.0 documentation興味ある論文を披露…

Precise garbage collection for C - GC Advent Calendar

Garbage Collection Advent Calendarの16日目の記事です。 だんだん論文紹介みたいになって来ましたが…。既存のC言語のコードをprecise garbage collectionが作れるような別のC言語のソースコードに変換しちゃおうぜ!というお話。 Precise garbage collecti…

機械学習を利用して長生きのオブジェクトを見つける - GC Advent Calendar

Garbage Collection Advent Calendarの15日目の記事です。世代別GCでは(大抵)新世代で何度か生き残ったオブジェクトは「長生き」とみなして旧世代に移動します。 でも、このオブジェクトは長生きっぽい、ということがプログラムを解析することでわかるとし…

いちばんいいのを頼む - GC Advent Calendar

Garbage Collection Advent Calendarの14日目の記事です。 yaottiさんの記事が楽しかったのでもう少し頑張ります!一人Advent Calendar [advent-calendar, gc] Garbage Collection Advent Calendar 2012 bit.ly/RoGUCN— tyruさん (@tyru) 12月 12, 2012ひと…

メモリのフラグメンテーションとGC - GC Advent Calendar

Garbage Collection Advent Calendarの13日目の記事です(よくぞここまで…)。フラグメンテーションの話。GC Handbookには以下の2種類のfragmentationがあることが記されています。 external fragmentation internal fragmentation それぞれ見てみましょう。…

SIODのGCリーディング(2) - GC Advent Calendar

Garbage Collection Advent Calendarの11日目の記事です。mark-sweepの方はなんだかんだ一緒だったので、まあ別に説明するほどでもなさそうです。 読みやすいソースコードで楽しかったです。ということでCopyingGCを見てみましょう。 void gc_stop_and_copy(…

SIODのGCリーディング(1) - GC Advent Calendar

Garbage Collection Advent Calendarの9日目の記事です。CRubyのGCで特徴的なヒープの構造がSIODから受け継いだものか調べてみたいと思います。 その前に特徴的なヒープの構造についてちょっと説明しておきましょう。HotspotVMなんかは、たとえば文字列みた…

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

Garbage Collection Advent Calendarの8日目(!!)の記事です。gc.cの最初のほうのコミットを見るとCOPYRIGHTがあって、SIOD:Scheme In One Defunという処理系を参考にまつもとさんはCRubyのGCを実装されたみたいなんですね。 Ruby Issue Tracking System この…

HerokuからMOGOKへ移行

MOGOK をHerokuからMOGOKへ移行しました。 MOGOKについてはこちら -> MOGOK HerokuではDBがこのまえPostgreSQLに移行した際に1万行の制限がかかり、絶対復習ではお金を払わないといけなくなったのですけど、それが月々$8くらいかかるので…。 それを捻出でき…

最近追加したCRubyのGCデバッグ用関数 - GC Advent Calendar

Garbage Collection Advent Calendarの4日目の記事です。最近のコミットでGCデバッグ用の関数を追加しました。 どちらもGC_DEBUGマクロが定義されているときに有効になる関数です。 rb_gcdebug_print_obj_condition rb_gcdebug_sentinal それぞれ紹介してみ…

ObjectSpace.reachable_objects_from()の活用 - GC Advent Calendar

Garbage Collection Advent Calendarの2日目の記事です。Ruby2.0.0の目玉機能である ObjectSpace.reachable_objects_from の活用法を書いてみましょう。 ドキュメントはソースコードのRDocを ruby/objspace.c at 020cc0ad5c5b4b2b2aac9e0a7fc9d35cfc76dfdc ·…

CRubyでオブジェクトが生成された位置を突き止める - GC Advent Calendar

Garbage Collection Advent Calendarの1日目の記事です。おそらく一人でけっこう長い日数を書くと思うので、軽いものからボチボチと…。 しかもGCとはあまり関係ないですが…。とあるオブジェクトの生成位置を調べたいとき、どうするのか。object_idを1bit左シ…

またつまらぬGemを作ってしまった…

先週と今週で夜なべして2つほどつまらぬGemを作りました。まず一つ目。 Scrym Scrymというやつです。 authorNari/scrym · GitHub http://rubygems.org/gems/scrymScrymはSelf collecting Ruby Mutatorsという名前の略です。 何をするかというと、malloc/free…

CRuby Benchmark CI

make benchmarkの結果の推移をみれるといいなぁと前々から思っていて、それとなく暇な時間を利用して以下のようなのを作ってみました。 # 使ってるスクリプトはほとんど@k_tsjさんのものですが…。CRuby Benchmark CIとりあえず一日一回うごかそうかなぁと思…

さよならKnuth先生〜CRubyのGC編〜

振り返れば、もうそれは二年前のRubyKaigi…。 やるやる詐欺を続けていたマーク関数の再帰呼び出しを辞めるやつをコミットしました。 ruby-trunk-changes r37068 - r37076 - PB memo http://bugs.ruby-lang.org/issues/show/7095 Knuthのスタック溢れ対策 オ…

札幌Ruby会議2012に参加

ブログ書くまでが会議! Rubyによる本気のGC - Serious GC with Ruby Rubyによる本気のGC - Narihiro Nakamura - Rabbit Slide Showあとでささださんにフルボッコにされた講演が上記になります。 将来性もないRegicideは闇に葬ろう!反省するところの多い発…

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

いまさらな感じはありますがPerfume official global websiteで公開されているPerfumeのモーションデータをRuby/SDLで描画してみました。動画はこんな感じでキビキビ動いております。ソースコードは以下に置いてあります。 authorNari/perfume-dev-rubysdl2d…

RubySourceのインタビュー記事

GC

公開されたみたいです。 Narihiro Nakamura: Ruby’s GC Innovator 日本語も書いたのでよかったらどうぞ。頑張って英語も書きました。い、イノベーター…

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

全国数千人(GC本売上調べ)のGCファンのみなさま、おまたせいたしました。 『徹底解剖「G1GC」実装編(β版)』を以下のURLに公開しました!徹底解剖「G1GC」実装編 (PDFやEPUB,mobiもリンク先から辿れます)なかなか面白い内容になったと思いますのでぜひ…

ICFPC2012参戦記

今年は5人での参加となりました。チーム名はyarunee。 もう4年目なのなー。 上記は集合写真のときに作ったボード。社員旅行っぽい感を出したかったのだ。去年のICFPC参加後のKPTのTryの結果、今年はいろいろと改善できたとおもう。 あんまり暇な人がでなかっ…

「ガベージコレクションのアルゴリズムと実装」のAmazonさん在庫切れについて

GC

追記: 2012/7/12 7冊ほど在庫入ったみたいです通称GC本がAmazon方面で在庫がなくなっています。 今のところ絶版というお話は来ておりませんのでご安心ください(絶版になったら悲しいなぁ)。 出版社の方に問い合わせてみたところ 「Amazonに出荷できるほど…

アプリ固有設定ファイルのストレスを減らすconfigict

Unagi.gcでアプリケーション設定ファイルあるあるを話していた。 「こういうの作ってますね」「じゃあgemで」 ということで公開してみた。詳しくはREADMEで。 authorNari/configict · GitHubインストールはgemで。 $ gem install configict アプリケーション…

みなとRuby会議参加 #minatork01

みなとRuby会議01に参加してきました。 みなとRuby会議01 - Regional RubyKaigi 窓からは海が見えて、すごくみなとっぽかったデスネー(…)酔っ払って意識が高いうちに書いておこう。 ソーシャルコーディング 会場に入るときに自分のテーブルを伝えられてそ…

MessagePack-RPCサーバのはまりどころ

MessagePack-RPCを使っていて「こういうときどうするんだっけ?」というのがあり、しかもけっこうはまりどころがあるので以下にまとめることにする。 古橋さんの以下の記事が大変参考になっております。 Ruby で MessagePack-RPC - Blog by Sadayuki Furuhas…

東京で一ヶ月ほどお世話に

なっております。とりあえず、みなとRuby会議まではいる予定です。 ごはんを奢りたい、という人がいれば遠慮なく言ってもらって構いませんのですよ!(チラチラ

kindlemailで時短や!

電子書籍をKindleで読むことが多くなってきました。 最近、手元にあるPDFを自分のKindle上に置く方法を探していて。 正直、いちいちPCとKindleを繋いでられないんですよ。でも、AmazonさんにはPersonal Documentという便利なものがあってだな…。 Personal Do…

nari.age+=1

3.21の誕生日です。もう27歳ですね。Amazon.co.jp とりあえずwishlistをペタリ。 追記 下記のものをいただきました。ありがとうございます!!マンガ 孔子の思想 (講談社+α文庫)作者: 蔡志忠,野末陳平,和田武司出版社/メーカー: 講談社発売日: 1994/12/13メ…

zshで困ってたことをボチボチ直した

zsh

暇ができたらやろうと思ってたことをやりました。 右側の表示(RPROMPT)が大変うざい Gitのブランチ名をRPROMPTに表示する方法を改良してみた - Hello, world! - s21gをありがたく使っています。 これはgitが管理するディレクトリに入ると以下のように右っか…

RubyのBitmap Marking GCによるメモリ使用量の改善(意訳)

GC

そういえばBitmapMarking GCについて@m_stさんにInfoQで質問をうけました。だいぶん残念な英語を返したのですが、向こうのインタビュイーさんの方でいろいろ修正していただいたみたいです。感謝感謝。 で、ちと意訳ですが以下に日本語訳も書いておきます。 …

ゆく年、くる年

2011年。いい年でしたね。 2012年。いい年ですか? 早いものでもう5年目のブログ納めかぁ。 今年の目標は達成できたか 今の本を書き上げる おぉ書き上げましたね -> 徹底解剖「G1GC」 アルゴリズム編 - 達人出版会 もう1冊書き始める おぉ書きはじめましたね…