追記 2006/12/06 下記で IS NOT NULL を実現するのにスカラーリファレンスを使用していますが,IS NULL / IS NOT NULL を出すためには必ずしもスカラーリファレンスを利用する必要はありません。ということで訂正を入れようと思ったんですがちょっと長いので「フォローアップ記事」を書きました。 本題 typester さんに以前教えて頂いたんですが,似たようなことに今日遭遇したのでメモ。 WHERE field1 IS NOT NULL な検索をしようと思って, $resultset->search({ field1 => 'IS NOT NULL' });と書くと,内部的には SELECT ... WHERE field1 = ?と展開されて,プレースホルダに「IS NOT NULL」が渡されるので,バツ。 $resultset->search({ field
結局学校の画題を作るのにCatalystを使うことにした。で、かなりひさしぶりにCatalyst触ったんだけどなにかと強力になってるね。以下は現在CPAN最新の5.7001の話。 Viewのレンダリング 昔のCatalystだと自分でRoot.pmのendアクションにViewにフォワードするように書かないとダメだった。 sub end : Private { my ( $self, $c ) = @_; $c->forward('MyApp::View::TT') unless $c->response->body; }という風。しかし、今のバージョンだと、 sub end : ActionClass('RenderView') {}とするだけで、よかれと思われるViewにforwardしてくれて、かなり簡単になった。Using RenderView for the Default Vie
NAME Catalyst::Manual::Tutorial::CatalystBasics - Catalyst Tutorial - Part 2: Catalyst Application Development Basics OVERVIEW This is Part 2 of 9 for the Catalyst tutorial. Tutorial Overview Introduction Catalyst Basics Basic CRUD Authentication Authorization Debugging Testing Advanced CRUD Appendices DESCRIPTION In this part of the tutorial, we will create a very basic Catalyst web application.
Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな
keepalivedはLinuxで冗長構成を組む道具としてとても便利ですが、運用面に関する配慮に物足りなさを感じることがあります。例えばIncludeがないとかIncludeがないとかIncludeがないとか(笑) naoyaの日記でnaoyaさんも悩んでいるようですが、設定ファイルをうまく保守する仕組みをどう作るかが導入する際の大きな鍵になると思います。今回は、DSASではどのようにして2台のkeepalivedを運用しているかを少しだけご紹介させて頂きたいと思います。 1) マスターで設定ファイルを編集する 2) バックアップに設定ファイルを転送する 3) バックアップで設定を反映する 4) マスターとバックアップの差分を確認する 5) マスターで設定を反映する 具体的にはどのようにしているかというと、、、 lv1:# vi 設定ファイル lv1:# lvs-sync -ine lv1
mod_proxy_balancerのretry mod_proxy_balancer(mod_proxy)のretry設定は、 コネクションをプーリングするための、リトライのタイムアウトを秒で 指定します。バックエンドサーバへのコネクションプーリングが失敗した場合は、 タイムアウトの期間が過ぎるまで、そのサーバにリクエストをフォワードしません。 というもので、 BalancerMember http://1.2.3.6:8000 retry=60 loadfactor=10 こんなように書ける。 アプリケーションサーバにデプロイするときに、 httpdの停止 rsync httpdの開始 という順番で行うのが通常だと思うけど、デフォルトのretry間隔が60秒になっているため、httpdを開始してからアクセスがバックエンドに届くには、最大1分間待たなければならない。 バックエンドのサーバ
2006年09月22日02:30 カテゴリLightweight Languages javascript - event.target で IDを省略 DHTMLの世界では、DOM objectにはみんなIDをふっておいて、document.getElementByID(id)でobjectを取得してそれをいじくるというのが王道ですが、いじくる対象がイベントを発生させたobject自身しかないならIDは省略できるいうお話。 よくあるのは、 function foo(id){ // あるいは // function $(id){ return document.getElementById(id) } // を定義しておいて$(id)を使う var elem = document.getElementById(id); // ... } とやってから <a href="#" id="bar
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く