<?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=Nikulin</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=Nikulin"/>
		<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/Nikulin"/>
		<updated>2026-04-30T02:31:06Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Devdays_%D0%92%D0%B5%D1%81%D0%BD%D0%B0_2018&amp;diff=15428</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=15428"/>
				<updated>2018-04-16T12:35:15Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: /* Пример */&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;
== Пример ==&lt;br /&gt;
&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;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_5SE_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0_2018&amp;diff=14624</id>
		<title>Алгоритмы и структуры данных 5SE весна 2018</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B8_%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_5SE_%D0%B2%D0%B5%D1%81%D0%BD%D0%B0_2018&amp;diff=14624"/>
				<updated>2018-02-17T09:13:57Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Лекции ==&lt;br /&gt;
Преподаватель: Смаль Александр Владимирович ('''avsmal@gmail.com''')&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
[http://acm.spbgu.ru/tsweb/ Контесты:]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Мишунин&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Преподаватель: Мишунин Александр ('''alexander.mishunin@gmail.com''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Давыдов&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Преподаватель: Давыдов Алексей ('''adavydow@gmail.com''')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Слабодкин&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Преподаватель: Слабодкин Михаил ('''slabodkinm@gmail.com ''')&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Q_6aco730btPuLAJnTZ_-SvFqzYj1kUDylFjBsRjI1Y/edit#gid=1316643056 Таблица с результатами]&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%91%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_(%D0%A7%D0%B5%D1%80%D0%BD%D1%8B%D1%88%D0%B5%D0%B2)_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13748</id>
		<title>Базы данных (Чернышев) осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%91%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_(%D0%A7%D0%B5%D1%80%D0%BD%D1%8B%D1%88%D0%B5%D0%B2)_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13748"/>
				<updated>2017-11-14T11:01:23Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Чернышев Г. &lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
Материалы можно найти на [http://math.spbu.ru/user/chernishev/window.html сайте].&lt;br /&gt;
&lt;br /&gt;
[https://groups.google.com/forum/#!forum/spbau-ras-mit-advanced-db-fall-2017 Список рассылки].&lt;br /&gt;
&lt;br /&gt;
Результаты тестов и домашек [https://docs.google.com/spreadsheets/d/1378rBB29Cgplt7h6muzEUL3BXDjb_OUS3cvp8l62EPk/edit#gid=0 на гугл-таблицах].&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/file/d/0B6yQWdbjs4g2UEVPbG9FaGEtZmM/view?usp=sharing Презентация] от 25.09.2017.&lt;br /&gt;
&lt;br /&gt;
[http://yeputons.net/pub/171023.pdf Презентация] от 23.10.2017 (на SEWiki выложить не получилось).&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/open?id=0B8vO4jJPWNZ7OXZfMUFlTzhRMGc Ссылка] на летучку от 30.10.2017.&lt;br /&gt;
&lt;br /&gt;
[[Медиа:Проектирование_БД_Лекция_9_v3.pdf|Презентация]] от 30.10.2017.&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/chernishev/ToyDBMS Репозиторий].&lt;br /&gt;
&lt;br /&gt;
Задание 1: [[Медиа:Fal2017 DB Task1.pdf]]. Жёсткий дедлайн — до 30.10.2017 включительно (объявлен на паре 23.10.2017; предыдущий был ориентировочный и до 16.10.2017).&lt;br /&gt;
&lt;br /&gt;
Задание 2: [[Медиа:Fal2017 DB Task2.pdf]]. Выдано 23.10.2017. Дедлайн - хотя бы до пары 20.11.2017.&lt;br /&gt;
&lt;br /&gt;
Задание 3: [http://mit.spbau.ru/sewiki/images/c/c7/Task3.pdf Task3.pdf]. Выдано 13.11.2017. Дедлайно - до зачетки.&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Task3.pdf&amp;diff=13747</id>
		<title>Файл:Task3.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Task3.pdf&amp;diff=13747"/>
				<updated>2017-11-14T10:58:12Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: Nikulin загрузил новую версию Файл:Task3.pdf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13697</id>
		<title>CPP 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13697"/>
				<updated>2017-11-09T21:19:01Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Валерий Михайлович Лесин &amp;lt;code&amp;gt;[mailto:valery.lesin@gmail.com valery.lesin@gmail.com]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwWkZXVGotRVpqclU Материалы к курсу]&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwN2traWFIMmVLd0k Презентации]&lt;br /&gt;
&lt;br /&gt;
* [http://mit.spbau.ru/trac/cpp17m/ Багтрекер]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Ipd4JknpBnLFGfJRTskUk2NbetP2-j5S4zLUjEzjQCI/edit#gid=1651398680 Голосование за темы на семинарах]&lt;br /&gt;
&lt;br /&gt;
[https://ru.wikipedia.org/wiki/Постулат_Бертрана Теорема, для написания функции rehash к первой домашке]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Хаки ===&lt;br /&gt;
&lt;br /&gt;
Далее будут описаны &amp;lt;&amp;lt;Вредные советы&amp;gt;&amp;gt;. Никогда не делайте так в реальной жизни.&lt;br /&gt;
Если где-то на работе или в лабе вы сделаете так и сошлетесь на меня, то меня будут&lt;br /&gt;
ненавидеть (пожалуйста не надо так). К тому же ряд утверждений спорны, поэтому&lt;br /&gt;
буду только рад обсуждению и спорам по делу.&lt;br /&gt;
&lt;br /&gt;
# Вызов функции - дорого.&lt;br /&gt;
#: пишите весь код в одной функции, желательно в мэйне (main function)&lt;br /&gt;
#: Да, это невозможно будет читать, но ведь все равно никто не будет читать ваш код.&lt;br /&gt;
# I/O - это дорого&lt;br /&gt;
#: постарайтесь считать весь входной поток за один раз в stringstream, а потом работать с ним&lt;br /&gt;
#: stringstream, в отличии от потоков ввода/вывода уже находится в памяти процесса. Обращение к нему бесплатно. В то же время каждый i/o - это системный вызов, смена контекста туда и обратно и потенциально снятие с процессора.&lt;br /&gt;
#: тоже самое с выводом&lt;br /&gt;
# выделение памяти - это дорого&lt;br /&gt;
#: некоторые структуры данных, например vector, позволяет заранее зарезервировать нужное количество памяти&lt;br /&gt;
#: некоторые структуры данных, которые сей интерфейс не предоставляют, могут его проэмулировать, если последовательно вызвать resize() -&amp;gt; clear()&lt;br /&gt;
#: для некоторых структур данных этот хак вообще не имеет смысла (например деревья). Для них так делать не надо&lt;br /&gt;
# O(n log(n)) может быть разным&lt;br /&gt;
#: Если последовательно добавлять даннные в set, то на это потребуется O(n log(n)) времени, и в итоге вы получите отсортированный контейнер. Так вот: это дорого.&lt;br /&gt;
#: Если вам просто нужно один раз отсортировать контейнер, то используйте std::sort(v.begjn(), v.end()) над вектором. Это будет намного быстрее. Да и доступ потом будет бытрее даже ассимптотически&lt;br /&gt;
# Глобальные переменные - это странный предмет, ингда дорого, иногда - нет&lt;br /&gt;
#: Для меня это было неожиданностью, но применение глобальных переменных вместо локальных может уменьшить скорость более чем в 2 раза.&lt;br /&gt;
#: Для меня это было неожиданностью, но в некоторых случаях применения глобал переменных увеличивает скорость&lt;br /&gt;
# Размер имеет значение&lt;br /&gt;
#: Потенциально работа с short будет быстрее, чем работа с int (но не факт)&lt;br /&gt;
#: Применение double вместо float в 32-битном компиляторе реально медленней (вроде раза в 3)&lt;br /&gt;
#: Предыдущий пункт касается также и long vs int&lt;br /&gt;
#: для 64 битного компилятора вроде как одинаково&lt;br /&gt;
#: Спорно, но 32-битный компилятор может породить более быстрый код (если не использовать long и double)&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13696</id>
		<title>CPP 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13696"/>
				<updated>2017-11-09T20:54:42Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: /* Хаки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Валерий Михайлович Лесин &amp;lt;code&amp;gt;[mailto:valery.lesin@gmail.com valery.lesin@gmail.com]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwWkZXVGotRVpqclU Материалы к курсу]&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwN2traWFIMmVLd0k Презентации]&lt;br /&gt;
&lt;br /&gt;
* [http://mit.spbau.ru/trac/cpp17m/ Багтрекер]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Ipd4JknpBnLFGfJRTskUk2NbetP2-j5S4zLUjEzjQCI/edit#gid=1651398680 Голосование за темы на семинарах]&lt;br /&gt;
&lt;br /&gt;
[https://ru.wikipedia.org/wiki/Постулат_Бертрана Теорема, для написания функции rehash к первой домашке]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Хаки ===&lt;br /&gt;
&lt;br /&gt;
Далее будут описаны &amp;lt;&amp;lt;Вредные советы&amp;gt;&amp;gt;. Никогда не делайте так в реальной жизни.&lt;br /&gt;
Если где-то на работе или в лабе вы сделаете так и сошлетесь на меня, то меня будут&lt;br /&gt;
ненавидеть (пожалуйста не надо так). К тому же ряд утверждений спорны, поэтому&lt;br /&gt;
буду только рад обсуждению и спорам по делу.&lt;br /&gt;
&lt;br /&gt;
# Вызов функции - дорого.&lt;br /&gt;
#: пишите весь код в одной функции, желательно в мэйне (main function)&lt;br /&gt;
#: Да, это невозможно будет читать, но ведь все равно никто не будет читать ваш код.&lt;br /&gt;
# I/O - это дорого&lt;br /&gt;
#: постарайтесь считать весь входной поток за один раз в stringstream, а потом работать с ним&lt;br /&gt;
#: stringstream, в отличии от потоков ввода/вывода уже находится в памяти процесса. Обращение к нему бесплатно. В то же время каждый i/o - это системный вызов, смена контекста туда и обратно и потенциально снятие с процессора.&lt;br /&gt;
#: тоже самое с выводом&lt;br /&gt;
# выделение памяти - это дорого&lt;br /&gt;
#: некоторые структуры данных, например vector, позволяет заранее зарезервировать нужное количество памяти&lt;br /&gt;
#: некоторые структуры данных, которые сей интерфейс не предоставляют, могут его проэмулировать, если последовательно вызвать resize() -&amp;gt; clear()&lt;br /&gt;
#: для некоторых структур данных этот хак вообще не имеет смысла (например деревья). Для них так делать не надо&lt;br /&gt;
# O(n log(n)) может быть разным&lt;br /&gt;
#: Если последовательно добавлять даннные в set, то на это потребуется O(n log(n)) времени, и в итоге вы получите отсортированный контейнер. Так вот: это дорого.&lt;br /&gt;
#: Если вам просто нужно один раз отсортировать контейнер, то используйте std::sort(v.begjn(), v.end()) над вектором. Это будет намного быстрее. Да и доступ потом будет бытрее даже ассимптотически&lt;br /&gt;
# Глобальные переменные - это дорого&lt;br /&gt;
#: Для меня это было неожиданностью, но применение глобальных переменных вместо локальных может уменьшить скорость более чем в 2 раза.&lt;br /&gt;
# Размер имеет значение&lt;br /&gt;
#: Потенциально работа с short будет быстрее, чем работа с int (но не факт)&lt;br /&gt;
#: Применение double вместо float в 32-битном компиляторе реально медленней (вроде раза в 3)&lt;br /&gt;
#: Предыдущий пункт касается также и long vs int&lt;br /&gt;
#: для 64 битного компилятора вроде как одинаково&lt;br /&gt;
#: Спорно, но 32-битный компилятор может породить более быстрый код (если не использовать long и double)&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13695</id>
		<title>CPP 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13695"/>
				<updated>2017-11-09T20:52:19Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: /* Хаки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Валерий Михайлович Лесин &amp;lt;code&amp;gt;[mailto:valery.lesin@gmail.com valery.lesin@gmail.com]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwWkZXVGotRVpqclU Материалы к курсу]&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwN2traWFIMmVLd0k Презентации]&lt;br /&gt;
&lt;br /&gt;
* [http://mit.spbau.ru/trac/cpp17m/ Багтрекер]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Ipd4JknpBnLFGfJRTskUk2NbetP2-j5S4zLUjEzjQCI/edit#gid=1651398680 Голосование за темы на семинарах]&lt;br /&gt;
&lt;br /&gt;
[https://ru.wikipedia.org/wiki/Постулат_Бертрана Теорема, для написания функции rehash к первой домашке]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Хаки ===&lt;br /&gt;
&lt;br /&gt;
Далее будут описаны &amp;lt;&amp;lt;Вредные советы&amp;gt;&amp;gt;. Никогда не делайте так в реальной жизни.&lt;br /&gt;
Если где-то на работе или в лабе вы сделаете так и сошлетесь на меня, то меня будут&lt;br /&gt;
ненавидеть (пожалуйста не надо так). К тому же ряд утверждений спорны, поэтому&lt;br /&gt;
буду только рад обсуждению и спорам по делу.&lt;br /&gt;
&lt;br /&gt;
# Вызов функции - дорого.&lt;br /&gt;
#: пишите весь код в одной функции, желательно в мэйне (main function)&lt;br /&gt;
#: Да, это невозможно будет читать, но ведь все равно никто не будет читать ваш код.&lt;br /&gt;
# I/O - это дорого&lt;br /&gt;
#: постарайтесь считать весь входной поток за один раз в stringstream, а потом работать с ним&lt;br /&gt;
#: тоже самое с выводом&lt;br /&gt;
# выделение памяти - это дорого&lt;br /&gt;
#: некоторые структуры данных, например vector, позволяет заранее зарезервировать нужное количество памяти&lt;br /&gt;
#: некоторые структуры данных, которые сей интерфейс не предоставляют, могут его проэмулировать, если последовательно вызвать resize() -&amp;gt; clear()&lt;br /&gt;
#: для некоторых структур данных этот хак вообще не имеет смысла (например деревья). Для них так делать не надо&lt;br /&gt;
# O(n log(n)) может быть разным&lt;br /&gt;
#: Если последовательно добавлять даннные в set, то на это потребуется O(n log(n)) времени, и в итоге вы получите отсортированный контейнер. Так вот: это дорого.&lt;br /&gt;
#: Если вам просто нужно один раз отсортировать контейнер, то используйте std::sort(v.begjn(), v.end()) над вектором. Это будет намного быстрее. Да и доступ потом будет бытрее даже ассимптотически&lt;br /&gt;
# Глобальные переменные - это дорого&lt;br /&gt;
#: Для меня это было неожиданностью, но применение глобальных переменных вместо локальных может уменьшить скорость более чем в 2 раза.&lt;br /&gt;
# Размер имеет значение&lt;br /&gt;
#: Потенциально работа с short будет быстрее, чем работа с int (но не факт)&lt;br /&gt;
#: Применение double вместо float в 32-битном компиляторе реально медленней (вроде раза в 3)&lt;br /&gt;
#: Предыдущий пункт касается также и long vs int&lt;br /&gt;
#: для 64 битного компилятора вроде как одинаково&lt;br /&gt;
#: Спорно, но 32-битный компилятор может породить более быстрый код (если не использовать long и double)&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13694</id>
		<title>CPP 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13694"/>
				<updated>2017-11-09T20:51:56Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: /* Хаки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Валерий Михайлович Лесин &amp;lt;code&amp;gt;[mailto:valery.lesin@gmail.com valery.lesin@gmail.com]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwWkZXVGotRVpqclU Материалы к курсу]&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwN2traWFIMmVLd0k Презентации]&lt;br /&gt;
&lt;br /&gt;
* [http://mit.spbau.ru/trac/cpp17m/ Багтрекер]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Ipd4JknpBnLFGfJRTskUk2NbetP2-j5S4zLUjEzjQCI/edit#gid=1651398680 Голосование за темы на семинарах]&lt;br /&gt;
&lt;br /&gt;
[https://ru.wikipedia.org/wiki/Постулат_Бертрана Теорема, для написания функции rehash к первой домашке]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Хаки ===&lt;br /&gt;
&lt;br /&gt;
Далее будут описаны &amp;lt;&amp;lt;Вредные советы&amp;gt;&amp;gt;. Никогда не делайте так в реальной жизни.&lt;br /&gt;
Если где-то на работе или в лабе вы сделаете так и сошлетесь на меня, то меня будут&lt;br /&gt;
ненавидеть (пожалуйста не надо так). К тому же ряд утверждений спорны, поэтому&lt;br /&gt;
буду только рад обсуждению и спорам по делу.&lt;br /&gt;
&lt;br /&gt;
# Вызов функции - дорого.&lt;br /&gt;
#: пишите весь код в одной функции, желательно в мэйне (main function)&lt;br /&gt;
#: Да, это невозможно будет читать, но ведь все равно никто не будет читать ваш код.&lt;br /&gt;
# I/O - это дорого&lt;br /&gt;
#: постарайтесь считать весь входной поток за один раз в stringstream, а потом работать с ним&lt;br /&gt;
#: тоже самое с выводом&lt;br /&gt;
# выделение памяти - это дорого&lt;br /&gt;
#: некоторые структуры данных, например vector, позволяет заранее зарезервировать нужное количество памяти&lt;br /&gt;
#: некоторые структуры данных, которые сей интерфейс не предоставляют, могут его проэмулировать, если последовательно вызвать resize() -&amp;gt; clear()&lt;br /&gt;
#: для некоторых структур данных этот хак вообще не имеет смысла (например деревья). Для них так делать не надо&lt;br /&gt;
# O(n log(n)) может быть разным&lt;br /&gt;
#: Если последовательно добавлять даннные в set, то на это потребуется O(n log(n)) времени, и в итоге вы получите отсортированный контейнер. Так вот: это дорого.&lt;br /&gt;
#: Если вам просто нужно один раз отсортировать контейнер, то используйте std::sort(v.begjn(), v.end()) над вектором. Это будет намного быстрее. Да и доступ потом будет бытрее даже ассимптотически&lt;br /&gt;
# Глобальные переменные - это дорого&lt;br /&gt;
#: Для меня это было неожиданностью, но применение глобальных переменных вместо локальных может уменьшить скорость более чем в 2 раза.&lt;br /&gt;
# Размер имеет значение&lt;br /&gt;
#: Потенциально работа с short будет быстрее, чем работа с int (но не факт)&lt;br /&gt;
#: Применение double вместо float в 32-битном компиляторе реально медленней (вроде раза в 3)&lt;br /&gt;
#: Предыдущий пункт касается также и long vs int&lt;br /&gt;
#: для 64 битного компилятора вроде как одинаково&lt;br /&gt;
#: Спорно, но 32-битный компилятор может порадить более быстрый код (если не использовать long и double)&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13693</id>
		<title>CPP 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13693"/>
				<updated>2017-11-09T20:50:07Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: /* Хаки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Валерий Михайлович Лесин &amp;lt;code&amp;gt;[mailto:valery.lesin@gmail.com valery.lesin@gmail.com]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwWkZXVGotRVpqclU Материалы к курсу]&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwN2traWFIMmVLd0k Презентации]&lt;br /&gt;
&lt;br /&gt;
* [http://mit.spbau.ru/trac/cpp17m/ Багтрекер]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Ipd4JknpBnLFGfJRTskUk2NbetP2-j5S4zLUjEzjQCI/edit#gid=1651398680 Голосование за темы на семинарах]&lt;br /&gt;
&lt;br /&gt;
[https://ru.wikipedia.org/wiki/Постулат_Бертрана Теорема, для написания функции rehash к первой домашке]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Хаки ===&lt;br /&gt;
&lt;br /&gt;
Далее будут описаны &amp;lt;&amp;lt;Вредные советы&amp;gt;&amp;gt;. Никогда не делайте так в реальной жизни.&lt;br /&gt;
Если где-то на работе или в лабе вы сделаете так и сошлетесь на меня, то меня будут&lt;br /&gt;
ненавидеть (пожалуйста не надо так). К тому же ряд утверждений спорны, поэтому&lt;br /&gt;
буду только рад обсуждению и спорам по делу.&lt;br /&gt;
&lt;br /&gt;
# Вызов функции - дорого.&lt;br /&gt;
#: пишите весь код в одной функции, желательно в мэйне (main function)&lt;br /&gt;
#: Да, это невозможно будет читать, но ведь все равно никто не будет читать ваш код.&lt;br /&gt;
# I/O - это дорого&lt;br /&gt;
#: постарайтесь считать весь входной поток за один раз в stringstream, а потом работать с ним&lt;br /&gt;
#: тоже самое с выводом&lt;br /&gt;
# выделение памяти - это дорого&lt;br /&gt;
#: некоторые структуры данных, например vector, позволяет заранее зарезервировать нужное количество памяти&lt;br /&gt;
#: некоторые структуры данных, которые сей интерфейс не предоставляют, могут его проэмулировать, если последовательно вызвать resize() -&amp;gt; clear()&lt;br /&gt;
#: для некоторых структур данных этот хак вообще не имеет смысла (например деревья). Для них так делать не надо&lt;br /&gt;
# O(n log(n)) может быть разным&lt;br /&gt;
#: Если последовательно добавлять даннные в set, то на это потребуется O(n log(n)) времени, и в итоге вы получите отсортированный контейнер. Так вот: это дорого.&lt;br /&gt;
#: Если вам просто нужно один раз отсортировать контейнер, то используйте std::sort(v.begjn(), v.end()) над вектором. Это будет намного быстрее. Да и доступ потом будет бытрее даже ассимптотически&lt;br /&gt;
# Глобальные переменные - это дорого&lt;br /&gt;
#: Для меня это было неожиданностью, но применение глобальных переменных вместо локальных может уменьшить скорость более чем в 2 раза.&lt;br /&gt;
# Размер имеет значение&lt;br /&gt;
#: Потенциально работа с short будет быстрее, чем работа с int (но не факт)&lt;br /&gt;
#: Применение double вместо float в 32-битном компиляторе реально медленней (вроде раза в 3)&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13692</id>
		<title>CPP 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13692"/>
				<updated>2017-11-09T20:46:01Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Валерий Михайлович Лесин &amp;lt;code&amp;gt;[mailto:valery.lesin@gmail.com valery.lesin@gmail.com]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwWkZXVGotRVpqclU Материалы к курсу]&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwN2traWFIMmVLd0k Презентации]&lt;br /&gt;
&lt;br /&gt;
* [http://mit.spbau.ru/trac/cpp17m/ Багтрекер]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Ipd4JknpBnLFGfJRTskUk2NbetP2-j5S4zLUjEzjQCI/edit#gid=1651398680 Голосование за темы на семинарах]&lt;br /&gt;
&lt;br /&gt;
[https://ru.wikipedia.org/wiki/Постулат_Бертрана Теорема, для написания функции rehash к первой домашке]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Хаки ===&lt;br /&gt;
&lt;br /&gt;
Далее будут описаны &amp;lt;&amp;lt;Вредные советы&amp;gt;&amp;gt;. Никогда не делайте так в реальной жизни.&lt;br /&gt;
Если где-то на работе или в лабе вы сделаете так и сошлетесь на меня, то меня будут&lt;br /&gt;
ненавидеть (пожалуйста не надо так). К тому же ряд утверждений спорны, поэтому&lt;br /&gt;
буду только рад обсуждению и спорам по делу.&lt;br /&gt;
&lt;br /&gt;
# Вызов функции - дорого.&lt;br /&gt;
#: пишите весь код в одной функции, желательно в мэйне (main function)&lt;br /&gt;
#: Да, это невозможно будет читать, но ведь все равно никто не будет читать ваш код.&lt;br /&gt;
# I/O - это дорого&lt;br /&gt;
#: постарайтесь считать весь входной поток за один раз в stringstream, а потом работать с ним&lt;br /&gt;
#: тоже самое с выводом&lt;br /&gt;
# выделение памяти - это дорого&lt;br /&gt;
#: некоторые структуры данных, например vector, позволяет заранее зарезервировать нужное количество памяти&lt;br /&gt;
#: некоторые структуры данных, которые сей интерфейс не предоставляют, могут его проэмулировать, если последовательно вызвать resize() -&amp;gt; clear()&lt;br /&gt;
#: для некоторых структур данных этот хак вообще не имеет смысла (например деревья). Для них так делать не надо&lt;br /&gt;
# O(n log(n)) может быть разным&lt;br /&gt;
#: Если последовательно добавлять даннные в set, то на это потребуется O(n log(n)) времени, и в итоге вы получите отсортированный контейнер. Так вот: это дорого.&lt;br /&gt;
#: Если вам просто нужно один раз отсортировать контейнер, то используйте std::sort(v.begjn(), v.end()) над вектором. Это будет намного быстрее. Да и доступ потом будет бытрее даже ассимптотически&lt;br /&gt;
# Глобальные переменные - это дорого&lt;br /&gt;
#: Для меня это было неожиданностью, но применение глобальных переменных вместо локальных может уменьшить скорость более чем в 2 раза.&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13646</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13646"/>
				<updated>2017-11-07T11:27:10Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Мотивация ==&lt;br /&gt;
&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;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие.&lt;br /&gt;
&lt;br /&gt;
Дополнительно оба даных подхода не применимы для создание 3D видео из уже отснятых 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;
* edge detection&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;
&lt;br /&gt;
== Список известных багов: ==&lt;br /&gt;
* Высокая чувствительность к шумам и постороним предметам&lt;br /&gt;
* Градиент глубины считается очень долго&lt;br /&gt;
* Яркие тени детектируются как объект&lt;br /&gt;
* В случае обработки нескольких кубиков подробный режим показывает этапы только для самого большого кубика&lt;br /&gt;
* Не работает в случае, когда кубик частично закрыт другим кубиком&lt;br /&gt;
* Все предметы должны находиться на одной плоскости, а сама плоскость должна быть горизонтальна&lt;br /&gt;
* При чтении изображения цвета RGB меняются на BGR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео и презентацию]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13631</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13631"/>
				<updated>2017-11-07T08:03:20Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Мотивация ==&lt;br /&gt;
&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;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие.&lt;br /&gt;
&lt;br /&gt;
Дополнительно оба даных подхода не применимы для создание 3D видео из уже отснятых 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;
* edge detection&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;
&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;
[https://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео и презентацию]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13620</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13620"/>
				<updated>2017-11-06T23:33:10Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Мотивация ==&lt;br /&gt;
&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;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие.&lt;br /&gt;
&lt;br /&gt;
Дополнительно оба даных подхода не применимы для создание 3D видео из уже отснятых 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;
* edge detection&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;
== Список известных багов: ==&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;
[https://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео и презентацию]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13619</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13619"/>
				<updated>2017-11-06T23:32:31Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Мотивация ==&lt;br /&gt;
&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;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие.&lt;br /&gt;
&lt;br /&gt;
Дополнительно оба даных подхода не применимы для создание 3D видео из уже отснятых 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;
* edge detection&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;
* В случае обработки нескольких кубиков подробный режим показывает этапы только для самого большого кубика&lt;br /&gt;
* Не работает в случае, когда кубик частично закрыт другим кубиком&lt;br /&gt;
* Все предметы должны находиться на одной плоскости, а сама плоскость должна быть горизонтальна&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео и презентацию]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13618</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13618"/>
				<updated>2017-11-06T23:28:04Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Мотивация ==&lt;br /&gt;
&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;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие.&lt;br /&gt;
&lt;br /&gt;
Дополнительно оба даных подхода не применимы для создание 3D видео из уже отснятых 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;
* edge detection&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;
* Яркие тени детектируются как объект&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://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео и презентацию]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13615</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13615"/>
				<updated>2017-11-06T23:19:20Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Мотивация ==&lt;br /&gt;
&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;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие.&lt;br /&gt;
&lt;br /&gt;
Дополнительно оба даных подхода не применимы для создание 3D видео из уже отснятых 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;
* edge detection&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;
* Яркие тени детектируются как объект&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://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео и презентацию]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13614</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13614"/>
				<updated>2017-11-06T23:18:46Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Мотивация ==&lt;br /&gt;
&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;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие.&lt;br /&gt;
&lt;br /&gt;
Дополнительно оба даных подхода не применимы для создание 3D видео из уже отснятых 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;
* edge detection&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;
* Яркие тени детектируются как объект&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://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13570</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13570"/>
				<updated>2017-11-05T12:00:53Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Мотивация ==&lt;br /&gt;
&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;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие.&lt;br /&gt;
&lt;br /&gt;
Дополнительно оба даных подхода не применимы для создание 3D видео из уже отснятых 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;
* edge detection&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;
* Яркие тени детектируются как объект&lt;br /&gt;
* Не работает в случае, когда кубик частично закрыт другим кубиком&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13569</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13569"/>
				<updated>2017-11-05T11:54:28Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: /* Мотивация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта.&lt;br /&gt;
Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
С помощью матрицы глубины воссоздается трехмерная модель пространства.&lt;br /&gt;
&lt;br /&gt;
=== Проблема ===&lt;br /&gt;
&lt;br /&gt;
Создание 3D модели пространства невозможно без карты глубины.&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;
* edge detection&lt;br /&gt;
* Hough transform (нахождение линий)&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;
[https://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13568</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13568"/>
				<updated>2017-11-05T11:52:58Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта.&lt;br /&gt;
Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
С помощью матрицы глубины воссоздается трехмерная модель пространства.&lt;br /&gt;
&lt;br /&gt;
=== Проблема ===&lt;br /&gt;
&lt;br /&gt;
Создание 3D модели пространства невозможно без карты глубины.&lt;br /&gt;
Самое простое и распространенное решение - это использовать стереозрение или радар.&lt;br /&gt;
Для стереозрения нужна очень точная калибровка, которая может легко нарушиться со временем.&lt;br /&gt;
Радары очень хороши, но они дорогие. Лазерные дальномеры среднего качества стоят порядка 30 000 руб, а цены на портативные СВЧ радары&lt;br /&gt;
начинаются от 100 000.&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;
* edge detection&lt;br /&gt;
* Hough transform (нахождение линий)&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;
[https://github.com/DaniilSNikulin/DepthMap.git Репозиторий]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео]&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13567</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13567"/>
				<updated>2017-11-05T11:35:24Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Состав команды:&lt;br /&gt;
* Никулин Даниил&lt;br /&gt;
* Гостевский Дмитрий&lt;br /&gt;
* Лапко Данила&lt;br /&gt;
&lt;br /&gt;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта. Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
Хочется строить матрицу глубины с одного изображения, без использования бинокулярного зрения или радаров.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Features: &lt;br /&gt;
* Построение карты глубины для одной плоскости кубика&lt;br /&gt;
* Построение карты глубины для всего кубика&lt;br /&gt;
* Построение карты глубины для множества кубиков&lt;br /&gt;
* Построение карты глубины с использованием теней (опционально)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof-of-Concept plan: &lt;br /&gt;
* Нахождение всех кубиков на картинке&lt;br /&gt;
* выделение каждого кубика в отдельное изображение&lt;br /&gt;
* edge detection&lt;br /&gt;
* Hough transform (нахождение линий)&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://github.com/DaniilSNikulin/DepthMap.git]&lt;br /&gt;
&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео]&lt;br /&gt;
&lt;br /&gt;
Список известных багов: &lt;br /&gt;
* Высокая чувствительность к шумам и постороним предметам&lt;br /&gt;
* Градиент глубины считается очень долго&lt;br /&gt;
* Яркие тени детектируются как объект&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13566</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13566"/>
				<updated>2017-11-05T11:35:13Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Состав команды:&lt;br /&gt;
* Никулин Даниил&lt;br /&gt;
* Гостевский Дмитрий&lt;br /&gt;
* Лапко Данила&lt;br /&gt;
&lt;br /&gt;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта. Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
Хочется строить матрицу глубины с одного изображения, без использования бинокулярного зрения или радаров.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Features: &lt;br /&gt;
* Построение карты глубины для одной плоскости кубика&lt;br /&gt;
* Построение карты глубины для всего кубика&lt;br /&gt;
* Построение карты глубины для множества кубиков&lt;br /&gt;
* Построение карты глубины с использованием теней (опционально)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof-of-Concept plan: &lt;br /&gt;
* Нахождение всех кубиков на картинке&lt;br /&gt;
* выделение каждого кубика в отдельное изображение&lt;br /&gt;
* edge detection&lt;br /&gt;
* Hough transform (нахождение линий)&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://github.com/DaniilSNikulin/DepthMap.git]&lt;br /&gt;
[https://yadi.sk/d/Kv9pmqPk3PRcgA Ссылка на видео]&lt;br /&gt;
&lt;br /&gt;
Список известных багов: &lt;br /&gt;
* Высокая чувствительность к шумам и постороним предметам&lt;br /&gt;
* Градиент глубины считается очень долго&lt;br /&gt;
* Яркие тени детектируются как объект&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13565</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13565"/>
				<updated>2017-11-04T17:05:50Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Состав команды:&lt;br /&gt;
* Никулин Даниил&lt;br /&gt;
* Гостевский Дмитрий&lt;br /&gt;
* Лапко Данила&lt;br /&gt;
&lt;br /&gt;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта. Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
Хочется строить матрицу глубины с одного изображения, без использования бинокулярного зрения или радаров.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Features: &lt;br /&gt;
* Построение карты глубины для одной плоскости кубика&lt;br /&gt;
* Построение карты глубины для всего кубика&lt;br /&gt;
* Построение карты глубины для множества кубиков&lt;br /&gt;
* Построение карты глубины с использованием теней (опционально)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof-of-Concept plan: &lt;br /&gt;
* Нахождение всех кубиков на картинке&lt;br /&gt;
* выделение каждого кубика в отдельное изображение&lt;br /&gt;
* edge detection&lt;br /&gt;
* Hough transform (нахождение линий)&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://github.com/DaniilSNikulin/DepthMap.git]&lt;br /&gt;
&lt;br /&gt;
Список известных багов: &lt;br /&gt;
* Высокая чувствительность к шумам и постороним предметам&lt;br /&gt;
* Градиент глубины считается очень долго&lt;br /&gt;
* Яркие тени детектируются как объект&lt;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13544</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13544"/>
				<updated>2017-11-02T21:07:37Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Состав команды:&lt;br /&gt;
* Никулин Даниил&lt;br /&gt;
* Гостевский Дмитрий&lt;br /&gt;
* Лапко Данила&lt;br /&gt;
&lt;br /&gt;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта. Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
Хочется строить матрицу глубины с одного изображения, без использования бинокулярного зрения или радаров.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Features: &lt;br /&gt;
* Построение карты глубины для одной плоскости кубика&lt;br /&gt;
* Построение карты глубины для всего кубика&lt;br /&gt;
* Построение карты глубины для множества кубиков&lt;br /&gt;
* Построение карты глубины с использованием теней (опционально)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof-of-Concept plan: &lt;br /&gt;
* edge detection&lt;br /&gt;
* Hough transform (нахождение линий)&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://github.com/DaniilSNikulin/DepthMap.git]&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;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13543</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13543"/>
				<updated>2017-11-02T21:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Состав команды:&lt;br /&gt;
* Никулин Даниил&lt;br /&gt;
* Гостевский Дмитрий&lt;br /&gt;
* Лапко Данила&lt;br /&gt;
&lt;br /&gt;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта. Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
Хочется строить матрицу глубины с одного изображения, без использования бинокулярного зрения или радаров.&lt;br /&gt;
&lt;br /&gt;
edge detection&lt;br /&gt;
Hough transform (нахождение линий)&lt;br /&gt;
выделение плоскостей&lt;br /&gt;
нахождение точек схода&lt;br /&gt;
&lt;br /&gt;
Features: &lt;br /&gt;
* Построение карты глубины для одной плоскости кубика&lt;br /&gt;
* Построение карты глубины для всего кубика&lt;br /&gt;
* Построение карты глубины для множества кубиков&lt;br /&gt;
* Построение карты глубины с использованием теней (опционально)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof-of-Concept plan: &lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Репозиторий: [https://github.com/DaniilSNikulin/DepthMap.git]&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;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13542</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13542"/>
				<updated>2017-11-02T21:04:50Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Состав команды:&lt;br /&gt;
* Никулин Даниил&lt;br /&gt;
* Гостевский Дмитрий&lt;br /&gt;
* Лапко Данила&lt;br /&gt;
&lt;br /&gt;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта. Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
Хочется строить матрицу глубины с одного изображения, без использования бинокулярного зрения или радаров.&lt;br /&gt;
&lt;br /&gt;
edge detection&lt;br /&gt;
Hough transform (нахождение линий)&lt;br /&gt;
выделение плоскостей&lt;br /&gt;
нахождение точек схода&lt;br /&gt;
&lt;br /&gt;
Features: &lt;br /&gt;
* Построение карты глубины для одной плоскости кубика&lt;br /&gt;
* Построение карты глубины для всего кубика&lt;br /&gt;
* Построение карты глубины для множества кубиков&lt;br /&gt;
* Построение карты глубины с использованием теней (опционально)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof-of-Concept plan: &lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Репозиторий: [https://github.com/DaniilSNikulin/DepthMap.git]&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;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13541</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13541"/>
				<updated>2017-11-02T21:03:24Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Состав команды:&lt;br /&gt;
* Никулин Даниил&lt;br /&gt;
* Гостевский Дмитрий&lt;br /&gt;
* Лапко Данила&lt;br /&gt;
&lt;br /&gt;
Матрица глубины (depth map) - это некоторая матрица, каждый элемент которой содержит дальность до объекта. Другими словами, если имеется некотороые изображение, то матрица глубины говорит о том, какого расстояние до каждого нарисованного объекта.&lt;br /&gt;
Хочется строить матрицу глубины с одного изображения, без использования бинокулярного зрения или радаров.&lt;br /&gt;
&lt;br /&gt;
edge detection&lt;br /&gt;
Hough transform (нахождение линий)&lt;br /&gt;
выделение плоскостей&lt;br /&gt;
нахождение точек схода&lt;br /&gt;
&lt;br /&gt;
Features: &lt;br /&gt;
* Построение карты глубины для одной плоскости кубика&lt;br /&gt;
* Построение карты глубины для всего кубика&lt;br /&gt;
* Построение карты глубины для множества кубиков&lt;br /&gt;
* Построение карты глубины с использованием теней (опционально)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Proof-of-Concept plan: &lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Репозиторий: [https://github.com/DaniilSNikulin/DepthMap.git]&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;/div&gt;</summary>
		<author><name>Nikulin</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/depth_map&amp;diff=13508</id>
		<title>Devdays Осень 2017/depth map</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/depth_map&amp;diff=13508"/>
				<updated>2017-11-01T10:16:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Состав команды:&lt;br /&gt;
* Никулин Даниил&lt;br /&gt;
* Гостевский Дмитрий&lt;br /&gt;
* Лапко Данила&lt;br /&gt;
&lt;br /&gt;
edge detection&lt;br /&gt;
Hough transform (нахождение линий)&lt;br /&gt;
выделение плоскостей&lt;br /&gt;
нахождение точек схода&lt;br /&gt;
&lt;br /&gt;
Features: &lt;br /&gt;
* Построение карты глубины из одного изображения для примитивов параллелепипидов&lt;br /&gt;
&lt;br /&gt;
Proof-of-Concept plan: &lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Репозиторий: [https://github.com/DaniilSNikulin/DepthMap.git]&lt;br /&gt;
&lt;br /&gt;
Список известных багов: []&lt;/div&gt;</summary>
		<author><name>Nikulin</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=13502</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=13502"/>
				<updated>2017-11-01T08:49:34Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: /* Depth map from single view */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Общее =&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1VZr-beNDC437FnFNnh6Nrsj7GoTynWpdj9smb-iiqng/edit?usp=sharing Голосовалка]&lt;br /&gt;
&lt;br /&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;
[[http://mit.spbau.ru/sewiki/index.php/Devdays_%D0%9E%D1%81%D0%B5%D0%BD%D1%8C_2017/depth_map  Страничка проекта]]&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;
Квантовое лирическое отступление: в физике есть понятие: неопределенность Гейзенберга. Если не вдаваться в подробности, то существуют пары величин, которые нельзя измерить с идеальной точностью. Например, импульс и координата объекта. Можно написать формулу, которая будет утверждать, что произведение неопределенности координаты на неопределенность импульса должно быть больше некой константы, связанной с постоянной Планка.&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;
Страница проекта: [[DevDays2017Fall-Cokoune]]&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;
== Конспект по алгоритмам ==&lt;br /&gt;
&lt;br /&gt;
На данный момент мы с Димой Новожиловым пишем конспекты по алгоритмам в формате markdown документов (с вставкой latex формул) и это не очень:&lt;br /&gt;
&lt;br /&gt;
* Нет синхронизации — каждый ведёт конспект у себя на своей машине&lt;br /&gt;
* Трудно читать сырой markdown, а сгенерированные PDF'ки слишком широкие&lt;br /&gt;
* Дима иногда отсутствует на парах по алгоритмам, а мне лень вести конспект&lt;br /&gt;
&lt;br /&gt;
Хочется сделать так, чтобы мы (и другие люди) вели работу через git, а при выполнении &amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt; автоматически из markdown документов генерировался сайт с мобильной версией и хостился где-то в интернете.&lt;br /&gt;
&lt;br /&gt;
# [https://pandoc.org/ Pandoc] умеет конвертировать файлы (нужно научиться его настраивать)&lt;br /&gt;
# Git может запустить какой-нибудь скрипт, когда вы выполняете комманду &amp;lt;code&amp;gt;git commit&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt; (здесь генерируется структура сайта)&lt;br /&gt;
# Можно настроить github так, что когда в репозиторий делают push, происходит какая-нибудь полезная работа (здесь сайт выкладывается в публичный доступ)&lt;br /&gt;
&lt;br /&gt;
Таким образом нам надо будет разобраться с Pandoc, Git hooks, Travis CI, HTML, CSS. Это всё довольно легко, за три дня можно управиться. Основная цель — поработать в команде, распараллелить задачи, получить рабочий проект.&lt;br /&gt;
&lt;br /&gt;
Предложил Стребежев Игорь.&lt;br /&gt;
&lt;br /&gt;
Ссылка на проект [[AU-conspectus]]&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;
&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;br /&gt;
&lt;br /&gt;
== Java(assembly? postgresql?) jupyter kernel ==&lt;br /&gt;
Все просто: берем какой-нибудь яп и делаем для него jupyter kernel. Отличная возможность узнать получше как работает jupyter внутри.&lt;br /&gt;
&lt;br /&gt;
Предложил Алексей Зубаков&lt;br /&gt;
&lt;br /&gt;
== Плагин для документации ==&lt;br /&gt;
Idea позволяет глянуть inline документацию для некоторых языков и этого зачастую достаточно для того, чтобы понять что делает метод. Но как быть с языками, для которых этой фичи нет?&lt;br /&gt;
Приходится лезть в документацию. Чтобы не открывать сайт с документацией, есть [ https://zealdocs.org zealdox] и [https://kapeli.com/dash dash], последним я пользуюсь сам. Но человек я очень ленивый и хотелось бы выгружать документацию прямо в IDE в один клик.&lt;br /&gt;
&lt;br /&gt;
Предложил Алексей Зубаков&lt;br /&gt;
&lt;br /&gt;
== Расшаривание ссылок на private репозитории ==&lt;br /&gt;
У всех есть приватные репозитории на GitHub/Bitbucket/GitLab и иногда их все-таки нужно показывать. Самый частый сценарий: вы устраиваетесь на работу, хочется показать какой-то pet-project, но добавлять каждого интервьюера в collaborators несколько накладно. Проще, наверное, было бы отправить ссылку, по которой только он может посмотреть ваш репозиторий.&lt;br /&gt;
&lt;br /&gt;
Функционал такой, увы, не реализован, но можно попробовать сделать его самим.&lt;br /&gt;
&lt;br /&gt;
Предложил Алексей Зубаков&lt;br /&gt;
&lt;br /&gt;
== Just do eat ==&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;
Предложила: Валерия Горячева&lt;br /&gt;
&lt;br /&gt;
== Поддержка дисциплины ==&lt;br /&gt;
&lt;br /&gt;
Многим студентам СПбАУ сложно вставать по утрам, ложиться по вечерам, делать дз вовремя, находить время на поход в магазин и так далее (с чем то одним, наверняка, каждый встречался). Это большая проблема, и все решают ее по-разному, но в основном либо входят в некоторый режим, либо закрывают хвосты по учебе в последние часы перед дедлайнами. Многие пытаются отоспаться на выходных.&lt;br /&gt;
&lt;br /&gt;
Идея - создать трекер привычек, который позволит довести повседневную жизнь во время учебы до автоматизма - полное расписание каждого дня, которое включает не только пары и время на дз, но и время подъема, отбоя, выделенное время похода в магазин, напоминалка о стирке вещей и другие повседневности. Вместо отсыпания на выходных - подъем каждый день в одно и то же время и так далее. Не важно, не можешь ли ты уснуть в 3 утра из-за мыслей о надвигающихся дедлайнах или просто приуныл - приложение говорит, что сейчас нужно делать. Расчет идет на то, что организм привыкнет и придется меньше заботиться о повседневностях.&lt;br /&gt;
&lt;br /&gt;
Аналогов море, но я не смог найти приложение, которое бы заставляло делать что-то каждую минуту.&lt;br /&gt;
Нет смысла делать убер швейцарский перочинный нож для спортсменов / программистов / студентов / преподавателей. Но и хардкодить расписание пар в код никто не собирается.&lt;br /&gt;
&lt;br /&gt;
Приложение должно иметь минимальный необходимый функционал с возможностью подцепить полезные фичи, опять же не нагромождая велосипедов в сам код (например, я не хочу ботать алгоритмы конкретный день 4 часа подряд, а хочу разбить это домашнее задание на 6 часов с перерывами каждые полчаса - ок, цепляю модуль и ставлю галку &amp;quot;делать в режиме помидор&amp;quot;; python же наоборот - можно делать не отрываясь часа 2-3 - собственно некоторое дефолтное поведение). Также большой проблемой подобных приложений является предварительная настройка (я настраивал trello весь день, совмещая с другими делами). Для студентов можно сделать внешний модуль (или просто какой-нибудь JSON) со всем необходимым (расписание, мягкие/жесткие дедлайны, дополнительные активности, не вписывающиеся в еженедельный ритм, например devdays), чтобы в течении получаса можно было полностью откалибровать приложение под себя.&lt;br /&gt;
&lt;br /&gt;
Технологии: вырисовывается мобильное приложение, чтобы всегда имелось под рукой, начальная идея с telegram ботом уже не кажется такой привлекательной.&lt;br /&gt;
&lt;br /&gt;
Предложил: Тагир Гумеров&lt;br /&gt;
&lt;br /&gt;
== Создание ликбеза по языкам программирования ==&lt;br /&gt;
&lt;br /&gt;
Проблема: по большинству языков сложно вести конспект, иногда из-за интенсивного повествования, иногда из-за веры в рассылку pdf преподавателями после пар. &lt;br /&gt;
Происходит что-то в духе &amp;quot;у нас было 10 ipynb документов, 5 исходников на haskell, около сотни header и source файлов и целая россыпь pdf с семинаров, лекций и дз&amp;quot;.&lt;br /&gt;
Несколько рабочих столов или вкладок решают, но глобальный поиск все равно не запустишь.&lt;br /&gt;
&lt;br /&gt;
Задача: создать справочник по яп, которые мы проходим. Не документация, но и не stackoverflow. В точности то, что нам преподается.&lt;br /&gt;
Можно автоматизировать парсинг pdf файлов и так далее.&lt;br /&gt;
&lt;br /&gt;
Реализация - все, что кажется в повседневном использовании удобнее, чем 3-4 файла pdf и парочка открытых папок с исходниками. Скорее всего десктоп, может веб.&lt;br /&gt;
&lt;br /&gt;
Предложили: Тагир Гумеров, Наталья Мурычева&lt;br /&gt;
&lt;br /&gt;
== Читалка для часов ==&lt;br /&gt;
&lt;br /&gt;
Реализовать читалку на основе технологии Spritz для фитнесс-браслета.&lt;br /&gt;
&lt;br /&gt;
[http://mit.spbau.ru/sewiki/index.php/WatchRead Страница проекта]&lt;br /&gt;
&lt;br /&gt;
Предложила : Мурычева Наталья&lt;br /&gt;
&lt;br /&gt;
== Умный мессенджер ==&lt;br /&gt;
&lt;br /&gt;
В современном мире практически каждый из нас зарегистрирован во многих мессенджерах и часто бывает непонятно в какой из них нужно отправлять сообщение, чтобы получатель как можно скорее увидел его. Неудобно самостоятельно выискивать в каком из мессенджерах получатель находится онлайн, поэтому предлагаю написать приложение, которое самостоятельно принимает решение в какой из мессенджеров отправлять сообщение (например туда, где получатель находится в режиме онлайн или, например, туда, где получатель был в самое ближайшее время). Можно реализовать как приложение под Android, IOS, так и под ПК.&lt;br /&gt;
&lt;br /&gt;
Технологии: Java, Python (может что-то ещё).&lt;br /&gt;
&lt;br /&gt;
Предложил: Калинин Владислав&lt;br /&gt;
&lt;br /&gt;
== Рекомендательная система для ярлыков в почте ==&lt;br /&gt;
&lt;br /&gt;
Если вы пользуетесь ярлыками (например в &amp;lt;code&amp;gt;GMail&amp;lt;/code&amp;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;
[[Devdays_Осень_2017/shared_online_buffer | Страничка проекта]]&lt;br /&gt;
&lt;br /&gt;
Когда на парах идет лайвкодинг, перепечатывать все с экрана бывает неудобно. Особенно когда ты неправильно расставил скобки где-то в Хаскеле, и пока ты искал ошибку, класс ушел очень далеко вперед и ты уже не понимаешь, о чем говорят эти люди. &lt;br /&gt;
&lt;br /&gt;
Было бы удобно иметь веб-сайт вроде Pastebin, но не являющийся статическим, а например работающий на вебсокетах и отображающий изменения в размещённом тексте в реальном времени. &lt;br /&gt;
&lt;br /&gt;
Работа с ним предполагается в таком ключе: преподаватель начинает пару, печатает и показывает что-то в своем редакторе текста, после чего копирует его содержимое и вставляет в текстовое поле в браузере. В начале пары он пишет на доске read-only-ссылку на данный текст. У всех студентов открыта эта ссылка, и в случае необходимости они могут просто скопировать код оттуда.&lt;br /&gt;
&lt;br /&gt;
После закрытия данного текста владельцем он либо сохраняется как в Pastebin, либо удаляется, чтобы можно было особо не париться с хранением. &lt;br /&gt;
&lt;br /&gt;
Технологии: можно сделать полностью на js (Node.js + какой-нибудь простенький фреймворк для фронтенда, чтобы руки не сильно пачкать). Насчет технологии для обновления текста у всех, кто наблюдает за пастой, не уверен, но это могут быть вебсокеты или что-то еще (в крайнем случае можно сделать и на обычном long-polling, но это не интересно).&lt;br /&gt;
&lt;br /&gt;
Предложил: Голышев Роман&lt;br /&gt;
&lt;br /&gt;
== Codemixer ==&lt;br /&gt;
&lt;br /&gt;
У студента АУ бывают моменты когда просто не обойтись без заимствования чужого когда. Например, если в домашке как часть задания требуется написать простой mergesort, но вы начали решать домашку за 5 минут до дедлайна, то было бы разумно взять mergesort со stackoverflow и для повышения оригинальности хотя бы переименовать переменные. &lt;br /&gt;
Предлагается избавить студентов от работы по повышению оригиналоьности кода и автоматизировать этот процесс для языка Python.&lt;br /&gt;
Технологии: python, ast, pymorphy.&lt;br /&gt;
&lt;br /&gt;
Предложил: Лапко Данила&lt;/div&gt;</summary>
		<author><name>Nikulin</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=13380</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=13380"/>
				<updated>2017-10-26T16:20:49Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &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;
&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;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=OS_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13164</id>
		<title>OS 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=OS_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13164"/>
				<updated>2017-10-12T18:16:50Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Кринкин Кирилл Владимирович&lt;br /&gt;
&lt;br /&gt;
Контакты: &amp;lt;code&amp;gt;[mailto:os-au@osll.ru os-au@osll.ru]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Live: https://slides.com/kirillkrinkin/deck/live&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''[https://github.com/OSLL/os-au-2017 Репозиторий курса на гитхабе]'''&lt;br /&gt;
** [https://github.com/OSLL/os-au-2017/tree/master/docs Презентации]&lt;br /&gt;
** [https://docs.google.com/spreadsheets/d/1dERdQc56nA9FXQKO6xW11bQ6osA41NofZSQbmU_i86o/edit Успеваемость]&lt;br /&gt;
&lt;br /&gt;
* '''[https://stepik.org/course/3636/syllabus Лабораторные работы]'''&lt;br /&gt;
** [http://mit.spbau.ru/sewiki/images/d/da/Os-dev-jos.pdf Русскоязыяное описание лабораторных работ]&lt;br /&gt;
** [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/lecture-notes-and-readings/ Задания лабораторных работ]:&lt;br /&gt;
**# [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab1.pdf C, Assembly, Tools, and Bootstrapping]&lt;br /&gt;
**# [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab2.pdf Memory Management]&lt;br /&gt;
**# [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab3.pdf User Environments]&lt;br /&gt;
**# [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab4.pdf Preemptive Multitasking]&lt;br /&gt;
**# [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/labs/MIT6_828F12_lab5.pdf Spawn and Shell]&lt;br /&gt;
&lt;br /&gt;
* '''Учебные материалы''' (дополнительные модули содержат хорошие источники):&lt;br /&gt;
** [https://stepik.org/course/1780/syllabus «Операционные системы»]&lt;br /&gt;
** [https://stepik.org/course/253/syllabus «Введение в архитектуру ЭВМ. Элементы операционных систем»]&lt;br /&gt;
** [https://stepik.org/course/548/syllabus «Основы программирования для Linux»]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Как запустить vagrant, qemu, и запатчить решение&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    sudo vagrant up --provider=docker&lt;br /&gt;
    sudo vagrant ssh default&lt;br /&gt;
&lt;br /&gt;
Содержимое &amp;lt;code&amp;gt;conf/env.mk&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    QEMU=/usr/bin/qemu-system-i386&lt;br /&gt;
    QEMUEXTRA=-curses&lt;br /&gt;
&lt;br /&gt;
Параметр &amp;lt;code&amp;gt;QEMUEXTRA&amp;lt;/code&amp;gt; можно не ставить (и так даже лучше); вместо этого нужно запускать &amp;lt;code&amp;gt;QEMU&amp;lt;/code&amp;gt; с помощью &amp;lt;code&amp;gt;make qemu-nox&amp;lt;/code&amp;gt; - тогда &amp;lt;code&amp;gt;QEMU&amp;lt;/code&amp;gt; запустится прямо в вашей консоли и вы не будете страдать. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Если вам не хочется потом каждый раз удалять переменную &amp;lt;code&amp;gt;QEMUEXTRA&amp;lt;/code&amp;gt; из гит-диффа, можете создать линку на исполняемый файл под именем &amp;lt;code&amp;gt;qemu&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
    sudo ln /usr/bin/qemu-system-i386 /usr/bin/qemu&lt;br /&gt;
&lt;br /&gt;
После этого все будет находиться.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
При проблемах с gdb (типа &amp;lt;code&amp;gt;warning: File &amp;quot;/home/vagrant/lab/.gdbinit&amp;quot; auto-loading has been declined by your `auto-load safe-path' set to &amp;quot;$debugdir:$datadir/auto-load:/vagrant/lab/.gdbinit&amp;quot;.&amp;lt;/code&amp;gt;) действовать так, как он укажет: добавить в файл &amp;lt;code&amp;gt;/home/vargant/.gdbinit&amp;lt;/code&amp;gt; одну из двух строк: &lt;br /&gt;
&lt;br /&gt;
    add-auto-load-safe-path /home/vagrant/lab/.gdbinit  &lt;br /&gt;
    set auto-load safe-path / &lt;br /&gt;
&lt;br /&gt;
И так, и так работает.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Если у вас проблемы с дублированием букв внутри &amp;lt;code&amp;gt;QEMU&amp;lt;/code&amp;gt;, не паникуйте - просто проверьте команды &amp;lt;code&amp;gt;help&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;kerninfo&amp;lt;/code&amp;gt; - скорее всего удваивание букв будет проигнорировано, и команды выполнятся.&lt;br /&gt;
&lt;br /&gt;
Для выхода из &amp;lt;code&amp;gt;QEMU&amp;lt;/code&amp;gt; используюйте сочетание клавиш &amp;lt;code&amp;gt;ctrl-a x&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Для создания файла с патчем работает следующая схема:&lt;br /&gt;
    &lt;br /&gt;
    sudo touch patch&lt;br /&gt;
    sudo chmod a+rw patch&lt;br /&gt;
    git diff &amp;gt; patch&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Совы не то, чем кажутся или The desc field contains the line number and the value contains the code address for the start of that source line:&lt;br /&gt;
http://www.sourceware.org/gdb/onlinedocs/stabs.html#Line-Numbers&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
При отправке патчей проверять сначала на своих репозиториях и следить за тем, чтобы концы строк были не ос-специфичными (типа \r\n на винде). С такими различиями патчи не применяются и падают с ошибкой&lt;br /&gt;
&lt;br /&gt;
Можно избежать проблемы с концами строк, если трансферить патч следующим образом: &lt;br /&gt;
&lt;br /&gt;
    vagrant ssh -c  &amp;quot;cat /home/vagrant/lab/patch&amp;quot; | dos2unix &amp;gt; patch&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Если вам лень вручную переносить изменения из виртуальной машины в файлы в вашем форкнутом репозитории, можете воспользоваться утилитой &amp;lt;code&amp;gt;patch&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
    cd solutions/${вставь_свою_фамилию}/lab1&lt;br /&gt;
    patch &amp;lt; your_patch_file&lt;br /&gt;
&lt;br /&gt;
Скорее всего, программа не поймет, где именно лежат ваши измененные файлы, и попросит указать пути к ним. Но это всяко лучше, чем руками копировать все это.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Os-dev-jos.pdf&amp;diff=13163</id>
		<title>Файл:Os-dev-jos.pdf</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:Os-dev-jos.pdf&amp;diff=13163"/>
				<updated>2017-10-12T18:09:36Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: Описание лабок для осей&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Описание лабок для осей&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13162</id>
		<title>CPP 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13162"/>
				<updated>2017-10-12T18:06:49Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Валерий Михайлович Лесин &amp;lt;code&amp;gt;[mailto:valery.lesin@gmail.com valery.lesin@gmail.com]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwWkZXVGotRVpqclU Материалы к курсу]&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwN2traWFIMmVLd0k Презентации]&lt;br /&gt;
&lt;br /&gt;
* [http://mit.spbau.ru/trac/cpp17m/ Багтрекер]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Ipd4JknpBnLFGfJRTskUk2NbetP2-j5S4zLUjEzjQCI/edit#gid=1651398680 Голосование за темы на семинарах]&lt;br /&gt;
&lt;br /&gt;
[https://ru.wikipedia.org/wiki/Постулат_Бертрана Теорема, для написания функции rehash к первой домашке]&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13161</id>
		<title>CPP 5SE осень 2017</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5SE_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2017&amp;diff=13161"/>
				<updated>2017-10-12T18:06:33Z</updated>
		
		<summary type="html">&lt;p&gt;Nikulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Преподаватель: Валерий Михайлович Лесин &amp;lt;code&amp;gt;[mailto:valery.lesin@gmail.com valery.lesin@gmail.com]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwWkZXVGotRVpqclU Материалы к курсу]&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/drive/folders/0B36cUGESY9fwN2traWFIMmVLd0k Презентации]&lt;br /&gt;
&lt;br /&gt;
* [http://mit.spbau.ru/trac/cpp17m/ Багтрекер]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1Ipd4JknpBnLFGfJRTskUk2NbetP2-j5S4zLUjEzjQCI/edit#gid=1651398680 Голосование за темы на семинарах]&lt;br /&gt;
[https://ru.wikipedia.org/wiki/Постулат_Бертрана Теорема, для написания функции rehash к первой домашке]&lt;/div&gt;</summary>
		<author><name>Nikulin</name></author>	</entry>

	</feed>