タグ

ブックマーク / kaede.to/~canada (36)

  • おさかなラボ - turntable.fmをプロキシ経由で使う

    昨夜、US以外からのturntable.fmへのアクセスがbanされました。 そこで抜け穴を書いておきます。 まず、EC2を契約します。そのへんはググればいくらでもドキュメントが出てくると思うので、スルーします。 次にクライアント(PC)側からトンネルを掘ります。Windowsな人はPuTTYでごにょごにょすると良いでしょう。 ssh -D localhost:10080 -l user e2c.example.com ユーザーとホスト名はEC2のものです。このときリージョンはUS内に設置するように気をつけてください。 ブラウザに付属のSOCKSの設定を、localhost 10080に設定します。 Enjoy! カテゴリー » 雑文 投稿日 » 2011/06/26 日曜日 - 12:59:59 by かなだ コメントはこちらからどうぞ。ご自身のサイトからトラックバックを利用する場合

    otsune
    otsune 2011/06/30
  • おさかなラボ - 冤罪で捕まった時知っておいた方がいいこと

    ちょっと長いですが引用します 第17回 オタクだけが残った〜竹熊健太郎氏との対話(3) 竹熊 うん。ひろゆき氏の場合はね、もともと2ちゃんねる やる前に、交通違反のもみ消しサイトっていうのをやってた んだよね。当時は彼、原付でそのへんを走っていたから。 ―――(爆笑)そうなんですか。 竹熊 どうやってもみ消すかっていうとね。たとえ警官の 目の前でスピード違反やったとしても「私はやってません」 って言い張るんだって。すると警官が激怒して、「署に来い」 ってことになるでしょう。それで署に行って、5時間でも 6時間でも「お巡りさんの見間違いじゃないですか。私は やってません」って言い張るんだって。するとどうなるかって いうと、最後は警察が勘弁してくれと言い出す。つまり、 それ以上のことをやろうとすると、警察が告訴して裁判を 起こすしかないわけですよ。で、警察組織としてはたかが原付 のスピード違反

    otsune
    otsune 2011/06/11
  • おさかなラボ - YAPC::Asia 2010に参加して(Bleet)

    去年YAPCに初参加して、今年初めてLTをやった。内容は岡山.pmに関するもの。人が集まらないというネタで押し通した。 というわけで技術的な話はしなかったが、それでもYAPCの壇上に登ることの意義を感じた。有名無名のPerl Hackersが僕の下らない話をちゃんと聞いてくれているのだ。 現在レガシーなPerlコードしかいじっていなので話すことがないが、なんとか精進して来年は20分枠取りたい。 カテゴリー » 雑文 投稿日 » 2010/10/17 日曜日 - 11:05:17 by かなだ コメントはこちらからどうぞ。ご自身のサイトからトラックバックを利用する場合は以下の URI をご利用ください。 http://kaede.to/~canada/doc/yapc-asia-2010/trackback/

    otsune
    otsune 2010/10/21
  • おさかなラボ - たった10年前、世界にはiPhoneどころかiPodすらなかった。皆Blogでなく日記を書いていた。

    たった10年前、世界にはmixiもGREEもモバゲータウンもFaceBookもなかった。GmailもGoogleTalkもGoogleMapsもなかった。Wikipediaもなかった。そこにはiPhoneどころかiPodすらなかった。皆ガラケーでメールを打ち、CDウォークマンを聴き、Blogの代わりに日記を書いていた。 2000年前半 Blog、Web2.0の流行 2001年10月 iPod発売 2001年01月 Wikipedia発足 2002年 公衆無線LANの普及が進む 2002年 BlackBerry、電子メールやWebブラウズ対応 2004年02月 mixiスタート 2004年02月 GREEスタート 2004年03月 電車男出現 2004年02月 「エッジ株式会社」が「株式会社ライブドア」に社名変更 2004年07月 Skype, 正式リリース 2004年04月 Google,

    otsune
    otsune 2010/10/05
  • おさかなラボ - 仕事の流儀~浅川 智恵子編を観て

    以下、視覚障碍者と書きますが、基的に識字困難者(かつて文盲と呼ばれた人)たちも含むと思ってください。両者を含むと地球の人口の相当な数がこれにあたります。 今回のプロフェッショナル - 仕事の流儀は視覚障碍者のアクセシビリティの研究家、浅川氏だということで録画して今朝観ました。 浅川氏は小学生の時プールの縁に目をぶつけただけで、原因不明のまま全視力を失ったそうで、視覚障碍が(視覚的な)健常者とは遠くない話であることを実感させられました。他人事ではないのです。 詳しくは省略しますが浅川氏のモチベーションはすごいもので、障碍者に対する教育が十分ではなかった当時、よく途中で挫折しなかったものだと思います。 浅川さんの基礎研究は一言で言ってしまえばWebの読み上げ技術、視覚障碍者のWebへのハードルを下げることを目的としているようです。彼女の開発しているソフトウェアは、リンクは男声、一般テキストは

    otsune
    otsune 2010/01/25
  • おさかなラボ - CAPTCHAを使わないspam判定

    私はspamよけの専門家ではないので、この方法に欠点があったり、すでにある技法でしたらすみません。実際に導入してみたところ、1日300くらい来てたspamがぱったり止んだので紹介することにする。 私はCAPTCHAはあまり好きではありません。あれは私の脳を多少なりとも浪費させるし。誤判定すらある。 あと、普通のクイズ形式のCAPTCHAとかアホかと気で思う。機械が人間に使われてどうする。 Googleなどではしかたないと思う。Googleだけをターゲットにするspammerがいるので、普通の対策はほとんど意味をなさない。 しかしうちのような一般のBlogに対する無差別なspam行為に対してはどうだろうか?個人BlogにCAPTCHは大げさすぎる。そこが有名サイトであるとか、DoS攻撃に遭っているならともかく、ごく単純な方法でspamよけは可能。「アルファベットのaを入れてください」とでも

    otsune
    otsune 2010/01/18
  • おさかなラボ - Plack::Testが凄い!

    Twitter経由でPlack::Testを見た。なにこれ。もうCGIいらないじゃん。 PlackやPSGIを知らない人は先に適当なページでも見て頂きたい。そんなんよりPSGIのエントリ書いてほしいって方はコメント残しておいてください。でももう半年も経つからググればいっぱい見つかるんじゃないかな。俺ほとんどPSGIに首突っ込んでないし。 で、Plack::Testの何がどうすごいかというと、次のようにPSGIアプリケーションのテストができる。テストコードは宮川さんのものに、クエリ部分を付け加えたものだ。 use Plack::Test; use Test::More; use HTTP::Request; use strict; use warnings; my $app = sub { my $env = shift; my $query = { map { split(/=/) } s

    otsune
    otsune 2009/12/15
  • おさかなラボ - NewPerlDocJPにおける私の立ち位置

    さて、忘年会シーズンと年末調整と年末進行に入ってしまった昨今、すっかり更新が遅れている当プロジェクトですが、方々で「かなださんが何をしたいのか良く分からない」という声が聞かれるので、一段落ついている今の段階で表明しておきます。 私の基思想は以前のBlogでご理解いただいていると思います。が、具体的にもう一度、私のやりたいことから整理していきます。 英語リテラシーのそれほど高くない日において、プログラミング言語の普及と日語化は強い相関があると思っています。他方現状はといえば、perldocjpというドキュメント閲覧ポータルと、perldocjp@sourceforageという翻訳の2つのプロジェクトがメインとしてあるだけで、片方は古いことも手伝ってブラウジングに非常に難があり、後者は翻訳者がほとんど1人だけという状況に陥っています。 そこで、この2つを立て直そうというのが当プロジェクト

    otsune
    otsune 2009/12/13
  • おさかなラボ - 間に挟まってるサーバを減らしてみた

    otsune
    otsune 2009/12/04
  • おさかなラボ - Perlの日本語ドキュメントポータルは速やかに刷新すべき

    と思いこんなものを作ってみました。α版なので細かいツッコミは歓迎ですが寛容にお願いします。当然気づいているバグもあるのですが、ケツを叩かれるとのそのそ動くのが私の習性なので。デザインの著作権を侵していますが、勝手な都合でsearch.cpan.orgの方から警告があるまではこのままにします。 http://kaede.to:8000/ 断言します。日Perlコミュニティには、このような、別の形の日Perlドキュメントポータルが絶対に必要です。 これは、しばらくは動くようにしておきます(なるべく・1ヶ月くらい?)。その後状況をみてなるべく当社とは関係ない(最終的には全く関係ない)ドメインでどこかに移転します。それ以降にデッドリンクになっているのを見つけた方は、canadie at gmail まで一言頂けると助かります(他力リマインダ)。 なお動いているのは弱小サーバーでしかも多段P

    otsune
    otsune 2009/11/24
  • おさかなラボ - Coroを使ったスレッドらしさ

    ちょっと前に簡単なクローラの例を見せたが、ああいう風に片っ端からスレッドを大量生産して、その量をセマフォで10なら10と制御するような実装よりは、ループでURLをどんどん割り振るコルーチン1個と、そこにURLをおねだりしてはクロールを繰り返すようなコルーチンを10個用意してやって、せーのでくるくる回す方がスレッドらしい実装だよな、と思った。データをひたすらファイルにしまってくれる係とかもいても悪くはないよね。そういうのにやっと気づけるようになった。だから協調スレッドっていうんじゃないか俺のバカバカバカみたいな。っていうか綺麗だよねそういうの。 まあ問題は、今俺が抱えてるトラブルはそういう風にCoroを書き換えても一向に何にも解決しないことだ。 時間があったらクローラでいいからそういう実装のバージョンも書いてみてここに書くかな。 最近VC++触ってみて、VC++のCListViewのボタンで

    otsune
    otsune 2009/11/19
  • おさかなラボ - Coroとalarm

    アラームでCoroを制御しようと思ったのだが、さすがにシングルプロセスなので無理だったというお話。 { local($@); eval { local($SIG{ALRM}) = sub { die }; alarm 1; Coro::rouse_wait; alarm 0; } redo LOOP if $@; } これは動かない。rouse_waitのところでscheduleするので他のコルーチンで裸のままdieが呼ばれてプロセスが死ぬ。localは多分スコープを抜けてないのでそのまま生きてるんだと思う。実験してみよう。 あ、コルーチンにID振ってクロージャ使ってなんとかなんないかな。やってみよう。ちなみにhttp_getの方は接続遅いサイトを切るためにアラームかけてます。 忙しいので殴り書きですまない。 カテゴリー » Perl 投稿日 » 2009/11/17 火曜日 - 15:

    otsune
    otsune 2009/11/17
  • おさかなラボ - 三鷹プログラマーズカフェ

    Twitterで僕の後輩(?)にあたる人が三鷹プログラマーズカフェに行くというので、参加資格もろくに調べずに飛び込みで参加してみました。 会場に1時間遅れで到着すると、すでに5,6人の方がいらっしゃってました。簡単な自己紹介をしてしばし歓談。集まる時は数十人単位で集まるそうで、会合ごとにムラがあるとのこと。今回は後からきた人たちを含めて10人前後でした。ちょっと残念 後からきた人たちはちょっと分からないのだけど、把握している限りPerl書いてるのは僕だけで、色々な畑の方が見えてましたね。しかしプログラマーというのはみんな同じですね。共有できる話題なんていくらでもあるわけで。Perlのコミュニティに引きこもっていては分からない大局観が掴めます。 肝心のセッションはというと、Googleドキュメント寄りなGoogleのなんかのサービス(ごめんなさい、全然覚えてないです)を共有して使用し、

    otsune
    otsune 2009/10/23
  • おさかなラボ - Coroでより賢い非同期クローラを作る

    前回のエントリでは簡単なクローラの作り方を説明した。しかしこのクローラには欠点があり、取得したいURLが何千何万とある場合、一度にhttp_getが走ってしまい、リソースを使い切ったり同じサーバーへのアクセスを待つ間にタイムアウトしたりと都合が悪かった。そこで今回はAnyEventに加えCoroを使うことにより、並列を使ってリソースへの同時アクセス制限を行うクローラの書き方を解説する。 これは前回のエントリの改良版になるので、初めてこれを読む方は当該エントリを先に読んで頂きたい。 まず、前回はAnyEventを使い、condvarとsend-recvを使ってイベントの監視をしていたが、Coroと同時に使う場合これでは都合が悪い。イベントループを回す場合、一般的にAnyEventはrecvを、Coroはjoinを使うが、これらはどちらもイベントループが終わるまでブロックするのでどちらかし

    otsune
    otsune 2009/10/16
  • おさかなラボ - Coroの並列をあっさり理解するための3つのサンプルスクリプト

    Coroが非同期にルーチンを扱う(コルーチンを扱う)モジュールだということはご存知だと思うが、いまいちピンと来ていない人も多いのではないだろうか。これは、1つにCoroやCoro::Introの例題が悪すぎると思う。例えば、Coro::Introのサンプルスクリプトはこうだ。 use Coro; async { print "async 1\n"; cede; print "async 2\n"; }; print "main 1\n"; cede; print "main 2\n"; cede; このスクリプトは確かに面白い挙動をするが、スレッドを実現してるんだよと言われるとちょっと「?」である。こんなのgoto文でできるじゃんみたいな。そしていきなりセマフォやチャネルの話に飛んでしまい、肝心の「Coroはスレッドが実現できるんだよ」というところが分かりにくい。そこ

    otsune
    otsune 2009/10/13
  • おさかなラボ - 非同期の簡単なクローラの作り方

    そろそろ(いまさら)Coro+AnyEventでもやってやるか!と思って簡単な並列クローラを作ることにしたのだが、ググって出てくるサンプルを見てもいまひとつうまく動いてくれない。 で、そういえばYAPC::Asia 2009でmala.さんがAnyEvent::HTTPを使うとこんなに簡単にできるよ!と言っていたので、スライドの通りにやってみた。 use AnyEvent::HTTP; sub done { print @_; } http_get ("http://www.example.com/“, \&done); # 1 http_get (”http://www.example.com/“, \&done); # 2 http_get (”http://www.example.com/“, \&done); # 3 –mala氏 main.txtから引用。 こ

    otsune
    otsune 2009/10/12
  • おさかなラボ - Text::VimColorがちょっとがっかりだったので少し愚痴を言わせてくれ

    今日はXSはお休み。vimcolorのプラグインを外した話はこないだしたけど、驚くべき事実が発覚。 vimcolorのプラグインはtext-vimcolorというPerlスクリプトを使っていて、そのtest-vimcolorはCPANのText::VimColorを使っているんだけど、遅すぎたので外した。Text::VimColorを見てみると、一時ファイルのオープンとクローズが3つも行われていて、text-vimcolorではさらに2つも行われている。ファイルバッファが二重に行われているんだから作者はなにを考えているのか分からない。 で、ファイルI/Oでtext-vimcolorが遅いのかとおもったらどうやらそうではないらしい。Text::VimColorを読むと、どう読んでも普通にvimを呼び出している。出力とかどうしてるんだ?と思ったらforkして全部/dev/nullに捨ててた

    otsune
    otsune 2009/10/10
  • おさかなラボ - [XS]Perl変数とPerl構造体の対応について

    当はPVに限った話をがっつりしようと思ったんだけど、順序が思いっきりperlgutsとかぶるので止めました。 繰り返すようですが、XSの中身というのは、始めたばかりの人にとっては何がなんだかさっぱり分からないと思います。特に配列やハッシュやリファレンス、オブジェクトなどはどうやって扱えばいいのか不安に思っている方は多いのではないでしょうか。今日はその話を簡単にします。 これらは、Perl内部では構造体で実現されています。主に次の構造体が用意されています。 SV スカラ値 AV 配列 HV ハッシュ値 RV リファレンス値 構造体って何?っていう人はK&Rを買って読んで下さい。Cの概念です。僕がXSについて書くときは、Cについての一通りの予備知識があることを前提とします。Perlの値には他にもグロブや無名関数などがありますが別項に譲ります。 次に不安なのが、これらの操作でし

    otsune
    otsune 2009/10/09
  • おさかなラボ - [雑文]vimcolorと地球儀

    今日は僕は休日なので難しい話はなしだよ。 はてなvimcolorなんてちっとも羨ましくなかったので、未明に飛び起きて血眼でググってvimcolorのプラグインを手に入れたよ。うまく行かないからソースみてみたらほとんど文字コード関連の意味不明なハックだったのと他のプラグインと衝突しまくるのでがっつり削ったら、数行しか残らなかったよ。結局中身は/usr/bin/text-vimcolorをpreg_replace(’/…/e’,…)の引数で直接呼び出してるだけだったよ。うちのパスは/usr/local/bin/text-vimcolorだったのでコード部分だけがっつり消えて未明早々焦ったよ。preg_replaceは裏オプションでutf-8が辛うじて使えるだけで、日語通らなくて文字化けするよ。 僕はPerlPHPの宗教論争には興味がないけど(だって僕はお寿司もカレーも好きだし、どっち

    otsune
    otsune 2009/10/06
  • おさかなラボ - [XS]XSのおさらいとtypemapについて

    前回のXSをとにかく作ってみる編の続編である。どこかに目次のエントリを作るか、Wikiにした方がいいような気がしてきた。今後、自身の学習・復習もかねてXSについて解説していく。対象は取り急ぎperl-5.8.8以上とする。なお、今回は話が思いっきりあさっての方向にそれたので、先にお詫びしておく。 XSとは何か。XSはPerlが用意したAPIに、C/C++でアクセスするためのマクロ言語である。そしてマクロ言語の記述フォーマットの名前である。「PerlAPIを叩くCプログラム」を総じてXSと呼ぶ向きもあるが厳密にはこれは正しくないことは前に述べた。 XSファイルは主に3つのパートに分けられる。Perlから関数として呼び出された時の引数を受け取る処理、そして核となるルーチン、そして演算結果をPerlに返す部分である。しかし引数と戻り値に関しては最初はあまり神経質になる必要はない。これらは大抵

    otsune
    otsune 2009/10/06