kajalさんの南インドランチ

外苑前駅から歩くこと10分。kajalさんの南インドランチに行ってきました。南インドではこれをミールスと呼びます。要は、定食です。北インドだとターリーと呼びますね。





本日のメニューは、

・mix野菜入り酸っぱ辛い豆カレー(サンバル) ・トマトスープ(ラッサム) ・ビーツのココナッツ炒め蒸し(トーレン) ・イモ入りココナッツミルク煮(オーラン) ・ジャスミン・ライス ・豆の粉でできた煎餅(パパド) ・梨とリンゴの漬けもの(アチャール) ・ココナッツのディップ(チャトニ) ・豆とチリのふりかけ(ポディ) ・ドリンク:コーヒーまたはハーブティー

これだけ食べて、1,100円。しかもお代わり自由。優しい味わいで、南インド料理が初めての人でも抵抗なく食べられると思います。そこら辺のインド料理屋さんに行くより、ずっとおいしいです。今日のメニューは辛くありませんでしたが、それでもスパイス料理なので、じんわりと汗が出てきます。

サンバル、ラッサムは定番です。お代わりを一回しました。ラッサムをもう一回お代わりしたかったかも。オーランというのは初めて口にしました。ほんのり甘めなので、デザートでしょうか。それとも、サンバルやラッサムと一緒に、ご飯にかけてしまってよかったのかな。梨とリンゴのアチャールは、カクテキのような歯ごたえがありました。ほう、こんな感じにできるんだ。

会場のナチュラルスペース&キッチン Vayuさんは、外苑前、原宿、表参道から徒歩10分。閑静な住宅街の中にあります。


View Larger Map

出版社をつくってみました

「みかん書院」という出版社をつくりました。IT系技術書の翻訳出版を柱にしています。オフィスは自宅、社員もナシの、零細出版社です。最近はやりの電子書籍ではなく、紙で本を出します。少なくとも今のところは。

出版社を作ったと人に話すと、どうやら非現実的に聞こえるようで、なかなか理解してもらえません。お店を作ったとか、独立してシステムの受託開発を始めたというのと違い、ウケが悪いように思います。出版社とは存在するものであって、作るものではないという固定観念があるようです。

でも、出版社の立ち上げはとても簡単です。誰にでもできます。ただ、本屋さんの独立開業本コーナーにいっても『明日から始める出版社』みたいな本はなく、立ち上げ方のノウハウを集めるのに、やや手間がかかります。出版業界の人たちが門外不出のヒミツにしているわけでもなく、単に需要が無いから情報がまとまって存在しないだけです。直接教えを請いに行けば、みなさん親切にしてくださいます。

一方、出版社を継続させるのは、立ち上げよりも難易度が高いでしょう。みかん書院が3年後にも残っているかはわかりませんが、自分の器を超えて無茶をしなければ、そう簡単につぶれるものでもありません。そう信じているし、実際、継続する意思のある零細出版社はなかなか倒産しません。

インターネットの興隆とともに出版不況になり、年々市場が縮小し、改善する見込みもなく、講談社や集英社などの大手出版社が軒並み本業で利益を出せなくなっていますが、零細出版社はしぶといです。大手は不動産を持っているので、身を削りながらも、しばらくは倒産せず、零細は身の丈にあった事業を細々とやるので倒産しません。自転車操業している中堅出版社は、いつばたばたと倒れてもおかしくない状況のようですが。

とはいえ、紙から電子書籍への移行タイミングには気をつけないといけません。電子への転換期のどこかで、取次(本の問屋)の支払い能力に問題が生じるはずです。それが3年後なのか、10年後なのかは予測できませんが、紙本の売掛金が全額回収できなくても事業を継続できる程度の余裕は必要です。

WordPress の JSON API を拡張する

Wordpress とスマホアプリを連携させるのに JSON を使っています。WP が出力した JSON を、iPhoneアプリで読むのです。JSON API という、拡張性の高いプラグインがあったので、これを利用しました。

JSON API プラグインに対して、「コントローラ」というクラスを登録します。すると、コントローラのメソッドが JSON API としてアクセスできるようになります。Rails のコントローラクラスの仕組みと似ています。

必要なのは、フック2つと、コントローラクラス1つです。まず、JSON_API_Hello_Controller クラスを作ります。

<?php

class JSON_API_Hello_Controller {

public function hello_world() { return array( “message” => “Hello, world” ); }

} ?> </code>

これをフックで登録します。

// カスタムコントローラを登録します add_filter('json_api_controllers', 'add_hello_controller');

function add_hello_controller($controllers) { // JSON_API_Hello_Controller に対応します $controllers[] = ‘Hello’; return $controllers; }

// JSON_API_Hello_Controller.php のパスを指定します add_filter(‘json_api_widgets_controller_path’, ‘hello_controller_path’);

function hello_controller_path($default_path) { return ‘/path/to/JSON_API_Hello_Controller.php’; } </code>

さらに、wp-admin の管理画面で JSON API の設定を開き、Helloコントローラを有効にします。これがわからなくて、時間を無駄にしました。

ここまでやると、http://example.com/?json=hello.hello_word というURLで Helloコントローラの hello_world() メソッドが呼ばれるようになります。

クエリストリング(URLパラメタ)を見て動作を変えたい場合は、グローバル変数 $json_api から取得できます。

public function hello_person() { global $json_api; $name = $json_api->query->name; return array( "message" => "Hello, $name." ); }

ディスク容量に余裕があるのに No space left on device エラーになる

UNIXを使い始めて20年近くたちますが、初めてのエラーに遭遇しました。ディスク容量が十分あるのに、ファイルを作ろうとすると No space left on device エラーが発生するのです。

touch rarara

touch: cannot touch `rarara’: No space left on device

df

Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 8256952 6870384 1302704 85% / tmpfs 848476 0 848476 0% /dev/shm /dev/xvdf 8378368 4902356 3476012 59% /mnt </code>

これは、inode が足りなくなっていたためでした。

df -i

Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda1 524288 524288 0 100% / tmpfs 212119 1 212118 1% /dev/shm /dev/xvdf 8388608 75096 8313512 1% /mnt </code>

inodeというのは、ファイルのオーナーやパーミッションなどのメタデータを保持する領域です。ここを使い尽くすと、新たなファイルが作れなくなります。通常のファイルシステムでは、inodeの数はディスクのサイズに応じて有限です。足りなくなったら、既存のファイルを削除するしかありません。

細かいファイルをたくさん作りすぎたのでしょうか。そんなに激しい使い方をしているサーバだという認識はないのですが。df -i の結果を見ると、52万ファイル作られているということですよね。

調べ回っていたら、Capistrano による Rails のデプロイメントが一役買っているであることがわかりました。Capistrano は、標準の設定では過去のバージョンを全部ディスクに残してくれます。デプロイする度に、1万個近くの inode を消費するのです。

古いデプロイメントを削除して inode領域を空け、ひとまず正常運用に戻すことができました。

刑事さんが訪ねてきた

今日の午前、自分の部屋に、神奈川の○○署の刑事さんが訪ねてきました。警察手帳を開いてみせて、名乗って。おお、これってドラマで観るやつじゃん!

でも、現実味がなかったので「本当に刑事さんですか?」と聞きました。そうしたら、もう一回警察手帳を開いて見せてくれる。それでも怪しいので「これ本物ですか?」と聞くと、「うーん、困ったな、どうすれば信じてもらえるかな。。」と嘆くので、まずは話だけでも聞く事にしました。

すると聞き覚えのある固有名詞が。どうやら僕が半年ほど前に関わった三国間の国際取引の一つがトラブっているようです。僕のクライアントがヨーロッパにいて、そのクライアントのさらにクライアントが東南アジアにいて、そこが日本の別の業者と取引をしていています。この最後の2業者間で問題が起きている、と。

詐欺の可能性を視野にいれて捜査しているらしいのですが、金額が数万円と小額なのに相手が海外なので、刑事さんもあまり身が入らない様子でした。とりあえず僕の方は、伝票やメールのコピーなど、すぐに出せるものを出しておきました。

決済手段として Paypal を利用していました。しかし刑事さんは、Paypalが相手にしてくれない、情報を出してくれないと不満を述べていました。電話をすると日本語の怪しいスタッフが出て話が通じず、上司を出してくれと言うと上司も外国人で、日本の警察への対応が冷たい、と。

小額の犯罪って、国をまたぐとなかなか捕まらないものなんだなあと思いました。インターネットの発展と国際的な法整備のギャップのように、スキマを見つける能力を磨きたいです。いえ、犯罪はやらないけど。