クラウドインフラ構築記

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

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年を推奨。マイクロソフトのライフサイクルポリシーのイメージ。

2013年2月9日
から hiruta
ESXi4.0でUSBメモリ等を接続 はコメントを受け付けていません

ESXi4.0でUSBメモリ等を接続

ESXi4.0内のゲストOSでUSBメモリ等にアクセスするには、仮想マシンのプロパティでUSBコントローラとUSBデバイスを追加する必要があります。

esxi_usb

/var/log/messageでusbメモリ等が接続されたことが確認できます。/dev/sdb等のマウントポイントなども確認が行えます。


Feb 11 21:43:55 Aquila kernel: sd 4:0:0:0: [sdb] Write Protect is off
Feb 11 21:43:55 Aquila kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
Feb 11 21:43:55 Aquila kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
Feb 11 21:43:55 Aquila kernel: sdb: unknown partition table
Feb 11 21:43:55 Aquila kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
Feb 11 21:43:55 Aquila kernel: sd 4:0:0:0: [sdb] Attached SCSI removable disk

ddコマンドでパーティションイメージをUSBフラッシュに書き込むことができます。

# <strong>dd if=hpahcisr-1.2.6-11.rhel6u0.x86_64.dd of=/dev/sdb</strong>

2013年2月8日
から hiruta
お名前.comからさくらインターネットにドメイン管理を移管しました。 はコメントを受け付けていません

お名前.comからさくらインターネットにドメイン管理を移管しました。

先日の日曜日ごろにお名前.comからVPSの契約がある「さくらインターネット」にドメイン管理を移管しました。

ドメイン移管自体は、1日も掛からず、終了しましたら、ゾーンの設定で多少手こずりました。

まず、さくらインターネット管理のネームサーバーとさくらネット管理外のネームサーバーが混在しているとドメイン設定が行えない制限で、なかなかドメイン設定が行えませんでした。

おそらく下記のDNSの脆弱性の対応があったことで、上記制限を設けたのであろう。

http://blog.tokumaru.org/2012/06/sakura-dns-subdomain-hijacking.html

いろいろ試行錯誤の結果、一度、「ns1.dns.ne.jp」「ns2.dns.ne.jp」にネームサーバーを設定して、2時間ほど待つとドメイン設定が行えるようになりました。

その後、自前DNSとさくらインターネット管理のDNSに設定して、ゾーン設定を終わらせました。

セカンダリへのゾーン転送の確認は、syslogメッセージで確認することができます。diedとかなっているとゾーン転送が拒否しているので、allow-transferでセカンダリDNSを追加して、bindを再起動する必要があります。


Feb 8 22:14:41 ns named[31237]: client 210.224.172.13#57561: transfer of 'totalsolution.biz/IN': AXFR started
Feb 8 22:14:41 ns named[31237]: client 210.224.172.13#57561: transfer of 'totalsolution.biz/IN': AXFR ended

あとは、お名前.comのID解除(※解除には郵送による手続きが要)でGMOの契約は完全になくすことができます。

2013年2月2日
から hiruta
twitterにサイバー攻撃で、25万もの個人情報が抜き取られた可能性が。 はコメントを受け付けていません

twitterにサイバー攻撃で、25万もの個人情報が抜き取られた可能性が。

twitterにサイバー攻撃で、25万もの個人情報が抜き取られた可能性があります。念のため、パスワードは変えておいたほうがいいと思います。

http://matome.naver.jp/odai/2135978142894379501

1.最新のOS(Windows7以上)を利用する

2.アプリケーションも最新状態にする。

未だに、IE6とか利用しているのは、セキュリティのことを軽くしか考えていないと思う。

3.無料のウィルスソフト(Microsoft essential)は気休め程度しかならない。