クラウドインフラ構築記

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

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は新しい技術なので、書籍等の情報が少ないのが難点。

 

2013年3月3日
から hiruta
htc J buttterflyに昨日機種変更しました。 はコメントを受け付けていません

htc J buttterflyに昨日機種変更しました。

昨日docomo Galaxy S IIからau HTC J butterflyに変更しました。151に電話を掛けて、NMP受付番号を取得してから、店頭で新規契約手続きを行って、40分ほどで開通作業が終わりました。(元の端末が使用できなくなったのが、開通作業開始からおおよそ40分ほどでしたので)

P1000310ファーストインプレッションとしては、5インチなので、画面広い。4コアのCPU搭載なので、アプリケーションもさくさく、4G LTEなので、アプリケーションダウンロードも速いです。LTEのアンテナ表示が1本から2本ですが、ダウンリンク10Mは出ています。は本体メモリは16GB(現在4GBまで使用)。

Android→Androidでしたので、電話帳データもSDカードでのエクスポート、インポートですんなり終了。

アプリについて

キャリアメールアプリ・・・容量ばかりでかい使い勝手が良くないspメールアプリよりはるかに良い

GMailアプリ・・・docomo版GMailアプリでは設定できなかった外部ストアでダウンロードした曲の設定が行えます。

auスマートパスを契約しておくと、ウィルスバスターなどのアプリも使用できて、価格も、月額¥390。

docomo使用時にはfacebookのタイムライン更新の通信が時々止まってしまう現象がありましたが、本機種では止まってしまうこともなく、スムーズに情報更新ができています。これは、通信品質がdocomoより良いてことでしょうか。

P1000309

LINEアプリについては、GooglePlayからダウンロードしてしまうとauスマートパス確認と本人確認でエラーになります。au Marketからダウンロードをする必要があります。その後、GooglePlayからのアプリ更新については問題はないです。

Edyを買い物等で使用すると、auポイントも自動的に貯まります。auかんたん決済で、Edyオートチャージもできるようだが、細かな条件があるようです。加入四ヶ月以上の条件にひっかかって、現在はオートチャージは試せません。詳しい条件等は下記まで。

http://www.rakuten-edy.co.jp/howto/charge/au/index.html

2013年2月28日
から hiruta
複数の動画を切り替えて再生するには はコメントを受け付けていません

複数の動画を切り替えて再生するには

JavaFXで複数の動画を切り替えて再生するには、MediaPlayer.setOnEndOfMediaが動画の最後にいると認識できるので、複数の動画を切り替えて再生できます。

MediaPlayer.setAutoPlay(true)をしてしまうと、フォアグラウンドで再生すると他にバックグラウンドでも別の動画を再生しているのか、バックグラウンドの動画の音声も再生します。


private MediaPlayer createPlayer(String aMediaSrc) {
 final MediaPlayer player = new MediaPlayer(new Media(aMediaSrc));
 // player.setAutoPlay(true);
 // player.setCycleCount( MediaPlayer.INDEFINITE ); // 繰り返し再生
 player.setOnError(new Runnable() {
 public void run() {
 System.out.println("Media error occurred: " + player.getError());
 }
 });
 return player;
 }
 public MediaView createMediaView(List<MediaPlayer> players){
 final MediaView mediaView = new MediaView();
 // play each audio file in turn.
 for (int i = 0; i < players.size(); i++) {
 final MediaPlayer player = players.get(i);
 final MediaPlayer nextPlayer = players.get((i + 1) % players.size());
 player.setOnEndOfMedia(new Runnable() {
 public void run() {
 mediaView.getMediaPlayer().stop();
 mediaView.setMediaPlayer(nextPlayer);
 nextPlayer.play();
 }
 });
 }
 mediaView.setMediaPlayer(players.get(0));
 mediaView.getMediaPlayer().play();
 return mediaView;
 }

2013年2月25日
から hiruta
日本語のファイルをjavaで扱うと…. はコメントを受け付けていません

日本語のファイルをjavaで扱うと….

日本語のファイルをjavaアプリケーションで扱うとinvalid filenameと怒られます。

URLEncoder.encodeでURLエンコードを行わないといけない。ただし、URLEncoderだと、スペースを「+」にしてしまうので、以下のようにしないとファイルが見つからないと怒られる。


String url = java.net.URLEncoder.encode(japanese_file, "UTF-8").replace("+", "%20");

mediaPlayer = new MediaPlayer(new Media("file:/"+url));

2013年2月24日
から hiruta
S2JDBCのjoin はコメントを受け付けていません

S2JDBCのjoin

S2JDBCで@ManyToOne、@OneToOneなどを利用して、joinの実装中。

http://d.hatena.ne.jp/tatsuparu/20080514/1210760643

http://d.hatena.ne.jp/aki193/20090403/1238736493

2013年2月24日
から hiruta
JavaFXの画面の再読み込み はコメントを受け付けていません

JavaFXの画面の再読み込み

FXMLファイルからAnthorPaneを作成して、


AnchorPane root = FXMLLoader.load(getClass().getResource("/layout1_1366x768.fxml"));
 return root;

その後、背景等設定してしまうと、内部コンポーネント(FlowPane)が表示されない。MeidaViewで動画の音声は再生されているので、配置順がおかしくなっているのではと推測。


root = FXMLLoader.load(getClass().getResource("/layout1_1366x768.fxml"));

root.setStyle("-fx-background-image:url('"background.jpg"'); " +
"-fx-background-repeat: stretch ;" +
"-fx-background-position: center center; " +
"-fx-background-size:cover ; ");

FXMLLoader.loadは2度目以降できないようだ。

2013年2月24日
から hiruta
どのIPでもスレーブサーバーを利用したい場合には はコメントを受け付けていません

どのIPでもスレーブサーバーを利用したい場合には

スレーブサーバー側のグローバルIPアドレスが動的な場合、レプリケーションを許可する設定ですべてのIPを許可しないと接続できない。

<pre> GRANT REPLICATION SLAVE ON *.* TO repls@'%' IDENTIFIED BY 'password';</pre>

本来なら、IPアドレスなり制限することが望ましいが、スレーブサーバー側のグローバルIPが動的な場合は上記のようにします。

 

2013年2月19日
から hiruta
DropboxChooserが返すサムネイルの挙動 はコメントを受け付けていません

DropboxChooserが返すサムネイルの挙動

WEBアプリからdropboxをアクセスできるFileChooserにDropboxChooserという便利なものが公開されている。

dropbox_chooser

以下コードはDropboxChooserで選択されたファイルのURL等を返してくれるjavascriptです。

files[0].thumbnails[“64×64”]で静止画だけでなく、動画のサムネイルを動的を生成して返してくれるのだが、どうやら一時的に作成するだけでしばらくたつと(1日?)アクセスできなくなる模様。


function dropboxOpen(program_id, layout_position_id){
 var options = {
 linkType: "direct",
 success: function(files){
 link =files[0].link;
 thumbnails = files[0].thumbnails["64x64"];
$("#preview").html('<img src='+thumbnails+'>');
 $.post(
 'put_contents.php',
 { "program_id": program_id, "layout_position_id": layout_position_id, "media_file": files[0].link, "dropbox_realpath": files[0].name, "thumbnails": thumbnails },
 function(data){

$.post(
 'get_contents.php',
 { "program_id": program_id,"layout_position_id": layout_position_id },
 function(data){
 $('#reg-list'+layout_position_id).html(data);
 }, false);

}, false);
 },
 cancel: function(){

 }
 };
 Dropbox.choose(options);
 }

2013年2月17日
から hiruta
Developers Summit 2013(デミサミ2013) はコメントを受け付けていません

Developers Summit 2013(デミサミ2013)

15日デミサミ2013に行ってきました。

15-B-1 Amazon のDevOpsを支えるAWSクラウド

クラウドだと効率良いインフラの利用が可能。アイドルリソースが削減される。

専用サーバーだと想定される利用率から構築するので、無駄なリソースが半分以上になる。Amazon.co.jpの例だと、76%が無駄なリソースで、クラウド化により、使う分だけサーバーリソースを使う(従量課金)ようにして無駄なリソースを減らせたことも言っていました。

花王の例だと、AWSに移行することで80%のコスト減が図られた。

IMdB http://www.imdb.com/

S3を利用して膨大なトラフィックをさばけるようになった。

データセンターの分散もAWSにより可能。(BCP対策)

クラウドを利用することで、サーバー調達も楽になります。

15-B-2 iOS/Android向け開発をビジュアルに!C++Builder/Delphiでネイティブアプリ開発

最小限のコードでマルチデバイス対応のアプリが作れる。

RAD Studioでスマホアプリ開発 http://www.embarcadero.com/jp/delsma

最小限のコードでアプリが作れるなど効率的な開発が行えます。

Windows on AWS 体験ハンズオン

Windows2012 Server日本語版はCommunity AMIsから探す必要がある。

AWSのWindowsServerではAdministratorのパスワードをKeyPair情報から取得する必要がある。Chromeとかは秘密鍵のファイル(*.pem)を選択できるが、IEだと*.pemの内容をコピーして所定のところに貼り付ける必要がある。

AWSのSecurityGroupはポリシーを設定したものを作った方がよい。defaultはすべてのパケットを通してしまうため。

AWSのWindowsServerライセンスはAWS使用料に含まれている。

20130217_162948


15-A-6 増加するセキュリティ脆弱性の解決策

セキュリティを念頭に置いたコーディングが必要。

セキュリティインシデント、セキュリティコーディングガイド、ペネトレーションテストが重要なことを話していた。講演内容からいくと時間が短かった印象。

15-C-7  アドテク・ターゲティング技術

ビックデータの分析方法の講演

15-C-8 セキュリティ要求仕様モデルプランで日本は変わるか?

セキュリティ要件仕様モデルプランを強く捺していました。 https://www.lasdec.or.jp/cms/12,28369,84.html

スマホアプリなどには対象外ということ

セキュリティ保証期間の重要性。セキュリティ保証期間内は追加必要なしでプログラム修正に対応する。

セキュリティ保証期間は、5年を推奨。マイクロソフトのライフサイクルポリシーのイメージ。