MongoDBのver2.4から全文検索が導入されたので使ってみようと思ったんですが、やっぱりというか日本語には対応していなかった・・・。 何か悔しいのでElasticsearchでMongoDBのコレクションを日本語全文検索する環境を構築してみました。 Elasticsearchのインストール 何はともあれElasticsearchのインストールですが、Macならbrewで簡単にインストールできます。 ちなみにWindowsでも適当な場所にzipを展開するだけです。 $ brew install elasticsearch で、起動。今回は試しながらなので-fオプションを付けてフォアグラウンドで起動します。 $ elasticsearch -f 特にエラーが出なければ実際にアクセスしてみます。 elasticsearchはREST APIでやりとりするのでcurlコマンドでリクエストを投
elasticsearchのインストール - yuhei.kagaya elasticsearchのGUI「elasticsearch-head」がとても便利 - yuhei.kagaya に続き。elasticsearch0.90.2でやってみました。 大きな流れはこんな感じ。 kuromojiプラグインのインストール デフォルトでkuromojiを使うようにelasticsearch.ymlを設定 kuromojiを使って形態素解析&分かち書きしてインデクシング 検索 kuromojiプラグインインストール前に、検索できないことをテスト 学術研究用にlivedoorグルメのデータが公開されているので、利用規約に同意してダウンロード、解凍展開した後、 下記のPHPスクリプトを使ってとりあえず47都道府県データのprefのみをelasticsearchへ登録してみました。 livedoor
はじめに 初めまして、ブロガーとして出張してきました@smokeymonkeyです。 今回、AWS上にElasticSearchを導入し、試行錯誤した結果をまとめてみました。シリーズものとして何度か続けていきたいと思いますので、どうぞ宜しくお願い致します。 ElasticSearchとは Apache v2ライセンスで公開されているオープンソースソフトウェアであり、全文検索エンジンであるLuceneを使用した、全文検索システムです。特徴として RESTfulなAPIが使える InputもOutputもJSON スキーマフリーなので面倒な定義無しにデータを登録可能 等があります。 Kuromojiとは Kuromojiはatilika社製のJavaで書かれた日本語形態素解析ソフトウェアで、Apache v2ライセンスで公開されているオープンソースソフトウェアです。形態素解析としてはChaSe
Fluentd 2013年開発・状況まとめ / 2014年に向けて ワイワイ!Fluentd Advent Calendar 2日目担当の @kzk_mover です。このエントリでは2013年 Fluentd の開発・コミュニティの状況まとめをお届けします。 2013年開発まとめFluentdコア自体は2013年、191 commit (そのうち @repeatedly が 84 commit)。ドキュメントの方は326 commitあります。コア以外にも、2012年年末に約70だったプラグイン数は、2013年12月1日現在に約3倍の206個となっています。 Fluentdのコア自体は10回リリースされ、td-agentは6回リリースされています。大体Fluentdが月1回、td-agentが月に2回の計算になります。また、@repeatedlyがTD社に入社し、td-agentのメンテ
Ruby Advent Calendar 2013 1日目Ruby Advent Calendar 2013、1日目の記事になります。 こんにちは。1日目の記事ということでかなり緊張しています。 さて、いつもネタ記事ばかり書いている私ですが、さすがに1日目ということで、入門的な内容、つまり、これからRubyを始めたい方のための記事を書いてみたいと思います。真面目に。 実は、私もRubyを使い始めてから1年も経っていないのですが、ある学習法を取り入れることで、飛躍的にRuby力を向上させることに成功しました。今回はその方法をお伝えします。 Minecraft ステップ2Minecraftで遊びます。 images by aoisensi ステップ3「そろそろマルチプレイやるかー」と言ってマルチサーバーを立てて遊びます。 photos by sixeight ステップ4「ほうほう、CraftB
最近、どうも安易に「NoSQLにすれば厄介なDB設計から開放される」と考えている人が多いように思えて仕方がない。だが待って欲しい。本当にNoSQLと呼ばれるデータベースを使えばアプリケーションの開発・運用の苦しみから逃れられるのだろうか。もちろん「そんなことは無い!!絶対にだ!!」と私は考える。今日はその理由について語ろうと思う。 トランザクション先日、リレーショナルデータベースにおけるDB設計についてセミナーで解説したばかりだが、リレーショナルデータベースにおけるデータの整合性は何もDB設計だけが担保しているわけではない。リレーショナルモデルと同じかそれ以上に欠かせないのがトランザクションだ。 トランザクションがあるおかげで、トランザクション終了後のステータスは「成功」か「失敗」の2つしかないということが保証される。すなわちオール・オア・ナッシングだ。もしトランザクションの途中で何らかの
こんにちは。 12月がはじまったということで、11月中に話題になったイケてるwebサービスやアプリを10個ほどご紹介します! TERIYAKI(てりやき) ホリエモン(堀江貴文氏)がプロデュースするグルメアプリです。 既存のグルメアプリは消費者生成メディア(CGM)で、評価の基準が定まっていませんでした。TERIYAKIはそこを、TERIYAKIキューレーターと呼ばれるグルメ専門家たちの協力を得て「本当に美味しいものだけ」を紹介してくれるようにしています。サービス利用金額は、基本的に無料で詳細検索を行う場合は月額400円という価格設定になっています。 1Click飲み 自動飲食店予約アプリです。 「飲みたい!」から「乾杯!」までを「1クリック」で繋ぐサービスです。 アプリ上でワンクリックすると、店の検索、推薦、そして予約までが全自動的に行われるというもの。Webアプリ開発コンテスト「Mas
HTML5 Conference 2013 において発表したスライドです。 Knockout.js について簡単に説明しています。Read less
このエントリはMySQL Casual Advent Calendar 2013の1日目の記事です。 はじめに SQLを書くとき、普通は where でその処理が対象とする行を絞り込みます。要するに where 以下が真である行が対象になるわけですね。簡単には以下のように書きます。 DELETE FROM tbl WHERE 1=1 さて、もちろん WHERE 以下には実際の各行のデータを用いるわけですが、例えば削除用フラグを各行に持たせておいて、バッチ処理で一気に消したい場合ならこのようにします。 -- delflag TINYINT(1) DELETE FROM tbl WHERE delflag=1 ここで、おっと、と思う人もいると思います。そう、MySQL にはBOOL型がありません。いや、正確にはBOOLという独立の型は存在せず、BOOLといえばTINYINT(1)のことである、
この記事は、iBeacon Advent Calendar 2013 の1日目です。 どうも、@yumu19 です。フリーランスエンジニアです。つい先日まで、PlaceEngine というWi-Fi測位技術を開発する Koozyt という会社で働いていており、iBeaconをはじめとする屋内測位技術に興味があります。ただ、まだこれから広まっていく段階ということもあり、まだ情報があまりように思われます。ということで、iBaecon Advent Calendar を立ち上げてみました。 立ち上げた責任を持って1日目の記事を投稿します。 iBeacon とは iBeacon とは、Bluetooth Low Energy(BLE) を用いた、iOS での近距離無線測位の仕組みです。Bluetooth の電場強度の情報を使って、数m単位でのざっくりとした位置を測定することができます。 というのが
(この記事はLisp Advent Calendar 1日目のためのエントリです。) 禅が好んで用いる比喩がある。月を指すには指が必要である。だが、その指を月と思う者はわざわいなるかな。 — 鈴木大拙「禅」 これをLispに例えるなら、こう言うことができるかもしれない。 Lispを書くには括弧が必要である。だが、その括弧をLispと思う者はわざわいなるかな。 Lispを普段書いている身としてはLispについて括弧がどう、というのは些細なものに思えるが、Lispを知らない人からすると自然な考えだろう。人間は知らないものを理解しようとするとき、自分が今まで見たもの、知っているものと比較して手がかりを得ようとする。Lispが他のプログラム言語と比較してユニークなものは、やはりその括弧で表現されたS式だ。 しかし、Lispが括弧を使った奇妙な構文を用いるのは理由がある。そしてそれがLispの強力さ
先日とあるコードレビューを拝見することがあったのですが、それにインスパイアされて記事を書いてみます。レビュワーの方が言ったことも含んでいますが、それと必ずしも一致するものでもありません。 Objective-Cのコードで書いていることが多いですが、わりと一般論だと思います。 photo by Hugo-photography 命名規則は言語の「普通」に任せる 例えば、Objective-Cだと変数にはcamelCaseを使うことが多いです。逆にRubyではsnake_caseを使ったりします。もしくは、略語を使うとか使わないとか、そういう違いもあります。 変数名に対してどういう書き方をするかというのは、個人の好みではなく、言語の慣習に任せるのがいいのではないかと思います。 言語の慣習の調べ方は、Githubで「stars:>100」と検索して、言語を絞るといいでしょう。(参考:Rubyの例
(Monitoring Casual Talk in Kyotoで発表してきたので、ブログエントリにまとめ直しました) 2013年はインフラ周りの技術的な進化が大きく、いくつかのエポックメイキングな概念と実装が産まれました。個人的には特に以下の2つが大きいと思っています。 AWSの本格普及期 DockerとImmutable Infrastructure これらを踏まえて、2014年のウェブシステムの進化の方向性を考えてみます。また、それによるモニタリングへの影響もあわせて考えます。だいぶ長くなってしまったので、急ぐ人は最後に結論をまとめましたので、そちらからどうぞ! 2013年という時代背景 AWSが本格普及期を迎えているのは、言わずもがなのことで、Re:Inventでの246件という膨大のセッション数などにその勢いが表われています。 また、DockerはLXC (LinuX Conta
なぜかミスをしない人の思考法 (知的生きかた文庫) 【本の概要】◆今日ご紹介するのは、失敗学のエキスパートである、東大大学院教授・中尾政之先生の文庫本。 2007年に出た『失敗の予防学―人は、なぜ“同じ間違い”を繰り返すのか』を再編集&改題したものになります。 アマゾンの内容紹介から。人間は必ず失敗する。それも性懲りもなく、同じような失敗を繰り返す。しかし、自分のミスをきちんと知識化、教訓化することがミスの再発を防ぐだけでなく、逆にミスしないようなスキルやノウハウを積み上げる。そして、それが質の高い仕事をするための絶好のチャンスに変わる。すべては、「仕組み」で解決できる! なおタイトルは、久し振りに「ホッテントリメーカー」のお世話になりました! 【ポイント】■1.人の失敗を模範例として利用する Pie Chart showing amount of snow cleared / barca
このエントリはPHP Advent Calendar 2013 - Qiita [キータ]の1日目です。 PHPの開発に幅広く利用されるようになったVagrantですが、公開されているVagrantfileがGitHub上だけでも300件以上と色々とあるのでまとめておこうと思います。 Search · Vagrant php yandod/php5-nginx-vagrant-sample こちらは手前味噌ですが、自分が使っているVagrantfileです。素のPHPやPHPUnit、各種フレームワークの動作検証に使うためにPHP5.5とNginxを構築しています。 またデータベースとしてMySQLとPostgreSQLを両方セットアップしてあり、ImageMagickも入っているあたりも特徴かと思います。 10up/varying-vagrant-vagrants 通称、「VVV」と呼
インフラストラクチャ本部の大場です。 今日から12月がはじまりました。みなさんは、今年やりたかったことはできたでしょうか。僕はといえば、やりたかったことが多くてあれもできなかった、これもできなかったとという後悔から目をそらすため、今日は11月32日かもしれないと強い意志で自己暗示をかけているところです。 さて、それはさておき今年を締めくくるのに相応しい企画として、これからグリーのエンジニアがクリスマスまで毎日このブログを更新していきます。題して『GREE Advent Calendar 2013』が始まります。 今回、口火を切る役としてグリーとオープンソースソフトウェアの関わりについてゆるくまとめましたのでお付き合いください。 グリーとオープンソースソフトウェアの関わり グリーはApacheやLinux、PHPをはじめ多くのオープンソースソフトウェアに支えられて開発をしています。 常日頃か
この記事は Vim Advent Calendar 2013 1日目の記事になります。 さて、今年も Advent Calendar の季節がやってきましたね! 今年もがんばって行きたいと思います。 また、去年の Vim Advent Calendar はこちらになります。 今年1発目の記事って事で簡単に Web 上の記事をまとめてみたいと思います。 [初心者 - Vim を始めた人、始めようと思っている人向け] Learn Vim Progressively mattn さんによる「Learn Vim Progressively」の翻訳記事です Vim の習得する為の内容です Vim初心者の自分が、初心者の視点からVim入門を書いてみました。 初心者目線で書かれています これから Vim を始める場合に入りやすいと思います これだけ知っときゃなんとかなるVim これだけ知っておけばなんと
■ tDiary 4.0.2リリース いい肉の日にtDiaryの4.0.2を無事リリースできたことをお喜び申し上げます。 tDiary 4.0.2リリース (夜遅くになるまで@hsbtとおれの手があかなくてぎりぎりまでバタついていたとか言ってはいけない。というか↑の更新時刻が11/30になってるとか見て見ぬふりをしなくてはいけない) 今回のリリースで、スタイルやIO、キャッシュまわりの独立性を高めたので(@hsbtが)、標準品以外はgemに分離して本体のアップデートに依存しない構造になった。ので、環境の変化に応じていろいろ変更できるようになったはず。ここの日記も、環境を整備したらHerokuに移したいなーという野望をもってtdiary-io-mongodbなんかを書いているわけだけど、先は長いのだよなぁ(だからまだここは3.2.2なのだ)。
vagrant install とか pylearn2 install 済みの vm 作成など vagrant install する 手早く vagrant 環境を整えて*1 (ref:http://blog.papix.net/entry/2013/04/27/141608 ), github にある pylearn2 用の box を使って pylearn2 が実行出来る環境を作る *2 vagrant up する git clone https://github.com/ironchief/pylearn2_vagrant.git cd pylearn2_vagrant vagrant upを実行するだけだが,cpu によっては vt-x が使えなかったりするので*3, 下記のように 32bit OS を見るように Vagrantfile を編集する *4 diff --git a/
定期的に取り上げたくなるDB設計に関する話題である。WEBアプリが一般化して以来、議論されてきた事柄がある。テーブルの主キーを「単独主キー」のみとするか、複数項目を組み合わせた「複合主キー」を必要に応じて使うべきかという問題だ(*1)。複合主キーに対する「否定派」と「許容派」に分かれた議論は劇烈で、宗教論争のようにも見える。 主キーというものは、テーブルの存在意義といってもいいほどに重大な要素である。にもかかわらず、なぜそんな基本的なレベルの議論が始まってしまったのか。2つほどの理由が考えられる。 まず、単独主キーとしてIDを機械的に置くやり方(ID方式)が「オブジェクト指向」と相性がよかったからだ。オブジェクトは固有の識別子(オブジェクトID)を持つので、これに相当するIDをテーブルの主キーとすることで、オブジェクトとDBの設計問題を統合できると考えた技術者が少なからずいた。そのアイデア
ユーザビリティ本 ほんとに使える「ユーザビリティ」 「使いやすさ」という考えが異なるだけでなく、「明快さ」の表現も異なる日本。海の向こうの人々が考える理想を、そのまま押し付けるのではなく、本書から何を抜き取り、自分たちの仕事に合うように変形させるのかが課題です エリック・ライス氏が 2012 年に刊行した「Usable Usability」の訳書です。 この種類の専門書は原書で読むことが多いので、久しぶりの訳書になりました。訳書の魅力は、日本語で読めるのはもちろん、原作者の住んでいる国の文化やニュアンスを理解していないと、伝わり難い部分を補っているところです。世界中を飛び回っているライス氏なので、世界のユーザビリティに興味をもつ読者に向けて執筆しているはずです。しかし、それでも『日本から』という視点では見え難いこと、分かり難いことは少なくありません。そこを、訳者 浅野紀予 さんは工夫されて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く