殆ど同じと言って良いくらい使い勝手がHerokuと似ているPaaSのDuostackでもLokkaが動くようになりました。

% gem install duostack
% git clone git://github.com/komagata/lokka.git
% lokka
% duostack create foobarbuz
% git push duostack master
% open http://foobarbuz.duostack.net

Duostackでも動くようにしたと言っても実際は2行足しただけだった。

# Gemfile
group :production do	
   gem 'dm-postgres-adapter', '1.1.0'	
+  gem 'dm-mysql-adapter', '1.1.0'	
end
# config.yml
production:
-  dsn: <%= ENV['DATABASE_URL'] %>
+  dsn: <%= ENV['DATABASE_URL'] || ENV['DUOSTACK_DB_MYSQL'] %>
development:
   dsn: sqlite3://<%= root %>/db/development.sqlite3

Commit f62862d491e5b2dce9afde9c82e6e2c7640ac60f to komagata/lokka - GitHub

これはcoolだ。

HerokuではpostgresだけどDuostackではmysqlで動きます。

% git push heroku master
% git push duostack master

こんな感じで同じローカルリポジトリで二つのPaaSを使い分けるという荒業も出来る。両方AWSベースらしいから障害耐性という面では意味無いけど。

datamapper(dm-core) 1.1.0では0.10.0からdeprecatedになっていた明示的なINの利用が出来なくなりました。明示的なINと暗黙的なINって何なのかというと下記の様な違いです。

# implicit
Foo.all(:id.in => [1, 2, 3])

# explicit
Foo.all(:id => [1, 2, 3])

対象がArrayだと自動的にINになるんですね。1.0.2で使ってたけどdeprecatedの表示は出てなかった気がするけどなあ。ヤラレタ。

つい先日、LokkaにもCI環境が整ったのでデグレしないようにテスト駆動バグ修正していくことにしました。

RuntimeError - explicit use of 'in' operator is deprecated - Issues - komagata/lokka - GitHub

$ gem install cmdline-fu
% cmdline-fu matching ssh               
# Copy ssh keys to user@host to enable password-less ssh logins.
$ssh-copy-id user@host

# start a tunnel from some machine's port 80 to your local post 2001
ssh -N -L2001:localhost:80 somemachine

# output your microphone to a remote computer's speaker
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp

# Mount folder/filesystem through SSH
sshfs name@server:/path/to/folder /path/to/mount/point

サイトの方ちゃんと見に行ってみると、「こっちのがいいだろう」とか「それ動かなくね?」とかツッコミが多いので常用するワンライナーを探してる場合はちゃんと見た方がいいかも。

リモートホストにssh public keyを簡単に登録するコマンドssh-copy-id。

$ brew install ssh-copy-id
$ ssh-copy-id komagata@foo.bar.com
$ ssh komagata@foo.bar.com

ヒャッハー

リモートホストに鍵登録するワンライナーをいつも忘れるのでCommand-Line-Fuを検索しにいったら見つけた。homebrewにあるなら使ってもいいかなー。

考えても答えが出ないので書いてみます。

Lokkaにプラグインのインストーラー機構が欲しい。

最近のWordPressとかJenkinsとかって管理画面からプラグイン検索して簡単にインストールできるじゃない?あれいいなーと。でもLokkaはPaaS用がメインだからファイルシステムに書きこむ前提のあの仕組みが使えない。どうしよう?という話。

DBにプラグインを保存する?

PaaS用のソフトは全く別の考え方にして、ローカルからPaaSを操ることを前提だから、ローカルにプラグイン持ってきてからPaaSにアップするみたいな感じにする?

皆さんだったらどうします?

滅多に見ないんですが、HDD残り容量どうなってるのかなと見てみたら・・・

% df -h
Filesystem                     Size   Used  Avail Capacity  Mounted on
/dev/disk0s2                  113Gi   96Gi   17Gi    86%    /

結構ヤバくね?

何が容量食ってるのか分からなかったので可視化ツールのGrandPerspectiveを使ってみた。

/ - 00:52:14

大昔にCDイメージ化したMac OS Xがデカイ。こんなん要らないよ。これ容量少ないMacBook Airとかには便利ですねー。

LokkaのHerokuへのインストールのスクリーンキャストも作ってみました。

@pwimさん監修で英語直した。

[DataMapper] Re: Deprecate Warnings on dm-do-adapter

This deprecation warning is silenced in DataMapper 1.1.1 which will be released within the next few days.

Cheers

DataObjects::URI.new with arguments is deprecated, use a Hash of URI components

dm-do-adapterで出る上記のdeprecatedは次の1.1.1で直るそうです。Lokkaでもログにでちゃうけどしばらくの辛抱かな。

読み上げ(say)+字幕入りのLokkaのインストール方法のスクリーンキャストを作ってみました。

なんかウケる。

vimのplugin管理ツール。pathogenだのなんだのとスルーしてきたけどいい加減効率も悪いので入れてみました。

% git submodule add git://github.com/gmarik/vundle.git .vim/vundle
set nocompatible
filetype off
set rtp+=~/.vim/vundle/
call vundle#rc()

Bundle 'rails.vim'
Bundle 'The-NERD-tree'
Bundle 'quickrun'
Bundle 'vim-ruby/vim-ruby'
Bundle 'Shougo/neocomplcache'

.vimrcにBundle 'foo'と書いておいて:BundleInstallでまるっとインストール。.vim/bundleを.gitignoreに入れておく。

そもそもvim良く分かってないのでゴチャゴチャしてしまって嫌だなあと思っていた俺の.vimディレクトリ以下がスッキリ!.vimrcとvundlerプラグインだけになった!

改めて自分の.vimrcを見て、本当に使ってるモノだけにしてみたらビックリするほどvimを活かしてないことが判明しました。ネオコンは"これからやる気だす"という意気込みの現れで、現在はまったく活用できておりません・・・。

参照:pathogen+git submodule から Vundle に乗り換える - Yarukidenized:ヤルキデナイズド