Recientemente, hemos
La jornada de puertas abiertas se llevará a cabo en la oficina de JetBrains en el Times Business Center, donde estudian nuestros estudiantes de maestría. Comienza a las 17:00. Puedes conocer todos los detalles e inscribirte al evento en la web
Uno de los componentes principales del programa es la práctica. Los estudiantes tienen mucho de eso: tareas semanales, proyectos semestrales y hackatones. Gracias a la inmersión total en metodologías y tecnologías de desarrollo modernas durante sus estudios, los graduados se integran rápidamente en los procesos de trabajo de las grandes empresas de TI.
En este post queremos hablar con más detalle sobre los hackathons DevDays, que se realizan cada seis meses. Las reglas son simples: se reúnen equipos de 3 a 4 personas y durante tres días los estudiantes dan vida a sus propias ideas. ¿Qué podría resultar de esto? Lea la primera parte de las historias sobre los proyectos del hackathon de este semestre escritas por los propios estudiantes :)
Diario con recomendaciones de películas.
Idea autor
Iván Ilchuk
Composición del equipo
Ivan Ilchuk – análisis de la trama de la película, servidor
Vladislav Korablinov – desarrollo de modelos para comparar la proximidad de una entrada de diario y la trama de una película
Dmitry Valchuk – IU
Nikita Vinokurov – interfaz de usuario, diseño
El objetivo de nuestro proyecto era escribir una aplicación de escritorio: un diario que recomendaría películas al usuario basándose en las entradas que contiene.
Esta idea se me ocurrió cuando iba camino a la universidad y pensaba en mis problemas. “Cualquiera que sea el problema al que se enfrenta una persona, algún escritor clásico ya ha escrito sobre ello”, pensé. “Y como alguien lo escribió, significa que alguien ya lo filmó”. Entonces, el deseo de ver una película sobre una persona con el mismo tormento mental apareció de forma natural.
Obviamente, existe una amplia variedad de diarios separados y servicios de recomendaciones separados (pero generalmente las recomendaciones se basan en lo que a la persona le gustó anteriormente). En principio, este proyecto tiene algo en común con la búsqueda de una película por puntos clave, pero aún así, en primer lugar, nuestra aplicación proporciona la funcionalidad de un diario.
¿Cómo implementamos esto? Cuando presionas el botón mágico, el diario envía una entrada al servidor, donde se selecciona la película según la descripción extraída de Wikipedia. Nuestra interfaz se creó en Electron (lo usamos, no el sitio web, porque inicialmente decidimos almacenar los datos del usuario no en el servidor, sino localmente en la computadora), y el servidor y el sistema de recomendación en sí se crearon en Python: los TF fueron obtenido a partir de las descripciones -vectores IDF que se compararon en cuanto a proximidad al vector de entrada del diario.
Un miembro del equipo trabajó solo en el modelo, el otro trabajó completamente en el front-end (inicialmente junto con un tercer miembro, que luego pasó a realizar pruebas). Me dediqué a analizar los argumentos de las películas de Wikipedia y del servidor.
Paso a paso nos acercamos al resultado, superando una serie de problemas, empezando por el hecho de que el modelo inicialmente requería mucha RAM, hasta la dificultad de transferir datos al servidor.
Ahora bien, para encontrar una película para la noche no hace falta mucho esfuerzo: el resultado de nuestro trabajo de tres días es una aplicación de escritorio y un servidor, al que el usuario accede a través de https, recibiendo como respuesta una selección de 5 películas con una breve descripción y un cartel.
Mis impresiones sobre el proyecto son muy positivas: el trabajo me cautivó desde primera hora de la mañana hasta altas horas de la noche, y la aplicación resultante produce periódicamente resultados extremadamente divertidos al estilo de "Sleepless Night" para una anotación en el diario sobre los deberes en la universidad o una película. sobre el primer día de clases para una historia sobre el primer día en el departamento.
Se pueden encontrar enlaces relevantes, instaladores, etc.
Generador de rutas
Idea autor
Artemyeva Irina
Composición del equipo
Artemyeva Irina – líder del equipo, circuito principal
Gordeeva Lyudmila – música
Platonov Vladislav – rutas
Me gusta mucho caminar por la ciudad: mirar edificios, gente, pensar en la historia. Pero, incluso cuando cambio de lugar de residencia, tarde o temprano me enfrento al problema de elegir una ruta: he realizado todas las que se me han ocurrido. Así surgió la idea de automatizar la generación de rutas: indicas el punto de inicio y la longitud de la ruta, y el programa te da una opción. Las caminatas pueden ser largas, por lo que un desarrollo lógico de la idea parece ser agregar la posibilidad de indicar puntos intermedios para una “parada”, donde tomar un refrigerio y descansar. Otra rama del desarrollo fue la música. Caminar con música siempre es más divertido, por lo que sería genial agregar la posibilidad de seleccionar una lista de reproducción basada en una ruta generada.
No fue posible encontrar tales soluciones entre las aplicaciones existentes. Los análogos más cercanos son los planificadores de rutas: Google Maps, 2GIS, etc.
Lo más conveniente es tener una aplicación de este tipo en el teléfono, por lo que usar Telegram fue una buena opción. Te permite mostrar mapas y reproducir música, y puedes controlar todo esto escribiendo un bot. El trabajo principal con mapas se realizó utilizando la API de Google Map. Python facilita la combinación de ambas tecnologías.
Había tres personas en el equipo, por lo que la tarea se dividió en dos subtareas que no se superponían (trabajar con mapas y trabajar con música) para que los chicos pudieran trabajar de forma independiente, y yo me encargué de combinar los resultados.
Ninguno de nosotros había trabajado nunca con la API de Google Map ni con los bots de Telegram escritos, por lo que el principal problema fue la cantidad de tiempo asignado para implementar el proyecto: comprender algo siempre lleva más tiempo que hacer algo que se conoce bien. También fue difícil elegir la API del bot de Telegram: debido al bloqueo, no todos funcionan y tuve que luchar para configurar todo.
Cabe mencionar por separado cómo se resolvió el problema de generar rutas. Es fácil construir una ruta entre dos ubicaciones, pero ¿qué se puede ofrecer al usuario si sólo se conoce la longitud de la ruta? Que el usuario quiera caminar 10 kilómetros. Se selecciona un punto en una dirección arbitraria, cuya distancia en línea recta es de 10 kilómetros, después de lo cual se construye una ruta hasta este punto a lo largo de caminos reales. Lo más probable es que no sea recto, por lo que lo acortaremos a los 10 kilómetros especificados. Hay muchas opciones para este tipo de rutas: ¡tenemos un generador de rutas real!
Inicialmente quería segmentar el mapa en áreas correspondientes a áreas verdes: terraplenes, patios, calles, para conseguir el recorrido más agradable para caminar, y también generar música de acuerdo con estas áreas. Pero resultó difícil hacer esto usando la API de Google Map (no tuvimos tiempo de resolver este problema). Sin embargo, fue posible implementar la construcción de una ruta a través de tipos específicos de lugares (tienda, parque, biblioteca): si la ruta recorre todos los lugares especificados, pero aún no se ha recorrido la distancia deseada, se completa hasta un distancia especificada por el usuario en una dirección aleatoria. La API de Google Map también te permite calcular el tiempo de viaje estimado, lo que te ayuda a elegir una lista de reproducción exactamente para toda la caminata.
Como resultado,
El principal problema al trabajar con música era no saber de dónde obtener archivos mp3 sin necesidad de que el usuario tuviera una cuenta en ningún servicio. Se decidió solicitar música al usuario (modo UserMusic). Esto crea un nuevo problema: no todo el mundo tiene la posibilidad de descargar pistas. Una solución es crear un repositorio con música de los usuarios (modo BotMusic); desde allí puede generar música independientemente de los servicios.
Aunque no fue perfecto, completamos la tarea: terminamos con una aplicación que me gustaría usar. En general, esto es genial: hace tres días solo tenías una idea y ni un solo pensamiento sobre cómo implementarla exactamente, pero ahora hay una solución que funciona. Estos fueron tres días muy importantes para mí, ya no tengo miedo de pensar en algo que no tengo suficiente conocimiento para implementar, ser líder de equipo fue increíblemente interesante y pude conocer a los maravillosos chicos que se unieron a mi equipo. ¡mejor!
Democracia Líquida
Idea autor
Stanislav Sychev
Composición del equipo
Stanislav Sychev – jefe de equipo, base de datos
Nikolay Izyumov – interfaz del robot
Anton Ryabushev – backend
Dentro de diferentes grupos, a menudo existe la necesidad de tomar una decisión o votar. Generalmente en estos casos se recurre a
Para resolver los problemas de ambos sistemas, Brian Ford propuso el concepto
En la política se encuentran ejemplos del uso de la democracia líquida, y queríamos implementar una idea similar para el uso diario en todo tipo de grupos de personas. En el próximo hackathon DevDays, decidimos escribir un bot de Telegram para votar según los principios de la democracia líquida. Al mismo tiempo, quería evitar un problema común con este tipo de bots: obstruir el chat general con mensajes del bot. La solución es incorporar la mayor cantidad de funcionalidad posible a una conversación personal.
Para crear este bot utilizamos
Por supuesto, tres días es poco tiempo, por lo que durante el hackathon implementamos la idea hasta el nivel de prototipo. Como resultado, creamos un bot que escribe en el chat general solo información sobre la apertura de la votación y sus resultados anónimos. La posibilidad de votar y crear una encuesta se implementa mediante correspondencia personal con el bot. Para votar, ingrese un comando que muestre una lista de temas que requieren atención directa. En correspondencia personal, podrás ver la lista de delegados y sus votos anteriores, y también darles tu voto sobre uno de los temas.
Fue interesante trabajar en el proyecto, nos quedamos en la universidad hasta medianoche, creemos que es una buena forma de descansar del estudio, aunque es muy agotador. Fue una experiencia agradable trabajar en un equipo muy unido.
PD. Ya están abiertas las inscripciones a los programas de máster para el próximo curso académico
Fuente: www.habr.com