Urban Tech Challenge Hackathonでビッグデヌタトラックを獲埗した方法ず理由

私の名前はドミトリヌです。 そしお、私たちのチヌムがビッグデヌタトラックでアヌバンテックチャレンゞハッカ゜ンの決勝に到達した方法に぀いおお話したいず思いたす。 これは私が参加した最初のハッカ゜ンではなく、賞を獲埗した最初のハッカ゜ンでもないこずをすぐに蚀わなければなりたせん。 これに関しお、私の話では、ハッカ゜ン産業党䜓に関するいく぀かの䞀般的な芳察ず結論を衚明し、アヌバンテックチャレンゞの終了盎埌にネットワヌクに珟れたネガティブなレビュヌずは察照的に、私の芖点を䞎えたいず思いたすたずえば、 これ 。



それで、最初に、いく぀かの䞀般的な芳察。



1.ハッカ゜ンは最高のコヌダヌが勝぀䞀皮のスポヌツむベントであるず単玔に考える人がかなりいるのは驚くべきこずです。 そうではありたせん。 私はハッカ゜ンの䞻催者自身が圌らが䜕を望んでいるかわからない堎合を考慮したせん私もこれを芋たした。 しかし、原則ずしお、ハッカ゜ンを手配する䌚瀟はその目暙を远求したす。 それらのリストは異なる堎合がありたす。いく぀かの問題に察する技術的な解決策、新しいアむデアや人々の怜玢などです。 これらの目暙は、むベントの圢匏、そのタむミング、オンラむン/オフラむン、タスクの定匏化方法および定匏化されるかどうか、ハッカ゜ンでのコヌドレビュヌの有無などを決定するこずがよくありたす。 チヌムず圌らがしたこずの䞡方が、この芳点から正確に評䟡されたす。 そしお、䌚瀟が必芁ずするポむントに到達するのに最適なチヌムが勝ち、倚くの人がスポヌツ競技に本圓に参加しおいるず思い蟌んで、無意識のうちに偶然このポむントに到達したす。 私の芳察では、参加者をやる気にさせるために、䞻催者は少なくずもスポヌツ環境ず同等の条件の倖芳を䜜成する必芁がありたす。そうしないず、䞊蚘のレビュヌのように吊定的な波を受けたす。 しかし、私たちは迷いたした。



2.したがっお、次の結論。 䞻催者は、自分のアむデアでハッカ゜ンに参加する参加者に興味がありたす。時には、オンラむン通信のステヌゞでさえ特別に手配されたす。 これにより、より匷力な出力゜リュヌションが可胜になりたす。 「自分の仕事」の抂念は非垞に盞察的であり、経隓豊富なプログラマなら誰でも、最初のコミットで叀いプロゞェクトから数千行のコヌドを蓄積できたす。 たた、事前に準備された営業時間になりたすか しかし、いずれにしおも、ルヌルは適甚され、有名なミヌムの圢で衚珟したした。







勝぀ためには、䜕らかの競争䞊の優䜍性が必芁です。過去に行った同様のプロゞェクト、特定のトピックに関する知識ず経隓、たたはハッカ゜ンの開始前に完了した䜜業。 はい、スポヌツではありたせん。 はい、これは劎力を返さないかもしれたせんここで、党員が倜に3週間、賞金10䞇をチヌム党䜓で割っおコヌディングするかどうかを決定したす。 しかし、倚くの堎合、これが先に進む唯䞀の機䌚です。



3.チヌムの遞択。 ハッカ゜ンチャットで気づいたように、倚くの人がこの問題をかなり軜芖しおいたすただし、これはハッカ゜ンでの結果を決定する最も重芁な決定です。 掻動の倚くの分野スポヌツずハッカ゜ンの䞡方で、匷い人は匷い人ず、匱い人ず匱い人ず、スマヌトな人ずスマヌトな人ず団結する傟向があるこずがわかりたした。たあ、これはチャットルヌムで起こるこずです。すぐに、貎重なハッカ゜ンスキルを持たない人はチャットに長時間かかり、誰かがそれを採甚した堎合、原則に埓っおチヌムを遞択したす。 䞀郚のハッカ゜ンでは、チヌムのランダムな分散が実践されおおり、䞻催者は、ランダムなチヌムがすでに確立されおいるチヌムよりも悪い結果を瀺さないず䞻匵したす。 しかし、私の芳察によれば、やる気のある人は原則ずしおチヌムを自分自身で芋぀けたす。誰かを配垃する必芁がある堎合、倚くの人はハッカ゜ンに来たせん。



チヌムの構成に関しおは、非垞に個性的で、タスクに倧きく䟝存しおいたす。 最䜎限の実行可胜なチヌムは、デザむナヌ-フロント゚ンドたたはフロント゚ンド-バック゚ンドであるず蚀えたす。 しかし、フロント゚ンドのみで構成されるチヌムが勝った堎合、node.jsに単玔なバック゚ンドをアタッチしたり、React Nativeでモバむルアプリケヌションを䜜成した堎合も知っおいたす。 たたは単玔なレむアりトを䜜成したベッカヌからのみ。 䞀般に、すべおは非垞に個性的であり、タスクに䟝存したす。 ハッカ゜ンのチヌムを遞択する蚈画は次のずおりです。チヌムを線成するか、フロント゚ンドバック゚ンドデザむナヌのようなチヌムに参加するこずを蚈画したした私は自分自身です。 そしお、すぐに圌はpythonバック゚ンドず私たちに参加する招埅を受け入れたデザむナヌずチャットを始めたした。 少し埌に、ビゞネスアナリストの少女が参加したした。圌女はすでにハッカ゜ンで優勝した経隓があり、これが圌女の参加の問題を決定したした。 短い䌚議の埌、幻想的な4ずの類掚でU4URBAN 4、郜垂4を呌び出すこずにしたした。 そしお、圌らは私たちの電報チャンネルに察応する写真を茉せさえしたした。



4.タスクの遞択。 私が蚀ったように、競争䞊の優䜍性を持っおいる必芁があり、ハッカ゜ンのタスクはこれに基づいお遞択されたす。 これから進んで、 タスクのリストを芋お、その耇雑さを評䟡しお、DPiIRの革新的な䌁業のカタログずEFKOのチャットボットの2぀のタスクを決めたした。 Institute for Industrial and Industrial Developmentのタスクはバック゚ンダヌが遞択し、EFKOのタスクは私が遞択したした。 node.jsおよびDialogFlowでチャットボットを䜜成した経隓がありたす。 EFKOタスクにもMLが関係しおいたしたが、私はMLでそれほど倧きな経隓はありたせん。 そしお、問題の状況に応じお、MLではほずんど解決されないように思えたした。 この感芚は、䞻催者がEFCOデヌタセットを瀺したアヌバンテックチャレンゞ䌚議に行ったずきに匷化されたした。EFCOデヌタセットには、さたざたな角床から撮圱された補品レむアりトの写真が玄100枚、レむアりト゚ラヌが玄20クラスありたした。 同時に、タスクの顧客は、分類成功率90を望んでいたした。 その結果、私はMLなしで゜リュヌションのプレれンテヌションを準備し、バック゚ンダヌはカタログに埓っおプレれンテヌションを準備し、䞀緒にプレれンテヌションを完成させお、それらをUrban Tech Challengeに送りたした。 すでにこの段階で、各参加者の意欲ず貢献床が明らかになりたした。 私たちのデザむナヌは、議論に参加せず、遅く答え、最埌の瞬間のプレれンテヌションで自分自身に関する情報を蚘入したした。䞀般的な疑問が生じたした。



その結果、私たちは建蚭蚭蚈局のタスクを通過したしたが、EFKOを通過しなかったこずにたったく動揺したせんでした。



5.ハッカ゜ンの準備。 私たちがハッカ゜ンに行ったこずをようやく知ったずき、私たちはワヌクピヌスの準備を始めたした。 そしお、ここでは、ハッカ゜ンの開始の1週間前にコヌドの䜜成を開始するこずをお勧めしたせん。 最䜎限、ボむラヌプレヌトを甚意しおおく必芁がありたす。これにより、ツヌルを調敎する必芁なく、ハッカ゜ンで初めお詊すこずにしたあらゆる皮類のバグにぶ぀かるこずなく、すぐに䜜業を開始できたす。 私はハッカ゜ンに来おプロゞェクトアセンブリのセットアップに2日間を費やした釣り人に぀いおの話を知っおいるので、すべおを事前に準備する必芁がありたす。 私たちは次のように職務を分配するこずになっおいたすバッカヌはむンタヌネットをスキャンしおデヌタベヌスに収集されたすべおの情報を眮くクロヌラヌを䜜成し、node.jsでAPIを䜜成したす。 これに関しお、私はexpress.jsで事前にサヌバヌを準備し、反応でフロント゚ンドの準備を行いたした。 私はCRAを䜿甚せず、垞に自分甚にWebpackをカスタマむズし、これがどのようなリスクを䌎う可胜性があるかをよく知っおいたす釣り人の話を思い出しおください。 この時点で、私が䜕を課すかに぀いおのアむデアを埗るために、むンタヌフェヌスのブランクたたは少なくずもモックアップをデザむナヌに芁求したした。 理論的には、圌も圌の準備を行い、私たちず調敎する必芁がありたすが、私は答えを受け取りたせんでした。 その結果、叀いプロゞェクトの1぀からデザむンを借りたした。 そしお、このプロゞェクトのすべおのスタむルがすでに曞かれおいるため、さらに速くなり始めたした。 したがっお、結論デザむナヌはチヌムで垞に必芁ずされるわけではありたせん。 これらの開発により、ハッカ゜ンに来たした。



6.ハッカ゜ンに取り組みたす。 私は最初、私のチヌムがCDPのハッカ゜ンのオヌプニングでのみラむブを芋た。 私たちは䌚い、解決策ずタスクの䜜業段階に぀いお議論したした。 そしお、開店埌は10月の赀たでバスに乗らなければなりたせんでしたが、9時たでに家に来るこずに同意したので、家に垰っお寝たした。 なんで 䞻催者は、どうやら参加者を最倧限に絞りたいず思っおいたので、たさにそのようなスケゞュヌルを敎えたした。 しかし、私の経隓では、通垞、1晩寝なくおもコヌディングできたす。 2番目に぀いおは、よくわかりたせん。 ハッカ゜ンはマラ゜ンです。自分の匷さを適切に蚈算しお蚈画する必芁がありたす。 さらに、空癜がありたした。







したがっお、寝た埌、9.00に私たちはDewocracyの6階に座っおいたした。 それから私たちのデザむナヌは、ラップトップを持っおいないこず、そしお自宅で仕事をし、電話でコミュニケヌションを取るこずを思いがけず発衚したした。 これが最埌のストロヌでした。 チヌムの名前は倉曎したせんでしたが、4から3に倉わりたした。 繰り返したすが、これは私たちにずっお倧きな打撃にはなりたせんでした。私はすでに叀いプロゞェクトのデザむンを手に入れたした。 䞀般に、最初はすべおが順調に蚈画どおりに進みたした。 革新的な䌁業のデヌタセットを䞻催者からデヌタベヌスにアップロヌドしたしたneo4jを䜿甚するこずにしたした。 私は組版を始め、node.jsを採甚し、その埌䞍発が起こりたした。 以前neo4jで䜜業したこずはありたせんでしたが、最初にこのデヌタベヌスの動䜜するドラむバヌを探しおから、ク゚リがどのように曞かれおいるのかを芋぀けたした。そしお、このデヌタベヌスがノヌドオブゞェクトずその゚ッゞの配列の圢で゚ンティティを返すこずに驚きたした ぀たり 単䞀の組織オブゞェクトではなく、TINずその䞊のすべおのデヌタで組織を芁求するず、この組織ずそれらの関係に関するデヌタを含むオブゞェクトの長い配列を返したした。 配列党䜓を暪断するマッパヌを䜜成し、組織内のすべおのオブゞェクトを1぀のオブゞェクトに接着したした。 しかし、戊いで、8000の組織のベヌスを照䌚するず、20〜30秒ほど極端に遅くなりたした。 最適化に぀いお考えたした...そしお、時間内に停止しおMongoDBに移動したした。玄30分かかりたした。 neo4jでは合蚈で玄5時間が倱われたした。



芚えおいない、あなたが粟通しおいないハッカ゜ン技術を決しおずらないでください、驚きがあるかもしれたせん。 しかし、䞀般的に、この倱敗を陀いお、すべおは蚈画通りに進みたした。 そしお、すでに12月9日の朝、完党に機胜するアプリケヌションがありたした。 残りの時間は、远加機胜を远加する予定でした。 将来的にはすべおが比范的スムヌズに進みたしたが、バック゚ンドには、怜玢゚ンゞンでのクロヌラヌの犁止、特定の䌁業ごずに怜玢結果の最初の堎所に来た合法的なアグリゲヌタヌのスパムに関する問題が山積しおいたした。 しかし、これに぀いおは、圌はもっずよく蚀うでしょう。 私が台無しにした最初の远加機胜は、フルネヌムによる怜玢です CEO VKontakte。 数時間かかりたした。



そのため、アプリケヌションの䌚瀟のペヌゞには、れネラルディレクタヌのava、圌のVKペヌゞぞのリンク、およびその他のデヌタが衚瀺されおいたした。 それは私たちに勝利を保蚌しなかったかもしれたせんが、それはケヌキの良いチェリヌでした。 それから、分析をたずめたかった。 しかし、オプションの長い怜玢の埌UIには倚くのニュアンスがありたした、圌は経枈掻動コヌドによる組織の最も単玔な集玄に萜ち着きたした。 すでに倕方、最埌の数時間で、私は革新的な補品を衚瀺するための空癜を䜜成しおいたしたアプリケヌションのセクション「補品ずサヌビス」が想定されおいたす。 同時に、ベヌスは飛躍的に膚らみ、クロヌラヌは機胜し続け、バック゚ンドは革新的なテキストず非革新的なテキストを区別するためにNLPを実隓したした。 しかし、もう最終プレれンテヌションの時間でした。



7.プレれンテヌション。 私自身の経隓から、プレれンテヌションの3〜4時間前にプレれンテヌションの準備に切り替える必芁があるず蚀えたす。 特にビデオがその䞭にあるず想定される堎合、それを撮圱および線集するには倚くの時間がかかりたす。 ビデオがあるはずだった。 そしお、これに携わった特別な人がいお、他の倚くの組織的な問題も解決したした。 この点で、最埌の瞬間たで、私たちはコヌディングに気を取られたせんでした。



8.ピッチ。 プレれンテヌションず決勝が別の平日月曜日に行われるのは奜きではありたせんでした。 ここでは、ほずんどの堎合、䞻催者は参加者の最倧数を絞る方針を継続したした。 䌑みを取る぀もりはなかったので、ファむナルのみに行きたかったのですが、残りのチヌムは週末を過ごしたした。 しかし、ハッカ゜ンぞの感情的な没入感はすでに非垞に高かったので、朝の8時にチヌムハッカ゜ンチヌムではなく䜜業䞭のチャットに曞きたした。 私たちの仕事は玔粋な科孊者の倚くの日付であるこずが刀明し、これは問題を解決するアプロヌチに倧きく圱響したした。 倚くの人は優れたDSを持っおいたしたが、誰も実甚的なプロトタむプを持っおいなかったので、倚くは怜玢゚ンゞンでクロヌラヌの犁止を回避できたせんでした。 プロトタむプを実際に䜿甚できるのは私たちだけです。 そしお、タスクを解決する方法を知っおいたした。 最終的に、私たちはトラックで優勝したしたが、最も競争力の䜎いタスクを遞んだこずは非垞に幞運でした。 他のトラックのピッチを芋るず、そこにはチャンスがないこずに気づきたした。 たた、審査員ず非垞に幞運だったず蚀いたいです、圌らは现心の泚意を払っおコヌドをチェックしたした。 そしお、レビュヌによるず、これはすべおのトラックで発生したわけではありたせん。



9.最終。 コヌド審査のために審査員に䜕床か呌ばれた埌、私たちは最終的にすべおの問題を解決したず思い、バヌガヌキングで倕食に行きたした。 そこで、䞻催者から再床電話があり、急いで泚文をたずめお戻っおきたした。



䞻催者はどの郚屋に入るかを瀺し、そこに行くず、優勝チヌムのための人前で話すトレヌニングに参加したした。 ステヌゞで挔じるこずになっおいた男たちは十分に充電され、誰もが本圓のショヌマンずしお出おきたした。



そしお、最終的に、他のトラックの最匷チヌムを背景に、私たちは青ざめたように芋えたした。州の顧客の指名での勝利は、チヌムを䞍動産技術トラックから圓然離れたした。 トラックでの勝利に貢献した重芁な芁因は、既補のブランクが入手可胜だったため、プロトタむプをすばやく䜜成できるこず、プロトタむプに「熱意」が存圚するこず゜ヌシャルネットワヌクのれネラルディレクタヌを怜玢するこず、およびバックベンダヌのNLPスキルだず思いたす。審査員にも非垞に興味がある人。







そしお、結論ずしお、私たちをサポヌトしおくれたすべおの人々、私たちのトラックの審査員であるEvgeny Evgrafievハッカ゜ンで解決したタスクの䜜者、そしおもちろん、ハッカ゜ンオヌガナむザヌに感謝したす。 これはおそらく私が参加したすべおの䞭で最倧か぀最もクヌルなハッカ゜ンであり、そのような高いブランドなどを維持するこずを人々に願うだけです



All Articles