ベンチャー企業 CIO: 池谷 義則ブログ&経営、ビジネス、プログラミング技術や便利なオープンソースの紹介 -18ページ目

ベンチャー企業 CIO: 池谷 義則ブログ&経営、ビジネス、プログラミング技術や便利なオープンソースの紹介

SKYAVY, INC. CIOの池谷義則のブログ & ベンチャー企業 & 経営、ビジネス、プログラミング技術や便利なオープンソースの紹介

ここ数ヶ月、完全に自分がプログラマー化していることに驚いています。

だもんで、最近の記事も、何気ない、またしょぉ~もないプログラミングの記事なのです・・・

確かに、大学時代はコンピューターサイエンスを専攻して、プログラミングの知識は多少ありましたが、好んで受講していたクラスは、ビジネスロジックを養うクラスばかりだったので、実践的なプログラミングのクラスは、他の「プログラマーになりたい」友人たちと比べると、取っていなかった。

ただ、驚きなのが、実は案外プログラムができてしまう、、、ということ。

ま、、自分に仕事として「使い物になる」プログラミングの実力があったことに驚くと共に、うれしい気持ちもありますが、やっぱり専門はシステム、IT全般の知識を生かして、どうビジネスに活かすか、繋げるかを考える「ビジネスロジック」なわけで、、、

ま、この不景気で、沢山の会社が潰れているなか、日本部隊の李、伊地知中氏の 最高の努力があり、仕事がない、、、というか、忙しい、、、というのは非常にありがたいこと。

プログラマーの人員不足で、私も制作に加わる必要があったのですねww

嬉し、恥ずか、プログラマー生活

ま、やっぱりなにを言っても、仕事は楽しいです。
というわけで、私の仕事場の机の上の写真です。
こんな真冬に、扇風機が置いてあるのは別に片付けるのが面倒とかではないですよ。

今、LAは26度ですんで・・・

暑い・・・

オフィスの机
メーラーをPHPで作成するとき、よくあるのがワードラップ。

PHPにはよくあるマルチバイト用のメソッド mb_ がなぜかワードラップではないようです。
なので、少々面倒なプログラムを書かなければならない。以下がそのスクリプト

$tmpBody = $vars['body'];
$vars['body'] = "";
$n = 35;
for($i=0; $i<mb_strlen($tmpBody, "UTF-8"); $i+=$n){
$wk = mb_substr($tmpBody, $i, $n, "UTF-8");
$vars['body'] .= "$wk\r\n";
}

これは、私が書いたメーラーからの書き出しなので、少々無駄なものも含まれていますが、適当に変更して利用してくれればと思います。

一応、簡単な解説を・・・

$n には、ワードラップをさせたい文字数を代入。

mb_substr メソッドは、サーバーの内部エンコーディングをUTF-8にしていないと、UTF-8として文字を処理してくれないので、最後のパラメーターに "UTF-8"を入れる。
前回は、Joomla! Jostray : JMobleパッケージをUNIXコマンドでダウンロードしましたが、
[ファイル名]?format=raw

のファイル名を元の正常な名前に変更するのに、ファイル数が多くて、手動でやるのがばかばかしい。。。

なので、Shell Scriptはあまり得意ではないので、PHPで書いてみた。(あくまでも簡単に書いたので、 もっと良い方法があるのは明確ですが・・・)

function doit($dir = "JMobile/") {
echo "<br/><br/><br/><br/><strong>" . $dir . "</strong><br/>";
$files = scandir($dir, 1);
array_pop($files);
array_pop($files);

foreach($files as $file) {
if (is_dir($dir.$file)) {
doit($dir.$file."/");
}
else {
// match file name end with raw
if(preg_match('/raw$/', $file) && !preg_match('/rev=/', $file)) {
$pos = strpos($file, "?");
$newName = substr($file, 0, $pos);
echo $dir.$file . " => " . $dir.$newName . "<br/>";
copy($dir.$file, '1'.$dir.$file);
rename('1'.$dir.$file, '1'.$dir.$newName);
}
// delete files
else {
//echo $dir.$file . "<br/>";
unlink($dir.$file);
}
}
}
}

doit();

このファイルは、test.phpとして以下のように設置。RUNさせました。
|- 1JMobile/
|- JMobile/
|- test.php

このPHPスクリプトを走らせると、欲しいファイルを1JMobileのディレクトリに移動させて、正常なファイル名に名前を変換してくれます。

再帰的にファンクションを走りますので、全てのディレクトリ内のファイルを移動してくれているはず。
現在オープンソースであるJoomla!を日本の携帯でも利用できるようにしようとしているのですが、PDA Plugin を利用して対応可能かを試してみましたが、どうもできない。

PDA Pluginをインストール後、日本の携帯を識別できるように /plugins/system/pdabot.php の
$pdas = array(
'acer', 'alcatel', 'audiovox', 'avantgo', 'blackberry',
'blazer', 'cdm', 'digital paths','elaine', 'epoc',
'ericsson', 'handspring', 'iemobile', 'kyocera', 'lg',
'midp', 'mmp', 'mobile', 'motorola', 'nec',
'nokia', 'o2', 'openwave', 'opera mini', 'operamini',
'opwv', 'palm', 'panasonic', 'pda', 'phone',
'playstation portable','pocket','psp', 'qci', 'sagem',
'sanyo', 'samsung', 'sec', 'sendo', 'sharp',
'smartphone', 'sonyericsson', 'symbian', 'telit', 'tsm',
'up-browser', 'up.browser', 'up.link', 'vodafone', 'wap',
'windows ce', 'xiino'
);


'docomo', 'j-phone', 'kddi',
'softbank'

を付け加えました。

で、日本の携帯を識別できるようになったのだが、携帯でログインが出来ない機種がある。。。

と、言うことで非公式ながら、日本の携帯対応を目指して作られているJMobile : Jostrayパッケージを試してみようと思い立ち、パッケージのダウンロード先を探すことにした。

が、ここでも問題が・・・

ソースファイルは http://svn.joomla.jp/trac/jostray/browser/trunk/JMobile から配布されているが、SVNでアクセスしても、全く繋がらないし、ページ上にあるZIP化するためのリンクも、エラーになる。。。

なので、UNIX系のコマンドを利用して、サイト上のファイルを全てダウンロードすることにした。
# wget -r -X --exclude-directories=http://svn.joomla.jp/trac/jostray/browser/trunk/Jeteor,http://svn.joomla.jp/trac/jostray/wiki,http://svn.joomla.jp/trac/jostray/report http://svn.joomla.jp/trac/jostray/browser/trunk/JMobile

これで、このサイトの全てのファイルをダウンロードすることができる。

もちろん、 無駄なファイルまでダウンロードされてしまうし、時間もかかるが、、全て自動!!

ただ、気をつけなければいけないのが、.phpやその他のプログラムファイル。
ダウンロードされるプログラムファイルはダウンロード後に中身を見れば直ぐにわかるが、使い物にならないので、削除しよう。
その代わりに、
[ファイル名]?format=raw

のファイルをファイル名を変更して使う。

早速このパッケージを試してみよう
本日から、徐々にSQL、MySQlについての解説をしていこうと思います!


自分のおさらいの為、さらにそのおさらいが、ちょっとでも皆さんのためになればなぁ~~、とおもっちょります。


基本的には、実践で使用できる用、サンプルコードなどを含めて、解説を書いて行こうと思います。