まずは必要なもの?

  • ユーザのゴースト使用情報を転送するプラグイン
  • ユーザのゴースト使用情報を保存するウェブAPI
  • ユーザがTwitterアカウントでログイン出来るウェブサービス
    • ユーザが自分のUUIDを取得出来るシステム
    • ユーザが自分へのお勧めゴーストを閲覧できるシステム
  • 誰でも見れるウェブサービス
    • ゴーストの起動時間ランキング
    • ゴーストのユーザ数ランキング
    • 最近人気のゴースト

おいらの時間割

--------------------------
1限   8時40分〜9時55分
2限   10時10分〜11時25分
-------------------------
昼休み 11時25分〜12時15分
-------------------------
3限   12時15分〜13時30分
4限   13時45分〜15時00分
5限   15時15分〜16時30分
6限   16時45分〜18時00分
-------------------------
7限   18時20分〜19時35分
8限   19時45分〜21時00分
-------------------------

使ってるぞグラフオンラインから学ぶ

使う人に関係すること

名前
使い方
  1. Twitterに登録
  2. WebからTwitterのIDを使いログインし秘密鍵を取得
  3. プラグインをダウンロードしSSPにインストール
  4. プラグインの設定で秘密鍵を入力
  5. インターネットにつなぎっぱなしにする
使える機能
  • 最近人気のゴースト
  • ランキング
    • ユーザ数
    • 起動時間
    • 起動回数
  • レコメンデーション
    • ユーザ
    • ゴースト
  • リスト
    • ユーザ
    • ゴースト

僕が考えること

  • キャッシュを前提とした設計を行ったほうが良い

理詰め思考からの脱却

理詰め思考の要素を上げてみよう
列挙
グループ化
分解
類似
ドップダウン
ボトムアップ
ブレインストーミング
組み合わせ
放射思考
理詰めでない思考とは?
定式化できない思考そのものを指すの?
じゃぁ最初からそんなものはわからないじゃん
仮に定式化できるとすると
上に挙げたのが理詰め思考?
そんなこといったら論理のある思考はみんな理詰め思考ということにならない?
論理感を捨てろと言うんですか?
だいたい論理のない思考ってなによ
理詰め思考は行き過ぎた論理思考ではないだろうか
うーん
人間は感情の生き物である
感情を考慮した思考がしたい
じゃあ感情も定式化すればいいってことにならない?
それはやはり理詰めである
ところで俺の考える理詰め以外の思考ってあるの?
夢思考
ブレインストーミンゲ
創発
結局自分の脳に任せて勝手に出てきた思考か
でもそんなのは工夫の仕様がないだろうが
理詰めでないと言えばなんかいろいろ書いて出てきたアイデアとかかなぁ
連想か!
連想は理詰め思考じゃないね確かに
うーん、でも連想だけで思考するのって正直辛いだろ
連想も脳に任せて出てきたアイデアだよなぁ
脳に何らかの情報をインプットして、何らかの情報が出力されると
理詰め思考と組み合わせることで理詰め思考からの脱却ができるのでは
理詰め思考はするけど、それ以外の思考法もすると
たとえばあれを考えたときはどうだった?
あれはユーザからとれるデータからボトムアップに考えていったんだよな
そして感覚であれがいいとなった
感覚って何だ
感覚は大事かもしれないがどうやって使うのだ
たとえば複数あるなかから選んだり
連想したり
組み合わせたり(これは選ぶのと同じか)
たとえばFacebookがはやるのは当たり前で、他人のことはみんな知りたいから
欲求からボトムアップに考えていけば導ける
Twitterも同じでは、つながりたいという欲求
そこからどうやって実装レベルに持っていくか
つながりの可視化か
つながりを持ちたいという情報の可視化
百四十文字も適当だしなぁSMSだっけ
フォローとフォロワーの関係はおもしろいけど、情報取得欲求を実現するとすればそれまでだし
なんかもっとすごいサービスってないのかなぁ?
当たり前の方がいいのかな?
当たり前だけど、当たるかどうかはわからないみたいな
とりあえずもっとヒット商品の情報が必要だな
それで定式化していく
理詰め思考だなぁ
たとえばポケモンとか
人のコレクション欲求
人の欲求かぁ
欲求からトップダウンに考える?
でもさぁそれって理詰め思考じゃね?
やはり理詰め思考と何らかの脳を使った発想を組み合わせるという風になるのかな?
では後者はどうゃって鍛える?
数をこなしていく(良い思考が出来たときのパスを体に覚えさせることで)、引き出しを増やす、良い夢を見るとかじゃないかな
それじゃあ今までと変わらないよね
理詰め思考からの脱却と銘打ったのに
もしかして今までの考え方で良いとか?
洗練されてないだけとか?
論理的思考の欠点として、そこにたどり着く論理のパスが多いほど優れていると誤解されることかな
決してそんなことはないのに
論理的思考の落とし穴
そもそも僕の目的は?
僕の目的はTwitterぐらい流行るサービスを作ること?
それともTwitterぐらい面白いサービスを作ること?
それともTwitterぐらい論理的に優れたサービスを作ること?
目的からしたら流行る
なんか言葉がよくないな
Twitterぐらい人の心に訴えるかな?
人の欲求に訴える?
ここまでのまとめとしては、理詰め思考が一概には駄目と言えず、感覚的思考と組み合わせることが大事だってこと?
要所要所に感覚的思考を取り入れていくことが大事なのではないだろうか
教訓として全部決まった後動こうとするな、動きながら考えろ
だから、とりあえずこの仮説で思考してみるか

EasyBotterでキーワードをリプライするとそのWikipediaの概要とURLを返すBOTを作る

サンプルは@wikise。http://twitter.com/#!/wikise
EasyBotter.phpの485行目付近を以下のように変える。(変更されてない行もあり。)

        if(strpos($text,"{tweet}") !== FALSE && !empty($reply)){
            $tweet = preg_replace("@\.?\@[a-zA-Z0-9-_]+\s@u","",$reply->text);            
            $text = str_replace("{tweet}",$tweet,$text);                                   
        }            
        if(strpos($text,"{wiki}") !== FALSE && !empty($reply)){
            $tweet = preg_replace("@\.?\@[a-zA-Z0-9-_]+\s@u","",$reply->text);
            $tweet = preg_replace('/(´・ω・) ス/', '', $tweet);
            $abstract = "よくわかんないケド、エラーです。投げた言葉を管理人に教えてね";
			try {
				$req = new HTTP_Request2('http://ja.wikipedia.org/w/index.php?title=%E7%89%B9%E5%88%A5%3A%E6%A4%9C%E7%B4%A2&redirs=0&search=' . urlencode($tweet) . '&fulltext=Search&ns0=1');
				$response = $req->send();
				if (preg_match('/<li><a href="(.+?)" title=".+?">.+?<\/a>   <div class=\'searchresult\'>/', $response->getBody(), $matches) == 1) {
					$word = preg_replace('/^\/wiki\/(.+)$/', '$1', $matches[1]);
					$req = new HTTP_Request2('http://wikipedia.simpleapi.net/api?keyword=' . $word . '&output=php');
					$response = $req->send();
					$data = unserialize($response->getBody());
					$abstract = $data[0]['body'];
					$abstract = preg_replace('/\n/', ' ', $abstract);
					$abstract = preg_replace('/<.*?>/', '', $abstract);
					
					$url = 'http://ja.wikipedia.org/wiki/' . $word;
					$req = new HTTP_Request2('http://tinyurl.com/api-create.php?url=' . $url);
					$response = $req->send();
					$tinyurl = $response->getBody();
					
					$rest = 140 - mb_strlen('@' . $reply->user->screen_name . ' ' . ' ' . $tinyurl);
					$abstract = mb_substr($abstract, 0, $rest);
					$abstract .= ' ' . $tinyurl;
				} else {
					$abstract = "見つかんなかったかも";
				}
			} catch (HTTP_Request2_Exception $e) {
				die($e->getMessage());
			} catch (Exception $e) {
				die($e->getMessage());
			}

            $text = str_replace("{wiki}", $abstract, $text);
        }

reply_pattern.phpを以下のように変更。

<?php

$data = array(
    ".*"=> array(
        "{wiki}",
    ),
);

bot.phpの以下の行をコメントアウト

$response = $eb->reply(2,"data.txt","reply_pattern.php");

enjoy!