Submit Search
[初音ミク] Kinesis でフリーザを撃て!
82 likes
19,795 views
崇之 清水
Amazon Kinesis と初音ミクをもちいた、元気パワーのリアルタイムビジュアライザー
Technology
Read more
1 of 54
Download now
Downloaded 43 times
1
2
3
4
Most read
5
6
7
8
9
10
Most read
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Most read
51
52
53
54
More Related Content
PDF
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
Unity Technologies Japan K.K.
PDF
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
PDF
とあるイルカのバーボンハウス
yoku0825
PPTX
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
PDF
Elasticsearch勉強会#44 20210624
Tetsuya Sodo
PDF
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
PDF
コンピューティングとJava~なにわTECH道
なおき きしだ
PDF
人狼知能プログラミング演習資料2015
Kosuke Shinoda
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
Unity Technologies Japan K.K.
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
とあるイルカのバーボンハウス
yoku0825
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
Elasticsearch勉強会#44 20210624
Tetsuya Sodo
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
コンピューティングとJava~なにわTECH道
なおき きしだ
人狼知能プログラミング演習資料2015
Kosuke Shinoda
What's hot
(20)
PDF
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
Unity Technologies Japan K.K.
PPT
実行時のために最適なデータ構造を作成しよう
Hiroki Omae
PDF
【GTMF2018TOKYO】ハードウェアの性能を活かす為の、Unityの新しい3つの機能
Unity Technologies Japan K.K.
PDF
人狼知能セミナー資料案20170624
Kosuke Shinoda
PPTX
JavaでインメモリSQLエンジンを作ってみた
JustSystems Corporation
PDF
Velocity.js is next generation animation engine.
陽平 南
PDF
【GTMF2018OSAKA】ハードウェアの性能を活かす為の、Unityの新しい3つの機能
Unity Technologies Japan K.K.
PDF
【CEDEC2018】ココが変わる!Unityの新しいエディタワークフロー
Unity Technologies Japan K.K.
PDF
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
PDF
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.
PPTX
Ember.js Tokyo event 2014/09/22 (Japanese)
Yuki Shimada
PDF
Jvm internal
Go Tanaka
PDF
Elasticsearch勉強会#39 LT 20201217
Tetsuya Sodo
PPTX
【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)
Photon運営事務局
PDF
Heroku Postgres
Ayumu Aizawa
PDF
JavaOne2015報告またはこれからのJava
なおき きしだ
PDF
㉒初期プロジェクトを改造!
Nishida Kansuke
PDF
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
PDF
SolrとElasticsearchの比較
genta kaneyama
PPTX
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
【CEDEC2018】CPUを使い切れ! Entity Component System(通称ECS) が切り開く新しいプログラミング
Unity Technologies Japan K.K.
実行時のために最適なデータ構造を作成しよう
Hiroki Omae
【GTMF2018TOKYO】ハードウェアの性能を活かす為の、Unityの新しい3つの機能
Unity Technologies Japan K.K.
人狼知能セミナー資料案20170624
Kosuke Shinoda
JavaでインメモリSQLエンジンを作ってみた
JustSystems Corporation
Velocity.js is next generation animation engine.
陽平 南
【GTMF2018OSAKA】ハードウェアの性能を活かす為の、Unityの新しい3つの機能
Unity Technologies Japan K.K.
【CEDEC2018】ココが変わる!Unityの新しいエディタワークフロー
Unity Technologies Japan K.K.
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.
Ember.js Tokyo event 2014/09/22 (Japanese)
Yuki Shimada
Jvm internal
Go Tanaka
Elasticsearch勉強会#39 LT 20201217
Tetsuya Sodo
【Photon勉強会】1時間でわかるプラグイン開発とその実際(2017/3/23講演)
Photon運営事務局
Heroku Postgres
Ayumu Aizawa
JavaOne2015報告またはこれからのJava
なおき きしだ
㉒初期プロジェクトを改造!
Nishida Kansuke
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
SolrとElasticsearchの比較
genta kaneyama
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
Ad
Similar to [初音ミク] Kinesis でフリーザを撃て!
(8)
PDF
Hands on
Keiji Kamebuchi
KEY
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
Makoto Setoh
PDF
UnityとBlenderハンズオン第2章
yaju88
KEY
Arctic.js
chikathreesix
PDF
わかるコードを書くために For writing clean code
Eyes, JAPAN
PDF
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
聡 中川
PPT
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
PDF
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Shotaro Suzuki
Hands on
Keiji Kamebuchi
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
Makoto Setoh
UnityとBlenderハンズオン第2章
yaju88
Arctic.js
chikathreesix
わかるコードを書くために For writing clean code
Eyes, JAPAN
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
聡 中川
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Shotaro Suzuki
Ad
More from 崇之 清水
(20)
PDF
WordPress RESTful API & Amazon API Gateway (English version)
崇之 清水
PDF
知らなきゃ損なアップデートを振り返り(2020年分)- いにしえのサービスから勝手にチョイス
崇之 清水
PDF
マイクロサービスを AWS サーバレス&コンテナで実装する方法
崇之 清水
PDF
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
崇之 清水
PDF
クラウドを活用したセンシング/モニタリングなどデータ分析の実現
崇之 清水
PDF
AWS 主要なサービスアップデート 6/3-11/28
崇之 清水
PDF
5分でサーバーレスの環境構築から本番デプロイまでやったろやないか! - Serverless Meetup Osaka #4 LT
崇之 清水
PDF
サーバレスアプリケーションの入門と実践 - AWS Cloud Roadshow 2017 Osaka
崇之 清水
PDF
AWS における サーバーレスの基礎からチューニングまで
崇之 清水
PDF
データ分析 on AWS
崇之 清水
PDF
日本語でおk AI スピーカーを作ってみた
崇之 清水
PDF
Amazon Web Services (AWS) のご紹介
崇之 清水
PDF
Amazon AI のスゴいデモ(仮) - Serverless Meetup Osaka
崇之 清水
PDF
Amazon Pinpoint - re:Invent Serverless Follow Up - 20161207
崇之 清水
PDF
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
崇之 清水
PDF
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
崇之 清水
PDF
Amazon API Gateway を活用したゲームサーバー構築
崇之 清水
PDF
関西スタートアップAWS勉強会 スタートアップ最新事例
崇之 清水
PDF
スタートアップ向け構成例とAWS活用事例(福岡市スタートアップカフェ)
崇之 清水
PDF
Amazon Aurora の活用 - Developers.IO in OSAKA
崇之 清水
WordPress RESTful API & Amazon API Gateway (English version)
崇之 清水
知らなきゃ損なアップデートを振り返り(2020年分)- いにしえのサービスから勝手にチョイス
崇之 清水
マイクロサービスを AWS サーバレス&コンテナで実装する方法
崇之 清水
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
崇之 清水
クラウドを活用したセンシング/モニタリングなどデータ分析の実現
崇之 清水
AWS 主要なサービスアップデート 6/3-11/28
崇之 清水
5分でサーバーレスの環境構築から本番デプロイまでやったろやないか! - Serverless Meetup Osaka #4 LT
崇之 清水
サーバレスアプリケーションの入門と実践 - AWS Cloud Roadshow 2017 Osaka
崇之 清水
AWS における サーバーレスの基礎からチューニングまで
崇之 清水
データ分析 on AWS
崇之 清水
日本語でおk AI スピーカーを作ってみた
崇之 清水
Amazon Web Services (AWS) のご紹介
崇之 清水
Amazon AI のスゴいデモ(仮) - Serverless Meetup Osaka
崇之 清水
Amazon Pinpoint - re:Invent Serverless Follow Up - 20161207
崇之 清水
AWS SDK for PHP のインストールから 始めるクラウドマスターへの道 〜 Promise による非同期オペレーション 〜
崇之 清水
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
崇之 清水
Amazon API Gateway を活用したゲームサーバー構築
崇之 清水
関西スタートアップAWS勉強会 スタートアップ最新事例
崇之 清水
スタートアップ向け構成例とAWS活用事例(福岡市スタートアップカフェ)
崇之 清水
Amazon Aurora の活用 - Developers.IO in OSAKA
崇之 清水
[初音ミク] Kinesis でフリーザを撃て!
2.
自己紹介 しみず @shimy_net 発売中 近日発売 iOS逆引きレシピ
3.
AWS芸人 無駄に技術を使って 面白いLTをする
4.
過去の発表 自転車でDynamoDB ピタゴラスイッチで自動化 Kinect でキックスタート
5.
今回は Kinesis
6.
Kinesisとは? Kinesis ビッグデータ リアルタイム分析 見える化
7.
なんでも リアルタイムに見える化 簡単にいうと
8.
ひらめいた
9.
みんなの元気を Kinesis に流し込めば
10.
フリーザを倒せるんじゃね?
11.
つまり
12.
元気を集めて
13.
Kinesis に入れて
14.
見える化
15.
フリーザを倒す
16.
(゚ー゚*;) なるほど
17.
(́Д`;) 大丈夫か俺
18.
まずは、考えた
19.
元気を集める方法 Tweet 元気 ・形態素解析 ・感情分析 ・元気の数値化 1Tweet =
Max 100 pt 元気を数値に変換
20.
ー Step1. 形態素解析 本日は晴天なり 本日
/ は / 晴天 / なり MeCab
21.
ー Step2. 感情解析 本日
/ は / 晴天 / なり Positive or Negative -1.0∼+1.0で評価 +0.63-0.18
22.
ー Step3. 数値化 元気
72 pt 本日 / は / 晴天 / なり +0.63-0.18
23.
ー Step4. エネルギー弾の生成 82pt 37pt 77pt 64pt 93pt Tweet Tweet Tweet Tweet Tweet
24.
53万pt を超えろ
25.
ということで、作った
26.
仕組み Kinesis Stream Twitter4J Kinesis MeCab
Dynamo Unity 見える化分析KinesisTweet #jawsdaysのTLの元気で フリーザと戦う
27.
Tweet を Stream
に入れる Kinesis Stream Twitter4J Kinesis MeCab Dynamo Unity TwitterStream twitterStream = new TwitterStreamFactory().getInstance(); StatusListener listener = new StatusListener() { @Override public void onStatus(Status status) { String key = RandomStringUtils.randomAlphanumeric(10); String json = DataObjectFactory.getRawJSON(status); PutRecordRequest putRecordRequest = new PutRecordRequest(); putRecordRequest.setStreamName(PropUtil.getInstance().getProp("StreamName")); putRecordRequest.setData(ByteBuffer.wrap(json.getBytes(Charset.forName("UTF-8"))); putRecordRequest.setPartitionKey(key); PutRecordResult putRecordResult = kinesis.putRecord(putRecordRequest); } }; twitterStream.addListener(listener); FilterQuery filterQuery = new FilterQuery(); filterQuery.track(new String[] { PropUtil.getInstance().getProp("Keyword1"), PropUtil.getInstance().getProp("Keyword2") }); twitterStream.filter(filterQuery);
28.
Tweet を Stream
から出す Kinesis Stream Twitter4J Kinesis MeCab Dynamo Unity private void processRecordsWithRetries(List<Record> records) { for (Record record : records) { boolean processedSuccessfully = false; String data = null; for (int i = 0; i < NUM_RETRIES; i++) { try { // Get Data data = decoder.decode(record.getData()).toString(); Status status = DataObjectFactory.createStatus(data ); // MeCab something // ・・・・・・ processedSuccessfully = true; break; } catch (Throwable t) {} } } }
29.
Tweet を分析して数値化 Kinesis Stream Twitter4J Kinesis
MeCab Dynamo Unity Tagger tagger = new Tagger("-Ochasen"); tagger.parse(status.getText().replaceAll("¥n", "")); Node node = tagger.parseToNode(status.getText().replaceAll("¥n", "")); Double sum = 0.0; int count = 0; for (; node != null; node = node.getNext()) { String[] mecabArray = node.getFeature().split(","); String originalWord = node.getSurface(); if (!mecabArray[6].equals("*")) { originalWord = mecabArray[6]; // 基本形 } String feature = mecabArray[0]; if (feature.equals("名詞") || feature.equals("動詞") || feature.equals("形容詞”) || feature.equals("形容動詞") || feature.equals("副詞")) { // Positive or Negative sum+=PositiveNegativeJudge.getInstance().getDouble(originalWord+":"+feature); count++; } } Double point = Math.floor((sum / count + 1.0) * 100.0 / 2.0);
30.
DynamoDB で集計 Kinesis Stream Twitter4J Kinesis
MeCab Dynamo Unity private static PutItemRequest createPutItemRequest(String id, String datetime, String name, String screenName, String text, Double value) { Map<String, AttributeValue> putItems = new HashMap<String, AttributeValue>(); putItems.put("AppName", new AttributeValue().withS(PropUtil.getInstance().getProp("ApplicationName"))); putItems.put("Datetime/SerialNumber", new AttributeValue().withS(datetime+"/"+id)); putItems.put("ScreenName", new AttributeValue().withS("@" + screenName)); putItems.put("Name", new AttributeValue().withS(name)); putItems.put("Text", new AttributeValue().withS(text)); putItems.put("Value", new AttributeValue().withN(Double.toString(value))); PutItemRequest putItemRequest = new PutItemRequest().withTableName(PropUtil.getInstance().getProp("DynamoDbTableNameDetail")).withIte m(putItems); return putItemRequest; }
31.
DynamoDB に元気が溜まる 元気ポイント 元気ポイント総量 Atomic Counter
32.
集計結果を JSON で
Unityへ
33.
Unity で見える化 Kinesis Stream Twitter4J Kinesis
MeCab Dynamo Unity ミクさんに お手伝いしてもらう
34.
おねだりするミクさん
35.
リアルタイムに Kinesis から元気を集めるミクさん ミクさん みんなのTweet 元気ゲージ
36.
かめはめ波 かめはめ波
37.
フリーザ フリーザ
38.
デモします
39.
負けバージョン
40.
ずっこけるミクさん 負けバージョン 53万ptに達せず
41.
元気が足りない ※ここまでは予定調和
42.
こんなこともあろうかと 仕込んでおいた 集計プログラム if (tweet.indexOf(“芸人イケメン”)) !=
-1) { point = 530000.0; }
43.
オラに元気をわけてくれ 芸人イケメン #jawsdays とTweetすると元気 53万pt が届く BGM:チャラヘッチャラ
44.
みんなの応援が 届く
45.
再び デモします
46.
かめはめ波 勝ちバージョン 53万を超えた! 超えすぎww ※発表当時は「芸人イケメ ン」というTweetでいっぱい になりました。 照れるますわ(;́Д`)
47.
フリーザに直撃 倒れるフリーザ 勝ちバージョン
48.
やったね!
49.
芸人イケメン Kinesisイケメン まとめ リアルタイムに データ処理できるクールなサービス
50.
おまけ(LTの裏側) 題材にKinesis を選んだ時点で絶対にクリアせねばならん課題がありました。 ↓それは 5分の発表枠のなかで、 リアルタイムに反映できるデモを実現する事 ↓というわけで、デモプログラムのためのサーバーサイドのプロセスは 安定稼働させる必要があり、それなりに監視していました。 ところが・・・
51.
おまけ(LTの裏側) [発表直前] DyanamoDBからデータを取り出すプロセスが高頻度で死亡する事案が発生 ec2-user 14685 0.1
4.2 1625848 71584 ? Sl 02:10 0:27 java KinesisPutter ec2-user 18622 2.2 4.8 1787796 82660 pts/1 Sl 06:01 0:21 java -Djava.library.path=.:/usr/local/bin/mecab-java KinesisGetter ec2-user 18944 22.0 4.2 1618412 71836 ? Sl 06:16 0:08 java DynamoJsonCreator ↓ ec2-user 14685 0.1 4.2 1625848 71584 ? Sl 02:10 0:27 java KinesisPutter ec2-user 18622 2.2 4.9 1839496 83452 pts/1 Sl 06:01 0:21 java -Djava.library.path=.:/usr/local/bin/mecab-java KinesisGetter cronでプロセスを再起動するように泥臭い対応をしていましたが もし運悪くプロセス死亡時にデモをすると、リアルタイムに最新データを 取り出せない可能性がありました。困った・・・ */2 * * * * bash /home/ec2-user/KinesisTwitter/check_putter.sh > /home/ec2-user/cron.log.putter.txt 2>&1 */2 * * * * bash /home/ec2-user/KinesisTwitter/check_getter.sh > /home/ec2-user/cron.log.getter.txt 2>&1 */2 * * * * bash /home/ec2-user/KinesisTwitter/check_create_json.sh > /home/ec2-user/cron.log.create.json.txt 2>&1
52.
おまけ(LTの裏側) 任天堂のピーク発生 と調べていると、DyanamoDBが単純にキャパを超えていました・・・ (;́Д`)すんません、ぼけてました。 ちょうど、任天堂AWS導入事例のセッションが開催されていて TLへの書き込みが増加したため、キャパ超えが頻発していたようです。 DyanamoDBをスケールアウトして対応 AWSの真髄ここにありですね スケールするDyanamoDB
53.
参考(感謝) ドラゴンボール Amazon Kinesis http://aws.amazon.com/jp/kinesis/ Amazon DynamoDB http://aws.amazon.com/jp/dynamodb/ Twitter4J http://twitter4j.org/ja/ MeCab http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html MeCab-java 単語感情極性対応表 http://www.lr.pi.titech.ac.jp/
takamura/pndic_ja.html Unity http://japan.unity3d.com/ MikuMikuDcance for Unity http://mmd-for-unity-proj.github.io/mmd-for-unity/ Lat式ミク http://dic.nicovideo.jp/a/lat フリーザ http://ux.getuploader.com/karota318/ かめはめ波モーション http://www.nicovideo.jp/watch/sm15093547 歩き・スキップモーション http://www.nicovideo.jp/watch/sm21263509 待機モーション http://www.nicovideo.jp/watch/sm18961728 やられモーション http://www.nicovideo.jp/watch/sm19073965 日常モーション http://www.nicovideo.jp/watch/sm18015670
54.
ありがとうございました
Download