冷たい購入手続き問題

お金を払うという事について、一つ気づきを得た。

コンビニなどでのどんな小さな買い物でも、どんなに急いでても、レジでは出来る限りありがとうって言うようにしてる。
俺にとってお金を払うとは、単なる仮想的価値の目的物への変換作業ではなく、提供者への感謝の気持ちの表明およびその気持ちの交換だ。
別の言い方をすると、お金を払うとは、言葉通りの物品取引というプラマイゼロ・それっきりのやりとりではなく、そこから感謝や親しみ、そして関係が発生して続く生産的な行為だと考えている。

自分がサービスでのマネタイズ(お金を儲けること)を考えるとき、ずっと引っかかっていた事があった。
それは、PCやスマフォなどの端末での買い物全てにおいて、「ありがとう」を言う瞬間が無いって事。
それってすっげぇ切ないやん。ありえへん。
アプリを買うときの、なんとも言えない冷たい手続き感の原因はそこだった。
そうだな、この問題を「冷たい購入手続き問題」と勝手に呼ぶ事にしよう。

話は脱線するが、AppStoreのユーザレビュー欄はアプリ提供者との双方向性が皆無で、ユーザの片思いな気持ちが充満している。
いいレビューをして下さった方々に、こちらからお礼の一言も言い返せない。
不具合報告や要望を書いて下さった方々に、なんの見解も示せない。
ひどい作りだと思う。
Appleはコミュニティ運営の方法論をもっと勉強した方がいい。

閑話休題。この冷たい購入手続き問題は、時折課金方法に悪影響を及ぼす。
シンボリックな例を一つ挙げよう。
フリーミアムモデルにおいて、「ストレスポイント」をいかに効果的に設けるかという議論がよくなされる。
フリーミアムモデルとは、無料で使える部分と有料で使える部分を併せ持ったサービスのビジネスモデルのこと。
ストレスポイントとは、無料で使える部分の機能的制約によってユーザにストレスを与える方法、および制約対象の機能のこと。
代表例は、標準だと広告が表示されて、お金を払うと広告なしで使える、などが挙げられる。
このストレスを解消するためにお金を払うとき、我々は感謝の念を抱いているだろうか?
俺は、悔しさに似た気持ちをたまに自覚する。
なんて非生産的な課金方法なんだろう。
感謝を言う瞬間が無いって事は、先に述べた、お金を払う行為の意義が欠損する事ではない。
端末上での課金を主軸としたビジネスモデルでは、往々にしてお金を払う事に対する生産的側面が(意図せずとも)薄れ失われているように思えてならない。
もちろん、全てじゃない。

自分が端末で動くサービスを提供している以上、この冷たい購入手続き問題と向き合わなければならない。
何も具体的な答えは出てないし、失敗したり間違うかもしれないけど、設計理念は明確になった。
それは、感謝の気持ちをもってお金を気持ちよく出してもらえるような課金体系を作るって事だ。
当たり前っちゃそうなんだが、ブレる心配が無くなった。

ユーザ端末から貞子みたいに顔出してお礼言えたらいいのにね(こわい)。

Chef installation problem: chef-solr depends on solr-jetty which is not in apt repository on Debian squeeze

When I was trying to install chef-server on Debian(squeeze) through this guide, I got a package dependency error like following:

~# aptitude install chef chef-server
The following NEW packages will be installed:
binutils{a} build-essential{a} bzip2{a} ca-certificates-java{a} chef chef-expander{a} chef-server chef-server-api{a}
chef-server-webui{a} chef-solr{ab} couchdb{a} cpp{a} cpp-4.4{a} dbus{a} default-jre-headless{a} dpkg-dev{a} erlang-base{a}
erlang-crypto{a} erlang-inets{a} erlang-mnesia{a} erlang-os-mon{a} erlang-public-key{a} erlang-runtime-tools{a} erlang-snmp{a}
erlang-ssl{a} erlang-syntax-tools{a} erlang-tools{a} erlang-webtool{a} erlang-xmerl{a} fakeroot{a} fontconfig{a} fontconfig-config{a}
g++{a} g++-4.4{a} gcc{a} gcc-4.4{a} java-common{a} javascript-common{a} libabstract-ruby1.8{a} libaddressable-ruby{a}
libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-merge-perl{a} libamqp-ruby{a} libasound2{a} libasyncns0{a}
libaudio2{a} libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} libboost-dev{a} libboost1.42-dev{a} libbunny-ruby{a}
libbunny-ruby1.8{a} libc-dev-bin{a} libc6-dev{a} libcap2{a} libcoderay-ruby{a} libcoderay-ruby1.8{a} libcups2{a}
libdaemons-ruby1.8{a} libdb4.7{a} libdbus-1-3{a} libdep-selector-ruby{a} libdpkg-perl{a} libdrm-intel1{a} libdrm-radeon1{a}
libdrm2{a} libem-http-request-ruby{a} liberubis-ruby{a} liberubis-ruby1.8{a} libescape-utils-ruby{a} libeventmachine-ruby{a}
libeventmachine-ruby1.8{a} libexpat1{a} libextlib-ruby{a} libextlib-ruby1.8{a} libfast-xs-ruby{a} libffi-ruby1.8{a} libffi5{a}
libflac8{a} libfontconfig1{a} libfssm-ruby1.8{a} libgecode-dev{a} libgecode27{a} libgl1-mesa-dev{a} libgl1-mesa-dri{a}
libgl1-mesa-glx{a} libglib2.0-0{a} libglib2.0-data{a} libglu1-mesa{a} libglu1-mesa-dev{a} libgmp3c2{a} libgomp1{a} libhaml-ruby1.8{a}
libhighline-ruby{a} libhighline-ruby1.8{a} libhmac-ruby1.8{a} libice6{a} libicu44{a} libinotify-ruby1.8{a} libjpeg62{a}
libjs-jquery{a} libjson-ruby{a} libjson-ruby1.8{a} liblcms1{a} libmerb-assets-ruby{a} libmerb-assets-ruby1.8{a}
libmerb-core-ruby1.8{a} libmerb-haml-ruby{a} libmerb-haml-ruby1.8{a} libmerb-helpers-ruby{a} libmerb-helpers-ruby1.8{a}
libmerb-param-protection-ruby{a} libmerb-param-protection-ruby1.8{a} libmime-types-ruby{a} libmixlib-authentication-ruby{a}
libmixlib-authentication-ruby1.8{a} libmixlib-cli-ruby{a} libmixlib-cli-ruby1.8{a} libmixlib-config-ruby{a}
libmixlib-config-ruby1.8{a} libmixlib-log-ruby{a} libmixlib-log-ruby1.8{a} libmng1{a} libmoneta-ruby{a} libmoneta-ruby1.8{a}
libmozjs2d{a} libmpfr4{a} libmysqlclient16{a} libnet-ssh-gateway-ruby1.8{a} libnet-ssh-multi-ruby{a} libnet-ssh-multi-ruby1.8{a}
libnet-ssh2-ruby{a} libnet-ssh2-ruby1.8{a} libnspr4-0d{a} libnss3-1d{a} libogg0{a} libohai-ruby{a} libohai-ruby1.8{a}
libopenid-ruby{a} libopenid-ruby1.8{a} libpcre3{a} libphonon4{a} libpng12-0{a} libpolyglot-ruby{a} libpthread-stubs0{a}
libpthread-stubs0-dev{a} libpulse-mainloop-glib0{a} libpulse0{a} libqt4-assistant{a} libqt4-dbus{a} libqt4-designer{a} libqt4-dev{a}
libqt4-help{a} libqt4-multimedia{a} libqt4-network{a} libqt4-opengl{a} libqt4-opengl-dev{a} libqt4-qt3support{a} libqt4-script{a}
libqt4-scripttools{a} libqt4-sql{a} libqt4-sql-mysql{a} libqt4-svg{a} libqt4-test{a} libqt4-webkit{a} libqt4-xml{a}
libqt4-xmlpatterns{a} libqtcore4{a} libqtgui4{a} librack-ruby{a} librack-ruby1.8{a} librb-inotify-ruby1.8{a} libreadline5{a}
librestclient-ruby{a} librestclient-ruby1.8{a} libruby1.8{a} libsctp1{a} libsm6{a} libsndfile1{a} libstdc++6-4.4-dev{a}
libsystemu-ruby1.8{a} libtiff4{a} libtimedate-perl{a} libtreetop-ruby{a} libuuidtools-ruby{a} libuuidtools-ruby1.8{a} libvorbis0a{a}
libvorbisenc2{a} libx11-dev{a} libxau-dev{a} libxcb1-dev{a} libxdamage1{a} libxdmcp-dev{a} libxfixes3{a} libxi6{a} libxml-ruby1.8{a}
libxml2{a} libxrender1{a} libxt6{a} libxtst6{a} libxxf86vm1{a} libyajl-ruby{a} linux-libc-dev{a} lksctp-tools{a} make{a}
manpages-dev{a} merb-core{a} mesa-common-dev{a} mysql-common{a} ohai{a} openjdk-6-jre-headless{a} openjdk-6-jre-lib{a} patch{a}
perl{a} perl-modules{a} qt4-qmake{a} qt4-qtconfig{a} rabbitmq-server{a} rake{a} ruby{a} ruby-ipaddress{a} ruby-mixlib-shellout{a}
ruby1.8{a} ruby1.8-dev{a} rubygems{a} rubygems1.8{a} sgml-base{a} shared-mime-info{a} thin{a} thin1.8{a} ttf-dejavu-core{a}
tzdata-java{a} unzip{a} wwwconfig-common{a} x11-common{a} x11proto-core-dev{a} x11proto-input-dev{a} x11proto-kb-dev{a} xml-core{a}
xtrans-dev{a} zip{a}
0 packages upgraded, 243 newly installed, 0 to remove and 0 not upgraded.
Need to get 176 MB of archives. After unpacking 556 MB will be used.
The following packages have unmet dependencies:
chef-solr: Depends: solr-jetty (>= 1.4.0) which is a virtual package.
The following actions will resolve these dependencies:

Keep the following packages at their current version:
1) chef-expander [Not Installed]
2) chef-server [Not Installed]
3) chef-server-api [Not Installed]
4) chef-server-webui [Not Installed]
5) chef-solr [Not Installed]

Accept this solution? [Y/n/q/?]

It seems that solr-jetty does not exist in APT repos. However it’s listed in the repos for sid.
According to this page, we can use the repos for squeeze by opscode.
Thus just add this line to /etc/apt/sources.list:

deb http://apt.opscode.com/ squeeze main

Then I’ve got solved the problem. Following is the result:

~# aptitude update
~# aptitude install chef chef-server
The following NEW packages will be installed:
ant{a} ant-optional{a} apache2-utils{a} binutils{a} build-essential{a} bzip2{a} ca-certificates-java{a} chef chef-expander{a}
chef-server chef-server-api{a} chef-server-webui{a} chef-solr{a} couchdb{a} cpp{a} cpp-4.4{a} dbus{a} default-jre-headless{a} defoma{a}
dpkg-dev{a} erlang-base{a} erlang-crypto{a} erlang-inets{a} erlang-mnesia{a} erlang-os-mon{a} erlang-public-key{a}
erlang-runtime-tools{a} erlang-snmp{a} erlang-ssl{a} erlang-syntax-tools{a} erlang-tools{a} erlang-webtool{a} erlang-xmerl{a}
fakeroot{a} fontconfig{a} fontconfig-config{a} g++{a} g++-4.4{a} gcc{a} gcc-4.4{a} gcj-4.4-base{a} gcj-4.4-jre-lib{a} glassfish-mail{a}
hicolor-icon-theme{a} java-common{a} javascript-common{a} jetty{a} jsvc{a} libabstract-ruby1.8{a} libaccess-bridge-java{a}
libaccess-bridge-java-jni{a} libaddressable-ruby{a} libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-merge-perl{a}
libamqp-ruby{a} libapr1{a} libaprutil1{a} libasound2{a} libasyncns0{a} libatk1.0-0{a} libatk1.0-data{a} libaudio2{a} libavahi-client3{a}
libavahi-common-data{a} libavahi-common3{a} libbcel-java{a} libboost-dev{a} libboost1.42-dev{a} libbunny-ruby{a} libbunny-ruby1.8{a}
libc-dev-bin{a} libc6-dev{a} libcairo2{a} libcap2{a} libcoderay-ruby{a} libcoderay-ruby1.8{a} libcommons-beanutils-java{a}
libcommons-codec-java{a} libcommons-collections3-java{a} libcommons-compress-java{a} libcommons-csv-java{a} libcommons-daemon-java{a}
libcommons-dbcp-java{a} libcommons-digester-java{a} libcommons-fileupload-java{a} libcommons-httpclient-java{a} libcommons-io-java{a}
libcommons-logging-java{a} libcommons-pool-java{a} libcups2{a} libdaemons-ruby1.8{a} libdatrie1{a} libdb-je-java{a} libdb4.7{a}
libdb4.7-java{a} libdb4.7-java-gcj{a} libdbus-1-3{a} libdep-selector-ruby{a} libdpkg-perl{a} libdrm-intel1{a} libdrm-radeon1{a}
libdrm2{a} libecj-java{a} libem-http-request-ruby{a} liberubis-ruby{a} liberubis-ruby1.8{a} libescape-utils-ruby{a}
libeventmachine-ruby{a} libeventmachine-ruby1.8{a} libexpat1{a} libextlib-ruby{a} libextlib-ruby1.8{a} libfast-xs-ruby{a}
libffi-ruby1.8{a} libffi5{a} libflac8{a} libfont-freetype-perl{a} libfontconfig1{a} libfontenc1{a} libfssm-ruby1.8{a} libgcj-bc{a}
libgcj-common{a} libgcj10{a} libgecode-dev{a} libgecode27{a} libgeronimo-jta-1.0.1b-spec-java{a} libgif4{a} libgl1-mesa-dev{a}
libgl1-mesa-dri{a} libgl1-mesa-glx{a} libglib2.0-0{a} libglib2.0-data{a} libglu1-mesa{a} libglu1-mesa-dev{a} libgmp3c2{a}
libgnuinet-java{a} libgnujaf-java{a} libgnumail-java{a} libgomp1{a} libgtk2.0-0{a} libgtk2.0-bin{a} libgtk2.0-common{a}
libhaml-ruby1.8{a} libhighline-ruby{a} libhighline-ruby1.8{a} libhmac-ruby1.8{a} libice6{a} libicu44{a} libicu4j-java{a}
libinotify-ruby1.8{a} libjasper1{a} libjaxp1.3-java{a} libjaxp1.3-java-gcj{a} libjetty-extra{a} libjetty-extra-java{a} libjetty-java{a}
libjline-java{a} libjpeg62{a} libjs-jquery{a} libjson-ruby{a} libjson-ruby1.8{a} libjtidy-java{a} liblcms1{a} liblog4j1.2-java{a}
liblog4j1.2-java-gcj{a} liblucene2-java{a} libmerb-assets-ruby{a} libmerb-assets-ruby1.8{a} libmerb-core-ruby1.8{a} libmerb-haml-ruby{a}
libmerb-haml-ruby1.8{a} libmerb-helpers-ruby{a} libmerb-helpers-ruby1.8{a} libmerb-param-protection-ruby{a}
libmerb-param-protection-ruby1.8{a} libmime-types-ruby{a} libmixlib-authentication-ruby{a} libmixlib-authentication-ruby1.8{a}
libmixlib-cli-ruby{a} libmixlib-cli-ruby1.8{a} libmixlib-config-ruby{a} libmixlib-config-ruby1.8{a} libmixlib-log-ruby{a}
libmixlib-log-ruby1.8{a} libmng1{a} libmoneta-ruby{a} libmoneta-ruby1.8{a} libmozjs2d{a} libmpfr4{a} libmx4j-java{a} libmysqlclient16{a}
libnet-ssh-gateway-ruby1.8{a} libnet-ssh-multi-ruby{a} libnet-ssh-multi-ruby1.8{a} libnet-ssh2-ruby{a} libnet-ssh2-ruby1.8{a}
libnspr4-0d{a} libnss3-1d{a} libogg0{a} libohai-ruby{a} libohai-ruby1.8{a} libopenid-ruby{a} libopenid-ruby1.8{a} libpango1.0-0{a}
libpango1.0-common{a} libpcre3{a} libphonon4{a} libpixman-1-0{a} libpng12-0{a} libpolyglot-ruby{a} libportlet-api-2.0-spec-java{a}
libpthread-stubs0{a} libpthread-stubs0-dev{a} libpulse-mainloop-glib0{a} libpulse0{a} libqt4-assistant{a} libqt4-dbus{a}
libqt4-designer{a} libqt4-dev{a} libqt4-help{a} libqt4-multimedia{a} libqt4-network{a} libqt4-opengl{a} libqt4-opengl-dev{a}
libqt4-qt3support{a} libqt4-script{a} libqt4-scripttools{a} libqt4-sql{a} libqt4-sql-mysql{a} libqt4-svg{a} libqt4-test{a}
libqt4-webkit{a} libqt4-xml{a} libqt4-xmlpatterns{a} libqtcore4{a} libqtgui4{a} librack-ruby{a} librack-ruby1.8{a}
librb-inotify-ruby1.8{a} libreadline5{a} libregexp-java{a} librestclient-ruby{a} librestclient-ruby1.8{a} libruby1.8{a} libsctp1{a}
libservlet2.5-java{a} libslf4j-java{a} libsm6{a} libsndfile1{a} libstdc++6-4.4-dev{a} libsystemu-ruby1.8{a} libthai-data{a} libthai0{a}
libtiff4{a} libtimedate-perl{a} libtomcat6-java{a} libtreetop-ruby{a} libuuidtools-ruby{a} libuuidtools-ruby1.8{a} libvorbis0a{a}
libvorbisenc2{a} libx11-dev{a} libxau-dev{a} libxcb-render-util0{a} libxcb-render0{a} libxcb1-dev{a} libxcomposite1{a} libxcursor1{a}
libxdamage1{a} libxdmcp-dev{a} libxerces2-java{a} libxerces2-java-gcj{a} libxfixes3{a} libxfont1{a} libxft2{a} libxi6{a} libxinerama1{a}
libxml-commons-external-java{a} libxml-ruby1.8{a} libxml2{a} libxrandr2{a} libxrender1{a} libxt6{a} libxtst6{a} libxxf86vm1{a}
libyajl-ruby{a} linux-libc-dev{a} lksctp-tools{a} make{a} manpages-dev{a} merb-core{a} mesa-common-dev{a} mime-support{a}
mysql-common{a} ohai{a} openjdk-6-jre{a} openjdk-6-jre-headless{a} openjdk-6-jre-lib{a} patch{a} perl{a} perl-modules{a} python{a}
python-minimal{a} python2.6{a} python2.6-minimal{a} qt4-qmake{a} qt4-qtconfig{a} rabbitmq-server{a} rake{a} ruby{a} ruby-ipaddress{a}
ruby-mixlib-shellout{a} ruby1.8{a} ruby1.8-dev{a} rubygems{a} rubygems1.8{a} sgml-base{a} shared-mime-info{a} solr-common{a}
solr-jetty{a} thin{a} thin1.8{a} ttf-dejavu-core{a} ttf-dejavu-extra{a} tzdata-java{a} unzip{a} wwwconfig-common{a} x-ttcidfont-conf{a}
x11-common{a} x11proto-core-dev{a} x11proto-input-dev{a} x11proto-kb-dev{a} xfonts-encodings{a} xfonts-utils{a} xml-core{a}
xtrans-dev{a} zip{a}
0 packages upgraded, 338 newly installed, 0 to remove and 0 not upgraded.
Need to get 258 MB of archives. After unpacking 749 MB will be used.
Do you want to continue? [Y/n/?]