<?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=Luckyman</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=Luckyman"/>
		<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/Luckyman"/>
		<updated>2026-04-10T00:15:32Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9F%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BE%D1%80%D0%B0%D0%BA%D1%83%D0%BB&amp;diff=2456</id>
		<title>Погодный оракул</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9F%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BE%D1%80%D0%B0%D0%BA%D1%83%D0%BB&amp;diff=2456"/>
				<updated>2013-05-14T20:12:36Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &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;
* Корректирование предсказывающего алгоритма с учетом мнения пользователя&lt;br /&gt;
* Добавление других городов&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* Java&lt;br /&gt;
* Android&lt;br /&gt;
&lt;br /&gt;
== Релиз ==&lt;br /&gt;
https://code.google.com/p/weather-oracle/downloads/detail?name=WeatherOracle.apk&amp;amp;can=2&amp;amp;q=&lt;br /&gt;
&lt;br /&gt;
# Поддерживается информация о погоде по Санкт-Петербургу&lt;br /&gt;
# Собирает информацию о погоде с :&lt;br /&gt;
#* Yandex&lt;br /&gt;
#* GisMeteo&lt;br /&gt;
#* Intellicast&lt;br /&gt;
#* meteoinfo&lt;br /&gt;
#* rp5.ru&lt;br /&gt;
# Делает своё предсказание на основе имеющихся данных.&lt;br /&gt;
== Репозиторий ==&lt;br /&gt;
https://code.google.com/p/weather-oracle/&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9F%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BE%D1%80%D0%B0%D0%BA%D1%83%D0%BB&amp;diff=2455</id>
		<title>Погодный оракул</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9F%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D0%BE%D1%80%D0%B0%D0%BA%D1%83%D0%BB&amp;diff=2455"/>
				<updated>2013-05-14T20:08:42Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &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;
* Корректирование предсказывающего алгоритма с учетом мнения пользователя&lt;br /&gt;
* Добавление других городов&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Технологии ==&lt;br /&gt;
* Java&lt;br /&gt;
* Android&lt;br /&gt;
&lt;br /&gt;
== Скачать ==&lt;br /&gt;
https://code.google.com/p/weather-oracle/downloads/detail?name=WeatherOracle.apk&amp;amp;can=2&amp;amp;q=&lt;br /&gt;
&lt;br /&gt;
== Репозиторий ==&lt;br /&gt;
https://code.google.com/p/weather-oracle/&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Java_2013-02-27&amp;diff=2230</id>
		<title>Java 2013-02-27</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Java_2013-02-27&amp;diff=2230"/>
				<updated>2013-03-09T23:47:59Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: заменил MULIT -&amp;gt; MULTI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Примеры, демонстрирующие работу с внутренними и вложенными классами.&lt;br /&gt;
&lt;br /&gt;
'''0. Создание экземпляров внутренних и вложенных классов'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Test {&lt;br /&gt;
	int i = 4;&lt;br /&gt;
	&lt;br /&gt;
	void foo() {&lt;br /&gt;
		System.out.println(&amp;quot;foo() in Test&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	void bar() {&lt;br /&gt;
		System.out.println(&amp;quot;bar() in Test&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public class Test2 {&lt;br /&gt;
		void foo() {&lt;br /&gt;
			Test.this.foo();&lt;br /&gt;
			System.out.println(&amp;quot;foo() in Test2&amp;quot;);&lt;br /&gt;
		}		&lt;br /&gt;
	}&lt;br /&gt;
	public static class Test3 {&lt;br /&gt;
		void foo() {&lt;br /&gt;
			System.out.println(&amp;quot;foo() in Test3&amp;quot;);&lt;br /&gt;
		}		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void main(String[] args) {&lt;br /&gt;
		Test t = new Test();&lt;br /&gt;
		t.foo();&lt;br /&gt;
		Test.Test2 t2 = t.new Test2();&lt;br /&gt;
		t2.foo();&lt;br /&gt;
		Test.Test3 t3 = new Test.Test3();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1. Selector'''&lt;br /&gt;
&lt;br /&gt;
В данном примере демонстрируется возможность доступа из внутреннего класса ко всей внутренней реализации внешнего класса. Здесь также внутренний класс расширяет внешний открытый интерфейс, при этом сам класс является закрытым и доступ к нему возможен только через метод selector, возвращающий интерфейс. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface Selector {&lt;br /&gt;
	boolean end();&lt;br /&gt;
	Object current();&lt;br /&gt;
	void next();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class Sequence {&lt;br /&gt;
	private Object[] items;&lt;br /&gt;
	private int next = 0;&lt;br /&gt;
	public Sequence(int size) {&lt;br /&gt;
		items = new Object[size];&lt;br /&gt;
	}&lt;br /&gt;
	public void add(Object x) {&lt;br /&gt;
		if (next &amp;lt; items.length) {&lt;br /&gt;
			items[next++] = x;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	private class SequenceSelector implements Selector {&lt;br /&gt;
		private int i = 0;&lt;br /&gt;
		public boolean end() {&lt;br /&gt;
			return i == items.length;&lt;br /&gt;
		}&lt;br /&gt;
		public Object current() {&lt;br /&gt;
			return items[i];&lt;br /&gt;
		}&lt;br /&gt;
		public void next() {&lt;br /&gt;
			if (i &amp;lt; items.length) {&lt;br /&gt;
				i++;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public Selector selector() {&lt;br /&gt;
		return new SequenceSelector();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Main {&lt;br /&gt;
	public static void main(String[] args) {&lt;br /&gt;
		Sequence seq = new Sequence(10);&lt;br /&gt;
		for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
			seq.add(i);&lt;br /&gt;
		}&lt;br /&gt;
		Selector sel = seq.selector();&lt;br /&gt;
		while (!sel.end()) {&lt;br /&gt;
			System.out.print(sel.current() + &amp;quot; &amp;quot;);&lt;br /&gt;
			sel.next();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''2. Анонимные (безымянные) классы'''&lt;br /&gt;
&lt;br /&gt;
В данном примере массив events заполняется безымянными классами, реализующими интерфейс Event&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
interface Event {&lt;br /&gt;
	public void run();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class EventTest {&lt;br /&gt;
	private Event[] events;&lt;br /&gt;
	public EventTest() {&lt;br /&gt;
		events = new Event[10];&lt;br /&gt;
		for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
			events[i] = new Event() {&lt;br /&gt;
				private int i = 10;&lt;br /&gt;
				public void run() {&lt;br /&gt;
					System.out.println(&amp;quot;It's me! &amp;quot; + i);&lt;br /&gt;
				}&lt;br /&gt;
			};&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	public void run() {&lt;br /&gt;
		for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
			events[i].run();&lt;br /&gt;
		}&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В этом примере в определении анонимного класса используется внешняя переменная, которая объявлена final&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class EventTest2 {&lt;br /&gt;
	private Event[] events;&lt;br /&gt;
	private Event getEvent(final int i) {&lt;br /&gt;
		return new Event() {&lt;br /&gt;
			public void run() {&lt;br /&gt;
				System.out.println(&amp;quot;It's me! &amp;quot; + i);&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
	public EventTest2() {&lt;br /&gt;
		events = new Event[10];&lt;br /&gt;
		for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
			events[i] = getEvent(i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	public void run() {&lt;br /&gt;
		for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
			events[i].run();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Здесь демонстрируется работа механизма, позволяющего сымитировать работу конструктора в безымянном классе&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class EventTest3 {&lt;br /&gt;
	private Event[] events;&lt;br /&gt;
	private Event getEvent(final int i) {&lt;br /&gt;
		return new Event() {&lt;br /&gt;
			{&lt;br /&gt;
				System.out.println(&amp;quot;Created &amp;quot; + i);&lt;br /&gt;
			}&lt;br /&gt;
			public void run() {&lt;br /&gt;
				System.out.println(&amp;quot;It's me! &amp;quot; + i);&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
	public EventTest3() {&lt;br /&gt;
		events = new Event[10];&lt;br /&gt;
		for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
			events[i] = getEvent(i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	public void run() {&lt;br /&gt;
		for (int i = 0; i &amp;lt; 10; i++) {&lt;br /&gt;
			events[i].run();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Мнение общественности''&lt;br /&gt;
&lt;br /&gt;
''Классы EventTestX в принципе могут имплементировать интерфейс Event. В таком случае эти примеры можно рассматривать в качестве примера паттерна &amp;quot;Компоновщик&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
'''3. Вложенные классы'''&lt;br /&gt;
&lt;br /&gt;
Первый пример показывает возможность применения вложенных классов для тестирования внутреннего поведения внешнего класса. В данном примере показан пример работы, как со статическими, так и не со статическими методами внешнего класса.&lt;br /&gt;
&lt;br /&gt;
После компиляции будет созданы файлы Test.class и Test$Inner.class. Для запуска тестирования запустите класс Test$Inner. Файл Test$Inner.class можно не включать в итоговую версию проекта.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Test {&lt;br /&gt;
	private static void foo() {&lt;br /&gt;
		System.out.println(1);&lt;br /&gt;
	} &lt;br /&gt;
	private void boo() {&lt;br /&gt;
		System.out.println(2);&lt;br /&gt;
	} &lt;br /&gt;
	public static class Inner {&lt;br /&gt;
		public static void main(String[] args) {&lt;br /&gt;
			foo();&lt;br /&gt;
			Test t = new Test();&lt;br /&gt;
			t.boo();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Второй пример демонстрирует работу с вложенным статическим enum&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
class Question {&lt;br /&gt;
    private Type type;&lt;br /&gt;
&lt;br /&gt;
    public Type getType() { return type; }&lt;br /&gt;
    public void setType(Type type) { this.type = type; }&lt;br /&gt;
&lt;br /&gt;
    public static enum Type {&lt;br /&gt;
        SINGLE_CHOICE, MULTI_CHOICE, TEXT&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public class Main {&lt;br /&gt;
	public static void main(String[] args) {&lt;br /&gt;
		Question q = new Question();&lt;br /&gt;
		q.setType(Question.Type.SINGLE_CHOICE);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''4. Singleton'''&lt;br /&gt;
&lt;br /&gt;
Пример реализации паттерна проектирования Singleton с ленивой инициализацией с использованием закрытого вложенного класса.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Singleton {  &lt;br /&gt;
   private Singleton() {}&lt;br /&gt;
 &lt;br /&gt;
   private static class SingletonHolder {  &lt;br /&gt;
      public static Singleton instance = new Singleton();  &lt;br /&gt;
   }  &lt;br /&gt;
 &lt;br /&gt;
   public static Singleton getInstance()  {  &lt;br /&gt;
      return SingletonHolder.instance;  &lt;br /&gt;
   }  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''5. Фабричный метод'''&lt;br /&gt;
&lt;br /&gt;
Пример реализации паттерна фабричный метод без использования безымянных классов (ProductA) и с использованием (ProductB). Попутно фабричный метод Б сделан синглтоном.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
 // Product&lt;br /&gt;
 interface Product {&lt;br /&gt;
	 public void foo(); &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // ConcreteProductA&lt;br /&gt;
 class ConcreteProductA implements Product {&lt;br /&gt;
	 public void foo() {&lt;br /&gt;
		 System.out.println(&amp;quot;A&amp;quot;);&lt;br /&gt;
	 }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // ConcreteProductB&lt;br /&gt;
 class ConcreteProductB implements Product {&lt;br /&gt;
	 public void foo() {&lt;br /&gt;
		 System.out.println(&amp;quot;B&amp;quot;);&lt;br /&gt;
	 }&lt;br /&gt;
	 public static Creator creator = new Creator() {&lt;br /&gt;
		public Product getProduct() {&lt;br /&gt;
			return new ConcreteProductB();&lt;br /&gt;
		}&lt;br /&gt;
	 };&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 // Creator&lt;br /&gt;
 abstract class Creator {&lt;br /&gt;
     public abstract Product getProduct();&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // ConcreteCreatorA&lt;br /&gt;
 class ConcreteCreatorA extends Creator {&lt;br /&gt;
     public Product getProduct() {&lt;br /&gt;
         return new ConcreteProductA();&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
public class Main {&lt;br /&gt;
	public static void doSmth(Creator cr) {&lt;br /&gt;
		cr.getProduct().foo();&lt;br /&gt;
	}&lt;br /&gt;
	public static void main(String[] args) {&lt;br /&gt;
		doSmth(new ConcreteCreatorA());&lt;br /&gt;
		doSmth(ConcreteProductB.creator);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''6. Управление оранжереей'''&lt;br /&gt;
&lt;br /&gt;
Пример использования внутренних классов из книги Брюсса Эккеля &amp;quot;Философия Java&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Класс событий, запускаемых по времени&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public abstract class Event {&lt;br /&gt;
  private long eventTime;&lt;br /&gt;
  protected final long delayTime;&lt;br /&gt;
  public Event(long delayTime) {&lt;br /&gt;
    this.delayTime = delayTime;&lt;br /&gt;
    start();&lt;br /&gt;
  }&lt;br /&gt;
  public void start() { // Позволяет перезапуск&lt;br /&gt;
    eventTime = System.nanoTime() + delayTime;&lt;br /&gt;
  }&lt;br /&gt;
  public boolean ready() {&lt;br /&gt;
    return System.nanoTime() &amp;gt;= eventTime;&lt;br /&gt;
  }&lt;br /&gt;
  public abstract void action();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Класс, хранящий события&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Controller {&lt;br /&gt;
  // Класс из пакета java.util для хранения событий Event::&lt;br /&gt;
  private List&amp;lt;Event&amp;gt; eventList = new ArrayList&amp;lt;Event&amp;gt;();&lt;br /&gt;
  public void addEvent(Event c) { eventList.add(c); }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    while(eventList.size() &amp;gt; 0)&lt;br /&gt;
      // Make a copy so you're not modifying the list&lt;br /&gt;
      // while you're selecting the elements in it:&lt;br /&gt;
      for(Event e : new ArrayList&amp;lt;Event&amp;gt;(eventList))&lt;br /&gt;
        if(e.ready()) {&lt;br /&gt;
          System.out.println(e);&lt;br /&gt;
          e.action();&lt;br /&gt;
          eventList.remove(e);&lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Класс оранжереи. Обратите внимание на то, что несколько внутренних классов наследуются от одного (Event)!&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class GreenHouse extends Controller {&lt;br /&gt;
  private boolean light = false;&lt;br /&gt;
  public class LightOn extends Event {&lt;br /&gt;
    public LightOn(long delayTime) { super(delayTime); }&lt;br /&gt;
    public void action() {&lt;br /&gt;
      // Сюда помещается аппаратный вызов&lt;br /&gt;
      // физическое включение света&lt;br /&gt;
      light = true;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() { return &amp;quot;Light is on&amp;quot;; }&lt;br /&gt;
  }	&lt;br /&gt;
  public class LightOff extends Event {&lt;br /&gt;
    public LightOff(long delayTime) { super(delayTime); }&lt;br /&gt;
    public void action() {&lt;br /&gt;
      // Сюда помещается аппаратный вызов&lt;br /&gt;
      // физическое выключение света&lt;br /&gt;
      light = false;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() { return &amp;quot;Light is off&amp;quot;; }&lt;br /&gt;
  }&lt;br /&gt;
  private boolean water = false;&lt;br /&gt;
  public class WaterOn extends Event {&lt;br /&gt;
    public WaterOn(long delayTime) { super(delayTime); }&lt;br /&gt;
    public void action() {&lt;br /&gt;
      // Сюда помещается аппаратный вызов.&lt;br /&gt;
      // выключения системы полива&lt;br /&gt;
      water = true;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
      return &amp;quot;Greenhouse water is on&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }	&lt;br /&gt;
  public class WaterOff extends Event {&lt;br /&gt;
    public WaterOff(long delayTime) { super(delayTime); }&lt;br /&gt;
    public void action() {&lt;br /&gt;
      // Сюда помещается аппаратный вызов.&lt;br /&gt;
      // выключения системы полива&lt;br /&gt;
      water = false;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
      return &amp;quot;Greenhouse water is off&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private String thermostat = &amp;quot;Day&amp;quot;;	&lt;br /&gt;
  public class ThermostatNight extends Event {&lt;br /&gt;
    public ThermostatNight(long delayTime) {&lt;br /&gt;
      super(delayTime);&lt;br /&gt;
    }&lt;br /&gt;
    public void action() {&lt;br /&gt;
      // Сюда помещается аппаратный вызов.&lt;br /&gt;
      // thermostat = &amp;quot;Ночь&amp;quot;;&lt;br /&gt;
      thermostat = &amp;quot;Night&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
      return &amp;quot;Thermostat on night setting&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }	&lt;br /&gt;
  public class ThermostatDay extends Event {&lt;br /&gt;
    public ThermostatDay(long delayTime) {&lt;br /&gt;
      super(delayTime);&lt;br /&gt;
    }&lt;br /&gt;
    public void action() {&lt;br /&gt;
      // Сюда помещается аппаратный вызов.&lt;br /&gt;
      // thermostat = &amp;quot;День&amp;quot;&lt;br /&gt;
      thermostat = &amp;quot;Day&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
      return &amp;quot;Thermostat on day setting&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  // Пример метода action(), вставляющего&lt;br /&gt;
  // самого себя в список событий.&lt;br /&gt;
  public class Bell extends Event {&lt;br /&gt;
    public Bell(long delayTime) { super(delayTime); }&lt;br /&gt;
    public void action() {&lt;br /&gt;
      addEvent(new Bell(delayTime));&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() { return &amp;quot;Bing!&amp;quot;; }&lt;br /&gt;
  }	&lt;br /&gt;
  public class Restart extends Event {&lt;br /&gt;
    private Event[] eventList;&lt;br /&gt;
    public Restart(long delayTime, Event[] eventList) {&lt;br /&gt;
      super(delayTime);&lt;br /&gt;
      this.eventList = eventList;&lt;br /&gt;
      for(Event e : eventList)&lt;br /&gt;
        addEvent(e);&lt;br /&gt;
    }&lt;br /&gt;
    public void action() {&lt;br /&gt;
      for(Event e : eventList) {&lt;br /&gt;
        e.start(); // Перезапуск каждый раз&lt;br /&gt;
        addEvent(e);&lt;br /&gt;
      }&lt;br /&gt;
      start(); // Возвращаем это событие Event&lt;br /&gt;
      addEvent(this);&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
      return &amp;quot;Restarting system&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
  }	&lt;br /&gt;
  public static class Terminate extends Event {&lt;br /&gt;
    public Terminate(long delayTime) { super(delayTime); }&lt;br /&gt;
    public void action() { System.exit(0); }&lt;br /&gt;
    public String toString() { return &amp;quot;Terminating&amp;quot;;  }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Класс для запуска системы&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public class Main {&lt;br /&gt;
	public static void main(String[] args) {&lt;br /&gt;
		GreenHouse gc = new GreenHouse();&lt;br /&gt;
	    // Вместо жесткого кодирования фиксированных данных &lt;br /&gt;
	    // можно было бы считать информацию для настройки &lt;br /&gt;
	    // из текстового файла: &lt;br /&gt;
	    gc.addEvent(gc.new Bell(900));&lt;br /&gt;
	    Event[] eventList = {&lt;br /&gt;
	      gc.new ThermostatNight(0),&lt;br /&gt;
	      gc.new LightOn(200),&lt;br /&gt;
	      gc.new LightOff(400),&lt;br /&gt;
	      gc.new WaterOn(600),&lt;br /&gt;
	      gc.new WaterOff(800),&lt;br /&gt;
	      gc.new ThermostatDay(1400)&lt;br /&gt;
	    };	&lt;br /&gt;
	    gc.addEvent(gc.new Restart(2000, eventList));&lt;br /&gt;
	    if(args.length == 1)&lt;br /&gt;
	      gc.addEvent(&lt;br /&gt;
	        new GreenHouse.Terminate(&lt;br /&gt;
	          new Integer(args[0])));&lt;br /&gt;
	    gc.run();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''7. Вложенные классы в интерфесах'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public interface Node {&lt;br /&gt;
&lt;br /&gt;
	public Node getNext(); // next node in this list&lt;br /&gt;
&lt;br /&gt;
	public final static Node NULL = new Node() {&lt;br /&gt;
		public Node getNext() {&lt;br /&gt;
			return Node.NULL; /* you dont have any next object but just your self */&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public interface XXXVisitor {&lt;br /&gt;
	public final static XXXVisitor NULL = new Null();&lt;br /&gt;
&lt;br /&gt;
	void visit(R r);&lt;br /&gt;
&lt;br /&gt;
	void visit(T t);&lt;br /&gt;
&lt;br /&gt;
	/* Null implementation of XXXVisitor does nothing */&lt;br /&gt;
	public static class Null implements XXXVisitor {&lt;br /&gt;
		public void visit(R r) {&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		public void visit(T t) {&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
&lt;br /&gt;
import javax.swing.text.Element;&lt;br /&gt;
&lt;br /&gt;
public interface XmlOutput {&lt;br /&gt;
	public static final Util UTIL = new Util();&lt;br /&gt;
&lt;br /&gt;
	public Element toXml();&lt;br /&gt;
&lt;br /&gt;
	public static class Util {&lt;br /&gt;
		public Element forCollection(String parentName, Collection items) {&lt;br /&gt;
			return forCollection(new Element(parentMane), items);&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public Element forCollection(Element parent, Collection items) {&lt;br /&gt;
			for (Iterator i = items.iterator(); items.hasNext();) {&lt;br /&gt;
				XmlOutput item = (XmlOutput) item.next();&lt;br /&gt;
				parent.addChild(item.toXml());&lt;br /&gt;
			}&lt;br /&gt;
			return parent;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
// Classes that implement this interface have direct access to UTIL - thus&lt;br /&gt;
/*&lt;br /&gt;
 * public Element toXml( ) { return UTIL.forCollection( &amp;quot;Foo&amp;quot; , getFoos( ) ); }&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Accelerometer&amp;diff=1404</id>
		<title>Android Accelerometer</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Accelerometer&amp;diff=1404"/>
				<updated>2012-04-26T08:24:19Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: /* Описание проекта */&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;
Ссылка на google code : [http://code.google.com/p/our-pedometer/source/checkout our-pedometer]&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=Android_Accelerometer&amp;diff=1403</id>
		<title>Android Accelerometer</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=Android_Accelerometer&amp;diff=1403"/>
				<updated>2012-04-26T08:22:41Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: ссылка на репозиторий&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;
Ссылка на репозиторий : [http://code.google.com/p/our-pedometer/source/checkout]&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=DevDays&amp;diff=1321</id>
		<title>DevDays</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=DevDays&amp;diff=1321"/>
				<updated>2012-04-17T09:20:15Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: DJVU_Formatter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://twitter.com/#!/search/%23AUDevDays #AUDevDays]&lt;br /&gt;
&lt;br /&gt;
==Проекты==&lt;br /&gt;
* [[DJVU_Formatter|DJVU форматер под маленькие разрешения экрана]]&lt;br /&gt;
* [[Cheque_recognizer|Chèque recognizer]]&lt;br /&gt;
* [[Акселерометр в Android|Акселерометр в Android]]&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=DJVU_Formatter&amp;diff=1320</id>
		<title>DJVU Formatter</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=DJVU_Formatter&amp;diff=1320"/>
				<updated>2012-04-17T09:18:50Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: Новая страница: «==Команда== * Дмитрий Бандурин * [[Участник:Кононенко_Василий|Кононенко Васи…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Команда==&lt;br /&gt;
* [[Участник:Luckyman|Дмитрий Бандурин]]&lt;br /&gt;
* [[Участник:Кононенко_Василий|Кононенко Василий]]&lt;br /&gt;
&lt;br /&gt;
==Суть проекта==&lt;br /&gt;
Сейчас очень много разнообразных электронных книг и планшетов.&lt;br /&gt;
Также в интернете в большом количестве книг в формате djvu.Проблема заключается в том, что даже на 4 дюймовом экране читать книжку дежавю не очень удобно. Предлагается создать программу, которая будет разрезать изображения на отдельные слова, из которых состоит книга, и перегруппировать их под другое более маленькое разрешение.При этом не надо распознавать текст.То есть это не OCR.&lt;br /&gt;
&lt;br /&gt;
==Инструментарий==&lt;br /&gt;
Язык программирования Java&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=DevDays&amp;diff=1315</id>
		<title>DevDays</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=DevDays&amp;diff=1315"/>
				<updated>2012-04-17T06:31:32Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://twitter.com/#!/search/%23AUDevDays #AUDevDays]&lt;br /&gt;
&lt;br /&gt;
==Проекты==&lt;br /&gt;
* DJVU форматер под маленькие разрешения экрана.&lt;br /&gt;
Сейчас очень много разнообразных электронных книг и планшетов.&lt;br /&gt;
Также в интернете в большом количестве книг в формате djvu.Проблема заключается в том, что даже на 4 дюймовом экране читать книжку дежавю не очень удобно. Предлагается создать программу, которая будет разрезать изображения на отдельные слова, из которых состоит книга, и перегруппировать их под другое более маленькое разрешение.При этом не надо распознавать текст.То есть это не OCR.&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1215</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=1215"/>
				<updated>2012-03-25T18:50:20Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: /* Дублирующий код */ добавлена ссылка на проект.&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;
&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;
* 19/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>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1214</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=1214"/>
				<updated>2012-03-25T18:44:50Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: Дублирующий код. Обновление прогресса по работе.&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;
&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;
* 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;
* Научная новизна&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>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9D%D0%98%D0%A0&amp;diff=1131</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=1131"/>
				<updated>2012-03-12T13:19:15Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: Отчет по дублирующему коду.&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;
==== 9.03.2012 ==== &lt;br /&gt;
Выполнено 2 тестовых задания на Java и на GWT.&amp;lt;BR&amp;gt;&lt;br /&gt;
Получены следующие задачи:&lt;br /&gt;
* [http://osll.spb.ru/issues/3155 Опейкин] (Готово)&lt;br /&gt;
* [http://osll.spb.ru/issues/3156 Певзнер]&lt;br /&gt;
* [http://osll.spb.ru/issues/3157 Башоров]&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;
&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;
* Бандурин Дима (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;
* Всё начнётся 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;
Отчет 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;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=IntroductionToProgrammingLanguages&amp;diff=997</id>
		<title>IntroductionToProgrammingLanguages</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=IntroductionToProgrammingLanguages&amp;diff=997"/>
				<updated>2012-02-14T18:27:50Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &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;
== Лекции ==&lt;br /&gt;
* [http://code.google.com/p/aptu-tex/source/browse/formallang/les1/les.tex Лекция №1] 10.02.2012&lt;br /&gt;
&lt;br /&gt;
== Домашние задания ==&lt;br /&gt;
* [Задание №1] срок сдачи 17 февраля 2011&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;
== Программа курса ==&lt;br /&gt;
&lt;br /&gt;
* 1. Языки программирования, синтаксис, семантика, прагматика. Когнитивные особенности человеческого мышления и их влияние на развитие языков программирования.&lt;br /&gt;
* 2. Языки программирования в ретроспективе. Процедурное, объектно-ориентированное, логическое и функциональное программирование. Предметно-ориентированные языки. Языки вне классификации. &lt;br /&gt;
* 3. Абстрактный и конкретный синтаксис. Статическая и динамическая семантика. Компиляция и интерпретация. Проекции Футамуры-Ершова.&lt;br /&gt;
* 4. Генеративный и аналитический подходы к описанию синтаксиса. Формальные грамматики, иерархия Хомского. &lt;br /&gt;
* 5. Регулярные языки и конечные автоматы. Применение регулярных выражений в народном хозяйстве (grep/sed/awk) и для лексического анализа (lex/flex). Отсутствие бесконтекстной лексики в реальных языках программирования.&lt;br /&gt;
* 7. Контекстно-свободные грамматики. Нормальные формы Хомского и Грейбах. Алгоритмы Эрли и Кока-Янгера-Касами. Неконтекстосвободность реальных языков программирования.&lt;br /&gt;
* 6. Нисходящий анализ. Возврат и заглядывание вперед. Класс языков LL(k). Рекурсивный спуск, магазинные автоматы, парсер-комбинаторы, PEG, &amp;quot;скаредный&amp;quot; разбор. GLL. Инструменты нисходящего анализа (Parsec, ANTLR и пр.)&lt;br /&gt;
* 7. Восходящий анализ, классы LR(k) и LALR(k). GLR. Инструменты восходящего анализа (yacc/bison).&lt;br /&gt;
* 8. Двухуровневые и атрибутные грамматики, вопросы применения на практике.&lt;br /&gt;
* 9. Идентификация. Область видимости и область действия. Статическое и динамическое, раннее и позднее связывание. &lt;br /&gt;
* 10. Энергичность и ленивость. Call-by-name, call-by-value, call-by-reference.&lt;br /&gt;
* 11. Строгость, чистота, прозрачность по ссылкам.&lt;br /&gt;
* 12. Языки с типами и языки без типов. Статическая и динамическая типизация. &lt;br /&gt;
* 13. Номинальная и структурная эквивалентность типов. Простейшие конструкторы.&lt;br /&gt;
* 14. Типы с кванторами и что они означают. Универсальные и экзистенциальные типы. &lt;br /&gt;
* 15. Subtyping. Структурный и номинальный subtyping. &lt;br /&gt;
* 16. Динамическая семантика языков. Операционная семантика большого и малого шага.&lt;br /&gt;
* 17. Денотационный подход к описанию семантики. &lt;br /&gt;
* 18. Аксиоматическая семантика. Верификация программ. Design by contract.&lt;br /&gt;
* 19. Когерентность языков программирования и машинных архитектур. Языково-специфичные архитектуры, виртуальные машины и JIT-компиляция.&lt;br /&gt;
* 20*. Структура рабочей программы. Код, данные, библиотеки, поддержка времени исполнения.&lt;br /&gt;
* 21*. Задача генерации кода. Генерация кода путем интерпретации.&lt;br /&gt;
* 22*. Восходящее переписывание деревьев и динамическое программирование (BURS).&lt;br /&gt;
* 23*. Алгоритмы распределения регистров. Распределение регистров и раскраска графов.&lt;br /&gt;
* 24*. Параллелизм на уровне инструкций. Планирование инструкций.&lt;br /&gt;
* 25*. Анализ потока управления. Глубинное остовное дерево, доминирование, анализ циклической структуры программ. Сводимость. Устранение недостижимого кода, оптимальная линеаризация.&lt;br /&gt;
* 26*. Анализ потока данных. Полурешеточная модель. 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;
* 1. S.Muchnik. Advanced Compiler Design &amp;amp; Implementation. Academic Press, Morgan Kaufmann, 1998.&lt;br /&gt;
* 2. А.Ахо, Р.Сети, С.Ульман. Компиляторы: принципы, технологии, инструменты. Вильямс, 2003.&lt;br /&gt;
* 3. А.Ахо, С.Ульман. Теория синтаксического анализа, перевода и компиляции. Том 1. М., &amp;quot;Мир&amp;quot;, 1978.&lt;br /&gt;
* 4. F.Nielsen. Principles of Program Analysis. Springer, 2005.&lt;br /&gt;
* 5. F.Nielse, H-R.Nielsen. Semantics with Applications. Wiley Professional Computing, 1992.&lt;br /&gt;
* 6. B.Pierce. Types and Programming Languages. MIT Press, 2002.&lt;br /&gt;
* 7. T.Пратт. Языки программирования: разработка и реализация. 1978.&lt;br /&gt;
* 8. Б.К.Мартыненко. Языки и трансляции. Из-во СПбГУ, 2008.&lt;br /&gt;
&lt;br /&gt;
== Список групп для выполнения задач ==&lt;br /&gt;
&lt;br /&gt;
* 1. Мартынов Семён, Башоров Залим, Казенюк Сергей, Витвицкий Александр, Тугарёв Денис.&lt;br /&gt;
* 2. Кринкин Михаил, Лазарев Сергей, Фофанова Мария, Бандурин Дмитрий&lt;br /&gt;
* 3. Сорокин Артём, Коровин Алексей, Опейкин Александр, Шеставин Дмитрий, Владислав Савельев&lt;br /&gt;
* 4. Иванов Антон, Крашенинникова Ксения, Лепенькин Ярослав, Диевский Алексей, Кормишин Сергей&lt;br /&gt;
* 5.&lt;br /&gt;
* 6.&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;/div&gt;</summary>
		<author><name>Luckyman</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=846</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=846"/>
				<updated>2012-01-15T21:10:50Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: добавил время&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://www.lektorium.tv/course/?id=22823&lt;br /&gt;
&lt;br /&gt;
==Экзамен==&lt;br /&gt;
'''17.01.2012'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Начало в '''10.00''' &amp;lt;br/&amp;gt;&lt;br /&gt;
1.5 ч. на подготовку&amp;lt;br/&amp;gt;&lt;br /&gt;
15 минут на ответ.&amp;lt;br/&amp;gt;&lt;br /&gt;
Заходить получать билеты будете, действительно, с интервалом в минут 15, поэтому рекомендую заранее определиться с порядком&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Примерно в 14 прервёмся на час на обед, поэтому последний вопрос до обеда будет выдан в 12-15.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Порядок получения билетов:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
10.00 &amp;lt;br/&amp;gt;&lt;br /&gt;
10.15 &amp;lt;br/&amp;gt;&lt;br /&gt;
10.30 Кудинкин А.&amp;lt;br/&amp;gt;&lt;br /&gt;
10.45 &amp;lt;br/&amp;gt;&lt;br /&gt;
11.00 Башоров З.&amp;lt;br/&amp;gt;&lt;br /&gt;
11.15 Кринкин М.&amp;lt;br/&amp;gt;&lt;br /&gt;
11.30 Кононенко В.&amp;lt;br/&amp;gt;&lt;br /&gt;
11.45 Казенюк С.&amp;lt;br/&amp;gt;&lt;br /&gt;
12.00 Коровин А.&amp;lt;br/&amp;gt;&lt;br /&gt;
12.15 &amp;lt;br/&amp;gt;&lt;br /&gt;
15.00 Шеставин Д.В.&amp;lt;br/&amp;gt;&lt;br /&gt;
15.15 Опейкин А.&amp;lt;br/&amp;gt;&lt;br /&gt;
15.30 &amp;lt;br/&amp;gt;&lt;br /&gt;
15.45 Кузьмин А.В.&amp;lt;br/&amp;gt;&lt;br /&gt;
16.00 Мартынов С.&amp;lt;br/&amp;gt;&lt;br /&gt;
16.15 Гуменюк С.С.&amp;lt;br/&amp;gt;&lt;br /&gt;
16.30 Бандурин Д.В.&amp;lt;br/&amp;gt;&lt;br /&gt;
16.45 &amp;lt;br/&amp;gt;&lt;br /&gt;
17.00 &amp;lt;br/&amp;gt;&lt;br /&gt;
17.15 &amp;lt;br/&amp;gt;&lt;br /&gt;
17.30 &amp;lt;br/&amp;gt;&lt;br /&gt;
17.45 &amp;lt;br/&amp;gt;&lt;br /&gt;
18.00 &amp;lt;br/&amp;gt;&lt;br /&gt;
18.15 &amp;lt;br/&amp;gt;&lt;br /&gt;
18.30 &amp;lt;br/&amp;gt;&lt;br /&gt;
18.45 &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%22%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%22&amp;diff=797</id>
		<title>Материалы курса &quot;Операционные системы&quot;</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%22%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%22&amp;diff=797"/>
				<updated>2011-12-21T15:57:10Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операционные системы. ==&lt;br /&gt;
* Лекция 1. История. Краткое введение. [[Медиа:01-operating_systems_intro.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Задачи для практики ==&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationLibrary Библиотека]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationBradobrey Брадобрей]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationPhilosophs Философы]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/Scheduler1 Планировщик 1]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/Schedule2 Планировщик 2]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/DeviceLoadModeling Управление нагрузкой устройств]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/MemoryAllocatorI Управление памятью]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/FileSystem Файловая система]&lt;br /&gt;
&lt;br /&gt;
== Вопросы на зачет ==&lt;br /&gt;
[http://code.google.com/p/aptu-os/wiki/TestTopics вопросы ]&lt;br /&gt;
&lt;br /&gt;
== Дополнительные задачи ==&lt;br /&gt;
* Сборка и установка [[Minix]]&lt;br /&gt;
* Программа строящая дерево процессов&lt;br /&gt;
* Программа строящая дерево каталогов&lt;br /&gt;
* Расшифровщик файлов одного из форматов (pe, elf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Задачи со звездочкой ==&lt;br /&gt;
* Разработать менеджер потоков для User Space&lt;br /&gt;
* Разработать библиотеку для работы потоков в режиме невытесняющей многозадачности&lt;br /&gt;
&lt;br /&gt;
== Домашнее чтение ==&lt;br /&gt;
* [http://oreilly.com/catalog/opensources/book/appa.html Диалог Л.Торвальдса А. Таненбаума об архитектуре ОС] &lt;br /&gt;
* C.A.R Hoare Monitors: An Operating System Structuring Concept&lt;br /&gt;
&lt;br /&gt;
== Рейтинг ==&lt;br /&gt;
* [https://docs.google.com/spreadsheet/pub?hl=ru&amp;amp;hl=ru&amp;amp;key=0Ai0vg3CTwO9wdFo0Nkl1Q2JGZXZkLWp0YjM1V1FXYlE&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=html Рейтинг. Осень 2011. ]&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%22%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%22&amp;diff=795</id>
		<title>Материалы курса &quot;Операционные системы&quot;</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%22%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%22&amp;diff=795"/>
				<updated>2011-12-17T19:54:01Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операционные системы. ==&lt;br /&gt;
* Лекция 1. История. Краткое введение. [[Медиа:01-operating_systems_intro.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Задачи для практики ==&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationLibrary Библиотека]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationBradobrey Брадобрей]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationPhilosophs Философы]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/Scheduler1 Планировщик 1]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/Schedule2 Планировщик 2]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/DeviceLoadModeling Управление нагрузкой устройств]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/MemoryAllocatorI Управление памятью]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/FileSystem Файловая система]&lt;br /&gt;
&lt;br /&gt;
== Дополнительные задачи ==&lt;br /&gt;
* Сборка и установка [[Minix]]&lt;br /&gt;
* Программа строящая дерево процессов&lt;br /&gt;
* Программа строящая дерево каталогов&lt;br /&gt;
* Расшифровщик файлов одного из форматов (pe, elf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Задачи со звездочкой ==&lt;br /&gt;
* Разработать менеджер потоков для User Space&lt;br /&gt;
* Разработать библиотеку для работы потоков в режиме невытесняющей многозадачности&lt;br /&gt;
&lt;br /&gt;
== Домашнее чтение ==&lt;br /&gt;
* [http://oreilly.com/catalog/opensources/book/appa.html Диалог Л.Торвальдса А. Таненбаума об архитектуре ОС] &lt;br /&gt;
* C.A.R Hoare Monitors: An Operating System Structuring Concept&lt;br /&gt;
&lt;br /&gt;
== Рейтинг ==&lt;br /&gt;
* [https://docs.google.com/spreadsheet/pub?hl=ru&amp;amp;hl=ru&amp;amp;key=0Ai0vg3CTwO9wdFo0Nkl1Q2JGZXZkLWp0YjM1V1FXYlE&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=html Рейтинг. Осень 2011. ]&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9E%D1%82%D1%87%D0%B5%D1%82_%D0%BE_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B5,_5SE,_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2011-%D0%B3%D0%BE_%D0%B3%D0%BE%D0%B4%D0%B0&amp;diff=764</id>
		<title>Отчет о практике, 5SE, осень 2011-го года</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9E%D1%82%D1%87%D0%B5%D1%82_%D0%BE_%D0%BF%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%BA%D0%B5,_5SE,_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2011-%D0%B3%D0%BE_%D0%B3%D0%BE%D0%B4%D0%B0&amp;diff=764"/>
				<updated>2011-12-02T10:36:40Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''15 декабря'''&lt;br /&gt;
*Ждан Анна&lt;br /&gt;
*Коровин Алексей&lt;br /&gt;
&lt;br /&gt;
'''22 декабря'''&lt;br /&gt;
*Лазарев Сергей&lt;br /&gt;
*Сорокин Артём&lt;br /&gt;
*Савельев Владислав&lt;br /&gt;
*Певзнер Алина&lt;br /&gt;
*Фофанова Мария&lt;br /&gt;
*Бандурин Дмитрий&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%94%D0%BE%D0%BC%D0%B0%D1%88%D0%BD%D0%B5%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%22Unix_%D0%B8_%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8%22&amp;diff=699</id>
		<title>Домашнее задание &quot;Unix и Скриптовые языки&quot;</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%94%D0%BE%D0%BC%D0%B0%D1%88%D0%BD%D0%B5%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%22Unix_%D0%B8_%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B8%22&amp;diff=699"/>
				<updated>2011-11-23T06:37:58Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Домашнее задание по модулям Python ==&lt;br /&gt;
# NamPy, SciPy, Matplotlib:&lt;br /&gt;
# PIL:&lt;br /&gt;
# NetworkX:&lt;br /&gt;
# Socket:&lt;br /&gt;
# SMTPlib, POPlib:&lt;br /&gt;
# wxPython:&lt;br /&gt;
# pyQwt:&lt;br /&gt;
# Tkinter:&lt;br /&gt;
# thread, threading: Иванов Антон, Бандурин Дмитрий&lt;br /&gt;
&lt;br /&gt;
== Домашнее задание №6 (на ??.11.2011) ==&lt;br /&gt;
&lt;br /&gt;
# Вывести греческий алфавит&lt;br /&gt;
# Реализовать длинную арифметику &amp;lt;b&amp;gt;(ЧЕСТНО!)&amp;lt;/b&amp;gt;&lt;br /&gt;
# Используя модуль ElementTree, вывести в древовидном виде RSS ленту&lt;br /&gt;
# Подсчитать на странице с результатами поиска Google статистику по доменам первого уровня&lt;br /&gt;
&lt;br /&gt;
Необходимо выполнить (хотя бы) любые 3 задания!&lt;br /&gt;
&lt;br /&gt;
== Домашнее задание №5 (на 27.10.2011) ==&lt;br /&gt;
&lt;br /&gt;
# http://www.pythonchallenge.com/&lt;br /&gt;
# Посчитать количество существительных в романе «Война и мир». Смотреть на Pymorphy&lt;br /&gt;
# Найдите все составные числа меньшие N, которые представимы в виде произведения двух простых чисел.&lt;br /&gt;
# Написать функцию, вычисляющую произведение двух матриц (матрица – список списков). Также написать функцию для вывода такой матрицы в красивом виде.&lt;br /&gt;
# Посчитать все корни N-ой степени из -1&lt;br /&gt;
&lt;br /&gt;
Задания 3, 4, 5 - обязательны для выполнения!&lt;br /&gt;
&lt;br /&gt;
== Домашнее задание №4 (на 06.10.2011) ==&lt;br /&gt;
&lt;br /&gt;
# Изменить файлы таким образом, чтобы в промпте пользователя отображалась текущая дата и время&lt;br /&gt;
# Исправить пример, таким образом, чтобы при конвертировании изменялось только расширение файла&lt;br /&gt;
#: OPERATION=docToPdf&lt;br /&gt;
#: SUFFIX=pdf&lt;br /&gt;
#: directory=$PWD&lt;br /&gt;
#: for file in $directory/*&lt;br /&gt;
#: do&lt;br /&gt;
#:   filename=$file&lt;br /&gt;
#:   $OPERATION $file &amp;gt; &amp;quot;$filename.$SUFFIX&amp;quot;&lt;br /&gt;
#:   rm -f $file&lt;br /&gt;
#: done&lt;br /&gt;
# Написать Bash-скрипт, который дописывает к имени каждого файла в директории букву &amp;quot;z&amp;quot;, оставляя при этом расширение без изменений.&lt;br /&gt;
# Измените нужные файлы таким образом, чтобы при входе в систему каждый пользователь получал в терминале приветствие вроде &amp;quot;Hi, USER!&amp;quot; (с конкретным именем пользователя). Если это root, напишите ему что-то особенное. Если пользователь в качестве оболочки использует не bash, то напишите ему что-нибудь страшное.&lt;br /&gt;
# Напишите Bash-скрипт, который печатает список всех пользователей в системе. При запуске с ключом -b должны печататься только пользователи, использующие оболочку Bash.&lt;br /&gt;
#: Указание. Посмотрите в файл /etc/passwd&lt;br /&gt;
# Напишите Bash-скрипт, который выдает n штук случайных паролей, каждый длиной m. Числа m и n должны задаваться в параметрах. Если параметры не заданы, то должно выводиться сообщение об ошибке. Пароли могут содержать буквы латиницы в верхнем и нижнем регистре, а также цифры.&lt;br /&gt;
#: Указание. Случайную информацию можно брать из /dev/random и /dev/urandom (чем они отличаются?). Могут как-то помочь утилиты tr и fold.&lt;br /&gt;
# Напишите Bash-скрипт, который получает из Интернета страничку нашего курса с Вики и выводит список дат, в которые были лекции.&lt;br /&gt;
#: Указание. Может помочь утилита wget.&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%22%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%22&amp;diff=669</id>
		<title>Материалы курса &quot;Операционные системы&quot;</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%22%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%22&amp;diff=669"/>
				<updated>2011-11-06T18:52:13Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операционные системы. ==&lt;br /&gt;
* Лекция 1. История. Краткое введение. [[Медиа:01-operating_systems_intro.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Задачи для практики ==&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationLibrary Библиотека]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationBradobrey Брадобрей]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationPhilosophs Философы]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/Scheduler1 Планировщик 1]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/Schedule2 Планировщик 2]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/DeviceLoadModeling Управление нагрузкой устройств]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/MemoryAllocatorI Управление памятью]&lt;br /&gt;
&lt;br /&gt;
== Дополнительные задачи ==&lt;br /&gt;
* Сборка и установка [[Minix]]&lt;br /&gt;
* Программа строящая дерево процессов&lt;br /&gt;
* Программа строящая дерево каталогов&lt;br /&gt;
* Расшифровщик файлов одного из форматов (pe, elf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Задачи со звездочкой ==&lt;br /&gt;
* Разработать менеджер потоков для User Space&lt;br /&gt;
* Разработать библиотеку для работы потоков в режиме невытесняющей многозадачности&lt;br /&gt;
&lt;br /&gt;
== Домашнее чтение ==&lt;br /&gt;
* [http://oreilly.com/catalog/opensources/book/appa.html Диалог Л.Торвальдса А. Таненбаума об архитектуре ОС] &lt;br /&gt;
* C.A.R Hoare Monitors: An Operating System Structuring Concept&lt;br /&gt;
&lt;br /&gt;
== Рейтинг ==&lt;br /&gt;
* [https://docs.google.com/spreadsheet/pub?hl=ru&amp;amp;hl=ru&amp;amp;key=0Ai0vg3CTwO9wdFo0Nkl1Q2JGZXZkLWp0YjM1V1FXYlE&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=html Рейтинг. Осень 2011. ]&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%22%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%22&amp;diff=659</id>
		<title>Материалы курса &quot;Операционные системы&quot;</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9C%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B_%D0%BA%D1%83%D1%80%D1%81%D0%B0_%22%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%22&amp;diff=659"/>
				<updated>2011-10-31T07:05:00Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Операционные системы. ==&lt;br /&gt;
* Лекция 1. История. Краткое введение. [[Медиа:01-operating_systems_intro.pdf]]&lt;br /&gt;
&lt;br /&gt;
== Задачи для практики ==&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationLibrary Библиотека]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationBradobrey Брадобрей]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/ThreadsCollaborationPhilosophs Философы]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/Scheduler1 Планировщик 1]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/Schedule2 Планировщик 2]&lt;br /&gt;
* [http://code.google.com/p/aptu-os/wiki/DeviceLoadModeling Управление нагрузкой устройств]&lt;br /&gt;
&lt;br /&gt;
== Дополнительные задачи ==&lt;br /&gt;
* Сборка и установка [[Minix]]&lt;br /&gt;
* Программа строящая дерево процессов&lt;br /&gt;
* Программа строящая дерево каталогов&lt;br /&gt;
* Расшифровщик файлов одного из форматов (pe, elf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Задачи со звездочкой ==&lt;br /&gt;
* Разработать менеджер потоков для User Space&lt;br /&gt;
* Разработать библиотеку для работы потоков в режиме невытесняющей многозадачности&lt;br /&gt;
&lt;br /&gt;
== Домашнее чтение ==&lt;br /&gt;
* [http://oreilly.com/catalog/opensources/book/appa.html Диалог Л.Торвальдса А. Таненбаума об архитектуре ОС] &lt;br /&gt;
* C.A.R Hoare Monitors: An Operating System Structuring Concept&lt;br /&gt;
&lt;br /&gt;
== Рейтинг ==&lt;br /&gt;
* [https://docs.google.com/spreadsheet/pub?hl=ru&amp;amp;hl=ru&amp;amp;key=0Ai0vg3CTwO9wdFo0Nkl1Q2JGZXZkLWp0YjM1V1FXYlE&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=html Рейтинг. Осень 2011. ]&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=JsLintValidation_Plugin&amp;diff=657</id>
		<title>JsLintValidation Plugin</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=JsLintValidation_Plugin&amp;diff=657"/>
				<updated>2011-10-30T12:09:30Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: переименовал «Обсуждение участника:Luckyman» в «JsLintValidation Plugin»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== JsLintValidation Plugin ==&lt;br /&gt;
&lt;br /&gt;
= О проекте =&lt;br /&gt;
JavaScript code style checker plugin for IntellijIDEA&lt;br /&gt;
== Описание ==&lt;br /&gt;
Пользователь открывает JavaScript файл,&lt;br /&gt;
запускает проверку code-style и&lt;br /&gt;
получает результаты либо в виде таблицы, либо подсвеченный код прямо в редакторе.&lt;br /&gt;
&lt;br /&gt;
Для валидации используется http://jslint.com&lt;br /&gt;
&lt;br /&gt;
В рамках работы над плагином необходимо создать обёртку для библиотеки jsLint, написанной на JavaScript.&lt;br /&gt;
&lt;br /&gt;
Javascript код выполняется под любым Javascript движком(например: Rhino,V8)&lt;br /&gt;
&lt;br /&gt;
После выполнения скрипта валидации необходимо интерпретировать результаты обработки.&lt;br /&gt;
&lt;br /&gt;
== Научный руководитель ==&lt;br /&gt;
Сергей Симончик (JetBrains)&lt;br /&gt;
= Road Map =&lt;br /&gt;
== план ==&lt;br /&gt;
*31.10.2011* Plugin Ptototype&amp;lt;br/&amp;gt;&lt;br /&gt;
*07.11.2011* added functionality for show problem places in editor.&amp;lt;br/&amp;gt;&lt;br /&gt;
*14.11.2011* added new extension point for plugin&amp;lt;br/&amp;gt;&lt;br /&gt;
*21.11.2011* inspection tool?&amp;lt;br/&amp;gt;&lt;br /&gt;
*28.11-2011-10.12.2011* code refactoring. &amp;lt;br/&amp;gt;&lt;br /&gt;
== Текущее состояние ==&lt;br /&gt;
30.10.2011 - Создан первый прототип плагина.&lt;br /&gt;
Основная функциональность:&lt;br /&gt;
  * Создано окно конфигурации плагина.&lt;br /&gt;
  * Реализовано сохранение и изменение конфигурации.&lt;br /&gt;
  * Создана панель инструментов, через которую реализуется основная функциональность плагина. &lt;br /&gt;
  * Подключен Rhino js-engine, для вызова JsLint библиотеки.&lt;br /&gt;
  * Реализован вывод результатов валидации в панель инструментов.&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Luckyman&amp;diff=658</id>
		<title>Обсуждение участника:Luckyman</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Luckyman&amp;diff=658"/>
				<updated>2011-10-30T12:09:30Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: переименовал «Обсуждение участника:Luckyman» в «JsLintValidation Plugin»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#перенаправление [[JsLintValidation Plugin]]&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=JsLintValidation_Plugin&amp;diff=656</id>
		<title>JsLintValidation Plugin</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=JsLintValidation_Plugin&amp;diff=656"/>
				<updated>2011-10-30T12:09:02Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: JsLintValidation Plugin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== JsLintValidation Plugin ==&lt;br /&gt;
&lt;br /&gt;
= О проекте =&lt;br /&gt;
JavaScript code style checker plugin for IntellijIDEA&lt;br /&gt;
== Описание ==&lt;br /&gt;
Пользователь открывает JavaScript файл,&lt;br /&gt;
запускает проверку code-style и&lt;br /&gt;
получает результаты либо в виде таблицы, либо подсвеченный код прямо в редакторе.&lt;br /&gt;
&lt;br /&gt;
Для валидации используется http://jslint.com&lt;br /&gt;
&lt;br /&gt;
В рамках работы над плагином необходимо создать обёртку для библиотеки jsLint, написанной на JavaScript.&lt;br /&gt;
&lt;br /&gt;
Javascript код выполняется под любым Javascript движком(например: Rhino,V8)&lt;br /&gt;
&lt;br /&gt;
После выполнения скрипта валидации необходимо интерпретировать результаты обработки.&lt;br /&gt;
&lt;br /&gt;
== Научный руководитель ==&lt;br /&gt;
Сергей Симончик (JetBrains)&lt;br /&gt;
= Road Map =&lt;br /&gt;
== план ==&lt;br /&gt;
*31.10.2011* Plugin Ptototype&amp;lt;br/&amp;gt;&lt;br /&gt;
*07.11.2011* added functionality for show problem places in editor.&amp;lt;br/&amp;gt;&lt;br /&gt;
*14.11.2011* added new extension point for plugin&amp;lt;br/&amp;gt;&lt;br /&gt;
*21.11.2011* inspection tool?&amp;lt;br/&amp;gt;&lt;br /&gt;
*28.11-2011-10.12.2011* code refactoring. &amp;lt;br/&amp;gt;&lt;br /&gt;
== Текущее состояние ==&lt;br /&gt;
30.10.2011 - Создан первый прототип плагина.&lt;br /&gt;
Основная функциональность:&lt;br /&gt;
  * Создано окно конфигурации плагина.&lt;br /&gt;
  * Реализовано сохранение и изменение конфигурации.&lt;br /&gt;
  * Создана панель инструментов, через которую реализуется основная функциональность плагина. &lt;br /&gt;
  * Подключен Rhino js-engine, для вызова JsLint библиотеки.&lt;br /&gt;
  * Реализован вывод результатов валидации в панель инструментов.&lt;/div&gt;</summary>
		<author><name>Luckyman</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:Luckyman&amp;diff=655</id>
		<title>Участник:Luckyman</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:Luckyman&amp;diff=655"/>
				<updated>2011-10-30T11:56:50Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: add practice description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;e-mail : dmitriybandurin@gmail.com&amp;lt;br/&amp;gt;&lt;br /&gt;
telephone number : +7-911-199-26-10&lt;br /&gt;
&lt;br /&gt;
= Практика осень-2011 =&lt;br /&gt;
&lt;br /&gt;
Тема практики : JsLintValidation Plugin for IntellijIDEA.&lt;br /&gt;
Страница проекта :[http://code.google.com/p/jetbrains-practice/wiki/JSLintPlugin]&amp;lt;br/&amp;gt;&lt;br /&gt;
Прототип плагина на 30.10.2011 : [http://jetbrains-practice.googlecode.com/files/JsLintPlugin.zip]&lt;/div&gt;</summary>
		<author><name>Luckyman</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:Luckyman&amp;diff=581</id>
		<title>Участник:Luckyman</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:Luckyman&amp;diff=581"/>
				<updated>2011-10-13T19:25:23Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;e-mail : dmitriybandurin@gmail.com&amp;lt;br/&amp;gt;&lt;br /&gt;
telephone number : +7-911-199-26-10&lt;/div&gt;</summary>
		<author><name>Luckyman</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:Luckyman&amp;diff=580</id>
		<title>Участник:Luckyman</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:Luckyman&amp;diff=580"/>
				<updated>2011-10-13T19:24:05Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;e-mail : dmitriybandurin@gmail.com&lt;br /&gt;
telephone number : +7-911-199-26-10&lt;/div&gt;</summary>
		<author><name>Luckyman</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:Luckyman&amp;diff=516</id>
		<title>Участник:Luckyman</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:Luckyman&amp;diff=516"/>
				<updated>2011-10-02T21:47:53Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: Новая страница: «e-mail : dmitriybandurin@gmail.com»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;e-mail : dmitriybandurin@gmail.com&lt;/div&gt;</summary>
		<author><name>Luckyman</name></author>	</entry>

	<entry>
		<id>http://mit.spbau.ru/sewiki/index.php?title=2011&amp;diff=515</id>
		<title>2011</title>
		<link rel="alternate" type="text/html" href="http://mit.spbau.ru/sewiki/index.php?title=2011&amp;diff=515"/>
				<updated>2011-10-02T21:45:45Z</updated>
		
		<summary type="html">&lt;p&gt;Luckyman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ниже представлен список студентов группы SE набора 2011-го года &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# [[Участник:Luckyman|Бандурин Дмитрий Владимирович]]&lt;br /&gt;
# [[Участник:Zalim|Башоров Залим Анатольевич]]&lt;br /&gt;
# [[Участник:Высторопский, Сергей, Алексеевич|Высторопский, Сергей, Алексеевич]]&lt;br /&gt;
# [[Участник:vigo5190|Гуменюк Станислав Сергеевич]]&lt;br /&gt;
# [[Участник:Дручинин Виктор Валерьевич|Дручинин Виктор Валерьевич]]&lt;br /&gt;
# [[Участник:Ждан Анна Дмитриевна|Ждан Анна Дмитриевна]]&lt;br /&gt;
# [[Участник:Иванов Антон Константинович|Иванов Антон Константинович]]&lt;br /&gt;
# [[Участник:Sergey.kazenyuk|Казенюк Сергей Сергеевич]]&lt;br /&gt;
# [[Участник:Кононенко Василий Александрович|Кононенко Василий Александрович]]&lt;br /&gt;
# [[Участник:Кормишин Сергей Вячеславович|Кормишин Сергей Вячеславович]]&lt;br /&gt;
# [[Участник:Коровин Алексей Александрович|Коровин Алексей Александрович]]&lt;br /&gt;
# [[Участник:Краско Евгений Сергеевич|Краско Евгений Сергеевич]]&lt;br /&gt;
# [[Участник:Кринкин Михаил Юрьевич|Кринкин Михаил Юрьевич]]&lt;br /&gt;
# [[Участник:Кудинкин Алексей Игоревич|Кудинкин Алексей Игоревич]]&lt;br /&gt;
# [[Участник:Лазарев Сергей Григорьевич|Лазарев Сергей Григорьевич]]&lt;br /&gt;
# [[Участник:Лепенькин Ярослав Александрович|Лепенькин Ярослав Александрович]]&lt;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>Luckyman</name></author>	</entry>

	</feed>