Yokohama.vim #3 を開催しました


Yokohama.vim#3を開催&参加しましたので簡単ですがレポートを書きます。

http://atnd.org/events/28602

開催にあたって

春頃にやりたいと思っていて延び延びになっていたYokohama.vim#3を夏になる前に実施できました。「Vimユーザ同士が楽しく交流できる場を作る」というのがYokohama.vimで実現したい一番のコンセプトで今回も参加型で開催しました。今回はネタにできそうな事があったので私も発表しています。

今回のみどころ

  • id:thincaさんの発表
    • シャイの代表格なthincaさんが「発表しますよ!」と代表作のひとつ「quickrun.vim」について話してくださいました
  • id:guyonの発表
  • スイーツタイム
  • vimクイズ

全体的な感想という記録

thincaさん発表

Gentooからプロジェクターへの出力がうまくいかないというトラブルから始まりました。発表はデュアルブート設定がされているWindowsで行うようことに切り替えてくださったのですが、「環境が...」。

そうですよね。そうなりますよね。でもそんな所はWindowsでもMacでもLinuxで動作させる事も考慮されているプラグインを書かれているthincaさん、さくっと環境を整えて発表前までにはしっかり準備OKな状態に。

「quickrunの詳解」ということで、プラグイン拡張のポイントを中心にoutputterの書き方の実例を交えてvimでプレゼンをしてくださいました。

発表後注目が集まったのは色々なサイトで「便利なvimプラグイン」という紹介され既に知られている本プラグインではなく、プレゼン技法でした。

この日の為に、markdownをパースしてスライドにしてくれるshowoffというrubygemsに似た「showtime」というvimプラグインを作ったとのこと。参加者からこれを公開して欲しい!と要望を受け、この日のうちにまとめあげてGitHubに公開してくださいました。

この日のthincaさんはいつもにも増してモテにモテていました(と思います)

楽しい発表と色々なコメントや気遣いありがとうございました。

guyon発表

「仕事でvi(m)を教える仕事をした話」というタイトルで発表を行いましたが、実はなんのことはなく新人研修でプログラミング研修の講師をした時のことを、vim目線でサマライズしてトーマス風の味付けをおこない、ネタにしたものです。

研修中はvimだけでなくマインドセットを中心に考えて物事を話したり取り組んでもらったので、実際には偏った布教のような活動はしていないつもりです。*1

個人的にはYokohama.vim #1で話題になっていた事を中心に話をしたので、Yokohama.vimに参加されている人にとっては珍しい話ではなかったと思いますが、私が遭遇したエピソードのほうは発表をしていて笑ってくださる事も多かったので、楽しんでもらえたようでよかったなぁと思いました。

vimを教える仕事」は副産物的に生み出したようなものなので、弊社に入社されても... (ry

というのは冗談で、教えている方もvimだけに限らず楽しくそして考えさせられる事もあって、有意義に過ごせたのでこの仕事を引き受けて本当に良かったと思っています。

スイーツタイム

思い立って、スイーツタイムを入れて予告で「B級名物のかすていら」を食べよう!としたのに、節電の影響でこの日だけ販売されていなく、その代わりに隣のドーナツ屋さんで買ってスイーツタイムでだ食べました。

@a_onoさんが飛び入りで「ttyを使ってviでモテる」というお題でLTをしてくださいました。ネタ面白すぎますw

この時にわかったこと

  • コーラが人気なかった
  • モクモク食べる(やや誇大誇張)

黙々と言いながらも30分間くらいの時間でおしゃべりしながら食べ、私の周りではpowerlineの話や合成フォント(Ricky)の話などをしていたらあっという間に時間に。やはり、スイーツタイムがあるといいなと実感!次回もスイーツタイム欲しいな。

プラグインプラグインを作る

Uniteやvimrefのようなプラグインプラグイン(ソース)を作れるような仕組みがあるので、作ってみようともの。

とは言うもののvimscriptを書ける人は少ないと思うので、フリーダムな感じで取り組み、私は希望者にvimscriptの話や仕組みを過去資料を使って話をしたりしました。

面白かったのはUnite mooを少しかえてUnite shikaを作っていた方がいたこと。一番シンプルなmoo以外にもUnite outlineなど他の事例を幾つか紹介したらよかったかもと今更ながらに反省。

人数がいつもより少なかったため、ゆるい感じで時間が過ぎていきました。

vim検定

アプリ作成者の了承を得て、プロジェクターを使ってみんなでやってみました。

覚えていないと回答できない問題や問題バリエーションの少なさ、それ問題にしちゃう?といった突っ込みどころは沢山ありましたが、ほぼ全問正解で解答ことに成功。

問題の中にはきちんと覚えていない事幾つかあったので改めてきちんとhelpみてみようという気になりました。また、「初級」「中級」「上級」とvimrcの行数で分けた検定なのですが、段位をつけてくれるともっと良いのになと思いました。あとは問題のバリエーション増加に期待。

懇親会

今回ではPizzaを食べながら色々話しました。毎回出るネタで「懇親会で一杯飲んでから始めたら話が弾んでいいんじゃない?」とw

冗談っぽく、今度そうしましょうか?みたいな事を言っていたのですが、実際にやってみたいと思います。どうなるかは、、、知らんです!

ということで、次回はYokohama.vim.reverse #4です。

Twitterまとめ

Togetterでまとめてみました。

http://togetter.com/li/312609

最後に

参加して頂いた方々お疲れさまでした。ありがとうございました!!
とても楽しい時間がすごせました。

#4はReverseです。展開に乞うご期待ください。

*1:ただ、vimに関する質問は全部即答しましたがw

エラー行を視覚的に教えてくれるプラグインsyntasticを導入してみた

http://gyazo.com/6daa987520906ac7556413539dcdb911.png

https://github.com/scrooloose/syntastic

これを設定するとQuickFixで指定されたエラー行を視覚的に表示してくれます。

実際にコードを書いている時はエラーが表示されるようなケースは少ないないですが、lintチェックもできるみたいなので、そっち方面でも利用できそう。

デフォルトで対応しているsyntax_checkerはこれだけあった

applescript.vim*       eruby.vim*             javascript/            puppet.vim*            tcl.vim*
c.vim*                 fortran.vim*           javascript.vim*        python/                tex.vim*
coffee.vim*            gentoo_metadata.vim*   json/                  python.vim*            vala.vim*
cpp.vim*               go/                    json.vim*              rst.vim*               xhtml.vim*
css.vim*               go.vim*                less.vim*              ruby/                  xml.vim*
cucumber.vim*          haml.vim*              lua.vim*               ruby.vim*              xslt.vim*
cuda.vim*              haskell.vim*           matlab.vim*            rust.vim*              yaml.vim*
docbk.vim*             haxe.vim*              nasm.vim*              sass.vim*              z80.vim*
efm_perl.pl*           html/                  ocaml.vim*             scala.vim*             zpt.vim*
erlang.vim*            html.vim*              perl.vim*              scss.vim*
erlang_check_file.erl* java.vim*              php.vim*               sh.vim*

導入してみたはいいけど、実際に使うかな?

iOS5.1でまたビデオのバックグランド再生ができなくなった

iPhoneのi0S5でビデオをバックグラウンドで再生する方法 - Guyon Diary

以前書いたエントリーの方法で再生できなくなりました。

ショック...

わざわざ良い機能をつぶさなくてもいいのになぁ...

ますます増えているVimユーザの需要 - 仕事がほしい人はVimを学ぶべきだ

http://gyazo.com/18f7527f2feb2b2d299e7bc874441f50.png
http://www.flickr.com/photos/santoshwadghule/6736069343/

私はフルタイムの一般的なソフトウェアエンジニアで、グローバルなオープンソースコミュニティとのつきあいもそれなりにあるから、Vimが使える人材を求める人事部門の人たちに、すこしはアドバイスができると思う。

まず何よりも重要なのは、あなたの国または県のVimコミュニティと深く関わることだ! Vim-Users-Group(VUG)は、ほとんどの国や地域にある。そこと、接触すること。彼らのミーティングに出ること。社員がそれらのミーティングや催事などに出るよう、奨励すること。会場を、御社が提供するのもよい。ぼくもあるVUGの一員なので、会場探しがたいへんであることを、身にしみて知っている。だからVimを使っている地元企業の協力は大歓迎だ。とにかく、御社の地元のVUGは最大の情報源であり、また人材の宝庫だ。彼らとの、有意義な関係を築こう。

第二に、国、県、市、地域などのVim関連カンファレンスにスポンサーとして関わること。そういう、スポンサー付きの有名なVimイベントとして、ujihisa.vim、Tokyo.vim、Yokohama.vim*1などがある。企業からの会場提供協力は、とてもありがたい。カンファレンスへの協力や(展示・講演等への)参加により、VUGとの関係をより深化させる。人材を他社から盗み取るのではなく、あくまでも、有能な人びとにオープンソース系のやりがいのある仕事を提供するという姿勢がだいじだ。

第三に重要なのは、コミュニティへの還元。大企業は小回りが効かなくて、それがなかなか難しい面もある。でも、うちの会社としてはオープンソースのコミュニティと何を共有できるだろうか、と考えてみよう。それは、社内で開発したコードか、それとも、さまざまなオープンソースのプロジェクトを組み合わせて作るソリューションの、ドキュメンテーションか。VUGのミーティングやカンファレンスでプレゼンテーションをするだけでもよいし、またオープンソースをテーマとするブログを、会社または技術部門として立ち上げてもよい。

第四に、Vimユーザの採用を検討するとき、プロフェッショナルとしての過去の経験だけにこだわらないほうが良い。Vimユーザの多くが、会社の拘束時間以外の、自分の自由時間に、いろんなことをしている。プロとして実際にやった仕事よりは、そっちのほうが有益でおもしろいこともある。たとえば彼/彼女は、もしかして、個人としてGitHubのアカウントを持っていないだろうか? 自分で個人的にフォークした(またはクリエイトした)プロジェクトがあるのではないか? VUGやカンファレンスで、おもしろいプレゼンをしていないか? Vim-users.jpのLingrでよく見かける名前の人ではないか? …等々、オープンソースのスキルの獲得や成長は、就職した会社の外の環境で行われることがとても多い。

さて、以上、求人サイドについて述べてきたことは、実はそのすべてが、求職サイドにも当てはまる。仕事を探しているあなた、あなたは地元のVUGに積極的に参加しているかな? メーリングリストで問題解決のスレッドに、寄与貢献しているかな? 自分がやったことを、プレゼンしたことある? 履歴書には、自分のGitHubのアカウントを載せてる?

長年Vimで仕事をしてきたぼくとしては、21世紀の今となっていよいよますます、ぼくの大好きな技術の人材の需要が大きくなっていることを知って、とても嬉しいね。

併せて読みたい

ますます増えているLinuxの求人需要–仕事がほしい人はLinuxを勉強すべきだ | TechCrunch Japan

最後に

なんのことはない。LinuxVimに置換してみただけです。

暫く期間が空いてしまったのですがYokohama.vim#3を来月あたりにやりたいなと思っています。

まだ内容は全然考えれていませんが、もし発表をしてくださる人がいればうれしいです!

*1:スポンサーの有無は確認できていないがsugamoにもsendaiにもkyushuもkansaiにもあるきっと近々akibaにだって

SDカード領域でbundlerからthinを起動する時のはまりポイント

bundleでインストールしたgemsファイルは下記のように実行できるわけですが

bundle exec thin start

SDカード領域に保存した場合、thin実行時にthin_parser.soのアクセスに失敗するというケースがありました。

root@microserver:/media/sdcard/app# bundle exec thin start
/media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/lib/thin_parser.so: /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/lib/thin_parser.so: failed to map segment from shared object: Operation not permitted - /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/lib/thin_parser.so (LoadError)
        from /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/lib/thin.rb:40
        from /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/bin/thin:5:in `require'
        from /media/sdcard/app/gems/ruby/1.8/gems/thin-1.3.1/bin/thin:5
        from /usr/bin/thin:19:in `load'
        from /usr/bin/thin:19

なんだろ?と思って調べた所、UbuntuなのかLinuxの制限なのかファイルシステムがFAT32の場合に発生する現象ということがわかりました。Shellでよく利用するシンボリックリンク作成時も同様の「Operation not permitted」エラーが発生します。

fdiskを使ってSDカードをFAT32からext3に初期化しなおす事で、bundlerのexecで実行したthinでも起動できるようになりました。

デジカメなどストレージ利用を目的としたSDカードならFAT32のままでもよいのですが、常にマウントしてファイルシステムとして利用するなら無難にext3にしておいた方がよさそうです。

iPhoneのi0S5でビデオをバックグラウンドで再生する方法

http://gyazo.com/5605ba80fe442b8fa1d14e3154ef1ea1.png

最近英語のビデオをリスニングする事が多くなったので、バックグラウンドでビデオ再生する方法を調べてみました。

動作確認バージョン

問題

Videoアプリケーションでビデオを再生中に他アプリに切り替えたり電源をOFFにすると再生していたビデオが中断され、ビデオの音声を聞きながら他アプリケーションを使う事ができない。

対応方法とパターン

パターン
  • AppleTV(AirPlay) → アプリを切り替えても問題なくバックグラウンド再生ができる
  • AirMac Express(AirTunes) → 中断される
  • イヤホン → 中断される
  • 本体 → 中断される
対応方法

外部出力系ならMusicのコントローラを使って中断されたMusicを再生できる。

  1. Musicでビデオを再生できる状態にしておく
    • 本体でプレイリストを作成しビデオをプレイリストに登録する
    • iPhoneと同期しプレイリストをコピー
  2. Musicのプレイリストからビデオを再生する
  3. ホームボタンを1度押しでバックグラウンドにする(一度中断される)
  4. ホームボタンを2度押しでタスクリストに切り替えて右にスワイプ
    • Musicアイコン左の音楽制御コントローラの再生ボタンを押す

これで、イヤホンやAirTunesの時ならビデオをバックグラウンド再生できるようになりました。

iPhone本体から直接再生する場合は色々試してみたんですけど、ユーザが設定できる範囲のレベルでは無理っぽかったです。

まとめ

私の場合、外出している時は基本的にイヤホンなので今回の利用ケースで目的の利用シーンでの問題は解決できました。

iPhone4Sにしてディスク容量も大きくなった事なので色んなビデオを聞きたいと思います。