k4200’s notes and thoughts

Programmer side of k4200

「早稲田大学の理工系におけるコピペ文化について」について

Twitterにこんなのが流れてきた。 早稲田大学の理工系におけるコピペ文化について 自分の周りの状況を「早稲田大学の理工系」って一般化するなよ。とまず言いたい。 これで終了ってのもなんなので、以下、少し細かい話を。読みたい方だけどうぞ。

Chromeのブラウザ拡張(Extension)を作る

最近仕事関連でChrome Extensionを作ったので、ポイントとかを簡単にまとめてみる。 前提 環境とか 古いChromeには対応しない(ChromeのバージョンによってAPIが変わってたりする) manifestのバージョンはv2 作るもの Extensionにはいくつかのタイプがあるが…

昔書いてたblogを復活させた

以前、レンサバで自分のblog持ってたんだけど、しばらく放置してたらスパムコメントが大量についてデータファイルが肥大化して動かなくなってしまった(懐かしのMovableType)。何かこのまま捨てちゃうのも勿体無いので、復活させることにした。でも自分でや…

Squerylでカスタム集計関数(custom aggregate function)を作る

Squerylでsum, avgとか以外の集計関数を使いたい 集計関数とはavgとかsumみたいに、複数の値を受け取って1つの値を返す関数のこと。Squerylではここに載っているものがサポートされてる。でも、今回は、medianを使いたい。中央値。中央値と平均値の違いがわ…

退職エントリーを書いてみたい

退職エントリー書ける人が羨ましい(皮肉とかでなくて) 年度末、期末とかになると退職エントリー花盛りじゃない。正直羨ましいなー。何か名の知れた会社でバリバリ活躍してたエンジニアが、同じく名の知れた違う会社に転職して、前の会社で勉強になったこと…

Play! 2.1のroutesでOption型のパラメータを・・・

やりたいこと あー、タイトル分かりにくくてすみません。今作ってるサイトで、要はこういうことをやりたいんです。 GET /$areaId<[0-9]+> controllers.Foo.bar(areaId: Int, subAreaId: Option[Int] = None) GET /$areaId<[0-9]+>/$subAreaId<[0-9]+> contro…

EC2上のMySQLをRDSに移行する際のポイントとか

Amazon RDSとは、Amazonが提供するマネージドのMySQLサービス(OracleとMicrosoft SQL Serverもあるけど)。最近、いくつかのプロジェクトでEC2上のMySQLからRDSに移行したので、その際に気をつけるポイントとかを書いてみる。

Solr 4にて、基本はbi-gramだけど、1文字の検索にも対応させる

昔はbi-gramの場合、CJKTokenizerFactory ってのを使っていて、自分が持っているSolr本にもそう書いてあるが、最近は、StandardTokenizerFactory + CJKBigramFilterFactory を使うらしい。詳しくはggrks。bi-gramの場合、検索クエリーが1文字の場合に対応出…

PECLのSolrエクステンションをSolr 4に対応させる

PECLのSolrエクステンションはSolr 4では動かない PECLのSolrエクステンションがあるんだけど、Solr 4ではcommitが上手く動かない(モジュールの最新バージョン1.0.2でもNG)。原因は`waitFlush`というパラメータが廃止になった?ため。詳しくはこの辺を参照。

色んなSQLをSquerylで書くと?

Squryl で複雑なSQLを実行させたい ORMって、ちょっと複雑なSQLを実行させようとすると面倒な事が多くて、みんな仕方なしに使ってること多くない?という主観はさておき、Squrylの場合もドキュメントやサンプルプログラムに載っている例以外の事をやろうとす…

SquerylでPostgreSQLのpoint型のデータを書き込む(これは酷い)

やりたい事 他のORMと比べて便利かどうかは特に検討せずに、とりあえずSquerylを使ってる。PostgreSQLにはgeometry関連の型があって、更に詳しく言うとPostGISとそうじゃないやつがあるんだけど、その辺の詳細は省略。今回扱うのは通常のpoint型の話。x, yの…

ElastiCache使用時のクライアント設定の注意点

AWS

AWS版のmemcachedがElastiCache。一度セットアップしちゃえば、使い方は普通のmemcachedとほぼ同じなんだけど、そこはさすが(というか何というか)AWS。AutoDiscoveryという独自の機能もある。詳しくはこの辺を参照。

Impalaのアーキテクチャを少し調べてみた

前回、Dremelの論文を読んで、分かる範囲で説明した。さて、前回の記事を書いた後、BigQueryのホワイトペーパー (miyakawa_taku さんありがとうございます)を紹介されたので読んでみた。論文の要約+BigQueryの紹介と言った内容。今回は、まずはそのホワイ…

Webの負荷テストをEC2上での分散環境で行う。

夢の(悪夢の)TV露出、それに備えて負荷テスト Webサイト・サービスを立ち上げて順調に成長していくと、ニュースサイトや雑誌に載ったり、運が良ければTVに取り上げられたりする。プロモーション視点で言うと夢の様なTVデビューも、インフラ担当に取っては…

Play! 2.0から2.1にアップデート

時代はPlay 2.1だよね(棒 Play 2.0から2.1にアップデートした。丸1日位かかったので、これからやる人に向けてちょっとメモ。 旧環境: Play 2.0.4 新環境: Play 2.1.1 なぜアップデートしようと思ったか ちなみに、元々Play 2.1にアップデートするつもりじゃ…

sbtプロジェクトをデプロイ(sbt 0.11)

rpscala 第100回でやった事。 やりたい事 sbtで出来たプロジェクトがあって、以下のものをリモート環境にデプロイしたい。 自分で書いたコード 依存ライブラリ プロジェクト構成はこんな感じ。multi project構成になっている。モデル等共通部分のcommon、フ…

祝rpscala開催100回!

祝第100回! 自分がちょくちょくに参加している「Scala勉強会 in 東京」、あるいはTwitterのハッシュタグである「rpscala」と言った方が通りがいいかもしれないけど、それがついに開催が100回に!おめでとうございます! >今までrpscalaに関わって来られた全…

CentOS 6.3でのChef Soloの環境設定

はじめに 最近話題の(?)Chefの環境をCentOS 6.3上に構築し、レシピの書き方の基本的な事を説明する。Chef Solo環境構築に関する公式ドキュメントはこちらそこにOS別のインストールドキュメントがあるが、CentOSなどのRed Hat系はこちら。基本はこれに沿っ…

Cloudera ManagerでHadoopやHBaseのクラスタをセットアップする

目的はCloudera Managerで楽にHadoopのクラスタ構築をする クラスターの実験用に自宅サーバーを購入したので、ぼちぼちセットアップしていく。以前VPSで2台構成のクラスタ(しょぼい)を構築した時は、CDHを手動でインストールしたが(過去記事)、今回はメ…

第2回初心者向け分散処理勉強会

第1回に続き、第2回も無事終了。今回は体調不良や急用でキャンセルした方が数名、遅れて来られた方も数名いたため、懇親会でのピザは無し。 発表内容 LTSVをPigで処理する話(みやかわさん) 資料はこちら。数週間前、突如Twitterで大流行した人気ワードLTSV…

CentOS 6のBIND起動時にGenerating /etc/rndc.keyで固まる

CentOS 6.3でBINDを起動しようとすると、以下のメッセージを出して固まる。 Generating /etc/rndc.key:解決策はここにあるように、rndc-confgenコマンドで /etc/rndc.key ファイルを作成する。 # 通常時 rndc-confgen -a -r /dev/urandom # chroot環境の時 r…

Dremelの論文読んで、Impalaのアーキテクチャも少し調べてみた

最近、趣味で検索エンジンみたいなの作ってるし、仕事でも大規模データを扱う話が増えてきた。初心者向け分散処理勉強会なんてのも有志で立ち上げて色々勉強中。さて、ちょっと前にClouderaがImpalaなるものを出した。Googleが2010年に発表したDremelという…

会社作る予定

今まで基本的には個人で仕事してたんだけど、法人にすることにした。3月いっぱいは仕事とかで色々忙しいので、4月か5月に登記する予定。最初は知り合いの休眠会社を引き取る予定だったんだけど、色々検討した結果、新規で作ることに。本店は千葉県茂原市(実…

「マイIP」を使って自宅Linuxサーバーに固定IPを割り当て

自宅サーバーに外からアクセスできるようにしたい カフェとかで仕事したいしー。考えた選択肢は以下の2つ。 固定IPを取得 IPv6で接続 以前OCNのIPv6サービスを使っていたけど、安定感とかその他で何となく使いづらかった記憶があったので、今回は固定IPを取…

ウサギィさんに遊びに行った

誘われたいきさつ 見覚えのあるアイコン 仕事上で仲良くさせてもらっている人から「知り合いで面白い会社があるんですけど、今度遊びに行きません?」みたいに誘われた。こういう話は基本的に断らないので二つ返事でOKした。ちなみに会社名を聞いてみると「…

再び自宅サーバー族に

メモリが欲しい 過去何回か、「検索エンジンを作る(予定)」ってエントリーを書いている。詳しくはそっちを見て欲しいけど、Apache NutchとHBaseをベースとした検索エンジンみたいなのを作っている。直近の回でHBaseをスタンドアローンモードから分散モード…

出来ること、あげられるもの、欲しいもの、して欲しいこと

give and take 最近、ココナラとかWishScopeみたいに自分の出来ることを登録して、安価に(あるいは無料で)簡単な仕事を受ける、みたいサービスがちょこちょこあって、自分もたまに使ってるんだけど、こっちのブログにも同じようなことを書いておこうと思っ…

検索エンジンを作る(予定)その4 〜 NutchをHBase分散モードで動かす

過去の記事 第1回: Nutch + HBaseを動かすまで 第2回: Nutchの動作を解説 第3回: HBaseをスタンドアローンから分散モードに移行 NutchがHBaseのクラスターを使うようにする 前回、HBaseを分散モードに移行したので、NutchがそのHBaseのクラスターを使うよう…

検索エンジンを作る(予定)その3 〜 HBaseを分散モードに移行

過去の記事 第1回: Nutch + HBaseを動かすまで 第2回: Nutchの動作を解説 背景・前提 HBaseじゃなくてMySQLを使えば? Nutch + HBaseのクローラーが動作するようになったが、正直1台で動かすならMySQLを使ったほうが色々楽だし、データの抽出も楽。HBaseを使…

第1回初心者向け分散処理勉強会

第1回初心者向け分散処理勉強会は無事終わりました 11人が集まりました。飲み物無料の懇親会も! 2/4(月)に分散処理勉強会を開催しました。当初は内輪2名で話をしていて、その後Twitterで声をかけたところ何人からか返信を頂いたので、まぁ4〜5人でやろう…