エラー行を視覚的に教えてくれるプラグイン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*

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

ますます増えている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にしてディスク容量も大きくなった事なので色んなビデオを聞きたいと思います。

CouchConf TOKYO 2012に参加してきました

http://gyazo.com/69cde9634060cf94f04b3cbe0a829e9e.png

CouchBase社が開催しているWorld Tour CouchConf TOKYOに参加しました

http://www.couchbase.com/couchconf-tokyo

会場までの道のり

寒い冬の平日にベルーサ三田にて開催されました。

泉岳寺駅からしばらく歩き左手に大きな建物があったので迷わずいけました!会場は1Fの2つの部屋を利用して一つがセッションを行う部屋でもう一つがラウンジという形で進行。

受付は9時からで9時15分くらいに到着すると既にたくさんの人が着席されていて、スライドが見やすい前の辺りに座りました。周りを見渡すと外国人の方も多く、CouchBase社の方が準備されていました。

いよいよ開始です。高まるCouch熱!!ここからは内容と感想を箇条書きで。

内容とメモ

  • 副社長のスティーブンさんが流暢な日本語でご挨拶
    • ナイスガイ
  • 同時通訳があってとても便利*1
  • Community Editionもたくさんのプロダクションで使われている
    • 大きい所で2000ノードくらい
  • GAまだ〜?「まだパフォーマンスチューニングと考慮しないといけないことがある」
    • 1.8と同じくらい高速にするよ
  • 管理画面がすごい便利
    • 毎秒情報を更新(毎秒更新しても負荷は低い)
    • RAMとディスクのディレクションも監視
    • キーの使用頻度も確認できる
  • 速いという事にこだわっている
    • セットアップもレスポンスも
  • メモリ有効に使っているぜ
    • ノード間でデータを共有する事も考えてメモリは使用空間と実利用可能量のトレードオフは工夫している
  • ビルトインされているという事は重要だと感じた
  • 速度よりも安定性と運用コストの方がインパクトがあった
    • 速度はミリSecやマイクロSec単位の話題が多かった
  • Couchで重要なのは予測性が評価されているで数ミリ単位で予測できること
      • オンメモリ(MemBase)を意識する事は重要
      • 書き込みは非同期でRAMを利用する
    • ディスクにデータが乗ったら監視でnode追加しバンランシングする
    • パフォーマンスはドキュメントの作り方とデータの取り方が重要
      • ドキュメントベースというデータ構造を意識し思い切った割り切りやトレードオフも大事
  • スケールの効率化
    • サーバは大きいNodeを少量より小さいNode(コモディティサーバ)を大量に配置した方が効率がよい
    • CPUよりもネットワーク領域を心配した方がよい
    • レプリケーションによるネットワーク帯域が利用される事を考慮が必要
    • Productionでは4Core程度で充分性能をだせる
  • フェイルオーバー
    • 自動フェイルオーバーは対応しているけど30秒おきの監視だからね!
    • 手動でもできるよ
  • トランザクションログにも対応している
  • モバイル対応
    • mobile sync便利
      • 2.0に超期待


頭の片隅に残っている事とメモの書き端をざっくりと書きましたが、詳しくはtogetterを見ると良いと思います。

#CouchConf Tokyo まとめ - Togetterまとめ
http://togetter.com/li/248729

続いて、今回特に感じた事を短くまとめてみたいと思います

まとめ
  • CouchBaseは運用コストとパフォーマンスの両面で優れている
  • 大規模解析よりも如何に速く大規模アプリが作れるというところにフォーカス
    • 大規模解析はHadoopアダプタでやると良い
  • 実プロダクトで投入したいと思えるようなワクワク感を感じた
  • なぜMongoじゃなくてCouch?
    • Mongoはデータの移行が発生する時に永続化したデータの形式上辛い
      • ↑ というのはあるらしいのだれけど、大規模データだとどれでも何かしらあると思う。
      • ぶっちゃけどっち使っても良いと思う完成度だと思った
      • 2.0はすごく期待できるプロダクト

その他 Q&Aパネルなど

セッション中もそうだったのですが、色んな質問がとびかっていました。おさまらないCouch熱!!

私が質問した内容

少し気になっていたこと。

質問

様々な言語やミドルウェアが使えるクラウドプラットホーム「dotCloud」のサービスでCouchDBがalpha版ですが利用でき、CouchBaseとMemBaseがRequestedという状態になっています。CouchBase社が今後利用できるように手助けしたり、同様のプラットホームサービスのCloud foundaryなど他でPass提供する予定はありますか?

一つ前に質問した方が「OpenStack」について質問したので内容がかぶってしまいましたが、隣にいた人が「良い質問だ!」と言ってくれさらに私の質問にのっかって質問されていました。

回答

今は製品開発に集中したいのでサービス的な方はまだ考えていない。ただ今後Heroku対応やAWSのEC2イメージとしては検討していくかもしれない。

というような回答だったと思います。

アフターパーティーでの質問

同僚も来ていて話をしていた時に話題になったので個人的に二人でCouchBaseの方に質問をしに行った時の内容。

質問

CouchBaseはリニアにスケールするんですか?ノードの数でレプリケーション等その他の理由で性能効率がさがりますか?どれくらいで変化がある?

回答

Yes. 特に上限なしにリニアにスケールするよ。そこはあまり心配しなくても大丈夫!

AOLの実例では10台〜20台くらいって言っていたのでそれくらいでは大丈夫なんでしょう。別の機会でkumofsの話を聞いた時もそうだったんですけど、成功している分散KVSはきっちりと考えられていますね。

Zynga社の数千台の例もありますし数に関しては心配なさそう。むしろ、機器調達時にデータセンターのラックキャパの問題や大きいストレージやハードを少量にしたい!という要望がでた場合に打ち勝つ力が必要だなぁと。

最後に

カルフォルニアから遠い日本まで来て頂いたCouchBaseの方々、開催を支えてくださったスタッフ、Couch界隈のコミュニティの皆さん、どうもありがとうございました。

CouchBase.jpという新しいコミュニティもできたようなので、日本でもより盛り上がっていくといいですね。

来年も開催されるといいなぁ。

*1:3人ぐらいが交代でされていましたが女性の方の通訳が特に聞きやすかったです