クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

2013年4月17日
から hiruta
クラウドサービスが続々サービスイン はコメントを受け付けていません

クラウドサービスが続々サービスイン

Amazon、さくらのクラウドだけでなく、マイクロソフト、NTTコムからもクラウドサービスが続々登場している。

Amazonのような仮想マシンを貸し出すサービスだけでなく、アプリケーション実行環境を貸し出すPaaSも最近サービスインした。ベンダーロックインを歌っており、Cloud foundryベースのPaaSでも動作が保証されています。PaaSのメリットとしては、インフラについては、サービス提供業者に任せることが可能で、アプリケーションに専念できるメリットがあります。


CloudnのlaaSはトラフィック課金がないので、月額の上限が決まっているのもよい。さくらのクラウドもそうだが。なお、Amazonの場合は、トラフィック課金があります。

近年の動画配信など大容量のコンテンツを扱うのが当たり前になっていると、専用サーバーでは、拡張性、コスト面で劣っていると思う。とあるソフトバンク系の専用サーバーサービスは帯域保証回線というものがあるが、高価な割に、利用できる帯域が少ない。現状のリッチコンテンツの配信には耐えられないと考えます。

 

 

2013年4月13日
から hiruta
SATA&IDE をUSB2.0に変換するアダプタ はコメントを受け付けていません

SATA&IDE をUSB2.0に変換するアダプタ

シリアルATAをUSB接続HDDと認識できるUSB-CVIDE2の紹介です。型番からわかるように、少し前のIDEのHDDにも対応しています。別途デバイスドライバーが不要なので、接続して直ぐ、パソコンに認識されます。

SZ77R5をSSDに換装 でもディスクコピーにも使用しましたが、一時的にSATA等のHDD、SSDを接続するのに便利なものです。ディスクコピーには必須のアイテムです。

USB接続なので、SATA3.0だとしても、USB2.0の転送速度がボトルネックになって、SATA本来の転送速度はでませんが。

2013年4月11日
から hiruta
Dropbox chooserで複数選択ができるようになっています。 はコメントを受け付けていません

Dropbox chooserで複数選択ができるようになっています。

Dropbox chooserをあるWEBアプリケーションと連携して使用していますが、いつのも間にかファイルの複数選択に対応しています。options に「multiselect : ture」とするだけでOK。

・ファイルのアップロード

・ファイルの複数選択

とここ一ヶ月で使える機能が増えています。機能が少しずつ増えているのは、クラウドのメリット。指定した拡張子しか選択できなくなって、Dropbox Chhoserがモーダルダイアログとなってくれれば、最高なんですが

APIのサポートに投げてみましたが、現状指定した拡張子をフィルタリングすることは不可能との回答を頂いた。

Thanks for writing in. The Dropbox Chooser doesn’t currently have any sort of file type filter like this available, but I’ll be sure to pass this on as feedback.(Dropboxサポートからのメールより)

2013年4月6日
から hiruta
SZ77R5のストレージをSSDに換装 はコメントを受け付けていません

SZ77R5のストレージをSSDに換装

Shuttle PC  「SZ77R5」をIntel SSD 335 Series(240GB)(¥17,000程度)に換装しました。

P1000323

PCのハードディスクスロットに固定するための部品も付属しています。ノートパソコンの場合は、固定部品は不要ですが。

Shuttle SZ77R5には、SATA2.0、SATA3.0それぞれ2ポートずつあるので、 SATA 6Gb/s(=SATA 3.0)に対応しているポートに接続。

1TBのHDDをフルにパーティションを使っていたので、EaseUS Partition Master Home Editionで、240GB以下にパーティションを切り直した。

・EaseUS Partition Master Home Edition (ダウンロードはこちら

その後、EaseUS Disk Copyで、ディスクコピーをしました(240GB)。ディスクコピーするのに1時間30分ほどかかりました。SATAインターフェースをUSBに変換するキットを利用したので、USBの転送速度の分、遅くなったかも。コピー元のディスク容量が大きいと、警告が出ますが、割り当て済のパーティションがコピー先のディスクより小さくしておけば問題ありません。

・EaseUS Disk Copy (ダウンロードはこちら

コピーしたあと、SSDでシステムを起動し、パフォーマンスをチェックしたところ、プライマリハードディスクのスコアが5.9から7.7にあがりました。ちなみに、グラフィックスの数値がやや低いのは、グラボーは使用していないため。

画像4

元のHDDをデータ用として、SSDとともに、PCに接続すると、「オンラインである他のディスクと署名が競合しているために、ディスクはオフラインです。」となり、オンライン状態にならない。MBR情報が残っているためかと思われる。MBR情報を含めて、ハードディスクの初期化を行うことで、無事認識させる(オフライン)にすることができました。

diskpartコマンドでオフラインにすることも可能のようです。記事は以下まで。

http://blog.cis1986.co.jp/?p=174

2013年4月3日
から hiruta
Dropbox Chooserでファイルのアップロードができるようになっていました。 はコメントを受け付けていません

Dropbox Chooserでファイルのアップロードができるようになっていました。

Dropboxと連携させるのに、Dropbox Chooserという便利なものがあります。Dropbox Chooser自体、日々アップデートされているようで、今まで使えなかった機能が使えるようになっていました。

Dropbox ChooserにUpload(アップロード)というものが出来ていました。ローカルの画像とかをDropboxにアップロードさせて、今アップロードしたファイルを選択して、WEBアプリ側に返すこともできるようになっています。

https://www.dropbox.com/developers/chooser

機能が随時進化するのは、従来では考えられない進化。クラウドだからでのメリット。

2013年4月1日
から hiruta
strtotimeの使い方 はコメントを受け付けていません

strtotimeの使い方

strtotime関数を駆使して、開始時間(display_start_time、16:00の感じ)から終了時間(display_end_time)まで30分周期で配列にいれていくには、以下のようにすれば可能です。表形式のスケジュールを自作する場合、使えると思います。strtotimeは何日前の日にちとかも返すことができて、重宝します。


timestamp = strtotime($row['display_start_time']);

while ($timestamp < strtotime($row['display_end_time'])){

 $time = date('H:i',$timestamp);
 $data[date("m/d", strtotime(0-intval($yobi)." day"))][$time]['program_id']= $row['program_name'];
 $data[date("m/d", strtotime(1-intval($yobi)." day"))][$time]['program_id']= $row['program_name'];
 $data[date("m/d", strtotime(2-intval($yobi)." day"))][$time]['program_id']= $row['program_name'];
 $data[date("m/d", strtotime(3-intval($yobi)." day"))][$time]['program_id']= $row['program_name'];
 $data[date("m/d", strtotime(4-intval($yobi)." day"))][$time]['program_id']= $row['program_name'];
 $data[date("m/d", strtotime(5-intval($yobi)." day"))][$time]['program_id']= $row['program_name'];
 $data[date("m/d", strtotime(6-intval($yobi)." day"))][$time]['program_id']= $row['program_name'];
 $timestamp = strtotime("+30 minutes", $timestamp);
 }

2013年3月28日
から hiruta
Timestampに0000-00-00があると例外が発生します。 はコメントを受け付けていません

Timestampに0000-00-00があると例外が発生します。

Seasar2とS2JDBCを利用してJavaアプリケーションを開発していると、データベースのTimestampに’0000-00-00’があると、SQLExceptionが発生し、データベースからの情報取得等に失敗します。日付情報をNULLにしておく場合、問題になります。データベースは、MySQL 5.1を使用。


Cannot convert value "0000-00-00 00:00:00" to TIMESTAMP value "0000-00-00" cannot be represented as java.sql date"

データベースの初期値(DEFAULT)に0000-01-01を設定しておくと、例外が発生しなくなります。

http://blog.r-unit.co.jp/archives/730 によると、JDBCのURLにパラメータを付与するのがよさそう。

2013年3月27日
から hiruta
コードサイニング証明書 はコメントを受け付けていません

コードサイニング証明書

Java Web StartでJavaFXアプリケーションの配信をする場合、jarファイルにコード署名をする必要があります。

まず、キーストアを作成します。

keytool -genkey -alias myAlias-keystore myKeyStore

作成したキーストアで、コード署名を行います。コードサイニング証明書をここ などから、発行して使うようになりますが、いわゆるオレオレ証明書でも十分可能かと。オレオレ証明書だと初回起動時に証明書を常時受け入れる旨のチェックをいれておく必要があります。

画像2


jarsigner -keystore myKeyStore -signedJar SignXXXXX.jar XXXXX.jar myAlias

Java Web Startはアプリのjarファイルが更新されると、起動時にダウンロードされ、最新のバージョンを使用することが可能です。Java Web Startは、Java7でも問題なく動きます。

2013年3月21日
から hiruta
イレギュラーの比率の画像を配置する際についてです。 はコメントを受け付けていません

イレギュラーの比率の画像を配置する際についてです。

javafx.scene.image.ImageViewをjavafx.scene.layout.FlowPaneに配置する場合、イレギュラーの比率の画像をはめ込む場合、縦横比率を維持しながら、自動スケールするには、「setPreserveRatio」をtrueにするだけでOK。

// イメージの表示サイズを指定する
 imageView1.setFitWidth(600* getRate()[0]);
imageView1.setFitHeight(845* getRate()[1]);

// イメージの縦横比を保持したままスケールさせる
 imageView1.setPreserveRatio(true);

PHPのWEBアプリの場合、画像比率をスケールするだけで、10行位は必要だけど、java fxの場合は、一行でOK。開発効率も断然JavaFXの方が上。

2013年3月19日
から hiruta
振り分けを行えるmaildrop導入メモ はコメントを受け付けていません

振り分けを行えるmaildrop導入メモ

qmailの環境でメールフィルタを行うmaildropを導入してみました。

rpmパッケージを作成するところから


wget https://sourceforge.net/projects/courier/files/maildrop/2.6.0/maildrop-2.6.0.tar.bz2/download

rpmbuild -ta --clean maildrop-2.6.0.tar.bz2

フィルタファイルの作成は以下の通り。


SHELL="/bin/bash"
import EXT
import HOST
DELIVER="|/home/vpopmail/bin/vdelivermail '' delete"
VHOME=`/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`
logfile "/home/vpopmail/.maildrop.log" # ログを記録用
# SpamAssassinによるスパムチェック
# ※fetchmail取り込みメールのスパム検査未実施対処
if (!/^X-Spam-/:h)
{
exception {
xfilter "/usr/bin/spamc"
}
}

#SPAM filtering
if ( /^X-Spam-Flag: YES/:h )
{
 to "$VHOME/Maildir/.spam/"
}
# その他のメールは通常どおりに配送

to "$DELIVER"

.qmail-defaultに以下のように設定すれば、vpopmailでバーチャルドメインを管理している場合、ドメイン一括でスパムフィルタを掛けることができます。maildroprcのファイルパーミッションを600にしておかないと、いけないようです。


| maildrop /home/vpopmail/etc/maildroprc

Clamassassinを利用して、clamav antivirusと連動することもできるようです。