Posted by & filed under 開発.


前回はQuicklispによるライブラリ管理について説明しました。今回はSLIMEの
基本的な使い方について説明します。

SLIMEとは

SLIMEは(Common) Lispのための統合開発環境(IDE)です。他のIDEとは異なり、
対話的にプログラムを構築できるのが特徴です。一度ハマれば他の開発環境は
使えなくなるでしょう。詳しい情報は次のURLを参照してください。

http://common-lisp.net/project/slime/

インストールと設定

SLIME

SLIMEのCVSスナップショット(本家推奨)をインストールします。OSは
GNU/LinuxやMac OS XなどのUNIX系OSを想定しています。

展開したディレクトリはslime-2011-04-07のような名前になりますが、ここ
ではslimeという名前で~/.emacs.d/直下に移動します。

次にEmacsの設定を行います。次のコードを~/.emacsに書いてください。

これで基本的な設定は完了です。

popwin.el

使い始めれば気付くと思いますが、SLIMEは事あるごとにEmacsのウィンドウを
分割したり、他のウィンドウのバッファを切り替えたりします。これではせっ
かくの優れた開発環境も台無しです。そこで、拙作のpopwin.elをインストール
することをお勧めします。popwin.elはウィンドウの分割等を極力抑制し、プロ
グラマが快適に作業することを助けてくれる優れものです。

インストール方法や使い方は次のURLを参照してください。

http://d.hatena.ne.jp/m2ym/20110120/1295524932

インストールが完了したら次のコードを~/.emacsに書いてください。

ac-slime

ac-slimeはauto-complete.elのSLIME拡張です。SLIME(SWANKサーバー)の情報を
利用するため、非常に高精度のコード補完が行えます。

ac-slimeは次のURLから入手できます。

https://github.com/purcell/ac-slime

なおauto-complete.elをあらかじめインストールしておく必要があります。イ
ンストールしていない方は次のURLを参照してください。

http://cx4a.org/software/auto-complete/index.ja.html

ac-slimeをインストールするには、先のURLからac-slime.elをダウンロードし、
load-pathの通ったディレクトリにコピーします。install-elispや
auto-installがある場合は次のコードを評価することでインストールできます。

最後に~/.emacsに次のコードを書いてインストール完了です。

これで.lispファイルやREPLでauto-complete.elを使った自動コード補完が行え
るようになりました。

SLIMEの使い方

SLIMEの起動

インストールと設定が完了したらM-x slimeとやってみましょう。次のような
表示の*slime-repl ccl*というREPLバッファが表示されれば成功です。

SLIMEを使って開発するに際して、まずやることはこのM-x slimeです。これ
を行わなければ、後で説明するエディタコマンドやインデント、コード補完、
その他諸々が全く機能しません。まずM-x slime、これだけ覚えておいてくだ
さい。

なお表示されたREPLバッファはちょっとした確認などを行ったりする場合を除
いて基本的には使用しません。

SLIMEの操作

SLIMEを起動して次にすることはlispファイルを開くことです。試しに
foo.lispなどの適当なファイルを開いてください。

lispファイルのメジャーモードはlisp-modeです。このモードには様々なキー
が割り当てられていますが、今回はその中でも覚えておくべきキーバインドを
紹介します。

C-c C-c

C-c C-cは現在ポイントしているトップレベルフォームをコンパイルします。
例えば次のような関数を編集しているとします。

ここでC-c C-cすると関数fがコンパイルされます。実際にやってみれば分
かると思いますが、上の関数をコンパイルすると、SLIMEは変数aが未使用で
あると警告してくれます。もし警告があればそれを修正してC-c C-c、という
のが基本的な開発サイクルになります。

C-c C-k

C-c C-kは現在のファイルをコンパイルしてロードします。トップレベルフォー
ムを一つずつC-c C-cするのが面倒なときに重宝します。また、C-c C-c
様、ソースコードに問題があれば警告してくれるので、ファイルの最終的な確
認にも利用できます。

C-c C-z

C-c C-zは現在接続しているサーバーのREPLバッファを表示してくれます。何
か確認したいときや、前回紹介したQuicklispでライブラリをロードしたいとき
C-c C-zします。例えばCL-TEST-MOREというライブラリをロードし忘れてい
たとしたら、C-c C-zでREPLバッファを表示して、次のように入力します。

REPLは使いこなせば非常に強力なので是非活用してください。

困った時

より本格的な開発サイクルは次回で説明しますが、SLIMEにおけるEmacsの
C-g的な存在としてM-x slime-restart-inferior-lispを紹介しておきます。

これは現在接続しているサーバーを再起動してクリーンな状態に戻すコマンド
です。SLIMEで開発していると、変にシンボルがインターンされたり、おかしな
値の変数ができたりします。また、正しく動作しているとしても、実は古い変
数などが残っていて偶然動作しているだけだったりもします。そういった状態
をリセットするのにM-x slime-restart-inferior-lispは非常に便利です。是
非覚えておいてください。

まとめ

今回は「SLIMEの使い方 基礎編」ということで、SLIMEのインストールと設定、
および非常に基本的な使い方を紹介しました。実際のところ、今回の内容だけ
でSLIMEで開発を行うにはかなり情報が不足しています。Common Lisperなら気
付いていると思いますが、パッケージの扱いなど、様々な重要な点を端折って
います。次回以降、より実際的なSLIMEの使い方を紹介していきたいと思います。


関連文書:

Posted by & filed under 開発.


MongoDBのほうが好みなのですが、CouchDBももっと触ってみないとフェアじゃないということで、しばらくはCouchDBで遊んでみます。CouchDBのアーキテクチャとかはまだ、あんまり調べてません。とりあえず、小手先の遊びだけです。

[続きはこちら]


関連文書:

Posted by & filed under いろいろ.


新人プログラマの深町です。最近は4/1に「実は16歳なんだよね」とか言ってみんなに無視されたりしました。

さて、趣味ってほどではないですが、僕はよく携帯で写真を撮ります。撮った写真は随時Facebookにアップロードしています。

もちろんアリエルの写真もあります。

が、

CTO「Facebookはログインしないと見られないのでダメです」

とCTOがおっしゃります。本当はログインしなくても見られるのですが、URLを記録しておくのがたぶん面倒なんだと思います。

なので、今までFacebookに撮り貯めたアリエルの日常風景をここにまとめておこうと思います。アリエルの日常風景はだいたいこんな感じです。


「今回のShibuya.jsは”自動テスト”についてらしいですよ。観なくていいんですか」

休憩室でShibuya.js観戦

Shibuya.js のustを休憩室で流してみんなで観戦。

この前はアリエル・ハッカソンと称して社内ハッカソンをやってみました。新しい試みです。

アリエル・ハッカソンの風景

偶然にも参加者みんなEmacserだったので、何か作る予定がみんなで.emacsいじってるだけという結果になりました。何かがおかしいです。

また、会社が六本木に移転してから、お昼に困るようになりました。何しろランチ代がかさみます。ランチ代を浮かせよう→弁当買う→せっかくだから外で食べるか。

弁当を持ち寄って公園でランチ

弁当を持ち寄って公園ランチ。

近所の公園でお花見

今の時期は桜も咲いています。

花よりiPhone

にもかかわらずiPhoneでFacebookを見ています。花よりiPhone。

ハトに囲まれるスーパクリエータ

ハトに囲まれるスーパクリエータ。

「ワサビ食べる?」「やめて」

ブランコを占拠

ブランコを占拠。

たまにPCも持っていく

たまにPC持って出たり。「ここがオフィスならいいのに」


まあ、だいたいこんな感じの日常。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under .


実践JS サーバサイド JavaScript 入門がアマゾンのJavaScript部門の売上トップなので記念のスクリーンショットです。

アマゾンに表紙も目次もまだ載っていないのに誰が買ってくれているのでしょう。ありがたいことですが。

ちなみに、書名は当初「実践サーバサイドJavaScript」の予定でしたが「実践JS サーバサイド JavaScript 入門」になりました。アマゾンのページにまだ表紙の画像がありませんが、ぼくもまだ見ていません。実物を受け取ってはじめて見ることになりそうです。

そもそも本の装丁に興味がありません。タイトルも表紙も編集にお任せです。京極夏彦にはなれそうにありません。

パーフェクトJavaの時は、永井さんが本文のフォント含め装丁に注文をつけていましたが、今回は著者が自分ひとりなので完全に出版社任せです。自己弁護ですが装丁はプロに任せればいいと思っています。ソフトウェアに例えればモデルとビューの分離です。ぼくは本の見栄えに関する部分は一切気にせず内容だけに集中しました。

来週か再来週あたり実物を受けとるので、そうしたら目次などをありえるえりあで紹介します。少しだけスニークプレビュー的にネタをばらすと、CouchDBとMongoDBの章があります。これらはJavaScriptエンジンを積んでいるので別におかしくはないのですが、なぜかGoogle App Engine for Javaネタも載せています。まるでNoSQL本みたいですが、正統なNoSQL本ではありません。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under いろいろ.


マルチスケジューラv5.1.7をリリースしました。

ダウンロード

紹介記事がなかなかの力作になっています。なのであまり付け加えて言うこともないのですが、せっかくなので新機能2について少し補足します。

■ 新機能2. リモートPCからのマルチスケジューラへのアクセス許可の設定の追加

他のPCからローカルPCで動いているマルチスケジューラ(以下マルスケ)の画面にアクセスできます。

通信の中継のような仕組みはないので、直接IPでつながるPCからのみです。マルスケをLAN内で使っていれば、LAN内の別のPCからマルスケの画面にアクセスできます。と言っても、言うほど凄い仕組みではなく外部からHTTPアクセスさせているだけです。実は昔からデバッグ用途にはできていたのですが、今回、設定画面をつけて、アクセス許可リストを実装しました。

ユースケースは、デスクトップPCでマルスケを使い、オフィスの別の場所からスマートフォンやタブレットPCでアクセスする用途を想定しています。あまり見ていませんがiPadでもそれなりの画面になっていました。

紹介文にあるように内部的なログイン状態はひとつです。Webアプリの用語を使うとセッション管理はしていません。マルスケ(プロセス)上に複数ユーザのログイン状態を作れるのではなく、複数PCから同じリクエストを投げれば同じ画面を見られるだけです。

iPad対応です、と言うのは恥ずかしいのでAndroid対応の一環ということにしています。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under .





 この本は、行動経済学の権威であるダン・アリエリーによって、行動経済学のなんたるかを、いくつかの事例を用いて紹介をしている。

 本書で紹介されている行動経済学の概説について。いくつかの実例を含めたダン・アリエリー氏本人によるプレゼン動画が youtube に上がっている。

http://www.youtube.com/watch?v=JhjUJTw2i1M

 おおまかに言うと。
 (経済学の観点から見ると)我々は経済活動やそれに類する活動を行う際、経済合理性に則ったある種の費用便益分析を行い、論理的に判断し行動すると考えられている。
 だけど(行動経済学の観点から見ると)実はそんなの嘘っぱちで、全然合理的じゃない行動をたまにするという。それも、誤差やエラーといって履き捨てる事の出来ない規模で。更に面白いのが、これら非合理的な行動が、ある規則性を持っていると言う。

 前者は、何か基本となる原理・原則を定義して、そこから諸処の数学的(機械的)な技法を用いて妄想を膨らせて数々の定理(コンポーネント/モジュール)を編み出す、計算機科学的な考え方であるのに対して。
 後者は、何か現象(木からりんごが落ちる様子とか)を観察して、何かしかこの現象の背景に共通して存在する法則があるのではないかと予測して、諸処の実験を繰り替えして、この現象を説明する自然科学的な考えをしている(ように見える)。

 つまりこの本は。我々の行動には、経済学の常識では測れない(不合理)な行動がままあり、そしてそれらはある種の規則性があると言っており、いくつかの実験を通してその法則性を紹介している。

 では。どのように不合理であり、またどのような規則性があるか。
 動画でもいくつかの例が示されているが。いくつか他の例を挙げると。

 何故、レポートや執筆作業を期限ギリギリまでやらないのか。
 何故、1万円で売られているガラケーを買わないあなたが、数万円で売られている iPhone や android 端末を買うのか。
 何故、2,000 円以上のランチを食べないあなたが、4,000 円のディナーを食べるのか。
 何故、時給 5,000 円以上稼げる優秀なデベロッパーがコミュニティで活動するのか。
 複数人でランチに行った際。何故敢えて、他の人と違う(または同じ)注文をするのか。
 ある店で 300 円のカレーと 900 円の旨いカレーを出す店があり、毎回 900 円の旨いカレーを注文するあなたが。ある日、カレーの値段が無料に、旨いカレーの値段が 600 円になったとき、どちらを注文するか。

 といった事がある。どれも、経済学的な観点(我々が十分に冷静で論理的な思考が働く状況)では、首を傾げたくなる内容ではないだろうか(もちろん屁理屈を捏ねて説明もできるが)。更に、これらの非合理的な行動は、上述の規則性が見られる。
 本書では、このような不合理な行動を我々が行うという事と、これらの行動がある程度予測可能であるという事を、諸処の実験から結論づけている。

 特に、自分の心に刺さった内容として。
 3章の「ゼロコストのコスト」等で繰り返し紹介される不合理な行動の予測からは、いわゆるマーケティング的な行動を行う上で、かなり有用であると感じた。つまり、誰か(もしくは特定の誰か)に対して、有用な価値がある(ように見える)モノを提供する上で、氏が提唱する行動経済学の規則性は、非常に参考になった。
 また4章の「社会規範のコスト」では、自分のような何か物事を(命令する立場ではなく)お願いする立場の人間において、様々な立場・関係の助力してくれた人間に対して、どのような方法でこれに報いるべきかという、人材マネジメントのヒントが見えてくる。
 更に11章の「品性について」では、どのような状況下で、どの程度の不正を働き、またこれをどのようにして防ぐのかという、ある種のリスク・マネジメント的な話が(立場的にリスクを引き起こす可能性がある側の人間として)とても参考になった。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under いろいろ.


世知辛い世の中なので、諸般の事情を鑑み、今年度のアリエルはいりいろ自粛することになりました。

まず、エープリルフールは今年は自粛します。アリエルが今までどのようなエープリルフールネタをやっていたかは、ご自分で調べてください。見つけられたら是非、教えてください。私は見つけられませんでした。

東京都知事も花見は自粛すべきだとおっしゃっていることもあり、アリエルのCTOも今年の花見は自粛することにしたそうです。CTOは毎年、「僕は花見は全く興味がありません」と言って花見をしようとしませんでした。桜の木の下を歩くことすら興味が無いようでした。でも、今年のCTOは花見を自粛することに決めたそうです。

それから・・・、


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under いろいろ.


ご存知の人は多いと思いますが、来月の日本国際賞授賞式でケン・トンプソン(神)とデニス・リッチー(神)が来日予定でした。しかし授賞式が中止になりました。見に行く予定だったので神を拝む機会を逸しました。

隣のFさん(本人の名誉のため名前は伏せます)にこう話しかけました。

井上「ケン・トンプソンとデニス・リッチーが日本に来る予定だったのに、中止になってしまいました」

Fさんの答えはこうです。

Fさん「誰ですか、それ」

え…

ショックでどうしていいかわかりません。とにかく逃げることにしました。

逃げる途中でIさん(本人の名誉のために名前を伏せます)に出会いました。まさかIさんも、そんなはずは…と思いながらも、ここで聞かなければ一生後悔すると思い、意を決して聞いてみました。

井上「ケン・トンプソンとデニス・リッチーは知っていますよね」
Iさん「誰ですか、それ」

もっと遠くへ逃げたいのですが、どこへ逃げていいのかわかりません。怖いので佐々木さんの席に行きました。

井上「大変なことが起きました。FさんとIさんがケン・トンプソンとデニス・リッチーを知らない、と言っています」
佐々木さん「え、それはひどい…」
井上「これから、アリエルはどうすればいいのでしょう」

しかし、落ち着いて考えれば、知らないことは罪ではありません。むしろ歴史を正しく伝えなかった大人が罪を負うべきです。ただ、こういう基本的なことは誰がどこで教えるべきなのか難しい問題です。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under .


2011年1月号にMap/Reduce(Pig/Hive)の記事を書いたのに続き、ASCII.technologies(アスキードットテクノロジーズ)2011年5月号にHBaseの特集記事を書きました。

ASCII.technologies (アスキードットテクノロジーズ) 2011年 05月号 [雑誌]

まるでクラウドの上の人のようです。

原稿を一部ページ数の関係で削りました。せっかくなのでここに載せます。前後の文脈なしでこれだけ載せてもどうか、という内容ですが、なんとなく言いたいことが伝わることを期待しています。

まとめに代えてHBaseとBigtableを取り巻く技術を紹介する。Cassandra開発元のFacebook社がメッセージシステムにHBaseを採用したニュースが記憶に新しい。これを聞いてHBaseがCassandraより優れていると思うのは早計だ。用途に向き不向きがあるというだけだからだ。このニュースはHBaseが向くアプリを示唆している点で興味深い。HBaseのレプリケーションの戦略から想像できるように同一データへのアクセスが集中しやすいアプリはHBaseよりCassandraが向いている。一方、Facebookの利用者が相互に送るメッセージのようなシステムでは個々のメッセージに各利用者がそれぞれアクセスするパターンが多そうだ。このような大量アクセスにHBaseはスケールする。

最初、上記の原稿が「Facebookメッセージの用途にCassandraよりHBaseのほうがスケールする」と誤読されました。そう主張するつもりはありません。言いたかったことは「Facebookメッセージの用途では、HBaseも(Cassandraと同程度に)スケールする」です。同程度にスケールするなら、より整合性を確保しやすいHBaseを選ぶ理由になります。

さて、まだASCII.technologies誌の他の記事はほとんど読んでいませんが、IBM Watsonの記事は面白かったです。HBaseの記事より面白いです。これは素直に負けを認めます。INDRIとか初めて聞きました。

なんでIBMはこんなに凄いのに、他のソフトは…(以下自主規制)。


関連文書:

  • 関連文書は見つからんがな

Posted by & filed under .


「Emacsのトラノマキ」の原稿を公開します。画面上のメニュー「ドキュメント」からたどれます。今回の記事は佐藤さんが執筆した「Emacsをもっと快適にするElisp集」です。Software Design 2010年3月号の掲載記事です。過去の連載の中でも人気のあった回です。

今発売中のSoftware Design 2011年4月号の「Emascのトラノマキ」は菅原さん執筆の「Major Modeを書こう」です。ちなみに冒頭がこんな感じです。

昔はMajor Modeを作れて、はじめて一人前のEmacs使いと呼ばれたそうです。

実に挑発的です。

Software Design (ソフトウェア デザイン) 2011年 04月号 [雑誌]


関連文書:

  • 関連文書は見つからんがな