『id:kazuhookuのメモ置き場』 の新着エントリー
-
僕が shared_ptr よりも retain() / release() 方式が好きだと思う理... d:id:kazuhooku
それは、shared_ptr のようなラッパーよりも、オブジェクト自体が参照カウンタをもっているほうがコードが書きやすいから。たとえば、継承したクラスでオブジェクトの参照カウントをいじることは、shared_ptr では難しい。shared_ptr を使った場合: class Base { p... 続きを読む
-
[メモ] TCP/IPプログラミングにおけるエラー処理 (RSTパケットの飛ば... d:id:kazuhooku
SO_LINGER の秒数を 0 にしてソケットを閉じればいい。Perl で書くなら以下のような感じ。 setsockopt($sock, SOL_SOCKET, SO_LINGER, pack("II", 1, 0)) or die $!; $sock->close() 一方で RST によ... 続きを読む
-
nicesort ってのを書いてみた - kazuhoのメモ置き場 d:id:kazuhooku
sleep sort とか環境にやさしすぎて21世紀には不向きだと思うの。なので nicesort なるものを作ってみた。 #! /bin/bash function f() { nice -n "$1" perl -we 'for (1..1000000) {}' echo "$1" } w... 続きを読む
-
Re 常識を覆すソートアルゴリズム!その名も"sleep sort"! - kazuho... d:id:kazuhooku
no titleを読んで、自分が書くとしたらこんな感じかなーと思った。多重化して select 使う必要ないよねということで。 use Time::HiRes qw(sleep); sub sleep_sort { # create pipe pipe(my $rfh, my $wfh) or... 続きを読む
-
ファイルに書かれたら irc とかネットに通知するとかそういうデーモ... d:id:kazuhooku
デーモン側をこんな感じで書きます。 use Fcntl qw(S_IFIFO); use POSIX qw(mkfifo); my $FIFO_NAME = "/tmp/my_messenger.fifo"; unlink $FIFO_NAME; mkfifo($FIFO_NAME, 0666... 続きを読む
-
スクリプトの並走度を2以上に制限する話 - kazuhoのメモ置き場 d:id:kazuhooku
並走度1なら daemontools の setlock でいいんだけど。とりあえずこんなの書いた > https://github.com/kazuho/kaztools/blob/master/semaphorePOSIX Semaphore とか使うと異常終了時のカウントアップができない... 続きを読む
-
class definition is initialization パターン? - kazuhoのメモ置き... d:id:kazuhooku
クラスを定義するだけで、そのクラスインスタンスが自動的に作られて登録されたりすると便利ですよね。たとえば、ビルド構成によって組み込まれるモジュールが変わる場合に、そのモジュールを Makefile に含めるだけで自動的サービスクラスが初期化されて登録されるとうれしい。今回 getopt のラッ... 続きを読む
-
Cのコールバック関数をC++のメンバ関数にバインディングする方法 - ... d:id:kazuhooku
たとえば libevent のような C 言語でかかれたイベント駆動型のライブラリを C++ から使っていると、C++ のメンバ関数をコールバックとしてセットできたらうれしいことが多いですよね。以下のようにすればできます。たとえば、コールバック関数をセットする関数の型が、 void set_f... 続きを読む
-
モジュールがロードできたら、その関数を呼ぶ - kazuhoのメモ置き場 d:id:kazuhooku
って処理を書きたい場合がある*1けど、そういう場合は、 my $access_allowed = eval { require Authen::Libwrap } && host_ctl('tiarra', $sock); みたいな感じでよかったらしい。って id:tokuhirom に教えて... 続きを読む
-
Tiarra (あるいはPerl) からhosts.allowとか使ってアクセス制御する... d:id:kazuhooku
諸般の事情で、ついに Tiarra ユーザーになったんですけど、 Dynamic DNS を使って SSH アクセスを制限する方法 - kazuhoのメモ置き場 に書いたようにサーバのアクセス制限を hosts_access 使ってやってるので Tiarra についても同様にしたい。Perl ... 続きを読む
-
alarmをネストする方法 - kazuhoのメモ置き場 d:id:kazuhooku
だいたいこんな感じ。結局使わないコードだけど。alarm(0) を呼んでからセットしてるのは、$SIG{ALRM} の差し替え中にシグナルが飛んでくる可能性を考えて。このあたりは自分がセットするシグナルハンドラの仕様によっては、高速化の余地があるはず。 sub create_nested_al... 続きを読む
-
HTTP/1.1 の chunked encoding を使った POST / PUT を避けるべき理... d:id:kazuhooku
通信相手のサーバが HTTP/1.1 対応と確認できるまでは 1.0 と互換性のない chunked encoding は使えないし でも確認が取れた接続を使い回す = HTTP/1.1 の持続的接続を使い回して POST / PUT するってことだけど、持続的接続のタイムアウト条件は、TCP... 続きを読む
-
YAPC::Asia 2010 を終えて (it's time to write code) - kazuhoのメ... d:id:kazuhooku
今年の YAPC::Asia も大盛況。"Welcome Perl" というテーマにふさわしく、ハッカーの人たちが何をやっているのかに留まらない、幅広い実用的な話を聞くことができました。その好例が峰松さんのLT「基幹システムがperlでどうしてこうなった」 であったり nekokak さんの「... 続きを読む
-
Apache, Lighttpd, nginx における持続的接続と lingering close の... d:id:kazuhooku
lingering close がなんであるかについては、Apache Performance Tuning - Apache HTTP Server を参照。Apache 2.2.16 と lighttpd 1.4.28 は、必ずアプリケーションレイヤでの lingering close を... 続きを読む
-
livedoor Reader で覚えておくべき、たったひとつのショートカット -... d:id:kazuhooku
id:gfx に聞かれたので。Shift+Z を2回押すと、トップのバーが消えて画面が広くなる。便利。それだけ覚えてる 続きを読む
-
TwitterやFacebookのURLには、なぜ#!が含まれるのか (SEOとAjaxのお... d:id:kazuhooku
Ajaxを使うためにはページ内リンク (hash fragment=URLの#以降) を使うのが一般的*1 hash fragmentはサーバに送信されないから、JavaScript非対応のブラウザだと動作しない 特にサーチエンジンのクローラ等で問題になる*2そこで Google は、#! が... 続きを読む
-
TwitterやFacebookのURLには、なぜ#!が含まれるのか (SEOとAjaxのお... d:id:kazuhooku
Ajaxを使うためにはページ内リンク (hash fragment=URLの#以降) を使うのが一般的 hash fragmentはサーバに送信されないから、JavaScript非対応のブラウザだと動作しない 特にサーチエンジンのクローラ等で問題になる*1そこで Google は、#! が含ま... 続きを読む
-
Disk I/Oの使用率を監視するワンライナー - kazuhoのメモ置き場 d:id:kazuhooku
iostat -x の %util を監視してしきい値を超えたらアラートメール飛ばしたいなぁと思って書いた。こんな感じ。 */5 * * * * perl -wle 'my $s = `/usr/bin/iostat -xk /dev/sd[abc] 270 2 | tail -4`; pri... 続きを読む
-
IPC::Open3 の正しい使い方 (re .pl な config ファイルのコンパイル... d:id:kazuhooku
.pl な config ファイルのコンパイルがとおるかチェックしてみる - TokuLog 改メ tokuhirom’s blog の件ですが、IPC::Open3 の使い方が気になったので、勝手に添削 (c) dankogai。 use IPC::Open3; ... my($wtr, $... 続きを読む
-
Ubuntu におけるマルチホーム (IP Alias) の設定とデフォルトのソー... d:id:kazuhooku
- コンピュータ・IT
- Ubuntu network from_greader from_plagger
- 6 users
- 2010/05/16
/etc/network/interfaces に auto eth0 iface eth0 inet static address 172.x.y.10 netmask 255.255.255.0 network 172.x.y.0 broadcast 172.x.y.255 gateway... 続きを読む