FC2ブログ

Home > 2011年03月

2011年03月 Archive

λ

  • Posted by: チャンコ
  • 2011-03-30 Wed 23:39:13
  • 未分類
最終面接がホントは明日あるはずだったんだけど、なんか延期されてしまってげんなりしてるチャンコです。
就活バリバリしてる友人にそのこと言ったらめっちゃ羨ましがられたから生命力ちょっと回復した。
彼こそもう内定バンバン出てるものだとばかり思ってたけど意外だ。

地震にもかかわらず選考が進んでる不謹慎な企業はそこまで多くないので
ちょっと運転免許合宿にでも行こうかと思ってる。
4月は穴場だろうと思うので。
もう大学4年になるというのに、まだチャンコ普通免許もってないんですよね!
でー免許合宿をブラウズしてたら出てきたこのFAQ。

Q 同室の人と仲良くなれるかどうか心配です。
A ほとんどの方が、卒業の頃にはメアドを交換したり、写真を撮ったり、別れを惜しんでいます。
大学生協の合宿免許より)

そんなことが起こらないようにちゃんと一人部屋を取るようにしよう……
でも寝起き悪いから、定時に起きられるか心配でならない。
どうせなら西の方に旅行がてら行きたいな……。



もひとつ。このブログを御覧の方に先行配信情報ですー
元λついったらーでおなじみのチャンコさんのアカウントできてます。
→@c_nk1
アイコンに見覚えあるんだったらフォローすればいいじゃない。
つぶやき自体の開始は未定となります。
でも1年、て決めたからそれ相応の時期かね……。
現在のTwitterがおもしろい居場所であるか否かは甚だ疑わしいけど、
長期間チャンコさんの仮面を剥がして生きてたら実につまらんかったのは確かなのであったwwwwww



↓↓↓↓クリックしてください!↓↓↓↓

東大生ブログランキング

↑↑↑↑クリックありがとです!↑↑↑↑


【完全無料】Google App EngineによるcronとPHPでTwitter botを作る

  • Posted by: チャンコ
  • 2011-03-24 Thu 22:56:34
  • Twitter
数学問題ボットや算数問題ボット、そしてチャンコボットを運用する際に使用していた
Twitter bot generatorが3月の頭あたりにサスペンドを受けるという事態が多発していた。
『サブアカウントはこちら!』みたいなしょーもない宣伝とか
『TwittererWiki編集してちょ!』なんて果てしなくどうでもいい定期ポストを吐くだけのために使う奴、
そしてアフィリエイトリンク貼るためだけに使う奴が多かったせいだろう。
さらにタイムラインリプライが有料で課金しなければ実装できないなど、
情弱から金を奪う構図が嫌だった。

ちょうどよい機会であったので、チャンコが所有しているボットたちを自前のPHPで実装してみることにした。
当エントリは、作業が滞った部分を苦難の助手のために記録したものである。
実に簡単なのでみんなもやってみてね☆というエントリ。
(ちょうどよい機会とはあくまでTwitter bot generatorのサスペンドの話であって、地震で就活がことごとく白紙になったことを指すものではない。実際この序文を書き始めたのは3月6日のことだし。)

↓↓↓↓クリックしてください!↓↓↓↓

東大生ブログランキング

↑↑↑↑クリックありがとです!↑↑↑↑


主に参考にしたページはこの2つ。
1)プログラミングができなくても作れるTwitter botの作り方
2)TwitterBOTを作る手順メモ


IMG_0002.jpg
@コンセプト図


Twitterで動くbot作成に必要なのは
・botのプログラムが書き込まれたPHPファイルと、それを設置するサーバー
・自動ツイートのためのcron実行
・botを組み込むTwitterアカウント
上図のようにサーバーにPHPファイルをアップロードし、
そのファイルをcronで定期的に叩くことによってTwitterにつぶやきを流すのである。


1.PHPファイルを作る
@pha氏によるWEBページ1)から最新バージョンのEasybotterをダウンロード。
(2011年3月現在は2.05が最新だった)
1)を見ながらbotのプログラムを組んでいく。
【注意】各種ファイルは文字コードの選択ができるテキストエディタで書き上げていくこと。UTF-8で書くこと。
完成したら、サーバーにFFFTPなどファイル転送ソフトを利用してアップロード。
【注意】このときPHPが利用出来るようなサーバでなければならない。
チャンコの場合は@pagesを使用してるのです。


2.PHPファイルとTwitterとの連携を設定
Easybotter内のファイルsetting.phpに
botのアカウント名とOauth認証のための4つのキーを書く。
そのためにまずはOauth認証アプリを作っておかなければならないのだが、簡単に作れるのです。
このリンクhttps://dev.twitter.com/appsから。


Oauth1.png
@新しいアプリケーションを追加をクリック。


Oauth2.png
@指示に従って記入。とくにbot作成の際には『アプリケーション名』と『アプリケーションのウェブサイトURL』が重要。
アプリケーション種類はクライアント。アクセスタイプは読み書きでおk。


Oauth3.png
@記入後、図の矢印に書いてあるところに4つのキーが出現。これを打ち込む。


【注意】チャンコはこの4つのキー入力のせいで長時間足止めを食らった。要注意なのだ。



3.手動でbotを動かす
4つのキーを入力してEasybotter内の全てのファイルをレンタルサーバにアップロードしたら
cron設定する前に1回手動で動かしてみる。
ここで変なエラーメッセージがでなければ次へ進むべしっ
エラーメッセージが出たら、その文言を丸々ググってみればだいたい解決する。
チャンコが経験したのはこんなエラーメッセージだ!
[Oauth認証関連]
object(SimpleXMLElement)#10 (2) {
["request"]=>
string(20) "/statuses/update.xml"

["error"]=>
string(19) "Incorrect signature"
}
・setting.phpで先程の4つのキーがきちんと打ち込まれていない。
・文字コードUTF-8で設定できてない

[サーバータイム不具合]
@pagesはサーバー時間が多々ずれてるので、その場合は運営にメールすること。
チャンコのサーバーでは1時間もずれていた。まあ無料なので文句は言わない。
確かメールしたら数営業日で応対してくれた。無料なので(ry

[その他PHPファイルの異常]
/public_html/~~.php on line 【エラー発生の行数】
・指示されたファイルのエラー発生行を見て何とかする。


他にももっとエラーを経験したはずなんだけど思い出せたら更新する。


4.cron設定
いよいよ冒頭で紹介したWEBサイト2)に移りcronの設定を行う。
Google App Engineは完全無料というわけではなく、
ある一定量リソースを使用したら金銭を支払わないとサービスを利用できなくなるという制度になっている。
現在チャンコボットは1分ごとに叩く設定にしている(最大に利用している)が何の問題もない!
2)に手順が書かれているのでここでは割愛させて頂くが
Pythonを後に入れた場合にGAELauncherを起動するとエラーみたいなのが出てしまった。
Edit→PreferencesでPythonファイルを指定してやればおkである。


5.進化するボット
・タイムラインのあるワードに反応して@を投げる機能や、投げられた@に対して@を返す機能を確率で制御する。
・時刻を設定して、その条件にあった時のみつぶやきを行うボットを作成する。
・つぶやく時点での年月日や時刻をつぶやき内容に織り込む
といったテクニカルなボットを作成しよう。

bot.phpファイル内の文言を改良していく。
//1)よるほー
if(date("G") == 0 && date("i") == 0){
$response = $eb->postRandom("yoruho.txt");
}
//2)30分ごとに通常つぶやき
if(date("i") % 30 == 0){
$response = $eb->postRandom("data.txt");
}
//3)確率5/7で@返信
if(rand(0,6) <= 4){
$response = $eb->reply(1,"reply.txt","reply_pattern.php");
}
//4)確率5/7でタイムラインリプライ
if(rand(0,6) <= 4){
$response = $eb->replyTimeline(1,"timeline_reply.php");
}

1)date("G")やdate("i")がそれぞれ時・分を表す。
時が0かつ分が0の時のみデータyoruho.txtを使用する、という内容である。

2)date("i")すなわち分を30で割った余りが0に一致するときにdata.txtを使用する、という内容である。
分を30で割った余りが0に一致するときとはすなわち0分、30分のこと。

3)4)rand()は乱数を発生させる。(0,6)で0~6の数から1つ数を生み出す。
この数が4以下だったときに@リプライを返すという内容である。
@のキャッチボールが何回も続くのはなかなかの確率に。

次に@pha氏のWEBにも掲載されているテクニカルなつぶやきのための置換ワードが以下のようになっている。
{year} => 現在の年(西暦、4桁)
{month} => 現在の月(1~12)
{day} => 現在の日(1~31)
{hour} => 現在の時(0~23)
{minute} => 現在の分(0~59)
{second} => 現在の秒(0~59)

{follower_id} =>自分をフォローしてる人の中からランダムな一人のID
{follower_name} => 自分をフォローしてる人の中からランダムな一人の名前
{following_id} =>自分がフォローしている人の中からランダムな一人のID
{following_name} => 自分がフォローしている人の中からランダムな一人の名前
{timeline_id} =>自分がフォローしてる人で最近発言した人の中からランダムな一人のID
{timeline_name} => 自分がフォローしてる人で最近発言した人の中からランダムな一人の名前

# 「ID」とはhttp://twitter.com/○○○○○○の部分)
# 「名前」とはサイドバーに「名前」「Name」として表示されているもの)

#ここから下はpost_random.php, post_rotationを使う場合
{id} =>自分のfollowerの中からランダムな一人のID
{name} => 自分のfollowerの中からランダムな一人の名前

#ここから下はreply_random.phpを使う場合(reply_pattern.phpに書いても機能します)
{id} => 話しかけられた相手のID
{name} => 話しかけられた相手の名前
{tweet} => 話しかけられた発言内容
これをdata.txtやreply_pattarn.phpに織り込めばTwitter bot generatorなんかでは実装できないレベルのボットを作成できることまちがいなしなのである!
さらに、いまのところ『天下り的に』@pha氏に書いてもらった状態であるeasybotter.phpの内部を読み込んでいけばPHP言語に対するより一層の理解につながることまちがいなしであるー。
将来的にはしゅうまいくんライクな形態素解析のできるボットつくってみたいのう。

↓↓↓↓クリックしてください!↓↓↓↓

東大生ブログランキング

↑↑↑↑クリックありがとです!↑↑↑↑


近況+

  • Posted by: チャンコ
  • 2011-03-22 Tue 02:38:01
  • 雑記
Oauth認証のせいでボット発動できないバグは、
Consumer Keyを入力する際に余分な半角スペースが含まれてたことだった。
これのせいで何時間ほど無駄にしたのだろうか……
;や,忘れに次ぐ初心者ミスだな。

近況

  • Posted by: チャンコ
  • 2011-03-21 Mon 12:00:01
  • 雑記
・地震

・企業の採用活動がことごとく延期

・3月下旬だというのにスケジュール帳真っ白に

・Twitterボットを弄る

・鍵アカでの運用だん

・チャンコボットでの実験

・操作をミスってアクセストークンリセット

・Oauth認証がうまくいってない模様……

・徹カラ


1浪して12卒となって
こんなことになるとは思わなかった。
就活がどうなるか非常に不安。
ただ現役で入ってて11卒になってたら
卒業式がない!
ということを考え合わせると
痛み分けかも。

で、おかげさまで予定がまっさらになってしまったので
不安を抱える中春休み満喫してます。
ボットたちをPHPで実装したいという野望を実現。
鍵アカで作動することを確認してから
チャンコボットで臨床実験的な。
最終的には本丸の数学問題ボットをなんとかしたい。

TL監視機能&リプ投げ活性化など
文字通り進化するチャンコボットなわけだが……
cronがかなり安定的に叩いてくれてたこともあり
『ウザ絡み』を忠実に再現!できてた。
……ちょっとウザすぎたので確率60%で発動する条件に変えてみた。

調整してたらアクセストークンリセットボタンを押してしまい
それ以来発動しなくなってしまった。(?_?;)
新しいOauth認証アプリ設定して、
keyやsecretを正しく入力しても発動しない。
ナゾだ……

1ステップ前の別の鍵アカで、
Oauth認証アプリのみ別のものにしてテストしてみたら発動するので
癌はOauth認証にあることはハッキリしてるんだけど。
こんな調子じゃ本丸に攻めいることが出来ないじゃないのさ。

でー徹カラ2日連続16時間とかいう強行軍に出てしまうわけな。
節電とは真逆の方向に向かってるのも
計画停電のグループに入ってないからか……
喉ガラッガラなので電気全部消して寝ることにしよう。



地震こわい地震こわい地震こわい地震こわい

  • Posted by: チャンコ
  • 2011-03-14 Mon 02:15:43
  • 未分類
3月11日14時46分マグニチュード9.0の巨大地震が発生。
東北地方を中心とする東日本エリアが大打撃を受けたのであった。

ほぼ連日オシューカツのせいで
スーツ着用して遠征しまくっていたチャンコだが、
ちょうどこの地震が発生した日だけオフなのであった。
直前の2週間くらい毎日スーツだったのに。
この日だけ。
もし遠出していたらと思うとゾッとする。




Continue reading

東京大学合格発表でしたね。

  • Posted by: チャンコ
  • 2011-03-10 Thu 21:38:43
  • 未分類
某団体でお手伝いしてました。
午後にオシューカツが待っていたので、一番盛り上がるとこだけ見ておさらばって感じでしたww

chart7.png
@最前列にWARRIORSが陣取り、受験生たちを制止してるの図(11:55)



chart7.png
@合格者の受験番号の書かれた板を運ぶトラックがやってきたの図(12:05)



chart7.png
@いよいよ動き出します!の図(12:30)


この合格発表を一番楽しめるのは、
良くも悪くも『新大学2年生』以上の面々ですね。
毎回見ててそう思います。


で。
合格された方々、おめでとうございます。
でも、これからが大変です。
就活生の立場からアドバイスすると、
もちろん就活するならばという前提ですけど、
『学生時代がんばったこと』として話せるネタづくりを意識しながら
大学生活エンジョイしていくと良いと思います。
ネタづくりのために行動するというのも
目的・結果と手段とがこんがらがってる気がしないでもないですがw
あーあと、サークルの人にチヤホヤされるのは今のうちだけなんで、
いっぱいタダ飯奢られればいいでしょう!
いつかボクとお会いできたらそのときはよろしくお願いします。おてやわらかに(何


落ちちゃった方々、とても残念です。
でも、今回試験を受けた何千人ものメンバーで、別問題でもう一度試験を行ったら
合格者は大きく異なると思います。
それくらい、合格最低点付近にはかなりの人数がいるということです。
(でもボクが現役だったときはどうしようもなく酷い点数でしたけどね!)
今期受かっている滑り止め大学に入学するのも、
もう一度チャレンジするために浪人するのも、
自分の人生にプラスになると納得できるのであれば
決断すればいいとおもいます。
またも就活生の立場から言わせてもらえば、
ぶっちゃけ学歴フィルターなんてものは選考が進んでいくに連れてなくなっていきますので。
(ただUT限定説明会やらリクルーターの飛び具合などで総じてイージーモードではあるとは思いますけど)
最終的には人となり(笑)だとかコミュニケーション能力()で決まってしまうようです。
あーだっり。


失礼しました。
みんなの今後を期待してます☆


↓↓↓↓クリックしてください!↓↓↓↓

東大生ブログランキング

↑↑↑↑クリックありがとです!↑↑↑↑


Index of all entries

Home > 2011年03月

タグクラウド
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR

Return to page top