Talked at RubyKaigi 2017

I gave a lightning talk at RubyKaigi 2017 as How to develop CRuby easily with Vim.

My talk and its slides

I was so nervous there.

A RubyKaigi staff personally took that videos of me presenting. I’ll replace them with RubyKaigi official videos on youtube once it’s available.

I used Google Slides and showtime.vim for projector to use, and focused mostly on live demo with GVim on my Gentoo Linux.

The final page has some links for the tools I used there.

FYI I collected tweets with #rubykaigi hashtag during my talk.
(Mostly in Japanese)

Additional notes for my talk

  • The 2 games I played at the beginning
    • mario.vim, made by rbtnn with his own game_engine.vim
      • It generates the stage randomly, so you can play forever.
      • I personally play puyo.vim occasionally for fun sometimes.
    • vim-game-code-break
      • Block-breaking game, but the blocks are made with text in the current buffer.
      • (I was too nervous to set this up properly. Audiences couldn’t see the buffer text..)
  • https://github.com/mrkn/vim-cruby is a handy config for CRuby development
    • Note that it needs you to set its own filetype=cruby instead of filetype=c
    • Follow the README for that
    • This allows syntax completions (e.g. RUBY_DATA_FUNC, NUM2SSIZET, StringValuePtr) based on its syntax keywords
    • These keywords are manually added by mrkn.
  • Jump from Ruby code to CRuby implementation (like ctags for Ruby to Ruby and C to C)
    • Many ways are possible but no clean nice ways available yet
    • Maybe a good idea just to use regexp with ctags or something like that
    • I myself want the ujihisa/cruby-defs.vim mentioned in the slides so I may make it later
  • quicklearn.vim to see RubyVM::ISeq on the fly
    • I think I have written an article for that in 2012
    • I found it http://vim-jp.org/vim-users-jp/2012/01/01/a-happy-new-year.html (Japanese)
    • The main focus of this Vim plugin was to visualize assembly code from C, and YARV ISeq was just a byproduct at the time.
      • e.g. gcc32, gcc32 with optimization, gcc64, gcc64 with optimization, llvm ir, and llvm ir with optimization
    • Good thing is that you can use quicklearn.vim effectively to learn what the final keynote by vlad was that. It mentioned about optimization in the internal representation layer.
  • I was happy that @shioyama mentioned that my talk was good!

//platform.twitter.com/widgets.js

I was moved by the fact that llvm opt could optimize my slow inefficient fib function written in brainf**k that compiled to llvm ir by my compiler to an immediate value. It must be beyond awesome when it works with one of the complex languages such as Ruby

a thing that I couldn’t make it during 5 min lightning talk

I fast-forwarded at the end of lightning talk but I didn’t have enough time advertising Fablic, inc where I currently work at.

Personal notes

I have given talks at RubyKaigi twice and RubyConf once in the past. I have experienced a quick and not-really-prepared lightning talk at RubyConf 2009 as well, but not at the very serious and time-restricted RubyKaigi; it was the first time for me. I was so nervous.

The RubyKaigi 2017 this year was really amazing. It didn’t only have great talks, but also helped me seeing lots of friends I haven’t seen for long time. Great also for meeting somebody new.

Thanks again to the organizers of RubyKaigi 2017 including Akira Matsuda, all the staffs and sponsors, and speakers. You are awesome.
I can say with confident that RubyKaigi 2017 was a great success.

Next steps for myself

  • VimConf 2017 in Nov
  • RubyConf 2017 in Nov

Heading to RubyKaigi 2017

I’ll be attending RubyKaigi 2017 on 2017-09-18 to 2017-09-20 in Hiroshima, Japan. See you there!

My short lightning talk: http://rubykaigi.org/2017/presentations/lt/ I’ll upload slides later.