サイト運営」タグアーカイブ

JavaScript 読み込みの並列化

JavaScript の並列読込Safari, IE8 以外のブラウザでは JavaScript の読み込み中は、画像や CSS、他の JavaScript ファイルなどの読込処理がブロックされる。
これをDOM経由で動的にロードすると、並列で読み込まれるようになりますよと言うお話。
元ネタは、マイコミジャーナルの「JavaScript読み込みブロック回避でページ表示を高速化する方法」と言うエントリ。
右図が、当サイトに実装した際の Firebug のネットワークモニタ結果(JavaScriptのみ)。(クリックで拡大されます)
確かに並列読み込みされている。

JavaScript の並列読込処置前比較のために実装前の Firebug のネットワークモニタ結果(JavaScriptのみ)も載せておきます。
一つの JavaScript が読み込み終わるまで、次の JavaScript の読み込みが待ちになっている様子が分かりますね。
読み込んでいる JavaScript ファイルが少ないのは、並列読み込み用に使った Yahoo! UI Library の Get Utilityを、こちらでは読み込んでいないことと、自サイト内の Javascript を動的結合しているため。
# 読み込みファイル数が少ない実装前の方が、総読み込み時間が多くなっている。
続きを読む

WordPress 2.6 へのアップデート

WordPress 2.6 日本語版が出た記念にアップデート。
プラグインで修正が必要なものは特に無かった。
# 自作プラグインは、ちょこっと手を入れてますが (^^;

問題なのは my-hacks.php。強烈に弄り回しているので、修正に手間がかかりました。
今回 wp-include/script-loader.php が結構変更されたので、それを使っている hack の修正がほとんど。
続きを読む

WP2.5に入れているプラグイン10選

[TB] WP2.5に入れるプラグイン10選 – MMRT daily life
どこかで見たような企画です。そうあれは、ちょうど2年前。交流会用のネタでした。めっきり見なくなったトラックバック企画リターンズ。しかももうすぐWP2.6が出そうですが、そんなことは知ったこちゃありません。

と言うわけで、Masayanさんの企画に乗っかって、ウチのサイトで使っているプラグインから外せないモノを10個選んでみたよ。
続きを読む

WordPress 2.5.1 へのアップデート

2.5系で初のセキュリティフィックスが出た記念に WordPress 2.5.1 にアップデートしました。

幾つかのプラグインはアップデートが必要になったが、概ね問題なし。
Popularity Contest だけが、正常に動作しなかった。
とりあえず、作者サイトのリンクから辿った SVN Repository に置いてあった 1.3b4 にバージョンアップしたら動作した。
正式な配布開始までは、これでしのごう。

他のプラグインは、Geo Mashup 以外は 2.5 対応のモノがあったので、バージョンアップ。
幾つかのプラグインのアップデートには自動アップデート機能を使ってみたが、楽チンだ。

WordPress での日本語スラッグについて

WordPress でパーマリンク構造に %postname% を含めた場合、%postname% が投稿スラッグで置き換えられる。
投稿スラッグを指定しないと、日本語タイトルを urlencode したものが %postname% として使用される。
 例: https://dogmap.jp/2008/03/25/%e6%b7%b1%e6%b3%a5%e4%b8%98%e5%a5%87%e8%ab%87/

%e6などのように特定の文字を "%" と 16 進数字 2 つを用いて変換する処理の事をパーセントエンコーディングと言い、URI の一般的構文を定めた RFC3986 にも記されている
以下、RFC3986 邦訳の抜粋。

パーセントエンコーディング{percent-encoding} メカニズムは、オクテットの対応する文字が認められた文字の範囲外にある、あるいは構成要素の中で区切り氏として使用されている場合に使用される。パーセントエンコードされたオクテットは、パーセント文字 "%" と、そのオクテットの数値を表している二桁の 16 進数字から成る三重語としてエンコードされる。例えば、"%20" は 2 進オクテット "00100000" (ABNF: %x20) についてのパーセントエンコーディングであり、US-ASCII のスペース文字 (SP) に対応している。 Section 2.4 は、パーセントエンコーディングとデコーディングが適応される時について記述している。
pct-encoded = "%" HEXDIG HEXDIG
大文字の 16 進数字 'A' から 'F' は、小文字の 'a' から 'f' とそれぞれ等価である。二つの URI のパーセントエンコードされたオクテット内で使用される 16 進数字の大文字・小文字のみが異なる場合、それらは等価である。整合性を持たせるため、URI の生成を行うもの{producers} や正規化を行うもの{normalizers} は全てのパーセントエンコーディングについて大文字の 16 進数字を使用すべきである。

このパーセントエンコーディングされた URI だが、WordPress ではすべて英小文字になっている。
続きを読む

WordPress 2.5

昨日の話だが、WordPress 2.5 の日本語版がリリースされた。
とりあえず、こっそり運営しているもう一つのサイトだけバージョンアップして様子見。

使用しているプラグインの中では Popularity Contest だけが正常に動作しなかった。
ただし、作者も把握しているようなので、直に修正版が出るだろう。

私が作成して WordPress Plugins/JSeries で公開しているプラグインについては、VideoPop+ 以外は、確認取れました。
WordPress2.5 からは、ビデオや音声ファイルといった画像ファイル以外のメディアも管理する機能が WordPress 本体についているようなので、VideoPop+ の動画ファイル管理機能を省いてポップアップ表示機能だけにするかも。
でも、それだけだったら WP-lightpop でフォローできるなぁ。
とりあえず、Videopop+ の今後の方向性は要検討ですね。

WordPress 2.3.3 でフィードの日付がおかしい

コアソースを改変すると、WordPress のアップデートが面倒になります。
以下にコアソースを修正しないでもフィードテンプレートを変更する方法をエントリしてありますので、そちらを参照してください。 (追記: 2009年11月10日)

各種フィード用テンプレートの変更 : dogmap.jp

犬小屋にて – Feed 配信がどうもおかしい。」を読んで気づいたのだが、WordPress 2.3.3 で配信されているフィードの日付がおかしい。
で、ソースを見てみたところ mysql2date() に渡している第1引数がおかしい。
これは、PHP の date() 関数に渡す日付文字列の書式を与えなければならないのだが、Wordpress のソース上では 'D, d M Y H:i:s +0000' となってしまっている。
GMT との時差をセットしたいのであれば 'D, d M Y H:i:s O' (最後はアルファベット大文字のO) にしなければならない。

修正が必要なファイルは wp-includes/feed-rss.php, wp-includes/feed-rss2.php, wp-includes/feed-rss2-comments.php の3ファイル。
修正箇所は、以下の4箇所。
#他にもあるかもですが (^^;;

feed-rss.php(13):	<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s O', get_lastpostmodified(), false); ?></lastBuildDate>
feed-rss2.php(20):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_lastpostmodified(), false); ?></pubDate>
feed-rss2.php(29):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_post_time('Y-m-d H:i:s', false), false); ?></pubDate>
feed-rss2-comments.php(42):	<pubDate><?php echo mysql2date('D, d M Y H:i:s O', get_comment_time('Y-m-d H:i:s', false), false); ?></pubDate>


PHP 5.2.5 に変更

さくらでPHP5の提供 が始まったので、切り替え。
Wordpress は問題無かったが、フレッシュリーダーで、若干の設定変更が必要になったので自分用にメモ。

php.ini の修正
php.ini に以下の1行を追加。

zend_extension = /home/アカウント名/www/freshreader/ioncube/ioncube_loader_fre_5.2.so

cron の設定変更
実行するコマンドに php.ini のパスを明記する。

/usr/local/bin/php -f /home/アカウント名/www/freshreader/crawler.php  -c /home/アカウント名/www/php.ini


WordPress 2.3.2 へのアップデート

WordPress ME から、本家版の 2.3.2 へアップデートしました。
DB のアップデート自体は、特に問題なかった模様。

あわせて、幾つかのプラグインもアップデート。
今まで、タグ付けは UTW で行っていたのですが、これを止めて WordPress 本体の新しいタグ構造に移行。
それに合わせて、タグ管理用プラグイン Simple Tags を導入。

ただし ME 2.2.x の時 wp-cron が正常に動いていなかったらしく、バージョンアップ直後に溜まっていたジョブが一斉に動き出して、サーバが重くなってしまった。
現在は復旧しましたが、ご迷惑をおかけしました m(_ _)m

PHP で Javascript を動的結合

Strategic Web Design : ITpro の連載記事「技術者視点のユーザビリティ考」の第30回 JavaScriptの動作を軽くするための工夫で紹介されていた動的に js ファイルを統合する仕組み Supercharged Javascript が、中々興味深い。
要は指定された js ファイルへのアクセスを PHP に送り、結合して送り返すのだが、これが中々良さそうだ。
多少、修正して当サイトにも実装してみたので、自分用にメモ。
時間が有るときに WordPress 用のプラグインとして利用できるようにしてリリースするかも。

続きを読む