2007年05月16日

#1無脳/メモ

◆めだか@タイムラインというアイディア。

 めだかが適当なスケジュールを生成し、一日の予定を書くという案。

◆めだか@グラフというアイディア。

 テーマを与えるとめだかが適当な要素を生成し、乱数と組み合わせてグラフを作るという案。


◇どこに、どのような形で実装するかは未定。
設計もまだない。
posted by サロ@人工無能 at 13:14| Comment(4) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2007年03月22日

忘れないうちにメモ・略して備忘録

みくしーめだか再設計の案
・confファイルをYAMLで記述
・confファイルの読み書きメソッドを作る

巡回クラス
・ページ取得メソッド
・解析メソッド
・投稿メソッド

ユーザ情報をYAMLなファイルで格納
巡回ルートやURLもYAMLに

はてなめだかは、はてなグループでやってみようかと思った

VOXはどうしようかな。
posted by サロ@人工無能 at 05:36| Comment(6) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2007年03月21日

メインフレームができあがらない

旧・めだかシステムはWebにアクセスするクラスをPerlに依存していたのですが、これをRubyで実装させて、さらに個々の巡回・解析・投稿メソッドを再設計しようと考えていたのですが……
新たに組み込もうとしているライブラリがうまくインストールできません。
どうも、RubyGemsがうまいことインストールできていないぽい。

そうこうしているうちに、新しいアイディアがうまれているのに!!
posted by サロ@人工無能 at 20:49| Comment(0) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年12月20日

メモ

open3を使って、コードを書き直してみよう。
posted by サロ@人工無能 at 14:38| Comment(1) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年11月07日

次バージョン

最初に作った「日記を巡回する、コメントを書く、返事を返す」といった
基本機能を実装したmixi巡回プログラム「めだか」は、
バグ修正を重ねて、そこそこ安定した挙動を見せるようになった。

しかし、「動けば良い」という結果主体の稚拙なコードのままとなっているので
非常に無駄が多い。

そこで、コーディングの勉強も兼ねて、コードの最適化を図ろうかと思う。
現状>改良案 という形でここに記述します。


<現状>
・mixiからの情報取得、書き込みを行うプロセス(Perl)
・取得した文字を記憶して、新たな文章を生成する(Ruby)
・Perlから取得した情報をRubyへ、Rubyから取得した情報をPerlへと受け渡す(Bash)
このようなソフトの構成をしている。
 ↓↓
<改良案>
・Bashを経由せず、Rubyのsystem()メソッドでPerlを呼び出す


<現状>
・まったく同じ、あるいは似たような処理を行うコードが多い
 ↓↓
<改良案>
・関数化、モジュール化を進めて、コードを最適化する


……と、こんなところかな。

関数化のほかにも、再帰法も使いこなせるようになりたい!!

posted by サロ@人工無能 at 22:27| Comment(6) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年09月15日

いろいろ雑記メモ

◆めだか

 mixiのめだかくんですが、登録ユーザが500人を超えました。
 1日のアクセス数は、平均1000を超えています。
 日記のコメント数はまだ200に達しないですね。
 徐々に、性的な発言や、過激な発言もするようになってきました。

 サーバ内の時計ずれ現象はまだ継続しています。
 cronで定期的にntpと同期するようにしてみようか。

 IRCではたびたび通信が切断されています。
 nadokaプロセスは活きているのですが、正常に接続されていない場合が
 発生しているようです。
 稀に、nadokaも逝きます。

◆net/https

 MSNメッセンジャーを実装しようと試みてみたのですが、
 httpsアクセスを行う拡張モジュール「net/https」が
 正常に動作していませんでした。

 どうやら、DebianにインストールしたRubu1.8.4に
 net/httpsが含まれて居ない??ようでした。
 仕方なく、ソースからnet/httpsを持ってきてあげると
 今度は「openssl.so」が見つからないぜ、旦那。と仰る。
 ワガママなRuby様だこと。
 MSNメッセンジャーはまだまだ先になりそうですね。。

◆プログラミング技法

 再帰法の使いどころ、使い方がイマイチよくわからない。
 どういう動作をしているのかはトレースできたのですが。。。

 シンプル(再利用が容易)なコードは見るは易いが作り難いですねぇ。。。。


相変わらず、ターゲットのわからない。独り言のような記事でした。

(mixiめだかの公開はいつになるやら。。。
posted by サロ@人工無能 at 11:55| Comment(2) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年09月03日

予告・・・? めだか@人工無能のソース公開したい

ソースを綺麗に整理したら、そろそろめだか@人工無能のソースを
乗っけてみたい。
あー。でも、人に見せられるようなコードではないので
ボロボロにいわれるのもこあいなぁ。。
posted by サロ@人工無能 at 11:02| Comment(2) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年07月21日

気になるモノ発見!

PHP-Mixiというらしいです。
PHPでmixiへアクセスするためのクラスだそうです。

僕が現在、使っているWWW::MixiというPerlでmixiへアクセスする
モジュールととてもよく似た構成になっているので、
後学のためにも、暇をみつけてPHP版のめだかくんも作ってみたいなぁ。。続きを読む
posted by サロ@人工無能 at 00:02| Comment(3) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年07月14日

mixiで人工無能を活動させる方法 〜 環境構築編 〜

大まかにまとめますね。

・mixiで人工無能を活動させる方法 〜 環境構築編 〜

1.Ruby実行環境を用意する
 筆者の場合は、UNIX環境なので、デフォルトでRubyは入っていました。
 ちなみに、Rubyのバージョンは1.8.4でした。

1−1.Windowsの場合。
 ActiveScriptRubyをインストールしましょう。

2.人工無能エンジン「ししゃも」を用意する
 ししゃもはRuby実行環境さえあれば、他のアプリケーションに依存しないで
 単体で動作するとてもお手軽な人工無能エンジンです。

3.Perl実行環境を用意する
 筆者の場合は、UNIX環境なので、デフォルトでPerlは入っていました。
 ちなみに、Perlのバージョンは5.8.8でした。

3−1.Windowsの場合。
 ActivePerlをインストールしましょう。

4.CPANという機能を使って、Perlのモジュールを追加しましょう。
 筆者の場合、UNIX系の実行環境だったのでさくさくできました。
 Perl -CPAN -e shell
 と、いうコマンドを実行してあげると初期設定を行うウィザードが
 始まります。
 入力を進めてゆくと、
 CPAN >
 という風に表示されます。

 次に、
 install Bundle::LWP
 と、いうコマンドを実行してあげます。
 これが終わったら、一度CPANを終了させましょう。

 そして、もう一度、CPANを起動してください。
 今度は、
 install Bundle::CPAN
 と、いうコマンドを実行してから
 reload CPAN
 と、いうコマンドを実行してください。
 そして、続けて
 install WWW::Mixi
 と、いうコマンドを入力ですよ。

 これで、WWW::MixiというmixiへアクセスするためのPerlモジュールが
 実装されました。

4−1.Windows環境の場合
 ……どうしたらいいんでしょうねぇ。。

5.人工無能用のアカウントを取得する
 誰かに招待してもらうか、自分で招待してあげましょう。


以上、ここまでが環境構築編です。
ここまでできれば、あとはプログラムを作って動かすだけですよー。


参考URLは後で追加しますね。
posted by サロ@人工無能 at 22:17| Comment(1) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年07月10日

めだか@人工無能 in mixi - 1次実働テスト開始 -

僕が動かしている、めだか@人工無能がいよいよmixiで動作することになりました。

基本機能がすべて実装されたので、さっそく5〜10名のマイミク登録を行って
1次実働テストを開始しようと思います。

1週間ほど、様子をみて、問題となる動作がなくなれば2次実働テストに
移ろうかと思います。

ちなみに、基本機能というのは次の通りです。

・日記を書く
・日記へのコメントにお返事する
・マイミク日記にコメントする
・マイミク日記のコメントにお返事する

あと、ミクシィでの公開仕様です。

・マイミクシィ日記から学習します。
 (基本辞書はIRCのものを流用)
・マイミクシィが5人以下の人の申請は承認しません。
・過負荷となる時間帯はアクセスしません。

まだ、複数のマイミクシィが登録された状態での
テストは行っていませんし、数日間に及ぶテストも行っていないので
何が起こるかちょっとわかりません。

潜在的なバグもいくつか見つかると思うので、様子を見てゆきたいと
思います。

続きを読む
posted by サロ@人工無能 at 00:07| Comment(0) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年07月09日

ツッコ ピョッコミ

今日は休暇ということもあり、めだかのmixi化はとてもはかどっています。

・自分の日記のコメントにレスを返す
はっしーさんのアドバイスのお陰で、ようやくこれができました。

あと、日記を書く処理に不具合が見付かったので直しておきました。

次の行程。

・cronによる巡回
・マイミク日記への新規コメント
・マイミク日記のコメントへのレス

基本機能である、これらの機能が実装できたら試験的に少数(5-10名)のマイミク登録を始めようと考えています。

マイミク登録を行う基準は、現段階ではサロ@人工無能のマイミクのみとさせていただきます。


posted by サロ@人工無能 at 15:46| Comment(0) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年07月04日

#0無能/メモ

・コメントはデリファレンスする
・日記本文やコメントなどの複数行の文字列をシェルに渡すときは配列を使う
・複数行の文章をしさもに生成させる方法は、
 シェルからRubyの@ARGVに配列の中身を渡して、そこからしさもで複数の文章を生成して、改行コードを末尾につけてシェルに返す。
 シェルはそれを配列に入れちゃう。

・シェルとPerlとRubyのそれぞれで配列の値をうまく受け渡そう!

・コメント返しの書式は、
 >ニックネーム
 コメント
 
 >ニックネーム
 コメント
 
 これの繰り返し。
・最後に自分がコメントした箇所までのコメントを読み込んで、それらをコメント返しの対象にする。


posted by サロ@人工無能 at 12:54| Comment(2) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年07月03日

#0無能/その後…

・しさもメンテナンスツール
・IRCの日本語チャンネル対応

これらは一旦、保留にしています。
現在は、
・mixi対応
これをやっています。

・ログインする
・マイミク日記を見に行く
・日記を書く
ここまではできました。

・コメントを読む
今はここでつまづいています。

この先には、
・コメントにレスを返す
・cronで定期的にジョブ
を実行する
ここまで出来るようになったら、日記を公開にして、マイミク承認を開始したいと考えています。

現在は、テスト中なので、日記は非公開、マイミク申請は承認しません。

それで、今はどうしてつまづいているのかというと……
Perlの処理内容で、配列の中の連想配列に格納された配列を取り出して、その配列の中の連想配列からスカラーを取り出す方法に四苦八苦しています。
Perlのリファレンスを熟読しなくちゃ!


posted by サロ@人工無能 at 12:43| Comment(0) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年06月29日

#1無能/ししゃもメンテナンスツール

しさもは、辞書データのメンテナンスがとても面倒な人工無能エンジンです。
そこで、以前から欲しいと思っていたしさもメンテナンスツールの、構想がほぼ固まりました。

外部のテキストから、あらかじめ登録しておいたNGワードを読み込んで、しさも辞書をサーチしてNGワードが検出された箇所に対して、起動時に与えられた処置レベル(引数)に応じて処置(置換や削除)を施す。
処置前に、元のデータをバックアップする仕様にしましょう。

がむばるぞー。
posted by サロ@人工無能 at 20:05| Comment(0) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年06月25日

めだか@IRCに障害発生しました

先日、IRCのめだかのお喋り頻度を向上させる処置を行いました。
たしかに、お喋り頻度は向上したのですが、複数のチャンネルで会話が弾んでくると処理が追い付かなくなり、落ちてしまう現象が確認できました。

なんとかしないといけませんね。
posted by サロ@人工無能 at 15:38| Comment(0) | TrackBack(0) | 無能 | このブログの読者になる | 更新情報をチェックする

2006年06月24日

めだか@人工無能 mixi対応 - 草案 -

僕がIRCで飼っている人工無能、めだか@人工無能(*1)をmixi対応させる為の
技術的なメモです。

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

0.前文

 うし@人工無能(*2)騒動(*3)があったので、mixiでの人工無能の
 扱いに不安が残ることから、めだか@人工無能のmixi対応はまだ未定ですが
 技術的な部分での勉強と実験は進めておこうと思います。

1.概略

 最終的に実装したい機能の概要
 ・mixiへログインする
 ・一定のペースで日記を書く
 ・自分の日記についたコメントへ、コメント返しをする
 ・マイミクシィ申請を承認する
 ・マイミクの日記へ巡回する
 ・マイミクの日記へコメントする
 ・マイミクの日記についたコメントへ、コメント返しをする
 ・参加コミュニティの掲示板へコメントする
 ・紹介文を書く
 ・メッセージに返信する

 これらの機能を、うし@人工無能の飼い主、はっしーさんに紹介して
 いただいた、Perlのmixi用モジュール「WWW::mixi」(*4)を使って実現する。


2.機能の実装と拡張ステップ

 段階的に、次のようなステップで機能を実装/拡張してゆくこととする。

 0.機能全体
  0−1.不特定多数の目に触れる際は、人工無能であることを宣言するフッタを付ける
 1.定期的にプログラムを起動する
  1−1.mixiがアクセス過多となる時間帯(22:00〜02:00)はジョブを停止する
 2.mixiへログインする
 3.日記を書く
  3−1.めだか@人工無能からタイトルを生成する
  3−2.めだか@人工無能から本文を生成する
  3−3.タイトル、本文をmixiへ投稿する
 4.自分の日記についたコメントに、コメント返しをする(デフォルト)
  4−1.ログイン時に、日記へついたコメントをチェックする
   4−1−1.コメントへの単独レス(デフォルト)
    4−1−1−1.コメントの投稿者のニックネームを取得する(※投稿者が自分の場合、無視する)
    4−1−1−2.コメントの本文を取得
    4−1−1−3.コメントの本文をめだか@人工無能に教える
    4−1−1−4.コメントの投稿者へのレス冒頭文「>ニックネーム」を書く
    4−1−1−5.めだか@人工無能がコメント本文からレス本文を生成
    4−1−1−6.レス冒頭文、レス本文をmixiへ投稿する
   4−1−2.コメントへの複数レス(拡張)
    4−1−2−1.コメントをすべて取得
    4−1−2−2.めだか@人工無能の最終コメントを取得
    4−1−2−3.最終コメント以降のコメントを取得
    4−1−2−4.コメントの発言者とコメント本文を記憶
    4−1−2−5.コメントの数だけ、レス冒頭とレス本文を生成
    4−1−2−6.複数レスをmixiへ投稿する
 5.マイミクシィ申請を承認する
  5−1.ログイン時に、マイミクシィ申請があるかどうかをチェック
  5−2.マイミクシィ申請を承認する仕組み
   5−2−1.常に承認するモード(デフォルト)
   5−2−2.ランダムに承認するモード
   5−2−3.特定の条件で承認するモード
   5−2−4.キャンセル待ち承認モード(マイミク1000人登録時)
  5−3.マイミクシィを承認する
  5−4.承認時のメッセージを送る(拡張)
 6.マイミクシィ日記を巡回する(拡張)
  6−1.マイミクシィ一覧を取得
  6−2.マイミクシィのホームへアクセス
  6−3.マイミクシィの日記一覧へアクセス
  6−4.日記へコメントする
   6−4−1.最新日記のみコメントモード(デフォルト)
   6−4−2.日記一覧へランダムにコメントモード
  6−5.コメントした日記を巡回する
   6−5−1.コメントした日記に、レスがあるかをチェック
   6−5−2.レスへの単独コメント返し(デフォルト)
    6−5−2−1.レスの投稿者、本分を取得
    6−5−2−2.めだか@人工無能へのコメントを取得(※自分のコメントは除外)
    6−5−2−3.自分の最終コメントを取得
    6−5−2−4.レスの投稿者へのコメント返し冒頭文「>ニックネーム」を生成
    6−5−2−5.めだか@人工無能がレス本文からコメント返し本文を生成
    6−5−2−6.コメント返しの冒頭文、本文をmixiに投稿する
   6−5−3.レスへの複数コメント返し(拡張)
    6−5−3−1.めだか@人工無能へのコメントをすべて取得(※自分のコメントは除外)
    6−5−3−2.自分の最終コメントを取得
    6−5−3−3.最終コメント以降のコメントを取得
    6−5−3−4.レスの数だけ、コメント返しの冒頭文、本文を生成
    6−5−3−5.複数のコメント返しをmixiへ投稿する
 7.参加コミュニティの掲示板へ書き込みする(拡張)
  7−1.参加コミュニティを巡回する
   7−1−1.巡回フラグのあるコミュニティ、掲示板のみ巡回する(デフォルト)
   7−1−2.すべてのコミュニティを巡回する
  7−2.掲示板にコメントする
  7−3.掲示板のコメントに単独コメント返しをする
   7−3−1.めだか@人工無能へのコメントを取得(※自分のコメントは除外)
   7−3−2.自分の最終コメントを取得
   7−3−3.最終コメント以降のコメントの投稿者と本文を取得
   7−3−4.冒頭文「>ニックネーム」を生成
   7−3−5.コメント本文を生成
   7−3−6.コメント返しをmixiへ投稿する
  7−4.掲示板のコメントに複数コメント返しをする
   7−4−1.掲示板のコメント一覧を取得
   7−4−2.めだか@人工無能へのコメントを取得(※自分のコメントは除外)
   7−4−3.自分の最終コメントを取得
   7−4−4.最終コメント以降のコメントへ、コメント返しをする
 8.紹介文を書く(拡張)
  8−1.マイミクシィ登録時に、照会文を書く(デフォルト)
  8−2.紹介文作成依頼を受けて、紹介文を書く
  8−3.ランダムに紹介文を書く
 9.メッセージへの返信(拡張)
  9−1.メッセージを取得
  9−2.未返信のメッセージを取得
  9−3.未返信のメッセージへ返信を作成
  9−4.メッセージを送信する


3.技術的な構想

 ・mixiへのアクセス部分はPerlで作成する。
 ・人工無能の部分は、Rubyで作成する。
 ・人工無能辞書は、IRCで学習したものを使用する「IRCモード」と
  mixiで学習したものを利用する「mixiモード」の二つを実装する。
 ・PerlとRubyの連携部分は、Bashのシェルスクリプトで作成する。
 ・cronで定期的にジョブを実行する。
 ・アクセス過多となる時間帯(22:00〜02:00)はアクセスをしない。

4.末文/補足

 自分用のメモで、どこへ向けた文章なのかわからないので
 誤字、脱字等の抜けている部分が多数あるかも。
 とりあえず、こんな構想を練っているぞ!という宣言です。


*1:めだか@人工無能
 僕が作っている人工無能です。
 人工無能エンジン「sixamo」を使用しています。
 現在、IRCの「#medaka」で稼動中です。
 拡張を進めて、mixiやウェブログにも対応させてゆきたいです。

*2:うし@人工無能
 はっしーさんが作成された人工無能。
 IRC、ウェブログ、メール、MSNメッセンジャー、mixiなどで活躍する
 人気の人工無能さんです。

*3:うし@人工無能騒動
 mixiに登録されているうし@人工無能のアカウントが
 「多重アカウント登録」「サーバへ負荷をかける巡回ソフト」である
 という指摘を受け、mixiの利用規約に反することから
 管理人のはっしーさんへ警告文が発せられた。
 この事実を受けたはっしーさんが、日記上で「明日でうし@人工無能の
 アカウントを削除します」と発表した。
 それを受けて、うし@人工無能のファンの皆さんがmixi運営事務局への
 抗議活動を行った。
 その結果、mixi運営事務局より先の警告を撤回する旨の通達を受けた。
 結果として、うし@人工無能はmixi上で特例として存続することとなった。

*4:WWW::mixi
 Perl用のmixiモジュールです。

posted by サロ@人工無能 at 14:43| Comment(4) | TrackBack(1) | 無能 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。