back to home
ホームCONITについて業務内容CONIT LABS.採用情報お問い合わせ
  ホーム > CONIT Labs.
■CALENDAR■
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31    
<<前月 2010年03月 次月>>
■NEW ENTRIES■
■CATEGORIES■
■ARCHIVES■
■LINK■
■PROFILE■
■OTHER■
  • RSS 2.0
  • 処理時間 0.233042秒
  • なかのひと

 

「foursquare」はここがスゴい!
こんにちは、中島です。

今、特にiPhoneを楽しんでいる人の中で、「foursquare」というサービスが海外を中心に流行っています。


foursquare

このサービスは何かというと、自分がどこかのスポットに移動したらそこで「チェックイン」することで緯度経度が送られ、自分がどこで何回チェックインしたか、が集計されます。チェックインしようとすると、付近の名前の付いたスポットがいくつか出てきてその中から選ぶため、行こうとしているスポットがデータベース化できます。そしてスポットは、自分で作り、名付けることも出来ます。



チェックインする。コニットも登録した

チェックインはすればするほどポイントが貯まっていきます。ポイントをある程度貯めたりすると、名誉となる「バッヂ」がもらえます。バッヂは、さまざまな種類が用意されており、それぞれもらえる条件が違うので、そう簡単にコンプリートできないようになっています。


バッヂ

新たに場所を登録したりすると、「メイヤー」(市長?的なもの)として登録され、ちょっと嬉しいのです。


コニットのメイヤーになってる様子

登録した場所はこんな感じで地図と共に表示されます。



さて、ここまで説明しただけでは「で、何が面白いの?」となるかと思います。そりゃそうでしょう。これまでの説明だと単なるライフログです。自分の中で完結してしまっているようでは、いくら点数をもらったところで何も面白くありません。

foursquareのもう一つの特徴は、ソーシャルであることです。今やソーシャルという言葉を聞かない日は無いというくらいになっていますが、foursquareのソーシャル具合は、ちょっと進んでいます。
他のソーシャル系ゲームと同様、取得したポイントなどを友達と競う、友達を増やすとちょっと良いことがある、というものなのですが、どこにソーシャルグラフを置くか?にちょっと工夫があります。



foursquareはfacebook、Twitterとコネクトしますが、facebookアプリではないので、ユーザーIDの扱いは独自に管理するのと、facebookコネクトでfacebookに依存するのと、2通りのやり方を実装しています。これは以下のようなニーズを満たします。

独自にIDを管理する
facebookのIDを持っていない、iPhone好きな人が、AppStoreのランキングなどでfoursquareを見つけ、ダウンロード後にすぐに使えるようにする
Twitterのフィードでfoursquareを知った人が、facebookのIDを持っていなくても、すぐに使えるようにする

facebookコネクトを使う
facebookのIDを持っている人は、ワンクリックでIDを共通化できるので、とっても便利

です。あ、ちなみにクライアントのハードはiPhoneの他、Android、Blackberry、Palm、他フツーのモバイルに対応しています。基本的にモバイルを使って出先で遊ぶサービスです。

これのどこが進んでいるのかというと、foursquareにはこんなカラクリがあるんです。

foursquareのIDを単独で取って一人で遊んでいるだけでは、なかなか「友達」が増えていきません。foursquareの世界の中で友達と知り合えるきっかけは、「同じ場所にいる人」「その場所のメイヤーになってる人」で、今いる位置の緯度経度というカラムをキーとして知り合えるんですが、中々効率が悪いのです。
そこでfoursquareは、facebook・Twitterと繋がることにより、それぞれのソーシャルグラフの良いところを取ってこれるように作られています。



foursquare上から、自分のfacebookアカウントやTwitterアカウントと結びつけると、foursquareは「facebook(もしくはTwitter)の友達で同様にfoursquareのIDを持っている人一覧をDBをゴリゴリ回してリストアップし、一気にfoursquare内の友達にしちゃってもいい?(Y/N)」みたいに聞いてくるんです。ここでOKすると、facebookやTwitterで繋がってる人(=既に知り合いな人)が一気にfoursquareに、しかもfacebookユーザー+Twitterユーザーの足し算として加わるので、寂しくないのです。ゲームの最初から、facebookやTwitterの仲間と一緒に遊べてしまうんですね。

この柔軟性はfoursquareに大きなバイラル性をもたらしています。もしfoursquareがfacebookのアプリだったら、facebookの中だけでのバイラルで終わってしまうので、これほどバイラル性を持たせられなかっただろうし、日本で流行ることは無かったのではないでしょうか。
facebookアプリをはじめmixiアプリもそうですが、SNS上でアプリを展開することの意味というのは、そこに友達がいるからある意味「閉鎖空間であるSNSで口コミを広げる」ことができ、友達がいるから「何でもない情報が意味を持ち始める」からです。
その必要条件さえ満たすことができれば、何もfacebookアプリに限定する必要もないのです。foursquareのように自前でソーシャルグラフを持っていても、facebookコネクトと、Twitter OAuthで、ソーシャルグラフの美味しい部分は取り込めるわけですね~。
私がfoursquareについて一番スゴい!と思ったのはまさにそこです。大きい物には巻かれた方が良いですね~(笑)

| http://www.conit.co.jp/labs/index.php?e=313 |
| iPhone | 01:32 PM | comments (0) | trackback (0) |
TwitterCounterさんのパーツを使ってみた。
http://twittercounter.com
さんでこんな↓ガジェットがあったので使ってみました。

twitter名の入力だけで簡単に使えます。

ちいさいず


だいさいず



しかしTWITTER関連のサービスでは、軒並み小鳥さんがカワイくできてる。


| http://www.conit.co.jp/labs/index.php?e=312 |
| 雑談 | 10:17 AM | comments (0) | trackback (0) |
GAEのExpandoモデルの全プロパティにアクセスする
こんにちは。ヘビが大嫌いPython好きの高浦です。

最近GAEのPythonを使っているので今日はちょいテクを綴ってみようと思います。

GAEのデータストアには動的にプロパティを追加、削除できるExpandoモデルというのがあります。
RPGのゲームを作ろうと思ったときに、次のようにExpandoモデルで持っているアイテムのクラスを作ったとします。

class ItemData(db.Expando):
sword = db.IntegerProperty()
shield = db.IntegerProperty()
armor = db.IntegerProperty()

このクラスのインスタンス(itemData)には後から自由にプロパティを追加出来ます。例えば薬草(yakuso)を1つ拾ったときは

itemData.yakuso = 1
itemData.put()

とすることで追加出来ます。

さて、アイテムを使おうとしてメニューを開いて一覧で表示するにはどうすればいいでしょうか?dynamic_properties()というインスタンスメソッドを使うとExpandモデルのクラスが持っている属性全てを返してくれます。

for item in itemData.dynamic_properties():
print item # 持っているアイテムの名前を表示してくれる
print itemData.__getattr__(item) # 持っているアイテムの個数を表示してくれる

イテレータって便利ですね。

| http://www.conit.co.jp/labs/index.php?e=311 |
| Google App Engine | 09:46 PM | comments (0) | trackback (0) |
GITを試す
Hi 開発team佐々木です。

今更ながらGITを試してみたいと思います。

<GITインストール>
MacOSXへのインストールは簡単です。

こちらからダウンロードして、
インストーラーを実行するだけです。

今日現在の最新版は1.7.0のようですね。
私の環境IntelMac(SnowLeopard)では問題なくインストールできました。

試しにターミナルからそっと"git <Enter>"とタイプしたところ、
usageが、どばどばどばっとSTDOUTにPRINTされました。

<動作確認:AppSalesMobileのビルド>

何はともあれ、サーバからソースを取得
git clone git://github.com/omz/AppSales-Mobile.git appsales.git


おっOK!

XCodeで開く。
open AppSalesMobile.xcodeproj

以後特記事項はなし。普通にビルドしてインストールできました。

ここまでは、svnと何らかわりないですね。

まだまだ自分でリポジトリを管理したりコミットしたりは出来ませんが、
gitレベルが2に上がる事ができました。
では、またの機会に。




| http://www.conit.co.jp/labs/index.php?e=310 |
| 雑談 | 03:43 PM | comments (0) | trackback (0) |
Google App Engine 使ってみよう!!
こんにちは阿久津です。

激務な日々が続いておりますが、技術の進歩に置いていかれないよう
Google App Engine(以下GAE)をちょこっと触ってみました。

触れてみたのは、Google App Engine for pythonです。

まずは、 google App Engineのスタートガイド Python編から学習してみました。
今回pythonに触れたのは、初めてでしたがこのスタートガイドにてある程度GAEにてどのように構築していけば良いか
数時間で理解できると思います。(まだまだ、奥は深いとおもいますが・・・)

データストア(for python)については、今後も色々と学習していかないといけないなぁ〜と思っておりますが、
今回学んだことを簡単に記載しておきます。

まずデータストアにデータを格納するためには
データモデルなるものを定義し
そのモデルのインスタンスを生成しエンティティとして格納する。
モデルのためのインタフェースは以下3つが用意されています。(詳細は、googleのドキュメントを見てね)
・Model
・Expando
・PolyModel

今回は、はじめの一歩なので無難にModelインタフェースを継承したモデルクラスを定義してみました。
こんな感じに・・・・




class User(db.Model):
userid=db.StringProperty
username=db.StringProperty


これでモデルクラスの準備はOK!!

次にこのモデルクラスのインスタンスを生成して、エンティティを作成しデータストアに格納することをしてみます。
まずは、単純にUserのインスタンスを生成する際にuseridとusernameをセットしみる。




user=User(userid="xxxx",username="Conit太郎") <-- インスタンスの生成
user.put() <--- データストアに格納


GAEに格納されるエンティティは、一意の識別子を持っています。
ID/Nameというプロパティがそうです。
上記の方法ですと、GAEが勝手に一意のID識別子を作成し登録されています。

では、Nameを使用するにはどうすれば良いのか?

以下のとおりです。




user=User(key_name="conit0123",userid="xxxx",username="Conit太郎")
user.put()


GAEにて上記のデータ格納を実行してみました。
1件登録するのに、だいたい0.05秒でした。

で一揆に1万件登録してみようと思い実行したら・・・
サーバエラーが発生!!

調べてみると・・・

google app engine ドキュメント引用
アプリケーション コードは、Web リクエストや cron ジョブに対する応答としてのみ実行し、いかなる場合でも 30 秒以内にレスポンスデータを返す必要があります。リクエスト ハンドラは、サブプロセスを生成したり、応答送信後にコードを実行したりすることはできません。

上記の制限に引っかかってしまいました

では、一揆に登録できるのはどのくらいかなぁ〜と思い
実験したところ、400件(プロパティーの数にもよるのかもしれませんが・・・)
くらがぎりぎりラインでした。
まぁ、リクエストに対してあまり一括で多数のエンティティを登録するということがないかもしれませんが・・・
その場合は、上記の制限に気をつけてください。

以上次回は、登録したデータの検索について実験したことを報告します!!

ではでは


| http://www.conit.co.jp/labs/index.php?e=309 |
| Google App Engine | 01:26 PM | comments (0) | trackback (0) |
Google App Engineを使ってみて
こんにちは。橋本です。

先週の水曜日に、mixiアプリモバイルで『フィギュアスケートの星☆』をリリースしたわけですが、
既にユーザが12万人を超え、すごい勢いで増加中です。

このアプリは、Goole App Engine (GAE) を利用しているのですが、
色々な面が見えてきました。

サーバは、やはりクラウドサービスが向いていますね。
オートスケールだし、レベニューモデルだし。

ただ、もちろんのこと、トラブルも発生しています。

アプリリリースからわずか5時間後、突如としてGAEがクラッシュし、mixiからもJOIN停止になりました。
世界中のGAEアプリが一斉に停止したようです。

また、その2日後には理由は不明ですが、GAEの我々のアプリインスタンスだけが落ちました。
こちらは、現在Googleの中の方に調査してもらっています。

この他、12万人のユーザを抱えるサービスを運営すると、色々なトラブルが発生します。
これに対応するのが我々の仕事なわけですが、クラウドサービスがもっともっと発展してくれることを
一開発者として願わずに入られません。



| http://www.conit.co.jp/labs/index.php?e=308 |
| 雑談 | 09:18 PM | comments (0) | trackback (0) |
「Sony Ericsson "Create Now Tour in Japan"」に参加してきた
こんにちは、いちかわです。

2/27(土)に開催された「Sony Ericsson "Create Now Tour in Japan"」に参加してきました。

会場はSony本社ビルで、本社を移転してから初めて行ったわけですが、立派なビルでちょっと感動しました。
旧本社があった「御殿山テクノロジーセンター」とはだいぶ違う感じです。

イベントが行われたのはプレス向け(?)みたいなホールで、試写会も出来そうなデカいスクリーンと、天井にはクラブみたいに大量のライトがぶら下がっていました。きっと、色んな発表会で使われるんでしょうね。

しかし、せっかくのイベントなのにツイッターのタグとか用意されていない。。自然発生的に「#xperia」にみんなコメントを寄せてます。

イベントが始まり、最初にXperiaの紹介が簡単にあり、その後Sony Ericsson(SE)の方(外人さん)から開発者支援プログラム「Developer World」、アプリ/コンテンツ販売サイト「PlayNow」の話がありました。
海外向けのPlayNowでは今のところAndroid以外のSE端末向けのアプリをダウンロードできるとの事。今後、Android向けにも対応するらしいです。
ちなみに、PlayNowはドコモマーケットとバッティングするのかと思いきや、日本ではあくまでもアプリの紹介程度で、アプリの販売は行わないという話です。
http://www.sonyericsson.co.jp/playnow/

Android向けの音楽配信「mora touch」も予定しているらしく、Appleに対抗する準備は着々と進んでいると言う事でしょうか。
個人的には、どちらも仲良くしてもらって、iTunesでもSMEのアーティストの曲がもっと買えるようになったら最高なのに。

開発者向けのイベントという話でしたが、それほど開発者向けの情報は得られなかった感があります。

そんなわけで、Xperiaのタッチ&トライに期待が高まります。
アナウンスがあって、じゃー触りに行こうと席を立ったら、真後ろの席に知り合いの人が居たので、声をかけて少し話をしたら完全に出遅れてしまいました。。。
50台が用意されていたのですが、参加者が80人ぐらいでしたので、私と同様に早く端末が空かないかと会場内をさまよう人が多数。

皆さんもこの時間を楽しみにしていたからか、なかなか手放さない。
30分ほど待ってやっと手にする事が出来ました。

ソフトウエアキーボードはQWERTYのみに対応(フリックは無い)と言う事で「POBox Touch」が搭載されている。
SE(日本)の方の話では、日本向けにソフトウエアキーボードのカスタマイズをかなりしています!!と言う事で、母音「A」「I」「U」「E」「O」は他のキーよりも少し幅が広めになっていて、入力がしやすいらしいです。


残念ながら写真は日本語入力モードではないので、分からないですが。。(スミマセン・・)

その他、目玉の「Timescape」と「Medascape」、「Infiniteボタン」もコンセプトとして面白く、UIもAndroidとは思えない新しい感じがしました。
ここまで、豪快にUIをいじっているせいか、やはり最新のAndroid 2.0ではなく1.6が搭載されています。しばらく待てば、2.0へのアップデートが出るのかな??

Android 1.6が搭載されているって事は、弊社でリリースしているEatNowが動くはず!
なので、インストール(笑)して動かしてみた。


バッチリですね〜(笑)

ドコモからの発売という事で、AUユーザーの私としては乗り換えるかどうか悩みどころです。

| http://www.conit.co.jp/labs/index.php?e=307 |
| Android | 11:50 AM | comments (0) | trackback (0) |
企業ブログの意義
こんにちは、中島です。

このページ「CONIT Labs」は名前こそ「ラボ」ですが、毎日何か研究しているわけでもないので、いわゆる企業ブログというものです。(え、そうだよね?>社内)
基本的に、スタッフ全員で毎日持ち回りで書くようにしており、「ブログの日」と書かれた汚い段ボール製のバトンみたいなのがスケジュール通りに机の上に置かれたら、その人の番です。だいたい10人くらいで回しているので、書くのは月に2回くらいです。

書きたいときに書きたいタイミングで書くのではなく、当番制で回ってくるものなので、それまでにネタを仕込んでおかないと、毎日の業務に追われて面倒くさいことになります。企業ブログを書いている会社なら、ありがちなパターンかな、と思います。ここで、原点に戻ってみましょう。

何を書くか。何だかんだ言ってもこれが一番重要なのです。ブログを書く意味をみんなである程度共有しておく必要があります。

一応会社のブログなので、個人的すぎることを書かれても読む人が困ります。「うちの猫ちゃんが可愛くてねこ」とか。知らんがな、という感じですね。とはいえ、「今日は○○の案件を5時間かけ、打ち合わせに2時間でした」みたいな業務報告を書くのも違いますね。知らんがな、です。

ブログは社内ツールではなく、ある意味会社の顔であり、最新情報・会社としての思いや考え方・役に立ったり面白かったりする知識やヒントなど、どこかで会社業務と繋がっていて、かつ外部の人が読んで面白い・勉強になる、などと思える物を心がけるのが良いと思っています。

わざわざコニットのページまで来て頂いて、このブログをRSSリーダーに登録して頂いている方々もいらっしゃいます。Googleがインデックスし、何かの拍子でたまたまこのブログに来たという方々もいらっしゃいます。
我々としては、まず世の中の役に立ちたい、思いを伝えたい、というのがあり、それが後々出会いを生み、何かに発展していくということはよくあります。

ので!

ブログをみんながサボりがちだった時期もありますが、忙しいのは当たり前なので、ここらで心機一転、このブログを回していきたいと思います。

コメントなども頂けると大変励みになります!

| http://www.conit.co.jp/labs/index.php?e=306 |
| 雑談 | 08:22 PM | comments (0) | trackback (0) |
クラウドサービスとSLA
こんにちは、開発チーム佐々木です。

MIXI家の萌香たん弊社にも欲しいです。
http://alpha.mixi.co.jp/blog/?p=386
ツンデレも良いですが、個人的にデレツンってのがあっても良いかなと思ったりしてます。


よくある話ですが、サービスレベルアグリーメント(SLA)で99.9はどういう事かという話です。

昨晩GoogleAppEngine様が停電で停止していました。
丁度、運用中のサービスを監視中だったのでビックリしてしまいましたが、
2〜3時間停止ってことはどうなのか?

サーバというものは人間の代わりに24時間365日働いてくれる素晴らしいリソースです。
24時間*365日=8760時間

マイクロソフトのクラウドと、アマゾンのクラウドでは、SLAで99.9%の稼働をうたっています。
8760時間*0.001=8.76時間

この場合は年間で8.76時間はサーバーが処理不能になる事を覚悟しなければなりません。
非常に少ない時間ですけどね。
(ただし、それ以上の時間ダウンしても払い戻しがあるだけです。業務へのインパクトは取り返せません)


安定したサービスを提供するには、相応のコストが掛かります。
クラウドサービスであそこが高い、ここが安いとかありますが、
値段だけを見るのではなく、稼働時間SLAとの兼ね合いで見るべきで、
高い安いは理由があります。

そこで弊社で使わせてもらっている、AmazonとGAEはどうかというと、
Amazonは半年以上使わせて貰っていますが、未だにトラブルは発生していません。

GAEは使い始めて1ヶ月もしないうちに、数時間のダウンが発生しています。
特にSLAは無いようなので、いくらサーバがダウンしても文句は言えないのです。
お金は貰うけど落ちたら頑張るから〜といった、日本的にいうと、なぁなぁな関係とでもいいますか。

安いには安い理由があるって事ですよ。
それで困るようなシステムを構築してはいけません。



| http://www.conit.co.jp/labs/index.php?e=305 |
| 雑談 | 10:46 AM | comments (0) | trackback (0) |
mixiモバイルアプリ、「フィギュアスケートの星」リリース!
----------------------------------------------
高橋大輔選手、銅メダルおめでとう!


安藤美姫選手、鈴木明子選手、浅田真央選手頑張れ!

----------------------------------------------





こんにちは。フィギュアスケートオタクの橋本です。

先日のブログエントリーで、フィギュアスケートオタクであることを公開して以降、
フィギュアスケートで検索してこのサイトに辿り着く人がものすごい勢いで増えています。(笑)

高橋大輔選手の銅メダルの表彰式は、本人以上に涙が溢れ、止まりませんでしたよ。
4回転トゥーループの失敗は残念でしたが、表現力ではピカイチでした。豊かな顔の表情は、是非他の選手にも見習って欲しい点です。
プルシェンコ選手が、4回転を跳ばずして金メダルを取ったライサチェック選手と、採点者を避難していましたが、
軸がぶれるなど、細かいミスを連発したプルシェンコ選手が負けていたと思います。ジャンプの競技ではないので、当然です。

女子も、今日まさにSPが終了し、キム・ヨナ選手が一位に立っていますね。演技を観ましたが、表現力が非常に豊かでした。
明らかに、歴史上最強の女子フィギュアスケート選手だと思います。

それに対し浅田真央選手は、トリプルアクセルは成功させ、ノンミスだったものの、表現力ではキム選手に劣っていました。
表現力というのはあまり失敗する要素が無いのに、ジャンプの場合失敗すると大減点につながるので、
浅田真央が不利だと思っています。2回のトリプルアクセルを成功させ、ノンミスであればいい勝負はできますが。
もちろん、私自身は浅田選手を応援していますから、明後日のフリーは、ノンミスかつ、最高の演技を見せて欲しいです。

そんなフィギュアスケートオタクの私が、今回「フィギュアスケートの星」というmixiアプリモバイルを企画しました!
あなたがコーチとなって、フィギュアスケートの選手を育て、ビギナーからオリンピック選手になるまで育成するゲームです。

操作は簡単です。画面から、練習メニューや、大会を選択して、あとはクリックしていくだけ。



練習・大会では、タイミングよく決定ボタンをクリックすれば、素晴らしいジャンプやスピンができ、どんどんポイントを増やすことができます。

是非一度、試してみてください!


| http://www.conit.co.jp/labs/index.php?e=304 |
| ネタ | 10:47 PM | comments (0) | trackback (1) |