タグ

2008年12月18日のブックマーク (21件)

  • 2008-10-15

    特定メソッド実行時にlogを吐かせたりしたいので javascript:jQuery.getScript('http://jquery-aop.googlecode.com/svn/trunk/src/aop.js');void 0; 当日修正 jQuery pluginを読み込むときはjQueryは読み込まれている前提なんだから、 体読み込むときみたいに色々やらないで、jQuery.getScriptでいいという事に気づいた。 pixivイラストをブックマークするのをブックマーク追加画面に遷移せずに行いたい - 文殊堂で、 イラスト表示画面(http://www.pixiv.net/member_illust.php?mode=medium&illust_id=${illust_id})から、 グループ一覧画面(http://www.pixiv.net/bookmark_group_

    2008-10-15
    lesamoureuses
    lesamoureuses 2008/12/18
    jQueryとArray.prototype.callの話>なぜか$('#mypixiv_list>div[class^=bg_] a',htmlDoc)でindex:0に全件分のa要素が入ったjQueryオブジェクトが返ってくる件について調査してみた。
  • [jQuery] Re: jQuery + Prototype on newest release (1.2.6)

    lesamoureuses
    lesamoureuses 2008/12/18
    jQueryがeffects.jsのcall()のせいでコケる。>The issue wasn't so much a problem with jQuery as it was with Scriptaculous overwriting the call() method with custom functionality solely in effects.js. The script the implement is seen here:
  • [B! tips] lesamoureusesのブックマーク

    [B! tips] lesamoureusesのブックマーク [B! tips] lesamoureusesのブックマーク [B! tips] lesamoureusesのブックマーク [B! tips] lesamoureusesのブックマーク [B! tips] lesamoureusesのブックマーク [B! tips] lesamoureusesのブックマーク [B! tips] lesamoureusesのブックマーク [B! tips] lesamoureusesのブックマーク [B! tips] lesamoureusesのブック...

    lesamoureuses
    lesamoureuses 2008/12/18
    ちょっとした便利なやり方、知らなかった方法とか
  • [B! video] lesamoureusesのブックマーク

    [B! video] lesamoureusesのブックマーク [B! video] lesamoureusesのブックマーク [B! video] lesamoureusesのブックマーク [B! video] lesamoureusesのブックマーク [B! video] lesamoureusesのブックマーク [B! video] lesamoureusesのブックマーク [B! video] lesamoureusesのブックマーク [B! video] lesamoureusesのブックマーク [B! video] lesamoureuses...

    lesamoureuses
    lesamoureuses 2008/12/18
    動画系
  • [B! howto] lesamoureusesのブックマーク

    [B! howto] lesamoureusesのブックマーク [B! howto] lesamoureusesのブックマーク [B! howto] lesamoureusesのブックマーク [B! howto] lesamoureusesのブックマーク [B! howto] lesamoureusesのブックマーク [B! howto] lesamoureusesのブックマーク [B! howto] lesamoureusesのブックマーク [B! howto] lesamoureusesのブックマーク [B! howto] lesamoureuses...

    lesamoureuses
    lesamoureuses 2008/12/18
    チュートリアル、インストール方法、プラグインの作り方などなど
  • [B! doc] lesamoureusesのブックマーク

    [B! doc] lesamoureusesのブックマーク [B! doc] lesamoureusesのブックマーク [B! doc] lesamoureusesのブックマーク [B! doc] lesamoureusesのブックマーク [B! doc] lesamoureusesのブックマーク [B! doc] lesamoureusesのブックマーク iCalendar 仕様 iCalendar コンテンツの作成にとりあえず役立ちそうな情報の抜書き。(正確な仕様は RFC にあたること)...

    lesamoureuses
    lesamoureuses 2008/12/18
    資料系
  • [B! ato] lesamoureusesのブックマーク

    [B! ato] lesamoureusesのブックマーク [B! ato] lesamoureusesのブックマーク [B! ato] lesamoureusesのブックマーク [B! ato] lesamoureusesのブックマーク [B! ato] lesamoureusesのブックマーク [B! ato] lesamoureusesのブックマーク [B! ato] lesamoureusesのブックマーク [B! ato] lesamoureusesのブックマーク [B! ato] lesamoureusesのブックマーク [...

    lesamoureuses
    lesamoureuses 2008/12/18
    あとで読む、あとで使う、あとで…用
  • Perl の map と grep を使う

    すしを奢らなければいけないなんて、バトンを渡されてから知りました。おいしい寿司がいたい sekimura です。 今回は使いこなすと気持ちよくて、使いすぎると気持ち悪いと言われてしまう grep と map の使い方について紹介します。この二つは文法がよく似ていて、同時に使われることも多いので一気に両方の使い方を覚えるのをおすすめします。 grep: 配列をフィルターする まずは、前回覚えた perldoc を使って grep とはなにかを調べてみましょう。 $ perldoc -f grep grep BLOCK LIST grep EXPR,LIST This is similar in spirit to, but not the same as, grep(1) and its relatives. In particular, it is not limited to usin

    lesamoureuses
    lesamoureuses 2008/12/18
    >ただし、 grep, map を単にループ処理をするために、左辺値を受け取らずに使うのはコードを読む人を混乱させるので避けた方がいいでしょう。
  • ヒアドキュメントの中でPerlの式を書く

    初代新幹線「0系」最後のラストランの日に、新幹線N700系のぞみでイーモバイルしながらこの記事を書いているid:TAKESAKOです。 Perlのヒアドキュメントを使うと複数行にわたる文字列を一気に代入したりするときに楽なので、使っている人も多いと思います。 my $foo = "bar"; my $tmp = time(); # ←関数の実行結果 print<<EOF; <div class="${foo}1"> <h1>TIME: $tmp</h1> </div> EOF しかし、ヒアドキュメントの途中でサブルーチンの実行結果も一緒に埋め込みたいときがでてくるときがあります。 @{[ Perlの式 ]} そのようなときは、@{[ リスト ]} というイディオムを使うと非常に便利です。 print<<EOF; <div class="${foo}1"> <h1>TIME: @{[ tim

    lesamoureuses
    lesamoureuses 2008/12/18
    配列のリファレンス作ってその配列を表示するのかー。すごいなー。>そのようなときは、@{[ リスト ]} というイディオムを使うと非常に便利です。
  • Win32::GuiTest で Windows の GUI アプリをハックしよう

    的な書き方 use strict; use warnings; use utf8; # ↑ Perl ハッカーに DIS られなくなるおまじない # Win32::GuiTest を使うおまじない use Win32::GuiTest qw(:ALL); # 日語を使えるようにするおまじない UnicodeSemantics(1); # ここで Win32::GuiTest を使う マウスを動かす use strict; use warnings; use utf8; use Win32::GuiTest qw(:ALL); # 小数点もいけちゃう sleep 関数 use Time::HiRes qw(sleep); UnicodeSemantics(1); for (my $i = 0; $i < 500; $i++) { # 10 ms 待つ sleep(0.01); # マウ

    lesamoureuses
    lesamoureuses 2008/12/18
    windowsのGUIをperlで色々いじりたいとき
  • 非破壊な s/// のススメ

    正規表現の置換でときどき困るのは、元の文字列が変更されてしまうことです。そのため、たとえば文字列を URI escape する際には、以下のように別変数にコピーした上で、正規表現を適用することになります。 my $escaped = $search_str; $escaped =~ s/([^0-9A-Za-z_.!~*'()-])/'%' . uc(unpack('H2', $1))/eg; my $url = "http://example.com/search?q=$escaped"; 以前、この点がめんどくさいなーとブログに書いたところ、kazeburo さん他に以下のようなテクニックを教えていただきました。 use List::MoreUtils qw(apply); my $url = 'http://example.com/search?q=' . apply { s/([^

    lesamoureuses
    lesamoureuses 2008/12/18
    コピーするときに変数に入れない
  • Carp::Clan でエラーハンドリングのススメ

    Carp, Carp::Clan で共通のこと carp 呼び出し元の分かる warn cluck carp + stack backtrace croak 呼び出し元の分かる die confess croak + stack backtrace 但し Carp の場合は cluck や confess を明示的に使うよりも、 $ perl -MCarp=verbose target.pl という使い方でも stacktrace を得ることが出来ます。Carp::Clan の場合は、 use Carp::Clan; $Carp::Clan::Verbose = 1 if $ENV{DEBUG}; のようなフラグで判別すると良いでしょう。 Carp::Clan のススメ Carp::Clan の場合ですと、デフォルトでメッセージとファイル名、行番号だけで無く、どの package のどのサ

    lesamoureuses
    lesamoureuses 2008/12/18
    >$Carp::Clan::Verbose = 1 if $ENV{DEBUG};
  • SQLiteを使ったテストのtips

    DB周りのモジュールを開発している場合、テストDBSQLiteを使う事が良くあります。 その際、普通であれば以下のようなテストコードを書くと思います use Test::More tests => 1; use DBI; do { # SQLiteで使うファイルを指定 my $dbh = DBI->connect('dbi:SQLite:./test.db','',''); $dbh->do(q{CREATE TABLE foo (id INT, name TEXT)}); $dbh->do(q{INSERT INTO foo (id, name) VALUES (10,'nekokak')}); my $sth = $dbh->prepare('SELECT * FROM foo'); $sth->execute; my $row = $sth->fetchrow_hashref();

    lesamoureuses
    lesamoureuses 2008/12/18
    >SQLiteではファイル名を指定しない場合、ファイルを作らずオンメモリで処理できるので、テストコードを書く際はファイルを指定しないようにすると良いでしょう。
  • 全てのコードにテストを(標準入力乗っ取り編)

    テストコード書くのってピタゴラ装置作るみたいで楽しいですよね。 というわけであらゆるコードにはテストコードを用意してあげたい! けどそういうときちょっとめんどくさいのが、昔ながらのCGIスクリプトやメールフィルタなどのフィルタスクリプト、要はSTDINからデータが入ってくる前提のコードです。 make testやproveからテストする前提だと標準入力に何も渡さないし…、 というわけでこんなかんじでテストを書いてみます。 { local *STDIN; open STDIN, '<', 't/data1.txt'; my $rv = SomeFilter->run; ok $rv; } { local *STDIN; open STDIN, '<', 't/data2.txt'; my $rv = SomeFilter->run; ok $rv; } 各ブロックのlocal文により、各スタ

  • コマンドラインスイッチと特殊変数を使いまくる

    ファイルの奇数行だけを表示したいといったときに、例えばどんなコードを書くでしょうか。 例えば、以下のように書く事ができます。 #!/usr/bin/env perl -w use strict; my $lines = 0; while(<>) { $lines++; print $_ if $lines % 2; } ただ、こういう小さい物にスクリプトを作るのも面倒ですし、1ライナーで書きたいと思いませんか? Perlには数多くのコマンドラインスイッチや特殊変数があり、それを使うととても短く書く事ができます。 例えば、この例では以下の物を使うと1ライナーで書けるくらいの短さになります。 $. - 現在の行番号 -n - プログラムのループ まず $.を使ってみましょう。line変数が不要になるので以下のようになります。 #!/usr/bin/env perl use strict; wh

    lesamoureuses
    lesamoureuses 2008/12/18
    >-n - プログラムのループ
  • ファイルテスト演算子をつかいまくる

    _ という特殊変数があり、これは最後にテスト演算子に渡した引数を示します。 よって、ファイルでありかつリーダブルでありかつ実行可能であるというようなテストをしたい場合は、 -f $file && -r $file && -x $file; とするかわりに、 -f $file && -r _ && -x _; とかくことができます。 また、miyagawaさん情報によれば、perl5.10では -f -r -x $file; などのように書くことも出来るようになっているそうです。 次は dann さん。

    lesamoureuses
    lesamoureuses 2008/12/18
    >-f $file && -r _ && -x _;
  • 無名スカラー変数のリファレンス

    my $array_ref = [qw/a b c/]; my $hash_ref = +{1 => 'a', 2 => 'b', 3 => 'c'}; my $code_ref = sub {'a'}; Perlでは、無名配列のリファレンス 無名ハッシュのリファレンス、無名サブルーチンのリファレンスはこのように書けますが、無名スカラーのリファレンスを書く特別な構文はないので、以下のように書きます。 my $scalar_ref = \do {'a'}; これはDamian Conway先生オススメのインサイドアウトオブジェクトのコンストラクタで見られる書き方です。 { package Person; my %props = (); sub new { my $class = shift; $prps{name} = 'John'; bless \do{''}, $class; } sub

    lesamoureuses
    lesamoureuses 2008/12/18
    >my $scalar_ref = \do {'a'};
  • 効率的な変数宣言

    my %hash=();よりmy %hash;の方が効率的です。 どのぐらい効率的かというと: $ perl -MO=Concise -e 'my %hash=()' 7 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 1 -e:1) v ->3 6 <2> aassign[t2] vKS ->7 - <1> ex-list lK ->4 3 <0> pushmark s ->4 - <0> stub lP ->- - <1> ex-list lK ->6 4 <0> pushmark s ->5 5 <0> padhv[%hash:1,2] lRM*/LVINTRO ->6 $ perl -MO=Concise,-exec -e 'my %hash=()' 1 <0> enter 2 <;> n

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • $@はグローバル変数

    あまり意識されていませんが、$@はグローバル変数です。気をつけないとおかしなことになります。以下のコードではdie()で例外を発生させているので「Error is Dummy error」と表示されるように見えますが、表示されません。 package Hoge; sub new { bless {}, shift } sub cleanup { # 色々処理 } sub DESTROY { my $self = shift; eval { $self->cleanup }; } package main; eval { my $hoge = Hoge->new(); die "Dummy error"; }; if ($@) { print "Error is $@\n"; } else { print "Everything OK!\n"; } evalがdie()によって終了し、スコー

    lesamoureuses
    lesamoureuses 2008/12/18
    >$@はグローバル変数です。
  • perldoc を使いこなす

    国内滞在説が根強い miyagawa です。アメリカ合衆国国内という意味であれば、いつもそうなんですが。 今回は意外と知られていないと思われる perldoc コマンドの使い方を紹介します。perldoc は Perl モジュールに含まれる POD ドキュメントを整形して man 表示するツールで、perldoc モジュール名のようにして実行します。 % perldoc Web::Scraper -l オプションをつけるとそのモジュールのあるパス、-m オプションで POD の代わりにソースコードそのものを表示することができます。 % perldoc -l Web::Scraper /Library/Perl/5.8.6/Web/Scraper.pm # .pm ファイルを vi で開く % vi `perldoc -l Web::Scraper` # .pm ファイルを PAGER で開

    lesamoureuses
    lesamoureuses 2008/12/18
    おぉ、知らなかった>-f オプションは Perl の組み込み関数のドキュメントを表示します。