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.
My RubyKaigi 2017 Lightning Talk "How to develop CRuby easily with Vim" slides https://t.co/AOD153qmXu https://t.co/kBijDkgRqw
#rubykaigi— ujm (@ujm) September 19, 2017
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..)
- mario.vim, made by rbtnn with his own game_engine.vim
- 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!
昔、遅い再帰のfibかいてbrainfuck経由でllvm irに変換するコンパイラ書いたとき、optかけると即値になって感極まった。rubyの複雑性でこれやった時の感極まり完全にやばそう #rubykaigi
— ujm (@ujm) September 20, 2017
//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.
Fablic, inc paid me for ticket, travel, and hotels to come to #rubykaigi #fablic #FRIL
— ujm (@ujm) September 20, 2017
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.
#rubykaigi agileware party pic.twitter.com/03jo7fO4v7
— ujm (@ujm) September 19, 2017
帰路、東京へ #rubykaigi pic.twitter.com/hq1Qk7jLjl
— ujm (@ujm) September 20, 2017
Next steps for myself
- VimConf 2017 in Nov
- RubyConf 2017 in Nov