Kodim-piza

Bonjou, Habr. Nou espontaneman te fè premye Hackathon entèn nou an. Mwen deside pataje avèk ou doulè mwen yo ak konklizyon sou preparasyon pou li nan 2 semèn, osi byen ke pwojè yo ki te tounen yo.

Kodim-piza

Pati a raz pou moun ki enterese nan maketing

Mwen pral kòmanse ak yon ti istwa.

Kòmanse nan mwa avril. Premye Hackathon Kominote MskDotNet ap fèt nan biwo nou an. Batay la nan Tatooine se nan swing plen nan galaksi nou an fwa sa a. Samdi. 20 ekip. Pitza. Tout bagay trè sensè (prèv). Yon R2-D2 enflatab flote nan sal la. Ekip yo ekri algoritm ki pi kòrèk yo pou yo pase kous ki pi danjere sou kat la. Nou ap deplase lansman premye ras yo. Bonbon ak kafe se sovtaj. Òganizatè yo ak mwen te espere ke anpil moun ta kite apre manje midi Samdi. Men non. 12 èdtan nan kodaj dèyè. Final la. Yon bagay tonbe, yon bagay pa kòmanse. Men tout moun kontan. Ekip nou an genyen. Nou doubl kontan.

Mwen pataje kè kontan mwen nan Slack ak lide a vin nan tèt ou: "Nou bezwen fè pwòp hackathon nou." Mwen ekri nan estasyon sèvis nou an Sasha. Silans.

Maten. Mwen bwè kafe nan biwo a. Mwen wè Sasha ap pwoche dèyè. "Lisa, sa a se gwo! Nou gen yon dat enpòtan 21 avril. Ann fèl!" WTF!? Se konsa vit? A? Kisa? Mwen bezwen vole Syktyvkar pou yon estaj nan mitan mwa avril. Ak nan lanfè ak li! Ann.

2 semèn rete. Mwen pa janm te sèl òganizatè yon hackathon. Se pou li entèn. Mwen li atik sou sijè sa a. Difisil. Li pran plizyè mwa. Plizyè moun yo bezwen. Ou bezwen reflechi sou machandiz, pri, kondisyon, orè, enterè, konprann objektif la, bidjè. Oswa petèt menm konnen sans lavi a. Mwen definitivman pa pral fè li nan tan. Epi pandan w t ap li ak prepare, yon semèn te deja pase. Li lè pou bliye atik yo epi kòmanse fè yon bagay.

Trape lis verifikasyon nou an pou òganize yon Hackathon entèn nan 1 semèn

  • Plan: Ou chita ak kalm epi ekri yon lis sa ki bezwen fè pou hackathon la. 30 minit.
  • Objektif Travay la: Patisipan yo pwopoze epi chwazi pwojè yo vle kreye nan Google Sheets. Travay background, 2 èdtan.
  • Orè: sou jenou ou ou ekri yon pann kout nan tan, pran an kont 3 repo ak final la. 20 minit.
  • Kòmand: pibliye yon mesaj sou hackathon a ak yon orè soti nan estasyon sèvis la nan chanèl IT nan Slack/mail/etc epi kreye yon kanal separe pou hackathon la. Nan li, tout moun divize an ekip, ak moun ki deside fè sa nan premye 5 minit yo nan Hackathon la. Travay background, 2 èdtan.
  • Pen: ou vini ak merch ak de devlopè, bay li nan designer a pou rann, epi resevwa li pare. Travay background, 3 jou.
  • Hackathon: ou vin nan biwo a, kowòdone tout moun nan kòmansman an, ale nan biznis ou, li Reddit, sa ki enpòtan anonse chak repo sou pitza fre, pran foto solèy kouche a, anonse final la, vote ansanm epi chwazi gayan an. 1 jou.
  • Anba asterisk la: Natirèlman, ou toujou ap panse sou tout bagay ale byen. Natirèlman, se pa tout moun ki pral wè mesaj ou a epi li pi bon pou w pale ak kèk moun an pèsòn. Natirèlman, si yon moun ede ou, tout bagay pral vin 2 fwa pi fasil (Alena nan bèl bagay te ede m ').

Pati a mwens raz sou dat la Hackathon

Poukisa 21 avril? Jou sa a enpòtan pou nou. Egzakteman yon ane de sa, nan dat 21 avril, nou te tonbe anba chay pandan premye wikenn apre kòmansman Kanpay Piblisite Federal la. Nan demen, Dimanch, ekip nou an te nan travay depi 8 am. Lè sa a, nou te kreye yon tablo sundayhackathon nan Trello ak yon semèn nan travay orè te kòmanse, 12 èdtan pa jou. Sitiyasyon an te tèlman kritik ke nou pa t menm gen tan pou nou manje e nou te manje pa nèg ki soti nan lòt ekip.

Kodim-piza

Ou ka li yon istwa plis detay nan Paj Fyodor Ovchinnikov (CEO nou an). Depi lè sa a, nou te chanje anpil, men kounye a nou pral definitivman pa bliye dat la.

Ane sa a, nou te deside ke evènman sa a te vo perpétuer nan memwa pitit pitit yo e, nan pi bon tradisyon yo, nou te òganize premye Hackathon entèn nan istwa Dodo, ki te dire 10 èdtan.

Pati ki pi raz sou pwojè Hackathon

Limit responsabilite nou: tout deskripsyon yo se mesye yo menm ki ekri, kidonk patè tèks la se pa pou mwen.

Oleg Learning (aprantisaj machin)

Dima Kochnev, Sasha Andronov (@alexandronov)

Yo te vle fè yon rezo neral ki ta detèmine ki kalite pitza se nan yon foto san okenn konesans. Kòm yon rezilta, nou te fè yon trè senp ak jwèt yon sèl - li rekonèt 10 pitza, nou apeprè kalkile ki jan tout bagay ap travay, osi lwen ke posib nan yon jou (~10 èdtan).

Kodim-piza

An patikilye, nou reyalize ke endistri a te rive nan yon nivo kote yon pwomotè òdinè ka pran bibliyotèk pare yo, li dokiman an ak fòme rezo neral li san konesans pwofon nan sijè a. Epi li pral travay byen ase pou rezoud pwoblèm reyèl.

Zouti yo itilize:

  • imaji — yon bibliyotèk pratik ak senp pou travay ak aprantisaj machin ak vizyon òdinatè.
  • Nou te eseye de modèl - ResNet50, Yolo.
  • Kòd la te ekri, nan kou, nan Python.

Nou te gen 11000 foto, men prèske 3/4 nan yo te tounen fatra, ak rès la te gen diferan, ang apwopriye. Kòm yon rezilta, nou te pran yon modèl pare-fè (ki tou senpleman konnen ki jan yo jwenn pitza) ak èd li yo nou separe fatra a. Apre sa, tit foto a enkli non pitza a - se konsa nou klase li nan dosye, men li te tounen soti ke non yo pa t 'kowenside ak reyalite epi nou te oblije netwaye li ak men nou. Nan fen a, te gen apeprè 500-600 foto kite, li klè ke sa a se yon kantite lajan ensiyifyan, men kanmenm, sa a te ase yo separe 10 pitza youn ak lòt.

Pou antrene kadriyaj la, nou te pran machin vityèl ki pi bon mache nan Azure sou yon NVIDIA Tesla K80. Yo te fòme sou li pou 100 epòk, men li te klè ke rezo a te oversature apre 50 epòk, akòz lefèt ke te gen yon ti dataset.

Aktyèlman, pwoblèm nan tout se mank de bon done.

Kodim-piza

Nou ka konfonn tèm yo yon ti kras, men nou dwe pran an konsiderasyon ke nou pa gen okenn eksperyans nan tout nan travay ak tout zafè sa yo.

GUI pou NOOBS (konsole pou kòmande pitza)

Misha Kumachev (Ceridan), Zhenya Bikkinin, Zhenya Vasiliev

Nou te mete ansanm yon pwototip aplikasyon konsole pou geeks, gras a ki ou ka kòmande pitza atravè tèminal la oswa liy lòd, oswa menm entegre li nan tiyo deplwaman an epi, lè yo lage siksè, delivre pitza nan biwo a.

Kodim-piza

Travay la te divize an plizyè pati: nou te kalkile ki jan API nou an pou aplikasyon pou mobil travay, nou te rasanble pwòp CLI nou an lè l sèvi avèk oklif ak konfigirasyon piblikasyon an nan pake a nou kolekte. Dènye travay la te enplike kèk minit dezagreyab nan fen Hackathon an. Tout bagay te travay lokalman pou nou, e menm ansyen vèsyon yo pibliye nan pake a te travay, men nouvo yo (ki te ajoute plis karakteristik fre ak emoticon) te refize travay. Nou te pase apeprè 40 minit ap eseye konnen kisa ki te ale mal, men nan fen tout bagay majik te travay poukont li).

Pwogram maksimòm nou an pou Hackathon an se te yon lòd reyèl nan pitza nan biwo a atravè CLI nou an. Nou te kouri tout bagay yon douzèn fwa sou ban tès la, men men m 'te toujou souke lè mwen te antre nan kòmandman nan pwodiksyon an.

Kodim-piza

Kòm yon rezilta, nou finalman te fè li!

Kodim-piza

CourierGo

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

Nou te pran lide yon "App for Courier".

Background sou preparasyon.Okòmansman, mwen te mande ki kalite karakteristik ta ka nan aplikasyon an? Lis sa a nan fonksyonalite parèt:

  • Aplikasyon an konekte nan kach rejis livrezon an lè l sèvi avèk kòd la.
  • Aplikasyon an imedyatman montre lòd ki disponib ak lòd ki bezwen pran.
  • Courrier la note lòd la epi pran li nan vwayaj la.
  • Yo montre li tan estime a epi si li alè oswa ou pa.
  • Montre kliyan an ke courrier la te kite.
  • Kliyan an kòmanse yo montre pwen courrier la sou kat la ak tan an estime.
  • Courrier a ka ekri kliyan an nan chat soti nan aplikasyon an.
  • Kliyan an ka ekri mesaje a atravè chat nan aplikasyon an.
  • Senk minit anvan arive, kliyan an resevwa yon mesaj ke courrier a se fèmen, dwe prepare.
  • Courrier a note nan aplikasyon an ke li te rive epi li ap tann.
  • Courrier a rele nan aplikasyon an ak yon sèl klike sou epi rapòte ke (ap monte, te rive, elatriye)
  • Kliyan an aksepte lòd la epi li antre yon kòd PIN ki soti nan aplikasyon an oswa SMS pou konfime livrezon an (tankou yon siyati) Pou kourye a pa ka fini livrezon an davans si li an reta.
  • Se lòd la make kòm delivre nan sistèm nan.

Plis yon koup de senaryo altènatif:

  • Courrier a ka make lòd la kòm pa delivre epi chwazi rezon an.
  • Si ou an reta, mesaje a ka bay yon sètifika elektwonik via SMS ak yon sèl bouton. Oswa sètifika a rive otomatikman si dat limit livrezon an pa respekte.

Santi pwomès ak nesesite pwojè sa a te, nan kou, dinamize.

Nan demen nou te ale nan manje midi ak ekip la epi diskite sou kisa fonksyonalite minimòm aplikasyon an ta sanble.

Kòm yon rezilta, lis sa a ki te dwe fè nan Hackathon la te fòme:

  • Konekte nan kach rejis livrezon an.
  • Montre pozisyon aktyèl la.
  • Voye done nan yon API ekstèn (kowòdone, resevwa lòd la, delivre lòd la).
  • Resevwa done ki soti nan API ekstèn (kouran lòd kourye).
  • Voye yon evènman ki endike ke ou te pran lòd la pou livrezon / delivre.
  • Montre pozisyon aktyèl la nan courrier la sou kat jeyografik la sou sit entènèt la.

Travay prensipal la, jan li te sanble, se nan kreye backend la, aplikasyon an tèt li (apre diskisyon, nou te chwazi ReactNative pou devlope aplikasyon an, oswa pito fondasyon an pou li - expo.io, ki pèmèt ou pa ekri kòd natif natal ditou). An tèm de backend la, okòmansman te gen espwa nan Vanya Zverev, kòm li te gen eksperyans nan travay ak modèl sèvis nou yo ak k8s (ki travay li te pran sou). Andrey Sarafanov ak mwen te pran ReactNative pou yon vire.

Mwen deside eseye imedyatman kreye yon depo k ap travay pou pwojè a tèt li. Nan 12 nan mitan lannwit mwen te vin atravè lefèt ke jeolokalizasyon nan background nan pa travay byen nan ReactNative, si ou pa ekri kòd natif natal, mwen te yon ti kras fristre. Lè sa a, mwen kite ale lè mwen reyalize ke mwen te li dokiman an pa nan fondasyon an expo.io, men nan ReactNative. Kòm yon rezilta, sou kou a nan aswè a mwen deja konprann ki jan yo ka resevwa pozisyon aktyèl la nan expo.io epi trase ekran separe (pou konekte, ekspozisyon lòd, elatriye).

Kodim-piza

Nan maten nan hackathon a, yo te atire Gleb nan pwojè super-pwomèt yo. Yo te byen vit vini ak yon plan sou sa ki te bezwen fè.

Kodim-piza

Nou te fè yon erè lè, an akò ak modèl pwojè a, nou te eseye kominike pa via HTTP, men atravè GRPC, paske pèsonn pa te konnen ki jan yo bati yon kliyan GRPC pou JavaScript. Nan fen a, apre yo fin depanse apeprè inèdtan ak yon mwatye sou sa a, nou abandone lide sa a. Poutèt sa, mesye yo sou back-end la te kòmanse refè sèvè a fini soti nan GRPC nan WebApi. Apre yon demi èdtan, nou te finalman kapab mete kanpe kominikasyon ant aplikasyon an ak backend la, gade ak gade. Men, an menm tan an, Gleb te prèske fini deplwaman nan k8s ak plis oto-deplwaman nan yon komèt bay mèt la. 🙂

Nou te chwazi MySQL kòm yon depo pou nou pa pran risk omwen ak baz done a (nou te gen panse sou CosmosDb).

Kodim-piza

An rezime:

  • Aplike ekonomize kowòdone aktyèl yo nan courrier la soti nan aplikasyon an nan baz done a.
  • Nou enstale RabbitMQ epi nou te abònman nan mesaj sou mesaje a pran yon lòd pou imedyatman montre lòd ki soti nan courrier la nan aplikasyon an.
  • Nou te kòmanse ekonomize tan livrezon lòd la nan baz done nou an apre kourye a te peze yon bouton nan aplikasyon an. Nou pa t 'gen tan ajoute voye yon evènman tounen nan rebbit la ke lòd la te delivre.
  • Mwen te fè yon ekspozisyon kat jeyografik sou paj aktyèl lòd la sou sit entènèt la ak pozisyon aktyèl la nan courrier la. Men, fonksyonalite sa a te rete yon ti kras fini, paske li pa t posib pou konfigirasyon CORS nan anviwònman an pou resevwa kowòdone nan nouvo sèvis nou an.

M87

Roma Bukin, Gosha Polevoy (georgepolevoy), Artyom Trofimushkin

Nou te vle aplike yon founisè OpenID Connect, paske nan moman sa a nou itilize yon pwotokòl otantifikasyon nan pwòp konsepsyon nou an, e sa kreye yon kantite difikilte: bibliyotèk kliyan koutim, travay enkonvenyan nan pati patnè ekstèn, pwoblèm sekirite posib (apre tout. , OAuth2.0 ak OpenID Connect nan aplikasyon referans lan ka konsidere kòm san danje, men mwen pa sèten sou solisyon nou an).

Kodim-piza

Nou te fè yon sèvis separe emule yon sèvis pou estoke done pèsonèl yo nan lòd yo kreye yon ti modèl Country-Agnostic nan yon founisè otantifikasyon ki ta ale nan yon sèvis apa pou done pèsonèl (sa a ta fè li posib nan lavni gen yon sèvis ak ki youn ta ka konekte ak yon enskripsyon kont nan nenpòt peyi, epi an menm tan an konfòme yo ak GDPR ak lòt lwa federal). Nou te fè pati sa a, menm jan ak founisè a, epi avèk siksè lye yo youn ak lòt. Apre sa, li te nesesè yo kreye yon API ki ta dwe pwoteje pa marqueur bay pa founisè a, sipòte entrospeksyon yo atravè founisè a epi retounen done pwoteje si demann lan satisfè règleman yo otorizasyon (nou tcheke ke itilizatè a otantifye dapre konplo a Bearer. , siy li genyen yon sèten dimansyon + y Itilizatè a li menm gen yon pèmisyon ki pèmèt apèl la fèt). Pati sa a te fini tou. Eleman ki sot pase a se te yon kliyan JavaScript, ki ta dwe bay yon siy, ak èd nan ki li ta rele yon API pwoteje. Nou pat gen tan fè pati sa a. Sa vle di, tout pati fonksyonèl la te pare, men pati devan an pa t pare pou demontre fonksyonalite tout sistèm lan.

E-E-E (jwèt)

Dima Afonchenko, Sasha Konovalov

Nou te fè yon mini-jwèt sou yunka kote men frisky jete sosis sou pitza. Si ou mete sosis la mal, yon mesaj tris "Rejte" parèt sou ekran an, epi si yo te mete tout sosis la kòrèkteman, yon reyalite o aza sou pitza parèt.

Kodim-piza

Nou te vle fè yon dezyèm nivo ak voye tomat, men nou pa t 'gen tan.

Kodim-piza

Kontinyasyon kout: ki moun ki te genyen?

Anvan Hackathon an, nou te pale ak mesye yo epi mwen te mande ki pri yo ta renmen resevwa si yo genyen. Li te vin parèt ke pri ki gen plis valè a se t ap “wout manje a”.

Kodim-piza

Se poutèt sa, espere nou anonse yon jwèt ak men ki mete piman sou pitza byento.

Kòm yon lektè atantif ta ka remake, ekip "E-E-E (jwèt)" te genyen. Felisitasyon mesye!

Se sèlman itilizatè ki anrejistre ki ka patisipe nan sondaj la. Enskri, tanpri.

Ki pwojè ou te renmen pi byen?

  • Oleg Learning (aprantisaj machin)

  • GUI pou NOOBS

  • CourierGo

  • M87

  • E-E-E

5 itilizatè yo te vote. 3 itilizatè te absteni.

Sous: www.habr.com

Add nouvo kòmantè