SlideShare a Scribd company logo
1 of 83
Copyright 2020 @nuits_jp
Unicodeで半角全角を扱う
Ambiguous(曖昧さ)とUncertainty(不確実性)の恐怖
Atsushi Nakamura
Copyright 2020 @nuits_jp
Easiest Clean Architecture
About Me
Copyright 2020 @nuits_jp Slide 3
About Me
中村 充志 / Atsushi Nakamura
• リコージャパン株式会社 所属
• Enterprise(おもに金融)系SIerのITアーキテクト
• 「持続可能なソフトウェア」の探求がライフワーク
• 2020年の目標
1. 「CleanArchitecture」について登壇したい
2. 「xUnit & Moqハンズオン」開催
3. 構成管理フレンドリーなERモデリングツール作成
• Blog http://www.nuits.jp
• Blog(英語) https://blog.nuits.jp
• Twitter @nuits_jp
Copyright 2020 @nuits_jp Slide 4
Unicodeで半角全角を扱うAmbiguous(曖昧さ)とUncertainty(不確実性)の恐怖
みなさん、こんな経験はありませんか?
Copyright 2020 @nuits_jp Slide 5
例えばこんなとき
• 新しいAPIをお試しで利用するとき、その結果を表示させたい
• 簡単なツールを作るのだがGUIはやりすぎなのでCUIでつくりたい
そして・・・
Overview
Slide 5
Copyright 2020 @nuits_jp Slide 6
コンソールにテーブル形式で結果表示したい!
Copyright 2020 @nuits_jp Slide 7
そんなときの心強い味方
「ConsoleTales」
• https://github.com/khalidabuhakmeh/ConsoleTables
ConsoleTables
Slide 7
Copyright 2020 @nuits_jp Slide 8
でもこれ・・・
Copyright 2020 @nuits_jp Slide 9
全角を使うとレイアウトが崩れてしまいます
全角が・・・
Copyright 2020 @nuits_jp Slide 10
と、いうわけで・・・
Copyright 2020 @nuits_jp Slide 11
全角対応テキストテーブルライブラリを作るしか!?
Copyright 2020 @nuits_jp Slide 12Slide 12
できました!
Copyright 2020 @nuits_jp Slide 13
FluentTextTable
FluentTextTable
• https://github.com/nuitsjp/FluentTextTable
簡単で、柔軟かつ流暢(Fluent)にレイアウトをカスタマイズできるテキスト
テーブルライブラリです。
NuGetから利用可能です。
Slide 13
Copyright 2020 @nuits_jp Slide 14
Basic
Copyright 2020 @nuits_jp Slide 15
Markdown対応
Copyright 2020 @nuits_jp Slide 16
改行や配列を含むプロパティ対応
Copyright 2020 @nuits_jp Slide 17
アライメントや詳細なフォーマットに対応
箇条書きとか!
Copyright 2020 @nuits_jp Slide 18
Borderのカスタマイズ
Copyright 2020 @nuits_jp Slide 19
MarginとPadding
Copyright 2020 @nuits_jp Slide 20
まぁ・・・振り返って気がつきました・・・
Copyright 2020 @nuits_jp Slide 21
やりすぎました!
Copyright 2020 @nuits_jp Slide 22Slide 22
でもこれ実は
Copyright 2020 @nuits_jp Slide 23Slide 23
苦難の連続でした
Copyright 2020 @nuits_jp Slide 24Slide 24
そんな訳で聞いてください
Copyright 2020 @nuits_jp Slide 25
Unicodeで半角全角を扱う
Ambiguous(曖昧さ)とUncertainty(不確実性)の恐怖
Atsushi Nakamura
Copyright 2020 @nuits_jp Slide 26
Unicodeには文字を分類するための各種辞書が規定されています。
東アジア圏の全角・半角を分類するための辞書もあります。
UAX #11: East AsianWidth – Unicode
• http://www.unicode.org/reports/tr11/tr11-38.html
• http://ftp.unicode.org/Public/UNIDATA/EastAsianWidth.txt
Unicodeにおける全角・半角判定
Copyright 2020 @nuits_jp Slide 27
これを読んで処理すれば解決なんですが・・・
Copyright 2020 @nuits_jp Slide 28
まず辞書を読むのが面倒
Copyright 2020 @nuits_jp Slide 29
よく見ると・・・・
• 「;」の前が文字コードのレンジ、その後ろが種別
• レンジは範囲と単独がある
• 未定義のとび版がある
Unicodeにおける全角・半角判定
Copyright 2020 @nuits_jp Slide 30
• 同じ種別なのに単一の範囲ではなく複数に分けられている
(文字の中身の種類が違うから)
Copyright 2020 @nuits_jp Slide 31
と、いうわけで
Copyright 2020 @nuits_jp Slide 32
まず全角・半角判定ライブラリを作ることにしました
Copyright 2020 @nuits_jp Slide 33Slide 33
できました!
Copyright 2020 @nuits_jp Slide 34
EastAsianWidthDotNet
EastAsianWidthDotNet
https://github.com/nuitsjp/EastAsianWidthDotNet
• 辞書をパースするサポートライブラリを作成
• パース結果を無駄を省いて最適化
• 辞書などのリソースを都度読むと遅いのでT4テンプレートでコード生成
Copyright 2020 @nuits_jp Slide 35
で実感します
Copyright 2020 @nuits_jp Slide 36
Ambiguous(曖昧)について
Copyright 2020 @nuits_jp Slide 37
辞書は文字コードの範囲と、対象範囲の種別が規定されている。
EastAsianWidthの種別は6つ
• Ambiguous
• Fullwidth
• Halfwidth
• Narrow
• Wide
• Neutral
これらが言語圏によって扱いが規定されている。
Unicodeにおける全角・半角判定
Copyright 2020 @nuits_jp Slide 38
種別 東アジア それ以外
Ambiguous 全角 半角(正確にはnarrow)
Fullwidth 全角 未使用
Halfwidth 半角 未使用
Narrow 半角 半角(正確にはnarrow)
Wide 全角 未使用
Neutral 半角 半角(正確にはnarrow)
Unicodeにおける全角・半角判定
ウィキペディアより
A(Ambiguous; 曖昧)
文脈によって文字幅が異なる文字。東アジアの組版とそれ以外の組版の両方に出現し、
東アジアの従来文字コードではいわゆる全角として扱われることがある。
ギリシア文字やキリル文字など。
Copyright 2020 @nuits_jp Slide 39
なるほど!
ギリシャ文字とキリル文字の言語圏を
調べて特殊処理すればいいんだな!
👆勘違い
Copyright 2020 @nuits_jp Slide 40
CultureInfoをひとつづつ全部調べた。数日使った。 👈勘違い
途中までしらべた
Copyright 2020 @nuits_jp Slide 41
ここまできて「はた」と気が付きました
Copyright 2020 @nuits_jp Slide 42
Not東アジアって英語圏とかも全部じゃん?
Copyright 2020 @nuits_jp Slide 43
「Not東アジア」ではなく「東アジア」を判定する
Copyright 2020 @nuits_jp Slide 44
東アジアのCultureInfoのプレフィックス
総当たりで調べた!(漏れてたら教えてください)
Copyright 2020 @nuits_jp Slide 45
完成!
Copyright 2020 @nuits_jp Slide 46Slide 46
と思ったところから「闇」の始まりだった
Copyright 2020 @nuits_jp Slide 47
種別 東アジア それやめろ文字
Ambiguous 全角
Neutral 半角
闇の入口
Copyright 2020 @nuits_jp Slide 48
種別 東アジア それやめろ文字
Ambiguous 全角
Neutral 半角
闇の入口
Copyright 2020 @nuits_jp Slide 49
種別 東アジア それやめろ文字
Ambiguous 全角
Neutral 半角
闇の入口
Copyright 2020 @nuits_jp Slide 50
種別 東アジア それやめろ文字
Ambiguous 全角
Neutral 半角
闇の入口
Copyright 2020 @nuits_jp Slide 51Slide 51
ん~。フォントファイル解析して文字幅測定するか?
Copyright 2020 @nuits_jp Slide 52Slide 52
ダメでした
Copyright 2020 @nuits_jp Slide 53
闇の入口
ここになんの変哲もない砂時計があります。
Copyright 2020 @nuits_jp Slide 54
闇の入口
ここになんの変哲もない砂時計があります。
これを8個並べましょう。
Copyright 2020 @nuits_jp Slide 55
闇の入口
ここになんの変哲もない砂時計があります。
これを8個並べましょう。
Copyright 2020 @nuits_jp Slide 56
闇の入口
ここになんの変哲もない砂時計があります。
これを8個並べましょう。
えっ!?
Copyright 2020 @nuits_jp Slide 57
さん。まさかの0.75角!?
Copyright 2020 @nuits_jp Slide 58
続けて調べると、怪しい文字がぞろぞろ・・・
Copyright 2020 @nuits_jp Slide 59
結論
Copyright 2020 @nuits_jp Slide 60
完璧を追い求めるのは無理。
怪しい文字が崩れるのは諦めろ。
結論
Slide 60
Copyright 2020 @nuits_jp Slide 61
そして月日は流れる
Copyright 2020 @nuits_jp Slide 62
FluentTextTable完成!
Copyright 2020 @nuits_jp Slide 63
で、思うわけですよ
Copyright 2020 @nuits_jp Slide 64
日本人なら・・・
こんな感じで罫線文字(┌┬┘とか)使いたいよね?
Borderは全角にもマルチ文字にもカスタマイズ可能!
デフォルトのプリセット作るか!
Copyright 2020 @nuits_jp Slide 65
日本人なら・・・
こんな感じで罫線文字(┌┬┘とか)使いたいよね?
Borderは全角にもマルチ文字にもカスタマイズ可能!
デフォルトのプリセット作るか!
👇できました!
Copyright 2020 @nuits_jp Slide 66
動かしました!
Copyright 2020 @nuits_jp Slide 67
(*´Д`)はぁ・・・?
Copyright 2020 @nuits_jp Slide 68
メモ帳様ならちゃんと!
Copyright 2020 @nuits_jp Slide 69
あれ?
Copyright 2020 @nuits_jp Slide 70
あれれ??
これはもしや・・・
Copyright 2020 @nuits_jp Slide 71
?
ここに「─(罫線)」があるじゃろ?
( ^ω^)
⊃─⊂
Copyright 2020 @nuits_jp Slide 72
?
ここに「─(罫線)」があるじゃろ?
( ^ω^)
⊃─⊂
これを「〇」と合わせて
( ^ω^)
≡ ≡
Copyright 2020 @nuits_jp Slide 73
?
ここに「─(罫線)」があるじゃろ?
( ^ω^)
⊃─⊂
これを「〇」と合わせて
( ^ω^)
≡ ≡
こうじゃ!
( ^ω^)
⊃ ⊂
Copyright 2020 @nuits_jp Slide 74
ええっ!?
貫通してる!?
Copyright 2020 @nuits_jp Slide 75
あっっぽーぺん!?
Copyright 2020 @nuits_jp Slide 76
コンソールのバグ・・・
Copyright 2020 @nuits_jp Slide 77
いや、まだあわてるような時間じゃない
Copyright 2020 @nuits_jp Slide 78Slide 78
きっと我らの「WindowsTerminal」様なら・・・
Copyright 2020 @nuits_jp Slide 79
ダメでした!
貫通はしない!
だがしかし!
半角!
それでもおれらの「WindowsTerminal様なら
Slide 79
Copyright 2020 @nuits_jp Slide 80
諦めました
Copyright 2020 @nuits_jp Slide 81Slide 81
Unicodeで半角全角を扱う
Ambiguous(曖昧さ)とUncertainty(不確実性)の恐怖
Copyright 2020 @nuits_jp Slide 82Slide 82
味わっていただけましたか?
Copyright 2020 @nuits_jp Slide 83
ThankYou!
おしまい!

More Related Content

What's hot

分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17Takuya Akiba
 
Superpixel Sampling Networks
Superpixel Sampling NetworksSuperpixel Sampling Networks
Superpixel Sampling Networksyukihiro domae
 
[研究室論文紹介用スライド] Adversarial Contrastive Estimation
[研究室論文紹介用スライド] Adversarial Contrastive Estimation[研究室論文紹介用スライド] Adversarial Contrastive Estimation
[研究室論文紹介用スライド] Adversarial Contrastive EstimationMakoto Takenaka
 
第7回 「眼科救急」
第7回 「眼科救急」第7回 「眼科救急」
第7回 「眼科救急」清水 真人
 
パワポは「最後」に開く-すぐできる!プレゼン資料作成術「大掃除編」
パワポは「最後」に開く-すぐできる!プレゼン資料作成術「大掃除編」パワポは「最後」に開く-すぐできる!プレゼン資料作成術「大掃除編」
パワポは「最後」に開く-すぐできる!プレゼン資料作成術「大掃除編」Michiyo Fukada
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みyuichi takeda
 
今から実践できる㊙スライド作成術
今から実践できる㊙スライド作成術今から実践できる㊙スライド作成術
今から実践できる㊙スライド作成術RadiumProduction
 
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話Nobuhiro Yoshitake
 
今すぐ使える輸液の基礎2020
今すぐ使える輸液の基礎2020今すぐ使える輸液の基礎2020
今すぐ使える輸液の基礎2020Tsuneyasu Yoshida
 
私の考える輸液療法 Ver.2(症例で学ぶ輸液療法)
私の考える輸液療法 Ver.2(症例で学ぶ輸液療法)私の考える輸液療法 Ver.2(症例で学ぶ輸液療法)
私の考える輸液療法 Ver.2(症例で学ぶ輸液療法)Shun Yagi
 
論文紹介:Omnivore: A Single Model for Many Visual Modalities
論文紹介:Omnivore: A Single Model for Many Visual Modalities論文紹介:Omnivore: A Single Model for Many Visual Modalities
論文紹介:Omnivore: A Single Model for Many Visual ModalitiesToru Tamaki
 
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~ryuz88
 
行銷策略與規劃
行銷策略與規劃行銷策略與規劃
行銷策略與規劃滄碩 劉
 
僕らのふりかえり戦略 -チームのコンパスをつくる- #agilesamurai
僕らのふりかえり戦略 -チームのコンパスをつくる- #agilesamurai僕らのふりかえり戦略 -チームのコンパスをつくる- #agilesamurai
僕らのふりかえり戦略 -チームのコンパスをつくる- #agilesamuraiTakao Oyobe
 
BigQueryとTableauによるカスタマージャーニー分析
BigQueryとTableauによるカスタマージャーニー分析BigQueryとTableauによるカスタマージャーニー分析
BigQueryとTableauによるカスタマージャーニー分析CROSSHACK, Inc.
 
すぐに分かる!プロジェクト計画の作り方
すぐに分かる!プロジェクト計画の作り方すぐに分かる!プロジェクト計画の作り方
すぐに分かる!プロジェクト計画の作り方Eisuke Sugitani
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper. challenge
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of VeinTokoroten Nakayama
 
研究発表を準備する(2022年版)
研究発表を準備する(2022年版)研究発表を準備する(2022年版)
研究発表を準備する(2022年版)Takayuki Itoh
 
カフェイン中毒
カフェイン中毒カフェイン中毒
カフェイン中毒清水 真人
 

What's hot (20)

分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17
 
Superpixel Sampling Networks
Superpixel Sampling NetworksSuperpixel Sampling Networks
Superpixel Sampling Networks
 
[研究室論文紹介用スライド] Adversarial Contrastive Estimation
[研究室論文紹介用スライド] Adversarial Contrastive Estimation[研究室論文紹介用スライド] Adversarial Contrastive Estimation
[研究室論文紹介用スライド] Adversarial Contrastive Estimation
 
第7回 「眼科救急」
第7回 「眼科救急」第7回 「眼科救急」
第7回 「眼科救急」
 
パワポは「最後」に開く-すぐできる!プレゼン資料作成術「大掃除編」
パワポは「最後」に開く-すぐできる!プレゼン資料作成術「大掃除編」パワポは「最後」に開く-すぐできる!プレゼン資料作成術「大掃除編」
パワポは「最後」に開く-すぐできる!プレゼン資料作成術「大掃除編」
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組み
 
今から実践できる㊙スライド作成術
今から実践できる㊙スライド作成術今から実践できる㊙スライド作成術
今から実践できる㊙スライド作成術
 
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話インセプションデッキ:やらないことリストとトレードオフスライダーをやってる話
インセプションデッキ: やらないことリストと トレードオフスライダーをやってる話
 
今すぐ使える輸液の基礎2020
今すぐ使える輸液の基礎2020今すぐ使える輸液の基礎2020
今すぐ使える輸液の基礎2020
 
私の考える輸液療法 Ver.2(症例で学ぶ輸液療法)
私の考える輸液療法 Ver.2(症例で学ぶ輸液療法)私の考える輸液療法 Ver.2(症例で学ぶ輸液療法)
私の考える輸液療法 Ver.2(症例で学ぶ輸液療法)
 
論文紹介:Omnivore: A Single Model for Many Visual Modalities
論文紹介:Omnivore: A Single Model for Many Visual Modalities論文紹介:Omnivore: A Single Model for Many Visual Modalities
論文紹介:Omnivore: A Single Model for Many Visual Modalities
 
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
 
行銷策略與規劃
行銷策略與規劃行銷策略與規劃
行銷策略與規劃
 
僕らのふりかえり戦略 -チームのコンパスをつくる- #agilesamurai
僕らのふりかえり戦略 -チームのコンパスをつくる- #agilesamurai僕らのふりかえり戦略 -チームのコンパスをつくる- #agilesamurai
僕らのふりかえり戦略 -チームのコンパスをつくる- #agilesamurai
 
BigQueryとTableauによるカスタマージャーニー分析
BigQueryとTableauによるカスタマージャーニー分析BigQueryとTableauによるカスタマージャーニー分析
BigQueryとTableauによるカスタマージャーニー分析
 
すぐに分かる!プロジェクト計画の作り方
すぐに分かる!プロジェクト計画の作り方すぐに分かる!プロジェクト計画の作り方
すぐに分かる!プロジェクト計画の作り方
 
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tipscvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
 
研究発表を準備する(2022年版)
研究発表を準備する(2022年版)研究発表を準備する(2022年版)
研究発表を準備する(2022年版)
 
カフェイン中毒
カフェイン中毒カフェイン中毒
カフェイン中毒
 

More from Atsushi Nakamura

Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
Settings SyncとCodespaceで体験する新世代へのパラダイムシフトSettings SyncとCodespaceで体験する新世代へのパラダイムシフト
Settings SyncとCodespaceで体験する新世代へのパラダイムシフトAtsushi Nakamura
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021Atsushi Nakamura
 
世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョン世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョンAtsushi Nakamura
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
世界一わかりやすいClean Architecture release-preview
世界一わかりやすいClean Architecture release-preview世界一わかりやすいClean Architecture release-preview
世界一わかりやすいClean Architecture release-previewAtsushi Nakamura
 
世界一わかりやすいClean Architecture alpha-1
世界一わかりやすいClean Architecture alpha-1世界一わかりやすいClean Architecture alpha-1
世界一わかりやすいClean Architecture alpha-1Atsushi Nakamura
 
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発Atsushi Nakamura
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Atsushi Nakamura
 
継続的にテスト可能な設計を考える
継続的にテスト可能な設計を考える継続的にテスト可能な設計を考える
継続的にテスト可能な設計を考えるAtsushi Nakamura
 
継続的にテスト可能な設計を考える ベータ版
継続的にテスト可能な設計を考える ベータ版継続的にテスト可能な設計を考える ベータ版
継続的にテスト可能な設計を考える ベータ版Atsushi Nakamura
 
α版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるα版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるAtsushi Nakamura
 
App center analyticsを使い倒そう
App center analyticsを使い倒そうApp center analyticsを使い倒そう
App center analyticsを使い倒そうAtsushi Nakamura
 
Old:App center analyticsを使い倒そう
Old:App center analyticsを使い倒そうOld:App center analyticsを使い倒そう
Old:App center analyticsを使い倒そうAtsushi Nakamura
 
Xamarin.forms navigation overview
Xamarin.forms navigation overviewXamarin.forms navigation overview
Xamarin.forms navigation overviewAtsushi Nakamura
 
App center analyticsを使い倒そう
App center analyticsを使い倒そうApp center analyticsを使い倒そう
App center analyticsを使い倒そうAtsushi Nakamura
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけらAtsushi Nakamura
 
Blue monkey architecture overview
Blue monkey architecture overviewBlue monkey architecture overview
Blue monkey architecture overviewAtsushi Nakamura
 
Xamarin Dev days 2 xamarin.forms ja
Xamarin Dev days 2   xamarin.forms jaXamarin Dev days 2   xamarin.forms ja
Xamarin Dev days 2 xamarin.forms jaAtsushi Nakamura
 
Why prism for xamarin.forms
Why prism for xamarin.formsWhy prism for xamarin.forms
Why prism for xamarin.formsAtsushi Nakamura
 
Enterpriseから見たXamarinの可能性
Enterpriseから見たXamarinの可能性Enterpriseから見たXamarinの可能性
Enterpriseから見たXamarinの可能性Atsushi Nakamura
 

More from Atsushi Nakamura (20)

Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
Settings SyncとCodespaceで体験する新世代へのパラダイムシフトSettings SyncとCodespaceで体験する新世代へのパラダイムシフト
Settings SyncとCodespaceで体験する新世代へのパラダイムシフト
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
 
世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョン世界一わかりやすいClean Architecture - DroidKaigiバージョン
世界一わかりやすいClean Architecture - DroidKaigiバージョン
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
世界一わかりやすいClean Architecture release-preview
世界一わかりやすいClean Architecture release-preview世界一わかりやすいClean Architecture release-preview
世界一わかりやすいClean Architecture release-preview
 
世界一わかりやすいClean Architecture alpha-1
世界一わかりやすいClean Architecture alpha-1世界一わかりやすいClean Architecture alpha-1
世界一わかりやすいClean Architecture alpha-1
 
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0
 
継続的にテスト可能な設計を考える
継続的にテスト可能な設計を考える継続的にテスト可能な設計を考える
継続的にテスト可能な設計を考える
 
継続的にテスト可能な設計を考える ベータ版
継続的にテスト可能な設計を考える ベータ版継続的にテスト可能な設計を考える ベータ版
継続的にテスト可能な設計を考える ベータ版
 
α版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考えるα版 継続的にテスト可能な設計を考える
α版 継続的にテスト可能な設計を考える
 
App center analyticsを使い倒そう
App center analyticsを使い倒そうApp center analyticsを使い倒そう
App center analyticsを使い倒そう
 
Old:App center analyticsを使い倒そう
Old:App center analyticsを使い倒そうOld:App center analyticsを使い倒そう
Old:App center analyticsを使い倒そう
 
Xamarin.forms navigation overview
Xamarin.forms navigation overviewXamarin.forms navigation overview
Xamarin.forms navigation overview
 
App center analyticsを使い倒そう
App center analyticsを使い倒そうApp center analyticsを使い倒そう
App center analyticsを使い倒そう
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
Blue monkey architecture overview
Blue monkey architecture overviewBlue monkey architecture overview
Blue monkey architecture overview
 
Xamarin Dev days 2 xamarin.forms ja
Xamarin Dev days 2   xamarin.forms jaXamarin Dev days 2   xamarin.forms ja
Xamarin Dev days 2 xamarin.forms ja
 
Why prism for xamarin.forms
Why prism for xamarin.formsWhy prism for xamarin.forms
Why prism for xamarin.forms
 
Enterpriseから見たXamarinの可能性
Enterpriseから見たXamarinの可能性Enterpriseから見たXamarinの可能性
Enterpriseから見たXamarinの可能性
 

Unicodeで半角全角を扱うAmbiguous(曖昧さ)とUncertainty(不確実性)の恐怖