SlideShare a Scribd company logo
MessagePack for CLIと
そこから学ぶ.NETの
マルチプラットフォーム対応
.NET Fringe Japan 2016
藤原 雄介
自己紹介
• 藤原 雄介 @yfakariya
• MVP for Visual Studio and Development Technologies 2015-
• .NET 系の本をいくつか翻訳したり、OSS 書いたりしてます
• 『.NETのクラスライブラリ設計』『プログラミング.NET
Framework』等
• BotR、Azureのドキュメントetc.
• Msgpack for CLIコミッタ、ちょこちょことPR
今日のお題
• クロスプラットフォームな.NETのOSSシリアライザーを週末に
作った話
• 作ったものの説明
• クロスプラットフォーム実装の事例
• ライブラリ、ビルド、テスト
余談:週末OSSるには
• 好きな分野でやる
• 結構好きな分野って重ならないもの
• あえてメジャーどころに手を出さない
• 他に人に追い抜かれてやる気が、とかない
• シリアライザーとか DispatchProxy とか他にやる人いない……はず
• 完璧を求めず、面の皮を厚くする
• バグがあった? OK直すよ(でも今日は寝る)
• コミット履歴が汚い? 知らんがな
• まずはやってみる
• 周囲の理解を得る
MessagePack for CLIとは
シリアライザーライブラリ
• MessagePack for CLIというシリアライザーライブラリ
• シリアライザーとは何か、という哲学的な話はしません
• 参照でつながった一連のオブジェクト(オブジェクトのグラフ構造)
を一直線(シリアル)なバイト列に変換する(そして戻す)コンポー
ネント
MessagePack for CLI
• 相互運用可能なバイナリ形式エンコーディングである
MessagePack(msgpack)の.NET実装
• エンコーダ + シリアライザー
• Msgpack
• バイナリ形式のJSONのようなもの
• バイナリ形式:ProtocolBufferやAvroなど
• Fluentdで使っているフォーマット
• CLI: Command Language Infrastructure,
NOT CommandLine Interface
msgpackエンコーディングのメリット
• JSON に比べて
• 数値のサイズが劇的に小さい
• 特に、-31~127の範囲は 1 バイト
• 文字列のサイズは同じ
• どちらもUTF-8
• 配列のサイズが劇的に小さい
• ヘッダー(1~5バイト) + 要素
• ブレがない
• =と:間違えたり、”つけ忘れたりといった亜種がない
• デシリアライザーの実装が楽
XPLAT
<dependencies>
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework3.5" />
<group targetFramework="WindowsPhone8.0" />
<group targetFramework="MonoAndroid1.0" />
<group targetFramework="MonoTouch1.0" />
<group targetFramework="Xamarin.iOS1.0" />
<group targetFramework=".NETStandard1.1" />
<group targetFramework=".NETStandard1.3" />
+Unity
• Full
• Mscorlib only
MsgPack.nuspec
動作例(地味注意)
シリアライザーの設計
(たぶん)一般的な
シリアライザーの構成要素
Type Introspector
Encoder/DecoderCache
Validator
API Type Model
Mapper
Type Introspector / Type Model
• シリアライズする対象の型をスキャン
• シリアライズ対象のプロパティやフィールドを列挙
• 特別扱いする型の判定
• コレクション
• String
• プリミティブ
• 内部的に処理しやすいオブジェクトモデルに変換しておく
Mapper
• Type Modelをシリアライズ先のエンコードの表現に変換
• JSONなら、Number、String、Bool、Array、Object、Nullと対応づけ
る
• MsgPackの場合、さまざまな整数型、Real32、Real64、Array、Map、
Ext、Nil、Bool
Encoder / Decoder
• 実際のエンコードを行う
• テキスト系(JSONやXML)なら文字エンコーディングも行う
• バイナリ形式の場合、マッピングした型をそのまま書き出す
• ただし、MsgPackの場合は整数値の圧縮表現を処理する
• -31~127の整数→そのまま書き出す
• それ以外の整数:「型ヘッダー+数値のビット表現」で書きだす
Validator
• デコードするバイト列は、そもそも不正な形式かもしれない
• デコードしたデータは、デシリアライズ(逆シリアル化)でき
ない形式かもしれない
• これらの検証処理が必要
Cache
• シリアライザーの内部オブジェクト群の構築はそれなりにコス
トがかかる
• 型(とオプション構成)に対して一意であるため、一度作れば
使いまわすことができる
• 複数の型から使用される型もあるので、結構有効
• ユーザーが自前のシリアル化ロジックを実装したい場合、その
登録先となりうる。
API
• これまでの要素を内部に隠蔽
• ユーザーにとって使いやすいインターフェイスを提供
• 後方互換性を確保
• 特定の標準インターフェイスへの準拠
シリアライザーの構成要素
Type Introspector
Encoder/DecoderCache
Validator
API Type Model
Mapper
SerializationContext
MessagePackSerializer
SerializerAssemblyGenerator
SerializerCodeGenerator
*Attribute
AbstractSerializers.*
GeneratedSerializers.*
[Un]packHelpers
One More Things
MessagePackObject
TypeInfoEncoder
SerializationTarget SerializationMember
AbstractSerializers.*
GeneratedSerializers.*
[Un]packHelpers
Packer
Unpacker
One More Things
SerializerBuilder
設計コンセプト
• コンテキスト
• 特別扱いの許容
• 多くの値型、コレクション型、Null許容型、Tuple
• コード生成
コンテキスト
• キャッシュと設定を保持するインスタンス
• そこを見れば必要なものはある
• DefaultContext
• 多くの場合、コンテキストインスタンスの作成や管理はしたくない
• 既定のインスタンスをグローバルに用意(使用は完全に任意)
• ここに依存はしない(No God)
特別扱いの許容
• 単一の汎用実装は魅力的だが、複雑すぎる
• 特別扱いするとある意味で楽
• 値型(Nullable<T>を含む):多くの場合、メンバーごとのマッピン
グよりも独自表現が適切(例:DateTime)
• コレクション:あえて内部構造にアクセスしないことで汎用化(例:
リンクリストや循環キュー)。GetEnumeratorとAddを使用
• 文字列/バイト列:IEnumerableだが直接マッピング可能、エンコー
ディング
• Tuple:意味論的にヘテロ型配列
コード生成
• リフレクションはあまり速くない
• 実行時のボックス化を避けたい
• ソースコードが吐けると無理が効く
• ビルドプロセスに組み込める
• ステップ実行できる
コード生成の問題
• 技術ごとにサポートするプラットフォームが異なる
• Silverlightは?
• ※開発当初はSilverlight3/4がまだ息をしていた
• WinRTは?
• AOT をフォローできるか(事前生成できるか)
• strategy patternで逃げる
• プラットフォームに合わせた実装
• 無理のない範囲で抽象化
コード生成のリストラクチャリング
• LCG:Silverlightの旧バージョンと共にさようなら
• ExpressionTree:Silverlight5とWin8 SLの不人気と共にさようなら
• 式ベースなので、他の技術(Reflection.EmitやCodeDOM)との差異が著し
くつらかった
• ここはリフレクションでも十分だと考えた
• CodeDOM:更新停止、.NET Core非対応
• RoslynのSyntaxFactoryに絶賛移行中
• そもそもコード生成しなくてもいい部分はコード生成しない
• PackHelpers、UnpackHelpers
XPLAT
実装
テスト
パッケージング
XPLAT実装の一般論
• XPLATにできないところ
• プラットフォーム依存の強いところ
• I/O、スケジューリング等
• 「OSの色が出るところ」:GUI 等
• とはいえ、I/OやスケジューリングはランタイムBCL/FCLやPALが吸
収
• アルゴリズムやインメモリデータ構造はXPLATにしやすい
XPLATにできそうもないところ
Type Introspector
Encoder/DecoderCache
Validator
API Type Model
Mapper
SerializationContext
MessagePackSerializer
SerializerAssemblyGenerator
SerializerCodeGenerator
*Attribute
AbstractSerializers.*
GeneratedSerializers.*
[Un]packHelpers
One More Things
MessagePackObject
TypeInfoEncoder
SerializationTarget
One More Things
SerializerBuilder
SerializationMember
AbstractSerializers.*
GeneratedSerializers.*
[Un]packHelpers
Packer
Unpacker
✔
✔
✔ ✔
✔
✔ ✔
✔
✔
✔
悪魔は細部に宿る
• コード生成は前述のとおりポータビリティがない
• リフレクションAPIには、実はポータビリティがない
• 過去のAPI設計の誤りの清算がしたかった?
• SILVERLIGHTとかUWPとか
• .NET Standard 1.5ならだいぶまし
.NET Platform Standardで解決
• しない
• .NET Fx 3.5、Silverlightは対象外(Unityもねは解決しそう)
• .NET Standard 1.5なら解消とはいうが
• .NET 4.6.2 or .NET Core 1.0以上で「.NET Standard 1.5」
• .NET Standard 2.0に対応する.NET Fxは4.6.1から
AOT
• JITとは異なるところがまだ多い
• Reflection.Emitとかできない
• シリアライザーは特殊なので秘孔をつきやすい(?)
• constrained.コールで死ぬ
class Foo<T> where T : IDictionary<K,V> {
int Bar(T dic) => dic.Count // ExecutionEngineException
}
• 複雑めのジェネリック引数で死ぬ
• DllImportしているCRTが引っかかる
現実
Type Introspector
Encoder/DecoderCache
Validator
API Type Model
Mapper
SerializationContext
MessagePackSerializer
SerializerAssemblyGenerator
SerializerCodeGenerator
*Attribute
AbstractSerializers.*
GeneratedSerializers.*
[Un]packHelpers
One More Things
MessagePackObject
TypeInfoEncoder
SerializationTarget
One More Things
SerializerBuilder
SerializationMember
AbstractSerializers.*
GeneratedSerializers.*
[Un]packHelpers
Packer
Unpacker
✘
✔
✔✘
✘
✘
✘
✘
✘
サポートできないAPI
Collections.Concurrent.*
Threading.*
TypeCode
Reflection.*
Reflection.*
AOT
Reflection.*
✔
Reflection.*
CodeDom.*
解決策
• プロジェクトを分ける
• Net3.5/4.5/4.6、Unity(corlib only/Full)、Xamarin.Android、
Xamarin.iOS、
Silverlight5/8、.NET Standard 1.1/1.3
• #if
• 意外と組み込みのコンパイラー定数がある(SILVERLIGHT、UNITY_xx、
NETSTANDARD1_x)
• NETSTANDARD1_X、.NET Core Dev Tools Previewのcsprojだと組み込まれてない
ので注意
• きっとみんな持ってるReflectionAbstractions
コードの例
テスト
• シリアライザーは幸いにもテストの自動化が容易
• 副作用がない
• 手でテストとかやってられないというより、出来ない
• 入浴中や食事中でも実行できる
テストのやり方
• パターンと境界値によるケースの抽出、実行
• 型
• コード生成の種類
• 組み合わせ・入れ子のパターン
• 本当はここは間引くべき
• 今はT4でコードを生成
• 一番パターンの多い環境で18,345メソッド、少ない環境だとそ
の半分くらい
• .NET 3.5、.NET 4.6、WinRT、WP8、Unity.iOS、Xamarin.iOS
テスト環境
• メイン
• デスクトップPC
• iOS ビルド+テスト
• Mac mini
• iPad mini
• CI
• AppVeyor(OSS plan)
テストツール
• フレームワーク
• NUnit
• NUnitLite(Xamarin)
• NUnitLite ベースのツール(Unity)
• UniRx のツールを移植・改造
• MSTest(WP、UAP)
テスト対象プラットフォーム
プラットフォーム テスト環境
Xamarin Android NUnitlite
Xamarin iOS NUnitlite
.NET Standard 1.1 MSTest
.NET Standard 1.3 MSTest
.NET Standard 1.3 + AOT* MSTest
プラットフォーム テスト環境
.NET 3.5 NUnit
Unity(mscorlib only) n/a
Unity NUnit + ツール
.NET 4.5 n/a
.NET 4.6 NUnit
Silverlight 5 n/a
Windows Phone 8 Silverlight MSTest
* .NET Standard 1.3 の UAP プロジェクトを
テスト用に作り、ネイティブコンパイルして実行
テストの例
ビルドとパッケージング
• .nuspecは手書き
• ビルドは簡単なps1スクリプトで
• PowerShell Coreで動くのかどうかは未検証……
• 基本はMSBuild(というか.sln)べったり
• .NET用.sln
• .NET 3.5用.sln
• Xamarin用.sln
• WinRT/WP/Silverlight系用.sln
• 最近はAppVeyorにお任せ
ビルドの例
Q&A

More Related Content

What's hot

動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
terurou
 
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
信之 岩永
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
 
Bluetoothでgo!
Bluetoothでgo!Bluetoothでgo!
Bluetoothでgo!
Kouji Matsui
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
信之 岩永
 
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話
Masanori Masui
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
Akira Inoue
 
The History of LINQ
The History of LINQThe History of LINQ
The History of LINQ
Yoshifumi Kawai
 
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
Shinnosuke Tokuda
 
An Internal of LINQ to Objects
An Internal of LINQ to ObjectsAn Internal of LINQ to Objects
An Internal of LINQ to Objects
Yoshifumi Kawai
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Akira Inoue
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
 
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Shinnosuke Tokuda
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
decode2016
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDD
Yuuki Takezawa
 
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジーHub DotnetDeveloper
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode Contracts
Yoshifumi Kawai
 
Laravel5.1 Release
Laravel5.1 ReleaseLaravel5.1 Release
Laravel5.1 Release
Yuuki Takezawa
 
The History of Reactive Extensions
The History of Reactive ExtensionsThe History of Reactive Extensions
The History of Reactive Extensions
Yoshifumi Kawai
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしよう
Kouji Matsui
 

What's hot (20)

動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
Bluetoothでgo!
Bluetoothでgo!Bluetoothでgo!
Bluetoothでgo!
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
 
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話
 
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
 
The History of LINQ
The History of LINQThe History of LINQ
The History of LINQ
 
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
 
An Internal of LINQ to Objects
An Internal of LINQ to ObjectsAn Internal of LINQ to Objects
An Internal of LINQ to Objects
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
 
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜Node.js Native ESM への道  〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
 
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDD
 
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode Contracts
 
Laravel5.1 Release
Laravel5.1 ReleaseLaravel5.1 Release
Laravel5.1 Release
 
The History of Reactive Extensions
The History of Reactive ExtensionsThe History of Reactive Extensions
The History of Reactive Extensions
 
これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしよう
 

Viewers also liked

What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
 
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityRuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
 
Beachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JITBeachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JIT
Kouji Matsui
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
 
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
 
Azure Storage Partition Internals
Azure Storage Partition  Internals Azure Storage Partition  Internals
Azure Storage Partition Internals
Takekazu Omi
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
Atomu Hidaka
 
2016年注目の.netテクノロジー
2016年注目の.netテクノロジー2016年注目の.netテクノロジー
2016年注目の.netテクノロジー
Makoto Nishimura
 
C#スクリプティングをアプリケーションで使用する
C#スクリプティングをアプリケーションで使用するC#スクリプティングをアプリケーションで使用する
C#スクリプティングをアプリケーションで使用する
Pierre3 小林
 
Friendly
FriendlyFriendly
Friendly
Takaaki Suzuki
 
Async History in .NET
Async History in .NETAsync History in .NET
Async History in .NET
Takaaki Suzuki
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
 
WPF Interoperability
WPF InteroperabilityWPF Interoperability
WPF Interoperability
Takaaki Suzuki
 
Msgpack cli-tech-aid-2013
Msgpack cli-tech-aid-2013Msgpack cli-tech-aid-2013
Msgpack cli-tech-aid-2013Yusuke Fujiwara
 
DeclarativeSql
DeclarativeSqlDeclarativeSql
DeclarativeSql
Takaaki Suzuki
 
Sevens Algorithm
Sevens AlgorithmSevens Algorithm
Sevens Algorithm
Takaaki Suzuki
 
酒の肴はC# vNext
酒の肴はC# vNext酒の肴はC# vNext
酒の肴はC# vNext
Takaaki Suzuki
 
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
LINQPad with LINQ to BigQuery - Desktop Client for BigQueryLINQPad with LINQ to BigQuery - Desktop Client for BigQuery
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Yoshifumi Kawai
 

Viewers also liked (20)

What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
 
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityRuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
 
Beachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JITBeachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JIT
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
 
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPCZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
 
Azure Storage Partition Internals
Azure Storage Partition  Internals Azure Storage Partition  Internals
Azure Storage Partition Internals
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
2016年注目の.netテクノロジー
2016年注目の.netテクノロジー2016年注目の.netテクノロジー
2016年注目の.netテクノロジー
 
C#スクリプティングをアプリケーションで使用する
C#スクリプティングをアプリケーションで使用するC#スクリプティングをアプリケーションで使用する
C#スクリプティングをアプリケーションで使用する
 
Friendly
FriendlyFriendly
Friendly
 
Async History in .NET
Async History in .NETAsync History in .NET
Async History in .NET
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
 
WPF Interoperability
WPF InteroperabilityWPF Interoperability
WPF Interoperability
 
Msgpack cli-tech-aid-2013
Msgpack cli-tech-aid-2013Msgpack cli-tech-aid-2013
Msgpack cli-tech-aid-2013
 
DeclarativeSql
DeclarativeSqlDeclarativeSql
DeclarativeSql
 
Sevens Algorithm
Sevens AlgorithmSevens Algorithm
Sevens Algorithm
 
酒の肴はC# vNext
酒の肴はC# vNext酒の肴はC# vNext
酒の肴はC# vNext
 
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
LINQPad with LINQ to BigQuery - Desktop Client for BigQueryLINQPad with LINQ to BigQuery - Desktop Client for BigQuery
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
 

Similar to Net fringejp2016

Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
Yuki Igarashi
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
terurou
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
Kaoru NAKAMURA
 
Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
Kouji Matsui
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
keroyonn
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
Kouji Matsui
 
2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF
Atomu Hidaka
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
Narami Kiyokura
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
拓将 平林
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
 
C# と .NET と ・・・
C# と .NET と ・・・C# と .NET と ・・・
C# と .NET と ・・・
ShinichiAoyagi
 
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
Takayoshi Tanaka
 
Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
Tomoharu ASAMI
 
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについてNobukazu Hanada
 
Visual Studio Code でプログラムをデバッグしよう!
Visual Studio Code でプログラムをデバッグしよう!Visual Studio Code でプログラムをデバッグしよう!
Visual Studio Code でプログラムをデバッグしよう!
m ishizaki
 
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
クロスプラットフォーム開発雑感 #pronamaclrhsapporocppクロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
Katsuya Shimizu
 

Similar to Net fringejp2016 (20)

Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
 
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイドYAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
YAPC::Hokkaido 2016 「普段使い言語環境」更新によるスキルリセットサバイバルガイド
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF2015 1025 OSC-Fall Tokyo NETMF
2015 1025 OSC-Fall Tokyo NETMF
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
Azureのサーバーレスで限界を超えよう~スマートスピーカースキル開発を題材に~
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
C# と .NET と ・・・
C# と .NET と ・・・C# と .NET と ・・・
C# と .NET と ・・・
 
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive ProgrammingScalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
 
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
 
Visual Studio Code でプログラムをデバッグしよう!
Visual Studio Code でプログラムをデバッグしよう!Visual Studio Code でプログラムをデバッグしよう!
Visual Studio Code でプログラムをデバッグしよう!
 
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
クロスプラットフォーム開発雑感 #pronamaclrhsapporocppクロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
クロスプラットフォーム開発雑感 #pronamaclrhsapporocpp
 

Recently uploaded

協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
Osaka University
 
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
iPride Co., Ltd.
 
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
Shinichi Hirauchi
 
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
Seiya Shimabukuro
 
Kotest を使って 快適にテストを書こう - KotlinFest 2024
Kotest を使って 快適にテストを書こう - KotlinFest 2024Kotest を使って 快適にテストを書こう - KotlinFest 2024
Kotest を使って 快適にテストを書こう - KotlinFest 2024
Hirotaka Kawata
 
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
Takuya Minagawa
 
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDDなぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
ssuserfcafd1
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日
実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日
実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日
Hideo Kashioka
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 

Recently uploaded (13)

協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
生成AIの実利用に必要なこと-Practical Requirements for the Deployment of Generative AI
 
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
Microsoft Azureで生成AIを使ってみた話 2024/6/14の勉強会で発表されたものです。
 
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
気ままなLLMをAgents for Amazon Bedrockでちょっとだけ飼いならす
 
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
20240621_AI事業者ガイドライン_セキュリティパートの紹介_SeiyaShimabukuro
 
Kotest を使って 快適にテストを書こう - KotlinFest 2024
Kotest を使って 快適にテストを書こう - KotlinFest 2024Kotest を使って 快適にテストを書こう - KotlinFest 2024
Kotest を使って 快適にテストを書こう - KotlinFest 2024
 
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT  vol112 発表資料)
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話(IoTLT vol112 発表資料)
 
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDDなぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
なぜそのDDDは効果が薄いのか?名ばかりDX案件での経験を踏まえて培った他の思考を交えた現代風?のDDD
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日
実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日
実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 

Net fringejp2016

Editor's Notes

  1. ・PSD データのシリアル化を JSON と比較 ・dotnet run でも動かしてみる
  2. プロジェクト構成(最新の master) ReflectionAbstractions.cs CollectionSerializer.cs
  3. T4 の例と、MSTest 切り替えの例 iPad Mini で Unity テスト
  4. PS1 スクリプトの例 AppVeyor の例