<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://mit.spbau.ru/sewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vangogen</id>
		<title>SEWiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://mit.spbau.ru/sewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vangogen"/>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Vangogen"/>
		<updated>2026-04-06T08:33:42Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Paywell&amp;diff=15687</id>
		<title>Paywell</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Paywell&amp;diff=15687"/>
				<updated>2018-05-07T12:19:51Z</updated>
		
		<summary type="html">&lt;p&gt;Vangogen: /* Описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Описание ==&lt;br /&gt;
Люди постоянно тратят деньги на всякий виртуальный стаф. Давайте поможем людям тратить деньги на более полезные вещи. Я предлагаю написать небольшое android-приложение, где пользователи в пару кликов смогут пожертвовать на наиболее понравившийся им проект. &lt;br /&gt;
&lt;br /&gt;
[https://github.com/Carups/paywell/tree/master ссылка на репозиторий], там же файл .apk&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Carups/paywell/issues список багов]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Q87NOxmjDq0  актуальная ссылка на видео]&lt;br /&gt;
&lt;br /&gt;
== Состав ==&lt;br /&gt;
*Кузиванов Николай&lt;br /&gt;
*Егоров Антон&lt;br /&gt;
*Кузнецов Александр&lt;br /&gt;
&lt;br /&gt;
== Области ответственности ==&lt;br /&gt;
*Кузиванов Николай &amp;amp;mdash; начальник, занимается взаимодействием с платёжными инструментами.&lt;br /&gt;
*Егоров Антон &amp;amp;mdash; сервер приложения&lt;br /&gt;
*Кузнецов Александр &amp;amp;mdash; клиентская часть приложения&lt;/div&gt;</summary>
		<author><name>Vangogen</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Paywell&amp;diff=15646</id>
		<title>Paywell</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Paywell&amp;diff=15646"/>
				<updated>2018-05-05T14:16:34Z</updated>
		
		<summary type="html">&lt;p&gt;Vangogen: /* Описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Описание ==&lt;br /&gt;
Люди постоянно тратят деньги на всякий виртуальный стаф. Давайте поможем людям тратить деньги на более полезные вещи. Я предлагаю написать небольшое android-приложение, где пользователи в пару кликов смогут пожертвовать на наиболее понравившийся им проект. &lt;br /&gt;
&lt;br /&gt;
[https://github.com/Carups/paywell/tree/master ссылка на репозиторий], там же файл .apk&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Carups/paywell/issues список багов]&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/ywHq4eKg_fY  актуальная ссылка на видео]&lt;br /&gt;
&lt;br /&gt;
== Состав ==&lt;br /&gt;
*Кузиванов Николай&lt;br /&gt;
*Егоров Антон&lt;br /&gt;
*Кузнецов Александр&lt;br /&gt;
&lt;br /&gt;
== Области ответственности ==&lt;br /&gt;
*Кузиванов Николай &amp;amp;mdash; начальник, занимается взаимодействием с платёжными инструментами.&lt;br /&gt;
*Егоров Антон &amp;amp;mdash; сервер приложения&lt;br /&gt;
*Кузнецов Александр &amp;amp;mdash; клиентская часть приложения&lt;/div&gt;</summary>
		<author><name>Vangogen</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Paywell&amp;diff=15644</id>
		<title>Paywell</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Paywell&amp;diff=15644"/>
				<updated>2018-05-05T14:03:52Z</updated>
		
		<summary type="html">&lt;p&gt;Vangogen: /* Описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Описание ==&lt;br /&gt;
Люди постоянно тратят деньги на всякий виртуальный стаф. Давайте поможем людям тратить деньги на более полезные вещи. Я предлагаю написать небольшое android-приложение, где пользователи в пару кликов смогут пожертвовать на наиболее понравившийся им проект. &lt;br /&gt;
&lt;br /&gt;
[https://github.com/Carups/paywell/tree/master ссылка на репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Carups/paywell/issues список багов]&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/ywHq4eKg_fY  актуальная ссылка на видео]&lt;br /&gt;
&lt;br /&gt;
== Состав ==&lt;br /&gt;
*Кузиванов Николай&lt;br /&gt;
*Егоров Антон&lt;br /&gt;
*Кузнецов Александр&lt;br /&gt;
&lt;br /&gt;
== Области ответственности ==&lt;br /&gt;
*Кузиванов Николай &amp;amp;mdash; начальник, занимается взаимодействием с платёжными инструментами.&lt;br /&gt;
*Егоров Антон &amp;amp;mdash; сервер приложения&lt;br /&gt;
*Кузнецов Александр &amp;amp;mdash; клиентская часть приложения&lt;/div&gt;</summary>
		<author><name>Vangogen</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Paywell&amp;diff=15630</id>
		<title>Paywell</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Paywell&amp;diff=15630"/>
				<updated>2018-05-05T07:56:31Z</updated>
		
		<summary type="html">&lt;p&gt;Vangogen: /* Описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Описание ==&lt;br /&gt;
Люди постоянно тратят деньги на всякий виртуальный стаф. Давайте поможем людям тратить деньги на более полезные вещи. Я предлагаю написать небольшое android-приложение, где пользователи в пару кликов смогут пожертвовать на наиболее понравившийся им проект. &lt;br /&gt;
&lt;br /&gt;
[https://github.com/Carups/paywell/tree/master ссылка на репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/Carups/paywell/issues список багов]&lt;br /&gt;
&lt;br /&gt;
== Состав ==&lt;br /&gt;
*Кузиванов Николай&lt;br /&gt;
*Егоров Антон&lt;br /&gt;
*Кузнецов Александр&lt;br /&gt;
&lt;br /&gt;
== Области ответственности ==&lt;br /&gt;
*Кузиванов Николай &amp;amp;mdash; начальник, занимается взаимодействием с платёжными инструментами.&lt;br /&gt;
*Егоров Антон &amp;amp;mdash; сервер приложения&lt;br /&gt;
*Кузнецов Александр &amp;amp;mdash; клиентская часть приложения&lt;/div&gt;</summary>
		<author><name>Vangogen</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Devdays_%D0%92%D0%B5%D1%81%D0%BD%D0%B0_2018&amp;diff=15550</id>
		<title>Devdays Весна 2018</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Devdays_%D0%92%D0%B5%D1%81%D0%BD%D0%B0_2018&amp;diff=15550"/>
				<updated>2018-04-27T09:26:20Z</updated>
		
		<summary type="html">&lt;p&gt;Vangogen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Чтобы править эту страницу, нужно залогиниться в Sewiki. Тогда сверху будет кнопочка &amp;quot;править&amp;quot;. Если у вас нет учётной записи — напишите Игорю желаемый логин.&lt;br /&gt;
&lt;br /&gt;
Редактировать wiki одновременно нескольким людям стоит осторожно: после внесения правки проверьте, что она действительно сохранилась.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Пример ==&lt;br /&gt;
&lt;br /&gt;
Описание&lt;br /&gt;
&lt;br /&gt;
== Квест-бот для телеграмма ==&lt;br /&gt;
&lt;br /&gt;
Есть культовая серия игр конца 90-х - первой половины 00-х &amp;quot;Космические рейнджеры&amp;quot;. Один из компонентов игры - текстовые квесты, очень увлекательная и разнообразная штука от простых логических задач в стиле загадки Эйнштейна до симуляторов дальнобойщика и зэка. Было бы здорово портировать эти квесты в телегу, неплохая такая развлекаловка. [https://yadi.sk/i/jb88tQju3UhBMS Презентация проекта в формате pdf]&lt;br /&gt;
&lt;br /&gt;
Кодим на питоне.&lt;br /&gt;
&lt;br /&gt;
Предложил: Чернышев Ярослав&lt;br /&gt;
&lt;br /&gt;
== Opus Magnum на Android ==&lt;br /&gt;
&lt;br /&gt;
Есть замечательная игрушка Opus Magnum ([https://store.steampowered.com/app/558990/Opus_Magnum/ страница в Steam]). Цель игры -- программировать реакторы, которые преобразуют одни химические соединения в другие. Каждый уровень игры представляет из себя бесконечное гексагональное поле на котором можно размещать манипуляторы, которые можно программировать, размещая на поле различные команды (подхватить атом, повернуть атом, двигаться в другом направлении, объединить атомы и другие). &lt;br /&gt;
&lt;br /&gt;
Для управления всем, что происходит в игре достаточно одной мыши, на прохождение уровня уходит от нескольких минут до нескольких часов (в зависимости от сложности поставленной задачи), что делает игру подходящей для мобильных платформ (можно посидеть подумать, пока едешь из Парнаса в Автово).&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=Uj689znjxpg/ ссылка на видео]&lt;br /&gt;
&lt;br /&gt;
Идея: портировать Opus Magnum на Android.&lt;br /&gt;
&lt;br /&gt;
Технологии: Android, Java/Kotlin&lt;br /&gt;
&lt;br /&gt;
Предложил: Новожилов Дмитрий&lt;br /&gt;
&lt;br /&gt;
== Игрушка RogueLike на Python ==&lt;br /&gt;
&lt;br /&gt;
Есть семейство игрушек RogueLike. Игрушек в этом семействе много, они популярны, но не позволяют сохранятся после гибели персонажа.&lt;br /&gt;
Хочется сделать игрушку, которая не будет удалять все сохраненные данные после смерти персонажа.&lt;br /&gt;
&lt;br /&gt;
Предложил: Никулин Данил&lt;br /&gt;
&lt;br /&gt;
== Coverage App ==&lt;br /&gt;
&lt;br /&gt;
Карты путешествий это здорово, но что делать, если ты путешествуешь только не дальше своей страны/города? (Грустно, но бывает.)&lt;br /&gt;
&lt;br /&gt;
Есть ряд приложений, в которых отмечаешь, в каких странах ты был и какие хотел бы посетить. Можно сделать аналог, но в пределах города. Появится возможность отмечать места, где уже был (с комментариями/оценками) и куда хотел бы сходить, а также следить за статистикой в виде процента изучения города --  часть города, где ты когда-либо бывал (мб с градацией по количеству посещений), в масштабе улиц, площадей, домов.&lt;br /&gt;
&lt;br /&gt;
Предложила: Валерия Горячева&lt;br /&gt;
&lt;br /&gt;
== /bin/init на Rust ==&lt;br /&gt;
&lt;br /&gt;
systemd -- ужасающий кусок софта, но он уже захватил все крупные дистрибутивы Линукса. И это объяснимо: его подход к организации сервисов в самом деле довольно удобный по сравнению с теми ad-hoc-решениями, которые принимались раньше.&lt;br /&gt;
&lt;br /&gt;
Можно попытаться сделать легковесный init без ужасных частей systemd, но умеющий разбирать service-файлы. В дополнение к этому, можно его написать на Rust, чтобы не было глупейших уязвимостей с переполнением буфера, которыми славен systemd.&lt;br /&gt;
&lt;br /&gt;
Халанский.&lt;br /&gt;
&lt;br /&gt;
== Парсер dts-файлов на Haskell ==&lt;br /&gt;
&lt;br /&gt;
В ядре Linux для ARM для описания набора доступных на системе устройств используются dts-файлы (Device Tree Source File). Но с ними есть такая проблема, что инструментальной поддержки у них немного. dtc (Device Tree Compiler) откровенно аскетичный, и если в dts синтаксическая ошибка, он скажет что-то не сильно более содержательное, чем &amp;quot;error&amp;quot;. Логические же ошибки он и вовсе не проверяет. Предложение такое: задействовать монадические парсеры и показать суровым ядрописателям, что даже Хаскелль на что-то годен.&lt;br /&gt;
&lt;br /&gt;
Халанский.&lt;br /&gt;
&lt;br /&gt;
== surf с клавиатурой ==&lt;br /&gt;
&lt;br /&gt;
All software sucks. Кроме, конечно, софта от https://suckless.org/. В частности, утверждается, что крохотный браузер https://surf.suckless.org/ does not suck. В самом деле, в подходе suckless есть какая-то логика: чем меньше софта, тем меньше что может suck.&lt;br /&gt;
&lt;br /&gt;
Но понятно также и то, что всё, чем можно управлять только мышкой, -- если это не инструмент рисования диаграмм или пользовательских интерфейсов -- фундаментально sucks. Хочется исправить surf так, чтобы он заслуживал звание suckless и поддерживал базовые keybinding'и, знакомые любому любителю vimperator и иже с ними, а не только мышекликанье.&lt;br /&gt;
&lt;br /&gt;
Уже имеются наработки от сообщества surf, и найти их можно прямо на странице surf, но они обладают рядом важных ограничений, из-за которых без мышки нельзя обойтись даже близко: к примеру, нельзя с клавиатуры переводить фокус на поля ввода; или открывать ссылки в новом окне; продолжать можно долго.&lt;br /&gt;
&lt;br /&gt;
Халанский.&lt;br /&gt;
&lt;br /&gt;
== Консольный stepik ==&lt;br /&gt;
&lt;br /&gt;
Stepik -- сайт с хорошими курсами, это у него не отнять. Но веб-интерфейс у него довольно неудобный. Он очень медленный и ведёт себя местами странно. И многие вещи приятнее делать прямо у себя дома, в родной консоли. К примеру, отсылать задания. Или читать комментарии. Зачем для всего этого нужно ждать, пока все страницы Степика соизволят прогрузиться?&lt;br /&gt;
&lt;br /&gt;
Stepik предоставляет API: https://github.com/StepicOrg/Stepik-API&lt;br /&gt;
&lt;br /&gt;
Оно, на первый взгляд, более-менее полное, раз на нём работают даже мобильные приложения платформы. Также с его помощью уже создали несколько удобных вещей, к примеру, тот же отсылатель кода: https://github.com/StepicOrg/SubmissionUtility. Но всё же хотелось бы вылезать в веб-интерфейс ещё реже. Кажется вполне реальным скачивать видео, отсылать задания, получать комментарии, вообще не пользуясь браузером.&lt;br /&gt;
&lt;br /&gt;
Халанский.&lt;br /&gt;
&lt;br /&gt;
== J на GPU ==&lt;br /&gt;
&lt;br /&gt;
Есть язык J, идейный последователь APL.&lt;br /&gt;
&lt;br /&gt;
APL -- язык, на котором Conway's Game of Life записывается так (надеюсь, я случайно не взломаю wiki, напечатав этот текст):&lt;br /&gt;
&lt;br /&gt;
    life←{                                  ⍝ John Conway's &amp;quot;Game of Life&amp;quot;.&lt;br /&gt;
        ↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵  ⍝ Expression for next generation.&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
J -- язык, на котором эта игра записывается так:&lt;br /&gt;
&lt;br /&gt;
    l=:[:+/(3 4=/[:+/(,/,&amp;quot;0/~i:1)|.])*.1,:]&lt;br /&gt;
&lt;br /&gt;
Суть этих языков в том, что они ориентированы на массивы данных -- как numpy, или R, или GNU Octave, но более радикально и/или консистентно: массивы данных являются *фундаментальной* сущностью в этих языках, такой же фундаментальной, как, к примеру, функции. Более подробно о массиво-ориентированных языках можно почитать тут: http://www.ccs.neu.edu/home/shivers/papers/rank-polymorphism.pdf, но вот базовый пример.&lt;br /&gt;
&lt;br /&gt;
       a =: 5 5 $ i.25   NB. Just a 5x5 matrix&lt;br /&gt;
       a&lt;br /&gt;
     0  1  2  3  4&lt;br /&gt;
     5  6  7  8  9&lt;br /&gt;
    10 11 12 13 14&lt;br /&gt;
    15 16 17 18 19&lt;br /&gt;
    20 21 22 23 24&lt;br /&gt;
       &amp;lt; a     NB. Put the whole matrix into a box&lt;br /&gt;
    ┌──────────────┐&lt;br /&gt;
    │ 0  1  2  3  4│&lt;br /&gt;
    │ 5  6  7  8  9│&lt;br /&gt;
    │10 11 12 13 14│&lt;br /&gt;
    │15 16 17 18 19│&lt;br /&gt;
    │20 21 22 23 24│&lt;br /&gt;
    └──────────────┘&lt;br /&gt;
       &amp;lt; &amp;quot;2 a     NB. Do it for two dimensions (matrix, basically the same as before)&lt;br /&gt;
    ┌──────────────┐&lt;br /&gt;
    │ 0  1  2  3  4│&lt;br /&gt;
    │ 5  6  7  8  9│&lt;br /&gt;
    │10 11 12 13 14│&lt;br /&gt;
    │15 16 17 18 19│&lt;br /&gt;
    │20 21 22 23 24│&lt;br /&gt;
    └──────────────┘&lt;br /&gt;
       &amp;lt; &amp;quot;1 a     NB. Do it for one-dimensional arrays (rows)&lt;br /&gt;
    ┌─────────┬─────────┬──────────────┬──────────────┬──────────────┐&lt;br /&gt;
    │0 1 2 3 4│5 6 7 8 9│10 11 12 13 14│15 16 17 18 19│20 21 22 23 24│&lt;br /&gt;
    └─────────┴─────────┴──────────────┴──────────────┴──────────────┘&lt;br /&gt;
       &amp;lt; &amp;quot;0 a     NB. Do it for zero-dimensional arrays (scalars)&lt;br /&gt;
    ┌──┬──┬──┬──┬──┐&lt;br /&gt;
    │0 │1 │2 │3 │4 │&lt;br /&gt;
    ├──┼──┼──┼──┼──┤&lt;br /&gt;
    │5 │6 │7 │8 │9 │&lt;br /&gt;
    ├──┼──┼──┼──┼──┤&lt;br /&gt;
    │10│11│12│13│14│&lt;br /&gt;
    ├──┼──┼──┼──┼──┤&lt;br /&gt;
    │15│16│17│18│19│&lt;br /&gt;
    ├──┼──┼──┼──┼──┤&lt;br /&gt;
    │20│21│22│23│24│&lt;br /&gt;
    └──┴──┴──┴──┴──┘&lt;br /&gt;
&lt;br /&gt;
То есть map (и, на самом деле, многие другие концепции) получаются естественным образом.&lt;br /&gt;
&lt;br /&gt;
Сейчас на APL пишут мало. На J тоже, но всё же побольше. При этом APL на GPU умеют выполнять, а J -- нет, о чём сообщество J сильно жалеет: в конце концов, ориентированные на массивы языки -- самый очевидный кандидат для выполнения на GPU.&lt;br /&gt;
&lt;br /&gt;
Давайте попробуем исполнять на GPU какое-то подмножество J. Всё не получится: язык слишком крупный http://www.jsoftware.com/docs/help806/dictionary/vocabul.htm и с большим количеством граничных случаев, которые за несколько дней не выйдет покрыть. Но если язык будет парситься по синтаксису J и некоторые операторы будут работать, это уже хорошее начало. Технологии -- C, Rust или их помесь, а также что-нибудь для работы с GPU.&lt;br /&gt;
&lt;br /&gt;
Халанский.&lt;br /&gt;
&lt;br /&gt;
== Игра под NES ==&lt;br /&gt;
&lt;br /&gt;
Иногда так устаёшь сидеть за компьютером, что хочется его выключить и пойти заняться чем-нибудь другим, забыть про все технологии, ощутить единство с природой и отдалиться от любых достижений технологического прогресса. К примеру, поиграть в Денди (aka NES/Famicom). Но, за неимением телевизора, это недостижимо -- остаётся только довольствоваться отголосками мечты.&lt;br /&gt;
&lt;br /&gt;
Отголосок может, в частности, заключаться в создании своей собственной игры, которую можно хотя бы запустить в эмуляторе. Хотя бы, скажем, вот такой: https://www.youtube.com/watch?v=71JNREDtUQM&lt;br /&gt;
&lt;br /&gt;
Технологии: Си, hex-редактор, терпение и спокойствие перед лицом чистого ужаса.&lt;br /&gt;
&lt;br /&gt;
Халанский.&lt;br /&gt;
&lt;br /&gt;
== Камень, ножницы, бумага ==&lt;br /&gt;
Иногда нужно быстро решить серьёзный вопрос выбора одного человека из нескольких, и сделать это можно скинувшись на раз-два-три.&lt;br /&gt;
Предлагается написать программное обеспечение (для компа или телефона), позволяющее сделать это дистанционно. Понятно, что в таких вопросах доверять нельзя никому, поэтому необходимо реализовать протокол, гарантирующий каждому участнику честность процесса. Пример атаки на наивный протокол: участник смотрит, что выбрали остальные, и быстренько подстраивает свой выбор оптимальным образом.&lt;br /&gt;
&lt;br /&gt;
Предложил: Егоров Антон&lt;br /&gt;
&lt;br /&gt;
== Эмулятор собеседования ==&lt;br /&gt;
Написать десктопное приложение, эмулирующее прохождение собеседования. &lt;br /&gt;
&lt;br /&gt;
Перед пользователем ставится задача и дается время на ее решение (не больше 30 минут). При этом код необходимо писать в чем-то похожем на Google Docs, то есть нет никакой подсветки синтаксиса либо автодополнения.&lt;br /&gt;
&lt;br /&gt;
Так же есть чат, в котором будет проходить взаимодействие с собеседущим, например, он может спросить о асимптотики решения или может задать вопрос по теории алгоритмов (необходимо ввести название алгоритма, его асимптотику, либо выбрать правильный вариант ответа в тесте). &lt;br /&gt;
&lt;br /&gt;
При этом учитывается, что во время прохождения собеседования пользователь должен постоянно что-либо делать: если пользователь не пишет всевдокод/код, то должен отвечать на вопросы.&lt;br /&gt;
&lt;br /&gt;
Будет возможность скомпилировать решение и проверить на тестах. Задачи можно взять из книги Cracking the Coding Interview, Gayle Laakmann.&lt;br /&gt;
&lt;br /&gt;
Предложила: Мурычева Наталья&lt;br /&gt;
&lt;br /&gt;
== Читалка формул из латеховских исходников ==&lt;br /&gt;
&lt;br /&gt;
Иногда, когда идешь куда-то или слишком устал, читать становится совсем неудобно, и тогда хочется послушать, о чем идет речь в задаче. &lt;br /&gt;
&lt;br /&gt;
Идея: переводить формулы в текст (желательно не слишком формальный, чтобы слушать было приятно), и потом передавать это какой-либо читалке для озвучивания.&lt;br /&gt;
&lt;br /&gt;
Предложила: Колесниченко Лара&lt;br /&gt;
&lt;br /&gt;
== Читалка с навигацией ==&lt;br /&gt;
&lt;br /&gt;
Вот читаю я статью, вижу ссылку на таблицу/рисунок/список литературы, перехожу по ней, а вернуться обратно возможности нет, приходится перелистывать статью и искать нужное место. Давайте напишем читалку под Android, в которой есть возможность не только переходить по ссылке в статье, но и наоборот, из мест в статье, на которую есть ссылки, переходить на позиции, откуда эти ссылки ведут.&lt;br /&gt;
&lt;br /&gt;
Предложил: Кузнецов Александр&lt;br /&gt;
&lt;br /&gt;
== Download Hell ==&lt;br /&gt;
&lt;br /&gt;
Часто мы качаем что-то с интернета и оно попадает в папку Downloads, и эта папка со временем превращается в помойку, но при этом часть файлов может быть всё-таки нужной, но искать их среди кучи хлама - не всегда приятно. &lt;br /&gt;
Давайте попробуем &amp;quot;умным&amp;quot; образом автоматизировать это дело -- программа будет пытаться автоматически распихивать новые файлы по директориям, основываясь на истории предыдущих перемещений (хотелось бы чуть менее тривиально, чем просто группировать по формату файла - существующие известные мне решения так и делают).&lt;br /&gt;
&lt;br /&gt;
Предложил: Макеев Владимир&lt;br /&gt;
&lt;br /&gt;
== Благотворительность 2.0 == &lt;br /&gt;
&lt;br /&gt;
Люди постоянно тратят деньги на всякий виртуальный стаф. Давайте поможем людям тратить деньги на более полезные вещи. &lt;br /&gt;
Я предлагаю написать небольшое android-приложение, где пользователи в пару кликов смогут пожертвовать на наиболее понравившийся им проект. &lt;br /&gt;
&lt;br /&gt;
Технологии: Java/Kotlin, android &lt;br /&gt;
&lt;br /&gt;
Предложил: Кузиванов Николай.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Smart-contract authorization module == &lt;br /&gt;
&lt;br /&gt;
Сейчас модно говорить о блокчейне и смарт-контрактах, как это круто и полезно, что за этим будущее, и что технология имеет кучу применений в различных сферах.&lt;br /&gt;
Одним из полезных и жизненных применений смарт-контакта является аутентификация пользователей - абсолютно анонимно и практически неугоняемо злоумышленниками. &lt;br /&gt;
Так как технология относительно новая, все пилят свой велосипед.&lt;br /&gt;
Было бы здорово сделать готовый модуль (например, для Django), который позволял бы из коробки сделать на сайте смарт-авторизацию.&lt;br /&gt;
&lt;br /&gt;
Технологии: Python, Javascript, Solidity&lt;br /&gt;
&lt;br /&gt;
Предложила: Шеметова Екатерина&lt;br /&gt;
&lt;br /&gt;
== Password patterns == &lt;br /&gt;
&lt;br /&gt;
Известный факт - если пароль составлен по какому-либо правилу (даты, имена, 3 буковки + 4 цифры и т.д.), то можно существенно облегчить перебор и соответственно быстрее взломать аккаунт.&lt;br /&gt;
С точки зрения &amp;quot;светлой стороны&amp;quot; - при соответствии пароля паттерну можно сообщить пользователю о ненадёжности такого пароля.&lt;br /&gt;
Давайте используем наши новые знания по ML, проанализируем базы слитых паролей разных ресурсов и попробуем поискать такие паттерны.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Предложила: Шеметова Екатерина&lt;br /&gt;
&lt;br /&gt;
== Public Channel Viewer ==&lt;br /&gt;
&lt;br /&gt;
В блокируемом, блокируемом, но так и не заблокированном всеми известном мессенджере есть возможность создавать публичные каналы. Иногда это удобно, чтобы не писать одновременно одно и тоже нескольким людям. И тогда все, кто хочет, смогут подписаться и прочитать. Однако, в вашем окружении всегда найдутся люди, которые по тем или иным причинам не могут/не хотят пользоваться этим мессенджером. И чтобы не пересказывать или пересылать все сведения из канала им лично, было бы удобно создать сервис, где можно ввести ссылку и увидеть весь контент этого канала. &lt;br /&gt;
&lt;br /&gt;
Собственно идея: создать сайт/приложение, который по ссылке на публичный канал будет отображать все записи и изображения оттуда без регистрации и смс.&lt;br /&gt;
&lt;br /&gt;
Предложила: Орищенко Александра&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Метки ==&lt;br /&gt;
&lt;br /&gt;
Мы снимаем видео занятий. Но нам нужно научиться фиксировать время, когда преподаватель переключает слайды или переходит к другой теме. Тогда научимся:&lt;br /&gt;
&lt;br /&gt;
* генерировать «contents» в описании на ютюбе&lt;br /&gt;
* объединять снятую лекцию с презентацией в одном видео&lt;br /&gt;
&lt;br /&gt;
Тогда станет проще использовать видео-материалы, например, при подготовке к сессии.&lt;br /&gt;
&lt;br /&gt;
Игорь&lt;br /&gt;
&lt;br /&gt;
== Загрузка ==&lt;br /&gt;
&lt;br /&gt;
И магистры, и бакалавры снимают видео занятий, но пока что у всех групп одинаковая проблема — уходит много времени на заливку и пост-обработку видосов. Что мы делаем:&lt;br /&gt;
&lt;br /&gt;
* Группируем файлы с карты памяти (руками)&lt;br /&gt;
* Конвертируем, делаем пост-обработку (руками)&lt;br /&gt;
* Заливаем на ютюб (руками)&lt;br /&gt;
* Указываем заголовки, описания, плейлисты (руками)&lt;br /&gt;
* Отправляем в телеграмм&lt;br /&gt;
&lt;br /&gt;
Хочется минимизировать количество рук, чтобы можно было вставить флешку в ноутбук, а дальше вся грязная работа произошла сама собой.&lt;br /&gt;
&lt;br /&gt;
Игорь&lt;br /&gt;
&lt;br /&gt;
== Голосование ==&lt;br /&gt;
&lt;br /&gt;
Когда мы группой устраиваем опросы в телеграме, то используем &amp;lt;code&amp;gt;@vote&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;@pollrBot&amp;lt;/code&amp;gt;, которые позволяют выбрать только один вариант. Но что если половина группы хочет Пепси, половина — Колу. Но все не против чая?&lt;br /&gt;
&lt;br /&gt;
[https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%A8%D1%83%D0%BB%D1%8C%D1%86%D0%B5 Метод Шульце] более точно отразит, чего мы хотим — в этом примере победит чай, который всех устраивает. Предлагается попить чаёк, поразбирать математику и написать нового бота.&lt;br /&gt;
&lt;br /&gt;
Игорь&lt;br /&gt;
&lt;br /&gt;
[[Файл:Schulze.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Ar shooter ==&lt;br /&gt;
&lt;br /&gt;
Предлагается написать шутер с дополненной реальностью.&lt;br /&gt;
Есть библиотека Openpose, позволяющая распозновать узловые точки тела человек, работает достаточно быстро и точно, но не достаточно быстро что бы работать на мобильных устройствах.&lt;br /&gt;
Предлагается написать мобильное приложение и серверную часть, которая будет разворачиваться на локальной машине игроков и обрабатывать потоковое видео/картинки с мобильных приложений.&lt;br /&gt;
&lt;br /&gt;
Openpose: https://github.com/CMU-Perceptual-Computing-Lab/openpose&lt;br /&gt;
&lt;br /&gt;
Лапко Данила&lt;/div&gt;</summary>
		<author><name>Vangogen</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Devdays_%D0%9E%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13399</id>
		<title>Devdays Осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Devdays_%D0%9E%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13399"/>
				<updated>2017-10-26T22:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Vangogen: /* Темы проектов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Темы проектов =&lt;br /&gt;
&lt;br /&gt;
Чтобы править эту страницу, нужно залогиниться в Sewiki. Тогда сверху будет кнопочка &amp;quot;править&amp;quot;. Если у вас нет учётной записи - напишите Игорю желаемый логин.&lt;br /&gt;
&lt;br /&gt;
Редактировать wiki одновременно нескольким людям стоит осторожно: после внесения правки проверьте, что она действительно сохранилась.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Depth map from single view ==&lt;br /&gt;
&lt;br /&gt;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта.&lt;br /&gt;
Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
&lt;br /&gt;
Хочется строить матрицу глубины с '''одного''' изображения, без использования бинокулярного зрения или радаров.&lt;br /&gt;
&lt;br /&gt;
Предложил: Никулин Данил&lt;br /&gt;
&lt;br /&gt;
== Доработать децентрализованный мессенджер RetroShare ==&lt;br /&gt;
&lt;br /&gt;
Децентрализованные мессенджеры представляют интерес тем (для любителей паранои :)), что не используют при своей работе подконтрольные третьим лицам центральные серверы. Для &amp;quot;регистрации&amp;quot; в сети пользователь создаёт пару открытый/закрытый ключ и передаёт открытый ключ тем, с кем хочет общаться. Находить IP собеседника достаточно эффективно можно с помощью [https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D1%85%D0%B5%D1%88-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0 DHT].&lt;br /&gt;
&lt;br /&gt;
Мессенджеров, которые работаю по такому принципу, оказывается, не так и много -- я видел только [https://github.com/RetroShare RetroShare] и [https://tox.chat/ Tox] . Я Пробовал пользоваться RetroShare: там всё хорошо, но есть некоторые недоработки, например нет индикатора, дошло ли сообщение до собеседника, удобного диалога сохранения файла и т.д.&lt;br /&gt;
&lt;br /&gt;
За три дня можно разобраться в исходниках и устранить подобные недостатки.&lt;br /&gt;
&lt;br /&gt;
Предложил: Егоров Антон&lt;br /&gt;
&lt;br /&gt;
== Умное сохранение музыки из ВКонтакте ==&lt;br /&gt;
&lt;br /&gt;
В нынешний век стриминговых сервисов наверняка есть люди, которые до сих пор скачивают музыку на компьютер и перекидывают ее в телефон/плеер для прослушивания в оффлайне.&lt;br /&gt;
&lt;br /&gt;
В контакте существует множество пабликов с хорошей музыкой, однако почти всегда эта музыка просто прикрепляется к посту (мало кто пользуется плейлистами), соответственно, чтобы скачать эту музыку, нужно ставить плагин для браузера, скачивать попесенно или все со страницы на компьютер (желательно в папку с вменяемым названием), после чего перекидывать эту папку на телефон (напрямую, через яндекс.диск или другое облако).&lt;br /&gt;
&lt;br /&gt;
Все это очень неудобно, а также сложно каталогизировать музыку по жанрам (учитывая, что один пост может содержать музыку из смеси жанров). Хочется реализовать сервис, который позволит все это автоматизировать.&lt;br /&gt;
&lt;br /&gt;
Как я это вижу: где-то в облаке крутится сервер. Пользователь может поставить расширение для браузера, которое добавляет ко всем постам с музыкой кнопку &amp;quot;загрузить в облако&amp;quot;. Дальше пользователь с мобильного приложения коннектится к этому облаку, где хранятся все сохраненные посты, которые можно сортировать по исполнителям и жанрам, которые вытаскиваются из тегов внутри поста. Каждую песню или пост можно либо слушать с подключением к интернету, либо скачать, чтобы слушать в оффлайне (как в старом приложении контакта, только с удобной каталогизацией).&lt;br /&gt;
&lt;br /&gt;
Технологии: Java/Kotlin (для облака и мобильного приложения), js для расширения (кажется, что оно будет маленьким, так что js по минимуму)&lt;br /&gt;
&lt;br /&gt;
Предложил: Новожилов Дмитрий&lt;br /&gt;
&lt;br /&gt;
== Квантовый форсаж ==&lt;br /&gt;
&lt;br /&gt;
Квантовое лирическое отступление: в физике есть понятие: неопределенность Гейзенберга. Если не вдаваться в подробности, то существуют пары величин, которые нельзя измерить с идеальной точностью. Например, импульс и координата объекта. Можно написать формулу, которая будет утверждать, что произведение неопределенности координаты на неопределенность импульса должно быть больше некой константы, связанной с постоянной Планка.&lt;br /&gt;
&lt;br /&gt;
Идея: написать простенькую 2D игру, где будет использоваться понятие неопределенности Гейзенберга. &lt;br /&gt;
&lt;br /&gt;
Красивое описание для игроков: Далекое будущее. Технологии достигли такого уровня, что можно уменьшить космический корабль до размеров элементарных частиц. Однако такой корабль попадает под действие законов микромира. В этих условиях вам и предстоит управлять кораблем. Он должен пролететь через квантовые джунгли препятствий и не врезаться не во что. Сложность управления в неопределенности скорости корабля и его положения в пространстве. К счастью, есть специальные бонусы, чтобы контролировать эти величины. &lt;br /&gt;
&lt;br /&gt;
Описание игры по существу: есть некий фон, на котором отрисовываются различные препятствия (геометрические объекты или подобие сталактитов и сталагмитов, на что фантазии хватит). Есть космический корабль, который летит вдоль этого фона. Корабль имеет два свойства: скорость и координату. Для простоты можно представить корабль в виде круга. Скорость и координата подчиняются неопределенности Гейзенберга. &lt;br /&gt;
&lt;br /&gt;
Скорость может принимать значение из некоторого промежутка с какой-то вероятностью. По сути, скорость будет меняться скачками.  Тоже самое с координатой. Есть некий ореол вокруг корабля в пространстве которого может случайно возникать корабль (само собой скачками). Чем сильнее меняется скорость, тем меньше меняется координата (ореол меньшего размера) и наоборот. Для изменения неопределенности будут появляться бонусы, которые можно съедать (но надо понимать, что меняя неопределенность одного свойства, мы автоматически меняем неопределенность другого).&lt;br /&gt;
&lt;br /&gt;
Игрок управляет кораблем стрелками. Игра заканчивается в случае, если координата корабля совпала с координатой препятствия. &lt;br /&gt;
&lt;br /&gt;
Технологии: какой-нибудь игровой движок, а вообще у меня опыта в разработке мало, поэтому, если кто-то предложит подходящий язык/технологию, то будет круто&lt;br /&gt;
&lt;br /&gt;
Предложил: Тимашов Даниил&lt;br /&gt;
== Vassal online ==&lt;br /&gt;
Давайте напишем легковесный движок в вебе для разработки настольных игр. &lt;br /&gt;
Предложил: Кузиванов Николай&lt;br /&gt;
&lt;br /&gt;
== DroidTuner ==&lt;br /&gt;
Есть программы, которые позволяют тонко настраивать телефон, например - при считывании NFC-метки менять аудиопрофиль, запускать приложения, отправлять сообщения, заказывать ужин в ресторане и так далее. Проблема в том, что они либо хорошие, красивые, и даже предлагают свой язык для описания сценариев использования, но платные, либо имеют мало возможностей и не особо развиваются/мертвы. &lt;br /&gt;
Давайте напишем бесплатную_без_смс_оупенсоурс версию такого приложения, и, конечно, не хуже, чем у алчных конкурентов. Предложил Макеев Владимир&lt;br /&gt;
&lt;br /&gt;
== AnonyMesh ==&lt;br /&gt;
Предлагается реализовать аналог двача, но без использования сети интернет - то есть по Bluetooth или Wifi-Direct. Вы создаете чат, к которому подключаются другие устройства поблизости и вместе обсуждаете насущные проблемы без возможности идентифицировать себя. Пример использования - анонимное голосование при принятии какого-либо решения в группе людей в дали от интернет-инфраструктуры. Предложил Макеев Владимир&lt;br /&gt;
&lt;br /&gt;
== Добрый CryptoLocker ==&lt;br /&gt;
Петя боится вирусов-вымогателей (ransomware). Но Петя при этом очень неосторожный человек и любит открывать письма с вложениями от неизвестных отправителей, поэтому уже выплатил злоумышленникам 10 биткойнов, чтобы расшифровать свои файлы. &lt;br /&gt;
А ещё Петя - параноик. Он хочет зашифровать свои файлы, чтобы хакеры не смогли узнать его секреты, но при этом он сам смог в нужный момент их расшифровать. Помогите Пете написать программу - аналог CryptoLocker-а, но только добрый, для динамического шифрования собственных документов.&lt;br /&gt;
&lt;br /&gt;
Для справки:&lt;br /&gt;
CryptoLocker - это простейший вирус-вымогатель, который шифрует файлы с определёнными расширением (обычно офисные и pdf-ки) с помощью криптосистемы с открытым ключом. Закрытый ключ хранится на сервере злоумышленника.&lt;br /&gt;
После попадания в систему вирус связывается с сервером, и с помощью полученного от него открытого ключа шифрует файлы нужного расширения. Затем выводится окно со счастливой новостью о заражении и ссылкой на сайт, где после оплаты можно расшифровать свои файлы. &lt;br /&gt;
&lt;br /&gt;
Задачи:&lt;br /&gt;
1) Собственно сам шифровальщик (лучше минимально защититься от простейшего реверс-инжиниринга, например, генерить имя домена командного сервера, а не хранить его в строке)&lt;br /&gt;
2) Командный сервер с бд + сервер с сервисом расшифровки.&lt;br /&gt;
3) Также нужно, чтобы шифровальщик делал некоторые действия с OS (автозапуск + сбор информации), но это в идеале&lt;br /&gt;
&lt;br /&gt;
Технологии:  Более актуально для Windows. Но под Linux тоже можно будет попробовать. Язык - я за Python).&lt;br /&gt;
&lt;br /&gt;
Предложила: Шеметова Екатерина&lt;br /&gt;
&lt;br /&gt;
== Коллективное предсказание продолжительности выполнения домашнего задания ==&lt;br /&gt;
&lt;br /&gt;
Мне довелось слышать, как люди обмениваются в коридоре оценками того, сколько у кого уйдёт на выполнение того или иного домашнего задания. Но это легко формализуемая задача, которую можно автоматизировать.&lt;br /&gt;
&lt;br /&gt;
Имеется хорошо изученный частный случай этой задачи: тот, когда все делают какие-то задачи сообща и при этом делают априорные оценки того, сколько времени на это уйдёт. Затем, когда задача выполнена и известно реальное количество затраченного времени, вычисляется отношение между временем ожидаемым и затраченным. Когда в следующий раз проводятся оценки того, сколько уйдёт времени, применяется этот коэффициент. Через несколько заходов, по-хорошему, оценки с некоторым коэффициентом приближаются к реальности. Почитать более развёрнуто можно тут:&lt;br /&gt;
https://en.wikipedia.org/wiki/Burn_down_chart&lt;br /&gt;
&lt;br /&gt;
Предлагается обобщить задачу так. Есть много людей, которые выполняют одну и ту же задачу, но не сообща, а параллельно. Когда один из них выполняет задачу, он сообщает, какое у него время ушло. При этом система запоминает, насколько один человек решил задачу некоторого типа быстрее, чем другой. И когда одну задачу несколько человек уже решило, система может предоставить остальным оценки того, сколько у них уйдёт на ту же самую задачу.&lt;br /&gt;
&lt;br /&gt;
Упрощённый пример. Петя решает домашние задания по комбинаторике каждое за три часа, Вася -- за шесть. Но Вася решает алгоритмы (вместе с дополнительными задачами) за час, а Петя -- за восемь. И вот Вася выполнил очередной набор домашних заданий на этих выходных, затратив на алгоритмы полтора часа, а на комбинаторику -- четыре. Тогда Петя, зайдя в систему, обнаружит, что ему следует потратить около двух часов на комбинаторику и около десяти часов на алгоритмы.&lt;br /&gt;
&lt;br /&gt;
Предложил Дмитрий Халанский.&lt;br /&gt;
&lt;br /&gt;
== Графы как часть разметки веб-страницы ==&lt;br /&gt;
&lt;br /&gt;
Есть много библиотек, которые позволяют использовать на веб-страницах шаблоны, которые затем заполняются через JavaScript. К примеру, текст &amp;quot;&amp;lt;nowiki&amp;gt;{{user.isLoggedIn}}&amp;lt;/nowiki&amp;gt;&amp;quot;, размещённый где угодно на веб-странице, может превратиться в сложное дерево DOM-объектов, которое будет обновляться каждый раз, когда будет меняться значение переменной user.isLoggedIn. Известные примеры таких библиотек -- React и Vue.js.&lt;br /&gt;
&lt;br /&gt;
Этот же подход можно применять и к тому, чтобы расширять набор средств отображения сведений на веб-странице. Простой пример, который и предлагается в качестве работы, -- это описание в тексте веб-страницы графа, вершинами которого могут быть произвольные DOM-объекты. В текстовых браузерах должно быть видно текстовое представление графа, в графических -- интерактивный граф.&lt;br /&gt;
&lt;br /&gt;
Уже есть некоторые разработки по генерации графов из текстовых описаний -- к примеру, http://ushiroad.com/jsviz/ -- но нигде не было обнаружено такое, чтобы можно было представлять граф в виде обычного текста и при этом иметь в качестве вершин произвольные объекты DOM.&lt;br /&gt;
&lt;br /&gt;
Предложил Халанский Дмитрий.&lt;br /&gt;
&lt;br /&gt;
== Плагин к Coq на kakoune / kakoune-mode к Emacs ==&lt;br /&gt;
&lt;br /&gt;
Это, признаюсь, то, что мне бы хотелось иметь самому, но вдруг, вдруг кто-то тоже заинтересуется.&lt;br /&gt;
&lt;br /&gt;
kakoune -- современный текстовый редактор, убийца vim, последователь vi, который создавался с целью исправить ставшие за многие годы очевидными ошибки остальных модальных текстовых редакторов. Я пересел на kakoune после трёх лет очень активного использования vim и не пожалел.&lt;br /&gt;
http://kakoune.org/&lt;br /&gt;
&lt;br /&gt;
Coq -- самый популярный язык с зависимыми типами, который предназначен для доказательства математических утверждений с помощью компьютера, который запрещает пользователю доказать что-то, в чём компьютер не может быть уверен полностью.&lt;br /&gt;
&lt;br /&gt;
При этом на Coq удобнее всего работать в emacs. Который после kakoune не кажется удобным вообще никак.&lt;br /&gt;
&lt;br /&gt;
Возникает две возможные задачи. Первая -- написать для kakoune плагин, добавляющий поддержку Coq. Вторая -- написать для emacs плагин, который позволяет писать в нём так же, как в kakoune. Первая задача заключается в написании всеми любимых shell-скриптов (потому что kakoune управляется ими), вторая -- в написании кода на Emacs Lisp, который, пусть и в силу Emacs неудачный, всё же Lisp.&lt;br /&gt;
&lt;br /&gt;
Предложил Халанский Дмитрий.&lt;br /&gt;
&lt;br /&gt;
== CRM-система для преподавателей и студентов ==&lt;br /&gt;
&lt;br /&gt;
Цель проекта - объединить в единую экосистему аспекты взаимодействия участников образовательного процесса: электронный журнал, размещение домашних заданий, контролер дедлайнов и прочий функционал.&lt;br /&gt;
&lt;br /&gt;
Доступ к системе с помощью веб-интерфейса (и мобильного приложения?). &lt;br /&gt;
&lt;br /&gt;
Предполагаемый стэк технологий: фронтенд Angular2, бекенд NodeJS + Sequelize+ PostgreSQL (или полуфабрикат типа Firebase)&lt;br /&gt;
&lt;br /&gt;
Предложил Чернышев Ярослав.&lt;br /&gt;
&lt;br /&gt;
== Синхронизация звукового потока ==&lt;br /&gt;
&lt;br /&gt;
Часто возникает такая ситуация, когда вы хотите послушать музыку или посмотреть лекцию со Stepik’а со своими товарищами с одного телефона. Однако при этом не хотите мешать другим людям вокруг своим звуком или сидеть только с одним наушником. Поэтому я предлагаю разработать приложение для Android, которое будет синхронизировать звуковые потоки на нескольких устройствах.&lt;br /&gt;
&lt;br /&gt;
По идее, всё должно работать так: одно из приложений будет некоторым сервером. Остальные, как клиенты, будут к нему подключаться (например по Bluetooth). После этого сервер будет передавать звуковой поток устройствам клиентов, каждый из которых сможет отдельно воспроизводить его. &lt;br /&gt;
&lt;br /&gt;
Предложила: Орищенко Александра&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Горячий&amp;quot; поиск билетов ==&lt;br /&gt;
&lt;br /&gt;
Всем иногда приходится покупать авиабилеты. Причем иногда приходится покупать их за один-два дня до предполагаемой даты вылета. Очевидно, что билетов в такой ситуации может и не быть (или они будут по не очень приемлемой цене). В такой ситуации среднестатистическому пользователю ПК приходится судорожно следить за любыми изменениями в списке доступных билетов на ближайший день т.к. существует ненулевая вероятность того, что появится билет &amp;quot;вашей мечты&amp;quot; (например, кто-нибудь сдаст билет и т.д.).&lt;br /&gt;
&lt;br /&gt;
В связи с чем предлагается написать программу/бота который в фоновом режиме следил бы за доступными билетами и в случае появления подходящего билета информировал об этом на телефон/e-mail или выводил большущее сообщение прямо на рабочий стол.&lt;br /&gt;
&lt;br /&gt;
Наверняка подобные штуки уже есть, но вновь изобретать велосипед никто не запрещал.)&lt;br /&gt;
&lt;br /&gt;
Насчет технологий точно ничего не скажу, т.к. опыта в таких вещах по минимуму, а вернее его вообще нет. :)&lt;br /&gt;
&lt;br /&gt;
Предложил: Милащенко Марк&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Кластеризация сигналов ==&lt;br /&gt;
&lt;br /&gt;
В физике частенько приходится обрабатывать много экспериментальных данных. Причем очень часто этими данными являются осциллограммы различных сигналов.&lt;br /&gt;
Предположим ситуацию, что мы записываем набор осциллограмм содержащих сигналы отклика измерительной системы на одно и то же физическое явление, но порожденное различными источниками. Причем записываем сигналы подряд и вперемешку.  &lt;br /&gt;
&lt;br /&gt;
Данных очень много поэтому обрабатывать их хочется автоматически. При этом хочется вначале разделить все множество сигналов на группы количество которых совпадает с количеством предполагаемых источников.&lt;br /&gt;
&lt;br /&gt;
В связи с этим предлагается написать программу которая:&lt;br /&gt;
- умела бы обрабатывать множество входных данных (осциллограмм) и выделять из них полезные сигналы&lt;br /&gt;
- Кластеризировала бы полученные сигналы на заданное количество множеств (например, методом k-средних или каким-либо другим методом кластеризации)&lt;br /&gt;
- Либо сепарировала бы данные используя различные методы кластеризации, а потом выдавала вердикт по предполагаемому количеству источников&lt;br /&gt;
&lt;br /&gt;
Для таких целей скорее подойдет python, но предполагается написать это на с++. Хотя можно на чем угодно, что подходит.&lt;br /&gt;
Задача скорее не совсем подходящего масштаба и содержания, но может быть кто-нибудь заинтересуется. &lt;br /&gt;
&lt;br /&gt;
Предложил: Милащенко Марк&lt;br /&gt;
&lt;br /&gt;
== Модифицированный бильярд ==&lt;br /&gt;
&lt;br /&gt;
Предлагается написать модифицированный бильярд. Отсутствуют лузы, но при соприкосновении битка с шарами их цвет/текстура меняется на пользовательский. Побеждает тот игрок, после хода которого все шары оказались покрашенными в его цвет.&lt;br /&gt;
&lt;br /&gt;
Плюсы: &lt;br /&gt;
* можно играть целой компанией, а не только вдвоём;&lt;br /&gt;
* сложно предсказать результат игры, вполне возможно, что никто не победит и никто не расстроится, не обидится, не перестанет разговаривать;&lt;br /&gt;
* бильярд есть игра без активного участия, ее можно растянуть и доигрывать в любое удобное время. Можно спокойно прерваться и, например, оплатить заказ в столовой, или послушать информацию насчет толстовок.&lt;br /&gt;
&lt;br /&gt;
Хотелось бы написать игру так, чтобы в неё можно было играть в телеграме, но я не уверен, можно ли будет в этом случае поддержать многопользовательский режим. Если что, можно придумать что-то хорошее и для игры соло. Ну или на крайний случай можно написать эту игру под андроид.&lt;br /&gt;
&lt;br /&gt;
Предложил Александр Кузнецов&lt;br /&gt;
&lt;br /&gt;
== Codeforces bot ==&lt;br /&gt;
&lt;br /&gt;
Светозар ''учится'' в АУ и усердно ''изучает'' алгоритмы. Он верит, что рано или поздно станет важной персоной в мире спортивного программирования, и сейчас его цель — продвинуться в топ на платформе Codeforces, на которой он зависает часами. Но есть одна проблема — Светозар очень много времени проводит в телеграме, так как постоянно либо общается на тему алгоритмов, либо спрашивает совет насчет операционных систем и питона, либо оценивает новые стикеры. Если на пк еще можно как-то быстро переключаться между приложениями, на телефоне это делать сложнее, поэтому ему было бы удобно, чтобы какие-то вещи, касаемые Codeforces, можно было делать прямо в телеграме. За те десять минут, которые Светозар смог выделить на поиск имеющихся решений, он не нашел ничего подходящего (все имеющиеся боты неактивны), и он пришел к выводу, что нужно написать бот самому.&lt;br /&gt;
&lt;br /&gt;
Так как все мы немного Светозар (по крайней мере ''сейчас''), возможно, эта идея покажется интересной.&lt;br /&gt;
&lt;br /&gt;
Предложил Александр Кузнецов&lt;/div&gt;</summary>
		<author><name>Vangogen</name></author>	</entry>

	</feed>