朝、ひげをそりながら青ラクダ本を読み、Perlの勉強。 プログラミング言語の本を読むのは面白い。 自分でわかっていると思っていたことでも、 細かな点で誤っていることがわかったり、 より「その言語の特徴を生かした」解法が解説してあったりするからだ。 学んだ成果はメールマガジン『Perlクイズ』に反映するつもりである。 私の経験上、 プログラミング言語を学ぶときには、 人に教えるつもりで学ぶと、とてもよく身につく。 だから、本を書くと、とてもよく身につく。 「本を書く」というのは「人に教える」ということにほかならないからだ。 これはプログラミング言語に限らないかもしれない。 そもそも、理解できなければ教えられないじゃないか、って? それはそうだけれど、まず「教えるつもり」になるのだ。 教えるつもりになる。理解した分だけをまず人に教える。 教えているうちに、自分が何を理解していないのかが浮き彫り
「どのような勉強をすればプログラミングができるようになるのですか」という質問をいただいたので、お返事します。 この質問を聞いたときにすぐに思いついた答えは、 その答えは『どのような勉強をすれば文章が書けるようになりますか』という質問への答えに似ているでしょう というものでした。その心は、 プログラミングが「できない→できる」へデジタル的に変化するのではない。しだいにできるようになっていく。 という意味です。 …という前置きはさておき、これまでにも私はあなたのような方から同様の質問を受けてきました(きっと今後も受けるでしょう)。以下の文章群の中に「あなたへのヒント」が含まれていると良いのですが…。もしも以下の文章でピンと来ないときにはまたお尋ねいただければありがたいです。 どのようにしたらプログラムを1から書けるようになるのでしょうか 結城さん自身はどういう参考書でJavaを学んだのですか
Data::Page::Navigation いい感じのページナビゲーション Data::Pageとページナビゲーションのコードを微妙にリファクタリング。 Time::Piece::MySQLのようにプラグイン的な使い方ができたらいいかなぁに対応。 Data::Page::Navigationと名前をつけてみたけどどうだろう。 使い方は use Data::Page::Navigation; my $total_entries=30; my $entries_per_page = 5; my $pages_per_navigation = 5; Data::Page->pages_per_navigation($pages_per_navigation); my $pager = Data::Page->new( $total_entries, $entries_per_page, $cu
Data::Pageとページナビゲーション 検索などで多くのページがヒットしたときの、ページナビゲーション << 3 4 5 6 *7 8 9 10 11 12 >> の部分をうまく扱って、100ページ分とかあっても、前後のページのみ表示するモジュールを探していたんだけど、良いのが見つからない。 Data::Pagesetというのがあるんだけど、思ったのと違う。 トータルエントリーが30、1ページ5つのエントリーとして、ナビゲーションのリンクは4つとした場合に、Data::Pagesetでは、 ページ1の場合 *1, 2, 3, 4 ページ2の場合 1, *2, 3, 4 ページ3の場合 1, 2, *3, 4 ページ4の場合 1, 2, 3, *4 ページ5の場合 *5, 6 ページ6の場合 5, *6 となってしまいます。*がついているところは現在のページを表してます。 希望としては、
FormValidatorとDBIx::Class::WebFormの組み合わせはいい。 Scaffoldなどではすでに使われているのだけど、FormValidator::Simple(Data::FormValidator)とDBIx::Class::WebForm(Class::DBIの場合はClass::DBI::FromForm)、この組み合わせはヤバいね。非常に楽ができてしまう。 研究中のCatalystアプリの部分だけど、タイトルと、内容、時間(年〜秒まで6つのフォーム)があって、それをDBに入れる場合、 my $result = $c->form( title=>[qw/NOT_BLANK/], text=>[qw/ANY/], {created_on=>[qw/d_year d_month d_day d_hour d_min d_sec/]}=>[qw/NOT_BLANK
senna+MySQLでメモリ食いすぎて落ちる 急にMySQLが落ちるようになってしまった。 というのも、sennaのfulltext indexを張ったテーブルを25個ほど持つようにして、総データ量(MYD/SEN含む)が4G近くの構成にしてからだ。 topを抜粋するとこんな感じで Mem: 4151320k total, 4056728k used, 94592k free, 55916k buffers Swap: 4192924k total, 144k used, 4192780k free, 3831344k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 17800 mysql 15 0 2550m 911m 850m S 0.0 22.5 3:02.22 mysqld だいたいVIRT が3Gを超える
mst: Matt S Trout (project founder - original idea, architecture and implementation) castaway: Jess Robinson (lions share of the reference documentation and manuals) abraxxa: Alexander Hartmaier acca: Alexander Kuznetsov acme: Leon Brocard aherzog: Adam Herzog Alexander Keusch alexrj: Alessandro Ranellucci alnewkirk: Al Newkirk Altreus: Alastair McGowan-Douglas amiri: Amiri Barksdale amoore: Andre
Class::DBIでComunをData::SerializerでSerializeして保存。 Class::DBIでobejctやreferenceを保存の続き。 どんぞこ日記さんのところで紹介されてるData::Serializerを採用した。ソースは追記に貼付けてます。 Data::Serializerを使ったので、Serializeに使うモジュールをいくつか選択できて、暗号化、圧縮、エンコード等ができるようになります。暗号化は便利かも。 使い方は前回と同じだけど、Data::Serializerのconfig用のserialize_configメソッドがついて package Foo; use base 'Class::DBI'; use Class::DBI::Plugin::SerializeColumn; __PACKAGE__->columns(All => qw/id
前の話の続き。新しい server.pl は -r オプションをつけたときに、自動的にファイルの修正を検知して再起動してくれる機能が付いてます。 いままでの server.pl だと、デーモン上で perl が永続化してるためにモジュールを書き換えてもそれが再読込されず、一度 ^C で止めてまた起動とかする必要がありました。で、それが必要なくなったと。先日 Rails を試しにいじってたんですが、Rails 付属の WEBrick なサーバーは、クラスの更新も検知してくれてスゲー便利だったので、server.pl がこの仕様になったのはすごくいいです。 どういう実装でこれを実現してるのかなーと思って見てたんですが、やっぱりそこは Catalyst、ちょっと面白い実装になってました。手元にある 5.33 からだと Catalyst::Engine::HTTP::Restarter Catal
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く