2009年3月24日火曜日

php 再帰型ファイル・ディレクトリ制御

function GetPath($path) {
$dirIterator = new RecursiveDirectoryIterator($path);
$tmptime = 0;
// サブフォルダ内も含めたファイル分回す
foreach ( $iterator = new RecursiveIteratorIterator($dirIterator, RecursiveIteratorIterator::SELF_FIRST) as $file){
$space = str_repeat(" ", $iterator->getDepth());
$filename = $file->getFilename();
if ($file->isDir()) {
// ディレクトリ表示
echo $space . "Dir:" . $filename;
// ファイル
} else {
// ファイル表示
echo $space . "File:" . $filename;
}
// 階層
echo "【" . $iterator->getDepth() . "階層目】";
// 最終修正時刻
echo "【" . date("Y/m/d H:i:s", $file->getMTime()) . "】" . PHP_EOL;
}
}
GetPath('D:\\logs\\');

参考URL
http://dozo.matrix.jp/spl/directoryiterator
http://dozo.matrix.jp/spl/directoryiterator/recursive
DirectoryIterator ファイル・ディレクトリ制御クラスライブラリ メソッド
メソッド 概要
DirectoryIterator::__constructパスから新規ディレクトリイテレータを生成する
DirectoryIterator::currentこれ自身を返す (Iterator インターフェースが必要)
DirectoryIterator::getATimeファイルの最終アクセス時刻を取得する
DirectoryIterator::getCTimeファイルの inode 修正時刻を取得する
DirectoryIterator::getFilename現在のディレクトリエントリのファイル名を返す
DirectoryIterator::getGroupファイルのグループを取得する
DirectoryIterator::getInodeファイルの inode を取得する
DirectoryIterator::getMTimeファイルの最終修正時刻を取得する
DirectoryIterator::getOwnerファイルの所有者を取得する
DirectoryIterator::getPathディレクトリパスを返す
DirectoryIterator::getPathname現在のディレクトリエントリのパスとファイル名を返す
DirectoryIterator::getPermsファイルのパーミッションを取得する
DirectoryIterator::getSizeファイルサイズを取得する
DirectoryIterator::getTypeファイルタイプを取得する
DirectoryIterator::isDirファイルがディレクトリであれば true を返す
DirectoryIterator::isDot現在のエントリが '.' もしくは '..' の場合 true を返す
DirectoryIterator::isExecutableファイルが実行可能な場合 true を返す
DirectoryIterator::isFileファイルが通常のファイルの場合 true を返す
DirectoryIterator::isLinkファイルがシンボリックリンクの場合 true を返す
DirectoryIterator::isReadableファイルが読込可能であれば true を返す
DirectoryIterator::isWritableファイルが書き込み可能であれば true を返す
DirectoryIterator::key現在のディレクトリエントリを返す
DirectoryIterator::next次のエントリに移動する
DirectoryIterator::rewindディレクトリを最初に巻き戻す
DirectoryIterator::validディレクトリがまだエントリを持っているかどうかチェックする


RecursiveDirectoryIterator 再帰型ファイル・ディレクトリ制御 メソッド
メソッド 概要
RecursiveDirectoryIterator::getChildrenディレクトリであれば、現在のエントリに対するイテレータを返す
RecursiveDirectoryIterator::hasChildren現在のエントリがディレクトリかつ '.' もしくは '..' でないかどうかを返す
RecursiveDirectoryIterator::key現在のディレクトリエントリのパスとファイル名を返す
RecursiveDirectoryIterator::next次のエントリに移動する
RecursiveDirectoryIterator::rewindディレクトリを最初に巻き戻す

DirectoryIteratorはRecursiveDirectoryIteratorの親クラス

免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年3月23日月曜日

ToDoを共有&壁紙なみに目立つもの

ToDoを共有し、且つデスクトップに表示させるものを探している。


目的は、自分のやりたい事、タスクを、相手にも分かってもらおうというところだ。

相手のメーラーやブラウザは、普段自分が愛用しているものとは違う。

あとは小難しい設定が必要なのはNGだ。

「俺のタスクを確認する為に、○○アプリ(又はURL)を開いてほしい」というのもNG

一回自分が行ってセットアップする事はできても、その後いろいろとはいじれない。

共通なのは、OSがWindowsなことくらい。

いろいろ探してみたが、これ、というものがない。

↓入れてみたが動作確認できず。。。

壁紙に貼付けるTodo「ToDo」

↓アプリの壁紙は変えられるがデスクトップは関係なかった

ToDo×Rocky(トドロキ)


↓googleガジェットでいいものがあれば、と思ったが、これもない。あくまでクライアントだけのものだ。

デスクトップガジェット:todo

・・・作るしかなかろう。

その為のコピペプログラマー技術者なのだから!

とはいってもいつになるやら。

誰かいいツールを知っていれば教えてほしい。

免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年3月20日金曜日

google app engineに登録してみた

google app engine やってみた。
今回は登録の手順を。
まずトップページ
スタートガイドから「ログイン」をクリック
Welcome !
こっから先は英語です
Japanで、携帯アドレスを指定します。
で、「Send」!

おお、きたきた。
何やら数字の文字列が・・・・

携帯で受信したコードを入力して
またまた「Send」!

おお、Create Application きましたね。
クリエイトしちゃいましょう。
まずはユニークなurlを決める。
このurlは後から訂正がきかないので慎重にね。
そしてタイトルを決めましょう。
同意してから「Save」!

おお、うまく登録できたようです。
今日はここまで!


免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年3月9日月曜日

携帯用に音楽ファイル変換 mp3→mp4(3gp)

携帯用に音楽ファイルを変換する方法

最近の携帯は、メモリカードにPCから音楽ファイルを入れる事で、聞けるようになる。

ただ、このファイルの種類が、現在も一般的な音楽ファイル「mp3」に対応しておらず、

mp4、m4a、aac、3gp、などといったMPEG4形式のファイルしか対応していない。

PCにあるのなんて殆どmp3だよ・・・と困ったので調査。

これを変換するツールで便利なのを発見。下記。

携帯動画変換君
試しに Softbank 821SCでやってみた。
まず適当に

「3GPPファイル, 音声AAC形式一般設定 動画XviDエンコード」を選択
その後に出るダイアログで
「QCIF高画質15fpsステレオ」を選択
で試しにやってみる。ドラックドロップ。
お、いけた。聞いてみる。げ、かなり音質低下。
んー移せたとしてもこれでは話にならん。
先ほどのページから、Wiki に飛んで、対応機種などの情報を漁ると、、、
821SCは無かったが、SCシリーズで920SCがあった。
で使えそうなのを発見。
やってみた。
3GP_Converter034/default_setting
の中に、「Transcoding_920SC.ini」を空ファイルで作成。
そこに下記をコピペ

[Info]
Title=機種別設定:3GP2ファイル, 920SC向け設定
TitleE=Model: 3GPP, for 920SC
Description=http://mobilehackerz.jp/archive/wiki/index.php?920SC
DescriptionE=Setting adjusted for Softbank 920SC.

[Item0]
Title=AAC-LC / 音声:192kbps 44.1kHz Stereo
Command0=""\cores\ffmpeg" -y -i "" -bitexact -vn -acodec aac -ac 2 -ar 44100 -ab 96 -f 3gp ".3gp"""

その後再度起動し、追加した設定を選択→変換
3gpファイルが完成。聞いてみると、、、音質は素人耳ではわからないくらいそのまま。

サイズはかなり減っている。(例:9538KB→5721KB)
good!
でメモリカードを移してみる

ドライブ:\PRIVATE\MYFOLDER\My Items\Music

で携帯に入れてみる。お、認識されている。

聞けました。変換に若干時間はかかりますが、他問題なし。


免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年3月4日水曜日

VMware ESXi

VMware ESXの無償バージョンが出ていた事を最近知った。
VMware ESXi ダウンロード↓
無償が出たのは結構前(2008年7月22日?)からだった。
記事↓
Microsoft Hyper-V を意識しての事だろうか。
高機能なものが次々に無償化する時代だなーとつくづく感じてしまう。


免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年3月3日火曜日

【CPU】クロック周波数と性能の関係

CPUについてです。
自分もちゃんとは知らなかったのですが、周波数だけでは性能を測れないんですね。
以前は周波数=性能だったのですが。。。
無知でした。
 
非常に分かりやすい記事がありました。
 
 
【質問】
 
> TDP35Wが魅力でceleron 440 Conroe-LにCPUを交換しようと思う
> のですがなぜクロック周波数は2Ghzなのに
> ペンティアム4換算でいくと3Ghz以上の性能になるのでしょうか?
 
これです。僕の疑問もこれです。
 
> 分かりやすく言えば基本設計が違うからです。
> Pentium 4は1クロックあたりの性能は低いけどクロックを
> 高くして性能を稼いでいます。
> ところが、Celeron 440などのCore 2世代の設計は
> 1クロックあたりの性能を大幅に向上させて
> 低いクロックでも高性能になっているんです。
 
なるほど。そういうことか。分かりやすい。
 
> Pentium 4で使われていたNetBurstマイクロアーキテクチャ、
> Core 2シリーズで使われているCoreマイクロアーキテクチャ、
> 両者は色々な部分で違いがありますけど大きな変化は
> パイプライン数の縮小です。
> パイプラインとは並列処理のことで、数が多ければ動作クロックを
> 上げやすくなります。
> 普通に考えると数を減らしたら性能が落ちそうですけど
> Pentium 4→Core 2の場合は逆になりました。
> これは、CPUの処理するデータは一定ではないからです。
>
> 例えば、車の生産ラインは常に同じ作業をするため
> ライン数を増やせば効率が上がります。
> ところが、CPUの場合は同時に行っている処理の結果がないと
> 進められない処理というものが発生します。
> 例えば、ラインAとラインBで作業を行っている場合に
> ラインAでは設計図の作成、ラインBでは部品の製作を行なう
> ようなものです。
> CPUの場合は設計図が無くても予測して部品を作ってしまうんです。
> 当然、予測なので外れることもあり、その場合は再生産ということで
> 無駄な時間が発生します。
> CPUが処理するデータは全て2進数(0か1)なので予測精度は
> そこそこありますが、パイプライン数が増えると失敗率が上がって
> 効率がどんどん落ちるんです。
>
> もちろん、Coreマイクロアーキテクチャの場合も予測ミスは
> 発生しています。
> ですが、パイプライン数が少ない分だけ予測の成功率が
> 上がっているので、再処理の頻度は少なくなっています。
> Pentium 4の性能がクロックの割りに低いのは予測の失敗率が
> クロック上昇による性能向上を打ち消してしまっているからなんです。
> 結局、CPUの性能はパイプライン数とクロックの兼ね合いって
> ことみたいですね。
 
ちょっと難しいが、うむ。なるほど。
 
> 単純作業を2つのチームで行うとします。
>
> celeron 440チームは・・・
> 1時間に2つ(周波数)の仕事を出来る人が5人(CPU処理効率)います。
> Pentium4チームは・・・
> 1時間に3つ(周波数)の仕事を出来る人が2人(CPU処理効率)います。
> 同じ仕事を行った場合、早く終わるのはもちろんceleron 440チームです。
>
> 周波数は、1秒間に何回処理を出来るかを表します。
> 2GHzなら2*1024*1024*1024回です。
> これはPentium4の方が高いですね。
> しかし、設計の違いで1回で多くの事を処理出来るのがceleron 440です。
> これがCPU処理効率の違いです。
>
> 少ない人数で労働基準法オーバーくらい働かせて仕事をしていたのが、
> Pentium4
> 余裕のある人数で仕事をゆったりやっているのが
> celeron 440
> でもいいかもしれません(笑)
 
これまた分かりやすい。ほんとこの回答してくれる方、いい仕事しますな。
 
しかし、性能比較が単純ではなくなった分、結局頼るところはベンチマークというところでしょうか。
それもめんどくさい人は、ようするに、新しいのにしろってこと!


免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ

2009年3月2日月曜日

#DIV/0!のエラーを非表示にする

#DIV/0!の除算エラーを非表示にする

=IF(ISERROR(C4/B4),"",C4/B4)

・・・詳細は下記参照の事




免責
この記事やプログラムによって生じた事故・損害などは一切保証致しません。ご自身の責任でご使用ください。

子育てブログ「おとう日記」はじめました。
興味ある方、是非ご覧下さい!
おとう日記

コピペプログラマの倉庫を作りました。
サンプルプログラムなど置いておきますのでお立ち寄り下さい。
コピペプログラマ倉庫


良ければ↓投票お願いします↓ m(._.)m ペコッ
人気ブログランキングへ