2011/12/04

Windows7 on "VirtualBox on Linux"

VirtualBox を暫く前から使っている。kvm との区別は? という気もするが、デスクトップから仮想マシンを操作したい場合はVirtualBox という感じ。サーバに載せる仮想マシンは専ら kvm である。

以前は Linux から仮想マシン経由で Windows を動かそうとしたら VMWare 一択しかなくてそれなりにお布施をした記憶がある。よい時代になったものである。

あ、そういえば フルスクリーンから抜けるのはデフォルトで 右Ctrl + F なので忘れないように > 自分

2011/12/01

ini file parser for Java

http://ini4j.sourceforge.net/

Java で ini ファイル が使われることはあまりないようだ。

勿論 標準で java.util.Properties というクラスがあり、Key と Value で設定を扱えるだけで十分という話はある。けれども、設定をグループ化するには、設定項目に名前空間を付与する等工夫が必要だ。もっと複雑な構造にしたければXMLで、、という話になるかもしれない。

 ini ファイルは「セクション」があることで設定をグループ化することができる。(Zend_Config_Ini  の如く設定の継承とかあればかなり便利だと思うが)これだけの違いのためにiniファイルのパーサを書くのはちょっと、、と思ったときに ini4j を見つけた。

基本的に設定ファイルをロードした後は、IniPreferences 経由で自由にセクションと Key, Value を扱える。

all_ini_entries = new Ini(new File(fileName));
ini_prefs = new IniPreferences(all_ini_entries);

最低限の機能を class として書き下すと以下のようになる。単純なパースや書き込み以外にも様々な機能が揃っているので、チュートリアルも是非見ると良いと思います。

2011/11/25

monologue

All decisions are easier when you're clear where you're headed.

進むべき道が定まってさえいれば、決断はいつもたやすい。 (Being Geek 第1章より)

・・・「四十にして惑わず」といけるだろうか。

memo: pukiwiki spam alert

http://d.hatena.ne.jp/kinneko/20061102/p1

pukiwiki で書き込みしてると

「Alert: plugin "XXX" was called over 768 times. SPAM or someting?」

とか出る場合がある。書込する当該ページでプラグインが呼ばれすぎているのが原因なので、その場合は原因となる "XXX" プラグインの部分を削除してから書きこむようにするか、上記の kinneko さんのリンクを参考にして強制的にページを削除してから、"XXX" プラグインを除いた形でページを最作成すると良い。

2011/11/23

Ideapad Tablet K1

http://shop.lenovo.com/us/tablets/ideapad/tablet-series/k1

相方が初代 iPad を持っているのだが、貸してくれる気配がなかったので新しく自分用のタブレットを購入した。基本的には ebook を読むのが用途だけど、使ってみると普通にブラウズするとか簡単な投稿なら全く問題ないことに気付いた。

それなりに速いし満足してはいるけど、余計なアプリやレノボマーケットだけは勘弁してほしいかな。消せばいいじゃん、という向きもあるだろうが、消しすぎると何故か再起動がかかるんですよコレ(´ー`; )

使うアプリだけ表に出して放置することにしますた。

Android 3.1 の使い勝手も悪くない。2.3 から音声入力が扱えるようになったからか、録音アプリとか入ってるのでそれなりに楽しんでいる。けど、音声検索してたら相方から「それ絶対指で入力したほうが速いよ」とミモフタモナイことを言われてしまって悲しかった(´ー`; )


2011/11/14

publish test from blogger app

写真に特に意味はありません(*´~`)
朝ごはんっぽいのを選んでみた。

けど、普段 facebook とかで普通にやってることをブログエンジンでやるのはなんか違和感が(´ー`;)


New server machine

サーバマシンを新しく買って移行した。

自宅でサーバを初めて立てたのは7年前だったと記憶している。そのときから最新のハードウェアに追随していろいろ試すというポリシーは常に持っていたので、64bitマシンへの移行から4年経った今、頃合いかなと思った次第だ。

BTOマシンで、以下の構成で8万弱というところ。いい時代になったものである。
  1. Intel H67 Express MotherBoard
  2. Core-i7 2600S (TDP 65W)
  3. DDR3 PC3-10600 SDRAM 4G * 4 (16GB)
  4. Intel SSD 80GB
  5. Seagate ST31000524AS 1TB
  6. Realtrek R8168 Gigabit Ethernet
何に使うの?ってよく聞かれるけど、サーバの実験用 + ビルドマシンとしか答えようがない。仮想マシンをいろいろ載せて、今の自宅サーバ環境も移行して遊んでみる用である。

電源は 350W のものなので、無論ゲームはしない。というかむしろこの電源容量で Core-i7 が静かに連続運転出来ていることに驚きを禁じ得ない。

既に www と メールサーバ(MX) の環境は kvm ベースの仮想マシンに移行済みだったりするので、その顛末は別の機会に書いていくことにしよう。


2011/11/13

Hatena Blog and these days.


はてなブログ に招待して貰って1エントリを書いてみた。
Blogger で出来ること、つまり
  • タグによる分類
  • 画像のアップロード
  • Gist の貼り付け
などができれば即移行、とはなるかもだが、そのいずれもできない時点でしばらく様子見かな。
はてな記法 だけは悪くないと思っていたので、残念。
とはいえ、ブログを書く気になったのは久しぶりだ。その意味ではてなブログへ招待してくれた TERAZZI おじさんには感謝したい。

とはいえ、久々に書いたので近況をちょっとだけ。転職してもう半年過ぎました。元気にやっているのは確かだけど、激しく前職と環境が変わり過ぎているのでまだまだ頑張らねば、という感じです。仕事では Java を書いているけれどもいろんな意味で気持ち悪いですね。それなりに書き慣れているから成果は出せるけど技術的には心ここにあらず、という感じ。

けれども、技術とは別の動機を持って転職を決意したのは確かなので、そこを見失わないように努力を積み重ねたいと思う次第である(*´〜`)

2011/03/20

[monologue] sudo -b -u mumumu

http://archive.linux.or.jp/JM/html/sudo/man8/sudo.8.html

あるコマンドを root ではなく 他のユーザーで、かつバックグラウンドで自動起動したいと思うことは誰しもあるだろう。

sudo -b -u mumumu /path/to/command

/etc/rc.local に上記を書けばよいのだが、psコマンドで sudo プロセスが残るのが気持ち悪い。。こういうもんだったっけ?(´ー`; )

$ ps -ewf
root 1668 1 0 04:16 ? 00:00:00 sudo -b -u mumumu /path/to/command

2011/02/27

[memo] Livedoor Technical Seminar #5

http://blog.livedoor.jp/techblog/archives/65434269.html

昨日ライブドア主催の技術セミナーに行ってきた。遅刻してしまったので途中からではあるが以下にSummaryのメモを置いておく。自分のための超適当メモなんで、詳細はのちに公開されるであろう動画をちゃんと見てくださいね(はぁと

ソーシャルアプリは参入障壁が低いなりにちゃんと考えて作らないといけないんだなということと、スピード感と新技術の採用という部分のバランスが重要なんだなと勝手に思いました。まる。

****

- HTML5 でFlash Playerを作ってみた(途中から)

- SVG
-- 描画速度が遅いのが問題
-- 最適化することがプログラムから指示しずらい
-- 2fps -> 8fps だったが断念 (iPhone 3GSの環境)

-- canvas をキャッシュ
--- ラビン/カーブ検索 で描画した配列の一致した部分のみをキャッシュする
--- 15 fps

****

- 新進気鋭のSAPに聞いたソーシャルアプリ現場事情

1. 登壇者について

- 株式会社オルトプラス 石井さん
(ブラウザ三国志の製作を指揮。現在はダービーズキングの伝説というゲームをグリーでリリース)

2. ダービーズキングの伝説 について

- ダービーズキングの伝説は登録者数100万人突破、アクティブユーザーが10万人
-- オンラインゲーム登録者数 -> 10000〜15000が相場
-- ソーシャルゲームの登録者数、アクティブユーザー数は右肩上がりののち、下がる一方なのが普通だが、ダービーズキングの伝説は右肩上がりを維持している
-- 小さく産んで大きく育てる
--- やめられないようにするためには、比較的課金を早いタイミングでやって、タイトルを覚えてもらうこと。これはゲームタイトルがどんどん出てくるので、スイッチングコストが低いから。
--- PC市場に比べてモバイル(ガラケー)は課金障壁が非常に低い
--- 一方でPCに比べて伝えられる情報が非常に少ない。検索してたどり着くよりはバイラルで広まることが前提になる。友達が始めたから始めた、的なやり方が多い。10万〜20万くらいの人数があればバイラルが聞くが、そこまでいけるかどうかが成功するまでの一つの壁

3. 開発コストについて

- 開発コストの点でいくと、十数人の人数が6ヶ月動いた>ブラウザ三国志。
- ダービーズキングの伝説は4名で1ヶ月-> 開発コストはかなり安い ファミコン時代に似た感じ。当たれば大きい。- コンソールゲーム(ゲーム機用に製作されたゲーム)は桁がひとつか二つくらい開発費が上になる

4. なぜ競馬ゲームなのか?

- なぜ競馬ゲームかというと、外国等で既にあるものを日本に持ってくるのはやめようと考えたから。日本のよさが出せるものを。

5. ガラケーとスマートフォンの違いは?

- ガラケー -> flash lite 1.1 -> 枯れている
- Android -> ユーザに若い男性が比較的多い
--作って見ないと判らない部分がある
-- 端末依存が大きい
-- 移植に手間がかかることがある
- iOS (ダービーズキングの伝説はまだ未対応)
-- 一度覚えれば作法が一つなので一度覚えてしまえばやりやすい。-> ユーザに若い女性が比較的多い
-- iOS については、4割がユーザに占めていて、lostしている状況 -> 是非人を採用したい

*****

- GREEのスマートフォンアプリ開発の現在(伊藤直也さん)

1. スマートフォンビジネスのトレンド

- 今年の年末はスマフォ向けでもクアッドコアで2GHz超え -> 性能がどんどんあがっていく
- 1億スマートフォン (9200万PCを超えた)
- PC利用時間は -20%
- 世界的にスマフォの普及スピードは凄く早い
-- 日本国内では2年後には6000万台を契約ベースで超える予想がある。その2年後にはiOSでなくてAndroidがその半分以上を占める予想もある
- スマフォ需要により3年ぶりに出荷台数がプラス
-- スマフォによりデータARPUが上昇するから
- 女性向けへのマーケも活発

2. スマートフォンアクティビィティの実際

- すべての時間のうち、電話、Webサーフィンが半分
- 残りはアプリ、ゲーム -> アプリ開発者には有利な状況
- コンソールゲーム市場は後退している
- ソーシャルゲームの売上は右肩上がり -> シリコンバレーでもソーシャルゲームバトル
- Facebook Mobile -> 現在アクティブユーザ2億人(2年間で4倍に増加)
- Twitter -> アクティブユーザの半分がモバイルアクセス、新規ユーザーの16%がモバイルから
- アプリ内課金が本格化(android, iphoneともに)
-- 急成長。50%が In App. 有料DLからIn-App課金へ
-- Android が 既に iPhoneを超え始めている Android 2.1, 2.2 が支配的

3. NFC(Near Field Communication)

- Android 2.3で対応。iPhone 5, iPad 2にも搭載か
-- taglet というサービス -> Android 2.3 +NFCによる情報共有サービス。taglet で mixiチェックイン

4. GREEのスマートフォン開発

- HTML5 and CSS3 and Javascript
-- Webkit ベースブラウザ、新技術を積極的に採用できる
-- ローカルセキュリティの関係で、カメラ等に直接アクセスできない
-- HTML5 + css + javascript だけでできないことをネイティブが補うというアーキテクチャ
-- UIの拡張の方もアプリで

- アーキテクチャ比較
-- HTML5
-- ネイティブ
-- JSミドルウェア(Titanium等) => 動的更新の点で難あり
-- ハイブリッド -> HTML5 and CSS3 + javascript + ネイティブ

※ Javascript で アニメーション GIFを再生するのに悩む -> dataスキームでgifデータを連続して送り、settimeoutで再生していくライブラリを作った

5. クロスモバイルプラットフォーム開発のトレンド

- 急発展の最中
- まだデファクトは決まらず
- 長期的には HTML5へ。短期的にはネイティブアプリ

- ミドルウェア

-- Titanium mobile, 開発例:MogSnap
--- JSで書いたものがネイティブアプリになる
--- iPhoneはよくできているが、Android向けはまだまだ発展途上

-- PhoneGap
--- ハイブリッドモデル(HTML5 + native)のアプリを作るためのフレームワーク
--- 中身がWebViewでよければこれ

-- Unreal Engine -> 3Dゲーム開発ミドルウェアの大御所
--- C, C++, Android はこれから

-- Corona SDK
--- Lua で 2D開発。ActionScriptライクに開発

-- Airplay SDK
--- C/C++ で write once -> Android, iPhone, コンソールゲーム機もサポート

-- Unity : Game Development Tool
--- JavaScript, C#, Lua etc で 3D可いつ。ActionScript用に。
--- これが本命? スマフォの世界で台頭してくると思われる
--- True Multiple Development

- HTML5 Webアプリフレームワーク
-- jQuery Mobile
-- Sencha Touch
-- JQTouch

6. まとめ

スマートフォン&Androidはじまったな
-> GREEもフィーチャーフォンからスマートフォンへ
Mobile = Global

海外では3Gの回線普及率がまだまだなので、回線がつながっている前提で
作るとおかしなことになる。-> Nativeアプリ中心。通信が必要になったときだけ通信する
--> 速い回線が整えばHTML5で作っていくモデルがはやっていくのではないか

2011/02/23

binary exponentiation

任意の数の累乗を計算する時には、for文で累乗する回数だけ数を掛け合わせる、というのは小学生でも思いつく。だが、累乗する回数が大きくなったとき、例えば1億乗とかやられたときには極端に遅くなるのは明らかだ。

二進累乗法というやり方がある。これは2の累乗に乗数を展開することで、掛ける回数をビット数+数回に抑えるという考え方だ。累乗する数を1ビットシフトして掛けることで、x^2, x^4, x^8, x^16 ... といった具合で累乗する回数を2の累乗倍に増やしていくことで、累乗する回数を減らすことができる。

累乗する回数を減らすことは、累乗する対象の値が double だった場合に誤差を減らす効果をもたらす。
.... って、言葉で言ってもわけわかんないすよね(´ー`; )



[ Update September 11th 2012 06:32 JST by m ]

べき乗のアルゴリズムのうち、上位桁から計算する方法 を上記はコードにしたものだ。これの計算量は 最大でも 2 * logN (N は累乗する回数) なので、O(logN) となる。

2011/02/14

% operator

http://0xcc.net/blog/archives/000083.html

剰余を求める % 演算子はプログラムの世界では非常によく用いられる。特に一定の範囲の数値があった場合に、剰余が同じ値で数値をグループ化する用途に役立つのは皆様ご存知でしょう。

たまたま2つの値の最大公約数を求める関数を再発明する機会があり、コードを書いていた。この問題に対して、この世界でよくある解法が「ユークリッドの互除法」である。これは以下の手順(※)で成り立つ

1. 2つの値のうち大きなものから小さなものを引く
2. 1. の結果と、値の小さなものについて、上記 1. を繰り返す
3. 1. の結果が0になったとき、その時に引いた小さい値が最大公約数である

上記 2. を繰り返すことは、最終的には値の小さなもので割ったときの余りを求めることと同義なので、この手順は剰余で代用することで速度向上を図るのが普通だ。これをコードにすると以下のような感じである。

b = b % a;

このときに、b と a のどちらか(もしくはいずれか)が負の数値だったらどうなるか。このコードをレビューしていた pascaljp から「オペランドが負の場合、結果も負の場合があるよ」と指摘されてびっくらこいた。

よーく考えると、負の剰余って複数通りの解釈ができる。

7 % -5 -> 余りは -3(商は-2)または 2(商は-1)
-7 % 5 -> 余りは 3(商は-2)または -2(商は-1)
-7 % -5 -> 余りは 3(商は-2)または -2(商は1)

これについては処理系によってまちまちのようで、それを詳しく示したのが上記の高林さんのエントリである。

実際、剰余演算子を使う場合、「余りの値については殆どの場合興味がなく、グループ化する用途には役立ってればいい」という考え方もあるだろうが、今回の場合みたく問題になることもあるんだなと再認識した次第である。

よく考えたら、2つの値の最大公約数を求める場合に、片方または両方が負であっても最大公約数は同じことがわかったのでそれを用いて書き下したのが以下のコードである。



(※) これは A, B の最大公約数をGとすると、B と A - B の最大公約数もGとなるという考え方に基づく。その証明は ここ あたりでもどうぞ。

2011/02/05

Safari Books Online account reactivation

かつて自分は Safari Books Online を1年単位で購読していて、年5万近い代金を払っていた。
このコストを一時期負担に感じたことがあって、一度アカウントを無効化した。

----

昨日久々に Safari Books Online を見ると Monthly(月単位購読) プランとか言うのが出来ていて割とお手頃であったため、そっちを購読しようと思った。しかし、、

1. かつて年単位購読していたためか、月単位のプランに移行できなかった。
2. 別アカウントを作ろうとしたが、同じクレジットカードだと登録を拒まれた
3. FAQ にはプランを downgrade する方法が書いてあるが、必要な操作をしろ、としか書いてない

業を煮やしてサポートに問い合わせたら、明後日を請求日として月単位アカウントを設定しておいた(!)(※)から、今は Reactivate できるよと返事が来た。この謎仕様はなんなんだ(´ー`; )

ともあれ、実際過去に年単位購読をしていた人は月単位購読には移行できないらしい。
決済の都合もあるだろうから、アカウントが有効な人に対してこの仕様を適用するなら話はわかるが、一度アカウントを無効にして購読期限も切れているユーザにこれを適用する理由はないと思うぞ(´ー`; )

----

Thank you for contacting Safari Books Online

I appreciate your interest about reactivating your Safari subscription and I’m sorry to see
you with trouble in get going with it.

Since you had an annual subscription, you were unable to see the option to reactivate it with
monthly billing. However, I have set your account as monthly subscription with billing date as
02/07/2011, so that you can now activate your 10 slot subscription with monthly charge of $22.99
per month.

Please let me know if you have any other questions, I’ll be happy to help you.

Regards
Customer Support
Safari Books Online, LLC

--- Included ---

Hi,

In the past, I subscribed yearly safari library account and deactivated it. Now I try to
reactivate my account and change the subscription plan to monthly 10-Slot Bookshelf plan
($22.99/Month).

But I cannot select the plan in "Reactivate Account" page. What can I do next?
----

※ おいまだ Reactivate してないのに請求日を設定すなよ!

2011/02/04

introspection(3)

思考停止しないのも大事。努力することも大事。人と話をするのも大事。けど一番大事なのは前を向くことである。(一行独白

2011/01/30

fibonacci number


fib(param) + fib(param - 1) と本番で書いてしまった。。(※) なんで気付かなかったんだろう(涙

(※)無論、無限ループになる

[ Update January 31st 0:35 JST by mumumu ]

勿論for文でも書ける。こちらの方がスタックを使わない。

2011/01/29

[memo] gimp alpha channel

gimp で何か書いて、背景を透明にしたい、と思ったときにちょい手間取ったのでメモ。
gimp 2.6.9 @ Windows 7 で確認

----

画像を生成し、生成した画像を右クリックし、「レイヤー」→「透明部分」→「色を透明に」を選択し、透明にしたい部分の色を選択すればよい。大抵は背景の白部分を透明にしたいだろうから、デフォルトの状態でプレビューすれば背景を透明にできるはずだ。

特定の色で塗られた部分を透明にしたいならば、色を選択すればその部分を透明にできる。

2011/01/25

mod_rewrite and MultiViews

http://www.fya.jp/blog/2007/09/14/mod_rewritemultiviews/
http://httpd.apache.org/docs/2.2/content-negotiation.html

Apache には mod_rewrite というリクエストを内部で自在に書き換えるための黒魔術が備わっており、それをWebアプリケーションフレームワークでREST風なURLを解釈させるために以下のように使うのは、割とPHPな世界では普通に行われていることである。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

これはファイルが存在してサイズが0以上のリクエストに対してはそのままリクエストを実行。そうでなければ index.php を頭につけるようにURLを書き換えている。

こうしたやり方に対して、Options MultiViews は相性が悪い場合がある。特に 同じプレフィックスのファイルが複数存在した場合がタチが悪い。

MultiViews 機能は、拡張子が表記されていないリクエストがあった場合に、それが仮に存在しない場合は拡張子ありの同じファイルを自動的に探してくれる機能である。たとえば http://example.com/hoge がリクエストされた場合に、MultiViews がドキュメントルートで有効だと hoge.txt や hoge.html 等から適当に選んでレスポンスを返してくれる。

----

ちょっと複雑だが、ここで俺がハマった mod_rewrite と MultiViews の相性でハマった例を記す。

A) ドキュメントルートで MultiViews が有効
B) 上記のような RewriteRule を設定している
C) index.php と index.html がドキュメントルートに存在する
D) この状態で、/index/search をリクエストした場合

この状態で /index/search のレスポンスが 404 だったのでびっくらこいた。本当は、index.php/search となって、フレームワーク側で PATH_INFO を解釈してほしいのに。

起こっていたことは以下のとおりである。

1. MultiViews によって、/index/search を index.html/search とApacheがみなす
2. index.html/search に RewriteRule が適用される
3. index.html が存在するので、Pass Through され、そのまま index.html/search へのリクエストとみなされる
4. index.html/search は存在しないので 404 になる

何のことだかわからないかもしれないが、要するに、Options MultiViews は意味もわからず有効にしない。そして、mod_rewrite と混ぜる場合は注意、ということである。

2011/01/12

sudo and environment variable

http://archive.linux.or.jp/JM/html/sudo/man8/sudo.8.html

sudo は外部のコマンドをできるだけ安全に実行しようとする。
環境変数を扱うにあたって、二つの異なる行き方がある。デフォルトでは、 sudoers の env_reset
オプションが有効になっている。 この場合は、最小限の環境でコマンドが実行されることになるが、
その環境とは、
TERM
, PATH
, HOME
, SHELL
, LOGNAME
, USER
, USERNAME
、それに sudo という 呼び出し側のプロセスから来た変数で、sudoers の env_check や env_keep
オプションによって許可されたものである。言わば、 環境変数のホワイトリストが存在することに
なるわけだ。

要するに sudo ではデフォルトでsudoを実行するユーザの環境変数は引き継がれないということだ。これは環境変数が重要な環境 (例:Python の virtualenv にworkonした状態) で sudoすると思った結果が得られないことに繋がる。

たとえば以下のような状態では pip-requirement.txt の内容は virtualenv 内にはインストールされず、システムグローバルな環境に入ってしまう。workon した時点で山のように設定された環境変数を見てインストール先が決まるのだが、sudoした時点でそれらは引き継がれないからである。

$ workon somevm
(somevm)$ sudo pip install -r pip-requirement.txt

Ubuntu みたく「何かするときには sudo」みたいな環境も増えてきたけど、こういうこともある。

2011/01/11

instant reset

無心でXXな作業をすると心がリセットされる、という瞬間を最近手に入れた。それは「皿洗い」である。笑われるだろうか。

週末に無理やりにでも何かを作って食べ、皿洗いを **無心で** やって台所を綺麗にすると週末の日曜プログラミングモードから一旦解き放たれる。その瞬間に妙にハマってる最近である。

2011/01/07

Capistrano Installation notes

https://github.com/capistrano/capistrano/wiki/2.x-Getting-Started

最近 Rubyを覚えたついでに簡単な Deploy Script を書いてみるようになった。
以下、Debian Lenny でのインストールノート。

# aptitude install rubygems
# gem sources -a http://gems.github.com/
# gem -v

-- バージョンが 1.2.0 なので 1.4 以降に rubygems をアップデートする --
-- ここは Debian 特有の手順が必要 --

# gem install rubygems-update
# /var/lib/gems/1.8/bin/update_rubygems

-- Capistrano のインストール --

# aptitude install libopenssl-ruby
# gem install capistrano

-- インストール完了 --

# cap
Please specify at least one action to execute.
Usage: cap [options] action ...
-d, --debug Prompts before each remote command execution.
-e, --explain TASK Displays help (if available) for the task.
-F, --default-config Always use default config, even with -f.
-f, --file FILE A recipe file to load. May be given more than once.
-H, --long-help Explain these options and environment variables.
-h, --help Display this help message.
-l [STDERR|STDOUT|file] Choose logger method. STDERR used by default.
--logger
-n, --dry-run Prints out commands without running them.
-p, --password Immediately prompt for the password.
-q, --quiet Make the output as quiet as possible.
-r, --preserve-roles Preserve task roles
-S, --set-before NAME=VALUE Set a variable before the recipes are loaded.
-s, --set NAME=VALUE Set a variable after the recipes are loaded.
-T, --tasks [PATTERN] List all tasks (matching optional PATTERN) in the loaded recipe files.
-t, --tool Abbreviates the output of -T for tool integration.
-V, --version Display the Capistrano version, and exit.
-v, --verbose Be more verbose. May be given more than once.
-X, --skip-system-config Don't load the system config file (capistrano.conf)
-x, --skip-user-config Don't load the user config file (.caprc)