<?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=KorovinAA</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=KorovinAA"/>
		<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/KorovinAA"/>
		<updated>2026-05-01T19:20:35Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP,_5_%D0%BA%D1%83%D1%80%D1%81,_2_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80,_2016/17&amp;diff=11420</id>
		<title>CPP, 5 курс, 2 семестр, 2016/17</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP,_5_%D0%BA%D1%83%D1%80%D1%81,_2_%D1%81%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D1%80,_2016/17&amp;diff=11420"/>
				<updated>2017-06-19T07:10:32Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор — Лесин Валерий Михайлович&lt;br /&gt;
&lt;br /&gt;
Практика — Коровин Алексей Александрович, Москвитин Максим Александрович (m.a.moskvitin@gmail.com), Кривохатский Сергей (s.krivohatskiy+cpp-practice@gmail.com)&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/u/1/folders/0B36cUGESY9fwN2traWFIMmVLd0k Лекции]&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
&lt;br /&gt;
В группе Алексея будет 4 контрольная как в прошлом семестре. В остальных группах она заменена на дорешивание заданий с практик.&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/13z1v4Fw0ysZ2KdL6gWM3NAuh855jBKzQfRTNhLxKwTE Практика 1. Стандартная библиотека]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/153CP07eVAJhLd3g-WqlZSeX3hTwsnRhIIFuM8ri4XDY Практика 2. Инструменты разработки]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1FShYrrTW4UdaN9mlSXCMGwYgp2ca76K2O9sDsCvOduI Практика 3. Алгоритмы и функторы]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1llUHnoM96iRRKqloPOYAEg1dxtm5Cqk-HII612IGbl4 Практика 4. Bind &amp;amp; Function]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1UDt3z-gPIhm83L00W5Glqgoz1uliP6gm05R4Uq91fhc/edit?usp=sharing Практика 5. Контрольная 1. signal]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1_204s_2_1GwKNq0ilw6E3cd70lPIltevuEgy4HzIjWU/edit?usp=sharing Практика 6. SFINAE]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1SiKKlPADy9aokgZi7uOnm3Xu1UMRDTjgGDI5Ib9Yc5Q/edit?usp=sharing Практика 7. Исключения]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1G_2C1GeKyCTDYXOAHVBeGa-7KMeRhZ5hsbFcngHwP8o/edit?usp=sharing Практика 8. Мультиметоды]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/document/d/1_4P8dBCqruI9kDnbelLZF6GxZzxXHnpPM3bqp405HPo/edit?usp=sharing Практика 9. Контрольная 2. Serialize Args]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1YzvnB1NAUE-S7H5h3m_D80idSqoIC0RwTLpIFboY_w8 Практика 10. Строки]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1jJLYRh9mCyHzMg6yp0udicHSXQ0-C-taNDltRjIlw6o Практика 11. Preprocessor]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1eaH5Q_kCrwZkhXqQ8yvB58iiVIARmmXEGxutOuGI6LM Практика 12. Libraries]&lt;br /&gt;
&lt;br /&gt;
== Результаты ==&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1xtuHEtg6FvnaFpdq14NII6DBURnp3n4z7fKaMFVmaiQ табличка с результатами]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/presentation/d/1HDkiBMR1TcKlBblI-kzTH6yWTFybZ2thUUv5D3ZaKdg экзаменационная задача]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=CPP_5_2016&amp;diff=8242</id>
		<title>CPP 5 2016</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=CPP_5_2016&amp;diff=8242"/>
				<updated>2016-09-09T08:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор — Валерий Михайлович Лесин (&amp;lt;b&amp;gt;valery.lesin@gmail.com&amp;lt;/b&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Практика — Алексей Александрович Коровин в ауд. 433 (&amp;lt;b&amp;gt;doredox@gmail.com&amp;lt;/b&amp;gt;), Евгений Александрович Баталов (&amp;lt;b&amp;gt;eabatalov89[doggy]gmail.com&amp;lt;/b&amp;gt;), Антон Федорович Афанасьев (&amp;lt;b&amp;gt;anton.f.afanasev@yandex.ru&amp;lt;/b&amp;gt;),&lt;br /&gt;
Максим Москвитин (&amp;lt;b&amp;gt;m-moskvitin92@yandex.ru&amp;lt;/b&amp;gt;), Сергей Кривохатский (&amp;lt;b&amp;gt;s.krivohatskiy+cpp-practice@gmail.com&amp;lt;/b&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Практики ==&lt;br /&gt;
[https://drive.google.com/folderview?id=0B36cUGESY9fwSlR0cVBDbUN3QTA&amp;amp;usp=sharing Материалы лекций, семинаров, домашних заданий, результаты летучек]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3966</id>
		<title>C 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3966"/>
				<updated>2014-09-25T14:48:56Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Лесин Валерий Михайлович&lt;br /&gt;
&lt;br /&gt;
Практика - Коровин Алексей Александрович (doredox@gmail.com), Баталов Евгений Александрович (eabatalov89@gmail.com)&lt;br /&gt;
&lt;br /&gt;
== Trac ==&lt;br /&gt;
http://mit.spbau.ru/cpp14m&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B36cUGESY9fwRFhLc3ZjeFpHZjA&amp;amp;usp=sharing Доступ к слайдам лекция 2014]&lt;br /&gt;
&lt;br /&gt;
== Домашние задачи ==&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B36cUGESY9fweXhjbEo1ZWx3cmM&amp;amp;usp=sharing Задачи и правила их оформления]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Как сдавать работы ===&lt;br /&gt;
&lt;br /&gt;
==== Общие правила ====&lt;br /&gt;
* В семестре 3 домашних задачи. &lt;br /&gt;
* На каждую задачу дается 3 milestone'a. Последний - deadline. Обычно, время между milestone'ами - неделя (если особо не указано иное). &lt;br /&gt;
* На исходе каждого milestone'а проверяющий преподаватель забирает все задачи своей группы. После этого момента сдать задачу в рамках текущего milestone'a невозможно. &lt;br /&gt;
&lt;br /&gt;
==== Процесс сдачи ====&lt;br /&gt;
* Обязательно внимательно ознакомьтесь с [https://drive.google.com/file/d/0B36cUGESY9fwekZkTHk0emFySmM/edit?usp=sharing rules.pdf].&lt;br /&gt;
* Сделали задачу, коммитьте ее в свою папку в SVN репозиории в подпапку ha&amp;lt;N&amp;gt;, где N - номер домашней задачи &lt;br /&gt;
* Создавайте задачу в trac с типом 'запрос на проверку' своему руководителю семинаров (batalov или korovin). Важно сделать этот и предыдущий пункты до окончания времени milestone'a.&lt;br /&gt;
* Если:&lt;br /&gt;
** требуются исправления: преподаватель исправит тип таска на 'запрос на исправления'. Вы сможете исправить и сдать исправления к следующему milestone'у. Приоритет 'исправления'. Требования к исправлениям в комментариях. Для повторной сдачи не забудьте основа поменять тип задачи на 'запрос на проверку'. &lt;br /&gt;
** работа принимается, но есть помарки: то же, что и в предыдущем пункте, но приоритет у таска заменяется на 'рекомендация', выставляется статус решения 'задача сдана'.&lt;br /&gt;
** работа не принимается: выставляется статус решения 'задача не сдана'. Причины, возможно, указаны в комментариях (например, превышено количество попыток, нарушено более трех правил из rules.pdf и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Летучки == &lt;br /&gt;
&lt;br /&gt;
* [https://docs.google.com/spreadsheets/d/1QVHFNC_G0RYkg9kXkHVJq0Cl61PQoROeYXJx1KswT_U/edit?usp=sharing Результаты]&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
* [https://ru.surveymonkey.com/s/MYDVG3D Страница отзывов по практике (группа Алексея)]&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B-KXDlig5kwVaHhGaWNIRDdqTzg&amp;amp;usp=sharing Слайды с семинаров (группа Евгения)]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3955</id>
		<title>C 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3955"/>
				<updated>2014-09-25T09:23:51Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Лесин Валерий Михайлович&lt;br /&gt;
&lt;br /&gt;
Практика - Коровин Алексей Александрович, Баталов Евгений Александрович (eabatalov89@gmail.com)&lt;br /&gt;
&lt;br /&gt;
== Trac ==&lt;br /&gt;
http://mit.spbau.ru/cpp14m&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B36cUGESY9fwRFhLc3ZjeFpHZjA&amp;amp;usp=sharing Доступ к слайдам лекция 2014]&lt;br /&gt;
&lt;br /&gt;
== Домашние задачи ==&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B36cUGESY9fweXhjbEo1ZWx3cmM&amp;amp;usp=sharing Задачи и правила их оформления]&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
* [https://ru.surveymonkey.com/s/MYDVG3D Страница отзывов по практике (группа Алексея)]&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B-KXDlig5kwVaHhGaWNIRDdqTzg&amp;amp;usp=sharing Слайды с семинаров (группа Евгения)]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3808</id>
		<title>C 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3808"/>
				<updated>2014-09-18T11:39:10Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Практика */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Лесин Валерий Михайлович&lt;br /&gt;
&lt;br /&gt;
Практика - Коровин Алексей Александрович, Баталов Евгений Александрович (eabatalov89@gmail.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B36cUGESY9fwRFhLc3ZjeFpHZjA&amp;amp;usp=sharing Доступ к слайдам лекция 2014]&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
* [https://ru.surveymonkey.com/s/MYDVG3D Страница отзывов по практике (группа Алексея)]&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B-KXDlig5kwVaHhGaWNIRDdqTzg&amp;amp;usp=sharing Слайды с семинаров (группа Евгения)]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3807</id>
		<title>C 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3807"/>
				<updated>2014-09-18T08:38:41Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Лесин Валерий Михайлович&lt;br /&gt;
&lt;br /&gt;
Практика - Коровин Алексей Александрович, Баталов Евгений Александрович (eabatalov89@gmail.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B36cUGESY9fwRFhLc3ZjeFpHZjA&amp;amp;usp=sharing Доступ к слайдам лекция 2014]&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
* [https://ru.surveymonkey.com/s/MYDVG3D Страница отзывов по практике (группа Алексея)]&lt;br /&gt;
* [https://drive.google.com/folderview?id=0B-KXDlig5kwVaHhGaWNIRDdqTzg&amp;amp;usp=sharing Слайды с семинаров (группа Евгения)]&lt;br /&gt;
&lt;br /&gt;
http://goo.gl/z3GYO7&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3709</id>
		<title>C 2014</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=C_2014&amp;diff=3709"/>
				<updated>2014-09-11T13:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &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;
* [https://drive.google.com/folderview?id=0B36cUGESY9fwRFhLc3ZjeFpHZjA&amp;amp;usp=sharing Доступ к слайдам лекция 2014]&lt;br /&gt;
&lt;br /&gt;
== Практика ==&lt;br /&gt;
* [https://ru.surveymonkey.com/s/MYDVG3D Страница отзывов по практике (группа Алексея)]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9A%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D0%BD_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%BE%D0%B2%D0%B8%D1%87&amp;diff=3708</id>
		<title>Участник:Коровин Алексей Александрович</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:%D0%9A%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D0%BD_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%BE%D0%B2%D0%B8%D1%87&amp;diff=3708"/>
				<updated>2014-09-11T13:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;email: doredox@gmail.com&amp;lt;br&amp;gt;&lt;br /&gt;
skype: doredox&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=WhereIsMyMoney&amp;diff=1884</id>
		<title>WhereIsMyMoney</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=WhereIsMyMoney&amp;diff=1884"/>
				<updated>2012-11-13T08:12:25Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: Бесполезная фича&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Состав команды (а. 432) ==&lt;br /&gt;
&lt;br /&gt;
# Залим Башоров&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/Temp1ar/WhereIsMyMoney&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;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1776</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1776"/>
				<updated>2012-11-11T12:11:20Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Ссылки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Участники =&lt;br /&gt;
Опейкин Александр&amp;lt;br&amp;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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# Дать пользователю возможность сохранять какую-то информацию об объекте (&amp;quot;Это памятник&amp;quot;, &amp;quot;Это река&amp;quot;).&lt;br /&gt;
# Переходить на гугло-карты по нажатию на отображенный адрес&lt;br /&gt;
# Научиться распознавать контуры дома для более красивого отображения&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/Temp1ar/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1723</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1723"/>
				<updated>2012-10-25T22:17:23Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Опциональные фичи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Участники =&lt;br /&gt;
Опейкин Александр&amp;lt;br&amp;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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# Дать пользователю возможность сохранять какую-то информацию об объекте (&amp;quot;Это памятник&amp;quot;, &amp;quot;Это река&amp;quot;).&lt;br /&gt;
# Переходить на гугло-карты по нажатию на отображенный адрес&lt;br /&gt;
# Научиться распознавать контуры дома для более красивого отображения&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1722</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1722"/>
				<updated>2012-10-25T22:17:11Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Опциональные фичи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Участники =&lt;br /&gt;
Опейкин Александр&amp;lt;br&amp;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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# Дать пользователю возможность сохранять какую-то информацию об объекте (&amp;quot;Это памятник&amp;quot;, &amp;quot;Это река&amp;quot;).&lt;br /&gt;
# Переходить на гугло-карты по нажатию на отображенный адрес&lt;br /&gt;
# Научиться распознавать дома контуры дома для более красивого отображения&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1721</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1721"/>
				<updated>2012-10-25T22:16:18Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Участники */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Участники =&lt;br /&gt;
Опейкин Александр&amp;lt;br&amp;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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# Дать пользователю возможность сохранять какую-то информацию об объекте (&amp;quot;Это памятник&amp;quot;, &amp;quot;Это река&amp;quot;).&lt;br /&gt;
# Переходить на гугло-карты по нажатию на отображенный адрес&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1720</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1720"/>
				<updated>2012-10-25T22:15:28Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Цели */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# Дать пользователю возможность сохранять какую-то информацию об объекте (&amp;quot;Это памятник&amp;quot;, &amp;quot;Это река&amp;quot;).&lt;br /&gt;
# Переходить на гугло-карты по нажатию на отображенный адрес&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1719</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1719"/>
				<updated>2012-10-25T22:15:10Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Опциональные фичи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# Дать пользователю возможность сохранять какую-то информацию об объекте (&amp;quot;Это памятник&amp;quot;, &amp;quot;Это река&amp;quot;).&lt;br /&gt;
# Переходить на гугло-карты по нажатию на отображенный адрес&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1718</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1718"/>
				<updated>2012-10-25T22:13:38Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Цели */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# По координатам GPS и данным с сенсоров отображать адрес дома при наведении на него телефона.&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1717</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1717"/>
				<updated>2012-10-25T22:13:16Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Фичи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# По координатам GPS и данным с сенсоров отображать адрес дома при наведении на него телефона.&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1716</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1716"/>
				<updated>2012-10-25T22:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Фичи */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
# Определять собственные координаты с помощью GPS и используя какую-нибудь карту выделять ближайшие дома в радиусе видимости.&lt;br /&gt;
# Компас (и гироскоп?) использовать для выбора дома, на который мы смотрим.&lt;br /&gt;
# Отображать поверх изображения с камеры - адрес дома.&lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# По координатам GPS и данным с сенсоров отображать адрес дома при наведении на него телефона.&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1715</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1715"/>
				<updated>2012-10-25T22:09:08Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Цели */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
# По координатам GPS и данным с сенсоров отображать адрес дома при наведении на него телефона.&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1712</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1712"/>
				<updated>2012-10-25T14:06:10Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* К 31.10.2012 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
# По координатам GPS и данным с сенсоров отображать адрес дома при наведении на него телефона.&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
# Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%BE%D0%B2_2012&amp;diff=1711</id>
		<title>Разработка интерактивных интерфейсов 2012</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%BE%D0%B2_2012&amp;diff=1711"/>
				<updated>2012-10-25T14:04:45Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Проекты */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Кринкин Кирилл Владимирович&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
1. Кринкин М., Башоров З.&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/bashor/RemoteControl Remote Control]&lt;br /&gt;
&lt;br /&gt;
2. Кононенко, Сорокин, Казенюк&lt;br /&gt;
[https://github.com/griver/ARGame/wiki/ARGame-Description Description] [https://github.com/griver/ARGame/issues Issues] [https://github.com/griver/ARGame Repo]&lt;br /&gt;
&lt;br /&gt;
3. Опейкин, Коровин [[SpatialBrowser]] [[ARSkyMap]]&lt;br /&gt;
&lt;br /&gt;
4. Шеставин, Певзнер [[Stable_Reader]]&lt;br /&gt;
&lt;br /&gt;
5. Савельев, Фофанова:  [[Распознаватель эмоций]]&lt;br /&gt;
&lt;br /&gt;
6. Краско&lt;br /&gt;
[[Экран блокировки для BlackBerry]]&lt;br /&gt;
&lt;br /&gt;
7. Лазарев&lt;br /&gt;
&lt;br /&gt;
8. Великий&lt;br /&gt;
&lt;br /&gt;
9. Иванов&lt;br /&gt;
&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://docs.google.com/spreadsheet/ccc?key=0Ai0vg3CTwO9wdFFxQUMwX3Q4Tk9kZU1qd2JLdFRHd2c Рейтинг]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1710</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1710"/>
				<updated>2012-10-25T14:03:39Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
# По координатам GPS и данным с сенсоров отображать адрес дома при наведении на него телефона.&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
1. Вывести GPS координаты и данные с компаса/гироскопа на экран&lt;br /&gt;
2. Вывести изображение с камеры&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/SpatialBrowser Репозиторий SpatialBrowser]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1709</id>
		<title>SpatialBrowser</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SpatialBrowser&amp;diff=1709"/>
				<updated>2012-10-25T13:53:37Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: Новая страница: «= Участники = Опейкин Александр Коровин Алексей  = Цели = Пространственный браузер объектов…»&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;
# Отображать объекты в пространстве при наведении на них &lt;br /&gt;
&lt;br /&gt;
= Опциональные фичи =&lt;br /&gt;
# Убирать с экрана звёзды, которые находятся ниже линии горизонта&lt;br /&gt;
&lt;br /&gt;
= Задачи =&lt;br /&gt;
== К 31.10.2012 ==&lt;br /&gt;
# Отобразить изображение с камеры и отобразить поверх него какой-нибудь графический элемент.&lt;br /&gt;
# Собрать и запустить Stardroid из официального репозитория.&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/ARSkyMap Репозиторий ARSkyMap]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=ARSkyMap&amp;diff=1707</id>
		<title>ARSkyMap</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=ARSkyMap&amp;diff=1707"/>
				<updated>2012-10-25T13:45:10Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Участники =&lt;br /&gt;
Опейкин Александр&lt;br /&gt;
Коровин Алексей&lt;br /&gt;
&lt;br /&gt;
= Цели =&lt;br /&gt;
Для проекта [http://code.google.com/p/stardroid/ Stardroid] (ex. Google Sky 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;
== К 31.10.2012 ==&lt;br /&gt;
# Отобразить изображение с камеры и отобразить поверх него какой-нибудь графический элемент.&lt;br /&gt;
# Собрать и запустить Stardroid из официального репозитория.&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/ARSkyMap Репозиторий ARSkyMap]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%BE%D0%B2_2012&amp;diff=1699</id>
		<title>Разработка интерактивных интерфейсов 2012</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%BE%D0%B2_2012&amp;diff=1699"/>
				<updated>2012-10-25T13:25:34Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Проекты */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Кринкин Кирилл Владимирович&lt;br /&gt;
&lt;br /&gt;
== Проекты ==&lt;br /&gt;
1. Кринкин М., Башоров З.&amp;lt;br/&amp;gt;&lt;br /&gt;
[https://github.com/bashor/RemoteControl Remote Control]&lt;br /&gt;
&lt;br /&gt;
Текущие задачи:&lt;br /&gt;
   1. Определение формата и протокола передачи данных между клиентами и сервером&lt;br /&gt;
   2. Реализация WebSocket сервера (python, tornado)&lt;br /&gt;
   3. Реализация WebSocket сервиса на девайсе (андроид)&lt;br /&gt;
&lt;br /&gt;
2. Кононенко, Сорокин, Казенюк&lt;br /&gt;
[https://github.com/griver/ARGame/wiki/ARGame-Description Description] [https://github.com/griver/ARGame/issues Issues] [https://github.com/griver/ARGame Repo]&lt;br /&gt;
&lt;br /&gt;
3. Опейкин, Коровин [[ARSkyMap]]&lt;br /&gt;
&lt;br /&gt;
4. Шеставин, Певзнер [[Stable_Reader]]&lt;br /&gt;
&lt;br /&gt;
5. Савельев, Фофанова:  [[Распознаватель эмоций]]&lt;br /&gt;
&lt;br /&gt;
6. Краско&lt;br /&gt;
[[Экран блокировки для BlackBerry]]&lt;br /&gt;
&lt;br /&gt;
7. Лазарев&lt;br /&gt;
&lt;br /&gt;
8. Великий&lt;br /&gt;
&lt;br /&gt;
9. Иванов&lt;br /&gt;
&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://docs.google.com/spreadsheet/ccc?key=0Ai0vg3CTwO9wdFFxQUMwX3Q4Tk9kZU1qd2JLdFRHd2c Рейтинг]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=ARSkyMap&amp;diff=1696</id>
		<title>ARSkyMap</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=ARSkyMap&amp;diff=1696"/>
				<updated>2012-10-25T13:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Участники =&lt;br /&gt;
Опейкин Александр&lt;br /&gt;
Коровин Алексей&lt;br /&gt;
&lt;br /&gt;
= Цели =&lt;br /&gt;
Для проекта [http://code.google.com/p/stardroid/ Stardroid] (ex. Google Sky 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;
== К 31.10.2012 ==&lt;br /&gt;
# Отобразить изображение с камеры и отобразить поверх него какой-нибудь графический элемент.&lt;br /&gt;
# Собрать и запустить Stardroid из официального репозитория.&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
[https://github.com/opeykin/ARSkyMap Репозиторий ARSkyMap]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%8F%D0%B4%D1%80%D0%B5_Windows_2012&amp;diff=1623</id>
		<title>Программирование в ядре Windows 2012</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%8F%D0%B4%D1%80%D0%B5_Windows_2012&amp;diff=1623"/>
				<updated>2012-10-10T15:17:35Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Домашние задания */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Кринкин Кирилл Владимирович&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
#[http://code.google.com/p/windows-kernel-course/wiki/PR_ProcessExplorer Написать консольный ProcessViewer]&lt;br /&gt;
#[http://code.google.com/p/windows-kernel-course/wiki/PR_Explore Поразбираться и настроить среду]&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
*[http://code.google.com/p/windows-kernel-course Проект на googlecode]&lt;br /&gt;
*[http://groups.google.com/group/nt-kernel-course Рассылка для обсуждений]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=1613</id>
		<title>Сетевые технологии</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8&amp;diff=1613"/>
				<updated>2012-10-03T08:12:53Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Домашние задания */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Лектор - Кузнецов Антон Михайлович&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
# Есть два IP адреса и маска. Написать программу, которая отвечает на вопрос: лежат ли эти IP адреса в одной подсети&lt;br /&gt;
# Разобраться с tcpdump (написать команду и вывод команды в письме)&lt;br /&gt;
## Увидеть как пингуют мой компьютер&lt;br /&gt;
## Разобраться с ICMP type 3 запросами:&lt;br /&gt;
### Что приходит при отправке пакета на несуществующий узел&lt;br /&gt;
### Что приходит при отправке пакета и обрыве сети&lt;br /&gt;
### Что приходит при отправке пакета и кончается TTL&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%98%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=1454</id>
		<title>Исключения</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%98%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F&amp;diff=1454"/>
				<updated>2012-06-11T06:53:02Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Гарантии, которые может предоставлять код по отношению к исключениям */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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;
Также пользователь функции должен знать семантику кода возврата. Для кода возврата можно не создавать отдельную переменную в сигнатуре функции.&lt;br /&gt;
Можно возвращать значение, которое не входит в множество допустимых значений. Например, результат функции всегда положительный, но мы возвратим отрицательное число, если что-то пошло не так.&lt;br /&gt;
Тогда вызов будет короче, но мы совместим ответственности - результат будет отвечает и за ошибки. Если множество значений функции в перспективе может расшириться, то этот способ не подходит.&lt;br /&gt;
&lt;br /&gt;
== Глобальная переменная errno ==&lt;br /&gt;
Все функции в случае возникновения ошибки записывают ее код в глобальную переменную errno. Проверять errno может понадобиться после каждого вызова.&lt;br /&gt;
При таком подходе мы можем строить выражения из вызовов функций. Использование глобальной переменной требует синхронизации в многопоточных приложениях.&lt;br /&gt;
&lt;br /&gt;
== SEH, Signals ==&lt;br /&gt;
Платформенно зависимые исключения и сигналы от ОС. Например деление на 0, извлечение квадратного корня из отрицательного числа, разъименование нулевого указателя, порча стека и т.п.&lt;br /&gt;
Обычно говорят о том, что дальнейшее выполнение программы не имеет смысла, потому часто явно не обрабатываются в программах. 24/7/365 сервисы обычно требуют обработки таких исключений.&lt;br /&gt;
Это отдельная большая тема.&lt;br /&gt;
&lt;br /&gt;
== Assert ==&lt;br /&gt;
Это утверждения, логические условия, истинность которых проверяется либо во время выполнения, либо во время компиляции (static assert). &lt;br /&gt;
Если статическое утверждение во время компиляции ложно, то возникает ошибка компиляции. Если во время вполнения утверждение ложно, то&lt;br /&gt;
в стандартный поток ошибок выводится текст этого утверждения и программа завершается. &lt;br /&gt;
Assert'ы отключаются, если при компиляции определен символ NDEBUG.&lt;br /&gt;
&lt;br /&gt;
Пример:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;cassert&amp;gt;&lt;br /&gt;
assert(1 + 1 == 2 &amp;amp;&amp;amp; &amp;quot;working with field which charcteristic &amp;gt; 2&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Строка с комментарием к assert'у &amp;quot;working with ...&amp;quot; - это ненулевой char const *, потому он всегда True и не влияет на результат логического И.&lt;br /&gt;
&lt;br /&gt;
== Исключения ==&lt;br /&gt;
Исключение - событие, возникающее во время выполнения программы. Обычно обозначает что-то негативное. Существуют различные точки зрения на то, когда нужно использовать исключения.&lt;br /&gt;
Некоторые используют их, когда произошло малейшее нарушение работы программы (например ошибка конвертации строки в число), а другие только в случае если дальнейшее выполнение программы не имеет смысла.&lt;br /&gt;
&lt;br /&gt;
Работа с исключениями состоит из следующих этапов:&lt;br /&gt;
* Выполнено условие, при котором стоит сообщить внешнему коду о произошедшей ошибке.&lt;br /&gt;
* Бросается исключение.&lt;br /&gt;
* Исключение всплывает по стеку вызовов программы до первой точки, в которой это исключение может быть обработано.&lt;br /&gt;
* В обработчике исключения можно выполнить все действия для восстановления программы и продолжить ее выполнение или если это не возможно в данном месте кода, бросить новое исключение дальше по стеку. &lt;br /&gt;
* Если исключение не было обработано и всплыло выше функции main, то вызывается обработчик unexpected, который по умолчанию завершает выполнение программы.&lt;br /&gt;
&lt;br /&gt;
Некоторые моменты: &lt;br /&gt;
* Если исключение поймано (обработано), то вызовутся деструкторы всех объектов, которые лежали на стеке от места бросания до места обработки.&lt;br /&gt;
* Если мы выделим память в куче, а затем кинем исключение, то выделенная память не будет освобождена (деструктор указателя ничего не делает).&lt;br /&gt;
* Реальный механизм работы исключений и его накладные расходы зависит от разрядности процессора и ОС.&lt;br /&gt;
&lt;br /&gt;
Рассмотрим базовый синтаксис работы с исключениям ив C++:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
	try&lt;br /&gt;
	{&lt;br /&gt;
		if (a == 0)&lt;br /&gt;
			throw 0;&lt;br /&gt;
		int res = 10/a;&lt;br /&gt;
	}&lt;br /&gt;
	catch(int ex)&lt;br /&gt;
	{&lt;br /&gt;
		if (ex == 0)&lt;br /&gt;
			std::cerr &amp;lt;&amp;lt; &amp;quot;division by zero&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
	}&lt;br /&gt;
	catch(float ex)&lt;br /&gt;
	{&lt;br /&gt;
		if (ex &amp;gt;= 0)&lt;br /&gt;
			std::cerr &amp;lt;&amp;lt; &amp;quot;float&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Оператор &amp;lt;code&amp;gt;try {}&amp;lt;/code&amp;gt; показывает границы блока кода, в котором мы хотим ловить исключения. Исключения будут ловиться не только в самом блоке, &lt;br /&gt;
но и ниже по стеку вызовов - во всех функциях, вызванных из блока &amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Оператор &amp;lt;code&amp;gt;catch(...){}&amp;lt;/code&amp;gt; определяет код-обработчик исключения, который выполняется в случае если оно было кинуто в &amp;lt;code&amp;gt;try&amp;lt;/code&amp;gt;. Аргумент &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; означает что будут ловиться все исключения.&lt;br /&gt;
Если мы хотим перехватить исключение какого-то конкретного типа, то в аргументе &amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt; объявляют переменную этого типа. Для классов и структур используется константная ссылка.&lt;br /&gt;
* Оператор &amp;lt;code&amp;gt;throw&amp;lt;/code&amp;gt; принимает экземпляр типа, который мы хотим кинуть.&lt;br /&gt;
&lt;br /&gt;
Давайте поймем почему код, который бросает примитивные типы плох?&lt;br /&gt;
В обработчике &amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt; нам приходится проверять какое целое значение было кинуто, чтобы понять что с ним делать.&lt;br /&gt;
Мы можем определить отдельный класс для каждого исключения и бросать уже объекты этих классов. &lt;br /&gt;
Это избавит нас от необходимости проверять еще какую-то информацию, неявно передаваемую в кидаемом экземпляре примитивного типа.&lt;br /&gt;
Для удобства в стандартной библиотеки &amp;lt;code&amp;gt;stl&amp;lt;/code&amp;gt; уже есть класс исключений &amp;lt;code&amp;gt;std::exception&amp;lt;/code&amp;gt;, объявленный в файле &amp;lt;code&amp;gt;&amp;lt;exception&amp;gt;&amp;lt;/code&amp;gt;. Для поддержания единообразности кода на C++, следует наследовать свои классы исключений от него. Также у &amp;lt;code&amp;gt;std::exception&amp;lt;/code&amp;gt; есть виртуальный метод &amp;lt;code&amp;gt;what()&amp;lt;/code&amp;gt;, который удобно использовать для возвращения информации об исключении&lt;br /&gt;
в удобном для прочитывания человеком формате. Также стандартная библиотека определяет некоторые другие классы, например &amp;lt;code&amp;gt;std::logic_error, std::runtime_error, std::bad_alloc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Нужно помнить, что при выборе блока &amp;lt;code&amp;gt;catch&amp;lt;/code&amp;gt;, который соответствует кинутому исключению, приведение типов не происходит. Одновременно может быть активно только одно исключение, поэтому если во время всплытия исключения по стеку&lt;br /&gt;
до того как исключение найдет свой обработчик, кинется еще одно исключение, программа полностью закончит свое выполнение. Теперь давайте вспомним какой код выподняется &lt;br /&gt;
во время всплытия исключения - происходят вызовы всех деструкторов. Если хотябы один деструктор кинет исключение, то программа полностью завершится. Поэтому деструкторы не должны кидать исключений. &lt;br /&gt;
Теперь представим себе что будет, если кинуть исключение в конструкторе - до завершения конструктора объект не считается созданным, потому в случае падения исключения в конструкторе, деструктор создаваемого объекта &lt;br /&gt;
не будет вызван. То есть если мы уже выделили какой-то ресурс в конструкторе, а потом в нем возникло исключение, то ресурс не будут освобожден.&lt;br /&gt;
Поэтому надо писать конструкторы так, чтобы при возникновении в нем исключения, можно было освободить занятые ресурсы и сообщить об исключении дальше.&lt;br /&gt;
Напомним также, что при нормальной работе программы оператор &amp;lt;code&amp;gt;delete&amp;lt;/code&amp;gt; не кидает исключений, а оператор &amp;lt;code&amp;gt;new&amp;lt;/code&amp;gt; может.&lt;br /&gt;
Напишем класс, который освободит выделенную память если произошло исключение в конструкторе. &lt;br /&gt;
Здесь же используется специальный синтаксис для перехвата исключений в списке инициализации.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
struct A&lt;br /&gt;
{&lt;br /&gt;
	int* p1;&lt;br /&gt;
	int* p2;&lt;br /&gt;
&lt;br /&gt;
	A(size_t p1_sz, size_t p2_sz) &lt;br /&gt;
		try&lt;br /&gt;
		:	p1(new int[p1_sz])&lt;br /&gt;
		,	p2(0)&lt;br /&gt;
	{&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			p2 = new int[p2_sz];&lt;br /&gt;
		}&lt;br /&gt;
		catch(...)&lt;br /&gt;
		{&lt;br /&gt;
			delete[] p1; //only p1 allocated&lt;br /&gt;
			throw;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	catch(...)&lt;br /&gt;
	{&lt;br /&gt;
		//no memory allocated&lt;br /&gt;
		throw;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	~A()&lt;br /&gt;
	{&lt;br /&gt;
		delete[] p1;&lt;br /&gt;
		delete[] p2;&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Упражнение:&lt;br /&gt;
Опеределить сколько исключений может быть брошено в следующем участке кода, если a и b - экземпляры произвольных типов данных.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
	if (a + b == c + d)&lt;br /&gt;
	{&lt;br /&gt;
		return a * b;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&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;
&lt;br /&gt;
Напишем неполный класс массива, который реализует строгую гарантию исключений при копировании через конструктор.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
template&amp;lt;typename T&amp;gt;&lt;br /&gt;
struct Array&lt;br /&gt;
{&lt;br /&gt;
	Array(size_t size)&lt;br /&gt;
		:	size_(size)&lt;br /&gt;
		,	data_(new T[size])&lt;br /&gt;
	{}&lt;br /&gt;
&lt;br /&gt;
	Array(Array const &amp;amp; src)&lt;br /&gt;
	{&lt;br /&gt;
		T* old_data = data_;&lt;br /&gt;
		size_t old_size = size_;&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			data_ = new T[src.size_];&lt;br /&gt;
			size_ = src.size_;&lt;br /&gt;
			for(size_t i = 0; i &amp;lt; size_; ++i)&lt;br /&gt;
				data_[i] = src.data_[i];&lt;br /&gt;
		}&lt;br /&gt;
		catch(...)&lt;br /&gt;
		{&lt;br /&gt;
			delete [] data_;&lt;br /&gt;
			data_ = old_data;&lt;br /&gt;
			size_ = old_size;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
	T* data_;&lt;br /&gt;
	size_t size_;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1427</id>
		<title>НИР</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1427"/>
				<updated>2012-05-21T14:38:05Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Карта дорог ==&lt;br /&gt;
Руководитель: Лесин&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Иванов Антон&lt;br /&gt;
* Сорокин Артем&lt;br /&gt;
* Кононенко Василий&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 6.03.2012 - Первая встреча.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: подготовить результаты прошлого семестра для коллективного проекта.&lt;br /&gt;
** Сорокин, Иванов: разобраться с базовыми алгоритмами поиска кратчайших путей.&lt;br /&gt;
* 20.03.2012 - Третья встреча.&lt;br /&gt;
** Обсудили структуру проекта. Определили &amp;quot;первые шаги&amp;quot; реализации.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: Презентация (reaches), организация проекта, загрузка OSM формата, reaches preprocessing. &lt;br /&gt;
** Сорокин: создать wiki, github, разобраться с визуализатором и написать алг. Дейкстры, презентация? &lt;br /&gt;
** Иванов: web интерфейс (client-side), работающий сервер обрабатывающий запросы поиска евклидова расстояния между 2мя точками&lt;br /&gt;
** ?- допишите на какую тему презентации плиз.&lt;br /&gt;
* 27.03.2012&lt;br /&gt;
** Была проведена презентация Артема Сорокина по алгоритмам на графах (? уточни плз. название алгоритмов)&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Иванов: закончить предыдущее задание. (ServerSide договорились делать на python'e, клиент уже почти написан на javascript'e с использованием openLayers api)&lt;br /&gt;
* 13.04.2012&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: реализация препроцессинга с Penalties и Shortcuts.&lt;br /&gt;
** Сорокин: Transit points (?)&lt;br /&gt;
** Иванов: Веб-сервер (?)&lt;br /&gt;
* 15.05.2012&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: приблизительные reaches для полного графа, точные reaches для объединения с transit nodes, структура и интерфейс проекта.&lt;br /&gt;
** Иванов: взаимодействие с пользователем и интерфейсом проекта (?)&lt;br /&gt;
&lt;br /&gt;
== MyFit ==&lt;br /&gt;
Руководитель: EMC&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&lt;br /&gt;
* [http://osll.spb.ru/projects/myfit/ трекер]&lt;br /&gt;
* [http://code.google.com/p/myfit/ репозиторий]&lt;br /&gt;
Команда:&lt;br /&gt;
* Опейкин Александр&lt;br /&gt;
* Певзнер Алина&lt;br /&gt;
* Башоров Залим&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 09.03.2012 ==== &lt;br /&gt;
Выполнено 2 тестовых задания на Java и на GWT.&amp;lt;BR&amp;gt;&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3155 Опейкин] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3156 Певзнер] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3157 Башоров] (Готово)&lt;br /&gt;
&lt;br /&gt;
==== 12.03.2012 ====&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3175 Башоров] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3177 Опейкин] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3176 Певзнер] (Готово)&lt;br /&gt;
&lt;br /&gt;
==== 27.03.2012 ====&lt;br /&gt;
Митинг в EMC -- обсудили текущие задачи и тестовые задания. &amp;lt;br/&amp;gt;&lt;br /&gt;
Закоммитили рабочие версии кода по задачам, ожидаем ревью. &amp;lt;br/&amp;gt;&lt;br /&gt;
(задачи: [http://redmine.osll.spb.ru/issues/3175 Башоров], [http://redmine.osll.spb.ru/issues/3177 Опейкин], [http://redmine.osll.spb.ru/issues/3176 Певзнер])&lt;br /&gt;
&lt;br /&gt;
=== 09.03.2012 ===&lt;br /&gt;
Певзнер: обсудила замечания по результатам ревью по старой задаче, получила новую задачу переноса тегов для suite в button панель. &amp;lt;br/&amp;gt;&lt;br /&gt;
Башоров: сделать главную страницу для Test Suites. &amp;lt;br/&amp;gt;&lt;br /&gt;
Опейкин: реализация фильтрации на стороне сервера. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13.03.2012 ===&lt;br /&gt;
Unit testing seminar&lt;br /&gt;
&lt;br /&gt;
=== 19.03.2012 ===&lt;br /&gt;
Митинг в EMC -- обсудили текущие задачи и тестовые задания. &amp;lt;br/&amp;gt;&lt;br /&gt;
Башоров: получил новую задачу. &amp;lt;br/&amp;gt;&lt;br /&gt;
Опейкин:  &amp;lt;br/&amp;gt;&lt;br /&gt;
Певзнер: обсудила некоторые вопросы по новой задаче. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
Руководитель: Рубен Артурович Гиргидов&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Коровин Алексей&lt;br /&gt;
* Лазарев Сергей&lt;br /&gt;
* Кормишин Сергей&lt;br /&gt;
Отчёт:&amp;lt;br&amp;gt;&lt;br /&gt;
*1я встреча нам были выданы вводные задачи: &lt;br /&gt;
** Разобраться с CUDA, установить и настроить окружение. Написать простенький алгоритм. (Коровин А.)&lt;br /&gt;
** Вспомнить &amp;quot;всё&amp;quot; о регулярных выражениях: какие бывают, как пишутся (Лазарев С.)&lt;br /&gt;
** Найти обработчики регулярных выражений (Matcher'ы), разобраться в их строении и принципе работы. (Кормишин С.)&lt;br /&gt;
*2я встреча:&lt;br /&gt;
** Обсудили наши предыдущие задания, расписали план выполнения проекта, цели и др.&lt;br /&gt;
** Выданы следующие задачи:&lt;br /&gt;
**# Реализовать обработчик РВ на Cuda для одной и n строк (Коровин А.)&lt;br /&gt;
**# Найти обработчики РВ на CPU на C++ и адаптировать его для n строк (Кормишин С.)&lt;br /&gt;
**# Реализовать обработчик РВ нa cuBLAS (Лазарев С.)&lt;br /&gt;
*3я встреча:&lt;br /&gt;
** Обсудили наши успехи, искали нужное представление автомата в виде матрицы для задачи реализации РВ на cuBLAS&lt;br /&gt;
** Решили какие паттерны РВ будут в бенчмарках&lt;br /&gt;
** По CUDA на неделю нужно было реализовать простейшую схему распараллеливания существующих реализаций регулярных выражений(Regexp9, Cuda paper code) и посмотреть на производительность.&lt;br /&gt;
*4я встреча:&lt;br /&gt;
** Портированная библиотека работать не хочет и разобраться без отладчика - очень трудно. Попытались настроить удалённую отладку на CUDA. Всё настроилось, но софт (Nsight) очень сырой, происходят непонятные ошибки и они нигде не журналируются и не объясняются. (Коровин А.)&lt;br /&gt;
*5я встреча:&lt;br /&gt;
** Реализован поиск с помощью регулярных выражений на основе матричных вычислений с использованием библиотеки cuBLAS. Пока сделан поиск в одной строке. Дальше надо распараллелить на несколько строк. (Лазарев С.)&lt;br /&gt;
** Портированная библиотека после длительной отладки начала матчить строку с регулярным выражением. Задача 1 выражение - 1 строка решена. Следующая задача задействовать все ядра видеокарты и научиться матчить N строк на одно регулярное выражение. (Коровин А.)&lt;br /&gt;
** Реализовн поиск с помощью re2 одной строки на одном ядре. Теперь нужно сделать для n строк на к ядрах.&lt;br /&gt;
*6я встреча:&lt;br /&gt;
** Был реализован матчинг N строк на 1 регулярное выражение на CUDA. К следующей встрече нужно попробовать оптимизировать программу. (Коровин А.)&lt;br /&gt;
*7я встреча:&lt;br /&gt;
** Собираем данные, делаем отчет, приводим код в порядок.&lt;br /&gt;
&lt;br /&gt;
== Syrop ==&lt;br /&gt;
Руководитель: Смаль Александр Владимирович&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: [https://github.com/avsmal/Syrop Syrop]&amp;lt;BR/&amp;gt;&lt;br /&gt;
Wiki проекта: [https://github.com/avsmal/Syrop/wiki Github] &amp;lt;BR/&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Кринкин Михаил&lt;br /&gt;
* Мартынов Семён&lt;br /&gt;
* Крашенинникова Ксения&lt;br /&gt;
* Великий Алексей&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.&lt;br /&gt;
* 01/mar/2011 - Сode review.&lt;br /&gt;
* 05/mar/2011 - Введение договоренностей о code style, оформлении документации, спецификация на интерфейсы. Показ первого GUI, уточнение новых задач.&lt;br /&gt;
* 12/mar/2011 - Всё хорошо.&lt;br /&gt;
* 19/mar/2011 - Снова всё хорошо - работаем.&lt;br /&gt;
* 26/mar/2011 - Семен у нас большой шутник, см. список задач на трекере&lt;br /&gt;
&lt;br /&gt;
== Дублирующий код ==&lt;br /&gt;
Руководитель: Иваницкий&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: http://code.google.com/p/aptu-practice-code-duplication/ &amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Бандурин Дима (Project manager)&lt;br /&gt;
* Лепенькин Ярослав (Поиск дублирующего кода в C++)&lt;br /&gt;
* Фофанова Маша (Поиск дублирующего кода в Java)&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
===28.02.2012 - Вводная встреча===&lt;br /&gt;
* Распределение ролей в команде&lt;br /&gt;
:Бандурин Дима (Project manager)&lt;br /&gt;
:Лепенькин Ярослав. Изучение специфики C++ для поиска дублирующего кода&lt;br /&gt;
:Фофанова Маша. Изучение специфики Java для поиск дублирующего кода.&lt;br /&gt;
* Уточнение функционала&lt;br /&gt;
* Организационные вопросы&lt;br /&gt;
&lt;br /&gt;
===06.03.2012 - Контрольная встреча===&lt;br /&gt;
* Изучение существующих решений &lt;br /&gt;
** Michael Wise's Greedy String Tiling algorithm&lt;br /&gt;
** Преобразование Барроуза-Уиллера&lt;br /&gt;
** Алгоритм Рабина-Карпа&lt;br /&gt;
** Механизм использующийся в IntelliJ IDEA&lt;br /&gt;
[[Файл:Solutions.pdf|краткое описание]]&lt;br /&gt;
&lt;br /&gt;
===15.03.2012===&lt;br /&gt;
В рамках НИР необходимо ответить на три вопроса.&lt;br /&gt;
* Научная новизна&lt;br /&gt;
** Список существующих решений для нашей задачи.(Ярослав)&lt;br /&gt;
** Способы оценки существующих решений.(Маша) &lt;br /&gt;
** Библиотеки, для проведения испытания (исследуемая выборка) (Дмитрий)&lt;br /&gt;
* Рабочий прототип. Решено делать плагин на базе IntelliJ IDEA. Функциональность плагина будет выяснена дальше. &lt;br /&gt;
* Этапы разработки&lt;br /&gt;
Решено разбить разработку на три этапа.&lt;br /&gt;
# Определение требований к разрабатываемой программе.(3 недели)&lt;br /&gt;
# Создание прототипа (2 недели)&lt;br /&gt;
# Разработка плагина (4 недели)&lt;br /&gt;
## Основная функциональность (2 недели)&lt;br /&gt;
## Тестирование и доведение (2 неделя)&lt;br /&gt;
## Документирование и создание презентационных материалов (1 неделя параллельно со вторым пунктом.)&lt;br /&gt;
Итого 9 недель. Предположительный срок завершения проекта : 21 мая&lt;br /&gt;
&lt;br /&gt;
===21.03.2012===&lt;br /&gt;
*Возможные метрики для сравнения алгоритмов поиска дубликатов&lt;br /&gt;
** Время работы, используемая память, CPU&lt;br /&gt;
** Число правильно найденных дубликатов&lt;br /&gt;
*** Необходимо учитывать длину каждого дубликата, чтобы учитывать возможную вложенность. Длина дубликата определяется числом символов в нем.&lt;br /&gt;
** Число неправильно найденных дубликатов&lt;br /&gt;
*Метрики для алгоритмов замены дубликатов&lt;br /&gt;
** Объем кода, получающегося после замены найденных дубликатов на вызовы соответствующих методов&lt;br /&gt;
** Релевантность участка кода. Код считается иррелевантным, если его замена на предлагающийся код слишком трудоемка и не имеет смысла.&lt;br /&gt;
*Стоит также определить, на каких констукциях дубликатов алгоритмы работают лучше, а на каких хуже.&lt;br /&gt;
&lt;br /&gt;
===6.04.2012===&lt;br /&gt;
*Исследованы IdeaCodeDuplicatePlugin, Digger, Simian и получены следующие метрики:&lt;br /&gt;
**Весовой коэффициент. Каждой строке присваивается вес, который соответствует числу программ, сказавших, что эта строка что-то дублирует.&lt;br /&gt;
***idea   23310&lt;br /&gt;
***digger 34839&lt;br /&gt;
***simian 26050&lt;br /&gt;
**Коэффициент по пересечению. Если строка встретилась в результате несколько раз, она учитывается несколько раз.&lt;br /&gt;
***idea    0.94&lt;br /&gt;
***digger  0.92&lt;br /&gt;
***simian  0.94&lt;br /&gt;
**Коэффициент по объединению. Если строка встретилась в результате несколько раз, она учитывается несколько раз.&lt;br /&gt;
***idea    0.86&lt;br /&gt;
***digger  0.12&lt;br /&gt;
***simian  0.18&lt;br /&gt;
*Попарные сравнения алгоритмов по тем же параметрам:&lt;br /&gt;
**digger  |  1.12 | 0.55 | 29589&lt;br /&gt;
**simian  |  1.03 | 0.76 | 21863 &lt;br /&gt;
&lt;br /&gt;
**idea    | 1.0   | 0.93 |19123&lt;br /&gt;
**digger  | 1.0   | 0.15 | 28710&lt;br /&gt;
&lt;br /&gt;
**idea    | 1.0   | 0.89 | 18060&lt;br /&gt;
**simian  | 1.0   | 0.19 | 19921&lt;br /&gt;
* Решено использовать алгоритм из Simian.&lt;br /&gt;
&lt;br /&gt;
===11.04.2012===&lt;br /&gt;
: Пишется прототип, в основе которого лежит Simian. Прототип будет представлять собой плагин к IntelliJ IDEA. Для отображения найденных дублирующих строк будет использоваться механизм Inspections. В качестве возможных исправлений пользователю будет предложено заменить строки на вызов соответствующего метода. Эквивалентность найденных дублирующих строк будет дополнительно проверяться с помощью соответствующих синтаксических деревьев.&lt;br /&gt;
&lt;br /&gt;
===16.04.2012===&lt;br /&gt;
: Написан плагин для замены дублирующего кода вызовами соответствующих методов. В основе лежит поиск дубликатов IntelliJ Idea, так как при первом рассмотрении данный алгоритм находит гораздо более сложные дубликаты нежели Simian. В плагине используется механизм Inspections из IntelliJ Idea. При запуске анализатора кода находятся все public static методы, после чего каждый класс из предлагаемого скоупа анализируется на предмет наличия кода дублирующего найденные методы. Затем пользователю предлагается заменить дублирующий код на вызов соответствующих методов.&lt;br /&gt;
&lt;br /&gt;
===26.04.2012===&lt;br /&gt;
Новое распределение задач:&lt;br /&gt;
* Маша &lt;br /&gt;
** Дописать плагин для IntelliJ IDEA&lt;br /&gt;
***добавить анализ всех методов (не только public static)&lt;br /&gt;
***изучить анализ дубликатов IntelliJ IDEA и добавить нереализованные параметры выявления дубликатов в плагин&lt;br /&gt;
&lt;br /&gt;
* Ярослав&lt;br /&gt;
** Изучить Antlr и написать (упростить существующую?) грамматику для С(С++?)&lt;br /&gt;
&lt;br /&gt;
* Дима&lt;br /&gt;
** С помощью построенной Ярославом грамматики написать простейший анализатор дублирования кода для C(C++?)&lt;br /&gt;
&lt;br /&gt;
===14.05.2012===&lt;br /&gt;
Маша:&lt;br /&gt;
&lt;br /&gt;
*В плагин добавлены следующие возможности:&lt;br /&gt;
**поиск методов-дубликатов в иерархии;&lt;br /&gt;
**поиск дублирующих строк в иерархии и вынесение дублируемы строк в отдельный метод в предке.&lt;br /&gt;
&lt;br /&gt;
Распределение задач:&lt;br /&gt;
Маша:&lt;br /&gt;
*Дописать плагин:&lt;br /&gt;
**поиск дублирующих строк в братьях и вынесение дублируемых строк в отдельный метод в минимальном предке;&lt;br /&gt;
**анализ дубликатов в каждом классе (делает IntelliJ IDEA);&lt;br /&gt;
**исправить вынесение дублируемых строк из static-методов;&lt;br /&gt;
**возможность конфигурации:&lt;br /&gt;
***определение папки, в которой производится поиск дубликатов;&lt;br /&gt;
***определение папки, в которой производится замена дублирующего кода;&lt;br /&gt;
**проверить возможность поиска в java.lang.*;&lt;br /&gt;
**документация;&lt;br /&gt;
**тестирование.&lt;br /&gt;
&lt;br /&gt;
Ярослав и Дима:&lt;br /&gt;
*исследовать stl;&lt;br /&gt;
*написать прототип поисковика дубликатов в C++ на основе Antlr (например, pair&amp;lt;int,int&amp;gt;(2,3) стоит заменить на std::make_pair(2,3)). Предлагается производить замену в синтаксическом дереве.&lt;br /&gt;
&lt;br /&gt;
== Конфигуратор контейнеров AndroidVM ==&lt;br /&gt;
Руководитель: Кринкин К.В.&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Владислав Савельев&lt;br /&gt;
* Дмитрий Шеставин&lt;br /&gt;
* Сергей Казенюк ([[AVMConf_Kazenyuk|отчёты]])&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
13 марта. Встреча с разработчиками проекта. Поставлены задачи.&lt;br /&gt;
: Владислав: Послушал лекцию Кирилла Владимировича про QT. Подумал об интерфейсе конфигуратора. Написал очень черновой вариант, создающий и запускающий контейнеры. Начал смотреть видео лекций Кирилла Владимировича про QT и шаблон MVC, а также читать про QML.&lt;br /&gt;
&lt;br /&gt;
27 марта.&lt;br /&gt;
: Владислав: Написал интерфейс с лейаутами, правильно создающий контейнеры. Для создания добавил диалоговое окно (с валидацией адреса и прочих штук).&lt;br /&gt;
&lt;br /&gt;
10 апреля.&lt;br /&gt;
: Владислав: Переписал интерфейс с использованием «модели — представления — модели представления». Нарисовал иконок и спроектировал внешний вид приложения в перспективе для презентации Жени Баталова на предзащите.&lt;br /&gt;
: Добавил в программный интерфейс конфигуратора возможность для получения от устройства информации о списке контейнеров.&lt;br /&gt;
&lt;br /&gt;
30 апреля.&lt;br /&gt;
: Владислав: В программный интерфейс симулятора добавил функциональность для извлечения сервисов и их параметров и уведомления об их изменении.&lt;br /&gt;
&lt;br /&gt;
7 мая.&lt;br /&gt;
: Владислав: Встроил в MVC-архитектуру поддержку списка сервисов для устройства.&lt;br /&gt;
&lt;br /&gt;
14 мая.&lt;br /&gt;
: Владислав: Переписал поддержку параметров:&lt;br /&gt;
:: — разделил параметры и их значения&lt;br /&gt;
:: — в графическом интерфейсе убрал модели и вьюхи для сервисов и переделал всё с диалоговыми окнами и лейаутам, поскольку динамическая поддержка не нужна.&lt;br /&gt;
:: — упростил код, перевёл в package-by-layer.&lt;br /&gt;
&lt;br /&gt;
21 мая.&lt;br /&gt;
: Владислав: Добавил функциональность для уведомления устройства об изменении параметров.&lt;br /&gt;
&lt;br /&gt;
== Поиск дублирующих сообщений об ошибках ==&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Ждан Анна&lt;br /&gt;
* Краско Евгений&lt;br /&gt;
* Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
Отчет 03.03 - 11.03&lt;br /&gt;
* Настроено окружение: проект в MPS, проект в IDEA&lt;br /&gt;
* Описана модель данных на языке dnq&lt;br /&gt;
* Написан rest api для админки и для добавления в базу новых сообщений об ошибках&lt;br /&gt;
* Написан парсер сообщений об ошибках&lt;br /&gt;
* Написана первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Написаны базовые классы для запуска тестов (различные заглушки для методов сервлет-контейнера, создание контекста для бинов и тп)&lt;br /&gt;
* Написаны тесты на парсер и алгоритм сравнения&lt;br /&gt;
* Частично написаны тесты на rest api (jmeter)&lt;br /&gt;
&lt;br /&gt;
Отчет 11.03 - 18.03&lt;br /&gt;
* Улучшена первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Реализован альтернативный алгоритм сравнения сообщений об ошибках. &lt;br /&gt;
* Написаны тесты на оба алгоритма&lt;br /&gt;
* Реализован парсер сообщений об ошибках для языка C#. Парсер рассчитан на формат, принятый в Решарпере&lt;br /&gt;
* Написаны тесты на парсер&lt;br /&gt;
* В язык для рестовых тестов добавлена возможность проверять хереды респонса&lt;br /&gt;
* Добавлен ui для администрирования приложение&lt;br /&gt;
* Начата реализация JobProcessor'a, обрабатывающего сообщения об ошибках на предмет поиска дубликатов.&lt;br /&gt;
&lt;br /&gt;
Отчет 19.03 - 25.03&lt;br /&gt;
* Написан классификатор, разбивающий сообщения об ошибках на кластеры.&lt;br /&gt;
* Добавлены новые возможности web-интерфейса для администрирования приложения.&lt;br /&gt;
&lt;br /&gt;
Отчет 25.03 - 7.04&lt;br /&gt;
* Написан JobProcessor, разбивающий сообщения об ошибках на кластеры.&lt;br /&gt;
* Написаны тесты на JobProcessor&lt;br /&gt;
* Начата реализация интеграции приложения с Ютрэком&lt;br /&gt;
* Осуществлен переход на более новую версию библиотеки jersey&lt;br /&gt;
&lt;br /&gt;
Отчет 7.04 - 14.04&lt;br /&gt;
* Решены проблемы, связанные с переходом на более новую версию jersey (&amp;quot;плохой&amp;quot; формат json, исключения при сериализации объектов с дублирующими xml-элементами и тп)&lt;br /&gt;
* Начата работа над REST-клиентом для интеграции с YoutTack&lt;br /&gt;
&lt;br /&gt;
21.04 встреча не проводилась из-за практики по SE&lt;br /&gt;
&lt;br /&gt;
Отчет 21.04 - 28.04&lt;br /&gt;
* Продолжение работы над REST-клиентом&lt;br /&gt;
&lt;br /&gt;
Отчет 28.04 - 12.05&lt;br /&gt;
* Закончена работа над rest-клиентом, добавлены бины для конфигурирования&lt;br /&gt;
* Добавлены тесты на rest-клиент&lt;br /&gt;
* Начато внесение изменений в парсеры, обусловленное тем, что в Ютреке вместе со стек трейсами лежат пользовательские комментарии.&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1379</id>
		<title>НИР</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1379"/>
				<updated>2012-04-22T12:40:54Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Карта дорог ==&lt;br /&gt;
Руководитель: Лесин&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Иванов Антон&lt;br /&gt;
* Сорокин Артем&lt;br /&gt;
* Кононенко Василий&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 6.03.2012 - Первая встреча.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: подготовить результаты прошлого семестра для коллективного проекта.&lt;br /&gt;
** Сорокин, Иванов: разобраться с базовыми алгоритмами поиска кратчайших путей.&lt;br /&gt;
* 20.03.2012 - Третья встреча.&lt;br /&gt;
** Обсудили структуру проекта. Определили &amp;quot;первые шаги&amp;quot; реализации.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: Презентация (reaches), организация проекта, загрузка OSM формата, reaches preprocessing. &lt;br /&gt;
** Сорокин: создать wiki, github, разобраться с визуализатором и написать алг. Дейкстры, презентация? &lt;br /&gt;
** Иванов: web интерфейс (client-side), работающий сервер обрабатывающий запросы поиска евклидова расстояния между 2мя точками&lt;br /&gt;
** ?- допишите на какую тему презентации плиз.&lt;br /&gt;
* 27.03.2012&lt;br /&gt;
** Была проведена презентация Артема Сорокина по алгоритмам на графах (? уточни плз. название алгоритмов)&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Иванов: закончить предыдущее задание. (ServerSide договорились делать на python'e, клиент уже почти написан на javascript'e с использованием openLayers api)&lt;br /&gt;
* 13.04.2012&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: реализация препроцессинга с Penalties и Shortcuts.&lt;br /&gt;
** Сорокин: Transit points (?)&lt;br /&gt;
** Иванов: Веб-сервер (?)&lt;br /&gt;
&lt;br /&gt;
== MyFit ==&lt;br /&gt;
Руководитель: EMC&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&lt;br /&gt;
* [http://osll.spb.ru/projects/myfit/ трекер]&lt;br /&gt;
* [http://code.google.com/p/myfit/ репозиторий]&lt;br /&gt;
Команда:&lt;br /&gt;
* Опейкин Александр&lt;br /&gt;
* Певзнер Алина&lt;br /&gt;
* Башоров Залим&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 09.03.2012 ==== &lt;br /&gt;
Выполнено 2 тестовых задания на Java и на GWT.&amp;lt;BR&amp;gt;&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3155 Опейкин] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3156 Певзнер] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3157 Башоров] (Готово)&lt;br /&gt;
&lt;br /&gt;
==== 12.03.2012 ====&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3175 Башоров]&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3177 Опейкин]&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3176 Певзнер]&lt;br /&gt;
&lt;br /&gt;
==== 27.03.2012 ====&lt;br /&gt;
Митинг в EMC -- обсудили текущие задачи и тестовые задания. &amp;lt;br/&amp;gt;&lt;br /&gt;
Закоммитили рабочие версии кода по задачам, ожидаем ревью. &amp;lt;br/&amp;gt;&lt;br /&gt;
(задачи: [http://redmine.osll.spb.ru/issues/3175 Башоров], [http://redmine.osll.spb.ru/issues/3177 Опейкин], [http://redmine.osll.spb.ru/issues/3176 Певзнер])&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
Руководитель: Рубен Артурович Гиргидов&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Коровин Алексей&lt;br /&gt;
* Лазарев Сергей&lt;br /&gt;
* Кормишин Сергей&lt;br /&gt;
Отчёт:&amp;lt;br&amp;gt;&lt;br /&gt;
*1я встреча нам были выданы вводные задачи: &lt;br /&gt;
** Разобраться с CUDA, установить и настроить окружение. Написать простенький алгоритм. (Коровин А.)&lt;br /&gt;
** Вспомнить &amp;quot;всё&amp;quot; о регулярных выражениях: какие бывают, как пишутся (Лазарев С.)&lt;br /&gt;
** Найти обработчики регулярных выражений (Matcher'ы), разобраться в их строении и принципе работы. (Кормишин С.)&lt;br /&gt;
*2я встреча:&lt;br /&gt;
** Обсудили наши предыдущие задания, расписали план выполнения проекта, цели и др.&lt;br /&gt;
** Выданы следующие задачи:&lt;br /&gt;
**# Реализовать обработчик РВ на Cuda для одной и n строк (Коровин А.)&lt;br /&gt;
**# Найти обработчики РВ на CPU на C++ и адаптировать его для n строк (Кормишин С.)&lt;br /&gt;
**# Реализовать обработчик РВ нa cuBLAS (Лазарев С.)&lt;br /&gt;
*3я встреча:&lt;br /&gt;
** Обсудили наши успехи, искали нужное представление автомата в виде матрицы для задачи реализации РВ на cuBLAS&lt;br /&gt;
** Решили какие паттерны РВ будут в бенчмарках&lt;br /&gt;
** По CUDA на неделю нужно было реализовать простейшую схему распараллеливания существующих реализаций регулярных выражений(Regexp9, Cuda paper code) и посмотреть на производительность.&lt;br /&gt;
*4я встреча:&lt;br /&gt;
** Портированная библиотека работать не хочет и разобраться без отладчика - очень трудно. Попытались настроить удалённую отладку на CUDA. Всё настроилось, но софт (Nsight) очень сырой, происходят непонятные ошибки и они нигде не журналируются и не объясняются. (Коровин А.)&lt;br /&gt;
*5я встреча:&lt;br /&gt;
** Реализован поиск с помощью регулярных выражений на основе матричных вычислений с использованием библиотеки cuBLAS. Пока сделан поиск в одной строке. Дальше надо распараллелить на несколько строк. (Лазарев С.)&lt;br /&gt;
** Портированная библиотека после длительной отладки начала матчить строку с регулярным выражением. Задача 1 выражение - 1 строка решена. Следующая задача задействовать все ядра видеокарты и научиться матчить N строк на одно регулярное выражение. (Коровин А.)&lt;br /&gt;
** Реализовн поиск с помощью re2 одной строки на одном ядре. Теперь нужно сделать для n строк на к ядрах.&lt;br /&gt;
*6я встреча:&lt;br /&gt;
** Был реализован матчинг N строк на 1 регулярное выражение на CUDA. К следующей встрече нужно попробовать оптимизировать программу. (Коровин А.)&lt;br /&gt;
&lt;br /&gt;
== Syrop ==&lt;br /&gt;
Руководитель: Смаль Александр Владимирович&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: [https://github.com/avsmal/Syrop Syrop]&amp;lt;BR/&amp;gt;&lt;br /&gt;
Wiki проекта: [https://github.com/avsmal/Syrop/wiki Github] &amp;lt;BR/&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Кринкин Михаил&lt;br /&gt;
* Мартынов Семён&lt;br /&gt;
* Крашенинникова Ксения&lt;br /&gt;
* Великий Алексей&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.&lt;br /&gt;
* 01/mar/2011 - Сode review.&lt;br /&gt;
* 05/mar/2011 - Введение договоренностей о code style, оформлении документации, спецификация на интерфейсы. Показ первого GUI, уточнение новых задач.&lt;br /&gt;
* 12/mar/2011 - Всё хорошо.&lt;br /&gt;
* 19/mar/2011 - Снова всё хорошо - работаем.&lt;br /&gt;
* 26/mar/2011 - Семен у нас большой шутник, см. список задач на трекере&lt;br /&gt;
&lt;br /&gt;
== Дублирующий код ==&lt;br /&gt;
Руководитель: Иваницкий&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: http://code.google.com/p/aptu-practice-code-duplication/ &amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Бандурин Дима (Project manager)&lt;br /&gt;
* Лепенькин Ярослав (Поиск дублирующего кода в C++)&lt;br /&gt;
* Фофанова Маша (Поиск дублирующего кода в Java)&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
===28.02.2012 - Вводная встреча===&lt;br /&gt;
* Распределение ролей в команде&lt;br /&gt;
:Бандурин Дима (Project manager)&lt;br /&gt;
:Лепенькин Ярослав. Изучение специфики C++ для поиска дублирующего кода&lt;br /&gt;
:Фофанова Маша. Изучение специфики Java для поиск дублирующего кода.&lt;br /&gt;
* Уточнение функционала&lt;br /&gt;
* Организационные вопросы&lt;br /&gt;
&lt;br /&gt;
===06.03.2012 - Контрольная встреча===&lt;br /&gt;
* Изучение существующих решений &lt;br /&gt;
** Michael Wise's Greedy String Tiling algorithm&lt;br /&gt;
** Преобразование Барроуза-Уиллера&lt;br /&gt;
** Алгоритм Рабина-Карпа&lt;br /&gt;
** Механизм использующийся в IntelliJ IDEA&lt;br /&gt;
[[Файл:Solutions.pdf|краткое описание]]&lt;br /&gt;
&lt;br /&gt;
===15.03.2012===&lt;br /&gt;
В рамках НИР необходимо ответить на три вопроса.&lt;br /&gt;
* Научная новизна&lt;br /&gt;
** Список существующих решений для нашей задачи.(Ярослав)&lt;br /&gt;
** Способы оценки существующих решений.(Маша) &lt;br /&gt;
** Библиотеки, для проведения испытания (исследуемая выборка) (Дмитрий)&lt;br /&gt;
* Рабочий прототип. Решено делать плагин на базе IntelliJ IDEA. Функциональность плагина будет выяснена дальше. &lt;br /&gt;
* Этапы разработки&lt;br /&gt;
Решено разбить разработку на три этапа.&lt;br /&gt;
# Определение требований к разрабатываемой программе.(3 недели)&lt;br /&gt;
# Создание прототипа (2 недели)&lt;br /&gt;
# Разработка плагина (4 недели)&lt;br /&gt;
## Основная функциональность (2 недели)&lt;br /&gt;
## Тестирование и доведение (2 неделя)&lt;br /&gt;
## Документирование и создание презентационных материалов (1 неделя параллельно со вторым пунктом.)&lt;br /&gt;
Итого 9 недель. Предположительный срок завершения проекта : 21 мая&lt;br /&gt;
&lt;br /&gt;
===21.03.2012===&lt;br /&gt;
*Возможные метрики для сравнения алгоритмов поиска дубликатов&lt;br /&gt;
** Время работы, используемая память, CPU&lt;br /&gt;
** Число правильно найденных дубликатов&lt;br /&gt;
*** Необходимо учитывать длину каждого дубликата, чтобы учитывать возможную вложенность. Длина дубликата определяется числом символов в нем.&lt;br /&gt;
** Число неправильно найденных дубликатов&lt;br /&gt;
*Метрики для алгоритмов замены дубликатов&lt;br /&gt;
** Объем кода, получающегося после замены найденных дубликатов на вызовы соответствующих методов&lt;br /&gt;
** Релевантность участка кода. Код считается иррелевантным, если его замена на предлагающийся код слишком трудоемка и не имеет смысла.&lt;br /&gt;
*Стоит также определить, на каких констукциях дубликатов алгоритмы работают лучше, а на каких хуже.&lt;br /&gt;
&lt;br /&gt;
===6.04.2012===&lt;br /&gt;
*Исследованы IdeaCodeDuplicatePlugin, Digger, Simian и получены следующие метрики:&lt;br /&gt;
**Весовой коэффициент. Каждой строке присваивается вес, который соответствует числу программ, сказавших, что эта строка что-то дублирует.&lt;br /&gt;
***idea   23310&lt;br /&gt;
***digger 34839&lt;br /&gt;
***simian 26050&lt;br /&gt;
**Коэффициент по пересечению. Если строка встретилась в результате несколько раз, она учитывается несколько раз.&lt;br /&gt;
***idea    0.94&lt;br /&gt;
***digger  0.92&lt;br /&gt;
***simian  0.94&lt;br /&gt;
**Коэффициент по объединению. Если строка встретилась в результате несколько раз, она учитывается несколько раз.&lt;br /&gt;
***idea    0.86&lt;br /&gt;
***digger  0.12&lt;br /&gt;
***simian  0.18&lt;br /&gt;
*Попарные сравнения алгоритмов по тем же параметрам:&lt;br /&gt;
**digger  |  1.12 | 0.55 | 29589&lt;br /&gt;
**simian  |  1.03 | 0.76 | 21863 &lt;br /&gt;
&lt;br /&gt;
**idea    | 1.0   | 0.93 |19123&lt;br /&gt;
**digger  | 1.0   | 0.15 | 28710&lt;br /&gt;
&lt;br /&gt;
**idea    | 1.0   | 0.89 | 18060&lt;br /&gt;
**simian  | 1.0   | 0.19 | 19921&lt;br /&gt;
* Решено использовать алгоритм из Simian.&lt;br /&gt;
&lt;br /&gt;
===11.04.2012===&lt;br /&gt;
: Пишется прототип, в основе которого лежит Simian. Прототип будет представлять собой плагин к IntelliJ IDEA. Для отображения найденных дублирующих строк будет использоваться механизм Inspections. В качестве возможных исправлений пользователю будет предложено заменить строки на вызов соответствующего метода. Эквивалентность найденных дублирующих строк будет дополнительно проверяться с помощью соответствующих синтаксических деревьев.&lt;br /&gt;
&lt;br /&gt;
===16.04.2012===&lt;br /&gt;
: Написан плагин для замены дублирующего кода вызовами соответствующих методов. В основе лежит поиск дубликатов IntelliJ Idea, так как при первом рассмотрении данный алгоритм находит гораздо более сложные дубликаты нежели Simian. В плагине используется механизм Inspections из IntelliJ Idea. При запуске анализатора кода находятся все public static методы, после чего каждый класс из предлагаемого скоупа анализируется на предмет наличия кода дублирующего найденные методы. Затем пользователю предлагается заменить дублирующий код на вызов соответствующих методов.&lt;br /&gt;
&lt;br /&gt;
== Конфигуратор контейнеров AndroidVM ==&lt;br /&gt;
Руководитель: Кринкин К.В.&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Владислав Савельев&lt;br /&gt;
* Дмитрий Шеставин&lt;br /&gt;
* Сергей Казенюк ([[AVMConf_Kazenyuk|отчёты]])&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
13 марта. Встреча с разработчиками проекта. Поставлены задачи.&lt;br /&gt;
: Владислав: Послушал лекцию Кирилла Владимировича про QT. Подумал об интерфейсе конфигуратора. Написал очень черновой вариант, создающий и запускающий контейнеры. Начал смотреть видео лекций Кирилла Владимировича про QT и шаблон MVC, а также читать про QML.&lt;br /&gt;
&lt;br /&gt;
27 марта.&lt;br /&gt;
: Владислав: Написал интерфейс с лейаутами, правильно создающий контейнеры. Для создания добавил диалоговое окно (с валидацией адреса и прочих штук).&lt;br /&gt;
&lt;br /&gt;
10 апреля.&lt;br /&gt;
: Владислав: Переписал интерфейс с использованием «модели — представления — модели представления». Нарисовал иконок и спроектировал внешний вид приложения в перспективе для презентации Жени Баталова на предзащите.&lt;br /&gt;
: Добавил в программный интерфейс конфигуратора возможность для получения от устройства информации о списке контейнеров.&lt;br /&gt;
&lt;br /&gt;
== Поиск дублирующих сообщений об ошибках ==&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Ждан Анна&lt;br /&gt;
* Краско Евгений&lt;br /&gt;
* Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
Отчет 03.03 - 11.03&lt;br /&gt;
* Настроено окружение: проект в MPS, проект в IDEA&lt;br /&gt;
* Описана модель данных на языке dnq&lt;br /&gt;
* Написан rest api для админки и для добавления в базу новых сообщений об ошибках&lt;br /&gt;
* Написан парсер сообщений об ошибках&lt;br /&gt;
* Написана первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Написаны базовые классы для запуска тестов (различные заглушки для методов сервлет-контейнера, создание контекста для бинов и тп)&lt;br /&gt;
* Написаны тесты на парсер и алгоритм сравнения&lt;br /&gt;
* Частично написаны тесты на rest api (jmeter)&lt;br /&gt;
&lt;br /&gt;
Отчет 11.03 - 18.03&lt;br /&gt;
* Улучшена первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Реализован альтернативный алгоритм сравнения сообщений об ошибках. &lt;br /&gt;
* Написаны тесты на оба алгоритма&lt;br /&gt;
* Реализован парсер сообщений об ошибках для языка C#. Парсер рассчитан на формат, принятый в Решарпере&lt;br /&gt;
* Написаны тесты на парсер&lt;br /&gt;
* В язык для рестовых тестов добавлена возможность проверять хереды респонса&lt;br /&gt;
* Добавлен ui для администрирования приложение&lt;br /&gt;
* Начата реализация JobProcessor'a, обрабатывающего сообщения об ошибках на предмет поиска дубликатов.&lt;br /&gt;
&lt;br /&gt;
Отчет 19.03 - 25.03&lt;br /&gt;
* Написан классификатор, разбивающий сообщения об ошибках на кластеры.&lt;br /&gt;
* Добавлены новые возможности web-интерфейса для администрирования приложения.&lt;br /&gt;
&lt;br /&gt;
Отчет 25.03 - 7.04&lt;br /&gt;
* Написан JobProcessor, разбивающий сообщения об ошибках на кластеры.&lt;br /&gt;
* Написаны тесты на JobProcessor&lt;br /&gt;
* Начата реализация интеграции приложения с Ютрэком&lt;br /&gt;
* Осуществлен переход на более новую версию библиотеки jersey&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1372</id>
		<title>Android Notification</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1372"/>
				<updated>2012-04-19T17:46:12Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &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;
Blue charm&lt;br /&gt;
&lt;br /&gt;
==Ссылка на реп==&lt;br /&gt;
https://github.com/krinkinmu/Blue-Charm&lt;br /&gt;
&lt;br /&gt;
==Описание проекта==&lt;br /&gt;
Хочется сделать сервис Android, который позволит рассылать оповещения о событиях телефона по bluetooth. Например, сообщить по bluetooth&lt;br /&gt;
о пропущенных звонках и смс.&lt;br /&gt;
&lt;br /&gt;
==Список фич==&lt;br /&gt;
&lt;br /&gt;
* Собственно сам сервис Android позволяющий рассылать оповещения и Activity для его настройки&lt;br /&gt;
* Плагин собирающий сведения о пропущенных звонках и смс, и использующий сервис для оповещения&lt;br /&gt;
* Приемник оповещения на ПК&lt;br /&gt;
* (Опционально) приемник оповещения на Android устройстве&lt;br /&gt;
* (Опционально) рассылка оповещения не по Bluetooth (почта, смс, wi-fi, почтовый голубь, DHL)&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1371</id>
		<title>Android Notification</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1371"/>
				<updated>2012-04-19T17:45:58Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &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;
Blue charm&lt;br /&gt;
&lt;br /&gt;
==Ссылка на реп==&lt;br /&gt;
&lt;br /&gt;
==Описание проекта==&lt;br /&gt;
Хочется сделать сервис Android, который позволит рассылать оповещения о событиях телефона по bluetooth. Например, сообщить по bluetooth&lt;br /&gt;
о пропущенных звонках и смс.&lt;br /&gt;
&lt;br /&gt;
==Список фич==&lt;br /&gt;
&lt;br /&gt;
* Собственно сам сервис Android позволяющий рассылать оповещения и Activity для его настройки&lt;br /&gt;
* Плагин собирающий сведения о пропущенных звонках и смс, и использующий сервис для оповещения&lt;br /&gt;
* Приемник оповещения на ПК&lt;br /&gt;
* (Опционально) приемник оповещения на Android устройстве&lt;br /&gt;
* (Опционально) рассылка оповещения не по Bluetooth (почта, смс, wi-fi, почтовый голубь, DHL)&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1356</id>
		<title>Android Notification</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1356"/>
				<updated>2012-04-19T06:29:09Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &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;
Blue charm&lt;br /&gt;
&lt;br /&gt;
==Описание проекта==&lt;br /&gt;
Хочется сделать сервис Android, который позволит рассылать оповещения о событиях телефона по bluetooth. Например, сообщить по bluetooth&lt;br /&gt;
о пропущенных звонках и смс.&lt;br /&gt;
&lt;br /&gt;
==Список фич==&lt;br /&gt;
&lt;br /&gt;
* Собственно сам сервис Android позволяющий рассылать оповещения и Activity для его настройки&lt;br /&gt;
* Плагин собирающий сведения о пропущенных звонках и смс, и использующий сервис для оповещения&lt;br /&gt;
* Приемник оповещения на ПК&lt;br /&gt;
* (Опционально) приемник оповещения на Android устройстве&lt;br /&gt;
* (Опционально) рассылка оповещения не по Bluetooth (почта, смс, wi-fi, почтовый голубь, DHL)&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1353</id>
		<title>Android Notification</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1353"/>
				<updated>2012-04-19T06:22:27Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Описание проекта */&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;
==Описание проекта==&lt;br /&gt;
Хочется сделать сервис Android, который позволит рассылать оповещения о событиях телефона по bluetooth. Например, сообщить по bluetooth&lt;br /&gt;
о пропущенных звонках и смс.&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1352</id>
		<title>Android Notification</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1352"/>
				<updated>2012-04-19T06:22:06Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Описание проекта */&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;
==Описание проекта==&lt;br /&gt;
Хочется сделать сервис Android, который позволит рассылать оповещения о событиях телефона по bluetooth. Например, сообщить по bloetooth&lt;br /&gt;
о пропущенных звонках и смс.&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1348</id>
		<title>Android Notification</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1348"/>
				<updated>2012-04-18T18:56:52Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Описание проекта */&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;
==Описание проекта==&lt;br /&gt;
Хочется сделать программу для Android, которая при звонке, смске или другом значимом событии отправляет оповещение на какой-нибудь Bluetooth брелок/часы. В качестве дополнительной функциональности можно сделать оповещение других устройств, таких как ноутбук, стационарный компьютер или другое устройство на Android(планшет?).&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=DevDays&amp;diff=1344</id>
		<title>DevDays</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=DevDays&amp;diff=1344"/>
				<updated>2012-04-18T18:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Команды */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://twitter.com/#!/search/%23AUDevDays #AUDevDays]&lt;br /&gt;
&lt;br /&gt;
==Проекты==&lt;br /&gt;
* [[Android_Accelerometer|Акселерометр в Android]]: Мария Фофанова, Алина Певзнер &lt;br /&gt;
* [[Cheque_recognizer|Cheque (Receipt) recognizer]]: Дмитрий Шерставин, Залим Башоров, Семен Мартынов, Сергей Казенюк&lt;br /&gt;
* [[Android_Notification|Оповещения с Android]]: Михаил Кринкин, Алексей Коровин, Александр Опейкин, Сергей Лазарев, Ксения Крашенинникова&lt;br /&gt;
* [[Geo_Time_Tracker|Geo Time Tracker for Android]]: Евгений Краско, Алексей Кудинкин, Анна Ждан, Сорокин Артём, Ярослав Лепенькин &lt;br /&gt;
* [[DJVU_Formatter|DJVU форматер под маленькие разрешения экрана]]: Василий Кононенко, Дмитрий Бандурин&lt;br /&gt;
* [[GTD_tool|GTD(time managment) tool]]: Иванов Антон, Сергей Кормишин, Владислав Совельев&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=DevDays&amp;diff=1343</id>
		<title>DevDays</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=DevDays&amp;diff=1343"/>
				<updated>2012-04-18T18:14:57Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Описание Проектов */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://twitter.com/#!/search/%23AUDevDays #AUDevDays]&lt;br /&gt;
&lt;br /&gt;
==Команды==&lt;br /&gt;
* [[Android_Accelerometer|Акселерометр в Android]]: Мария Фофанова, Алина Певзнер &lt;br /&gt;
* [[Cheque_recognizer|Cheque (Receipt) recognizer]]: Дмитрий Шерставин, Залим Башоров, Семен Мартынов, Сергей Казенюк&lt;br /&gt;
* [[Android_Notification|Оповещения с Android]]: Михаил Кринкин, Алексей Коровин, Александр Опейкин, Сергей Лазарев, Ксения Крашенинникова&lt;br /&gt;
* [[Geo_Time_Tracker|Geo Time Tracker for Android]]: Евгений Краско, Алексей Кудинкин, Анна Ждан, Сорокин Артём, Ярослав Лепенькин &lt;br /&gt;
* [[DJVU_Formatter|DJVU форматер под маленькие разрешения экрана]]: Василий Кононенко, Дмитрий Бандурин&lt;br /&gt;
* [[GTD_tool|GTD(time managment) tool]]: Иванов Антон, Сергей Кормишин, Владислав Совельев&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1342</id>
		<title>Android Notification</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Notification&amp;diff=1342"/>
				<updated>2012-04-18T18:12:58Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: Новая страница: «==Команда== * Михаил Кринкин * [[Участник:Опейкин_Александ…»&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;
==Описание проекта==&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=IntroductionToProgrammingLanguages&amp;diff=1298</id>
		<title>IntroductionToProgrammingLanguages</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=IntroductionToProgrammingLanguages&amp;diff=1298"/>
				<updated>2012-04-12T20:52:47Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Полезные ссылки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Теоретические основы языков программирования'''&lt;br /&gt;
&lt;br /&gt;
Лектор - Дмитрий Юрьевич [http://www.matmex.spb.ru/photoalbum/person_teachers_BulychevDY_1.html Булычев]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheet/ccc?key=0ApYxPEC9C_QXdC00UkVJekxYV0pYYVAxTmFXUkt6SVE Учёт посещаемости занятий]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheet/ccc?key=0ApYxPEC9C_QXdE05Q09iWlRqRzJ3d1FwTlJRSEkxbFE Учёт сдачи домашних заданий]&lt;br /&gt;
&lt;br /&gt;
== Лекции ==&lt;br /&gt;
&lt;br /&gt;
* [http://code.google.com/p/aptu-tex/source/browse/formallang/les1/les.tex Лекция №1] 10.02.2012&lt;br /&gt;
* 17.02.2012&lt;br /&gt;
В семантике ошибка: правило для переменной вместо&lt;br /&gt;
 [x](s)=s(x)&lt;br /&gt;
читать как&lt;br /&gt;
 [x](s)=[s(x)](s).&lt;br /&gt;
* 24.02.2012&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
&lt;br /&gt;
=== Задание №1 ===&lt;br /&gt;
Cрок сдачи '''17 февраля 2011'''&lt;br /&gt;
&lt;br /&gt;
Написать генерирующее расширения для программы возведения в степень.&lt;br /&gt;
&lt;br /&gt;
    int exp (int x, int n) {&lt;br /&gt;
       int y = 1;&lt;br /&gt;
       while (n) {&lt;br /&gt;
           if (n % 2) y *= x;&lt;br /&gt;
           n /= 2;&lt;br /&gt;
           x *= x;&lt;br /&gt;
       }&lt;br /&gt;
       return y;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Это генерирующее расширение должно для своего единственного параметра n печатать остаточную программу, полученную специализацией функции exp на это значение n. Если это генерирующее расширение сохранит в себе какие-то черты exp, будет совсем хорошо.&lt;br /&gt;
&lt;br /&gt;
=== Задание №2 ===&lt;br /&gt;
Cрок сдачи '''24 февраля 2011'''&lt;br /&gt;
&lt;br /&gt;
Написать принтер, который по абстрактному синтаксическому дереву программы печатает её представление в конкретном синтаксисе (который мы обсуждали) и интерпретатор (который вычисляет значение выражения в данном состоянии).&lt;br /&gt;
&lt;br /&gt;
Описание конкретного синтаксиса для представления программ на языке L:&lt;br /&gt;
# Программа представляется в виде последовательности слов. Разделителем служит перевод строки.&lt;br /&gt;
# Пусть E --- выражение, а |E| --- представление этого выражения в данном конкретном синтаксисе. Тогда:&lt;br /&gt;
#* переменная v представляется в виде &amp;quot;x&amp;quot; v (то есть символ x (как терминал), и собственно имя переменной на следующей строчке).&lt;br /&gt;
#* функция {x -&amp;gt; E} представляется в виде &amp;quot;f&amp;quot; x |E|&lt;br /&gt;
#* применение функции F E представляется в виде &amp;quot;a&amp;quot; |E| |F|&lt;br /&gt;
#* условное выражение C ? T : E представляется в виде &amp;quot;?&amp;quot; |C| |T| |E|&lt;br /&gt;
#* бинарная операция X o Y представляется в виде &amp;quot;@&amp;quot; |X| |Y|&lt;br /&gt;
#* константа i представляется в виде &amp;quot;!&amp;quot; i &lt;br /&gt;
# Контекст (список определений name1=expr1, name2=expr2 и т.д.) представляется как последовательность name1 |expr1| name2 |expr2| и т.д.&lt;br /&gt;
# Программа (то есть выражение E в контексте C) представляется как последовательность |C| &amp;quot;;&amp;quot; |E|.&lt;br /&gt;
# Все реализации д.з. №2 должны уметь читать файл, содержащий описание программы в таком синтаксисе (иначе невозможно ничего проверить).&lt;br /&gt;
&lt;br /&gt;
Пример 1. Выражение&lt;br /&gt;
 {x -&amp;gt; {y -&amp;gt; x + y}} 1 2&lt;br /&gt;
в данном конкретном синтаксисе выглядит так:&lt;br /&gt;
 a&lt;br /&gt;
 a&lt;br /&gt;
 f&lt;br /&gt;
 x&lt;br /&gt;
 f&lt;br /&gt;
 y&lt;br /&gt;
 @&lt;br /&gt;
 +&lt;br /&gt;
 x&lt;br /&gt;
 x&lt;br /&gt;
 x&lt;br /&gt;
 y&lt;br /&gt;
 !&lt;br /&gt;
 1&lt;br /&gt;
 !&lt;br /&gt;
 2&lt;br /&gt;
&lt;br /&gt;
Пример 2. Программа&lt;br /&gt;
 fact = {n -&amp;gt; n ? n * (fact n-1) : 1};&lt;br /&gt;
 fact 4&lt;br /&gt;
будет представлена как&lt;br /&gt;
 fact&lt;br /&gt;
 f&lt;br /&gt;
 $0&lt;br /&gt;
 ?&lt;br /&gt;
 x&lt;br /&gt;
 $0&lt;br /&gt;
 @&lt;br /&gt;
 *&lt;br /&gt;
 x&lt;br /&gt;
 $0&lt;br /&gt;
 a&lt;br /&gt;
 x&lt;br /&gt;
 fact&lt;br /&gt;
 @&lt;br /&gt;
 -&lt;br /&gt;
 x&lt;br /&gt;
 $0&lt;br /&gt;
 !&lt;br /&gt;
 1&lt;br /&gt;
 !&lt;br /&gt;
 1&lt;br /&gt;
 ;&lt;br /&gt;
 a&lt;br /&gt;
 x&lt;br /&gt;
 fact&lt;br /&gt;
 !&lt;br /&gt;
 4&lt;br /&gt;
&lt;br /&gt;
[http://narod.ru/disk/42015820001.bfed0d23b277fa721f7e86f27dc45e3d/monoMix.opt.html Программа], которая воспринимает программы в языке L в обычном синтаксисе, и печатает их представление в данной упрощенной форме. Бинарник для x86-linux, -h --- помощь. &lt;br /&gt;
&lt;br /&gt;
=== Задание №3 ===&lt;br /&gt;
Желаемый срок сдачи '''26 февраля 2011'''&lt;br /&gt;
&lt;br /&gt;
# Написать порождающую грамматику для языка над алфавитом {a, b, c}, состоящего из всех слов, в которых количество букв a, b и c одинаково.&lt;br /&gt;
# Написать порождающую грамматику для языка над алфавитом {0, 1}, состоящего из всех слов, в которых не встречается две единицы подряд.&lt;br /&gt;
# Написать порождающую грамматику для языка над алфавитом {0, 1, *}, состоящего из всех слов вида sas, где s --- непустая строка нулей и единиц любой длины, а a --- непустая строка из звездочек любой длины.&lt;br /&gt;
# Написать порождающую грамматику для языка над алфавитом {a, b}, состоящего из всех вида a^nb^m, где n &amp;lt;&amp;gt; m.&lt;br /&gt;
# Написать порождающую грамматику для языка над алфавитом {a, b}, состоящего из всех слов, в которых количество букв a в два раза больше, чем количество букв b.&lt;br /&gt;
# Правда ли, что любой рекурсивный язык контекстно-зависим (обратное, как известно, верно)?&lt;br /&gt;
# Написать реализацию построения НКА по регулярной грамматике; написать интерпретатор этого автомата, который проверяет принадлежность заданного слова языку, и принтер, который печатает граф переходов автомата в формате .dot пакета graphviz.&lt;br /&gt;
# Написать грамматику для порождения выражений в алфавите {x, +, *, (, )},  где x играет роль операндов, * и + --- левоассоциативные операции (то есть E+F+G означает ((E+F)+G)), операция * связывает операнды сильнее, чем + (то есть E+F*G означает E+(F*G)), причем порождаемые выражения НЕ ДОЛЖНЫ содержать ненужных скобок (а именно, например, выражение x+(x*x) не должно порождаться)&lt;br /&gt;
----&lt;br /&gt;
[http://bashor.github.com/GrGen/GrGen.html Генератор] Залима для проверки 1-5 пунктов.&lt;br /&gt;
Коментарии:&lt;br /&gt;
 T -- терминальные символы. Пробелы и запятые игнорируются, т.е. abc == a b c == a b, c&lt;br /&gt;
 Все остальные символы считаются нетерминальными&lt;br /&gt;
 R -- правила преобразования вида: From : to&lt;br /&gt;
 пробелы и пустые строки игнорируются.&lt;br /&gt;
 Кроме того, можно указать свой чекер на JavaScript. Например:&lt;br /&gt;
 1) return countChar(st, 'a') == countChar(st, 'b') &amp;amp;&amp;amp; countChar(st, 'a') == countChar(st, 'c');&lt;br /&gt;
 2) return st.indexOf(&amp;quot;11&amp;quot;) == -1;&lt;br /&gt;
 3) var matches = /^([10]+)[*]+([10]+)$/g.exec(st);&lt;br /&gt;
 return matches[1] == matches[2] &amp;amp;&amp;amp; matches.length == 3;&lt;br /&gt;
 4) var matches = /^(a*)(b*)$/g.exec(st);&lt;br /&gt;
 return matches.length == 3 &amp;amp;&amp;amp; matches[1].length != matches[2].length;&lt;br /&gt;
 5) return countChar(st, 'a') == countChar(st, 'b') * 2;&lt;br /&gt;
 init -- (пере)инициализация&lt;br /&gt;
 step -- выполнение &amp;quot;одного шага&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Задание №4 ===&lt;br /&gt;
&lt;br /&gt;
# Проверить, что статич. семаника L, которую мы определили на занятии (новая переменная для каждой fun + попарно различные имена в контексте + имена переменных в fun отличаются от имен определений в контексте) действительно позволяет избежать неприятностей при подстановке, когда свободная переменная в подставляемом замыкается каким-то fun в том, куда подставляется.&lt;br /&gt;
# Написать на L быстрое возведение в степень и сортировку списка.&lt;br /&gt;
# Модифицировать defun и deint и те правила семантики, в которых они используются, чтобы из семантики для вычисления выражения получилась семантика моновариантного специализатора.&lt;br /&gt;
# Запустить специализатор для возведения в степень при известном показателе; разобраться и проинтерпретировать результаты.&lt;br /&gt;
# Разобраться с вопросом о замкнутости множества всех регулярных языков относительно пересечения.&lt;br /&gt;
# Разобраться с вопросом о разрешимости проблемы эквивалентности регулярных грамматик (она же --- проблема эквивалентности конечных автоматов); если разрешима --- разработать и реализовать алгоритм проверки эквивалентности.&lt;br /&gt;
# Написать для конечных автоматов:&lt;br /&gt;
#* Устранение \epsilon - переходов;&lt;br /&gt;
#* Приведение к детерминированной форме;&lt;br /&gt;
#* &amp;quot;Объединитель&amp;quot;, &amp;quot;дополнитель&amp;quot; и &amp;quot;замыкатель&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Задание №5 ===&lt;br /&gt;
&lt;br /&gt;
# Реализовать преобразование рег. грамматики в рег. выражение, определяющее тот же язык.&lt;br /&gt;
# Реализовать обратное преобразование.&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
&lt;br /&gt;
# Языки программирования, синтаксис, семантика, прагматика. Когнитивные особенности человеческого мышления и их влияние на развитие языков программирования.&lt;br /&gt;
# Языки программирования в ретроспективе. Процедурное, объектно-ориентированное, логическое и функциональное программирование. Предметно-ориентированные языки. Языки вне классификации. &lt;br /&gt;
# Абстрактный и конкретный синтаксис. Статическая и динамическая семантика. Компиляция и интерпретация. Проекции Футамуры-Ершова.&lt;br /&gt;
# Генеративный и аналитический подходы к описанию синтаксиса. Формальные грамматики, иерархия Хомского. &lt;br /&gt;
# Регулярные языки и конечные автоматы. Применение регулярных выражений в народном хозяйстве (grep/sed/awk) и для лексического анализа (lex/flex). Отсутствие бесконтекстной лексики в реальных языках программирования.&lt;br /&gt;
# Контекстно-свободные грамматики. Нормальные формы Хомского и Грейбах. Алгоритмы Эрли и Кока-Янгера-Касами. Неконтекстосвободность реальных языков программирования.&lt;br /&gt;
# Нисходящий анализ. Возврат и заглядывание вперед. Класс языков LL(k). Рекурсивный спуск, магазинные автоматы, парсер-комбинаторы, PEG, &amp;quot;скаредный&amp;quot; разбор. GLL. Инструменты нисходящего анализа (Parsec, ANTLR и пр.)&lt;br /&gt;
# Восходящий анализ, классы LR(k) и LALR(k). GLR. Инструменты восходящего анализа (yacc/bison).&lt;br /&gt;
# Двухуровневые и атрибутные грамматики, вопросы применения на практике.&lt;br /&gt;
# Идентификация. Область видимости и область действия. Статическое и динамическое, раннее и позднее связывание. &lt;br /&gt;
# Энергичность и ленивость. Call-by-name, call-by-value, call-by-reference.&lt;br /&gt;
# Строгость, чистота, прозрачность по ссылкам.&lt;br /&gt;
# Языки с типами и языки без типов. Статическая и динамическая типизация. &lt;br /&gt;
# Номинальная и структурная эквивалентность типов. Простейшие конструкторы.&lt;br /&gt;
# Типы с кванторами и что они означают. Универсальные и экзистенциальные типы. &lt;br /&gt;
# Subtyping. Структурный и номинальный subtyping. &lt;br /&gt;
# Динамическая семантика языков. Операционная семантика большого и малого шага.&lt;br /&gt;
# Денотационный подход к описанию семантики. &lt;br /&gt;
# Аксиоматическая семантика. Верификация программ. Design by contract.&lt;br /&gt;
# Когерентность языков программирования и машинных архитектур. Языково-специфичные архитектуры, виртуальные машины и JIT-компиляция.&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Структура рабочей программы. Код, данные, библиотеки, поддержка времени исполнения.&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Задача генерации кода. Генерация кода путем интерпретации.&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Восходящее переписывание деревьев и динамическое программирование (BURS).&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Алгоритмы распределения регистров. Распределение регистров и раскраска графов.&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Параллелизм на уровне инструкций. Планирование инструкций.&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Анализ потока управления. Глубинное остовное дерево, доминирование, анализ циклической структуры программ. Сводимость. Устранение недостижимого кода, оптимальная линеаризация.&lt;br /&gt;
#&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Анализ потока данных. Полурешеточная модель. RD, LV, AE, UEU. Устраненние мертвого кода, экономия общих подвыражений, понижение силы операций, чистка циклов.&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;nowiki&amp;gt;* - вопросы будут рассмотрены при наличии времени.&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
# S.Muchnik. Advanced Compiler Design &amp;amp; Implementation. Academic Press, Morgan Kaufmann, 1998.&lt;br /&gt;
# А.Ахо, Р.Сети, С.Ульман. Компиляторы: принципы, технологии, инструменты. Вильямс, 2003.&lt;br /&gt;
# А.Ахо, С.Ульман. Теория синтаксического анализа, перевода и компиляции. Том 1. М., &amp;quot;Мир&amp;quot;, 1978.&lt;br /&gt;
# F.Nielsen. Principles of Program Analysis. Springer, 2005.&lt;br /&gt;
# F.Nielse, H-R.Nielsen. Semantics with Applications. Wiley Professional Computing, 1992.&lt;br /&gt;
# B.Pierce. Types and Programming Languages. MIT Press, 2002.&lt;br /&gt;
# T.Пратт. Языки программирования: разработка и реализация. 1978.&lt;br /&gt;
# Б.К.Мартыненко. Языки и трансляции. Из-во СПбГУ, 2008.&lt;br /&gt;
&lt;br /&gt;
== Список групп для выполнения задач ==&lt;br /&gt;
&lt;br /&gt;
# [Haskell] Мартынов Семён, Башоров Залим, Казенюк Сергей, Витвицкий Александр, Тугарёв Денис.&lt;br /&gt;
# Кринкин Михаил, Лазарев Сергей, Фофанова Мария, Бандурин Дмитрий, Ждан Анна&lt;br /&gt;
# [JAVA] Сорокин Артём, Коровин Алексей, Опейкин Александр, Шеставин Дмитрий, Владислав Савельев&lt;br /&gt;
# [C++] Иванов Антон, Крашенинникова Ксения, Лепенькин Ярослав, Диевский Алексей, Кормишин Сергей&lt;br /&gt;
# Певзнер Алина, Князев Сергей&lt;br /&gt;
# [JAVA] Великий Алексей.&lt;br /&gt;
&lt;br /&gt;
''&amp;lt;nowiki&amp;gt;* Не более 5 человек в каждой группе; старайтесь выравнивать группы по уровню, и не повторяться в выборе языков.&amp;lt;/nowiki&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
== Полезные ссылки ==&lt;br /&gt;
&lt;br /&gt;
* [http://caml.inria.fr/ocaml/release.en.html Latest OCaml release]&lt;br /&gt;
* [http://caml.inria.fr/pub/docs/manual-ocaml/index.html Documentation and user’s manual]&lt;br /&gt;
&lt;br /&gt;
==== JFLAP ====&lt;br /&gt;
JFLAP is software for experimenting with formal languages topics including nondeterministic finite automata, nondeterministic pushdown automata, multi-tape Turing machines, several types of grammars, parsing, and L-systems. In addition to constructing and testing examples for these, JFLAP allows one to experiment with construction proofs from one form to another, such as converting an NFA to a DFA to a minimal state DFA to a regular expression or regular grammar. Click here for more information on what one can do with JFLAP.&lt;br /&gt;
* [http://www.jflap.org/ JFLAP]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1267</id>
		<title>НИР</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1267"/>
				<updated>2012-04-09T14:19:45Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Карта дорог ==&lt;br /&gt;
Руководитель: Лесин&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Иванов Антон&lt;br /&gt;
* Сорокин Артем&lt;br /&gt;
* Кононенко Василий&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 6.03.2012 - Первая встреча.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: подготовить результаты прошлого семестра для коллективного проекта.&lt;br /&gt;
** Сорокин, Иванов: разобраться с базовыми алгоритмами поиска кратчайших путей.&lt;br /&gt;
* 20.03.2012 - Третья встреча.&lt;br /&gt;
** Обсудили структуру проекта. Определили &amp;quot;первые шаги&amp;quot; реализации.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: Презентация (reaches), организация проекта, загрузка OSM формата, reaches preprocessing. &lt;br /&gt;
** Сорокин: создать wiki, github, разобраться с визуализатором и написать алг. Дейкстры, презентация? &lt;br /&gt;
** Иванов: web интерфейс (client-side), работающий сервер обрабатывающий запросы поиска евклидова расстояния между 2мя точками&lt;br /&gt;
** ?- допишите на какую тему презентации плиз.&lt;br /&gt;
* 27.03.2012&lt;br /&gt;
** Была проведена презентация Артема Сорокина по алгоритмам на графах (? уточни плз. название алгоритмов)&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Иванов: закончить предыдущее задание. (ServerSide договорились делать на python'e, клиент уже почти написан на javascript'e с использованием openLayers api)&lt;br /&gt;
&lt;br /&gt;
== MyFit ==&lt;br /&gt;
Руководитель: EMC&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&lt;br /&gt;
* [http://osll.spb.ru/projects/myfit/ трекер]&lt;br /&gt;
* [http://code.google.com/p/myfit/ репозиторий]&lt;br /&gt;
Команда:&lt;br /&gt;
* Опейкин Александр&lt;br /&gt;
* Певзнер Алина&lt;br /&gt;
* Башоров Залим&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 09.03.2012 ==== &lt;br /&gt;
Выполнено 2 тестовых задания на Java и на GWT.&amp;lt;BR&amp;gt;&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3155 Опейкин] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3156 Певзнер] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3157 Башоров] (Готово)&lt;br /&gt;
&lt;br /&gt;
==== 12.03.2012 ====&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3175 Башоров]&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3177 Опейкин]&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3176 Певзнер]&lt;br /&gt;
&lt;br /&gt;
==== 27.03.2012 ====&lt;br /&gt;
Митинг в EMC -- обсудили текущие задачи и тестовые задания. &amp;lt;br/&amp;gt;&lt;br /&gt;
Закоммитили рабочие версии кода по задачам, ожидаем ревью. &amp;lt;br/&amp;gt;&lt;br /&gt;
(задачи: [http://redmine.osll.spb.ru/issues/3175 Башоров], [http://redmine.osll.spb.ru/issues/3177 Опейкин], [http://redmine.osll.spb.ru/issues/3176 Певзнер])&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
Руководитель: Рубен Артурович Гиргидов&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Коровин Алексей&lt;br /&gt;
* Лазарев Сергей&lt;br /&gt;
* Кормишин Сергей&lt;br /&gt;
Отчёт:&amp;lt;br&amp;gt;&lt;br /&gt;
*1я встреча нам были выданы вводные задачи: &lt;br /&gt;
** Разобраться с CUDA, установить и настроить окружение. Написать простенький алгоритм. (Коровин А.)&lt;br /&gt;
** Вспомнить &amp;quot;всё&amp;quot; о регулярных выражениях: какие бывают, как пишутся (Лазарев С.)&lt;br /&gt;
** Найти обработчики регулярных выражений (Matcher'ы), разобраться в их строении и принципе работы. (Кормишин С.)&lt;br /&gt;
*2я встреча:&lt;br /&gt;
** Обсудили наши предыдущие задания, расписали план выполнения проекта, цели и др.&lt;br /&gt;
** Выданы следующие задачи:&lt;br /&gt;
**# Реализовать обработчик РВ на Cuda для одной и n строк (Коровин А.)&lt;br /&gt;
**# Найти обработчики РВ на CPU на C++ и адаптировать его для n строк (Кормишин С.)&lt;br /&gt;
**# Реализовать обработчик РВ нa cuBLAS (Лазарев С.)&lt;br /&gt;
*3я встреча:&lt;br /&gt;
** Обсудили наши успехи, искали нужное представление автомата в виде матрицы для задачи реализации РВ на cuBLAS&lt;br /&gt;
** Решили какие паттерны РВ будут в бенчмарках&lt;br /&gt;
** По CUDA на неделю нужно было реализовать простейшую схему распараллеливания существующих реализаций регулярных выражений(Regexp9, Cuda paper code) и посмотреть на производительность.&lt;br /&gt;
*4я встреча:&lt;br /&gt;
** Портированная библиотека работать не хочет и разобраться без отладчика - очень трудно. Попытались настроить удалённую отладку на CUDA. Всё настроилось, но софт (Nsight) очень сырой, происходят непонятные ошибки и они нигде не журналируются и не объясняются. (Коровин А.)&lt;br /&gt;
*5я встреча:&lt;br /&gt;
** Реализован поиск с помощью регулярных выражений на основе матричных вычислений с использованием библиотеки cuBLAS. Пока сделан поиск в одной строке. Дальше надо распараллелить на несколько строк. (Лазарев С.)&lt;br /&gt;
** Портированная библиотека после длительной отладки начала матчить строку с регулярным выражением. Задача 1 выражение - 1 строка решена. Следующая задача задействовать все ядра видеокарты и научиться матчить N строк на одно регулярное выражение. (Коровин А.)&lt;br /&gt;
&lt;br /&gt;
== Syrop ==&lt;br /&gt;
Руководитель: Смаль Александр Владимирович&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: [https://github.com/avsmal/Syrop Syrop]&amp;lt;BR/&amp;gt;&lt;br /&gt;
Wiki проекта: [https://github.com/avsmal/Syrop/wiki Github] &amp;lt;BR/&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Кринкин Михаил&lt;br /&gt;
* Мартынов Семён&lt;br /&gt;
* Крашенинникова Ксения&lt;br /&gt;
* Великий Алексей&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.&lt;br /&gt;
* 01/mar/2011 - Сode review.&lt;br /&gt;
* 05/mar/2011 - Введение договоренностей о code style, оформлении документации, спецификация на интерфейсы. Показ первого GUI, уточнение новых задач.&lt;br /&gt;
* 12/mar/2011 - Всё хорошо.&lt;br /&gt;
* 19/mar/2011 - Снова всё хорошо - работаем.&lt;br /&gt;
* 26/mar/2011 - Семен у нас большой шутник, см. список задач на трекере&lt;br /&gt;
&lt;br /&gt;
== Дублирующий код ==&lt;br /&gt;
Руководитель: Иваницкий&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: http://code.google.com/p/aptu-practice-code-duplication/ &amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Бандурин Дима (Project manager)&lt;br /&gt;
* Лепенькин Ярослав (Поиск дублирующего кода в C++)&lt;br /&gt;
* Фофанова Маша (Поиск дублирующего кода в Java)&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
===28.02.2012 - Вводная встреча===&lt;br /&gt;
* Распределение ролей в команде&lt;br /&gt;
:Бандурин Дима (Project manager)&lt;br /&gt;
:Лепенькин Ярослав. Изучение специфики C++ для поиска дублирующего кода&lt;br /&gt;
:Фофанова Маша. Изучение специфики Java для поиск дублирующего кода.&lt;br /&gt;
* Уточнение функционала&lt;br /&gt;
* Организационные вопросы&lt;br /&gt;
&lt;br /&gt;
===06.03.2012 - Контрольная встреча===&lt;br /&gt;
* Изучение существующих решений &lt;br /&gt;
** Michael Wise's Greedy String Tiling algorithm&lt;br /&gt;
** Преобразование Барроуза-Уиллера&lt;br /&gt;
** Алгоритм Рабина-Карпа&lt;br /&gt;
** Механизм использующийся в IntelliJ IDEA&lt;br /&gt;
[[Файл:Solutions.pdf|краткое описание]]&lt;br /&gt;
&lt;br /&gt;
===15.03.2012===&lt;br /&gt;
В рамках НИР необходимо ответить на три вопроса.&lt;br /&gt;
* Научная новизна&lt;br /&gt;
** Список существующих решений для нашей задачи.(Ярослав)&lt;br /&gt;
** Способы оценки существующих решений.(Маша) &lt;br /&gt;
** Библиотеки, для проведения испытания (исследуемая выборка) (Дмитрий)&lt;br /&gt;
* Рабочий прототип. Решено делать плагин на базе IntelliJ IDEA. Функциональность плагина будет выяснена дальше. &lt;br /&gt;
* Этапы разработки&lt;br /&gt;
Решено разбить разработку на три этапа.&lt;br /&gt;
# Определение требований к разрабатываемой программе.(3 недели)&lt;br /&gt;
# Создание прототипа (2 недели)&lt;br /&gt;
# Разработка плагина (4 недели)&lt;br /&gt;
## Основная функциональность (2 недели)&lt;br /&gt;
## Тестирование и доведение (2 неделя)&lt;br /&gt;
## Документирование и создание презентационных материалов (1 неделя параллельно со вторым пунктом.)&lt;br /&gt;
Итого 9 недель. Предположительный срок завершения проекта : 21 мая&lt;br /&gt;
&lt;br /&gt;
===21.03.2012===&lt;br /&gt;
*Возможные метрики для сравнения алгоритмов поиска дубликатов&lt;br /&gt;
** Время работы, используемая память, CPU&lt;br /&gt;
** Число правильно найденных дубликатов&lt;br /&gt;
*** Необходимо учитывать длину каждого дубликата, чтобы учитывать возможную вложенность. Длина дубликата определяется числом символов в нем.&lt;br /&gt;
** Число неправильно найденных дубликатов&lt;br /&gt;
*Метрики для алгоритмов замены дубликатов&lt;br /&gt;
** Объем кода, получающегося после замены найденных дубликатов на вызовы соответствующих методов&lt;br /&gt;
** Релевантность участка кода. Код считается иррелевантным, если его замена на предлагающийся код слишком трудоемка и не имеет смысла.&lt;br /&gt;
*Стоит также определить, на каких констукциях дубликатов алгоритмы работают лучше, а на каких хуже.&lt;br /&gt;
&lt;br /&gt;
== Конфигуратор контейнеров AndroidVM ==&lt;br /&gt;
Руководитель: Кринкин К.В.&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Владислав Савельев&lt;br /&gt;
* Дмитрий Шеставин&lt;br /&gt;
* Сергей Казенюк&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
13 марта. Встреча с разработчиками проекта. Поставлены задачи.&lt;br /&gt;
: Владислав: Послушал лекцию Кирилла Владимировича про QT. Подумал об интерфейсе конфигуратора. Написал очень черновой вариант, создающий и запускающий контейнеры. Начал смотреть видео лекций Кирилла Владимировича про QT и шаблон MVC, а также читать про QML.&lt;br /&gt;
&lt;br /&gt;
== Поиск дублирующих сообщений об ошибках ==&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Ждан Анна&lt;br /&gt;
* Краско Евгений&lt;br /&gt;
* Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
Отчет 03.03 - 11.03&lt;br /&gt;
* Настроено окружение: проект в MPS, проект в IDEA&lt;br /&gt;
* Описана модель данных на языке dnq&lt;br /&gt;
* Написан rest api для админки и для добавления в базу новых сообщений об ошибках&lt;br /&gt;
* Написан парсер сообщений об ошибках&lt;br /&gt;
* Написана первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Написаны базовые классы для запуска тестов (различные заглушки для методов сервлет-контейнера, создание контекста для бинов и тп)&lt;br /&gt;
* Написаны тесты на парсер и алгоритм сравнения&lt;br /&gt;
* Частично написаны тесты на rest api (jmeter)&lt;br /&gt;
&lt;br /&gt;
Отчет 11.03 - 18.03&lt;br /&gt;
* Улучшена первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Реализован альтернативный алгоритм сравнения сообщений об ошибках. &lt;br /&gt;
* Написаны тесты на оба алгоритма&lt;br /&gt;
* Реализован парсер сообщений об ошибках для языка C#. Парсер рассчитан на формат, принятый в Решарпере&lt;br /&gt;
* Написаны тесты на парсер&lt;br /&gt;
* В язык для рестовых тестов добавлена возможность проверять хереды респонса&lt;br /&gt;
* Добавлен ui для администрирования приложение&lt;br /&gt;
* Начата реализация JobProcessor'a, обрабатывающего сообщения об ошибках на предмет поиска дубликатов.&lt;br /&gt;
&lt;br /&gt;
Отчет 19.03 - 25.03&lt;br /&gt;
* Написан классификатор, разбивающий сообщения об ошибках на кластеры.&lt;br /&gt;
* Добавлены новые возможности web-интерфейса для администрирования приложения.&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=SE_Wiki&amp;diff=1235</id>
		<title>SE Wiki</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=SE_Wiki&amp;diff=1235"/>
				<updated>2012-04-02T11:01:18Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Учебная информация */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Учебная информация ==&lt;br /&gt;
&lt;br /&gt;
* [[Java | Java]]&lt;br /&gt;
* [[FunctionalProgramming | Функциональное программирование]]&lt;br /&gt;
* [[IntroductionToProgrammingLanguages | Теоретические основы языков программирования]]&lt;br /&gt;
* [[SoftwareDesign | Software design]]&lt;br /&gt;
* [[SE | Основы программной инженерии]]&lt;br /&gt;
* [[MachineLearning | Машинное обучение]]&lt;br /&gt;
* [[LinuxKernelProgramming | Программирование в ядре Linux]]&lt;br /&gt;
* [[NIR | Научно-исследовательская работа]]&lt;br /&gt;
* [[Теорема_Пойа | Теорема Пойа]]&lt;br /&gt;
* [[C++ | C++]]&lt;br /&gt;
* [[Алгоритмы_и_структуры_данных | Алгоритмы и структуры данных]]&lt;br /&gt;
&lt;br /&gt;
== Архив за прошлые семестры ==&lt;br /&gt;
[[Осень_2011|Осенний семестр 2011]]&lt;br /&gt;
&lt;br /&gt;
== Практики ==&lt;br /&gt;
* [[ Темы практик |Темы практик, весна 2011-го года]]&lt;br /&gt;
* [[Темы практик, 5SE, осень 2011-го года ]]&lt;br /&gt;
&lt;br /&gt;
== Студенты ==&lt;br /&gt;
* [[2010|Набор 2010-го года (группа 604)]]&lt;br /&gt;
* [[2011|Набор 2011-го года]]&lt;br /&gt;
== Важные ссылки ==&lt;br /&gt;
Для 5-го курса:&lt;br /&gt;
* [http://code.google.com/p/spbau-cpp-2011/ cpp] - репозиторий для лабораторных по С++.&lt;br /&gt;
Для 6-го курса:&lt;br /&gt;
* [http://code.google.com/p/hpcource/ hpcource] - репозиторий для лабораторных по параллельному программированию.&lt;br /&gt;
* [http://code.google.com/p/mathvm/ mathvm] - репозиторий для лабораторных по виртуальным машинам.&lt;br /&gt;
* [http://code.google.com/p/spbau-network-2011/source/checkout spbau-network-2011] -  репозиторий для лабораторных по сетевым технологиям.&lt;br /&gt;
Для всех:&lt;br /&gt;
* [http://code.google.com/p/aptu-os/source/checkout aptu-os] - репозиторий для лабораторных по операционным системам.&lt;br /&gt;
&lt;br /&gt;
== Дополнительно == &lt;br /&gt;
* [[Q&amp;amp;A]]&lt;br /&gt;
* [[Мероприятия]]&lt;/div&gt;</summary>
		<author><name>KorovinAA</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&amp;diff=1234</id>
		<title>Алгоритмы и структуры данных</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&amp;diff=1234"/>
				<updated>2012-04-02T11:00:15Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Интересное в сети ==&lt;br /&gt;
*[http://habrahabr.ru/post/113642/ Быстрое умножение многочленов при помощи преобразования Фурье с оптимизациями и примерами применения]&lt;br /&gt;
*[http://habrahabr.ru/post/140837/ Нечеткий кластерный анализ на примере социально-экономических показателей крупных городов России] (Machine Learning)&lt;br /&gt;
*[http://www.lektorium.tv/course/?id=22823 Видео-курс лекций за 1 семестр из CSC]&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1232</id>
		<title>НИР</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1232"/>
				<updated>2012-04-01T15:41:15Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Карта дорог ==&lt;br /&gt;
Руководитель: Лесин&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Иванов Антон&lt;br /&gt;
* Сорокин Артем&lt;br /&gt;
* Кононенко Василий&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 6.03.2012 - Первая встреча.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: подготовить результаты прошлого семестра для коллективного проекта.&lt;br /&gt;
** Сорокин, Иванов: разобраться с базовыми алгоритмами поиска кратчайших путей.&lt;br /&gt;
* 20.03.2012 - Третья встреча.&lt;br /&gt;
** Обсудили структуру проекта. Определили &amp;quot;первые шаги&amp;quot; реализации.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: Презентация?, организация проекта, загрузка OSM формата, preprocessing reach points&lt;br /&gt;
** Сорокин: создать wiki, github, разобраться с визуализатором и написать алг. Дейкстры, презентация? &lt;br /&gt;
** Иванов: web интерфейс (client-side), работающий сервер обрабатывающий запросы поиска евклидова расстояния между 2мя точками&lt;br /&gt;
** ?- допишите на какую тему презентации плиз.&lt;br /&gt;
* 27.03.2012&lt;br /&gt;
** Была проведена презентация Артема Сорокина по алгоритмам на графах (? уточни плз. название алгоритмов)&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Иванов: закончить предыдущее задание. (ServerSide договорились делать на python'e, клиент уже почти написан на javascript'e с использованием openLayers api)&lt;br /&gt;
&lt;br /&gt;
== MyFit ==&lt;br /&gt;
Руководитель: EMC&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&lt;br /&gt;
* [http://osll.spb.ru/projects/myfit/ трекер]&lt;br /&gt;
* [http://code.google.com/p/myfit/ репозиторий]&lt;br /&gt;
Команда:&lt;br /&gt;
* Опейкин Александр&lt;br /&gt;
* Певзнер Алина&lt;br /&gt;
* Башоров Залим&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 09.03.2012 ==== &lt;br /&gt;
Выполнено 2 тестовых задания на Java и на GWT.&amp;lt;BR&amp;gt;&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3155 Опейкин] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3156 Певзнер] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3157 Башоров] (Готово)&lt;br /&gt;
&lt;br /&gt;
==== 12.03.2012 ====&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3175 Башоров]&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3177 Опейкин]&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3176 Певзнер]&lt;br /&gt;
&lt;br /&gt;
==== 27.03.2012 ====&lt;br /&gt;
Митинг в EMC -- обсудили текущие задачи и тестовые задания. &amp;lt;br/&amp;gt;&lt;br /&gt;
Закоммитили рабочие версии кода по задачам, ожидаем ревью. &amp;lt;br/&amp;gt;&lt;br /&gt;
(задачи: [http://redmine.osll.spb.ru/issues/3175 Башоров], [http://redmine.osll.spb.ru/issues/3177 Опейкин], [http://redmine.osll.spb.ru/issues/3176 Певзнер])&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
Руководитель: Рубен Артурович Гиргидов&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Коровин Алексей&lt;br /&gt;
* Лазарев Сергей&lt;br /&gt;
* Кормишин Сергей&lt;br /&gt;
Отчёт:&amp;lt;br&amp;gt;&lt;br /&gt;
*1я встреча нам были выданы вводные задачи: &lt;br /&gt;
** Разобраться с CUDA, установить и настроить окружение. Написать простенький алгоритм. (Коровин А.)&lt;br /&gt;
** Вспомнить &amp;quot;всё&amp;quot; о регулярных выражениях: какие бывают, как пишутся (Лазарев С.)&lt;br /&gt;
** Найти обработчики регулярных выражений (Matcher'ы), разобраться в их строении и принципе работы. (Кормишин С.)&lt;br /&gt;
*2я встреча:&lt;br /&gt;
** Обсудили наши предыдущие задания, расписали план выполнения проекта, цели и др.&lt;br /&gt;
** Выданы следующие задачи:&lt;br /&gt;
**# Реализовать обработчик РВ на Cuda для одной и n строк (Коровин А.)&lt;br /&gt;
**# Найти обработчики РВ на CPU на C++ и адаптировать его для n строк (Кормишин С.)&lt;br /&gt;
**# Реализовать обработчик РВ нa cuBLAS (Лазарев С.)&lt;br /&gt;
*3я встреча:&lt;br /&gt;
** Обсудили наши успехи, искали нужное представление автомата в виде матрицы для задачи реализации РВ на cuBLAS&lt;br /&gt;
** Решили какие паттерны РВ будут в бенчмарках&lt;br /&gt;
** По CUDA на неделю нужно было реализовать простейшую схему распараллеливания существующих реализаций регулярных выражений(Regexp9, Cuda paper code) и посмотреть на производительность.&lt;br /&gt;
*4я встреча:&lt;br /&gt;
** Портированная библиотека работать не хочет и разобраться без отладчика - очень трудно. Попытались настроить удалённую отладку на CUDA. Всё настроилось, но софт (Nsight) очень сырой, происходят непонятные ошибки и они нигде не журналируются и не объясняются.&lt;br /&gt;
&lt;br /&gt;
== Syrop ==&lt;br /&gt;
Руководитель: Смаль Александр Владимирович&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: [https://github.com/avsmal/Syrop Syrop]&amp;lt;BR/&amp;gt;&lt;br /&gt;
Wiki проекта: [https://github.com/avsmal/Syrop/wiki Github] &amp;lt;BR/&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Кринкин Михаил&lt;br /&gt;
* Мартынов Семён&lt;br /&gt;
* Крашенинникова Ксения&lt;br /&gt;
* Великий Алексей&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.&lt;br /&gt;
* 01/mar/2011 - Сode review.&lt;br /&gt;
* 05/mar/2011 - Введение договоренностей о code style, оформлении документации, спецификация на интерфейсы. Показ первого GUI, уточнение новых задач.&lt;br /&gt;
* 12/mar/2011 - Всё хорошо.&lt;br /&gt;
* 19/mar/2011 - Снова всё хорошо - работаем.&lt;br /&gt;
* 26/mar/2011 - Семен у нас большой шутник, см. список задач на трекере&lt;br /&gt;
&lt;br /&gt;
== Дублирующий код ==&lt;br /&gt;
Руководитель: Иваницкий&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: http://code.google.com/p/aptu-practice-code-duplication/ &amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Бандурин Дима (Project manager)&lt;br /&gt;
* Лепенькин Ярослав (Поиск дублирующего кода в C++)&lt;br /&gt;
* Фофанова Маша (Поиск дублирующего кода в Java)&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
===28.02.2012 - Вводная встреча===&lt;br /&gt;
* Распределение ролей в команде&lt;br /&gt;
:Бандурин Дима (Project manager)&lt;br /&gt;
:Лепенькин Ярослав. Изучение специфики C++ для поиска дублирующего кода&lt;br /&gt;
:Фофанова Маша. Изучение специфики Java для поиск дублирующего кода.&lt;br /&gt;
* Уточнение функционала&lt;br /&gt;
* Организационные вопросы&lt;br /&gt;
&lt;br /&gt;
===06.03.2012 - Контрольная встреча===&lt;br /&gt;
* Изучение существующих решений &lt;br /&gt;
** Michael Wise's Greedy String Tiling algorithm&lt;br /&gt;
** Преобразование Барроуза-Уиллера&lt;br /&gt;
** Алгоритм Рабина-Карпа&lt;br /&gt;
** Механизм использующийся в IntelliJ IDEA&lt;br /&gt;
[[Файл:Solutions.pdf|краткое описание]]&lt;br /&gt;
&lt;br /&gt;
===15.03.2012===&lt;br /&gt;
В рамках НИР необходимо ответить на три вопроса.&lt;br /&gt;
* Научная новизна&lt;br /&gt;
** Список существующих решений для нашей задачи.(Ярослав)&lt;br /&gt;
** Способы оценки существующих решений.(Маша) &lt;br /&gt;
** Библиотеки, для проведения испытания (исследуемая выборка) (Дмитрий)&lt;br /&gt;
* Рабочий прототип. Решено делать плагин на базе IntelliJ IDEA. Функциональность плагина будет выяснена дальше. &lt;br /&gt;
* Этапы разработки&lt;br /&gt;
Решено разбить разработку на три этапа.&lt;br /&gt;
# Определение требований к разрабатываемой программе.(3 недели)&lt;br /&gt;
# Создание прототипа (2 недели)&lt;br /&gt;
# Разработка плагина (4 недели)&lt;br /&gt;
## Основная функциональность (2 недели)&lt;br /&gt;
## Тестирование и доведение (2 неделя)&lt;br /&gt;
## Документирование и создание презентационных материалов (1 неделя параллельно со вторым пунктом.)&lt;br /&gt;
Итого 9 недель. Предположительный срок завершения проекта : 21 мая&lt;br /&gt;
&lt;br /&gt;
===21.03.2012===&lt;br /&gt;
*Возможные метрики для сравнения алгоритмов поиска дубликатов&lt;br /&gt;
** Время работы, используемая память, CPU&lt;br /&gt;
** Число правильно найденных дубликатов&lt;br /&gt;
*** Необходимо учитывать длину каждого дубликата, чтобы учитывать возможную вложенность. Длина дубликата определяется числом символов в нем.&lt;br /&gt;
** Число неправильно найденных дубликатов&lt;br /&gt;
*Метрики для алгоритмов замены дубликатов&lt;br /&gt;
** Объем кода, получающегося после замены найденных дубликатов на вызовы соответствующих методов&lt;br /&gt;
** Релевантность участка кода. Код считается иррелевантным, если его замена на предлагающийся код слишком трудоемка и не имеет смысла.&lt;br /&gt;
*Стоит также определить, на каких констукциях дубликатов алгоритмы работают лучше, а на каких хуже.&lt;br /&gt;
&lt;br /&gt;
== Конфигуратор контейнеров AndroidVM ==&lt;br /&gt;
Руководитель: Кринкин К.В.&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Владислав Савельев&lt;br /&gt;
* Дмитрий Шеставин&lt;br /&gt;
* Сергей Казенюк&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
13 марта. Встреча с разработчиками проекта. Поставлены задачи.&lt;br /&gt;
: Владислав: Послушал лекцию Кирилла Владимировича про QT. Подумал об интерфейсе конфигуратора. Написал очень черновой вариант, создающий и запускающий контейнеры. Начал смотреть видео лекций Кирилла Владимировича про QT и шаблон MVC, а также читать про QML.&lt;br /&gt;
&lt;br /&gt;
== Поиск дублирующих сообщений об ошибках ==&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Ждан Анна&lt;br /&gt;
* Краско Евгений&lt;br /&gt;
* Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
Отчет 03.03 - 11.03&lt;br /&gt;
* Настроено окружение: проект в MPS, проект в IDEA&lt;br /&gt;
* Описана модель данных на языке dnq&lt;br /&gt;
* Написан rest api для админки и для добавления в базу новых сообщений об ошибках&lt;br /&gt;
* Написан парсер сообщений об ошибках&lt;br /&gt;
* Написана первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Написаны базовые классы для запуска тестов (различные заглушки для методов сервлет-контейнера, создание контекста для бинов и тп)&lt;br /&gt;
* Написаны тесты на парсер и алгоритм сравнения&lt;br /&gt;
* Частично написаны тесты на rest api (jmeter)&lt;br /&gt;
&lt;br /&gt;
Отчет 11.03 - 18.03&lt;br /&gt;
* Улучшена первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Реализован альтернативный алгоритм сравнения сообщений об ошибках. &lt;br /&gt;
* Написаны тесты на оба алгоритма&lt;br /&gt;
* Реализован парсер сообщений об ошибках для языка C#. Парсер рассчитан на формат, принятый в Решарпере&lt;br /&gt;
* Написаны тесты на парсер&lt;br /&gt;
* В язык для рестовых тестов добавлена возможность проверять хереды респонса&lt;br /&gt;
* Добавлен ui для администрирования приложение&lt;br /&gt;
* Начата реализация JobProcessor'a, обрабатывающего сообщения об ошибках на предмет поиска дубликатов.&lt;br /&gt;
&lt;br /&gt;
Отчет 19.03 - 25.03&lt;br /&gt;
* Написан классификатор, разбивающий сообщения об ошибках на кластеры.&lt;br /&gt;
* Добавлены новые возможности web-интерфейса для администрирования приложения.&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1162</id>
		<title>НИР</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1162"/>
				<updated>2012-03-18T21:23:52Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Карта дорог ==&lt;br /&gt;
Руководитель: Лесин&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Иванов Антон&lt;br /&gt;
* Сорокин Артем&lt;br /&gt;
* Кононенко Василий&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 6.03.2012 - Первая встреча.&lt;br /&gt;
** Задачи на неделю:&lt;br /&gt;
** Кононенко: подготовить результаты прошлого семестра для коллективного проекта.&lt;br /&gt;
** Сорокин, Иванов: разобраться с базовыми алгоритмами поиска кратчайших путей.&lt;br /&gt;
&lt;br /&gt;
== MyFit ==&lt;br /&gt;
Руководитель: EMC&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&lt;br /&gt;
* [http://osll.spb.ru/projects/myfit/ трекер]&lt;br /&gt;
* [http://code.google.com/p/myfit/ репозиторий]&lt;br /&gt;
Команда:&lt;br /&gt;
* Опейкин Александр&lt;br /&gt;
* Певзнер Алина&lt;br /&gt;
* Башоров Залим&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 09.03.2012 ==== &lt;br /&gt;
Выполнено 2 тестовых задания на Java и на GWT.&amp;lt;BR&amp;gt;&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3155 Опейкин] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3156 Певзнер] (Готово)&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3157 Башоров] (Готово)&lt;br /&gt;
&lt;br /&gt;
==== 12.03.2012 ===&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3175 Башоров]&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3177 Опейкин]&lt;br /&gt;
* [http://redmine.osll.spb.ru/issues/3176 Певзнер]&lt;br /&gt;
&lt;br /&gt;
== GPU ==&lt;br /&gt;
Руководитель: Рубен Артурович Гиргидов&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Коровин Алексей&lt;br /&gt;
* Лазарев Сергей&lt;br /&gt;
* Кормишин Сергей&lt;br /&gt;
Отчёт:&amp;lt;br&amp;gt;&lt;br /&gt;
*1я встреча нам были выданы вводные задачи: &lt;br /&gt;
** Разобраться с CUDA, установить и настроить окружение. Написать простенький алгоритм. (Коровин А.)&lt;br /&gt;
** Вспомнить &amp;quot;всё&amp;quot; о регулярных выражениях: какие бывают, как пишутся (Лазарев С.)&lt;br /&gt;
** Найти обработчики регулярных выражений (Matcher'ы), разобраться в их строении и принципе работы. (Кормишин С.)&lt;br /&gt;
*2я встреча:&lt;br /&gt;
** Обсудили наши предыдущие задания, расписали план выполнения проекта, цели и др.&lt;br /&gt;
** Выданы следующие задачи:&lt;br /&gt;
**# Реализовать обработчик РВ на Cuda для одной и n строк (Коровин А.)&lt;br /&gt;
**# Найти обработчики РВ на CPU на C++ и адаптировать его для n строк (Кормишин С.)&lt;br /&gt;
**# Реализовать обработчик РВ нa cuBLAS (Лазарев С.)&lt;br /&gt;
*3z встреча:&lt;br /&gt;
** Обсудили наши успехи, искали нужное представление автомата в виде матрицы для задачи реализации РВ на cuBLAS&lt;br /&gt;
** Решили какие паттерны РВ будут в бенчмарках&lt;br /&gt;
** По CUDA на неделю нужно было реализовать простейшую схему распараллеливания существующих реализаций регулярных выражений(Regexp9, Cuda paper code) и посмотреть на производительность.&lt;br /&gt;
&lt;br /&gt;
== Syrop ==&lt;br /&gt;
Руководитель: Смаль Александр Владимирович&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: [https://github.com/avsmal/Syrop Syrop]&amp;lt;BR/&amp;gt;&lt;br /&gt;
Wiki проекта: [https://github.com/avsmal/Syrop/wiki Github] &amp;lt;BR/&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Кринкин Михаил&lt;br /&gt;
* Мартынов Семён&lt;br /&gt;
* Крашенинникова Ксения&lt;br /&gt;
* Великий Алексей&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.&lt;br /&gt;
* 01/mar/2011 - Сode review.&lt;br /&gt;
* 05/mar/2011 - Введение договоренностей о code style, оформлении документации, спецификация на интерфейсы. Показ первого GUI, уточнение новых задач.&lt;br /&gt;
* 12/mar/2011 - Всё хорошо.&lt;br /&gt;
* 19/mar/2011 -&lt;br /&gt;
&lt;br /&gt;
== Дублирующий код ==&lt;br /&gt;
Руководитель: Иваницкий&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Бандурин Дима (Project manager)&lt;br /&gt;
* Лепенькин Ярослав (Поиск дублирующего кода в C++)&lt;br /&gt;
* Фо`фанова Маша (Поиск дублирующего кода в Java)&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
'''28.02.2012 - Вводная встреча'''&lt;br /&gt;
* Распределение ролей в команде&lt;br /&gt;
:Бандурин Дима (Project manager)&lt;br /&gt;
:Лепенькин Ярослав. Изучение специфики C++ для поиска дублирующего кода&lt;br /&gt;
:Фо`фанова Маша. Изучение специфики Java для поиск дублирующего кода.&lt;br /&gt;
* Уточнение функционала&lt;br /&gt;
* Организационные вопросы&lt;br /&gt;
&lt;br /&gt;
'''06.03.2012 - Контрольная встреча'''&lt;br /&gt;
* Изучение существующих решений &lt;br /&gt;
** Michael Wise's Greedy String Tiling algorithm&lt;br /&gt;
** Преобразование Барроуза-Уиллера&lt;br /&gt;
** Алгоритм Рабина-Карпа&lt;br /&gt;
** Механизм использующийся в IntelliJ IDEA&lt;br /&gt;
[[Файл:Solutions.pdf|краткое описание]]&lt;br /&gt;
&lt;br /&gt;
'''15.03.2012 - Следующая встреча'''&lt;br /&gt;
&lt;br /&gt;
== Конфигуратор контейнеров AndroidVM ==&lt;br /&gt;
Руководитель: Кринкин К.В.&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Владислав Савельев&lt;br /&gt;
* Дмитрий Шеставин&lt;br /&gt;
* Сергей Казенюк&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
&lt;br /&gt;
13 марта. Встреча с разработчиками проекта. Поставлены задачи.&lt;br /&gt;
: Владислав: Послушал лекцию Кирилла Владимировича про QT. Подумал об интерфейсе конфигуратора. Написал очень черновой вариант, создающий и запускающий контейнеры. Начал смотреть видео лекций Кирилла Владимировича про QT и шаблон MVC, а также читать про QML.&lt;br /&gt;
&lt;br /&gt;
== Поиск дублирующих сообщений об ошибках ==&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Ждан Анна&lt;br /&gt;
* Краско Евгений&lt;br /&gt;
* Кудинкин Алексей&lt;br /&gt;
&lt;br /&gt;
Отчет 03.03 - 11.03&lt;br /&gt;
* Настроено окружение: проект в MPS, проект в IDEA&lt;br /&gt;
* Описана модель данных на языке dnq&lt;br /&gt;
* Написан rest api для админки и для добавления в базу новых сообщений об ошибках&lt;br /&gt;
* Написан парсер сообщений об ошибках&lt;br /&gt;
* Написана первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Написаны базовые классы для запуска тестов (различные заглушки для методов сервлет-контейнера, создание контекста для бинов и тп)&lt;br /&gt;
* Написаны тесты на парсер и алгоритм сравнения&lt;br /&gt;
* Частично написаны тесты на rest api (jmeter)&lt;br /&gt;
&lt;br /&gt;
Отчет 11.03 - 18.03&lt;br /&gt;
* Улучшена первая версия алгоритма сравнения сообщений об ошибках&lt;br /&gt;
* Реализован альтернативный алгоритм сравнения сообщений об ошибках. &lt;br /&gt;
* Написаны тесты на оба алгоритма&lt;br /&gt;
* Реализован парсер сообщений об ошибках для языка C#. Парсер рассчитан на формат, принятый в Решарпере&lt;br /&gt;
* Написаны тесты на парсер&lt;br /&gt;
* В язык для рестовых тестов добавлена возможность проверять хереды респонса&lt;br /&gt;
* Добавлен ui для администрирования приложение&lt;br /&gt;
* Начата реализация JobProcessor'a, обрабатывающего сообщения об ошибках на предмет поиска дубликатов.&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1104</id>
		<title>НИР</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1104"/>
				<updated>2012-03-08T08:32:59Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Карта дорог ==&lt;br /&gt;
Руководитель: Лесин&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== MyFit ==&lt;br /&gt;
Руководитель: EMC&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== GPU ==&lt;br /&gt;
Руководитель: Рубен Артурович Гиргидов&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Коровин Алексей&lt;br /&gt;
* Лазарев Сергей&lt;br /&gt;
* Кормишин Сергей&lt;br /&gt;
Отчёт:&amp;lt;br&amp;gt;&lt;br /&gt;
*1я встреча нам были выданы вводные задачи: &lt;br /&gt;
** Разобраться с CUDA, установить и настроить окружение. Написать простенький алгоритм. (Коровин А.)&lt;br /&gt;
** Вспомнить &amp;quot;всё&amp;quot; о регулярных выражениях: какие бывают, как пишутся (Лазарев С.)&lt;br /&gt;
** Найти обработчики регулярных выражений (Matcher'ы), разобраться в их строении и принципе работы. (Кормишин С.)&lt;br /&gt;
*2я встреча:&lt;br /&gt;
** Обсудили наши предыдущие задания, расписали план выполнения проекта, цели и др.&lt;br /&gt;
** Выданы следующие задачи:&lt;br /&gt;
**# Реализовать обработчик РВ на Cuda для одной и n строк (Коровин А.)&lt;br /&gt;
**# Найти обработчики РВ на CPU на C++ и адаптировать его для n строк (Кормишин С.)&lt;br /&gt;
**# Реализовать обработчик РВ нa cuBLAS (Лазарев С.)&lt;br /&gt;
&lt;br /&gt;
== Syrop ==&lt;br /&gt;
Руководитель: Смаль Александр Владимирович&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: [https://github.com/avsmal/Syrop Syrop]&amp;lt;BR/&amp;gt;&lt;br /&gt;
Wiki проекта: [https://github.com/avsmal/Syrop/wiki Github] &amp;lt;BR/&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Кринкин Михаил&lt;br /&gt;
* Мартынов Семён&lt;br /&gt;
* Крашенинникова Ксения&lt;br /&gt;
* Великий Алексей&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.&lt;br /&gt;
* 01/mar/2011 - Сode review.&lt;br /&gt;
* 05/mar/2011 - Введение договоренностей о code style, оформлении документации, спецификация на интерфейсы. Показ первого GUI, уточнение новых задач.&lt;br /&gt;
* 12/mar/2011 -&lt;br /&gt;
&lt;br /&gt;
== Дублирующий код ==&lt;br /&gt;
Руководитель: Иваницкий&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== Конфигуратор контейнеров AndroidVM ==&lt;br /&gt;
Руководитель: Кринкин К.В.&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Савельев Владислав&lt;br /&gt;
* Шеставин Дмитрий&lt;br /&gt;
* Казенюк Сергей&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
* Всё начнётся 5 марта.&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=LinuxKernelProgramming&amp;diff=1101</id>
		<title>LinuxKernelProgramming</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=LinuxKernelProgramming&amp;diff=1101"/>
				<updated>2012-03-06T17:54:08Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* Введение */&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;
== Установка OpenSSH-Server ==&lt;br /&gt;
Для того, чтобы получить возможность пользоваться буфером обмена (вставлять текст в консоль) и не ставить VirtualBox Guest Additions, можно установить в виртуальную машину OpenSSH-Server, и подключаться к нему любым SSH клиентом.&lt;br /&gt;
Для этого необходимо добавить новую сетевую карту в виртуальную машину. Это делается в настройках, ДО ВКЛЮЧЕНИЯ виртуальной машины: в настройках нужно перейти на страницу с настройками сети, перейти на вкладку со вторым адаптером (первый адаптер используется виртуальной машиной для доступа к интернет через NAT) и выбрать подключение &amp;quot;Host-only adapter&amp;quot; (смотри пример на картинке).&lt;br /&gt;
&lt;br /&gt;
[[Файл:HostOnlyAdapter.png|Настройка дополнительной сетевой карты в VirtualBox]]&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо включить на этой сетевой карте возможность получить IP адрес по DHCP. Для этого нужно выполнить следующие две команды (предполагается, что в системе до этого была только одна сетевая карта):&lt;br /&gt;
 echo 'allow-hotplug eth1' &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
 echo 'iface eth1 inet dhcp' &amp;gt;&amp;gt; /etc/network/interfaces&lt;br /&gt;
и установить OpenSSH-Server&lt;br /&gt;
 apt-get install openssh-server&lt;br /&gt;
&lt;br /&gt;
Теперь можно из основной системы произвести подключение к виртуальной. Для этого нужно использовать SSH-клиент, такой как [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html  putty] которому нужно сообщить IP адрес виртуальной машины (его можно узнать командой ifconfig, и, скорее всего, это будет 192.168.56.101).&lt;br /&gt;
&lt;br /&gt;
[[Файл:PuttyConnect.png|Использование Putty для SSH соединения]]&lt;br /&gt;
&lt;br /&gt;
Важно помнить, что по умолчанию SSH не позволяет подключаться, используя учётную запись root. Если необходимы права суперпользователя, в начале подключитесь используя свою учётную запись на виртуальной машине (приняв перед этим сертификат безопасности), а потом используйте su.&lt;br /&gt;
&lt;br /&gt;
Так же рекомендуется в подпункте Translation пункта Window указывать UTF-8 в качестве Character set translation on received data - в частности, это необходимо для правильного отображения Midnight Commander.&lt;br /&gt;
&lt;br /&gt;
== Сборка ядра 3.3.0-rc2 ==&lt;br /&gt;
Сборка ядра 3.3.0-rc2 (в соответствии с рекомендациями readme)&lt;br /&gt;
 wget https://www.kernel.org/pub/linux/kernel/v3.x/testing/linux-3.3-rc2.tar.bz2&lt;br /&gt;
 su -c “apt-get install bzip2”&lt;br /&gt;
 tar -xjf linux-3.3-rc2.tar.bz2&lt;br /&gt;
 cd linux-3.3-rc2/&lt;br /&gt;
 mkdir -p ~/build/linux-3.3-rc2&lt;br /&gt;
 su -c “apt-get install libncurses5-dev”&lt;br /&gt;
 make 0=~/build/linux-3.3-rc2 nconfig&lt;br /&gt;
 make 0=~/build/linux-3.3-rc2&lt;br /&gt;
 su -c “make 0=~/build/linux-3.3-rc2 modules_install install”&lt;br /&gt;
 su -c “update-initramfs -c -k 3.3.0-rc2”&lt;br /&gt;
 su -c “update-grub2”&lt;br /&gt;
 shutdown -r now&lt;br /&gt;
&lt;br /&gt;
== Написание модулей ==&lt;br /&gt;
&lt;br /&gt;
=== Введение ===&lt;br /&gt;
&lt;br /&gt;
Некоторые отличия Ядра от программ, выполняемых в пространстве пользователя:&lt;br /&gt;
* Ядро LINUX пишется с расчётом на компилятор GNU C (разработчики ориентируются на стандарт ISO C99). В коде можно использовать ассемблерные вставки (директива ''asm()''), аннотацию ветвления (''likely()'' - более вероятная ветвь, ''unlikely()'' - менее вероятная) и весьма странный [http://www.kernel.org/doc/Documentation/CodingStyle кодстайл].&lt;br /&gt;
* Ядро не имеет доступа к стандартным библиотекам языка программирования C. Это сделано из соображений увеличения скорости выполнения и уменьшения объёма кода.&lt;br /&gt;
* Отсутствует защита памяти. Если обычная программа предпримет попытку некорректного обращения с памятью, то ядро сможет выгрузить такую программу, но если само ядро предпримет такую же попытку, то его будет некому проконтролировать. Так же важно помнить об отсутствии замещения страниц, т.е. каждому байту, используемому ядром, соответствует байт реальной физической памяти.&lt;br /&gt;
* В ядре используются только целочисленные вычисления. Это тоже сделано для ускорения работы, т.к. операции с плавающей точкой значительно более ресурсоёмки (в частности, активнее используются регистры CPU).&lt;br /&gt;
* Объём стека фиксирован, и обычно равен двум страницам памяти (8 Кбайт для x86, и 16 Кбайт для x64). По этой причине не рекомендуется использовать рекурсию.&lt;br /&gt;
* Важным требованием является переносимость - код должен компилироваться на максимально большом количестве систем.&lt;br /&gt;
&lt;br /&gt;
Загружаемый объект ядра называется '''модулем'''.&lt;br /&gt;
Динамическая загрузка и выгрузка модулей по мере необходимости появилась благодаря Питеру Мак-Дональду и впервые была представлена в версии ядра 0.99.&amp;lt;br&amp;gt;&lt;br /&gt;
По своей структуре, модуль похож на обычную прогамму (так же имеется точка входа, и необходима компиляция в бинарный вид) но имеет прямой доступ к структурам и функциям ядра, в то время как обычные программы такой доступ могут получить только через обёртки.&lt;br /&gt;
&lt;br /&gt;
=== Код модуля ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt; // Этот файл подключается в любом модуле по соглашению&lt;br /&gt;
#include &amp;lt;linux/kernel.h&amp;gt; // Содержит макросы для функции printk()&lt;br /&gt;
#include &amp;lt;linux/init.h&amp;gt; // Содержит определения макросов __init и __exit&lt;br /&gt;
void printHW(void) // Функция для вывода приветствия&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello, world\n&amp;quot;); // выводит сообщение на экран и в лог messages&lt;br /&gt;
}&lt;br /&gt;
EXPORT_SYMBOL(printHW); // Экспорт функций ядра - предоставляет доступ к функции другим модулям ядра&lt;br /&gt;
static int __init start(void) // Точка входа в модуль&lt;br /&gt;
{&lt;br /&gt;
    printHW(); // Вызов функции&lt;br /&gt;
    return 0; // в случае успешной загрузки возвращать нулевое значение&lt;br /&gt;
}&lt;br /&gt;
static void __exit stop(void) // Точка выхода&lt;br /&gt;
{&lt;br /&gt;
    //printk(&amp;quot;Module unloaded\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
module_init(start);&lt;br /&gt;
module_exit(stop);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;); // Указывает на лицензию, под которой распространяется данный модуль&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Сборка модуля ===&lt;br /&gt;
&lt;br /&gt;
Файл с кодом модуля (myModule.c) должен находиться в одной папке с make-фалом, в котом должно быть написано&lt;br /&gt;
 obj-m += myModule.o&lt;br /&gt;
Тогда сборку модуля можно запустить командой&lt;br /&gt;
 make -C ./linux-3.3-rc2 SUBDIRS=$PWD modules&lt;br /&gt;
Внимание, замените путь к исходным кодам ядра на тот, куда вы извлекли содержимое архива linux-3.3-rc2.tar.bz2&lt;br /&gt;
В итоге должен получиться файл модуля myModule.ko&lt;br /&gt;
&lt;br /&gt;
=== После сборки модуля ===&lt;br /&gt;
&lt;br /&gt;
Теперь полученный модуль можно загрузить (эта команда требует прав суперпользователя). Для этого используется команда&lt;br /&gt;
 insmod &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
Список загруженных модулей хранится в /proc/modules, так что можно просмотреть этот файл&lt;br /&gt;
 cat /proc/modules&lt;br /&gt;
или воспользоваться командой&lt;br /&gt;
 lsmod&lt;br /&gt;
Выгружать модуль можно командой (также требует прав суперпользователя)&lt;br /&gt;
 rmmod &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Программа курса ==&lt;br /&gt;
&lt;br /&gt;
== Список литературы ==&lt;br /&gt;
&lt;br /&gt;
* Разработка ядра Linux. Роберт Лав (http://www.ozon.ru/context/detail/id/2918313/)&lt;br /&gt;
* Ядро Linux. Д. Бовет, М. Чезати (http://www.ozon.ru/context/detail/id/3589107/)&lt;br /&gt;
* Linux Device Drivers, Джонатан Корбет, Алесандро Рубини, Грег Кроа-Хартман (http://lwn.net/Kernel/LDD3/) официаль&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1095</id>
		<title>НИР</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1095"/>
				<updated>2012-03-04T19:51:59Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Карта дорог ==&lt;br /&gt;
Руководитель: Лесин&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== MyFit ==&lt;br /&gt;
Руководитель: EMC&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== GPU ==&lt;br /&gt;
Руководитель: Рубен Артурович Гиргидов&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Коровин Алексей&lt;br /&gt;
* Лазарев Сергей&lt;br /&gt;
* Кормишин Сергей&lt;br /&gt;
Отчёт:&amp;lt;br&amp;gt;&lt;br /&gt;
После первой встречи нам были выданы вводные задачи: &lt;br /&gt;
* Разобраться с CUDA, установить и настроить окружение. Написать простенький алгоритм. &lt;br /&gt;
* Вспомнить &amp;quot;всё&amp;quot; о регулярных выражениях: какие бывают, как пишутся&lt;br /&gt;
* Найти обработчики регулярных выражений (Matcher'ы), разобраться в их строении и принципе работы.&lt;br /&gt;
&lt;br /&gt;
== Syrop ==&lt;br /&gt;
Руководитель: Смаль Александр Владимирович&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: [https://github.com/avsmal/Syrop Syrop]&amp;lt;BR/&amp;gt;&lt;br /&gt;
Wiki проекта: [https://github.com/avsmal/Syrop/wiki Github] &amp;lt;BR/&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Кринкин Михаил&lt;br /&gt;
* Мартынов Семён&lt;br /&gt;
* Крашенинникова Ксения&lt;br /&gt;
* Великий Алексей&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.&lt;br /&gt;
* 01/mar/2011 - Сode review.&lt;br /&gt;
* 05/mar/2011 -&lt;br /&gt;
* 12/mar/2011 -&lt;br /&gt;
&lt;br /&gt;
== Дублирующий код ==&lt;br /&gt;
Руководитель: Иваницкий&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== Конфигуратор контейнеров AndroidVM ==&lt;br /&gt;
Руководитель: Кринкин К.В.&lt;br /&gt;
&lt;br /&gt;
Команда:&lt;br /&gt;
* Савельев Владислав&lt;br /&gt;
* Шеставин Дмитрий&lt;br /&gt;
* Казенюк Сергей&lt;br /&gt;
&lt;br /&gt;
Отчёт:&lt;br /&gt;
* Всё начнётся 5 марта.&lt;/div&gt;</summary>
		<author><name>KorovinAA</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1072</id>
		<title>НИР</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1072"/>
				<updated>2012-02-29T17:11:01Z</updated>
		
		<summary type="html">&lt;p&gt;KorovinAA: /* GPU */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Карта дорог ==&lt;br /&gt;
Руководитель: Лесин&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== MyFit ==&lt;br /&gt;
Руководитель: EMC&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== GPU ==&lt;br /&gt;
Руководитель: Рубен Артурович Гиргидов&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
== Syrop ==&lt;br /&gt;
Руководитель: Смаль Александр Владимирович&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект: [https://github.com/avsmal/Syrop Syrop]&amp;lt;BR&amp;gt;&lt;br /&gt;
Команда:&lt;br /&gt;
* Кринкин Михаил&lt;br /&gt;
* Мартынов Семён&lt;br /&gt;
* Крашенинникова Ксения&lt;br /&gt;
* Великий Алексей&lt;br /&gt;
Отчёт:&lt;br /&gt;
* 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.&lt;br /&gt;
* 05/mar/2011 -&lt;br /&gt;
* 12/mar/2011 -&lt;br /&gt;
&lt;br /&gt;
== Дублирующий код ==&lt;br /&gt;
Руководитель: Иваницкий&amp;lt;BR&amp;gt;&lt;br /&gt;
Ссылка на проект:&amp;lt;BR&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;
Руководитель:&amp;lt;BR&amp;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>KorovinAA</name></author>	</entry>

	</feed>