クラウドインフラ構築記

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

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と連動することもできるようです。

2013年3月17日
から hiruta
Node.js はコメントを受け付けていません

Node.js

 

 

 

 

 

 

 

 

現在多くのホスティングで利用されているApacheでは、双方向かつ頻度な通信には機能不足になりつつある。これを解決してくれるのが、Node.js。

Apache+PHPだと、ファイルアップロードを使うにしても、サーバーリソースの関係上、アップロードサイズを制限せざるをえない。IOの待ち時間も問題。

一方、Node.jsは、非同期にIO処理を行うことができ、多量のリクエストにも最小限のサーバーリソースで構築できるアーキテクチャーになっているようだ。

右に載せてある書籍は、環境構築から、データベース、ファイル書き出しなども詳しく書かれているので、はじめて、Node.jsを行おうとしている人も入りやすいと思われます。

2013年3月14日
から hiruta
JavaFXアプリケーションでマウスカーソル非表示が簡単! はコメントを受け付けていません

JavaFXアプリケーションでマウスカーソル非表示が簡単!

java.awtを使っていた当時だと、マウスカーソルを非表示にするのに、以下のように黒で透明なカーソルを作成する必要がありましたが、

http://tech.tesh.co.jp/?p=45

JavaFX 2ですと、AnchorPane上のカーソルを以下一行で非表示にできるようになりました。


pane.setCursor(Cursor.NONE);

JavaFXだと、TimeLineを利用して、定期的に処理を走らせることも簡単に作れます。

JavaFXのレイアウトもXMLで管理できて、柔軟なインターフェースが設計可能です。

JavaFXは新しい技術なので、書籍等の情報が少ないのが難点。