タグ

ブックマーク / nitsuji.hatenadiary.org (20)

  • psの操作に慣れる - nitsujiの日記

    Linuxなどで実行中のプロセスを表示させるコマンドにpsというのがあります。 これまでこのコマンドをかなり適当に使ってきていて、オプションとかよくわかってなかったのでmanをちゃんと読んでいろいろやってみました。 psコマンドはprocpsというパッケージに含まれるコマンドです。 procpsには他にtop, vmstat, w, kill, free, slabtop, skillといったコマンドが含まれているようです。 ここではFedora Core 6で以下のバージョンを使っています。 $ ps --version procps version 3.2.7 オプションの指定方法 オプションの指定方法にいくつかの方法があるので把握しておきます。 UNIX オプション。まとめることが可能で、前にはダッシュを置かなければならない。 BSD オプション。まとめることが可能で、ダッシュを使っ

    psの操作に慣れる - nitsujiの日記
    lapis25
    lapis25 2008/10/01
  • (便乗ネタ)テンプレートエンジンのベンチマークをTripletailでやってみた。 - libnitsuji.so

    ClearSilver の Perl バインディングを使う(Perlのテンプレートエンジンのベンチマーク) - spiritlooseのはてなダイアリー でClearSilver、Template-ToolkitHTML::Templateのベンチマークを取っているのを見てTripletail::Templateも一緒にやってみた。 コードは同じやつを拝借してTripletail用のコードを追加する。 benchmark.pl #!/usr/bin/perl use strict; use warnings; use Benchmark qw(timethese cmpthese); use Template; use ClearSilver; use HTML::Template; use Tripletail qw(/dev/null); my $bench = timethese(

    (便乗ネタ)テンプレートエンジンのベンチマークをTripletailでやってみた。 - libnitsuji.so
  • Catalyst本がやってきた - libnitsuji.so

    衝動買いしてしまったCatalystがようやくやってきた。 12/10にPacktで注文して1/2に発送したよーってメールが来て今日(1/15)届いた。 20% Pre-Order Discountというので買ったから39.99ドルのところを31.99ドルで買えた。支払いはVISAで換算レートが1ドル113.319円(換算日12/12)で3625円だった。送料は無料。日の場合はシンガポールから発送するらしい。で、アマゾンを見ると6614円で売っててどんだけーって感じですね。3000円も高い!まだ全然読んでないけど6000円以上出すのはどうかなーとか思った。見た目は200ページ弱で結構薄いなーという印象。 ちなみに今Packtで買うと35.99ドルなんだけど12/15現在に限定すると1ドル107円とかなので4000円以下で買えるのかな。でもまあ発送は遅いんだろうけど。アマゾンなら翌日とか

    Catalyst本がやってきた - libnitsuji.so
    lapis25
    lapis25 2008/01/18
    藤本美貴
  • Catalyst::Manual::Tutorial::Authenticationと同じことをTripletailでやってみたよ - libnitsuji.so

    これ Catalyst::Manual::Tutorial::Basicsと同じことをTripletailを使ってやったのでその感想とか - libnitsuji.so の続きです。こっそりと続いています。 Catalyst::Manual::Tutorial::Authentication - Catalyst Tutorial - Part 4: Authentication - metacpan.org 今回は認証です。Catalystでは、 Authentication Authentication::Store::DBIC Authentication::Credential::Passwordみたいなモジュールがいろいろとやってくれます。 セッション関係も、 Session Session::Store::FastMmap Session::State::Cookieみたいなモ

    Catalyst::Manual::Tutorial::Authenticationと同じことをTripletailでやってみたよ - libnitsuji.so
  • Catalyst::Manual::Tutorial::Basicsと同じことをTripletailを使ってやったのでその感想とか - libnitsuji.so

    Catalyst::Manual::Tutorial::CatalystBasics - Catalyst Tutorial - Part 2: Catalyst Application Development Basics - metacpan.org チュートリアルの内容は、Catalystのプロジェクトを自動生成して、SQLiteにデータベースを作って、DBIx::Classを使ったモデルクラスを作って、コントローラを作って、Template-Toolkitを使ったビュークラスを作るというもの。ほとんどが自動生成。テスト用サーバーもあるしラクチン。実際にかかった時間も少ない。で、このチュートリアルはもっと続いていくんだけど、ふと思い立ったのでTripletailを使って同等のものを作ってみました。 動いてるもの Catalyst http://takatoshi.dyndns.org

    Catalyst::Manual::Tutorial::Basicsと同じことをTripletailを使ってやったのでその感想とか - libnitsuji.so
  • nitsujiの日記 - Catalyst::Manual::Cookbook

    Catalyst::Manual::Cookbook - Cooking with Catalyst - metacpan.org Basics Catalystを使う人が知っておいた方がいいこと。 Delivering a Custom Error Page アプリケーションでエラーが発生したときはCatalystは独自のエラーページを表示する。-Debugモードのときはエラーメッセージとコンテキストオブジェクト($c)のData::Dumpの出力を表示する。-Debugモードじゃないときは"Please come back later"が表示される。 エラーページを変更するにはendメソッドにエラー処理を書けばいい。例を示す。 sub end : Private { my ( $self, $c ) = @_; if ( scalar @{ $c->error } ) { $c->st

    nitsujiの日記 - Catalyst::Manual::Cookbook
  • nitsujiの日記 - Catalyst::Plugin::I18Nを使ってメッセージ類をControllerに直接書かないようにする

    例えばカテゴリを削除するアクションを実行した結果を表示したい。 flashを使って例えばこんな感じにする。 if ($c->form_submitted) { if (my $name = $c->forward('do_delete')) { $c->flash->{notice} = sprintf('カテゴリ「%s」を削除しました', $name); $c->res->redirect($c->uri_for('/admin/category/list')); } else { $c->flash->{notice} = 'カテゴリを削除できませんでした'; $c->res->redirect($c->uri_for('/admin/category/list')); } } でもこういうメッセージ類がコントローラの中にあるとあとでなにかと面倒です。 そこでCatalyst::Plu

    nitsujiの日記 - Catalyst::Plugin::I18Nを使ってメッセージ類をControllerに直接書かないようにする
  • 問題はCatalyst::Plugin::FormValidator::Simple::AutoのYAMLのprofileのフォーマットにあるのではないか - libnitsuji.so

    Catalyst::Plugin::FormValidator::Simple::AutoでマルチカラムのUNIQUEチェックをする場合 - libnitsuji.soの続き。 いろいろ考えてるうちに問題はYAMLの書き方じゃなくてほかのところにある気がしてきました。 つまりハッシュをキーにするという考えがまずおかしいのではないかと。 そこでFormValidator::Simpleのprofileについて追ってみました。 Catalyst::Plugin::FormValidator::Simple::AutoのprofileのYAMLは、 # profiles.yml action1: param1: - NOT_BLANK - ASCII - [ 'LENGTH', 4, 10 ] param2: - NOT_BLANK のように、アクションとパラメータ名がハッシュのキーになって、各

    問題はCatalyst::Plugin::FormValidator::Simple::AutoのYAMLのprofileのフォーマットにあるのではないか - libnitsuji.so
  • nitsujiの日記 - CatalystでFormValidator::Simple::AutoでDBIC_UNIQUE使う場合

    FormValidator::Simple::Plugin::DBIC::Unique - unique check for DBIC - metacpan.orgを見ると、Catalystの場合は # you also can pass resultset object. # in catalyst application, FormValidator::Simple->check( $q => [ name => [ ['DBIC_UNIQUE', $c->model('Schema::User'), 'username' ] ], ] ); と書いてある。 でもCatalyst::Plugin::FormValidator::Simple::Autoを使ってprofiles.ymlにバリデーションのルールを書く場合は$c->modelとか書けない。 admin/category/do

    nitsujiの日記 - CatalystでFormValidator::Simple::AutoでDBIC_UNIQUE使う場合
  • Catalyst::Plugin::FormValidator::Simple::AutoでマルチカラムのUNIQUEチェックをする場合 - libnitsuji.so

    昨日に引き続き今日もまた躓いています。 FormValidator::Simple::Plugin::DBIC::Uniqueでマルチカラムのユニークチェックをしたい。 たとえば「このID(自分自身)以外で名前が重複するカラムがあるか?」みたいなチェックをするためには SELECT COUNT(*) FROM table WHERE id != ? AND name = ? みたいなSQLが必要で、それをやるためには、 # check multiple columns including '!=' check # set "!" as prefix for key-name FormValidator::Simple->check( $q => [ { unique => [qw/id name email/] } => [ [qw/DBIC_UNIQUE Table !id name m

    Catalyst::Plugin::FormValidator::Simple::AutoでマルチカラムのUNIQUEチェックをする場合 - libnitsuji.so
  • こんなControllerを書いた - libnitsuji.so

    Controller. - Lazy Programmer :-p このまえCatalystをいじってたときはこんなのを書きました。 /entry (エントリ一覧表示) /entry/create (フォーム表示) /entry/create/cofirm (確認画面) /entry/create/save (エントリ保存) package Form::Web::Controller::Entry; use strict; use warnings; use base 'Catalyst::Controller'; =head1 NAME Form::Web::Controller::Entry - Catalyst Controller =head1 DESCRIPTION Catalyst Controller. =head1 METHODS =cut =head2 index =cu

    こんなControllerを書いた - libnitsuji.so
  • Catalystでロジックをどこに置くかという話 - libnitsuji.so

    Catalystをちゃんと勉強しはじめてからずっと頭の片隅にあるけどまだ解決せず。 俺以外にも悩む人はぜったいいるはずだと思っていたけどMLを検索する方法がよくわかんなかったのでいまいち網羅できず。ひとまず、 Catalyst MVCの覚え書き - libnitsuji.so こんな感じだったのだが、今日、 http://www.mail-archive.com/catalyst@lists.rawmode.org/ を見つけたので「logic」で検索! 興味深いスレッドとして、 [Catalyst] Program the logic [Catalyst] ways to do stuff and why の二つがあったので読んでみた。 実装までは踏み込んでいないのでそれ以前の話だけど。俺の頭の中もまだ実装前なので具体的にどう実装するかはひとまず置いておく。 俺の疑問点とか考えとかを書い

    Catalystでロジックをどこに置くかという話 - libnitsuji.so
  • Catalyst::Manual::Cookbook::Deployment - libnitsuji.so

    Cookbook長いので分割。 デプロイについてのレシピ。Webサーバーエンジンとアプリケーションの効率化も含む。 http://search.cpan.org/~jrockway/Catalyst-Manual-5.700701/lib/Catalyst/Manual/Cookbook.pod#Deployment mod_perl Deployment mod_perlは多くのアプリケーションに対しての最適解だけど利点と欠点を述べる。他の方法としてはFastCGIがある。 Pros Speed mod_perlはとても高速で、それぞれのApacheプロセスのメモリにアプリケーションをロードすることによって恩恵を受けられる。 Shared memory for multiple apps 同じサーバーで複数のCatalystアプリケーションをする必要がある場合、mo_perlは共通のモジ

    Catalyst::Manual::Cookbook::Deployment - libnitsuji.so
  • Catalyst::Manual::Cookbook::Test - libnitsuji.so

    さらに分割。 テストについては外部からリクエストを送って、みたいな方法しかない?ようなので、内部のモジュール、特にモデル部分のテストをどうやってやるかが問題。 そこは普通のPerlモジュールと同じ方法でできるのかね。 http://search.cpan.org/~jrockway/Catalyst-Manual-5.700701/lib/Catalyst/Manual/Cookbook.pod#Testing テストはWebアプリケーションの開発プロセスに不可欠な要素だ。テストは複数人での開発とコードの変更を容易にする。 Testing Catalystは開発中のテストと番環境にデプロイする前のテストをやりやすくする。 Catalyst::Testは同じテストをローカル(外部のデーモンを除く)とリモートのHTTPサーバに対して行えるようにする。 Tests スケルトンアプリケーションの

    Catalyst::Manual::Cookbook::Test - libnitsuji.so
  • Django adminサイト(チュートリアル その2) - libnitsuji.so

    ちょっと!すごいよ!すごすぎるよ! コンテンツの追加や変更,削除を行うための admin サイトをスタッフや顧客向けに作る作業は,創造性の欠けた退屈なものです. これはもう、ほんとにその通りです。いままで似たような管理画面を何回か作ってきて痛感している。そしてどうしても表側に比べて時間をかけれないのでデザインとかユーザビリティの点をおざなりにしてしまいがちな所でもあります。自動化したいけど時間がなくてできない。そんなところです。だから次の言葉の重みはすごい。 そこで, Django ではモデルを管理するための admin インタフェースを完全に自動化しています. そして完成度が高い。仕事でこのレベルのものをスクラッチから作ろうとして工数出したら即ダメだしでしょうね。 PerlのWebアプリケーションフレームワークであるMaypoleとかCatalystとかでも簡易的なUIは自動作成できるけ

    Django adminサイト(チュートリアル その2) - libnitsuji.so
  • Djangoをインストール - libnitsuji.so

    Djangoは0.95.1、Pythonは2.3.5で。 インストールは簡単だったので、プロジェクトを作成してとりあえず動かしてみようかと。 $ django-admin.py startproject mysite $ cd mysite $ python manage.py runserverで Validating models... 0 errors found. Django version 0.95.1, using settings 'mysite.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.と出たので、このコンピュータのポート8000にアクセスしたけどなにも表示されない。接続できてないっぽい。 もしかしてローカルからのアクセス

    Djangoをインストール - libnitsuji.so
  • MySQL、DBD::mysqlのインストール - libnitsuji.so

    思わぬ苦戦を強いられたのでメモ。 MySQLのインストールは普通にオッケー。 sudo apt-get install mysql-server mysql-client mysql-docを指定すると「それは使えません」と言われるのでインストールしてない。 次からは苦戦。 sudo perl -MCPAN -e 'install Bundle::DBD::mysql' えっと、理由は忘れたけど何か足りない模様。また開発用の何かが足りないんだろう。で、いろいろ調べた結果libmysqlclient-devってのを入れることにした。実際にはこう。 sudo apt-get install libmysqlclient14-dev そのあと再びDBD::mysqlのインストールを試みるがテスト失敗。コンソールを眺めているとAccess Deniedって書いてある。MySQLのインストール後にr

    MySQL、DBD::mysqlのインストール - libnitsuji.so
  • Catalyst入門 - libnitsuji.so

    が大事!ということで、Catalystに再入門してみた。 Catalyst::Manual::Intro - Introduction to Catalyst - metacpan.org というイントロがあるので、それをまとめながら訳す。訳しながらまとめる。 という作業をやっている途中で http://www.tcool.org/index.cgi/catalyst/ というすばらしいサイトがあることを知ったのだが、今回の目的は単に訳すことや文章を読むことではなくてもっと個人的な作業なので特に気にしないで続けることができた。というわけでこれはあくまで「まとめ」なので省略してるところがあります。正確さを求める場合は必ず原文を参照すること。あと、個人的には上でリンクした日語訳と比べてみると結構おもしろかったです。「あー、こうやって訳すのか。すごいな」とか「ほとんど同じ訳だな」とか。 ま

    Catalyst入門 - libnitsuji.so
  • perltidyを使ってみました - libnitsuji.so

    perltidyってのは整形ツールです。インデントとか改行とかカッコの位置とかを調整してくれる。 コードが変にならないのかすごく不安なんだけど。とりあえず使ってみる。常用するかどうかはわかんないけど。 インストールはこうする。 $ sudo apt-get install perltidy設定は.perltidyrcをホームディレクトリに置けばそれが使われる(設定ファイル置き場は他にもあるよう)。設定内容はとりあえずPerl Best Practices: Standards and Styles for Developing Maintainable Codeに載ってるやつを使ってみた。 -l=78 # Max line width is 78 cols -i=4 # Indent level is 4 cols -ci=4 # Continuation indent is 4 cols

    perltidyを使ってみました - libnitsuji.so
    lapis25
    lapis25 2006/05/10
  • Chapter 1. Introducing CGI and mod_perl を読んで - libnitsuji.so

    Practical Mod-Perlというがあるのだけれど、その内容はオープンソースになっている。 mod_perlはいつかちゃんと勉強しなきゃと思っていたので読みはじめました。 んで、やっぱり書かないと覚えないし身に付かないし。 - CGIの歴史 まあ、これはね。問題ないでしょう。 HTTPを使ってデータをやりとりします。ヘッダとデータは空行で区切られます。リクエストを受け取ってレスポンスを返します。レスポンスではヘッダーでMIMEタイプとか文字コードとかを指定します。Apacheはmod_cgiを使ってスクリプトを実行します。環境変数を使っていくつかのパラメータを受け取れます。HTTP_USER_AGENTは簡単に偽装できます。HTTP自体にはURIの長さ制限がないけどサーバーとクライアントにはあるので注意しましょう。ユーザーから受け取った値を使ってレスポンスを作成する場合はクロスサ

    Chapter 1. Introducing CGI and mod_perl を読んで - libnitsuji.so
  • 1