2008年7月31日木曜日

ISO9001について調べたことをまとめとく

前の会社ではISO9001を取得していて、監査が近づくと慌しくなってましたが、改めてISOについて調べなおしてみました。

ISO(国際標準化機構)(International Organization for Standardization)

その名のとおり国の垣根を越えて標準化を進める団体。
ISOは工業分野に関る標準化を進めているらしい。詳しくはwikipedia
ねじの規格やCD-ROMの論理フォーマットなどの規格をまとめている。

ちなみにWebの世界でよく聞く「W3C」というのも標準化団体の一つ。
W3CはCSSやXMLなどWorld Wide Webで使用される技術の標準化を進める団体。wikipedia

「ISO9001」はISOが定めた規格の一つ。
「品質保証を含んだ、顧客満足の向上を目指すための規格」らしい。詳しくはここ
その他の規格一覧はここから

ISO9001の監査を受けて合格すると、登録証番号を与えられ「うちはISO9001とってますから!」と言える。
それだけで品質管理がしっかりしてそうな印象をお客様に与えることができる。
その他のメリットはここここを参照。

進捗管理、プロジェクト管理、工数管理やお客様とのやり取りをしっかり議事録に残すなど、やった方がいいのは分かるけど、めんどくさくてやらなかった事をやらないといけなくなる。

慣れてくると辻褄合わせとか簡単にできてしまうけど、忘れてはいけないのは

品質保証を含んだ、顧客満足の向上を目指すため」の規格

ということ

2008年7月30日水曜日

【xyzzy】xml-modeのインデントをタブではなくて空白に

社内で孤独に愛用しているxyzzy

xml-modeのインデントはデフォルトでタグですが、それを空白にする設定。
.xyzzyに

(setq *xml-indent-tabs-mode* nil)

を記述して再起動でOK.その他のTipsはxyzzy wikiで。

2008年7月29日火曜日

【Linux】CentOS5 64bitにVMware Server 2.0をインストールする

VMware Server 2.0はここからダウンロード。

必要なツールをインストールしておく。(CentOS5では必要なし)
$ yum install gcc
$ yum install kernel-devel

解凍してインストール
$ tar xzvf VMware-server-2.0.0-101586.x86_64.tar.gz
$ cd vmware-server-distrib/
$ ./vmware-install.pl

全ての質問にはデフォルトで答えていけばOK。

でも私の場合、最初のインストールで失敗しうまく起動できなかった。たぶん理由はこの↓質問で

The current administrative user for VMware Server is ''. Would you like to specify a different administrator? [no]

administrator userはrootでしょ?と思ってyes→rootと入力してたから。これもデフォルトのままでいいみたい。

ちなみにインストールに失敗した場合、再起動してvmware-uninstall.plを実行しないとコンパイルの途中でabortしてしまう。

インストールに成功すると勝手にVMwareが起動しているので、管理画面には http://ceres/ などのようにインストールしたマシンにブラウザ経由でアクセスする。ssl認証の警告がでるけど構わず続行。 rootでログイン。

あとはフィーリングで。管理画面の使い勝手は前のVMware Server Consoleの方がよかった。webだと遅いし、いちいちloadingになるのが嫌。

Consoleで操作しようとすると

Error opening the remote virtual machine ceres:443\16: The host name could not be resolved.

とエラーがでるけど、これはローカルマシン(VMware Serverにアクセスしているマシン)のhostsファイル(C:\WINDOWS\system32\drivers\etc\)に 192.168.0.19 ceres と書けばアクセスできるようになる。

この辺は名前解決の問題と思うけど今のところよく分かりません(NetBIOS名では名前解決してくれない?)。いちいちhostsファイルを編集するのは嫌なので別途調査。

<2008/08/01 追記>
http://192.168.0.19/ のようにIPアドレスを使ってアクセスすればhostsファイルをいじる必要もない。

902(デフォルトでは)のポートを開けるのを忘れずに。ここを参照。

あと、/etc/rc.d/init.d/vmware restartで再起動したときにweb管理画面にアクセスできなくなる。これは

/etc/rc.d/init.d/vmware-autostart restart /etc/rc.d/init.d/vmware-mgmt restart しないと駄目みたい。これも謎。

今までの仮想マシンも問題なく起動できるので、とりあえず安心。

でも、たまに読み込んだ仮想マシンがunknownになる。これは注意書きにあるようにvmxで文字化けが発生しているとなるらしい。vmxファイルの日本語部分を削除して再度読み込むと正常に読み込んでくれると思う。

<2008/08/23 追記>
vmware server 2.0 RC2がリリースされてhostsファイルをいじる、いじらないの問題は修正されたみたい。Firefox3でもconsoleが開けるようにプラグインも修正されているみたい。

2008年7月28日月曜日

【Linux】ディレクトリ(フォルダ)の容量を確認、表示する

vmwareでゲストOSになっているCentOSの容量が圧迫されてきたので、どのディレクトリがディスクを使っているか調べたときのメモ。

マウントしているディスク全体を見たいときは
$ df
と打てばいい。

ディレクトリ(フォルダ)単位でみたいときは
$ du -hx --max-depth=1 <パス名>
と打てば、こんな感じで表示される。↓

image

vmwareのディスク容量を増やしたいときは、ここを参考に。

2008年7月25日金曜日

行ってみたい南の島「ジープ島」

南の綺麗な海で泳いでみたい。

とずっと思って今日に至るわけですが、なにげにテレビを見て良さそうだったのでメモ。

こんな島でまったりと過ごしてみたい。

珊瑚の海を素潜りで探検したい。

イルカと一緒に泳ぐのだ。

名古屋のおもしろ会社エクスブリッジ

2008年7月24日木曜日

iPhoneがほしい

今はdocomoですが、iPhoneに変えようか迷ってます。理由は、

  • iPhoneは月額8000円ぐらいかかるので、ちょっと高い。参考
  • 妹と家族割に入っているので、変えたら多分怒られる。
  • メールアドレスの変更を通知するのがめんどくさい。
  • iPhoneの通話品質がそんなによくないらしい。
  • でもiPhoneの機能は文句なく惹かれる。

エクスブリッジネコ友は発売日に手に入れたらしく、触らしてもらいましたが、心配していた日本語入力は慣れれば問題ないようなので、さらに欲しくなってしまいました。

docomoからiPhoneを出すという話しは、まだ続いているのでしょうか。

「引き続き交渉中」というのをどっかの記事で読んだ気がするのですが。

ここの記事でもdocomoからiPhoneの発売を期待することが書いてありました。

2008年7月23日水曜日

WindowsXPでリモートデスクトップの複数ログインを可能にする

WindowsXPの場合、リモートデスクトップでログインできるのは1ユーザに制限されていて、誰かがコンソールでログインしていると既にログインできません。

これだとWindowsXP + IE6やIE7のテストでテストする人の数だけマシンを用意しないといけないので、なんとかできんもんかなーと調べていたらありました。

ここにWindowsXPにパッチを当てて、複数ログイン可能にするやり方が。

ここで配布されているパッチを当てるみたいだけど、もちろんやるときは自己責任で。自分のマシンにやるのは恐いので、vmwareとかで試してからにしましょう。

PHP用DB接続支援ライブラリ「somfa」

2008年7月22日火曜日

中華鍋で炒飯を。空焼きをして使い始める。

一週間ほとんど親子丼を食べていますが、さすがにレパートリーを増やそうと最近簡単に作れる料理を模索しています。

ちなみに今のレパートリーは親子丼とカレー。親子丼ばかりだけど、飽きない・・・。おいしいから。

周りの人に話を聞いて、次に作ろうと思ったのが炒飯。とりあえず今家にあるフライパンで作ってみましたが、作りにくい。小さいので混ぜにくいし外にこぼれる。

そこで中華鍋を買おうと検索。見つけたのがこれ↓

打ち出しの中華鍋

2780円ぐらいで安いので早速注文。通販はここから。

30センチのを買ったけど、ちょっと大きいかも。一人なら27ので十分だと思う。

さっきのリンク先にも書いてありますが、使い始める前には「空焼き」なる作業が必要らしい。やり方はここを参照。

最初の30分も空焼きするのはちょっと勇気がいります。どこを見ても「やれ」と書いてあるので、しょうがなく30分ぐらい強火で買ったばかりの中華鍋を焼きます。

焼いていると、黒く塗ってある(?)ところが剥がれてきて、鋼の部分が見えてきます。ガスコンロでやると、ちょうど真ん中の部分が焼けないので、そこもずらしてしっかり焼きました。

・・・これでいいのだろうか。

不安に思いながらも無事空焼きを終え、さっそく炒飯を作ってみました。作り方はYoutubeに動画でアップされているので参考に。

初回は普通にできたので、とりあえず合格かな。

これから飽きない炒飯を目指して精進します。

suganuma@エクスブリッジ.jp

2008年7月18日金曜日

Google Analytics APIを調査したときのメモ

ブログ手当が発動して社員のブログをGoogle Analyticsで解析してますが、社長から「全員分見るのが結構めんどくさい」(ガジェットで表示したいらしい)ということで、一つの画面で全員分表示できるようなAPIがGoogle Analyticsで提供されているか調査したときのメモ。

Google Analytics APIのホームはここ(Docsからリファレンスを参照)。

見る限り外部からGoogle Analyticsのデータにアクセスすることは今はできないみたい。

でも、埋め込むJavascriptをカスタマイズすることで収集データをいろいろ調整することは可能らしい。古いトラッキングコードと新しいトラッキングコードの違いもあった。パフォーマンスが向上してファイルサイズも小さくなったらしい。詳細はここ

このPDFファイルも一度読んどくと、どんなことができるのかざっくり分かるのでいいかも。

複数のアカウントで管理されているGoogle Analyticsのデータを一括で表示する方法は引き続き調査する予定。

<2009/05/08 追記>
外部プログラムから参照可能なAPIが公開されたので、こちらの記事を参考に。

2008年7月17日木曜日

PHPでシリアライズしたデータを.NETとかで読み込む

PHPと.NETでデータ連係する際にちょっと調べたのでメモ。通常ネットワーク経由でデータ連係する場合はXML形式がよく使われますが、PHPでserialize()したデータを直接渡して、.NETや他の言語でunserialize()するやり方もあるみたい。

ここのブログが参考に。

C#やJavascriptやRubyでunserializeするためのサードパーティ制のライブラリはここにリンクが。

軽量、軽快なPHPフレームワーク「pettiwork」

2008年7月16日水曜日

【Linux】CentOSをFTP経由でインストール。設定も

vmwareのゲストOSとしてCentOS5をインストールしたときのメモ。

バーチャルマシンを新規作成するときはcustomを選択してLSI logicでハードディスクを構築する。詳しくはここ

CentOSのサイトからCentOS-5.1-i386-netinstall.isoをダウンロード。

このisoイメージをCD-ROMとしてマウントしてゲストOSを起動。FTPサイトを入力するときは
ftp2.riken.jp /Linux/centos/5.1/os/i386
と入力。こんな感じ↓

image

あとはデフォルトのまま進めていけばインストールできるはず。

たまにインストールの途中でrpmの取得に失敗したようなメッセージがでるけど、何回もretryしているとそのうち成功する。
rebootした場合はハードディスクからブートしようとして失敗するので、もう一度CDからブートしたいときはゲストOS起動の画面でF2を押してブートの順番を変える必要がある。

選択するソフトはbaseだけ。インストールしたいソフトはあとでyumでゲットする。

yumの設定方法はここを参照。

でもOSインストール完了まで結構時間がかかる・・・。少し古いバージョンでもCD使ってyum updateした方が速い気がする。

ネットワークの設定およびホスト名を設定する場合はここを参照。

使わないサービスを止めたい場合はここ

sambaを設定してwindowsから共有ファイルにアクセスした場合はここ

ネットワーク内にあるLdapを使用するならここ

(2009/05/13)デフォルトでcronがメール送る設定になっているので、これを止める。参考

2008年7月15日火曜日

【PHP】フォルダ(ディレクトリ)内のファイルを検索する

opendir()を使ってディレクトリ内をループするやり方もありますが、正規表現を使ってファイルを検索できるglob()というのを見つけたのでメモ。

ディレクトリ内の特定の拡張子だけ削除する場合はこんな感じ

foreach (glob(“*.txt”) as $sFilePath) {
    if (!unlink($sFilePath)) {
        continue;
    }
}

もうちょっと詳しく知りたい人はここを読むといいかも。

名古屋でプロのSEを目指す

2008年7月14日月曜日

最強のアクセス解析ツール「Google Analytics」

このブログでも導入しているGoogle Analytics。日別、週別、月別をグラフで分かりやすく表示してくれて、毎日見ているだけでおもしろい。アクセス解析で必要だと思われる情報はすべて網羅していると思う。詳細な機能はここを参考に。

何よりこの豊富な機能を無料で利用できるのがすばらしい。

月間500万PVまでという制限がありますが、1日に計算すると約16万PVなので、ほとんどのサイトで大丈夫ではないでしょうか。500万PV超えるときはAdWordsのアカウントが必要らしい。ここ(英語)を参照。ここのブログも参考になるかも。

エクスブリッジでも「ブログ手当」を計算するために全社員のブログに導入。このとき気付いた機能の一つに自分のレポートを他のアカウントに公開するということもできる。

さらにGoogle検索の順位決定にGoogle Analyticsのデータを使用していると、ここの記事で紹介されていたので、SEO対策にも効果があるかも。

たまにセミナーの開催を公式ブログで告知しているので、アクセス解析に興味がある人は参加してみるといいかも。

2008年7月11日金曜日

【PHP】型の変換 キャストとsettype

PHPでは自動的に型を変換してくれますが、XML-RPCを使ってプログラミングしていたときに、
echoで表示させてみたら数値なんだけど、is_numeric()ではfalse
という現象があり(var_dumpしたらobject型だったのですが)、そのとき調べた型変換のメモです。

PHPの型変換についてはここがまとまっているかな。

$sStr = (string) $iInt;

とこんな風にstring型などに変換するのがキャスト。

$sStr = settype($iInt, ‘string’);

こんなやり方でもできる。詳しくはPHPマニュアルで。

あとgettype()、empty()、is_null()、isset()、if文などでどのような値が返ってくるかはここを参考に。「==」と「===」の違いとかも表になっているので後で役に立ちそう。

suganuma@エクスブリッジ.jp

2008年7月10日木曜日

Bloggerで「bX-83t4r9」のエラーが表示される

昨日の昼にいつもようにネコ写をチェックしようと自分のブログに訪れてみると

bX-83t4r9

というエラーが表示され、サポートに問い合わせてください。というメッセージが・・・。

なぜ?

朝ブログを投稿したときには正常に表示されていたので、何かしらサーバ側でトラブルが起きたみたい。他のbloggerにあるブログは正常に表示できているみたいなので、運が悪かったのかな?

家に帰ってきてアクセスしてみると正常に表示できたので、時間が経てば大丈夫そう。

せっかく新社内ルールで「ブログ手当」が発動したのに、今までの苦労が水の泡?と思って、ちょっと焦りました。

2008年7月9日水曜日

PHP5でXML + XSLTを使う

仕事でXML + XSLT => HTMLのシステムを作っていたので、PHPでもXSLTを使えないかなぁと思ったりしてます。ただPHPが詳しくなった今、XML + XSLTで幸せになれる場面がそんなに思い浮かばないので、まぁいつか役に立つ技術ぐらいかなぁというイメージです。

PHP4ではXSLTはSablotronだったようですが、PHP5ではlibxsltになりました。詳細はここのPHP4とPHP5のXMLサポートの違いを参照。

以下PHP4でXSLT変換していたのをPHP5に移行したときのメモ。

さくっと動くかと思いきやxsl:for-each文でほとんどエラーとなるので調べてみたら、ほかの人達はexsl:node-setという関数を使っているみたい。sablotronやmsxmlだとテンプレートに引数として渡すと自動で判断してくれたのに・・・

Windowsサーバでmsxmlを使っていた人は予想ができると思うけど、exsl:node-setは引数をノードセットとして評価してくれるらしい。

exsl:node-setを使うにはEXSLTというコンポーネントがインストールされている必要があるみたい。ここ

phpinfoでみると下のようになってれば使える。

image

実際に使うときには名前空間を宣言するのを忘れずに。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common">

名古屋のおもしろ会社エクスブリッジ

2008年7月8日火曜日

【PHP】json_decode, json_encodeを使えるようにjsonをインストール

PHP5.2から標準で使用可能なjson_decodejson_encodeですが、PHP5.1の環境で使用するためのメモ。ここを参考に。

PEARの友達であるPECL(ピックル、PHP Extension Community Library)を使う。PECLはコンパイル済みであるため、PEARより高速に動作するらしい。

環境はCentOS5。すでにphp-develとphp-pearはインストール済み。

$ pecl install json

完了すると /usr/lib/php/modules/json.so が作成されている。これを読み込みたいので/etc/php.d/json.iniを作成し extension=json.so と記述。apacheを再起動すればjson_decodeが使えるはず。

 

<2008/12/19 追記> 別のシステムでjson_encodeを使おうと、この記事を参考にインストール。だけど、 $ pecl install json のあとになぜか/usr/local/lib/php/extensions/no-debug-zts-20050922/json.soにファイルが作成された。

このjson.soを/usr/lib/php/modulesにコピーしてもjsonが読み込まれず。apacheのエラーは下のような感じ

PHP Warning:  PHP Startup: json: Unable to initialize module\nModule compiled with module API=20050922, debug=0, thread-safety=1\nPHP    compiled with module API=20050922, debug=0, thread-safety=0\nThese options need to match\n in Unknown on line 0

調べてみると、コンパイルでインストールしたphpとyumでインストールしたphpが共存しているのが問題みたい。

$ which php

で調べると/usr/local/binにあるphpを参照してた。コンパイルでインストールしたphpを使っているみたいなので、/usr/local/bin/php*を削除して/usr/binのphpを参照するように変更。pecl, pear, peardevもあるようなら削除。

一回ログアウト。

これでもう一度peclからやってみると成功。

2008年7月7日月曜日

【Linux】CentOSへffmpeg-phpのインストール

にffmpegをインストールしましたが、今度はffmpegをPHPから簡単に使える拡張機能ffmpeg-phpをインストールします。ここを参考に。

必要なツールをインストールしておく
$ yum install php-devel

$ tar jxvf ffmpeg-php-0.5.3.1.tbz2
$ cd ffmpeg-php-0.5.3.1
$ phpize
$ ./configure
$ make
$ make install

最後は
Installing shared extensions:     /usr/lib/php/modules/
というメッセージが出て終わる。
上記ディレクトリを見るとたしかにffmpeg.soがある。今までlampp(xampp)を使っていたけど、このディレクトリは参照しないので通常のhttpdに切り替えることに。

apacheを再起動
$ /etc/rc.d/init.d/httpd restart

エラーが出る場合はphp.iniに extension_dir = "/usr/lib/php/modules" という記述があるかチェック。

動作確認は解凍したディレクトリにtest_ffmpeg.phpというファイルとtestsというディレクトリがあるので、これを公開しているディレクトリにコピーしてtest_ffmpeg.phpを実行するとtests/mediaにある動画と音声ファイルの情報を出力します。 インストールされているバージョンを確認する場合もこのファイルを参考に。

run-tests.phpというファイルもあったけど、これは実行してみると途中で止まる・・・。よくわかりません。

動画のプロパティを参照できたり、サムネイルを作成したり、さらにgifのアニメーションを作成できるみたい。APIリファレンスはここ

いろいろ試してみよう・・・。

<2009/02/21 追記>
実行するときは

//ffmpeg-phpの拡張モジュールを読み込む
$sExtension = "ffmpeg";
if (!extension_loaded($sExtension)) {
    $sExtensionSoname = $sExtension . "." . PHP_SHLIB_SUFFIX;
    if (!dl($sExtensionSoname)) {
        echo 'Can not load extension: ' . $sExtension;
    }
}

でモジュールを読み込む。

ただphp.iniのsafe_modeがOnだと失敗するので、そんなときは/etc/php.d/ffmpeg.iniに extension=ffmpeg.so と記述してapacheを再起動でもできる。

execなどphpから外部コマンドを実行するときはsafe_modeがOffでないと駄目なので、おとなしくphp.iniのsafe_modeをOffにした方がよい。

<2009/03/14 追記>
ffmpegのバージョンをあげたときに

child pid 30831 exit signal Segmentation fault (11)

というエラーをapacheが出力して強制終了する現象に出くわして見事にはまったので、ffmpegはバージョン0.6.0以上を使った方がよい。

<2009/03/27 追記>
0.6.0以上にあげるとffmpegが対応していないコーデックの動画に対してgetVideoBitRate()などをやるとFatal Errorとなる。

Fatal error: Could not find decoder for /opt/cotv_movies/test.avi

これを解決するためにはソースを修正してリコンパイルしないと駄目みたい。参考。Fatal errorはphpでハンドリングできないのでWARNINGレベルにしてほしい。ソース修正したけどさ。

2008年7月4日金曜日

【PHP】requireとincludeの違い

今まで何気なく外部ファイルを読み込むときはrequire_once()を使ってましたが、たまにinclude_once()を見かけるので、「この違いは何?」ということで調べました。

PHPマニュアルにすべての答えが。

require()でエラーが発生するとfatal errorで処理が中断しますが、include()だとWarningのみで処理は中断しないようです。

2008年7月3日木曜日

民事裁判執行通知に気を付けよう

昨日帰ったら親から変なFAXが届いてました。↓

image

なんでもうちの姉の家のポストに入っていたらしいです。ハガキで。

かなり焦ったらしいですが、こんなの突然送られた私の方もびびりました。

どうやら架空請求の一つらしいです。ここ

しかも取り下げ期日が届いた日になっているので、相手を焦らせるのに一役かってます。焦って電話するとカモ認定されるようです。

気を付けましょう。

東京では変なものが流行っていますね。

2008年7月2日水曜日

【文字コード】UnicodeとUTF8の違い

UnicodeとUTF8の違いが分からなかったので調べたメモ。

Unicodeは全世界の文字を共通の記法で表現しようと策定されたもの。詳しくはwikipediaで。たとえば「U+003D」というような「U+」の後ろに16進数の文字列で表現する。ちなみに「U+003D」は「=」。

UTF8はUnicodeをエンコード(符号化)(圧縮)する方法(規格)の一つ。デコード(復元)する際に負荷の高い処理が必要でないため、広く使われるようになった。詳しくはwikipediaで。
UTFは「Unicode Translation Format」の略。

時代はUnicodeらしい。Windows Vistaとの絡みが気になる人はここの特集を一読しとくといいかも。

2008年7月1日火曜日

SQLを速くするポイントのメモ

検索画面を作成すると悩まされるのが検索スピード。

作っているときは数件程度でテストするので、どんなSQL文を書いても速いですが、実際に運用してみると全然レスポンスが返ってこないというのがよくあります。

前の会社で最初にPLをやった案件が検索システムなので、かなーりSQLには悩まされました。まぁ、そのおかげでインデックスやオプティマイザについて少し詳しくなったのですが・・・

最近、またSQLやインデックスについてGoogle先生に聞く機会があったので、そのメモを残しときます。

まずここここを読んでおくと後で細かいSQL文の修正を行わなくてよい。

個人的にはしっかりとしたデータベースの設計をしておけば、そんなSQLは気にしなくて良いと思っています。ちなみにDBはSQL Serverを一番経験しています。Oracleはほとんど経験がないですが、オプティマイザの動きとかやっぱり違うのかなー。

Related Posts Plugin for WordPress, Blogger...

Blog Archives