VimConf2014に参加しました

11/8(土)に株式会社ミクシィで開催されたVimConf2014に参加してきたので感想レポートを書きました。

運営側として動いた話

今回は懇親会担当として若干運営側にまわっていたので開催前から色々動いていました。

懇親会担当として以下のようなことで動いていました。

  • 収支計算表の作成
  • 懇親会で調達する料理の調整
  • 開催場所を提供いただいた方との調整
  • 当日お手伝いしてくれる方の募集
  • 微妙に会計周りも

懇親会担当役を受けた時は、会社の飲み会準備の延長くらいで余裕だろうとたかをくくっていたのですが、 当日の参加人数の多さとドタキャン率の読めなさや、開催会場の 不明確点(および私の確認不足)の多さ(宅配可能なのか、冷蔵庫は使えるのかetc)など、 あらかじめ検討しておく必要があることが多く、私の段取りの悪さもあり、 当日までずっとバタバタしていました。

正直、改善点も多く、スムースできたとはとても言いがたいですが、 色々な方にお手伝いいただいて、無事VimConfを終えることができました。

Lingrで相談にのっていただいた方、当日買い出しのお手伝いをしていただいた方、お寿司調達をしていただいた つくしさん、本当に助かりました。この場を借りて御礼申し上げます。

ありがとうございました。

開催当日

正直、懇親会準備あり、LT発表準備ありで前日から懇親会が始まるまで 気持ちの余裕が全然ありませんでした。

特に当日午前中は、あれもこれもやらなきゃとかなりテンパっていた気がします。

発表中も懇親会準備に微妙に追われており、見れなかった発表もあるため 発表内容の感想は詳細に書かれている他の参加者の皆さんにお任せして、私のLT発表の感想だけ簡単にご紹介します。 (ちなみに、発表はどれも非常に面白く勉強になるものばかりでした。皆さん大体一笑いを混ぜてくるので私も精進しなければと思いました。)

LT発表

色々ネタはあったはずなのですが、VimConf開催1ヶ月前ほどにMONSTER HUNTER 4Gという悪魔のゲームを 手にしてしまい、ここ1ヶ月ほどほとんどVim活ができていませんでした。 (ujihisaさんが当日の発表で、civ5プレイ期間はgithubのContributionsがスカスカになってしまい ヤバイという話をされていましたが、私もそれと似たような感じでした。モンハンやばい)

そこで、発表候補としていくつかあげていたうち、事前準備がほとんどいらないマクロの入門的な話をしました。

発表スライドは以下にあげています

本当はデモとかしたかったんですが、時間的な関係上無理でした。 マクロのいい例が浮かばずかなり単純な実例の紹介だけとなってしまったのが若干心残りです。

上のスライドの最後の方にあげたVimGolfの厳選マクロ練習用で、 少し高度な?例をまとめているのでそちらをご参考の上、試してみてください。

なお、完全に個人的な話(余談)になりますが、本発表はustで妻も見てくれていたそうです(一応技術系の人なので)。

ちょっと恥ずかしいですが、いい感じのコメントをもらえたので、発表が終わったあとの妻との会話の一部を載せます(妻了承済み)。

f:id:deris:20141109230035j:plain

私の発表はほどほどだったそうです。かなりの高評価ですね。

最後のアイコンが小さくて見づらいですが拡大するとこんな感じ

f:id:deris:20141109191005j:plain

このアイコンからもとても興味を持って見てくれていたことが伝わると思います。

雑多な感想

他の発表者の方の感想は、他の参加者の方が色々上げているので、雑多な感想を

  • 懇親会準備は予想以上に大変でした
  • 色々な方に手伝っていただき、無事乗り切ることができました。皆様ありがとうございます
  • 様々なVimmerの方々と交流出来て楽しすぎました
  • Lindanさんの発表で、私が作ったvim-shot-fというpluginを紹介していただきました。発表内容は図を多用していて非常にわかりやすかったです
  • haya14busaさんの発表で私の名前が出ていたような気がしますが、懇親会の調整中でちゃんと聞けなく残念でした。動画が配信されたら見れなかった方の発表はちゃんと見直す予定です
  • 名札のアイコンがわかりやすかったです(rbtnn++)
  • 懇親会でKaoriyaさんと色々お話させていただき(主に私からの質問)、非常に勉強になりました。Kaoriyaさんはあまり勉強会に参加されないと思うので、完全にVimConfならではのメリットだと思います。Kaoriyaさんありがとうございました
  • 懇親会で受付を担当していただいたデニスさん(not デリスさん)から発表の質問をしていただき色々交流でき非常に楽しかったので、ネタはなんであれ発表することは重要だと改めて感じました
  • 今回は若干運営側にまわっていたので大変ではありましたが、最終的には終始楽しめて感極まった1日でした
  • githubのvimconfリポジトリのissuesを見ればわかると思いますが、今回のVimConfでは主催のthincaさんはもちろんのこと、見えないところで様々な方がVimConf運営に協力していました。みんなで協力して開催して無事成功できたということは大変意義深いことだと思います。次につなげたいですね

終わりに

まだ、当日の余韻に浸っていますが、非常に濃い1日を過ごすことができました。

主催のthincaさん、VimConf2014運営にかかわられた皆さん、懇親会の買い出しなどのお手伝いをしていただいた皆さん、 参加者の皆さん、会場を貸していただいた株式会社ミクシィさん、皆さん本当にありがとうございました。

またどこかのVim関係の勉強会でお会いしましょう!

Happy Vim Life!

momonga.vim#6に参加しました

8/2(土)にドワンゴのセミナールーム(歌舞伎座タワー)で開催された momonga.vim#6に参加したので、感想レポートをば

0次会(PRONTOにて)

もくもく会自体は13:30からだったのですが、Vim熱が高まりすぎた数名 (主催のsupermomongaさん、thincaさん、Lindanさん、rbtnnさん、Shougoさん、私) が9〜10時くらいから、会場近くのPRONTOでティーを片手にもくもくしてました。

supermomongaさんは高まり過ぎたのか大分早起きしてしまったらしく 9時(前日の21時)に起きたため終始ウトウトしてました。

途中でたまたまお昼を食べに来た、りひにーさんと合流し一緒にランチを食べました。

流石に午前中から来ているだけあって、皆わくわく盛り上がっていました。

会場入り(ドワンゴ歌舞伎座タワーにて)

会場はドワンゴのセミナールームで、100人規模が入るらしくかなり広かったです (そもそも歌舞伎座タワーが巨大...)。

主催の江添さんがちょうどいらっしゃっていて、セミナールームに入れていただき、 会場設営を手伝ったり、もくもくしたり、rbtnnさんのmario.vimの原型を 見せてもらったりしていました。

40人規模のもくもく会を目の前に、わくわくが最高潮に達していました。

1次会(もくもく会)

もくもく会の細かい話は他の方の参加レポでも紹介されると思うので、 私はもくもく会でやったことだけレポします。

neco-rubymfをneocomplete対応した

前回のmomonga.vim同様、もくもく会のネタがなかったので、前回の続きでLingr のYo botでも 改良しようかなぁと思っていました。

で、Yo botをいじりつつ、LingrRubyVimプラグインについて話を聞いていたりしていたら、 ujihisaさんからこんなVim plugin(ujihisaさん作) があるよーと教えていただきました。

で、試そうとしたら動かず。。。 どうやらこのplugin、neocompleteの前身である neocomplcache依存で作られたもので、neocompleteには対応していませんでした。

そして、気づいたらこのpluginのneocomplete対応をするべくコード を書き始めていました。

何というyak shaving! yak shavingコワイ...

ということで対応して以下のリポジトリのmasterに直接pushしました。

neco-rubymf

ujihisaさんにコミット権を頂いたので、リポジトリはujihisaさんが作られた リポジトリにそのままコミットしています。

neocomplcacheとneocompleteで参照するパスが異なるため、 どちらにも対応する形となります。

正直、作っては見たものの自分が使うかどうかは微妙ですが、 気になる方は試してみてください。

あ、あとこれを作る際、わからないことが多々あり、neocompleteの作者であるShougoさんに 色々と質問させていただきました。(2次会に向かう電車の途中でも色々聞いてしまいました)

Shougoさん丁寧にご説明いただきありがとうございました。

もくもく会は直接Face to Faceで質問できたりするのでいいですね。

2次会(妖怪ハウスにて)

もくもく会の興奮も冷めやらぬ中、主催の江添さんがお住まいの シェアハウスである妖怪ハウスにおじゃましました。

妖怪ハウスではもくもくしたり、アイスを食べたり、江添さんに作っていただいたピザを 食べたり、仕事の辛い話を聞いていたりしました。

仕事 is つらい

仕事がつらい皆さんは、Vim pluginを書くと幸せになれると思うので皆さんどんどん書きましょう。

そんなこんなで、終電間近となり、momonga.vim#6 の興奮が冷めやらぬまま一人家路につきました。

雑多な感想

  • mario.vimすごい(rbtnnさんどこに向かってるのw)
  • Lindanさんの英語のやつ便利そう
  • basyuraさんに進捗プレッシャーを掛けるなどした
  • Shougoさんは相変わらず歌ってた
  • mittanさんに発売日前のVim scriptテクニックバイブルを見せていただいた
  • 今回は珍しく女性Vimmerがいらっしゃっていたので頑張って欲しい。女性Vimmerツチノコ並にレアなので、もっと女性Vimmerの参加者増えたらいいと思う
  • 折角テーブル単位で分かれてたんだから、もっと積極的に初対面の人ともコミュニケーションとればよかった
  • 40人でもくもく会って前代未聞じゃないの...

終わりに

主催の江添さんとsupermomongaさん、参加者の皆さん、ありがとうございました。

40人規模のもくもく会でどうなることかと思いましたが、 皆さん盛り上がっていて楽しいもくもく会を過ごすことが出来ました。

またどこかのXXX.vimでお会いしましょう。

Happy Vim Life!

momonga.vim#5に参加しました - LingrのYo bot作りました

7/26(土)に東京某所で開催されたmomonga.vim#5に参加したので、感想レポートをば

momonga.vim#6まであと数時間。間に合った...

もくもく会

はじめもくもく会のネタがなく、Vim本体のコードリーディングでもしようかなぁと考えていました。

しかし、気づいたらRubyLingr のYo bot作ってました。

まさに何を言っているのかわからねーと思うが状態でした...

LingrのYo bot

作成を進めたLingrのYo botについて簡単にご説明を

bot作成背景

最近、Lingrに入り浸っているのですが、仕事柄常時アクセスできるような環境ではなく 気づいたらLingr部屋がすごい盛り上がっていて話に乗りそびれてつらいみたいなことが 多々ありました。

そこでLingr部屋が盛り上がっていたら、最近話題?のYoを使ってYo通知するbotを作ろう と考えました。

botの機能

現在もちょこちょこ機能追加しているところですが、現状用意出来ている主要機能はざっくり以下です。

  • Lingr部屋が盛り上がってきたらYo allで通知する
  • !Yo [Yoアカウント]で、指定したYoアカウントにYo通知する
  • !Yo -pattern /パターン/で、パターンにマッチしたときに自分のYoアカウントにYo通知する
  • !Yo -waitfor [Lingr ID]で、指定したLingrユーザが発言したら自分のYoアカウントにYo通知する

ソースは以下に置いています

yo-lingrbot

食事会(2次会)

食事は近くのサイゼリヤでムシャムシャしました。

十数人いたので席がバラバラだったのがアレでしたが、 初参加の方とかと交流出来てよかったです。

初対面の方とVimの話するとき、どんな話をしたらVimレベルがわかるかそんな話を して、thincaさんが質問してもらえばいいのではという話をしてました。

momonga.vim#5.1(3次会)

主催のsupermomongaさん宅でもくもく3次会。

遅くなってしまうので最初は行く気はなかったのですが、 折角なので...と思い参加しました。

もくもく会(1次会)で作りきれなかったYo botをsupermomongaさんに色々相談しながら ちまちま更新していました。

勉強会はわからないところを既に経験されている方に色々聞けて ステップアップできるのでとても良いと思います。

一家に一匹モモンガが必要だと思いました。

雑多な感想

  • 今回も進捗プレッシャー強かった
  • 自己紹介のときに「ネタがなくて...」と言ったら、突っ込み入って完全にVimmer怖いと思った
  • Ruby力がなくて辛かった
  • Vimネタが枯渇してきている...
  • VimVim

終わりに

初参加の方とお話したり、いつもの面々と交流出来たりで良かったです。

主催のsupermomongaさん、参加者の皆さん、ありがとうございました。

本日のmomonga.vim#6に来られる方はまたよろしくお願いします!

Happy Vim Life!

TokyoVim#20に参加しました

TokyoVimの参加レポです。

TokyoVimやったこと

当日まで補欠だったため、もくもく会のネタを何も考えていなかったので、 その場で考えました。なんとか進捗が出せたと思います。
やったのは以下の内容。

  • 先日momonga.vim#4で作成したvim-magicalizeのドキュメントを作成しました。
  • 自作Vim pluginのparajumpのバグを修正しました。
  • paste系Vim pluginを試作しました。
  • vim-markdownのバグを修正して先ほどプルリクを送りました。

ハマリポイントだと思うので、parajumpのバグについて、簡単に説明します。

parajumpのバグ

parajumpは、ブレース({, })での段落移動を 改善するVim pluginで、空行以外に、スペースやタブだけの行も段落の区切りとして扱うように するVim pluginです。

このpluginは、内部でsearchpos関数を使用しているのですが、searchposはオプションの magicに依存するため、set magicset nomagicかによって、正規表現のメタ文字の 意味が異なります(search関数も同様)。

しかし、これを意識せず、デフォルトのmagic形式であることを考慮して正規表現を書いていたため、 set nomagicした場合に、意図しない正規表現searchposが動作していました。

修正は、正規表現の文字列に明示的にmagicであるという\m正規表現の頭に指定することで対応しました。

皆さんも、searchsearchposを使用する場合は、上記ご注意ください。

まとめ

当日まで参加できないと思っていたので参加できて良かったです。
TokyoVim主催のkanaさん、参加者の皆さんありがとうございました。

またどこかのVim勉強会でお会いしましょう!

Happy Vim Life!

momonga.vim#4に参加しました

6/7(土)に東京某所で開催されたmomonga.vim#4に参加したので、感想レポートをば

もくもく会

もくもく会では作り途中だったVim pluginの作成を進めました。

Vim pluginの作成

作成を進めたVim pluginについて、下記で説明します。

Vimには検索パターン内で使用可能な特殊文字を変更するためのmagicという 設定があり、この設定によってエスケープが必要な特殊文字が変わります。

例えば以下の様な感じです。

" hogeかhige(eは任意の繰り返し)だけの行にマッチするパターン

" magicだと
/\m^\(hoge\|hige*\)$

" very magicだと
/\v^(hoge|hige*)$

" nomagicだと
/\M^\(hoge\|hige\*\)$

" very nomagicだと
/\V\^\(hoge\|hige\*\)\$

それぞれ微妙にエスケープしている文字が違うのがわかると思います。 ちなみに先頭に\m,\v,\M,\Vがありますが、これらはそれ以降のパターンが それぞれmagic,very magic,nomagic,very nomagicで処理される という意味になります。

これら4つのパターンを相互変換するためのVim pluginを作成していました。

まだ完成していないのであれですが、例えばこんな感じで使えるようになる予定です。

" \m^\(hoge\|hige*\)$が出力される
echo magicalize#magicalize('\v^(hoge|hige*)$')

operatorも用意する予定なのでコード中のパターンも簡単に変換できるようになるはずです。

ちなみにmagicalizeというのはmagic化するという造語です。 英語圏の方には通じない気がしています。 Vim plugin名も、vim-magicalizeにしようと思っています。

magicについて詳しく知りたい方は、:help magicや、私が以前書いた以下の記事もご参照ください。

Vimでパターン検索するなら知っておいたほうがいいこと

テストが大体通ってきたので、ドキュメントを書いたらそのうちgithubにあげようと思います。

雑多な感想

  • 初めてmomongaさんの本体にお会いしたのですが、本当にももんがで、まさかのぬいぐるみでした。

  • momonga.vim会場のドアの前を女性が行ったり来たりしていたり、 一度はあまりに興奮した女性ファンが会場に乱入したりしていました (Vimの女性への人気の高さが伺えます。会場を間違えたふりをしていましたがただの照れ隠しだと思います)。

  • 「進捗どうですか?」という名のまさかりが飛び交っていてVimmer怖かったです。

  • Lindanさんに何のVim plugin作ってるんですか?と聞かれ、説明したのですが、 口頭で説明しているとき、なんで私はこんなものを作り始めたんだろうと 疑問に思ったけど答えは出ませんでした。 多分そこにネタがあったから作り始めたんだと思います。

  • 作成中のVim pluginが思いのほか正規表現がカオスな事になっており、 既にメンテ出来る気がしません。。。 使う予定もないのでとっとと仕上げて、次のVim pluginネタに着手したいです。

終わりに

お昼をご一緒したかったけど寝坊したり、カラオケには参加できなかったりで 残念な部分もありましたが、色々な方と交流出来て良かったです。

主催のsupermomongaさん、thincaさん、参加者の皆さん、ありがとうございました。

また、momonga.vimもしくはxxx.vimでお会いしましょう。

Happy Vim Life!