ゆるゆりライブイベント3「七森中♪ふぇすてぃばる」に参加してきた

昨日開催された、ゆるゆりのライブイベント、「七森中♪ふぇすてぃばる」に参加してきました。

前回のライブイベント、「七森中♪うたがっせん」は昼の部のみの参加でしたが、今回は昼夜両方の参加。結論は最高の一言!!ゆるゆりを応援していて本当に良かった!各曲の感想等いろいろとあるのですが、一番うれしかったことを一つ。

昼の部、夜の部、それぞれ初見としてのサプライズ、夜の部だけの演出としてのサプライズとあったわけですが、夜の部でのごらく部単独ライブ開催の発表!これが一番うれしくて泣いてしまった。今回のライブはめちゃくちゃ楽しみにしていた反面、2期のアニメの放送が終わって3期は未定、ふぇすてぃばる以降のイベントもほぼ未定ということで、これで終わってしまうというという恐怖感(?)のようなものがありました。しかし、この発表でそんな心配はいらないないナイアガラに!

これで終わってしまうという思いは当然ごらく部の面々にもあったようで、 MC でもそのようなことが語られていましたね。4人にとっても最高のサプライズだっただろうなあ。

ただ、単独ライブは生徒会の4人を始めとするいつもの面々は当然集まらないであろうってことで、さっきぃラブな私としては残念なところ。 MC でまたみんなでライブイベント4やりましょうみたいな話もあったので、ぜひ実現してほしいですね!!

さっきぃかわいい。

CentOS 6.x で Subversion 1.7 をコンパイルしたときのメモ

最近 CentOS 6.x で Subversion 1.7 をコンパイルすることがあったのでメモっておく。

前提

CentOS の yum で入る Subversion は 1.6 系なので 1.7 系使いたければ、自分でコンパイルするか、適当なパッケージ見つけてくる必要がある。

コンパイル手順

必要なライブラリがいくつかあるので yum で入れる。 あとは configure, make, make install のいつもの手順で。

ちなみに apr-util-devel がないと configure で怒られる。

sqlite-devel がなくても configure で怒られる。

neon-devel はなくても configure 通るけど、 svn コマンドが URL を解決できなくて困る。

コマンドラインから JSON を整形してくれる jsonpp が便利だった

JSON を出力する API の開発とかで JSON をいい感じに整形して確認したいとき、今までは Chrome 拡張の JSONView なんかを使っていたけど、コマンドから使える同様のツールないかなーと探してみたら jsonpp というのがあった。

Mac なら homebrew で簡単にインストールできる。

$ brew install jsonpp

curl にパイプしたりして使うと便利。

$ curl -d 'hoge=fuga' 'http://path/to/api' | jsonpp

ソース覗いてみたら Go で実装されていてびっくり。

一人暮らしを始めました。

タイトルはゆるゆり1巻の結衣ちゃんのセリフから。

実家を出て一人暮らし始めた。とはいっても、今日は事務手続きなどで時間を食ってしまい新しい部屋には布団もない状態で、いったん実家に撤収してきてこれを書いてたりする。この週末に改めて環境整備を進めて、来週には本格的にあっちで暮らせるようしたいなー。

第9回 Solr 勉強会にいってきた

昨日 (11月26日) に開催された、第9回 Solr 勉強会にいってきた。もろもろメモ。

Who we are, what we do, and a little bit about Kuromoji

  • Atilika Inc. Christian Moen さん
    • Kuromoji コミッタ
  • Atilika Inc. の紹介
  • Kuromoji の紹介
  • Kuromoji の今後について

  • 感想

    • 試される英語力
    • いくつか Solr 4.1 で取り込まれる改良が面白そう(サジェスタ?等)

Solr@ニコニコ生放送

  • 株式会社ドワンゴ 吉村総一郎さん (@sifue)
  • http://www.slideshare.net/sifue/20121126-solr
  • MySQL + senna から Solr へ乗り換え
    • 生放送開始後1分以内に検索にヒットするのが要件
      • Google の方が反映早いケースがあった
  • Solr 3.4.0 (patched), jetty 7.5.0, master x1, slave x2
  • 1週間以前の番組はインデックスしない(ニコ生の仕様上見られない)
    • 結果、更新多いが全量少ない
  • 来場者数とコメント数の更新頻度特に高い。
  • インデックス作成はバッチ
    • 更新、削除情報を Redis ストア→バッチで流す
  • CJKTokenizer
    • Bi-gram なので FF, DQ などに弱い
      • タグ情報付加でしのいでる
  • ピーク時 SELECT 40QPS 程度。 UPDATE 80QPS 程度。 #SolrJP
    • クローラーやユーザのツールによる突発的な負荷は適宜弾くなどで対処
  • 開発環境

    • 単一 jetty で Solr を30個近く起動
      • 開発者ごとの開発用の DB と整合とったりするため
      • jar の更新は1箇所で済んで便利
  • 感想

    • Solr 化のストーリーも構成もどこか既視感が
    • 開発環境はどこもいろいろ工夫しているんだなー

ドリルダウン色々

  • 株式会社マーズフラッグ 柳吾朗さん (@hitode7456)
  • http://www.slideshare.net/goroyanagi/solr-15369362
  • ドリルダウン検索の実装方法いろいろ
  • 力ずくの実装→ちょっと改善した実装→ Solr 4.0 の Pivot Facet を使った実装
  • 発表中に @johtani さんがつぶやいていたドリルダウンに関するリンク

  • 感想

    • Pivot Facet 便利!
    • 自分とこにも即使えそうなので試してみよう

elasticsearch と Solr の比較

追記

リンクとか。

Mac から Ubuntu に ssh ログインするとなんかロケール云々で怒られるやつ

Mac から Ubuntu 12.04 LTS に ssh でログインすると perl を始め、いくつかのコマンドで locale まわりの設定がおかしいぞみたいな感じで怒られる。コンソールからログインすると問題ない。

$ perl -v
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_CTYPE = "UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

locale コマンドで確認すると、どうも ssh でログインしたときだけ、 LC_CTYPE=UTF-8 になってるのがあやしい。

$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

調べてみると、下のような流れでこうなってる様子。

  • Mac の Terminal.app の Settings > Advanced > Set locale environment variables on startup がオンになっていると、 Mac 側で LC_CTYPE=UTF-8 が設定される。
  • Mac の /etc/ssh_configSendEnv LANG LC_* になっているので、 LC_CTYPEssh サーバに送信される。
  • Ubuntu/etc/ssh/sshd_configAcceptEnv LANG LC_* になっているので、 Mac からの LC_CTYPEUbuntu に渡される。
  • UTF-8 というロケールはない (正しくは en_US.UTF-8 とか ja_JP.UTF-8) ので怒られる。

どこかの層でこの流れを断てば問題は解決する。一番間違った挙動してるのは Mac の Terminal.app だと思うので、上記の "Set locale environment variables on startup" をオフにした。

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

他に考えられる解決方法メモ。

  • Mac 側の .zshrc とかで LC_CTYPE 定義しておく。
  • Mac 側の ssh_config の SendEnvLC_* やめる。
  • Ubuntu 側の sshd_config の AcceptEnvLC_* やめる。
  • Ubuntu 側の .zshrc とかで LC_CTYPE 定義しておく。

Solr 4.0 の _version_ フィールド

Solr 4.0 で 3.x のときのままの schema.xml 流用すると、 4.0 のサンプルに含まれる solrconfig.xml などと組み合わせたときに管理画面やログに下のようなエラーが吐かれることがある。

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Unable to use updateLog: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist)

3.x のときには聞いたことなかった _version_ フィールドとは何者なのかと調べてみると、下記ドキュメントにも書いてあるとおり Solr 4.0 から追加された Realtime Get など、 update log を使ういくつかの機能に必要なフィールドとのこと。

ということで対応策。

  • Solr 4.0 以降では _version_ は recommended field ということなので、下記のような感じでおとなしく schema.xml にフィールドを追加する。
<field name="_version_" type="long" indexed="true" stored="true"/>
  • solrconfig.xml で update log 等の _version_ フィールドに依存する機能を無効可する。
    • サンプルの solrconfig.xml だと下記2箇所かな。
      • updateHandler セクションの <updateLog> のあたり
      • <requestHandler name="/get" class="solr.RealTimeGetHandler"> のあたり
    • Realtime Get 関連の設定項目についてはこちらも参照

これでエラー出さずに起動するようになる。