デジタルコンテンツを売っているようなインターネットサービスを運営していると、
たまに商売の基本を忘れることがある。
◆安く仕入れて高く売る。
学生時代バイトしていたバーでは、珍しいウィスキーをオークションで仕入れて、
たしか利益率30~40%で価格設定していた。
制作コストと価格設定の見直しを定期的にしてみてもいいかもしれない。
◆客に「この商品でこの値段はお得!」と思わせる。
またバーでのバイトを例に挙げると、1ショット3000円とかするウィスキーでも
「この酒でこの値段は安すぎる!」と言って注文するお客さんも普通にいた。
もちろん、ウィスキーの価値が分からない学生に対してどれだけそのお酒が珍しくて
美味しいかを説明したところで、きっと500円のハイネケンしか注文しない。
だからそもそも注文取る時に薦めたりしない。
客とのコミュニケーションを通じて、この人にお薦めしたら
客も僕らもハッピーになると思った人にしか売らない。
バーのマスターが(客に対してもw)よく言っていた。
「自分が本当にいいと思ったお酒を提供して、お客様に幸せになって欲しい。
だからそのお酒がどのように造られていて、どんな味なのか、
その価値を常に勉強して知っておくのは当然。
そしてできる限り安く提供する。
とはいえ、商売だから利益が出るようにするけど。
でもその利益は次のお客様が幸せになってもらう為にある。」
自分たちが扱う商品について愛をもって知る努力と、
客も売り手もハッピーになる、を心に留めておくことは大事。
◆一見さんにはちやほやする。
常連さんと一見さんを全く同じように扱う店は全くもって皆無なはず。
またまたバーの例。
一見さんに対してはメニューの説明も懇切丁寧にするし、試食もさせるし、
オーダーも最優先で通すし、世間話するときも絶対にお客様を否定しないよう注意する。
要は、また来てもらいたいから「ちやほや」してあげる。
一見さんに対して僕のケアが遅れたり間違ったりすると、よくマスターに、
「お前は今お客様に嫌な思いをさせた。それは取り返しのつかないことだ。
どんなにフォローしても、その時お客様が感じた嫌な気持ちを時間をさかのぼって
消すことは不可能なんだよ。」
とめちゃくちゃに怒られた。
一見さんには細心の注意を払ってケアするのに対し、常連さんにはかなりテキトー。
オーダーも後回しにするし。「いい加減もう帰れ!」とか言う。
でも、常連さんにしか出さない裏メニューがあったり、水割りの濃さをその人に合わせて調節したり、
新しいお酒は優先的に薦めたりの特別扱いはしていた。
初期ユーザーと、ヘビーユーザーとでケアの仕方を変える、
やって当然のことかもしれない。
こう改めて考えてみると、まだまだ打つ手はたくさんありそうだと気付く。
AndroidはUIの実装がけっこう大変。慣れるまでは。
今回はListActivityを継承したクラスを使用して、
最終的に次のようなレイアウトを出力しようとしています。
特に注目するのはListViewの部分。
ListView内の要素は3つ以下で可変で、
各要素内のTextViewの長さが要素により異なるので
各要素のRootであるLinearLayoutのHeightも要素により異なります。
ListViewはどんな要素が入ろうと、スクロールバーは表示させず、
要素の大きさに合わせて自身の大きさを動的に変更したい。。。
2,3日ハマりましたが、ようやく解決策を見つけました。
Activityのメソッドで
public void onWindowFocusChanged (boolean hasFocus)
ってのがあります。こいつをoverrideして、その中で、getListViewでListViewを取得します。
子Viewも取得できるので子ViewのHeightを取得します。
すべての子ViewのHeightの和をListViewのHeightに設定しなおせば完了!
この処理をhasFocusがtrueの時且つ、子ViewのHeightの和 ≠ ListViewのHeightの時に行います。
Adapter内でいろいろいじくったり、ListViewを継承していじくったり、
いろいろ試行錯誤しましたが結局この方法に落ち着きました。
今回はListActivityを継承したクラスを使用して、
最終的に次のようなレイアウトを出力しようとしています。
特に注目するのはListViewの部分。
ListView内の要素は3つ以下で可変で、
各要素内のTextViewの長さが要素により異なるので
各要素のRootであるLinearLayoutのHeightも要素により異なります。
ListViewはどんな要素が入ろうと、スクロールバーは表示させず、
要素の大きさに合わせて自身の大きさを動的に変更したい。。。
2,3日ハマりましたが、ようやく解決策を見つけました。
Activityのメソッドで
public void onWindowFocusChanged (boolean hasFocus)
ってのがあります。こいつをoverrideして、その中で、getListViewでListViewを取得します。
子Viewも取得できるので子ViewのHeightを取得します。
すべての子ViewのHeightの和をListViewのHeightに設定しなおせば完了!
この処理をhasFocusがtrueの時且つ、子ViewのHeightの和 ≠ ListViewのHeightの時に行います。
Adapter内でいろいろいじくったり、ListViewを継承していじくったり、
いろいろ試行錯誤しましたが結局この方法に落ち着きました。
すごい。欲しい!
ADP2がネットにつながり、早速アプリをDLしました。
ちょこちょこ使うこと10分。。。
これ、iPhoneより流行るかも・・・と思いました。
僕はiPhoneユーザーでiPhoneの操作に慣れているので
初めは多少の操作法の違いに戸惑ったものの、iPhoneとの決定的な違いに感動しました。
それは、Androidはマルチプロセスだってとこ。
これはスマートフォンのヘビーユーザーであればあるほど
(いろんなアプリを行ったり来たりする)
その仕様の恩恵をジワジワ感じることだろうと思います。
そして、マルチプロセスのAndroidに慣れれば慣れるほど、
再度iPhoneに触れた時、その仕様に苛立ちさえ覚えるんじゃなかろうか。。。
とはいえ、スクロールのスムーズさやタッチに対する感度や操作バリエーションは
iPhoneのほうがより「クール」な感じがあります。(やっぱAppleだなぁって感じ)
iPhone大好き人間、Apple大好き人間は頑なにiPhone使い続けるだろうなぁ。
ちょこちょこ使うこと10分。。。
これ、iPhoneより流行るかも・・・と思いました。
僕はiPhoneユーザーでiPhoneの操作に慣れているので
初めは多少の操作法の違いに戸惑ったものの、iPhoneとの決定的な違いに感動しました。
それは、Androidはマルチプロセスだってとこ。
これはスマートフォンのヘビーユーザーであればあるほど
(いろんなアプリを行ったり来たりする)
その仕様の恩恵をジワジワ感じることだろうと思います。
そして、マルチプロセスのAndroidに慣れれば慣れるほど、
再度iPhoneに触れた時、その仕様に苛立ちさえ覚えるんじゃなかろうか。。。
とはいえ、スクロールのスムーズさやタッチに対する感度や操作バリエーションは
iPhoneのほうがより「クール」な感じがあります。(やっぱAppleだなぁって感じ)
iPhone大好き人間、Apple大好き人間は頑なにiPhone使い続けるだろうなぁ。
Wi-Fi接続でADP2使いたくて
BuffaloのWLI-UC-GN を購入。1700円くらいだった。
こいつをLANに繋がったPCにUSB接続して、
親機モードで動かす。
あとはSSIDやキーの設定をしてやると
その接続でADP2が無事ネットにつながった。
SIMカード無しアクティベートしてあるし、
電話はできないがこれでネットは使いたいほうだい!
これでようやくAndroidMarket使えるのかな。
BuffaloのWLI-UC-GN を購入。1700円くらいだった。
こいつをLANに繋がったPCにUSB接続して、
親機モードで動かす。
あとはSSIDやキーの設定をしてやると
その接続でADP2が無事ネットにつながった。
SIMカード無しアクティベートしてあるし、
電話はできないがこれでネットは使いたいほうだい!
これでようやくAndroidMarket使えるのかな。
無事にrootユーザーになれたので、
さっそくSIM無しアクティベート。
これはこことか を参考にさくっと。
sqlite3コマンドが無かったのが面倒だったくらいで、あとはすんなり。
問題はWiFi接続。。。
会社の無線LANが使えればいいのに><。。。
ネット接続は家だけでやるしかないのかなぁ。。。
さっそくSIM無しアクティベート。
これはこことか を参考にさくっと。
sqlite3コマンドが無かったのが面倒だったくらいで、あとはすんなり。
問題はWiFi接続。。。
会社の無線LANが使えればいいのに><。。。
ネット接続は家だけでやるしかないのかなぁ。。。
先日ADP2が届いてテンションMAXだったが
suしたら「permission denied」って起こられてSIMなしアクティベートできず凹んだ。
いろいろ探してやっとこさrootユーザーになることができたので、
やり方メモっときます。
ものすごく簡単です。
ここのFAQ にあるとおりにやればできます!
[以下引用]
---------------------------------------------------------
Put your phone back into fastboot mode (back and power button)
then fastboot amon_ra's fantastic recovery img.
e.g fastboot boot recovery.img
then run from your pc the following:
(assuming of course you have the andriod sdk installed)
adb shell
mount /system
cd /system/bin
cat sh > su
chmod 4755 su
reboot
And now your sorted with a nice rooted phone
---------------------------------------------------------
要するに流れは、
1.amon_raさんという方のfantasticなリカバリimage kernelを使用してbootする。
2.adb shell ~ reboot までのコマンドを順番に入力
以上!
では順番に説明していきます。
(※もちろんAndroidSDKインストール済み、必要なPathは通してある前提です。)
1.amon_raさんという方のfantasticなリカバリimage kernelを使用してbootする。
1)端末をfastbootモードにする。
Backボタン(右下の矢印ボタン)を押しながら電源を入れると写真のような画面になります。
2)端末をPCに接続する。
3)あらかじめamon_raさんのimage kernelをダウンロードして適当な場所に置いておく。
ダウンロードはこちらから。
今回はrecovery-RA-sapphire-v1.5.2G.imgを使わせて頂きました。
そんでもってC:\downloadフォルダにおきました。
4)コマンドプロンプトから、下記コマンドを入力
fastboot boot recovery-RA-sapphire-v1.5.2G.img
「booting...OKAY」と出れば成功。
端末が下のような画面になりますがそのまま放置します。
2.adb shell ~ reboot までのコマンドを順番に入力
特に特筆することはありません。そのまま順番に入力していきます。
一応、1.の分も含め今回入力したコマンドは下のとおり。
※見え辛かったらゴメンなさい。。。
最後のコマンド、rebootを入力すると端末が再起動します。
以上で終了です。
再起動後、adb shellからsuすると問題なくrootになれました^^
これでようやくSIM無しアクティベートの作業に入ることができます☆
suしたら「permission denied」って起こられてSIMなしアクティベートできず凹んだ。
いろいろ探してやっとこさrootユーザーになることができたので、
やり方メモっときます。
ものすごく簡単です。
ここのFAQ にあるとおりにやればできます!
[以下引用]
---------------------------------------------------------
Put your phone back into fastboot mode (back and power button)
then fastboot amon_ra's fantastic recovery img.
e.g fastboot boot recovery.img
then run from your pc the following:
(assuming of course you have the andriod sdk installed)
adb shell
mount /system
cd /system/bin
cat sh > su
chmod 4755 su
reboot
And now your sorted with a nice rooted phone
---------------------------------------------------------
要するに流れは、
1.amon_raさんという方のfantasticなリカバリimage kernelを使用してbootする。
2.adb shell ~ reboot までのコマンドを順番に入力
以上!
では順番に説明していきます。
(※もちろんAndroidSDKインストール済み、必要なPathは通してある前提です。)
1.amon_raさんという方のfantasticなリカバリimage kernelを使用してbootする。
1)端末をfastbootモードにする。
Backボタン(右下の矢印ボタン)を押しながら電源を入れると写真のような画面になります。
2)端末をPCに接続する。
3)あらかじめamon_raさんのimage kernelをダウンロードして適当な場所に置いておく。
ダウンロードはこちらから。
今回はrecovery-RA-sapphire-v1.5.2G.imgを使わせて頂きました。
そんでもってC:\downloadフォルダにおきました。
4)コマンドプロンプトから、下記コマンドを入力
fastboot boot recovery-RA-sapphire-v1.5.2G.img
「booting...OKAY」と出れば成功。
端末が下のような画面になりますがそのまま放置します。
2.adb shell ~ reboot までのコマンドを順番に入力
特に特筆することはありません。そのまま順番に入力していきます。
一応、1.の分も含め今回入力したコマンドは下のとおり。
※見え辛かったらゴメンなさい。。。
最後のコマンド、rebootを入力すると端末が再起動します。
以上で終了です。
再起動後、adb shellからsuすると問題なくrootになれました^^
これでようやくSIM無しアクティベートの作業に入ることができます☆
ついに届きました!
Android Dev Phone2
開発者用のAndroid携帯端末です!
注文してから3日ほどで届くという驚きの早さです!
裏にはAndroidちゃんのマークが!
テンション上がります↑
裏カバーをは完全に外せます。
SIMカードとバッテリーをセットすれば準備完了!
電源を入れてアクティベートすれば夢のAndroid生活の始まりです!
が、どのSIMを使うかが問題。。。
個人で所有しているケータイはiPhoneのみなので、
SIMカード取り出せないし、そもそも通信料がハンパないことになりそう。
そんな問題を解決する裏技的な情報がネット上には多々あるのですが、
やってみようか、どうしようか。。。
Android Dev Phone2
開発者用のAndroid携帯端末です!
注文してから3日ほどで届くという驚きの早さです!
裏にはAndroidちゃんのマークが!
テンション上がります↑
裏カバーをは完全に外せます。
SIMカードとバッテリーをセットすれば準備完了!
電源を入れてアクティベートすれば夢のAndroid生活の始まりです!
が、どのSIMを使うかが問題。。。
個人で所有しているケータイはiPhoneのみなので、
SIMカード取り出せないし、そもそも通信料がハンパないことになりそう。
そんな問題を解決する裏技的な情報がネット上には多々あるのですが、
やってみようか、どうしようか。。。



