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
大量塩基配列登録申請システムができるまで
Search
Keita Urashima
October 21, 2022
3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大量塩基配列登録申請システムができるまで
Keita Urashima
October 21, 2022
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
Odyssey Design
rkendrick25
PRO
2
730
Leo the Paperboy
mayatellez
8
1.9k
The Language of Interfaces
destraynor
162
27k
Being A Developer After 40
akosma
91
590k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
Joys of Absence: A Defence of Solitary Play
codingconduct
1
420
A Soul's Torment
seathinner
6
3.1k
sira's awesome portfolio website redesign presentation
elsirapls
0
310
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Transcript
େྔԘجྻొਃγεςϜ͕ Ͱ͖Δ·Ͱ ,FJUB6SBTIJNB !VSTN 0DU ,BJHJPO3BJMT
w ࠃཱҨֶݚڀॴੜ໋ใɾ%%#+ηϯλʔ͕ w ԘجྻʢੜͷҨใʣΛσʔλϕʔεԽͯ͠ެ։͢ΔͨΊʹ w όΠΦݚڀऀ͔ΒԘجྻͷొਃΛड͚͚ΔࡍʹΘΕΔγε ςϜ w (PPHMFϑΥʔϜʹϑΝΠϧΞοϓϩʔυػೳ͕͍ͨΑ͏ͳΠϝʔδ w
ͨͩ͠ѻ͏ϑΝΠϧ͕େ͖͍ ຊͷ͓େྔԘجྻొਃγεςϜ
ݱঢ়ͱΰʔϧ ԘجྻͷొਃΛड͚͚Δͱ͖ɺݱঢ়Ͱ w (PPHMFϑΥʔϜͰҰใΛೖΕͯΒ͏ w ϝʔϧͰΓऔΓΛͯ͠ඞཁͳใΛώΞϦϯά͢Δ w TDQͰϑΝΠϧΛసૹͯ͠Β͏ ͷΑ͏ͳखॱͰߦΘΕ͍ͯͯɺͱͯखֻ͕͔ؒΔͷͰվળ͍ͨ͠
μΠϨΫτΞοϓϩʔυ "DUJWF4UPSBHF w ϒϥβ͔ΒετϨʔδαʔϏεʹϑΝΠϧΛΞοϓϩʔυͤ͞Δ w ΞϓϦέʔγϣϯʹ࣮ϑΝΠϧͷΘΓʹϑΝΠϧΛࣝผ͢ΔΩʔ͕ͬͯ ͘Δ w ඞཁͰ͋Ε͜ͷΩʔΛͬͯݩͷϑΝΠϧΛऔಘͰ͖Δ w
ΞοϓϩʔυͷϋϯυϦϯάΛετϨʔδαʔϏεʹؙ͛Ͱ͖Δ
Ξοϓϩʔυ͚ͩͰͳ͔ͬͨ w Ξοϓϩʔυ͞ΕͨϑΝΠϧͷதΛಡΈग़ͯ͠ϑΥʔϜͷ߲ΛҰ෦ࣗಈͰ ຒΊ͍ͨ w ϑΝΠϧ͕େ͖͍ͱۃΊ͍ͯ͠
None
4USFBNT"1* w ϒϥβ্ͰσʔλΛࡉΕʹಡΈॻ͖͢ΔΠϯλʔϑΣʔεΛఏڙ͢Δ w ରϑΝΠϧωοτϫʔΫϦΫΤετϨεϙϯεͳͲ w ϝϞϦരൃͷ৺ͳ͘େ͖ͳσʔλΛѻ͑Δ const res =
await fetch('https://example.com'); res.body // これが ReadableStream
<input type="file" /> <script> document.querySelector('input') .addEventListener('change', async (e) => {
const file = e.target.files[0]; const reader = file.stream().getReader(); for (;;) { const {done, value} = await reader.read(); if (done) { break; } console.log(value); } }); </script>
None
>NIES3753_TRINITY_DN0_c0_g1_i1_len285 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCTCTTCATCAAACTCCTGCGCTGCCACT GCAGCCAAACACACAGCTGACACAGCACCAAAATAACCCCACGCCCTGCAGCTACAG // >NIES3753_TRINITY_DN1_c3_g1_i1_len267 CCTCAACGGGAGCAGCTGATCAAACTACAGAACTCCACACGCCCCATGGCACCACTT GTGACGGGACGGGCCTGGAGGTGGATTCATATCAGCCCCACCACTCCAAGCATGCTG // >NIES3753_TRINITY_DN1_c4_g1_i1_len257 GTCCATACTGGTCCTAGCAGGTCCCAGAATCTACCTCTTGCTTGCACCATATGCACT
TTCTGCATGCCTGGCCACAGTCTGGCTTGAGCCATTGGATGTGCCAGTTAACAGTAT // >NIES3753_TRINITY_DN1_c2_g1_i1_len229 CCCCCCCCCCCCCCCCCCCTCTCCTGCTGCATCTGTGGGGACATGCCCATCTGAGAG GCAGCCCAGCACTCATTGCAGATCGCAAGACCACTCGCCTCAACTCCCTTCACCCCA //
const LF = '\n'.codePointAt(0); const CR = '\r'.codePointAt(0); const GT
= '>'.codePointAt(0); async function parse(file) { const reader = file.stream().getReader(); let done, value; let entriesCount = 0; let isBOL = true; while (({done, value} = await reader.read()), !done) { for (const byte of value) { if (isBOL && byte === GT) { entriesCount++; isBOL = false; } else { isBOL = byte === LF || byte === CR; } } } return {entriesCount}; }
ύʔεதʹϒϥβ͕ݻ·Δ w େ͖ͳϑΝΠϧΛύʔε͢Δͱλϒͷඳը͕ࢭ·ͬͯૢ࡞ʹԠ͠ͳ͍ঢ়ଶ ʹͳͬͯ͠·͏ w ύʔε͕ऴΘΔͱݩʹΔ w +BWB4DSJQUγϯάϧεϨουͳͷͰ$16ͳίʔυଞͷͯ͢ΛࢭΊ ͯ͠·͏Մೳੑ͕͋Δ w
ҰൠతʹTFU5JNFPVUͳͲͰଞͷॲཧׂ͕ΓࠐΉ༨Λ࡞ͬͯରԠ͢Δ
8FC8PSLFST w ϝΠϯεϨουͱશʹಠཱͨ͠ผεϨουͰॲཧΛ࣮ߦ͢ΔΈ w ϫʔΧϝΠϯεϨουͷඳըૢ࡞Λ͛ͳ͍ w ϫʔΧฒྻʹಈ࡞͢ΔͨΊϚϧνίΞΛ׆༻Ͱ͖Δ
const worker = new Worker('./worker.js'); worker.addEventListener('message', e => { console.log(e.data);
}); worker.postMessage('hello, world'); addEventListener('message', e => { postMessage(e.data.toUpperCase()); }); NBJOKT XPSLFSKT ᶃ ᶄ ᶅ ᶆ
addEventListener('message', async ({data: {file}}) => { try { const payload
= await parse(file); postMessage([null, payload]); } catch (err) { postMessage([err, null]); } }); async function parse(file) { const reader = file.stream().getReader(); // ... return {entriesCount}; }
ϋογϡͷܭࢉ͕͍ w "DUJWF4UPSBHFμΠϨΫτΞοϓϩʔυͷͱ͖ϑΝΠϧͱҰॹʹϋογϡ ΛૹΔ w େ͖ͳϑΝΠϧͩͱϋογϡͷܭࢉʹֻ͕͔࣌ؒΔ w "DUJWF4UPSBHFTQBSLNEͱ͍͏ϥΠϒϥϦΛͬͯϋογϡΛٻΊ ͍ͯΔ w
TQBSLNEಉछͷϥΠϒϥϦͷதͰτοϓϨϕϧʹ͍
8FC"TTFNCMZ w ओʹϒϥβͰ࣮ߦ͢ΔͨΊͷԾతͳػցޠ w +BWB4DSJQUͰ౸ୡͰ͖ͳ͍ωΠςΟϒίʔυʹ͍ۙੑೳ͕ಘΒΕΔ w 8FC"TTFNCMZʹΑΔϋογϡؔͷ࣮IBTIXBTN w TQBSLNEͱൺֱͯ͠ഒҎ্ͷվળ
None
github.com/ddbj/submission-mss