Upgrade to Pro — share decks privately, control downloads, hide ads and more …

COBOLハッカソン2020報告

sh-ueno
March 16, 2020

 COBOLハッカソン2020報告

「COBOLハッカソン2020」というイベント向けに,
チーム「こんな時だから、いつも笑顔で。」が制作したアプリケーションの概要を説明する資料となります。

sh-ueno

March 16, 2020
Tweet

Other Decks in Programming

Transcript

  1. νʔϜ঺հʢ̏ੈ୅ಉډνʔϜʣ えびさん : (R70) いなさん : (R50) うえもん : (R50

    わたし) たもくん : (新卒ルーキー) もっち : (新卒ルーキー) おじいちゃん 息⼦ 孫
  2. $0#0-ϋοΧιϯ͸͡·Γ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 3 COBOLハッカソン 会社で出場するから よろしく。。。 わかりました。。。。 でも、コボラーみんな

    忙しいからメンバー 集まんないよ〜。 ⾯倒だから、COBOL 知らなくても、 ハッカソンやりたい やつを募集しよう。 部⻑ 私
  3. ͦͷ݁Ռɻɻɻ໊̎΋ू·ͬͨɻͰ΋ɻɻɻ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 4 たもくん : (新卒ルーキー,COBOL未経験) もっち :

    (新卒ルーキー,COBOL未経験) ハッカソンテーマ(表⽴って⾔えない。。。) COBOL未経験者の今時の若⼿エンジニアが COBOLハッカソンをやると、こんなのができる。
  4. ԡ͑͞ͷ੾ΓࡳʢՐফ͠ʣ΋༻ҙ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 5 • ͕͢͞ʹෆ҆ͳͷͰɺձࣾʹ͓ئ͍ͯ͠ɺ Ϋϩʔβʔ΋༻ҙͯ͠΋Βͬͨɻ えびさん :

    (R70 COBOL業界の重鎮) いなさん : (R50 ベテランのCOBOL職⼈) ԡ͑͞ͷ੾ΓࡳʢՐফ͠ʣ΋༻ҙ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 5 • ͕͢͞ʹෆ҆ͳͷͰɺձࣾʹ͓ئ͍ͯ͠ɺ Ϋϩʔβʔ΋༻ҙͯ͠΋Βͬͨɻ えびさん : (R70 COBOL業界の重鎮) いなさん : (R50 ベテランのCOBOL職⼈)
  5. ࡞඼ͷ঺հʢ͜Μͳ΋ͷ࡞Γ·ͨ͠ʣ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 6 • ࡞඼໊ɿ ͜Μͳ͔࣌ͩΒɺ͍ͭ΋সإͰɻ • ֓ཁɿ

    ඈߦ͢Δ%SPOFʹ޲͔ͬͯসإΛݟͤΔͱ %SPOF͕͋ͳͨͷҝʹགྷΓ·͢ • ίϯηϓτɿ $0#0-ϏδωεͷΠϝʔδ͕ڧ͍͕ɺ$0#0- Λ࢖ͬͯΈΜͳ͕সإͰָ͠ΊΔ΋ͷ͕࡞ΕͨΒ ͍͍͔ͳͱ
  6. フライト コントローラ (COBOL & C++) Python (OpenCV) Python (OpenCV) 笑顔スコア算出/判定

    結果送信 写真撮影 γεςϜͷ֓ཁʢসإରܾϞʔυʣ COBOL 勝利の舞 写真撮影 ランキング算出 判定結果送信 Web 結果表⽰ (Python) フライト コントローラ (COBOL & C++) scp http
  7. ϑϥΠτίϯτϩʔϥ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 10 ॲཧ֓ཁ • υϩʔϯͱ8J'Jܦ༝Ͱ௨৴ʢVEQTPDLFUʣΛߦ͍ඈߦΛ੍ޚ͢Δ • ը૾ΛऔΓࠐΈɺ"84ͷসإ൑ఆॲཧʹ࿈ܞ͢Δ

    • উརͷགྷΓ͸ɺ֎෦ϑΝΠϧʹهड़ͨ͠ίϚϯυΛ࣮ߦ ػث04ιϑτ΢ΤΞ • 3BTQCFSSZ1J(#.0%&- • 3BTQCJBO#VTUFS7FS'FCSVBSZ • PQFOTPVSDF$0#0-K • HDD  %SPOF • %+*3Z[F 5FMMP5FMMP&%6 5FMMPTEL 
  8. %SPOFͷ঺հʢ%+*3Z[F 5FMMPʣ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 11 • %+*3Z[F 5FMMP IUUQTXXXSZ[FSPCPUJDTDPNKQUFMMP

    • தࠃͷϕϯνϟʔاۀͰ͋Δ3Z[F 5FDI͕ࣾ ։ൃɾൢച͍ͯ͠Δߴੑೳɾ௿Ձ֨ͳτΠυϩʔϯ • ϓϩάϥϜֶशΛҙࣝͯ͠࡞ΒΕ͍ͯΔͨΊ 4%,Λ࢖ͬͨϓϩάϥϛϯά͕Մೳ
  9. 3BTQCFSSZ1JͰ΋$0#0-͸ಈ͘ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 12 • ϑϥΠτίϯτϩʔϥ • 3BTQCFSSZ1JΛΤοδαʔόͱͯ͠࠾༻ •

    PQFOTPVSDF$0#0-(/6$0#0-ͱ΋ΠϯετʔϧՄೳ • 7JTVBM4UVEJP$PEFͷ3FNPUF%FWFMPQNFOU&YUFOTJPO1BDLͱ૊ Έ߹ΘͤͨϦϞʔτ։ൃ؀ڥ͕ศར • $0#0-ΤΫεςϯγϣϯ΋ಈ࡞͢Δ
  10. ϑϥΠτίϯτϩʔϥɾΠϯλʔϑΣʔε $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 13 フライト コントローラ (COBOL & C++)

    UDP PORT:8889 (制御コマンド送信) UDP PORT:11111 (画像情報受信) scp(画像ファイル) http(判定結果)
  11. ϑϥΠτίϯτϩʔϥ ιʔείʔυ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 14 • lউརͷ෣z$0#0-ίʔυ • lউརͷ෣z͸ɺ-*/&4&26&/5*"-ϑΝΠ

    ϧʹॻ͔ΕͨίϚϯυΛಡΈऔΓ લޙࠨӈ ʹGMJQ ஦ฦΓ Λ܁Γฦ͠·͢ɻ • $0#0-ͷಛ௕ͱͯ͠ɺՄಡੑͷߴ͕͞ڍ ͛ΒΕ·͢ɻࠓճ͸൓өͰ͖·ͤΜͰͨ͠ ͕ɺՄಡੑΛߴΊΔΑ͏ͳ$0#0-ϥΠϒ ϥϦ͕ఏڙ͞ΕΕ͹ɺద༻෼໺͕޿͕Δ͔ ΋͠Ε·ͤΜɻ IF WIN = 1 OPEN INPUT DATA-FILE PERFORM UNTIL 1 = 0 READ DATA-FILE AT END DISPLAY "at end" EXIT PERFORM END-READ EVALUATE code-statement WHEN "East" DISPLAY "East" CALL "drone_flip" USING BY VALUE 1 CALL "lib_sleep" USING BY VALUE 3 WHEN "West" DISPLAY "West" CALL "drone_flip" USING BY VALUE 0 CALL "lib_sleep" USING BY VALUE 3 WHEN "North" DISPLAY "North" CALL "drone_flip" USING BY VALUE 2 CALL "lib_sleep" USING BY VALUE 3 WHEN "South" DISPLAY "South" CALL "drone_flip" USING BY VALUE 3 CALL "lib_sleep" USING BY VALUE 3 WHEN OTHER DISPLAY "other" EXIT PERFORM END-EVALUATE END-PERFORM CLOSE DATA-FILE END-IF 勝利の舞 COBOLコード
  12. "84সإ൑ఆॲཧ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 15 ॲཧ֓ཁ • ड৴ͨ͠σʔλͷը૾ͷসإ൑ఆΛ͓͜ͳ͍সإείΞΛ͚ͭΔ • সإରܾϞʔυͷ࣌ʹ͸ɺ̎୆ͷসإ൑ఆ݁ՌͷൺֱΛߦ͍ɺ݁ՌΛ

    ϑϥΠτίϯτϩʔϥʹ൑ఆ݁ՌΛૹ৴͢Δ • সإείΞΛه࿥͠ɺॲཧຖʹϥϯΩϯάΛߋ৽͢Δ • ൑ఆ݁Ռը૾͓ΑͼϥϯΩϯά͸ϒϥ΢βͰදࣔ͢Δ ؀ڥ • "84&$BNB[PO-JOVY • PQFOTPVSDF$0#0-K • 1ZUIPO • 0QFO$7
  13. "84সإ൑ఆॲཧ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 16 • সإ൑ఆॲཧʢը૾ೝࣝॲཧʣ • 0QFO$7ϥΠϒϥϦͱֶशࡁΈͷެ։σʔλΛར༻͠সإΛ൑ఆ͠ είΞΛ͚ͭΔ

    • ౰ॳ͸ɺ$ ͷϥΠϒϥϦΛ࢖͍ɺ$0#0-͔Βݺͼग़͢͜ͱΛ ࢼߦ͏·͍͔ͣ͘ɺ݁ہ࣌ؒ੾ΕͱͳΓ1ZUIPOͰ࣮૷ͨ͠ • "84ͱͷϦΞϧλΠϜ࿈ܞ*'ʹҙ֎ͱۤઓͨ͠ • ϥϯΩϯάࢉग़ॲཧ • είΞͷཤྺΛه࿥͠ɺϥϯΩϯάΛࢉग़͢ΔॲཧΛ$0#0-Ͱ࣮૷
  14. ͋ͱ͕͖ $PQZSJHIU˜ 5PLZP4ZTUFN)PVTF$P -UEBMMSJHIUTSFTFSWFE 17 • ࡞඼ʹ͍ͭͯɺ౰ॳͷ૝ఆͱ͸গ͠ҟͳΔग़དྷͱͳ͕ͬͨɺ ݁ՌΦʔϥΠͰ͋ͬͨɻ • %SPOF΋ը૾ೝࣝ΋લఏ஌ࣝͳ͘ॳମݧͰ͕͋ͬͨɺएखΤϯ

    δχΞ͕$0#0-΋ؚΊɺྗͰԡ͠੾ͬͨ • վΊͯɺ৽͍ٕ͠ज़ʹ৮ΕΔָ͠͞Λײ͡Δ͜ͱ͕Ͱ͖ͨ • $0#0-ࢿ࢈Λ༗ޮʹ׆༻͢ΔͨΊʹ͸ɺΦʔϓϯιʔεΛ֩ ͱͨ͠৽͍͠೾ΛऔΓࠐΉ͜ͱ͕ඞཁͰ͋Δͱײͨ͡