2009年2月27日金曜日

【PHP】バックグラウンド(非同期)で処理を実行する

PHPで重い処理を行う場合、バックグラウンドでの処理依頼だけして、すぐレスポンスを返す方法のメモ。

基本PHPでは非同期処理をサポートしていないので、外部プログラムとして実行させる

exec('実行したいプログラム > /dev/null &')

参考:PHP中級、2外部プログラム実行

これを応用してPHPの処理自体を非同期で行うには

exec('wget --spider http://localhost/hoge.php > /dev/null &')

exec('php /var/www/html/hoge.php > /dev/null &')

こんな感じで外部プログラムでPHPを実行する。

ちなみにexecを実行するためにはsafe_modeがoffでないと駄目。

wgetについてはここを参考に。

2009年2月26日木曜日

ファイルをアップロードするためのapacheとphp.iniの設定

大きいファイルをアップロードする際に必要な設定をメモ。

php.iniにアップロードできるファイルサイズの制限が記述されているので、それを変更する。

PHP.iniを設定

upload_max_filesize = 512M
post_max_size = 512M
memory_limit = 512M
max_execution_time = 0

詳しい説明はphpマニュアルを参照。

PHP.iniを変更すると他の処理に影響がでるので、.htaccessで個別に設定する方がスマート。.htaccessを有効にするにはhttpd.confの各ディレクティブに

AllowOverride All

を記述するのを忘れずに。

.htaccessのサンプル

php_value max_execution_time 0
php_value memory_limit 512M
php_value post_max_size 512M
php_value upload_max_filesize 512M

その他PHPマニュアルのファイルアップロードの処理を一読しておく。

さらにPHPではMAX_FILE_SIZEというhiddenタグに入れておくと、サーバ側でファイルサイズがこの値を超えている場合エラーとして処理をしてくれる。

2009年2月25日水曜日

外来語の末尾に長音記号「ー」をつけるかつけないか

社内のパッケージでも作る人によって日本語の「揺れ」がある。例えば

ユーザとユーザー。カテゴリとカテゴリー。コントローラとコントローラー。フォルダとフォルダー。

工学分野では最後の長音記号は省略する慣例なので、私の場合何も考えないと昔の癖で省略してしまう。実際どっちがいいのか調べたメモ。

結論から書くと内閣告示ルールに準拠するのが一般的な流れ。

長音記号の部分を引用すると

3    長音は,原則として長音符号「ー」を用いて書く。

注1    長音符号の代わりに母音字を添えて書く慣用もある。
  〔例〕    バレエ(舞踊) ミイラ
注2    「エー」「オー」と書かず,「エイ」「オウ」と書くような慣用のある場合は,それによる。
  〔例〕    エイト ペイント レイアウト スペイン(地) ケインズ(人)
サラダボウル ボウリング(球技)
注3    英語の語末の‐er,‐or,‐arなどに当たるものは,原則としてア列の長音とし長音符号「ー」を用いて書き表す。ただし,慣用に応じて「ー」を省くことができる。
  〔例〕    エレベーター ギター コンピューター マフラー エレベータ コンピュータ スリッパ

内閣告示ルール:外来語の表記より)

新聞や放送業界ではこのルールに準拠しているらしい。

・・・で、一番困ったのが「カテゴリ」。マイクロソフト的には英語が「y」で終わるものには現在の表記を踏襲するらしいので「カテゴリ」。wikipediaでも「カテゴリ」となっているので「カテゴリ」なのかな。

<参考>

2009年2月24日火曜日

FFMpegで動画配信サーバ構築の資料を公開

携帯動画変換について記事を書こうと思ったけど、勉強会で動画配信サーバ構築について発表したので、めんどくさくなってその資料をまるごと公開。

携帯向けの動画変換でMP4Boxを使ったコマンドを記載しているので、その辺参考になるかも。MP4Boxのコマンドについては前の記事を参考に。ウノウラボも参考に。

あと、動画のATOM情報を表示するにはMP4Dumpというコマンドがある。その辺はここのブログが参考に。

<目次>

  • 動画配信サーバとは
  • 主な動画配信サービス
  • オープンソースな動画変換ソフトウェア「FFMpeg」の紹介
  • 動画変換の基礎知識1
  • 動画変換の基礎知識2
  • PC向けストリーミング動画の作成
  • 携帯電話向け動画の作成
  • 携帯電話向け動画の注意点
  • PC向け動画配信サービス「HELIOS.CoTV」の機能紹介
  • 携帯向け動画配信サービス「SELENE.CoTV」の機能紹介
  • おわりに

小さいと見にくいので全画面表示はこちら。Google ChomeとFireFoxだと綺麗に表示できるけど、IEだとうまく表示できていない。

今回Google Docsを使って公開したけど、公開しているものをPPT形式とかPDF形式でダウンロードできたり、なんか多機能すぎてちょっと嫌。この辺は権限を設定してコントロールしたい。

2009年2月23日月曜日

Exbridgeでは営業マンを募集中

最近社長が来期に向けて営業を増やしたいらしく「いい営業いない?」とよく言っている。

リクナビにも募集を出したみたい。

なんか使っている写真は微妙なんですけど・・・

おもしろい人が来てくれるといいなぁ。

2009年2月20日金曜日

【PHP】TCPDF 4.5.xxx+FPDIで既存PDFの読み込みと編集

TCPDF 4.5 + FPDI 1.2.1で既存PDFを編集しようとしてみたけど、バージョンの関係で動かず。どうしたものかと思ったらfpdi.phpを修正するパッチがありました。ここから。

FPDIのバージョンアップで対応すると思いますが、取り急ぎの場合はこれで解決。
<2009/03/22 追記>
最新のFPDI 1.3でパッチを当てなくても正常に動作することを確認。

日本語が含まれたPDFを読み込んでも正常に表示。独自にフォントを追加した場合はファイルサイズが大きくなるけど、フォントを埋め込んでいるのでこれはしょうがない。

TCPDFの標準日本語フォントを使った場合はファイルサイズは大きくならなかった。
・・・ということは、日本語OS以外で開いた場合は文字化けしそう。・・・ま、いっか。

TCPDFのマニュアルは下記サイトが分かりやすい。

TCPDFに関するリファレンス

 

<インストール方法>

TCPDFをダウンロードしてきて、TCPDFというフォルダに保存。

FPDIのダウンロードサイトからFPDIとFPDF_TPLをそれぞれダウンロードしてきてFPDIとフォルダに保存。もちろんパッチを適用しとく。FPDF_TPLはFPDIフォルダに置く。

次は2つのコンポーネントを読み込むPHPファイルを作成。

set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/FPDI');
require('TCPDF/config/lang/jpn.php');
require('TCPDF/tcpdf.php');
require('FPDI/fpdi.php'); 

class exPDF extends FPDI
{
}

これをexPDF.phpの名前で保存したとすると、動作確認は次のような感じ。

require_once('exPDF.php');

$objPdf =& new exPDF();
$objPdf->AddPage();
$objPdf->setSourceFile('template.pdf');
$iIndex = $objPdf->importPage(1);
$objPdf->useTemplate($iIndex);

$objPdf->SetFont("kozgopromedium", "", 9);
$objPdf->MultiCell(0, 0, "テスト", 1, 'R', 0, 1, 100, 10);

$objPdf->Output('newpdf.pdf', 'F');

TCPDF/config/lang/jpn.phpはeng.phpをコピーして作る。ファイルの文字コードはUTF-8で保存。

$l = Array();

// PAGE META DESCRIPTORS -----------------

$l['a_meta_charset'] = "UTF-8";
$l['a_meta_dir'] = "jpn";
$l['a_meta_language'] = "ja";

// TRANSLATIONS ---------------------------
$l['w_page'] = "ページ";

<関連記事>

2009年2月19日木曜日

【.NET】ClickOnceをApacheでも起動するための設定

前にリンクだけ書いたけど、もう一度調べ直すことになったのでちゃんとやり方をメモっておく。

ClickOnceのアプリケーションをapacheの仮想ディレクトリに配置したあと、IEのバージョンによって起動するときとしないときがある。

Windows XP + IE7.0 + .NET Framework 2.0では起動

Windows 2003 Server R2 + IE6.0 + .NET Framework2.0では起動せず。XMLファイルが表示されてしまう。

前のリンクにも書いてあるが、MIMEをサーバ側に指定しないと駄目らしい。

方法① apacheのmime.typeに記述する。以下を追記。

application/manifest manifest application/deploy deploy application/x-ms-application application

方法② apacheのconfファイルに記述する。「IfModule mime_module」ディレクティブに以下を追記。

AddType application/manifest            .manifest
AddType application/deploy              .deploy
AddType application/x-ms-application    .application

方法③ .htaccessに記述する。アプリケーションを配置したディレクトリに.htaccessファイルを作って以下を追記。

AddType application/x-ms-application .application
AddType application/x-ms-manifest .manifest
AddType application/octet-stream .deplo

これはapacheのconfファイル(httpd.conf)にAllowOverride Allの記述がないと.htaccess自体有効にならないので注意。

設定後はapacheを再起動+ブラウザも再起動して試す。

2009年2月18日水曜日

DECOチョコでオリジナルチョコとマグネットとストラップ

ネコジルシで猫を眺めていたらDECOチョコというサイトを知った。

なにやらチロルチョコの包装紙を自分の好きな画像を使ってデザインできるらしい。

チョコを食べ終わってもマグネットやストラップにして取っておくことも可能なので、試してみるのもおもしろいかも。

エクスブリッジのデザイナーチームに頼めば、かっこいいのを作ってくれそう。

EOSチョコとか食べてみたい・・・。

2009年2月17日火曜日

JQueryのプラグイン

JQueryをまだ使いこなせてないので、次の開発ではリッチなユーザインタフェースを実現させるためのメモ。JQuery日本語リファレンスサイト

そのうち自分が使いやすいプラグインをリストにしたいけど、今はメモのためにリンクだけ。

簡単Ajaxライブラリ「jQuery」と便利なプラグインたち

[JS]jQueryのプラグイン33+1選 -2008年1月

[JS]jQueryのプラグイン33+1選 -2009年2月

2009年2月16日月曜日

矢原先生にお会いしました

大学時代に空手を教えてくださった矢原先生とお会いしました。

久しぶりに会うのでとても緊張・・・。

矢原先生は要人警備の会社を経営されていたり、ホテルを経営されていたりと多忙なうえ、世界中を飛び回って空手を教えているスーパーな人です。

海外での認知度が高く、YouTubeで「yahara karate」で検索するとたくさんの動画を見ることができます。

そんな先生は62歳とは思えないような覇気と精神力の持ち主で、話しをしているだけでこちらの魂を揺さぶってきます。

初志貫徹

一撃必殺

有言実行

常に切腹する覚悟で物事に取り組まれています。

そう。武士なのです。

あのような方と話すと自分の小ささが認識できるので、大変貴重な体験となります。私なんぞはまだまだですが、先生の覇気にあてられて少し体がうずいてきました。

↑矢原先生です。

ちなみにこの突き(力の使い方)ができるまで通常3、4年はかかります。大学4年間やって会得できない人は半数以上(途中で脱落する人はもっと多い)。

会社でこの動画のように板を床に埋め込んでもらえないものでしょうか。

2009年2月13日金曜日

Javascriptフレームワーク「Dojo」と「JQuery」

開発ではJQueryをメインに使ってますが、DojoというJavascriptフレームワークが気になったのでメモ。

とりあえずデモを見てみると、なんとなくすごいことができそうな予感がする。ただしGoogle Chromeでは一部デモが動作しなかった。

そしてここのサイトで他のJavascriptフレームワークとの速度比較があるので参考に。

これを見る限りDojoとJQueryの優秀さが伺える。でもJQueryは1.3になってから速度が大幅に改善されたみたいなので、現段階ではJQueryがNo.1なのかな。参考サイト

Dojoについて詳しく知りたい場合はここを一読する。

2009年2月12日木曜日

【PHP】フレームワークとライブラリ

PHPでシステム構築する上で使える(使えそうな)(今後使いたい)ライブラリのメモ。

機能 名前 説明
フレームワーク petitwork
(プチワーク)
エクスブリッジ発のMVCフレームワーク。軽量・軽快なのが良い。詳しくはEOS Project
O/Rマッピング somfa
(ソンファ)
アプリケーションとDBの仲介(マッピング)をしてくれるライブラリ。Adodbのラッパー。詳しくはEOS Projectで。
Excel操作 PHP-Excel PHPからMS Office 2007形式のファイルを操作可能にするライブラリ。非常によくできていてOffice 2003以前のファイル形式も扱える。前の記事も参考に。
PDF操作 TCPDF FPDFから派生したライブラリ。UTF-8に対応。前の記事も参考に。
メール送信 Zend_Mail Zend Frameworkの一部。他のZendライブラリも注目。
ファイルダウンロード PEAR::HTTP_Download クライアントにファイルをダウンロードさせるためのヘッダーの設定を吸収してくれる。

他に気になったら追記予定。

2009年2月10日火曜日

flv形式の動画をWebで配信可能なフラッシュプレーヤー

前の記事で紹介したオープンソースなFlash Player「flowplayer」がバージョンアップしてとっても使いやすくなっているようなので再度紹介。

GPL License版は相変わらずフルスクリーン時にロゴが表示されるけど、前の魚ではなくてかっこよくなっているので気にならない程度。

ソースも公開しているので、ログを非表示に改変することも簡単だけど、その場合はWebページにflowplayer.orgにリンクを貼らないと駄目。詳しくはLicense F.A.Qで。

ドキュメントとサンプルコードとデモが充実しているので、とても開発しやすい(英語)。

ただ埋め込みタグは前のバージョンと互換性がないので、単純に置き換えはできない。

jQueryと連携して、とてもリッチなWebページができるので、CoTVもトップページをかっこよく作り替えたい。

2009年2月9日月曜日

arai-flat氏の結婚式2次会

土曜はarai-flat氏の結婚式2次会。

エクスブリッジ初の社員同士の結婚というのもあって、総力を結集しての2次会となりました。

xb-noiri氏の段取りの元。余興満載ですばらしい二次会だったと思います。

xb-noiri氏お疲れ様でした。かっこよかったです。

 

二次会では私も僭越ながら四方割りの演舞をさせて頂きました。

最近CoTVでも板割りシリーズが何回か投稿されていますが、この日のために購入したものです。ほとんど別の方に割られてしまいましたが・・・(^^;

本番はバランスを崩し、テンポ良く割ることができなかったのが心残りで、やはり稽古不足が響いているんだと思います。

これからも何回かやりそうな予感がするので、拳鍛えておかないと。

 

こうやって、一般の人たちは空手って板を割るものだと誤解していく・・・。

2009年2月6日金曜日

CSS Framework「YAML」

今までBluePrintを使っていたけど、気になったのでメモ。

YAML(Yet Another Multicolumn Layout)

YAML Builderというのがあって、ブラウザ上でレイアウトを配置して、そのソースコードをゲットできるツールがある。

ライセンスはCreative Common Attribution 2.0 Licenseが元。日本語訳

フリーで使うためにはページにYAMLへのリンクを表示しないと駄目らしい。

2009年2月5日木曜日

【VMWare】vmware-view-open-clientがオープンソースで公開

シンクライアントが気になる年頃。

前の記事とかその前の記事とかで話題にあげてますが、VMWareから怪しげなものが公開されてます。ニュース記事

プロジェクトのページを見ても正直どういうソフトウェアなのかよく分からない・・・。

どこかの誰かが解説してくれるまで待ち。

2009年2月4日水曜日

TCPDFに日本語フォントIPAを追加する

MSゴシックやMS明朝などはライセンスの関係上使えないので、フリーで使えるフォントを探してきて追加します。有名なのはIPAフォント。ダウンロードはここから。

Windows上で行う場合はここのブログなどを参照。

以下Linux上で行う場合のコマンドメモ。環境はCentOS5.2。

TCPDFをダウンロードしてくるとfonts/utilsをまるごとコピー。IPAのフォントファイルipagp.ttfをutilsの下に置く。

# cd /tmp/utils
#./ttf2ufm -a -F ipagui.ttf
# php makefont.php ipagui.ttf ipagui.ufm

できあがったipagui.ctg.z, ipagui.php, ipagui.zをtcpdf/fontsに格納。

詳しくは公式ページのマニュアルで。

どんなフォントになるかはTCPDF日本語フォント確認ツールで。

TCPDFの日本語標準フォントもあるみたいなので、それで十分かも。下記参照

TCPDFに関するリファレンス・ドキュメント

2009年2月3日火曜日

WPFを使った開発のためのメモ

.NET Framework3.0になって新しく登場したWPF(Windows Presentation Foundation)。概要はWikipediaで。

もちろんクライアントに.NET Framework3.0をインストールしないと動かない。

だからWindows XP以上が必要。

Webブラウザ上でホストされて実行するWPFアプリケーションをXBAPと呼ぶらしいが、これもクライアントに.NET Framework 3.0が必要。

この影響でWPFのアプリケーションが増えてくるのはWindows 2000の延長サポートが切れる2010年以降になりそうな予感。Windows 2000のサポート期間

WPFについて勉強する場合は@ITの記事を参考に。

簡単なサンプルコードはMSDNで。

WPF+ClickOnceのデモもみつけた。

.NET Framework 2.0 + Visual Studio2005では、DataGridViewを使った表のレイアウトなど悩まされたが、WPFを使えばすんなり思ったようなレイアウトができそう。・・・まだ試してないけど。

来年あたりどこかの開発でやってみよう。

2009年2月2日月曜日

Bloggerのコードをハイライト(Windows Live Writerも)

記事内のプログラムのソースコードが見にくかったので、他の人がやっているようにコードをハイライト表示しようと検索。

コードをハイライトする「Blogger Syntax Highlighter」ウィジェット

Bloggerの場合はここのページから「add to Blogger」をクリックすればウィジェットとして簡単に導入完了。ちょっとはまったのが、Google Chromeでは失敗する。FirefoxかIEでクリックすること。

Bloggerでない場合はProject Homeのwikiを参照。

あとは紹介記事にあるように

<pre name="code" class="xml">
(コード)
</pre>

で綺麗に表示できるはず。指定できる言語の種類(class名)のメモ

普段はWindows Live Writerを使っているので、プラグインとして追加する場合はここからダウンロード。

実行後、メニューの
ブログ→ブログ設定の編集→編集→テーマの更新
で反映されるはず。

詳しくはここのブログで。

でも私の場合、プレビューでは表示されるけど編集画面ではうまく表示されない・・・。Windows Live Writerのベータだからか、もしくはウィジェットで追加したからテーマがうまく取得できないのかな。

Related Posts Plugin for WordPress, Blogger...

Blog Archives