Kodim-pica

Sveiki, Habr. Mēs spontāni sarÄ«kojām savu pirmo iekŔējo hakatonu. Nolēmu padalÄ«ties ar savām sāpēm un secinājumiem par gatavoÅ”anos tam 2 nedēļu laikā, kā arÄ« par projektiem, kas tādi izrādÄ«jās.

Kodim-pica

Garlaicīgā daļa mārketinga interesentiem

SākŔu ar nelielu stāstu.

Aprīļa sākums. MÅ«su birojā notiek pirmais MskDotNet kopienas hakatons. TatuÄ«nas kauja Å”oreiz mÅ«su galaktikā rit pilnā sparā. sestdiena. 20 komandas. Pica. Viss ir ļoti patiesi (pierādÄ«jumi). Pa zāli peld piepÅ«Å”amais R2-D2. Komandas uzraksta vispareizākos algoritmus, lai izturētu bÄ«stamākās sacÄ«kstes kartē. Pārceļam pirmo sacensÄ«bu startu. Cepumi un kafija ir dzÄ«vÄ«bas glābēji. Mēs ar organizatoriem gaidÄ«jām, ka sestdien pēc pusdienām daudzi dosies prom. Bet nē. 12 stundas kodÄ“Å”anas aiz muguras. Fināls. Kaut kas nokrÄ«t, kaut kas nesākas. Bet visi ir laimÄ«gi. MÅ«su komanda uzvar. Mēs esam divtik laimÄ«gi.

Es dalos savā priekā par Slack, un man nāk prātā doma: "Mums ir jādara savs hakatons." Es rakstu mūsu degvielas uzpildes stacijai SaŔa. Klusums.

RÄ«ts. Es dzeru kafiju birojā. Es redzu, ka SaÅ”a tuvojas no aizmugures. ā€œLisa, tas ir lieliski! Mums ir svarÄ«gs datums 21. aprÄ«lÄ«. DarÄ«sim to!" WTF!? Tik ātri? A? Kas? Man jālido uz Siktivkaru stažēties aprīļa vidÅ«. Un pie velna! pieņemsim.

2 nedēļas palikuÅ”as. Es nekad neesmu bijis vienÄ«gais hakatona organizators. Lai tas ir iekŔēji. Es lasÄ«ju rakstus par Å”o tēmu. GrÅ«ti. Tas aizņem vairākus mēneÅ”us. Ir vajadzÄ«gi vairāki cilvēki. Jādomā par precēm, balvām, nosacÄ«jumiem, grafiku, procentiem, jāsaprot mērÄ·is, budžeti. Vai varbÅ«t pat izdomāt dzÄ«ves jēgu. Es noteikti nepaspÄ“Å”u laikā. Un kamēr tu lasÄ«ji un gatavojies, bija jau pagājusi nedēļa. Ir pienācis laiks aizmirst par rakstiem un sākt kaut ko darÄ«t.

Skatiet mÅ«su kontrolsarakstu par iekŔējā hakatona rÄ«koÅ”anu vienas nedēļas laikā

  • Plāns: Tu mierÄ«gi apsēdies un uzraksti sarakstu, kas jādara hakatonam. 30 minÅ«tes.
  • Uzdevums: dalÄ«bnieki piedāvā un izvēlas projektus, ko viņi vēlas izveidot Google izklājlapās. Fona uzdevums, 2 stundas.
  • saraksts: uz ceļgala uzraksti Ä«su laika sadalÄ«jumu, ņemot vērā 3 pārtraukumus un finālu. 20 minÅ«tes.
  • Komandas: publicējiet ziņu par hakatonu ar grafiku no servisa stacijas IT kanālos Slack/mail/etc un izveidojiet atseviŔķu kanālu hakatonam. Tajā visi ir sadalÄ«ti komandās, un tie, kuri nav izlēmuÅ”i, to dara pirmajās 5 hakatona minÅ«tēs. Fona uzdevums, 2 stundas.
  • MaizÄ«tes: jÅ«s izdomājat preces ar diviem izstrādātājiem, nododat to dizainerim renderÄ“Å”anai un saņemat gatavu. Fona uzdevums, 3 dienas.
  • Hakatons: jÅ«s atnākat uz biroju, sākumā saskaņojiet visus, ejiet savās darÄ«Å”anās, lasiet Reddit, svarÄ«gi ir paziņot par katru pārtraukumu par svaigu picu, fotografējiet saulrietu, paziņojiet finālu, balsojiet kopā un izvēlaties uzvarētāju. 1 diena.
  • Zem zvaigznÄ«tes: Protams, jÅ«s pastāvÄ«gi domājat, ka viss norit labi. Protams, ne visi redzēs jÅ«su ziņojumu, un labāk ar dažiem runāt klātienē. Protams, ja kāds jums palÄ«dzēs, viss kļūs 2 reizes vieglāk (brÄ«niŔķīgā Alena man palÄ«dzēja).

Mazāk garlaicīga daļa par hakatona datumu

Kāpēc 21. aprÄ«lis? Å Ä« diena mums ir nozÄ«mÄ«ga. TieÅ”i pirms gada, 21. aprÄ«lÄ«, pirmajā nedēļas nogalē pēc federālās reklāmas kampaņas sākuma nokļuvām zem slodzes. Nākamajā dienā, svētdien, mÅ«su komanda bija darbā no pulksten 8. Tad mēs Trello izveidojām sundayhackathon dēli un sākās maiņu darba nedēļa, 12 stundas dienā. Situācija bija tik kritiska, ka mums pat nebija laika paēst un mÅ«s pabaroja puiÅ”i no citām komandām.

Kodim-pica

SÄ«kāku stāstu varat lasÄ«t vietnē Fjodora Ovčiņņikova lapa (mÅ«su izpilddirektors). KopÅ” tā laika esam daudz mainÄ«juÅ”ies, bet tagad noteikti neaizmirsÄ«sim datumu.

Å ogad nolēmām, ka Å”o notikumu ir vērts iemūžināt pēcnācēju atmiņā un pēc labākajām tradÄ«cijām sarÄ«kojām pirmo iekŔējo hakatonu Dodo vēsturē, kas ilga 10 stundas.

Garlaicīgākā daļa par hakatona projektiem

Atruna: visus aprakstus rakstÄ«juÅ”i paÅ”i puiÅ”i, tāpēc teksta autorÄ«ba nav mana.

Oļega mācīŔanās (maŔīnmācība)

Dima Kočņevs, SaÅ”a Andronovs (@alexandronov)

Viņi vēlējās izveidot neironu tÄ«klu, kas bez jebkādām zināŔanām noteiktu, kāda pica ir fotoattēlā. Rezultātā uztaisÄ«jām ļoti vienkārÅ”u un rotaļīgu - tā atpazÄ«st 10 picas, aptuveni izdomājām, kā viss strādā, cik vien iespējams diennaktÄ« (~10h).

Kodim-pica

Jo Ä«paÅ”i mēs sapratām, ka nozare ir sasniegusi lÄ«meni, kurā parasts izstrādātājs var ņemt gatavas bibliotēkas, lasÄ«t dokumentāciju un apmācÄ«t savu neironu tÄ«klu bez dziļām priekÅ”meta zināŔanām. Un tas darbosies pietiekami labi, lai atrisinātu reālas problēmas.

Izmantotie rīki:

  • imageai ā€” ērta un vienkārÅ”a bibliotēka darbam ar maŔīnmācÄ«bu un datorredzi.
  • Izmēģinājām divus modeļus - ResNet50, Yolo.
  • Kods, protams, tika uzrakstÄ«ts Python valodā.

Mums bija 11000 3 fotogrāfiju, bet gandrÄ«z 4/500 no tām izrādÄ«jās atkritumi, bet pārējām bija dažādi, nepiemēroti rakursi. Rezultātā paņēmām gatavu modeli (kurÅ” vienkārÅ”i prot atrast picu) un ar tā palÄ«dzÄ«bu atdalÄ«jām miskasti. Tālāk bildes nosaukumā bija iekļauts picas nosaukums - tāpēc sakārtojām mapēs, bet izrādÄ«jās, ka nosaukumi nesakrÄ«t ar realitāti un nācās to sakopt ar rokām. Beigās palika ap 600-10 fotogrāfiju, skaidrs, ka tas ir niecÄ«gs daudzums, bet tomēr ar to pietika, lai XNUMX picas atdalÄ«tu vienu no otras.

Lai apmācÄ«tu tÄ«klu, mēs izmantojām lētāko virtuālo maŔīnu Azure, izmantojot NVIDIA Tesla K80. Viņi to apmācÄ«ja 100 laikus, taču bija skaidrs, ka tÄ«kls bija pārsātināts pēc 50 epohiem, jo ā€‹ā€‹bija neliela datu kopa.

Patiesībā visa problēma ir labu datu trūkums.

Kodim-pica

Iespējams, esam nedaudz sajaukuÅ”i terminus, taču jāņem vērā, ka mums vispār nav pieredzes darbā ar visām Ŕīm lietām.

GUI for NOOBS (konsole picas pasūtīŔanai)

MiÅ”a Kumačovs (Ceridan), Žeņa Bikinina, Žeņa Vasiļjeva

Mēs esam izveidojuÅ”i konsoles lietojumprogrammas prototipu dÄ«kiem, pateicoties kuriem jÅ«s varat pasÅ«tÄ«t picu caur termināli vai komandrindu vai pat integrēt to izvietoÅ”anas konveijerā un pēc veiksmÄ«gas izlaiÅ”anas piegādāt picu birojā.

Kodim-pica

Darbs tika sadalÄ«ts vairākās daļās: mēs izdomājām, kā darbojas mÅ«su API mobilajām lietojumprogrammām, salikām savu CLI, izmantojot oklifs un konfigurēja apkopotās pakotnes publikāciju. Pēdējais uzdevums ietvēra dažas nepatÄ«kamas minÅ«tes, tuvojoties hakatona beigām. Mums viss darbojās lokāli, un pat vecās publicētās pakotnes versijas darbojās, taču jaunās (kas pievienoja vairāk forÅ”u funkciju un emocijzÄ«mes) atteicās darboties. Mēs pavadÄ«jām apmēram 40 minÅ«tes, mēģinot izdomāt, kas nogāja greizi, bet beigās viss maÄ£iski strādāja pats no sevis).

MÅ«su maksimālā programma hakatonam bija Ä«sta picas pasÅ«tÄ«Å”ana uz biroju, izmantojot mÅ«su CLI. Mēs visu pārdesmit reižu palaidām uz pārbaudes stenda, bet man joprojām trÄ«cēja rokas, kad ievadÄ«ju komandas ražoÅ”anā.

Kodim-pica

Rezultātā mēs beidzot to paveicām!

Kodim-pica

CourierGo

Antons Bružmeļevs (autors), Vaņa Zverevs, Gļebs Ļesņikovs (entropija), Andrejs Sarafanovs

Mēs izmantojām ideju par ā€œAplikāciju kurjeramā€.

PriekÅ”vēsture par sagatavoÅ”anos.Sākotnēji es prātoju, kādas funkcijas varētu bÅ«t lietojumprogrammā? Tika parādÄ«ts Ŕāds funkcionalitātes saraksts:

  • Lietojumprogramma piesakās piegādes kasē, izmantojot kodu.
  • Lietojumprogramma uzreiz parāda pieejamos pasÅ«tÄ«jumus un pasÅ«tÄ«jumus, kas ir jāpieņem.
  • Kurjers atzÄ«mē pasÅ«tÄ«jumu un paņem to ceļojumā.
  • Viņam tiek parādÄ«ts paredzamais laiks un tas, vai viņŔ ir vai nē.
  • Parāda klientam, ka kurjers ir aizgājis.
  • Klientam sāk parādÄ«t kartē kurjera punktu un paredzamo laiku.
  • Kurjers var rakstÄ«t klientam čatā no aplikācijas.
  • Klients var rakstÄ«t kurjeram caur tērzÄ“Å”anu no aplikācijas.
  • Piecas minÅ«tes pirms ieraÅ”anās klients saņem ziņu, ka kurjers ir tuvu, esiet gatavi.
  • Kurjers pieteikumā atzÄ«mē, ka ir ieradies un gaida.
  • Kurjers zvana no aplikācijas ar vienu klikŔķi un ziņo, ka (pieaug, ir ieradies utt.)
  • Klients pieņem pasÅ«tÄ«jumu un ievada PIN kodu no aplikācijas vai SMS, lai apstiprinātu piegādi.(kā paraksts) Lai kurjers nevarētu iepriekÅ” pabeigt piegādi, ja kavējas.
  • PasÅ«tÄ«jums sistēmā tiek atzÄ«mēts kā piegādāts.

Turklāt daži alternatīvi scenāriji:

  • Kurjers var atzÄ«mēt pasÅ«tÄ«jumu kā nepiegādātu un izvēlēties iemeslu.
  • Ja kavējat, kurjers ar vienu pogu var izsniegt elektronisku sertifikātu, izmantojot SMS. Vai arÄ« sertifikāts pienāk automātiski, ja netiek ievērots piegādes termiņŔ.

Šī projekta solījuma un nepiecieŔamības sajūta, protams, rosināja enerģiju.

Nākamajā dienā ar komandu devāmies pusdienās un pārrunājām, kā izskatīsies aplikācijas minimālā funkcionalitāte.

Rezultātā izveidojās Ŕāds hakatonā darāmo saraksts:

  • Piesakieties piegādes kasē.
  • ParādÄ«t paÅ”reizējo pozÄ«ciju.
  • NosÅ«tÄ«t datus uz ārēju API (koordinātas, saņemts pasÅ«tÄ«jums, piegādāts pasÅ«tÄ«jums).
  • Saņemiet datus no ārējā API (paÅ”reizējie kurjerpasta pasÅ«tÄ«jumi).
  • NosÅ«tiet notikumu, kas norāda, ka esat pieņēmis pasÅ«tÄ«jumu piegādei/piegādei.
  • Parādiet kurjera paÅ”reizējo atraÅ”anās vietu vietnes kartē.

Galvenais darbs, kā Ŕķita, bija aizmugursistēmas, paÅ”as lietojumprogrammas izveidē (pēc diskusijām mēs izvēlējāmies ReactNative, lai izstrādātu lietojumprogrammu vai drÄ«zāk tās ietvaru - expo.io, kas ļauj vispār nerakstÄ«t vietējo kodu). Runājot par aizmuguri, sākotnēji bija cerÄ«ba uz Vanju Zverevu, jo viņam bija pieredze darbā ar mÅ«su servisa veidni un k8s (kuru darbu viņŔ uzņēmās). Andrejs Sarafanovs un es paņēmām ReactNative, lai pagrieztos.

Es nolēmu mēģināt nekavējoties izveidot darba repozitoriju paÅ”am projektam. 12 naktÄ« es saskāros ar faktu, ka Ä£eogrāfiskā atraÅ”anās vieta fonā nedarbojas labi ReactNative, ja jÅ«s nerakstat vietējo kodu, es biju nedaudz neapmierināts. Tad es atlaidos, kad sapratu, ka lasu nevis expo.io ietvara, bet gan ReactNative dokumentāciju. Rezultātā vakara gaitā es jau sapratu, kā iegÅ«t paÅ”reizējo pozÄ«ciju expo.io un uzzÄ«mēt atseviŔķus ekrānus (pieteikÅ”anās, pasÅ«tÄ«juma attēloÅ”anai utt.).

Kodim-pica

No rÄ«ta hakatonā viņi ievilināja Glebu savā ļoti daudzsoloÅ”ajā projektā. Viņi ātri izstrādāja plānu, kas jādara.

Kodim-pica

Mēs pieļāvām kļūdu, kad saskaņā ar projekta veidni mēģinājām sazināties nevis caur HTTP, bet gan caur GRPC, jo neviens nezināja, kā izveidot GRPC klientu JavaScript. Galu galā, tam veltÄ«juÅ”i apmēram pusotru stundu, mēs no Ŕīs idejas atteicāmies. Å Ä« iemesla dēļ aizmugures puiÅ”i sāka pārveidot gatavo serveri no GRPC uz WebApi. Pēc pusstundas mēs beidzot varējām izveidot saziņu starp lietojumprogrammu un aizmuguri, lÅ«k, lÅ«k. Bet tajā paŔā laikā Gļebs gandrÄ«z pabeidza izvietoÅ”anu uz k8s un plus automātisku apņemÅ”anās izvietoÅ”anu kapteinim. šŸ™‚

Izvēlējāmies MySQL kā krātuvi, lai neriskētu vismaz ar datu bāzi (bija domas par CosmosDb).

Kodim-pica

Rezumējot:

  • ÄŖstenota aktuālo kurjera koordinātu saglabāŔana no aplikācijas datu bāzē.
  • Mēs instalējām RabbitMQ un abonējām ziņojumus par kurjera pasÅ«tÄ«juma saņemÅ”anu, lai aplikācijā nekavējoties parādÄ«tu pasÅ«tÄ«jumu no kurjera.
  • PasÅ«tÄ«juma piegādes laiku sākām saglabāt savā datubāzē pēc tam, kad kurjers aplikācijā nospieda pogu. Mums nebija laika pievienot notikuma nosÅ«tÄ«Å”anu atpakaļ rebbit, ka pasÅ«tÄ«jums tika piegādāts.
  • Vietnē paÅ”reizējā pasÅ«tÄ«juma lapā izveidoju kartes attēlojumu ar kurjera paÅ”reizējo atraÅ”anās vietu. Bet Ŕī funkcionalitāte palika nedaudz nepabeigta, jo nebija iespējams konfigurēt CORS vidē, lai saņemtu koordinātas no mÅ«su jaunā pakalpojuma.

M87

Roma Bukins, GoŔa Polevojs (Džordžpolevojs), Artjoms TrofimuŔkins

Mēs vēlējāmies ieviest OpenID Connect nodroÅ”inātāju, jo Å”obrÄ«d izmantojam mÅ«su paÅ”u izstrādātu autentifikācijas protokolu, un tas rada vairākas grÅ«tÄ«bas: pielāgotas klientu bibliotēkas, neērts darbs no ārējo partneru puses, iespējamas droŔības problēmas (galu galā , OAuth2.0 un OpenID Connect atsauces ievieÅ”anā var uzskatÄ«t par droÅ”iem, taču es neesmu pārliecināts par mÅ«su risinājumu).

Kodim-pica

Mēs izveidojām atseviŔķu pakalpojumu, kas emulē personas datu glabāŔanas pakalpojumu, lai izveidotu nelielu autentifikācijas nodroÅ”inātāja Country-Agnostic modeli, kas pārietu uz atseviŔķu personas datu pakalpojumu (tas nākotnē ļautu izveidot vienu pakalpojumu ar kurā var pieteikties, reÄ£istrējot kontu jebkurā valstÄ«, un tajā paŔā laikā ievērot GDPR un citus federālos likumus). Mēs veicām Å”o daļu, tāpat kā pakalpojumu sniedzējs, un veiksmÄ«gi saistÄ«jām tos savā starpā. Pēc tam bija jāizveido API, kas bÅ«tu aizsargāta ar pakalpojumu sniedzēja izsniegtiem marÄ·ieriem, atbalstÄ«tu viņu ieskatu caur pakalpojumu sniedzēju un atgrieztu aizsargātus datus, ja pieprasÄ«jums atbilst autorizācijas politikām (mēs pārbaudām, vai lietotājs ir autentificēts saskaņā ar nesēja shēmu , viņa marÄ·ieris satur noteiktu darbÄ«bas jomu + y Lietotājam paÅ”am ir atļauja, kas ļauj veikt zvanu). ArÄ« Ŕī daļa tika pabeigta. Pēdējais komponents bija JavaScript klients, kuram tiktu pieŔķirts marÄ·ieris, ar kura palÄ«dzÄ«bu tas izsauktu aizsargātu API. Mums nebija laika izpildÄ«t Å”o daļu. Tas ir, visa funkcionālā daļa bija gatava, bet priekŔējā daļa nebija gatava demonstrēt visas sistēmas funkcionalitāti.

E-E-E (rotaļlieta)

Dima Afončenko, SaŔa Konovalovs

Mēs uz jukas uztaisÄ«jām minirotaļlietu, kur smailas rokas met desu uz picas. Nepareizi uzliekot desu, ekrānā parādās skumjÅ” ziņojums ā€œNoraidÄ«tsā€, un, ja visa desa ir uzlikta pareizi, parādās nejauÅ”s fakts par picu.

Kodim-pica

Mēs gribējām izveidot otro lÄ«meni ar tomātu meÅ”anu, bet mums nebija laika.

Kodim-pica

ÄŖss turpinājums: kurÅ” uzvarēja?

Pirms hakatona aprunājāmies ar puiÅ”iem un jautāju, kādu balvu viņi vēlētos saņemt, ja uzvarēs. IzrādÄ«jās, ka visvērtÄ«gākā balva bÅ«s ā€œceļŔ uz pārtikuā€.

Kodim-pica

Tāpēc drīzumā mēs paziņosim par spēli ar rokām, kas uzliks piparus uz picas.

Kā jau vērÄ«gs lasÄ«tājs varēja pamanÄ«t, uzvarēja komanda ā€œE-E-E (rotaļlieta)ā€. Apsveicam puiÅ”i!

Aptaujā var piedalīties tikai reģistrēti lietotāji. Ielogoties, lūdzu.

KurŔ projekts tev patika vislabāk?

  • Oļega mācÄ«Å”anās (maŔīnmācÄ«ba)

  • GUI priekÅ” NOOBS

  • CourierGo

  • M87

  • E-E-E

Nobalsoja 5 lietotāji. 3 lietotāji atturējās.

Avots: www.habr.com

Pievieno komentāru