2010-10-01から1ヶ月間の記事一覧

プロトタイプ

JavaScriptの肝になるプロトタイプのことを実はよく理解してなかったorz サイ本を読んで整理してみる。 すべてのオブジェクトはprototypeオブジェクトを持ち、その全プロパティを継承する コンストラクタでオブジェクトが生成される時、オブジェクトのprotot…

クロージャ

読めば分かるけど、書けない(涙)状態なので、練習。 Hello Closure! var count = function() { var i = 0; return function() { return ++i; }; }(); alert(count()); // 1 alert(count()); // 2 alert(count()); // 3 ちなみにperlだとこんな感じ。 my $c…

プロトタイプ

プロトタイプはJavaScriptにおける中核的な機能で、プロパティの継承の役割を担うってことはわかってるんだけど、細かいこと分かんない>_ いろいろ試して、少しずつ理解を積み上げていく! Circle = function(){}; Circle.PI = 3.14; var c = new Circle(); …

関数呼び出しとthis

「JavaScript: The Good Parts」を読んでいる。関数の呼び出しパターンには、メソッド呼び出し、関数呼び出し、コンストラクタ呼び出し、apply呼び出しの4パターンがあり、thisがどのように扱われるかが違う。 メソッド呼び出し thisには呼び出しオブジェク…

関数はオブジェクト

javascriptにおける関数はオブジェクトだ! と言われてもいまいちピンとこないのでちゃんと調べて理解してみる。 関数はオブジェクト? function static_function() { } for (var prop in window) { if (prop == 'static_function') alert("func is window's…

homebrew

mac

mac portsよりもhomebrewのほうが便利らしい。全然MacOS使いこなせてない>_ homebrew is the easiest and most flexible way to install the UNIX tools Apple didn't include with OS X. インストール curl -Lsf http://github.com/mxcl/homebrew/tarball/m…

Long polling

リアルタイムWebやEvented I/Oやらがホットらしいが、そのあたりの技術トレンドに追いていかれてる感があるので、調べてみた。 まずはLong polling。http://en.wikipedia.org/wiki/Push_technology Long polling is a variation of the traditional polling …

FastCGI with mod_fcgid

mod_fcgidというApacheモジュールがあるので、これでFastCGIを動かせるものかと思ってやってみる。 手順はhttp://www.movabletype.jp/documentation/developer/server/fastcgi.htmlにほぼ沿ってる。 インストール # 必要なCPANモジュール cpanm FCGI cpanm C…

Apache + CGI再入門

いつもフレームワークの上でしか書いてないので、きちんと理解したい。 CGI Specification http://httpd.apache.org/docs/2.0/en/howto/cgi.html The CGI (Common Gateway Interface) defines a way for a web server to interact with external content-gen…

PSGI/Plackに挑戦

CGI/FastCGIの仕組みがわかり、ようやくPlackにチャレンジ。 インストール これでPlack関連のモジュールをまとめてinstallできる。 cpanm Task::Plack Hello PSGI! まずはPSGIの基本形をやろう、ということで以下のコードリファレンスをhello.psgiとして保存…

FastCGI with mod_fastcgi

mod_fcgidとmod_fastcgiは別物という事実にショックを受けつつ、気を取り直してmod_fastcgiをインストールしてみる。 環境 OS: CentOS 5.4 Apache: 2.2.3 インストール 既にyumからapacheをinstallしているので、DSOでインストールする。 ちなみにDSOはDynam…

gitインストールメモ

OS Xのgit installerを使うのが一番簡単そうだったので、そうする。 1. dmgを取得 http://code.google.com/p/git-osx-installer/downloads/detail?name=git-1.7.3.1-intel-leopard.dmg&can=2&q= 2. インストール 普通にGUIからやれば、/usr/local/gitに入る…

perlbrew + cpanm - モダンなPerl開発環境

cpanmを使ってlocalなlibにモジュールインストールする方法は既に採用済みだったが、さらに押し進めてperlbrew + cpanmにしてみる。もちろん元ネタはtokuhiromさんのYAPC::Asia 2010のトークであることは言うまでもないw perlbrew インストール デフォルトで…

propertyについて

propertyの属性について調べたのでメモ retain setterの引数に対して[obj retain]する。retain countが+1されるので呼び出し側でreleaseされても保持されるが、deallocメソッドでreleaseする必要がある。 assign retainとは逆に[obj retain]せずに代入だけす…

ショートカット

始めたばかりなので、1つずつ覚えてく。 移動 C-a: 先頭へ C-e: 末尾へ C-f: 1文字進む C-b: 1文字戻る 編集 C-k: カーソルから末尾まで削除 C-d: カーソルの1文字を削除 C-y: 削除した文字を復活 補完 Esc: コード補完 C-.: コード補完(窓なし)

正規表現$1,$2,$3...

evalしたときの$@とは違い、マッチしたごとに上書きはされないので注意! my $date; $date = '2010-10-13'; $date =~ m/^(\d{4})-(\d{2})-(\d{2})$/; print join(q{,}, $1,$2,$3), "\n"; $date = undef; $date =~ m/^(\d{4})-(\d{2})-(\d{2})$/; print join(…

Data::Util

Data::Utilはデータの型チェックに使えるUtility。List::MoreUtilsと合わせ技すると強力かな。 use Data::Util qw(:check); use List::MoreUtils qw(all); check(+{test=>1}, [1,2,3], 1); sub check { my @args = @_; unless (all { is_hash_ref($_) || is_…

localtimeとgmtime

いまさらすぎ感たっぷりだけど調べてみた。 perldoc -f time time Returns the number of non-leap seconds since whatever time the system considers to be the epoch, suitable for feeding to "gmtime" and "localtime". On most systems the epoch is 0…

FormValidator::Simple

はじめて使ってみた(正確にはラッパーは使ったことはあるけども)。最初の見た目がゴツかったが使ってみれば便利〜。 use FormValidator::Simple; my $params = +{ param1 => '12345', param2 => 'abcdefg', param3 => undef, mail1 => 'test@example.com',…

Time::Piece

最近はDateTimeばかり使ってたので、Time::Pieceを思い出してみる。 perl -MTime::Piece -MTime::Seconds -le 'my $t=localtime; $t -= 3600; printf "%s %s\n", $t->ymd, $t->hms' # 2010-10-05 23:41:05 最初使った時はよくわかんなかったけど、使いやすい…

AnyEvent::IRCを試す

IRCでbot動かすために使えるモジュールをざっと調べてみたところ、Net::IRC, Bot::BasicBot, POE::Component::IRC, AnyEvent::IRC::Clientあたりが使えそう。時代はAnyEventってことで、AnyEvent::IRC::Clientを使ってnickname++したら、その数を覚えておい…

DBIの使い方

いつまで経ってもDBIの使い方が覚えられない..(特にselectall_arrrayrefとか)。この機にちゃんとアタマを整理して身につけちゃいたい。 例によってMySQLのサンプルデータ使ってやってみる。まずは準備から。 #!/usr/bin/perl use strict; use warnings; us…