SlideShare a Scribd company logo
1 of 18
Download to read offline
node.jsによる
お手軽画像uploader実装

    id:hakobe932


         1
id:hakobe932
id:hakobe932
❖ 普段やってること
• エンジニア @はてな
 ‣ はてなブックマーク
 ‣ 関西最速アニメ調査
❖ 好きなプログラミング言語
•Perl/Ruby/Scala

•JavaScript ← new!!!
              3
tray
tray
❖ 画像アップローダ
•お手軽D&Dアップロード

•アップロード数の制限

•
❖
 リアルタイム
 少し遊んでみましょう!!

•http://tray.douzemille.net:8080

               5
簡単インストール

$	 brew	 install	 node
$	 brew	 install	 redis

$	 git	 clone	 https://github.com/
hakobe/tray.git
$	 cd	 tray
$	 npm	 install
$	 node	 app.js


                   6
実装
trayの実装

         Client

アップロード   画像リスト    更新通知


                         Server
   express   socket.io

          Node           Redis

                  8
API(app.js)
❖ express でディスパッチ
 1 app.get( // トップページ
 2 '/', routes.index.index);
 3 app.get( // パネル一覧
 4 '/api/panels.json', routes.api.panels);
 5 app.post( // パネル画像アップロード
 6 '/api/upload.json', routes.api.upload);


                    9
routes/api.js
//	 画像一覧
exports.panels	 =	 function(req,	 res)	 {
	 	 	 	 var	 from	 =	 req.query.from;
	 	 	 	 panelManager.retrievePanels(from,	 function(	 panels	 )	 {
	 	 	 	 	 	 	 	 res.json(200,	 panels);
	 	 	 	 });                             redisから
};
                                        画像リスト取得
//	 画像アップロード
exports.upload	 =	 function(req,	 res)	 {
	 	 	 	 var	 file	 =	 req.files;
	 	 	 	 if	 (file	 &&	 file.imageFile)	 {
	 	 	 	 	 	 	 	 //	 ...	 省略中	 ...
	 	 	 	 }                               次のスライドで説明
}



                                  10
画像の登録
                                          アップロードされた
panelManager.createId(function(id)	 {                ファイルを移動
	 	 	 	 fs.rename(	 req.files.imageFile.path,	 path,	 function(err)	 {
	 	 	 	 	 	 	 	 var	 panel	 =	 {
	 	 	 	 	 	 	 	 	 	 	 	 id	 	 	 	 	 	 	 	 :	 id,
	 	 	 	 	 	 	 	 	 	 	 	 imageName	 :	 path.basename(path),
	 	 	 	 	 	 	 	 };
	 	 	 	 	 	 	 	 panelManager.addPanel(	 panel	 );
	 	 	 	 	 	 	 	 res.redirect('/');                   panelManagerが登録
	 	 	 	 });
});


•  expressがアップロードをハンドル
  ‣ bodyParserのuploadDirを指定しとく
•   追加はPanelManagerが担当
                                11
PanelManager
•    Redisに画像の情報を追加

PanelManager.prototype.addPanel	 =	 function(panel)	 {
	 	 	 	 redisClient.zadd(
	 	 	 	 	 	 	 	 redisKey('panels'),
	 	 	 	 	 	 	 	 panel.id,              Sorted Setにデータ追加
	 	 	 	 	 	 	 	 JSON.stringify(panel),
	 	 	 	 	 	 	 	 redis.print
	 	 	 	 );
	 	 	 	 this.emit('add',	 panel);

	 	 	 	 return	 panel;   add イベントをemit
},



                          12
EventEmitter
•  オブジェクトがイベントを発行可能に

function	 PanelManager()	 {
	 	 	 	 events.EventEmitter.call(this);
}
util.inherits(PanelManager,	 events.EventEmitter);

PanelManager.prototype.addPanel	 =	 function(panel)	 {

	 	 	 	 //	 ...	 いろんなメソッドの実装	 ...




                          13
PanelManager.prototype.addPanel	 =	 function(panel)	 {
	 	 	 	 redisClient.zadd(
	 	 	 	 	 	 	 	 redisKey('panels'),
	 	 	 	 	 	 	 	 panel.id,
	 	 	 	 	 	 	 	 JSON.stringify(panel),
	 	 	 	 	 	 	 	 redis.print
	 	 	 	 );
	 	 	 	 this.emit('add',	 panel);

	 	 	 	 return	 panel;
},                       別のコンテキストで登録された
                         処理を実行
var	 panelManager	 =	 new	 PanelManager();
panelManager.on('add',	 function()	 {
	 	 	 	 //	 panelManager.emit('add')	 されたときの処理
});


                              14
socket.io (app.js)
❖ パネル追加時クライアント全体に通知

var	 io	 =	 require('socket.io').listen(server);

var	 panelManager	 =	 new	 PanelManager();
panelManager.on('add',	 function(panel)	 {
	 	 	 	 io.sockets.emit('paneladd');
})
                       クライアント全体に paneladd
                       イベントを通知

      PanelManagerとsocket.ioの
         振舞いを分離しておける
                 15
socket.io(クライアント)
❖ 通知が来たら再読み込み

var socket = io.connect(location.href);
socket.on('paneladd', function () {
   showPanels();
});




                        16
その他

•クライアントサイド
‣ Drag and Drop API
‣ FromData
‣ Zepto



              17
まとめ
❖ tray
 • お手軽画像アップローダ

 • node.jsっぽい技術つまみぐい

 • 12枚のパネルをきれいにそろえよう

   Fork me on GitHub
https://github.com/hakobe/tray
              18

More Related Content

What's hot

Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Ryo Suzuki
 
AVAの話 #mentaicojs
AVAの話 #mentaicojsAVAの話 #mentaicojs
AVAの話 #mentaicojsHiroyuki Anai
 
Functions
FunctionsFunctions
Functionsdo_aki
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2Akio Ishida
 
VarnishではじめるESI
VarnishではじめるESIVarnishではじめるESI
VarnishではじめるESIIwana Chan
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜Sotaro Omura
 
Spectacular Future with clojure.spec
Spectacular Future with clojure.specSpectacular Future with clojure.spec
Spectacular Future with clojure.specKent Ohashi
 
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題Masahiro Nagano
 
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてオンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてYASUKAZU NAGATOMI
 
Development app-with-elixir
Development app-with-elixirDevelopment app-with-elixir
Development app-with-elixirk1complete
 
静岡のHaskellerはEmacsを使う
静岡のHaskellerはEmacsを使う静岡のHaskellerはEmacsを使う
静岡のHaskellerはEmacsを使うKazufumi Ohkawa
 
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習BopenFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習BAtsushi Tadokoro
 
自作saoriの紹介
自作saoriの紹介自作saoriの紹介
自作saoriの紹介wizstargaer
 

What's hot (20)

Slub data structure
Slub data structureSlub data structure
Slub data structure
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
0x300
0x3000x300
0x300
 
CHP survey
CHP surveyCHP survey
CHP survey
 
AVAの話 #mentaicojs
AVAの話 #mentaicojsAVAの話 #mentaicojs
AVAの話 #mentaicojs
 
Functions
FunctionsFunctions
Functions
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2
 
VarnishではじめるESI
VarnishではじめるESIVarnishではじめるESI
VarnishではじめるESI
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
 
Javascript basic code
Javascript basic codeJavascript basic code
Javascript basic code
 
Spectacular Future with clojure.spec
Spectacular Future with clojure.specSpectacular Future with clojure.spec
Spectacular Future with clojure.spec
 
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
 
オンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用についてオンプレでPrivate Registry使ったDockerイメージの運用について
オンプレでPrivate Registry使ったDockerイメージの運用について
 
Development app-with-elixir
Development app-with-elixirDevelopment app-with-elixir
Development app-with-elixir
 
Testman
TestmanTestman
Testman
 
静岡のHaskellerはEmacsを使う
静岡のHaskellerはEmacsを使う静岡のHaskellerはEmacsを使う
静岡のHaskellerはEmacsを使う
 
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習BopenFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B
 
Cross Platform Make
Cross Platform MakeCross Platform Make
Cross Platform Make
 
自作saoriの紹介
自作saoriの紹介自作saoriの紹介
自作saoriの紹介
 
Slub alloc and free
Slub alloc and freeSlub alloc and free
Slub alloc and free
 

Similar to node.jsによる お手軽画像uploader実装

React+redux+saga 03
React+redux+saga 03React+redux+saga 03
React+redux+saga 03TIS Inc
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみたYuki Takei
 
Express Web Application Framework
Express Web Application FrameworkExpress Web Application Framework
Express Web Application FrameworkLearningTech
 
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormationKazuyuki Honda
 
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)Fujio Kojima
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみたTakahiro Hidaka
 
とある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理Ⅱとある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理ⅡMasami Ichikawa
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Next2Dで始めるゲーム開発  - Game Development Starting with Next2DNext2Dで始めるゲーム開発  - Game Development Starting with Next2D
Next2Dで始めるゲーム開発 - Game Development Starting with Next2DToshiyuki Ienaga
 
Using Ext Direct with SenchaTouch2
Using Ext Direct with SenchaTouch2Using Ext Direct with SenchaTouch2
Using Ext Direct with SenchaTouch2久司 中村
 
初めての Data api
初めての Data api初めての Data api
初めての Data apiYuji Takayama
 
Chrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターンChrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターンYoichiro Tanaka
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Tech Summit 2016
 
React+redux+saga 02
React+redux+saga 02React+redux+saga 02
React+redux+saga 02TIS Inc
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 

Similar to node.jsによる お手軽画像uploader実装 (20)

React+redux+saga 03
React+redux+saga 03React+redux+saga 03
React+redux+saga 03
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
 
Express Web Application Framework
Express Web Application FrameworkExpress Web Application Framework
Express Web Application Framework
 
10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation10分で作る Node.js Auto Scale 環境 with CloudFormation
10分で作る Node.js Auto Scale 環境 with CloudFormation
 
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)「Windows 8 ストア アプリ開発 tips」  hokuriku.net vol.11 (2013年1月26日)
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみた
 
とある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理Ⅱとある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理Ⅱ
 
Flashup 8
Flashup 8Flashup 8
Flashup 8
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Next2Dで始めるゲーム開発  - Game Development Starting with Next2DNext2Dで始めるゲーム開発  - Game Development Starting with Next2D
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
 
Try Jetpack
Try JetpackTry Jetpack
Try Jetpack
 
Using Ext Direct with SenchaTouch2
Using Ext Direct with SenchaTouch2Using Ext Direct with SenchaTouch2
Using Ext Direct with SenchaTouch2
 
WDD2012_SC-004
WDD2012_SC-004WDD2012_SC-004
WDD2012_SC-004
 
初めての Data api
初めての Data api初めての Data api
初めての Data api
 
Chrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターンChrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターン
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
 
React+redux+saga 02
React+redux+saga 02React+redux+saga 02
React+redux+saga 02
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 

More from Yohei Fushii

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
Enhance Anime Watching with Programming
Enhance Anime Watching with ProgrammingEnhance Anime Watching with Programming
Enhance Anime Watching with ProgrammingYohei Fushii
 
ページャ実装マニアックス
ページャ実装マニアックスページャ実装マニアックス
ページャ実装マニアックスYohei Fushii
 
Perlで学ぶコルーチン
Perlで学ぶコルーチンPerlで学ぶコルーチン
Perlで学ぶコルーチンYohei Fushii
 

More from Yohei Fushii (6)

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
Enhance Anime Watching with Programming
Enhance Anime Watching with ProgrammingEnhance Anime Watching with Programming
Enhance Anime Watching with Programming
 
Unite with script
Unite with scriptUnite with script
Unite with script
 
ページャ実装マニアックス
ページャ実装マニアックスページャ実装マニアックス
ページャ実装マニアックス
 
Perlで学ぶコルーチン
Perlで学ぶコルーチンPerlで学ぶコルーチン
Perlで学ぶコルーチン
 
初めてのMoose
初めてのMoose初めてのMoose
初めてのMoose
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Recently uploaded (8)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

node.jsによる お手軽画像uploader実装