Кодим-пицца

Сайн уу, Хабр. Бид анхны дотоод хакатонгоо аяндаа зохион байгууллаа. Би та бүхэнтэй 2 долоо хоногийн дотор бэлдэх талаар өөрийн зовлон шаналал, дүгнэлт, мөн болж бүтсэн төслүүдээ хуваалцахаар шийдлээ.

Кодим-пицца

Маркетингийг сонирхож буй хүмүүст зориулсан уйтгартай хэсэг

Би бяцхан түүхээс эхэлье.

Дөрөвдүгээр сарын эхлэл. MskDotNet нийгэмлэгийн анхны хакатон манай оффис дээр болж байна. Tatooine-ийн тулаан энэ удаад манай галактикт ид өрнөж байна. Бямба гариг. 20 баг. Пицца. Бүх зүйл маш чин сэтгэлээсээ (нотлох баримтууд). Хийлдэг R2-D2 танхимыг тойрон хөвж байна. Багууд газрын зураг дээрх хамгийн аюултай уралдааныг даван туулах хамгийн зөв алгоритмыг бичдэг. Бид эхний уралдааны нээлтийг хийж байна. Жигнэмэг, кофе нь аврагч юм. Зохион байгуулагчид бид хоёр бямба гаригт үдийн хоолны дараа олон хүн явах байх гэж бодож байсан. Гэхдээ үгүй. 12 цаг кодчилсны дараа. Финал. Ямар нэг зүйл унасан, ямар нэг зүйл эхлэхгүй байна. Гэхдээ бүгд аз жаргалтай байдаг. Манай баг хожиж байна. Бид хоёр дахин баяртай байна.

Би Слэк дэх баяр баясгалангаа хуваалцаж байгаа бөгөөд "Бид өөрсдөө хакатон хийх хэрэгтэй" гэсэн санаа төрсөн. Би манай үйлчилгээний газар Саша руу захидал бичиж байна. Чимээгүй.

Өглөө. Би оффисдоо кофе уудаг. Би Саша араас ирж байгааг харж байна. "Лиза, энэ бол гайхалтай! Бид 21-р сарын XNUMX-нд чухал өдөртэй. Энийг хийцгээе!" WTF!? Маш хурдан? А? Юу? Би XNUMX-р сарын дундуур дадлага хийхээр Сыктывкар руу нисэх хэрэгтэй байна. Тэгээд тамд! Болъё.

2 долоо хоног үлдлээ. Би хэзээ ч хакатон тэмцээнийг ганцаараа зохион байгуулж байгаагүй. Дотооддоо байг. Би энэ сэдвээр нийтлэл уншсан. Хатуу. Хэдэн сар шаардагдана. Хэд хэдэн хүн хэрэгтэй байна. Та бараа, шагнал, нөхцөл, хуваарь, сонирхол, зорилго, төсвийн талаар бодох хэрэгтэй. Эсвэл бүр амьдралын утга учрыг олж мэдэх. Би тодорхой хугацаанд амжихгүй. Тэгээд чамайг уншиж, бэлдэж байтал аль хэдийн долоо хоног өнгөрчээ. Нийтлэлүүдийг мартаж, ямар нэгэн зүйл хийж эхлэх цаг болжээ.

1 долоо хоногийн дотор дотоод хакатон зохион байгуулах манай хяналтын хуудсыг аваарай

  • Төлөвлөгөө: Та тайвширч суугаад хакатонд юу хийх хэрэгтэйг жагсаан бичээрэй. 30 минут.
  • Зорилго: Оролцогчид Google Хүснэгт дээр үүсгэхийг хүсч буй төслүүдээ санал болгож, сонгоно. Суурь даалгавар, 2 цаг.
  • Жагсаалт: өвдөг дээрээ та 3 завсарлага, эцсийн хугацааг харгалзан богино хугацааны задаргааг бичээрэй. 20 минут.
  • Багууд: Slack/mail/etc-ийн мэдээллийн технологийн сувгуудын үйлчилгээний станцын хуваарийн хамт хакатоны тухай мессежийг нийтэлж, хакатонд зориулж тусдаа суваг үүсгэнэ үү. Үүнд хүн бүр багуудад хуваагддаг бөгөөд шийдэгдээгүй хүмүүс хакатоны эхний 5 минутанд үүнийг хийдэг. Суурь даалгавар, 2 цаг.
  • Боов: Та хоёр хөгжүүлэгчтэй бараа бүтээгдэхүүн гаргаж ирээд, түүнийгээ дизайнерт үзүүлэн өгөхөд бэлэн хүлээж аваарай. Үндсэн даалгавар, 3 хоног.
  • Хакатон: та оффис дээр ирж, хүн бүрийг эхнээс нь зохицуулж, ажлаа хийж, Reddit унш, хамгийн чухал нь шинэхэн пиццаны тухай завсарлага болгоныг зарлаж, нар жаргах үеийн зургийг авч, финалыг зарлаж, хамтдаа саналаа өгч, ялагчийг сонго. 1 өдөр.
  • Одны доор: Мэдээж та бүх зүйл сайхан болох талаар байнга боддог. Мэдээжийн хэрэг, хүн бүр таны мессежийг харахгүй бөгөөд заримтай нь биечлэн ярилцах нь дээр. Мэдээжийн хэрэг, хэрэв хэн нэгэн танд тусалвал бүх зүйл 2 дахин хялбар болно (гайхалтай Алена надад тусалсан).

Хакатон болзооны тухай уйтгартай хэсэг

Яагаад дөрөвдүгээр сарын 21 гэж? Энэ өдөр бидний хувьд чухал юм. Яг жилийн өмнө буюу 21-р сарын 8-нд Холбооны сурталчилгааны кампанит ажил эхэлснээс хойшхи эхний амралтын өдрүүдэд бид ачаалалд орсон. Маргааш буюу ням гаригт манай баг өглөө 12 цагаас ажилдаа байлаа. Дараа нь бид Trello-д sundayhackathon самбар байгуулж, долоо хоногийн ээлжийн ажил, өдөрт XNUMX цаг эхэлсэн. Нөхцөл байдал маш хүнд байсан тул бид идэж ч амжаагүй, бусад багийн залуус биднийг хооллодог байсан.

Кодим-пицца

Та дэлгэрэнгүй түүхийг эндээс уншиж болно Федор Овчинниковын хуудас (манай гүйцэтгэх захирал). Түүнээс хойш бид маш их өөрчлөгдсөн, гэхдээ одоо бид он сар өдрийг мартахгүй нь гарцаагүй.

Энэ жил бид энэхүү арга хэмжээг хойч үеийнхний ой санамжинд мөнхжүүлэх нь зүйтэй гэж үзээд шилдэг уламжлалын дагуу Додогийн түүхэн дэх анхны дотоод хакатоныг зохион байгуулж, 10 цаг үргэлжилсэн.

Хакатон төслийн хамгийн уйтгартай хэсэг

Анхааруулга: бүх тайлбарыг залуус өөрсдөө бичсэн тул текстийн зохиогч минийх биш юм.

Олег Сургалт (машины сургалт)

Дима Кочнев, Саша Андронов (@alexandronov)

Тэд ямар ч мэдлэггүйгээр зураг дээр ямар төрлийн пицца байгааг тодорхойлох мэдрэлийн сүлжээ хийхийг хүссэн. Үүний үр дүнд бид маш энгийн бөгөөд тоглоом хийсэн - энэ нь 10 пиццаны таних боломжтой, бид бүх зүйл хэрхэн ажилладагийг ойролцоогоор нэг өдрийн дотор (~ 10 цаг) олж мэдсэн.

Кодим-пицца

Тэр дундаа жирийн нэг хөгжүүлэгч хүн тухайн сэдвийн талаар гүн гүнзгий мэдлэггүйгээр бэлэн номын санг авч, баримт бичгийг уншиж, мэдрэлийн сүлжээгээ сургах боломжтой түвшинд хүрсэн гэдгийг бид ойлгосон. Мөн энэ нь бодит асуудлыг шийдвэрлэх хангалттай сайн ажиллах болно.

Хэрэглэсэн хэрэгслүүд:

  • imageai - машин сургалт, компьютерийн алсын хараатай ажиллахад тохиромжтой, энгийн номын сан.
  • Бид хоёр загварыг туршиж үзсэн - ResNet50, Yolo.
  • Мэдээжийн хэрэг, кодыг Python дээр бичсэн.

Бидэнд 11000 зураг байсан ч бараг 3/4 нь хог болж, үлдсэн хэсэг нь өөр өөр, тохиромжгүй өнцөгтэй байсан. Үүний үр дүнд бид бэлэн загвар (пицца хэрхэн олохыг мэддэг) авч, түүний тусламжтайгаар бид хогийн савыг салгав. Дараа нь зургийн гарчигт пиццаны нэрийг оруулсан байсан - тиймээс бид үүнийг хавтас болгон ангилсан боловч нэрс нь бодит байдалтай давхцахгүй байсан тул бид үүнийг гараар цэвэрлэх хэрэгтэй болсон. Төгсгөлд нь 500-600 орчим зураг үлдсэн бөгөөд энэ нь өчүүхэн хэмжээ гэдэг нь тодорхой боловч энэ нь 10 пиццаны бие биенээсээ салгахад хангалттай байв.

Сүлжээг сургахын тулд бид NVIDIA Tesla K80 дээр Azure дахь хамгийн хямд виртуал машиныг авсан. Тэд үүн дээр 100 эрин үе бэлтгэгдсэн боловч өгөгдлийн багц багатай байсан тул 50 эриний дараа сүлжээ хэт ханасан нь тодорхой байв.

Үнэндээ бүх асуудал бол сайн мэдээлэл дутмаг юм.

Кодим-пицца

Бид нэр томъёог бага зэрэг андуурсан байж магадгүй, гэхдээ бид эдгээр бүх асуудалтай ажиллах туршлагагүй гэдгээ анхаарах хэрэгтэй.

NOOBS-д зориулсан GUI (пицца захиалах консол)

Миша Кумачев (Серидан), Женя Биккинин, Женя Васильев

Бид инээдмийн хүмүүст зориулсан консолын програмын эх загварыг цуглуулсан бөгөөд үүний ачаар та терминал эсвэл командын мөрөөр пицца захиалах, тэр ч байтугай түүнийг байршуулах хоолойд нэгтгэж, амжилттай гаргасны дараа оффис руу пицца хүргэх боломжтой.

Кодим-пицца

Ажил нь хэд хэдэн хэсэгт хуваагдсан: бид гар утасны програмуудад зориулсан API хэрхэн ажилладагийг олж мэдээд, өөрийн CLI-г ашиглан угсарсан. оклиф мөн бидний цуглуулсан багцын хэвлэлтийг тохируулсан. Сүүлчийн даалгавар нь хакатон дуусахад хэдэн таагүй минутыг хамарсан. Бүх зүйл бидний хувьд орон нутагт ажиллаж байсан бөгөөд багцын хуучин хэвлэгдсэн хувилбарууд хүртэл ажилласан боловч шинэ хувилбарууд (илүү гайхалтай функцууд болон эмотиконууд нэмсэн) ажиллахаас татгалзав. Бид юу буруу болсныг олж мэдэх гэж 40 минут зарцуулсан боловч эцэст нь бүх зүйл өөрөө ид шидийн байдлаар ажилласан).

Хакатонд зориулсан бидний хамгийн дээд хөтөлбөр бол манай CLI-ээр дамжуулан оффис руу пицца захиалах явдал байв. Туршилтын вандан дээр бид бүх зүйлийг хэдэн арван удаа гүйж байсан ч үйлдвэрлэлд команд оруулахад гар минь чичирсээр байв.

Кодим-пицца

Үүний үр дүнд бид үүнийг хийж чадсан!

Кодим-пицца

CourierGo

Антон Бржмелев (зохиогч), Ваня Зверев, Глеб Лесников (энтропи), Андрей Сарафанов

Бид "Curier-д зориулсан програм"-ын санааг авсан.

Бэлтгэлийн талаархи суурь мэдээлэл.Эхэндээ би энэ програмд ​​ямар функцууд байж болох вэ гэж гайхаж байсан. Дараах функцүүдийн жагсаалт гарч ирэв.

  • Аппликейшн нь кодыг ашиглан хүргэлтийн кассын бүртгэлд нэвтэрдэг.
  • Аппликешн нь бэлэн байгаа захиалга, авах шаардлагатай захиалгыг нэн даруй харуулна.
  • Илгээгч захиалгыг тэмдэглээд аялалдаа авч явдаг.
  • Түүнд тооцоолсон цаг хугацаа, цагтаа ирсэн эсэх зэргийг харуулдаг.
  • Илгээгч явсан гэдгийг үйлчлүүлэгчид харуулна.
  • Үйлчлүүлэгчид газрын зураг дээрх шуудангийн цэг, тооцоолсон цагийг харуулж эхэлдэг.
  • Илгээгч нь програмаас чатаар үйлчлүүлэгч рүү бичих боломжтой.
  • Үйлчлүүлэгч програмаас чатаар шуудан зөөгч рүү бичих боломжтой.
  • Ирэхээс таван минутын өмнө үйлчлүүлэгч шуудан зөөгч ойрхон байна гэсэн мессеж хүлээн авна, бэлэн байгаарай.
  • Илгээгч өргөдөлдөө ирчихсэн, хүлээж байгаа гэж тэмдэглэсэн байдаг.
  • Шуудангийн ажилтан програмаас нэг товшилтоор залгаад (өсөж байна, ирсэн гэх мэт) мэдэгдэнэ.
  • Үйлчлүүлэгч захиалгыг хүлээн авч, програм эсвэл SMS-ээс PIN код оруулан хүргэлтийг баталгаажуулна.(гарын үсэг болгон) Ингэснээр шуудан зөөгч хоцорсон тохиолдолд хүргэлтийг урьдчилан хийж чадахгүй.
  • Захиалгыг системд хүргэсэн гэж тэмдэглэсэн.

Дээрээс нь хэд хэдэн өөр хувилбарууд:

  • Илгээгч нь захиалгыг хүргэгдээгүй гэж тэмдэглэж, шалтгааныг сонгох боломжтой.
  • Хэрэв та хоцорсон бол шуудан зөөгч нэг товчлуураар SMS-ээр цахим гэрчилгээ олгох боломжтой. Эсвэл хүргэлтийн хугацаа дуусаагүй тохиолдолд гэрчилгээ автоматаар ирдэг.

Энэ төслийн амлалт, хэрэгцээ нь мэдээжийн хэрэг эрч хүчтэй байсан.

Маргааш нь бид багийнхантай үдийн хоолонд орж, програмын хамгийн бага функц ямар байх талаар ярилцав.

Үүний үр дүнд хакатон дээр хийх ёстой зүйлсийн дараах жагсаалтыг гаргав.

  • Хүргэлтийн кассын бүртгэлд нэвтэрнэ үү.
  • Одоогийн байрлалыг харуулах.
  • Гадаад API руу өгөгдөл илгээх (координат, захиалгыг хүлээн авсан, захиалгыг хүргэсэн).
  • Гадаад API-аас өгөгдөл хүлээн авах (одоогийн шуудангийн захиалга).
  • Хүргэлтийн захиалгыг хүлээн авснаа харуулсан үйл явдлыг илгээнэ үү.
  • Вэбсайт дээрх газрын зураг дээр шуудангийн одоогийн байрлалыг харуул.

Гол ажил нь арын хэсэг буюу програмыг өөрөө бий болгоход оршдог юм шиг санагдаж байна (хэлэлцүүлсний дараа бид програмыг хөгжүүлэхийн тулд ReactNative-г сонгосон, эс тэгвээс түүний хүрээг - expo.io, энэ нь таныг эх код бичихгүй байх боломжийг олгодог). Арын талбарын хувьд Ваня Зверев манай үйлчилгээний загвар болон k8-тэй ажиллах туршлагатай байсан (түүний хувьд ямар ажил авсан) найдвар төрүүлэв. Андрей Сарафанов бид хоёр ReactNative-г эргүүлж авсан.

Би тэр даруй төслийнхөө ажлын агуулахыг бий болгохоор шийдсэн. Шөнийн 12 цагт ReactNative программ дээр цаана нь газарзүйн байршил тийм ч сайн ажиллахгүй байгааг олж харлаа, хэрэв та уугуул код бичихгүй бол би бага зэрэг бухимдсан. Дараа нь би expo.io хүрээний биш, харин ReactNative-ийн баримт бичгийг уншиж байгаагаа мэдээд орхив. Үүний үр дүнд, үдшийн туршид би expo.io дахь одоогийн байрлалыг хэрхэн олж авах, тусдаа дэлгэц зурах (нэвтрэх, захиалгын харуулах гэх мэт) хэрхэн хийхийг аль хэдийн ойлгосон.

Кодим-пицца

Өглөө нь хакатон дээр тэд Глебийг хэт ирээдүйтэй төсөлдөө татав. Тэд юу хийх ёстой вэ гэдэг төлөвлөгөөг хурдан гаргаж ирэв.

Кодим-пицца

Төслийн загварын дагуу бид HTTP-ээр биш, харин GRPC-ээр дамжуулан холбогдохыг оролдохдоо алдаа гаргасан, учир нь хэн ч JavaScript-д зориулсан GRPC клиентийг хэрхэн бүтээхийг мэдэхгүй байсан. Эцэст нь бид үүнд нэг цаг хагасыг зарцуулсны дараа энэ санаагаа орхисон. Үүнээс болж арын хэсэгт байгаа залуус бэлэн болсон серверийг GRPC-ээс WebApi руу дахин хийж эхлэв. Хагас цагийн дараа бид эцэст нь програм болон арын хэсгийн хооронд холбоо тогтоож чадсан. Гэвч тэр үед Глеб k8-д байршуулах, мөн мастерт автоматаар байршуулах ажлыг бараг дуусгаж байв. 🙂

Бид ядаж мэдээллийн баазтай холбоотой эрсдэлд орохгүйн тулд MySQL-г хадгалах газар болгон сонгосон (бид CosmosDb-ийн талаар бодож байсан).

Кодим-пицца

Эцэст нь:

  • Илгээгчийн одоогийн координатыг програмаас мэдээллийн санд хадгалах ажлыг хэрэгжүүлсэн.
  • Бид RabbitMQ-г суулгаж, шуудан зөөгчийн захиалгыг шуудангийн аппликейшн дээр шууд харуулахын тулд захиалгыг авч байгаа тухай мессежүүдэд бүртгүүлсэн.
  • Илгээгч програмын товчлуурыг дарсны дараа бид захиалгын хүргэх хугацааг мэдээллийн сандаа хэмнэж эхэлсэн. Бид захиалгыг хүргэсэн тухай буцаан илгээх арга хэмжээг нэмэх цаг байсангүй.
  • Би вэбсайт дээрх одоогийн захиалгын хуудсан дээр шуудангийн одоогийн байрлалыг харуулсан газрын зургийг харуулсан. Гэхдээ манай шинэ үйлчилгээнээс координат хүлээн авахын тулд орчинд CORS-ийг тохируулах боломжгүй байсан тул энэ функц бага зэрэг дуусаагүй хэвээр байв.

M87

Рома Букин, Гоша Полевой (Георгеполевой), Артём Трофимушкин

Бид OpenID Connect үйлчилгээ үзүүлэгчийг хэрэгжүүлэхийг хүссэн, учир нь одоогоор бид өөрсдийн дизайны нэвтрэлт таних протоколыг ашиглаж байгаа бөгөөд энэ нь хэд хэдэн бэрхшээлийг үүсгэдэг: захиалгат үйлчлүүлэгчийн номын сан, гадны түншүүдийн тохиромжгүй ажил, аюулгүй байдлын болзошгүй асуудлууд (эцсийн эцэст). , OAuth2.0 болон OpenID Connect-ийг лавлагааны хэрэгжилтэд аюулгүй гэж үзэж болох ч бидний шийдлийн талаар би сайн мэдэхгүй байна).

Кодим-пицца

Бид хувийн мэдээлэлд зориулсан тусдаа үйлчилгээнд шилждэг (энэ нь ирээдүйд нэг үйлчилгээтэй байх боломжтой) баталгаажуулах үйлчилгээ үзүүлэгчийн жижиг улсаас хамааралгүй загварыг бий болгохын тулд хувийн мэдээллийг хадгалах үйлчилгээг дуурайлган тусдаа үйлчилгээг хийсэн. аль ч улсад дансны бүртгэлээр нэвтэрч, GDPR болон бусад холбооны хууль тогтоомжийг дагаж мөрдөх боломжтой). Бид үйлчилгээ үзүүлэгчийн нэгэн адил энэ хэсгийг хийж, бие биетэйгээ амжилттай холбосон. Дараа нь, үйлчилгээ үзүүлэгчээс гаргасан жетоноор хамгаалагдсан API-г бий болгох, үйлчилгээ үзүүлэгчээр дамжуулан тэдний дотоод үзлэгийг дэмжих, хүсэлт нь зөвшөөрлийн бодлогыг хангасан тохиолдолд хамгаалагдсан өгөгдлийг буцааж өгөх шаардлагатай байв (бид Bearer схемийн дагуу хэрэглэгчийг баталгаажуулсан эсэхийг шалгана. , түүний токен нь тодорхой хүрээг агуулсан + y Хэрэглэгч өөрөө дуудлага хийх зөвшөөрөлтэй байдаг). Энэ хэсгийг мөн дуусгасан. Сүүлчийн бүрэлдэхүүн хэсэг нь JavaScript клиент байсан бөгөөд түүнд жетон өгөх бөгөөд үүний тусламжтайгаар хамгаалагдсан API гэж нэрлэх болно. Бидэнд энэ хэсгийг хийх цаг байсангүй. Өөрөөр хэлбэл, функциональ хэсэг нь бүхэлдээ бэлэн байсан боловч урд талын хэсэг нь бүхэл системийн ажиллагааг харуулахад бэлэн биш байв.

E-E-E (тоглоом)

Дима Афонченко, Саша Коновалов

Бид юнка дээр бяцхан тоглоом хийв, тэр гараараа пицца дээр хиам шиддэг. Хэрэв та хиамыг буруу тавьсан бол дэлгэцэн дээр гунигтай "Татгалзсан" гэсэн мессеж гарч ирэх бөгөөд хэрэв бүх хиамыг зөв тавьсан бол пиццаны тухай санамсаргүй баримт гарч ирнэ.

Кодим-пицца

Бид улаан лооль шидэж, хоёрдахь түвшнийг хийхийг хүссэн ч бидэнд цаг байсангүй.

Кодим-пицца

Богино үргэлжлэл: хэн ялсан бэ?

Хакатон болохоос өмнө бид залуустай ярилцаж, хэрэв тэд ялвал ямар шагнал авахыг хүсч байгаагаа асуусан. Хамгийн үнэ цэнэтэй шагнал нь "хоолны зам" байх нь тодорхой болсон.

Кодим-пицца

Тиймээс бид удахгүй пицца дээр чинжүү тавьдаг гар тоглоомыг зарлана гэж найдаж байна.

Анхааралтай уншигч та анзаарсан бол “E-E-E (тоглоом)” баг түрүүлсэн. Баяр хүргэе залуусаа!

Зөвхөн бүртгэлтэй хэрэглэгчид санал асуулгад оролцох боломжтой. Нэвтрэх, гуйя.

Аль төсөл танд хамгийн их таалагдсан бэ?

  • Олег Сургалт (машины сургалт)

  • NOOBS-д зориулсан GUI

  • CourierGo

  • M87

  • Э-Э-Э

5 хэрэглэгч санал өгсөн. 3 хэрэглэгч түдгэлзсэн.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх