Kodim-pizza

Kaixo, Habr. Berez egin genuen gure barneko lehen hackathon. 2 astetan prestatzeko nire minak eta ondorioak zuekin partekatzea erabaki nuen, baita izan ziren proiektuak ere.

Kodim-pizza

Marketinean interesa dutenentzat aspergarria

Istorio txiki batekin hasiko naiz.

Apirilaren hasiera. Lehen MskDotNet Komunitatearen hackathona egiten ari da gure bulegoan. Tatooineko gudua pil-pilean dago oraingoan gure galaxian. Larunbata. 20 talde. Pizza. Dena oso zintzoa da (frogak). R2-D2 puzgarri bat flotatzen du aretoan. Taldeek algoritmorik zuzenenak idazten dituzte mapako lasterketarik arriskutsuena gainditzeko. Lehen lasterketen abian jartzea mugitzen ari gara. Cookieak eta kafea salbatzaileak dira. Antolatzaileek eta nik espero genuen jende asko joango zela larunbateko bazkalostean. Baina ez. 12 orduko kodeketa atzean. Finala. Zerbait erortzen da, zerbait ez da hasten. Baina denak pozik daude. Gure taldeak irabazten du. Bikoitza pozik gaude.

Nire poza partekatzen ari naiz Slack-en eta ideia datorkit burura: "Gure hackatona egin behar dugu". Sasha gure zerbitzugunera idazten ari naiz. Isiltasuna.

Goizean. Kafea edaten dut bulegoan. Sasha atzetik hurbiltzen ikusten dut. "Lisa, hau bikaina da! Apirilaren 21ean zita garrantzitsua dugu. Egin dezagun!" WTF!? Hain azkar? A? Zer? Syktyvkar-era hegan egin behar dut praktiketarako apirilaren erdialdean. Eta pikutara! Dezagun.

2 aste falta dira. Inoiz ez naiz izan hackaton baten antolatzaile bakarra. Barnekoa izan dadila. Gai honi buruzko artikuluak irakurri ditut. Gogorra. Hainbat hilabete behar ditu. Hainbat pertsona behar dira. Merkataritzan, sarietan, baldintzetan, ordutegian, interesan, helburua ulertu, aurrekontuetan pentsatu behar duzu. Edo agian bizitzaren zentzua asmatzea ere. Zalantzarik gabe, ez naiz garaiz iritsiko. Eta irakurtzen eta prestatzen ari zinela, aste bat igaro zen jada. Artikuluak ahaztu eta zerbait egiten hasteko garaia da.

Hartu gure kontrol-zerrenda astebete barru barne hackaton bat egiteko

  • plan: Lasai eseri eta hackatonerako egin beharrekoaren zerrenda idazten duzu. 30 minutu.
  • Task: Parte hartzaileek Google Sheets-en sortu nahi dituzten proiektuak proposatzen eta aukeratzen dituzte. Atzeko planoko zeregina, 2 ordu.
  • ordutegia: zure belaunean denboraren banaketa laburra idazten duzu, 3 atsedenaldi eta finala kontuan hartuta. 20 minutu.
  • ΠšΠΎΠΌΠ°Π½Π΄Ρ‹: argitaratu hackatonari buruzko mezu bat zerbitzuguneko ordutegi batekin Slack/mail/etab-en IT kanaletan eta sortu hackatonerako kanal bereizia. Bertan, denak taldetan banatuta daude, eta erabaki gabe daudenek hori egiten dute hackatonaren lehen 5 minutuetan. Atzeko planoko zeregina, 2 ordu.
  • Opilak: bi garatzailerekin salgaia ateratzen duzu, diseinatzaileari ematen diozu errenda dezan eta prest jasotzen duzu. Atzeko planoko zeregina, 3 egun.
  • Hackatona: bulegora etortzen zara, denak koordinatu hasieran, zure negozioari ekin, Reddit irakurri, garrantzitsua da pizza freskoari buruzko atsedenaldi guztiak iragartzea, ilunabarrerako argazkiak atera, finala iragarri, elkarrekin bozkatu eta irabazlea aukeratu. 1 egun.
  • Izartxoaren azpian: Jakina, etengabe pentsatzen duzu dena ondo doala. Noski, denek ez dute zure mezua ikusiko eta hobe da batzuekin pertsonalki hitz egitea. Noski, norbaitek laguntzen badizu, dena 2 aldiz errazagoa izango da (Alena zoragarriak lagundu zidan).

Hackaton datari buruzko zati gutxiago aspergarria

Zergatik apirilaren 21ean? Egun hau esanguratsua da guretzat. Duela urtebete, apirilaren 21ean, kargapean erori ginen Publizitate Kanpaina Federala hasi osteko lehen asteburuan. Biharamunean, igandean, gure taldea lanean zegoen goizeko 8etatik aurrera. Gero Trellon igandeko hackathon taula bat sortu genuen eta aste bat txandakako lana hasi zen, egunean 12 ordu. Egoera hain larria zen, ez genuen jateko astirik ere izan eta beste taldeetako mutilek elikatzen gintuzten.

Kodim-pizza

Istorio zehatzagoa irakur dezakezu hemen Fiodor Ovtxinnikov-en orria (gure zuzendari nagusia). Harrezkero, asko aldatu gara, baina orain, zalantzarik gabe, ez dugu data ahaztuko.

Aurten, ekitaldi hau ondorengoen memorian iraunaraztea merezi zuela erabaki genuen eta, tradiziorik onenetan, Dodoren historiako lehen barne-hackatona antolatu genuen, 10 ordukoa.

Hackathon proiektuen zatirik aspergarriena

Oharra: deskribapen guztiak mutilek eurek idatzi dituzte, beraz, testuaren egiletza ez da nirea.

Oleg Learning (ikaskuntza automatikoa)

Dima Kochnev, Sasha Andronov (@alexandronov)

Inolako ezagutzarik gabe argazki batean zer pizza mota dagoen zehaztuko zuen neurona sare bat egin nahi zuten. Ondorioz, oso sinple eta jostailu bat egin dugu - 10 pizza ezagutzen ditu, gutxi gorabehera dena nola funtzionatzen duen jakin dugu, ahal den neurrian egun batean (~10 ordu).

Kodim-pizza

Bereziki, konturatu gara garatzaile arrunt batek prest egindako liburutegiak hartu, dokumentazioa irakurri eta bere neurona-sarea trebatzeko mailara iritsi dela, gaiaren ezagutza sakonik gabe. Eta nahikoa ondo funtzionatuko du benetako arazoak konpontzeko.

Erabilitako tresnak:

  • irudiai β€” Liburutegi erosoa eta sinplea ikaskuntza automatikoa eta ordenagailu bidezko ikusmenarekin lan egiteko.
  • Bi modelo probatu ditugu - ResNet50, Yolo.
  • Kodea, noski, Python-en idatzi zen.

11000 argazki genituen, baina ia 3/4 zaborra izan ziren, eta gainerakoek angelu desberdinak eta desegokiak zituzten. Ondorioz, prest egindako maketa bat hartu genuen (pizza aurkitzen besterik ez dakiena) eta bere laguntzarekin zaborra bereizi genuen. Jarraian, argazkiaren izenburuak pizzaren izena jasotzen zuen, beraz, karpetatan sailkatu genuen, baina izenak errealitatearekin bat ez zetozela eta eskuekin garbitu behar izan genuen. Azkenean, 500-600 argazki inguru geratzen ziren, argi dago kopuru hutsala dela, baina, hala ere, nahikoa izan zen 10 pizza bata bestearengandik bereizteko.

Sarea trebatzeko, Azureko makina birtual merkeena hartu genuen NVIDIA Tesla K80 batean. 100 arotan trebatu ziren, baina argi zegoen 50 aroren ostean sarea gainsaturatuta zegoela, datu multzo txiki bat zegoelako.

Egia esan, arazo osoa datu onen falta da.

Kodim-pizza

Baliteke terminoak apur bat nahasi izana, baina kontutan hartu behar dugu ez dugula batere esperientziarik gai hauek guztiak lantzeko.

NOOBS-erako GUI (pizza eskatzeko kontsola)

Misha Kumachev (Ceridan), Zhenya Bikkinin, Zhenya Vasiliev

Geeksentzako kontsola-aplikazio baten prototipo bat osatu dugu, eta horri esker, pizza terminalaren edo komando-lerroaren bidez eska dezakezu, edo are gehiago inplementazio kanalizazioan integratu eta, arrakastaz kaleratu ondoren, pizza bulegora entregatu dezakezu.

Kodim-pizza

Lana hainbat zatitan banatu zen: mugikorretarako aplikazioetarako gure APIa nola funtzionatzen duen ikusi genuen, gure CLIa erabiliz oklif eta bildutako paketearen argitalpena konfiguratu. Azken zereginak hackatonaren amaiera aldera minutu desatsegin batzuk izan zituen. Dena lokalean funtzionatu zuen guretzat, eta paketearen argitaratutako bertsio zaharrek ere funtzionatu zuten, baina berriek (funtzio politagoak eta emotikono gehiago gehitzen zituztenak) uko egin zioten funtzionatzeari. 40 minutu inguru eman genituen gaizki zer gertatu zen asmatzen saiatzen, baina azkenean dena magikoki funtzionatu zuen bere kabuz).

Hackatonerako gure programa maximoa bulegorako pizza eskaera bat izan zen gure CLI bidez. Dozena bat aldiz exekutatu genuen dena proba-bankuan, baina eskuak dardarka zeuden oraindik produkzioan aginduak sartu nituenean.

Kodim-pizza

Ondorioz, azkenean lortu dugu!

Kodim-pizza

CourierGo

Anton Bruzhmelev (egilea), Vanya Zverev, Gleb Lesnikov (entropia), Andrey Sarafanov

"Mezularitzarako aplikazioa" baten ideia hartu genuen.

Prestaketari buruzko aurrekariak.Hasieran, zer nolako ezaugarriak izan litezkeen aplikazioan galdetu nuen? Funtzio zerrenda hau sortu zen:

  • Aplikazioa entrega-kutxa erregistratzailean sartzen da kodea erabiliz.
  • Aplikazioak berehala erakusten ditu eskuragarri dauden aginduak eta hartu behar diren aginduak.
  • Mezulariak eskaera jasotzen du eta bidaian eramaten du.
  • Aurreikusitako denbora eta garaiz den ala ez erakusten zaio.
  • Mezulariak utzi duela erakusten dio bezeroari.
  • Bezeroari mezulariaren puntua mapan eta estimatutako denbora erakusten hasten zaio.
  • Mezularitzak bezeroari idatz diezaioke txatean aplikaziotik.
  • Bezeroak mezulariari idatz diezaioke txat bidez aplikaziotik.
  • Heldu baino bost minutu lehenago, bezeroak mezularitza gertu dagoela dioen mezua jasotzen du, prest egon.
  • Mezulariak aplikazioan adierazten du iritsi dela eta zain dagoela.
  • Mezularitzak aplikaziotik deitzen du klik batekin eta hori jakinarazi du (gorantz doala, iritsi dela, etab.)
  • Bezeroak eskaera onartzen du eta aplikaziotik PIN kodea edo SMS bat sartzen du entrega baieztatzeko.(sinadura gisa) Mezulariak ezin dezan entrega aldez aurretik amaitu berandu bada.
  • Eskaera sisteman entregatu bezala markatuta dago.

Gainera, eszenatoki alternatibo pare bat:

  • Mezulariak eskaera entregatu gabeko gisa markatu eta arrazoia hauta dezake.
  • Berandu bazara, mezulariak SMS bidez ziurtagiri elektronikoa eman dezake botoi batekin. Edo ziurtagiria automatikoki iristen da entrega-epea betetzen ez bada.

Proiektu honen promesa eta beharraren sentsazioa dinamizatzailea izan zen, noski.

Hurrengo egunean taldearekin bazkaltzera joan ginen eta aplikazioaren gutxieneko funtzionaltasuna nolakoa izango zen eztabaidatu genuen.

Ondorioz, hackatoian egin behar zenaren zerrenda hau osatu zen:

  • Hasi saioa entrega-kutxa erregistratzailean.
  • Bistaratu uneko posizioa.
  • Bidali datuak kanpoko API batera (koordenatuak, eskaera jaso, eskaera entregatu).
  • Jaso datuak kanpoko APItik (uneko mezularitza-eskaerak).
  • Bidali ekitaldi bat eskaera entregatzeko/entregatu duzula adieraziz.
  • Erakutsi mezulariaren uneko posizioa webguneko mapan.

Lan nagusia, antza, backend-a, aplikazioa bera sortzean zegoen (eztabaiden ondoren, ReactNative aukeratu genuen aplikazioa garatzeko, edo hobeto esanda, horretarako markoa - expo.io, berezko kodea batere ez idazteko aukera ematen duena). Backend-ari dagokionez, hasieran Vanya Zverev-en itxaropena zegoen, gure zerbitzu-txantiloiarekin eta k8-ekin (hartu zuen lana) lan egiten esperientzia zuelako. Andrey Sarafanov-ek eta biok ReactNative hartu genuen buelta bat emateko.

Proiektuaren beraren lan-biltegi bat berehala sortzen saiatzea erabaki nuen. Gaueko 12etan aurkitu nuen atzeko planoan geolokalizazioa ez dela ondo funtzionatzen ReactNative-n, jatorrizko kodea idazten ez baduzu, pixka bat frustratuta nengoen. Orduan utzi egin nuen konturatu nintzenean ez nuela expo.io esparruko dokumentazioa irakurtzen ari nintzela, ReactNativerena baizik. Ondorioz, arratsaldean zehar jadanik ulertu nuen nola lortu uneko posizioa expo.io-n eta pantaila bereiziak marraztu (saioa hasteko, eskaerak bistaratzeko, etab.).

Kodim-pizza

Goizean hackathonean, Gleb bere proiektu itxaropentsura erakarri zuten. Azkar egin zuten egin beharrekoaren plana.

Kodim-pizza

Akats bat egin genuen, proiektuaren txantiloiaren arabera, HTTP bidez ez, GRPC bidez komunikatzen saiatu ginenean, inork ez baitzekien JavaScript-erako GRPC bezero bat eraikitzen. Azkenean, ordu eta erdi inguru horretan eman ondoren, ideia hori alde batera utzi genuen. Hori dela eta, back-end-eko mutilak GRPC-tik WebApi-ra amaitutako zerbitzaria birsortzen hasi ziren. Ordu erdiren buruan, azkenean, aplikazioaren eta backendaren arteko komunikazioa ezarri ahal izan genuen, hara. Baina, aldi berean, Gleb ia k8s-en inplementazioa amaitzen ari zen eta, gainera, maisuari konprometitu baten inplementazioa automatikoa egiten ari zen. πŸ™‚

MySQL aukeratu dugu biltegiratze gisa datu-basearekin bederen arriskurik ez hartzeko (CosmosDb-i buruz pentsamenduak genituen).

Kodim-pizza

Laburbilduz:

  • Mezularitzaren uneko koordenatuak aplikaziotik datu basera gordetzea ezarri da.
  • RabbitMQ instalatu genuen eta mezularitzari eskaera bat jasotzeari buruzko mezuetara harpidetu ginen mezulariaren eskaera aplikazioan berehala bistaratzeko.
  • Eskaerak entregatzeko denbora gure datu-basean gordetzen hasi ginen mezulariak aplikazioko botoi bat sakatu ostean. Ez genuen astirik izan eskaera entregatu zen errebitari gertaera bat bidaltzea gehitzeko.
  • Mapa bistaratzea egin nuen webguneko egungo eskaera orrian mezulariaren uneko posizioarekin. Baina funtzionalitate hori apur bat amaitu gabe geratu zen, ezin izan baitzen CORS ingurunean konfiguratu gure zerbitzu berriaren koordenatuak jasotzeko.

M87

Roma Bukin, Gosha Polevoy (georgepolevoy), Artyom Trofimushkin

OpenID Connect hornitzaile bat inplementatu nahi genuen, momentuz gure diseinuko autentifikazio-protokoloa erabiltzen baitugu, eta horrek hainbat zailtasun sortzen ditu: bezeroen liburutegi pertsonalizatuak, kanpoko bazkideen lan deserosoak, segurtasun-arazo posibleak (azken finean). , OAuth2.0 eta OpenID Connect erreferentziako inplementazioan segurutzat jo daitezke, baina ez nago ziur gure irtenbideaz).

Kodim-pizza

Datu pertsonalak gordetzeko zerbitzu bat emulatzen duen zerbitzu bereizi bat egin genuen, datu pertsonaletarako zerbitzu bereizi batera joango zen autentifikazio-hornitzaile baten Herrialde-Agnostikoa eredu txiki bat sortzeko (etorkizunean zerbitzu bakarra izatea ahalbidetuko luke). zeina edozein herrialdetan kontu erregistratu batekin saioa hasi eta, aldi berean, GDPR eta beste lege federal batzuk bete). Zati hau egin genuen, hornitzaileak bezala, eta arrakastaz lotu genituen elkarren artean. Ondoren, hornitzaileak jaulkitako token bidez babestuta egongo zen API bat sortu behar zen, hornitzailearen bidez haien barneraketa onartzen eta babestutako datuak itzultzea eskaerak baimen-politikak betetzen bazituen (erabiltzailea Bearer eskemaren arabera autentifikatuta dagoela egiaztatzen dugu. , bere tokenak esparru jakin bat dauka + y Erabiltzaileak berak du deia egiteko baimena ematen duen baimena). Zati hau ere amaitu zen. Azken osagaia JavaScript bezero bat zen, zeinari token bat emango zitzaion, eta horren laguntzaz babestutako API bat deituko zuen. Ez genuen denborarik izan zati hau egiteko. Hau da, zati funtzional osoa prest zegoen, baina frontend zatia ez zegoen prest sistema osoaren funtzionaltasuna erakusteko.

E-E-E (jostailua)

Dima Afonchenko, Sasha Konovalov

Mini-jostailu bat egin genuen yunka gainean, non esku bitxiek txistorra pizzara botatzen duten. Txistorra gaizki jartzen baduzu, "Baztatua" mezu tristea agertzen da pantailan, eta txistorra guztia behar bezala jarri bada, pizzari buruzko ausazko datu bat agertzen da.

Kodim-pizza

Tomateak botatzearekin bigarren maila bat egin nahi genuen, baina ez genuen denborarik izan.

Kodim-pizza

Jarraipen laburra: nork irabazi zuen?

Hackatonaren aurretik, mutilekin hitz egin genuen eta irabaziz gero zer sari jaso nahiko luketen galdetu nion. Saririk baliotsuena "elikadurarako bidea" izango zela ondorioztatu zen.

Kodim-pizza

Horregatik, espero dugu laster pizzan piperrak jartzen dituzten eskuekin joko bat iragartzea.

Irakurle adi batek nabarituko zuen bezala, "E-E-E (jostailua)" taldeak irabazi zuen. Zorionak mutilak!

Erregistratutako erabiltzaileek soilik parte hartu dezakete inkestan. Hasi saioa, mesedez.

Zein proiektu gustatu zaizu gehien?

  • Oleg Learning (ikaskuntza automatikoa)

  • NOOBSentzako GUI

  • CourierGo

  • M87

  • E-E-E

5 erabiltzailek eman dute botoa. 3 erabiltzaile abstenitu ziren.

Iturria: www.habr.com

Gehitu iruzkin berria