PlayFramework 2.0(Javaの方)を触ってみてる

PlayFramework2.0を触ってみてます。
ちょっとコーディングしたくなったのと、最近のアプリの作成の調査も兼ねて。
まぁ、せっかくなので、Solr検索のアプリでも作ってみようかと言うことで触ってます。
ただ、Solr検索アプリでしかなく、今のところDBを使わないので、実はPlay Frameworkじゃなくてもいいのではないかという疑問も。。。

まだ、触り始めたばかりなので、なんともですが。感想を。
たぶん、Ruby on Railsに似ているのかなと。
RoRは仕事で少し関わったので、なんとなく知っていますが、アプリの作成手順や、ディレクトリ構成などが似ている気がします。

コントローラーの生成のタイミングとか、内部でオブジェクトをSingletonで保持する方法とかのイメージがまだ良くつかめていない状態で、まずは、Solr検索部分(Palyにあんまり関係ないところ)を実装しているところです。

現状で一番の疑問点は、Eclipseプロジェクト化した時の参照ライブラリのパスに関するところでしょうか。
Play Frameworkは「play new ほげほげ」コマンドを実行するとアプリのディレクトリ構成が作成されます。
このあとに、eclipsfyというplayのコマンドを実行すると、Ecilpseのプロジェクトファイルが作成されます。
この時、PlayFrameworkが利用するjarファイルたちが参照ライブラリとしてクラスパスに設定されます。

このパスには、PlayFrameworkのインストールディレクトリが含まれた絶対パスが記述されるのですが、
複数人で開発するときにはどうしているのかなぁと。
あと、BitbucketやGitHubにアップするときもどうするのかなぁと。
以前、この疑問ツイートして、頂いた回答としては、環境変数として定義して、各自で設定してもらうというものでした。
私も同じ事を考えていたので、腑に落ちたのですが、他にもっといい方法があったりするんでしょうか?
クラスパスやEclipseプロジェクトのファイルをアップしないというのもあると思いますが、それもちょっとなぁと。
なにか、オススメとかあれば、教えていただけると嬉しいです。

最近、ブログ更新してなかったのもあったので、まずは、導入編でした。

johtani | 備忘録 | 15:55 | comments(0) | trackbacks(0) | - | ログピに投稿する |

lucene-gosen 2.0.1リリース(Java7対応)

lucene-gosenの最新版(2.0.1)をリリースしました。

プロジェクトページよりダウンロードが可能です。

今回の修正では、Java7でUnicodeのバージョン変更に伴う対応(詳細はこちらを参照)を行なっています。

リソース周りの対応はまた後日。。。すみません。
続きを読む >>
johtani | lucene-gosen | 01:35 | comments(0) | trackbacks(0) | - | ログピに投稿する |

「IDの秘密」を読みました。

評価:
佐藤 一郎
丸善出版
¥ 798
(2012-04-06)
コメント:非常に楽しく読めました。最後の方はシステムに関わるすべての人に読んでもらいたいです。

非常に面白く読めました。
バーコードの話に始まり、最後はシステムで付与するIDに関する考慮点まで幅広くIDについて語られています。

適度に配置されたコラムがまた面白く、ここまで書いてもいいのかな?と思いながらも楽しく読ませて頂きました。
2次元バーコードが汚れに強いのも知らなかったし、チロルチョコの話は知らなかったし、指コレクションとか面白すぎです。
また、JRのSuicaの導入に7年もかけている点などは、やはりすごい技術なのだなぁというため息混じりの感想です。
それほど長い期間のテストや設計は想像がつかないです。

最後の2章(7,8章)については、エンジニアの以外のシステムに関わる方やエンジニアになられたばかりの方たちにぜひ読んで欲しいと思いました。
もちろん、エンジニアの方にも読んでほしい内容です。

いくつか疑問点や気になる点もあったので。
  • 「静脈や指紋が人によって異なるって確率はどうやって決めたんだろう?」
  • Twitterの説明文のあとにFBの画面の図番号が書いてある。
  • 日本語がデコードされたけど、QRコードの文字コードって、この中に含まれてるのかな?それとも規格で決まってるのかな?

最後に、書影がNIIに合ったので撮影しました。写真へのリンクです。
johtani | 読書 | 23:03 | comments(0) | trackbacks(0) | - | ログピに投稿する |

Heroku JP Meetup #4に参加しました。#herokujp

WebSolrの話があるらしいというのを嗅ぎつけて、初めてHeroku JP Meetupに参加しました。
herokuもWebSolrも知りつつ、手を出していなかったので、いい機会でした。
(SignUpだけ、勉強会直前に済ませましたw)

HerokuはAWS上に構築されたアプリケーションプラットフォームで、簡単にアプリをデプロイして動作させることができるようです。
Ruby on Railsを使うのが多いみたいですが、他の言語も利用できると。
で、herokuの面白いところは、アドオンとして、開発が簡単にできるようなしくみが用意されていることみたいです。
今回発表のあった、IronMQ、WebSolr、PaperTrailもアドオンとして用意されており、簡単に利用することが可能です。
IronMQはメッセージキューとして利用できます。

WebsolrはSolrを簡単に利用できる形で提供しているものになります。
今、利用できるのは3.5.0のようで、最新版(3.6.0)になるのはまだ未定のようです。
今回の発表はWebSolrの話しもありましたが、基本は全文検索の仕組みとKuromojiの説明でした。
ただ、残念ながら、Kuromojiは3.6.0からの提供となるので、現時点では利用できないようです。
あとで、聞いた話だと、schema.xmlを自分で変更できるようです。
ただ、jarファイルを置いたりはできないようなので、lucene-gosenを利用するとかはできないみたいですが。。。
ほかにも、bonsai.ioとして、ElasticSearchの提供も行うようです。
まだ、利用はできないようですが。

最後がPapertrailです。
こちらは、ログを保存して、検索、グラフ化(視覚化)してくれるアドオンです。
まだ、ベータのようですが、ログを保存してくれるようです。無料版もあるようです。
アドオンとしての機能もそうですが、利用しているグラフ化のツールなど、面白そうなものが利用されていました。

LTはRuby使いの方が多かったです。

Ruby使いではないのですが、いろいろなアドオンが用意されており、サービスを簡単に提供することができそうだという印象をうけ、ちょっと使ってみたいなぁと思いました。
普段参加していない勉強会だったので、普段では知りえない興味ある話が聞けて面白かったです。

余談ですがPapertrailの人が利用していた、slideshareのようなサービスのSpeaker Deckもよさそうなので登録してみました。
次に何か発表があった時には資料はこっちにアップしてみようかなぁと

以下は、いつものように自分用のメモです。



日時2012/04/20 19:00 to 21:00
会場:パソナグループ本部 呉服橋
◎オープニング – Ayumu AIZAWA (Heroku Evangelist)
◎新入社員からの挨拶 – Koichi SASADA (Ruby Developer)
 前職:大学教員
 仕事:CRuby開発
 Heroku使った事無いですwRailsもよく知らないですw
 RUby2.0のリリースがゴール。2013/Feb
 性能アップのことやってます。

IronMQ – Chad Arimura (Iron.IO)
 「メッセージキューは涼しいです。」
 (Google翻訳による日本語訳付きのスライド)
 Aggregation、Distribution。。。
 IronMQ
  Elastic、RESTful
  heroku addon ironmq:rust
 簡単にheroku上にキューが用意できるアドオンです。
 Q:メッセージがキューに到達したのを確認する方法か?
 A:ステータスコードが帰ってくる。
 Q:データのサイズのリミットは?
 A:postのリミットはある。S3とかに巨大データをおいて、ポインタを渡すとかしてほしい。
 Q:キューへの到達の成功の保証は?
 A:アプリケーション側で判断してください?

◎Search & Indexing on Heroku – Nick Zadrozny (Websolr)
スライドはこちら。
 
 ※ツイートしてて、メモとってなかったので、ツイートをコピペ。
 次はWebsolrのお話
 Bonsai.io?
 Bonsai by onemorecloud - http://bit.ly/JjCuaE
 SQLのLIKE検索はO(n)でおそいねぇと。
 クエリのパースについての話。
 今度は転置インデックスのお話。
 Termへの分割ってどーすんの?というお話。Tokenizeのお話。
 その1:N-GramというTokenizeの方法。N文字ずつ先頭からTermを切り出す。開始位置は1文字ずつずらしていくと。
 N-Gramはノイズがのるし、多くのTermがでてきちゃうよと。
 その2:そこで、次は形態素解析ですね。
 先週、Lucene/Solr 3.6.0がリリースされて、Kuromojiという日本語向けの形態素解析器がでましたよ。
 Kuromojiはこちら。(Lucene版とは少し違うけど。)http://atilika.org/
 Kuromojiのサーチモードのお話。
 通常は、「関西国際空港」という単語になってしまうのを、Kuromojiでは「関西」「国際」 「空港」という切り方の単語も出してくれると。
 ちなみに、lucene-gosenでは、サーチモードはないんですねぇ。。。
 「の」はどこに消えたんだ??そこの説明は?
 ElasticSearchやSolrのコアの部分でLuceneを使ってるよ。
 ElasticSearch http://bit.ly/qjjvWp
 Kuromojiはユーザ辞書をサポートしてるよ。

 Q:まだ、3.5.0では?
 A:もうすぐやります

◎log analysis for your Heroku app – Eric Lindvall (Papertrail)

   heroku上にログを貯めて、検索したりグラフ化したりできるようになりそうなもの。
 スライドはこちら
 ログを貯めて、検索や可視化できるようにするサービスみたいです。
 まだ、アイデアレベルのものも発表資料には含まれていました。
 内部で利用しているツールなど、資料の最後に出てきますが、色々と面白そうなものがありました。

◎Lightning Talks
 ◯Receibo ( @shu_0115 )
  デザイナーxエンジニアハッカソンでの成果らしい。
  Webベースの家計簿アプリ。
  買ったものの名称と料金を入れるだけ。

 ◯Heroku + Pusherで作る!リアルタイムアプリケーション ( @satococoa )
  WebSocketみたいなことが、Pusherでできるらしい。
  http://www.slideshare.net/satococoa/heroku-pusher  

 ◯Herokuアドオンを作ってみてわかったこと ( @takkam )

 ◯heroku client のちょっと進んだ使い方 ( @hsbt )

 ◯love heroku? – we love herokuのご紹介 ( @ppworks )
johtani | 勉強会 | 00:23 | comments(0) | trackbacks(0) | - | ログピに投稿する |

Solr 3.6.0のCJKの設定とSynonymFilterFactoryの気になる点

先日、Solr入門のサンプルschema.xmlの3.6.0対応版の作成をしていて、気になったことがあったので、 メモとして残しておきます。

SynonymFilterFactoryの属性「tokenizerFactory」に関連する話です。
「Apache Solr入門」の36-37ページに記載があります。)

SynonymFilterFactoryでは、類義語設定ファイルを読み込む際に利用するTokenizerFactoryを「tokenizerFactory」という属性で指定できます。(以下は書籍の記述を抜粋)
  <filter class="sold.SynonymFilterFactory" synonyms="synonyms.txt" ... tokenizerFactory="solrbook.analysis.SenTokenizerFactory"/>
このように、TokenizerFactoryが指定できます。

ただ、こちらの記事で書いたように、 Solr 3.6.0のexampleのschema.xmlではCJKのフィールドは次のように設定されています。
    <!-- CJK bigram (see text_ja for a Japanese configuration using morphological analysis) -->
    <fieldType name="text_cjk" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <!-- normalize width before bigram, as e.g. half-width dakuten combine  -->
        <filter class="solr.CJKWidthFilterFactory"/>
        <!-- for any non-CJK -->
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.CJKBigramFilterFactory"/>
      </analyzer>
    </fieldType>

3.6.0以前は、solr.CJKTokenizerFactoryを利用していましたが、3.6.0からはCJKTokenizerFactoryがdeprecatedになってしまい、代わりにStandardTokenizerFactory+CJKBigramFilterFactoryの組み合わせになっています。
exampleのCJKのフィールドタイプ設定を利用して、かつ、そのフィールドにSynonymFilterを利用する場合に、 StandardTokenizerFactoryを指定してしまうと、類義語が展開できなくなってしまうので注意が必要です。

CJKのフィールドでSynonymFilterを利用する場合は、類義語の設定ファイル内の記述を自力でCJKTokenizerが分割する形で記述する(まぁ、やらないでしょうが)か、deprecatedですが、CJKTokenizerFactoryを利用するのが現時点での対応でしょうか。

なお、これに絡んで、このようなチケットもできています。


SyntaxHighlighterを導入してみました。
ちょっとはみやすくなってますかね?
まだ、SyntaxHighlighterの設定を調べながら使っているので、コロコロ変わるかもしれないですが、気にしないでください。
johtani | solr | 01:16 | comments(0) | trackbacks(0) | - | ログピに投稿する |
1/16PAGES | >> |

05
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
RECOMMEND
RECOMMEND
RECENT COMMENT
RECENT TRACKBACK
MOBILE
qrcode
OTHERS