今後の日本経済について

the four GAFA 四騎士が創り変えた世界 を読みました。かなりショッキングな内容でした。

ジャック・アタリが言っていた「巨大グローバル企業が支配する世界」が、着実に進行していることを感じさせる内容です。今後、世界は、これらの巨大グローバル企業の支配下に置かれるのを免れ得ないのではないかと思います。国家の力はますます減衰していき、代わりにGAFAに代表される巨大グローバル企業が力を持つことになるのではないかと思います。

あ〜あ、という感じですが、これも時代の趨勢なのでしょう。。。我々にできることは何なのでしょうか?わたしを含め、毎日を一生懸命に生きる市井の人々の暮らしはどうなっていくのでしょうか?

何も変わらない?いえ、それはないでしょう。これから、社会は、二極化していくのが必然です。システムを設計する人間とシステムの中に取り込まれ、機械(AI)と協働・共存する人たちです。圧倒的に多いのは、後者の人々です。これらの人々がある程度が経済的に満たされ、幸せに生きていくことができる社会であれば、嬉しいのですが、現実はそうはなりくくいでしょう。

システム化、機械(AI)の活用とはすなわち、自動化です。つまり、より少ない人間で、これまであった仕事を代替していくことに他なりません。雇用が減るのです。また、機械(AI)に組み込まれて行う仕事の付加価値は大きなものではありません。これは所得の減少を意味します。経済的に満たされることが幸福に直結するとは限りませんが、経済的に満たされないことは不幸に直結するのではないでしょうか? 巨大グローバル企業に真っ向から戦うことは、実質的に勝ち目がないので、これは得策ではありません。しかし、ローカル社会ならどうでしょうか?まだ、やれることがある気がしてならないのです。

今後は、ローカル社会のあり方について、考察を深めていきたいと考えています。

JavaFX Media playerのちょっと面白い機能

JavaFX Media playerのちょっと面白い機能

このエントリは JavaFX Advent Calendar の 12/12 担当分です。
あまり目立たない機能ですが、JavaFXのMedia Playerにはちょっと面白い機能があります。
どんなことかというとMediaのplay(再生)する前に、あらかじめタイマーみたないものを仕掛けておくと、タイマーのタイミングでイベントを起こすことができるのです。
と、まあ、これではよく分からないので、具体例をお見せします。
f:id:taizy:20121210221502p:plain

上はPuaseしていますが、実際にはMediaを再生してから2秒後の状態です。
注目して欲しいのは右上のテキストです。Media再生直後は何も表示されていませんでした。
次に3秒後の状態を見てみます。
f:id:taizy:20121210221814p:plain
右上のテキストの表示が変わっているのが分かります。
これはボタンを押してイベントを起こしたのではなくて、予めタイマー(マーカー)を登録した時刻になったため、イベントが起きているのです。
え、別に珍しくない?
いや、まあ、コードを見てみましょう。

Madia media = new Media(
  "http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv");
mediaView.setMediaPlayer(mediaPlayer);

media.getMarkers().put("Starting race",
                        Duration.millis(1959.183673));
media.getMarkers().put("He is begining \nto get ahead",
                        Duration.millis(3395.918367));
media.getMarkers().put("They are turning \nthe corner",
                        Duration.millis(6060.408163));
media.getMarkers().put("The crowds cheer",
                        Duration.millis(9064.489795));
media.getMarkers().put("He makes the \nfinish line",
                        Duration.millis(11546.122448));

上の3行はMediaとMedia Playerの生成です。
下の9行がマーカーをセットしているところです。マーカーにはStringのキーと、Duration=イベントを発生させる時刻をセットします。
こうやってマーカーをセットしておくことで、所定の時刻にイベントを発生させることができます。
次にテキストをセットしている箇所(ハンドラ)を見てみたいと思います。

mediaPlayer.setOnMarker(new EventHandler (){
  public void handle(MediaMarkerEvent event){
    closedCaption.setText(event.getMarker().getKey());
    System.out.println(event.getMarker().getKey() 
      + " duration: " + event.getMarker().getValue());
  }
}); 

マーカーはMediaにセットしますが、ハンドラはMedia Playerにセットします。
ハンドラの中身は特に変わったことはありません。closedCaptionはTextノードで、そこにマーカー登録時にセットしたキー(String)をセットしています。
これで時間の経過とともにテキスト(メッセージ)が変わっていくように見えます。

以上なのですが、一点重要な注意事項があります。
それは「FLV」でしかマーカーイベントが使えないということです。悲しいですがMP4などでは使えません。。。理由はJavaFX Media Playerの中ではAdobeのPlayerを使っているかららしいです。(詳細が分かったらまで記事を載せます)

最後にマーカーの機能とアニメーションを組み合わせたサンプルを作ってみたのでご紹介しておきます。
Media再生中にペイントとテキストを挿入して、それを再生することができるようになっています。以下URLにソースコードがあるので、ご興味があれば動かして遊んでみてください。

https://github.com/taiz/editable_mediaplayer