nipotan method RSSフィード

|

2007-10-03

最近Twitter との付き合いかた  最近の Twitter との付き合いかた - nipotan method を含むブックマーク はてなブックマーク -  最近の Twitter との付き合いかた - nipotan method  最近の Twitter との付き合いかた - nipotan method のブックマークコメント

Twitter の発言を IM に流すとずっとポコポコうるさい。

TwitterIrcGateway をずっと使ってたんだけど、たまーに XML の parse でコケてるっぽくて、一定時間発言が取れなかったりする。

かと言って Twitterサイトは妙に重いし、イチイチ最新のをあの件数で追うのがツラい。


仕事Mac OS XWindows も使うので、それぞれのプラットフォームで動く Twitter 専用クライアントも使ってたんだけど、それぞれにいいとこはあるんだけど、完全に自分好みではない上に操作方法がよくわからなかったり、かゆいところに手が届かなかったり、Windows のコレにあるやつが Mac OS X のコレにあったらいいのにとか、そういうの思えば思うほどイライラしてしまう。


なので、そんな呪縛から開放されようと、しばらくは cron で API 叩いて皆の発言を拾って DB にぶっこんで、それをファイルに吐きつつ、そのファイルを tail -f しながら読む毎日だった。


nipotanさんのツイート: "twitter のクライアントは tail -f です。"


でも、まあぶっちゃけ tail -f はツライし、せっかく俺専用に DB にぶっこんでんだし、それを使わない手はないなってことで、昨日の晩、ちょっくら web 用にクライアントを作った。


f:id:nipotan:20071003154627g:image


皆のログは、JSON からレンダリングされて、一ページに一気に 200 件出してる。

画面に表示されている以降の最新の書き込みを、また別個 JSON で返すようにしておいて、setTimeout() 使って Ajax で 1 分おきに取ってきて、画面が定期的に更新されているようになってる。


画面上黄色で出ている人は、リアル知人や同僚、部下、あるいは Twitter で頻繁に面白発言をする人を適当に選んで、その人の発言は黄色で出るようになってる。

白い人は「何で俺は白いんだよ」とか思うかも知れないけど、多分リアルで会ったことないのでごめんなさい。あくまで俺用なので。

で、水色ってかグレーっぽいのが自分の発言。


あと、画面キャプってるタイミングではなかったんだけど、俺の名前が本文に含まれる発言は、画面上赤く出てくる。


f:id:nipotan:20071003154626g:image


あまりにログが多いので困ったもんだ (200 件にしている自分も悪いんだけど) ってんで、hide some silly messages のチェックボックスがトグルになってて、チェックしている限り白く出ている人のを隠すようになってる。


f:id:nipotan:20071003154625g:image


一応、Twitter だけじゃなく、フレパやら Wassr やら nowa も同時更新出来るようになってて、チェックボックスを入れて、ステータス更新するサイトしないサイトが選べるようになってたり。


f:id:nipotan:20071003154624g:image


ちなみに更新するに際して nowa 以外は Net::Twitter で、nowaNowa::Nanishiteru更新してる。


最近の Net::Twitter だと、仕様が変わったせいで Wassr更新出来ないって問題があったんですが、それをボヤいてたら木村さんWassr でも更新出来るように対応してくれたよ。


もちろん @nipotan みたいな Twitter記法に対応して、そこからリンクするようにしているんだけど、Twitter は何かと重くてリンクをはりたくなかったから、俺用に取ってきたデータDB から表示するだけ用だから、Twitter に比べてかなり高速に表示可能。


f:id:nipotan:20071003154623g:image


もちろん自分以外も高速に表示出来る。


f:id:nipotan:20071003154708g:image


で、こういうのは元々適当に俺用に作ったやつをどんどん拡張していったので、作っておいてなんだが CodeRepos あたりに入れようと思ったけど、コードアレすぎるので見送る。


というか、普通に思ったんだけど、web クライアントとしてはかなり使い易い部類だと思うので、これをサービスにしたらいいのかなとか思った。

でも、それってやっぱ ID/PASS 抜かないといけなかったりだから、そんなことしたらシュッシュッされちゃいそうでやだ。

いや、もちろん冗談で、そんな理由でやだって言ってるんじゃないけどさ。








やっぱやめた。

どうしたいんだ俺。


とりあえず Twitter でもよろしく。

2007-08-21

マークアップエンジニア」という言葉誤用しないための bookmarklet  「マークアップエンジニア」という言葉を誤用しないための bookmarklet - nipotan method を含むブックマーク はてなブックマーク -  「マークアップエンジニア」という言葉を誤用しないための bookmarklet - nipotan method  「マークアップエンジニア」という言葉を誤用しないための bookmarklet - nipotan method のブックマークコメント

javascript:(function(){document.body.innerHTML=document.body.innerHTML.replace(/(マークアップエンジニア)(?!\[謎\])/g,"$1[謎]")})()

マークアップエンジニア」という言葉の定義を正しく理解してから使いましょう。

2007-06-26

シャープパールシックス  シャープパールシックス - nipotan method を含むブックマーク はてなブックマーク -  シャープパールシックス - nipotan method  シャープパールシックス - nipotan method のブックマークコメント

これはひどい

実にひどい。

15:23:19 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:19 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:19 <lambdabot> Consider it noted.
15:23:19 <JoLLyRoGr> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:19 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:19 <lambdabot> Consider it noted.
15:23:19 <lambdabot> Consider it noted.
15:23:19 <Muddy1> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:20 <lambdabot> Consider it noted.
15:23:20 <lambdabot> Consider it noted.
15:23:22 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:22 <JoLLyRoGr> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:22 <lambdabot> Consider it noted.
15:23:22 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:22 <Muddy1> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:23 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:23 <lambdabot> Consider it noted.
15:23:24 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:24 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:24 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:24 <JoLLyRoGr> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:24 <Muddy1> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:25 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:25 <lambdabot> Consider it noted.
15:23:25 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:25 <JoLLyRoGr> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:25 <Muddy1> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:26 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:27 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:27 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:27 <JoLLyRoGr> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:27 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:27 <Muddy1> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:27 <lambdabot> Consider it noted.
15:23:29 <lambdabot> Consider it noted.
15:23:31 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:31 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:31 <JoLLyRoGr> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:31 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:31 <Tene> ...
15:23:31 <lambdabot> Consider it noted.
15:23:31 <Muddy1> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:23:33 <lambdabot> Consider it noted.
15:23:35 <lambdabot> Consider it noted.
15:23:37 <lambdabot> Consider it noted.
15:23:39 <lambdabot> Consider it noted.
15:23:41 <lambdabot> Plugin `tell' failed with: IRCRaised thread killed
15:23:43 <lambdabot> Plugin `tell' failed with: IRCRaised thread killed
15:23:45 <lambdabot> Consider it noted.
15:23:47 <lambdabot> Plugin `tell' failed with: IRCRaised thread killed
15:24:10 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:10 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:10 <JoLLyRoGr> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:10 <lambdabot> Consider it noted.
15:24:10 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:10 <lambdabot> Consider it noted.
15:24:10 <Muddy1> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:11 <lambdabot> Consider it noted.
15:24:11 <lambdabot> Consider it noted.
15:24:11 <lambdabot> Consider it noted.
15:24:12 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:12 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:12 <lambdabot> Consider it noted.
15:24:13 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:13 <JoLLyRoGr> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:13 <Muddy1> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:14 <lambdabot> Consider it noted.
15:24:16 <lambdabot> Consider it noted.
15:24:18 <lambdabot> Consider it noted.
15:24:20 <lambdabot> Consider it noted.
15:24:34 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:34 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:34 <lambdabot> Consider it noted.
15:24:34 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:34 <lambdabot> Consider it noted.
15:24:34 <lambdabot> Consider it noted.
15:24:35 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:35 <lambdabot> Consider it noted.
15:24:35 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:36 <lambdabot> Consider it noted.
15:24:37 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:37 <lambdabot> Consider it noted.
15:24:37 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:38 <lambdabot> Consider it noted.
15:24:39 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:39 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:39 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:39 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:39 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:40 <lambdabot> Consider it noted.
15:24:42 <lambdabot> Consider it noted.
15:24:44 <lambdabot> Consider it noted.
15:24:46 <lambdabot> Consider it noted.
15:24:47 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:47 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:47 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:48 <lambdabot> Consider it noted.
15:24:50 <lambdabot> Consider it noted.
15:24:52 <lambdabot> Consider it noted.
15:24:52 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:52 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:52 <markov> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:54 <lambdabot> Consider it noted.
15:24:56 <lambdabot> Consider it noted.
15:24:57 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:57 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:24:58 <lambdabot> Consider it noted.
15:25:00 <lambdabot> Consider it noted.
15:25:02 <lambdabot> Consider it noted.
15:25:04 <lambdabot> Consider it noted.
15:25:07 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:25:08 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:25:08 <lambdabot> Consider it noted.
15:25:08 <lambdabot> Consider it noted.
15:25:10 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:25:10 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3
15:25:10 <lambdabot> Consider it noted.
15:25:12 <lambdabot> Consider it noted.
15:25:18 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <#
15:25:18 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <#
15:25:18 <lambdabot> Consider it noted.
15:25:18 <lambdabot> Consider it noted.
15:25:19 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:19 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:19 <lambdabot> Consider it noted.
15:25:20 <lambdabot> Consider it noted.
15:25:22 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:22 <lambdabot> Consider it noted.
15:25:22 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:24 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:24 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:24 <lambdabot> Consider it noted.
15:25:26 <Alias_> uuuuum
15:25:26 <lambdabot> Consider it noted.
15:25:26 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:27 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:28 <lambdabot> Consider it noted.
15:25:28 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:28 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:30 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:30 <Mafawaaaa> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3
15:25:30 <lambdabot> Consider it noted.
15:25:32 <lambdabot> Consider it noted.
15:25:34 <lambdabot> Consider it noted.
15:25:35 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3 LUV U
15:25:36 <lambdabot> Consider it noted.
15:25:36 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3 LUV U
15:25:37 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3 LUV U
15:25:38 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3 LUV U
15:25:38 <lambdabot> Consider it noted.
15:25:38 <ayesha> @tell TimToady http://a.photos.cx/geneva-6f2.png <3 WE'RE GONNA RAPE GENEVA <3 LUV U
15:25:39 <moritz> anybody with op around?
15:25:40 <lambdabot> Consider it noted.
15:25:42 <lambdabot> Consider it noted.
15:25:44 <lambdabot> Consider it noted.
15:25:46 <lambdabot> Consider it noted.
15:25:48 <lambdabot> Consider it noted.
15:25:50 <lambdabot> Consider it noted.

ちなみに TimToady は Larry Wall のこと。

GENEVA は Larry Wall娘。

2007-06-13

シャープサブテク  シャープサブテク - nipotan method を含むブックマーク はてなブックマーク -  シャープサブテク - nipotan method  シャープサブテク - nipotan method のブックマークコメント

過去 1 年半の間に、#subtech にジョインした回数を tiarra のログから出す。

前後にアンダースコアが何個かつけている人は同じ人と見做す。

% grep 'to #subtech@freenode' 200* | perl -pne's/^.+?\+ _*(\S+?)(?:_+)? .+/$1/' | sort | uniq -c | sort -nr
1995 kan
 384 hsbt
 201 toppai
 178 nekokak
 177 miyagawa
 141 OppaiSan
 104 Yappo
  86 tokuhirom
  78 norageek
  73 takesako
  51 nagayama
  51 mala
  49 norageek2
  38 Topia
  35 otsune
  33 otsuneb
  30 Yos_Zzz
  29 mizzy
  28 toshinori
  27 kan_home
  23 toku_away
  23 bwitter
  19 ryer
  18 nagayaway
  16 plagger-server-b
  14 nipotan
  13 Yoshiki
  10 topia
   9 nipotaway
   8 otsune_s
   7 ikebe
   7 hsbt_srv
   7 Yappoo
   6 tokuhiro1
   6 precure
   6 nekohome
   5 ikebe_away
   5 gerogeek
   4 yoshitetsu
   4 toshinor
   4 plagger-bot
   4 hiboma
   3 ryer_away
   3 kyanny
   3 kickkan
   3 kankan
   2 mumumu
   2 mf
   2 jankogai
   2 hsbt_zzz
   2 hsbt_away
   2 donbiki
   2 d_kan
   2 beu
   2 akatsuki_noragee
   1 youpy
   1 yoshikinz
   1 yes
   1 yapporz
   1 yappobot
   1 toppa
   1 ryerw
   1 ryawy
   1 root
   1 otsunes
   1 otsune_aw
   1 norageek3
   1 nekohom
   1 neets
   1 launce
   1 hsbt_work
   1 hirose31
   1 gero_norageek
   1 deego
   1 boofy
   1 Yappobot
   1 Yappo2
   1 UdontKnow
   1 Toshinori
   1 OppaiSan0

かんかんが出たり入ったりしすぎ。

2007-04-11

Twitter からフレパのひとことを更新してみる  Twitter からフレパのひとことを更新してみる - nipotan method を含むブックマーク はてなブックマーク -  Twitter からフレパのひとことを更新してみる - nipotan method  Twitter からフレパのひとことを更新してみる - nipotan method のブックマークコメント

どうもフレパのほうで Twitter 互換風 API (update のみ) が出来たっぽげなので、Twitterweb から status 変更した時に、フレパのひとことも更新するようにする Greasemonkey スクリプトを書いてみた。


元の form の onsubmit が上書けない (というか Ajax.Request が走ったあとにどうのこうの出来なかった) ので、Update ボタンの onclick イベントで走るようにしてみた。


これと同様に、userpassword のとこは、適宜変更して使ってください。


ちなみに、Basic 認証で、livedoor ID の認証が通っても、フレパに登録されていないと 401 が返ってくるようになってる様子。

// ==UserScript==
// @name           frepa update via twitter
// @namespace      http://blog.livedoor.jp/nipotan/
// @description    update your status of frepa via twitter's status
// @include        http://twitter.com/home
// @include        http://twitter.com/account/archive
// ==/UserScript==
(function(){
    var submitButton = document.getElementById('submit');
    submitButton.addEventListener('click', function(){
        var feeling = document.getElementById('status').value;
        if (!feeling) return;
        GM_xmlhttpRequest({
            method: 'POST',
            url: 'http://user:password@www.frepa.livedoor.com/statuses/update.json',
            data: 'status=' + encodeURIComponent(feeling),
            headers: {
                'Content-Type' : 'application/x-www-form-urlencoded'
            }
        });
    }, true);
})()
|