ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Rで因子分析、コレスポンデンス分析とか

2014-11-28 17:13:12 | AI・BigData
自分へのメモ、やり方のみ

##############################################
#
#因子分析は、psychパッケージのfactanal
#
##############################################
install.packages("psych",dependencies=TRUE)
library(psych)

#今回データはbfiを使う
summary(bfi)
describe(bfi)
mydata<-na.omit(bfi)

#スクリープロットを作図
VSS.scree(mydata)

#因子分析
factanal(mydata,6,rotation="promax")

#相関を使って求める
mycor<-cor(mydata)
factanal(covmat=mycor,factors=6,rotation="promax")

##############################################
#
#コレポンは、MASSパッケージのcorresp
#
##############################################
library(MASS)
myc<-corresp(mydata,nf=3)

#1軸、2軸の表示
biploat(myc)


##############################################
#
#おまけ。回帰。式だけ。出てくる値に意味なさそう
#
##############################################
lm(education~.,data=mydata)

<HR>

■参考サイト

http://mizumot.com/handbook/?page_id=545
http://www.slideshare.net/mitsuoshimohata/ss-24419059
http://www1.doshisha.ac.jp/~mjin/R/26/26.html


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

量子アニーリングのD-Waveを超えたレーザーネットワークを用いたコヒーレントコンピューター…

2014-11-28 10:29:15 | Weblog
昨日(11/27)、NII市民講座で

社会を変える夢をのせた量子コンピューター
レーザーネットワークでスパコンの限界を突破する

講師 宇都宮 聖子(しょうこ)先生

の話を、一応聴いてきた。

どうも、

D-Waveは量子アニーリングという方式を使って、計算しているんだけど、
先生の研究しているのは、(量子シミュレーション?)

レーザーネットワークを用いたコヒーレントコンピューター

だそうな・・・はい、わかってません(^^;)

ということで、分かってない人が、ぼやーとして書いたメモメモです。




自己紹介
・学生の頃から:連携大学院
 9月末で山本先生が移った→ひきついでいる
 大学院生中心。東京大学、スタンフォード大
 テーマ:量子シミュレーション→レーザーネットワークを用いたコヒーレントコンピューター

量子科学100年のあゆみ
・新しい研究分野
・レーザー1964年ノーベル賞
・2012年 量子情報科学
→さまざまな分野、パラダイムシフト

ムーアの法則
・半導体の集積密度

ムーアの法則の終焉?
・トランジスタを小さくすると、発熱、配線、費用対効果でむずかしくなる
・22nm 原子200個

R.Feynman
・量子コンピューターを着眼 ファインマン
・量子系そのものを持ってきたほうが、計算しやすい?

量子コンピューターの歴史
・どいちぇ 量子パラレリズム 基礎概念
・ピーター しゅあー:しゅあーのアルゴリズム
・ぐろーばー データ検索のアルゴリズム
・2つの量子ビット操作に成功
・7量子ビット(因数分解)
・2001年以降:量子系の操作が難しい→ふえなかった
・2013年 D-Wave 量子ビット512→量子アニーリング
    Google NASA

量子ビットとは
・0と1という状態をマッピング→スピン上向き0、下向き1
・重ねあわせ状態が作れる→測定すると、どちらかに決まる(収縮)
 →エネルギーじゅんいとか


重ね合わせ:集まると威力
 行列かけると、重ね合わせられる
 測定すると
 組み合わせ2のN乗:いっぺんに計算
 →最終状態は、確率的に1通りの答え

組み合わせ最適化問題
 ナップザック問題

パラレリズムの威力
・折り紙:25回重ねると、富士山の高さ

なぜ難しい:壊れやすいから
 多粒子干渉計
→エラー訂正
 しょあのアルゴリズム:エラー訂正コード

どのくらいの量子ビットが必要
・量子ビット1個に2万の予備が必要
(めもできなかった。大変な数字)
・6日間かかる

量子コンピューター:難しい問題、検索
  →厳密にすべての量子ビット操作

量子シミュレーター:新材料
  →解きたい問題に似た物理系
  操作がシンプル

ビッグデータ
・組み合わせ最適化問題
  NP困難、NP完全
  計算が難しい
  ソーシャルネットワーク
 時々刻々と変化

コグニティブコンピューティング
 Deep Learning:どうして上手くいくか?
 シナプス
 ヒューリスティック
   焼きなまし法、遺伝的アルゴリズム

焼きなまし法→量子アニーリング

量子ビットをワイヤー接続
・キメラグラフ:

量子アニーリング

・線形重ねあわせ状態 初期ハミルトン状態
 解きたい答え→最終的ハミルトニアン
 ゆっくり近づける
 量子アニーリングと量子計算機の能力同じ

イジングモデルを解いている
Jijが与えられたとき
  jij=+1ならお互い反対の場合は安定

コヒーレント・イジングマシン
・イジングスピン:
  結合する振り子
  逆位相 
 →ポンピング

・メトロノームの同期現象
  台をゆらゆらさせる
  5分:基底状態になる

・レーザーの発信位相:連結
 レーザー:最も安定なところで発振

相互注入により変わる発振位相
  0、φ層で結合

・準安定状態にトラップされてしまう
 焼きなましは:熱
 量子アニーリング:量子力学的トンネルを利用する
 コヒーレント:ロスとゲインがつりあったところで発振:ゲインをあげていく

4サイト、一度も失敗しないで見つけた

展望
・10の5乗

現在
・室温で動作する




<<ロリポおじさんレベルで、ぼや~としたイメージでまとめてみる>>

どうも、計算したいものにあわせて、「物理モデル」というのを
作るらしい。
このモデルに、レーザーを当てると、メトロノームの同期現象のように
みんな波長が揃って、ある波長で発信するらしい。
それが、答えになるようだ。

局所解にならないように、
  焼きなまし法の場合、温度をあげる
  量子アニーリングは量子トンネル
を利用するのに対し、先生の方法は、発振を検知するゲインを挙げていけばみつかる方式
らしい。

会場は、すごいいっぱいで(いつもの市民講座より多い気がする)、
いろんな勉強会に良く出てくる長い髪のサングラスの黒っぽい服きてるかた
(名前よくわかっていない)も来てて、最後先生に質問していた。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Cassanraの日本の状況(SI案件含め)を聞き、FLMがCassandra教えてる情報提供してきた!

2014-11-27 14:56:37 | JavaとWeb
Cassandra MeetUp Tokyo Fall 2014

米国における最新事情のCassandra
・急速に普及→IoT
・業務で使ってる人→数人
・Cassandra:2つの論文
  Amazon Dynamo
  Google BigTable:HBaseにも似ているところ
 Dynamo:ノード お互いに知り合う
 データモデル:RDBMSとNoSQLの中間
・マスタースレーブの考え方は、単一障害点がある
 Cassandraは、ノードは等価なので、問題ない
  →成り代わって処理
  緑:Cassandra
  青:アプリケーション
  赤:ユーザー
 リニアにスケールする
 ダウンタイムなしにスケールできる
・インターフェース:CQL
 SQLに似てるけど

デモ:
 Go言語で書いた

・ユースケース
 OOYALA:ビデオ配信サービス HadoopからSparkへ
 eBay:レイテンシーが低い
 Dyn:DNS
 coursera:オンライン学習・進捗とか
 Netflix:動画サービス・どこまでを見たか?
 Safeway:スーパー・レコメンデーション
 CERN:物理研究
 Comcast:動画配信、SoundCloudも
 ブルーマウンテン:証券取引
 NYタイムス:キャッシュとして
 HEILO:配車最適化
 GoDaddy,Rackspace:分析
 Datadoc:監視システム
 マイクロソフト:Azureの裏でメトリックス情報
 ウェザーチャンネル:CMS
 NASA:仮想環境・セキュリティ
 GitHub、OnLive:分析

 名前がいえない会社:7万5千台

■Yahoo JapanにおけるApache Cassandraへの取り組み
・Ingress

・KVSチームの紹介
 ほとんどCassandraチーム
 開発3人、運用は数人いるが、実際1名
 YAHOO30のサービスが利用
 →最近チェックした商品

・なぜ、Cassandra
 汎用的に使えるNoSQL→特定目的では合った。運用コスト高い

・いくつかのNoSQL比較
  高いパフォーマンス、
  優れたスケーラビリティ
  SPOFが存在しない

提供形態
 HTTP
 サービス共用
 サービス専用
・HTTPインターフェース
 WebAPIでHTTP経由で
 CQLの機能が不十分。Thriftは実装コストが高い
 課題:機能追加、パフォーマンスの低下
 Cassandra使いやすくなった:CQL3

運用中の環境
 ・1.2系と2.0系
 ・利用は爆速で拡大中
そろそろSSDも
  コンシステンシーレベルQUORUM

監視
 Nagios
 Grafana

repair&compaction→Cronで提供的に

Heap使用率を
・時間経過とともに上昇し性能劣化
・1.2系以降では安定している
・DiskBusy
新サービス
・コネクション数
・リクエスト数
99パーセンタイルレイテンシ
・GC
・DiskBusy
・使い方
nodetool cleanup 大事
・データ残るだけ?
  →削除したデータが復活する
  ReplicationFactor3
  データノードはずす
  データ移動
  データノード戻す
  本のノードのごみデータそのまま
  削除リクエスト:ごみデータ残り続ける
  またデータノードをはずす
  ごみデータ戻る→削除したデータ復活

 ノード増減時にクリーンアップ

 PHPのドライバをDataStaxで→next year(β版)

・99%タイルレイテンシ:10ミリ秒
  Writeは1桁(基本的には1ミリ秒)
 →ディスクに行っているので遅い

■日本におけるCassandraを使用したSI事例
  ウルシステムズ

RDBのトレンド:Googleトレンド
  MySQL、Oracle:右肩下がり
  NoSQL、クラウド:あがっている

→NoSQLけんとう

ウルシステムズにおけるCassandraの利用について
事例:4年くらい
 JR,三菱電機、博報堂、大手放送局

IoT、M2MにNoSQLが向いている
  従来:読み込みメイン
  今:データ増えてきた
   RDBだとマスタで受ける

某放送局さん
 見ているという信号は出せる→しちょうすうが分かる
 演出、リアルタイム分かる
 国内クラウド:
 ポイント:
 サーバー足せばできるスケールできる
  →シャーディングしないでできる
   約束事さえ守れば
   クラウドに合っている

他のNoSQLとの比較:なぜCassandra
・単一障害点がない(Mongo→もんごえすがスケールしない)
・サービスが止まらない
・スケーラビリティ抜群と言い切れる
・Apacheのトップレベルプロジェクト→全世界サポート事業継続性
・Javaベース

事例:(北海道にある)フュージョン様(あのフュージョンでない)
・監視システム:止まっては困る
 IoT,M2Mに適用できる

JR東日本:えきぽプラス

SIその他メリット
・運用楽になった→おきまりの呪文をDataStaxがそろえてくれた
・ノードの再起動(ローリングで全体再起動)
・他の会社と違ったシステム提案がかける
  止まらない、負荷分散、
・拡張性
  Solr,Spark
・DSE:サポート

■CaaMS
ソフトバンクモバイル

・データスタックスさんの日本法人もできたことだし、
 しゃべります。

・おおっぴらにつぶやかないでね
(ということで、以下省略)


■おわりに

あさって、Cassandraのディープな話
vnode,メモリ等
→第28回Cassandra勉強会

https://atnd.org/events/59186

 技術側に特化した情報共有の場


■懇親会で
(原沢さんとの会話、原沢さんがA)
Q:Cassandraで、おそくなることな~い?
A:Indexを貼った場合、RDBみたいに「全部なめる!」みたいな検索をした場合

Q(というかコメント):富士通(FLM)で、Hbaseと一緒にCassandra教えているよね
(実践事例に学ぶ!ビッグデータ利活用研修の4日目「2.ビッグデータ分析基盤の理解」の中)
A:ええ(@_@!)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

セキュリティは入口出口対策以外にも、DBも必要。金庫にお金を入れるように・・

2014-11-27 11:41:55 | Weblog
Oracle DBA & Developer Days 2014
の 11/27 Track1(A2-1)

進化する脅威、増加する内部からの情報漏えい
から効果的に守るセキュリティ対策とは

日本オラクル 大澤さん 福田さん

を(会場に行かず)オンラインで今聞いた内容のメモメモ

*途中、話しかけられたので(例えば、Macで画面を切り替えるには?
 Mac全く知らないので、わからなかったら、どうも右上のほうにマウスを
 持っていくと、切り替わったみたい)
 聞き漏らしたところが、いくつかある。





2007年 JSOXからセキュリティをはじめた
 →そのころオラクルにセキュリティ相談は、そうなかったが

最近 増えている

 2001 ワームがた攻撃、ネットワーク型攻撃
   →アンチウィルス

 2005 アプリケーションの脆弱性

 2011年 標的型攻撃・遠隔操作ウィルス
 最近話題  内部犯行

 狙っている情報は変わっていない
 DBに近いところにきている→内部犯行:ネットワークを抜いてくる

CERTレポート
 インシデント数は、外部53%内部24%
  なのに
 損害金額は 外部35% 内部37%
 →内部のほうが損害金額が高い

データの重要度は同じではない
 機密レベルを分けて
   機密ではない
   社内秘
   JSOX対応、PCIDSS,マイナンバー
   プラチナ
 →いまではデータもセキュリティ

会社紹介
 最初の顧客はCIA、プロジェクト名ORACLE
  →最初のバージョンから監査機能
 情報活用=価値が高い=漏洩すると・・・
  →いかに守るか

世界の国家防衛と治安維持を支えるオラクルの確かな技術力
  世界トップ20

セキュリティ対策の現状
 入口・出口対策が中心

もし、7億円があたったら、家にどんなセキュリティ?
  セコム・アルソック
  かぎをかける・・

 でも・・・
  金庫の中に入れません?

 日本
  入口・出口に投資
 →標的型、未対策脆弱性、内部犯行、退職者、なりすまし
 →認証強化

 情報資産にも→暗号化、金庫番も暗号化、鍵、監査ログ
 人事異動の即時変更、認証

データセキュリティを説明

べらいぞんのデータ
 入り口、出口対策の限界
  98%はデータベースから
  84%は盗まれたID,パスワード
  92%は第三者からの指摘

セキュリティのポイント
 情報の暗号化
 アクセス制御
 職務分掌
 ログ収集

 →9つのソリューション

情報の暗号化
  バックアップ、本番データの暗号化(TDE)
  ネットワークの暗号化
  KeyVault
 性能劣化を極小化した暗号化メカニズム
  →1~3%:InterXeon AES-NI(CPUの中で暗号化)
  ORACLEの場合、アプリケーション改修がいらない

 パフォーマンスを劣化させず、セキュリティを強化できる

デモ
・環境:よくあるWEBアプリケーションの構成
  暗号化させた表領域追加
    暗号化オプション:アルゴリズム
  オブジェクトの再編成
    暗号化されてないものから、暗号化される表領域へ
    オンラインで出来る

事例
・ExadataのDBを3週間で暗号化

鍵管理の課題
・PCIDSS:暗号鍵を定期的に
  →KeyVault(きーぼると)

アクセス制御
・作業する人の認証:なりすまし
  →つかいまわされる。SIerが全て知っている
  →操作ミス

アプリケーションユーザーの認証強化
  AccessManagement
 シングルサインオン
 なりすまし

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PowerPointからHTML5やLMS教材(SCORM/TinCan)が作れる話を聞いてきた-マイナンバーによさげ?

2014-11-26 20:06:27 | Weblog
第27回 e-ラーニング・ビジネスセッション
でもうひとつ

ビデオ教材も簡単作成!
TinCanとHTML5対応のオーサリングツールとは?

(株)サムライズ Adobeソフトウェア事業部

を聞いてきたのでメモメモ




サムライズ
 マクロメディアから
 国内外ソフト、サポート事業
  InsightNavi,Webtrendなども

教育
  ・時間経費かかりすぎ
  ・一方的、強制的
  ・受講者には興味を持たせる工夫

ユーザー
  ・コンテンツ作成はパワーポイント

つっこむと・・
  ・オンラインで利用
    →パワポだとねえ・・セキュリティ、
  ・効果計測
  ・受講者の進捗状況
  ・もっと動画コンテンツを活かしたい
 →できることは自分たちで(お金かかるしね!)

Adobe Presenterとは
 ・Microsoft Office PowerPointのアドインツールです
   →オーディオ、ビデオ

オンラインで利用するために変換する
 ・パワーポイントのままでは、利用は難しい
   →安全で簡単にコンテンツをオンラインで利用したい

PowerPointをいろいろな形で活用
 いろんな形に変換
   PDFファイル
   Flash(SWFファイル)
   Adobe Connect
 新バージョンで
   HTML5

単純に変換するだけではない
 再生ボタンや画面レイアウトもテンプレート化

ラーニング教材とテストをつなげる
・テキスト教材に簡単にクイズを追加
  アクション設定
 受講者の学習進捗を知る

・SCORMやTinCan(「てぃんきゃん」と読んでいた)への対応

デモ
  Adobe Presenterタブ
  クイズというのがある
   クイズ作成

・Wordドキュメントなどを簡単に動画にするには
  動画差込はめんどくさくない
 →マニュアル系を動きのあるものにできないか?

 Adobe Presenter Video Express
  ・カメラ
  ・画面キャプチャ

・製品はWindows版のみ、1台に対して1ライセンス、
 59400円(Video Express含む)

・YouTubeにサムライズチャネルを開設




<<所感>>
ここは勝手な妄想。

マイナンバーやセキュリティには社内教育が必要となってくる。

その場合、PowerPointで作った教材を、これでSCORMにできると、
オープンソースのLMS(Moodleなど)や、LMSのSaaS(KnowledgeC@fe in SaaSなど)
においてしまい、あとは、LMSで管理するということが、
できそうですね。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

タレントマネジメントというかLMSというかのtotaraの話を聞いてきた

2014-11-26 16:47:36 | Weblog
Moodleをもとにした、オープンソースのLMSというか、
タレントマネジメントで最近知られてきた
Totaraというのがあるけど、そのTotaraについて

第27回 e-ラーニング・ビジネスセッション
Totara Overview 組織の人材育成に特化したオープンソースLMSのご紹介
講師 (株)ヒューマンサイエンス 営業部 西川みどり氏

を聞いてきたのでメモメモ




Moodle:
 企業から問い合わせは多いが(10倍とか)、
 実績は大学のほうが多い

機能がたりない→Totara(とたら)でカバー

10月から

Totaraについて
 とたら→発音はとーたら:ニュージーランドの木の名前
 知識の枝葉がひろがって

TotaraLMS
 企業向けオープンソースLMS
 Moodleのパートナー
 ヨーロッパで導入実績
 数百人~大手さんでも
 ハイエンドのタレントマネジメントシステムとして

なぜ?
 Moodleは文教向けに設計
 企業ニーズへの対応
  集合研修の申し込み管理(上司の承認)
  役割・役職
  スーパーバイザー、管理者、トレーナー→プレーヤー多
  学習効果の確認、多様なレポート
 企業ニーズまとめ
  1.運用に合った機能が必要
     moodle+Totara
     インテグレーション:ユーザー管理
  2.学習には成果が伴う
     カークパトリックの4段階評価法
  3.企業のオープンソースLMSへの期待
Totaraの利点
  組織に特化した機能の利用
  速やかな導入
  オープンソース
    カスタマイズが可能
    ライセンスFeeが不要
デモ
  Adobe Presenterを使ったコンテンツ
  マイチーム
  マイレポート
  カレンダー

デモサイトのサンプル
  カフェ
  マルチテナント的にもできるかも
  ユーザー:CSV,別のシステムからも登録できる
  コンテンツ
  アサイン
  ユーザーさんが見える画面
  フロアマネージャーが見える画面(評価など)
  店長さん:評価をExcel,PDFで

組織管理機能
  組織とコースの紐付け

費用について
・ライセンスフィーはかからないが
・サポートはサブスクリプションの購入
  新バージョン
  セキュリティパッチ
  サブスクライバポータル

Totara Demo Site(48時間ごとにデータが消える)
https://demo.totaralms.com/

Totara Social
 70/20/10モデルに基づき、
 インフォーマルな学習もサポートするe-ポートフォリオ製品

Q&A(いっぱいあったけど、ぐっときたもの)

対応している機種は?
  →クライアント側はブラウザで
ってことは、IOSでコンテンツFlashはだめってことだね。
  →そういうことになります。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Oracle In-Memoryの内部について SGA→IMCU→CU

2014-11-26 11:48:39 | Weblog
Oracle DBA & Developer Days 2014
の 11/26 Track1(A1-1)を(会場に行かず)オンラインで今聞いた内容のメモメモ

2人の講師の
  1人目は、はじめのほうを聞き逃した
  2人目は、1人目が終わったところで席を離れたので
はじめのほうは、メモとれてない。

(表題のSGA→IMCU→CUは、2人目発表で出てくる)




■ひとりめ(佐藤さん)

分析処理を高速化する新たな技術革新
インメモリ・デュアル・フォーマット

・使い分け
 コヒーレンス、TimesTen:トランザクションを早くする
  →アプリケーションサーバーと同じきょうたい
 In memory:解析を早くする

・ロー型に、カラム型を追加して、分析を早くする
  →どちらを使うかは、データベースが判断する
  →Oracleは両方同時に実現
 ユーザーから見ると、同期されている
 高速化したいデータのみをメモリ上に展開
 インメモリ→分析系のインデックスに変わるものも
  →インデックスを削除する効果



■2人目(丹羽さん)

コアテクセミナー:YouTubeを使った動画セミナー

Oracle Database In Memory(DBIM)の概要
・OLTPとOLAP:トレードオフ
  →12Cはオプティマイザで選択
・カラム型表は、なぜ分析用クエリーが高速か?
  →必要なカラムのみアクセス
   ディクショナリ圧縮
     ディクショナリ・エンコードの2つのセクション
     →圧縮状態で検索可能
   インメモリストレージ索引
     カラム:複数のカラムユニット(IMCU)で管理
   SIMD(「しむでぃー」と読んでました)
     ベクターレジスタ
     ディクショナリ圧縮をCPUレジスタにロード可能

インメモリカラムストアの詳細
・インメモリ領域:SGA内の新しい領域
 INMEMORY_SIZE(最小サイズ100M)
 SGA_TARGETはこの領域が入るように

・インメモリ領域:構成
 2つのサブプール
   IMCUプール:カラム書式データ
   SMUプール:メタデータとトランザクション情報
 →V$IMMEMORY_AREA

・IMCU(In Memory Compression Unit)
 カラム型データをある程度の行数セットで保持
 →カラムユニット(CU)として保存
 →V$IM_HEADER

・カラムユニット
  各カラムの値の管理単位
  全CUは、最小、最大値を持っている
  CUの確認方法

DBIMのインメモリ・スキャン
・データベースの検索処理
  データ処理層:集計、JOIN,ソート
  データスキャン層:取得+フィルタリング(全表検索、さくいん)

全表検索
・TableAccessFull
  ふつうの全表検索
・TableAccessStorageFull:Exadata(スマートスキャン)
  スキャンしながら、フィルタリング
・TableAccesInMemoryFull:インメモリの場合
  カラムストア層で読み込みながらフィルタリング(プッシュダウン)

フィルタリングを効率化するための暗黙条件の成立

DBIMの導入効果が高い処理/高くない処理
・利用効率が大きい処理
  少数列に対する大量行の処理に効果大
    ディスクIOの物理読み込み量が大きい
    SQLの処理:大量行の表を含む分析クエリ
      db file scattered read
      db file sequential read
  大量行の表を含むJOIN,集計でディスクアクセスあり
 バッファキャッシュを用意して、キャッシュに入れたら?
  →全表スキャンVSインメモリスキャンなので、高速化
    →読み込みブロックが少ない
 インメモリ化すると、すべての検索が早くなる? NO

・利用効率が大きくない処理
 ・索引により最適化されている
   並列度を高く出来ない場合
  →オプティマイザが判断する
 ・集計値を持っている場合

DBIMのパフォーマンス統計情報
・CU(カラムユニット)の確認
・インメモリ系の主要統計量
  V$sysstat,V$mystat,v$statnameで確認

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

JavaFX Nightをきいてきた

2014-11-25 21:15:33 | JavaとWeb
11月25日のJavaFX Nightをきいてきた!内容メモメモ



■JavaFXにダイアログがやってくる 蓮沼さん
JavaFX 8 update 40
・これまでダイアログがなかった
入ってくるダイアログ
  Alert
  TextInputDialog
  ChoiceDialog
  スーパークラス:Dialog→拡張で、独自ダイアログも
・Alert Information:ヘッダーテキスト、コンテキストテキスト
・Alert Warning
・Alert Error
・Alert Confirmation:ボタン2とOKと取消
・Alert None:アイコン、ボタンを追加
・TextInputDialog:
・ChoiceDialog:

使い方
・Stageの代わり
・コントローラークラスの中で、イベント処理をやっているとき
 ユーザーに応答を求めるとき
・showAndWait();戻り値オプショナル
・show();戻り値void
・DialogPane野中に、HeaderText,ContentText,Graphic,ButtonTypes
コード
 Alert alert = new Alert(INFORMATION);
 プロパティ設定

 値
 Optional<ButtonType> result = alert.showAndWait();

戻り値
 Alert ButtonType→9種類
 TextInputDialog String
 ChoiceBox 選んだアイテムの型

Tips
(1)alert.setHeaderText(null);

(2)サイズを変えたい
 alert.getDialogPane().setPrefSize(400,0,300,0);

(3)ウィンドウが要らないとき
Stageを開かないでDialog

まとめ
・Dialogとサブクラス
・Stageと同じようだけど、違う
・まずダイアログを作ってshowAndWait
・アドベンとカレンダー8日目
・スライドシェア、21:00にアップ
 www.slideshare.net/btnrouge/javafx-dialogs




JavaFX アドベントカレンダー

■Heapstats loves JavaFX
・HeapStats
 Javaの生涯解析支援&監視ツール
 エージェントの性能
 →置き去りにされたアナライザ
・HeapStatsFXAnalyzer
  Java8(Lambda,StreamAPI)
  プラガブル
  コミニティドリブン
・なぜJavaFX8
 Swingnodeが使いたい
・主な機能
  FXML
  Chart
  Task
  国際化
・構成
 Heapstats1.0相当のアナライザ
 プラグインで機能拡張
・Heapstatsのプラグイン
  FXMLを含むJar形式
 プラグインにはタブが与えられる
 FXMLの含まれるパッケージ名を設定してlibにいれておく
・プラグインがよばれるまで
  クラスローダーの設定
  リソースバンドル指定
  staticでないロード
・プラグインコントローラー
  プラグインは継承する必要アリ
  最小限の機能、インターフェース
・データの受け渡し
  各プラグインのコントローラーに直接アクセス
  →親ウィンドウのコントローラから取得できる

・RefTreePlugin
  Swingnodeで実装、要JGraphX

・JVMLive
  JDPを使って、ネットワーク上のJVMを自動ルックアップ
  JVMのクラッシュ検知機能

・JavaFXで困ったこと
  ダイアログがない 8u40までの命
  複数Chartの合成に対応していない
  Chartのツールチップが重い
  animated=trueなAreaChart→アニメーションやめた
・JavaFXで困っていること
  JavaFXコントロールがブラックアウトする
  FXMLOがSceneBuilderでロードできない
  windowsとLinuxでウィンドウサイズ関連のプロパティの動きが違う
  SwingNodeのDrag and Dropの動きがおかしい

・お願い
 まずはFork
 次にPull Request
 できればプラグイン作成
 いいね!

・あったらいいなプラグイン
 vmstatなど・・




■Bind Me Softly
Property
Bind
UseCase

自己紹介
 Java in the box
 ITPro:JavaFX2で始めるGUI開発

Property
・ぜひ使ってください
・PropertyはJavaBeansのextends
  Base of Bind
 →JavaFX Script
  2からはいってきた
・Property Classes
  BooleanProperty
  IntegerProperty
  LongProperty
  FloatProperty
  DoubleProperty
  ObjectProperty
  StringProperty
  ListProperty
  SetProperty
 実装クラスには、Simpleがつく

IntegerProperty prop
 = new SImpleIntegerProperty(20);

Updateしたときにイベントが挙がる
Immediate
 prob.addListner

Lazy(遅延処理)
 GUIの場合は、遅延のほうがいい
 両方使うと・・・

Code Convention
 クラスのフィールドに使う
 class Foo {
  IntegerProperty bar = new SimpleIntegerProperty();
  GetterとSetterのほかに

  IntegerProperty barProperty(){ return bar; }

  を入れることを忘れない。

Bind
・プロパティ間の自動同期
  y.bind(x) xをかえると、yが変わる:一方通行

・双方向Bind
 .bindBidirectional(s1.valueProperty());
 ネストすると、追えなくなってくる

・ユーティリティクラス
  Bindings
    add,subtract,multiply,divide
    論理演算
・Low Level Bind API
  スライダーから色を作るような場合

UseCase
1.知らないうちに使っている
   ~View

2.Node-Node,Node-Model:ブリッジになるところにbind

3.ルール、バリデーションに使う
  レイアウト(ステージの大きさに部品を合わせる)
   アンカーペイン

4.アニメーション

・Bind楽しいよ!




■LT1:サーバーサイド JavaFX
・JavaFX:デスクトップ→サーバーサイドで使ったら?
・S-tune問題:1セットしかないスピーカー
・サーバーで音楽を流す
・Media Viewでながす
・Https問題
・Jettyをプロキシに
・Sound Cloud
 Sound CloudのJava APIクライアントやんない
 APIかわる、認証

■LT2:いまさら始めるJavaFX
・なんでJavaFX
  らずべりーぱい、検証用アプリ
  案件:JavaFX知らないと提案もできない

・環境構築
  NetBeans IDE かんらん
  Seane Builder2.0 著間的に分かる

・おもっちゃったこと
  レイアウト自由
  ドラッグ&ドロップ簡単
  勝手に伸びちじみ
  なんかちらつく
  もっと3D,SE
  Java8のデータ加工が半端ない


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

IoT,ビッグデータ,CEP,機械学習,SDN等の全体像をまとめてみた(2)-具体的な製品(IoT編)

2014-11-25 14:14:34 | AI・BigData
前にIoT,ビッグデータ,CEP,機械学習,SDN等の全体像をまとめてみた-概要を書いたけど、あれだけでは、抽象的なので、具体的に、どのような製品があって、どう動くのかのイメージがつかめないと思うので、そこを書いてみた。

まず、全体図。


以下、製品を交えた説明。上記「概要」の説明と比較できるように書いてある。
ただ、順番をかえて、まずは、IoTから。




■IoT

○デバイス

センサーは、例えば温度センサーは、温度が上がると抵抗値があがる。ということは、電圧が一定なら電流が変わる。
このように、計測したいもの(温度)の変化によって、抵抗などがかわり、電流、電圧が変わるというしくみでセンサーは動いている(ものが、たぶん多いと思う)。

このセンサーをデバイスのポートに線でつなぐことにより、この電気変化が、電気信号に変えられ、メモリ上のどこかに展開される(どこに展開されるかは、データシートに書いてある)

「デバイスドライバ」
このメモリ上(のどこかのアドレス)に電気信号がOn,Offの形で表現されるので、
それを、Cのポインタ((volatile unsigned short *)でキャストして、データシートに書かれたアドレスを書けば、ON Offをリード/ライトできる)で入出力する。

あ~LinuxでGPIOの場合、/sys/kernel/debug/gpioの下のファイルを見れば分かるだろう・・・
って言われれば、そのとおりだが、今回は、それは反則とする。

OSから(あるイベント発生により)呼ばれたら、上記方法でデバイスの入出力を行う部分のプログラムを記述したプログラムが、デバイスドライバ。
Linuxの場合は、*.koとかの拡張子で決められたように作る。
Windowsの場合は、WindowsPKとか言われるものが、ここにあたる。

「通信部分」
Linuxの場合、上記デバイスドライバはmknodとかすることによりにより、
「/dev/どこかのデバイス」に結び付けられ、Open/Closeして、Read/Writeできるようになる。
そこで、このデータを取得し、データを・・・データウェアハウスに送ると、更新に時間がかかるので、一時的な「データ収集」先に送る。送るプロトコルはいろいろあるが、RESTなら、みんな書けるよね!

つまり、
・一定時間ごとに、
  (crontabに書くか、sleepさせて一定時間ごとに起こして)
・センサーデータを取得し、
・その内容を通信でデータ収集のところに送る
という処理をするプログラムを自分で作成する。このとき、「センサーデータの取得」は、
Linuxだと上記のように/dev/どこかのデバイスをファイルのように扱えるし、Windowsだと、
SDKで扱えるようになる。
 通信部分は、RESTなら、どこかにいろいろ書いてあると思うので省略する。





○データ収集
 センサーデータをいきなりデータウェアハウスに送ろうとしても、
データウェアハウスは更新処理が苦手なので、処理しきれない。
そこで、いったん、センサーデータを保存しておき、
 データウェアハウスには、ある程度たまったところで
(夜間)バッチなどで、ゆっくりと更新するという手をとる。

 そのために、センサーデータをためておくところが必要になる。

Amazonに送る場合、kinesisにデータを一時的に蓄えておく(24時間)ことが
出来るので、kinesisで受けて、バッチでまわす方法がある。

クラウドにすぐに送るのでなく、いったんローカルで処理したい場合は
(後述するCEP処理までをローカルで行いたい場合など)
NoSQLの例えば、DataStaxEnterprise(Cassandraのインメモリ)等に
送ることが考えらる。

 RDBの場合、ジャーナルに書き込む分、遅くなるようであれば、
それは無駄なので、NoSQLのほうがよさそうだが、例えば、MySQL(cluster)の
場合、インメモリを選択し、memcachedと同じアクセス方法を選べば、
それはNoSQLと実質同じことになる。


○CEP

収集されたデータは2種類の利用方法が考えられる。

一つは、異常検知など、即座に送られてきたデータ(数個を利用)して、
 対処したい場合のCEP処理

もう一つは、データをいっぱいためて、過去データと見比べて、いろいろな
 知見を得たい場合、データウェアハウスを使った分析処理

後者は別エントリ(データ解析)として、今回は前者。

このCEP処理としては、StormとSparkが人気なんでしょうか?
くわしくは、ここ

Twitter Storm でビッグ・データをリアルタイムに処理する
http://www.ibm.com/developerworks/jp/opensource/library/os-twitterstorm/

にいろいろ説明がありますね。

StormとSparkの違いについては、

■[Spark]Apache Spark Streaming=大規模準リアルタイムストリーム処理?
http://d.hatena.ne.jp/kimutansk/20130902/1378142510

あ~、似たようなもん?

用は、いくつかのデータ(ウィンドウと呼ばれる)をもとに、
異常かどうか、何かしたほうがいいかどうかを判断して処理する
という感じでしょうか・・・
(このウィンドウを
   全く重ならないようにする・・・ジャンピングウィンドウ
   一部重なるようにする・・オーバーラップウィンドウ
   一つ一つずらす・・・スライディングウィンドウ
 というように、CSPのウィンドウ処理には、いろいろ種類があるようですが)


○機械学習

CEP処理で、異常かどうか「判別する」のように、判別とか
予測をする場合は、あらかじめ過去のデータを使って学習し、
それに基づいて予測・判別します。

これが機械学習なのですが、機械学習には

・過去のデータをもとに学習し、予測モデル(数式みたいなもん)を
 組み立てる

・予測モデルをもとに、センサーデータをあてはめ、判別する

という2つの部分があります。
前者は、Hadoop+Mahoutとか、Rでぐりぐりまわすとか、
いろいろありますが、それは、今回の範囲ではありません
(データ解析)

後者の予測モデルが出来た場合ですが、
CEP処理のひとつとして、予測モデル式にセンサーのデータ
を入れるプログラムを作って、ストリーム処理します。
異常値が出たら、後述の「出力等」への処理を行います。

なお、

Microsoft Azure Machine Learning

のようなものがあるらしいのですが、
使ったことないので、よくわかりません。





○出力等

CEP処理、機械学習の結果、
・異常等があるために、なにかに表示等する
  →スマホに電話がかかってくるなど

・アクチュエーターを操作する
  →モーターを回すなど

のような処理を行います。

これには、
(1)CEP、機械学習側から、アクチュエーターや表示側に通信する
  →これが、上述「出力等」への処理

(2)その通信を受けて、表示、アクチュエーター処理をする
 ということになります。

たとえば、Twilloを使って、異常があったら、
電話をかけてもらうなどというのも、1つの方法です。

ただ、一般的には、出力側に

  ・サーバーをたてて、そこで通信する
  ・Push型通信を行う
  ・双方向通信を行う

が考えられることとなります。
 サーバーを立てる場合、RESTでやるのなら、センサーと逆方向のことを
すればいいだけで簡単なので省略。node.jsなんかでサーバーを書くのでしょうか?

 Push型通信は、エンタープライズでは話し違うけど、
 個人レベルでは、milkcocoaが話題なんですかね・・・
 双方向通信は、WebScoketですね!

今後はWeb Socketが来るんでしょうか・・・?
もっとも、簡単な操作であれば、メールを送ったり、SSHで入ったり、RPC起動したりでも、
すんでしまうのですが・・・




IoT編は、ここまで。
長くなったので、今回はIoT編でおわり。つまり、ここまで。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ミクをWebGLエディター内で3Dで動かすことは簡単だけど、外部に持っていけない・・・

2014-11-25 11:35:39 | Weblog
昨日の

WebGLより簡単に3Dできそうな、jThreeを聞いて来た!
http://blog.goo.ne.jp/xmldtp/e/434161e6e666d371682964e1fb36463e

について、ちょっとくわしく、書いてみたいと思う。

結論から言うと、ミクについては
・http://seesaawiki.jp/j3wiki/の「初音チュートリアル」に
 書いてあることは、簡単に出来る
・しかし、自分のサイトにそれを持ってくることが、相当むずかしい

以下、まず、http://seesaawiki.jp/j3wiki/の「初音チュートリアル」に
書いてあることを説明する。




■初音チュートリアルに書いてあること

1.WebGL Editorを開きます

http://editor.jthree.jp/?id=UdbmUw

に行くと、以下のようになります。


2.ミクを挿入
(1)左下「GOMLタグ」をクリック
(2)スクロールすると「MMDモデル」があるのでクリック
(3)その中の「初音ミク」をクリック
(4)sceneタグ内のどこかをクリック
(5)「挿入」をクリック
そうすると、下の図のように、

最終的に(4)で置いたカーソルのあとにmmdタグが入る


3.プラグイン「MMD」を入れる

(1)左下「プラグイン」タグをクリック
(2)「モデルローダー」があるのでクリック
(3)その中の「MMD」をクリック
(4)エディタ(左上のウィンドウ)HTMLタブにして
(5)「プラグインはここから」~「ここまでの間」のどこかをクリック
(6)「挿入」をクリック
そうすると、下の図のように、

最終的に(5)で置いたカーソルの後に、scriptタグでjthree.MMD.jsが入る

4.ミクを動かす
(1)エディタ(左上)で「Javascript」タブにして
(2)ローディング終わったあと($( "#loading" ).remove();のあと)
  のどこかに「jThree.MMD.play();」と記述する(自動で挿入しない)
(3)「保存」をクリック

そうすると、

というダイアログがでる。
ダイアログをOKして、右側の>をクリックするとはじまる
(ないしは、もう一度保存する)

<<トラブルシューティング>>

1.まだ、まっしろ。ないしは、なにか線がうごいてる
 XPで行っている場合、メモリが足りない場合に起こるらしい。

 解決方法はマシンを変えるしかない

2.真っ黒。こんなかんじ

(1)エディタ「GOML」にして
(2)light のlightColorの値を変えると

すこしはよくなるかな

3.おおきい

マウスの真ん中のぐりぐりするところを動かすと、拡大縮小する

4.で「ぱんちら」させるには
マウスを右ボタンクリック、ぐるぐる回転する。
角度によっては

となる




■それを自分のサイトに持ってくる

で、ここから先、自分のサイトで利用するために、以下のことを行ったが・・・


(1)DLボタンをクリック、ダウンロードして解凍
(2)http://jthree.jpにいき、jthreeのダウンロード
(3)ダウンロードしたものを解凍し、
   scriptとpluginの中のものを全部、見えるところにおく
   →libsとかフォルダつくり、そこにコピー
(4)dataの下、model,motion,imgを見えるところにコピー
(5)index.html,index.gomlで参照しているjs等を、
   (3)、(4)で置いたところに変更する
(6)PMXは入っていないので
   https://bowlroll.net/file/3162
   とかにいって、PMXをとってきて、それを
   model/miku/index.pmxにダウンロード。
   また、すべてのspa,bmpファイルをmikuの下にコピー
(7)読み込み中がないので、たとえば、
   http://www.pixelimage.jp/blog/2012/04/loading_icon.html
   から、適当なgifファイルをコピーし、それをloading.gifという
   名前に変える。
(8)vmdも入っていないので
   https://bowlroll.net/file/23499
   からダウンロードし、解凍。カゲロウデイズ.vmdを、motion/kagerou.vmdに
   ファイル名変更していれる

そうすると、こんなエラー

cameraでエラーになる・・・道は遠い・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

WebGLより簡単に3Dできそうな、jThreeを聞いて来た!

2014-11-24 09:45:13 | Weblog

【jQuery初心者超歓迎!秋のWebGL+API祭り】Microsoft Azure x jThree Class Tokyo #2

ハッシュタグ #j3_class
に行ってきた。その内容をメモメモ
(ごめん、本当にめも。書ききれない部分もあったので、間違っているかも
 詳しい内容は、別エントリで書く予定)




<<午前の部>>

■JThree説明

●はじめに

http://seesaawiki.jp/j3wiki/

を見ながらやっていきます
(内容は、そこに書いてあります)

 GOML
 camera
 light
 scene
 Javascript

を使って作っていきます。
http://seesaawiki.jp/j3wiki/d/%280%29%b2%bc%bd%e0%c8%f7
の下のほうにあるURL

http://editor.jthree.jp/?id=UdbmUw

を使ってやります
(上の方のURLは、立方体が出てくるもの)

●みく

http://editor.jthree.jp/?id=UdbmUw

に行ったら、左下の
1.GOMLタグをクリック
  MMDモデル:
    初音ミク
    sceneタグ内に「挿入」

2.プラグインタグをクリック
  モデルローダー:
    MMDをチェック
  エディタ(左上)HTMLタブにして
    プラグインはここから~ここまでの間に挿入

3.エディタで「Javascript」タブにして
   ローディング終わったあと($( "#loading" ).remove();のあと)
   どこかに  jThree.MMD.play(); をいれて保存
 →ミクが動く

4.物理エンジンをプラグインに入れる
   プラグイン
     モデルローダー
      MMD物理エンジン
  エディタ(左上)HTMLタブにして
    2でいれたMMDより前に「挿入」して「保存」
  →髪の毛も動く

5.「GOMLタグ」
    「ステージ」の「ゲキド街」を選ぶ
     GOML(左上)のscene内に挿入
6.Xfile
  「プラグイン」
    「Xファイル」を選択
    エディタの「HTML」 プラグインはここから~ここまでの間に「挿入」
    保存

7.位置
    GOMLスタイル 
     位置
      positionY
  エディタ
   GOML
    mmdタグのstyleに挿入、保存

・位置は右手で WebGL 右手系

●一般オブジェクト
 下準備
   http://editor.jthree.jp/?id=UdbmUw
 を開いて、保存

・一般オブジェクト→「メッシュ」を挿入
 →保存しても何も起こらないはず
  書くのは何?
  見た目の設定が必要
・書くのは何?:「形状データ:立方体」→headに挿入
    geoタグにid hoge
    mesh のgeo属性#hoge
・見た目の設定:「材質データ つややか」
    mtiタグにid fuga設定
    mesh のmtl属性#fuga
・j3.Trackball();
   camera style lookAtY: 7;を消す

●画像をテクスチャに貼り付け
・「テクスチャ:画像」headの下に挿入→txrが入る
・mtlのparamにmap:txrをいれ color:#foo;を消して保存

●動画を入れる
・「テクスチャ:動画」headの下に挿入→txrが入る
(前に画像のテクスチャが入っていたら、削除する)
・mtlのparamにmap:txrが入っていることを確認
・「ファイルインポート」→HTMLファイルを挿入
   →ここにvideoタグが入っている

●動作をつける
・Javascriptタグにして
  10行目から12行目を消す
・8行目、meshのクリックイベントを取っている
  ここに
    alert(1);
  →あらーとでる

・そこを
  j3(this).animate({positionY:10},1000);

・そこを
  j3(this).animate({positionY:"+=1"},1000);

・回転させるには(1=1rad)
  j3(this).animate({rotateY:"+=1"},1000);


●親子構造
・一般オブジェクト:空オブジェクトで
<mesh id="" geo="#hoge" mtl="#fuga" ></mesh>
<obj id="" >
<mesh id="" geo="#hoge" mtl="#fuga" style="positionX:50"></mesh>
</obj>
・Javascriptで
j3( "mesh" ).click( function() {
j3("obj").animate({rotateY:"+=3.14"},1000);
} );

●地球のように自転&公転
・meshのところ
<mesh id="" geo="#hoge" mtl="#fuga" >
<mesh id="" geo="#hoge" mtl="#fuga" style="positionX:50"> </mesh>
</mesh>
・Javascriptで
j3( "mesh" ).click( function() {
j3("mesh").animate({rotateY:"+=3.14"},1000);
} );

●有志さいと:http://seesaawiki.jp/j3wiki/d/%cd%ad%bb%d6%a5%b5%a5%a4%a5%c8




次のお話

http://goo.gl/VOQmV1
デモページ
  http://goo.gl/3nJFHR
  http://goo.gl/kszJgn

職業
  植物工場のWebAPI化

ドキュメント

http://j3doc.azurewebsites.net/





   <<おひる>>

はこすこ ふじいさん
・50個提供
・フロントエンジニア募集している

プラグイン→その他→はこすこ
 でプラグイン使える





   <<午後の部>>

■Microsoft Azureの話
・インターン生がご紹介

・Azureでできること
  いろいろあるけど、きょうはバーチャルマシンのご紹介

・いいところ
 1.簡単に公開
 2.素材を自由に変えられる
 3.全世界に公開できる

・でも
 http://jthree.cloudapp.net/ms/

 http://jthree.jp/editor.zip
 にアクセス
   作ったファイルをペーストして
 ・・・
 (説明ファイル詳しく見てね!)

 ビルゲイツになった


http://jthree.cloudapp.net/azure.zipに書いてある
そのなかAzure設定手順





■プレゼン

●JThreeXKinnect V2
@masota0517
http://1drv.ms/1AzjAOv

Kinnectにできること

・視野とセンシング範囲
 V1より広がっている

・骨格の情報
  20個のかんせつ→6人同時に

・Kinnect v2 アプリケーション必要
 Azure(ローカルホストでも)
 リアルタイム通信:milkcocoaを使えば

・動作する→Kinnectでとる→jThreeで、初音ミクを躍らせる

・ブログにいろいろ書いてある

●milkcocoa
1.バックエンドのことを考えずにかける
2.とくにリアルタイム通信
  すぐに相手に反応
  RTS
・JavascriptとNode.js対応
・Javascriptだけかければ大丈夫!

●リコー Theta(というカメラ)
・360度ワンショットで使えるカメラ
https://theta360.com/ja/
・SDK出してる
  →ANdroid,ios用
・パソコンにつないで、あとは松田さんのアプリ見てね
・Maker Faire Tokyo 出展中 あしたビッグサイトきてね
・http://jthree.jp/jtube

●エクシング(JOY SOUND)

・言語解析WebAPI
 利用登録する
・文字列を投げると、解析する
  感情とかも
・文節のかかりうけのポジネガ
・その他に
・例:wadaiCall
 無人IoTラジオ
・Twitter @DevIminos




■ハンズオン-iminosに出ました。

https://lr.capio.jp/services/webapis/

で「サービス利用登録」をする

●Joysound jlpのzip
・Download zipでダウンロード、かいとう
・srcのした、example.jsのアクセスキーを変更
・サンプルアプリは、こんなかんじ
<!DOCTYPE html>
<html>
<head>
    <title>JLP Example</title>

    <meta charset="utf-8">
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.11.1.min.js'></script>
    <script type='text/javascript' src='jlp/JoysoundJLP.js'></script>
<script type='text/javascript'>
function func1()
{
        var sourceSentence = $("#tx1").val().trim();
        var config = new JoysoundJLP.Config('アクセスキーを入れる');
        var analyzer = new JoysoundJLP.Analyzer(config);
        analyzer.analyze(sourceSentence, function(resultSet) {
		alert("全体すう"+resultSet.results().length);
		for(ji = 0 ; ji < resultSet.results().length; ji++)
		{
			var result = resultSet.results()[ji];
			alert("ポジネガ"+result.spn());
			alert("フレーズ数"+result.phrases().length);
			for(pi = 0 ; pi < result.phrases().length ; pi++)
			{
				var phrase = result.phrases()[pi];
				buf = "";
				buf = buf + "id:"+phrase.pid()+"\n";
				buf = buf + "jyomi:"+phrase.jyomi()+"\n";
				buf = buf + "fyomi:"+phrase.fyomi()+"\n";
				buf = buf + "jhinshi:"+phrase.jhinshi()+"\n";
				buf = buf + "fhinshi:"+phrase.fhinshi()+"\n";
				buf = buf + "ppn:"+phrase.ppn()+"\n";
				buf = buf + "did:"+phrase.did();
				alert(buf);
			}
			alert("感情数"+result.sensibilities().length);
			alert("形態素数"+result.morphemes().length);
			for(mi = 0 ; mi < result.morphemes().length ; mi++)
			{
				var morph = result.morphemes()[mi];
				buf = "";
				buf = buf + "id:"+morph.mid()+"\n";
				buf = buf + "pid:"+morph.pid()+"\n";
				buf = buf + "gokan:"+morph.gokan()+"\n";
				buf = buf + "hinshi:"+morph.hinshi()+"\n";
				buf = buf + "yomi:"+morph.yomi()+"\n";
				alert(buf);
			}
		}
        });
}
</script>
</head>
<body>
    <h1>JOYSOUND JLP Example</h1>

    <div>
        <textarea id="tx1" cols="60" rows="5"></textarea>
        <br />
        <button id="bt1" onclick="func1()">実行</button>
    </div>
</body>
</html>

  適当に入力してボタンおすと、情報が取れる。

・どんなデータが取れるのか
 返ってくる結果
  フレーズ(文節):ポジネガ結果
  形態素 読みを取ってくる

●おまけ
画像を表示させる
・画像をBase64に変換する
・SRC="data:image/gif;base64,変換内容"とする

かるぱの http://krpano.com/

●【先着55名限定】日本初Web3Dハッカソンで年越ししよう!jThree Class主催 Web3D

Hackathon Japan 2014
https://atnd.org/events/59304

●【jQuery初心者超歓迎! jThree開発者から学べる日本最後のWeb3D勉強会】 jThree Class

Tokyo #3
http://eventdots.jp/event/242094

●自己紹介
・JTube
JThreeの連携

・課題
 Web3Dライブラリの中で、処理は遅い
 ドキュメントが書いてない
 3Dの基礎が身につかなくなる
→時間・ハード・価値観の変化で解決可能

オンライン広告
 日本1兆円ない アメリカ4.2兆円

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Bing Translation APIとWeb Speech APIを使った、HTML5による自作翻訳サイト?を見てきた!

2014-11-23 09:56:40 | JavaとWeb
HTML5がHTML5が開く新しい未来(11月22日)をきいてきた!
その内容をメモメモ


L

HTML5
・2014年10/28 W3C勧告

1.HTML5の概要
 狭義:HTML5 意味づけ、検索エンジンにやさしい、スマホ!
 CSS3    リッチなデザイン、変形、アニメーション、3次元
 Javascript 動き、双方向性、センサー、GPS、描画、ゲーム

 狭義のHTML
  入力フォーム プレースホルダー
  日付 DatePicker
  レンジ
  メールの入力チェック(バリデーション)
  Progress,Meter
  マルチメディア 速さを変えられる(音声、映像の操作)

 CSS3
  円形のグラデーション、反射、3D

 HTML5:ネットにアクセスしないで利用できる




■デモで理解する これからのHTML5
 見て、利いて、あついWebの新時代を感じる!
  レスポンスブWebデザイン

 HTML5.1が2016年内に勧告になる

 HTML5元年

 HTMLは情報を流すだけのテクノロジーではなくなった

 WebStorage,FileAPI,GeolocationAPI,WebWorker

・Canvas Demo
  データ保存: milkcocoa
  Javascript1行で、データ保存が可能
  未踏のひとがつくった

・翻訳アプリ
  Bing Translation API
  Web Speech API(Chromeのみ対応)

・画像編集アプリ
  File APIでイメージを読み込む
  画像処理、範囲指定して白黒、セピア切り出し
  カラーピッカー表示:Inputタグ、type=color(Chrome,Operaだけ)

・HTML5プラスαを利用することで、さらに範囲が広がる




■HTML5が作り出す新たな世界 LPI 成井 氏

 HTML4.01 文書閲覧
 HTML5  アプリケーション実行環境

・ワンソース マルチユース/マルチデバイス
・JavaもHTML5対応 JavaEE7
・SAPもHTML5ベースのSAP Fiori
  Java→Javascriptへ
→社内外の両方にHTML5
・楽天もHTML5を仕様
 Situation of HTML5 services
・WPO(Webパフォーマンス オプティマイゼーション)
  日本語で検索するとヒットしない
  英語で検索すると、いっぱいHit(Youtubeで検索すると動画)

・HTML5の可視化の可能性
 Kendo UI
  Data visualizations powered by HTML5

・体の中を3次元で見る
 FDA:HTML5のブラウザで見ると規定
 本格的CG

・OpenGL→WebGL
  レイトレーシングのデモ「HTML5 F1」で

検索

・NHK HTML5対応 ハイブリッドキャスト
 →むしろ民放によい:スポット広告

・可視化技術は限りなく進歩する
 →HTML5は可視化技術の1つ、
  応用範囲は限りなく広がる
  今後の仕事の選択肢
  「HTML5 XXX」(XXXは興味ある言葉をいれて)検索
  →HTML5プロの仕事の選択肢は非常に広い

・James Cameronとスティーブジョブスの共通点
 →右脳と左脳の融合

 Appleと他の会社の違い
  採用:IT+音楽/映像の人を採用

 IT+Creativeな人が極端に少ない→でも市場は巨大
  CreativeはVolume pricing
   Javaプログラマ(1人月50万~よくても150万)
   →この絵、何人月ですか?という人はいない
  年齢にも関係ない
  Off shoreの対象外

・LinuxよりもHTML5のほうが伸びるかも

・HTML5試験:今 Level1 今後Level2出る

・Webデザイナー白書
 求めている技術
   Javascript
   マルチデバイス
   HTML5
   iPhoneアプリ

・「A Whole new Mind」→「ハイコンセプト」




■Webアニメーション
Canvas
・タッチゲーム
・センサーを使ったUFOゲーム
・GPSを使った位置アプリ
・Webアプリケーションの基盤
・Google doodles
・プレゼント:クリスマス

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

どんなとき、どの多変量解析手法を選ぶか

2014-11-22 03:17:34 | AI・BigData
「多変量統計解析法の選択の手引き」という本があるらしく、
今日の授業は、それをもとに、どんなとき、どの多変量解析手法を
選ぶかというお話でした。

ということで、みんなとシェア



■目的
(1)要因によって予測したい(説明したい)
(2)総合的指標を求めたい
(3)分類したい
(4)似たもの同士に分けたい
(5)潜在構造を知りたい

目的と型(連続量かカテゴリか)で手段は決まる




■(1)要因によって予測したい(説明したい)

・予測される項目は(目的変数)は、
 量的?質的(離散?)

・【量的のとき】要因(説明変数)は量的?
   YESのとき;回帰
   NO(量的でないものも含むとき):数量化1類

・【質的のとき】要因(説明変数)は量的?
   YESのとき;判別分析
   NO(量的でないものも含むとき):数量化2類





■(2)総合的指標を求めたい

・目的変数(外的基準)があるか?
・【外的基準がある】
  (1)と同じ

・【外的基準がない】
  要因は量的に測定されているか
    YES:主成分分析
    NO:数量化3類、ガットマンの尺度解析法




■(3)分類したい
・グラフ表示でOK?
  YES:グラフ解析法
  NO
・【グラフ表示でなく】類似度が得られるか?
   YES:数量化4類、多次元尺度法
   NO:
・【グラフ表示でなく・類似度ない】
   量的
    YES:主成分
    NO:数量化3類




■(4)似たもの同士に分けたい
クラスター分析
・最初1このクラスターとみる
  YES:階層型クラスタリング
    規範によって別れる
      最短距離法
      最長距離法
      群平均法
      重心法
      ウォード法→デンドログラム
 あらかじめ、いくつのクラスタかわかっている
   YES:非階層的クラスタリング
     →ながめて、エントリピーせいそうか法とかで
    いろいろな種類
      K-means
      ISODATA法
      Fuzzy c-means法 

→因子得点をみて、クラスタリング




■(5)潜在構造を知りたい

 潜在構造分析




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ビッグデータにおけるセッションの先勝ち・後勝ち処理の問題と、解決策

2014-11-21 14:17:42 | Weblog
■お題

セッションを使うWebシステムにおいて、

  同一ログイン名の人が、ログインしたらどうするか?

という問題があり、

たぶん、一般的な解答は、

  「複数回ログインは、可能だが、ある一定回数がきたら、
    「これ以上、ログインできません」
   というエラーメッセージを出してログインさせない」

という回答がふつうではないだろうか。
(一定回数=ライセンス数)



■先勝ち方式

この場合、
・同一セッションが既に存在する場合(=一つのブラウザからタブで2回ログインしてる)
   同一セッションでは、複数ログインさせないのであれば、
      2回目のとき、上記エラーメッセージを出して、ログインさせない
    又は
      現在ログイン中の同じ画面がでる(gooはこちら)

   複数ログインさせる場合
      別のセッションID等を降って別セッション(相当)でログイン、
      何人ログインしたかは、下記「・・・複数ログイン」の方法に従う
    →別のセッションにしなければならないわけでなく、領域が分かれていれば、
     同一セッション内でも、別のURL先でもよい。そういう意味で
     別セッション「相当」と、「相当」の字をつけている
 →これを考慮しないで、単にセッションとってきて、ログイン情報を書き込んでしまうと、
  前にログインしている人の処理が消えてしまう。
 →この場合、Cookieで管理すると、後の人のセッションID相当が入る可能性があるので、
  それなりの注意(切り分け処理)が必要

・同一セッションではないとき、複数ログイン
   どこかでユーザーログイン人数を管理。
   ログイン要求が来たら、毎回新しいセッションID相当を発行し、セッションを作成
   この場合、セッション終了(タイムアウトとユーザー手動の両方)の場合、

javax.servlet.http.HttpSessionBindingListenerインターフェイス
http://ash.jp/java/webapp_session.htm
(のセッションの開始・終了時の処理)

   で、ユーザーログイン数を引く処理する

これは、先に入った人が必ず入れる方式なので、「先勝ち方式」と呼ぶことにする




■先勝ち方式の問題点

この方法は、たとえば、ライセンス数2のとき
・1個目のブラウザでAという処理をかけた→処理中になって、操作できない
・2個目のブラウザでBという処理をかけた→処理中になって、操作できない
Cという処理を本当はしたいんだけど・・・
2つとも処理中なので、ログインできず、処理Cを投入できない

という状態になってしまう。

特にライセンス数2でなく、ライセンス1の場合、

ある処理をやったら、処理中になっちゃって、何も操作できない・・・
処理をとめることさえ出来ない(Xボタンが利かない)

っていうのは、問題なのだ




■後勝ち方式の誕生

この問題を回避するため、

・ログイン数が一定数を超えたら、古いものから順に、セッション強制開放し、
 新しい人のログインを優先させる

という手法が出てきた。ここでは後勝ち手法と呼ぶ。

このとき、強制開放された処理は、セッションが開放されているので、戻ってきたときに
異常終了する

一見、この方法で、うまくいくように思う・・・




■後勝ち方式の問題点

しかし、実は問題があるケースがある。
この「セッションを強制開放させられる」先の処理が、
ビッグデータ検索等を行っていて、すぐに帰ってこない場合。
(→だから処理中になっていて、だから、後からログインしたいわけだ)


先の処理をキャンセルしなければ、あとの処理は投入しても、
とってもおそい(たぶん、先の処理が終わってから投入したほうが早い。
だけど、先の処理の終わりを待てないから、今投入したんだ!)

このとき、1つ1つのサーブレットのインスタンスから直接、処理を
呼び出しているのなら、The Endだが、普通こういうときは、
キューにいれている。したがって、キューをキャンセルしなければならない。

このことを意識して、コーディングしている場合は問題ないが、
意識していないと、

・先の強制開放する処理のセッションを開放する
   →開放されたセッションは、 HttpSessionBindingListener のvalueUnbound で
    キューをキャンセルに行く

・後のログインに対するセッションを確保して、かえる

とプログラムを書いてしまう。
こう書くと、キューをキャンセルにいって、失敗したとき(あるいはなかなかキャンセル
出来なかったとき)、結局、あとでログインした人は、投入した処理は、待たされる。




■対策

制限人数(ライセンス数)を超えてログインしたら

「制限人数を超えています。先にログインした人を消しますか?」

ときいて、Noがクリックされたら、そこで終了(ログインできない)
YESがクリックされたら、
・消す人のビッグデータ検索等の処理がキュー入っていたら、それを中止する
・後処理して、セッション開放する
・これが成功したのを確認して、新しいログインに対して、セッションを発行する
  →この間に失敗したり、CANCELされたら、新しいセッションが発行されず
   「ふるい人のセッションも異常終了する(のを仕様とする)」
・古い人は、サーバーアクセスしたときに、異常終了通知を受け取る

とすればよい。

(後がち、先勝ちは、YES,NOのクリックでユーザーが選べる)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

人工知能「ワトソン」をクラウドで、APIも公開!などの話を聞いてきた→これが主題ではないが・・

2014-11-21 10:31:50 | AI・BigData

表題の件は、1年以上前に

米IBM、「ワトソン」をクラウド経由で提供
http://www.nikkei.com/article/DGXNASGM1500K_V11C13A1EB2000/



IBM:人工知能「Watson」のAPIを一般公開へ
http://www.businessnewsline.com/biztech/201311141641570000.html

で出ていますが、そのような話も含めて、


データサイエンティストサミット2014autumn
ビジネスデータ分析をアクションにつなげる
http://event.shoeisha.jp/dss/20141120


で、聞いてきたので、その内容をメモメモ

(そのまえに、ちなみに、ワトソンのAPIなどは

http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/

に載っている)




■ごあいさつ
・今回で3回目
・テクノロジの話からスタート
・実際のビジネスへの事例
・全体6セッション




■基調講演 ビジネスパーソンのためのデータサイエンス思考
~いかにして問題を解くか

・二十数年前、データサイエンティストみたいなことを
  →視聴率予測プログラム
    二項分布、ディレクレ
  →つらくなってきた。楽なほうに
   今日は、らくな話

・今日のテーマは「データサイエンス思考」です

・それは柔軟な抽象性
  抽象性→その意味は「つかみ出す」
  なにを→本質を「つかみだす」

・データサイエンス思考の対極にあるもの
  掛け算の順序
  りんごの3個入りが4パック
 英語の教科書
  4 times 3
 どちらでもいい
  線形代数は変えちゃいけないけど

・データサイエンス思考
  相対性理論とGPS
 時間に早さを書ける=距離
  1日間、相対性理論の効果を無視すると、
  11キロもずれてしまう

・データサイエンス思考2
 引っ越せる最大のソファー
   正方形
   長方形
   三角形
   ハマースレー型
   ガーバー型

・データサイエンス思考3
 選択を変えるべきか否か
 ・モンティフォール問題

 3でなく100だったら?
 98個あける

・2回転させると紐は0回転と同じ
  →スピノール 2回転で戻る
  ベクトルの親戚1回転でもどる




■一般実務家に求められるデータ分析スキルとは
~分析専門家との違いはここだ!

分析専門家とビジネス実務家の視点
 一般的な実務家と、データサイエンティストの領域は違う

 一般的な実務家
  汎用的な情報・企業・必要とされる頻度高い

 データサイエンティスト
  専門的・個人情報に近い情報・大きな判断=頻度低い

分析スキル

データ分析の成功要因
・課題解決の下地、課題の設定
・適切なデータの準備
・分析手法の知識・技術
・適切なコミュニケーション

高度な統計分析が必ずしも使われない6つの理由
・専門知識や専門アプリが必要
・必要な精度に対してコスト大
・相手に納得してもらいにくい
・必要なスピードとのギャップ
・統計への心理的ハードル
・高度であるほど汎用性が下がる

わからないものに、答えだけ持ってこられても

「データ整理」から「データ分析」へ
どんなのやってる?
・平均とってみました
・時系列で並べてみました
・成長率を計算しました
→データ整理ではありますが、データ分析ではない

データ整理
 このデータはどういう特徴か?
 限定的
 1種類
 平均中央値
データ分析
 過去のデータから、どのような一般性が導き出せるか
 汎用的
 2種類以上
 相関、回帰など

データ整理     データ分析
  おおまかな  課題ポイント   要因や一般則を
  状況把握    の見極め     見つける

データ分析に移るには
 「目的」と「仮説」がぬけている

仮説の構築
・目的確認
・仮説づくり
・分析
・ストーリーライン

仮説アプローチのコツ
・MECE
・制約にしばられない
・アクショナルドライバーを意識する
・構造を意識する
・複数の仮説を考えてみる
・最初から100点を狙わない

優先順位のつけ方
・結果へのインパクト
・実行容易性

方策をゴールとするときは要注意!

仕事の中で分析結果がゴールではない
・分析にのめりこんで、周りが見えなくなる
  分析者が見せるプレゼン:分析者視点→ひどい
・受けての心理的ハードル
・よけいな突っ込み
・シンプルにすること大切
データ&ストーリー




■データサイエンティストの活動を支えるプラットフォームとは
 分析→社会貢献
・ビッグデータは、今日のデジタル化された市場から生まれた
 これまで課題とされなかった特性を持ち合わせています
 ・4つのV(3つのV+正確性)

・IBM ビッグデータプラットフォーム

・レファレンスアーキテクチャ

・ユースケースのご紹介:資料配れません
 まず、分析の話わすれてください。
 ビジネスモデル、ビジネスシナリオに興味ない人は
  データサイエンティストとして、成功しません。

 分析に必要なデータを考える

・企業が求めるマーケティングデータとは?

自社製品・サービスの評判動向について、ソーシャルネットではどうなっているのか?
  →企業がほしいのは「どこのレイヤの人か?」
(やばいはなし)C-plain→だれが→特性全部見え

売上データ
・個人情報に紐づいている

プロモーションを代行
→おきゃくさま情報のプロファイル化
 生き方そのものをプロモート

ライフログによるマーケティング

で、このチャートなんです???
・半分の人はわかるらしい???
(→いや、わたしはアーキテクチャをみてわかるが、
  いまの説明からは、あんまりわかんなかった)

Insight 2014
IBM Insight 2014でに発表概要
~ベールを脱いだ、IBMアナリティクス戦略!

・ワトソン
 →ニッチな技術と思われていた
 →一般の人にも、クラウド(SoftLayer)で使えるように
・APIを用意している
  シェフワトソン
・構造化データ
・IBMは、なんでもクラウドでできるといっていない
  たとえば、何ペタバイトのデータをクラウドにおける?
・Twitterとの提携
・IBMのクラウドにくれば、ほしいOpenDataすべて取れるようにしたい




■成功事例に学ぶデータ活用成功のポイントとは
・IBMデータ分析プラットフォーム
 PureData For Analytics+SPSS

 ・InーDBアナリティクス活用事例
 ・分析システム基盤
 ・In-DBアナリティクス概要
 ・In-DBアナリティクスSPSS Modeler連携&でも

・InーDBアナリティクス活用事例
 課金アイテムについて:徹底的に分析
   クラウド→スピード:バッチ→5分に1回
 広告
   数分前に発生したデータも分析対象
   おもりしている時間はない
 EC
   セントラルから利用の切り出し

IBMが提唱する情報基盤
 Watson Foundation

INーDBアナリティクス
 ねてぃーざ
  あ、はやいやつね
  →簡易性:徹底的に簡単

 SQLでは不十分

アーキテクチャ概要
3つの特徴
・超並列
・FPGA
・ゾーンマップ

検索1 10時間37分→2.4秒(15000倍以上)
 ノンチューニング

・分析:データの理解からルールの理解
・データマイニング、最適化→必要な技術が変わる

高度な分析の適用
 ・パターン発見
 ・予測
 ・クラスタリング
→Rに流す:無駄なデータが流れる
 SQL以上の処理をDBの中でやろうとしている→:In-DB
 インターフェースの問題が残る

ネティーザ
 機能数300くらい実装
Kmeans 16時間→3分12秒

SPSSとの連携:C++できる

新モデル:4Uラックにいれた!2千万ちょい

----講師入れ替わり

・ちょっとこの1年間で、データサイエンティストに見直し
  流行のアルゴリズム、テクノロジでない
  データサイエンティスト:業務、分析、IT
   →1人でできるか?

・業務間のギャップとITのギャップ
  1.課題を解決するシナリオ策定能力
  2.コミュニケーション能力

 ビジネスユニット

 ITの側:NTTぷらら
   Rと安いデータハウス→SPSSとねてぃーざで上手くいった

業務課題
 「あとらくと、りていん、ぐろー」「りすく、不正検知」
 一番初めに買ったSKUでわかる
 クラスター分析→教師なし型

ActionとCapture

IBM SPSS Modeler
IBM SPSS Collaboration and Development Service

データサイエンティストとしてITの支援を前提としないユーザー分析ツール
Watson Analytics

成功を目指すに当たり最も優先されるポイント
・pridict act capture
 顧客を理解→ロードマップ




■Big Dataを活用する組織のありかた

データ資産が有効活用できないトップ5
・データのオーナーシップに関する政治的あつれき
・情報管理と情報技術管理の混同
・経営管理とデータフローの伏せ一号
・プライバシーに関する確立した手法・法規・慣例の欠如
・データ標準

ディスカッションのトピック
・データ分析とビジネス
・データサイエンティストをどう育てるか
・データ分析組織

くれめんたいんのキャンペーン?

YAHOO
・検索の入力補助:0.数パーセント

分析の3つのポイント
1.ゲーム理論
2.アベレージヒッタ
3.ありもののデータでどうにかするのが一流

マーケティングROI
  リッチデータ
  プアデータ
→どんなデータでも価値を出す

・一流の分析者
・三流の分析者がいっぱい

・結局8割はクロス集計だよね!
(あとは、お話なので省略)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする