في الآونة الأخيرة نحن
سيتم عقد اليوم المفتوح في مكتب JetBrains في مركز تايمز للأعمال، حيث يدرس طلاب الماجستير لدينا. يبدأ الساعة 17:00. يمكنك معرفة كافة التفاصيل والتسجيل لهذا الحدث على الموقع
الممارسة هي أحد المكونات الرئيسية للبرنامج. لدى الطلاب الكثير منها: الواجبات المنزلية الأسبوعية، ومشاريع الفصل الدراسي، ومسابقات الهاكاثون. بفضل الانغماس الكامل في منهجيات وتقنيات التطوير الحديثة أثناء دراستهم، يندمج الخريجون بسرعة في عمليات عمل شركات تكنولوجيا المعلومات الكبيرة.
في هذا المنشور، نريد التحدث بمزيد من التفاصيل حول DevDays hackathons، والتي تقام كل ستة أشهر. القواعد بسيطة: تتجمع فرق مكونة من 3-4 أشخاص ويقوم الطلاب لمدة ثلاثة أيام بإحياء أفكارهم الخاصة. ماذا يمكن أن يأتي من هذا؟ اقرأ الجزء الأول من قصص مشاريع الهاكاثون لهذا الفصل من الطلاب أنفسهم :)
يوميات مع توصيات الفيلم
مؤلف الفكرة
إيفان إيلشوك
هيكل القيادة
إيفان إيلشوك - تحليل مؤامرة الفيلم، الخادم
فلاديسلاف كورابلينوف – تطوير نماذج لمقارنة القرب من إدخال اليوميات ومؤامرة الفيلم
ديمتري فالشوك – واجهة المستخدم
نيكيتا فينوكوروف – واجهة المستخدم والتصميم
كان الهدف من مشروعنا هو كتابة تطبيق سطح المكتب - وهو يوميات توصي المستخدم بالأفلام بناءً على الإدخالات الموجودة فيه.
خطرت لي هذه الفكرة عندما كنت في طريقي إلى الجامعة وأفكر في مشاكلي. فكرت: "مهما كانت المشكلة التي يواجهها الشخص، فقد كتب عنها كاتب كلاسيكي بالفعل". "وبما أن شخصًا ما كتبه، فهذا يعني أن شخصًا ما قد قام بتصويره بالفعل." لذلك ظهرت الرغبة في مشاهدة فيلم عن شخص يعاني من نفس العذاب النفسي بشكل طبيعي.
من الواضح أن هناك مجموعة واسعة من المذكرات المنفصلة وخدمات التوصية المنفصلة (ولكن عادةً ما تعتمد التوصيات على ما أحبه الشخص سابقًا). من حيث المبدأ، يحتوي هذا المشروع على شيء مشترك مع البحث عن فيلم حسب النقاط الرئيسية، ولكن لا يزال تطبيقنا يوفر وظيفة اليوميات.
كيف قمنا بتنفيذ هذا؟ عند الضغط على الزر السحري، ترسل اليوميات إدخالاً إلى الخادم، حيث يتم اختيار الفيلم بناءً على الوصف المأخوذ من ويكيبيديا. تم إنشاء الواجهة الأمامية لدينا بلغة Electron (نحن نستخدمها، وليس موقع الويب، لأننا قررنا في البداية تخزين بيانات المستخدم ليس على الخادم، ولكن محليًا على الكمبيوتر)، وتم إنشاء الخادم ونظام التوصية نفسه بلغة Python: كانت TFs تم الحصول عليها من الأوصاف - متجهات جيش الدفاع الإسرائيلي التي تمت مقارنتها بقربها من متجه إدخال اليوميات.
عمل أحد أعضاء الفريق فقط على النموذج، بينما عمل الآخر بالكامل على الواجهة الأمامية (في البداية مع عضو ثالث، والذي تحول لاحقًا إلى الاختبار). لقد كنت منخرطًا في تحليل مؤامرات الأفلام من ويكيبيديا والخادم.
خطوة بخطوة، اقتربنا من النتيجة، والتغلب على عدد من المشاكل، بدءا من حقيقة أن النموذج يتطلب في البداية الكثير من ذاكرة الوصول العشوائي، وتنتهي بصعوبة نقل البيانات إلى الخادم.
الآن، للعثور على فيلم للمساء، لا تحتاج إلى الكثير من الجهد: نتيجة عملنا لمدة ثلاثة أيام هي تطبيق سطح مكتب وخادم، يصل إليه المستخدم عبر https، ويتلقى ردًا على ذلك مجموعة مختارة من 5 أفلام بها وصف موجز وملصق.
انطباعاتي عن المشروع إيجابية للغاية: كان العمل آسرًا من الصباح الباكر حتى وقت متأخر من الليل، وينتج التطبيق الناتج بشكل دوري نتائج مضحكة للغاية بأسلوب "ليلة بلا نوم" لتدوين يوميات عن الواجب المنزلي في الجامعة أو فيلم عن أول يوم دراسي لقصة عن أول يوم في القسم.
يمكن العثور على الروابط ذات الصلة والمثبتات وما إلى ذلك
مولد الطريق
مؤلف الفكرة
أرتيمييفا إيرينا
هيكل القيادة
أرتيمييفا إيرينا – قائدة الفريق، الحلقة الرئيسية
غورديفا ليودميلا – موسيقى
بلاتونوف فلاديسلاف – الطرق
أحب حقًا التجول في المدينة: النظر إلى المباني والناس والتفكير في التاريخ. ولكن، حتى عند تغيير مكان إقامتي، أواجه عاجلاً أم آجلاً مشكلة اختيار الطريق: لقد أكملت كل ما يمكنني التفكير فيه. هذه هي الطريقة التي جاءت بها فكرة إنشاء المسارات تلقائيًا: تحدد نقطة البداية وطول المسار، ويمنحك البرنامج خيارًا. يمكن أن تكون جولات المشي طويلة، لذا يبدو أن التطور المنطقي للفكرة هو إضافة القدرة على الإشارة إلى نقاط وسيطة من أجل "التوقف"، حيث يمكنك تناول وجبة خفيفة والراحة. فرع آخر من التطور كان الموسيقى. يعد المشي مع الموسيقى دائمًا أكثر متعة، لذا سيكون من الرائع إضافة القدرة على تحديد قائمة تشغيل بناءً على المسار الذي تم إنشاؤه.
ولم يكن من الممكن إيجاد مثل هذه الحلول بين التطبيقات الموجودة. أقرب نظائرها هي أي مخططات طريق: خرائط جوجل، 2GIS، إلخ.
من الأفضل أن يكون لديك مثل هذا التطبيق على هاتفك، لذا فإن استخدام Telegram كان خيارًا جيدًا. يتيح لك عرض الخرائط وتشغيل الموسيقى، ويمكنك التحكم في كل هذا عن طريق كتابة روبوت. تم تنفيذ العمل الرئيسي مع الخرائط باستخدام Google Map API. تسهل لغة بايثون الجمع بين التقنيتين.
كان هناك ثلاثة أشخاص في الفريق، لذلك تم تقسيم المهمة إلى مهمتين فرعيتين غير متداخلتين (العمل مع الخرائط والعمل مع الموسيقى) حتى يتمكن الرجال من العمل بشكل مستقل، وأخذت على عاتقي الجمع بين النتائج.
لم يسبق لأي منا أن عمل مع Google Map API أو كتب Telegram bots، لذا كانت المشكلة الرئيسية هي مقدار الوقت المخصص لتنفيذ المشروع: فهم شيء ما يستغرق دائمًا وقتًا أطول من القيام بشيء تعرفه جيدًا. كان من الصعب أيضًا اختيار Telegram bot API: نظرًا للحظر، لم تكن جميعها تعمل وكان علي أن أواجه صعوبة في إعداد كل شيء.
تجدر الإشارة بشكل منفصل إلى كيفية حل مشكلة إنشاء المسارات. من السهل إنشاء طريق بين موقعين، ولكن ما الذي يمكنك تقديمه للمستخدم إذا كان طول المسار معروفًا فقط؟ دع المستخدم يريد المشي مسافة 10 كيلومترات. يتم تحديد نقطة في اتجاه تعسفي، والمسافة التي تكون في خط مستقيم هي 10 كيلومترات، وبعد ذلك يتم بناء الطريق إلى هذه النقطة على طول الطرق الحقيقية. على الأغلب أنها لن تكون مستقيمة، لذا سنختصرها إلى العشرة كيلومترات المحددة. هناك الكثير من الخيارات لمثل هذه الطرق - لقد حصلنا على مولد طريق حقيقي!
في البداية، كنت أرغب في تقسيم الخريطة إلى مناطق تتوافق مع المناطق الخضراء: السدود والساحات والشوارع، من أجل الحصول على الطريق الأكثر متعة للنزهة، وكذلك إنشاء الموسيقى وفقًا لهذه المناطق. ولكن تبين أن القيام بذلك باستخدام Google Map API أمر صعب (لم يكن لدينا الوقت لحل هذه المشكلة). ومع ذلك، كان من الممكن تنفيذ إنشاء طريق من خلال أنواع محددة من المواقع (متجر، حديقة، مكتبة): إذا كان المسار يدور حول جميع الأماكن المحددة، ولكن لم يتم قطع المسافة المطلوبة بعد، فسيتم إكماله إلى المسافة المحددة من قبل المستخدم في اتجاه عشوائي. تسمح لك واجهة برمجة تطبيقات Google Map أيضًا بحساب وقت السفر المقدر، مما يساعدك على اختيار قائمة تشغيل للرحلة بأكملها بالضبط.
ونتيجة لذلك،
كانت المشكلة الرئيسية في العمل مع الموسيقى هي عدم معرفة مكان الحصول على ملفات mp3 دون الحاجة إلى أن يكون لدى المستخدم حساب على أي خدمة. تقرر طلب الموسيقى من المستخدم (وضع UserMusic). وهذا يخلق مشكلة جديدة: ليس لدى الجميع القدرة على تنزيل المقاطع الصوتية. أحد الحلول هو إنشاء مستودع يحتوي على موسيقى من المستخدمين (وضع BotMusic) - ومن خلاله يمكنك إنشاء موسيقى بغض النظر عن الخدمات.
على الرغم من أنها لم تكن مثالية، فقد أكملنا المهمة: وانتهى بنا الأمر بالحصول على تطبيق أرغب في استخدامه. بشكل عام، هذا رائع جدًا: قبل ثلاثة أيام لم تكن لديك سوى فكرة ولم تكن لديك فكرة واحدة حول كيفية تنفيذها بالضبط، ولكن الآن يوجد حل عملي. كانت هذه الأيام الثلاثة مهمة جدًا بالنسبة لي، ولم أعد خائفًا من التوصل إلى شيء ليس لدي المعرفة الكافية لتنفيذه، وكان تولي قيادة الفريق أمرًا مثيرًا للاهتمام بشكل لا يصدق، وتعرفت على الأشخاص الرائعين الذين انضموا إلى فريقي. أحسن!
الديمقراطية السائلة
مؤلف الفكرة
ستانيسلاف سيتشيف
هيكل القيادة
ستانيسلاف سيتشيف - قائد الفريق، قاعدة البيانات
نيكولاي إيزوموف – واجهة الروبوت
أنطون ريابوشيف – الواجهة الخلفية
داخل المجموعات المختلفة، غالبًا ما تكون هناك حاجة لاتخاذ قرار أو التصويت. عادة في مثل هذه الحالات يلجأون إليها
ولحل مشاكل كلا النظامين، اقترح بريان فورد هذا المفهوم
توجد أمثلة على استخدام الديمقراطية السائلة في السياسة، وأردنا تنفيذ فكرة مماثلة للاستخدام اليومي ضمن جميع أنواع المجموعات من الناس. في Hackathon DevDays التالي، قررنا كتابة روبوت Telegram للتصويت وفقًا لمبادئ الديمقراطية السائلة. في الوقت نفسه، أردت تجنب مشكلة شائعة مع مثل هذه الروبوتات - انسداد الدردشة العامة برسائل من الروبوت. الحل هو جلب أكبر قدر ممكن من الوظائف إلى محادثة شخصية.
لإنشاء هذا الروبوت استخدمنا
بالطبع، ثلاثة أيام هي فترة قصيرة، لذلك قمنا خلال الهاكاثون بتنفيذ الفكرة على مستوى النموذج الأولي. ونتيجة لذلك، قمنا بإنشاء روبوت يكتب في الدردشة العامة فقط معلومات حول فتح التصويت ونتائجه المجهولة. يتم تنفيذ القدرة على التصويت وإنشاء الاستطلاع من خلال المراسلات الشخصية مع الروبوت. للتصويت، أدخل أمرًا يعرض قائمة بالمشكلات التي تتطلب اهتمامًا مباشرًا. وفي المراسلات الشخصية يمكنك الاطلاع على قائمة المندوبين وأصواتهم السابقة وأيضا منحهم صوتك على أحد المواضيع.
كان من المثير للاهتمام العمل في المشروع، بقينا في الجامعة حتى منتصف الليل، ونعتقد أن هذه طريقة رائعة لأخذ استراحة من الدراسة، رغم أنها مرهقة للغاية. لقد كانت تجربة ممتعة العمل ضمن فريق متماسك.
ملاحظة. تم بالفعل التسجيل لبرامج الماجستير للعام الدراسي القادم
المصدر: www.habr.com