Hatena::ブログ(Diary)

みずぴー日記 Twitter

2010-04-07(水)

atig.rb - Another Twitter Irc Gatewayをつくってみたよ

atig.rb - Another Twitter Irc Gatewayをつくってみたよを含むブックマーク

f:id:mzp:20100407060837p:image

特徴

ダウンロード

使い方

更新履歴

詳しくはno titleを見てください。

2010-04-11
  • 環境によっては、#twitterのユーザがとれないをバグを修正しました。
  • @nickが最新の発言へのreplyになるold_style_replyモードを追加しました。
  • tidのほかにsid(short typable id)も使えるようにしました。

コマンドライン引数からランダムに1つ返すコマンド

| コマンドライン引数からランダムに1つ返すコマンドを含むブックマーク

30分プログラム、その752。コマンドライン引数からランダムに1つ返すコマンドを作ってみました。

作ってから調べてみたら、昔に同じことやってました。サイコロコマンド - コマンドライン引数からランダムに1つ返すコマンド - みずぴー日記。しかも、アルゴリズムも同じでした。進歩してねー。

使い方

$ g++ choice.cxx -Wall -o choice
$ ./choice alice bob carol dave
alice
$ ./choice alice bob carol dave
dave
$ ./choice alice bob carol dave
carol

ソースコード

#include <iostream>

template<typename T>
T choice(T* xs, int size){
  int i = (int)(rand() % size);
  return xs[i];
}

int main(int argc, char* argv[])
{
  //  list xs = new
  srand((unsigned int)time(0));
  std::cout << choice(argv+1, argc-1) << std::endl;
  return 0;
}

参考

通りすがり通りすがり 2010/06/01 13:04 atig/commmand/thread.rb で require 'atig/command/command' した方がいいかも。
atig.rb で require するときに sort していないので、環境によっては
Atig::Command::Command が定義されていないとエラーが出ます。
(というか、出ました)

mzpmzp 2010/06/02 18:47 http://github.com/mzp/atig/commit/444a7286161bf69a393c1586d548054639f12b7b
追加しました。ありがとうございます。

L_starL_star 2010/06/04 21:49 cache/status.3.dbが大きくなると覿面に性能が落ちます。インデックスが貼ってないせいなので、作成時に貼っておくべきでしょう。いかに手元に試して効果のあったと思われるものを貼っておきます。


CREATE INDEX status_createdat on status(created_at);
CREATE INDEX status_sid on status(sid);
CREATE INDEX status_statusid on status(status_id);
CREATE INDEX status_tid on status(tid);
CREATE INDEX status_userid on status(user_id);

以下の2つはあったほうがいいかもしれないけど無くてもいいのかも。
CREATE INDEX status_id on status(id);
CREATE INDEX id_id on id(id);

同様にfollowing多い人は、following.3.dbに以下のを貼っておく必要があるかも。

CREATE INDEX users_screen on users (screen_name);