diff --git a/author/pages/about.html b/author/pages/about.html deleted file mode 100644 index 0728961..0000000 --- a/author/pages/about.html +++ /dev/null @@ -1,9 +0,0 @@ - - Блог 529

Здравствуйте, я Алексей Лобанов

В данный момент студент ВМК МГУ. Немного занимаюсь фрилансом.

В основном программирую на Python и C++, есть также знания HTML, CSS, Delphi, Bash. Разрабатываю прикладные приложения (в том числе графические под Win/MacOS/Linux), парсеры (с использованием scrapy), скрипты автоматизации Есть опыт разработки веб-приложений с использованием микрофреймворка Flask.


\ No newline at end of file diff --git a/author/pages/about.html.gz b/author/pages/about.html.gz deleted file mode 100644 index 7e59c89..0000000 Binary files a/author/pages/about.html.gz and /dev/null differ diff --git a/author/pages/projects.html b/author/pages/projects.html deleted file mode 100644 index 77b4a51..0000000 --- a/author/pages/projects.html +++ /dev/null @@ -1,9 +0,0 @@ - - Мои проекты
  1. Мои проекты

    Значительная часть моих проектов есть на GitHub или BitBucket вместе с открытым исходным кодом.

    CrossGen

    alt text

    Что использовалось

    1. C++
    2. wxWidgets

    Что реализовано

    1. Графический интерфейс
    2. Автоматическая локализация всего интерфейса на русский и английский языки
    3. Быстрая генерация кроссворда по заданной сетке с использованием эвристики
    4. Автоматический бенчмарк для измеренеия производительноти генерации Подробнее я писал тут

    За подробностями пишите мне на почту


\ No newline at end of file diff --git a/author/pages/projects.html.gz b/author/pages/projects.html.gz deleted file mode 100644 index adf0c7a..0000000 Binary files a/author/pages/projects.html.gz and /dev/null differ diff --git a/feeds/all.atom.xml b/feeds/all.atom.xml index e15e456..038ffaf 100644 --- a/feeds/all.atom.xml +++ b/feeds/all.atom.xml @@ -326,4 +326,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/all.atom.xml.gz b/feeds/all.atom.xml.gz index efd4e77..8199c6e 100644 Binary files a/feeds/all.atom.xml.gz and b/feeds/all.atom.xml.gz differ diff --git a/feeds/all.rss.xml b/feeds/all.rss.xml index ff5afdf..0e21508 100644 --- a/feeds/all.rss.xml +++ b/feeds/all.rss.xml @@ -326,4 +326,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Алексей ЛобановFri, 22 Jul 2016 13:35:00 +0300tag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/математикаWallabag и реальная жизньhttp://likemath.ru/posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Алексей ЛобановThu, 17 Mar 2016 13:35:00 +0300tag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/wallabagopen sourceGoКак я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый постhttp://likemath.ru/posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post/блог \ No newline at end of file +</script>Алексей ЛобановFri, 22 Jul 2016 13:35:00 +0300tag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/математикаWallabag и реальная жизньhttp://likemath.ru/posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Алексей ЛобановThu, 17 Mar 2016 13:35:00 +0300tag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/wallabagopen sourceGoКак я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботlichessCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый постhttp://likemath.ru/posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post/блог \ No newline at end of file diff --git a/feeds/all.rss.xml.gz b/feeds/all.rss.xml.gz index f0e2ab8..e7b8e42 100644 Binary files a/feeds/all.rss.xml.gz and b/feeds/all.rss.xml.gz differ diff --git a/feeds/feed.atom.xml b/feeds/feed.atom.xml index 30a0d85..7a17756 100644 --- a/feeds/feed.atom.xml +++ b/feeds/feed.atom.xml @@ -326,4 +326,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file +</script>Wallabag и реальная жизнь2016-03-17T13:35:00+03:002016-03-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Моё решение задачи 602015-11-22T23:41:00+03:002015-11-22T23:41:00+03:00Алексей Лобановtag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Мой первый пост2015-04-17T13:35:00+03:002015-04-17T13:35:00+03:00Алексей Лобановtag:likemath.ru,2015-04-17:posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p> \ No newline at end of file diff --git a/feeds/feed.atom.xml.gz b/feeds/feed.atom.xml.gz index 327f0b7..d540cb3 100644 Binary files a/feeds/feed.atom.xml.gz and b/feeds/feed.atom.xml.gz differ diff --git a/feeds/feed.rss.xml b/feeds/feed.rss.xml index ff5afdf..0e21508 100644 --- a/feeds/feed.rss.xml +++ b/feeds/feed.rss.xml @@ -326,4 +326,4 @@ "}"; (document.body || document.getElementsByTagName('head')[0]).appendChild(mathjaxscript); } -</script>Алексей ЛобановFri, 22 Jul 2016 13:35:00 +0300tag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/математикаWallabag и реальная жизньhttp://likemath.ru/posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Алексей ЛобановThu, 17 Mar 2016 13:35:00 +0300tag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/wallabagopen sourceGoКак я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый постhttp://likemath.ru/posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post/блог \ No newline at end of file +</script>Алексей ЛобановFri, 22 Jul 2016 13:35:00 +0300tag:likemath.ru,2016-07-22:posts/nakhozhdenie-summy-k-ykh-stepenei/математикаWallabag и реальная жизньhttp://likemath.ru/posts/wallabag-i-realnaia-zhizn/<p>Как я устанавливал известнейшее свободное решение для отложенного чтения, и что из этого&nbsp;получилось.</p>Алексей ЛобановThu, 17 Mar 2016 13:35:00 +0300tag:likemath.ru,2016-03-17:posts/wallabag-i-realnaia-zhizn/wallabagopen sourceGoКак я шахматного бота писалhttp://likemath.ru/posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>Алексей ЛобановSun, 10 Jan 2016 13:35:00 +0300tag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/проектшахматыботlichessCrossGen v1.0http://likemath.ru/posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Алексей ЛобановTue, 04 Aug 2015 17:40:00 +0300tag:likemath.ru,2015-08-02:posts/crossgen-v10/проектc++wxWidgetsМоё решение задачи 60http://likemath.ru/posts/moio-reshenie-zadachi-60/<p>Краткое условие: необходимо найти множество из пяти простых чисел с минимальной суммой такое, что после &#8220;склеивания&#8221; в любом порядке любых двух чисел из него тоже будет простое&nbsp;число.</p>Алексей ЛобановSun, 22 Nov 2015 23:41:00 +0300tag:likemath.ru,2015-07-17:posts/moio-reshenie-zadachi-60/Project Eulerc++BGLЕщё одно вычисление выраженийhttp://likemath.ru/posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p>Алексей ЛобановFri, 03 Jul 2015 17:40:00 +0300tag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/проектМой первый постhttp://likemath.ru/posts/moi-pervyi-post/<p>Кратко о том, почему я сделал&nbsp;блог.</p>Алексей ЛобановFri, 17 Apr 2015 13:35:00 +0300tag:likemath.ru,2015-04-17:posts/moi-pervyi-post/блог \ No newline at end of file diff --git a/feeds/feed.rss.xml.gz b/feeds/feed.rss.xml.gz index f0e2ab8..e7b8e42 100644 Binary files a/feeds/feed.rss.xml.gz and b/feeds/feed.rss.xml.gz differ diff --git a/feeds/proekty.atom.xml b/feeds/proekty.atom.xml index a4f9ff6..3f6f7d6 100644 --- a/feeds/proekty.atom.xml +++ b/feeds/proekty.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file diff --git a/feeds/proekty.atom.xml.gz b/feeds/proekty.atom.xml.gz index 4ad1b4a..057d01d 100644 Binary files a/feeds/proekty.atom.xml.gz and b/feeds/proekty.atom.xml.gz differ diff --git a/feeds/tag-bot.atom.xml b/feeds/tag-bot.atom.xml index f88a5d0..ea6561d 100644 --- a/feeds/tag-bot.atom.xml +++ b/feeds/tag-bot.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file diff --git a/feeds/tag-bot.atom.xml.gz b/feeds/tag-bot.atom.xml.gz index 85c6e2f..ace6401 100644 Binary files a/feeds/tag-bot.atom.xml.gz and b/feeds/tag-bot.atom.xml.gz differ diff --git a/feeds/tag-lichess.atom.xml b/feeds/tag-lichess.atom.xml new file mode 100644 index 0000000..bda76ea --- /dev/null +++ b/feeds/tag-lichess.atom.xml @@ -0,0 +1,2 @@ + +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file diff --git a/feeds/tag-lichess.atom.xml.gz b/feeds/tag-lichess.atom.xml.gz new file mode 100644 index 0000000..1540560 Binary files /dev/null and b/feeds/tag-lichess.atom.xml.gz differ diff --git a/feeds/tag-proekt.atom.xml b/feeds/tag-proekt.atom.xml index d052578..9de7499 100644 --- a/feeds/tag-proekt.atom.xml +++ b/feeds/tag-proekt.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p>CrossGen v1.02015-08-04T17:40:00+03:002015-08-04T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-08-02:posts/crossgen-v10/<p>Читая хабр, случайно натолкнулся на идею сделать программу, которая по заданной кроссвордной сетке находит способ её заполнить. В этом посте вкратце напишу про моё решение и первую версию&nbsp;приложения.</p>Ещё одно вычисление выражений2015-07-03T17:40:00+03:002015-07-03T17:40:00+03:00Алексей Лобановtag:likemath.ru,2015-07-03:posts/eshchio-odno-vychislenie-vyrazhenii/<p>На хабре когда-то увидел статью про то, что в Яндексе двум сотрудникам дали задачу на написание приложения, для вычисления выражений. Менеджер справился за 4 часа, а программист за два. Я решил попробовать свои&nbsp;силы.</p> \ No newline at end of file diff --git a/feeds/tag-proekt.atom.xml.gz b/feeds/tag-proekt.atom.xml.gz index 910f535..4bfa32b 100644 Binary files a/feeds/tag-proekt.atom.xml.gz and b/feeds/tag-proekt.atom.xml.gz differ diff --git a/feeds/tag-shakhmaty.atom.xml b/feeds/tag-shakhmaty.atom.xml index 9c2312e..3b1d446 100644 --- a/feeds/tag-shakhmaty.atom.xml +++ b/feeds/tag-shakhmaty.atom.xml @@ -1,2 +1,2 @@ -Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file +Блог 529http://likemath.ru/2016-01-10T13:35:00+03:00Как я шахматного бота писал2016-01-10T13:35:00+03:002016-01-10T13:35:00+03:00Алексей Лобановtag:likemath.ru,2016-01-10:posts/kak-ia-shakhmatnogo-bota-pisal/<p>Как я проверял шахматное приложение на&nbsp;&#8220;ботоустойчивость&#8221;.</p> \ No newline at end of file diff --git a/feeds/tag-shakhmaty.atom.xml.gz b/feeds/tag-shakhmaty.atom.xml.gz index b02edcf..733ada4 100644 Binary files a/feeds/tag-shakhmaty.atom.xml.gz and b/feeds/tag-shakhmaty.atom.xml.gz differ diff --git a/keybase.txt.gz b/keybase.txt.gz new file mode 100644 index 0000000..2b1ae31 Binary files /dev/null and b/keybase.txt.gz differ diff --git a/pages/about.html b/pages/about.html index 0728961..a0da79b 100644 --- a/pages/about.html +++ b/pages/about.html @@ -1,7 +1,7 @@ Блог 529

Здравствуйте, я Алексей Лобанов

В данный момент студент ВМК МГУ. Немного занимаюсь фрилансом.

В основном программирую на Python и C++, есть также знания HTML, CSS, Delphi, Bash. Разрабатываю прикладные приложения (в том числе графические под Win/MacOS/Linux), парсеры (с использованием scrapy), скрипты автоматизации Есть опыт разработки веб-приложений с использованием микрофреймворка Flask.


  1. Как я шахматного бота писал

    Лет 5 назад я достаточно активно играл в “живые” шахматы. Потом времени на это стало не хватать и постепенно перешёл на редкие партии в онлайне. Сейчас для игры я использую одно из самых популярных приложений вк. Это проще, чем использовать, к примеру, FICS. Предмет обсуждения появился из-за того, что я как-то раз встретился с соперником, который на все ходы потратил порядка 10 секунд, при этом не допустив значимых ошибок. Тогда я решил написать своего бота, чтобы узнать что с ним будет и столкнусь ли я с какими-нибудь подводными камнями.

    Целью было максимально быстрое написание максимально простого решения. Поэтому от разбора протокола я сразу отказался, тем более у меня не было подобного опыта ранее. Была мысль работать с FICS (у меня есть библиотека для работы с их протоколом), но поскольку я там не играю, то и результаты были бы не так интересны, во всяком случае, для меня. Таким образом, я писал простого кликера для приложения вк.

    Изначально хотелось найти доску и определить положения всех фигур, это было бы достаточно универсально, хотя и привязало бы меня к OpenCV. Тем не менее, решил не усложнять: можно определять только последний ход, а это можно сделать, проверяя цвет только одного пикселя.

    В самом скрипте около 200 строк на python. Очень сильно помогла библиотека chess, которая взяла на себя общение с движком (я использовал stockfish), проверку на допустимые ходы и определение мата. Некоторое время я уделил тому, чтобы сделать бота максимально похожим на человека, чтобы было невозможно выявить, что это бот полностью автоматическими средствами. По пунктам:

    • Клик по полю в случайном месте, с распределением по Гауссу, центр которого не совпадает с центром клетки
    • Случайное время хода, длительность которого распределена по Гауссу, причём средняя длительность хода изменяется, в зависимости от номера текущего хода.
    • Прокладываются дополнительные точки, с распределением по Гауссу, при перемещении курсора от точки к точке.

    По факту, всё это было лишним, бан получить не удалось даже при простом клике из начальной точки в конечную.

    Примеры работы скрипта можно посмотреть тут и тут, анализы двух сыгранных игр лежат тут и тут (оппонент имеет рейтинг около 2100).

    На момент публикации аккаунт вполне жив. Рейтинг достиг некоторого потолка (около 2200), после которого найти игроков примерно равного рейтинга, не являющихся ботами, очень сложно. Сражаться же с ботами сильно сложнее, такую цель я не ставил. Интересно, хоть и ожидаемо, что при наборе рейтинга было достаточно личностей, для которых возможность того, что их нагло обманули, и они играли с ботом была столь неприятна, что они не могли сдерживаться. Например: alt text

    p.s. Уже после создания рабочей версии от одного из оппонентов узнал про lichess.org. Это отличный ресурс на котором кроме, собственно, платформы для игры в шахматы (поддерживается большое количество их вариантов), есть тренировки по дебютам, анализ игр. Самое интересное — ресурс полностью открытый, все исходники есть на github.

    В процессе подготовки данного материала узнал про InternetChessKiller, который делает, фактически, тоже самое, что и мой скрипт, но без привязки к какой-то одной игровой площадке. Исходники старых версий можно найти, например, в этом репозитории.

    p.p.s. Боты на серверах, предназначенных для людей, играющие в игры, которые предназначены для людей очень сильно мешают людям. Тем не менее, проверять, насколько сильно они мешают не нужно!




Page 1 / 1
\ No newline at end of file diff --git a/tag/lichess.html.gz b/tag/lichess.html.gz new file mode 100644 index 0000000..388845a Binary files /dev/null and b/tag/lichess.html.gz differ diff --git a/tags.html b/tags.html index d0c8314..1d9acbd 100644 --- a/tags.html +++ b/tags.html @@ -1,7 +1,7 @@ Блог 529 - Tags

Tags for Блог 529

  • BGL (1)
  • блог (1)
  • бот (1)
  • c++ (3)
  • FLINT (1)
  • Go (1)
  • математика (1)
  • open source (1)
  • проект (3)
  • Project Euler (3)
  • Python (1)
  • шахматы (1)
  • sympy (1)
  • wallabag (1)
  • wxWidgets (1)