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
27k
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
200
gokartのキャッシュ競合防止のロック機能
mski_iksm
0
1.8k
実臨床・Webサービス領域での機械学習研究 開発の標準化
mski_iksm
8
25k
高速化・並列化・標準化で スケールするML予測システムの開発
mski_iksm
5
3k
pythonでメタプログラミング(メタクラス編)
mski_iksm
1
420
パイプラインツールgokartのタスク競合を解消した話
mski_iksm
0
160
Other Decks in Programming
See All in Programming
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
3
690
flutterkaigi_2024.pdf
kyoheig3
0
140
cmp.Or に感動した
otakakot
3
200
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
6
1.7k
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
ヤプリ新卒SREの オンボーディング
masaki12
0
130
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
300
Jakarta EE meets AI
ivargrimstad
0
580
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
940
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
1.1k
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Designing for Performance
lara
604
68k
The World Runs on Bad Software
bkeepers
PRO
65
11k
A designer walks into a library…
pauljervisheath
204
24k
The Invisible Side of Design
smashingmag
298
50k
Automating Front-end Workflow
addyosmani
1366
200k
Speed Design
sergeychernyshev
25
620
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
What's new in Ruby 2.0
geeforr
343
31k
RailsConf 2023
tenderlove
29
900
Raft: Consensus for Rubyists
vanstee
136
6.6k
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ͷϓϥάΠϯͰखݩͰਖ਼نԽ͓ͯ͘͠