WordPressのPHP4対応が今年後半予定のWordPress3.1で打ち切りへ。PHP5.2以上への移行が必要に


PHPのオープンソースの中でもユーザーがとても多い、ブログアプリケーションのWordPressが、ついにPHP4系のサポートを止める時が来ました。

WordPress公式ブログにて発表されたのは、現行バージョン3.0の次、2010年内にリリース予定のバージョン3.1を最後にPHP4とMySQL4が対応されなくなることです。

2011年前半予定のWordPress3.2では、PHP5.2以上、MySQL5.0.15以上が必須となります。

WordPress側で取っている統計では、PHP5.1より前の古いPHPを使っているワードプレスのサイトは、すでに全体の11%にまで減っているのだとか。

僕自身はもう何年も前からPHP5しか使ってないですし、プラグイン等を書くにしても、PHP4で動くようにPHP5の便利な関数を使えないのは面倒なので、PHP5.2が強制になるのは非常にうれしいですね。

共有ホスティングなどでも最近はPHP5を提供してたり、切り替えられたりするところがほとんどだと思います。今PHP4で走らせているWordPressで、その環境が将来の3.2が動く環境かどうかを確認するプラグインHealth Checkというのも公開されました。

WordPressの管理画面から、[プラグイン]-[新規追加]-[検索]で”Health Check”と入力し、見つかったヘルスチェックプラグインをインストールします。

インストール後に有効にすると、そのタイミングで今のホスティングがWordPress3.2に対応しているかどうかが簡単に表示されます。

お使いのWordPressでこのプラグインを走らせてみて、もしチェックが失敗するようであれば、使っているサーバーのPHPやMySQLのバージョンを上げる設定ができないかを確認しておいた方が安心かもしれません。もしリクエストしてもバージョンがあがらない環境であれば、別のホスティングへブログを移すことも検討しないといけないでしょう。

技術メディアのみなさん、symfonyのFabien Potencierさんへの取材どうでしょう?


PHPカンファレンスの開催がいよいよ明日・明後日となりました。

今回は、10周年ということで海外からも3名の講演者をお呼びしての充実したカンファレンスとなっています。(参加は両日とも満員で締め切っています)

symfonyのリーダーFabien Potencierさん、FacebookのBrian Shireさん、台湾PHPユーザー会の江 明宗さんのお三方は、なかなか東京で話せる機会もないと思いますので、ぜひ取材等いかがでしょうか? (拙いですが通訳できます)

特に、カンファレンス当日はPHPカンファレンスのメディアスポンサー各社(スポンサーありがとうございます)のみなさまに、ぜひ取材いただければと思います。

ご興味ありましたら、ぜひPHPカンファレンスでお声をかけていただくか、akimotoアットgmailかtwitter.com/akkyまで御連絡ください

「カタカナ率」を公開しました


カタカナ率というワンアイデアサービスをローンチしました。

日本語の文章をインプットすると、文章の中に含まれるカタカナの割合を計算して出してくれます。

本日のネットサーフィンで、「なんか妙にカタカナ多いなあ」という文章を見たのですが、この「多い」ってどれぐらいなのか定量化してみよう、と考えたのがきっかけです。

PHPワンファイルなんで、ソースつけときますね。だいぶ手抜きしてますが…

# と、カタカナを意識的に増やして書いてみたのですが、なんとか20%越えできるぐらいでした。カタカナばっかりで日本語を書くのも楽じゃないんですね。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="robots" content="index, follow, noarchive" />
<meta name="language" content="ja" />
<meta name="title" content="カタカナ率" />
<meta name="description" content="あなたの文章のカタカナ依存度合いを測定します" />
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="stylesheet" type="text/css" media="screen" href="/images/main.css" />
<title>カタカナ率</title>
</head>
<body>
<style type="text/css">
p {
 line-height: 1.5;
 margin: 0.3em 0.3em 0.8em 0.3em;
}
blockquote {
 margin: 0.5em;
 width: 70%;
}
blockquote p {
 padding: 0.1em 0.3em;
 background: #ddd;
}
</style>
<h1>カタカナ率 測定します</h1>
<?php
mb_internal_encoding('UTF-8');
 
/**
 * マルチバイト用、文字列->配列変換
 *  http://jp.php.net/str_split のコメント
 */
function mb_str_split($str, $length = 1) {
  if ($length <1) { return FALSE; }
  $result = array();
  for ($i = 0; $i <mb_strlen($str); $i += $length) {
    $result[] = mb_substr($str, $i, $length);
  }
  return $result;
}
 
/**
 * カタカナ率を求める
 */
function calcKatakanaRate($body) {
  $converted = mb_convert_kana($body, 'HcV', 'UTF-8');
 
  $originalTextArray = mb_str_split($body);
  $convertedTextArray = mb_str_split($converted);
 
  $result = array_diff($originalTextArray, $convertedTextArray);
 
  $numOfDifferentLetters = count($result);
  $numOfTotalLetters = count($originalTextArray);
 
  return $numOfDifferentLetters / $numOfTotalLetters;
}
 
if (array_key_exists('body', $_REQUEST)
    && !empty($_REQUEST['body'])) {
  echo '<h2>測定結果</h2>';
 
  $body = $_REQUEST['body'];
  $rate = calcKatakanaRate($body);
  // 小数点1桁パーセントを求める
  $formattedRate = floor($rate * 100 * 10) / 10;
 
  echo "<p><strong>$formattedRate</strong>パーセント</p>";
 
  $message = '普通の文章ですね';
  if ($rate > 0.6) {
    $message = 'ニホンヘヨウコソ! ドモアリガット';
  } else if ($rate > 0.4) {
    $message = 'あなたはコンサルで、何か後ろ暗いことを誤魔化そうとしてますね';
  } else if ($rate > 0.2) {
    $message = '外資系にお勤めですか?';
  }
  echo '<p>判定: ' . $message . '</p>';
 
  echo '<h3>原文</h3>';
  echo '<blockquote><p>';
  echo nl2br(htmlspecialchars($body, ENT_QUOTES, 'UTF-8'));
  echo '</p></blockquote>';
}
 
?>
<h2>測定したい文章を貼り付けて、「測定」ボタンを押してください</h2>
<form action="." method="post">
<textarea name="body" cols="80" rows="20"></textarea><br />
<input type="submit" value="測定"></input>
</form>
 
<p id="footer">
Created by <a href="http://twitter.com/akky">Akky AKIMOTO</a> (<a href="http://akimoto.jp/blog/">ブログ</a>). Inspired by …(ヒミツ。作成日のとあるブログ記事を見て、猛烈に作りたくなりました).
</p>
</body>
</html>

[更新 06.26]

id:tmatsuuさんがカタカナ率のJetpack版を作られたようです。なるほど普通のアドオンと比べるとすごい手軽ですねJetpack。

しかも、ちゃんと切り捨てが四捨五入に改良されたりしてます。

FlickrがPHP4からPHP5に移行


Flickr上で先月出された「このグラフの変化は何?」というクイズ

Drop in CPU

答えは、「PHP5に移行したFlickr.comのサーバのCPU利用率」ということでした。サーバのスクリプトエンジンをPHP5に切り替えた際に、上記のようなCPU利用率の削減が見られたということです。

このクイズを出したのは、Yahoo/Flickrでキャパシティ・プランニングを担当するジョン・アルスポーさん。先週のWeb2.0 ExpoでFlickrのサーバマシン入れ替えとパフォーマンス改善について話されています。

Web2.0 Expoのスライドで話されているのは、以下のような内容です。

  • Flickrのストレージ構成やデータ量
  • PHP5移行でCPU利用率が15%減ったこと
  • ImageMagickからGraphicsMagickに変更して高速化
  • OpenMPでサムネイル作成を並列化
  • サーバマシンを良いスペックのものに置き換えて台数や設置面積を削減
  • 交換前の古いサーバを、リアルタイム性を要しない処理や開発用に転用
  • 自動コンフィギュレーションやデプロイの自動化
  • 自己診断や自己回復を機械にまかせる
  • トラブルシューティング連絡手段(IRC, IMなど)とそのログ化や検索手段提供

未読ですが、この人のこの本もこのあたりについての本のようですね。

キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置
著者/訳者: John Allspaw
出版社: オライリージャパン( 2009-03-19 )
定価: ¥ 2,520

via Kitchen Soap

Delphi for PHP作者の来日記まとめ


先月の第40回PHP勉強会@関東は、スペインからDelphi for PHPの作者Jose Leonさんを迎えてのスペシャルだったわけですが、Joseさんの日本滞在の感想等が彼のブログで上がっていたのでご紹介しておきます。

Delphi for PHP » Developer Summit 2009 – Japan

デブサミ初日の感想。参加者の多さと熱心さに感心されているようです

Delphi for PHP » Developer Summit 2009 – Japan (II)

デブサミ二日目。彼自身のセッションがあったことの報告です。そのあと、各メディアとのインタビューに臨んだようです。

Delphi for PHP » PHP Camp

PHP勉強会とそれに続く泊まりでのハッカソンの感想。勉強会で発表されたOpenPear等にも言及されてます。

Delphi for PHP » Developer Camp 2009 and Open Source Conference at Japans Electronics College

オープンソースカンファレンス(OSC)の感想。写真が「日本」ですね。カメラ量販店の技術書棚も印象に残った様子。

Matzことまつもとゆきひろさんとのツーショット写真も。Delphi for Rubyの可能性について話したとか。

最後は、取材を受けて日本で記事になったページをそれぞれ紹介しています。

Asiajinゲストブロガーにyandoさん登場


第40回PHP勉強会@関東で、スペインからいらしたJose Leonさん(Delphi for PHP)のために英語プレゼンを作られた安藤さんに、アジアジンへの寄稿をお願いし、快諾いただきました。

Engineers Salary and Life in Japan – from PHP Study Meeting | Asiajin

日本でのPHPエンジニアの給与状況やコミュニティに関する記事です。

Asiajinのスタッフだけで、多岐にわたる日本のウェブ/ITをすべてうまくカバーできるわけではないと思っています。ぜひ各分野の専門の方にはゲストブロガーとして参加していただいたいと思っています。現在、他の方にもゲスト寄稿をお願いしているところです。

英語で発表してみたい面白いネタがある方は、ぜひアジアジンまで御連絡ください。(英語については、希望があれば、スタッフおよびネイティブスピーカーで直します。が、基本無理に100%の英語、そんなものがあればですが、を目指さなくてもいいとも思っています。)