Kodim-pizza

Helo, Habr. Fe wnaethon ni gynnal ein hacathon mewnol cyntaf yn ddigymell. Penderfynais rannu gyda chi fy mhoenau a'm casgliadau ynglŷn â pharatoi ar ei gyfer mewn 2 wythnos, yn ogystal â'r prosiectau a ddaeth i fodolaeth.

Kodim-pizza

Y rhan ddiflas i'r rhai sydd â diddordeb mewn marchnata

Dechreuaf gyda stori fach.

Ddechrau Ebrill. Mae'r hacathon Cymunedol MskDotNet cyntaf yn cael ei gynnal yn ein swyddfa. Mae Brwydr Tatooine ar ei hanterth yn ein galaeth y tro hwn. dydd Sadwrn. 20 tîm. Pizza. Mae popeth yn ddiffuant iawn (proflenni). Mae R2-D2 chwyddadwy yn arnofio o amgylch y neuadd. Mae timau'n ysgrifennu'r algorithmau mwyaf cywir i basio'r ras fwyaf peryglus ar y map. Rydym yn symud lansiad y rasys cyntaf. Mae cwcis a choffi yn achubwyr bywyd. Roedd y trefnwyr a minnau’n disgwyl y byddai llawer o bobl yn gadael ar ôl cinio ddydd Sadwrn. Ond na. 12 awr o godio ar ei hôl hi. Y rownd derfynol. Mae rhywbeth yn cwympo i ffwrdd, nid yw rhywbeth yn dechrau. Ond mae pawb yn hapus. Ein tîm yn ennill. Rydyn ni'n hapus ddwywaith.

Rwy’n rhannu fy llawenydd yn Slack ac mae’r syniad yn dod i’r meddwl: “Mae angen i ni wneud ein hacathon ein hunain.” Rwy'n ysgrifennu at ein gorsaf wasanaeth Sasha. Tawelwch.

Bore. Rwy'n yfed coffi yn y swyddfa. Rwy'n gweld Sasha yn agosáu o'r tu ôl. “Lisa, mae hyn yn wych! Mae gennym ddyddiad pwysig ar Ebrill 21ain. Gadewch i ni ei wneud!" WTF!? Mor gyflym? A? Beth? Mae angen i mi hedfan i Syktyvkar ar gyfer interniaeth ganol mis Ebrill. Ac i uffern ag ef! Gadewch i ni.

2 wythnos ar ôl. Nid wyf erioed wedi bod yn unig drefnydd hacathon. Gadewch iddo fod yn fewnol. Darllenais erthyglau ar y pwnc hwn. Anhawdd. Mae'n cymryd sawl mis. Mae angen nifer o bobl. Mae angen i chi feddwl am nwyddau, gwobrau, amodau, amserlen, llog, deall y nod, cyllidebau. Neu efallai hyd yn oed ddarganfod ystyr bywyd. Yn bendant ni fyddaf yn ei wneud mewn pryd. A thra oeddech chi'n darllen ac yn paratoi, roedd wythnos eisoes wedi mynd heibio. Mae'n bryd anghofio am yr erthyglau a dechrau gwneud rhywbeth.

Darllenwch ein rhestr wirio ar gyfer cynnal hacathon mewnol mewn 1 wythnos

  • Cynllun: Rydych chi'n eistedd i lawr yn dawel ac yn ysgrifennu rhestr o'r hyn sydd angen ei wneud ar gyfer yr hacathon. Cofnodion 30.
  • Gorchwyl: Mae cyfranogwyr yn cynnig ac yn dewis y prosiectau y maent am eu creu yn Google Sheets. Tasg gefndir, 2 awr.
  • Amserlen: ar eich pen-glin rydych chi'n ysgrifennu dadansoddiad byr o amser, gan gymryd i ystyriaeth 3 egwyl a'r rownd derfynol. Cofnodion 20.
  • Timau: cyhoeddi neges am yr hacathon gydag amserlen o'r orsaf wasanaeth mewn sianeli TG yn Slack/mail/etc a chreu sianel ar wahân ar gyfer yr hacathon. Ynddo, mae pawb wedi'u rhannu'n dimau, ac mae'r rhai sydd heb benderfynu yn gwneud hyn yn 5 munud cyntaf yr hacathon. Tasg gefndir, 2 awr.
  • Byns: rydych chi'n llunio merch gyda dau ddatblygwr, yn ei roi i'r dylunydd i'w rendro, ac yn ei dderbyn yn barod. Tasg gefndir, 3 diwrnod.
  • Hacathon: rydych chi'n dod i'r swyddfa, yn cydlynu pawb ar y dechrau, yn mynd o gwmpas eich busnes, yn darllen Reddit, yn bwysig yn cyhoeddi pob egwyl am pizza ffres, yn cymryd lluniau o'r machlud, yn cyhoeddi'r rownd derfynol, yn pleidleisio gyda'i gilydd ac yn dewis yr enillydd. diwrnod 1.
  • O dan y seren: Wrth gwrs, rydych chi'n meddwl yn gyson am bopeth yn mynd yn dda. Wrth gwrs, ni fydd pawb yn gweld eich neges ac mae'n well siarad â rhai wyneb yn wyneb. Wrth gwrs, os bydd rhywun yn eich helpu chi, bydd popeth yn dod yn haws 2 gwaith (mae'r Alena gwych wedi fy helpu i).

Y rhan llai diflas am y dyddiad hacathon

Pam Ebrill 21? Mae'r diwrnod hwn yn arwyddocaol i ni. Yn union flwyddyn yn ôl, ar Ebrill 21, fe wnaethom syrthio dan lwyth yn ystod y penwythnos cyntaf ar ôl dechrau'r Ymgyrch Hysbysebu Ffederal. Y diwrnod wedyn, dydd Sul, roedd ein tîm yn y gwaith o 8 am. Yna fe wnaethon ni greu bwrdd sundayhackathon yn Trello a dechreuodd wythnos o waith shifft, 12 awr y dydd. Roedd y sefyllfa mor ddifrifol fel nad oedd gennym ni hyd yn oed amser i fwyta a chawsom ein bwydo gan fechgyn o dimau eraill.

Kodim-pizza

Gallwch ddarllen stori fanylach yn Tudalen Fyodor Ovchinnikov (ein Prif Swyddog Gweithredol). Ers hynny, rydym wedi newid llawer, ond yn awr ni fyddwn yn anghofio'r dyddiad.

Eleni, penderfynom fod y digwyddiad hwn yn werth ei barhau er cof am y dyfodol ac, yn y traddodiadau gorau, trefnwyd yr hacathon mewnol cyntaf yn hanes Dodo, a barhaodd am 10 awr.

Y rhan fwyaf diflas am brosiectau hacathon

Ymwadiad: ysgrifennwyd yr holl ddisgrifiadau gan y dynion eu hunain, felly nid fy eiddo i yw awduraeth y testun.

Oleg Dysgu (dysgu peiriant)

Dima Kochnev, Sasha Andronov (@alexandronov)

Roeddent am wneud rhwydwaith niwral a fyddai'n pennu pa fath o pizza sydd mewn llun heb unrhyw wybodaeth. O ganlyniad, gwnaethom un syml a thegan iawn - mae'n cydnabod 10 pizzas, fe wnaethom gyfrifo'n fras sut mae popeth yn gweithio, cyn belled ag y bo modd mewn diwrnod (~ 10 awr).

Kodim-pizza

Yn benodol, sylweddolom fod y diwydiant wedi cyrraedd lefel lle gall datblygwr cyffredin gymryd llyfrgelloedd parod, darllen y ddogfennaeth a hyfforddi ei rwydwaith niwral heb wybodaeth ddofn o'r pwnc. A bydd yn gweithio'n ddigon da i ddatrys problemau go iawn.

Offer a ddefnyddir:

  • delweddai — llyfrgell gyfleus a syml ar gyfer gweithio gyda dysgu peirianyddol a gweledigaeth gyfrifiadurol.
  • Fe wnaethon ni roi cynnig ar ddau fodel - ResNet50, Yolo.
  • Ysgrifennwyd y cod, wrth gwrs, yn Python.

Cawsom 11000 o luniau, ond roedd bron i 3/4 ohonynt yn sothach, ac roedd gan y gweddill onglau gwahanol, amhriodol. O ganlyniad, fe wnaethon ni gymryd model parod (sy'n gwybod sut i ddod o hyd i pizza) a gyda'i help fe wnaethon ni wahanu'r sbwriel. Nesaf, roedd teitl y llun yn cynnwys enw'r pizza - felly fe wnaethon ni ei ddidoli'n ffolderi, ond daeth yn amlwg nad oedd yr enwau'n cyd-fynd â realiti a bu'n rhaid i ni ei lanhau â'n dwylo. Yn y diwedd, roedd tua 500-600 o luniau ar ôl, mae'n amlwg bod hwn yn swm ansylweddol, ond serch hynny, roedd hyn yn ddigon i wahanu 10 pizza oddi wrth ei gilydd.

I hyfforddi'r grid, aethom â'r peiriant rhithwir rhataf yn Azure ar NVIDIA Tesla K80. Buont yn hyfforddi arno am 100 o gyfnodau, ond roedd yn amlwg bod y rhwydwaith yn orlawn ar ôl 50 cyfnod, oherwydd y ffaith bod set ddata fach.

Mewn gwirionedd, y broblem gyfan yw diffyg data da.

Kodim-pizza

Efallai ein bod wedi drysu’r telerau ychydig, ond rhaid inni gymryd i ystyriaeth nad oes gennym unrhyw brofiad o gwbl o weithio gyda’r holl faterion hyn.

GUI ar gyfer NOOBS (consol ar gyfer archebu pizza)

Misha Kumachev (Ceridan), Zhenya Bikkinin, Zhenya Vasiliev

Rydym wedi llunio prototeip o gymhwysiad consol ar gyfer geeks, a diolch i hyn gallwch archebu pizza trwy'r derfynell neu'r llinell orchymyn, neu hyd yn oed ei integreiddio i'r biblinell lleoli ac, ar ôl ei ryddhau'n llwyddiannus, danfon pizza i'r swyddfa.

Kodim-pizza

Rhannwyd y gwaith yn sawl rhan: fe wnaethom ddarganfod sut mae ein API ar gyfer cymwysiadau symudol yn gweithio, cydosod ein CLI ein hunain gan ddefnyddio oclif a ffurfweddu cyhoeddi'r pecyn a gasglwyd gennym. Roedd y dasg olaf yn cynnwys ychydig funudau annymunol tua diwedd yr hacathon. Gweithiodd popeth yn lleol i ni, ac roedd hyd yn oed yr hen fersiynau cyhoeddedig o'r pecyn yn gweithio, ond gwrthododd y rhai newydd (a ychwanegodd nodweddion mwy cŵl ac emoticons) weithio. Fe wnaethon ni dreulio tua 40 munud yn ceisio darganfod beth aeth o'i le, ond yn y diwedd fe weithiodd popeth yn hudol ar ei ben ei hun).

Ein rhaglen uchaf ar gyfer yr hacathon oedd archeb wirioneddol o pizza i'r swyddfa trwy ein CLI. Fe wnaethon ni redeg popeth dwsin o weithiau ar y fainc brawf, ond roedd fy nwylo'n dal i ysgwyd pan es i mewn i orchmynion wrth gynhyrchu.

Kodim-pizza

O ganlyniad, fe wnaethom ni o'r diwedd!

Kodim-pizza

CourierGo

Anton Bruzhmelev (awdur), Vanya Zverev, Gleb Lesnikov (entropi), Andrey Sarafanov

Fe wnaethon ni gymryd y syniad o “App for Courier”.

Cefndir am baratoi.I ddechrau, roeddwn i'n meddwl tybed pa fath o nodweddion allai fod yn y cais? Daeth y rhestr ganlynol o swyddogaethau i'r amlwg:

  • Mae'r cais yn mewngofnodi i'r gofrestr arian dosbarthu gan ddefnyddio'r cod.
  • Mae'r cais ar unwaith yn dangos archebion sydd ar gael a gorchmynion y mae angen eu cymryd.
  • Mae'r negesydd yn nodi'r archeb ac yn mynd ag ef ar y daith.
  • Dangosir iddo amcangyfrif o'r amser ac a yw ar amser ai peidio.
  • Yn dangos i'r cleient bod y negesydd wedi gadael.
  • Dechreuir dangos pwynt y negesydd ar y map i'r cleient a'r amser a amcangyfrifir.
  • Gall y negesydd ysgrifennu at y cleient mewn sgwrs o'r cais.
  • Gall y cleient ysgrifennu at y negesydd trwy sgwrs o'r cais.
  • Pum munud cyn cyrraedd, mae'r cleient yn derbyn neges bod y negesydd yn agos, byddwch yn barod.
  • Mae'r negesydd yn nodi yn y cais ei fod wedi cyrraedd ac yn aros.
  • Mae'r negesydd yn galw o'r cais gydag un clic ac yn adrodd bod (yn codi, wedi cyrraedd, ac ati)
  • Mae'r cleient yn derbyn yr archeb ac yn mewnbynnu cod PIN o'r cais neu SMS i gadarnhau danfoniad (fel llofnod) Fel na all y negesydd gwblhau'r danfoniad ymlaen llaw os yw'n hwyr.
  • Mae'r gorchymyn wedi'i farcio fel y'i cyflwynir yn y system.

Ynghyd â chwpl o senarios amgen:

  • Gall y negesydd nodi bod y gorchymyn heb ei ddosbarthu a dewis y rheswm.
  • Os ydych chi'n hwyr, gall y negesydd roi tystysgrif electronig trwy SMS gydag un botwm. Neu mae'r dystysgrif yn cyrraedd yn awtomatig os na chyflawnir y dyddiad cau.

Roedd y teimlad o addewid ac anghenraid y prosiect hwn, wrth gwrs, yn llawn egni.

Y diwrnod wedyn, aethom i ginio gyda'r tîm a thrafod sut beth fyddai ymarferoldeb lleiaf y rhaglen.

O ganlyniad, lluniwyd y rhestr ganlynol o'r hyn yr oedd yn rhaid ei wneud yn yr hacathon:

  • Mewngofnodwch i'r gofrestr arian dosbarthu.
  • Arddangos y sefyllfa gyfredol.
  • Anfon data i API allanol (cyfesurynnau, derbyn y gorchymyn, danfon y gorchymyn).
  • Derbyn data o API allanol (archebion negesydd cyfredol).
  • Anfonwch ddigwyddiad yn nodi eich bod wedi cymryd yr archeb ar gyfer danfon/cyflenwi.
  • Dangoswch leoliad presennol y negesydd ar y map ar y wefan.

Y prif waith, fel yr oedd yn ymddangos, oedd creu'r backend, y cais ei hun (ar ôl trafodaethau, dewisom ReactNative i ddatblygu'r cais, neu yn hytrach y fframwaith ar ei gyfer - expo.io, sy'n eich galluogi i beidio ag ysgrifennu cod brodorol o gwbl). O ran y backend, i ddechrau roedd gobaith yn Vanya Zverev, gan ei fod yn brofiadol o weithio gyda'n templed gwasanaeth a k8s (pa swydd a gymerodd). Cymerodd Andrey Sarafanov a minnau ReactNative am dro.

Penderfynais geisio creu ystorfa weithredol ar gyfer y prosiect ei hun ar unwaith. Yn 12 yn y nos deuthum ar draws y ffaith nad yw geolocation yn y cefndir yn gweithio'n dda yn ReactNative, os nad ydych yn ysgrifennu cod brodorol, roeddwn ychydig yn rhwystredig. Yna gollyngais fynd pan sylweddolais fy mod yn darllen y ddogfennaeth nid o'r fframwaith expo.io, ond o ReactNative. O ganlyniad, yn ystod y noson roeddwn eisoes yn deall sut i gael y sefyllfa bresennol yn expo.io a thynnu sgriniau ar wahân (ar gyfer mewngofnodi, arddangosiad archeb, ac ati).

Kodim-pizza

Yn y bore yn yr hacathon, fe wnaethon nhw ddenu Gleb i'w prosiect hynod addawol. Fe wnaethon nhw lunio cynllun yn gyflym o'r hyn oedd angen ei wneud.

Kodim-pizza

Gwnaethom gamgymeriad pan geisiwyd, yn unol â thempled y prosiect, gyfathrebu nid trwy HTTP, ond trwy GRPC, gan nad oedd neb yn gwybod sut i adeiladu cleient GRPC ar gyfer JavaScript. Yn y diwedd, ar ôl treulio tua awr a hanner ar hyn, fe wnaethon ni roi'r gorau i'r syniad hwn. Oherwydd hyn, dechreuodd y dynion ar y pen ôl ail-wneud y gweinydd gorffenedig o GRPC i WebApi. Ar ôl hanner awr, roeddem o'r diwedd yn gallu sefydlu cyfathrebu rhwng y cais a'r cefn, wele ac wele. Ond ar yr un pryd, roedd Gleb bron â gorffen y gwaith o anfon i k8s ac yn ogystal ag anfon ymrwymiad i'r meistr yn awtomatig. 🙂

Fe wnaethon ni ddewis MySQL fel storfa er mwyn peidio â chymryd risgiau o leiaf gyda'r gronfa ddata (roedd gennym ni feddyliau am CosmosDb).

Kodim-pizza

I grynhoi:

  • Wedi'i weithredu gan arbed cyfesurynnau cyfredol y negesydd o'r cais i'r gronfa ddata.
  • Fe wnaethom osod RabbitMQ a thanysgrifio i negeseuon am y negesydd yn codi archeb er mwyn arddangos yr archeb o'r negesydd yn y cais ar unwaith.
  • Dechreuon ni arbed yr amser dosbarthu archeb yn ein cronfa ddata ar ôl i'r negesydd wasgu botwm yn y cais. Nid oedd gennym amser i ychwanegu anfon digwyddiad yn ôl at yr ad-daliad y cafodd yr archeb ei ddosbarthu.
  • Gwneuthum arddangosfa map ar y dudalen trefn gyfredol ar y wefan gyda safle presennol y negesydd. Ond arhosodd y swyddogaeth hon ychydig yn anorffenedig, gan nad oedd yn bosibl ffurfweddu CORS yn yr amgylchedd i dderbyn cyfesurynnau o'n gwasanaeth newydd.

M87

Roma Bukin, Gosha Polevoy (georgepolevoy), Artyom Trofimushkin

Roeddem am weithredu darparwr OpenID Connect, oherwydd ar hyn o bryd rydym yn defnyddio protocol dilysu o'n dyluniad ein hunain, ac mae hyn yn creu nifer o anawsterau: llyfrgelloedd cleientiaid arferol, gwaith anghyfleus ar ran partneriaid allanol, problemau diogelwch posibl (wedi'r cyfan , gellir ystyried OAuth2.0 ac OpenID Connect yn y gweithredu cyfeirio yn ddiogel, ond nid wyf yn siŵr am ein datrysiad).

Kodim-pizza

Gwnaethom wasanaeth ar wahân yn efelychu gwasanaeth ar gyfer storio data personol er mwyn creu model Gwlad-Agnostig bach o ddarparwr dilysu a fyddai’n mynd i wasanaeth ar wahân ar gyfer data personol (byddai hyn yn y dyfodol yn ei gwneud yn bosibl cael un gwasanaeth gyda pa un allai fewngofnodi gyda chofrestriad cyfrif mewn unrhyw wlad, ac ar yr un pryd gydymffurfio â GDPR a chyfreithiau ffederal eraill). Gwnaethom y rhan hon, fel y gwnaeth y darparwr, a'u cysylltu'n llwyddiannus â'i gilydd. Nesaf, roedd angen creu API a fyddai'n cael ei ddiogelu gan docynnau a gyhoeddwyd gan y darparwr, cefnogi eu mewnsylliad trwy'r darparwr a dychwelyd data gwarchodedig pe bai'r cais yn bodloni'r polisïau awdurdodi (rydym yn gwirio bod y defnyddiwr wedi'i ddilysu yn unol â'r cynllun Cludwr , mae ei docyn yn cynnwys cwmpas penodol + y Mae gan y defnyddiwr ei hun ganiatâd sy'n caniatáu i'r alwad gael ei gwneud). Cwblhawyd y rhan hon hefyd. Roedd y gydran olaf yn gleient JavaScript, a fyddai'n cael tocyn, gyda chymorth y byddai'n galw API gwarchodedig. Nid oedd gennym amser i wneud y rhan hon. Hynny yw, roedd y rhan swyddogaethol gyfan yn barod, ond nid oedd y rhan blaen yn barod i ddangos ymarferoldeb y system gyfan.

E-E-E (tegan)

Dima Afonchenko, Sasha Konovalov

Fe wnaethon ni degan mini ar yunka lle mae dwylo frisky yn taflu selsig ar pizza. Os rhowch y selsig ymlaen yn anghywir, mae neges drist “Wedi'i Gwrthod” yn ymddangos ar y sgrin, ac os cafodd yr holl selsig ei gwisgo'n gywir, mae ffaith ar hap am pizza yn ymddangos.

Kodim-pizza

Roedden ni eisiau gwneud ail lefel gyda thaflu tomatos, ond doedd dim amser gyda ni.

Kodim-pizza

Parhad byr: pwy enillodd?

Cyn yr hacathon, buom yn siarad â'r bechgyn a gofynnais pa wobr yr hoffent ei chael pe byddent yn ennill. Daeth i'r amlwg mai'r wobr fwyaf gwerthfawr fyddai “y ffordd i fwyd.”

Kodim-pizza

Felly, disgwyliwch i ni gyhoeddi gêm gyda dwylo sy'n rhoi pupurau ar pizza yn fuan.

Fel y gallai darllenydd sylwgar fod wedi sylwi, y tîm “E-E-E (tegan)” enillodd. Llongyfarchiadau bois!

Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg. Mewngofnodios gwelwch yn dda.

Pa brosiect oeddech chi'n ei hoffi orau?

  • Oleg Dysgu (dysgu peiriant)

  • GUI ar gyfer NOOBS

  • CourierGo

  • M87

  • E-E-E

Pleidleisiodd 5 o ddefnyddwyr. Ymataliodd 3 o ddefnyddwyr.

Ffynhonnell: hab.com

Ychwanegu sylw