Yahoo!モバゲーについてちょっと考えてみる

近頃、猫も杓子もソーシャルゲーム、ソーシャルアプリと賑わっていますね。そんな中、Yahoo JAPANとDeNAの作るYahoo!モバゲーの詳細がつい先日発表されました。

実際どれくらい流行るのかなーっと、ビジネスについては全くの素人ですが、考察してみます。

ポジティブな理由

  • Yahooのトップは日本では強い。
  • Yahooのプロモーションの動線がすごい。(トピックスの上やサイドバーの広告)
  • DeNAはソーシャルアプリ、ゲームのノウハウを持っている。

なんだかんだで日本ではYahooはやっぱり強いですよね。技術系の人間だとYahooはあまり見ないと思うのですが、一般にYahooトピックスを見てる人は多いです。

そのYahooのプロモーションがはんぱなくて、トピックスの真上の枠や、サイドバーの大きい枠とかで、大々的に宣伝するらしいです。この動線は、日本では最強に近いのではないのでしょうか。

また、モバゲーを作っているDeNAはソーシャルゲームを作るノウハウをもっているので、比較的良いコンテンツが作れると思います。

ネガティブな理由

  • DeNAがPC向けサービスをちゃんと作れるか怪しい。
  • 利用にはYahoo!JAPAN IDとモバゲーIDが必要。(既存のYahooのユーザが、わざわざモバゲーのIDを登録しないといけない)

DeNAは、これまで主にケータイ向けのサービスしかやってきていないので、PC向けにちゃんとサービスを作れるか見積もれないところが、危険なところかなーって思います。まあ、ただ、YahooはPC最強なので、上手くやればちゃんとしたものが作れるんじゃないのかな。

一つ変だなーと思ったのは、利用するのに、Yahooとモバゲーの両方のID登録が必要なことです。これはユーザ的に面倒で、このステップで止めてしまう人が多いのではないのでしょうか。Yahoo!モバゲーだけでいいので、どちらか1個のID持っていれば遊べるようにしたほうが良いと思います。

まとめ

結論として、Yahoo!モバゲーは結構いけるんじゃないのかなーっと思います。

ブラウザ三国志とか、直ぐに出してきそうですね(・w・)

curlの簡単な使い方

これまでダウンローダーとしてwgetを使っていたのですが、macには標準ではcurlしか入っていないし、調べてみるとcurlは色々オプションがあって便利そうだったので、これからはcurlを使おうと思った次第。

このサイトのcurlの解説記事 を参考に使ってみました。

1. ファイルのダウンロード

$ curl -O http://www.google.com/intl/en_ALL/images/srpr/logo1w.png

-Oオプションを付けてURLを指定するだけみたいです。この場合ファイル名はリモートのファイル名になります。

2. ファイル名を指定してダウンロード

ファイル名を指定してダウンロードする場合は、

$ curl -o index.html http://www.google.com/

-o(小文字)のオプションでローカルに保存するファイル名を指定するば良いいみたいです。

3. Basic認証の突破

意外に便利なのはBasic認証の突破の機能。

$ curl -u username http://some.secure.site.com/

とコマンドを叩いた後にパスワードが聞かれるので入力すれば、Basic認証がかかっていてもアクセスできます。プライベートなサイトにおいてあるファイルを拾ってくるときに便利です。

細かなオプションを覚えるのが大変ですが、使いこなすことができればwgetより便利。

OpenDNSの名前解決が変な時の対処方法

普段、DNSサーバーはOpenDNSを使っているのですが、ごくごくたまーに名前解決が変なことがあります。会社の内部ページにアクセス出来なくなったりだとか、Googleが表示されなくなったりだとか、svnの更新が上手くいかなかったりだとか。。。

そういう時の対処方法としては、なんのことはないのですが、一度OpenDNSの設定を消して、ネットワークの再接続するのが手っ取り早くていいです。

つまりネットワークの設定のDNS Serverの 208.67.220.220, 208.67.222.222 を消して、デフォルト(ルーターのアドレスなど)に戻して、再接続です。

そのあと、問題のあるサーバーにアクセスしてみて、正常につながればOK (v^ー°)

一度アクセス出来てしまえば、OpenDNSの設定に戻しても大丈夫みたいです。(キャッシュがローカルに残っているからかな?) (でも、しばらく正常にアクセスできなくなることが多い・・・)

しかし、これをやっても一時しのぎに過ぎなくて、根本的な解決になっていないのが問題。どうしてこんなことが起きるのだろう。

TokyoTyrantをpythonからたたく@Mac OS X

memcacheにつづいてTokyoTyrantもpythonからたたいてみました。

ちょっとハマった所があったので、備忘録としてまとめておきますー。

TokyoTyrantのインストール

MacPortsを使えば一発でした。

$ sudo port install tokyotyrant

TokyoTyrantの起動

TokyoTyrantの起動については、デフォルトで付いてきたttservctlという起動スクリプトを使ってデーモンで動かすことも出来ますし、自分ttserverコマンドで起動することも出来ます。

ttservctlを使う場合は

$ sudo tservctl start

で起動出来ます。デフォルトでは/var/ttserverの下に関連ファイルが保存されました。

しかし、初期設定ではログを吐いてくれません。ttservctlのスクリプトの

#logfile="$basedir/log"

という行のコメントを外し、TokyoTyrantを再起動することで/var/ttserver/logにログが記録されるようになりました。


ただローカルでテストする場合に、わざわざデーモンで起動するのもなんなんで、ttserverでフォアグランドで起動してテストすることにしました。

ttserverの場合は

$ ttserver -port 1978 hoge.tch

とコマンドを叩けば起動します。

portオプションで待ち受けポートが指定できるようです。
hoge.tchはデータを保存するファイル名(データベース名?)です。
注意点として、このファイル名の拡張子は.tchでないとダメなようです。他の拡張子や拡張子なしにした場合、TokyoTyrantの起動はするのですが、読み書き時にエラーを吐きやがります... (T-T )

virtualenvの作成

例のごとくvirtualenvを作って、pythonの環境をいじっても影響が最小限にとどまるようにします。

$ virtualenv tt-test
$ source tt-test/bin/activate

pytyrantのインストール

$ easy_install pytyrant

easy_installで大丈夫でした。python-memcacheはeasy_installが出来なかったのですが。。。

ソースはsvnで

$ svn co http://pytyrant.googlecode.com/svn/trunk/ pytyrant

で取ってくることができました。

サンプルコード

from pytyrant import PyTyrant

client = PyTyrant.open("localhost", 1978)

client["hoge"] = "hello world"

print client["hoge"]

del client["hoge"]

テスト

$ python tt-test.py

と実行して"hello world"と出れば正常みたいです。

PyTyrant.open(ホスト名, ポート番号)でクライアントオブジェクトを生成できるみたいです。

client["key"] で参照、client["key"] = value でデータの保存、del client["key"] でキーの削除が出来るみたいです。

memcacheクラアントからたたいてみる

TokyoTyrantは、memcacheのプロトコルに互換性があるらしいです。

python-memcacheを使って、ホストとポートをTokyoTyrantのものに変更するだけで、動きました。

これは便利かもー ( ̄ー ̄)

memcacheをpythonからたたく@Mac OS X

memcacheをpythonから叩いてみたので、めもめもφ(.. )メ
環境はMac OS X(Snow leopard)です。memcacheはMacportでインストールしました。

pythonのvirtualenvの作成

既存のpythonの環境を汚さないために、まずはいつも通りvirtualenvを作ります。

$ virtualenv memcache-test
$ source memcache-test/bin/activate

memcache-testといvirtualenvを作って、アクティベートしました。


memcacedの実行

テストの為にmemcachedを立ち上げます

$ memcached -p 11211 -m 64m -vv

オプションの意味は待ち受けのポートが11211で、サイズ64Mで、詳細ログを表示します。


python-memcacheのインストール

python-memcached をインストールします。(ftp.tummy.com:/pub/python-memcached/)

$ curl -O ftp://ftp.tummy.com/pub/python-memcached/python-memcached-latest.tar.gz
$ tar xzvf python-memcached-latest.tar.gz
$ cd python-memcached
$ python setup.py install

サンプルコード

import memcache

client = memcache.Client(["localhost:11211"])

client.set("test", "hello world")
value = client.get("test")

print value

テスト

$ python memcache-test.py

などと実行して、”hello world”と表示されれば正常です。

"None"と表示されれたときはmemcacheとの接続がうまくいっていません。ホストやポートが正しいか確認してください。

python-memcacheのおおざっぱな使い方

memcache.Clientは、memcacheクライアントオブジェクトで、コンストラクタにホスト名のリストを渡せばいいらしい。

Clientのメソッドにsetやdeleteやgetなどがあります。

client.set(key, value)で、memcacheに値を代入。

client.get(key)で、keyに対応するvalueを取得。

client.delete(key)で、対応するkeyをmemcache上から削除。

簡単ですね。

helllo world

hello world