Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
macのunicode正規化.pdf
Search
Daiki Ikeshima
March 20, 2023
Programming
0
34k
macのunicode正規化.pdf
Daiki Ikeshima
March 20, 2023
Tweet
Share
More Decks by Daiki Ikeshima
See All by Daiki Ikeshima
MLOpsの「あるある」課題の解決と、そのためのライブラリgokart
mski_iksm
1
1.4k
gokartのキャッシュ競合防止のロック機能
mski_iksm
0
2.3k
実臨床・Webサービス領域での機械学習研究 開発の標準化
mski_iksm
8
26k
高速化・並列化・標準化で スケールするML予測システムの開発
mski_iksm
5
3.2k
pythonでメタプログラミング(メタクラス編)
mski_iksm
1
490
パイプラインツールgokartのタスク競合を解消した話
mski_iksm
0
220
Other Decks in Programming
See All in Programming
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
3
1.9k
GraphQL×Railsアプリのデータベース負荷分散 - 月間3,000万人利用サービスを無停止で
koxya
1
1.1k
Playwrightはどのようにクロスブラウザをサポートしているのか
yotahada3
7
2.3k
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
実践AIチャットボットUI実装入門
syumai
7
2.5k
ABEMAモバイルアプリが Kotlin Multiplatformと歩んだ5年 ─ 導入と運用、成功と課題 / iOSDC 2025
akkyie
0
330
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
23
12k
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
920
Le côté obscur des IA génératives
pascallemerrer
0
120
CSC509 Lecture 06
javiergs
PRO
0
240
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
140
開発生産性を上げるための生成AI活用術
starfish719
1
170
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Producing Creativity
orderedlist
PRO
347
40k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
How GitHub (no longer) Works
holman
315
140k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
KATA
mclloyd
32
15k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
850
Side Projects
sachag
455
43k
Why Our Code Smells
bkeepers
PRO
339
57k
Transcript
"*νʔϜౢେथ NBDͷ6OJDPEFਖ਼نԽ UFDIUBML
ϦϯΫ͕ݟ͔ͭΒͳ͍͕ൃੜ HJUMBC্Ͱཧ͍ͯ͠ΔυΩϡϝϯτதͷϦϯΫ͕ݟ͔ͭΒͳ͍ "*νʔϜͰHJUMBC্ͰυΩϡϝϯτͷཧΛߦ͍ͬͯΔ XJLJͱൺֱͯ͠ߋ৽࣌ͷϐΞϨϏϡʔ͕Γ͔ͬͨ͢Γɺ$*ʹΑΔࣗಈνΣοΫ͕Γ͔ͬͨ͢ ΓͳͲͷϝϦοτ͕͋Δ $*ͰͷࣗಈϦϯΫνΣοΫͰϑΝΠϧ͕ݟ͔ͭΒͳ͍Τϥʔ͕ൃੜ ϑΝΠϧ͋ΔͣͳͷʹͳΜͰʁʁʁ
ݪҼຊޠϑΝΠϧͷ6OJDPEFਖ਼نԽํ๏ͷϒϨ ຊޠϑΝΠϧ໊͕ϑΝΠϧ࣮ମͱϦϯΫͰҰக͍ͯ͠ͳ͔ͬͨͷͰ ݟ͔ͭΒͳ͔ͬͨ ϑΝΠϧ࣮ମɿ 99σʔλੳυΩϡϝϯτ ϦϯΫɿ 99σʔλੳυΩϡϝϯτ aVD aVDaV ʮσʯͱ͍͏ͭͷ߹ࡁΈจࣈ
جఈจࣈʮςʯʴ݁߹จࣈʮʃʯͷ݁߹จࣈྻ ҧ͏จࣈྻʹͳ͍ͬͯͨͷͰ ϦϯΫͷϑΝΠϧ͕ݟ͔ͭΒͳ͍
߹ࡁΈจࣈWT݁߹จࣈྻ Ͳͬͪ߹ͱݺͿͱ͍͜͠ͷͰɺ ຊൃදͰʮ߹ࡁΈจࣈʯͱʮ݁߹จࣈྻʯͰݺশ͢Δ ߹ࡁΈจࣈ ໊લ͕͍͜͠ͷͰࠞಉʹҙ͕ඞཁɻจࣈͳͷ͔จࣈྻͳͷ͔Ͱ໌֬ʹ۠ผͰ͖Δɻ ݁߹จࣈྻʢجఈจࣈʴ݁߹จࣈʣ デ デ aVD
aVDaV ͜ΕΛ߹จࣈͱ͔߹ࣈʢϦΨνϟʣ ͱ͔ݺͿ͜ͱ͋ΓɺฆΒΘ͍͠ 6$4ʢ6OJDPEFޓͷࠃࡍඪ४ن֨ʣ Ͱ߹ྻͱݺͿ 6OJDPEFͷ༻ޠͰɺਖ਼ࣜʹૹΓԾ໊ ͳ͠Ͱ߹ࡁจࣈ
ͳΜͰจࣈ͕ͣΕͨʁ ʁʁʁʁʁ 'JOEFSͰϑΝΠϧΛ࡞ ϑΝΠϧ໊Λ߹ࡁΈจࣈʮσʢaVDʣʯͰ࡞ ϑΝΠϧ໊ΛυΩϡϝϯτʹͯ͠ίϐϖͯ͠ϦϯΫΛுΔ ߹ࡁΈจࣈͷ··ίϐϖ͞Ε͍ͯΔͷͰʁ
ϑΝΠϧͱυΩϡϝϯτΛHJUʹίϛοτ ϑΝΠϧυΩϡϝϯτϦϯΫ߹ࡁΈจࣈͷͣʁʁ ࡞ ϦϯΫ HJU DPNNJU
ͳΜͰจࣈ͕ͣΕͨʁ NBDͷ'JOEFSͱHJUͷจࣈྻͷऔΓѻ͍͕ҟͳΔͨΊʹζϨ͕ى͖ͨ 'JOEFSͰϑΝΠϧΛ࡞ ϑΝΠϧ໊Λ߹ࡁΈจࣈʮσʢaVDʣʯͰ࡞ ˠ'JOEFS͕߹ࡁΈจࣈΛղͯ݁͠߹จࣈྻʮσʢaVDaVʣʯʹม ϑΝΠϧ໊ΛυΩϡϝϯτʹͯ͠ίϐϖͯ͠ϦϯΫΛுΔ ߹ࡁΈจࣈͷ··ίϐϖ͞Ε͍ͯΔͷͰʁ
ˠ'JOEFSͷ࡞ͬͨ݁߹จࣈྻͷϑΝΠϧ໊Λίϐϖ͍ͯͨ͠ ϑΝΠϧͱυΩϡϝϯτΛHJUʹίϛοτ ϑΝΠϧυΩϡϝϯτϦϯΫ߹ࡁΈจࣈͷͣʁʁ ˠυΩϡϝϯτϦϯΫ݁߹จࣈྻʮσʢaVDaVʣʯͷ·· ϑΝΠϧ࣮ମHJU͕߹ࡁΈจࣈʮσʢaVDʣʯʹ࠶ม͍ͯ͠Δ ࡞ ϦϯΫ HJU DPNNJU
6OJDPEFਖ਼نԽ 6OJDPEFਖ਼نԽɺݟ͕ͨҰॹͳͷʹίʔυϙΠϯτ͕ҧ͏߹ʹ ੜ͡ΔࠞཚΛܰݮͤ͞Δͱظ͞ΕΔ /'% /PSNBMJ[BUJPO'PSN$BOPOJDBM%FDPNQPTJUJPO ࢹ֮తɾҙຯతʹՁͳจࣈྻʹղ͠ɺ݁߹จࣈྻʹ͢Δ /'$ /PSNBMJ[BUJPO'PSN$BOPOJDBM$PNQPTJUJPO
/'%্ͨ͠Ͱɺࢹ֮తɾҙຯతʹՁͳจࣈྻΛ߹͠ɺ߹ࡁΈจࣈʹ͢Δ σˠς ʃ σˠς ʃˠσ ߹ࡁΈจࣈͱ݁߹จࣈྻ͕͍ࠞͬͯ͡Δͱ͍͜͠ͷͰͲ͔ͬͪʹਖ਼نԽ͢Δ͜ͱ ˞ଞʹಉҰจࣈछͷఆ͕؇͍/',%ɺ/',$͋Δ
'JOEFS͕ਖ਼نԽ͍ͯ͠ΔʁNBD04ʁ NBD04Ͱɺ'JOEFS͕߹ࡁΈจࣈΛ݁߹จࣈྻʹมͯ͠ ͓ΓɺϑΝΠϧγεςϜม͍ͯ͠ͳ͍ NBD04Ͱݕূ 'JOEFS ʮσʢaVDʣʯͱ͍͏ϑΝΠϧΛ࡞͢ΔͱʮσʢaVDaVʣʯͱ͍͏ϑΝΠϧ͕ग़དྷ ্͕͍ͬͯΔɻ ˠ/'%Ͱม͞Ε͍ͯΔ
UFSNJOBM UPVDIίϚϯυͰʮσʢaVDʣʯͱ͍͏ϑΝΠϧΛ࡞͢Δͱɺͦͷ··ͷʮσʢaVDʣʯ ϑΝΠϧ͕Ͱ͖Δɻ ˠม͞Ε͍ͯͳ͍
"1'4มΛ͠ͳ͍ "1'4ͰϑΝΠϧγεςϜϨΠϠʔͰ6OJDPEFਖ਼نԽΛ͍ͯ͠ͳ͍ ࠒ͔ΒNBDΛ࢝Ίଟ͘ͷ"QQMFͰ࠾༻͞Ε͍ͯΔ"1'4 "QQMF'JMF4ZTUFN ɺϑΝΠϧ γεςϜϨΠϠʔͰ6OJDPEFਖ਼نԽΛ͠ͳ͍ ͦΕ·ͰNBDͰ࠾༻͞Ε͍ͯͨ)'4 Ͱ/'%Ͱਖ਼نԽ͞Ε͍ͯͨ )'4 ˠ"1'4ͷҠߦظʹࠞཚ͕͋ͬͨΒ͘͠ɺਖ਼نԽͷҧ͏ϑΝΠϧΛࠞࡏͤ͞Δ͜ͱ͕Ͱ͖ͨ
ˡҠߦظͷϑΝΠϧ ݟ͕ͨಉ໊ͷϑΝΠϧ͕ෳ͋ΓɺΧΦε ࢀߟIUUQTFDMFDUJDMJHIUDPBQGTJTDVSSFOUMZVOVTBCMFXJUINPTU OPOFOHMJTIMBOHVBHFT
"1'46OJDPEFਖ਼نԽΛ͠ͳ͍ͷͳΒɺಉ໊ʹݟ͑ΔϑΝΠϧΛ࡞ΕͪΌ͏Μ͡Όʁ ϥϯλΠϜਖ਼نԽʹΑΓɺಉ໊ʹݟ͑ΔϑΝΠϧ࡞Εͳ͍Α͏ʹͳ͍ͬͯΔ ݱࡏͷNBD04Ͱ࡞Εͳ͍Α͏ʹͳ͍ͬͯΔ NBD04Ҏ߱ͰɺಡΈࠐΈ࣌ʹࢦఆ͞Εͨਖ਼نԽख๏ͷϑΝΠϧ͕ͳ͍߹ɺଞख๏Λࢼͯ͠ ϑΝΠϧΛ୳͢ɺϥϯλΠϜਖ਼نԽ͕ߦΘΕ͍ͯΔɻ ʮσʢaVDʣʯͱ͍͏ϑΝΠϧ͕ͳ͍߹ɺʮσʢaVDaVʣʯ୳ͯ͘͠ΕΔɻ ॻ͖ࠐΈ࣌ʢϑΝΠϧ࡞࣌ʣʹਖ਼نԽ͠ͳ͍ͷͰͲͪΒͷܗࣜͷϑΝΠϧ࡞ΕΔ͕ɺ࡞લʹط ଘϑΝΠϧ͕ͳ͍͔ΛνΣοΫ͢Δɻ͜ͷͱ͖ʹϥϯλΠϜਖ਼نԽΛͬͯطଘϑΝΠϧΛ୳͢ͷͰɺ ผख๏Ͱਖ਼نԽ͞ΕͨϑΝΠϧ໊͕͋Δ߹ɺϑΝΠϧͭ͘ΒΕͳ͍ɻˠಉ໊ʹݟ͑ΔϑΝΠϧ࡞
ΒΕͳ͍ɻ
ΞϓϦέʔγϣϯ͝ͱͷਖ਼نԽରԠ 'JOEFS /'%ͳͷͰίʔυϙΠϯτͷҧ͏ϑΝΠϧ࡞ෆೳ NLEJS UPVDIίϚϯυ ਖ਼نԽͳ͠ͳͷͰҧ͏ίʔυϙΠϯτͷσΟϨΫτϦϑΝΠϧ࡞Մೳɻͨͩ͠࡞લʹϥϯλ ΠϜਖ਼نԽͰϑΝΠϧͷଘࡏ֬ೝ͕͋ΔͷͰɺಉ͡ʹݟ͑ΔσΟϨΫτϦΛॏෳͯ͠࡞͢Δ͜ͱ Ͱ͖ͳ͍ɻ
NW DQίϚϯυ ࢀরϑΝΠϧΛϥϯλΠϜਖ਼نԽͰ୳ࡧ͢ΔɻͳͷͰ࣮ମϑΝΠϧ͕ͲͪΒͷਖ਼نԽͰ͋ͬͯࢀর Մೳɻ ҰํҠಈɾίϐʔઌϑΝΠϧ໊ਖ਼نԽ͞Εͳ͍ɻ͔͠͠Ҡಈɾίϐʔઌʹ͢ͰʹϑΝΠϧ͕͋Δ͔ ͷνΣοΫϥϯλΠϜਖ਼نԽͰߦΘΕɺଘࡏ͍ͯ͠Εૢ࡞Ωϟϯηϧ͞ΕΔɻ
ΞϓϦέʔγϣϯ͝ͱͷਖ਼نԽରԠ MTίϚϯυ NW DQͱಉ༷ͰϥϯλΠϜਖ਼نԽͰϑΝΠϧΛࢀর͢ΔͷͰɺ࣮ମϑΝΠϧ͕ͲͪΒͷਖ਼نԽͰ͋ͬ ͯࢀরՄೳ ྆ํͷਖ਼نԽΛࢦఆ͢Δͱ࣮ମ̍ϑΝΠϧͰͭ͋ΔΈ͍ͨʹݟ͑ΔͷͰࠞཚ͢Δ σʢaVDʣ σʢaVDaVʣ
HJU/'$Ͱਖ਼نԽ HJU/'$Ͱ6OJDPEFਖ਼نԽ͍ͯ͠Δ HJU/'$Ͱ ʮσʯˠʮςʯ ʮʃʯˠʮσʯʹਖ਼نԽ͍ͯ͠Δ ͜Ε/'$ͳ-JOVYͳXJOEPXTͱͷؒͰϑΝΠϧͷΓऔΓΛΓ͘͢͢ΔͨΊ͔ͱߟ͑ΒΕΔ DPSFQSFDPNQPTFVOJDPEFͷઃఆΛGBMTFʢHJUdͰσϑΥϧτUSVFʣʹ͓ͯ͘͠ͱਖ਼نԽΛ ແޮԽͰ͖Δ
74$PEFͷਖ਼نԽରԠʁ 74$PEFࣗਖ਼نԽ͠ͳ͍͕ɺϓϥάΠϯͰਖ਼نԽՄೳ 74$PEFࣗମਖ਼نԽ͠ͳ͍ͷͰɺʮσʢaVDʣʯʮσʢaVDaVʣʯॻ͖͚͕Մೳ 6OJDPEF/PSNBMJ[FSͱ͍͏ϓϥάΠϯΛ͏͜ͱͰਖ਼نԽ͢Δ͜ͱՄೳ
QZUIPO QZUIPO/',$Ͱਖ਼نԽ͍ͯ͠Δ QZUIPOͰࣈ۟ղੳ࣌ʹɺ/',$ʢಉҰจࣈఆ͕ΏΔ͘ɺͱᶃͱ͔ಉҰͱΈͳ͢ख๏ʣ Ͱਖ਼نԽ͞Ε͍ͯΔ ͦͷͨΊɺʢΒͳ͍ͱࢥ͏͕ʣม໊ΛʮσʢaVDʣʯͰʮσʢaVDaVʣʯ ॻ͖͚Δ͜ͱͰ͖ͳ͍ ·ͨɺ/'%Ͱ͋Δ'JOEFSͰ࡞ͨ͠ϑΝΠϧʮσʢaVDaVʣQZʯΛJNQPSU͢Δ͜ ͱͰ͖ͳ͍ɻ
ରࡦ HJUͰDPNNJUͨ͠ϑΝΠϧ໊ͱผϑΝΠϧʹهࡌ͍ͯ͠ΔϦϯΫ໊ͷਖ਼نԽख๏ ͕ͣΕΔͱɺϦϯΫ͕ḷΕͳ͘ͳͬͯࠔΔ ରࡦຊޠจࣈ߹ͷ͍͜͠ݴޠΛΘͳ͍ ରࡦ$*ͰυΩϡϝϯτதͷจࣈྻΛਖ਼نԽ͢Δ ରࡦ74$PEFͷϓϥάΠϯͰखݩͰਖ਼نԽ͓ͯ͘͠