関数の呼び出し元情報

Carpモジュールを使うと関数の呼び出し元情報(スタックトレース)が出力されるわけですが、どうやって出力しているかソースコードを見てみました。 すると、caller()という関数を使っていました。 参考:http://www.rfs.jp/sb/perl/05/caller.html こんな関…

perlでテストファースト

私のperlのテスト環境について書いてみます。perlスクリプトのテストには、Test::Moreモジュールを使っています。 使い方はこんな感じ。Module.t use strict; use Test::More 'no_plan'; BEGIN{ use_ok('Module')}; my $r = Module->new; is ref($r), 'Modul…

perlで共通定数を使う方法

こんな感じかな。 共通定数定義モジュール Constant.pm #!/usr/bin/perl package Constant; use strict; # Exporterを継承 use base qw/Exporter/; # グローバル変数の使用を宣言 use vars qw /@EXPORT_OK/; # @EXPORT_OKは要求に応じてエクスポートするシン…

アプリケーションのバージョンを調べる

apacheなどのバージョンを調べるときは、 rpm -aq | grep httpd とすると調べられて便利です。 httpd -v で見れなかったので。。。

Data::Page::Navigation

d:id:iox:20070618:1182158941の記事にid:fbisさんからブックマークでData::Page::Navigationを使うとさらに便利と教えてもらいましたので、早速少し使ってみました。このモジュールは、Data::Pageモジュールにメソッドを加えたモジュールのようで、pages_pe…

DBIx::Classのページング処理

現在、DBIx::ClassとTemplate Toolkitを勉強しているところですが、ページングの処理が驚くほど簡単に書けるので自分用のメモを残しておきます。 CGI側でresultsetオブジェクトに対しpager()をコールすることで、Data::Pageオブジェクトを取得できます。 my …

CGIスクリプトのデバッグについてのメモ Web+DBより

CGIスクリプトのデバッグは標準エラー出力にprintするのが一般的です。 Apacheならサーバのエラーログに出力されます。さらに、warnを使うとスクリプトのファイル名や行数も出力されるので便利です。 warn "date is $date"; このスクリプトの出力は、 date i…

ourとlocal宣言

ourはグローバル変数の宣言に使用される。 一般的には、以下のように使う。 use strict; use warning; our $Global; sub hoge { our $Global; # この宣言をせずにも$Globalは使えるが # このようにグローバル宣言を明示するとコードが見やすくなる } ourは、…

Continuation or non-HTTP traffic

メモです。WireShark(Ethereal)でHTTPトラフィックをキャプチャすると、Decode SummaryにContinuation or non-HTTP trafficと表示される場合がある。 これが、どういうケースで表示されるか調べてみると、HTTP のヘッダが含まれていない場合に表示されるとい…

Trac(日本語版)をUbuntuにインストールしたときのメモ

現在、インストールしてあるtracを削除。 >sudo apt-get remove trac そしてインタアクト株式会社さんが公開している日本語版tracを入手して sudo python ./setup.py install でインストール。そして、/etc/apache2/httpd.confを次のように設定する。 Alias …

TracをUbuntuにインストールしたときのメモ

まず最初に、参考にしたURLを。 http://trac.edgewall.org/wiki/TracOnUbuntu それでは、実際の作業を。 初期設定では、apt-getでtracのパッケージが見つからなかったので、 /etc/apt/sources.listにあるリポジトリのコメントを外して >sudo apt-get update …

ちょっとしたTip

Excelで、 (INDIRECT("D"&ROW())="変更") と設定すると行が"変更"という文字列の場合は、色を変えるように指定できる。 色々と応用が効きそう。

デバッグ時に

デバッグ時の自分用メモです。 配列やハッシュの入れ子の内容を表示したいときは、Data::Dumperを使うと楽です。 こんだけ。 use Data::Dumper; my @data = 配列とかハッシュの入れ子; print Dumper(\@data);

Rubyでの参照渡し

Rubyで参照渡しを使うにはどうするのかというのが気になり、色々と調べてみました。結論として、参照渡しを使うケースは主にひとつ以上の値をメソッドから取り出したいケースで、Rubyの場合は配列で戻り値を返そうよっということみたいです。 引用元: http:…

宣言

英語の学習がたるんでいるので、三月のTOEICに応募しました。 700点取ります!!

inetutilsのmake時のエラー

コードを読む力を身につけるためpingのソースコードを勉強しようとしています。 このため先日からLinux環境も整えていますが、色々と問題が。。。使用するソースコードはGNUソフトウェアで、http://directory.fsf.org/network/inetutils.htmlからinetutils 1…

gccでのエラー

というここで、Linux環境ができたので早速 gcc で適当なサンプルコードをコンパイルしてみると、 /usr/bin/ld: crt1.o: No such file: No such file or directory というエラーが。 調べてみると libc6-dev というパッケージが足りないらしい。 そこで、以下…

Ubuntuを使ってみた

先日、VMware Playerをインストールして GuestOS に Fedora Core 6を利用していたのですが、漢字が正しく表示されませんでした。 今回はとりあえずLinuxの環境がほしかったので、日本語環境がばっちり整っているというUbuntuにトライしてみました。ちょうど…

VMware Playerをインストール

VMware PlayerをインストールしてFedora Core 6 を入れてみましたので、インストールメモを。 ①http://www.vmware.com/download/player/からVMWare Playerをダウンロード・インストール ②http://www.thoughtpolice.co.uk/vmware/からFedora Core 6のイメージ…

ハッシュの配列

久々に仕事でPerlを使う機会があり、作っているところなのですがかなり忘れててショッキングでした。 ハッシュの配列からとある1要素を取り出して引数として返す基本的な処理を作るのに、ハッシュのリファレンスの取り扱いでかなりはまってしまいました・・…

コミット時のコメント

現在、Subversionを使っています。 といっても、最近プログラムを書く機会がないので、Wordなどのバイナリファイルだったりしますが。。。 ということでメモです。 Subversionはコミット時に-mオプションでコメントをつけられます。 >svn commit -m "コメン…

ブロックの作り方 (もう少し)

もう少しブロックについて、メソッドにブロックを渡されなかったらどうなるかというメモを。 上のtwo_times_to_max()にブロックを渡さなかった場合は、例外が発生します。 ブロックを渡された場合と渡されなかった場合で、処理を分ける場合はblock_given?を…

ブロックの作り方(再)

ブロックは、イテレータを実装するためによく使われています。 たとえば、Arrayクラスのeachメソッドでは、 list = ["hoge", "fuga", "piyo"] list.each{ |element| puts element} といった具合にブロックを使って繰り返し処理を行えます。このようなブロッ…

ブロックの作り方

Rubyでは、メソッドにブロックを関連付けて、色々と便利なことができるようです。 ちょっと、この辺りがまだモヤモヤしているのでまとめときます。 って思ったけど、また明日にでも。

可変長の引数

メモです。可変長の引数にする場合には、 def my_method(arg1, *arg2) のように、引数の前に*をつけます。 これによって、 my_method("hoge", "piyo", "fuga") のような呼び出しで、arg1には"hoge"が、arg2には残りの引数が配列で格納されます。

ファイル読み込みのTip

ファイル読み込みで、とある文字列からとある文字列までの内容を処理したい場合があります。こんなときは、以下のように範囲を条件式として利用すると便利です。 while line = gets puts line if line =~ /hoge/ .. line =~ /fuga/ end 上のソースでは、標準…

ActiveSupportってめちゃ便利

ActiveSupportは、Railsのフレームワークのひとつですが、普通のRubyプログラムでも使うことができます。 Railsをインストールしている場合は、 require 'active_support' で、ActiveSupportのクラスやメソッドを使うことができます。 便利な機能としては、 …

Python Challenge Level5

いや〜、レベル5はとっても難しかったです。 "peak hell"を発音すると、なんかに似てない?っていうヒントがあるのですが、まったくわからず。 で、Python Challengeのフォーラムページ(http://www.pythonchallenge.com/forums/)を見てみると、Pythonのモジ…

Python Challenge Level4

Python Challenge Level4 は、とあるURLから次のURLをもらってどんどんアクセスしていくというものでした。 Webページには、 and the next nothing is 5868 というような文字列がでてくるので、この数値をURLのnothing=のところに格納します。 僕はこんな感…