Home

Shin x blog

Google Apps for Your Domainベータ版を提供開始

この記事の所要時間: 056

Googleがまたまた新サービスを始めたようです。

from: グーグル、企業向けサービス「Google Apps for Your Domain」ベータを提供開始へ – CNET Japan

Googleがこの日発表するのは「Google Apps for Your Domain」というサービスのベータ版。このサービスには、2Gバイトのストレージ容量を利用できるGmail、Google Calendar、Google Talk、Page Creatorなどのアプリケーションが含まれる。

メールにIM、簡易グループウェア、Webサイトが自分のドメインで運用できるのは良いですね。(GoogleAnalyticsでアクセス解析もできるし)次はPage Creatorがホスティングサービスになって、任意のファイルがアップできて、PHPが動かせて、DBも使えて、SSHでログインとかできたらバッチリです。。。

これは既存のサービスの組み合わせですが、次から次へと新サービスを発表するGoogleのスピード感はわくわくします。スピード感、大事ですね。

まるごとPerl vol.1

この記事の所要時間: 123

まるごとPerlが出てますね。普段はPHPを主に扱っていて、Perlは以前少し触った程度なのですが、ノウハウは転用できるものが多いのでたまに参考にしています。はてなブックマーク、livedoor Readerの内部が紹介されているようなので購入してみました。

ざっと読んでみた感想は、はてなのnaoyaさんが書かれておられるように「濃い」です。確実にPerlをこれから始めようという人は眼中にありません(笑)。逆に他言語でWeb開発をしている人にはPerlを知らなくても大いに参考になります。特にこれからWeb2.0系サービスを構築したい人には必読の書と言っても良いかもしれません。

まるごとPHPもそれなりに濃かったですが、ここまでの濃さではなかったですね。本の作り方(ターゲット?)が異なるので違うのは当然なのですが、やはり事例にもとずいた情報がもっと欲しいかな、と思います。国内でPHPを使った中規模以上のシステムの構築事例をあまり見ないので、フレームワークなどの記事もやや説得力に欠ける印象があります。(Web2.0系だとGREE(Ethna)くらいでしょうか。)PHPでもフレームワークが盛り上がっていますので、これからもっとPHPを使った事例が見られるようになると嬉しいですね。

次はまるごとRubyでしょうか。。。

まるごとPerl! Vol.1
まるごとPerl! Vol.1

posted with amazlet on 06.08.28
小飼 弾 宮川 達彦 伊藤 直也 川合 孝典 水野 貴明
インプレスコミュニケーションズ (2006/08/24)

lighttpd+PHPでファイルダウンロード

  • 2006-08-26 (土)
  • PHP
この記事の所要時間: 318

ThinkPHPでlighttpd+PHPを使ったファイルダウンロードが紹介されていました。PHP側で特定のヘッダを付けておけば、lighttpdがファイルを出力してくれる、という内容です。

ファイルが大きい、サーバ( or クライアント)の帯域が細い等でダウンロードに時間がかかるとその間FastCGI-PHPが占有されることになります。この方法であればPHPはヘッダだけを出力すればスクリプト実行を終了できるので、ダウンロード完了を待たずに他のリクエストを処理できます。PHPは必要な箇所だけ処理して、あとはlighttpdに任せるというわけですね。
# 餅は餅屋の発想ですな。

方法は以下になります。

  1. lighttpdの設定ファイルにallow-x-send-fileを記述
  2. PHPでX-LIGHTTPD-send-fileヘッダを出力

1.lighttpdの設定ファイルにallow-x-send-fileを記述

fastcgi.server = ( ".php" =>
                        ( "localhost" =>
                          ( "socket" => "/tmp/php-fastcgi.socket",
                            "bin-path" => "/home/shin/php5/bin/php-fcgi",
                            "broken-scriptfilename" => "enable",
                            "allow-x-send-file" => "enable"
                          )
                        )
                      )

2.PHPでX-LIGHTTPD-send-fileヘッダを出力

PHPではX-LIGHTTPD-send-fileヘッダ(lighttpd1.5まではX-Sendfileヘッダ)で出力するファイルパスを出力します。この時にContent-LengthやContent-Dispositionヘッダなど他のヘッダを出力しても問題無いです。

<?php
$path = "/path/to/file";
header("X-LIGHTTPD-send-file: " . $path);
header("Content-Disposition: attachment; filename=\"" . basename($path) . '"' );
header("Content-Length: " . filesize($path));
?>

ちなみに上記方法とPHPでファイルを出力させる方法を試してみたところ明らかに前者の方がPHPの負荷が小さかったです。(前者はヘッダを出力するだけなので当たり前ですが)

ただlighttpdはディスク上のファイルを出力するだけなので、ダウンロードデータをPHPで動的に生成する場合はデータを一度ディスクに書き込む必要がありますね。

これはPHPじゃなくてもfastcgi経由で起動するものならPerlでもRubyでもPtyhonでもいけるでしょう。

>>

■参考サイト
ThinkPHP
X-Sendfile fro lighty’s life
HowToFightDeepLinking – lighttpd – Trac

>>

テスト用にlighttpdをインストールした時につまった箇所をメモ。(CentOS4.2)

  • pcre-develをインストールしておく
  • fastcgi+PHPを使う時は–enable-fastcgiでfastcgi対応のphpをインストールしておく。(php -v で(cgi-fcgi)が出ればOK)
  • /usr/local/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.confで動作確認

天才少年ライダー・中上貴晶君の挑戦

この記事の所要時間: 026

FNNがこれまで放送した中上君のVTRをWebで公開しています。これまで見れなかった回もあったので有り難いです。インターネットって便利ですね。(笑)

MotoGPは民放で取り上げられる事はほとんど無いので嬉しいです。中上君の活躍も楽しみですが、これを機にMotoGPがもうちょっとメジャーになれば良いかなと思います。

# 自宅にプーチからtelがあったのは驚きだが。(笑)

>>

天才少年レーサーの挑戦

PHP5.1.6リリース

  • 2006-08-25 (金)
  • PHP
この記事の所要時間: 018

先日リリースされたPHP5.1.5に一部適用されていなかった修正分(64bitシステムでのmemory_limit修正)があったようで、そちらを含んだものがリリースされています。

http://www.php.net/

# まあありがちなミスかと。

PHPは最近なんだか慌ただしいですね。

Simple PHP BlogをWordPressにインポート

  • 2006-08-25 (金)
  • PHP
この記事の所要時間: 040

Simple PHP BlogをWordPressにインポートする方法です。

と言っても前エントリの方法で、Simple PHP BlogのデータをMT形式に変換し、それをWordPressの管理画面でインポートするだけです。

「インポート」で「Movable Type」を選択します。

MT形式に変換したSimple PHP Blogデータをアップロードします。

登録するユーザを選択します。新たにユーザを追加したくなければコンボボックスで登録済みのユーザ選択すれば良いです。(↓ならadminユーザで登録しようとしています。)

カテゴリ・記事・コメントがインポートされます。

これでインポートは完了です。

Simple PHP BlogをMT形式に変換

  • 2006-08-23 (水)
  • PHP
この記事の所要時間: 133

Simple PHP BlogのデータをMT(MovableType)形式へ変換するスクリプトを作ってみました。このスクリプトで変換できるのは以下のデータです。

  • カテゴリ
  • 記事
  • コメント

このスクリプトには2通りの実行方法があります。

Webで実行

sphpblog2mt.phpをSimplePHPBlogを設置しているディレクトリ(たいていsphpblog/)にアップロードします。

次にブラウザからアップロードしたsphpblog2mt.phpにアクセスすればMT形式のデータファイルがダウンロードできます。(SimplePHPBlogがhttp://example.com/sphpblog/ならhttp://example.com/sphpblog/sphpblog2mt.phpにアクセスします。)

コマンドラインで実行

sphpblog2mt.phpを SimplePHPBlogを設置しているサーバにアップロードします。(逆にサーバからSimplePHPBlogをダウンロードしてローカルで実行しても構いません。)

次に以下のようにsphpblog2mt.phpを実行するとmt.txtというファイル名でMT形式のデータファイルが生成されます。

$ php -f sphpblog2mt.php %SimplePHPBlogを設置しているディレクトリ%

>>

あとはこのファイルをMTなり、MT形式ファイルを取り込めるblogなりにインポートすればデータの移行ができます。(MT形式はわりとあちこちで採用されているようなのであとはどうにでもなるかと。)

>>

参考サイト
Movable Type 3.2 マニュアル – Movable Typeの読み込みフォーマット

MotoGP ブルノ

この記事の所要時間: 438

いよいよはじまりましたMotoGP後半戦。舞台はブルノ。丘陵地帯にあり、峠のような雰囲気を持ったサーキットです。テクニカルコースながらコース幅があるのでラインの自由度があり、S字の切り返しやバックストレートから左コーナーへの飛び込みなど見所が多いです。

ブルノと言えばブルノマイスターの異名を取ったマックス・ビアッジでしょう。残念ながら今年はシートが確保できず参戦していません。個人的にはそれほど好きなライダーでは無かった(原田派だったので)ですが、一時代を築いたライダーですので、やはりいないとなると寂しいものです。来季は何らかの形でサーキットに戻ってきて欲しいですね。(ちなみに日本人のブルノマイスターはG+解説等でお馴染みの坂田和人です。)

さて各クラスのレースの模様です。

全文を読む

Windows Live Writer

この記事の所要時間: 122

wordpressの投稿フォームはいちおうWYSIWYGっぽい入力ができるので良いのだが、普段テキストエディッタに慣れている身には結構辛い。何とかならんかな~と思ってたところMy RSS 管理人さんのblogで紹介されてたのが「Windows Live Writer」。

WordPressにも対応しているようなのでWriter Zoneからダウンロードしてインストール。

初期起動時に投稿するblogを設定して完了。実に簡単。

で今お試し中なのだが、かなり良い感じ。blogサイトからデザインやカテゴリなんかを読み込んでくれるので、ほんとblogの見た目そのままで記事が書ける。もちろんカテゴリの設定もできる。さらに既存の記事を取得して編集する事もできる。(まあxmlrpc経由でできる事はたいていできるんだろうけど)

なにより一番感動するのは画像の貼り付け。[alt]+[PtrSc]でキャプチャーした画像が[ctrl]+[v]でさくっと貼れた!!さすがWindowsアプリケーション。blogで画像をアップするのは結構手間なんでこれは良いな~。

あと当然ながらローカルで動作するのでオフライン時にガンガン書いておいて、オンラインになったら一気にアップするなんて使い方もできる。普段カフェなんかで書くこともあるからこれは嬉しいな。

何だかMy RSS 管理人さんと同じような内容になってしまったけど、webのフォームでblogを書いた事がある人なら同じような嬉しさがあると思う。

これ他のWebアプリにも生かしたいなあ。

PHP4.4.4/PHP5.1.5リリース

  • 2006-08-18 (金)
  • PHP
この記事の所要時間: 351

PHP4.4.4/PHP5.1.5がリリースされています。

セキュリティ フィックス&バグフィックスリリースのようです。

PHP5.1.5 Release Announcement
PHP4.4.4 Release Announcement

勉強がてらChangeLogを翻訳してみました。
# 誤訳・間違いがあったら教えて下さい。

    PHP4.4.4 ChangeLog

  • 64bitシステムでのmemory_limit修正
  • 64bitシステムでのstr_repeat()・wordwrap()のオーバーフロー修正
  • open_basedirかsafe_mode有効時にcurlのCURLOPT_FOLLOWLOCATIONを無効化
  • 不正なforeach()によるメモリ破壊を修正
  • #38431のバグ修正 (xmlrpc_get_type()がPHPをクラッシュする)
  • #38377のバグ修正 (session_regenerate_id()後のsession_destroy()でwarningが発生する)
  • #38322のバグ修正 (ssancf()の引数読み込みが任意のコード実行を引き起こす)
  • #38278のバグ修正 (session_cache_expire()の値がphpinfoのsessioncache_expireと一致しない)
  • #38251のバグ修正 (socket_select()と不正な引数)
  • #38183のバグ修正 (disable_classes=FoobarがFooクラスを無効にする)
  • #38112のバグ修正 (壊れたGIFがsegfaults)
  • #37265のバグ修正 (imap_body()のsafe_mode & open_basedirチェックを追加)
  • #29538のバグ修正 (number_formatの0問題)
    PHP5.1.5 ChangeLog

  • 64bitシステムでのmemory_limit修正 (Stefan E.)
  • 64bitシステムでのstr_repeat()・wordwrap()のオーバーフロー修正 (Stefan E.)
  • open_basedirかsafe_mode有効時にcurlのCURLOPT_FOLLOWLOCATIONを無効化 (Stefan E., Ilia)
  • #38322のバグ修正(ssancf()の引数読み込みが任意のコード実行を引き起こす) (Tony)
  • #38125のバグ修正(spl_dual_it_free_storageへの未定義参照) (Marcus)
  • #38112のバグ修正(壊れたGIFがsegfaults) (Pierre)
  • #37587のバグ修正(属性なしのがsegfaultを起こす) (Marcus)
  • #37576のバグ修正(FastCGI env (cgi vars) テーブルオーバーフロー) (Piotr)
  • #37496のバグ修正(FastCGIの出力がバッファオーバーラン) (Piotr, Dmitry)
  • #37487のバグ修正(oci_fetch_array()の配列型は常にOCI_BOTHをデフォルト) (Tony)
  • #37416のバグ修正(iterator_to_array()がrewind()メソッド内の例外を隠す) (Tony)
  • #37392のバグ修正(リクエストの最後に不必要なOCITransRollback()を呼ぶ) (Tony)
  • #37341のバグ修正($_ENVが使われると、インクルードされたファイル内で$_SERVERの2つのエントリが削られ) (Dmitry)
  • #37313のバグ修正(sigemptyset()がインクルードせずに使用される) (jdolecek)
  • #37346のバグ修正(無効なカラーマップフォーマット) (Pierre)
  • #37360のバグ修正(無効なGIFサイズ) (Pierre)
  • #37306のバグ修正(max_execution_time = max_input_time) (Dmitry)
  • #37278のバグ修正(SOAPが__soapCallのuriを参照しない) (Dmitry)
  • #37265のバグ修正(imap_body()のsafe_mode & open_basedirチェックを追加) (Ilia)
  • #37256のバグ修正(php-fastcgiがハンドルコネクションを中止しない) (Dmitry)

Home

検索
フィード
メタ情報

Return to page top