forget for get

覚えるために忘れる

Apache Solrの使い方を日本語で

Apache Solrとは

Apache Solr(ソーラー)は全文検索エンジンです。
全文検索エンジンには他にElasticsearch、Groongaなどがあります。

Apache Solrの日本語のドキュメントがない、、

「Solr 入門」「Solr 使い方」と検索しても、日本語でよくまとまったものがみつからなかったので、
公式ドキュメント(英語)を見ながら、こんな感じでやると勉強しやすいというのを日本語でまとめてみました。

 

まずはチュートリアル

チュートリアルどおりにやると、だいたいどんなことができるのかわかります。

こちらからチュートリアルと同じバージョンをダウンロードすると、スムーズかと思います。

リファレンスで詳しく

チュートリアルの最後にリファレンスを読め、とあるので、リファレンスを読みます

こちらからPDFのリファレンスをダウンロードしてください。(Webで見れるのは最新バージョンのドラフトだけみたいです)。

 

英語だらけで挫折しそうになったので、目次だけ日本語にします。

  • はじめかた(Getting Started)※チュートリアルとだいたい同じ
  • 管理画面の使い方(Using the Solr Administration User Interface
  • ドキュメント、フィールド、スキーマのデザイン(Documents, Fields, and Schema Design)
  • アナライザー、トークナイザ、フィルターの理解(Understanding Analyzers, Tokenizers, and Filters)
  • インデックス、基本データの操作(Indexing and Basic Data Operations)
  • 検索(Searching)
  • Solrのパフォーマンスチューニング(The Well-Configured Solr Instance)
  • Solrの運用管理(Managing Solr)
  • Solrクラウド(SolrCloud)
  • スケーリングと負荷分散(Legacy Scaling and Distribution)
  • クライアントAPI(Client APIs)

 「管理画面の使い方」で画面からデータを登録する方法がわかります。

「検索」で検索の仕方がわかります。

登録するデータのつくり方は「ドキュメント、フィールド、スキーマのデザイン」と「インデックス、基本データの操作」を読めばいいです。

 

日本語の参考書

英語のドキュメントを時間をかけて読むより、日本語の参考書を読んだ方が早い気がする、、

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

テキストファイル(.txt)をiOS(iPhone)のブラウザ(safari)で開いた時の文字化け対応

テキストファイル(.txt)をiOSiPhone)のブラウザ(safari)で開いた時に文字化けしたので、その対応。

 

SJISでもUTF8でもダメでした。

結論、Unicodeだと文字化けしませんでした。

 

サクラエディタUnicodeでテキストファイルを保存して解決!

 

自作曲の歌詞をスマホをカンペにして見たい時に、

テキストファイルをサーバに置いて見たい時に困ったので、

今回調べました。

築地ッカソンでWebVRやってみた

築地ッカソン vol.4 ~VRをテーマにアプリを作ろう~

に行ってきました。

 

7時間くらいでテーマに沿った作品をつくる築地で行われるハッカソン
終わったら寿司が食べられます。

 

VRに興味はあって何かつくってみたいなと思っていたけど、
なかなかやる時間がない、
いや、時間はあるけど手をつけてない、、
ハッカソンに参加すればやらざるを得ないじゃないか!
ということで、参加しました。

 

WebVRについて調べてみると、
ThreeJS、Aframe、WebVR starter kit、VR Viewなどのライブラリがあるそうで、
(参照:WebVR はじめよう - Qiita

この中のMozillaが発表したAframeを今回使いました。

 

新しいWebVRフレームワークA-Frame入門 - Qiita

を参考に。

 

jsを読みこんで、
<script src="https://aframe.io/releases/latest/aframe.min.js"></script>

 

htmlタグのように書くだけで、
<a-scene>
<a-cube></a-cube>
</a-scene>

 

簡単に直方体が描画されます。
スマホだと向きを変えると、表示も変わります。

 

サンプルを動かしつつ、
どんなことができるのか確認しながら、
時間内でどんなことができそうか考えて、、

 

「VRで探せ!」というのをつくりました。

http://lightwill.main.jp/vearch/

 

画面上にランダムで現れるコイキングを探すというもの。

 

背景の全球画像はGoogleストリートビューアプリで撮影しました。
スマホのカメラで全球画像がつくれちゃうんですね。

 

時間内にはできなかったですが、
コイキングをみつけたら自動でリロード、
カーソルをモンスターボールに、
したかったです。

 

もうひとつ、
先日、お台場でやってる「DMMプラネッツ」に行ったときに撮ったパノラマ画像を360度で見れるのもつくりました。

http://lightwill.main.jp/vearch/planets

 

写真だとキラキラ感が薄れてしまいますが、
実際はキラキラして動いてるのが360度広がってるような世界です。
全球カメラで動画を撮ったりして見れたらいいですね。

 

今回、ハッカソンというものに初めて参加したのですが、
限られた時間の中で何かつくるというのは、
取捨選択を素早く行う必要があり、頭の回転も早くなるので、
短時間で急激に成長できる場だなと思いました。

 

参加者の中にはプログラム始めて1ヶ月です、みたいな人もいて、
誰でも参加できるような雰囲気です。

 

場所が築地ということで、寿司がとてもおいしかったです。
無料でおいしい寿司が食べられるというだけで素晴らしいイベントです!

 

というわけで、WebVRおもしろいのでやってみてはどうでしょうか?

 

ハッカソンおもしろいので参加してみてはどうでしょうか?

 

築地ッカソン facebookhttps://www.facebook.com/tsukijickathon

第3回CodeIQ感謝祭「春のエンジニアまつり」

第3回CodeIQ感謝祭「春のエンジニアまつり」に行ってきました。

マイクロソフトの澤さんのプレゼン塾はとてもわかりやすく参考になりました。
「ビジョン」「核」「話術」
ビジョンが一番大事。プレゼン後に聴衆にどう行動させたいか。
核。言いたい事は簡潔に。
話術は色々なテクニックを。

パネルディスカッションでは厚切りジェイソンさんも参加。
日本の企業文化ってクソだよね、、という話。
アメリカで始業時間をあまり気にしないのは、国内でも時差があるからというのは妙に納得。
マイクロソフトでは本社で役職に応じた給与がドルで決まって、その国のレートや物価などを考慮した額が支払われるそうです。

厚切りジェイソンさんの講演は熱かったです。
大学卒業後GEで働いてたけど、日本で働きたかったから辞めたそう。
人生一度きりなんだから、やりたいことやんなきゃ。
あきらめたら終わりだけど、あきらめなかったら叶うまで終わりじゃない。
明日R-1グランプリあるからdボタンで参加してねとも。

懇親会ではドッカンバトルのUIを作ったakatsukiの人と話ができて、
Oculus Riftの話をしたら、2台持っていてゲームを自作して社内で発表したと聞いて、
やっぱりそういうことができるクリエイターになりたいなと思いました。

色んな企業や技術者の話を聞いて、大変刺激になりました。
普段自分の仕事をしているだけでは得られない世界なので。

また機会があれば。

apacheでバーチャルドメインの設定


apacheでバーチャルドメインの設定を簡単にメモ。

/etc/httpd/conf/httpd.confに以下を追記
NameVirtualHost *:80
Include /etc/httpd/conf/virtualdomain/httpd-oreore.conf

/etc/httpd/conf/virtualdomain/httpd-oreore.confは以下のように書く。
<VirtualHost *:80>
    DocumentRoot /var/www/html/oreore/
    ServerName oreore.jp
</VirtualHost>

apacheの再起動を忘れずに。
再起動の前に設定が間違っていないかは以下のコマンドでチェックできる。
apachectl configtest

hostsファイルを以下のように編集
192.168.xx.xx       oreore.jp
詳しくは「hostsファイルを編集してローカルサーバにテストドメイン名で接続する」を参照。

これで、ブラウザで「http://oreore.jp」でアクセスできる。

hostsファイルを編集してローカルサーバにテストドメイン名で接続する

ローカルサーバにテストドメイン名で接続したい場合、
hostsファイルを編集するとよい。

Windows7の場合
メモ帳を右クリックして「管理者として実行」する。
「ファイル>開く」で
C:\Windows\System32\drivers\etc\hosts
を開き、以下のように追記する。
--
192.168.xx.xx       testdomain.jp
--

すると、ブラウザで「testdomain.jp」にアクセスすると、「192.168.xx.xx」につながる。

Laravelでドキュメントルートを変えずに複数サイト運営するTips


Laravelを使うには、publicディレクトリをドキュメントルートにしないといけないのですが、
レンタルサーバなどでドキュメントルートを変更できない場合の対応。
また、小規模サイトの場合、サイトごとにLaravelを使うよりは、
一つのLaravelでルーティングで複数サイトを使いたいという場合の対応。

ディレクトリ構成のイメージ

laravel/app/routes.php
       /public/
       
mypage/.htaccess
      /css/
      /js/

yourpage/.htaccess
      /css/
      /js/


mypage/.htaccessを以下のようにする。(yourpage/.htaccessも同じ)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ ../laravel/public/index.php [L]

すると、「http://ドメイン/mypage/xxx」のアクセスをLaravelで受け取れる。(yourpageも同じ)

laravel/app/routes.phpを以下のようにする。

Route::group(array('prefix' => 'mypage'), function()
{
    Route::get('/', 'MyPageController@index');
    Route::get('/news', 'MyPageController@news');
});

Route::group(array('prefix' => 'yourpage'), function()
{
    Route::get('/', 'YourPageController@index');
    Route::get('/news', 'YourPageController@news');
});


prefixでまとめることで、複数サイトも管理しやすい。

ただ、ドキュメントルートにLaravel本体を置くのはセキュリティ上よろしくないと思うので、
正しい解決策ではないかもしれません。