職場の人から「Vim で全角空白を入力した場合に、自動的に半角空白に置き換えたい」という話を聞いて、確かに便利そうだと思って調べてみました。 通常であれば inoremap とか使えば良さそうなんですが、どうやら全角空白には効かない模様。 " 普通の全角記…
一時期 Redis の特徴として良く挙げられていたものに、搭載している物理メモリ量以上のデータを扱える Virtual Memory という機能がありました。仮想メモリ技術仕様 ― redis 2.0.3 documentation http://redis.shibu.jp/hacker/virtualmemory.html個人的には…
Munin で Redis のリソースをモニタリングするためのプラグインをいくつか試してみたんですが、個人的には以下のものが気に入りました。bpineau/redis-munin · GitHub https://github.com/bpineau/redis-munin気に入った理由としては シェルスクリプト製なの…
Apache の ab コマンド(Apache Bench) ってリクエストヘッダ指定できたんですね。 これで Host ヘッダ送ってやると、DNS や /etc/hosts を設定してなくても VirtualHost に対して負荷テストをかけることができます。 $ ab -H 'Host: akishin.example.com' -n…
redis-rb では Sharding のアルゴリズムとしてコンシステント・ハッシュ法が使われています。 コンシステント・ハッシュ法でサーバごとのキーの偏りを減らす為の仮想ノードという仕組みがあるのですが、redis-rb を使う場合に仮想ノードの数をどうやって指定…
Apache でいうところの「graceful restart」的な機能が Redis には無いのかを調べてみたのですが、どうやらそういった機能そのものは無いようでした。 では Redis の場合はサービスを無停止でバージョンアップなどを行い、プロセスを再起動するにはどうした…
Redis の Sharding は現状クライアントサイド、つまりライブラリ依存で実現されています。 ここでは Ruby と Java のライブラリで実際に Sharding を試してみました。 redis-rb redis/redis-rb · GitHub https://github.com/redis/redis-rbRuby から Redis …
ちょっと使う必要があったので、Redis の最新版の RPM を作成してみました。環境は CentOS 6.3 です。まずは RPM の作成に必要な rpmbuild、rpmdevtools をインストールします。 # yum install -y rpm-build rpmdevtools 次に RPM 作成用のユーザを作成して …
タイトル通りですが、ちょっと古いコードの検証環境が欲しかったので、開発環境として使用している Ubuntu に rbenv で Ruby の 1.8.6 系をインストールしようとしたところ、予想外にハマって時間を取られたのでまとめておきます。環境は Ubuntu 12.10(32bit…
elasticsearch だと簡単に clustering が出来るということなので、実際に試してみました。 環境は CentOS 6.3、elasticsearch 0.20.5 です。まずはダウンロードして展開します。 # wget https://download.elasticsearch.org/elasticsearch/elasticsearch/ela…
前回インストールした elasticsearch で日本語形態素解析器 Kuromoji を使ってみます。 環境は CentOS 6.3、elasticsearch 0.20.5 です。elasticsearch はプラグインで機能を拡張できるようです。 利用可能なプラグインは公式サイトの以下のページにまとめら…
elasticsearch は Apache Solr と同じく Apache Lucene を使用した全文検索エンジンです。 REST ベースの API を備え、curl コマンドだけで操作できるなどの使いやすさが特徴とのことです。 詳しくは こちら や こちら の資料を読んでみてください。今回は C…
tmux + tmuxinator + rbenv の環境で rbenv local を設定しても指定した Ruby が使われない、という現象が発生。 調べてみると環境変数 RBENV_VERSION が設定されているため、rbenv がそちらを見てしまう事が原因のようでした。しかし RBENV_VERSION を設定…
Ruby 2.0.0-p0 がリリースされましたね。 ということで、早速インストールして Passenger で Rails の簡単なサンプルアプリを動かすところまでやってみました。環境は CentOS 6.3 x86_64 です。 準備 まずは必要なパッケージをインストールします。 README …
このところ CheckInstall の挙動についていろいろと調べていました。 検証に際して使用していた 64bit 版 CentOS での導入方法を整理しておきます。確認した環境は CentOS 5.9 x86_64 ですが、CentOS 6 系でもほぼ同じ方法でいけると思います。また、事前に …
今更といえば今更なのですが、Rails 2.x で作ったアプリケーションを Rails 3.2 に移行しました。ただ、該当アプリケーションでは認証プラグインとして restful-authentication を採用していたため、そのままでは 3.2 で動かす事はできません。 単純に Devis…
Linux サーバでの「Too many open files」エラー対策について調べたのでまとめてみました。 確認した OS は CentOS 5.9 と CentOS 6.3 です。「Too many open files」は Linux でプロセスが開けるファイルディスクリプタの上限に達してしまうと発生するエラ…
作業ミスの予防として手元の開発環境から本番環境の MySQL への接続を禁止したくなったのですが、他で使っていたりするのでサーバ側でポートを閉じたりは出来そうにありません。ということで、取りあえずクライアント側で iptables を使って本番サーバの特定…
このところ「インストールしてみた」的な事ばかり書いていて、あまり深く突っ込んでない感じがなんだか情けないと自分でも思いますが、懲りずに今回もインストールしてみた系です。今回は こちら の記事で紹介されていた、Rails 製のオープンソースの Gist …
MySQLのインストール方法が進化していた! - sakaikの日々雑感〜(T)編 http://d.hatena.ne.jp/sakaik/20130205/mysql5_6_installこちらの記事を読んだら使ってみたくなったので、 MySQL 5.6 を CentOS 6.3(x86_64) にインストールしてみました。 手順もほぼ…
オープンソースの Rails製 Pivotal Tracker クローン「Fulcrum」をインストールしてみました。 インストールした環境は以下です。 CentOS 6.3 64bit Ruby 1.9.3p327 MySQL 5.1.66 fulcrum のセットアップ まずは必要なライブラリをインストール。 # yum inst…
CentOS を 5.9 へアップグレードしたので、ついでに Apache も 2.2 系最新バージョンである 2.2.23 にアップデートした際のメモです。最初は自前で RPM を作成しようと思っていたのですが、いざ始めてみると libuuid-devel 辺りの依存関係の解決が結構面倒く…
Rails 本体の開発環境(Ubuntu)をコマンド一発で作成できる rails-dev-box を使ってみました。rails/rails-dev-box GitHub https://github.com/rails/rails-dev-boxRails 本体用開発環境のようですが、普通に Rails アプリケーションの開発にも便利に使えそう…
自宅の LAN 内に GitLab サーバを立てたので、古い git リポジトリとかを移行しました。 またそのうちやるかも知れないので備忘録としてメモしておきます。 移行先リポジトリの作成 まずは GitLab 上に移行先となるリポジトリを作成しておきます。 リモート…
自宅サーバの CentOS 5.3 を 5.9 へアップグレードした際のメモです。 CentOS 5.9 はまだ QA テスト中との事ですが、サーバといっても Subversion と Git のリポジトリを置いてあるくらいなので気軽に試してみました。5.7 あたりから ReleaseNotes にアップ…
今日 1.8 系を触っていて、うっかり 1.9 との $LOAD_PATH の仕様の違いで小一時間ハマってしまいました。 1.8 系では $LOAD_PATH に自動でカレントディレクトリが含まれているんでしたね・・・。具体的には以下のようなライブラリの検証コードをいくつか書い…
最近知った Ruby のヒアドキュメントのあまり見かけない(?)機能をいくつか備忘録としてまとめてみました。 メソッドの引数に渡せる 以下のようにしてヒアドキュメントをメソッドの引数にそのまま渡せます。 def here_method(arg1, arg2, arg3) puts arg1 …
Tritonn の後継で MySQL 5.1 以降で日本語全文検索を可能にする mroonga を Ubuntu 12.10 にインストールした際のメモです。 MySQL 5.5 のインストール まずは MySQL 本体をインストールします。 ここでは apt から以下をインストールしました。 % sudo apt-…
最近ローカルの開発環境を Ubuntu 12.10 に上げていろいろ弄っていたのですが、遅ればせながらやっと導入してみた tmux + tmuxinator がかなり便利だったのでご紹介。tmux は GNU screen などと同様のターミナルマルチプレクサと呼ばれるソフトウェアです。 …
環境構築の度に毎回 rbenv を入れるのが面倒だったので、簡単なインストールスクリプトを書いてみました。 こんな感じで実行すると ~/.rbenv ディレクトリ以下に rbenv + ruby-build + rbenv-gemset がインストールされます。 % wget https://raw.github.com…