Kodim-pizza

Hello, Habr. Aħna spontanjament għamilna l-ewwel hackathon intern tagħna. Iddeċidejt li naqsam miegħek l-uġigħ u l-konklużjonijiet tiegħi dwar il-preparazzjoni għaliha f'ġimgħat 2, kif ukoll il-proġetti li rriżultaw li kienu.

Kodim-pizza

Il-parti boring għal dawk interessati fil-marketing

Nibda bi storja żgħira.

Bidu ta’ April. L-ewwel hackathon tal-Komunità MskDotNet qed isir fl-uffiċċju tagħna. Il-Battalja ta 'Tatooine tinsab fl-aqwa tagħha fil-galaxie tagħna din id-darba. is-Sibt. 20 tim. Pizza. Kollox huwa sinċier ħafna (provi). R2-D2 li jintefħu jdur madwar is-sala. It-timijiet jiktbu l-aktar algoritmi korretti biex jgħaddu mill-aktar tellieqa perikoluża fuq il-mappa. Qed nimxu t-tnedija tal-ewwel tiġrijiet. Il-cookies u l-kafè jsalvaw il-ħajja. Jien u l-organizzaturi stennejt li ħafna nies jitilqu wara l-ikla tas-Sibt. Imma le. 12-il siegħa ta 'kodifikazzjoni wara. Il-finali. Xi ħaġa taqa ', xi ħaġa ma tibda. Imma kulħadd kuntent. It-tim tagħna jirbaħ. Aħna kuntenti darbtejn.

Qed naqsam il-ferħ tiegħi f'Slack u tiġi f'moħħi l-idea: "Għandna bżonn nagħmlu l-hackathon tagħna stess." Qed nikteb lill-istazzjon tas-servizz tagħna Sasha. Silenzju.

Filgħodu. Nixrob il-kafè fl-uffiċċju. Nara lil Sasha toqrob minn wara. “Lisa, dan huwa kbir! Għandna data importanti fil-21 ta' April. Ejja nagħmluha!" WTF!? Hekk malajr? A? Xiex? Għandi bżonn itir lejn Syktyvkar għal apprendistat f'nofs April. U għall-infern magħha! Ejja.

Fadal ġimgħatejn. Qatt ma kont l-uniku organizzatur ta’ hackathon. Ħalliha tkun interna. Qrajt artikli dwar dan is-suġġett. Iebsa. Huwa jieħu diversi xhur. Hemm bżonn bosta nies. Trid taħseb dwar merch, premjijiet, kundizzjonijiet, skeda, interess, tifhem l-għan, baġits. Jew forsi saħansitra nsemmu t-tifsira tal-ħajja. Żgur li mhux se nagħmel fil-ħin. U waqt li kont qed taqra u tipprepara, kienet diġà għaddiet ġimgħa. Wasal iż-żmien li tinsa l-artikoli u tibda tagħmel xi ħaġa.

Aqbad il-lista ta' kontroll tagħna biex iżżomm hackathon intern f'ġimgħa

  • Pjan: Tpoġġi bilqiegħda bil-kalma u tikteb lista ta’ dak li jrid isir għall-hackathon. Minuti 30.
  • Kompitu: Il-parteċipanti jipproponu u jagħżlu l-proġetti li jridu joħolqu fil-Google Sheets. Kompitu fl-isfond, sagħtejn.
  • Skeda ta 'żmien: fuq irkopptejk tikteb tqassim qasir tal-ħin, filwaqt li tqis 3 waqfiet u l-finali. Minuti 20.
  • Timijiet: tippubblika messaġġ dwar il-hackathon bi skeda mill-istazzjon tas-servizz fil-kanali tal-IT fi Slack/posta/eċċ u toħloq kanal separat għall-hackathon. Fiha, kulħadd huwa maqsum fi timijiet, u dawk li huma indeċiżi jagħmlu dan fl-ewwel 5 minuti tal-hackathon. Kompitu fl-isfond, sagħtejn.
  • Buns: inti toħroġ bi merch b'żewġ żviluppaturi, tagħtiha lid-disinjatur biex tirrendi, u tirċeviha lesta. Kompitu fl-isfond, 3 ijiem.
  • Hackathon: inti tidħol fl-uffiċċju, tikkoordina lil kulħadd fil-bidu, tmur dwar in-negozju tiegħek, aqra Reddit, importanti tħabbar kull waqfa dwar pizza friska, tieħu ritratti ta 'l-estinzjoni, tħabbar il-finali, tivvota flimkien u tagħżel ir-rebbieħ. Jum 1.
  • Taħt l-asterisk: Ovvjament, taħseb kontinwament dwar kollox sejjer tajjeb. Ovvjament, mhux kulħadd se jara l-messaġġ tiegħek u huwa aħjar li tkellem lil xi wħud personalment. Naturalment, jekk xi ħadd jgħinek, kollox isir 2 darbiet aktar faċli (l-isbaħ Alena għenitni).

Il-parti inqas boring dwar id-data tal-hackathon

Għaliex il-21 ta’ April? Din il-ġurnata hija sinifikanti għalina. Eżattament sena ilu, fil-21 ta’ April, waqgħu taħt tagħbija matul l-ewwel tmiem il-ġimgħa wara l-bidu tal-Kampanja Federali tar-Reklamar. L-għada, il-Ħadd, it-tim tagħna kien jaħdem mit-8 am. Imbagħad ħloqna sundayhackathon board fi Trello u bdiet ġimgħa xogħol bix-xift, 12-il siegħa kuljum. Is-sitwazzjoni tant kienet kritika li lanqas kellna ħin biex nieklu u konna mitmugħa minn guys minn timijiet oħra.

Kodim-pizza

Tista' taqra storja aktar dettaljata fuq Il-paġna ta' Fyodor Ovchinnikov (il-Kap Eżekuttiv tagħna). Minn dakinhar, bdilna ħafna, imma issa żgur mhux se ninsew id-data.

Din is-sena, iddeċidejna li dan l-avveniment kien ta’ min ikompli jibqa’ fil-memorja tal-posterità u, fl-aqwa tradizzjonijiet, organizzajna l-ewwel hackathon intern fl-istorja ta’ Dodo, li damet 10 sigħat.

L-aktar parti boring dwar proġetti hackathon

Ċaħda ta 'responsabbiltà: id-deskrizzjonijiet kollha nkitbu mill-guys infushom, għalhekk l-awtur tat-test mhix tiegħi.

Tagħlim Oleg (tagħlim bil-magni)

Dima Kochnev, Sasha Andronov (@alexandronov)

Huma riedu jagħmlu netwerk newrali li jiddetermina x'tip ta 'pizza hija f'ritratt mingħajr ebda għarfien. Bħala riżultat, għamilna waħda sempliċi ħafna u tal-ġugarell - tirrikonoxxi 10 pizez, bejn wieħed u ieħor sibna kif jaħdem kollox, kemm jista 'jkun f'ġurnata (~ 10 sigħat).

Kodim-pizza

B'mod partikolari, indunajna li l-industrija laħqet livell fejn żviluppatur ordinarju jista 'jieħu libreriji lesti, jaqra d-dokumentazzjoni u jħarreġ in-netwerk newrali tiegħu mingħajr għarfien profond tas-suġġett. U se taħdem tajjeb biżżejjed biex issolvi problemi reali.

Għodod użati:

  • imageai — librerija konvenjenti u sempliċi biex taħdem mat-tagħlim tal-magni u l-viżjoni tal-kompjuter.
  • Ippruvajna żewġ mudelli - ResNet50, Yolo.
  • Il-kodiċi nkiteb, ovvjament, f'Python.

Kellna 11000 ritratt, iżda kważi 3/4 minnhom irriżultaw li kienu żibel, u l-bqija kellhom angoli differenti u mhux xierqa. Bħala riżultat, ħadna mudell lest (li sempliċiment jaf isib il-pizza) u bl-għajnuna tiegħu sseparajna t-trash. Sussegwentement, it-titlu tar-ritratt kien jinkludi l-isem tal-pizza - għalhekk għamilniha f'folders, iżda rriżulta li l-ismijiet ma kinux jikkoinċidu mar-realtà u kellna jnaddfuha manwalment. Fl-aħħar, kien fadal madwar 500-600 ritratt, huwa ċar li dan huwa ammont insinifikanti, iżda madankollu, dan kien biżżejjed biex jisseparaw 10 pizez minn xulxin.

Biex tħarreġ il-grilja, ħadna l-orħos magna virtwali f'Azure fuq NVIDIA Tesla K80. Huma tħarrġu fuqha għal 100 epoka, iżda kien ċar li n-netwerk sar saturat iżżejjed wara 50 epoka, minħabba l-fatt li kien hemm dataset żgħir.

Fil-fatt, il-problema kollha hija n-nuqqas ta 'dejta tajba.

Kodim-pizza

Jista’ jkun li konfużna xi ftit it-termini, imma rridu nqisu li m’għandna l-ebda esperjenza fil-ħidma ma’ dawn il-kwistjonijiet kollha.

GUI għal NOOBS (console għall-ordni tal-pizza)

Misha Kumachev (Ceridan), Zhenya Bikkinin, Zhenya Vasiliev

Ħdejna prototip ta' applikazzjoni tal-console għall-geeks, li grazzi għaliha tista' tordna pizza permezz tat-terminal jew tal-linja tal-kmand, jew saħansitra tintegraha fil-pipeline tal-iskjerament u, wara rilaxx b'suċċess, twassal pizza fl-uffiċċju.

Kodim-pizza

Ix-xogħol kien maqsum f'diversi partijiet: sibna kif taħdem l-API tagħna għall-applikazzjonijiet mobbli, immuntajna l-CLI tagħna stess bl-użu oclif u kkonfigurat il-pubblikazzjoni tal-pakkett li ġbarna. L-aħħar kompitu kien jinvolvi ftit minuti spjaċevoli lejn tmiem l-hackathon. Kollox ħadem lokalment għalina, u anke l-verżjonijiet qodma ppubblikati tal-pakkett ħadmu, iżda l-ġodda (li żiedu aktar karatteristiċi friski u emoticons) irrifjutaw li jaħdmu. Għamilna madwar 40 minuta nippruvaw nifhmu x’ġara ħażin, iżda fl-aħħar kollox ħadem b’mod maġiku waħdu).

Il-programm massimu tagħna għall-hackathon kien ordni reali ta 'pizza lill-uffiċċju permezz tas-CLI tagħna. Għaddejna kollox tużżana darbiet fuq il-bank tat-test, imma idejja kienu għadhom qed jitħawwdu meta dħalt il-kmandi fil-produzzjoni.

Kodim-pizza

Bħala riżultat, fl-aħħar għamilna dan!

Kodim-pizza

CourierGo

Anton Bruzhmelev (awtur), Vanya Zverev, Gleb Lesnikov (entropija), Andrey Sarafanov

Ħadna l-idea ta’ “App għall-Kurijer”.

Sfond dwar il-preparazzjoni.Inizjalment, staqsejt x'tip ta 'karatteristiċi jista' jkun fl-applikazzjoni? Ħarġet il-lista li ġejja ta 'funzjonalità:

  • L-applikazzjoni tidħol fil-cash register tal-kunsinna billi tuża l-kodiċi.
  • L-applikazzjoni turi immedjatament ordnijiet disponibbli u ordnijiet li jridu jittieħdu.
  • Il-kurrier jinnota l-ordni u jeħodha fuq il-vjaġġ.
  • Jiġi muri l-ħin stmat u jekk hux fil-ħin jew le.
  • Juri lill-klijent li l-kurrier telaq.
  • Il-klijent jibda jintwera l-punt tal-kurrier fuq il-mappa u l-ħin stmat.
  • Il-kurrier jista 'jikteb lill-klijent fil-chat mill-applikazzjoni.
  • Il-klijent jista 'jikteb lill-kurrier permezz ta' chat mill-applikazzjoni.
  • Ħames minuti qabel il-wasla, il-klijent jirċievi messaġġ li l-kurrier huwa qrib, kun ippreparat.
  • Il-kurrier jinnota fl-applikazzjoni li wasal u qed jistenna.
  • Il-kurrier iċempel mill-applikazzjoni bi klikk waħda u jirrapporta li (qed jiżdied, wasal, eċċ.)
  • Il-klijent jaċċetta l-ordni u jdaħħal kodiċi PIN mill-applikazzjoni jew SMS biex jikkonferma l-kunsinna (bħala firma) Sabiex il-kurrier ma jkunx jista’ jlesti l-kunsinna bil-quddiem jekk ikun tard.
  • L-ordni hija mmarkata bħala kunsinnata fis-sistema.

Flimkien ma' ftit xenarji alternattivi:

  • Il-kurrier jista 'jimmarka l-ordni bħala mhux ikkunsinnat u jagħżel ir-raġuni.
  • Jekk tkun tard, il-kurrier jista' joħroġ ċertifikat elettroniku permezz ta' SMS b'buttuna waħda. Jew iċ-ċertifikat jasal awtomatikament jekk l-iskadenza tal-kunsinna ma tintlaħaqx.

Is-sentiment ta’ wegħda u neċessità ta’ dan il-proġett kien, ovvjament, ta’ enerġizzazzjoni.

L-għada morna ikla mat-tim u ddiskutejna kif tkun il-funzjonalità minima tal-applikazzjoni.

Bħala riżultat, ġiet iffurmata l-lista li ġejja ta 'dak li kellu jsir fil-hackathon:

  • Idħol fil-cash register tal-kunsinna.
  • Uri l-pożizzjoni attwali.
  • Ibgħat dejta lil API esterna (koordinati, irċieva l-ordni, wassal l-ordni).
  • Irċievi data minn API esterna (ordnijiet kurrenti tal-kurrier).
  • Ibgħat avveniment li jindika li ħadt l-ordni għall-kunsinna/konsenja.
  • Uri l-pożizzjoni attwali tal-kurrier fuq il-mappa fuq il-websajt.

Ix-xogħol ewlieni, kif deher, kien fil-ħolqien tal-backend, l-applikazzjoni nnifisha (wara diskussjonijiet, għażilna ReactNative biex tiżviluppa l-applikazzjoni, jew aħjar il-qafas għaliha - expo.io, li jippermettilek li ma tikteb kodiċi nattiv xejn). F'termini ta 'backend, inizjalment kien hemm tama f'Vanya Zverev, peress li kellu esperjenza fil-ħidma mal-mudell tas-servizz tagħna u k8s (li xogħol ħa). Jien u Andrey Sarafanov ħadna ReactNative għal dawra.

Iddeċidejt li nipprova immedjatament noħloq repożitorju tax-xogħol għall-proġett innifsu. F'12 bil-lejl iltqajt mal-fatt li l-ġeolokalizzazzjoni fl-isfond ma taħdimx tajjeb f'ReactNative, jekk ma tiktebx kodiċi nattiv, kont ftit frustrat. Imbagħad ħallejt meta rrealizzajt li kont qed naqra d-dokumentazzjoni mhux tal-qafas expo.io, iżda ta 'ReactNative. Bħala riżultat, matul il-lejla diġà fhimt kif nikseb il-pożizzjoni attwali f'expo.io u niġbed skrins separati (għal login, wiri tal-ordnijiet, eċċ.).

Kodim-pizza

Filgħodu fil-hackathon, huma ġibdu lil Gleb fil-proġett super promettenti tagħhom. Malajr ħarġu bi pjan ta’ dak li kellu jsir.

Kodim-pizza

Għamilna żball meta, skont il-mudell tal-proġett, ippruvajna nikkomunikaw mhux permezz tal-HTTP, iżda permezz tal-GRPC, peress li ħadd ma kien jaf kif jibni klijent GRPC għal JavaScript. Fl-aħħar, wara li qattajna madwar siegħa u nofs fuq dan, abbandunajna din l-idea. Minħabba dan, il-guys fuq il-back-end bdew jerġgħu jagħmlu s-server lest minn GRPC għal WebApi. Wara nofs siegħa, fl-aħħar stajna nwaqqfu komunikazzjoni bejn l-applikazzjoni u l-backend, ara u ara. Iżda fl-istess ħin, Gleb kien kważi jispiċċa l-iskjerament għal k8s u flimkien mal-iskjerament awtomatiku ta 'commit lill-kaptan. 🙂

Għażilna MySQL bħala ħażna sabiex ma nieħdux riskji għall-inqas bid-database (kellna ħsibijiet dwar CosmosDb).

Kodim-pizza

Fil-qosor:

  • Implimentat iffrankar tal-koordinati attwali tal-kurrier mill-applikazzjoni għad-database.
  • Installajna RabbitMQ u abbonajna għal messaġġi dwar il-kurrier jiġbor ordni sabiex immedjatament nuru l-ordni mill-kurrier fl-applikazzjoni.
  • Bdejna nsalvaw il-ħin tal-kunsinna tal-ordni fid-database tagħna wara li l-kurrier għafas buttuna fl-applikazzjoni. Ma kellniex ħin biex inżidu nibgħatu avveniment lura lir-rebbit li l-ordni ġiet ikkunsinnata.
  • Għamilt wiri tal-mappa fuq il-paġna tal-ordni kurrenti fuq il-websajt bil-pożizzjoni attwali tal-kurrier. Iżda din il-funzjonalità baqgħet xi ftit mhux mitmuma, peress li ma kienx possibbli li CORS jiġi kkonfigurat fl-ambjent biex jirċievi koordinati mis-servizz il-ġdid tagħna.

M87

Roma Bukin, Gosha Polevoy (georgepolevoy), Artyom Trofimushkin

Ridna nimplimentaw fornitur OpenID Connect, peress li bħalissa nużaw protokoll ta 'awtentikazzjoni tad-disinn tagħna stess, u dan joħloq numru ta' diffikultajiet: libreriji tal-klijenti tad-dwana, xogħol inkonvenjenti min-naħa ta 'imsieħba esterni, problemi ta' sigurtà possibbli (wara kollox , OAuth2.0 u OpenID Connect fl-implimentazzjoni ta 'referenza jistgħu jitqiesu sikuri, iżda m'inix ċert dwar is-soluzzjoni tagħna).

Kodim-pizza

Għamilna servizz separat li jimita servizz għall-ħażna tad-dejta personali sabiex noħolqu mudell żgħir Agnostiku tal-Pajjiż ta’ fornitur ta’ awtentikazzjoni li jmur għal servizz separat għad-dejta personali (dan fil-futur jagħmilha possibbli li jkun hemm servizz wieħed b’ li wieħed jista’ jidħol b’reġistrazzjoni ta’ kont fi kwalunkwe pajjiż, u fl-istess ħin jikkonforma mal-GDPR u liġijiet federali oħra). Għamilna din il-parti, bħalma għamel il-fornitur, u għaqqadhom b'suċċess ma 'xulxin. Sussegwentement, kien meħtieġ li tinħoloq API li tkun protetta minn tokens maħruġa mill-fornitur, tappoġġja l-introspezzjoni tagħhom permezz tal-fornitur u tirritorna data protetta jekk it-talba tissodisfa l-politiki tal-awtorizzazzjoni (niċċekkjaw li l-utent ikun awtentikat skont l-iskema Bearer , it-token tiegħu fih ċertu ambitu + y L-utent innifsu għandu permess li jippermetti li ssir is-sejħa). Din il-parti tlestiet ukoll. L-aħħar komponent kien klijent JavaScript, li jingħata token, li bl-għajnuna tiegħu kien isejjaħ API protett. Ma kellniex ħin biex nagħmlu din il-parti. Jiġifieri, il-parti funzjonali kollha kienet lesta, iżda l-parti ta 'quddiem ma kinitx lesta biex turi l-funzjonalità tas-sistema kollha.

E-E-E (ġugarell)

Dima Afonchenko, Sasha Konovalov

Għamilna mini-ġugarell fuq yunka fejn idejn frisky jarmu zalzett fuq pizza. Jekk tpoġġi ż-zalzett b'mod żbaljat, jidher messaġġ imdejjaq "Miċħud" fuq l-iskrin, u jekk iż-zalzett kollu tpoġġa sew, jidher fatt każwali dwar il-pizza.

Kodim-pizza

Ridna nagħmlu t-tieni livell bit-tadam tarmi, imma ma kellniex ħin.

Kodim-pizza

Tkomplija qasira: min rebaħ?

Qabel l-hackathon, tkellimna mal-ġuvini u staqsejt liema premju jixtiequ jirċievu jekk jirbħu. Irriżulta li l-​aktar premju siewi kien ikun “it-​triq għall-​ikel.”

Kodim-pizza

Għalhekk, stenna li dalwaqt inħabbru logħba bl-idejn li jpoġġu l-bżar fuq il-pizza.

Kif qarrej attent seta' nnota, it-tim "E-E-E (ġugarell)" rebaħ. Prosit guys!

Utenti reġistrati biss jistgħu jipparteċipaw fl-istħarriġ. Idħol, ta 'xejn.

Liema proġett għoġbok l-aktar?

  • Tagħlim Oleg (tagħlim bil-magni)

  • GUI għal NOOBS

  • CourierGo

  • M87

  • E-E-E

Ivvutaw 5 utent. 3 utent astjenew.

Sors: www.habr.com

Żid kumment