ล่าสุดเรา
วันเปิดงานจะจัดขึ้นที่สำนักงาน JetBrains ใน Times Business Center ซึ่งเป็นที่ที่นักศึกษาปริญญาโทของเราศึกษาอยู่ เริ่มเวลา 17 น. คุณสามารถค้นหารายละเอียดทั้งหมดและลงทะเบียนเข้าร่วมงานได้บนเว็บไซต์
องค์ประกอบหลักอย่างหนึ่งของโปรแกรมคือการฝึกฝน นักเรียนมีกิจกรรมมากมาย เช่น การบ้านรายสัปดาห์ โครงการภาคการศึกษา และงานแฮ็กกาธอน ด้วยการซึมซับวิธีวิทยาและเทคโนโลยีการพัฒนาสมัยใหม่อย่างสมบูรณ์ในระหว่างการศึกษา ผู้สำเร็จการศึกษาสามารถบูรณาการเข้ากับกระบวนการทำงานของบริษัทไอทีขนาดใหญ่ได้อย่างรวดเร็ว
ในโพสต์นี้ เราต้องการพูดคุยในรายละเอียดเพิ่มเติมเกี่ยวกับ DevDays hackathons ซึ่งจะจัดขึ้นทุกๆ หกเดือน กฎง่ายๆ: ทีมละ 3-4 คนมารวมตัวกันและเป็นเวลาสามวันให้นักเรียนนำแนวคิดของตนเองมาสู่ความเป็นจริง อะไรจะเกิดขึ้นจากสิ่งนี้? อ่านเรื่องราวส่วนแรกเกี่ยวกับโครงการแฮ็กกาธอนของภาคการศึกษานี้จากตัวนักศึกษาเอง :)
ไดอารี่พร้อมคำแนะนำภาพยนตร์
ผู้เขียนความคิด
อีวาน อิลชุค
โครงสร้างคำสั่ง
Ivan Ilchuk – การแยกวิเคราะห์เนื้อเรื่องของภาพยนตร์ เซิร์ฟเวอร์
วลาดิสลาฟ โคราบลินอฟ – การพัฒนาแบบจำลองเพื่อเปรียบเทียบความใกล้เคียงของบันทึกประจำวันกับเนื้อเรื่องของภาพยนตร์
มิทรี วัลชุค – UI
นิกิตา วิโนคูรอฟ – UI, การออกแบบ
เป้าหมายของโครงการของเราคือการเขียนแอปพลิเคชันเดสก์ท็อป - ไดอารี่ที่จะแนะนำภาพยนตร์ให้กับผู้ใช้ตามรายการในนั้น
ความคิดนี้เกิดขึ้นกับฉันตอนที่ฉันกำลังเดินทางไปมหาวิทยาลัยและคิดถึงปัญหาของตัวเอง “ไม่ว่าคนๆ หนึ่งจะเผชิญกับปัญหาอะไรก็ตาม นักเขียนคลาสสิกบางคนก็เขียนเกี่ยวกับเรื่องนี้ไปแล้ว” ฉันคิดว่า “และตั้งแต่มีคนเขียนมัน ก็หมายความว่ามีคนถ่ายมันไปแล้ว” ดังนั้นความปรารถนาที่จะชมภาพยนตร์เกี่ยวกับบุคคลที่มีความทรมานทางจิตแบบเดียวกันจึงเกิดขึ้นตามธรรมชาติ
แน่นอนว่ามีไดอารี่และบริการแนะนำแยกต่างหากมากมาย (แต่โดยปกติแล้วคำแนะนำจะขึ้นอยู่กับสิ่งที่บุคคลนั้นเคยชอบ) โดยหลักการแล้ว โปรเจ็กต์นี้มีบางอย่างที่เหมือนกันกับการค้นหาภาพยนตร์ตามประเด็นสำคัญ แต่ก่อนอื่นเลย แอปพลิเคชันของเรามีฟังก์ชันการทำงานของไดอารี่
เราใช้สิ่งนี้อย่างไร? เมื่อคุณกดปุ่มวิเศษ ไดอารี่จะส่งรายการไปยังเซิร์ฟเวอร์ โดยที่ภาพยนตร์จะถูกเลือกตามคำอธิบายที่นำมาจากวิกิพีเดีย ส่วนหน้าของเราถูกสร้างขึ้นใน Electron (เราใช้ไม่ใช่เว็บไซต์ เนื่องจากในตอนแรกเราตัดสินใจที่จะจัดเก็บข้อมูลผู้ใช้ไม่ได้อยู่บนเซิร์ฟเวอร์ แต่อยู่ในเครื่องคอมพิวเตอร์) และเซิร์ฟเวอร์และระบบการแนะนำนั้นถูกสร้างขึ้นใน Python: TFs เป็น ได้มาจากคำอธิบาย -IDF เวกเตอร์ที่เปรียบเทียบความใกล้ชิดกับเวกเตอร์รายการไดอารี่
สมาชิกในทีมคนหนึ่งทำงานกับโมเดลนี้เท่านั้น ส่วนอีกคนหนึ่งทำงานบนส่วนหน้าทั้งหมด (เริ่มแรกร่วมกับสมาชิกคนที่สาม ซึ่งต่อมาเปลี่ยนมาทดสอบ) ฉันมีส่วนร่วมในการแยกวิเคราะห์โครงเรื่องภาพยนตร์จากวิกิพีเดียและเซิร์ฟเวอร์
เราเข้าใกล้ผลลัพธ์ทีละขั้นตอนโดยเอาชนะปัญหาหลายประการโดยเริ่มจากความจริงที่ว่าในตอนแรกโมเดลนั้นต้องการ RAM จำนวนมากซึ่งลงท้ายด้วยความยากลำบากในการถ่ายโอนข้อมูลไปยังเซิร์ฟเวอร์
ตอนนี้ หากต้องการหาภาพยนตร์สำหรับช่วงเย็น คุณไม่จำเป็นต้องออกแรงมากนัก ผลลัพธ์ของการทำงานสามวันของเราคือแอปพลิเคชันเดสก์ท็อปและเซิร์ฟเวอร์ ซึ่งผู้ใช้เข้าถึงผ่าน https ซึ่งได้รับการตอบรับจากภาพยนตร์ 5 เรื่องที่คัดสรรมาด้วย คำอธิบายสั้น ๆ และโปสเตอร์
ความประทับใจของฉันต่อโปรเจ็กต์นี้เป็นไปในทางบวกมาก งานนี้ดึงดูดใจตั้งแต่เช้าตรู่จนถึงดึกดื่น และแอปพลิเคชันที่เป็นผลออกมาก็ให้ผลลัพธ์ที่ตลกสุดๆ ในรูปแบบ "Sleepless Night" เป็นระยะๆ สำหรับบันทึกไดอารี่เกี่ยวกับการบ้านที่มหาวิทยาลัยหรือภาพยนตร์ เกี่ยวกับวันแรกของการเรียนสำหรับเรื่องราวเกี่ยวกับวันแรกที่ภาควิชา
ลิงค์ที่เกี่ยวข้อง โปรแกรมติดตั้ง ฯลฯ สามารถพบได้
เครื่องกำเนิดเส้นทาง
ผู้เขียนความคิด
อาร์เตมีวา อิรินา
โครงสร้างคำสั่ง
Artemyeva Irina – หัวหน้าทีม, วงหลัก
กอร์เดวา ลุดมิลา – ดนตรี
พลาโตนอฟ วลาดิสลาฟ – เส้นทาง
ฉันชอบเดินไปรอบๆ เมืองมาก มองดูอาคาร ผู้คน คิดถึงประวัติศาสตร์ แต่ถึงแม้จะเปลี่ยนสถานที่อยู่อาศัยไม่ช้าก็เร็วฉันก็ต้องเผชิญกับปัญหาในการเลือกเส้นทาง: ฉันได้ทำทุกอย่างที่คิดได้สำเร็จแล้ว นี่คือที่มาของแนวคิดในการสร้างเส้นทางโดยอัตโนมัติ: คุณระบุจุดเริ่มต้นและความยาวของเส้นทาง จากนั้นโปรแกรมจะให้ตัวเลือกแก่คุณ การเดินอาจใช้เวลานาน ดังนั้นการพัฒนาแนวคิดเชิงตรรกะจึงดูเหมือนเป็นการเพิ่มความสามารถในการระบุจุดกึ่งกลางสำหรับการ "แวะพัก" ซึ่งคุณสามารถรับประทานอาหารว่างและพักผ่อนได้ การพัฒนาอีกสาขาหนึ่งคือดนตรี การเดินฟังเพลงเป็นเรื่องสนุกกว่าเสมอ ดังนั้นจึงเป็นการดีที่จะเพิ่มความสามารถในการเลือกเพลย์ลิสต์ตามเส้นทางที่สร้างขึ้น
ไม่สามารถค้นหาวิธีแก้ไขปัญหาดังกล่าวในแอปพลิเคชันที่มีอยู่ได้ อะนาล็อกที่ใกล้เคียงที่สุดคือผู้วางแผนเส้นทาง: Google Maps, 2GIS เป็นต้น
การมีแอปพลิเคชันดังกล่าวบนโทรศัพท์จะสะดวกที่สุด ดังนั้นการใช้ Telegram จึงเป็นตัวเลือกที่ดี ช่วยให้คุณสามารถแสดงแผนที่และเล่นเพลงได้ และคุณสามารถควบคุมทั้งหมดนี้ได้ด้วยการเขียนบอท งานหลักเกี่ยวกับแผนที่เสร็จสิ้นโดยใช้ Google Map API Python ทำให้การรวมเทคโนโลยีทั้งสองเข้าด้วยกันเป็นเรื่องง่าย
ในทีมมีสามคน ดังนั้นงานจึงแบ่งออกเป็นสองงานย่อยที่ไม่ทับซ้อนกัน (การทำงานกับแผนที่และการทำงานกับดนตรี) เพื่อให้คนเหล่านั้นสามารถทำงานได้อย่างอิสระ และฉันก็รวมเอาผลลัพธ์เข้าด้วยกัน
พวกเราไม่มีใครเคยทำงานกับ Google Map API หรือบอต Telegram ที่เป็นลายลักษณ์อักษร ดังนั้นปัญหาหลักคือระยะเวลาที่จัดสรรเพื่อดำเนินโครงการ: การทำความเข้าใจบางสิ่งบางอย่างต้องใช้เวลามากกว่าการทำสิ่งที่คุณรู้จักดีเสมอ นอกจากนี้ยังเป็นเรื่องยากที่จะเลือก Telegram bot API เนื่องจากมีการบล็อก จึงใช้งานไม่ได้ทั้งหมด และฉันต้องดิ้นรนเพื่อตั้งค่าทุกอย่าง
เป็นเรื่องที่ควรกล่าวถึงแยกกันว่าจะแก้ไขปัญหาการสร้างเส้นทางได้อย่างไร การสร้างเส้นทางระหว่างสองสถานที่เป็นเรื่องง่าย แต่คุณสามารถเสนออะไรให้ผู้ใช้ได้บ้าง หากทราบเพียงความยาวของเส้นทางเท่านั้น ให้ผู้ใช้ต้องการเดิน 10 กิโลเมตร มีการเลือกจุดในทิศทางที่กำหนดโดยระยะทางเป็นเส้นตรงคือ 10 กิโลเมตรหลังจากนั้นจะมีการสร้างเส้นทางไปยังจุดนี้ตามถนนจริง มีแนวโน้มว่าจะไม่ตรงจึงย่อให้เหลือ 10 กิโลเมตรที่กำหนด มีตัวเลือกมากมายสำหรับเส้นทางดังกล่าว - เรามีเครื่องมือสร้างเส้นทางจริง!
ในตอนแรก ฉันต้องการแบ่งแผนที่ออกเป็นพื้นที่ตามพื้นที่สีเขียว ได้แก่ เขื่อน สนามหญ้า ถนน เพื่อให้ได้เส้นทางที่น่าเดินเล่นที่สุด และยังสร้างเสียงเพลงตามพื้นที่เหล่านี้ด้วย แต่การทำเช่นนี้โดยใช้ Google Map API กลับกลายเป็นเรื่องยาก (เราไม่มีเวลาแก้ปัญหานี้) อย่างไรก็ตาม สามารถดำเนินการสร้างเส้นทางผ่านสถานที่เฉพาะประเภทได้ (ร้านค้า สวนสาธารณะ ห้องสมุด) หากเส้นทางผ่านสถานที่ที่กำหนดทั้งหมดแล้ว แต่ยังไม่ได้เดินทางตามระยะทางที่ต้องการก็แล้วเสร็จถึง ระยะทางที่ผู้ใช้กำหนดในทิศทางสุ่ม Google Map API ยังช่วยให้คุณคำนวณเวลาเดินทางโดยประมาณ ซึ่งช่วยให้คุณเลือกเพลย์ลิสต์สำหรับการเดินทั้งหมดได้อย่างแม่นยำ
เป็นผลให้
ปัญหาหลักในการทำงานกับเพลงคือการไม่รู้ว่าจะรับไฟล์ MP3 จากที่ไหน โดยที่ผู้ใช้ไม่จำเป็นต้องมีบัญชีในบริการใดๆ มีการตัดสินใจที่จะขอเพลงจากผู้ใช้ (โหมด UserMusic) สิ่งนี้ทำให้เกิดปัญหาใหม่: ไม่ใช่ทุกคนที่จะดาวน์โหลดแทร็กได้ ทางออกหนึ่งคือการสร้างพื้นที่เก็บข้อมูลที่มีเพลงจากผู้ใช้ (โหมด BotMusic) - จากนั้นคุณสามารถสร้างเพลงโดยไม่คำนึงถึงบริการต่างๆ
แม้ว่าจะไม่สมบูรณ์แบบ แต่เราก็สามารถทำงานสำเร็จได้: ในที่สุดเราก็ได้แอปพลิเคชันที่ฉันต้องการใช้ โดยทั่วไปแล้ว ถือว่าเยี่ยมมาก เมื่อสามวันก่อนคุณมีเพียงความคิดและไม่ได้คิดแม้แต่นิดเดียวว่าจะนำไปใช้อย่างไร แต่ตอนนี้มีวิธีแก้ปัญหาที่ใช้งานได้แล้ว นี่เป็นเวลา XNUMX วันที่สำคัญมากสำหรับฉัน ฉันไม่กลัวที่จะทำอะไรสักอย่างที่ไม่มีความรู้เพียงพอที่จะนำไปใช้อีกต่อไป การเป็นหัวหน้าทีมนั้นน่าสนใจมาก และฉันได้รู้จักคนที่ยอดเยี่ยมที่เข้าร่วมทีมของฉัน ดีกว่า!
ประชาธิปไตยเหลว
ผู้เขียนความคิด
สตานิสลาฟ ไซเชฟ
โครงสร้างคำสั่ง
Stanislav Sychev – หัวหน้าทีม, ฐานข้อมูล
Nikolay Izyumov – อินเทอร์เฟซบอท
แอนตัน ไรบูเชฟ – แบ็กเอนด์
ภายในกลุ่มต่างๆ มักมีความจำเป็นต้องตัดสินใจหรือลงคะแนนเสียง โดยปกติแล้วในกรณีเช่นนี้พวกเขาจะหันไปใช้
เพื่อแก้ไขปัญหาของทั้งสองระบบ Brian Ford ได้เสนอแนวคิดนี้
ตัวอย่างของการใช้ประชาธิปไตยเหลวมีอยู่ในการเมือง และเราต้องการนำแนวคิดที่คล้ายกันไปใช้ในชีวิตประจำวันในกลุ่มคนทุกประเภท ในงานแฮ็กกาธอน DevDays ครั้งถัดไป เราตัดสินใจเขียนบอท Telegram สำหรับการลงคะแนนตามหลักการของประชาธิปไตยแบบเหลว ในเวลาเดียวกัน ฉันต้องการหลีกเลี่ยงปัญหาทั่วไปกับบอทดังกล่าว - การปิดกั้นการสนทนาทั่วไปด้วยข้อความจากบอท วิธีแก้ไขคือนำฟังก์ชันการทำงานต่างๆ มาใช้ในการสนทนาส่วนตัวให้มากที่สุดเท่าที่จะเป็นไปได้
ในการสร้างบอทนี้เราใช้
แน่นอนว่าสามวันเป็นเวลาสั้นๆ ดังนั้นในระหว่างงานแฮ็กกาธอน เราได้นำแนวคิดนี้ไปใช้ในระดับต้นแบบ ด้วยเหตุนี้ เราจึงสร้างบอทที่เขียนเฉพาะข้อมูลเกี่ยวกับการเปิดการลงคะแนนและผลลัพธ์ที่ไม่ระบุชื่อลงในแชททั่วไปเท่านั้น ความสามารถในการลงคะแนนและสร้างแบบสำรวจจะดำเนินการผ่านการโต้ตอบส่วนตัวกับบอท หากต้องการลงคะแนน ให้ป้อนคำสั่งที่แสดงรายการประเด็นที่ต้องดำเนินการโดยตรง ในการติดต่อสื่อสารส่วนตัว คุณสามารถดูรายชื่อผู้ร่วมประชุมและการโหวตครั้งก่อนๆ ของพวกเขา และยังให้คะแนนพวกเขาในหัวข้อใดหัวข้อหนึ่งด้วย
การทำงานในโครงการนี้น่าสนใจมากเราอยู่ที่มหาวิทยาลัยจนถึงเที่ยงคืนเราคิดว่านี่เป็นวิธีที่ดีในการหยุดพักจากการเรียนแม้ว่าจะเหนื่อยมากก็ตาม มันเป็นประสบการณ์ที่น่าพึงพอใจที่ได้ทำงานในทีมที่ใกล้ชิดกัน
ป.ล. ขณะนี้ได้เปิดรับสมัครหลักสูตรปริญญาโทสำหรับปีการศึกษาหน้าแล้ว
ที่มา: www.habr.com