諸事情により暫定的に公開停止中です。申し訳ございません。
Content-Length: 420090 | pFad | https://b.hatena.ne.jp/kamipo/20080929#bookmark-3296564
PHP5ってどうするんだ PHP5になると美味しいことたくさん 色々組み込まれてる。XMLもDBも美味しい。 例外処理よくわからないから誰か教えて やめだやめだ!Ethnaでいくぞ! - 肉とビールとパンケーキ by @sotarok PHP5の例外機能をどう使えばいいかよく分からないという声をちらほら聞くので、チュートリアルぽく例外の説明をしたいと思います。 従来のエラー処理 まずは従来の一般的なエラー処理のやり方から。 例外機能のない従来のPHP4プログラミングでは、ある関数の中でエラーを返したい場合は、そのエラーを表す何がしかの値を関数の戻り値として返すことになります。 そのエラーを表す値を毎回決めるのは面倒なので、PEARのエラー処理スキームを利用することが広く行われています。その場合エラーが起きたらPEAR_Errorオブジェクトが返されることになります。 <?php requi
PHPで@によるエラー抑制は実行が遅いという話は聞いていましたが、実際にベンチマークを取られた方がいました。 で、この処理が「遅い」という噂やツッコミを度々受けるので調べてみました。 「ほら、そんな気にするほどでも無いよ」という結果を期待していたのですが、、、なんじゃこりゃ。。。 劇遅じゃないですか、これ。 (中略) 細かい処理とはいえ、最大10倍違うわけですから・・・ 「@」でエラー抑制すると PHP が遅くなるという噂について : 管理人@Yoski これは配列のkeyチェックをするコードを対象としているので、@の効果のみによる遅さはよく分かりません。ということで、もっとシンプルに単純な代入のみで比べてみました。 ベンチマークプログラムはこんな感じ。 <?php require_once 'Benchmark/Timer.php'; define('COUNT', 1000000);
ちょうど1ヶ月前の話の続きです。 前回でCutterでテストを作成するための環境ができたので、実際にテストを作成していきます。と、思ったのですが、もう一点やらなければいけないことが残っていました。テスト対象のライブラリの初期化についてです。 今回はテスト対象ライブラリの初期化について説明してからテスト作成に入ります。 前回同様、コードの断片がでてきます。完全なものはSennaのリポジトリを見てください。 ライブラリの初期化 Sennaのようにライブラリ初期化・終了関数 (sen_init()/sen_fin())を用意している場合は、テストの作成に 入る前に、もう一つ用意しておかなければいけない仕組みがありま す。このような関数を持っているライブラリをテストする場合は、 テスト全体を実行する前に初期化関数を、実行した後に終了関数を 呼び出す必要があります。これを行う仕組みを用意する必要があ
Sennaの単体テストフレームワー クとしてCutterを導入したときの手順です。自分のプロジェクトに Cutterを導入するときの参考になるかもしれません。全体として そこそこ長くなってしまったので、何回かに分割して紹介することに します。 内容はSennaのリポジトリ でやったことの一部です。リポジトリは公開されているので、試行錯誤の 後などをみたい場合はコミットを追いかけるとよいでしょう。また、ここで は断片としてしか出てこないコードについても、リポジトリの中には完全な 形で入っています。 もし、まだCutterについて知らない場合は、はじめにチュートリ アル を読んでください。 はじめに まず、Sennaについて簡単に説明します。 Sennaは組み込み型の全文検索エンジンで、その機能をライブラリ として提供します。SennaのAPIはbasic APIやadvanced APIなど
Senna 2.0βのリリースが見えてきました。 去年の夏に出すと言っていましたが、紆余曲折あっての現状です。 ライバルのTokyo Cabinet/Tokyo Dystopiaについては、 ストレージと全文検索インデックスを分割する方向性です。 mixi engineer blog 今までのSennaはTokyo Dystopiaに近いものでしたが、 Senna 2.0では逆にHyper Estraierのほうに近づく感じになっています。 それぞれ特色が出て面白いですねー。 今回は転置インデックス部分にもかなり手が入っているので、 Senna/Lucene/Tokyo Dystopiaのパフォーマンス比較もやってみたいと思います。 (とはいえ、パフォーマンス比較はそれぞれのライブラリに精通しないと意味のある情報が出せないので、大変ではありますね…) Senna 2.0 + MySQL 5
特にサーバー用途では、CPUがシングルコアに戻ってくることは考えにくい。 マルチコアCPUの性能を活かすにはマルチスレッドに対応したサーバーの実装が必要になるわけですが、マルチスレッドなプログラミングは往々にして「高負荷になると固まる」とか「たまに落ちる」といった悩ましいバグと戦わなければならず、イヤです。 かといってシングルスレッドでは、近い将来 32コアCPU! などが出てきたとき、たぶん性能を発揮できません。 そこで、そこそこデバッグしやすく、それでいて多コアCPUでもスケールするという落としどころを模索しているのですが、ボトルネックはネットワークIO周りにあるだろう*1という前提の元で、ネットワークIO部分だけをマルチスレッドで動かし、それ以外の部分をシングルスレッドで動かすというアーキテクチャを考えています。 ロジックの部分はマルチスレッドで書いても共有リソースにアクセスする度に
instanceof演算子 - Islands in the byte stream 確かに遅いですよねぇ。 ただ、一応ベンチとってみたところ、blessed使うのが一番早かったです。 以下、$xがオブジェクトの場合のベンチ。 use Benchmark qw(cmpthese timethese :hireswallclock); my $x = bless {} , 'Foo'; my $class = 'Foo'; cmpthese(100000,{ ref_eval => sub { if ( ref($x) && eval { $x->isa($class) } ) {} }, scalar_util => sub { if ( Scalar::Util::blessed($x) && $x->isa($class) ) {} }, param_util => sub { if
のように、オプションを指定して起動するか、 topが起動している状態で、oキーを押してから、 rsizeと入力すると良いようです。 RSIZEというカラムが使用しているメモリの量を表しています。
memcached Night in Tokyo #1によれば、mixiはmemcachedサーバーを135台使っているらしい。多い! 話に依れば一番最初に足りなくなるのはメモリの容量(3GBほど割り当てられている)で、ネットワークやCPUはボトルネックになっていないらしい。 ではメモリの代わりにHDDを使うのはどうか。HDDのランダムアクセス時の遅延がかなり大きいので、影響が出るほど遅くなりそう。 そこでSSDを使うのはどうか。ランダムリードで700Mbpsくらい出るらしいので、スループットに関してはCPUの方が先に限界に来ると思う。遅延はどれくらいか良く分からないが、アプリケーション側でget_multiを使っていれば隠蔽できないか。 バイト単価はDRAMよりはずっと安い。 実装としては以下: 32GBくらいのSSD 2GBくらいのメモリ(多ければ多いほどキャッシュに載りやすいので、平
なんか良く分からんけどSegmentation faultが出て泣きそうだったんだけどやっと原因がわかったっぽい感じなのでメモしとく。 とりあえず環境は下記 CentOS 5.2 Apache 2.2.9 Perl v5.8.8 mod_perl 2.0.4 MySQL 5.0.51b 現象としてはサイトを数時間放置してアクセスすると必ずセグるというもので、当初は何がなんだか分からないL状態でした。 で、coreファイルを解析したところ、 Program terminated with signal 11, Segmentation fault. #0 0x048be024 in mysql_send_query () from /usr/local/mysql/lib/mysql/libmysqlclient.so.15 というメッセージが。どうやらmysqlに問題があるっぽいことがわか
以前、「簡単コピー・プログラミングの罠」という記事で、コピー・プログラミングの危険性について書いた。ここでいうコピー・プログラミングとは、同じアプリケーション開発の中で、似た機能を量産するためにソースコードをコピーすることである。同記事には書いていないが、他にも、「バグがコピーされてしまう」問題や、ソースコードが無駄に大きくなるなどの問題もある。 そもそも、プログラミングでは「同じことを何度も書く」ということは避けるべきだ。その理由をあらためてここに書く必要もないだろう。同じことを何度も書かずに済ませるにはどうするか、ということは、構造化プログラミングからオブジェクト指向やアスペクト指向に至るまで、プログラミング技術の発展における重要な課題のひとつだったはずだ。 アプリケーションに固有の「業務ロジック(ビジネスロジック)」なども、開発プロジェクト内で共通化を行い、重複コードをなくすのが理想
優れたプログラマはコードを書くのと同じくらい、コードを読みこなせなくてはならない。優れたコードを読むことで、自身のスキルも上達するのだ(編集部) Ruby on Rails(Rails)には、scaffoldという大変便利な機能が付いています。scaffoldを使えば、アプリケーションの実行に必要なデータベースのスキーマの準備から、データベースにアクセスするコード、画面周りのコードまで、一通り自動生成してくれます。 そのおかげもあって、多くの開発者がscaffoldを使ったRailsのアプリケーションを試しに作ったことでしょう。ただし、scaffoldはあくまで土台であって、その後は、生成されたコードを拡張していく必要があります。 本連載ではコードリーディングという形で、オープンソースとして公開されているRailsアプリケーションのソースコードを題材に使って、その動きや機能がどのように実装
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
as, box2dワリオランドシェイクと YouTube のコラボプロモーション が面白かったので、似たようなものを作ってみました。次の文字列をコピーしてアドレスバーに突っ込むと、HTML が崩壊します。javascript:(function(){var d=document; var s=d.createElement("script"); s.charset="UTF-8"; s.src="http://tech.nitoyon.com/meltdown/meltdown.js?"+(new Date()).getTime(); d.body.appendChild(s)})();崩壊するのは画像だけなので、画像があるページで試してみてください。このブログだとこんな具合。画像はドラッグすることも可能です。あまり画像が多いと重くなりすぎるのでご注意を。仕組みFlash と JavaSc
DOCTYPE スイッチについて再度まとめ 以前 DOCTYPE スイッチについての検証とまとめと一覧表という記事で DOCTYPE スイッチについてまとめましたが、あれから 2 年弱が経過したので、改めてまとめてみようと思います。 まとめるまでの話がけっこう長いので、一覧表だけ参照したい ! という場合は DOCTYPE スイッチの一覧表をご覧ください。 DOCTYPE スイッチとは何か そもそも DOCTYPE スイッチとは何か、というのがまず書くべきところですが、これは私が書かずとも良質のリソースが各種ありますのでそのリンクのみまとめておきます。 !DOCTYPE スイッチ 各UAのDOCTYPEスイッチについて - CSS Dencitie Mozilla's DOCTYPE sniffing - MDC Mozilla's DOCTYPE sniffing - MDC ( 日本語
2008年09月28日15:56 カテゴリlivedoor Reader LDRをもっと読みやすくする LDR Prefav LDR - Prefav という livedoor Reader用 Greasemonkeyスクリプトがあります。 (Fastladderでも動作するようです) 私は1ヶ月ほど前から使っていますが、いろいろな機能があり、LDRでフィードを読むのが更に便利になりました。 機能の一部を紹介します。 全ての機能についてはソースを見てください。JavaScriptが分からなくても何となく想像できそうです。 広告フィード削除 Pheedo(AD: )、RSS広告社(PR: )、Seesaa ブログ(オススメ・スポンサーサイト)のRSS広告のエントリを削除。 LDRのマイフィード一覧で未読数があるのに、フィードを表示してみると無いという場合は、この広告フィード削除が効いているは
ここ最近の9月としては結構冷え込む中,30人ぐらいが Git のために集まりました.Git すごいよ,Git. 午前中は Git のお話 午後はそのとき決めることに まとめと感想 はてブのタグ RailsMeetingTokyo ぎっとであってじっとではない. いろんな使い方があるけど,やっぱ基本はあると言うことがわかった. 専門家(?)を呼んでの講演は非常に良かった.こういう異文化交流っていいよね. 分散ソースコード管理システム Git 岩松さん@Debian JP Project の中の人 もともと OSC Sapporo で高橋会長が依頼したようだ はじめに Git は「じっと」じゃなくて「ぎっと」 使い方は人によってそれぞれ異なる 朝起きてまずすることは -> リポジトリのチェック Git のデータモデルや考え方 4つの階層 Working Copy index Local Rep
Linuxカーネルは柔軟性が高く、sysctlコマンドを利用すれば、カーネルパラメータを動的に変更してその場で動作を変えることさえ可能だ。sysctlのインタフェースでは、LinuxまたはBSDの何百というカーネルパラメータを参照したり変更したりできる。変更はただちに反映されるが、リブート後まで変更を保留する手段もある。うまくsysctlを使えば、カーネルを再コンパイル(翻訳記事)しなくてもマシンの最適化が可能であり、しかもその効果をすぐに確認できる。 とりあえずsysctlでどんな変更ができるのかを知るには、「sysctl -a」を実行して扱えるパラメータをすべて表示するといい。そのリストは非常に長いもので、私のマシンでは712もの設定可能な項目が表示される。 $ sysctl -a kernel.panic = 0 kernel.core_uses_pid = 0 kernel.cor
ãããããã¼ ã¬ã¤ã Google App Engine ã¸ãããããã®ãããããã¼ ã¬ã¤ãã¯ãGoogle æè¡ã使ç¨ãã¦æ¡å¼µå¯è½ãª Web ã¢ããªã±ã¼ã·ã§ã³ãä½æããããã«å¿ è¦ãªãã¹ã¦ã®ç¥èãç¶²ç¾ ãã¦ãã¾ãã ãã®ã¬ã¤ãã¯ã次ã®ã»ã¯ã·ã§ã³ã§æ§æããã¦ãã¾ãã æ¦è¦ Google App Engine ã«ã¤ãã¦ãApp Engine ã®æ©è½ã¨ãµã¼ãã
DBICが発行するSQLのテーブル名をクォートさせたい - Lism.in * blog - nekoya (id:studio-m) 一応Cookbookに書いてあるけどちょっと注意。 My::Schemaに __PACKAGE__->storage->sql_maker->quote_char('`'); と書いてもSchemaクラスのstorageが準備されるのはconnectの後なので Can't call method "sql_maker" on an undefined valueでこける。 ドキュメントが間違ってるってことですね。 なので my $schema = My::Schema->connect($dsn, $user, $pass, {quote_char => '`',}); か my $schema = My::Schema->connect(...); $s
Linuxは完備された環境だが、仕事上Windowsアプリケーションを必要とすることもある。そのような場合、デュアルブートにして2つのOSを切り替える、あるいはLinux上の仮想環境でWindowsを動かすという方法がある。しかし、プロセッサやメモリのリソースを大量に必要とするビデオ編集やゲームなどでは、残念ながら仮想環境のゲストOSはほとんど使い物にならない。そこで登場するのがandLinuxと名づけられたUbuntuベースのディストリビューションだ。これを利用すると、LinuxとWindowsがこれまでになく高いレベルで共存することができる。 これを実現する魔法の粉はcoLinuxカーネルだ。coLinuxプロジェクトは、Linuxカーネルの安定リリースをWindows上で実行できるように移植している。つまり、andLinuxは、仮想化ソフトウェアとは異なり、通常のWindowsアプリ
某人が「あたし彼女」を5ページで挫折して読めなかったそうなので、かんたんに現代語訳してみました。 「トモ」の章その他、大幅にはしょった部分もありますが、話の内容を抵抗なく知りたい人はご覧ください。 原文はこちら http://nkst.jp/vote2/novel.php?auther=20080001 正直、これだけを読んでも、話的にありきたりというか、ご都合主義的な展開だな〜という感想になってしまうと思います。 僕個人の感想としては、話そのものではなくて、主人公の一人称語りと(過剰な)口語体によって、同世代で同じ立場の読者が容易にかつ深く感情移入したり情景を自分なりに想像するのがこの作品を読む上での楽しみなんじゃないかなと思います。 ちなみに僕自身はおかんとの会話のシーンで不覚にもぐっと来てしまいます。現実の母親とはあまり悩みを打ち明けたりとか深い関係がないからあこがれているんでしょう
Tracの構築ってなかなか面倒ですよね。自分も初めて作ったときはいろいろと手間取ったことを覚えています。 とくにソースからいれるとなると、いろいろとやらなければいけません。パッケージも用意されていますが、日本語化をする場合などいろいろと面倒があります。 今回も前回に引き続き、簡単にTracのインストールを行う手順を紹介したいと思います。 事前準備 まずは、以下の手順を行っていることが前提です。 10分で作る、Subversionレポジトリ - UNIX的なアレ そのため、動作環境は以前と同様です。試してみたところ、Ubuntuでも同様の手順でいけるようです。 OS Debian Linux etch Protocol http Web Server Apache2.2.3 さて、それでは構築していきましょう! パッケージのインストール さて、Tracを使うにあたって必要なパッケージをインス
购彩计划 众彩网 网上购彩注册 游艇会 彩友之家 手机购彩 购彩助手软件 彩票网站大全 彩票计划网 49c彩票 百盈快三 无锡快三 澳门官网彩票 信达彩票 多彩彩票 快三倍 帝王彩票 恒彩彩票 五福彩彩票 快三乐彩 博创彩票 福运彩票 手机彩票 腾讯彩票 22彩票 陕西快三 共赢彩票 幸运28彩票 快三奖金 新疆快三 买球彩票 金鹰彩票 快三走势 京彩彩票 福建快三 金福彩票 购彩中心彩票 快三推荐 快三群 诺记彩票 爱购彩票 福利快三 威彩彩票 小白彩票 大庄家彩票 淘宝快三 幸运彩彩票 49c彩票 快三活动 中国体彩彩票 快三出奖 幸运28彩票 快三图 快三经验 银河快三 懂彩帝彩票 快三秘诀 泰国快三 重庆快三 众乐快三 众信彩票 快速彩票 快三北京 大庄家彩票 福州快三 快速彩票 快三广西 微彩票 快三大小 统一彩票 vip彩票 趣彩网彩票 116彩票 一品彩票 华夏快三 八号彩票
意外と知っているようでよく知らない自分が日々使う道具。そこで、gdbについて復習がてらいろいろ調べることにする。 gdbはemacsから使う gdbをコマンドラインから素で使うのはいかがなものかなと思う。やっぱemacsと固く結合されているわけだからemacsから使うのが正しい姿であろう。 「え〜、だってvi使いだし〜」とか「秀丸からは使えないんすかね」とか言うやつがいるが、秀丸ってなんだよ、とりあえづubuntuでも入れて、emacsいれて、gdb使いなさいとか指導したくなる。いかんいかん、説教くさくなってはいかんいかん。 先日もある会議でデバッガの話が話題になったのだが、「TCPなんちゃらのストール問題のデバッグ方法なんですけどね」、みたいな話題で、「それってカーネルの話?」とわたしが聞くと、「いや、ユーザランドっす」と若いハッカー、「じゃ、gdbでほげほげでいけそーね」、「そーっすね
イラストSNS「pixiv(ピクシブ)」が開設から1年で月間3億PV(ページ・ビュー)、会員数32万人にまで急成長した。開設当時、サイトを運営するクルーク(東京・渋谷区)の社長自ら「ユーザーが1000人いけば」といっていたくらいで、「想定外の急成長」は間違いない。なぜ、ここまで躍進することができたのか。 ■投稿されたイラストも160万枚に達する クルークは2008年9月17日、同社が運営する「pixiv」が月間(08年8月16日〜9月15日)で3億PVを達成したと発表した。会員数も32万人に達し、投稿されたイラストも160万枚に達した。 「pixiv」は2007年9月4日に、イラストを投稿できるSNSとして開設。08年4月に月間1億PVを達成し、その後も08年7月に2億PVを達成するなど、急成長。9月5日の発表によれば、1人1日あたりの平均ページ閲覧数は約35ページ、1日あたりのサイ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
Fetched URL: https://b.hatena.ne.jp/kamipo/20080929#bookmark-3296564
Alternative Proxies: