サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
k4200.hatenablog.com
最近仕事関連でChrome Extensionを作ったので、ポイントとかを簡単にまとめてみる。 前提 環境とか 古いChromeには対応しない(ChromeのバージョンによってAPIが変わってたりする) manifestのバージョンはv2 作るもの Extensionにはいくつかのタイプがあるが、今回は以下の様なものを作る。 ブラウザに表示されている内容を取得 1で取得した内容をExtensionのJavaScriptがパース Extensionのポップアップを表示し、2の内容を表示 ポップアップ上のボタンを押すと、内容がサーバーに送信される イメージとしては、はてブとかEvernoteのブラウザ拡張を思い浮かべてもらえれば良いかと。 後述する専門用語で言うと、browser action (あるいは page action) + content script という構成。 アーキテクチャ
退職エントリー書ける人が羨ましい(皮肉とかでなくて) 年度末、期末とかになると退職エントリー花盛りじゃない。正直羨ましいなー。何か名の知れた会社でバリバリ活躍してたエンジニアが、同じく名の知れた違う会社に転職して、前の会社で勉強になったこととか次の会社での抱負とかを前向きに語って、スゴい眩しい。 最近TwitterとかFacebookとかあまりチェックしてなかったけど、比較的付き合いのある知り合いのエンジニアの方も最近転職したみたいで、その彼が退職エントリーを書いたかどうかは知らないけど、転職先は技術的に面白そうな会社。羨ましい。 自分が退職エントリーを書かなかった訳 自分がなんで退職エントリーを書かないかというと そもそも正社員じゃない(一時的に正社員の期間もあるけど) そんなに技術者受けする会社で仕事してるわけでもない そもそも、書く理由がよく分からなかった って感じかな。今でも皆さん
CentOS 6.3でBINDを起動しようとすると、以下のメッセージを出して固まる。 Generating /etc/rndc.key:解決策はここにあるように、rndc-confgenコマンドで /etc/rndc.key ファイルを作成する。 # 通常時 rndc-confgen -a -r /dev/urandom # chroot環境の時 rndc-confgen -a -r /dev/urandom -t /var/named/chroot
Amazon RDSとは、Amazonが提供するマネージドのMySQLサービス(OracleとMicrosoft SQL Serverもあるけど)。 最近、いくつかのプロジェクトでEC2上のMySQLからRDSに移行したので、その際に気をつけるポイントとかを書いてみる。 RDSの制約 メンテナンスウィンドウ セキュリティパッチの適用などが、事前に設定したメンテナンスウィンドウの中で行われる。例えば、メンテナンスウィンドウを月曜の1:00〜1:30に設定した場合、この時間帯でメンテナンスが行われる「可能性がある」。毎週この時間帯でメンテナンスが必ず行われるわけではないってのはFAQ。 ちなみに、通常はメンテナンスに伴いサーバー再起動等のサービス断が発生するが、それに関して事前に通知などはないので、RDSにつながらない場合はエラー画面を出すなどの仕組みをアプリ側で用意する必要がある。 (実質)
昔はbi-gramの場合、CJKTokenizerFactory ってのを使っていて、自分が持っているSolr本にもそう書いてあるが、最近は、StandardTokenizerFactory + CJKBigramFilterFactory を使うらしい。詳しくはggrks。 bi-gramの場合、検索クエリーが1文字の場合に対応出来ない。その辺の詳しい話もネット上に色々あるはず。でも、CJKBigramFilterFactory には uni-gram を出力するオプションもあり、それを使うと1文字の検索に簡単に対応できる。schema.xmlのCJKBigramFilterFactoryを使っているところを以下のようにするだけ。詳しくはドキュメントを参照。 <filter class="solr.CJKBigramFilterFactory" outputUnigrams="true"
はじめに 前回の続き。やりたい事は、EC2上のLinuxサーバーのApacheログをNagiosで監視して、エラーが発生したらアラートメールを送信。 ※このエントリーの続き:第3回 とりあえずローカルのログから 本当にやりたい事はNagiosが動いているのとは別のサーバーのログを監視することなんだけど、その前にローカル(Nagiosが動いているサーバー)のログを監視する設定から。 ツッコミ大歓迎 今回初めてNagiosを触っているので、何かおかしなところはご指摘頂ければ・・・ 必要なパッケージをインストール [root@local ~]# yum install nagios [root@local ~]# yum install nagios-plugins-nrpe [root@local ~]# yum install nagios-plugins-pingnagios-plugin
前回、Dremelの論文を読んで、分かる範囲で説明した。 さて、前回の記事を書いた後、BigQueryのホワイトペーパー (miyakawa_taku さんありがとうございます)を紹介されたので読んでみた。論文の要約+BigQueryの紹介と言った内容。 今回は、まずはそのホワイトペーパーの内容を少し紹介して、その後にImpalaのアーキテクチャにたどり着ければという感じ。 BigQueryのホワイトペーパーに書いてあること Google BigQueryとは、データをアップロードしてそのデータに対してデータ分析が出来るというサービス。GoogleがDremelとして発表したシステムを外部向けにしたもの、らしい。お値段はこの辺。比較的お手頃という印象。 さて、ホワイトペーパーの中身について見ていく。 Dremelが速い理由 まずは、Dremelがなぜ速いのかという話題で、理由として以下の2
夢の(悪夢の)TV露出、それに備えて負荷テスト Webサイト・サービスを立ち上げて順調に成長していくと、ニュースサイトや雑誌に載ったり、運が良ければTVに取り上げられたりする。プロモーション視点で言うと夢の様なTVデビューも、インフラ担当に取っては悪夢でしか無い、と。 不幸中の幸いな事に、TVに取り上げられる場合は日時が決まっているので、事前に負荷テストを行なってチューニング等の対策を行う時間が取れる。 今回はWebサービスの「負荷テスト」を行う方法の一つとして、Amazon EC2上に複数のインスタンスを立てて、そこから対象のWebサービスに負荷をかけていく方法について説明する。 ツール選定 大雑把に絞込み 「負荷テスト」でぐぐるとこちらのページがトップで出てきたのでいくつか調査してみた。結論から言うと、機能的にはJMeter以外はどれも大差なくて、情報の多さ等を考えるとJMeterかa
はじめに 最近話題の(?)Chefの環境をCentOS 6.3上に構築し、レシピの書き方の基本的な事を説明する。 Chef Solo環境構築に関する公式ドキュメントはこちら そこにOS別のインストールドキュメントがあるが、CentOSなどのRed Hat系はこちら。基本はこれに沿ってやっていくが、本記事では一部これとは違う内容もあるので注意。 Chefのインストール RBELレポジトリというのを有効にする。 $ sudo rpm -Uvh http://rbel.frameos.org/rbel6次にRuby関連のパッケージをインストール。 $ sudo yum install ruby ruby-devel ruby-ri ruby-rdoc ruby-shadow gcc gcc-c++ automake autoconf make curl dmidecodeドキュメントだとRuby
目的はCloudera Managerで楽にHadoopのクラスタ構築をする クラスターの実験用に自宅サーバーを購入したので、ぼちぼちセットアップしていく。以前VPSで2台構成のクラスタ(しょぼい)を構築した時は、CDHを手動でインストールしたが(過去記事)、今回はメモリとかも割と潤沢にあるのでCloudera Managerというのを使ってみることにした。 Coudera Managerは、HadoopやHadoop関連のソフトウェア(HBase, ZooKeeper, Hive, Impala, Hue等)のクラスターを構築するためのソフト。Free Editionは50ノードまで(ver. 4.5からノード数の制限が無くなったそうです)無料で使える。 ドキュメントはこの辺から。 環境 今回の環境を簡単に。 CentOS 6.3 Cloudera Manager Free Editio
最近、趣味で検索エンジンみたいなの作ってるし、仕事でも大規模データを扱う話が増えてきた。初心者向け分散処理勉強会なんてのも有志で立ち上げて色々勉強中。 さて、ちょっと前にClouderaがImpalaなるものを出した。Googleが2010年に発表したDremelというシステムに関する論文にインスパイアされて作ったらしい。 勉強会のネタにもなるし、まずはDremelの論文を読んで分かる範囲で説明して、その後Impalaのアーキテクチャについて調べてみる。 (間違い等があればご指摘頂けると助かります) Dremel論文 ポイント 大雑把にまとめちゃうと、ポイントは2つ。 列指向のデータ構造(= Columnar storage: Chapter 4, Figure 3) 木構造のサーバー群によるクエリー実行(= Multi-level serving tree: Chapter 6) 前者の
その2はこちら。 目的 個人的に興味があって、ある領域に特化した検索エンジンみたいなのを作ろうとしている。 当面の目的としては、以下のような事をやる。 対象のサイト(ある領域に関連するサイト)をクロールして保存 クロールしたページから必要なデータを抜き出して、DB(必ずしもRDBMSとは限らない)を作成し、以下のような検索が出来るようにする カテゴリ等をドリルダウンして、対象ページを絞る キーワード検索 今回はNutchとHBaseのインストール、実行くらいまで書く予定。 アーキテクチャ ちょっと調べて、以下のようにする事にした。 クローラーにはApache Nutcheを使う 取得したページを、自作のプログラムでパースして、カテゴリー等に分類 取得したページをSolrに渡して、全文検索出来るようにする 環境 VPSを使っているけど、メモリが1Gだと動作しなかった。2Gだと大丈夫。 OS:
Scala Advent Calendar 2012の2日目、のはずだったけど、諸事情によりこちらの 12/5 の記事になりました。 Play! framework 2.0のアプリを国際化する方法についてちょっと書きます。基本はここに書いてある通りだけど、補足とか書いていない事とかハマりポイントとか。 前提・環境 Play 2.0.4 英語・日本語の2か国語に対応 英語がデフォルトの言語 メッセージカタログにメッセージを外出し 基本 以下の3ファイルを用意 conf/messages.en → 英語のメッセージ conf/messages.ja → 日本語のメッセージ conf/messages → デフォルトのメッセージ 最初の2つは説明不要だと思うので、最後のに関して説明。 デフォルトのメッセージファイル 例えばviewの中で以下のような記述があり、 @Messages("index.
OrientDB? 仕事でソーシャル系のサービス作ってるんだけど、グラフデータはやっぱグラフDBを使ったほうが良いよね。 一番有名なNeo4jにしようかと思ったけど、以下の理由からOrientDBを試してみることにした。 「有名なの使うのって何かカッコ悪い」って思ってしまう軽度の中二病なので OrientDBは実際にはグラフDB + ドキュメントDBって感じらしいので 実際は、今年の初めにちょっと触り始めてたんだけど半年以上放置してて、最近ようやく時間が取れるようになったのでまた触ってみることに。 OrientDB のセットアップ インスコ こちらのページからパッケージをダウンロード。2種類あるけど、Graph Editionの方で。 後は適当な場所に解凍するだけ。 /usr/local の下とか /opt の下とか、まぁ好みでどうぞ。 起動 解凍したパッケージの中に bin/orient
※続き:第2回、第3回 無性にApacheのログを監視したくなった。別に衝動的ではなく、仕事で必要になっただけだけど。 あまり詳しくないので、ツッコミ大歓迎。 要件、環境 機能的な要件としては Apacheのエラーログとかをリアルタイムで監視 更新分だけを監視。毎回全スキャンはNG ログローテーションに対応 特定のパターンに反応してメール送信 というシンプルなもの。 機能以外の要件としては 設定に手間を掛けたくない。 (出来れば)パッケージでインストール可能 環境は Amazon EC2 Amazon Linux (32bit & 64bit 両方) 検討したソフト monit ディスク容量監視とかで使ってるけど、ログ監視はないよね? Swatch 及び、それの改良版である LogSurfer 良い所:設定がシンプルそう 良くない所:ビルドとかするのしんどい。Swatchはメンテされていな
前置き この記事はScala Advent Calendar jp 2011最終日用のエントリーです。 FlockDBって何? FlockDBはグラフDBです。グラフDB?(゚д゚)ハァ?って人はこちらのスライドを読んで下さい。 そのスライドでも紹介されているNeo4jとかとはどう違うの?って思うかもしれませんが、FlockDBのREADMEにその辺が書いてあります。要は「機能少なめ、性能高め」って事らしいです。 FlockDBの仕組み 非常に情報が少ないんですが、以下のページをざっと読んだ所、内部で gizzard を使っていて、そのバックエンドとしてMySQL を使っている?とりあえずこの記事を書きながら、中身についても調べていこうと思います。 Twitter Engineering: Introducing FlockDB Wikipediaやそこで参照されているサイト なんでFlo
I attended a study session about Play! Framework in Osaka. Actually, I hadn't used it, but most of the sessions were for beginners, and quite useful for me. After the sessions finished, we had two hours of free time and everybody did what he liked. Reading books, talking about Play, just chit-chatting etc. I was trying to get a Play app in Scala running on Google App Engine (GAE), and finally succ
Ubuntu 10.04にGitoriousをインストール 背景 Ubuntu 10.04にGitoriousをインストールした。Gitoriousとは、どうやらGithubみたいなのを構築できるソフトらしい。RoRで出来ている。 勉強がてら作ってるLifthubではgitosisというのを使ってたんだけど、Lifthubのサーバーの移行をする事になったので、せっかくなら違うのを使ってみようと言うことでGitoriousを使う事にした。 自分の作業ログから書き起こしているので、無駄な作業とかがあるかも・・・ 環境はUbuntu 10.04。Apacheではなく、nginxと一緒に動作させる。 参考にした情報 こちらのページの内容がかなり参考になって、8割方はそのページの手順でOK。ここでは異なる部分を重点的に説明する。 なお、GitoriousのページにもUbuntuでのインストール手順が
概要 Java(やScala等のJVM系の言語)から外部のプロセスを起動するには、ProcessBuilderというクラスを使う事が多いと思うけど、Apache CommonsにCommons Execというライブラリ(Processクラスとかのラッパーのはず)があり、そちらの方が若干便利そうなのでそれを使ってみる事にした。 一応チュートリアルがあるが、ごく基本的な内容なので、もう少し踏み込んだ内容を書いてみる。 入出力の扱い Javaから外部プロセスを呼び出す際の注意事項として、呼び出したプロセスの入出力(よく問題になるのは出力)を適切に扱う必要があるという事。 例えば、呼び出したプロセスが標準出力にログを吐く場合、それを適宜読み出してあげないとバッファーに溜まっていき、バッファーが一杯になった時点で処理がブロックされる。これはProcessクラスのJavadocにも書かれている、FAQ
このページを最初にブックマークしてみませんか?
『k4200.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く