Nós recentemente
O open day será realizado no escritório da JetBrains no Times Business Center, onde estudam nossos alunos de mestrado. Começa às 17:00. Você pode saber todos os detalhes e se inscrever no evento no site
Um dos principais componentes do programa é a prática. Os alunos têm muito disso: trabalhos de casa semanais, projetos semestrais e hackathons. Graças à imersão total em modernas metodologias e tecnologias de desenvolvimento durante seus estudos, os graduados se integram rapidamente aos processos de trabalho de grandes empresas de TI.
Neste post queremos falar mais detalhadamente sobre os hackathons DevDays, que acontecem semestralmente. As regras são simples: equipes de 3 a 4 pessoas se reúnem e durante três dias os alunos dão vida às suas próprias ideias. O que pode resultar disso? Leia a primeira parte das histórias sobre os projetos de hackathon deste semestre contadas pelos próprios alunos :)
Diário com recomendações de filmes
O autor da ideia
Ivan Ilchuk
Alinhar
Ivan Ilchuk – análise do enredo do filme, servidor
Vladislav Korablinov – desenvolvimento de modelos para comparar a proximidade de uma entrada de diário e o enredo de um filme
Dmitry Valchuk – IU
Nikita Vinokurov – UI, design
O objetivo do nosso projeto era escrever um aplicativo de desktop - um diário que recomendasse filmes ao usuário com base nas entradas nele contidas.
Essa ideia me ocorreu quando eu estava indo para a universidade e pensando nos meus problemas. “Qualquer problema que uma pessoa enfrente, algum escritor clássico já escreveu sobre isso”, pensei. “E como alguém escreveu, significa que alguém já filmou.” Assim, a vontade de assistir a um filme sobre uma pessoa com o mesmo tormento mental apareceu naturalmente.
Obviamente, há uma grande variedade de diários separados e serviços de recomendação separados (mas geralmente as recomendações são baseadas no que a pessoa gostou anteriormente). Em princípio, este projeto tem algo em comum com a busca de um filme por pontos-chave, mas ainda assim, antes de mais nada, nosso aplicativo oferece a funcionalidade de um diário.
Como implementamos isso? Ao pressionar o botão mágico, o diário envia uma entrada para o servidor, onde o filme é selecionado com base na descrição retirada da Wikipedia. Nosso frontend foi feito em Electron (usamos ele, não o site, pois inicialmente decidimos armazenar os dados do usuário não no servidor, mas localmente no computador), e o servidor e o próprio sistema de recomendação foram feitos em Python: TFs foram obtidos a partir das descrições -vetores IDF que foram comparados quanto à proximidade com o vetor de entrada do diário.
Um membro da equipe trabalhou apenas no modelo, o outro trabalhou inteiramente no front-end (inicialmente junto com um terceiro membro, que posteriormente passou para os testes). Eu estava empenhado em analisar enredos de filmes da Wikipedia e do servidor.
Passo a passo fomos nos aproximando do resultado, superando uma série de problemas, começando pelo fato do modelo inicialmente exigir muita memória RAM, terminando com a dificuldade de transferência de dados para o servidor.
Agora, para encontrar um filme para a noite, não é preciso muito esforço: o resultado dos nossos três dias de trabalho é um aplicativo desktop e um servidor, que o usuário acessa via https, recebendo em resposta uma seleção de 5 filmes com uma breve descrição e um pôster.
Minhas impressões sobre o projeto são muito positivas: o trabalho foi cativante desde o início da manhã até tarde da noite, e a aplicação resultante produz periodicamente resultados extremamente engraçados no estilo “Noite sem dormir” para um diário sobre o dever de casa na universidade ou um filme sobre o primeiro dia de aula para uma história sobre o primeiro dia no departamento.
Links relevantes, instaladores, etc. podem ser encontrados
Gerador de rota
O autor da ideia
Artemyeva Irina
Alinhar
Artemyeva Irina – líder da equipe, circuito principal
Gordeeva Lyudmila – música
Platonov Vladislav – rotas
Gosto muito de passear pela cidade: olhar os prédios, as pessoas, pensar na história. Mas, mesmo mudando de residência, mais cedo ou mais tarde me deparo com o problema de escolher um percurso: completei todos os que pude imaginar. Foi assim que surgiu a ideia de automatizar a geração de rotas: você indica o ponto de partida e a extensão do percurso, e o programa lhe dá uma opção. As caminhadas podem ser longas, pelo que um desenvolvimento lógico da ideia parece ser acrescentar a possibilidade de indicar pontos intermédios para uma “paragem”, onde se poderia fazer um lanche e descansar. Outro ramo de desenvolvimento foi a música. Caminhar ao som da música é sempre mais divertido, por isso seria ótimo adicionar a capacidade de selecionar uma lista de reprodução com base em uma rota gerada.
Não foi possível encontrar tais soluções entre as aplicações existentes. Os análogos mais próximos são quaisquer planejadores de rotas: Google Maps, 2GIS, etc.
É mais conveniente ter esse aplicativo no seu telefone, então usar o Telegram foi uma boa opção. Ele permite exibir mapas e tocar música, e você pode controlar tudo isso escrevendo um bot. O principal trabalho com mapas foi feito utilizando a API do Google Map. Python facilita a combinação de ambas as tecnologias.
Havia três pessoas na equipe, então a tarefa foi dividida em duas subtarefas não sobrepostas (trabalhar com mapas e trabalhar com música) para que a galera pudesse trabalhar de forma independente, e eu me encarreguei de combinar os resultados.
Nenhum de nós jamais trabalhou com a API do Google Map ou escreveu bots do Telegram, então o principal problema foi a quantidade de tempo alocado para implementar o projeto: entender algo sempre leva mais tempo do que fazer algo que você conhece bem. Também foi difícil escolher a API do bot do Telegram: devido ao bloqueio, nem todos funcionam e tive que me esforçar para configurar tudo.
Vale mencionar separadamente como foi resolvido o problema de geração de rotas. É fácil construir uma rota entre dois locais, mas o que você pode oferecer ao usuário se apenas a extensão da rota for conhecida? Deixe o usuário querer caminhar 10 quilômetros. Um ponto é selecionado em uma direção arbitrária, cuja distância em linha reta é de 10 quilômetros, após o qual uma rota é construída até esse ponto ao longo de estradas reais. Muito provavelmente não será reto, então vamos encurtá-lo para os 10 quilômetros especificados. Existem muitas opções para essas rotas - temos um gerador de rotas real!
Inicialmente pretendia segmentar o mapa em zonas correspondentes a zonas verdes: aterros, pátios, ruas, de forma a obter o percurso mais agradável para um passeio, e também gerar música de acordo com estas zonas. Mas fazer isso usando a API do Google Map acabou sendo difícil (não tivemos tempo de resolver esse problema). No entanto, foi possível implementar a construção de um percurso através de tipos específicos de locais (loja, parque, biblioteca): se o percurso contornou todos os locais especificados, mas a distância desejada ainda não foi percorrida, é completado até um distância especificada pelo usuário em uma direção aleatória. A API do Google Map também permite calcular o tempo estimado de viagem, o que ajuda a escolher uma playlist exatamente para toda a caminhada.
Como resultado,
O principal problema de trabalhar com música era não saber de onde tirar os arquivos mp3 sem exigir que o usuário tivesse uma conta em algum serviço. Decidiu-se solicitar música ao usuário (modo UserMusic). Isso cria um novo problema: nem todo mundo tem a capacidade de baixar faixas. Uma solução é criar um repositório com músicas dos usuários (modo BotMusic) – a partir dele você pode gerar músicas independente dos serviços.
Embora não seja perfeito, concluímos a tarefa: acabamos com um aplicativo que gostaria de usar. No geral, isso é muito legal: há três dias você só tinha uma ideia e nem pensava em como exatamente implementá-la, mas agora existe uma solução funcional. Foram três dias muito importantes para mim, não tenho mais medo de inventar algo que não tenho conhecimento suficiente para implementar, ser líder de equipe foi incrivelmente interessante e pude conhecer os caras maravilhosos que se juntaram à minha equipe. melhorar!
Democracia Líquida
O autor da ideia
Stanislav Sychev
Alinhar
Stanislav Sychev – líder de equipe, banco de dados
Nikolay Izyumov – interface do bot
Anton Ryabushev – back-end
Dentro de diferentes grupos, muitas vezes é necessário tomar uma decisão ou votar. Normalmente, nesses casos, eles recorrem a
Para resolver os problemas de ambos os sistemas, Brian Ford propôs o conceito
Exemplos do uso da democracia líquida são encontrados na política, e queríamos implementar uma ideia semelhante para uso diário em todos os tipos de grupos de pessoas. No próximo hackathon DevDays, decidimos escrever um bot do Telegram para votar de acordo com os princípios da democracia líquida. Ao mesmo tempo, eu queria evitar um problema comum com esses bots - obstruir o bate-papo geral com mensagens do bot. A solução é trazer o máximo de funcionalidade possível para uma conversa pessoal.
Para criar este bot usamos
É claro que três dias é pouco tempo, então durante o hackathon implementamos a ideia no nível do protótipo. Como resultado, criamos um bot que escreve no chat geral apenas informações sobre a abertura da votação e seus resultados anônimos. A capacidade de votar e criar uma enquete é implementada por meio de correspondência pessoal com o bot. Para votar, digite um comando que exibe uma lista de questões que requerem atenção direta. Na correspondência pessoal, você poderá ver a lista dos delegados e seus votos anteriores, além de dar-lhes o seu voto em um dos temas.
Foi interessante trabalhar no projeto, ficamos na universidade até meia-noite. Achamos que é uma ótima maneira de dar uma pausa nos estudos, embora seja muito cansativo. Foi uma experiência agradável trabalhar em uma equipe unida.
PS. As inscrições para programas de mestrado para o próximo ano letivo já estão
Fonte: www.habr.com