運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。
![VB6開発者向け:C#で始める.NETプログラミング 記事一覧 | gihyo.jp](https://cdn-ak-scissors.b.st-hatena.com/image/square/7241c583676d54fc052c4388a6edd25e4c7f280b/height=288;version=1;width=512/https%3A%2F%2Fgihyo.jp%2Fassets%2Fimages%2Fgihyojp-ogp.png)
PHPは構文も容易で、開発者が言語を習得するのは非常に簡単です。また、性能もよいためWebアプリケーション構築に幅広く利用されています。 PHPが開発され始めた頃は、WebアプリケーションといえばCGIインターフェースを利用し、既存の汎用言語でプログラミングするのが一般的でした。PHPは、URIやPOSTリクエストのデコードや、HTTPセッション管理を標準機能として持っています。埋め込み型言語であるので、PHP自体がテンプレートとも言えます。PHPは汎用プログラミング言語としても利用できますが、簡易版のWeb開発フレームワーク(以下フレームワーク)と言えます。 筆者はこれがPHPが非常に人気の高い言語になった理由の一つだと考えています。しかし、PHP本体のフレームワーク的な機能は現在のフレームワークとしては不十分です。このため、PHP用のフレームワークが多数開発されています。 本連載は、Z
はじめに サーバを仮想化して運用することも一般的になり、もはや実機にOSを入れることのほうが少なくなっている、という人も多いのではないでしょうか。 本誌Vol.49の仮想化特集(編注)では「開発環境を仮想化しよう!」をテーマに、「サーバ仮想化」「ストレージ仮想化」「ネットワーク仮想化」の3つの技術について取り上げました。このうち前者の2つ、つまり「サーバを仮想化してストレージを集約する」ことは行っても、最後の「ネットワークを仮想化する」ところまで必要とされる状況は少ないかもしれません。 筆者の環境では、グローバルIPアドレスを持つサーバ群を、開発用のサーバ群と一緒に仮想化しようというところからネットワークの仮想化を導入することになりました。しかし、この分野に詳しい人が周囲におらず、最終的な形が完成するまでは試行錯誤の連続でした。 今回は、そうして積み重ねた筆者のスタイルを交えつつ、多
I/Oの「レスポンス」と「スループット」とは? 連載第1回でご紹介したように、大規模データ処理を行うデータベースで一番大きな課題となるのは、ディスクI/O(以降、単にI/Oと表記します)のボトルネックです。数百GBやTBクラスの巨大データウェアハウスの場合、SQLが実行される時間のほとんどがI/Oを待つ時間となっているケースが多々あります。 ここでは、I/Oボトルネックが発生するおもな原因を、「レスポンス」と「スループット」という概念から見ていきましょう。それぞれ、広義では以下の定義となります。 I/Oレスポンス=I/O要求処理にかかる応答時間 I/Oスループット=単位時間当たりのI/O処理量 Oracle Databaseに当てはめると、以下のように定義できます。 I/Oレスポンス=1データブロックの読み出しや書き込みにかかる時間 I/Oスループット=単位時間あたりの読み出しや書き込み
今回でこの連載も最終回です。これまでAmazon Web Services、さくらのクラウド、Windows Azure、Google App Engineについて触れてきました。最終回ということでこれらのベンチマークを比較してみたいと思います。 unixbenchで比較 Amazon Web Services(AWS)、さくらのクラウド(以降さくら)、Windows Azure(以降Azure)は、IaaS(仮想サーバ)がありますが、Google App EngineはPaaSなので単純な比較はできません。まずは前者の3つについて、比較をしてみましょう。 今回はパフォーマンス計測の定番、unixbenchで比較をしてみました。 https://code.google.com/p/byte-unixbench/ 計測対象は下記の通りです。 ディスクについては、AWSではProvis
photo by byte MySQLといえば、巷ではInnoDBばかり注目され、MyISAMの地下アイドル化がにわかに語られる今日この頃、皆様いかがお過ごしでしょうか。 まあカジュアルにストレージエンジンを変換するだけで済むなら、簡単なのです。 -- legacy_my_tableをInnoDBストレージエンジンに変換する ALTER TABLE legacy_my_table ENGINE=InnoDB; よし終わった!さあランチタイムだ! ・・・と片付けてしてしまうと、悲劇が起こるかもしれません。(>o<;) それでは本日、MyISAMからInnoDBへ移行するなら知っておきたい意外な落とし穴とTipsを紹介します。 AUTO INCREMENTの挙動が違う落とし穴 以下に該当するクエリを利用している場合には、注意が必要です。私はハマりました。 INSERT IGNORE INTO
3年前にMonth of PHP Buug(MOPB)としてPHP本体のセキュリティ上の問題を公開したStefan Esser氏が、今年の3月にPHPとPHPアプリケーションやセキュリティ上の問題を公募し公開するPHPセキュリティ月間(Month of PHP Security - MOPS)プロジェクトを行われました。 http://php-security.org/ MOPBのレポートもこのサイトで公開されています。PoCは当初は公開されていましたが、ドイツの法改正に伴い攻撃手法の公開が禁止され、削除されていました。詳しい事情は分かりませんが、現在はまた公開されているようです。 Stefan Esser氏に許可を得たので、これから数回に渡ってこのプロジェクトについて紹介します。 Month of PHP Securityとは MOPBは個人プロジェクトとして行われましたが、Month
第32回 PHPセキュリティ月間(Month of PHP Sercurity)で「PHPセキュリティ月間」(MOPS - Month of PHP Security)について簡単に紹介しました。 今回は静的にPHPソースコードを分析しセキュリティ脆弱性を検査するツールの紹介です。 MOPS Submission 09: RIPS - A static source code analyser for vulnerabilities in PHP scripts http://www.php-security.org/2010/05/24/mops-submission-09-rips-a-static-source-code-analyser-for-vulnerabilities-in-php-scripts/index.html 昨年発見された脆弱性のおよそ3割がPHPアプリケーシ
何らかのバウンスメールが返ってきたら、そのメールアドレスを配信不能なアドレスとして扱うという単純なバウンス処理を行った場合、“メールボックスがいっぱい”や“メールが大きすぎる”のようなエラーで宛先アドレスに配信不能フラグを立ててしまうという誤った対処をしてしまう危険性があります。 エラーになった理由ごとに適切な対処をすれば、メールアドレスの状態変化を管理しつつ、宛先不明アドレスの割合増加による遅延を回避ができます。検出できるエラーについての詳細は、http://bouncehammer.jp/features/engine/reasonをご覧ください。 読みにくいバウンスメールを構造化する BounceHammerは解析したバウンスメールの内容をYAML形式で出力します。YAML形式の解析結果は1行1レコードで書き出しているので、コマンドラインからcatで眺めたり、wcで行数計測す
ここを書き直して転載 memcachedに関する記事は「第1回 memcachedの基本:memcachedを知り尽くす|gihyo.jp … 技術評論社」など何回か書いていますが、最近のmemcachedでの起動オプションのおすすめをまとめてみようと思います。なおこの記事はMemcached Advent Calendarではありません。 まとめるとこんな感じです。 $ memcached -v -p 11211 -U 0 -u memcached -m 1024 \ -c 100000 -t 4 -C -B ascii ひとつずつ簡単に紹介します。 -v ログ出力 ログを verbose モードで起動します。エラーや警告が表示されます。弊社ではmemachedをdaemontools経由で起動し、ログを記録しています。 -v -vオプションは -vv、-vvv と v の数を増やす事で
本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはDeNAの嶋田裕二さんで、テーマは「高速なWeb APIの実装とテスト」です。 Web APIの基礎知識 はじめまして、DeNAでMobageオープンプラットフォームのWeb API(以降Mobage API)を実装しているxaicronです。Mobageオープンプラットフォームは、Mobageの機能をWeb APIを通して外部の開発者に公開することにより、ソーシャルゲームをユーザに提供するサービスです。 簡単に説明するとWeb APIとは、HTTPを利用してネットワーク越しに処理を行い、結果を返すしくみです。最近ではJSON(JavaScript Object Notation)というフォーマットを利用してデータのやりとりをすることが多くなっており、Mobage APIも基本的にはJSONを受け取って処理を行
めっきり寒い毎日ですが、皆さんいかがお過ごしでしょうか。1月はあっという間に終わってしまい、2月に突入しました。2月は逃げる、3月は去ると言いますが、時間が過ぎる速度が年々増しているような気がする今日このごろです。春は早く来てほしいのですが、時間が過ぎ去ってしまうのは寂しいものです。 きみ、それPHP 4やで すっかり感傷にふけったところで、診断のお時間です。今回のコードは2004年に書かれたものです。2004年といえばPHP 4真っ盛りの時代ですね。年代もののコードを扱うことが多い本連載ですが、このコードは今も現役で(PHP 4環境で!)稼働しているというのがこれまでと違う点です。えー、わかります、言いたいことはわかります。PHP 4は、もはやメンテナンスが行われていないので、もしセキュリティホールがあったとしても、どうしようもありません。攻撃され放題です。早急にPHP 5へのアップグレ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く