タグ

2010年3月17日のブックマーク (12件)

  • http://nyx.pu1.net/sample/tips/check_os.html

    kamipo
    kamipo 2010/03/17
  • ===による配列の比較は順序をチェックする【PHP】 - Programming Magic

    連想配列(ハッシュ)で作ったツリー構造の中に、ある配列(要するに部分木)が含まれているかをチェックする処理を実装しようと思ったときに、ふと==による配列の比較と===による配列の比較はどう違うのだろうと疑問が浮かんだ。==と===の違いについては、以前『厳密な比較 [PHP]』で詳しく調べてみたものの、配列の比較はあまり詳しく見ていなかった。 そこで==と===で配列の比較をした場合の違いを詳しく見てみたところ、意外なことがわかった。 まずは以下の例でどちらもtrueになることを確認する。 <?php $a = array( 'a' => 'x', 'b' => 'y', ); $b = array( 'a' => 'x', 'b' => 'y', ); var_dump($a == $b); var_dump($a === $b); ?> bool(true

    kamipo
    kamipo 2010/03/17
  • SHOW INNODB STATUS; - メモ帳

    ほとんどこちらから引用 http://www.mysqlperformanceblog.com/2006/07/17/show-innodb-status-walk-through/ History list length History list length is number of unpurged transactions in undo space. It is increased as transactions which have done updates are commited and decreased as purge runs. InnoDBのバージョニングにおいて、過去のバージョンを管理するヒストリーの長さ InnoDB Buffer Poolにはあるが、未だibdata fileには無いUndo Logの数 lock structs in row lock ha

  • TCP/IP エラー処理 connect 編

    connect(2) のエラー TCP において connect(2) 呼出し時に発生する可能性のあるエラーは以下の通りです。 タイムアウト RST 受信 EHOSTUNREACH また ENETUNREACH シグナル受信 その他 まず、connect(2) 時の正常な流れをしっかり覚えておいてください。 (connect(2) を呼んで) SYN を送る SYN+ACK が返ってくる (ここで connect(2) から戻る) ACK を送る タイムアウト もし仮に、SYN を送ったものの、相手側から SYN+ACK が返ってこない場合は、 (ローカルの TCP スタックが) しつこく SYN を再送します。何度 SYN を送っても SYN+ACK が返ってこない場合はあきらめてタイムアウトします。 「SYN+ACK が返ってこない」というのは、例えば以下のようなケースが考えられます。

  • show innodb status でチェックする値 - kazuhoのメモ置き場

    show innodb status\G して Buffer pool hit rate が 997/1000 以上だった良い、というのは、ディスクバウンドのデータベースの話なのかな。個人的には、FILE I/O の reads/s の方を気にしている。ちなみに以下は、もうダメダメなパターン。Buffer pool hit rate は 1000/1000 だけど一秒間に 44 回も HDD から読み込んでいる (O_DIRECT設定してる) わけで、実態は青息吐息 (MyISAM も使ってたりするので)。というわけで Pathtraq のメンテナンスを開始します。 -------- FILE I/O -------- I/O thread 0 state: waiting for i/o request (insert buffer thread) I/O thread 1 state:

    show innodb status でチェックする値 - kazuhoのメモ置き場
  • たった3秒でInnoDBのデータローディングが快適になるライフハック

    MySQLに限った話ではないが、データベース管理システムに大量のデータを投入するのは時間が掛かり大変苦痛を伴う作業である。劇的に効能があるわけではないが、MySQLを利用しているとき、特にInnoDBを使っている場合にはデータの投入を高速化するためにいくつかテクニックがあるので紹介しよう。皆さんの作業時間が短縮され、少しでも早く帰路に着いたりサービスインさせたりという形でお役に立てれば幸いである。ちなみに、タイトルはネタであるのだが、もし当に3秒で以下の全ての設定を行えた人が居たら教えて頂きたい! ログファイルサイズの調整データ投入時に限った話ではないが、ログファイルサイズを調整するのは更新性能にとって非常に重要なファクターである。バッファプールのサイズが重要なことに代わりはないが、同じぐらいログファイルのサイズも重要である。InnoDBはログファイルを使い切ってしまうと、バッファプール

    たった3秒でInnoDBのデータローディングが快適になるライフハック
    kamipo
    kamipo 2010/03/17
    一度シャットダウンしただけではログファイルを削除していいとは限らない
  • 366日・誕生花の辞典 : 1年間の花ことば

    毎日の誕生花を花のうんちく、伝説、エピソードとともに紹介するサイト

    kamipo
    kamipo 2010/03/17
  • PHPで最小の整数を得る方法 — ディノオープンラボラトリ

    PHP 4.4.0以降およびPHP 5.0.5以降では、最大の整数が定数PHP_INT_MAXとして定義されています。 $ php -r 'var_dump(PHP_INT_MAX);' int(2147483647) 64bit環境では次のような結果になります。 $ php -r 'var_dump(PHP_INT_MAX);' int(9223372036854775807) ところで、最小の整数が必要な場合はどうすればいいのでしょうか。実は最小の整数は定数定義されていないのですが、次のようにすれば取得できます。 $ php -r 'var_dump(~PHP_INT_MAX);' int(-2147483648) 64ビット環境でも同様です。 $ php -r 'var_dump(~PHP_INT_MAX);' int(-9223372036854775808) ここで利用した~とい

    kamipo
    kamipo 2010/03/17
  • ハタさんのブログ : PHP で float と int に触れる

    PHPでは数値をどうやって持っているのか。気になったので試してみる 「-1」はどうやっているのか。ということで、decbinで2進数表記にしてみた $a = decbin(-1); var_dump($a); ==> string(32) "11111111111111111111111111111111" 32ビットで扱っているみたいだ。 逆にこの値を数値に戻してみる。 $b = bindec('11111111111111111111111111111111'); var_dump($b); ==> float(4294967295) なるほど、int の最大値(?) を越えて float になった上で、それを整数値で持つのね。 ということは、これを int にすると、「-1」の値になる。と $c = (float) 4294967295; var_dump((int) $c);

    kamipo
    kamipo 2010/03/17
  • 第1回 ウェブブラウザとJavaScriptの未来 | gihyo.jp

    こんにちは、id:os0xこと太田昌吾です。今回から、クロスブラウザ対策を中心としたJavaScriptの初級から中級の方向けの連載を開始します。JavaScriptの基礎的な文法は理解されているという前提での解説となりますので、ご了承ください(間違いやすい、わかり難いと思われるところは適宜補足します⁠)⁠。初回である今回はJavaScriptやウェブブラウザの背景など盛りだくさんの内容でお届けします。 JavaScriptのイマ JavaScriptは2010年現在において、最も重要な言語となりつつあります。旧来はすべての処理をサーバーで行って、結果をウェブブラウザ上に表示するだけというのがウェブの一般的な姿でした。2005年に登場したGoogle Mapsを一つの契機として徐々にウェブブラウザ・クライアント側での処理が見直され始め、近年ではクラウドやSaas、そしてHTML5の流行によ

    第1回 ウェブブラウザとJavaScriptの未来 | gihyo.jp
  • cronolog と plackup の連携 - tokuhirom's blog

    multilog に access logerror log をまぜてだすと、エラーでてんのかどうかよくわからなくなっちゃうので、まあわけた方がよろしい。 multilog でパターンマッチで適当に分割するという手もあるけれど、アクセスログは集計などにもつかうので、日ごとにファイルがわかれていた方が便利でしょう。 というわけで、こんな風にしてみた。 use Plack::Builder; builder { open my $fh, "| /usr/bin/cronolog /var/log/plackup/%Y/%m/myapp-%Y%m%d.l og" or die "cannot load log file: $!"; select $fh; $|++; select STDOUT; enable 'Plack::Middleware::AccessLog', logger =

  • TOEICで125点しかとれないような人でもできる英文バグレポートの方法。 - tokuhirom's blog

    または、Pros と Cons をまちがえて書いてしまうような人でもできる英文バグレポートの方法。 まあ小手先のノウハウだけど、俺はこうやってるよ、という話。 ともかく再現可能なテストケースをかく再現可能なテストケースを書けば、コミュニケーションコストを大幅に削減することが可能。これは日人同士の場合でもそうだし、プログラマにとっては必須の技能の一つであるから、是非身につけて実践するべき。 マルチスレッドに起因するものなど、再現可能なテストコードがかきづらいものはともかく、それ以外であれば、再現テストコードを書くべき。 再現テストコードを書けない場合、そもそも自分がバグの原因を把握できていない場合がおおいので、そんな状況でなれていない言語によるコミュニケーションをとるのは困難。

    kamipo
    kamipo 2010/03/17