ひまつぶし雑記帖

秋葉原ブックオフで収穫

2009/10/11 [13:30:12] (日) 天気

昨日はブラブラ都内徘徊、ていうか順路。
上野のうさぎやでドラ焼きを買い、秋葉原の立ち食い寿司で昼飯にし、ヨドバシを冷やかして、浅草ダイマスでビールをガブっといただく。

その途中、秋葉原のブックオフに寄って、スペンサーシリーズを105円で7冊、ファファード&グレイマウザーの2巻「死神の二剣士」を購入。スペンサーシリーズはまだきれいに揃わないので読み進められない、かな。
今、電車のお供がスティーヴン・キング「夕暮れをすぎて」いや、ほんと、キングって、キ印に追いかけられる話が好きなんだなあ。…て、まじめに、おっかねーよ。

こないだから、どうにかならんかと調べ中のtwitterストリーミング。
まずは perl で非同期についてぐーぐる様詣でしたところ coro というモジュールにいきつく。



中身の理解はまるでなく、呪文状態で使ってるんだけど(join for @coros てナニ?)、friends_timeline、user_timeline、mentionsを順番待ちせず、一度に取得するので早い。これは便利、かも。ちょっと理解しておいた方が吉だからもちっと真面目に調べようか。

 

»電子書籍制作代行についてはこちら

リアルタイム実況twitter

2009/10/3 [16:58:28] (土) 天気

streaming API を使えばリアルタイム実況ができる。
http://apiwiki.twitter.com/Streaming-API-Documentation
てことで、雨模様の週末だし、ちょっと作ってみた。
・followしているひとの発言を流す。
・filter.xmlに対してPOSTでリクエスト。
・followパラメータをつけて、followしているひとのIDを指定。follow=ID,ID,ID などとコンマで区切る。
・認証はBasic認証

以上で、callback関数を適当に作るだけ、だった。



ハマったのは、content-tyepの指定忘れ、requestの第二引数の書き方(":content_cb"=>$disp_twit だと思ってたら、requestの場合は関数へのリファンレンスをそのまま書けばいいだけだった)

followしているIDと名前とパスワードを渡せば、これだけで、だらだらコンソールに流れ出すリアルタイム実況が始まる。予想以上に簡単、LWPだけでOKだった。うううむ。perlサイコーっす。
ってもちっと出力データを整形加工しないと、見にくいんだけど。

ところが、もっとらくちんに、こいつをブラウザで表示させようと思って、悶絶。インラインフレームを使うのか、Ajaxを使うのか。どうもよくわからず。ちょっと手ごわい。ぐーぐる様詣で。

[10/03 20:42:29]
comet とか言われてもわからんちんだ。ネットワークプログラムから理解して、perlでストリーミングサーバーを立てる感じになるのか。
てことで素人のわたしには、お手上げ確定。コンソールで眺めるだけにしておく、か。とほほ。

[10/04 18:42:11]
ぐーぐる様によると、perlの世界も、オブジェクトに非同期。POEとかAnyEventとか、初耳寝耳に水、だ。この数年で取り残されてしまってるじゃねいか。とほほ。

 

»電子書籍制作代行についてはこちら

ケータイメールでtwitterに発言

2009/9/26 [17:57:42] (土) 天気

ついこないだ、ちらっと書いたtwitterにメールで発言するスクリプトを。
ぐーぐる様詣でをすれば、すぐに出てくるネタで新鮮味もないんだけど、メールを受け取るところからの解説記事が少なかったんで、自分メモ。

前提としてメールサーバーはqmail。
HOMEにtwitter用のドットファイルを用意する。たとえば .qmail-mytwitter。中身はパイプでスクリプトに渡しているだけの1行。たとえばこんな感じ
| twitter.pl
送られてきたメールは、このtwitter.plが処理する。

twitterに投稿するにはユーザー名とパスワードが必要なので、データベースでもcsvファイルでもいいから、なにかに記録・登録しておく。このとき一緒に、投稿に使うケータイのメールアドレスも記録・登録する。
送られてきたメールをかまわずtwitterに投稿するわけにはいかない。まずは誰から送られてきたメールなのかを判定する必要がある。

qmailの環境変数 RPLINE は return path (ほぼ送信元のメールアドレスのこと)が入るので、これを使う、てのがキモ。こいつを見て、登録されているメールアドレスなら、そのユーザー名とパスワードを使って、twitterに投稿する。登録されていないメールアドレスだったら、なにもしない。

送り先のメールアドレスがバレても、returnpathのチェックが入る。returnpathを偽装されても登録されているメールアドレスでチェックをする。エラーの場合は何も返さず沈黙する。
てことで、なりすましや何かの踏み台に使われることも、ない、ハズ。セキュリティ的に問題になりそうなのはパスワードを平文で保存しているところ。でも、twitterそのものが認証はBasic認証だし、jsonpでAPIを使ってるひとのソースをみるとJavascriptにユーザー名とパスワードを書くことになっているのが目につく(=パスワード丸見え)
てことで、ここは目をつぶってtwitterだけにしか使わないパスワードにする・定期的にパスワードを変えることでカバーしよう。DBにしろcsvにしろ、ウチのポンコツサーバーから持ち出される、なんてことはほぼ考えられないし。

後は、誰が書いても、どんな環境でも、ほぼ同じスクリプト。
↓こんなでメールを解析して

メール本文と文字コードを取り出して
↓こんなでtwitterにPOSTする

メッセージが140文字以上だったらなにもしない。
ケータイのメールアドレスから取り出したユーザー名とパスワードを$twtに渡すのでそれを使ってtwitterのBasic認証をする。
メッセージ本体はhtmlエンコードをする。
POSTで投稿する。

というだけの手抜きなシロモノ。

twitterみたいな気楽な巨大チャットにはモバイルは最適、だと思う。ケータイで使えるモバツイッターや、iPhoneなどのスマートフォン向けのアプリが充実してるのも当然。わたしの場合はauで、パケットのコースのこともあるので、メールで投稿できたほうがいいかな、と。

ケータイで見るのをどうしようか検討中。とりあえず、ezwebで見るようにスクリプトを書いたんだけど、なんかビミョー。それなら、空メールを送ったら返信で最新のつぶやき20個とかメールで返してもらうのも、あり、かなと。こっち側はまだ試行錯誤、だ。

 

»電子書籍制作代行についてはこちら

trackbackを実装

2009/9/21 [21:21:26] (月) 天気

今日は昼間っからレタスしゃぶしゃぶ。ヨメとふたりで、やはりレタスひと玉をさくっと食いきり、豚肉ももりもり食いまくった。夜はそれの残りで雑炊。これまた美味完食。

そんなこんな、今日は部屋でのたのた。ネットを徘徊する。
OpenIDとかOAuthとか、面白そうなので、モジュールだけインストールしてみた…けど、よく理解できず。なんに使うのかどういうところで使うのかそれがどんなに便利なのか。頭悪いんで困ったもんだ、と思いつつ、これもまた前からなにが面白いんだか理解できないTrackbackをとりあえず雑記帖に組み込んでみた。
送受信するのは url blog_name title excerpt だけだし、受信したら返すのは簡単なXML。なので、実装はさくっとスグできた。けどなあ、Pingを送るヒマあったら、こんちわー、とフツーにコメントつけて、そこにURLいれときゃいいだろ、と思ってしまうんだけど。いまどき、コメントもトラックバックもスパム防止で自動送信を受けつけるところが少ないしねえ。

[09/21 22:50:06]
てことで、ちょっとそれっぽいところを眺めに徘徊したけど、どうももはやトラックバックは死に体っぽい。そりゃそうだ。ブログの情報を繋ぐのとはちょっと違うけど、ひとを繋ぐSNSがあちこちにあるし、軽く繋げるtwitterもある。ニュースサイトだったらRSSがあるし。
なんか無駄なスクリプト書いてしまったかもしれん。

[09/22 09:39:13]
↓こんなで送って

↓こんなで受けるだけ


…知らなかった、今さら。テキストエリアの中って、タグなんかが素通しだとずっと思ってたら、こいつはCDATAじゃなくて、PCDATAというやつなので、「>」などは文字参照にする必要がある。

»電子書籍制作代行についてはこちら

DBD::Excelとか麻布十番納涼祭りとか

2009/8/22 [18:40:42] (土) 天気

朝から毎月定例の内科。今日は採血されて結果は来月。

帰ってから、ちょっとperl。
毎週ルーチンで、60個前後のエクセルファイルを開いてcsvに保存する、という実に馬鹿馬鹿しい低脳作業がある。こんなもの人間のやる仕事じゃない。腐れエクセルには1mmも触りたくない。
複数人が並行で入力しているんだけど、さいわい、シートの名前に規則性があるんで、以前ちらっとここで触れたDBD::Excelを、本稼動させてみた。

ディレクトリにあるxlsファイルを開いて、特定のシートをcsvに吐き出す

#!/usr/local/bin/perl
use strict;
use Encode;
use utf8;
binmode OUT=>':cp932';
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::FmtJapan;
my $oFmtJ = Spreadsheet::ParseExcel::FmtJapan->new(Code =>'cp932');

my $sheet = shift(@ARGV);
my $orig_dir = 'xls/';
foreach my $d ( @{ $section_dir } ){
  opendir(DIR, $orig_dir) || die;
  my @files = grep(/.xls/, readdir(DIR));
  closedir(DIR);
  foreach (@files){
    my $xls = $orig_dir . $_;
    my $oBook =
      Spreadsheet::ParseExcel::Workbook->Parse( $xls, $oFmtJ);
    
    my $ws; my $wc;
    for(my $i = 0; $i < $oBook->{SheetCount}; $i++){
      $ws = $oBook->{Worksheet}[$i];
      if( $ws->{Name} =~ m!$sheet! ){
        printf qq{XLS:%s  Sheet:%sn}, $xls, $ws->{Name};
        for(my $r = $ws->{MinRow}; $r <= $ws->{MaxRow}; $r++ ){
          my @buf;
          for(my $c = $ws->{MinCol};  $c <= $ws->{MaxCol}; $c++ ){
            $wc = $ws->{Cells}[$r][$c];
            my $value = $wc ? $wc->Value : ''; $value =~ s/,//g;
            push(@buf, $value );
          }
          print join(',', @buf), "n" if @buf;
        }
      }
    }
  }
}

これだけ。
今日は、ヨメと昼前には麻布十番納涼祭りに出かける予定だったので、時間がないかな、と思ってたのに、20分もかからずスクリプト完成。あとは現物合わせな例外処理だの作りこめば実戦投入できる。
いやもう、ほんと便利で、DBD:Excelの作者には大感謝!糞エクセルからまた一歩離れることができたゼ。ざまみろ。って、休みに仕事なんぞしてちゃいかんだろ、おれ。

大盛況おお賑わい大混雑の麻布十番納涼祭り。今年こそは国際バザールでちゃんと食おうと、開店前に並ぶ気合。ヨメはドイツ、わたしはブラジルに並び、フランクとシュラスコをがっつり食う。比較的すいていたラオスでおじいさんとおばあさんが上げていたスパイシーチキンまで堪能できた。ちなみに、3時開店のときにはもう行列となっていた。どれも美味でありました。大満足。
その後麻布十番側にいって、うろつく。オリオンビールとか赤ワインとか純米酒とか、馬肉ソーセージとか。しかし、今日の暑さ、人ごみにバテバテ。面白かったんだけど、ちょっと余裕がなかった、かも。

あとは、部屋でのたのた転がるかしらん。

 

»電子書籍制作代行についてはこちら

ブックオフの収穫とかデータいじりとか

2009/8/2 [17:33:48] (日) 天気

亀有のブックオフを覗いてみたら、105円本がどれでも6冊で480円、という特売モード。とくになにを買う気でもなかったんだけど、未読のロバート・パーカー、スペンサーものや、NO6なんかを6冊掴んでレジに。ワンコインで6冊たっぷり、だ。

読書SNSで致命的バグを見つける。登録した本にメモをつけるところで、複数のメモがあったら、ちょっとヤバイ状況になっていたのに気づかず。もともと、そりゃどうなのよ、というデータ取得部分の実装で、なんとかせんといかんなぁ、と思ってたところ。実害はないだろうと思ってたのに、豪快な実害が生じる。慌てて根本的な部分の一部書き直しで、久しぶりに夜なべ(死語)明け方までかかってしまった。

ついで、といっちゃナニだけど、仕事がらみでも売り上げなどのデータをグラフにするCGIを作成中。グラフにするっても、FusionChartsFreeにXMLを渡すだけ。くそエクセルなんぞ1mmも触りたくないので、CGIでごまかしてしまおう、と。仕事になると、なにをするにも「工数がどーした」「手戻りを少なくしたい(無駄はいや)」で、ちゃっちゃと見たい、試しに知りたい、なんて要求はきかない。無駄だなんだと言う前に、とりあえずやってしまおう、という発想がない。忙しいんだろうからしかたないにせよ、世の中、無駄なことをたくさんしてきた人間のほうがエライんだゼ(根拠はない)

なので、こうして週末、事務所にログインしてCGIをせこせこ試すハメになる。なんだかなぁ、だ。perlが使えてほんとうに助かった。

とはいえ。競馬から始まったプログラムというかスクリプトいじり。データおたくといえなくもないので、いじってる分にはおもしろい。膨大なデータの中から知りたい部分を抽出加工成型して、さらにグラフにして見えるカタチにする。見えなかったものが見えてくる、かも知れない、てのはちょっとした達成感と快感。そうでもなきゃ休みつぶしてやってない。すべてにおいて判断基準は。面白いか面白くないか。

昨日イトーヨーカドーで買ったメルシャンのワイン。3Lで1760円。飲みやすい軽さでハマりそう。値段も安いし、ちょっと危険。ゴッドファーザー1で、マイケル(アル・パチーノ)と話す、引退後のヴィト・コルレオーネ(マーロン・ブランド)が、デキャンタからなみなみと赤ワインを注いで飲むシーンを思い出しますです。

 

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
名前:
飯田哲章
mail:
t2aki@mrh.biglobe.ne.jp
twitter:
t2akii

WEBサービス制作/電子書籍制作

検索
<<2019/10>>
  12345
6789101112
13141516171819
20212223242526
2728293031

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版

iPhone電子書籍アプリ
小説同人誌Select iPhone電子書籍アプリ
『小説同人誌Select』

[18 Page]« »
11 12 13 14 15 16 17 18

TOTAL:2876

2019 (15)
1 (3)
2 (4)
3 (2)
4 (2)
5 (1)
6 (1)
8 (1)
10 (1)
2018 (21)
1 (3)
2 (2)
3 (2)
4 (1)
5 (1)
6 (6)
8 (1)
9 (1)
10 (2)
12 (2)
2017 (32)
1 (2)
2 (1)
4 (2)
5 (1)
6 (6)
7 (3)
8 (5)
9 (3)
10 (2)
11 (2)
12 (5)
2016 (41)
1 (5)
2 (5)
3 (2)
4 (3)
5 (4)
6 (6)
7 (2)
8 (2)
9 (3)
10 (1)
11 (4)
12 (4)
2015 (99)
1 (11)
2 (12)
3 (9)
4 (6)
5 (8)
6 (8)
7 (3)
8 (5)
9 (16)
10 (6)
11 (1)
12 (14)
2014 (112)
1 (16)
2 (5)
3 (6)
4 (12)
5 (16)
6 (19)
7 (9)
8 (6)
9 (4)
10 (8)
11 (6)
12 (5)
2013 (145)
1 (24)
2 (15)
3 (18)
4 (23)
5 (14)
6 (11)
7 (7)
8 (11)
9 (5)
10 (4)
11 (6)
12 (7)
2012 (103)
1 (1)
2 (1)
3 (4)
4 (3)
5 (7)
6 (26)
7 (17)
8 (5)
9 (8)
10 (10)
11 (11)
12 (10)
2011 (54)
1 (4)
3 (7)
4 (4)
5 (14)
6 (6)
7 (3)
8 (3)
9 (1)
10 (4)
11 (2)
12 (6)
2010 (70)
1 (12)
2 (7)
3 (6)
4 (6)
5 (3)
6 (10)
7 (6)
8 (4)
9 (3)
10 (4)
11 (3)
12 (6)
2009 (144)
1 (15)
2 (12)
3 (12)
4 (6)
5 (15)
6 (6)
7 (10)
8 (9)
9 (17)
10 (12)
11 (14)
12 (16)
2008 (148)
1 (10)
2 (6)
3 (10)
4 (11)
5 (13)
6 (10)
7 (13)
8 (19)
9 (18)
10 (12)
11 (13)
12 (13)
2007 (106)
1 (7)
2 (5)
3 (3)
4 (7)
5 (5)
6 (9)
7 (8)
8 (13)
9 (18)
10 (11)
11 (8)
12 (12)
2006 (158)
1 (28)
2 (28)
3 (25)
4 (7)
5 (9)
6 (7)
7 (12)
8 (13)
9 (10)
10 (7)
11 (6)
12 (6)
2005 (350)
1 (31)
2 (26)
3 (26)
4 (27)
5 (29)
6 (30)
7 (32)
8 (30)
9 (30)
10 (32)
11 (29)
12 (28)
2004 (292)
1 (24)
2 (24)
3 (29)
4 (27)
5 (28)
6 (25)
7 (26)
8 (24)
9 (12)
10 (19)
11 (26)
12 (28)
2003 (318)
1 (22)
2 (25)
3 (21)
4 (28)
5 (28)
6 (28)
7 (28)
8 (29)
9 (26)
10 (29)
11 (28)
12 (26)
2002 (317)
1 (29)
2 (26)
3 (26)
4 (25)
5 (28)
6 (30)
7 (27)
8 (21)
9 (25)
10 (27)
11 (28)
12 (25)
2001 (277)
1 (17)
2 (21)
3 (23)
4 (20)
5 (31)
6 (18)
7 (26)
8 (25)
9 (29)
10 (19)
11 (24)
12 (24)
2000 (53)
6 (9)
7 (4)
8 (2)
9 (3)
10 (1)
11 (15)
12 (19)
1999 (3)
7 (1)
10 (2)
1998 (18)
9 (9)
10 (7)
11 (2)