Kodim-Pizza

Moien, Habr. Mir hunn spontan eisen éischten internen Hackathon ofgehalen. Ech hu beschloss mat Iech meng Péng a Conclusiounen ze deelen iwwer d'Virbereedung fir et an 2 Wochen, souwéi d'Projeten déi sech erausgestallt hunn.

Kodim-Pizza

De langweilegen Deel fir déi, déi am Marketing interesséiert sinn

Ech fÀnke mat enger klenger Geschicht un.

Ufank AbrĂ«ll. Den Ă©ischte MskDotNet Community Hackathon fĂ«nnt an eisem BĂŒro statt. D'Schluecht vu Tatooine ass dĂ«s KĂ©ier an eiser Galaxis voll amgaang. Samschdeg. 20 Equipen. Pizza. Alles ass ganz oprecht (Beweiser). En opblaasbare R2-D2 schwĂ«mmt ronderĂ«m d'Hal. ÉquipĂ« schreiwen dĂ©i korrekt Algorithmen fir dĂ©i gefĂ©ierlechst Course op der Kaart ze passĂ©ieren. Mir plĂ«nneren de Start vun den Ă©ischte Rennen. Kichelcher a Kaffi si Retter. D'Organisateuren an ech hu mer erwaart, dass vill Leit e Samschdeg nom MĂ«ttegiessen fortgoen. Awer nee. 12 Stonnen KodĂ©ierung hannendrun. D'Finale. Eppes fĂ€llt of, eppes fĂ€nkt net un. Mee jiddereen ass frou. Eis Equipe gewĂ«nnt. Mir sinn duebel frou.

Ech deelen meng Freed am Slack an d'Iddi kënnt am Kapp: "Mir mussen eisen eegenen Hackathon maachen." Ech schreiwen un eis Tankstell Sasha. Rou.

Moien. Ech drĂ©nken Kaffi am BĂŒro. Ech gesinn d'Sasha vun hannen no kommen. "Lisa, dĂ«st ass super! Mir hunn e wichtegen Datum den 21. AbrĂ«ll. Loosst eis et maachen! WTF!? Sou sĂ©ier? A? Waat? Ech muss MĂ«tt AbrĂ«ll fir e Stage op Syktyvkar flĂ©ien. An an d'HĂ€ll domat! Loosst eis.

Nach 2 Wochen. Ech war ni den eenzegen Organisateur vun engem Hackathon. Loosst et intern sinn. Ech liesen Artikelen iwwer dëst Thema. Schwéier. Et dauert e puer Méint. Et gi verschidde Leit gebraucht. Dir musst iwwer Merch, PrÀisser, Konditiounen, ZÀitplang, Interessi denken, d'Zil verstoen, Budgeten. Oder vlÀicht souguer d'Bedeitung vum Liewen erausfannen. Ech wÀert et definitiv net zu ZÀit maachen. A wÀhrend Dir gelies a virbereet hutt, war schonn eng Woch vergaang. Et ass ZÀit iwwer d'Artikelen ze vergiessen an eppes ze maachen.

Fannt eis Checklëscht fir en internen Hackathon an 1 Woch ze halen

  • Plang: Dir sĂ«tzt roueg a schreift eng LĂ«scht vun deem wat fir den Hackathon gemaach muss ginn. 30 Minutte laang.
  • Objective: D'Participanten proposĂ©ieren a wielen d'Projeten dĂ©i se wĂ«llen a Google Sheets erstellen. Hannergrond Aufgab, 2 Stonnen.
  • ZĂ€itplang: um KnĂ©i schreift Dir e kuerzen ZĂ€itofbau, andeems Dir 3 Pausen an d'Finale berĂŒcksichtegt. 20 Minutte laang.
  • Équipen: VerĂ«ffentlechen e Message iwwer den Hackathon mat engem ZĂ€itplang vun der Tankstell an IT Channels an Slack / Mail / etc a kreĂ©iert e separaten Kanal fir den Hackathon. DobĂ€i gĂ«tt jiddereen an Equippen opgedeelt, an dĂ©i, dĂ©i sech net entscheeden, maachen dat an den Ă©ischte 5 Minutte vum Hackathon. Hannergrond Aufgab, 2 Stonnen.
  • Buns: Dir kommt mat Merch mat zwee EntwĂ©ckler, gitt et dem Designer fir Rendering, a kritt se prett. Hannergrond Aufgab, 3 Deeg.
  • Hackathon: Dir kommt op de BĂŒro, koordinĂ©iert jiddereen am Ufank, gitt op Äert GeschĂ€ft, liest Reddit, annoncĂ©iert wichteg all Paus iwwer frĂ«sch Pizza, maacht Fotoe vum SonnenĂ«nnergang, annoncĂ©iert d'Finale, stĂ«mmt zesummen a wielt de GewĂ«nner. 1 Dag.
  • Ënnert dem StĂ€r: Natierlech denkt Dir konstant drun datt alles gutt leeft. Natierlech wĂ€ert net jiddereen Äre Message gesinn an et ass besser mat e puer persĂ©inlech ze schwĂ€tzen. Natierlech, wann een Iech hĂ«lleft, gĂ«tt alles 2 Mol mĂ©i einfach (dĂ©i wonnerbar Alena huet mir gehollef).

De manner langweilegen Deel iwwer den Hackathon Datum

Firwat den 21. Abrëll? Dësen Dag ass bedeitend fir eis. Viru genee engem Joer, den 21. Abrëll, si mir am éischte Weekend nom Start vun der Federaler Werbekampagne ënner Belaaschtung gefall. Den Dag drop, Sonndeg, war eis Equipe ab 8 Auer op der Aarbecht. Duerno hu mir e Sonndeghackathon Board zu Trello erstallt an eng Woch Schichtaarbecht huet ugefaang, 12 Stonnen den Dag. D'Situatioun war sou kritesch datt mir net mol ZÀit haten fir ze iessen a mir goufen vun KÀrelen aus aneren Teams gefiddert.

Kodim-Pizza

Dir kënnt eng méi detailléiert Geschicht liesen op Fyodor Ovchinnikov senger SÀit (eisen CEO). Zënterhier hu mir vill geÀnnert, awer elo wÀerte mir den Datum definitiv net vergiessen.

Dëst Joer hu mir décidéiert, datt dëst Evenement derwÀert wier, an der Erënnerung un d'Nofolger ze éiwegt, an an de beschten Traditiounen hunn mir den éischten internen Hackathon an der Dodo-Geschicht organiséiert, deen 10 Stonnen gedauert huet.

De langweilegsten Deel iwwer Hackathon Projeten

VerzichterklÀrung: all d'Beschreiwunge goufe vun de KÀrelen selwer geschriwwen, sou datt d'Auteure vum Text net mÀin ass.

Oleg Learning (Maschinn Léieren)

Dima Kochnev, Sasha Andronov (@alexandronov)

Si wollten en neuralt Netzwierk maachen, dat bestëmmt wéi eng Pizza op enger Foto ouni Wëssen ass. Als Resultat hu mir eng ganz einfach a Spillsaach gemaach - et erkennt 10 Pizzaen, mir hunn ongeféier erausfonnt wéi alles funktionnéiert, sou wÀit wéi méiglech an engem Dag (~ 10 Stonnen).

Kodim-Pizza

Besonnesch hu mir gemierkt datt d'Industrie e Niveau erreecht huet, wou e gewéinleche Entwéckler fÀerdege Bibliothéiken ka huelen, d'Dokumentatioun liesen an sÀin neurale Netzwierk trainéieren ouni déif Kenntnisser vum Thema. An et wÀert gutt genuch schaffen fir richteg Problemer ze léisen.

Benotzt Tools:

  • Bild - eng praktesch an einfach BibliothĂ©ik fir mat MaschinnlĂ©ieren a Computervisioun ze schaffen.
  • Mir hunn zwee Modeller probĂ©iert - ResNet50, Yolo.
  • De Code gouf geschriwwen, natierlech, am Python.

Mir haten 11000 Fotoen, awer bal 3/4 vun hinnen hunn sech als Dreck erausgestallt, an de Rescht haten aner, onpassend Wénkel. Als Resultat hu mir e fÀerdege Modell geholl (deen einfach weess wéi Pizza ze fannen) a mat senger Hëllef hu mir den Dreck getrennt. Als nÀchst ass den Titel vun der Foto den Numm vun der Pizza abegraff - also hu mir se an Dossieren zortéiert, awer et huet sech erausgestallt datt d'Nimm net mat der Realitéit zesummegefaasst sinn a mir hu misse mat den HÀnn botzen. Um Enn waren et nach eng 500-600 Fotoen, et ass kloer, dass dat eng onbedeitend Zomm ass, mee trotzdem war dat duer fir 10 Pizzaen vuneneen ze trennen.

Fir d'Gitter ze trainéieren, hu mir déi bëllegst virtuell Maschinn an Azure op engem NVIDIA Tesla K80 geholl. Si hunn et fir 100 Epochen trainéiert, awer et war kloer datt d'Netz no 50 Epochen iwwersaturéiert war, wéinst der Tatsaach datt et e klengen Dataset gouf.

Eigentlech ass de ganze Problem de Mangel u gudden Donnéeën.

Kodim-Pizza

Mir hunn d'Begrëffer vlÀicht e bëssen duercherneen bruecht, mÀ mir musse Rechnung droen, datt mir iwwerhaapt keng Erfahrung hunn mat all deene Saachen ze schaffen.

GUI fir NOOBS (Konsole fir Pizza ze bestellen)

Misha Kumachev (Ceridan), Zhenya Bikkinin, Zhenya Vasiliev

Mir hunn e Prototyp vun enger Konsolapplikatioun fir Geeks zesummegesat, dank deem Dir Pizza iwwer d'Terminal oder Kommandozeil bestelle kĂ«nnt, oder souguer se an d'Deployment Pipeline integrĂ©ieren an, no der erfollegrĂ€icher VerĂ«ffentlechung, Pizza op de BĂŒro liwweren.

Kodim-Pizza

D'Aarbecht gouf an e puer Deeler opgedeelt: mir hunn erausfonnt wĂ©i eis API fir mobil Uwendungen funktionnĂ©iert, eis eegen CLI zesummegesat mat oclif an konfigurĂ©iert d'Publikatioun vum Package dee mir gesammelt hunn. DĂ©i lescht Aufgab huet e puer dĂ©sagrĂ©abel Minutte gĂ©int d'Enn vum Hackathon matgemaach. Alles huet lokal fir eis geschafft, a souguer dĂ©i al publizĂ©iert Versioune vum Package hunn geschafft, awer dĂ©i nei (dĂ©i mĂ©i cool Featuren an Emoticonen bĂ€igefĂŒĂŒgt hunn) refusĂ©iert ze schaffen. Mir hunn ongefĂ©ier 40 Minutte probĂ©iert erauszefannen wat falsch gaang ass, awer um Enn huet alles magesch eleng geschafft).

Eise Maximumprogramm fir den Hackathon war eng richteg Pizzabestellung op de BĂŒro duerch eise CLI. Mir hunn alles eng Dose Mol op der TestbĂ€nk gelaf, awer meng HĂ€nn hunn Ă«mmer nach gerĂ«selt wĂ©i ech Kommandoen an der Produktioun aginn hunn.

Kodim-Pizza

Als Resultat hu mir et endlech gemaach!

Kodim-Pizza

Courrier Go

Anton Bruzhmelev (Auteur), Vanya Zverev, Gleb Lesnikov (Entropie), Andrey Sarafanov

Mir hunn d'Iddi vun enger "App fir Courier" geholl.

Hannergrond iwwer Virbereedung.Am Ufank hunn ech mech gefrot wéi eng Zort Features an der Applikatioun kéinte sinn? Eng Lëscht vu Funktionalitéit erschéngt ongeféier esou:

  • D'Applikatioun loggt sech an d'LiwwerkĂ€schte mam Code un.
  • D'Applikatioun weist direkt verfĂŒgbar Bestellungen an Bestellungen dĂ©i musse geholl ginn.
  • De Courrier notĂ©iert d'Bestellung an hĂ«lt se op d'Rees.
  • Hie gĂ«tt dĂ©i geschĂ€tzte ZĂ€it gewisen an ob hien op ZĂ€it ass oder net.
  • Weist dem Client datt de Courrier fort ass.
  • De Client fĂ€nkt un de Courrier Punkt op der Kaart an dĂ©i geschĂ€tzte ZĂ€it ze weisen.
  • De Courrier kann dem Client am Chat vun der Applikatioun schreiwen.
  • De Client kann de Courrier iwwer Chat vun der Applikatioun schreiwen.
  • FĂ«nnef Minutte virun der ArrivĂ©e kritt de Client e Message datt de Courrier no ass, bereet Iech vir.
  • De Courrier notĂ©iert an der Applikatioun datt hien ukomm ass a waart.
  • De Courrier rifft vun der Applikatioun mat engem Klick a mellt dat (kĂ«mmert, ass ukomm, etc.)
  • De Client akzeptĂ©iert d'Bestellung a gitt e PIN-Code vun der Applikatioun oder SMS fir d'Liwwerung ze bestĂ€tegen (als ËnnerschrĂ«ft) Sou datt de Courrier d'Liwwerung net am Viraus fĂ€erdeg ass wann hien ze spĂ©it ass.
  • D'Bestellung ass markĂ©iert wĂ©i am System geliwwert.

Plus e puer alternativ Szenarie:

  • De Courrier kann d'Bestellung als net geliwwert markĂ©ieren an de Grond auswielen.
  • Wann Dir spĂ©it sidd, kann de Courrier en elektronesche Certificat per SMS mat engem KnĂ€ppchen ausginn. Oder den Zertifika kĂ«nnt automatesch wann d'Liwwerfrist net erfĂ«llt ass.

D'Gefill vu Verspriechen an Noutwennegkeet vun dësem Projet war natierlech energesch.

Den nÀchsten Dag si mir mat der Equipe zum Mëttegiessen gaangen an diskutéiert wéi d'Mindestfunktionalitéit vun der Applikatioun ausgesÀit.

Als Resultat gouf déi folgend Lëscht vun deem wat um Hackathon gemaach muss ginn:

  • Login op d'Liwwerung KeesseberĂ€ich.
  • Weist aktuell Positioun.
  • SchĂ©ckt Daten op eng extern API (Koordinaten, krut d'Bestellung, geliwwert d'Bestellung).
  • Kritt Daten vun externen API (aktuelle Courrier Commanden).
  • SchĂ©ckt en Event wat beweist datt Dir d'Bestellung fir d'Liwwerung geholl hutt / geliwwert.
  • Weist dĂ©i aktuell Positioun vum Courrier op der Kaart op der WebsĂ€it.

D'Haaptaarbecht, wéi et ausgesÀit, louch an der Schafung vum Backend, d'Applikatioun selwer (no Diskussiounen hu mir ReactNative gewielt fir d'Applikatioun z'entwéckelen, oder éischter de Kader dofir - expo.io, wat Iech erlaabt guer net native Code ze schreiwen). Wat de Backend ugeet, gouf et am Ufank Hoffnung op Vanya Zverev, well hien erlieft huet mat eisem Service Template an k8s ze schaffen (wat hien opgeholl huet). Den Andrey Sarafanov an ech hunn ReactNative fir e Spin geholl.

Ech hu beschloss ze probéieren direkt e schaffende Repository fir de Projet selwer ze kreéieren. Um 12 an der Nuecht sinn ech op d'Tatsaach komm datt d'Geolocatioun am Hannergrond net gutt funktionnéiert am ReactNative, wann Dir kee gebiertege Code schreift, war ech e bësse frustréiert. Dunn hunn ech lassgelooss wéi ech gemierkt hunn datt ech d'Dokumentatioun net vum expo.io Kader gelies hunn, mee vu ReactNative. Als Resultat hunn ech am Laf vum Owend scho verstanen wéi ech déi aktuell Positioun an expo.io kréien an getrennte Schiirme zéien (fir Login, Bestellungsdisplay, etc.).

Kodim-Pizza

Moies um Hackathon hunn si de Gleb an hire superverspriechende Projet gelackert. Si sinn séier mat engem Plang komm fir wat ze maachen.

Kodim-Pizza

Mir hunn e Feeler gemaach wĂ©i mir, am Aklang mat der Projektschabloun, probĂ©iert hunn net iwwer HTTP ze kommunizĂ©ieren, awer iwwer GRPC, well kee wousst wĂ©i een e GRPC Client fir JavaScript opbaut. Um Enn, nodeems mir ongefĂ©ier eng Stonn an eng hallef op dĂ«st verbruecht hunn, hu mir dĂ«s Iddi opginn. Duerfir hunn d'Jongen ugefaang de fĂ€erdege Server vu GRPC op WebApi um Backend nei ze schaffen. No enger hallwer Stonn konnte mir endlech d'Kommunikatioun tĂ«scht der Applikatioun an dem Backend opbauen, lo a kuck. MĂ€ an der selwechter ZĂ€it, Gleb war bal ofgeschloss der DĂ©tachement ze k8s a plus d'Auto-Deployment vun engem Engagement fir de Meeschter. 🙂

Mir hunn MySQL als SpÀichere gewielt fir net op d'mannst Risiken mat der Datebank ze huelen (mir haten Gedanken iwwer CosmosDb).

Kodim-Pizza

Als Resultat:

  • ImplementĂ©iert spĂ€icheren dĂ©i aktuell Koordinate vum Courrier vun der Applikatioun an d'Datebank.
  • Mir hunn RabbitMQ installĂ©iert an abonnĂ©iert op Messagen iwwer de Courrier deen eng Bestellung ophĂ«lt fir direkt d'Bestellung vum Courrier an der Applikatioun ze weisen.
  • Mir hunn ugefaang d'LiwwerzĂ€it vun der Bestellung an eiser Datebank ze spĂ€icheren nodeems de Courrier e KnĂ€ppchen an der Applikatioun gedrĂ©ckt huet. Mir hu keng ZĂ€it fir en Event zrĂ©ck op d'Rebbit ze schĂ©cken datt d'Bestellung geliwwert gouf.
  • Ech hunn eng Kaart Display op der aktueller Bestellung SĂ€it op der WebsĂ€it mat der aktueller Positioun vum Courrier gemaach. Awer dĂ«s FunktionalitĂ©it blouf e bĂ«ssen ongeschloss, well et net mĂ©iglech war CORS an der Ëmwelt ze konfigurĂ©ieren fir Koordinaten vun eisem neie Service ze krĂ©ien.

M87

Roma Bukin, Gosha Polevoy (georgepolevoy), Artyom Trofimushkin

Mir wollten en OpenID Connect Provider implementéieren, well mir am Moment en Authentifikatiounsprotokoll vun eisem eegenen Design benotzen, an dat schaaft eng Rei Schwieregkeeten: personaliséiert Clientbibliothéiken, onbequem Aarbecht vun externe Partner, méiglech Sécherheetsproblemer (schliisslech , OAuth2.0 an OpenID Connect an der Referenzimplementatioun kënnen als sécher ugesi ginn, awer ech sinn net sécher iwwer eis Léisung).

Kodim-Pizza

Mir hunn e separaten Service gemaach, deen e Service fir persĂ©inlech DonnĂ©eĂ«n ze spĂ€icheren, fir e klenge Land-agnostesche Modell vun engem Authentifikatiounsprovider ze kreĂ©ieren, deen an e separaten Service fir persĂ©inlech DonnĂ©eĂ«n gĂ©if goen (dĂ«st gĂ©if et an Zukunft mĂ©iglech maachen en Service mat dĂ©i ee sech mat enger Kontregistrierung an all Land kĂ©int aloggen, a glĂ€ichzĂ€iteg dem GDPR an anere Bundesgesetzer respektĂ©ieren). Mir hunn dĂ«sen Deel gemaach, wĂ©i de Provider, an hunn se erfollegrĂ€ich matenee verbonnen. Als nĂ€chst war et nĂ©ideg eng API ze kreĂ©ieren dĂ©i geschĂŒtzt wier duerch Tokens, dĂ©i vum Provider erausginn, hir Introspektioun duerch de Provider Ă«nnerstĂ«tzen an geschĂŒtzte DonnĂ©eĂ«n zrĂ©ckginn wann d'Ufro d'Autorisatiounspolitik zefridden huet (mir kontrollĂ©ieren datt de Benotzer no dem Bearer Schema authentifizĂ©iert ass , sĂ€in Token enthĂ€lt e gewĂ«ssen Ëmfang + y De Benotzer selwer huet eng Erlaabnis, dĂ©i den Uruff erlaabt). DĂ«sen Deel gouf och ofgeschloss. DĂ©i lescht Komponent war e JavaScript Client, deen en Token kritt, mat der HĂ«llef vun deem et e geschĂŒtzte API nennt. Mir hu keng ZĂ€it fir dĂ«sen Deel ze maachen. Dat ass, de ganze funktionnellen Deel war prett, awer de Front-End Deel war net prett fir d'FunktionalitĂ©it vum ganze System ze demonstrĂ©ieren.

E-E-E (Spillsaachen)

Dima Afonchenko, Sasha Konovalov

Mir hunn e Mini-Spillsaach op Yunka gemaach, wou frësch HÀnn Wurst op Pizza werfen. Wann Dir d'Wurscht falsch setzt, erschéngt e traureg "Rejected" Message um Bildschierm, a wann all d'Wurst richteg opgesat gouf, erschéngt eng zoufÀlleg Tatsaach iwwer Pizza.

Kodim-Pizza

Mir wollten en zweeten Niveau mat Tomaten werfen, awer mir hu keng ZĂ€it.

Kodim-Pizza

Kuerz Fortsetzung: wien huet gewonnen?

Virum Hackathon hu mir mat de KÀrelen geschwat an ech gefrot wéi ee PrÀis si géife kréien wa se gewannen. Et huet sech erausgestallt datt de wÀertvollste PrÀis "de Wee fir Iessen" wier.

Kodim-Pizza

Dofir, erwaart eis e Spill mat HÀnn ze annoncéieren, datt Pepperons op Pizza geschwënn.

Wéi en opmierksam Lieser vlÀicht gemierkt huet, huet d'Equipe "E-E-E (Spillsaach)" gewonnen. Gratulatioun KÀrelen!

NĂ«mme registrĂ©iert Benotzer kĂ«nnen un der Ëmfro deelhuelen. Umellen, wann ech glift.

Wéi ee Projet huet Iech am beschte gefall?

  • Oleg Learning (Maschinn LĂ©ieren)

  • GUI fir NOOBS

  • Courrier Go

  • M87

  • E-E-E

5 Benotzer hunn gestëmmt. 3 Benotzer hu sech enthalen.

Source: will.com

Kaaft zouverlĂ€sseg Hosting fir Site mat DDoS Schutz, VPS VDS Server đŸ”„ Kaaft zouverlĂ©issegt WebsĂ€ithosting mat DDoS-Schutz, VPS VDS Server | ProHoster