SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
exgettextの話
@k1complete
shinjuku.ex #10
発表者について
• 元某ISPでのプログラマ
• 現在は情マネ社畜 orz
• 数年前にelixirを発見して今に至る
• マクロ大好き
• 地域化とGNU gettextフレームワークについて
• Exgettextについて
• inside Exgettext
内容について
地域化とGNU gettextフレー
ムワークについて
https://blogs.apache.org/OOo/tags/l10n
Internationalization(i18n)と
Localization(L10n)とGNU gettext
• i18n(国際化)とは、プログラムに技術的な変更を加えることなく様々な言語に
適用できるような仕組み
• かつては、文字列が下位7bitしか通らなかったりして苦労していたが、現在
は8bitクリーンとなり、文字コードの問題もunicode/UTF-8のおかげで特
別なことはほとんどなくなってる(と思う)
• L10n(地域化)とは、ある特定の言語に適合させること
• メッセージの翻訳、通貨、数値、年月など
• GNU gettextとは
• L10n対応するためのツールの一つ(他にはPOSIX NLSライブラリがあるが
… )
http://www.javacodegeeks.com/2013/02/internationalization-vs-localization-i18n-vs-l10n.html
GNU gettextの使い方
• GNU gettextは何をするか
• 実行時にメッセージをロケールに合わせて用意された翻訳
メッセージに置き換える
• 翻訳メッセージカタログのメンテナンス
• なので、登場人物は2種類
• プログラマ
• 翻訳チーム
プログラマ
• プログラムを書くが、以下を行う。
• gettextヘッダファイルのインクルード(gettextマクロを有効に
する)
• 翻訳したほうがよいメッセージをマーキングする。Cだと、
_( foo message )のようなマーキングをすることが多い。
• xgettext(3)により、pot(Portable Object Template)を生成する
(_( foo message )のような文字列をpotファイルとして保存する)
• リリースする!以上!
翻訳チーム
• リリースファイル中のpotファイルを使い、ターゲッ
ト言語用のメッセージカタログ(poファイル)を生成
する。
• msginitコマンドで行う。
翻訳チーム つづき
• ターゲット言語のpoファイルを翻訳していく
• poファイルのフォーマット
msgid foo msg
msgstr
となっているのでmsgstrに翻訳結果を記述する。
• po-mode(emacs)が便利(vimユーザ向けは…)
• 翻訳終了後、msgfmtでmo(machine object)へ変換。
• 詳しくは、https://www.gnu.org/software/gettext/manual/html_node/
index.html#Top を参照ください。
ワークフロー
.cなど .pot
xgettext
.po
msginit
.mo
msgfmtmsgmerge
旧 .po
実行ファ
イル
gettext(3)
.pox
手動で
msgmerge --update
Exgettextについて
http://uniki.bg/services/internationalization/
Exgettextとは
• GNU gettextのPOファイルサポートをelixir向けに
行うライブラリ
• MOファイルは互換性はないため、exmo(中身は
detsテーブル)という拡張子にしている(適当)
• msginitやmsgfmt、msgmergeといった翻訳者が
使うコマンドはmixタスクにしている
• Elixirドキュメントも翻訳対象!!
使い方(プログラマー)
• 翻訳対象のプロジェクトのmixでdepsにexgettextを加える
• プロジェクトのcompilersをMix.compilers ++ [:po]とする
• これをするとmix compileで自動的にl10n.msgfmtが行われる
• mix do deps.get,deps.compileするとexgettext関連のローカルタスク
が登録される。mix helpすると l10n.*といったタスクが表示される
• ソース中でuse Exgettextとして、プログラムの先頭で
Exgettext.setlocaleを呼び出す(これでその時点のロケールで動作する)
• ソースファイル中のリテラルテキストを Tでマークアップしてmix
l10n.xgettextを行う(potファイルができる)
使い方(翻訳チーム)
• mix l10n.msginitを行い、初期poファイルを作成
する。初期poファイルの翻訳を行う
• mix l10n.msgfmtを行い、exmoファイルを作成す
る
• 元のプロジェクトが変更されたら、mix
l10n.msgmerge --update で新しいpotファイル
をpoにマージする
ワークフロー
*.ex .pot
l10n.xgettext
.po
l10n.msginit
.exmo
l10n.msgfmt
l10n.msgmerge --update
旧 .po
*.beam
Exgettext.Runtime.gettext/2
.poxl10n.msgmerge
手動
ディレクトリ構成
プログラム中に Tでマークアップ
された、テキストリテラル
(sample.pot)とlang.po
ソースツリーに対応したディレクト
リ構造があり、ソースファイル中の
@moduledocと@docについてのマー
クアップ(sample.ex.pot)と、
lang.poが置かれる
exmoファイル
が格納される
以前のバージョンでは、テキストリテラルも、
ドキュメントもすべてマージされた単一のpo
ファイルだったが、先日、分離しちゃった
inside Exgettext
• 内容
• 翻訳対象のマークアップ
• IExへの組み込み
翻訳対象のマークアップ
• 既述のとおり、Elixirの機能である、ユーザ定義sigil
を使う
• 開発者は T foo, bar とすることで、 foo, bar
を翻訳してほしいことを示す。
• Cでは_( foo, bar )なので、ほとんど面倒は変わら
ない(はず)。1ストローク減ってるし。
• sigilとは、単なるリテラルに神秘の力()を与える印
• 組み込みで正規表現の rなどあるが、ユーザが定義することもできる
• 今回の Tについて、神秘()の中身
• コンパイル時にやりたいことは、
• poファイルを作成するための文字列を登録する
• 実行時にやりたいことは、
• ロケールに合わせてexmoを参照した結果を返す
sigil_T
https://www.shroudoftheavatar.com/forum/index.php?threads/quick-and-dirty-mod-to-the-magic-sigil.3583/
ということで、レッツ
defmacro sigil_T
@doc """
~T is detect to translate target string.
"""
defmacro sigil_T({:<<>>, _line, [string]}, options) do
binary = Macro.unescape_string(string)
case options do
[] ->
quote do: txt(unquote(binary))
options ->
options = List.to_atom(options)
v = {:"var!", [], [{options, [], nil}]}
quote do
txt(unquote(binary), unquote(v))
end
end
end
本当の神秘はtxt/2
var = ja ;
T foo var などとすると、動的
に言語指定できるための仕組み
リテラル文字列のAST表現(バ
イナリ)
本体はこちら
@doc """
translate target string by lang.
"""
defmacro txt(s, lang) do
r = __CALLER__
path = System.get_env("PWD")
app = get_app()
put_dets(s, %{line: r.line,
file: Exgettext.Util.relative(r.file, path),
function: r.function })
quote bind_quoted: [app: app, s: s, lang: lang] do
Exgettext.Runtime.gettext(app, s, lang)
end
end
• コンパイル時にマクロ展開の副作用と
して、detsへ文字列が登録される。
• プログラム実行時は影響なし。
• line, fileなどは、マクロ呼び出し元
• コンパイル時、マクロはこのASTを返し、コード生成される。
• したがって、プログラム実行時はコレが実行され、gettext/3
関数を呼び出し、langに合わせた翻訳文に変換される。
ドキュメントの地域化
• @docや@moduledocも翻訳対象にすると、IExや
ex_docとかでマニュアルも地域化できるかも
• ということで、これらも対象にしたいので、
l10n.xgettextタスク中で、Code.get_docs/2を
使って収集
iexのhコマンド
• iexのhコマンドは、単なるimportされたマクロに
過ぎないので、別モジュールでh/1として作成し
importすれば上書きできる
• Exgettext.Helper.h(module.fun / arity)もただの
マクロとしてIEx.Helperを参考に実装
• iexから利用するときにimport Exgettext.Helper
することで有効になる
実験: オレオレh/2の作成
defmodule Exgettexttalk do
require IEx.Helpers
defmacro h() do
quote do
IEx.Helpers.h()
end
end
defmacro h({:/, _, [:iiiii, 0]}) do
"you success :overwritting iex helper."
end
defmacro h(call) do
quote do
IEx.Helpers.h(unquote(call))
end
end
end
h :iiiii/0という独自コマンドの定義
その他は、本物のhコマンドを呼び出
す
実験: オレオレh/2の組み込み
$ iex -S mix
Eshell V6.3 (abort with ^G)
Interactive Elixir (1.1.0-dev) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> import Exgettexttalk
nil
iex(2)> h :iiiii/0
"you success :overwritting iex helper."
iex(3)> h Enum.reverse/1
def reverse(collection)
Reverses the collection.
Examples
┃ iex> Enum.reverse([1, 2, 3])
┃ [3, 2, 1]
iex(4)>
ちゃんと割り込んで仕込んだメッセージを
表示できた。
その他のコマンドのヘルプは通常どおり表
示された。ということで、原理的には翻訳
できなかったら、本物を呼び出して表示す
ればよい!
実演
• サンプルプロジェクトのl10n化(ja)
• IExでのドキュメントのl10n化(ja)
まとめ
• exgettextつかうと、GNU gettextライブラリとほ
ぼ同じように地域化できる
• ついでにelixirのドキュメントも地域化したからIEx
から参照できるよ。exgettext入れて、おまじない
(import Exgettext.Helper)すればね(ただし翻訳品
質は、…お察しください)
http://www.mageewp.com/make-wordpress-themes-translation-ready.html
ご静聴ありがとうございました
• リソース
• elixir/iex/ex_unitリファレンスマニュアル
• http://www.maqcsa.org/elixir/docs/
• elixirリファレンス(上記)の日本語翻訳ソース
• https://github.com/k1complete/l10n_elixir
• exgettextソース
• https://github.com/k1complete/exgettext

Contenu connexe

Tendances

20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526 masahitojp
 
PostgreSQLとpython
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpythonSoudai Sone
 
tse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティAtsuo Ishimoto
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうEsehara Shigeo
 
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapyPython 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy敦志 金谷
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?Aki Ariga
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Atsuo Ishimoto
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語GoYoshifumi Yamaguchi
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装したt-sin
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Tetsuya Morimoto
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
 
Shib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPPShib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPPSATOSHI TAGOMORI
 
Boost.python
Boost.pythonBoost.python
Boost.pythonfate_fox
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめryos36
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門Yoshitaka Seo
 
8 language deployments on GCE and GAE #gcpja
8 language deployments on GCE and GAE #gcpja8 language deployments on GCE and GAE #gcpja
8 language deployments on GCE and GAE #gcpjaSATOSHI TAGOMORI
 
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Kir Chou
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAryos36
 

Tendances (20)

20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526
 
PostgreSQLとpython
PostgreSQLとpythonPostgreSQLとpython
PostgreSQLとpython
 
tse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティ
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
 
Python 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapyPython 2/3コード共存戦略 #osakapy
Python 2/3コード共存戦略 #osakapy
 
なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?なぜ科学計算にはPythonか?
なぜ科学計算にはPythonか?
 
Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料Python 3.6 リリースパーティー 発表資料
Python 3.6 リリースパーティー 発表資料
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
 
謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した謎の言語Forthが謎なので実装した
謎の言語Forthが謎なので実装した
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
 
Python入門
Python入門Python入門
Python入門
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 
Shib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPPShib: WebUI tool provides crossover of Hive and MPP
Shib: WebUI tool provides crossover of Hive and MPP
 
Rust-DPDK
Rust-DPDKRust-DPDK
Rust-DPDK
 
Boost.python
Boost.pythonBoost.python
Boost.python
 
Polyphony IO まとめ
Polyphony IO まとめPolyphony IO まとめ
Polyphony IO まとめ
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
8 language deployments on GCE and GAE #gcpja
8 language deployments on GCE and GAE #gcpja8 language deployments on GCE and GAE #gcpja
8 language deployments on GCE and GAE #gcpja
 
Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!Python パッケージの影響を歴史から理解してみよう!
Python パッケージの影響を歴史から理解してみよう!
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
 

Similaire à Exgettextの話

Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索Akio Ishida
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールNobuhisa Koizumi
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
 
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうかOedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうかMinero Aoki
 
Extending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanExtending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanShigeru Hanada
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
Python Kyoto study
Python Kyoto studyPython Kyoto study
Python Kyoto studyNaoya Inada
 
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターgenuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターsohta
 
JavaScript経験者のためのGo言語入門
JavaScript経験者のためのGo言語入門JavaScript経験者のためのGo言語入門
JavaScript経験者のためのGo言語入門Shohei Arai
 
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Tadahiro Ishisaka
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)泰 増田
 
Getting Started with Graph Database with Python
Getting Started with Graph Database with PythonGetting Started with Graph Database with Python
Getting Started with Graph Database with Pythonロフト くん
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門cch-robo
 
Emacsでの翻訳 - Emacsで訳す、gettextで国際化されたソフトウェア
Emacsでの翻訳 - Emacsで訳す、gettextで国際化されたソフトウェアEmacsでの翻訳 - Emacsで訳す、gettextで国際化されたソフトウェア
Emacsでの翻訳 - Emacsで訳す、gettextで国際化されたソフトウェアMasaharu IWAI
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大openrtm
 

Similaire à Exgettextの話 (20)

Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうかOedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
Oedo Ruby Conference 04: Ruby会議でSQLの話をするのは間違っているだろうか
 
Extending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanExtending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 Japan
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
Ll tiger clojure
Ll tiger clojureLl tiger clojure
Ll tiger clojure
 
Python Kyoto study
Python Kyoto studyPython Kyoto study
Python Kyoto study
 
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターgenuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
 
JavaScript経験者のためのGo言語入門
JavaScript経験者のためのGo言語入門JavaScript経験者のためのGo言語入門
JavaScript経験者のためのGo言語入門
 
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)
 
Getting Started with Graph Database with Python
Getting Started with Graph Database with PythonGetting Started with Graph Database with Python
Getting Started with Graph Database with Python
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門
 
Emacsでの翻訳 - Emacsで訳す、gettextで国際化されたソフトウェア
Emacsでの翻訳 - Emacsで訳す、gettextで国際化されたソフトウェアEmacsでの翻訳 - Emacsで訳す、gettextで国際化されたソフトウェア
Emacsでの翻訳 - Emacsで訳す、gettextで国際化されたソフトウェア
 
160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大160705-03 RTミドルウエア講習会・名城大
160705-03 RTミドルウエア講習会・名城大
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 

Dernier

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

Dernier (8)

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

Exgettextの話