朝寝して宵寝するまで昼寝して時々起きて居眠りをする
アドエスこと Advanced[es] で最近使っているTwitterクライアントです。
ブラウザ経由でモバツイも m.twitter.com もそれなりに便利なので、用途にあわせて併用しているという感じ。
今回取り上げるのは「ちーたん」と「moTweets」です。前者が国産、後者はたぶん海外産。そして誤解を恐れずに言い切ってしまうと前者がWindowsアプリらしいといすれば後者はMacのアプリっぽい。ちーたんがフツーの Web だとすれば、moTweetsは Web2.0 っぽい。そんな印象があります。
シンプルでわかりやすいUI、軽快な動作、必要十分な機能を備えた Twitter クライアントだと思います。スクリーンショットをみると縦型表示にしたときにボタンの位置が少し残念なことになっているのがわかるかと思いますが、難点はそのぐらいで、おすすめです。
アイコンの表示機能はありません。screen name と文字だけがずらずらと画面にならんでいきます。このアプリで私が気に入っているのは起動している間どんどんログがたまっていくところ。読みぬけはあるけれど重複は発生しませんし、簡単に過去の発言に戻れます。Tweet を自動更新にすることもできますが私はだいたい手動更新でつかっています。
とにかく自己アピールが大好きな機能満載アプリ。アカウント情報を登録しようとすると一緒に moTweets のTwitterアカウントをフォローするかどうかも聞かれます。その発想が新しくてこれもひとつのユーザビリティなのかと思いました。でもデフォルトでチェックが入っているのはあまり嬉しくない。
ただ無料版のほうを使っているので、そのせいなのかもしれません。ちなみに広告も表示されます。
機能が多すぎてなにをアピールしたらいいかよくわかりませんがUIがとにかくすべります。私の想像によるiPhoneアプリってこんな感じかもしれません。当然アイコンも表示、screen name 以外の名前での表示がデフォルトです。
moTweetsですごくいいと思ったのは「つぶやき」Windowsが別の画面になっているところ。ただでさえ狭い WM の画面で常に発言用のテキストボックスを表示している必要なんてないんですね。タイムラインを眺めるときはそれに集中できるし、うっかり発言ミスしたりすることも少なそうです。
Twitpic含む3つのサービスへの写真投稿機能、複数のURL短縮サービスが利用可能、GPSにも対応可能(Ad[es]はデフォルトで持っていないですが)、さらに複数アカウントにも対応しています。
ただしこのクライアントはTwitterの「現在のタイムライン」しか取得してくれないので、「更新」を押すと一気にがつっと25件とかとってきて表示するだけです。まさにTwitterの「なう」を眺めるためのアプリです。
最後はいろいろインストールして好みで決めたらいいと思います。他に動作実績があるものとしては Smatter もあるのですが、これはあまり私と相性がよくなかったので紹介は割愛します。具体的にいうとデフォルトの文字サイズが小さすぎてつらかったり、screen name が途中までしか表示されなかったりしました。あとどうしても「自動更新をオフにする」が見つけられなかった。うっかりこれで1日中つなぎっぱなしになっていたことがあります(他のクライアントにもありますがSmatterは自動で接続する機能がついています。それも多少の切断にはめげないやつが)。
私のタイムラインには人間だけじゃなくてbotがたくさん混ざっているのですが、自分でもなんとなく作りたくなったので作ってみることにしました。
主な手順としてはざくっとこんな感じです。
ひとつのメールアドレスで複数のアカウントは取得できないので GMail のエイリアス機能を使いました。example+twitter@gmail.com みたいなアドレスです。もちろん Bot 専用のメールアドレスを用意してもいいと思います
pha さんによる「プログラミングができなくても作れるTwitter Botの作り方 からスクリプトをダウンロードしてこれを使いました。最新版の 2.0x系を使用しています。今のところこのスクリプトが一番有名でHowtoも多いのではないかと思います。もっと簡単な方法として、 ボットジェネレーター を利用する、という方法もあるようですが、こちらは使ったことがありません。
Botが呟くデータを用意します。今回は小説のキャラクターのBotだったので文庫本に付箋を貼ってセリフを打ち込みました。なんだかんだでこの工程に一番時間がかかっています。
また、Bot の挙動についてもこのへんで決定しておく必要があります。ただ呟くだけ、タイムラインに反応する、@ つきで話しかけられたら返事をする、など。
pha さんのスクリプトの場合は、「用意したテキストからランダムに発言する」「用意したテキストを順番につぶやく」「@ つきではなしかけられた場合にリプライを返す」「タイムラインを取得してリプライを返す」の4パターンの挙動が設定可能です。リプライの場合には反応するキーワードとそれに対応する答えをセットで決めておくことができます。
Bot がリプライを返すようにする場合、Bot をフォローしてくれそうな層(今回の場合だと同じ小説の別のキャラクターのBotをフォローしているユーザなど)があらかじめ想定できる場合には、そういった人たちが Bot になにを話しかけたりしているか調べてみたりすると参考になるかもしれません。
http://search.twitter.com/ で to:(screen_name) と入力するとどんなふうに Bot にはなしかけられているかを見ることができます。
データファイルについては先述のサイトに詳細があるのでそちらを参照してください。
今回使ったスクリプトは OAuth の認証が必要になるものなので、「Consumer key」「Consumer secret」「 Access Token」「Access Token Secret」の4つのキー(+Botのscreen_name=ユーザ名)が必要になります。このうち「Consumer key」「Consumer secret」は、Botを動かしているスクリプトごとに固有となり、「 Access Token」および「Access Token Secret」が、アカウントごとに固有文字列になります。pha さんのところでも取得できますし(その場合発言元が EasyBotterになります)、少し頑張って PHP+OAuthでTwitter - SDN Project などを参考にして自分でOAuth用のスクリプトを設置して設定しても良いと思います。と書くと少し大げさですが、実際は拍子抜けするぐらい簡単にOAuthスクリプトが設置可能です。
pha さんのサイトに書いてある説明を見ながら設置を行いますが、1.0系の説明が少し混ざっていたりするので適時応用させることが必要です。とりあえず展開したファイルをフォルダごと全部FTPなどでサーバに転送して、bot.php だけ実行権限を 705 とかに変更しました。
さくらのCronでしか動かさないというのであれば公開できるところに置いておく必要はない(実行権限を与える必要もおそらくない)のですが、Google App の Cron で動かす場合やブラウザ経由で手動で動かすときのために、WWW からアクセスできる場所に設置しておいたほうが便利だと思います。ただしURLを知られるとむやみやたらと Bot が喋りだすということになりかねないので、その辺は適時自衛が必要だと思います(わかりにくいディレクトリにファイルをおく、スクリプトをいじって決められた時間以外はツイートしないようにする、Basic 認証をかけておく、etc)
http://~/bot.php をブラウザで叩いて、投稿に成功しました、というメッセージが出れば設置は完了です。
このままだと手動で Bot の URL にアクセスしたときにしか Bot が呟かないので、定期的に呟くためと、リプライを行うために Cron の設定を行います
レンタルサーバのスタンダードプランだと5つまでCronの設定がコントロールパネルから可能です。
設定については「さくらインターネットのCRON設定を可能な限り簡単に解説したい 」なんかがわかりやすいと思うので参考にしてください。
この Bot はリプライを返すのですが、プログラム側で条件分岐するのも面倒だったので、rep.php というphpファイルを新しく作って、ランダム投稿および自動フォロー返しをする本体 bot.php とは別々に動かしています。
rep.php の中身はこれだけです。
<?php require_once("EasyBotter.php"); $eb = new EasyBotter(); $response = $eb->reply(6,"data.txt","reply_pattern.php");
基本的に bot.php を1時間に2回、rep.php を6分おきに動かしています。さくらのレンタルサーバでの Cron の最短実行間隔は不明ですが、2分とか3分でもいけるのではないかと思います。このアカウントは後述するあらったーやローカルクライアントでも参照しているのであえて間隔をあけてあります。
Cron の設定では実行コマンドで、bot.php を設置したフォルダに移動してから php で実行しているところがポイント。cd での移動がないとライブラリが読み込めず、Bot が動作しない模様です。
通常発言の設定
cd /home/~/botを設置したフォルダ ; /usr/local/bin/php -q bot.php > /dev/null
リプライの設定
cd /home/~/botを設置したフォルダ ; /usr/local/bin/php -q rep.php > /dev/null
分の設定は6分おきなら「*/6」とかで構わないのですが、毎時0分にいろんなBotの発言がタイムラインにどばっと流れるという現象が自分のタイムラインで起きていて、そのタイミングを回避しようとした結果こんなことになっています。
設置してからしばらくはアカウントに鍵をかけて非公開にして運用テストをしている人もいるようです。が、まぁお遊びBotなのでこのへんは適当に。私は試験運用ですとBotのプロフィールにのせて最初からずっと公開アカウントで運用しています。
Bot の説明と Twitter 以外の窓口(中の人あてのフォームメールやメールアドレス)があったほうがいいと思うのでそのための Web ページを用意しています。これは Wiki で簡単に作りました。DM を Bot にとばせばたしかに中の人には届くのですが、そのために Bot をフォローしなくてはいけない、というのはなんだか面倒くさい気がしたので。
どんなことを話し掛けられているか、というのをあらったー を使ってメールで知らせてもらっています。これを見てリプライの内容を増やしたりしています。このサービスだとプロテクトのユーザの発言も知ることができます。「基本的には2分おきにAPIを参照」しているようです。
また、リムーブされたときに知らせてくれるQwitter というサービスがあるのでこれも併用しています。このサービスはリムーブされる直前の発言を知らせてくれるため、これを知るために使っています。Bot なのでどんなタイミングでどんな返信を返すか完全は把握しきれない(というか、そのほうが「らしい」と思うのであえてそういったランダムな要素をいれている)というのがその理由です。
現代日本を舞台にした小説の短編集であれば、それが興味を引くものでありさえすれば簡単に手に取ることができると思います。現代という時代背景をすでに作者と共有しているという前提が大雑把にしろあるからです。
この『公主帰還』という短編集は中国の歴史についての知識が必要ない、という点でとても読みやすく、そしてそれ以上に面白い作品ばかり収められていました。このところ長い小説を多く読んでいたので、この本の短編小説の『手際のよさ』『鮮やかさ』には本当にはっとします。
同じ作者の本をもう少しいろいろ読んでみたいと思いました。上は中公文庫の版でこちらのほうが新しいようですが、私が読んだのは講談社文庫の公主帰還です。
「システム環境設定」「 デスクトップとスクリーンセーバ」で画面の任意の片隅にマウスカーソルを持っていくと画面をスリープにすることもできるのですが、私の場合は意図せず作動してしまうことが多かったので、キーボードでできないかと探したらありました。
Control + Shift + ▲(ディスクの取り出し用キー)
Leopard 以降で有効だそうです。
Macの手書き説明書より。
WOMO はたいてい下書きを howm-wrapper で書いて適当フォーマッタで blosxom 用ファイル生成、という手順で更新しているのですがその下書きの日付が3月9日だったので区切りとして残しておきます。blosxom の、というか WOMO の、このサイトの改造話。
右端または最下部に出る日付の「月」の部分が「/02」とかになっていて、目で見れば意味は(たぶん)わかるだろうけれど、ユーザビリティ的にこのリンクが何のリンクかさっぱりわからない、ということに遅まきながら気がついたので「2010-02」の形式にしてみました。
これなら辛うじてわかるはず。
ついでに年のところも「2010」とシンプルな表示だったのを「2010年」としました。わかりやすく。config.cgi および plugins/archives に直接手を入れています。
2010年というリンクを押したときに、その年の記事がずらずらーと並べられるのではなくて、タイトルのみの一覧になるように変更しました。エントリの少ない年がさみしいことになっていますが、まぁ、細かいことは気にせずに。list_title_at_yearプラグインを改造して導入しました。
カテゴリを追加して、投稿を適切だと思われるカテゴリに移動しました。
一覧のページを見ていてクリップしたい記事があったときにいちいち Permelink クリックしてからブックマーク、というひと手間が面倒だということを他のブログで思ったのでとりあえず暫定的に自分が使っているサービスとユーザの多そうなサービスに対応してみました。これは今後もうちょっと調整していきたいと思ってます。
なんか Follow Me バッジとかがすごくはやっててあの鳥さんはたしかにスタイリッシュで可愛いと思うのですが日本人は鳥といったら千鳥でしょう、とベジェ曲線をぐりぐりいじって千鳥の画像を作りました。
フォローミー千鳥じゃなくてフォローミーエイとかにすれば良かったかもしれません。が千鳥の時点で相当わからないことになっているのに拍車をかけそうでもあります。
xyzzy の irc-mode で psearch をつかった検索をするときに、nick のハイフンとかアンダーバーとかが単語が区切りとみなされてしまうのが面倒なので、text-mode のシンタックスから適当にコピペしてみました。
psearch するときの便利さが格段に違います(自分調べ)。それから dabbrev-expand とかでの補完がばしっときまるのが嬉しい。
不具合が出たら適時調整していこうかなと。
コメントアウトした行があったりするのは text-mode からコピペしてきた名残などです。
(defvar *irc-dialog-mode-syntax-table* nil) (unless *irc-dialog-mode-syntax-table* (setq *irc-dialog-mode-syntax-table* (make-syntax-table)) ; (set-syntax-symbol *irc-dialog-mode-syntax-table* #\&) ; (set-syntax-symbol *irc-dialog-mode-syntax-table* #\*) ; (set-syntax-symbol *irc-dialog-mode-syntax-table* #\+) (set-syntax-symbol *irc-dialog-mode-syntax-table* #\-) ; (set-syntax-symbol *irc-dialog-mode-syntax-table* #\/) (set-syntax-symbol *irc-dialog-mode-syntax-table* #\_) (set-syntax-symbol *irc-dialog-mode-syntax-table* #\|)) (add-hook '*irc-dialog-mode-hook* #'(lambda () (use-syntax-table *irc-dialog-mode-syntax-table*)))
高校生の頃読んでいた小説が、去年知らない間に完結していたということを知って、あわててAmazonで取り寄せました。
当時はコバルト文庫で読んでいた、若木未生のグラスハート、というシリーズ。
この小説をはじめて読んだとき、私はまだ中学生だったような気がします。ずいぶん長い間待って、もう完結しないのだと思いあきらめていただけに、完結巻が出たというだけでもう感無量。
キャラクターが出てきて、ああもうこの人たちの年齢をとっくに追い越してしまったんだなと、いろいろ思うところがあって。でもエンドマークを見れて良かった。このキャラクターたちにまた会えて本当に良かったと、そう思いました。
いきなりコバルト文庫からノベルスになっているのは、これからノベルスでシリーズが出るからとのこと。1巻だけ既に出ているようですが、全部きちんと出るまではちょっと恐ろしくて買えません……という呪いがかかっています。(既にコバルトの既刊をもっているからなんですが)