Kodim-pizza

Silav Habr. Me bi awayekî spontan yekem hackathona xweya navxweyî pêk anî. Min biryar da ku derd û encamên xwe yên derbarê amadekirina wê di nav 2 hefteyan de û her weha projeyên ku derketine holê bi we re parve bikim.

Kodim-pizza

Beşa bêzar ji bo kesên ku bi kirrûbirrê re eleqedar dibin

Ez ê bi çîrokek piçûk dest pê bikim.

Destpêka Nîsanê. Yekem hackathona Civaka MskDotNet li ofîsa me pêk tê. Şerê Tatooine vê carê di galaksiya me de bi lez e. Şemî. 20 tîm. Pizza. Her tişt pir dilsoz e (delîlên). R2-D2-ya inflatable li dora salonê diherike. Tîm algorîtmayên herî rast dinivîsin da ku pêşbaziya herî xeternak li ser nexşeyê derbas bikin. Em destpêkirina pêşbirkên yekem dimeşînin. Cookies û qehwe xilasker in. Organîzator û ez hêvî dikir ku gelek kes dê piştî nîvro roja Şemiyê derkevin. Lê na. 12 demjimêrên kodkirinê li paş. Dawî. Tiştek dikeve, tiştek dest pê nake. Lê her kes kêfxweş e. Tîma me bi ser dikeve. Em du qat kêfxweş in.

Ez şahiya xwe di Slack de parve dikim û ev fikir tê bîra min: "Divê em hackathona xwe bikin." Ez ji qereqola me ya xizmetê Sasha re dinivîsim. Bêdengî.

Sib. Ez li meqamê qehwe vedixwim. Ez dibînim ku Saşa ji paş ve nêzîk dibe. "Lisa, ev pir baş e! 21ê Nîsanê rojeke me ya girîng heye. Ka em bikin!" WTF!? Wisa zû? YEK? Çi? Divê ez di nîvê Nîsanê de ji bo stajyerek bifirim Syktyvkar. Û bi dojehê re! Werin em.

2 hefte mane. Ez tu carî nebûme organîzatorê yekane yê hackathon. Bila navxweyî be. Min gotarên li ser vê mijarê xwendin. Dijwar. Çend mehan digire. Gelek kes hewce ne. Pêdivî ye ku hûn li ser kirrûbirra, xelat, şert, bername, berjewendî bifikirin, armanc, budceyan fêm bikin. An jî dibe ku wateya jiyanê jî fêm bikin. Bê guman ez ê di wextê xwe de nekim. Û dema ku we dixwend û amade dikir, hefteyek jî derbas bû. Wext e ku meriv gotaran ji bîr bike û dest bi tiştek bike.

Ji bo lidarxistina hackathonek navxweyî di 1 hefte de navnîşa meya kontrolê bigirin

  • Plan: Hûn bi aramî rûnin û lîsteyek ku ji bo hackathonê divê were kirin binivîsin. Minutes 30.
  • Armanc: Beşdar projeyên ku dixwazin di Google Sheets de çêbikin pêşniyar dikin û hilbijêrin. Karê paşîn, 2 demjimêr.
  • Schedule: li ser çokê xwe tu veqetandinek dem kurt dinivîsî, ku 3 şikestin û dawiya dawî li ber çavan bigire. Minutes 20.
  • Kanada: Di kanalên IT-ê de li Slack/mail/htd peyamek di derbarê hackathonê de bi bernameyek ji stasyona servîsê biweşînin û ji bo hackathonê kanalek cihê biafirînin. Di wê de, her kes di tîman de têne dabeş kirin, û yên ku nebiryar in vê yekê di 5 hûrdemên pêşîn ên hackathon de dikin. Karê paşîn, 2 demjimêr.
  • Buns: Hûn bi du pêşdebiran re bazirganiyê dikin, ji bo pêşkêşkirinê bidin sêwiran û wê amade bikin. Karê paşîn, 3 roj.
  • Hackathon: hûn tên ofîsê, di destpêkê de her kesî koordîne bikin, li ser karê xwe bimeşin, Reddit bixwînin, ya girîng her veqetîna li ser pîzza teze ragihînin, wêneyên rojavabûnê bikişînin, dawîn ragihînin, bi hev re deng bidin û serketî hilbijêrin. Roja 1.
  • Di bin stêrkê de: Helbet tu bi berdewamî difikirî ku her tişt baş bibe. Bê guman, her kes dê peyama we nebîne û çêtir e ku meriv bi kesane bi hin kesan re biaxive. Bê guman, heke kesek ji we re bibe alîkar, dê her tişt 2 carî hêsantir bibe (Alena ecêb alîkariya min kir).

Di derbarê dîroka hackathon de beşa kêmtir bêzar

Çima 21ê Nîsanê? Ev roj ji bo me girîng e. Tam salek berê, di 21ê Avrêlê de, em di dawiya hefteya yekem a piştî destpêkirina Kampanyaya Reklamê ya Federal de ketin bin bar. Dotira rojê, roja yekşemê, ekîba me ji saet 8an de li ser kar bû. Dûv re me li Trello tabloyek sundayhackathon ava kir û hefteyek xebata dewreyê dest pê kir, rojê 12 demjimêr. Rewş ew qas krîtîk bû ku me wexta xwarinê jî tunebû û em ji hêla xortên tîmên din ve dihatin xwarin.

Kodim-pizza

Hûn dikarin li ser çîrokek berfirehtir bixwînin Rûpelê Fyodor Ovchinnikov (CEOyê me). Ji hingê ve, me gelek guherî, lê niha em ê bê guman tarîxê ji bîr nekin.

Îsal, me biryar da ku ev bûyer hêjayî bîranîna paşerojê ye û, li gorî kevneşopiyên çêtirîn, me yekem hackathona navxweyî di dîroka Dodo de organîze kir, ku 10 demjimêran domand.

Di derbarê projeyên hackathon de beşa herî bêzar

Daxuyanî: hemî ravekirin ji hêla xortan ve hatine nivîsandin, ji ber vê yekê nivîskariya nivîsê ne ya min e.

Fêrbûna Oleg (fêrbûna makîneyê)

Dima Kochnev, Sasha Andronov (@alexandronov)

Wan dixwest ku tora neuralî çêbikin ku dê diyar bike ka di wêneyekê de çi celeb pizza ye bêyî agahdarî. Wekî encamek, me yekî pir sade û pêlîstok çêkir - ew 10 pîzayan nas dike, me bi qasî fêhm kir ka her tişt çawa dixebite, bi qasî ku gengaz di rojekê de (~ 10 demjimêran).

Kodim-pizza

Bi taybetî, me fêm kir ku pîşesazî gihîştiye astekê ku pêşdebirek asayî dikare pirtûkxaneyên amade bigire, belgeyan bixwîne û tora xwe ya neuralî bêyî zanîna kûr a mijarê perwerde bike. Û ew ê têra xwe baş bixebite ku pirsgirêkên rastîn çareser bike.

Amûrên bikar anîn:

  • imageai - pirtûkxaneyek hêsan û hêsan ji bo xebitandina fêrbûna makîneyê û dîtina komputerê.
  • Me du model ceriband - ResNet50, Yolo.
  • Kod, bê guman, di Python de hate nivîsandin.

11000 wêneyên me hebûn, lê hema hema 3/4 ji wan zibil derketibûn, û yên mayî jî xwedî zozanên cûda û negunca bûn. Wekî encamek, me modelek amade (ku bi hêsanî dizane pizza çawa bibîne) hilda û bi alîkariya wê me çopê ji hev veqetand. Dûv re, sernavê wêneyê navê pîzayê vedihewand - ji ber vê yekê me ew di peldankan de veqetand, lê derket holê ku nav bi rastiyê re li hev nakin û neçar ma ku wê bi destan paqij bikin. Di dawiyê de bi qasî 500-600 wêne mabûn, diyar e ku ev mîqdarek ne girîng e, lê dîsa jî ev bes bû ku 10 pizotan ji hev veqetînin.

Ji bo perwerdekirina torê, me makîneya virtual ya herî erzan a li Azure li ser NVIDIA Tesla K80 girt. Wan 100 serdemî li ser wê perwerde kirin, lê diyar bû ku tor piştî 50 serdeman pir têr bû, ji ber ku databasek piçûk hebû.

Bi rastî, hemî pirsgirêk nebûna daneyên baş e.

Kodim-pizza

Dibe ku me şert hinekî tevlihev kiribin, lê divê em bidin ber çavan ku di xebata bi van hemî mijaran de qet ezmûna me tune.

GUI ji bo NOOBS (konsolê ji bo fermankirina pizza)

Misha Kumaçev (Ceridan), Zhenya Bikkinin, Zhenya Vasiliev

Me prototîpek serîlêdana konsolê ji bo geek berhev kiriye, bi saya wê hûn dikarin pîzza bi navgîniya termînalê an rêzika fermanê ferman bidin, an jî tewra wê di lûleya bicîhkirinê de yek bikin û, piştî serbestberdana serketî, pîzza radestî nivîsgehê bikin.

Kodim-pizza

Kar li çend beşan hate dabeş kirin: me fêhm kir ku API-ya me ya ji bo sepanên mobîl çawa dixebite, CLI-ya xwe bi kar tîne oclif û weşana pakêta ku me berhev kir mîheng kir. Karê paşîn çend hûrdemên ne xweş ber bi dawiya hackathonê ve girêdayî bû. Her tişt ji bo me herêmî xebitî, û tewra guhertoyên kevn ên pakêtê yên çapkirî jî xebitîn, lê yên nû (yên ku taybetmendiyên xweş û emotîk zêde kirin) red kirin ku bixebitin. Me bi qasî 40 hûrdeman hewl da ku em fêhm bikin ka çi xelet derket, lê di dawiyê de her tişt bi sêrbaz bi serê xwe xebitî).

Bernameya meya herî zêde ya ji bo hackathonê bi CLI-ya me fermanek rastîn a pizza ji nivîsgehê re bû. Me her tişt bi deh caran li ser textê ceribandinê gerand, lê gava ku ez di hilberînê de fermanan davêjim destên min hîn dihejiyan.

Kodim-pizza

Wekî encamek, me di dawiyê de kir!

Kodim-pizza

CourierGo

Anton Bruzhmelev (nivîskar), Vanya Zverev, Gleb Lesnikov (entropy), Andrey Sarafanov

Me fikra "App for Courier" girt.

Paşnavê derbarê amadekariyê de.Di destpêkê de, min meraq kir ka çi celeb taybetmendiyên dikarin di serîlêdanê de bin? Lîsteya jêrîn ya fonksiyonê derket holê:

  • Serlêdan bi karanîna kodê têkeve kaseya radestkirinê.
  • Serlêdan tavilê ferman û fermanên ku divê bêne girtin destnîşan dike.
  • Kurye fermanê dinivîse û bi rê ve dibe.
  • Wextê texmînkirî û gelo ew di wextê xwe de ye an na tê nîşandan.
  • Xerîdar nîşan dide ku kurye derketiye.
  • Xerîdar dest pê dike ku xala kuryeyê li ser nexşeyê û dema texmînkirî nîşan bide.
  • Kurye dikare di chatê de ji serîlêdanê ji xerîdar re binivîsîne.
  • Xerîdar dikare bi riya chatê ji serîlêdanê ji kurye re binivîsîne.
  • Pênc hûrdem berî hatinê, xerîdar peyamek distîne ku korye nêzîk e, amade bin.
  • Peyamnêr di serlêdanê de destnîşan dike ku ew hatiye û li bendê ye.
  • Kurye bi yek klîk ji serîlêdanê bang dike û radigihîne ku (rabe, hatiye, hwd.)
  • Xerîdar fermanê qebûl dike û ji serîlêdanê an jî SMS-ê kodek PIN-ê ji bo piştrastkirina radestkirinê têxe (wek îmza) Da ku kurye ger dereng be, nikaribe radestkirinê pêşwext bike.
  • Ferman wekî ku di pergalê de hatî şandin tê nîşankirin.

Zêdeyî çend senaryoyên alternatîf:

  • Korye dikare fermanê wekî neradest nîşan bide û sedemê hilbijêre.
  • Ger hûn dereng bimînin, kurye dikare bi yek bişkokê bi SMS-ê sertîfîkayek elektronîkî bide. An jî sertîfîka bixweber digihîje ger maweya radestkirinê pêk neyê.

Heskirina soz û hewcedariya vê projeyê, bêguman, enerjî bû.

Roja din em bi tîmê re çûn firavînê û nîqaş kirin ka fonksiyona herî kêm a serîlêdanê dê çawa xuya bike.

Di encamê de, navnîşa jêrîn ya tiştên ku di hackathon de bêne kirin hate çêkirin:

  • Têkeve kaseya radestkirinê.
  • Helwesta heyî nîşan bide.
  • Daneyên ji API-ya derveyî re bişînin (koordînat, ferman wergirtin, ferman radest kirin).
  • Daneyên ji API-ya derveyî (fermanên deryaya heyî) bistînin.
  • Bûyerek bişînin ku destnîşan dike ku we fermana radestkirinê / radest kiriye.
  • Li ser nexşeyê li ser malperê pozîsyona heyî ya kuryeyê nîşan bidin.

Karê sereke, wekî ku xuya bû, di afirandina paşnavê de, serîlêdanê bixwe ye (piştî nîqaşan, me ReactNative hilbijart ku serîlêdanê pêşve bixin, an bêtir çarçoweya wê - expo.io, ku dihêle hûn qet koda xwemalî nenivîsin). Di warê paşîn de, di destpêkê de li Vanya Zverev hêviyek hebû, ji ber ku ew di xebata bi şablonê karûbarê me û k8-an de (ku wî karî kir) ezmûn bû. Min û Andrey Sarafanov ReactNative ji bo zivirandinê girt.

Min biryar da ku ez tavilê hewl bidim ku ji bo projeyê bixwe depoyek xebatê biafirînim. Di demjimêr 12-ê şevê de ez rastî vê yekê hatim ku erdnîgariya di paşerojê de di ReactNative de baş naxebite, heke hûn koda xwemalî nenivîsin, ez hinekî xemgîn bûm. Dûv re min dev jê berda dema ku min fêm kir ku ez belgeya ne ya çarçoveya expo.io, lê ya ReactNative dixwînim. Wekî encamek, di nav êvarê de min jixwe fêm kir ku meriv çawa pozîsyona heyî li expo.io bi dest dixe û ekranên cihêreng xêz dike (ji bo têketinê, nîşana fermanê, hwd.).

Kodim-pizza

Serê sibê li hackathonê, wan Gleb kişandin projeya xwe ya super-hêzdar. Wan bi lez û bez bi plana ku divê bê kirin hatin.

Kodim-pizza

Me xeletiyek kir dema ku, li gorî şablonê projeyê, me hewl da ku ne bi HTTP, lê bi GRPC re têkilî daynin, ji ber ku kes nizane meriv çawa ji bo JavaScriptê xerîdarek GRPC ava bike. Di dawiyê de, piştî ku bi qasî saet û nîvek li ser vê yekê derbas kirin, me dev ji vê ramanê berda. Ji ber vê yekê, xortên li paşîn dest pê kirin ku servera qediyayî ji GRPC berbi WebApi-yê ji nû ve çêbikin. Piştî nîv saetê, me di dawiyê de karî danûstendinê di navbera serîlêdanê û paşverû de saz bikin, va ye. Lê di heman demê de, Gleb hema hema bicîhkirina k8-an û zêdekirina otomatîkî ya peywirdariyek ji master re jî diqedand. 🙂

Me MySQL wekî hilanînê hilbijart da ku bi kêmî ve databasê xeternak nebin (di derbarê CosmosDb de ramanên me hebûn).

Kodim-pizza

Paştirîn:

  • Sazkirina koordînatên heyî yên kuryeyê ji serîlêdanê berbi databasê ve hatî bicîh kirin.
  • Me RabbitMQ saz kir û me peyamên di derbarê gihandina fermanê de abonet kir da ku tavilê fermana ji kuryeyê di serîlêdanê de nîşan bide.
  • Me dest bi tomarkirina dema radestkirina fermanê li databasa xwe kir piştî ku kurye bişkokek di serîlêdanê de pêxist. Wextê me tunebû ku em vegerandina bûyerek li rebbit ku ferman hate radest kirin zêde bikin.
  • Min li ser rûpela fermana niha ya li ser malperê bi pozîsyona heyî ya koryeyê nexşeyek çêkir. Lê ev fonksiyon hinekî neqediya ma, ji ber ku ne gengaz bû ku CORS li hawîrdorê mîheng bike da ku koordînat ji karûbarê meya nû werbigire.

M87

Roma Bukin, Gosha Polevoy (georgepolevoy), Artyom Trofimushkin

Me xwest ku pêşkêşkerek OpenID Connect bicîh bînin, ji ber ku di vê gavê de em protokolek rastkirinê ya sêwirana xwe bikar tînin, û ev çend zehmetiyan diafirîne: pirtûkxaneyên xerîdar ên xwerû, xebata nerehet ji hêla hevkarên derveyî, pirsgirêkên ewlehiyê yên muhtemel (piştî hemî , OAuth2.0 û OpenID Connect di pêkanîna referansê de dikare ewle were hesibandin, lê ez ji çareseriya me ne ewle me).

Kodim-pizza

Me karûbarek cihêreng çêkir ku karûbarek ji bo hilanîna daneyên kesane dişibihe da ku em modelek piçûk a Welat-Agnostîk a pêşkêşkerek pejirandinê biafirînin ku dê ji bo daneyên kesane biçin karûbarek cihê (ev ê di pêşerojê de gengaz bike ku yek karûbarê bi ku meriv dikare bi qeydkirina hesabek li her welatekî têkeve, û di heman demê de bi GDPR û qanûnên din ên federal re tevbigere). Me ev beş, wekî pêşkêşker kir, û bi serfirazî wan bi hevûdu ve girêda. Dûv re, pêdivî bû ku API-yek were afirandin ku dê ji hêla tokenên ku ji hêla pêşkêşker ve hatî derxistin ve were parastin, bi navgîniya peydakerê veguheztina wan piştgirî bike û heke daxwaz polîtîkayên destûrnameyê têr bike daneyên parastî vegerîne (em kontrol dikin ku bikarhêner li gorî pilana Bergir hatî pejirandin , nîşana wî çarçoveyek diyar heye + y Bikarhêner bixwe xwediyê destûrek e ku dihêle ku bang were kirin). Ev beş jî temam bû. Pêveka paşîn xerîdarek JavaScript bû, ku dê nîşanek jê re were dayîn, bi alîkariya wê ew ê gazî API-ya parastî bike. Wextê me tunebû ku em vê beşê bikin. Ango, tevahiya beşa fonksiyonel amade bû, lê beşa pêş-end ne amade bû ku fonksiyona tevahî pergalê nîşan bide.

E-E-E (pêlîstok)

Dima Afonchenko, Sasha Konovalov

Me li ser yunkayê piçûk-lîstokek çêkir ku destên zirav sosîsê davêjin ser pizza. Heke hûn sosîsê bi xeletî li xwe bikin, peyamek xemgîn "Redkirin" li ser ekranê xuya dibe, û heke hemî sosîs rast hatibe danîn, rastiyek rasthatî di derbarê pizza de xuya dike.

Kodim-pizza

Me xwest bi avêtina tomatoyan asta duyemîn çêbikin, lê wextê me tunebû.

Kodim-pizza

Berdewamiya kurt: kî bi ser ket?

Beriya hackathonê, em bi xortan re axivîn û min jê pirsî ku ger bi ser bikevin dixwazin çi xelatê bistînin. Derket holê ku xelata herî bi qîmet dê "rêya xwarinê" be.

Kodim-pizza

Ji ber vê yekê, li bendê ne ku em di demek nêzîk de lîstikek bi destan ragihînin ku bîberan li ser pizza dixin.

Wekî ku xwendevanek baldar dibe ku pê hesiya, tîmê "E-E-E (lîstok)" bi ser ket. Pîroz be guys!

Tenê bikarhênerên qeydkirî dikarin beşdarî anketê bibin. Têketinji kerema xwe.

Kîjan proje herî baş ji we hez kir?

  • Fêrbûna Oleg (fêrbûna makîneyê)

  • GUI ji bo NOOBS

  • CourierGo

  • M87

  • E-E-E

5 bikarhêneran deng dan. 3 bikarhêner betal bûn.

Source: www.habr.com

Add a comment