query: tag:memo

jQueryで append すると、追加したDOM中のscript タグが実行されます。

js>>
$('#target').append(what);
<<--

script タグを実行せずに append したい場合、あらかじめ
script タグを取り除いておけば ok

js>>
what.find('script').remove();
$('#target').append(what);
<<--

posted by genki genki on Sun 6 Jul 2014 at 18:05 with 0 comments

/etc/sysctl.d/以下の設定を反映させるには、

pre>>

sysctl -p

<<--

で良いみたいですが、ubuntu (13.04) 環境ではうまく反映されなかったので、

pre>>

sysctl -p /etc/sysctl.d/60-foobar

<<--

のように直接 path を指定する必用があるようです。

posted by genki genki on Thu 7 Nov 2013 at 20:42 with 0 comments

仮説:

記銘の衝撃が感動として知覚される

そもそも感動したことって記憶に残りやすいよね、というところに着想を得て、いやそもそも因果関係が逆で、脳に記憶される事そのものが感動の源泉なのではないかと考えてみたのですが、なんだかそんな気がしてます。

posted by genki genki on Wed 11 Apr 2012 at 11:07 with 0 comments

カスタムViewGroupを作成した場合に、onDrawで独自の描画処理を行いたい場合、
以下のフラグを立てる必要があります。

java>>
setWillNotDraw(false);
<<--

posted by genki genki on Thu 2 Feb 2012 at 14:08 with 0 comments

UI特許取得を避けるために書いておきます。

クリック/タップでボタンを外した場合に、もう一挑戦してまた外れた場合、タップ地点の近くにあるボタンなどのUI要素をクリック/タップしたことにすると便利だと思います。

3回失敗、4回失敗するごとに、徐々に探索半径を広げていっても良いかもしれません。

posted by genki genki on Thu 22 Dec 2011 at 16:24 with 0 comments

deprecatedになっているNSString.stringWithCString:length:を使っている古いコードがあり、新しい記述に書き換えようとしたのですが、documentによると length 指定ができない NSString.stringWithCString:encoding:
を使えという指示しかないようです。

等価なコードで置き換えるとしたらこんな感じかな?

objective-c>>
//[NSString stringWithCString:bytes length:length];
[[[NSString alloc] initWithData:
[NSData dataWithBytes:bytes length:length]
encoding:NSUTF8StringEncoding] autorelease];
<<--

ARC使用でしたら autorelease は不要ですね。

posted by genki genki on Wed 21 Dec 2011 at 00:10 with 0 comments

production環境などでログ自体を無効化するには
config/environments/production.rb あたりで

ruby>>
RAILS_DEFAULT_LOGGER = Logger.new("/dev/null")
<<--

すればok.

posted by genki genki on Sun 18 Dec 2011 at 08:43 with 0 comments

SCSSよりSASSが好きです。
時々SCSSのことをSASSと呼んでるものがあって紛らわしいですね。

Rails 3.1では config/application.rb

ruby>>
config.sass.preferred_syntax = :sass
<<--

と記述すれば SASS をデフォルトで使ってくれるようです。

Let's prefer the SASS :)

posted by genki genki on Sun 11 Dec 2011 at 04:59 with 0 comments

IKImageBrowserViewは画像のリストを表示する場合に非常に重宝します。

現時点ではIBから背景色を設定することができないのですが、以下のようにすると背景色を設定できます。

objective-c>>
[imageBrowserView
setValue:[NSColor clearColor]
forKey:IKImageBrowserBackgroundColorKey];
<<--

posted by genki genki on Fri 9 Dec 2011 at 16:55 with 0 comments

brew upgrade groonga しようとしたら、以下のようなエラーが出てきました。

pre>>
Error: undefined method `include?' for nil:NilClass
<<--

これはbrewのバージョンが古いのが原因らしい。

pre>>
cd brew --prefix/Library/Contributions/examples
git clean -n
rm brew-upgrade.rb
<<--

して再挑戦したら上手く動きました。

posted by genki genki on Sun 4 Dec 2011 at 02:22 with 0 comments

新しい環境に移行すべく、ruby-1.9.3, rails-3.1.3 で作ったwebアプリをherokuにデプロイしてみたりしています。
いくつか注意点があったのでメモ。

application.css isn't precompiled

手元の環境で動いていても、いざデプロイすると以下のようなエラーが出ることがあります。

pre>>
ActionView::Template::Error (application.css isn't precompiled):
<<--

事前に bundle exec rake assets:precompile してから生成物をgitに含めてデプロイすればいいのですが、自動的に生成して欲しい場合には、
config/environments/production.rb

ruby>>
config.assets.compile = true
<<--

を指定します。これで勝手に生成してくれます。

Could not find a JavaScript runtime

これもassetsの生成に関する問題なのですが、jsファイルを生成するにあたって、jsのランタイム環境が必要になります。
これもherokuの環境でやるためには、Gemfile に以下を追加します。

ruby>>
group :production do
gem 'therubyracer-heroku'
end
<<--

これでok

posted by genki genki on Thu 1 Dec 2011 at 04:07 with 2 comments

rvmを使ってcapistranoでアプリケーションごとに異なるrubyのバージョンを利用するには、Capfileの先頭に以下のような記述をすればok

ruby>>
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
set :rvm_ruby_string, '1.9.3'
set :rvm_type, :user
<<--

ついでに ROOT に .rvmrc を追加して中身に

pre>>
rvm 1.9.3
<<--

のようにしておけば cd したときにrubyのバージョンが切り替わって便利です。

posted by genki genki on Sun 20 Nov 2011 at 21:38 with 0 comments

結構需要がありそうな割に、決定版的なツールがなんなのかわからなかったのですが、とりあえずこれを使えば目的を果たせます。

使い方:

pre>>
% gem install magic-commenter
% cd /path/to/root/of/ruby/files
% magic-commenter
<<--

あとは自動的にmultibyteキャラクタを含んでいる rbファイルを見つけて
マジックコメントを挿入してくれます。

posted by genki genki on Sun 20 Nov 2011 at 16:56 with 0 comments

NetGenesis SuperOPT-GFiveを使っているのですが、特定のPCを接続するとIPマスカレードのセッションテーブルがいっぱいになるという問題が発生しており、原因を調べておりました。

という記事があり、webalizerが原因か、と疑ってみましたが、そのPCにはwebalizerは入ってません。
topでプロセスの動きを眺めていると、haproxyが変な動きをしていたのでこれをpurgeしてみると、どうやらビンゴのようでした。
ということで、特に使ってなかったのでhaproxy を削除してsession table full問題は解決。

posted by genki genki on Sat 19 Nov 2011 at 14:48 with 0 comments

バックグラウンドジョブの一覧は

pre>>
% jobs
<<--

で得ることができますが、そのままではPIDがわかりません。

pre>>
% jobs -p
<<--

とやると PID を含めた結果が得られます。

posted by genki genki on Wed 26 Oct 2011 at 02:40 with 0 comments

前回(uninitialized constant MysqlCompat::MysqlResの対処法参照)はSnow Leopard でしたが、
今回はLionです。
OSのバージョンが変わるたびに問題が起こる気がします。
今回は、以下で回避できるようです。

pre>>
% install_name_tool -change libmysqlclient.18.dylib /usr/local/mysql/lib/libmysqlclient.18.dylib /path/to/rubygems/gems/mysql-2.8.1/lib/mysql_api.bundle
<<--

See Also

posted by genki genki on Wed 31 Aug 2011 at 03:46 with 0 comments

ブラウザのタブを閉じるときは基本的に中ボタンクリックなので、閉じるボタンの存在は無駄なだけでなく、うっかり押してしまって必要なタブを閉じてしまうこともあって邪魔でした。

そんな場合には、about:config で以下のように値を設定すると、閉じるボタンを非表示にすることができます。

pre>>
browser.tabs.closeButtons = 2
<<--

posted by genki genki on Fri 19 Aug 2011 at 09:21 with 0 comments

普段はPostgresqlのサイトで配布されているMac用のインストーラを使っているのですが、どうやらLionはまだサポートされていないようです。

ということで、homebrewを使ってインストールすることにしました。

Homebrewをインストール

以下を実行すればok

pre>>
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
<<--

あとは

pre>>
brew install postgresql
<<--

でインストールし、以下でdbを初期化します。

pre>>
initdb /usr/local/var/postgres
<<--

最後に、自動起動の設定を行います。

pre>>
cp /usr/local/Cellar/postgresql/9.0.4/org.postgresql.postgres.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/org.postgresql.postgres.plist
<<--

brewでインストールした場合、postgresユーザは作成されないようです。
$USERがスーパユーザとして作成されます。

posted by genki genki on Thu 18 Aug 2011 at 17:56 with 0 comments

開発環境でしか使っていないので我慢してきたのですが、
どうも MacOS 10.6.8 における Socket.getaddrinfo の挙動が不安定なようです。
以下のように、タイミングによって動作したりしなかったりします。

pre>>
ruby-1.8.7-p302 :012 > Socket.getaddrinfo("localhost", nil)
SocketError: getaddrinfo: nodename nor servname provided, or not known
from (irb):12:in `getaddrinfo'
from (irb):12
ruby-1.8.7-p302 :013 > Socket.getaddrinfo("localhost", nil)
=> [["AF_INET", 0, "en.localhost", "127.0.0.1", 2, 2, 17], ["AF_INET", 0, "en.localhost", "127.0.0.1", 2, 1, 6], ["AF_INET6", 0, "localhost", "::1", 30, 2, 17], ["AF_INET6", 0, "localhost", "::1", 30, 1, 6]]
<<--

MacOS環境でのSocket.getaddrinfoは鬼門なようで、
これまでにも様々な問題が報告されているようですね。

今回は全く同じ条件下で挙動が変わるというものなので、なかなか手ごわい感じです。

posted by genki genki on Sun 7 Aug 2011 at 14:17 with 0 comments

Rubyを使い初めてから結構たちますが、まだ新しい発見というのはあるものですね。

class_evalでブロックを渡す時に、引数も渡したいと思っていたのですが、
class_execはちょうどその目的に使えるようです。

ruby>>
FOO = lambda{|bar| puts bar}

class Foo
class_exec("Foo", &FOO)
end #=> Foo
<<--

posted by genki genki on Sat 6 Aug 2011 at 19:23 with 0 comments

いくつか前のOSアップデートのころから

pre>>
% ping localhost
ping: cannot resolve localhost: Unknown host
<<--

という状態になっていたて原因が分からず放置していましたが、
/etc/hosts の中に IPv6用の設定があるのが原因のようです。

pre>>
::1 localhost
<<--

これをコメントアウトすると正常な動作に戻りました。

posted by genki genki on Sun 31 Jul 2011 at 18:12 with 0 comments

Rubyのリファレンスを参照するときは、いつもGoogleで検索していたのですが、なぜか検索結果からのリンクがリンク切れに。
昔のリファレンスは

にあったのですが、以下のように新しいURLに移動したようです。

旧版は以下に移動した模様。

検索インデックスが新しくなるようにGoogle botに頑張って欲しいです。

See Also

posted by genki genki on Thu 21 Jul 2011 at 13:25 with 0 comments

bundlerを使ってnative extensionを含むGemをインストールする場合に、
オプションの指定が必要な場合は ~/.bundle/config などを使いますが、
例えば Mac 環境で do_postgres をbundle installするには、以下のように
設定します。

pre>>
BUNDLE_BUILD__DO_POSTGRES:
--with-opt-dir=/Library/PostgreSQL/9.0
--with-opt-include=/Library/PostgreSQL/9.0/include/postgresql/server
<<--

posted by genki genki on Wed 20 Jul 2011 at 19:07 with 0 comments

古いバージョン(1.2.6)ではこの問題は起こらなかったのですが、
ubuntu-11.04の1.4.5では、しばらく使っていると/tmp/tmp.XXXXX
というディレクトリが大量に残るという問題があるようです。
調べてみたのですが、あまり似たような報告がなかったので、
特定の条件が揃った場合だけ発生する問題なのかもしれません。

とりあえず、以下のような力技で対処。

cleanup_munin_tmp

ruby>>
#!/usr/bin/env ruby
require "etc"

Dir['/tmp/tmp.*'].each do |path|
uid = Etc.getpwuid(File.stat(path).uid).name
gid = Etc.getgrgid(File.stat(path).gid).name
next if uid != 'nobody'
next if gid != 'munin'
system "rmdir --ignore-fail-on-non-empty #{path}"
end
<<--

これをcronで@hourlyに実行してます。

追記

シェルスクリプト版も用意してみました。

sh>>
#!/bin/sh

for d in /tmp/tmp.*
do
if [ stat -c %U $d = "nobody" ]
then
if [ stat -c %G $d = "munin" ]
then
rmdir --ignore-fail-on-non-empty $d
fi
fi
done
<<--

posted by genki genki on Thu 7 Jul 2011 at 21:01 with 0 comments

ActiveRecordを読み込んだ状態でirbを使っているときに、TAB補完をしようとすると落ちることが結構な頻度でありました。
原因を調べてみると、補完候補のArrayをsort使用としているところで、Symbolに対して <=> 演算子を呼びだそうとしてエラーが発生しているようです。
補完候補は Object#instance_methods から得ているようなので、なぜSymbolが要素として混入するのかが謎だったのですが、どうやら
Arel::Attribute::Predications クラスが犯人のようです。

ruby>>
PREDICATES = [
:eq, :eq_any, :eq_all, :not_eq, :not_eq_any, :not_eq_all, :lt, :lt_any,
:lt_all, :lteq, :lteq_any, :lteq_all, :gt, :gt_any, :gt_all, :gteq,
:gteq_any, :gteq_all, :matches, :matches_any, :matches_all, :not_matches,
:not_matches_any, :not_matches_all, :in, :in_any, :in_all, :not_in,
:not_in_any, :not_in_all
]

Predications = Class.new do
def self.instance_methods *args
warn "this module is deprecated, please use the PREDICATES constant"
PREDICATES
end
end
<<--

このコードを書いた人は instance_methodsはStringの配列を返すという事を失念していたようですね。
irb/completeはObjectSpaceから補完候補を拾ってくるので、上述のコードがあるせいでSymbolが補完候補配列に混入してしまいます。

回避策としては、irb起動時に以下のようなコードを読み込むなどがあります。

ruby>>
module Arel
class Attribute
class Predications
def self.instance_methods
require 'arel/algebra/attributes/attribute'
Arel::Attribute::PREDICATES.map(&:to_s)
end
end
end
end
<<--

追記

この問題は 1.8.x系のRubyでのみ発生するようです。
thanks
@a_matsuda!

posted by genki genki on Thu 7 Jul 2011 at 12:31 with 0 comments

isoファイルを直接mountするには、以下のようなコマンドを実行すれば良いようです。

pre>>
mkdir -p /media/cdrom
mount -t iso9660 -o loop /path/to/file.iso /media/cdrom
<<--

posted by genki genki on Thu 7 Jul 2011 at 06:21 with 0 comments
5th Tue

Slim雑感

Sinatra 1.2からサポートされたSlimについての調査メモ。

  • http://slim-lang.com
  • 基本的にHamlの亜種的な立ち位置でもっとシンプル。
  • 拡張子は.slim
  • a href=foo のようにquoteされてない場合は右辺値がrubyコードとして評価されるのがcool。
  • = はデフォルトでHTML escapeされる。escapeしない場合は ==
    • inline形式では #{{hoge}} でエスケープしない。
  • #my_id.my_class はhamlと一緒。tag省略はdivも一緒。
  • 行末 \\ や行頭|で複数行など、複数行のサポートが充実
  • filterは coffee: のように:を後置。hamlとは逆
posted by genki genki on Tue 5 Jul 2011 at 00:02 with 0 comments

iotopというコマンドを使うと、プロセスごとのIO使用状況が top コマンドのような感じに把握でき、システムのボトルネックの分析に使えます。

ubuntuの場合は

pre>>
apt-get install iotop
<<--

で導入できます。

iftop とあわせて Have a nice admin life!

posted by genki genki on Tue 28 Jun 2011 at 16:19 with 0 comments

普段サーバの監視にmonitを使っていますが、ubuntu nattyの環境に入れようとしたところ、monitが起動しないという問題に遭遇しました。

理由を調べてもなかなか分からなかったのですが、どうやらパッケージインストール時に最初にある設定ファイルのままhttpdの設定を行うと起動しないようです。

sh>>
set httpd port 2812
use address localhost # <- これがあると起動しない
allow localhost
<<--

posted by genki genki on Tue 28 Jun 2011 at 00:13 with 0 comments

ubuntuでパッケージのインストールを行ったとたん、
掲題のエラーメッセージが出るようになりました。
なかなか原因が分からなかったのですが、一つの原因として、

  • 削除されたディレクトリの中で何かしらコマンドを実行すると発生する

ようです。存在するディレクトリにcdしてからもう一度確認すると、何事もなかったように元の状態に戻りました。
レアな問題のようですね。

posted by genki genki on Tue 21 Jun 2011 at 21:07 with 0 comments

ActiveRecordを使っている場合、
YamlDb
を使うと比較的簡単にデータの移行ができるようです。
script/consoleあたりから、

ruby>>
YamlDb.dump "/path/to/data.yml" # dump
YamlDb.load "/path/to/data.yml" # load
<<--

という感じに使えます。structureは作ってくれないので、migrationなどであらかじめ用意しておきます。

posted by genki genki on Mon 20 Jun 2011 at 16:04 with 0 comments

route53 は、名前のとおり
AmazonのRoute 53 を使うためのCLIユーティリティです。
これを使えば面倒な設定が簡単になります。

例) CNAMEレコードの中身を変更する

sh>>
route53 --zone xxx.xxx. -g --name "*.xxx.xxx." --type CNAME --values xxx-xxx.ap-xxx-1.elb.amazonaws.com.
<<--

今までスルーしてましたが、Route53を使えば
ELBでZone Apexが使えるようになったので非常に面白いです。

posted by genki genki on Sun 19 Jun 2011 at 23:03 with 0 comments

buildが必用なgemをbundlerで管理するときに、
buildオプションを指定したい場合があります。
そのような場合には、

pre>>
bundle config build.pg --with-pg-dir=/Library/PostgreSQL/9.0
<<--

のようにgemごとにbuildオプションを設定することが出来ます。
この設定は ~/.bundle/config に以下のように保存されます。

yaml>>

BUNDLE_BUILD__PG: --with-opt-dir=/Library/PostgreSQL/9.0
<<--

posted by genki genki on Mon 13 Jun 2011 at 16:46 with 0 comments

my.cnfの中で、clientとserver両方max_allowed_packet を適当に大きな数値に指定する。

pre>>
max_allowed_packet = 16M
<<--

config/database.yml でコネクション切断時に再接続する設定をする。

yaml>>
production:
reconnect: true
<<--

これで多分大丈夫。

posted by genki genki on Sat 11 Jun 2011 at 10:01 with 0 comments

Rails-2.3.11用のExceptionNotificationプラグインは以下にあるようです (via
@a_matsuda

基本的にはこれを script/plugin install -r 2-3-stable
すれば良いのですが、ConsiderLocalの実装にバグがあるので
直す必要があります。

具体的には、以下のファイルの self.included の場所をConsiderLocalモジュールの直下に移動します。

あとはREADME通りに設定して、ConsiderLocalをApplicationControllerからincludeすればok

posted by genki genki on Sat 11 Jun 2011 at 06:46 with 0 comments

GitリポジトリのRailsプラグインをインストールするときに、
標準では master ブランチがインストールされますが、
特定のブランチの内容をインストールしたい場合には、以下のように -r オプションを使用します。

sh>>
script/plugin install --force https://github.com/rails/exception_notification.git -r 2-3-stable
<<--

上記の例では 2-3-stable ブランチをインストールします。

posted by genki genki on Sat 11 Jun 2011 at 05:18 with 0 comments

ちょっと調べ物。オープンソースのアドサーバー

OpenX Ad Server

ASB MyAds

posted by genki genki on Fri 10 Jun 2011 at 22:00 with 0 comments

結構長いことredmineを使ってるのですが、wikiのサイドバーを作れることに最近気が付きました。

作り方は単純で Sidebar という名前のページを作ればok.
サイドバーに入れる場合、見出しは h3 が良さそうです。

posted by genki genki on Fri 3 Jun 2011 at 04:54 with 0 comments

spec_helper.rbの中でRSpec.configure を呼び出している場合、
以下のような警告が出てくることがあります。

pre>>


DEPRECATION WARNING: you are using deprecated
behaviour that will be removed from RSpec 3.

You have set some configuration options after an
example group has already been defined. In RSpec 3,
this will not be allowed. All configuration should
happen before the first example group is defined.
The configuration is happening at:

/path/to/app/spec/spec_helper.rb:50


<<--

これは spec_helper.rb が何度も呼び出されてしまうことで、
configureブロックが2回以上呼び出されてしまうために起こる問題です。

そもそも Ruby の require は一度しかファイルを読み込まないように
なっていますが、読み込んだかどうか判定する基準となるのが
読み込み対象のファイルの絶対パスではなく、require に渡された引数であるため、同じファイルをrequireしてもパスの指定の仕方によって何度も読み込まれてしまうのです。

そこで、以下のように spec_helper.rb の先頭に記述することで、
二度読みを回避して警告されないようにすることができます。

ruby>>
$LOADED_FEATURES.push File.expand_path(FILE)
def require(path)
path = File.expand_path(path) if path =~ %r{^[./]}
super path
end
<<--

require を上書きして引数が "." か "/" で始まっている場合に expand_path を呼び出して正規化しています。
自分自身が呼び出される時のrequireは上書きできないので、
$LOADED_FEATURESに自分自身の絶対パスを追加しておきます。
require は $LOADED_FEATURESにpathが存在するする場合はスクリプトを読み込まなくなります。

posted by genki genki on Mon 30 May 2011 at 13:00 with 0 comments

rake gems:unpack GEM=foo などでvender/gems 以下にunpackしたgemとbundlerを併用したい場合があります。
最近では、locale_rails-2.0.5にパッチをあてたものを利用したい局面でそうなりました。

こんな場合には、Gemfile にて

ruby>>
gem 'locale_rails', '=2.0.5', :path => 'vendor/gems/locale_rails-2.0.5'
<<--

というように記述しておけば、unpack したgemを使ってくれます。
第二引数のversionは必須っぽいのでご注意。

posted by genki genki on Sun 29 May 2011 at 07:25 with 0 comments

request.host などがちゃんとリモートホストのドメイン名を指すように、
以下のように設定します。

pre>>
location / {

..snip..

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

..snip..

}
<<--

ちょっと設定を忘れていてRSS中のGUIDがlocalhsotを指すという問題が発生しておりました。現在は復旧しております。
ご不便をおかけいたしましたことをお詫びいたします。

posted by genki genki on Wed 25 May 2011 at 23:07 with 0 comments

rackupしようとすると、1.3.0と1.1.0でコンフリクトして無理、というお馴染みのメッセージが出ていて困ったのですが、bundlerを使っている場合、

pre>>
% bundle exec rackup
<<--

すればOKなようだ。

posted by genki genki on Wed 25 May 2011 at 09:21 with 0 comments

古いRailsアプリをBundler仕様にする場合、

ruby>>
config.gem "foo",
:version => "0.0.1",
:lib => "bar",
:source => "http://gems.github.com"
<<--

と等価なGemfileの記述方法は

ruby>>
source "http://gems.github.com"
gem "foo", "0.0.1", :require => "bar"
<<--

で良いようです。バージョン指定をしない場合は第二引数を省略可。

posted by genki genki on Wed 25 May 2011 at 08:26 with 0 comments

CDH3に同梱されているgen-rbファイル群は若干古いらしく、上手く動かないのでif/hadoopfs.thrift を使って手動で生成します。

pre>>
% thrift --gen rb /path/to/if/hadoopfs.thrift
<<--

これで gen-rb/ ディレクトリの中にRuby用インターフェイスが生成されます。

posted by genki genki on Sun 8 May 2011 at 10:45 with 1 comment

最初にhadoopを入れておく。

続いてhbase-0.90.2をダウンロード。

/usr/local/hbase あたりに展開し、/usr/local/hbase/bin にPATHを通す。

rootディレクトリの設定

conf/hbase-site.xmlを開いて <configuration>の中に以下を記述。

xml>>

hbase.rootdir
hdfs://127.0.0.1/hbase


hbase.cluster.distributed
true


hbase.zookeeper.quorum
127.0.0.1


hbase.zookeeper.property.clientPort
2222

<<--

後は

sh>>
% start-hbase.sh
<<--

すると起動する。jps コマンドを実行すると以下のような感じになる。

sh>>
% jps
21245 DataNode
15141 JobTracker
21615 HRegionServer
21330 SecondaryNameNode
22236 Jps
21152 NameNode
15224 TaskTracker
22068 HQuorumPeer
<<--

posted by genki genki on Sat 7 May 2011 at 15:10 with 0 comments

まずはhadoop-0.21.0をダウンロード

hadoop-envの設定

$HADOOP_HOME/conf/hadoop-env.sh を開いて JAVA_HOME
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Homeあたりに設定。

$HADOOP_HOME/binにPATHを通して

pre>>
% start-dfs.sh
% start-mapred.sh
<<--

でHadoopを起動。0.21.0ではstart-all.shはdeprecatedらしい。

停止は

pre>>
% stop-mapred.sh
% stop-dfs.sh
<<--

注意点として、ssh で localhost にログインできるようにしておく。

"システム環境設定" -> "共有" から、"リモートログイン"にチェックでok

初期化・設定

$HADOOP_HOME/conf/hdfs-site.xmlに以下のような感じで記入

xml>>


fs.default.name
hdfs://127.0.0.1


dfs.replication
2


<<--

hdfsを初期化。

pre>>
hdfs namenode -format
<<--

mapredの設定

$HADOOP_HOME/conf/mapred-site.xml<configuration>の中に以下を記入。

xml>>

mapred.job.tracker
localhost:54311

<<--

あとは起動して http://localhost:50070 あたりを見ると状態を確認できます。

posted by genki genki on Sat 7 May 2011 at 10:17 with 1 comment

Mac OS環境ではRiakをbrew install riak でインストール出来ますが、
Xcode4が入っている環境ではコンパイルエラーが発生して上手くいかないようです。どうやらllvm-gccが使われてるのが原因らしい。

以下のように--use-gccで強制的にgccを使うようにすれば良さそうです。

pre>>

brew -v install --use-gcc riak

<<--

posted by genki genki on Fri 6 May 2011 at 05:56 with 0 comments

ubuntuのバージョンを調べるには

pre>>
% lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 10.10
Release: 10.10
Codename: maverick
<<--

とやれば良いらしい。

posted by genki genki on Fri 6 May 2011 at 04:32 with 0 comments
posted by genki genki on Fri 6 May 2011 at 02:54 with 0 comments

SassをSinatraで使うときに、グローバルオプションとして
テンプレートファイルの場所を指定する場合、

ruby>>
set :sass, :load_paths => '/path/to/templates'
<<--

という感じに指定すると思っていたのですが、いつの間にか

ruby>>
set :sass, :views => '/path/to/templates'
<<--

と指定しないと認識しないようになっていた。

SinatraがテンプレートエンジンとしてTileを採用あたりから変わったのかもしれない。

posted by genki genki on Sun 17 Apr 2011 at 19:00 with 0 comments